@thangnm.nip/irouter 0.0.10 → 0.0.12

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 (844) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +3 -1
  3. package/app/.next/build-manifest.json +4 -4
  4. package/app/.next/prerender-manifest.json +27 -3
  5. package/app/.next/required-server-files.json +6 -3
  6. package/app/.next/routes-manifest.json +12 -0
  7. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -0
  8. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -0
  9. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -0
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  14. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  17. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/employees/[keyId]/page.js +2 -2
  20. package/app/.next/server/app/(dashboard)/dashboard/employees/[keyId]/page.js.nft.json +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/employees/[keyId]/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/employees/page.js +2 -2
  23. package/app/.next/server/app/(dashboard)/dashboard/employees/page.js.nft.json +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/employees/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +3 -3
  26. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  29. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  32. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  35. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  38. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  41. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  44. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  47. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  50. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  53. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  56. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/_global-error/page.js +3 -3
  59. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/_global-error.html +1 -1
  61. package/app/.next/server/app/_global-error.rsc +1 -1
  62. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  63. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  64. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  65. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  66. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  67. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  68. package/app/.next/server/app/_not-found/page.js +2 -2
  69. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  70. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/_not-found.html +1 -1
  72. package/app/.next/server/app/_not-found.rsc +5 -4
  73. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +5 -4
  74. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  75. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +5 -4
  76. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  77. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  78. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
  79. package/app/.next/server/app/api/auth/login/route.js +1 -1
  80. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  81. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  83. package/app/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  84. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  86. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  87. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  89. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  90. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  92. package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  93. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  95. package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  98. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  99. package/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  101. package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  102. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  104. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  105. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  107. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  108. package/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  110. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  113. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  114. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  116. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  119. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  120. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  122. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  123. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/combos/route.js +1 -1
  125. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  126. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/employees/[keyId]/stats/route.js +66 -1
  128. package/app/.next/server/app/api/employees/[keyId]/stats/route.js.nft.json +1 -1
  129. package/app/.next/server/app/api/employees/[keyId]/stats/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/employees/stats/route.js +66 -1
  131. package/app/.next/server/app/api/employees/stats/route.js.nft.json +1 -1
  132. package/app/.next/server/app/api/employees/stats/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/init/route.js +1 -1
  134. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  135. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  137. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/keys/route.js +1 -1
  140. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  141. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/locale/route.js +1 -1
  143. package/app/.next/server/app/api/locale/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/models/alias/route.js +1 -1
  146. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  147. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/models/availability/route.js +1 -0
  149. package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -0
  150. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -0
  151. package/app/.next/server/app/api/models/route.js +1 -1
  152. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  153. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/models/test/route.js +1 -1
  155. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  158. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  159. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  161. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  162. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  164. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  165. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  167. package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  168. package/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  170. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  173. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  176. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  177. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  179. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  180. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/pricing/route.js +1 -1
  182. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  183. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  185. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  186. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  188. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  189. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  191. package/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  194. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  195. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  197. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  198. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  200. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  201. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  203. package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  204. package/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  205. package/app/.next/server/app/api/providers/client/route.js +1 -1
  206. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  207. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  208. package/app/.next/server/app/api/providers/route.js +1 -1
  209. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  210. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  212. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  213. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  215. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  216. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  218. package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  219. package/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  221. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  222. package/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
  223. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  224. package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
  225. package/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
  226. package/app/.next/server/app/api/settings/database/route.js +1 -1
  227. package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
  228. package/app/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  229. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  230. package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  231. package/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  232. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  233. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  234. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  235. package/app/.next/server/app/api/settings/route.js +1 -1
  236. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  237. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  238. package/app/.next/server/app/api/shutdown/route.js +1 -1
  239. package/app/.next/server/app/api/shutdown/route.js.nft.json +1 -1
  240. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  241. package/app/.next/server/app/api/tags/route.js +1 -1
  242. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  243. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  244. package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  245. package/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  246. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  247. package/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  248. package/app/.next/server/app/api/translator/load/route.js +1 -1
  249. package/app/.next/server/app/api/translator/load/route.js.nft.json +1 -1
  250. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  251. package/app/.next/server/app/api/translator/save/route.js +1 -1
  252. package/app/.next/server/app/api/translator/save/route.js.nft.json +1 -1
  253. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  254. package/app/.next/server/app/api/translator/send/route.js +1 -1
  255. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  256. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  257. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  258. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  259. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  260. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  261. package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  262. package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  263. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  264. package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  265. package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  266. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  267. package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
  268. package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  269. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  270. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  271. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  272. package/app/.next/server/app/api/usage/chart/route.js +66 -1
  273. package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  274. package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  275. package/app/.next/server/app/api/usage/history/route.js +66 -1
  276. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  277. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  278. package/app/.next/server/app/api/usage/logs/route.js +66 -1
  279. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  280. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  281. package/app/.next/server/app/api/usage/providers/route.js +66 -1
  282. package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  283. package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  284. package/app/.next/server/app/api/usage/request-details/[id]/route.js +1 -1
  285. package/app/.next/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
  286. package/app/.next/server/app/api/usage/request-details/[id]/route_client-reference-manifest.js +1 -1
  287. package/app/.next/server/app/api/usage/request-details/route.js +66 -1
  288. package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  289. package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  290. package/app/.next/server/app/api/usage/request-logs/route.js +66 -1
  291. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  292. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  293. package/app/.next/server/app/api/usage/stats/route.js +66 -1
  294. package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  295. package/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  296. package/app/.next/server/app/api/usage/stream/route.js +69 -4
  297. package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  298. package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  299. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  300. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  301. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  302. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  303. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  304. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  305. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  306. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  307. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  308. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  309. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  310. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  311. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  312. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  313. package/app/.next/server/app/api/v1/models/route.js +1 -1
  314. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  315. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  316. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  317. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  318. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  319. package/app/.next/server/app/api/v1/route.js +1 -1
  320. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  321. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  322. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  323. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  324. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  325. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  326. package/app/.next/server/app/api/v1internal/route.js +1 -1
  327. package/app/.next/server/app/api/v1internal/route.js.nft.json +1 -1
  328. package/app/.next/server/app/api/v1internal/route_client-reference-manifest.js +1 -1
  329. package/app/.next/server/app/api/version/route.js +1 -1
  330. package/app/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  331. package/app/.next/server/app/callback/page.js +2 -2
  332. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  333. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  334. package/app/.next/server/app/callback.html +1 -1
  335. package/app/.next/server/app/callback.rsc +6 -5
  336. package/app/.next/server/app/callback.segments/_full.segment.rsc +6 -5
  337. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  338. package/app/.next/server/app/callback.segments/_index.segment.rsc +5 -4
  339. package/app/.next/server/app/callback.segments/_tree.segment.rsc +3 -2
  340. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
  341. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  342. package/app/.next/server/app/dashboard/basic-chat.html +1 -0
  343. package/app/.next/server/app/dashboard/basic-chat.meta +17 -0
  344. package/app/.next/server/app/dashboard/basic-chat.rsc +24 -0
  345. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +6 -0
  346. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +5 -0
  347. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  348. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  349. package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +24 -0
  350. package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +6 -0
  351. package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +9 -0
  352. package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +6 -0
  353. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  354. package/app/.next/server/app/dashboard/cli-tools.rsc +8 -7
  355. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  356. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  357. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  358. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  359. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -7
  360. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  361. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +5 -4
  362. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +3 -2
  363. package/app/.next/server/app/dashboard/combos.html +1 -1
  364. package/app/.next/server/app/dashboard/combos.rsc +7 -6
  365. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  366. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  367. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  368. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  369. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +7 -6
  370. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  371. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +5 -4
  372. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +3 -2
  373. package/app/.next/server/app/dashboard/employees.html +1 -1
  374. package/app/.next/server/app/dashboard/employees.rsc +7 -6
  375. package/app/.next/server/app/dashboard/employees.segments/!KGRhc2hib2FyZCk/dashboard/employees/__PAGE__.segment.rsc +2 -2
  376. package/app/.next/server/app/dashboard/employees.segments/!KGRhc2hib2FyZCk/dashboard/employees.segment.rsc +1 -1
  377. package/app/.next/server/app/dashboard/employees.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  378. package/app/.next/server/app/dashboard/employees.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  379. package/app/.next/server/app/dashboard/employees.segments/_full.segment.rsc +7 -6
  380. package/app/.next/server/app/dashboard/employees.segments/_head.segment.rsc +1 -1
  381. package/app/.next/server/app/dashboard/employees.segments/_index.segment.rsc +5 -4
  382. package/app/.next/server/app/dashboard/employees.segments/_tree.segment.rsc +3 -2
  383. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  384. package/app/.next/server/app/dashboard/endpoint.rsc +8 -7
  385. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  386. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  387. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  388. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  389. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -7
  390. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  391. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +5 -4
  392. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +3 -2
  393. package/app/.next/server/app/dashboard/mitm.html +1 -1
  394. package/app/.next/server/app/dashboard/mitm.rsc +7 -6
  395. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  396. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  397. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  398. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  399. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -6
  400. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  401. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +5 -4
  402. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +3 -2
  403. package/app/.next/server/app/dashboard/profile.html +1 -1
  404. package/app/.next/server/app/dashboard/profile.rsc +7 -6
  405. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  406. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  407. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  408. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  409. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +7 -6
  410. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  411. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +5 -4
  412. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +3 -2
  413. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  414. package/app/.next/server/app/dashboard/providers/new.rsc +7 -6
  415. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  416. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  417. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  418. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  419. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  420. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -6
  421. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  422. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +5 -4
  423. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +3 -2
  424. package/app/.next/server/app/dashboard/providers.html +1 -1
  425. package/app/.next/server/app/dashboard/providers.rsc +7 -6
  426. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  427. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  428. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  429. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  430. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +7 -6
  431. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  432. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +5 -4
  433. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +3 -2
  434. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  435. package/app/.next/server/app/dashboard/proxy-pools.rsc +7 -6
  436. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  437. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  438. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  439. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  440. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -6
  441. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  442. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +5 -4
  443. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +3 -2
  444. package/app/.next/server/app/dashboard/quota.html +2 -2
  445. package/app/.next/server/app/dashboard/quota.rsc +8 -7
  446. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  447. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  448. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  449. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  450. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +8 -7
  451. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  452. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +5 -4
  453. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +3 -2
  454. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  455. package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  456. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  457. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  458. package/app/.next/server/app/dashboard/settings/pricing.rsc +6 -5
  459. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -5
  460. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  461. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +5 -4
  462. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +3 -2
  463. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  464. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  465. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  466. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  467. package/app/.next/server/app/dashboard/translator.html +1 -1
  468. package/app/.next/server/app/dashboard/translator.rsc +7 -6
  469. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  470. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  471. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  472. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  473. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +7 -6
  474. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  475. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +5 -4
  476. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +3 -2
  477. package/app/.next/server/app/dashboard/usage.html +1 -1
  478. package/app/.next/server/app/dashboard/usage.rsc +7 -6
  479. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  480. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  481. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  482. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  483. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +7 -6
  484. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  485. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +5 -4
  486. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +3 -2
  487. package/app/.next/server/app/dashboard.html +1 -1
  488. package/app/.next/server/app/dashboard.rsc +6 -5
  489. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +1 -1
  490. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  491. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  492. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +6 -5
  493. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  494. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +5 -4
  495. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +3 -2
  496. package/app/.next/server/app/favicon.ico/route.js +1 -1
  497. package/app/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  498. package/app/.next/server/app/index.html +1 -1
  499. package/app/.next/server/app/index.rsc +5 -4
  500. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  501. package/app/.next/server/app/index.segments/_full.segment.rsc +5 -4
  502. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  503. package/app/.next/server/app/index.segments/_index.segment.rsc +5 -4
  504. package/app/.next/server/app/index.segments/_tree.segment.rsc +3 -2
  505. package/app/.next/server/app/landing/page.js +2 -2
  506. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  507. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  508. package/app/.next/server/app/landing.html +1 -1
  509. package/app/.next/server/app/landing.rsc +6 -5
  510. package/app/.next/server/app/landing.segments/_full.segment.rsc +6 -5
  511. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  512. package/app/.next/server/app/landing.segments/_index.segment.rsc +5 -4
  513. package/app/.next/server/app/landing.segments/_tree.segment.rsc +3 -2
  514. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  515. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  516. package/app/.next/server/app/login/page.js +2 -2
  517. package/app/.next/server/app/login/page.js.nft.json +1 -1
  518. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  519. package/app/.next/server/app/login.html +1 -1
  520. package/app/.next/server/app/login.rsc +6 -5
  521. package/app/.next/server/app/login.segments/_full.segment.rsc +6 -5
  522. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  523. package/app/.next/server/app/login.segments/_index.segment.rsc +5 -4
  524. package/app/.next/server/app/login.segments/_tree.segment.rsc +3 -2
  525. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  526. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  527. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  528. package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  529. package/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  530. package/app/.next/server/app/page.js +2 -2
  531. package/app/.next/server/app/page.js.nft.json +1 -1
  532. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  533. package/app/.next/server/app-paths-manifest.json +3 -1
  534. package/app/.next/server/chunks/1130.js +1 -1
  535. package/app/.next/server/chunks/118.js +1 -0
  536. package/app/.next/server/chunks/1220.js +1 -1
  537. package/app/.next/server/chunks/1424.js +1 -1
  538. package/app/.next/server/chunks/2664.js +1 -0
  539. package/app/.next/server/chunks/3093.js +72 -7
  540. package/app/.next/server/chunks/336.js +66 -1
  541. package/app/.next/server/chunks/412.js +2 -2
  542. package/app/.next/server/chunks/5270.js +1 -1
  543. package/app/.next/server/chunks/5708.js +1 -0
  544. package/app/.next/server/chunks/6072.js +43 -0
  545. package/app/.next/server/chunks/6182.js +4 -4
  546. package/app/.next/server/chunks/63.js +3 -3
  547. package/app/.next/server/chunks/649.js +1 -1
  548. package/app/.next/server/chunks/6828.js +1 -1
  549. package/app/.next/server/chunks/7774.js +2 -2
  550. package/app/.next/server/chunks/8895.js +2 -2
  551. package/app/.next/server/chunks/9201.js +1 -1
  552. package/app/.next/server/chunks/9718.js +1 -1
  553. package/app/.next/server/middleware-build-manifest.js +1 -1
  554. package/app/.next/server/middleware.js +3 -3
  555. package/app/.next/server/next-font-manifest.js +1 -1
  556. package/app/.next/server/next-font-manifest.json +1 -1
  557. package/app/.next/server/pages/404.html +1 -1
  558. package/app/.next/server/pages/500.html +1 -1
  559. package/app/.next/server/server-reference-manifest.js +1 -1
  560. package/app/.next/server/server-reference-manifest.json +1 -1
  561. package/app/.next/static/chunks/5242-250aca99680a5860.js +1 -0
  562. package/app/.next/static/chunks/5497-c246d6c185ae4515.js +7 -0
  563. package/app/.next/static/chunks/5772-901f1092d831ec37.js +3 -0
  564. package/app/.next/static/chunks/6902-135c924f2deafe46.js +1 -0
  565. package/app/.next/static/chunks/{9242-b33771537db21368.js → 9242-35c67551a31e8ed3.js} +2 -2
  566. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-dbf8fae8c8837130.js +1 -0
  567. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-89c2a22ca02ca0d8.js +1 -0
  568. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-db322270ec972db0.js +1 -0
  569. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-7b0d61cbbe1a47c2.js +1 -0
  570. package/app/.next/static/chunks/app/(dashboard)/dashboard/employees/[keyId]/page-260c2e244f08d44e.js +1 -0
  571. package/app/.next/static/chunks/app/(dashboard)/dashboard/employees/{page-8eb8511823bab5a8.js → page-1186beab09df32f8.js} +1 -1
  572. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/{page-5c259d7d447b6aee.js → page-11d04ce754400525.js} +2 -2
  573. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-2346c1fbdc93e171.js → page-7bb014b116bacd70.js} +1 -1
  574. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-bc93a8fd4c287f29.js +1 -0
  575. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-f113b1a6fd5bf364.js +1 -0
  576. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-4d697847e773ee9f.js +1 -0
  577. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-f38b4a179ec6ebeb.js → page-7d54c03780f36a77.js} +1 -1
  578. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-07b03df6908bbfc0.js +1 -0
  579. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-e4f676cf79e465b1.js → page-5268c095e868ce3d.js} +2 -2
  580. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-f33a92ade5e4806e.js +1 -0
  581. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-2bb6f99a3d1d9206.js +1 -0
  582. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-527700ed764617bf.js +1 -0
  583. package/app/.next/static/chunks/app/(dashboard)/{layout-0c70201c7bb15ab5.js → layout-fc4ee3669b9e2432.js} +1 -1
  584. package/app/.next/static/chunks/app/_global-error/page-bc93a8fd4c287f29.js +1 -0
  585. package/app/.next/static/chunks/app/_not-found/page-277ff0ac5be7dff3.js +1 -0
  586. package/app/.next/static/chunks/app/api/auth/login/route-bc93a8fd4c287f29.js +1 -0
  587. package/app/.next/static/chunks/app/api/auth/logout/route-bc93a8fd4c287f29.js +1 -0
  588. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-bc93a8fd4c287f29.js +1 -0
  589. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-bc93a8fd4c287f29.js +1 -0
  590. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-bc93a8fd4c287f29.js +1 -0
  591. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-bc93a8fd4c287f29.js +1 -0
  592. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-bc93a8fd4c287f29.js +1 -0
  593. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-bc93a8fd4c287f29.js +1 -0
  594. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-bc93a8fd4c287f29.js +1 -0
  595. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-bc93a8fd4c287f29.js +1 -0
  596. package/app/.next/static/chunks/app/api/cloud/auth/route-bc93a8fd4c287f29.js +1 -0
  597. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-bc93a8fd4c287f29.js +1 -0
  598. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-bc93a8fd4c287f29.js +1 -0
  599. package/app/.next/static/chunks/app/api/cloud/models/alias/route-bc93a8fd4c287f29.js +1 -0
  600. package/app/.next/static/chunks/app/api/combos/[id]/route-bc93a8fd4c287f29.js +1 -0
  601. package/app/.next/static/chunks/app/api/combos/route-bc93a8fd4c287f29.js +1 -0
  602. package/app/.next/static/chunks/app/api/employees/[keyId]/stats/route-bc93a8fd4c287f29.js +1 -0
  603. package/app/.next/static/chunks/app/api/employees/stats/route-bc93a8fd4c287f29.js +1 -0
  604. package/app/.next/static/chunks/app/api/init/route-bc93a8fd4c287f29.js +1 -0
  605. package/app/.next/static/chunks/app/api/keys/[id]/route-bc93a8fd4c287f29.js +1 -0
  606. package/app/.next/static/chunks/app/api/keys/route-bc93a8fd4c287f29.js +1 -0
  607. package/app/.next/static/chunks/app/api/locale/route-bc93a8fd4c287f29.js +1 -0
  608. package/app/.next/static/chunks/app/api/models/alias/route-bc93a8fd4c287f29.js +1 -0
  609. package/app/.next/static/chunks/app/api/models/availability/route-bc93a8fd4c287f29.js +1 -0
  610. package/app/.next/static/chunks/app/api/models/route-bc93a8fd4c287f29.js +1 -0
  611. package/app/.next/static/chunks/app/api/models/test/route-bc93a8fd4c287f29.js +1 -0
  612. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-bc93a8fd4c287f29.js +1 -0
  613. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-bc93a8fd4c287f29.js +1 -0
  614. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-bc93a8fd4c287f29.js +1 -0
  615. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-bc93a8fd4c287f29.js +1 -0
  616. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-bc93a8fd4c287f29.js +1 -0
  617. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-bc93a8fd4c287f29.js +1 -0
  618. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-bc93a8fd4c287f29.js +1 -0
  619. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-bc93a8fd4c287f29.js +1 -0
  620. package/app/.next/static/chunks/app/api/pricing/route-bc93a8fd4c287f29.js +1 -0
  621. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-bc93a8fd4c287f29.js +1 -0
  622. package/app/.next/static/chunks/app/api/provider-nodes/route-bc93a8fd4c287f29.js +1 -0
  623. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-bc93a8fd4c287f29.js +1 -0
  624. package/app/.next/static/chunks/app/api/providers/[id]/models/route-bc93a8fd4c287f29.js +1 -0
  625. package/app/.next/static/chunks/app/api/providers/[id]/route-bc93a8fd4c287f29.js +1 -0
  626. package/app/.next/static/chunks/app/api/providers/[id]/test/route-bc93a8fd4c287f29.js +1 -0
  627. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-bc93a8fd4c287f29.js +1 -0
  628. package/app/.next/static/chunks/app/api/providers/client/route-bc93a8fd4c287f29.js +1 -0
  629. package/app/.next/static/chunks/app/api/providers/route-bc93a8fd4c287f29.js +1 -0
  630. package/app/.next/static/chunks/app/api/providers/test-batch/route-bc93a8fd4c287f29.js +1 -0
  631. package/app/.next/static/chunks/app/api/providers/validate/route-bc93a8fd4c287f29.js +1 -0
  632. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-bc93a8fd4c287f29.js +1 -0
  633. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-bc93a8fd4c287f29.js +1 -0
  634. package/app/.next/static/chunks/app/api/proxy-pools/route-bc93a8fd4c287f29.js +1 -0
  635. package/app/.next/static/chunks/app/api/settings/database/route-bc93a8fd4c287f29.js +1 -0
  636. package/app/.next/static/chunks/app/api/settings/proxy-test/route-bc93a8fd4c287f29.js +1 -0
  637. package/app/.next/static/chunks/app/api/settings/require-login/route-bc93a8fd4c287f29.js +1 -0
  638. package/app/.next/static/chunks/app/api/settings/route-bc93a8fd4c287f29.js +1 -0
  639. package/app/.next/static/chunks/app/api/shutdown/route-bc93a8fd4c287f29.js +1 -0
  640. package/app/.next/static/chunks/app/api/tags/route-bc93a8fd4c287f29.js +1 -0
  641. package/app/.next/static/chunks/app/api/translator/console-logs/route-bc93a8fd4c287f29.js +1 -0
  642. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-bc93a8fd4c287f29.js +1 -0
  643. package/app/.next/static/chunks/app/api/translator/load/route-bc93a8fd4c287f29.js +1 -0
  644. package/app/.next/static/chunks/app/api/translator/save/route-bc93a8fd4c287f29.js +1 -0
  645. package/app/.next/static/chunks/app/api/translator/send/route-bc93a8fd4c287f29.js +1 -0
  646. package/app/.next/static/chunks/app/api/translator/translate/route-bc93a8fd4c287f29.js +1 -0
  647. package/app/.next/static/chunks/app/api/tunnel/disable/route-bc93a8fd4c287f29.js +1 -0
  648. package/app/.next/static/chunks/app/api/tunnel/enable/route-bc93a8fd4c287f29.js +1 -0
  649. package/app/.next/static/chunks/app/api/tunnel/status/route-bc93a8fd4c287f29.js +1 -0
  650. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-bc93a8fd4c287f29.js +1 -0
  651. package/app/.next/static/chunks/app/api/usage/chart/route-bc93a8fd4c287f29.js +1 -0
  652. package/app/.next/static/chunks/app/api/usage/history/route-bc93a8fd4c287f29.js +1 -0
  653. package/app/.next/static/chunks/app/api/usage/logs/route-bc93a8fd4c287f29.js +1 -0
  654. package/app/.next/static/chunks/app/api/usage/providers/route-bc93a8fd4c287f29.js +1 -0
  655. package/app/.next/static/chunks/app/api/usage/request-details/[id]/route-bc93a8fd4c287f29.js +1 -0
  656. package/app/.next/static/chunks/app/api/usage/request-details/route-bc93a8fd4c287f29.js +1 -0
  657. package/app/.next/static/chunks/app/api/usage/request-logs/route-bc93a8fd4c287f29.js +1 -0
  658. package/app/.next/static/chunks/app/api/usage/stats/route-bc93a8fd4c287f29.js +1 -0
  659. package/app/.next/static/chunks/app/api/usage/stream/route-bc93a8fd4c287f29.js +1 -0
  660. package/app/.next/static/chunks/app/api/v1/api/chat/route-bc93a8fd4c287f29.js +1 -0
  661. package/app/.next/static/chunks/app/api/v1/chat/completions/route-bc93a8fd4c287f29.js +1 -0
  662. package/app/.next/static/chunks/app/api/v1/embeddings/route-bc93a8fd4c287f29.js +1 -0
  663. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-bc93a8fd4c287f29.js +1 -0
  664. package/app/.next/static/chunks/app/api/v1/messages/route-bc93a8fd4c287f29.js +1 -0
  665. package/app/.next/static/chunks/app/api/v1/models/route-bc93a8fd4c287f29.js +1 -0
  666. package/app/.next/static/chunks/app/api/v1/responses/route-bc93a8fd4c287f29.js +1 -0
  667. package/app/.next/static/chunks/app/api/v1/route-bc93a8fd4c287f29.js +1 -0
  668. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-bc93a8fd4c287f29.js +1 -0
  669. package/app/.next/static/chunks/app/api/v1beta/models/route-bc93a8fd4c287f29.js +1 -0
  670. package/app/.next/static/chunks/app/api/v1internal/route-bc93a8fd4c287f29.js +1 -0
  671. package/app/.next/static/chunks/app/api/version/route-bc93a8fd4c287f29.js +1 -0
  672. package/app/.next/static/chunks/app/callback/{page-9d25f25730ec1a87.js → page-a288ef2f47fd5eb3.js} +1 -1
  673. package/app/.next/static/chunks/app/dashboard/settings/pricing/{page-107a395e4ebca682.js → page-f94017840394ebe8.js} +1 -1
  674. package/app/.next/static/chunks/app/landing/page-1d109564bc0bc007.js +1 -0
  675. package/app/.next/static/chunks/app/{layout-24366c741111b3ce.js → layout-372932853e1ca466.js} +1 -1
  676. package/app/.next/static/chunks/app/login/page-60dcddda96a06c28.js +1 -0
  677. package/app/.next/static/chunks/app/manifest.webmanifest/route-bc93a8fd4c287f29.js +1 -0
  678. package/app/.next/static/chunks/app/page-bc93a8fd4c287f29.js +1 -0
  679. package/app/.next/static/chunks/{main-app-d65284096ddebd50.js → main-app-825c409f56c59467.js} +1 -1
  680. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-bc93a8fd4c287f29.js +1 -0
  681. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-bc93a8fd4c287f29.js +1 -0
  682. package/app/.next/static/chunks/next/dist/client/components/builtin/global-error-45c792615bbed600.js +1 -0
  683. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-bc93a8fd4c287f29.js +1 -0
  684. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-bc93a8fd4c287f29.js +1 -0
  685. package/app/.next/static/chunks/{webpack-1094c4a28660424b.js → webpack-a2cf08368369c277.js} +1 -1
  686. package/app/.next/static/css/081a0afca5a9bd20.css +1 -0
  687. package/app/.next/static/css/bc7b15f1fd95fc16.css +1 -0
  688. package/app/.next/static/jte_Hfgy-t_AHpT39tLxg/_buildManifest.js +1 -0
  689. package/app/i18n/README.ja-JP.md +1209 -0
  690. package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  691. package/app/node_modules/better-sqlite3/lib/database.js +90 -0
  692. package/app/node_modules/better-sqlite3/lib/index.js +3 -0
  693. package/app/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  694. package/app/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  695. package/app/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  696. package/app/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  697. package/app/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  698. package/app/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  699. package/app/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  700. package/app/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  701. package/app/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  702. package/app/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  703. package/app/node_modules/better-sqlite3/lib/util.js +12 -0
  704. package/app/node_modules/better-sqlite3/package.json +59 -0
  705. package/app/node_modules/bindings/bindings.js +221 -0
  706. package/app/node_modules/bindings/package.json +28 -0
  707. package/app/node_modules/file-uri-to-path/index.js +66 -0
  708. package/app/node_modules/file-uri-to-path/package.json +32 -0
  709. package/app/open-sse/executors/iflow.js +5 -1
  710. package/app/open-sse/handlers/chatCore/nonStreamingHandler.js +10 -0
  711. package/app/open-sse/handlers/chatCore/sseToJsonHandler.js +61 -4
  712. package/app/open-sse/services/accountFallback.js +6 -0
  713. package/app/open-sse/services/combo.js +59 -7
  714. package/app/open-sse/translator/helpers/geminiHelper.js +9 -1
  715. package/app/open-sse/translator/request/openai-to-claude.js +5 -0
  716. package/app/open-sse/translator/request/openai-to-gemini.js +4 -2
  717. package/app/open-sse/translator/request/openai-to-kiro.js +32 -19
  718. package/app/open-sse/translator/response/openai-responses.js +6 -3
  719. package/app/package.json +3 -2
  720. package/app/public/providers/assemblyai.png +0 -0
  721. package/app/public/providers/deepgram.png +0 -0
  722. package/app/public/providers/hyperbolic.png +0 -0
  723. package/app/public/providers/nanobanana.png +0 -0
  724. package/app/server.js +1 -1
  725. package/hooks/postinstall.js +94 -43
  726. package/package.json +1 -1
  727. package/app/.next/server/chunks/4755.js +0 -1
  728. package/app/.next/server/chunks/4989.js +0 -2
  729. package/app/.next/server/chunks/5984.js +0 -1
  730. package/app/.next/server/chunks/6649.js +0 -1
  731. package/app/.next/server/chunks/6836.js +0 -1
  732. package/app/.next/static/6NQ1tUqoUU-Vnz_TZ3Qh-/_buildManifest.js +0 -1
  733. package/app/.next/static/chunks/5497-9d0bc17e435a8c93.js +0 -7
  734. package/app/.next/static/chunks/5772-81f907ca6ec17897.js +0 -3
  735. package/app/.next/static/chunks/6902-59c9bd4da89daa6c.js +0 -1
  736. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-498aa76895400b7f.js +0 -1
  737. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-a2900807101b8a33.js +0 -1
  738. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-6f9b44a8af082c71.js +0 -1
  739. package/app/.next/static/chunks/app/(dashboard)/dashboard/employees/[keyId]/page-349626384b53a093.js +0 -1
  740. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-aed1b231bb49a704.js +0 -1
  741. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-493eb2eac64153a5.js +0 -1
  742. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-7efc5c1ea19f02ec.js +0 -1
  743. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-cd17e15c22790e9b.js +0 -1
  744. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-a6bd29ee2d2672c6.js +0 -1
  745. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-173679dc8c62c4a0.js +0 -1
  746. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-de3fbce2b737ec72.js +0 -1
  747. package/app/.next/static/chunks/app/_global-error/page-aed1b231bb49a704.js +0 -1
  748. package/app/.next/static/chunks/app/_not-found/page-7e26da6572c546ac.js +0 -1
  749. package/app/.next/static/chunks/app/api/auth/login/route-aed1b231bb49a704.js +0 -1
  750. package/app/.next/static/chunks/app/api/auth/logout/route-aed1b231bb49a704.js +0 -1
  751. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-aed1b231bb49a704.js +0 -1
  752. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-aed1b231bb49a704.js +0 -1
  753. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-aed1b231bb49a704.js +0 -1
  754. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-aed1b231bb49a704.js +0 -1
  755. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-aed1b231bb49a704.js +0 -1
  756. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-aed1b231bb49a704.js +0 -1
  757. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-aed1b231bb49a704.js +0 -1
  758. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-aed1b231bb49a704.js +0 -1
  759. package/app/.next/static/chunks/app/api/cloud/auth/route-aed1b231bb49a704.js +0 -1
  760. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-aed1b231bb49a704.js +0 -1
  761. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-aed1b231bb49a704.js +0 -1
  762. package/app/.next/static/chunks/app/api/cloud/models/alias/route-aed1b231bb49a704.js +0 -1
  763. package/app/.next/static/chunks/app/api/combos/[id]/route-aed1b231bb49a704.js +0 -1
  764. package/app/.next/static/chunks/app/api/combos/route-aed1b231bb49a704.js +0 -1
  765. package/app/.next/static/chunks/app/api/employees/[keyId]/stats/route-aed1b231bb49a704.js +0 -1
  766. package/app/.next/static/chunks/app/api/employees/stats/route-aed1b231bb49a704.js +0 -1
  767. package/app/.next/static/chunks/app/api/init/route-aed1b231bb49a704.js +0 -1
  768. package/app/.next/static/chunks/app/api/keys/[id]/route-aed1b231bb49a704.js +0 -1
  769. package/app/.next/static/chunks/app/api/keys/route-aed1b231bb49a704.js +0 -1
  770. package/app/.next/static/chunks/app/api/locale/route-aed1b231bb49a704.js +0 -1
  771. package/app/.next/static/chunks/app/api/models/alias/route-aed1b231bb49a704.js +0 -1
  772. package/app/.next/static/chunks/app/api/models/route-aed1b231bb49a704.js +0 -1
  773. package/app/.next/static/chunks/app/api/models/test/route-aed1b231bb49a704.js +0 -1
  774. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-aed1b231bb49a704.js +0 -1
  775. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-aed1b231bb49a704.js +0 -1
  776. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-aed1b231bb49a704.js +0 -1
  777. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-aed1b231bb49a704.js +0 -1
  778. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-aed1b231bb49a704.js +0 -1
  779. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-aed1b231bb49a704.js +0 -1
  780. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-aed1b231bb49a704.js +0 -1
  781. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-aed1b231bb49a704.js +0 -1
  782. package/app/.next/static/chunks/app/api/pricing/route-aed1b231bb49a704.js +0 -1
  783. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-aed1b231bb49a704.js +0 -1
  784. package/app/.next/static/chunks/app/api/provider-nodes/route-aed1b231bb49a704.js +0 -1
  785. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-aed1b231bb49a704.js +0 -1
  786. package/app/.next/static/chunks/app/api/providers/[id]/models/route-aed1b231bb49a704.js +0 -1
  787. package/app/.next/static/chunks/app/api/providers/[id]/route-aed1b231bb49a704.js +0 -1
  788. package/app/.next/static/chunks/app/api/providers/[id]/test/route-aed1b231bb49a704.js +0 -1
  789. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-aed1b231bb49a704.js +0 -1
  790. package/app/.next/static/chunks/app/api/providers/client/route-aed1b231bb49a704.js +0 -1
  791. package/app/.next/static/chunks/app/api/providers/route-aed1b231bb49a704.js +0 -1
  792. package/app/.next/static/chunks/app/api/providers/test-batch/route-aed1b231bb49a704.js +0 -1
  793. package/app/.next/static/chunks/app/api/providers/validate/route-aed1b231bb49a704.js +0 -1
  794. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-aed1b231bb49a704.js +0 -1
  795. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-aed1b231bb49a704.js +0 -1
  796. package/app/.next/static/chunks/app/api/proxy-pools/route-aed1b231bb49a704.js +0 -1
  797. package/app/.next/static/chunks/app/api/settings/database/route-aed1b231bb49a704.js +0 -1
  798. package/app/.next/static/chunks/app/api/settings/proxy-test/route-aed1b231bb49a704.js +0 -1
  799. package/app/.next/static/chunks/app/api/settings/require-login/route-aed1b231bb49a704.js +0 -1
  800. package/app/.next/static/chunks/app/api/settings/route-aed1b231bb49a704.js +0 -1
  801. package/app/.next/static/chunks/app/api/shutdown/route-aed1b231bb49a704.js +0 -1
  802. package/app/.next/static/chunks/app/api/tags/route-aed1b231bb49a704.js +0 -1
  803. package/app/.next/static/chunks/app/api/translator/console-logs/route-aed1b231bb49a704.js +0 -1
  804. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-aed1b231bb49a704.js +0 -1
  805. package/app/.next/static/chunks/app/api/translator/load/route-aed1b231bb49a704.js +0 -1
  806. package/app/.next/static/chunks/app/api/translator/save/route-aed1b231bb49a704.js +0 -1
  807. package/app/.next/static/chunks/app/api/translator/send/route-aed1b231bb49a704.js +0 -1
  808. package/app/.next/static/chunks/app/api/translator/translate/route-aed1b231bb49a704.js +0 -1
  809. package/app/.next/static/chunks/app/api/tunnel/disable/route-aed1b231bb49a704.js +0 -1
  810. package/app/.next/static/chunks/app/api/tunnel/enable/route-aed1b231bb49a704.js +0 -1
  811. package/app/.next/static/chunks/app/api/tunnel/status/route-aed1b231bb49a704.js +0 -1
  812. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-aed1b231bb49a704.js +0 -1
  813. package/app/.next/static/chunks/app/api/usage/chart/route-aed1b231bb49a704.js +0 -1
  814. package/app/.next/static/chunks/app/api/usage/history/route-aed1b231bb49a704.js +0 -1
  815. package/app/.next/static/chunks/app/api/usage/logs/route-aed1b231bb49a704.js +0 -1
  816. package/app/.next/static/chunks/app/api/usage/providers/route-aed1b231bb49a704.js +0 -1
  817. package/app/.next/static/chunks/app/api/usage/request-details/[id]/route-aed1b231bb49a704.js +0 -1
  818. package/app/.next/static/chunks/app/api/usage/request-details/route-aed1b231bb49a704.js +0 -1
  819. package/app/.next/static/chunks/app/api/usage/request-logs/route-aed1b231bb49a704.js +0 -1
  820. package/app/.next/static/chunks/app/api/usage/stats/route-aed1b231bb49a704.js +0 -1
  821. package/app/.next/static/chunks/app/api/usage/stream/route-aed1b231bb49a704.js +0 -1
  822. package/app/.next/static/chunks/app/api/v1/api/chat/route-aed1b231bb49a704.js +0 -1
  823. package/app/.next/static/chunks/app/api/v1/chat/completions/route-aed1b231bb49a704.js +0 -1
  824. package/app/.next/static/chunks/app/api/v1/embeddings/route-aed1b231bb49a704.js +0 -1
  825. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-aed1b231bb49a704.js +0 -1
  826. package/app/.next/static/chunks/app/api/v1/messages/route-aed1b231bb49a704.js +0 -1
  827. package/app/.next/static/chunks/app/api/v1/models/route-aed1b231bb49a704.js +0 -1
  828. package/app/.next/static/chunks/app/api/v1/responses/route-aed1b231bb49a704.js +0 -1
  829. package/app/.next/static/chunks/app/api/v1/route-aed1b231bb49a704.js +0 -1
  830. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-aed1b231bb49a704.js +0 -1
  831. package/app/.next/static/chunks/app/api/v1beta/models/route-aed1b231bb49a704.js +0 -1
  832. package/app/.next/static/chunks/app/api/v1internal/route-aed1b231bb49a704.js +0 -1
  833. package/app/.next/static/chunks/app/api/version/route-aed1b231bb49a704.js +0 -1
  834. package/app/.next/static/chunks/app/landing/page-a9fde23d5773613c.js +0 -1
  835. package/app/.next/static/chunks/app/login/page-650676272c54863b.js +0 -1
  836. package/app/.next/static/chunks/app/manifest.webmanifest/route-aed1b231bb49a704.js +0 -1
  837. package/app/.next/static/chunks/app/page-aed1b231bb49a704.js +0 -1
  838. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-aed1b231bb49a704.js +0 -1
  839. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-aed1b231bb49a704.js +0 -1
  840. package/app/.next/static/chunks/next/dist/client/components/builtin/global-error-3c2797dc10ec6327.js +0 -1
  841. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-aed1b231bb49a704.js +0 -1
  842. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-aed1b231bb49a704.js +0 -1
  843. package/app/.next/static/css/d8615a67dff78a65.css +0 -3
  844. /package/app/.next/static/{6NQ1tUqoUU-Vnz_TZ3Qh- → jte_Hfgy-t_AHpT39tLxg}/_ssgManifest.js +0 -0
