@fudrouter/fsrouter 0.6.43 → 0.6.44

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 (418) hide show
  1. package/package.json +1 -1
  2. package/public/.vite/manifest.json +469 -0
  3. package/public/CHANGELOG.md +103 -0
  4. package/public/assets/EndpointPageClient.CGB3HjDe.js +6 -0
  5. package/public/assets/EndpointPageClient.Cee8kfmV.js +6 -0
  6. package/public/assets/EndpointPageClient.DdAfxJoK.js +6 -0
  7. package/public/assets/EndpointPageClient.GpJ_FKds.js +6 -0
  8. package/public/assets/Loading.BhEzHe-X.js +1 -0
  9. package/public/assets/Loading.DFkQ-Ly9.js +1 -0
  10. package/public/assets/Loading.DaQG3sHF.js +1 -0
  11. package/public/assets/Loading.QMOYJhLu.js +1 -0
  12. package/public/assets/NoAuthProxyCard.Buvt0BVH.js +89 -0
  13. package/public/assets/NoAuthProxyCard.C18iZ3Fk.js +89 -0
  14. package/public/assets/NoAuthProxyCard.C5ap-Sga.css +1 -0
  15. package/public/assets/NoAuthProxyCard.DyEjms20.js +89 -0
  16. package/public/assets/NoAuthProxyCard.VRP7gDcs.js +89 -0
  17. package/public/assets/cliTools.CsdwAybi.js +23 -0
  18. package/public/assets/index.1VBQU7rF.js +11 -0
  19. package/public/assets/index.B-zMpSp_.js +89 -0
  20. package/public/assets/index.BuPfZebu.css +1 -0
  21. package/public/assets/index.CoYbjSIL.js +89 -0
  22. package/public/assets/index.DQDDDpp7.js +89 -0
  23. package/public/assets/index.KMEObSAk.js +89 -0
  24. package/public/assets/machine.CagOtseJ.js +1 -0
  25. package/public/assets/material-symbols-outlined.B4RtTC4Y.woff2 +0 -0
  26. package/public/assets/page.1gncE-Vr.js +1 -0
  27. package/public/assets/page.3QwV1pLl.js +1 -0
  28. package/public/assets/page.5Aj6RvuD.js +1 -0
  29. package/public/assets/page.A7FRfarX.js +1 -0
  30. package/public/assets/page.Amtgxj_r.js +1 -0
  31. package/public/assets/page.B1a01Vfg.js +1 -0
  32. package/public/assets/page.B7h6EPVo.js +1 -0
  33. package/public/assets/page.B9r7QI90.js +1 -0
  34. package/public/assets/page.BAjUiqtJ.js +4 -0
  35. package/public/assets/page.BBMJAyy7.js +1 -0
  36. package/public/assets/page.BBSUQskO.js +64 -0
  37. package/public/assets/page.BCPmNscX.js +1 -0
  38. package/public/assets/page.BFENid_V.js +31 -0
  39. package/public/assets/page.BIG_uMBA.js +1 -0
  40. package/public/assets/page.BINfJPNt.js +1 -0
  41. package/public/assets/page.BJzBUr1v.js +2 -0
  42. package/public/assets/page.BKM5Up2Y.js +1 -0
  43. package/public/assets/page.BLUEyope.js +1 -0
  44. package/public/assets/page.BMeBT03D.js +5 -0
  45. package/public/assets/page.BMf0BFTW.js +1 -0
  46. package/public/assets/page.BONoTspJ.js +1 -0
  47. package/public/assets/page.BQwH91-m.js +1 -0
  48. package/public/assets/page.BRgXbpJe.js +1 -0
  49. package/public/assets/page.BV28PqHr.js +1 -0
  50. package/public/assets/page.BW6Rv-_k.js +1 -0
  51. package/public/assets/page.BXq7Sixg.js +1 -0
  52. package/public/assets/page.Bb3E5EzI.js +6 -0
  53. package/public/assets/page.Bbf1xxJj.js +1 -0
  54. package/public/assets/page.BcuklMLO.js +2 -0
  55. package/public/assets/page.BdPGDnx0.js +6 -0
  56. package/public/assets/page.Bi5OEfgq.js +1 -0
  57. package/public/assets/page.Bi9gIWN0.js +1 -0
  58. package/public/assets/page.BiLGOe6j.js +1 -0
  59. package/public/assets/page.BicDCwTa.js +1 -0
  60. package/public/assets/page.Bj0au_ka.js +5 -0
  61. package/public/assets/page.Bjd38gaf.js +1 -0
  62. package/public/assets/page.BmOXfa4k.js +1 -0
  63. package/public/assets/page.Bqk4tX-5.js +1 -0
  64. package/public/assets/page.BrrSjbBJ.js +1 -0
  65. package/public/assets/page.BsUeE2Y_.js +1 -0
  66. package/public/assets/page.BthVvW1e.js +64 -0
  67. package/public/assets/page.BxAWh20c.js +1 -0
  68. package/public/assets/page.C-2GmPmS.js +4 -0
  69. package/public/assets/page.C27wrrub.js +1 -0
  70. package/public/assets/page.C3FwsCq_.js +23 -0
  71. package/public/assets/page.C4RMU4Xv.js +23 -0
  72. package/public/assets/page.C7SC9vwX.js +1 -0
  73. package/public/assets/page.C8gTAwsH.js +5 -0
  74. package/public/assets/page.CB__T51y.js +2 -0
  75. package/public/assets/page.CDVZIbSe.js +2 -0
  76. package/public/assets/page.CECQKY1y.js +5 -0
  77. package/public/assets/page.CEN8xgCA.js +1 -0
  78. package/public/assets/page.CF5pD5lz.js +1 -0
  79. package/public/assets/page.CHG9mx5l.js +1 -0
  80. package/public/assets/page.CMUOu9fe.js +1 -0
  81. package/public/assets/page.CRex977Y.js +5 -0
  82. package/public/assets/page.CTdMdgI4.js +23 -0
  83. package/public/assets/page.CUsb0F5t.js +1 -0
  84. package/public/assets/page.CVu_9TAu.js +64 -0
  85. package/public/assets/page.CXE5AWV3.js +1 -0
  86. package/public/assets/page.CXIP8Wzi.js +4 -0
  87. package/public/assets/page.CXOuLQhq.js +1 -0
  88. package/public/assets/page.CXPMjDX9.js +1 -0
  89. package/public/assets/page.CXPPlybJ.js +6 -0
  90. package/public/assets/page.CYfjd9SF.js +1 -0
  91. package/public/assets/page.CZtbttgE.js +1 -0
  92. package/public/assets/page.CbOSwuwi.js +1 -0
  93. package/public/assets/page.CbWWyTC4.js +1 -0
  94. package/public/assets/page.CdbMx9XI.js +1 -0
  95. package/public/assets/page.CfDkX9XZ.js +31 -0
  96. package/public/assets/page.CfXJWUgA.js +1 -0
  97. package/public/assets/page.CfdTLncK.js +1 -0
  98. package/public/assets/page.ChqEg6y-.js +1 -0
  99. package/public/assets/page.ClXnUNhb.js +1 -0
  100. package/public/assets/page.CmbatQd6.js +4 -0
  101. package/public/assets/page.Cp7XaHGI.js +1 -0
  102. package/public/assets/page.CqR-Z0pY.js +1 -0
  103. package/public/assets/page.CrzjUbZg.js +1 -0
  104. package/public/assets/page.CsLBZFbk.js +1 -0
  105. package/public/assets/page.CyqTG9Kn.js +2 -0
  106. package/public/assets/page.CzKSjT-r.js +1 -0
  107. package/public/assets/page.D1S50DvR.js +1 -0
  108. package/public/assets/page.D3b1o69R.js +5 -0
  109. package/public/assets/page.D5B_p_2E.js +31 -0
  110. package/public/assets/page.D6TULIkh.js +1 -0
  111. package/public/assets/page.D8X-8LSd.js +2 -0
  112. package/public/assets/page.DA2dX7iN.js +1 -0
  113. package/public/assets/page.DAgwiopx.js +1 -0
  114. package/public/assets/page.DBNjxgJS.js +6 -0
  115. package/public/assets/page.DEBBy5qz.js +1 -0
  116. package/public/assets/page.DEOXc6iv.js +6 -0
  117. package/public/assets/page.DG46DZcu.js +1 -0
  118. package/public/assets/page.DGAKp9YS.js +1 -0
  119. package/public/assets/page.DGico7sP.js +1 -0
  120. package/public/assets/page.DHBHS2oS.js +1 -0
  121. package/public/assets/page.DIrcssm-.js +1 -0
  122. package/public/assets/page.DKdtfq8E.js +2 -0
  123. package/public/assets/page.DKj8qFYb.js +1 -0
  124. package/public/assets/page.DNofNt4p.js +1 -0
  125. package/public/assets/page.DVdv-E5d.js +1 -0
  126. package/public/assets/page.Da-kutqN.js +1 -0
  127. package/public/assets/page.DaW7T6nt.js +1 -0
  128. package/public/assets/page.DgnlzpNx.js +1 -0
  129. package/public/assets/page.DhPzWwGm.js +1 -0
  130. package/public/assets/page.DhcizW_i.js +1 -0
  131. package/public/assets/page.Dju6Kwa5.js +1 -0
  132. package/public/assets/page.Dlh3Q_rt.js +1 -0
  133. package/public/assets/page.DmNhmYKk.js +64 -0
  134. package/public/assets/page.Dmvhu2ua.js +1 -0
  135. package/public/assets/page.Dp30ZzXE.js +1 -0
  136. package/public/assets/page.DsY8qNEU.js +1 -0
  137. package/public/assets/page.DskvkVIF.js +1 -0
  138. package/public/assets/page.DtGEStU7.js +1 -0
  139. package/public/assets/page.DuXsnK8A.js +1 -0
  140. package/public/assets/page.DwU6Ubqf.js +1 -0
  141. package/public/assets/page.FmrKiZlG.js +2 -0
  142. package/public/assets/page.GSAm83Cv.js +6 -0
  143. package/public/assets/page.IgH-AWcu.js +1 -0
  144. package/public/assets/page.Ii8wGSnt.js +1 -0
  145. package/public/assets/page.KtURQA9Q.js +1 -0
  146. package/public/assets/page.NFGJtdfx.js +1 -0
  147. package/public/assets/page.QPaIzKAa.js +1 -0
  148. package/public/assets/page.QuBXfL80.js +1 -0
  149. package/public/assets/page.S02TdGZT.js +1 -0
  150. package/public/assets/page.V3CmUOJF.js +1 -0
  151. package/public/assets/page.VClP2n2B.js +1 -0
  152. package/public/assets/page.Vo9Oe8DJ.js +1 -0
  153. package/public/assets/page.WIMFvXoG.js +1 -0
  154. package/public/assets/page.XUya1XZj.js +23 -0
  155. package/public/assets/page.XqKIvnmq.js +31 -0
  156. package/public/assets/page.aAUPKg0H.js +1 -0
  157. package/public/assets/page.aRQdaBbf.js +1 -0
  158. package/public/assets/page.e-Zxfi03.js +1 -0
  159. package/public/assets/page.e-cA5aB5.js +6 -0
  160. package/public/assets/page.eNXd9f58.js +6 -0
  161. package/public/assets/page.gj2B5h2d.js +1 -0
  162. package/public/assets/page.gvZgqycR.js +1 -0
  163. package/public/assets/page.jvowBQYJ.js +1 -0
  164. package/public/assets/page.k_WzlZwU.js +5 -0
  165. package/public/assets/page.qK1RUb_S.js +1 -0
  166. package/public/assets/page.ryYPRTww.js +1 -0
  167. package/public/assets/page.u7XFxplU.js +1 -0
  168. package/public/assets/page.xm98_0dX.js +5 -0
  169. package/public/assets/page.yjCJ-4Uh.js +1 -0
  170. package/public/assets/react.l0sNRNKZ.js +1 -0
  171. package/public/assets/router.Cjj1--8t.js +28 -0
  172. package/public/assets/zustand.akaTi5uX.js +1 -0
  173. package/public/favicon.ico +0 -0
  174. package/public/favicon.png +0 -0
  175. package/public/icons/icon-192.svg +4 -0
  176. package/public/icons/icon-512.svg +4 -0
  177. package/public/image-video-docs.html +1363 -0
  178. package/public/index.html +21 -0
  179. package/public/logo_amrouter.png +0 -0
  180. package/public/logo_fsrouter.png +0 -0
  181. package/public/logo_fsrouter.svg +10 -0
  182. package/public/logo_fsrouter_backup.png +0 -0
  183. package/public/logo_v2.png +0 -0
  184. package/public/providers/agentrouter.png +0 -0
  185. package/public/providers/agentrouter.webp +0 -0
  186. package/public/providers/alicode-intl.png +0 -0
  187. package/public/providers/alicode-intl.webp +0 -0
  188. package/public/providers/alicode.png +0 -0
  189. package/public/providers/alicode.webp +0 -0
  190. package/public/providers/amp.png +0 -0
  191. package/public/providers/amp.webp +0 -0
  192. package/public/providers/anthropic-m.png +0 -0
  193. package/public/providers/anthropic-m.webp +0 -0
  194. package/public/providers/anthropic.png +0 -0
  195. package/public/providers/anthropic.webp +0 -0
  196. package/public/providers/antigravity.png +0 -0
  197. package/public/providers/antigravity.webp +0 -0
  198. package/public/providers/assemblyai.png +0 -0
  199. package/public/providers/assemblyai.webp +0 -0
  200. package/public/providers/aws-polly.png +0 -0
  201. package/public/providers/aws-polly.webp +0 -0
  202. package/public/providers/azure.png +0 -0
  203. package/public/providers/azure.webp +0 -0
  204. package/public/providers/black-forest-labs.png +0 -0
  205. package/public/providers/black-forest-labs.webp +0 -0
  206. package/public/providers/blackbox.png +0 -0
  207. package/public/providers/blackbox.webp +0 -0
  208. package/public/providers/brave-search.png +0 -0
  209. package/public/providers/brave-search.webp +0 -0
  210. package/public/providers/byteplus.png +0 -0
  211. package/public/providers/byteplus.webp +0 -0
  212. package/public/providers/cartesia.png +0 -0
  213. package/public/providers/cartesia.webp +0 -0
  214. package/public/providers/cerebras.png +0 -0
  215. package/public/providers/cerebras.webp +0 -0
  216. package/public/providers/chutes.png +0 -0
  217. package/public/providers/chutes.webp +0 -0
  218. package/public/providers/claude.png +0 -0
  219. package/public/providers/claude.webp +0 -0
  220. package/public/providers/cline.png +0 -0
  221. package/public/providers/cline.webp +0 -0
  222. package/public/providers/clinepass.png +0 -0
  223. package/public/providers/cloudflare-ai.png +0 -0
  224. package/public/providers/cloudflare-ai.webp +0 -0
  225. package/public/providers/codebuddy-cn.png +0 -0
  226. package/public/providers/codebuddy-cn.webp +0 -0
  227. package/public/providers/codebuddy.png +0 -0
  228. package/public/providers/codebuddy.svg +1 -0
  229. package/public/providers/codex.png +0 -0
  230. package/public/providers/codex.webp +0 -0
  231. package/public/providers/cohere.png +0 -0
  232. package/public/providers/cohere.webp +0 -0
  233. package/public/providers/comfyui.png +0 -0
  234. package/public/providers/comfyui.webp +0 -0
  235. package/public/providers/commandcode.png +0 -0
  236. package/public/providers/commandcode.webp +0 -0
  237. package/public/providers/continue.png +0 -0
  238. package/public/providers/continue.webp +0 -0
  239. package/public/providers/copilot.png +0 -0
  240. package/public/providers/copilot.webp +0 -0
  241. package/public/providers/coqui.png +0 -0
  242. package/public/providers/coqui.webp +0 -0
  243. package/public/providers/cursor.png +0 -0
  244. package/public/providers/cursor.webp +0 -0
  245. package/public/providers/deepgram.png +0 -0
  246. package/public/providers/deepgram.webp +0 -0
  247. package/public/providers/deepseek-tui.png +0 -0
  248. package/public/providers/deepseek-tui.webp +0 -0
  249. package/public/providers/deepseek.png +0 -0
  250. package/public/providers/deepseek.webp +0 -0
  251. package/public/providers/digitalocean.png +0 -0
  252. package/public/providers/droid.png +0 -0
  253. package/public/providers/droid.webp +0 -0
  254. package/public/providers/edge-tts.png +0 -0
  255. package/public/providers/edge-tts.webp +0 -0
  256. package/public/providers/elevenlabs.png +0 -0
  257. package/public/providers/elevenlabs.webp +0 -0
  258. package/public/providers/exa.png +0 -0
  259. package/public/providers/exa.webp +0 -0
  260. package/public/providers/fal-ai.png +0 -0
  261. package/public/providers/fal-ai.webp +0 -0
  262. package/public/providers/firecrawl.png +0 -0
  263. package/public/providers/firecrawl.webp +0 -0
  264. package/public/providers/fireworks.png +0 -0
  265. package/public/providers/fireworks.webp +0 -0
  266. package/public/providers/gemini-cli.png +0 -0
  267. package/public/providers/gemini-cli.webp +0 -0
  268. package/public/providers/gemini.png +0 -0
  269. package/public/providers/gemini.webp +0 -0
  270. package/public/providers/gigachat.png +0 -0
  271. package/public/providers/gigachat.webp +0 -0
  272. package/public/providers/github.png +0 -0
  273. package/public/providers/github.webp +0 -0
  274. package/public/providers/glm-cn.png +0 -0
  275. package/public/providers/glm-cn.webp +0 -0
  276. package/public/providers/glm.png +0 -0
  277. package/public/providers/glm.webp +0 -0
  278. package/public/providers/google-pse.png +0 -0
  279. package/public/providers/google-pse.webp +0 -0
  280. package/public/providers/google-tts.png +0 -0
  281. package/public/providers/google-tts.webp +0 -0
  282. package/public/providers/grok-web.png +0 -0
  283. package/public/providers/grok-web.webp +0 -0
  284. package/public/providers/groq.png +0 -0
  285. package/public/providers/groq.webp +0 -0
  286. package/public/providers/hermes.png +0 -0
  287. package/public/providers/hermes.webp +0 -0
  288. package/public/providers/heroku.png +0 -0
  289. package/public/providers/heroku.webp +0 -0
  290. package/public/providers/huggingface.png +0 -0
  291. package/public/providers/huggingface.webp +0 -0
  292. package/public/providers/hyperbolic.png +0 -0
  293. package/public/providers/hyperbolic.webp +0 -0
  294. package/public/providers/ibm-bob.png +0 -0
  295. package/public/providers/iflow.png +0 -0
  296. package/public/providers/iflow.webp +0 -0
  297. package/public/providers/inworld.png +0 -0
  298. package/public/providers/inworld.webp +0 -0
  299. package/public/providers/jcode.png +0 -0
  300. package/public/providers/jcode.webp +0 -0
  301. package/public/providers/jina-ai.png +0 -0
  302. package/public/providers/jina-ai.webp +0 -0
  303. package/public/providers/jina-reader.png +0 -0
  304. package/public/providers/jina-reader.webp +0 -0
  305. package/public/providers/kilocode.png +0 -0
  306. package/public/providers/kilocode.webp +0 -0
  307. package/public/providers/kimchi.png +0 -0
  308. package/public/providers/kimchi.webp +0 -0
  309. package/public/providers/kimi-coding.png +0 -0
  310. package/public/providers/kimi-coding.webp +0 -0
  311. package/public/providers/kimi.png +0 -0
  312. package/public/providers/kimi.webp +0 -0
  313. package/public/providers/kiro.png +0 -0
  314. package/public/providers/kiro.webp +0 -0
  315. package/public/providers/leonardo.png +0 -0
  316. package/public/providers/linkup.png +0 -0
  317. package/public/providers/linkup.webp +0 -0
  318. package/public/providers/llamagate.png +0 -0
  319. package/public/providers/llamagate.webp +0 -0
  320. package/public/providers/local-device.png +0 -0
  321. package/public/providers/local-device.webp +0 -0
  322. package/public/providers/mimo-free.png +0 -0
  323. package/public/providers/mimo-free.webp +0 -0
  324. package/public/providers/minimax-cn.png +0 -0
  325. package/public/providers/minimax-cn.webp +0 -0
  326. package/public/providers/minimax.png +0 -0
  327. package/public/providers/minimax.webp +0 -0
  328. package/public/providers/mistral.png +0 -0
  329. package/public/providers/mistral.webp +0 -0
  330. package/public/providers/nanobanana.png +0 -0
  331. package/public/providers/nanobanana.webp +0 -0
  332. package/public/providers/nanogpt.png +0 -0
  333. package/public/providers/nanogpt.webp +0 -0
  334. package/public/providers/nebius.png +0 -0
  335. package/public/providers/nebius.webp +0 -0
  336. package/public/providers/nscale.png +0 -0
  337. package/public/providers/nscale.webp +0 -0
  338. package/public/providers/nvidia.png +0 -0
  339. package/public/providers/nvidia.webp +0 -0
  340. package/public/providers/oai-cc.png +0 -0
  341. package/public/providers/oai-cc.webp +0 -0
  342. package/public/providers/oai-r.png +0 -0
  343. package/public/providers/oai-r.webp +0 -0
  344. package/public/providers/ollama-local.png +0 -0
  345. package/public/providers/ollama-local.webp +0 -0
  346. package/public/providers/ollama.png +0 -0
  347. package/public/providers/ollama.webp +0 -0
  348. package/public/providers/openai.png +0 -0
  349. package/public/providers/openai.webp +0 -0
  350. package/public/providers/openclaw.png +0 -0
  351. package/public/providers/openclaw.webp +0 -0
  352. package/public/providers/opencode-go.png +0 -0
  353. package/public/providers/opencode-go.webp +0 -0
  354. package/public/providers/opencode.png +0 -0
  355. package/public/providers/opencode.webp +0 -0
  356. package/public/providers/openrouter.png +0 -0
  357. package/public/providers/openrouter.webp +0 -0
  358. package/public/providers/ovhcloud.png +0 -0
  359. package/public/providers/ovhcloud.webp +0 -0
  360. package/public/providers/perplexity-web.png +0 -0
  361. package/public/providers/perplexity-web.webp +0 -0
  362. package/public/providers/perplexity.png +0 -0
  363. package/public/providers/perplexity.webp +0 -0
  364. package/public/providers/playht.png +0 -0
  365. package/public/providers/playht.webp +0 -0
  366. package/public/providers/predibase.png +0 -0
  367. package/public/providers/predibase.webp +0 -0
  368. package/public/providers/qoder.png +0 -0
  369. package/public/providers/qoder.webp +0 -0
  370. package/public/providers/qwen.png +0 -0
  371. package/public/providers/qwen.webp +0 -0
  372. package/public/providers/recraft.png +0 -0
  373. package/public/providers/recraft.webp +0 -0
  374. package/public/providers/roo.png +0 -0
  375. package/public/providers/roo.webp +0 -0
  376. package/public/providers/runwayml.png +0 -0
  377. package/public/providers/runwayml.webp +0 -0
  378. package/public/providers/sdwebui.png +0 -0
  379. package/public/providers/sdwebui.webp +0 -0
  380. package/public/providers/searchapi.png +0 -0
  381. package/public/providers/searchapi.webp +0 -0
  382. package/public/providers/searxng.png +0 -0
  383. package/public/providers/searxng.webp +0 -0
  384. package/public/providers/serper.png +0 -0
  385. package/public/providers/serper.webp +0 -0
  386. package/public/providers/siliconflow.png +0 -0
  387. package/public/providers/siliconflow.webp +0 -0
  388. package/public/providers/stability-ai.png +0 -0
  389. package/public/providers/stability-ai.webp +0 -0
  390. package/public/providers/tavily.png +0 -0
  391. package/public/providers/tavily.webp +0 -0
  392. package/public/providers/together.png +0 -0
  393. package/public/providers/together.webp +0 -0
  394. package/public/providers/topaz.png +0 -0
  395. package/public/providers/topaz.webp +0 -0
  396. package/public/providers/tortoise.png +0 -0
  397. package/public/providers/tortoise.webp +0 -0
  398. package/public/providers/vertex-partner.png +0 -0
  399. package/public/providers/vertex-partner.webp +0 -0
  400. package/public/providers/vertex.png +0 -0
  401. package/public/providers/vertex.webp +0 -0
  402. package/public/providers/volcengine-ark.png +0 -0
  403. package/public/providers/volcengine-ark.webp +0 -0
  404. package/public/providers/voyage-ai.png +0 -0
  405. package/public/providers/voyage-ai.webp +0 -0
  406. package/public/providers/weavy.jpeg +0 -0
  407. package/public/providers/weavy.png +0 -0
  408. package/public/providers/xai.png +0 -0
  409. package/public/providers/xai.webp +0 -0
  410. package/public/providers/xiaomi-mimo.png +0 -0
  411. package/public/providers/xiaomi-mimo.webp +0 -0
  412. package/public/providers/xiaomi-tokenplan.png +0 -0
  413. package/public/providers/xiaomi-tokenplan.webp +0 -0
  414. package/public/providers/youcom.png +0 -0
  415. package/public/providers/youcom.webp +0 -0
  416. package/public/providers/zcode.png +0 -0
  417. package/public/providers/zcode.webp +0 -0
  418. package/public/weavy.jpeg +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fudrouter/fsrouter",
