@amir83nasr/10router 0.1.0 → 0.1.1

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 (575) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +2 -2
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/next-server.js.nft.json +1 -1
  5. package/.next/prerender-manifest.json +4 -4
  6. package/.next/required-server-files.json +5 -5
  7. package/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  8. package/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  11. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  12. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  14. package/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  17. package/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  18. package/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  20. package/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  21. package/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  23. package/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.js +2 -2
  26. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.js.nft.json +1 -1
  27. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page.js +1 -1
  29. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page.js.nft.json +1 -1
  30. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(dashboard)/dashboard/page.js +1 -1
  32. package/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  33. package/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  35. package/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  36. package/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  38. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  39. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  41. package/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  42. package/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  44. package/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  45. package/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  47. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  48. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  49. package/.next/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  50. package/.next/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  51. package/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  53. package/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  54. package/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  56. package/.next/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  57. package/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  59. package/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  60. package/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/_global-error/page.js +2 -2
  62. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/_global-error.html +1 -1
  64. package/.next/server/app/_global-error.rsc +1 -1
  65. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  66. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  67. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  68. package/.next/server/app/_not-found/page.js +1 -1
  69. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  70. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/_not-found.html +1 -1
  72. package/.next/server/app/_not-found.rsc +6 -6
  73. package/.next/server/app/_not-found.segments/_full.segment.rsc +6 -6
  74. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
  75. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  76. package/.next/server/app/api/auth/login/route.js +1 -1
  77. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/auth/logout/route.js +1 -1
  79. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/auth/oidc/callback/route.js +1 -1
  81. package/.next/server/app/api/auth/oidc/callback/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/auth/oidc/start/route.js +1 -1
  83. package/.next/server/app/api/auth/oidc/start/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/auth/oidc/test/route.js +1 -1
  85. package/.next/server/app/api/auth/oidc/test/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/auth/reset-password/route.js +1 -1
  87. package/.next/server/app/api/auth/reset-password/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/auth/saml/acs/route.js +1 -1
  89. package/.next/server/app/api/auth/saml/acs/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/auth/saml/metadata/route.js +2 -2
  91. package/.next/server/app/api/auth/saml/metadata/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/auth/saml/start/route.js +2 -2
  93. package/.next/server/app/api/auth/saml/start/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/auth/saml/test/route.js +2 -2
  95. package/.next/server/app/api/auth/saml/test/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/auth/status/route.js +1 -1
  97. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/changelog/route.js +1 -1
  99. package/.next/server/app/api/changelog/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/cli-tools/all-statuses/route.js +1 -1
  101. package/.next/server/app/api/cli-tools/all-statuses/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  103. package/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  105. package/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  107. package/.next/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  109. package/.next/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  111. package/.next/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/cli-tools/dsh-settings/route.js +1 -1
  113. package/.next/server/app/api/cli-tools/dsh-settings/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  115. package/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/combos/[id]/route.js +1 -1
  117. package/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/combos/route.js +1 -1
  119. package/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/headroom/extras/route.js +1 -1
  121. package/.next/server/app/api/headroom/extras/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  123. package/.next/server/app/api/headroom/proxy/[...path]/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/headroom/restart/route.js +1 -1
  125. package/.next/server/app/api/headroom/restart/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/headroom/start/route.js +1 -1
  127. package/.next/server/app/api/headroom/start/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/headroom/status/route.js +1 -1
  129. package/.next/server/app/api/headroom/status/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/headroom/stop/route.js +1 -1
  131. package/.next/server/app/api/headroom/stop/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/health/route.js +1 -1
  133. package/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/init/route.js +1 -1
  135. package/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/keys/[id]/route.js +1 -1
  137. package/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/keys/route.js +1 -1
  139. package/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/locale/route.js +1 -1
  141. package/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/mcp/[plugin]/message/route.js +2 -2
  143. package/.next/server/app/api/mcp/[plugin]/message/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  145. package/.next/server/app/api/mcp/[plugin]/sse/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  147. package/.next/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  149. package/.next/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  151. package/.next/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  153. package/.next/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  155. package/.next/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/models/alias/route.js +1 -1
  157. package/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/models/availability/route.js +1 -1
  159. package/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/models/catalog-sync/route.js +1 -1
  161. package/.next/server/app/api/models/catalog-sync/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/models/custom/route.js +1 -1
  163. package/.next/server/app/api/models/custom/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/models/disabled/route.js +1 -1
  165. package/.next/server/app/api/models/disabled/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/models/route.js +1 -1
  167. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/models/test/route.js +1 -1
  169. package/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  171. package/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  173. package/.next/server/app/api/oauth/codex/bulk-import/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/oauth/codex/import-token/route.js +1 -1
  175. package/.next/server/app/api/oauth/codex/import-token/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  177. package/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  179. package/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  181. package/.next/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  183. package/.next/server/app/api/oauth/grok-cli/bulk-import/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  185. package/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  187. package/.next/server/app/api/oauth/xiaomi-mimo/api-key/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  189. package/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/pricing/route.js +1 -1
  191. package/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  193. package/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/provider-nodes/route.js +1 -1
  195. package/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  197. package/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/providers/[id]/models/route.js +1 -1
  199. package/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/providers/[id]/route.js +1 -1
  201. package/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/providers/[id]/test/route.js +1 -1
  203. package/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  205. package/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/providers/client/route.js +1 -1
  207. package/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  209. package/.next/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/providers/route.js +1 -1
  211. package/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/providers/suggested-models/route.js +1 -1
  213. package/.next/server/app/api/providers/suggested-models/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/providers/test-batch/route.js +1 -1
  215. package/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/providers/validate/route.js +1 -1
  217. package/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  219. package/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  221. package/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  223. package/.next/server/app/api/proxy-pools/cloudflare-deploy/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  225. package/.next/server/app/api/proxy-pools/deno-deploy/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/proxy-pools/route.js +1 -1
  227. package/.next/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  229. package/.next/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/pxpipe/health/route.js +2 -2
  231. package/.next/server/app/api/pxpipe/health/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/pxpipe/install/route.js +1 -1
  233. package/.next/server/app/api/pxpipe/install/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/pxpipe/logs/route.js +1 -1
  235. package/.next/server/app/api/pxpipe/logs/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/api/pxpipe/restart/route.js +2 -2
  237. package/.next/server/app/api/pxpipe/restart/route_client-reference-manifest.js +1 -1
  238. package/.next/server/app/api/pxpipe/start/route.js +1 -1
  239. package/.next/server/app/api/pxpipe/start/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/pxpipe/stats/route.js +2 -2
  241. package/.next/server/app/api/pxpipe/stats/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/pxpipe/status/route.js +1 -1
  243. package/.next/server/app/api/pxpipe/status/route_client-reference-manifest.js +1 -1
  244. package/.next/server/app/api/pxpipe/stop/route.js +2 -2
  245. package/.next/server/app/api/pxpipe/stop/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/settings/database/route.js +1 -1
  247. package/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/api/settings/proxy-test/route.js +1 -1
  249. package/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/api/settings/require-login/route.js +1 -1
  251. package/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/settings/route.js +1 -1
  253. package/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  254. package/.next/server/app/api/shutdown/route.js +1 -1
  255. package/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  256. package/.next/server/app/api/tags/route.js +1 -1
  257. package/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/translator/console-logs/route.js +1 -1
  259. package/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  260. package/.next/server/app/api/translator/console-logs/stream/route.js +1 -1
  261. package/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/api/translator/load/route.js +1 -1
  263. package/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/translator/save/route.js +1 -1
  265. package/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  266. package/.next/server/app/api/translator/send/route.js +1 -1
  267. package/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  268. package/.next/server/app/api/translator/translate/route.js +1 -1
  269. package/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/tunnel/disable/route.js +1 -1
  271. package/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  272. package/.next/server/app/api/tunnel/enable/route.js +1 -1
  273. package/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  274. package/.next/server/app/api/tunnel/status/route.js +1 -1
  275. package/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  277. package/.next/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js +1 -1
  278. package/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  279. package/.next/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js +1 -1
  280. package/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  281. package/.next/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/tunnel/tailscale-install/route.js +1 -1
  283. package/.next/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js +1 -1
  284. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  285. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route_client-reference-manifest.js +1 -1
  286. package/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  287. package/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  288. package/.next/server/app/api/usage/chart/route.js +1 -1
  289. package/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  290. package/.next/server/app/api/usage/history/route.js +1 -1
  291. package/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  292. package/.next/server/app/api/usage/logs/route.js +1 -1
  293. package/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/usage/providers/route.js +1 -1
  295. package/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  296. package/.next/server/app/api/usage/request-details/route.js +1 -1
  297. package/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  298. package/.next/server/app/api/usage/request-logs/route.js +1 -1
  299. package/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/usage/stats/route.js +1 -1
  301. package/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  302. package/.next/server/app/api/usage/stream/route.js +2 -2
  303. package/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  304. package/.next/server/app/api/v1/api/chat/route.js +1 -1
  305. package/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/v1/audio/speech/route.js +1 -1
  307. package/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  308. package/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  309. package/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  310. package/.next/server/app/api/v1/audio/voices/route.js +1 -1
  311. package/.next/server/app/api/v1/audio/voices/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/v1/chat/completions/route.js +1 -1
  313. package/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  314. package/.next/server/app/api/v1/embeddings/route.js +1 -1
  315. package/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  316. package/.next/server/app/api/v1/images/generations/route.js +2 -2
  317. package/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  319. package/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  320. package/.next/server/app/api/v1/messages/route.js +1 -1
  321. package/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  322. package/.next/server/app/api/v1/models/[...model]/route.js +1 -1
  323. package/.next/server/app/api/v1/models/[...model]/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/v1/models/info/route.js +1 -1
  325. package/.next/server/app/api/v1/models/info/route_client-reference-manifest.js +1 -1
  326. package/.next/server/app/api/v1/models/route.js +1 -1
  327. package/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  328. package/.next/server/app/api/v1/responses/compact/route.js +1 -1
  329. package/.next/server/app/api/v1/responses/compact/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/api/v1/responses/route.js +1 -1
  331. package/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  332. package/.next/server/app/api/v1/route.js +1 -1
  333. package/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  334. package/.next/server/app/api/v1/search/route.js +1 -1
  335. package/.next/server/app/api/v1/search/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/api/v1/systemone/route.js +1 -1
  337. package/.next/server/app/api/v1/systemone/route_client-reference-manifest.js +1 -1
  338. package/.next/server/app/api/v1/videos/[id]/route.js +1 -1
  339. package/.next/server/app/api/v1/videos/[id]/route_client-reference-manifest.js +1 -1
  340. package/.next/server/app/api/v1/videos/edits/route.js +1 -1
  341. package/.next/server/app/api/v1/videos/edits/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/api/v1/videos/extensions/route.js +1 -1
  343. package/.next/server/app/api/v1/videos/extensions/route_client-reference-manifest.js +1 -1
  344. package/.next/server/app/api/v1/videos/generations/route.js +1 -1
  345. package/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  346. package/.next/server/app/api/v1/web/fetch/route.js +1 -1
  347. package/.next/server/app/api/v1/web/fetch/route_client-reference-manifest.js +1 -1
  348. package/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  349. package/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  350. package/.next/server/app/api/v1beta/models/route.js +1 -1
  351. package/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  352. package/.next/server/app/api/version/route.js +1 -1
  353. package/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  354. package/.next/server/app/api/version/shutdown/route.js +1 -1
  355. package/.next/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -1
  356. package/.next/server/app/api/version/update/route.js +1 -1
  357. package/.next/server/app/api/version/update/route_client-reference-manifest.js +1 -1
  358. package/.next/server/app/callback/page.js +1 -1
  359. package/.next/server/app/callback/page.js.nft.json +1 -1
  360. package/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  361. package/.next/server/app/callback.html +1 -1
  362. package/.next/server/app/callback.rsc +7 -7
  363. package/.next/server/app/callback.segments/_full.segment.rsc +7 -7
  364. package/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  365. package/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +7 -7
  366. package/.next/server/app/dashboard/basic-chat.html +1 -1
  367. package/.next/server/app/dashboard/basic-chat.rsc +8 -8
  368. package/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
  369. package/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
  370. package/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  371. package/.next/server/app/dashboard/cli-tools.html +1 -1
  372. package/.next/server/app/dashboard/cli-tools.rsc +9 -9
  373. package/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
  374. package/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +9 -9
  375. package/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  376. package/.next/server/app/dashboard/combos.html +1 -1
  377. package/.next/server/app/dashboard/combos.rsc +8 -8
  378. package/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
  379. package/.next/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  380. package/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  381. package/.next/server/app/dashboard/endpoint.html +1 -1
  382. package/.next/server/app/dashboard/endpoint.rsc +9 -9
  383. package/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
  384. package/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +9 -9
  385. package/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  386. package/.next/server/app/dashboard/media-providers/systemone.html +1 -1
  387. package/.next/server/app/dashboard/media-providers/systemone.rsc +8 -8
  388. package/.next/server/app/dashboard/media-providers/systemone.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/systemone/__PAGE__.segment.rsc +8 -8
  389. package/.next/server/app/dashboard/media-providers/systemone.segments/_full.segment.rsc +8 -8
  390. package/.next/server/app/dashboard/media-providers/systemone.segments/_tree.segment.rsc +2 -2
  391. package/.next/server/app/dashboard/profile.html +1 -1
  392. package/.next/server/app/dashboard/profile.rsc +8 -8
  393. package/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
  394. package/.next/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  395. package/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  396. package/.next/server/app/dashboard/providers/new.html +1 -1
  397. package/.next/server/app/dashboard/providers/new.rsc +8 -8
  398. package/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
  399. package/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
  400. package/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  401. package/.next/server/app/dashboard/providers.html +1 -1
  402. package/.next/server/app/dashboard/providers.rsc +8 -8
  403. package/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
  404. package/.next/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  405. package/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  406. package/.next/server/app/dashboard/proxy-pools.html +1 -1
  407. package/.next/server/app/dashboard/proxy-pools.rsc +8 -8
  408. package/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
  409. package/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  410. package/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  411. package/.next/server/app/dashboard/pxpipe.html +1 -1
  412. package/.next/server/app/dashboard/pxpipe.rsc +8 -8
  413. package/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +8 -8
  414. package/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +8 -8
  415. package/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  416. package/.next/server/app/dashboard/quota.html +2 -2
  417. package/.next/server/app/dashboard/quota.rsc +9 -9
  418. package/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
  419. package/.next/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  420. package/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  421. package/.next/server/app/dashboard/settings/pricing/page.js +1 -1
  422. package/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  423. package/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  424. package/.next/server/app/dashboard/settings/pricing.html +1 -1
  425. package/.next/server/app/dashboard/settings/pricing.rsc +7 -7
  426. package/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
  427. package/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  428. package/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
  429. package/.next/server/app/dashboard/token-saver.html +1 -1
  430. package/.next/server/app/dashboard/token-saver.rsc +8 -8
  431. package/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +8 -8
  432. package/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +8 -8
  433. package/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  434. package/.next/server/app/dashboard/usage.html +2 -2
  435. package/.next/server/app/dashboard/usage.rsc +8 -8
  436. package/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
  437. package/.next/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
  438. package/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  439. package/.next/server/app/dashboard.html +1 -1
  440. package/.next/server/app/dashboard.rsc +9 -9
  441. package/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
  442. package/.next/server/app/dashboard.segments/_full.segment.rsc +9 -9
  443. package/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  444. package/.next/server/app/index.html +1 -1
  445. package/.next/server/app/index.rsc +6 -6
  446. package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  447. package/.next/server/app/index.segments/_full.segment.rsc +6 -6
  448. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  449. package/.next/server/app/landing/page.js +1 -1
  450. package/.next/server/app/landing/page.js.nft.json +1 -1
  451. package/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  452. package/.next/server/app/landing.html +1 -1
  453. package/.next/server/app/landing.rsc +7 -7
  454. package/.next/server/app/landing.segments/_full.segment.rsc +7 -7
  455. package/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  456. package/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +7 -7
  457. package/.next/server/app/login/page.js +1 -1
  458. package/.next/server/app/login/page.js.nft.json +1 -1
  459. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  460. package/.next/server/app/login.html +1 -1
  461. package/.next/server/app/login.rsc +7 -7
  462. package/.next/server/app/login.segments/_full.segment.rsc +7 -7
  463. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  464. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +7 -7
  465. package/.next/server/app/manifest.webmanifest/route.js +1 -1
  466. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  467. package/.next/server/app/page.js +1 -1
  468. package/.next/server/app/page.js.nft.json +1 -1
  469. package/.next/server/app/page_client-reference-manifest.js +1 -1
  470. package/.next/server/app-paths-manifest.json +2 -2
  471. package/.next/server/chunks/1011.js +1 -1
  472. package/.next/server/chunks/1194.js +1 -1
  473. package/.next/server/chunks/1289.js +1 -0
  474. package/.next/server/chunks/1633.js +1 -1
  475. package/.next/server/chunks/1985.js +1 -1
  476. package/.next/server/chunks/2339.js +1 -1
  477. package/.next/server/chunks/2801.js +1 -0
  478. package/.next/server/chunks/3425.js +1 -1
  479. package/.next/server/chunks/5351.js +67 -0
  480. package/.next/server/chunks/6056.js +1 -1
  481. package/.next/server/chunks/{3336.js → 7348.js} +1 -1
  482. package/.next/server/chunks/7459.js +9 -9
  483. package/.next/server/chunks/7963.js +5 -5
  484. package/.next/server/chunks/8569.js +1 -1
  485. package/.next/server/chunks/9429.js +1 -1
  486. package/.next/server/middleware-build-manifest.js +1 -1
  487. package/.next/server/middleware.js +3 -3
  488. package/.next/server/next-font-manifest.js +1 -1
  489. package/.next/server/next-font-manifest.json +1 -1
  490. package/.next/server/pages/404.html +1 -1
  491. package/.next/server/pages/500.html +1 -1
  492. package/.next/server/server-reference-manifest.js +1 -1
  493. package/.next/server/server-reference-manifest.json +1 -1
  494. package/.next/static/chunks/1278-7a48cdafd69414e5.js +1 -0
  495. package/.next/static/chunks/1699-13ee6864a8a31a96.js +67 -0
  496. package/.next/static/chunks/208-521a3242b62d6c07.js +1 -0
  497. package/.next/static/chunks/{9590-0d0b3dd0530b2b7b.js → 2836-38406d658ad8caa9.js} +1 -1
  498. package/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-ce1364b2b9589785.js +1 -0
  499. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-2ff675120416e925.js → page-93cc9fc8f8ab938b.js} +2 -2
  500. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-1c54f83c69f02add.js +1 -0
  501. package/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-55bc39e30923938a.js → page-853f4e08f4982dbe.js} +1 -1
  502. package/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-619bc87666df1d5a.js +1 -0
  503. package/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-13abc5b934c960d3.js +1 -0
  504. package/.next/static/chunks/app/(dashboard)/dashboard/media-providers/systemone/[id]/page-fb90d8451f40b8b3.js +10 -0
  505. package/.next/static/chunks/app/(dashboard)/dashboard/media-providers/systemone/page-49b3b4867d06cbe0.js +1 -0
  506. package/.next/static/chunks/app/(dashboard)/dashboard/page-85118ef708c624e6.js +1 -0
  507. package/.next/static/chunks/app/(dashboard)/dashboard/profile/{page-53158d30b5643b05.js → page-65b2c7989dbe2663.js} +1 -1
  508. package/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-fd2615fea8932fd5.js → page-36659d3f8756c897.js} +2 -2
  509. package/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-56de365bce9dfc77.js +1 -0
  510. package/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-7cc2c66e63fce4ab.js → page-b9dafab69096fa76.js} +1 -1
  511. package/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-5e1fb41bd7b555a6.js → page-247f59d088891437.js} +2 -2
  512. package/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-1ec35dafa18e5d24.js → page-696cb5c2703ca1ec.js} +1 -1
  513. package/.next/static/chunks/app/(dashboard)/dashboard/quota/{page-11d5ca23d18d596e.js → page-5d2e8d9a126c2769.js} +1 -1
  514. package/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-bcc37fc2b4089f2f.js +1 -0
  515. package/.next/static/chunks/app/(dashboard)/dashboard/usage/page-cf503287fe99e910.js +1 -0
  516. package/.next/static/chunks/app/(dashboard)/{layout-e1e5bead272b5c82.js → layout-667f17706a5e1896.js} +1 -1
  517. package/.next/static/chunks/app/_not-found/{page-d66f1e17185e98d1.js → page-fe54ae510d932bb2.js} +1 -1
  518. package/.next/static/chunks/app/callback/{page-f4019bfc06b9a21c.js → page-f714c2306a1e9004.js} +1 -1
  519. package/.next/static/chunks/app/dashboard/settings/pricing/page-86197107690a0580.js +1 -0
  520. package/.next/static/chunks/app/landing/page-7a83d1be493ddc8c.js +1 -0
  521. package/.next/static/chunks/app/layout-777e294953f692c4.js +1 -0
  522. package/.next/static/chunks/app/login/page-7a4c84e8310a0487.js +1 -0
  523. package/.next/static/chunks/main-app-2ecba5da1d59188c.js +1 -0
  524. package/.next/static/chunks/next/dist/client/components/builtin/global-error-f9ac464a7c99aea5.js +1 -0
  525. package/.next/static/css/7698ede81d1862e2.css +1 -0
  526. package/bin/10router.mjs +73 -70
  527. package/bin/update-check.mjs +93 -0
  528. package/custom-server.js +6 -36
  529. package/next.config.mjs +1 -1
  530. package/package.json +5 -22
  531. package/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.tsx +20 -6
  532. package/src/app/api/proxy-pools/[id]/test/route.js +1 -2
  533. package/src/lib/consoleLogBuffer.js +2 -1
  534. package/src/shared/components/AddCustomEmbeddingModal.tsx +0 -14
  535. package/src/shared/components/ChangelogModal.tsx +0 -6
  536. package/src/shared/components/CursorAuthModal.tsx +0 -7
  537. package/src/shared/components/EditConnectionModal.tsx +0 -22
  538. package/src/shared/components/GitLabAuthModal.tsx +0 -8
  539. package/src/shared/components/Header.tsx +0 -6
  540. package/src/shared/components/HeaderMenu.tsx +0 -5
  541. package/src/shared/components/IFlowCookieModal.tsx +0 -7
  542. package/src/shared/components/ModelSelectModal.tsx +0 -19
  543. package/src/shared/components/NoAuthProxyCard.tsx +0 -5
  544. package/src/shared/components/OAuthModal.tsx +0 -11
  545. package/src/shared/components/ProviderIcon.tsx +0 -11
  546. package/src/shared/components/XiaomiMimoAuthModal.tsx +0 -7
  547. package/src/shared/utils/cn.ts +3 -4
  548. package/src/sse/utils/logger.ts +62 -13
  549. package/.next/server/chunks/1157.js +0 -1
  550. package/.next/server/chunks/257.js +0 -67
  551. package/.next/server/chunks/3533.js +0 -1
  552. package/.next/static/chunks/1278-d7d5375869132de1.js +0 -1
  553. package/.next/static/chunks/208-fcb6c54f9db5664f.js +0 -1
  554. package/.next/static/chunks/3153-fde052e626cc6d40.js +0 -67
  555. package/.next/static/chunks/6817-449f7a2452845c74.js +0 -1
  556. package/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-c074ab1b76a6c8ba.js +0 -1
  557. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-654e770c4dca90e8.js +0 -1
  558. package/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-aac9a9397d3f7f17.js +0 -1
  559. package/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-d60651b77028b014.js +0 -1
  560. package/.next/static/chunks/app/(dashboard)/dashboard/media-providers/systemone/[id]/page-3d78f5834ef97b82.js +0 -10
  561. package/.next/static/chunks/app/(dashboard)/dashboard/media-providers/systemone/page-e41bf53886195393.js +0 -1
  562. package/.next/static/chunks/app/(dashboard)/dashboard/page-670583d9f9c104af.js +0 -1
  563. package/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-7c9e30c4985582a6.js +0 -1
  564. package/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-388b616d8c2aa3fc.js +0 -1
  565. package/.next/static/chunks/app/(dashboard)/dashboard/usage/page-466f7a8f7319ad85.js +0 -1
  566. package/.next/static/chunks/app/dashboard/settings/pricing/page-b9ee16bd322c018e.js +0 -1
  567. package/.next/static/chunks/app/landing/page-a088604744d51552.js +0 -1
  568. package/.next/static/chunks/app/layout-56cb8d3773a70c00.js +0 -1
  569. package/.next/static/chunks/app/login/page-dd11fb741ed7fda4.js +0 -1
  570. package/.next/static/chunks/main-app-17abdf14ff64ab69.js +0 -1
  571. package/.next/static/chunks/next/dist/client/components/builtin/global-error-21486667022bd4cf.js +0 -1
  572. package/.next/static/css/8fbebca0759ae504.css +0 -1
  573. package/scripts/dev-local.mjs +0 -67
  574. /package/.next/static/{AiSMDHTT8m1mHG-uAmkFq → SudImSgFkzCy6tK2dH6yg}/_buildManifest.js +0 -0
  575. /package/.next/static/{AiSMDHTT8m1mHG-uAmkFq → SudImSgFkzCy6tK2dH6yg}/_ssgManifest.js +0 -0