@@ -0,0 +1,1209 @@
1
+ <div align="center">
2
+ <img src="../images/9router.png?1" alt="9Router Dashboard" width="800"/>
3
+
4
+ # 9Router - 無料 AI ルーター
5
+
6
+ **コーディングを止めない。スマートフォールバックで無料&格安AIモデルに自動ルーティング。**
7
+
8
+ **すべてのAIコーディングツール(Claude Code、Cursor、Antigravity、Copilot、Codex、Gemini、OpenCode、Cline、OpenClaw...)を40以上のAIプロバイダーと100以上のモデルに接続。**
9
+
10
+ [![npm](https://img.shields.io/npm/v/9router.svg)](https://www.npmjs.com/package/9router)
11
+ [![Downloads](https://img.shields.io/npm/dm/9router.svg)](https://www.npmjs.com/package/9router)
12
+ [![License](https://img.shields.io/npm/l/9router.svg)](https://github.com/decolua/9router/blob/main/LICENSE)
13
+
14
+ [🚀 クイックスタート](#-クイックスタート) • [💡 機能](#-主な機能) • [📖 セットアップ](#-セットアップガイド) • [🌐 ウェブサイト](https://9router.com)
15
+
16
+ [🇻🇳 Tiếng Việt](./README.vi.md) • [🇨🇳 中文](./README.zh-CN.md) • [🇯🇵 日本語](./README.ja-JP.md)
17
+ </div>
18
+
19
+ ---
20
+
21
+ ## 🤔 なぜ9Router?
22
+
23
+ **お金の無駄遣いと制限に悩まされるのはもう終わりです:**
24
+
25
+ - ❌ サブスクリプションのクオータが毎月未使用のまま期限切れ
26
+ - ❌ レート制限でコーディング中に停止
27
+ - ❌ 高額なAPI(プロバイダーごとに月額$20〜50)
28
+ - ❌ プロバイダー間の手動切り替え
29
+
30
+ **9Routerが解決します:**
31
+
32
+ - ✅ **サブスクリプションを最大化** - クオータを追跡し、リセット前にすべて使い切る
33
+ - ✅ **自動フォールバック** - サブスクリプション → 格安 → 無料、ダウンタイムゼロ
34
+ - ✅ **マルチアカウント** - プロバイダーごとにアカウント間でラウンドロビン
35
+ - ✅ **ユニバーサル** - Claude Code、Codex、Gemini CLI、Cursor、Cline、あらゆるCLIツールに対応
36
+
37
+ ---
38
+
39
+ ## 🔄 仕組み
40
+
41
+ ```
42
+ ┌─────────────┐
43
+ │ あなたの │ (Claude Code、Codex、Gemini CLI、OpenClaw、Cursor、Cline...)
44
+ │ CLIツール │
45
+ └──────┬──────┘
46
+ │ http://localhost:20128/v1
47
+
48
+ ┌─────────────────────────────────────────┐
49
+ │ 9Router(スマートルーター) │
50
+ │ • フォーマット変換(OpenAI ↔ Claude) │
51
+ │ • クオータ追跡 │
52
+ │ • 自動トークンリフレッシュ │
53
+ └──────┬──────────────────────────────────┘
54
+
55
+ ├─→ [Tier 1: サブスクリプション] Claude Code、Codex、Gemini CLI
56
+ │ ↓ クオータ消費済み
57
+ ├─→ [Tier 2: 格安] GLM ($0.6/1M)、MiniMax ($0.2/1M)
58
+ │ ↓ 予算上限
59
+ └─→ [Tier 3: 無料] iFlow、Qwen、Kiro(無制限)
60
+
61
+ 結果: コーディングが止まらない、最小コスト
62
+ ```
63
+
64
+ ---
65
+
66
+ ## ⚡ クイックスタート
67
+
68
+ **1. グローバルインストール:**
69
+
70
+ ```bash
71
+ npm install -g 9router
72
+ 9router
73
+ ```
74
+
75
+ 🎉 ダッシュボードが `http://localhost:20128` で開きます
76
+
77
+ **2. 無料プロバイダーを接続(サインアップ不要):**
78
+
79
+ ダッシュボード → Providers → **Claude Code** または **Antigravity** を接続 → OAuthログイン → 完了!
80
+
81
+ **3. CLIツールで使用:**
82
+
83
+ ```
84
+ Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Clineの設定:
85
+ エンドポイント: http://localhost:20128/v1
86
+ APIキー: [ダッシュボードからコピー]
87
+ モデル: if/kimi-k2-thinking
88
+ ```
89
+
90
+ **これだけです!** 無料AIモデルでコーディングを始めましょう。
91
+
92
+ **代替方法: ソースから実行(このリポジトリ):**
93
+
94
+ このリポジトリパッケージはプライベート(`9router-app`)のため、ソース/Docker実行がローカル開発の想定パスです。
95
+
96
+ ```bash
97
+ cp .env.example .env
98
+ npm install
99
+ PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev
100
+ ```
101
+
102
+ 本番モード:
103
+
104
+ ```bash
105
+ npm run build
106
+ PORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run start
107
+ ```
108
+
109
+ デフォルトURL:
110
+ - ダッシュボード: `http://localhost:20128/dashboard`
111
+ - OpenAI互換API: `http://localhost:20128/v1`
112
+
113
+ ---
114
+
115
+ ## 🎥 動画チュートリアル
116
+
117
+ <div align="center">
118
+
119
+ ### 📺 完全セットアップガイド - 9Router + Claude Code 無料
120
+
121
+ [![9Router + Claude Code Setup](https://img.youtube.com/vi/raEyZPg5xE0/maxresdefault.jpg)](https://www.youtube.com/watch?v=raEyZPg5xE0)
122
+
123
+ **🎬 ステップバイステップのチュートリアルを視聴:**
124
+ - ✅ 9Routerのインストールとセットアップ
125
+ - ✅ 無料Claude Sonnet 4.5の設定
126
+ - ✅ Claude Codeとの統合
127
+ - ✅ ライブコーディングデモ
128
+
129
+ **⏱️ 所要時間:** 20分 | **👥 作成:** Developer Community
130
+
131
+ [▶️ YouTubeで視聴](https://www.youtube.com/watch?v=o3qYCyjrFYg)
132
+
133
+ </div>
134
+
135
+ ---
136
+
137
+ ## 🛠️ 対応CLIツール
138
+
139
+ 9Routerはすべての主要AIコーディングツールとシームレスに連携します:
140
+
141
+ <div align="center">
142
+ <table>
143
+ <tr>
144
+ <td align="center" width="120">
145
+ <img src="../public/providers/claude.png" width="60" alt="Claude Code"/><br/>
146
+ <b>Claude-Code</b>
147
+ </td>
148
+ <td align="center" width="120">
149
+ <img src="../public/providers/openclaw.png" width="60" alt="OpenClaw"/><br/>
150
+ <b>OpenClaw</b>
151
+ </td>
152
+ <td align="center" width="120">
153
+ <img src="../public/providers/codex.png" width="60" alt="Codex"/><br/>
154
+ <b>Codex</b>
155
+ </td>
156
+ <td align="center" width="120">
157
+ <img src="../public/providers/opencode.png" width="60" alt="OpenCode"/><br/>
158
+ <b>OpenCode</b>
159
+ </td>
160
+ <td align="center" width="120">
161
+ <img src="../public/providers/cursor.png" width="60" alt="Cursor"/><br/>
162
+ <b>Cursor</b>
163
+ </td>
164
+ <td align="center" width="120">
165
+ <img src="../public/providers/antigravity.png" width="60" alt="Antigravity"/><br/>
166
+ <b>Antigravity</b>
167
+ </td>
168
+ </tr>
169
+ <tr>
170
+ <td align="center" width="120">
171
+ <img src="../public/providers/cline.png" width="60" alt="Cline"/><br/>
172
+ <b>Cline</b>
173
+ </td>
174
+ <td align="center" width="120">
175
+ <img src="../public/providers/continue.png" width="60" alt="Continue"/><br/>
176
+ <b>Continue</b>
177
+ </td>
178
+ <td align="center" width="120">
179
+ <img src="../public/providers/droid.png" width="60" alt="Droid"/><br/>
180
+ <b>Droid</b>
181
+ </td>
182
+ <td align="center" width="120">
183
+ <img src="../public/providers/roo.png" width="60" alt="Roo"/><br/>
184
+ <b>Roo</b>
185
+ </td>
186
+ <td align="center" width="120">
187
+ <img src="../public/providers/copilot.png" width="60" alt="Copilot"/><br/>
188
+ <b>Copilot</b>
189
+ </td>
190
+ <td align="center" width="120">
191
+ <img src="../public/providers/kilocode.png" width="60" alt="Kilo Code"/><br/>
192
+ <b>Kilo Code</b>
193
+ </td>
194
+ </tr>
195
+ </table>
196
+ </div>
197
+
198
+ ---
199
+
200
+ ## 🌐 対応プロバイダー
201
+
202
+ ### 🔐 OAuthプロバイダー
203
+
204
+ <div align="center">
205
+ <table>
206
+ <tr>
207
+ <td align="center" width="120">
208
+ <img src="../public/providers/claude.png" width="60" alt="Claude Code"/><br/>
209
+ <b>Claude-Code</b>
210
+ </td>
211
+ <td align="center" width="120">
212
+ <img src="../public/providers/antigravity.png" width="60" alt="Antigravity"/><br/>
213
+ <b>Antigravity</b>
214
+ </td>
215
+ <td align="center" width="120">
216
+ <img src="../public/providers/codex.png" width="60" alt="Codex"/><br/>
217
+ <b>Codex</b>
218
+ </td>
219
+ <td align="center" width="120">
220
+ <img src="../public/providers/github.png" width="60" alt="GitHub"/><br/>
221
+ <b>GitHub</b>
222
+ </td>
223
+ <td align="center" width="120">
224
+ <img src="../public/providers/cursor.png" width="60" alt="Cursor"/><br/>
225
+ <b>Cursor</b>
226
+ </td>
227
+ </tr>
228
+ </table>
229
+ </div>
230
+
231
+ ### 🆓 無料プロバイダー
232
+
233
+ <div align="center">
234
+ <table>
235
+ <tr>
236
+ <td align="center" width="150">
237
+ <img src="../public/providers/iflow.png" width="70" alt="iFlow"/><br/>
238
+ <b>iFlow AI</b><br/>
239
+ <sub>8以上のモデル • 無制限</sub>
240
+ </td>
241
+ <td align="center" width="150">
242
+ <img src="../public/providers/qwen.png" width="70" alt="Qwen"/><br/>
243
+ <b>Qwen Code</b><br/>
244
+ <sub>3以上のモデル • 無制限</sub>
245
+ </td>
246
+ <td align="center" width="150">
247
+ <img src="../public/providers/gemini-cli.png" width="70" alt="Gemini CLI"/><br/>
248
+ <b>Gemini CLI</b><br/>
249
+ <sub>月18万回無料</sub>
250
+ </td>
251
+ <td align="center" width="150">
252
+ <img src="../public/providers/kiro.png" width="70" alt="Kiro"/><br/>
253
+ <b>Kiro AI</b><br/>
254
+ <sub>Claude • 無制限</sub>
255
+ </td>
256
+ </tr>
257
+ </table>
258
+ </div>
259
+
260
+ ### 🔑 APIキープロバイダー(40以上)
261
+
262
+ <div align="center">
263
+ <table>
264
+ <tr>
265
+ <td align="center" width="100">
266
+ <img src="../public/providers/openrouter.png" width="50" alt="OpenRouter"/><br/>
267
+ <sub>OpenRouter</sub>
268
+ </td>
269
+ <td align="center" width="100">
270
+ <img src="../public/providers/glm.png" width="50" alt="GLM"/><br/>
271
+ <sub>GLM</sub>
272
+ </td>
273
+ <td align="center" width="100">
274
+ <img src="../public/providers/kimi.png" width="50" alt="Kimi"/><br/>
275
+ <sub>Kimi</sub>
276
+ </td>
277
+ <td align="center" width="100">
278
+ <img src="../public/providers/minimax.png" width="50" alt="MiniMax"/><br/>
279
+ <sub>MiniMax</sub>
280
+ </td>
281
+ <td align="center" width="100">
282
+ <img src="../public/providers/openai.png" width="50" alt="OpenAI"/><br/>
283
+ <sub>OpenAI</sub>
284
+ </td>
285
+ <td align="center" width="100">
286
+ <img src="../public/providers/anthropic.png" width="50" alt="Anthropic"/><br/>
287
+ <sub>Anthropic</sub>
288
+ </td>
289
+ </tr>
290
+ <tr>
291
+ <td align="center" width="100">
292
+ <img src="../public/providers/gemini.png" width="50" alt="Gemini"/><br/>
293
+ <sub>Gemini</sub>
294
+ </td>
295
+ <td align="center" width="100">
296
+ <img src="../public/providers/deepseek.png" width="50" alt="DeepSeek"/><br/>
297
+ <sub>DeepSeek</sub>
298
+ </td>
299
+ <td align="center" width="100">
300
+ <img src="../public/providers/groq.png" width="50" alt="Groq"/><br/>
301
+ <sub>Groq</sub>
302
+ </td>
303
+ <td align="center" width="100">
304
+ <img src="../public/providers/xai.png" width="50" alt="xAI"/><br/>
305
+ <sub>xAI</sub>
306
+ </td>
307
+ <td align="center" width="100">
308
+ <img src="../public/providers/mistral.png" width="50" alt="Mistral"/><br/>
309
+ <sub>Mistral</sub>
310
+ </td>
311
+ <td align="center" width="100">
312
+ <img src="../public/providers/perplexity.png" width="50" alt="Perplexity"/><br/>
313
+ <sub>Perplexity</sub>
314
+ </td>
315
+ </tr>
316
+ <tr>
317
+ <td align="center" width="100">
318
+ <img src="../public/providers/together.png" width="50" alt="Together"/><br/>
319
+ <sub>Together AI</sub>
320
+ </td>
321
+ <td align="center" width="100">
322
+ <img src="../public/providers/fireworks.png" width="50" alt="Fireworks"/><br/>
323
+ <sub>Fireworks</sub>
324
+ </td>
325
+ <td align="center" width="100">
326
+ <img src="../public/providers/cerebras.png" width="50" alt="Cerebras"/><br/>
327
+ <sub>Cerebras</sub>
328
+ </td>
329
+ <td align="center" width="100">
330
+ <img src="../public/providers/cohere.png" width="50" alt="Cohere"/><br/>
331
+ <sub>Cohere</sub>
332
+ </td>
333
+ <td align="center" width="100">
334
+ <img src="../public/providers/nvidia.png" width="50" alt="NVIDIA"/><br/>
335
+ <sub>NVIDIA</sub>
336
+ </td>
337
+ <td align="center" width="100">
338
+ <img src="../public/providers/siliconflow.png" width="50" alt="SiliconFlow"/><br/>
339
+ <sub>SiliconFlow</sub>
340
+ </td>
341
+ </tr>
342
+ </table>
343
+ <p><i>...その他Nebius、Chutes、Hyperbolic、カスタムOpenAI/Anthropic互換エンドポイントなど20以上のプロバイダー</i></p>
344
+ </div>
345
+
346
+ ---
347
+
348
+ ## 💡 主な機能
349
+
350
+ | 機能 | 概要 | メリット |
351
+ |------|------|----------|
352
+ | 🎯 **スマート3段階フォールバック** | 自動ルーティング: サブスクリプション → 格安 → 無料 | コーディングが止まらない、ダウンタイムゼロ |
353
+ | 📊 **リアルタイムクオータ追跡** | ライブトークン数 + リセットカウントダウン | サブスクリプション価値の最大化 |
354
+ | 🔄 **フォーマット変換** | OpenAI ↔ Claude ↔ Gemini シームレス対応 | あらゆるCLIツールで動作 |
355
+ | 👥 **マルチアカウント対応** | プロバイダーごとに複数アカウント | 負荷分散 + 冗長性 |
356
+ | 🔄 **自動トークンリフレッシュ** | OAuthトークンの自動更新 | 手動再ログイン不要 |
357
+ | 🎨 **カスタムコンボ** | 無制限のモデル組み合わせ作成 | ニーズに合わせたフォールバック |
358
+ | 📝 **リクエストログ** | リクエスト/レスポンスの完全ログ | 問題の簡単なトラブルシューティング |
359
+ | 💾 **クラウド同期** | デバイス間で設定を同期 | どこでも同じセットアップ |
360
+ | 📊 **使用状況分析** | トークン、コスト、トレンドの追跡 | 支出の最適化 |
361
+ | 🌐 **どこでもデプロイ** | Localhost、VPS、Docker、Cloudflare Workers | 柔軟なデプロイオプション |
362
+
363
+ <details>
364
+ <summary><b>📖 機能詳細</b></summary>
365
+
366
+ ### 🎯 スマート3段階フォールバック
367
+
368
+ 自動フォールバック付きコンボを作成:
369
+
370
+ ```
371
+ コンボ: "my-coding-stack"
372
+ 1. cc/claude-opus-4-6 (サブスクリプション)
373
+ 2. glm/glm-4.7 (格安バックアップ、$0.6/1M)
374
+ 3. if/kimi-k2-thinking (無料フォールバック)
375
+
376
+ → クオータ切れやエラー発生時に自動切り替え
377
+ ```
378
+
379
+ ### 📊 リアルタイムクオータ追跡
380
+
381
+ - プロバイダーごとのトークン消費量
382
+ - リセットカウントダウン(5時間、日次、週次)
383
+ - 有料ティアのコスト見積もり
384
+ - 月間支出レポート
385
+
386
+ ### 🔄 フォーマット変換
387
+
388
+ フォーマット間のシームレスな変換:
389
+ - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI Responses**
390
+ - CLIツールがOpenAIフォーマットで送信 → 9Routerが変換 → プロバイダーがネイティブフォーマットで受信
391
+ - カスタムOpenAIエンドポイントをサポートするすべてのツールで動作
392
+
393
+ ### 👥 マルチアカウント対応
394
+
395
+ - プロバイダーごとに複数アカウント追加
396
+ - 自動ラウンドロビンまたは優先度ベースのルーティング
397
+ - 1つのアカウントがクオータに達したら次のアカウントにフォールバック
398
+
399
+ ### 🔄 自動トークンリフレッシュ
400
+
401
+ - OAuthトークンが期限切れ前に自動リフレッシュ
402
+ - 手動の再認証不要
403
+ - すべてのプロバイダーでシームレスな体験
404
+
405
+ ### 🎨 カスタムコンボ
406
+
407
+ - 無制限のモデル組み合わせ作成
408
+ - サブスクリプション、格安、無料ティアを混合
409
+ - コンボに名前を付けて簡単にアクセス
410
+ - クラウド同期でデバイス間でコンボを共有
411
+
412
+ ### 📝 リクエストログ
413
+
414
+ - デバッグモードでリクエスト/レスポンスの完全ログ
415
+ - API呼び出し、ヘッダー、ペイロードの追跡
416
+ - 統合の問題をトラブルシューティング
417
+ - 分析用にログをエクスポート
418
+
419
+ ### 💾 クラウド同期
420
+
421
+ - デバイス間でプロバイダー、コンボ、設定を同期
422
+ - 自動バックグラウンド同期
423
+ - 安全な暗号化ストレージ
424
+ - どこからでもセットアップにアクセス
425
+
426
+ #### クラウドランタイムに関する注意
427
+
428
+ - 本番環境ではサーバーサイドのクラウド変数を推奨:
429
+ - `BASE_URL`(同期スケジューラで使用される内部コールバックURL)
430
+ - `CLOUD_URL`(クラウド同期エンドポイントのベースURL)
431
+ - `NEXT_PUBLIC_BASE_URL` と `NEXT_PUBLIC_CLOUD_URL` は互換性/UI用にまだサポートされていますが、サーバーランタイムは `BASE_URL`/`CLOUD_URL` を優先します。
432
+ - クラウド同期リクエストはタイムアウト + フェイルファスト動作を使用し、クラウドDNS/ネットワークが利用できない場合のUIハングを回避します。
433
+
434
+ ### 📊 使用状況分析
435
+
436
+ - プロバイダーおよびモデルごとのトークン使用量追跡
437
+ - コスト見積もりと支出トレンド
438
+ - 月次レポートとインサイト
439
+ - AI支出の最適化
440
+
441
+ > **💡 重要 - ダッシュボードのコストについて:**
442
+ >
443
+ > 使用状況分析に表示される「コスト」は**追跡と比較目的のみ**です。
444
+ > 9Router自体は**一切課金しません**。有料サービスを使用する場合のみ、プロバイダーに直接支払います。
445
+ >
446
+ > **例:** ダッシュボードにiFlowモデルの使用で「合計コスト$290」と表示されている場合、
447
+ > これは有料APIを直接使用した場合に支払うであろう金額を表しています。実際のコスト = **$0**(iFlowは無料無制限)。
448
+ >
449
+ > これは無料モデルや9Router経由のルーティングでどれだけ節約しているかを示す「節約トラッカー」と考えてください!
450
+
451
+ ### 🌐 どこでもデプロイ
452
+
453
+ - 💻 **ローカルホスト** - デフォルト、オフラインで動作
454
+ - ☁️ **VPS/クラウド** - デバイス間で共有
455
+ - 🐳 **Docker** - ワンコマンドデプロイ
456
+ - 🚀 **Cloudflare Workers** - グローバルエッジネットワーク
457
+
458
+ </details>
459
+
460
+ ---
461
+
462
+ ## 💰 料金の概要
463
+
464
+ | ティア | プロバイダー | コスト | クオータリセット | 最適な用途 |
465
+ |--------|-------------|--------|-----------------|------------|
466
+ | **💳 サブスクリプション** | Claude Code (Pro) | $20/月 | 5時間 + 週次 | 既存のサブスク利用者 |
467
+ | | Codex (Plus/Pro) | $20-200/月 | 5時間 + 週次 | OpenAIユーザー |
468
+ | | Gemini CLI | **無料** | 月18万回 + 日1千回 | 全員! |
469
+ | | GitHub Copilot | $10-19/月 | 月次 | GitHubユーザー |
470
+ | **💰 格安** | GLM-4.7 | $0.6/1M | 毎日午前10時 | 予算バックアップ |
471
+ | | MiniMax M2.1 | $0.2/1M | 5時間ローリング | 最安オプション |
472
+ | | Kimi K2 | $9/月固定 | 月1000万トークン | 予測可能なコスト |
473
+ | **🆓 無料** | iFlow | $0 | 無制限 | 8モデル無料 |
474
+ | | Qwen | $0 | 無制限 | 3モデル無料 |
475
+ | | Kiro | $0 | 無制限 | Claude無料 |
476
+
477
+ **💡 プロのヒント:** Gemini CLI(月18万回無料)+ iFlow(無制限無料)のコンボで $0 のコスト!
478
+
479
+ ---
480
+
481
+ ### 📊 9Routerのコストと課金について
482
+
483
+ **9Routerの課金の実態:**
484
+
485
+ ✅ **9Routerソフトウェア = 永久無料**(オープンソース、課金なし)
486
+ ✅ **ダッシュボードの「コスト」= 表示/追跡のみ**(実際の請求ではない)
487
+ ✅ **プロバイダーに直接支払い**(サブスクリプションまたはAPI料金)
488
+ ✅ **無料プロバイダーは無料のまま**(iFlow、Kiro、Qwen = $0 無制限)
489
+ ❌ **9Routerは請求書を送ったり**カードに課金したりしません
490
+
491
+ **コスト表示の仕組み:**
492
+
493
+ ダッシュボードは有料APIを直接使用した場合の**推定コスト**を表示します。これは**課金ではなく**、節約額を示す比較ツールです。
494
+
495
+ **シナリオ例:**
496
+ ```
497
+ ダッシュボード表示:
498
+ • 合計リクエスト: 1,662
499
+ • 合計トークン: 4700万
500
+ • 表示コスト: $290
501
+
502
+ 実際の確認:
503
+ • プロバイダー: iFlow(無料無制限)
504
+ • 実際の支払い: $0.00
505
+ • $290の意味: 無料モデルの使用で節約した金額!
506
+ ```
507
+
508
+ **支払いルール:**
509
+ - **サブスクリプションプロバイダー**(Claude Code、Codex):各ウェブサイトで直接支払い
510
+ - **格安プロバイダー**(GLM、MiniMax):直接支払い、9Routerはルーティングのみ
511
+ - **無料プロバイダー**(iFlow、Kiro、Qwen):本当に永久無料、隠れた料金なし
512
+ - **9Router**:一切課金しない
513
+
514
+ ---
515
+
516
+ ## 🎯 ユースケース
517
+
518
+ ### ケース1: 「Claude Proサブスクリプションを持っている」
519
+
520
+ **問題:** クオータが未使用のまま期限切れ、重いコーディング中にレート制限
521
+
522
+ **解決策:**
523
+ ```
524
+ コンボ: "maximize-claude"
525
+ 1. cc/claude-opus-4-6 (サブスクリプションを最大限活用)
526
+ 2. glm/glm-4.7 (クオータ切れ時の格安バックアップ)
527
+ 3. if/kimi-k2-thinking (無料の緊急フォールバック)
528
+
529
+ 月額コスト: $20 (サブスクリプション) + ~$5 (バックアップ) = 合計$25
530
+ vs. $20 + 制限に引っかかる = フラストレーション
531
+ ```
532
+
533
+ ### ケース2: 「コストゼロにしたい」
534
+
535
+ **問題:** サブスクリプションを払えない、信頼性のあるAIコーディングが必要
536
+
537
+ **解決策:**
538
+ ```
539
+ コンボ: "free-forever"
540
+ 1. gc/gemini-3-flash (月18万回無料)
541
+ 2. if/kimi-k2-thinking (無制限無料)
542
+ 3. qw/qwen3-coder-plus (無制限無料)
543
+
544
+ 月額コスト: $0
545
+ 品質: 本番対応モデル
546
+ ```
547
+
548
+ ### ケース3: 「24時間365日コーディング、中断なし」
549
+
550
+ **問題:** 締め切り、ダウンタイムは許されない
551
+
552
+ **解決策:**
553
+ ```
554
+ コンボ: "always-on"
555
+ 1. cc/claude-opus-4-6 (最高品質)
556
+ 2. cx/gpt-5.2-codex (セカンドサブスクリプション)
557
+ 3. glm/glm-4.7 (格安、毎日リセット)
558
+ 4. minimax/MiniMax-M2.1 (最安、5時間リセット)
559
+ 5. if/kimi-k2-thinking (無料無制限)
560
+
561
+ 結果: 5層のフォールバック = ダウンタイムゼロ
562
+ 月額コスト: $20-200 (サブスクリプション) + $10-20 (バックアップ)
563
+ ```
564
+
565
+ ### ケース4: 「OpenClawで無料AIを使いたい」
566
+
567
+ **問題:** メッセージングアプリ(WhatsApp、Telegram、Slack...)でAIアシスタントが必要、完全無料で
568
+
569
+ **解決策:**
570
+ ```
571
+ コンボ: "openclaw-free"
572
+ 1. if/glm-4.7 (無制限無料)
573
+ 2. if/minimax-m2.1 (無制限無料)
574
+ 3. if/kimi-k2-thinking (無制限無料)
575
+
576
+ 月額コスト: $0
577
+ アクセス方法: WhatsApp、Telegram、Slack、Discord、iMessage、Signal...
578
+ ```
579
+
580
+ ---
581
+
582
+ ## ❓ よくある質問
583
+
584
+ <details>
585
+ <summary><b>📊 ダッシュボードに高額なコストが表示されるのはなぜ?</b></summary>
586
+
587
+ ダッシュボードはトークン使用量を追跡し、有料APIを直接使用した場合の**推定コスト**を表示します。これは**実際の課金ではなく**、9Routerを通じて無料モデルや既存のサブスクリプションを使用することでどれだけ節約しているかを示すための参考値です。
588
+
589
+ **例:**
590
+ - **ダッシュボード表示:** 「合計コスト$290」
591
+ - **実際:** iFlow(無料無制限)を使用中
592
+ - **実際のコスト:** **$0.00**
593
+ - **$290の意味:** 有料APIの代わりに無料モデルを使用して**節約した**金額!
594
+
595
+ コスト表示は使用パターンと最適化の機会を理解するための「節約トラッカー」です。
596
+
597
+ </details>
598
+
599
+ <details>
600
+ <summary><b>💳 9Routerに課金されますか?</b></summary>
601
+
602
+ **いいえ。** 9Routerはあなたのコンピューター上で動作する無料のオープンソースソフトウェアです。一切課金しません。
603
+
604
+ **支払い先:**
605
+ - ✅ **サブスクリプションプロバイダー**(Claude Code $20/月、Codex $20-200/月)→ 各ウェブサイトで直接支払い
606
+ - ✅ **格安プロバイダー**(GLM、MiniMax)→ 直接支払い、9Routerはリクエストをルーティングするだけ
607
+ - ❌ **9Router自体** → **一切課金しない**
608
+
609
+ 9Routerはローカルプロキシ/ルーターです。クレジットカード情報を持たず、請求書を送信できず、課金システムもありません。完全に無料のソフトウェアです。
610
+
611
+ </details>
612
+
613
+ <details>
614
+ <summary><b>🆓 無料プロバイダーは本当に無制限ですか?</b></summary>
615
+
616
+ **はい!** 無料と表示されているプロバイダー(iFlow、Kiro、Qwen)は本当に無制限で**隠れた料金はありません**。
617
+
618
+ これらは各企業が提供する無料サービスです:
619
+ - **iFlow**: OAuth経由で8以上のモデルに無料無制限アクセス
620
+ - **Kiro**: AWS Builder ID経由で無料無制限Claudeモデル
621
+ - **Qwen**: デバイス認証経由でQwenモデルに無料無制限アクセス
622
+
623
+ 9Routerはリクエストをルーティングするだけで、「罠」や将来の課金はありません。本当に無料のサービスであり、9Routerはフォールバックサポートでそれらを使いやすくしています。
624
+
625
+ **注意:** 一部のサブスクリプションプロバイダー(Antigravity、GitHub Copilot)には無料プレビュー期間があり、後に有料になる可能性がありますが、それは9Routerではなく各プロバイダーから明確に告知されます。
626
+
627
+ </details>
628
+
629
+ <details>
630
+ <summary><b>💰 実際のAIコストを最小化するには?</b></summary>
631
+
632
+ **無料優先戦略:**
633
+
634
+ 1. **100%無料コンボから始める:**
635
+ ```
636
+ 1. gc/gemini-3-flash (Googleから月18万回無料)
637
+ 2. if/kimi-k2-thinking (iFlowから無制限無料)
638
+ 3. qw/qwen3-coder-plus (Qwenから無制限無料)
639
+ ```
640
+ **コスト: $0/月**
641
+
642
+ 2. **必要な場合のみ格安バックアップを追加:**
643
+ ```
644
+ 4. glm/glm-4.7 ($0.6/100万トークン)
645
+ ```
646
+ **追加コスト: 実際に使用した分だけ支払い**
647
+
648
+ 3. **サブスクリプションプロバイダーは最後に使用:**
649
+ - 既にお持ちの場合のみ
650
+ - 9Routerがクオータ追跡で価値を最大化
651
+
652
+ **結果:** ほとんどのユーザーは無料ティアのみで月額$0で運用可能!
653
+
654
+ </details>
655
+
656
+ <details>
657
+ <summary><b>📈 使用量が突然急増したら?</b></summary>
658
+
659
+ 9Routerのスマートフォールバックが予期しない課金を防止します:
660
+
661
+ **シナリオ:** コーディングスプリント中にクオータを使い切った
662
+
663
+ **9Routerなし:**
664
+ - ❌ レート制限に到達 → 作業停止 → フラストレーション
665
+ - ❌ または: 意図せず高額なAPI請求が発生
666
+
667
+ **9Routerあり:**
668
+ - ✅ サブスクリプションが上限に達する → 格安ティアに自動フォールバック
669
+ - ✅ 格安ティアが高くなる → 無料ティアに自動フォールバック
670
+ - ✅ コーディングが止まらない → 予測可能なコスト
671
+
672
+ **あなたがコントロール:** ダッシュボードでプロバイダーごとの支出上限を設定し、9Routerはそれを遵守します。
673
+
674
+ </details>
675
+
676
+ ---
677
+
678
+ ## 📖 セットアップガイド
679
+
680
+ <details>
681
+ <summary><b>🔐 サブスクリプションプロバイダー(価値の最大化)</b></summary>
682
+
683
+ ### Claude Code (Pro/Max)
684
+
685
+ ```bash
686
+ ダッシュボード → Providers → Claude Codeを接続
687
+ → OAuthログイン → 自動トークンリフレッシュ
688
+ → 5時間 + 週次クオータ追跡
689
+
690
+ モデル:
691
+ cc/claude-opus-4-6
692
+ cc/claude-sonnet-4-5-20250929
693
+ cc/claude-haiku-4-5-20251001
694
+ ```
695
+
696
+ **プロのヒント:** 複雑なタスクにはOpus、スピード重視ならSonnet。9Routerはモデルごとにクオータを追跡します!
697
+
698
+ ### OpenAI Codex (Plus/Pro)
699
+
700
+ ```bash
701
+ ダッシュボード → Providers → Codexを接続
702
+ → OAuthログイン(ポート1455)
703
+ → 5時間 + 週次リセット
704
+
705
+ モデル:
706
+ cx/gpt-5.2-codex
707
+ cx/gpt-5.1-codex-max
708
+ ```
709
+
710
+ ### Gemini CLI(月18万回無料!)
711
+
712
+ ```bash
713
+ ダッシュボード → Providers → Gemini CLIを接続
714
+ → Google OAuth
715
+ → 月18万回 + 日1千回
716
+
717
+ モデル:
718
+ gc/gemini-3-flash-preview
719
+ gc/gemini-2.5-pro
720
+ ```
721
+
722
+ **最高のコスパ:** 巨大な無料ティア!有料ティアの前にこちらを使用。
723
+
724
+ ### GitHub Copilot
725
+
726
+ ```bash
727
+ ダッシュボード → Providers → GitHubを接続
728
+ → GitHub経由のOAuth
729
+ → 月次リセット(毎月1日)
730
+
731
+ モデル:
732
+ gh/gpt-5
733
+ gh/claude-4.5-sonnet
734
+ gh/gemini-3-pro
735
+ ```
736
+
737
+ </details>
738
+
739
+ <details>
740
+ <summary><b>💰 格安プロバイダー(バックアップ)</b></summary>
741
+
742
+ ### GLM-4.7(日次リセット、$0.6/1M)
743
+
744
+ 1. サインアップ: [Zhipu AI](https://open.bigmodel.cn/)
745
+ 2. Coding PlanからAPIキーを取得
746
+ 3. ダッシュボード → APIキーを追加:
747
+ - プロバイダー: `glm`
748
+ - APIキー: `your-key`
749
+
750
+ **使用:** `glm/glm-4.7`
751
+
752
+ **プロのヒント:** Coding Planは1/7のコストで3倍のクオータを提供!毎日午前10:00にリセット。
753
+
754
+ ### MiniMax M2.1(5時間リセット、$0.20/1M)
755
+
756
+ 1. サインアップ: [MiniMax](https://www.minimax.io/)
757
+ 2. APIキーを取得
758
+ 3. ダッシュボード → APIキーを追加
759
+
760
+ **使用:** `minimax/MiniMax-M2.1`
761
+
762
+ **プロのヒント:** ロングコンテキスト(100万トークン)で最安オプション!
763
+
764
+ ### Kimi K2(月額$9固定)
765
+
766
+ 1. サブスクライブ: [Moonshot AI](https://platform.moonshot.ai/)
767
+ 2. APIキーを取得
768
+ 3. ダッシュボード → APIキーを追加
769
+
770
+ **使用:** `kimi/kimi-latest`
771
+
772
+ **プロのヒント:** 月額$9固定で1000万トークン = 実効コスト$0.90/1M!
773
+
774
+ </details>
775
+
776
+ <details>
777
+ <summary><b>🆓 無料プロバイダー(緊急バックアップ)</b></summary>
778
+
779
+ ### iFlow(8つの無料モデル)
780
+
781
+ ```bash
782
+ ダッシュボード → iFlowを接続
783
+ → iFlow OAuthログイン
784
+ → 無制限使用
785
+
786
+ モデル:
787
+ if/kimi-k2-thinking
788
+ if/qwen3-coder-plus
789
+ if/glm-4.7
790
+ if/minimax-m2
791
+ if/deepseek-r1
792
+ ```
793
+
794
+ ### Qwen(3つの無料モデル)
795
+
796
+ ```bash
797
+ ダッシュボード → Qwenを接続
798
+ → デバイスコード認証
799
+ → 無制限使用
800
+
801
+ モデル:
802
+ qw/qwen3-coder-plus
803
+ qw/qwen3-coder-flash
804
+ ```
805
+
806
+ ### Kiro(Claude無料)
807
+
808
+ ```bash
809
+ ダッシュボード → Kiroを接続
810
+ → AWS Builder IDまたはGoogle/GitHub
811
+ → 無制限使用
812
+
813
+ モデル:
814
+ kr/claude-sonnet-4.5
815
+ kr/claude-haiku-4.5
816
+ ```
817
+
818
+ </details>
819
+
820
+ <details>
821
+ <summary><b>🎨 コンボの作成</b></summary>
822
+
823
+ ### 例1: サブスクリプション最大化 → 格安バックアップ
824
+
825
+ ```
826
+ ダッシュボード → Combos → 新規作成
827
+
828
+ 名前: premium-coding
829
+ モデル:
830
+ 1. cc/claude-opus-4-6 (サブスクリプション、プライマリ)
831
+ 2. glm/glm-4.7 (格安バックアップ、$0.6/1M)
832
+ 3. minimax/MiniMax-M2.1 (最安フォールバック、$0.20/1M)
833
+
834
+ CLIでの使用: premium-coding
835
+
836
+ 月額コスト例(1億トークン):
837
+ 8000万 Claude経由(サブスクリプション): 追加$0
838
+ 1500万 GLM経由: $9
839
+ 500万 MiniMax経由: $1
840
+ 合計: $10 + サブスクリプション
841
+ ```
842
+
843
+ ### 例2: 無料のみ(コストゼロ)
844
+
845
+ ```
846
+ 名前: free-combo
847
+ モデル:
848
+ 1. gc/gemini-3-flash-preview (月18万回無料)
849
+ 2. if/kimi-k2-thinking (無制限)
850
+ 3. qw/qwen3-coder-plus (無制限)
851
+
852
+ コスト: 永久$0!
853
+ ```
854
+
855
+ </details>
856
+
857
+ <details>
858
+ <summary><b>🔧 CLI統合</b></summary>
859
+
860
+ ### Cursor IDE
861
+
862
+ ```
863
+ 設定 → Models → Advanced:
864
+ OpenAI API Base URL: http://localhost:20128/v1
865
+ OpenAI API Key: [9routerダッシュボードから]
866
+ Model: cc/claude-opus-4-6
867
+ ```
868
+
869
+ またはコンボを使用: `premium-coding`
870
+
871
+ ### Claude Code
872
+
873
+ `~/.claude/config.json` を編集:
874
+
875
+ ```json
876
+ {
877
+ "anthropic_api_base": "http://localhost:20128/v1",
878
+ "anthropic_api_key": "your-9router-api-key"
879
+ }
880
+ ```
881
+
882
+ ### Codex CLI
883
+
884
+ ```bash
885
+ export OPENAI_BASE_URL="http://localhost:20128"
886
+ export OPENAI_API_KEY="your-9router-api-key"
887
+
888
+ codex "your prompt"
889
+ ```
890
+
891
+ ### OpenClaw
892
+
893
+ **オプション1 — ダッシュボード(推奨):**
894
+
895
+ ```
896
+ ダッシュボード → CLI Tools → OpenClaw → モデルを選択 → 適用
897
+ ```
898
+
899
+ **オプション2 — 手動:** `~/.openclaw/openclaw.json` を編集:
900
+
901
+ ```json
902
+ {
903
+ "agents": {
904
+ "defaults": {
905
+ "model": {
906
+ "primary": "9router/if/glm-4.7"
907
+ }
908
+ }
909
+ },
910
+ "models": {
911
+ "providers": {
912
+ "9router": {
913
+ "baseUrl": "http://127.0.0.1:20128/v1",
914
+ "apiKey": "sk_9router",
915
+ "api": "openai-completions",
916
+ "models": [
917
+ {
918
+ "id": "if/glm-4.7",
919
+ "name": "glm-4.7"
920
+ }
921
+ ]
922
+ }
923
+ }
924
+ }
925
+ }
926
+ ```
927
+
928
+ > **注意:** OpenClawはローカルの9Routerのみで動作します。IPv6解決の問題を避けるため、`localhost` ではなく `127.0.0.1` を使用してください。
929
+
930
+ ### Cline / Continue / RooCode
931
+
932
+ ```
933
+ プロバイダー: OpenAI Compatible
934
+ Base URL: http://localhost:20128/v1
935
+ API Key: [ダッシュボードから]
936
+ Model: cc/claude-opus-4-6
937
+ ```
938
+
939
+ </details>
940
+
941
+ <details>
942
+ <summary><b>🚀 デプロイ</b></summary>
943
+
944
+ ### VPSデプロイ
945
+
946
+ ```bash
947
+ # クローンとインストール
948
+ git clone https://github.com/decolua/9router.git
949
+ cd 9router
950
+ npm install
951
+ npm run build
952
+
953
+ # 設定
954
+ export JWT_SECRET="your-secure-secret-change-this"
955
+ export INITIAL_PASSWORD="your-password"
956
+ export DATA_DIR="/var/lib/9router"
957
+ export PORT="20128"
958
+ export HOSTNAME="0.0.0.0"
959
+ export NODE_ENV="production"
960
+ export NEXT_PUBLIC_BASE_URL="http://localhost:20128"
961
+ export NEXT_PUBLIC_CLOUD_URL="https://9router.com"
962
+ export API_KEY_SECRET="endpoint-proxy-api-key-secret"
963
+ export MACHINE_ID_SALT="endpoint-proxy-salt"
964
+
965
+ # 起動
966
+ npm run start
967
+
968
+ # またはPM2を使用
969
+ npm install -g pm2
970
+ pm2 start npm --name 9router -- start
971
+ pm2 save
972
+ pm2 startup
973
+ ```
974
+
975
+ ### Docker
976
+
977
+ ```bash
978
+ # イメージをビルド(リポジトリルートから)
979
+ docker build -t 9router .
980
+
981
+ # コンテナを実行(現在のセットアップで使用しているコマンド)
982
+ docker run -d \
983
+ --name 9router \
984
+ -p 20128:20128 \
985
+ --env-file /root/dev/9router/.env \
986
+ -v 9router-data:/app/data \
987
+ -v 9router-usage:/root/.9router \
988
+ 9router
989
+ ```
990
+
991
+ ポータブルコマンド(リポジトリルートにいる場合):
992
+
993
+ ```bash
994
+ docker run -d \
995
+ --name 9router \
996
+ -p 20128:20128 \
997
+ --env-file ./.env \
998
+ -v 9router-data:/app/data \
999
+ -v 9router-usage:/root/.9router \
1000
+ 9router
1001
+ ```
1002
+
1003
+ コンテナのデフォルト:
1004
+ - `PORT=20128`
1005
+ - `HOSTNAME=0.0.0.0`
1006
+
1007
+ 便利なコマンド:
1008
+
1009
+ ```bash
1010
+ docker logs -f 9router
1011
+ docker restart 9router
1012
+ docker stop 9router && docker rm 9router
1013
+ ```
1014
+
1015
+ ### 環境変数
1016
+
1017
+ | 変数 | デフォルト | 説明 |
1018
+ |------|-----------|------|
1019
+ | `JWT_SECRET` | `9router-default-secret-change-me` | ダッシュボード認証クッキーのJWT署名シークレット(**本番環境では変更必須**) |
1020
+ | `INITIAL_PASSWORD` | `123456` | 保存されたハッシュがない場合の初回ログインパスワード |
1021
+ | `DATA_DIR` | `~/.9router` | メインアプリのデータベース格納場所(`db.json`) |
1022
+ | `PORT` | フレームワークデフォルト | サービスポート(例では`20128`) |
1023
+ | `HOSTNAME` | フレームワークデフォルト | バインドホスト(Dockerデフォルトは`0.0.0.0`) |
1024
+ | `NODE_ENV` | ランタイムデフォルト | デプロイ時は`production`に設定 |
1025
+ | `BASE_URL` | `http://localhost:20128` | クラウド同期ジョブで使用されるサーバーサイド内部ベースURL |
1026
+ | `CLOUD_URL` | `https://9router.com` | サーバーサイドのクラウド同期エンドポイントベースURL |
1027
+ | `NEXT_PUBLIC_BASE_URL` | `http://localhost:3000` | 後方互換/公開ベースURL(サーバーランタイムには`BASE_URL`を推奨) |
1028
+ | `NEXT_PUBLIC_CLOUD_URL` | `https://9router.com` | 後方互換/公開クラウドURL(サーバーランタイムには`CLOUD_URL`を推奨) |
1029
+ | `API_KEY_SECRET` | `endpoint-proxy-api-key-secret` | 生成されたAPIキーのHMACシークレット |
1030
+ | `MACHINE_ID_SALT` | `endpoint-proxy-salt` | 安定したマシンIDハッシュのソルト |
1031
+ | `ENABLE_REQUEST_LOGS` | `false` | `logs/` 配下のリクエスト/レスポンスログを有効化 |
1032
+ | `AUTH_COOKIE_SECURE` | `false` | 認証クッキーに`Secure`を強制(HTTPSリバースプロキシの背後では`true`に設定) |
1033
+ | `REQUIRE_API_KEY` | `false` | `/v1/*` ルートでBearer APIキーを必須にする(インターネット公開デプロイで推奨) |
1034
+ | `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY`, `NO_PROXY` | 空 | アップストリームプロバイダー呼び出し用のオプショナルアウトバウンドプロキシ |
1035
+
1036
+ 注意事項:
1037
+ - 小文字のプロキシ変数もサポート: `http_proxy`, `https_proxy`, `all_proxy`, `no_proxy`
1038
+ - `.env` はDockerイメージにベイクされません(`.dockerignore`); `--env-file` または `-e` でランタイム設定を注入してください。
1039
+ - Windowsでは、`APPDATA` をローカルストレージパスの解決に使用できます。
1040
+ - `INSTANCE_NAME` は古いドキュメント/envテンプレートに記載がありますが、現在ランタイムでは使用されていません。
1041
+
1042
+ ### ランタイムファイルとストレージ
1043
+
1044
+ - メインアプリ状態: `${DATA_DIR}/db.json`(プロバイダー、コンボ、エイリアス、キー、設定)、`src/lib/localDb.js` で管理。
1045
+ - 使用履歴とログ: `~/.9router/usage.json` と `~/.9router/log.txt`、`src/lib/usageDb.js` で管理。
1046
+ - オプションのリクエスト/トランスレーターログ: `ENABLE_REQUEST_LOGS=true` 時に `<repo>/logs/...`。
1047
+ - 使用状況ストレージは現在 `~/.9router` パスロジックに従い、`DATA_DIR` とは独立しています。
1048
+
1049
+ </details>
1050
+
1051
+ ---
1052
+
1053
+ ## 📊 利用可能なモデル
1054
+
1055
+ <details>
1056
+ <summary><b>すべての利用可能なモデルを表示</b></summary>
1057
+
1058
+ **Claude Code (`cc/`)** - Pro/Max:
1059
+ - `cc/claude-opus-4-6`
1060
+ - `cc/claude-sonnet-4-5-20250929`
1061
+ - `cc/claude-haiku-4-5-20251001`
1062
+
1063
+ **Codex (`cx/`)** - Plus/Pro:
1064
+ - `cx/gpt-5.2-codex`
1065
+ - `cx/gpt-5.1-codex-max`
1066
+
1067
+ **Gemini CLI (`gc/`)** - 無料:
1068
+ - `gc/gemini-3-flash-preview`
1069
+ - `gc/gemini-2.5-pro`
1070
+
1071
+ **GitHub Copilot (`gh/`)**:
1072
+ - `gh/gpt-5`
1073
+ - `gh/claude-4.5-sonnet`
1074
+
1075
+ **GLM (`glm/`)** - $0.6/1M:
1076
+ - `glm/glm-4.7`
1077
+
1078
+ **MiniMax (`minimax/`)** - $0.2/1M:
1079
+ - `minimax/MiniMax-M2.1`
1080
+
1081
+ **iFlow (`if/`)** - 無料:
1082
+ - `if/kimi-k2-thinking`
1083
+ - `if/qwen3-coder-plus`
1084
+ - `if/deepseek-r1`
1085
+
1086
+ **Qwen (`qw/`)** - 無料:
1087
+ - `qw/qwen3-coder-plus`
1088
+ - `qw/qwen3-coder-flash`
1089
+
1090
+ **Kiro (`kr/`)** - 無料:
1091
+ - `kr/claude-sonnet-4.5`
1092
+ - `kr/claude-haiku-4.5`
1093
+
1094
+ </details>
1095
+
1096
+ ---
1097
+
1098
+ ## 🐛 トラブルシューティング
1099
+
1100
+ **「Language model did not provide messages」**
1101
+ - プロバイダーのクオータが使い果たされた → ダッシュボードのクオータトラッカーを確認
1102
+ - 解決策: コンボフォールバックを使用するか、より安いティアに切り替え
1103
+
1104
+ **レート制限**
1105
+ - サブスクリプションクオータ切れ → GLM/MiniMaxにフォールバック
1106
+ - コンボを追加: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
1107
+
1108
+ **OAuthトークンの期限切れ**
1109
+ - 9Routerが自動リフレッシュ
1110
+ - 問題が続く場合: ダッシュボード → Provider → 再接続
1111
+
1112
+ **高コスト**
1113
+ - ダッシュボードで使用状況を確認
1114
+ - プライマリモデルをGLM/MiniMaxに切り替え
1115
+ - 重要でないタスクには無料ティア(Gemini CLI、iFlow)を使用
1116
+
1117
+ **ダッシュボードが違うポートで開く**
1118
+ - `PORT=20128` と `NEXT_PUBLIC_BASE_URL=http://localhost:20128` を設定
1119
+
1120
+ **初回ログインできない**
1121
+ - `.env` の `INITIAL_PASSWORD` を確認
1122
+ - 未設定の場合、デフォルトパスワードは `123456`
1123
+
1124
+ **`logs/` にリクエストログがない**
1125
+ - `ENABLE_REQUEST_LOGS=true` に設定
1126
+
1127
+ ---
1128
+
1129
+ ## 🛠️ 技術スタック
1130
+
1131
+ - **ランタイム**: Node.js 20+
1132
+ - **フレームワーク**: Next.js 16
1133
+ - **UI**: React 19 + Tailwind CSS 4
1134
+ - **データベース**: LowDB(JSONファイルベース)
1135
+ - **ストリーミング**: Server-Sent Events (SSE)
1136
+ - **認証**: OAuth 2.0 (PKCE) + JWT + APIキー
1137
+
1138
+ ---
1139
+
1140
+ ## 📝 APIリファレンス
1141
+
1142
+ ### チャット補完
1143
+
1144
+ ```bash
1145
+ POST http://localhost:20128/v1/chat/completions
1146
+ Authorization: Bearer your-api-key
1147
+ Content-Type: application/json
1148
+
1149
+ {
1150
+ "model": "cc/claude-opus-4-6",
1151
+ "messages": [
1152
+ {"role": "user", "content": "Write a function to..."}
1153
+ ],
1154
+ "stream": true
1155
+ }
1156
+ ```
1157
+
1158
+ ### モデル一覧
1159
+
1160
+ ```bash
1161
+ GET http://localhost:20128/v1/models
1162
+ Authorization: Bearer your-api-key
1163
+
1164
+ → すべてのモデル + コンボをOpenAI形式で返却
1165
+ ```
1166
+
1167
+ ## 📧 サポート
1168
+
1169
+ - **ウェブサイト**: [9router.com](https://9router.com)
1170
+ - **GitHub**: [github.com/decolua/9router](https://github.com/decolua/9router)
1171
+ - **Issues**: [github.com/decolua/9router/issues](https://github.com/decolua/9router/issues)
1172
+
1173
+ ---
1174
+
1175
+ ## 👥 コントリビューター
1176
+
1177
+ 9Routerの改善に貢献してくださったすべてのコントリビューターに感謝します!
1178
+
1179
+ [![Contributors](https://contrib.rocks/image?repo=decolua/9router&max=150&columns=15&anon=1&v=20260309)](https://github.com/decolua/9router/graphs/contributors)
1180
+
1181
+ ---
1182
+
1183
+ ## 📊 スターチャート
1184
+
1185
+ [![Star Chart](https://starchart.cc/decolua/9router.svg?variant=adaptive)](https://starchart.cc/decolua/9router)
1186
+
1187
+
1188
+
1189
+ ## 🔀 フォーク
1190
+
1191
+ **[OmniRoute](https://github.com/diegosouzapw/OmniRoute)** — 9RouterのフルフィーチャーTypeScriptフォーク。36以上のプロバイダー、4段階自動フォールバック、マルチモーダルAPI(画像、埋め込み、音声、TTS)、サーキットブレーカー、セマンティックキャッシュ、LLM評価、洗練されたダッシュボードを追加。368以上のユニットテスト。npmとDockerで利用可能。
1192
+
1193
+ ---
1194
+
1195
+ ## 🙏 謝辞
1196
+
1197
+ **CLIProxyAPI** に特別な感謝を — このJavaScriptポートのインスピレーションとなったオリジナルのGo実装です。
1198
+
1199
+ ---
1200
+
1201
+ ## 📄 ライセンス
1202
+
1203
+ MITライセンス - 詳細は [LICENSE](LICENSE) を参照してください。
1204
+
1205
+ ---
1206
+
1207
+ <div align="center">
1208
+ <sub>24時間365日コーディングする開発者のために ❤️ で構築</sub>
1209
+ </div>