3
- "version": "0.6.43",
3
+ "version": "0.6.44",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "9Router v2 \u2014 Express Backend (API, SSE, DB, Auth, MITM)",
@@ -0,0 +1,469 @@
1
+ {
2
+ "../node_modules/@monaco-editor/react/dist/index.mjs": {
3
+ "file": "assets/index.1VBQU7rF.js",
4
+ "name": "index",
5
+ "src": "../node_modules/@monaco-editor/react/dist/index.mjs",
6
+ "isDynamicEntry": true,
7
+ "imports": [
8
+ "_router.Cjj1--8t.js"
9
+ ]
10
+ },
11
+ "../node_modules/material-symbols/material-symbols-outlined.woff2": {
12
+ "file": "assets/material-symbols-outlined.B4RtTC4Y.woff2",
13
+ "src": "../node_modules/material-symbols/material-symbols-outlined.woff2"
14
+ },
15
+ "_EndpointPageClient.XC1PAjFZ.js": {
16
+ "file": "assets/EndpointPageClient.XC1PAjFZ.js",
17
+ "name": "EndpointPageClient",
18
+ "imports": [
19
+ "index.html",
20
+ "_router.Cjj1--8t.js",
21
+ "_NoAuthProxyCard.CIzWmBaj.js",
22
+ "_Loading.C3ra99o8.js"
23
+ ]
24
+ },
25
+ "_Loading.C3ra99o8.js": {
26
+ "file": "assets/Loading.C3ra99o8.js",
27
+ "name": "Loading",
28
+ "imports": [
29
+ "index.html"
30
+ ]
31
+ },
32
+ "_NoAuthProxyCard.C5ap-Sga.css": {
33
+ "file": "assets/NoAuthProxyCard.C5ap-Sga.css",
34
+ "src": "_NoAuthProxyCard.C5ap-Sga.css"
35
+ },
36
+ "_NoAuthProxyCard.CIzWmBaj.js": {
37
+ "file": "assets/NoAuthProxyCard.CIzWmBaj.js",
38
+ "name": "NoAuthProxyCard",
39
+ "imports": [
40
+ "index.html",
41
+ "_router.Cjj1--8t.js"
42
+ ],
43
+ "css": [
44
+ "assets/NoAuthProxyCard.C5ap-Sga.css"
45
+ ]
46
+ },
47
+ "_cliTools.BTk8ighn.js": {
48
+ "file": "assets/cliTools.BTk8ighn.js",
49
+ "name": "cliTools"
50
+ },
51
+ "_machine.CagOtseJ.js": {
52
+ "file": "assets/machine.CagOtseJ.js",
53
+ "name": "machine"
54
+ },
55
+ "_react.l0sNRNKZ.js": {
56
+ "file": "assets/react.l0sNRNKZ.js",
57
+ "name": "react"
58
+ },
59
+ "_router.Cjj1--8t.js": {
60
+ "file": "assets/router.Cjj1--8t.js",
61
+ "name": "router"
62
+ },
63
+ "_zustand.akaTi5uX.js": {
64
+ "file": "assets/zustand.akaTi5uX.js",
65
+ "name": "zustand",
66
+ "imports": [
67
+ "_router.Cjj1--8t.js"
68
+ ]
69
+ },
70
+ "index.html": {
71
+ "file": "assets/index.BiU-40OQ.js",
72
+ "name": "index",
73
+ "src": "index.html",
74
+ "isEntry": true,
75
+ "imports": [
76
+ "_router.Cjj1--8t.js",
77
+ "_zustand.akaTi5uX.js"
78
+ ],
79
+ "dynamicImports": [
80
+ "src/pages/landing/page.jsx",
81
+ "src/pages/login/page.tsx",
82
+ "src/pages/callback/page.jsx",
83
+ "src/pages/page.jsx",
84
+ "src/pages/providers/page.jsx",
85
+ "src/pages/providers/[id]/page.jsx",
86
+ "src/pages/providers/new/page.jsx",
87
+ "src/pages/usage/page.jsx",
88
+ "src/pages/quota/page.jsx",
89
+ "src/pages/proxy-pools/page.jsx",
90
+ "src/pages/combos/page.jsx",
91
+ "src/pages/endpoint/page.jsx",
92
+ "src/pages/translator/page.jsx",
93
+ "src/pages/cli-tools/page.jsx",
94
+ "src/pages/cli-tools/[toolId]/page.jsx",
95
+ "src/pages/automation/page.jsx",
96
+ "src/pages/basic-chat/page.jsx",
97
+ "src/pages/mitm/page.jsx",
98
+ "src/pages/profile/page.jsx",
99
+ "src/pages/docs/page.jsx",
100
+ "src/pages/skills/page.jsx",
101
+ "src/pages/console-log/page.jsx",
102
+ "src/pages/media-providers/web/page.jsx",
103
+ "src/pages/media-providers/[kind]/page.jsx",
104
+ "src/pages/media-providers/[kind]/[id]/page.jsx",
105
+ "src/pages/media-providers/combo/[id]/page.jsx",
106
+ "src/pages/providers/weavy/pool/page.jsx",
107
+ "src/pages/automation/ammail-tutorial/page.jsx"
108
+ ],
109
+ "css": [
110
+ "assets/index.DqsEWaGW.css"
111
+ ],
112
+ "assets": [
113
+ "assets/material-symbols-outlined.B4RtTC4Y.woff2"
114
+ ]
115
+ },
116
+ "src/pages/automation/ammail-tutorial/page.jsx": {
117
+ "file": "assets/page.BmJV2Sc3.js",
118
+ "name": "page",
119
+ "src": "src/pages/automation/ammail-tutorial/page.jsx",
120
+ "isDynamicEntry": true,
121
+ "imports": [
122
+ "index.html",
123
+ "_router.Cjj1--8t.js",
124
+ "_zustand.akaTi5uX.js"
125
+ ]
126
+ },
127
+ "src/pages/automation/page.jsx": {
128
+ "file": "assets/page.B2GX4rcl.js",
129
+ "name": "page",
130
+ "src": "src/pages/automation/page.jsx",
131
+ "isDynamicEntry": true,
132
+ "imports": [
133
+ "index.html",
134
+ "_router.Cjj1--8t.js",
135
+ "_NoAuthProxyCard.CIzWmBaj.js",
136
+ "_Loading.C3ra99o8.js",
137
+ "_zustand.akaTi5uX.js"
138
+ ]
139
+ },
140
+ "src/pages/basic-chat/page.jsx": {
141
+ "file": "assets/page.BCC4qdzb.js",
142
+ "name": "page",
143
+ "src": "src/pages/basic-chat/page.jsx",
144
+ "isDynamicEntry": true,
145
+ "imports": [
146
+ "index.html",
147
+ "_router.Cjj1--8t.js",
148
+ "_NoAuthProxyCard.CIzWmBaj.js",
149
+ "_zustand.akaTi5uX.js"
150
+ ]
151
+ },
152
+ "src/pages/callback/page.jsx": {
153
+ "file": "assets/page.BeGfgDAI.js",
154
+ "name": "page",
155
+ "src": "src/pages/callback/page.jsx",
156
+ "isDynamicEntry": true,
157
+ "imports": [
158
+ "index.html",
159
+ "_router.Cjj1--8t.js",
160
+ "_zustand.akaTi5uX.js"
161
+ ]
162
+ },
163
+ "src/pages/cli-tools/[toolId]/page.jsx": {
164
+ "file": "assets/page.X8OLDP8G.js",
165
+ "name": "page",
166
+ "src": "src/pages/cli-tools/[toolId]/page.jsx",
167
+ "isDynamicEntry": true,
168
+ "imports": [
169
+ "index.html",
170
+ "_router.Cjj1--8t.js",
171
+ "_cliTools.BTk8ighn.js",
172
+ "_machine.CagOtseJ.js",
173
+ "_NoAuthProxyCard.CIzWmBaj.js",
174
+ "_Loading.C3ra99o8.js",
175
+ "_zustand.akaTi5uX.js"
176
+ ]
177
+ },
178
+ "src/pages/cli-tools/page.jsx": {
179
+ "file": "assets/page.CmWVoXIy.js",
180
+ "name": "page",
181
+ "src": "src/pages/cli-tools/page.jsx",
182
+ "isDynamicEntry": true,
183
+ "imports": [
184
+ "index.html",
185
+ "_router.Cjj1--8t.js",
186
+ "_machine.CagOtseJ.js",
187
+ "_NoAuthProxyCard.CIzWmBaj.js",
188
+ "_Loading.C3ra99o8.js",
189
+ "_cliTools.BTk8ighn.js",
190
+ "_zustand.akaTi5uX.js"
191
+ ]
192
+ },
193
+ "src/pages/combos/page.jsx": {
194
+ "file": "assets/page.Dbx82cMD.js",
195
+ "name": "page",
196
+ "src": "src/pages/combos/page.jsx",
197
+ "isDynamicEntry": true,
198
+ "imports": [
199
+ "index.html",
200
+ "_router.Cjj1--8t.js",
201
+ "_NoAuthProxyCard.CIzWmBaj.js",
202
+ "_Loading.C3ra99o8.js",
203
+ "_zustand.akaTi5uX.js"
204
+ ]
205
+ },
206
+ "src/pages/console-log/page.jsx": {
207
+ "file": "assets/page.BeREiDTX.js",
208
+ "name": "page",
209
+ "src": "src/pages/console-log/page.jsx",
210
+ "isDynamicEntry": true,
211
+ "imports": [
212
+ "index.html",
213
+ "_router.Cjj1--8t.js",
214
+ "_NoAuthProxyCard.CIzWmBaj.js",
215
+ "_zustand.akaTi5uX.js"
216
+ ]
217
+ },
218
+ "src/pages/docs/page.jsx": {
219
+ "file": "assets/page.Bref8whQ.js",
220
+ "name": "page",
221
+ "src": "src/pages/docs/page.jsx",
222
+ "isDynamicEntry": true,
223
+ "imports": [
224
+ "index.html",
225
+ "_router.Cjj1--8t.js",
226
+ "_zustand.akaTi5uX.js"
227
+ ]
228
+ },
229
+ "src/pages/endpoint/page.jsx": {
230
+ "file": "assets/page.CxXmgb_F.js",
231
+ "name": "page",
232
+ "src": "src/pages/endpoint/page.jsx",
233
+ "isDynamicEntry": true,
234
+ "imports": [
235
+ "index.html",
236
+ "_router.Cjj1--8t.js",
237
+ "_machine.CagOtseJ.js",
238
+ "_EndpointPageClient.XC1PAjFZ.js",
239
+ "_zustand.akaTi5uX.js",
240
+ "_NoAuthProxyCard.CIzWmBaj.js",
241
+ "_Loading.C3ra99o8.js"
242
+ ]
243
+ },
244
+ "src/pages/landing/page.jsx": {
245
+ "file": "assets/page.BF5BpOVC.js",
246
+ "name": "page",
247
+ "src": "src/pages/landing/page.jsx",
248
+ "isDynamicEntry": true,
249
+ "imports": [
250
+ "index.html",
251
+ "_router.Cjj1--8t.js",
252
+ "_zustand.akaTi5uX.js"
253
+ ]
254
+ },
255
+ "src/pages/login/page.tsx": {
256
+ "file": "assets/page.CUjbxDjX.js",
257
+ "name": "page",
258
+ "src": "src/pages/login/page.tsx",
259
+ "isDynamicEntry": true,
260
+ "imports": [
261
+ "index.html",
262
+ "_router.Cjj1--8t.js",
263
+ "_zustand.akaTi5uX.js"
264
+ ]
265
+ },
266
+ "src/pages/media-providers/[kind]/[id]/page.jsx": {
267
+ "file": "assets/page.5tVTeUC0.js",
268
+ "name": "page",
269
+ "src": "src/pages/media-providers/[kind]/[id]/page.jsx",
270
+ "isDynamicEntry": true,
271
+ "imports": [
272
+ "index.html",
273
+ "_router.Cjj1--8t.js",
274
+ "_NoAuthProxyCard.CIzWmBaj.js",
275
+ "_zustand.akaTi5uX.js"
276
+ ]
277
+ },
278
+ "src/pages/media-providers/[kind]/page.jsx": {
279
+ "file": "assets/page.Dz4NXyFs.js",
280
+ "name": "page",
281
+ "src": "src/pages/media-providers/[kind]/page.jsx",
282
+ "isDynamicEntry": true,
283
+ "imports": [
284
+ "index.html",
285
+ "_router.Cjj1--8t.js",
286
+ "_NoAuthProxyCard.CIzWmBaj.js",
287
+ "_zustand.akaTi5uX.js"
288
+ ]
289
+ },
290
+ "src/pages/media-providers/combo/[id]/page.jsx": {
291
+ "file": "assets/page.Bys1E4PI.js",
292
+ "name": "page",
293
+ "src": "src/pages/media-providers/combo/[id]/page.jsx",
294
+ "isDynamicEntry": true,
295
+ "imports": [
296
+ "index.html",
297
+ "_router.Cjj1--8t.js",
298
+ "_NoAuthProxyCard.CIzWmBaj.js",
299
+ "_zustand.akaTi5uX.js"
300
+ ]
301
+ },
302
+ "src/pages/media-providers/web/page.jsx": {
303
+ "file": "assets/page.S-Fyy0qQ.js",
304
+ "name": "page",
305
+ "src": "src/pages/media-providers/web/page.jsx",
306
+ "isDynamicEntry": true,
307
+ "imports": [
308
+ "index.html",
309
+ "_router.Cjj1--8t.js",
310
+ "_NoAuthProxyCard.CIzWmBaj.js",
311
+ "_zustand.akaTi5uX.js"
312
+ ]
313
+ },
314
+ "src/pages/mitm/page.jsx": {
315
+ "file": "assets/page.ChG3IvBB.js",
316
+ "name": "page",
317
+ "src": "src/pages/mitm/page.jsx",
318
+ "isDynamicEntry": true,
319
+ "imports": [
320
+ "index.html",
321
+ "_router.Cjj1--8t.js",
322
+ "_cliTools.BTk8ighn.js",
323
+ "_NoAuthProxyCard.CIzWmBaj.js",
324
+ "_zustand.akaTi5uX.js"
325
+ ]
326
+ },
327
+ "src/pages/page.jsx": {
328
+ "file": "assets/page.AE3apiCd.js",
329
+ "name": "page",
330
+ "src": "src/pages/page.jsx",
331
+ "isDynamicEntry": true,
332
+ "imports": [
333
+ "index.html",
334
+ "_router.Cjj1--8t.js",
335
+ "_machine.CagOtseJ.js",
336
+ "_EndpointPageClient.XC1PAjFZ.js",
337
+ "_zustand.akaTi5uX.js",
338
+ "_NoAuthProxyCard.CIzWmBaj.js",
339
+ "_Loading.C3ra99o8.js"
340
+ ]
341
+ },
342
+ "src/pages/profile/page.jsx": {
343
+ "file": "assets/page.CoRkCW9X.js",
344
+ "name": "page",
345
+ "src": "src/pages/profile/page.jsx",
346
+ "isDynamicEntry": true,
347
+ "imports": [
348
+ "index.html",
349
+ "_router.Cjj1--8t.js",
350
+ "_NoAuthProxyCard.CIzWmBaj.js",
351
+ "_zustand.akaTi5uX.js"
352
+ ]
353
+ },
354
+ "src/pages/providers/[id]/page.jsx": {
355
+ "file": "assets/page.D6Vxxalz.js",
356
+ "name": "page",
357
+ "src": "src/pages/providers/[id]/page.jsx",
358
+ "isDynamicEntry": true,
359
+ "imports": [
360
+ "index.html",
361
+ "_router.Cjj1--8t.js",
362
+ "_NoAuthProxyCard.CIzWmBaj.js",
363
+ "_Loading.C3ra99o8.js",
364
+ "_zustand.akaTi5uX.js"
365
+ ]
366
+ },
367
+ "src/pages/providers/new/page.jsx": {
368
+ "file": "assets/page.ChtwNMyA.js",
369
+ "name": "page",
370
+ "src": "src/pages/providers/new/page.jsx",
371
+ "isDynamicEntry": true,
372
+ "imports": [
373
+ "index.html",
374
+ "_router.Cjj1--8t.js",
375
+ "_NoAuthProxyCard.CIzWmBaj.js",
376
+ "_zustand.akaTi5uX.js"
377
+ ]
378
+ },
379
+ "src/pages/providers/page.jsx": {
380
+ "file": "assets/page.D8vbOLqH.js",
381
+ "name": "page",
382
+ "src": "src/pages/providers/page.jsx",
383
+ "isDynamicEntry": true,
384
+ "imports": [
385
+ "index.html",
386
+ "_router.Cjj1--8t.js",
387
+ "_NoAuthProxyCard.CIzWmBaj.js",
388
+ "_Loading.C3ra99o8.js",
389
+ "_zustand.akaTi5uX.js"
390
+ ]
391
+ },
392
+ "src/pages/providers/weavy/pool/page.jsx": {
393
+ "file": "assets/page.DvSeWU45.js",
394
+ "name": "page",
395
+ "src": "src/pages/providers/weavy/pool/page.jsx",
396
+ "isDynamicEntry": true,
397
+ "imports": [
398
+ "index.html",
399
+ "_router.Cjj1--8t.js",
400
+ "_zustand.akaTi5uX.js"
401
+ ]
402
+ },
403
+ "src/pages/proxy-pools/page.jsx": {
404
+ "file": "assets/page.CGyxS4lq.js",
405
+ "name": "page",
406
+ "src": "src/pages/proxy-pools/page.jsx",
407
+ "isDynamicEntry": true,
408
+ "imports": [
409
+ "index.html",
410
+ "_router.Cjj1--8t.js",
411
+ "_NoAuthProxyCard.CIzWmBaj.js",
412
+ "_Loading.C3ra99o8.js",
413
+ "_zustand.akaTi5uX.js"
414
+ ]
415
+ },
416
+ "src/pages/quota/page.jsx": {
417
+ "file": "assets/page.BW5D6nx4.js",
418
+ "name": "page",
419
+ "src": "src/pages/quota/page.jsx",
420
+ "isDynamicEntry": true,
421
+ "imports": [
422
+ "index.html",
423
+ "_router.Cjj1--8t.js",
424
+ "_Loading.C3ra99o8.js",
425
+ "_NoAuthProxyCard.CIzWmBaj.js",
426
+ "_zustand.akaTi5uX.js"
427
+ ]
428
+ },
429
+ "src/pages/skills/page.jsx": {
430
+ "file": "assets/page.Dth4GH5t.js",
431
+ "name": "page",
432
+ "src": "src/pages/skills/page.jsx",
433
+ "isDynamicEntry": true,
434
+ "imports": [
435
+ "index.html",
436
+ "_NoAuthProxyCard.CIzWmBaj.js",
437
+ "_router.Cjj1--8t.js",
438
+ "_zustand.akaTi5uX.js"
439
+ ]
440
+ },
441
+ "src/pages/translator/page.jsx": {
442
+ "file": "assets/page.BiMQl38v.js",
443
+ "name": "page",
444
+ "src": "src/pages/translator/page.jsx",
445
+ "isDynamicEntry": true,
446
+ "imports": [
447
+ "index.html",
448
+ "_router.Cjj1--8t.js",
449
+ "_NoAuthProxyCard.CIzWmBaj.js",
450
+ "_zustand.akaTi5uX.js"
451
+ ],
452
+ "dynamicImports": [
453
+ "../node_modules/@monaco-editor/react/dist/index.mjs"
454
+ ]
455
+ },
456
+ "src/pages/usage/page.jsx": {
457
+ "file": "assets/page.CkZUVaV3.js",
458
+ "name": "page",
459
+ "src": "src/pages/usage/page.jsx",
460
+ "isDynamicEntry": true,
461
+ "imports": [
462
+ "index.html",
463
+ "_router.Cjj1--8t.js",
464
+ "_NoAuthProxyCard.CIzWmBaj.js",
465
+ "_Loading.C3ra99o8.js",
466
+ "_zustand.akaTi5uX.js"
467
+ ]
468
+ }
469
+ }
@@ -0,0 +1,103 @@
1
+ # FSRouter Changelog
2
+
3
+ All notable changes to the decoupled **FSRouter** platform will be documented here.
4
+
5
+ ---
6
+
7
+ ## [v0.6.4] - 2026-07-14
8
+
9
+ ### Added
10
+ - **Cloudflare Automation (Unique Emails)**: Appended an 8-character unique alphanumeric suffix (e.g. `-x7y2z8a1`) to generated human emails in `cloudflare_signup.py` to prevent email collisions with existing Cloudflare accounts, completely fixing the "Login gagal: password salah" error.
11
+
12
+ ### Changed
13
+
14
+ ### Fixed
15
+ - **Stuck Streaming Requests**: Wrapped `chatCore.js` execution flow in a global try-catch to guarantee that pending request counts in memory (`trackPendingRequest`) are always decremented on exceptions/aborts, preventing models from getting stuck in `streaming…` state.
16
+ - **Database Duplicates**: Cleaned up the SQLite database to remove redundant connection records where emails were registered under both `cloudflare` and `cloudflare-ai`, keeping only the active `cloudflare-ai` connections.
17
+ - **Auto Inject Toggle**: Aligned the request keys between frontend toggle (`auto_fsrouter`) and backend settings handler (`auto_9router`), resolving the issue where "Auto Inject to fsrouter" could not be enabled/saved.
18
+
19
+ ---
20
+
21
+ ## [v0.6.3] - 2026-07-08
22
+
23
+ ### Fixed
24
+ - **Claude Code double `/v1` in URL**: CLI Tools claude-settings route was incorrectly appending `/v1` to `ANTHROPIC_BASE_URL`. Since Claude Code's SDK already appends `/v1/messages` automatically, requests were hitting `/v1/v1/messages` (404). The route now strips any trailing `/v1` from the URL instead of adding it.
25
+ - **Claude Code `model output must contain either output text or tool calls` error**: When models (e.g. GLM, DeepSeek) return only a thinking block with empty text, the openai-to-claude translator now injects a minimal text block to satisfy Claude Code's requirement.
26
+ - **AMRouter port detection in CLI Tools**: Claude-settings route now detects AMRouter on its default port `5177` (in addition to legacy 9Router port `3001`).
27
+ - **Duplicate entries in Recent Requests/Usage**: Streaming requests were being logged twice — once as a placeholder (`ttft=0, "[Streaming in progress...]"`) when the stream started, and again when it completed. The placeholder write has been removed; only the final completion record is now saved, resulting in one clean entry per request.
28
+ - **Cloudflare 400 error with tool_result in multi-turn tool use**: The Claude→OpenAI request translator was not handling `thinking` and `redacted_thinking` blocks in assistant messages. When Claude Code sent a multi-turn conversation with thinking blocks, these unhandled blocks caused the translator to produce an empty/null message — de-syncing the message array index and leaving `tool_result` blocks unconverted in user messages. Fixed by: (1) converting `thinking` blocks to text parts, (2) silently dropping `redacted_thinking` blocks, (3) adding a `default` case to preserve message ordering, and (4) always returning a non-null message from array content.
29
+
30
+
31
+
32
+ ---
33
+
34
+ ## [v0.6.2] - 2026-07-08
35
+
36
+
37
+ ### Changed
38
+ - **New Logo**: App icon updated with a new AMRouter logo (orange circuit-board "AM" motif on dark background).
39
+
40
+ ---
41
+
42
+ ## [v0.6.1] - 2026-07-08
43
+
44
+ ### Fixed
45
+ - **Icons not rendering (showing as text)**: Material Symbols Outlined font is now bundled locally via the `material-symbols` npm package instead of being loaded from Google Fonts CDN. Fixes icons appearing as raw text strings (e.g. `content_copy`, `vpn_key`, `bolt`) in environments without internet access or with blocked CDN requests.
46
+
47
+ ---
48
+
49
+ ## [v0.6.0] - 2026-07-06
50
+
51
+ ### Added
52
+ - **Usage API — Complete Provider Coverage**: Fully implemented usage/quota fetching for all supported providers:
53
+ - **GitHub Copilot**: Real quota snapshots (paid plan: chat/completions/premium; free plan: monthly limits + reset date)
54
+ - **Gemini CLI**: Per-model quota buckets via `cloudcode-pa.googleapis.com` with remaining fraction + reset time
55
+ - **Antigravity**: Model-level quota from `fetchAvailableModels` with subscription tier info
56
+ - **Claude**: OAuth usage endpoint (5h session + 7d weekly windows) with legacy org fallback
57
+ - **Codex (OpenAI)**: `chatgpt.com/backend-api/wham/usage` session + weekly rate limit windows
58
+ - **Kiro (AWS)**: `codewhisperer.us-east-1.amazonaws.com/getUsageLimits` multi-endpoint fallback
59
+ - **Qoder**: `openapi.qoder.sh/api/v2/quota/usage` with expiry parsing
60
+ - **GLM / GLM-CN**: `bigmodel.cn/api/monitor/usage/quota/limit` per-region with plan level
61
+ - **MiniMax / MiniMax-CN**: `coding_plan/remains` multi-URL fallback + M-series percent-only buckets
62
+ - **CodeBuddy**: `billing/ide/usage` with local DB fallback for `ck_` API keys (Tencent restriction)
63
+ - **Kimi Coding**: User profile endpoint for connection status
64
+ - **Cloudflare Workers AI**: `api.cloudflare.com/accounts/{id}/ai/usage` neurons + requests
65
+ - **Cursor**: `api2.cursor.sh/auth/stripe` membership type + expiry info
66
+ - **KiloCode**: `api.kilo.ai/api/user/profile` plan + credits
67
+ - **Cline**: `api.cline.bot/api/v1/auth/me` plan + credits
68
+
69
+ - **Skills Page Improvements**:
70
+ - Skills now point to `ahwanulm/AMRouter` repo (previously `decolua/9router`)
71
+ - Added `using-superpowers` and `multi-brain` agent skills
72
+ - Page redesigned with 3 sections: Entry Point / API Capabilities / Agent Workflow
73
+ - Quick Start card with copy-prompt button
74
+
75
+ - **Agent Instructions** (`.agents/AGENTS.md`): Workspace rule requiring changelog updates after every significant change
76
+
77
+ ### Changed
78
+ - **Language picker removed**: Dashboard now defaults to English; language selection UI removed from header and profile page
79
+ - **Changelog**: Now served from local `/CHANGELOG.md` static file, no longer fetched from upstream 9router repo
80
+
81
+ ### Removed
82
+ - **Weavy AI provider**: Removed from `WEB_COOKIE_PROVIDERS` — automation scripts deleted
83
+ - **Weavy AI usage**: Removed from `USAGE_SUPPORTED_PROVIDERS`
84
+ - **Leonardo AI usage**: Removed from `USAGE_SUPPORTED_PROVIDERS` (provider kept as deprecated)
85
+ - **Cookie Pool tab**: Removed from Automation page
86
+
87
+ ---
88
+
89
+ ## [v0.5.0] - 2026-07-04
90
+
91
+ ### Added
92
+ - **OIDC Authentication Support**: Added full support for OpenID Connect (Single Sign-On) and custom OIDC callback workflows.
93
+ - **Brand New Sign-in Experience**: A premium, highly aesthetic dark-mode login interface with dynamic card effects, user reviews, and instant authentication options.
94
+ - **Cloudflare Workers AI Automation**:
95
+ - Fully automated credentials flow using turnstile resolver (Playwright & 2Captcha).
96
+ - Automatically fetches the API keys and Account ID, configuring the connection to 9router instantly.
97
+ - Integrates seamlessly with the **Ammail** temporary mail API to handle real-time verification codes.
98
+ - **Embedded API Documentation**: Included local static reference docs for image and video APIs.
99
+
100
+ ### Changed
101
+ - **Streamlined Dashboard**: Removed Leonardo AI, Weavy AI, Kimi, Qoder, and Cookie Pool tabs to focus entirely on Cloudflare Workers AI automation.
102
+ - **Improved Log View**: Fixed log directory creation and redirected auth logout flows to prevent infinity page routing loops.
103
+ - **Portability**: Transitioned backend configuration to run portably on all desktop and server environments.