package/bin/10router.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  // ── 10ROUTER CLI ────────────────────────────────────────────────────
3
- // Local lifecycle: start/stop/status/logs/open/doctor. No Docker.
4
- // Stdlib only (+ already-installed `open` for the `open` command).
3
+ // Local lifecycle: start/stop/status/logs/open. No Docker.
4
+ // Stdlib + already-installed `chalk` (colors, NO_COLOR-aware) and `open`.
5
5
 
6
6
  import { spawn, spawnSync } from "node:child_process";
7
7
  import fs from "node:fs";
@@ -9,6 +9,9 @@ import os from "node:os";
9
9
  import path from "node:path";
10
10
  import { fileURLToPath } from "node:url";
11
11
 
12
+ import { checkUpdate } from "./update-check.mjs";
13
+ import chalk from "chalk";
14
+
12
15
  const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
13
16
  const DEV_PORT = "20127";
14
17
  const PROD_PORT = "20128";
@@ -64,14 +67,17 @@ async function health(port) {
64
67
  }
65
68
  }
66
69
 
70
+ // ── UPDATE CHECK (npm mode only, fail-open, cached) ───────────────
71
+ // Logic lives in ./update-check.mjs (side-effect-free, testable).
72
+
67
73
  // ── COMMANDS ────────────────────────────────────────────────────────
68
74
  async function cmdStart(opts) {
69
- // npm-installed package has a prebuilt .next — default to prod there.
70
- const mode = opts.dev && IS_REPO ? "dev" : opts.prod || !IS_REPO ? "prod" : "dev";
75
+ // npm-installed package has a prebuilt .next — always prod there.
76
+ const mode = IS_REPO ? "dev" : "prod";
71
77
  const port = opts.port || (mode === "prod" ? PROD_PORT : DEV_PORT);
72
78
  const st = readState();
73
79
  if (st && isAlive(st.pid)) {
74
- console.log(`already running (pid ${st.pid}, ${st.mode} :${st.port})`);
80
+ console.log(chalk.yellow(`already running (pid ${st.pid}, ${st.mode} :${st.port})`));
75
81
  return;
76
82
  }
77
83
  if (st) fs.rmSync(PID_FILE, { force: true }); // stale pidfile
@@ -80,7 +86,7 @@ async function cmdStart(opts) {
80
86
  let cmd, args;
81
87
  if (mode === "prod") {
82
88
  if (!fs.existsSync(path.join(ROOT, ".next"))) {
83
- console.error("no .next build found — run `pnpm build` first");
89
+ console.error(chalk.red("no .next build found — run `pnpm build` first"));
84
90
  process.exitCode = 1;
85
91
  return;
86
92
  }
@@ -93,7 +99,7 @@ async function cmdStart(opts) {
93
99
  }
94
100
 
95
101
  if (opts.foreground) {
96
- console.log(`[${mode}] ${baseUrl(port)} (foreground, Ctrl+C to stop)`);
102
+ console.log(chalk.green(`[${mode}] ${baseUrl(port)} (foreground, Ctrl+C to stop)`));
97
103
  const child = spawn(cmd, args, { cwd: ROOT, stdio: "inherit", env });
98
104
  const stop = () => child.kill();
99
105
  process.once("SIGINT", stop);
@@ -116,8 +122,8 @@ async function cmdStart(opts) {
116
122
  PID_FILE,
117
123
  JSON.stringify({ pid: child.pid, port: String(port), mode, startedAt: Date.now() }),
118
124
  );
119
- console.log(`started ${mode} (pid ${child.pid}) → ${baseUrl(port)}`);
120
- console.log(`logs: ${LOG_FILE}`);
125
+ console.log(chalk.green(`started ${mode} (pid ${child.pid}) → ${baseUrl(port)}`));
126
+ console.log(chalk.dim(`logs: ${LOG_FILE}`));
121
127
  }
122
128
 
123
129
  function killTree(pid) {
@@ -139,17 +145,17 @@ function killTree(pid) {
139
145
  function cmdStop() {
140
146
  const st = readState();
141
147
  if (!st) {
142
- console.log("not running (no pidfile)");
148
+ console.log(chalk.yellow("not running (no pidfile)"));
143
149
  return;
144
150
  }
145
151
  if (!isAlive(st.pid)) {
146
152
  fs.rmSync(PID_FILE, { force: true });
147
- console.log("stale pidfile removed — was not running");
153
+ console.log(chalk.yellow("stale pidfile removed — was not running"));
148
154
  return;
149
155
  }
150
156
  killTree(st.pid);
151
157
  fs.rmSync(PID_FILE, { force: true });
152
- console.log(`stopped (was pid ${st.pid}, ${st.mode} :${st.port})`);
158
+ console.log(chalk.green(`stopped (was pid ${st.pid}, ${st.mode} :${st.port})`));
153
159
  }
154
160
 
155
161
  async function cmdStatus() {
@@ -158,17 +164,19 @@ async function cmdStatus() {
158
164
  if (st && !alive) fs.rmSync(PID_FILE, { force: true }); // clean stale
159
165
  const port = st?.port || process.env.PORT;
160
166
  const ok = port ? await health(port) : false;
161
- console.log(`running: ${alive ? `yes (pid ${st.pid}, ${st.mode})` : "no"}`);
167
+ console.log(
168
+ `running: ${alive ? chalk.green(`yes (pid ${st.pid}, ${st.mode})`) : chalk.red("no")}`,
169
+ );
162
170
  console.log(
163
171
  port
164
- ? `health: ${ok ? `ok ${baseUrl(port)}/api/health` : `down :${port}`}`
165
- : "health: — (nothing started, PORT unset)",
172
+ ? `health: ${ok ? chalk.green(`ok ${baseUrl(port)}/api/health`) : chalk.red(`down :${port}`)}`
173
+ : `health: ${chalk.dim("— (nothing started, PORT unset)")}`,
166
174
  );
167
- console.log(`data: ${DATA_DIR}`);
175
+ console.log(`data: ${chalk.dim(DATA_DIR)}`);
168
176
  if (!alive) process.exitCode = 1;
169
177
  }
170
178
 
171
- function cmdLogs(opts) {
179
+ function cmdLogs() {
172
180
  let text;
173
181
  try {
174
182
  text = fs.readFileSync(LOG_FILE, "utf8");
@@ -177,9 +185,7 @@ function cmdLogs(opts) {
177
185
  return;
178
186
  }
179
187
  const lines = text.trimEnd().split("\n");
180
- const n = opts.n || 50;
181
- process.stdout.write(lines.slice(-n).join("\n") + "\n");
182
- if (!opts.follow) return;
188
+ process.stdout.write(lines.slice(-50).join("\n") + "\n");
183
189
  // follow: poll for appended bytes (cross-platform, no `tail` dep)
184
190
  let pos = fs.statSync(LOG_FILE).size;
185
191
  const timer = setInterval(() => {
@@ -208,68 +214,63 @@ async function cmdOpen(opts) {
208
214
  console.log(url);
209
215
  }
210
216
 
211
- function cmdDoctor() {
212
- const fails = [];
213
- const check = (name, ok, hint = "") => {
214
- console.log(`${ok ? "ok " : "FAIL"} ${name}${ok ? "" : ` — ${hint}`}`);
215
- if (!ok) fails.push(name);
216
- };
217
- const major = Number(process.versions.node.split(".")[0]);
218
- check(`node ${process.version}`, major >= 20, "need node >= 20");
219
- if (IS_REPO) {
220
- const pnpm = spawnSync("pnpm", ["--version"], { encoding: "utf8" });
221
- check(`pnpm ${pnpm.stdout?.trim() || "?"}`, pnpm.status === 0, "need pnpm for dev mode");
222
- }
223
- try {
224
- fs.mkdirSync(DATA_DIR, { recursive: true });
225
- fs.accessSync(DATA_DIR, fs.constants.W_OK);
226
- check(`DATA_DIR ${DATA_DIR}`, true);
227
- } catch {
228
- check(`DATA_DIR ${DATA_DIR}`, false, "not writable");
229
- }
230
- check(
231
- ".next build (for start --prod)",
232
- fs.existsSync(path.join(ROOT, ".next")),
233
- "run pnpm build",
234
- );
235
- if (fails.length) process.exitCode = 1;
236
- }
237
-
238
217
  function help() {
239
- console.log(`10router — local gateway lifecycle (DATA_DIR=${DATA_DIR})
218
+ const H = chalk.green;
219
+ const C = chalk.blue;
220
+ console.log(`${H.bold("10router")} ${chalk.dim(`— local gateway lifecycle (DATA_DIR=${DATA_DIR})`)}
240
221
 
241
- usage: 10router <command> [options]
222
+ ${H("Usage:")} 10router [OPTIONS] <COMMAND>
242
223
 
243
- start [--prod|--dev] [--port N] [--foreground] start gateway
244
- (repo default: dev :${DEV_PORT}; npm install: prod :${PROD_PORT})
245
- stop stop background gateway
246
- status pid alive? health? paths?
247
- logs [-n N] [-f] tail log (default last 50 lines)
248
- open [--port N] open dashboard in browser
249
- doctor node/pnpm/DATA_DIR/build checks
250
- help | --help this text
251
- --version package version
224
+ ${H("Commands:")}
225
+ ${C("start")} Start gateway
226
+ ${C("stop")} Stop background gateway
227
+ ${C("status")} Show pid, health and paths
228
+ ${C("logs")} Tail log (follows)
229
+ ${C("open")} Open dashboard in browser
252
230
 
253
- env: DATA_DIR (default ~/.10router), PORT. prod default :${PROD_PORT}.`);
231
+ ${H("Options:")}
232
+ ${C("-p, --port <N>")} Gateway port (default :${PROD_PORT})
233
+ ${C(" --foreground")} Run in foreground (Ctrl+C to stop)
234
+ ${C("-h, --help")} Show this help
235
+ ${C("-V, --version")} Show package version`);
254
236
  }
255
237
 
256
238
  // ── ARGS ────────────────────────────────────────────────────────────
257
- const [cmd, ...rest] = process.argv.slice(2);
239
+ const _all = process.argv.slice(2);
240
+ // Strip --update-preview [ver] before command dispatch (dev preview only).
241
+ const _pv = _all.indexOf("--update-preview");
242
+ const _args =
243
+ _pv >= 0 && _all[_pv + 1] && /^[v\d]/.test(_all[_pv + 1])
244
+ ? [..._all.slice(0, _pv), ..._all.slice(_pv + 2)]
245
+ : _pv >= 0
246
+ ? [..._all.slice(0, _pv), ..._all.slice(_pv + 1)]
247
+ : _all;
248
+ const [cmd, ...rest] = _args;
258
249
  const flag = (s, l) => rest.includes(s) || (l && rest.includes(l));
259
250
  const val = (s, l) => {
260
251
  const i = rest.findIndex((a) => a === s || a === l);
261
252
  return i >= 0 ? rest[i + 1] : undefined;
262
253
  };
263
254
  const opts = {
264
- prod: flag("--prod"),
265
- dev: flag("--dev"),
266
255
  foreground: flag("--foreground") || flag("--fg"),
267
- follow: flag("-f", "--follow"),
268
256
  port: val("--port", "-p"),
269
- n: Number(val("-n", "--lines")) || undefined,
270
257
  };
271
258
 
272
259
  const run = async () => {
260
+ // Update notice: stderr only (stdout stays pipeable), fail-open, npm-only.
261
+ // Dev preview: `--update-preview [ver] <cmd>` shows the prod notice in-repo.
262
+ const previewIdx = _all.indexOf("--update-preview");
263
+ const previewArg = previewIdx >= 0 ? _all[previewIdx + 1] : null;
264
+ const previewLatest =
265
+ previewIdx >= 0 ? (previewArg && /^[v\d]/.test(previewArg) ? previewArg : "9.9.9") : null;
266
+ const notice = await checkUpdate({
267
+ root: ROOT,
268
+ dataDir: DATA_DIR,
269
+ isRepo: IS_REPO,
270
+ argv: rest,
271
+ previewLatest,
272
+ });
273
+ if (notice) console.error(chalk.yellow.bold(notice));
273
274
  switch (cmd) {
274
275
  case "start":
275
276
  return cmdStart(opts);
@@ -278,20 +279,22 @@ const run = async () => {
278
279
  case "status":
279
280
  return cmdStatus();
280
281
  case "logs":
281
- return cmdLogs(opts);
282
+ return cmdLogs();
282
283
  case "open":
283
284
  return cmdOpen(opts);
284
- case "doctor":
285
- return cmdDoctor();
286
- case "--version":
287
- case "version": {
285
+ case "-h":
286
+ case "--help":
287
+ case "help":
288
+ return help();
289
+ case "-V":
290
+ case "--version": {
288
291
  const pkg = JSON.parse(fs.readFileSync(path.join(ROOT, "package.json"), "utf8"));
289
292
  console.log(pkg.version);
290
293
  return;
291
294
  }
292
295
  default:
293
296
  help();
294
- if (cmd && cmd !== "help" && cmd !== "--help") process.exitCode = 1;
297
+ if (cmd) process.exitCode = 1;
295
298
  }
296
299
  };
297
300
 
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env node
2
+ // ── UPDATE CHECK ────────────────────────────────────────────────────
3
+ // Fail-open latest-version notice for npm-installed CLI. Stdlib only,
4
+ // side-effect-free (no top-level run) so tests can import it.
5
+
6
+ import fs from "node:fs";
7
+ import path from "node:path";
8
+
9
+ export const UPDATE_TTL = 24 * 3600 * 1000;
10
+
11
+ export function cmpVer(a, b) {
12
+ const pa = String(a).replace(/^v/, "").split("-")[0].split(".").map(Number);
13
+ const pb = String(b).replace(/^v/, "").split("-")[0].split(".").map(Number);
14
+ for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
15
+ const d = (pa[i] || 0) - (pb[i] || 0);
16
+ if (d) return d < 0 ? -1 : 1;
17
+ }
18
+ // numeric tie: prerelease < release (1.0.0-alpha < 1.0.0)
19
+ const preA = String(a).includes("-") ? 0 : 1;
20
+ const preB = String(b).includes("-") ? 0 : 1;
21
+ return preA === preB ? 0 : preA < preB ? -1 : 1;
22
+ }
23
+
24
+ export async function fetchLatest(pkgName, fetchFn = fetch) {
25
+ try {
26
+ const r = await fetchFn(`https://registry.npmjs.org/${pkgName.replace("/", "%2F")}/latest`, {
27
+ signal: AbortSignal.timeout(3000),
28
+ });
29
+ if (!r.ok) return null;
30
+ return (await r.json())?.version || null;
31
+ } catch {
32
+ return null; // offline → silent
33
+ }
34
+ }
35
+
36
+ // Returns the notice string, or null when silent. Never throws.
37
+ export async function checkUpdate({
38
+ root,
39
+ dataDir,
40
+ isRepo,
41
+ argv = [],
42
+ env = process.env,
43
+ fetchFn = fetch,
44
+ now = Date.now(),
45
+ previewLatest = null,
46
+ } = {}) {
47
+ try {
48
+ // previewLatest: dev-only escape hatch (`--update-preview X.Y.Z`) to see
49
+ // the prod notice without network. Still gated by the same opt-outs.
50
+ if (argv.includes("--no-update-check")) return null;
51
+ if (env.NO_UPDATE_CHECK === "1" || env.CI) return null;
52
+ if (!previewLatest && isRepo) return null;
53
+ let pkg;
54
+ try {
55
+ pkg = JSON.parse(fs.readFileSync(path.join(root, "package.json"), "utf8"));
56
+ } catch {
57
+ return null;
58
+ }
59
+ if (!pkg?.name || !pkg?.version) return null;
60
+ const cacheFile = path.join(dataDir, "update-check.json");
61
+ let cached = null;
62
+ try {
63
+ cached = JSON.parse(fs.readFileSync(cacheFile, "utf8"));
64
+ } catch {
65
+ /* no cache */
66
+ }
67
+ let latest = previewLatest;
68
+ if (!latest) {
69
+ latest = cached?.latest && now - (cached.checkedAt || 0) < UPDATE_TTL ? cached.latest : null;
70
+ }
71
+ if (!latest) {
72
+ latest = await fetchLatest(pkg.name, fetchFn);
73
+ if (latest) {
74
+ try {
75
+ fs.mkdirSync(dataDir, { recursive: true });
76
+ fs.writeFileSync(cacheFile, JSON.stringify({ latest, checkedAt: now }));
77
+ } catch {
78
+ /* cache best-effort */
79
+ }
80
+ } else latest = cached?.latest || null; // stale cache beats silence
81
+ }
82
+ if (!latest || cmpVer(pkg.version, latest) >= 0) return null;
83
+ const ua = env.npm_config_user_agent || "";
84
+ const install = ua.startsWith("pnpm")
85
+ ? `pnpm add -g ${pkg.name}@latest`
86
+ : `npm install -g ${pkg.name}@latest`;
87
+ // stop first: upgrade replaces running code — stop is idempotent when idle.
88
+ // ponytail: single stop+install line; split per-status messaging when needed.
89
+ return `\nUpdate available: ${pkg.version} → ${latest}\n 10router stop; ${install}\n`;
90
+ } catch {
91
+ return null; // fail-open: update notice never breaks the CLI
92
+ }
93
+ }
package/custom-server.js CHANGED
@@ -2,7 +2,6 @@ const http = require("http");
2
2
  const path = require("path");
3
3
  const fs = require("fs");
4
4
  const crypto = require("crypto");
5
- const { pathToFileURL } = require("url");
6
5
 
7
6
  const origCreate = http.createServer.bind(http);
8
7
 
@@ -13,38 +12,12 @@ const origCreate = http.createServer.bind(http);
13
12
  const PEER_TOKEN = crypto.randomBytes(24).toString("hex");
14
13
  process.env.TENROUTER_PEER_TOKEN = PEER_TOKEN;
15
14
 
16
- let backgroundRefreshStarted = false;
17
-
18
- function startBackgroundTokenRefreshFromCustomServer() {
19
- if (backgroundRefreshStarted) return;
20
- backgroundRefreshStarted = true;
21
- // Prefer source path (repo / standalone that still has src). Fail-open if missing
22
- // — initializeApp also starts the same scheduler when the Next app boots.
23
- const modPath = path.join(__dirname, "src", "sse", "services", "backgroundTokenRefresh.js");
24
- import(pathToFileURL(modPath).href)
25
- .then((m) => {
26
- try {
27
- m.startBackgroundTokenRefresh();
28
- } catch (e) {
29
- console.error("[BackgroundTokenRefresh] start failed:", e && e.message ? e.message : e);
30
- }
31
- const stop = () => {
32
- try {
33
- m.stopBackgroundTokenRefresh();
34
- } catch {
35
- /* ignore */
36
- }
37
- };
38
- process.once("SIGINT", stop);
39
- process.once("SIGTERM", stop);
40
- })
41
- .catch((e) => {
42
- // Expected in published CLI standalone (src/ not on disk). App bootstrap covers it.
43
- if (process.env.DEBUG_BACKGROUND_TOKEN_REFRESH) {
44
- console.error("[BackgroundTokenRefresh] import failed:", e && e.message ? e.message : e);
45
- }
46
- });
47
- }
15
+ // NOTE: background token refresh is started by the app itself
16
+ // (src/shared/services/bootstrap.ts → initializeApp). This entry used to
17
+ // dynamic-import src/sse/services/backgroundTokenRefresh.js, but that path
18
+ // never resolves at runtime (only the .ts source exists on disk) — the import
19
+ // always failed and the bootstrap scheduler covered it. Removed so the server
20
+ // entry has no src/ coupling.
48
21
 
49
22
  // Wrap Next standalone HTTP server: derive client IP from the TCP socket
50
23
  // (unspoofable) and strip client-supplied forwarding headers so downstream
@@ -74,9 +47,6 @@ http.createServer = (...args) => {
74
47
  return handler(req, res);
75
48
  };
76
49
  const server = origCreate(...rest, wrapped);
77
- server.once("listening", () => {
78
- startBackgroundTokenRefreshFromCustomServer();
79
- });
80
50
  const origEmit = server.emit;
81
51
  // JBR 25 sends h2c upgrades that the HTTP/1.1 server would otherwise close.
82
52
  server.emit = function (event, ...eventArgs) {
package/next.config.mjs CHANGED
@@ -10,7 +10,7 @@ const proxyClientMaxBodySize = process.env.TENROUTER_PROXY_CLIENT_MAX_BODY_SIZE
10
10
 
11
11
  /** @type {import('next').NextConfig} */
12
12
  const nextConfig = {
13
- distDir: process.env.NEXT_DIST_DIR || ".next",
13
+ distDir: ".next",
14
14
  output: "standalone",
15
15
  // `open` must stay external. It derives its own directory from `import.meta.url`, and
16
16
  // webpack replaces that with the absolute path of the BUILD machine as a string literal.
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@amir83nasr/10router",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/Amir83Nasr/10Router.git"
7
7
  },
8
- "packageManager": "pnpm@12.5.1",
8
+ "packageManager": "pnpm@12.6.0",
9
9
  "description": "10Router dashboard",
10
10
  "bin": {
11
11
  "10router": "bin/10router.mjs"
@@ -13,7 +13,6 @@
13
13
  "files": [
14
14
  "bin/",
15
15
  "custom-server.js",
16
- "scripts/dev-local.mjs",
17
16
  "src/",
18
17
  "open-sse/",
19
18
  "public/",
@@ -29,13 +28,10 @@
29
28
  },
30
29
  "scripts": {
31
30
  "dev": "node scripts/dev-local.mjs",
32
- "dev:webpack": "next dev --webpack --port 20127",
31
+ "dev:update": "node scripts/test-update-notice.mjs",
33
32
  "build": "next build --webpack",
34
- "start": "node custom-server.js --port 20127",
35
- "dev:bun": "bun --bun next dev --webpack --port 20127",
36
- "dev:ui": "node scripts/dev-local.mjs --ui",
37
- "build:bun": "bun --bun next build --webpack",
38
- "start:bun": "bun ./.next/standalone/custom-server.js",
33
+ "start": "node custom-server.js --port 20128",
34
+ "pkg:test": "node scripts/test-pkg.mjs",
39
35
  "format": "prettier --write .",
40
36
  "format:check": "prettier --check .",
41
37
  "lint": "eslint .",
@@ -59,21 +55,10 @@
59
55
  "@dnd-kit/utilities": "^3.2.2",
60
56
  "@next/third-parties": "^16.2.9",
61
57
  "@node-saml/node-saml": "^5.1.0",
62
- "@radix-ui/react-avatar": "^1.2.6",
63
- "@radix-ui/react-dialog": "^1.1.23",
64
- "@radix-ui/react-dropdown-menu": "^2.1.24",
65
- "@radix-ui/react-label": "^2.1.15",
66
- "@radix-ui/react-select": "^2.3.7",
67
- "@radix-ui/react-separator": "^1.1.15",
68
- "@radix-ui/react-slot": "^1.3.3",
69
- "@radix-ui/react-switch": "^1.3.7",
70
- "@radix-ui/react-tabs": "^1.1.21",
71
- "@radix-ui/react-tooltip": "^1.2.16",
72
58
  "@xyflow/react": "^12.10.1",
73
59
  "bcryptjs": "^3.0.3",
74
60
  "chalk": "^5.6.2",
75
61
  "class-variance-authority": "^0.7.1",
76
- "clsx": "^2.1.1",
77
62
  "cn": "^0.3.0",
78
63
  "confbox": "^0.2.4",
79
64
  "jose": "^6.1.3",
@@ -83,13 +68,11 @@
83
68
  "node-machine-id": "^1.1.12",
84
69
  "open": "^11.0.0",
85
70
  "ora": "^9.1.0",
86
- "prop-types": "^15.8.1",
87
71
  "radix-ui": "^1.6.7",
88
72
  "react": "19.2.4",
89
73
  "react-dom": "19.2.4",
90
74
  "recharts": "^3.8.0",
91
75
  "sql.js": "^1.14.1",
92
- "tailwind-merge": "^3.7.0",
93
76
  "tw-animate-css": "^1.4.0",
94
77
  "undici": "^7.19.2",
95
78
  "uuid": "^13.0.0",
@@ -21,12 +21,20 @@ import type { LogCategory, LogEntry, LogLevel } from "@/lib/logLine.js";
21
21
  // ── LEVEL META ───────────────────────────────────────────
22
22
 
23
23
  const LEVEL_BADGE: Record<LogLevel, "default" | "secondary" | "destructive"> = {
24
- debug: "default",
25
- info: "secondary",
24
+ debug: "secondary",
25
+ info: "default",
26
26
  warn: "secondary",
27
27
  error: "destructive",
28
28
  };
29
29
 
30
+ // Badge color per level (BADGE variants are limited: default/secondary/destructive).
31
+ const LEVEL_BADGE_CLASS: Record<LogLevel, string> = {
32
+ debug: "bg-muted text-muted-foreground",
33
+ info: "bg-sky-500/15 text-sky-700 dark:text-sky-300",
34
+ warn: "bg-amber-500/15 text-amber-700 dark:text-amber-300",
35
+ error: "",
36
+ };
37
+
30
38
  const LEVEL_LABEL: Record<LogLevel, string> = {
31
39
  debug: "DEBUG",
32
40
  info: "INFO",
@@ -174,6 +182,7 @@ function LogMessage({ text, isError }: { text: string; isError: boolean }) {
174
182
 
175
183
  function LogRow({ entry }: { entry: LogEntry }) {
176
184
  const isError = entry.level === "error";
185
+ const isWarn = entry.level === "warn";
177
186
  const isDone = entry.category === "done";
178
187
 
179
188
  return (
@@ -181,15 +190,20 @@ function LogRow({ entry }: { entry: LogEntry }) {
181
190
  className={`flex items-start gap-2 px-3 py-1.5 leading-relaxed ${
182
191
  isError
183
192
  ? "border-l-2 border-red-500 bg-red-500/5"
184
- : isDone
185
- ? "border-l-2 border-green-500 bg-green-500/5"
186
- : "border-l-2 border-transparent hover:bg-muted/50"
193
+ : isWarn
194
+ ? "border-l-2 border-amber-500 bg-amber-500/5"
195
+ : isDone
196
+ ? "border-l-2 border-green-500 bg-green-500/5"
197
+ : "border-l-2 border-transparent hover:bg-muted/50"
187
198
  }`}
188
199
  >
189
200
  <span className="shrink-0 pt-0.5 text-[11px] text-muted-foreground tabular-nums">
190
201
  {formatClock(entry.ts)}
191
202
  </span>
192
- <Badge variant={LEVEL_BADGE[entry.level]} className="shrink-0">
203
+ <Badge
204
+ variant={LEVEL_BADGE[entry.level]}
205
+ className={`shrink-0 ${LEVEL_BADGE_CLASS[entry.level]}`}
206
+ >
193
207
  {LEVEL_LABEL[entry.level]}
194
208
  </Badge>
195
209
  <span className="shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-semibold text-muted-foreground uppercase">
@@ -1,14 +1,13 @@
1
1
  import { NextResponse } from "next/server";
2
2
  import { getProxyPoolById, updateProxyPool } from "@/models";
3
3
  import { testProxyUrl } from "@/lib/network/proxyTest";
4
- import { fetch as undiciFetch } from "undici";
5
4
 
6
5
  async function testVercelRelay(relayUrl, timeoutMs = 10000) {
7
6
  const controller = new AbortController();
8
7
  const startedAt = Date.now();
9
8
  const timer = setTimeout(() => controller.abort(), timeoutMs);
10
9
  try {
11
- const res = await undiciFetch(relayUrl, {
10
+ const res = await fetch(relayUrl, {
12
11
  method: "GET",
13
12
  headers: {
14
13
  "x-relay-target": "https://httpbin.org",
@@ -42,7 +42,8 @@ function scheduleFlush() {
42
42
  state.flushTimer?.unref?.();
43
43
  }
44
44
 
45
- // Strip ANSI escape codes so terminal colors don't bleed into UI
45
+ // Strip ANSI escape codes (colors, bold) so terminal styling doesn't bleed
46
+ // into UI; the viewer applies its own per-level colors.
46
47
  const ANSI_RE = /\x1b\[[0-9;]*m/g;
47
48
 
48
49
  function stripAnsi(str) {
@@ -1,7 +1,6 @@
1
1
  "use client";
2
2
 
3
3
  import { useState, useEffect } from "react";
4
- import PropTypes from "prop-types";
5
4
  import Modal from "./Modal";
6
5
  import { Input } from "@/components/ui/input";
7
6
  import { Button } from "@/components/ui/button";
@@ -205,16 +204,3 @@ export default function AddCustomEmbeddingModal({
205
204
  </Modal>
206
205
  );
207
206
  }
208
-
209
- AddCustomEmbeddingModal.propTypes = {
210
- isOpen: PropTypes.bool.isRequired,
211
- onClose: PropTypes.func.isRequired,
212
- onCreated: PropTypes.func,
213
- onSaved: PropTypes.func,
214
- node: PropTypes.shape({
215
- id: PropTypes.string,
216
- name: PropTypes.string,
217
- prefix: PropTypes.string,
218
- baseUrl: PropTypes.string,
219
- }),
220
- };
@@ -2,7 +2,6 @@
2
2
  import Icon from "@/shared/components/Icon";
3
3
 
4
4
  import { useEffect, useState } from "react";
5
- import PropTypes from "prop-types";
6
5
  import { marked } from "marked";
7
6
  import { GITHUB_CONFIG } from "@/shared/constants/config";
8
7
  import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog";
@@ -75,8 +74,3 @@ export default function ChangelogModal({ isOpen, onClose }: ChangelogModalProps)
75
74
  </Dialog>
76
75
  );
77
76
  }
78
-
79
- ChangelogModal.propTypes = {
80
- isOpen: PropTypes.bool.isRequired,
81
- onClose: PropTypes.func.isRequired,
82
- };
@@ -2,7 +2,6 @@
2
2
  import Icon from "@/shared/components/Icon";
3
3
 
4
4
  import { useState, useEffect } from "react";
5
- import PropTypes from "prop-types";
6
5
  import Modal from "./Modal";
7
6
  import { Input } from "@/components/ui/input";
8
7
  import { Button } from "@/components/ui/button";
@@ -205,9 +204,3 @@ export default function CursorAuthModal({ isOpen, onSuccess, onClose }: CursorAu
205
204
  </Modal>
206
205
  );
207
206
  }
208
-
209
- CursorAuthModal.propTypes = {
210
- isOpen: PropTypes.bool.isRequired,
211
- onSuccess: PropTypes.func,
212
- onClose: PropTypes.func.isRequired,
213
- };