@amir83nasr/10router 0.1.3 → 0.1.4

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 (188) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +7 -7
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  6. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/_global-error.html +1 -1
  25. package/.next/server/app/_global-error.rsc +1 -1
  26. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  27. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  28. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  29. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/_not-found.html +1 -1
  31. package/.next/server/app/_not-found.rsc +5 -5
  32. package/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  33. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  34. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  35. package/.next/server/app/api/cli-tools/all-statuses/route.js +1 -1
  36. package/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  37. package/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  38. package/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  39. package/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  40. package/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  41. package/.next/server/app/api/cli-tools/dsh-settings/route.js +1 -1
  42. package/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  43. package/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  44. package/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  45. package/.next/server/app/api/oauth/codex/import-token/route.js +1 -1
  46. package/.next/server/app/api/providers/client/route.js +1 -1
  47. package/.next/server/app/api/translator/send/route.js +1 -1
  48. package/.next/server/app/api/translator/translate/route.js +1 -1
  49. package/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
  50. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  51. package/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  52. package/.next/server/app/api/v1/systemone/route.js +1 -1
  53. package/.next/server/app/api/version/route.js +1 -1
  54. package/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/callback.html +1 -1
  56. package/.next/server/app/callback.rsc +6 -6
  57. package/.next/server/app/callback.segments/_full.segment.rsc +6 -6
  58. package/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  59. package/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
  60. package/.next/server/app/dashboard/basic-chat.html +1 -1
  61. package/.next/server/app/dashboard/basic-chat.rsc +7 -7
  62. package/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
  63. package/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  64. package/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  65. package/.next/server/app/dashboard/cli-tools.html +1 -1
  66. package/.next/server/app/dashboard/cli-tools.rsc +7 -7
  67. package/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +7 -7
  68. package/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  69. package/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  70. package/.next/server/app/dashboard/combos.html +1 -1
  71. package/.next/server/app/dashboard/combos.rsc +7 -7
  72. package/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +7 -7
  73. package/.next/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  74. package/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  75. package/.next/server/app/dashboard/endpoint.html +1 -1
  76. package/.next/server/app/dashboard/endpoint.rsc +7 -7
  77. package/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
  78. package/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  79. package/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  80. package/.next/server/app/dashboard/media-providers/systemone.html +1 -1
  81. package/.next/server/app/dashboard/media-providers/systemone.rsc +7 -7
  82. package/.next/server/app/dashboard/media-providers/systemone.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/systemone/__PAGE__.segment.rsc +7 -7
  83. package/.next/server/app/dashboard/media-providers/systemone.segments/_full.segment.rsc +7 -7
  84. package/.next/server/app/dashboard/media-providers/systemone.segments/_tree.segment.rsc +1 -1
  85. package/.next/server/app/dashboard/profile.html +1 -1
  86. package/.next/server/app/dashboard/profile.rsc +7 -7
  87. package/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +7 -7
  88. package/.next/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
  89. package/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  90. package/.next/server/app/dashboard/providers/new.html +1 -1
  91. package/.next/server/app/dashboard/providers/new.rsc +7 -7
  92. package/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
  93. package/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  94. package/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  95. package/.next/server/app/dashboard/providers.html +1 -1
  96. package/.next/server/app/dashboard/providers.rsc +7 -7
  97. package/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +7 -7
  98. package/.next/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  99. package/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  100. package/.next/server/app/dashboard/proxy-pools.html +1 -1
  101. package/.next/server/app/dashboard/proxy-pools.rsc +7 -7
  102. package/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +7 -7
  103. package/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
  104. package/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  105. package/.next/server/app/dashboard/pxpipe.html +1 -1
  106. package/.next/server/app/dashboard/pxpipe.rsc +6 -6
  107. package/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +6 -6
  108. package/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
  109. package/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  110. package/.next/server/app/dashboard/quota.html +2 -2
  111. package/.next/server/app/dashboard/quota.rsc +8 -8
  112. package/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
  113. package/.next/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
  114. package/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  115. package/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/dashboard/settings/pricing.html +1 -1
  117. package/.next/server/app/dashboard/settings/pricing.rsc +5 -5
  118. package/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  119. package/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  120. package/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +5 -5
  121. package/.next/server/app/dashboard/token-saver.html +1 -1
  122. package/.next/server/app/dashboard/token-saver.rsc +6 -6
  123. package/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
  124. package/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  125. package/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  126. package/.next/server/app/dashboard/usage.html +2 -2
  127. package/.next/server/app/dashboard/usage.rsc +7 -7
  128. package/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +7 -7
  129. package/.next/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  130. package/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  131. package/.next/server/app/dashboard.html +1 -1
  132. package/.next/server/app/dashboard.rsc +7 -7
  133. package/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
  134. package/.next/server/app/dashboard.segments/_full.segment.rsc +7 -7
  135. package/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  136. package/.next/server/app/index.html +1 -1
  137. package/.next/server/app/index.rsc +5 -5
  138. package/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  139. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  140. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  141. package/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  142. package/.next/server/app/landing.html +1 -1
  143. package/.next/server/app/landing.rsc +6 -6
  144. package/.next/server/app/landing.segments/_full.segment.rsc +6 -6
  145. package/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  146. package/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
  147. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  148. package/.next/server/app/login.html +1 -1
  149. package/.next/server/app/login.rsc +5 -5
  150. package/.next/server/app/login.segments/_full.segment.rsc +5 -5
  151. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  152. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
  153. package/.next/server/app/page_client-reference-manifest.js +1 -1
  154. package/.next/server/app-paths-manifest.json +7 -7
  155. package/.next/server/chunks/1011.js +1 -1
  156. package/.next/server/chunks/1194.js +1 -1
  157. package/.next/server/chunks/1289.js +1 -1
  158. package/.next/server/chunks/1633.js +1 -1
  159. package/.next/server/chunks/2339.js +1 -1
  160. package/.next/server/chunks/3425.js +1 -1
  161. package/.next/server/chunks/4129.js +1 -1
  162. package/.next/server/chunks/537.js +1 -1
  163. package/.next/server/chunks/6056.js +1 -1
  164. package/.next/server/chunks/7816.js +1 -1
  165. package/.next/server/chunks/9429.js +1 -1
  166. package/.next/server/middleware-build-manifest.js +1 -1
  167. package/.next/server/pages/404.html +1 -1
  168. package/.next/server/pages/500.html +1 -1
  169. package/.next/server/server-reference-manifest.js +1 -1
  170. package/.next/server/server-reference-manifest.json +1 -1
  171. package/.next/static/chunks/{1278-1326946dbcc0adb5.js → 1278-ad2cb39d11b4a5f2.js} +1 -1
  172. package/.next/static/chunks/{1471-10f225f62f7469cc.js → 1471-69a7c30abf98c656.js} +1 -1
  173. package/.next/static/chunks/{159-c129d43e789e7018.js → 159-39356ce437096d44.js} +1 -1
  174. package/.next/static/chunks/{1699-13ee6864a8a31a96.js → 1699-49be310981e2759e.js} +2 -2
  175. package/.next/static/chunks/{3577-cd98d40e3099e1b0.js → 3577-1f02993330d7fba7.js} +1 -1
  176. package/.next/static/chunks/{5862-f98c2f3d480b80d2.js → 5862-6f3a3a6d4c00100d.js} +1 -1
  177. package/.next/static/chunks/{9ce8c186-3c7d7dbc5d428052.js → 9ce8c186-6cd204e9c27ecee1.js} +1 -1
  178. package/.next/static/chunks/app/(dashboard)/dashboard/console-log/{page-0737ab5a4827fa77.js → page-c803a3376280f0e8.js} +1 -1
  179. package/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-1f54dc9be2c50aba.js → page-cef3c079d15c9349.js} +1 -1
  180. package/.next/static/chunks/app/{layout-06e49e3bcc852dbd.js → layout-101b832aa6789b60.js} +1 -1
  181. package/open-sse/executors/opencode-zen.js +5 -2
  182. package/open-sse/providers/registry/opencode-go.js +23 -6
  183. package/open-sse/providers/registry/opencode-zen.js +6 -4
  184. package/open-sse/providers/registry/opencode.js +2 -1
  185. package/package.json +1 -1
  186. package/src/app/api/providers/[id]/test/testUtils.js +3 -3
  187. /package/.next/static/{3VUtJ57WoimjS256-MQ04 → nOEr8lKXMARlP2mV3XFuF}/_buildManifest.js +0 -0
  188. /package/.next/static/{3VUtJ57WoimjS256-MQ04 → nOEr8lKXMARlP2mV3XFuF}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\"node\":{\"00d1c06b76183638a1aa20c777c2685837630511d9\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false}},\"filename\":\"app/api/cli-tools/all-statuses/route.js\",\"exportedName\":\"GET\"},\"008ade9e0b4884e31cea2171eafab0be75c294ef2d\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"89221\",\"async\":false}},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"GET\"},\"00d418840f47e34a36b49570f54fd88944e09ded4e\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"89221\",\"async\":false}},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"DELETE\"},\"40778a9af8e9ce14a35c0d0c4c7fcfe94749520970\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"89221\",\"async\":false}},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"POST\"},\"002c56d7e1adba80aa45fa445f5cb0e61bff91f18f\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"87916\",\"async\":false}},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"GET\"},\"008062ae87b693c28417988b69f7c8daad75608d79\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"87916\",\"async\":false}},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"DELETE\"},\"40beb9102f24050686d41b748530dc9a1a564e92ac\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"87916\",\"async\":false}},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"POST\"},\"001f6dbed11f73eae3540e29b59c387e8e7323d555\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"60163\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"GET\"},\"4095ab83ef9b0b0b3f854229cf25873b0b9fc34592\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"60163\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"POST\"},\"40ae0dbfce27bd2071a3472636aab741beed7e53c7\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"60163\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"PATCH\"},\"40f9d955b74c7db19c604b15728c8ff184911fc223\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"60163\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"DELETE\"},\"0007930224fee5562c4e91a17fe908063c018a23ee\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/cowork-settings/route\":{\"moduleId\":\"34598\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-settings/route.js\",\"exportedName\":\"DELETE\"},\"009d4ff53347e40e0e0364f911a7775f18099f055d\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/cowork-settings/route\":{\"moduleId\":\"34598\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-settings/route.js\",\"exportedName\":\"GET\"},\"4072e5eb708f67417de8e20702be7b94730b2667b9\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/cowork-settings/route\":{\"moduleId\":\"34598\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-settings/route.js\",\"exportedName\":\"POST\"},\"001347a9f103ef1b35ccf0a0081d8656b571909d92\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/dsh-settings/route\":{\"moduleId\":\"36768\",\"async\":false}},\"filename\":\"app/api/cli-tools/dsh-settings/route.ts\",\"exportedName\":\"GET\"},\"001876b92e9370e4dcbddb7f1d981416509b9536c2\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/dsh-settings/route\":{\"moduleId\":\"36768\",\"async\":false}},\"filename\":\"app/api/cli-tools/dsh-settings/route.ts\",\"exportedName\":\"DELETE\"},\"405f796d5938e5a304b66486bcc9bb47579b8ed81f\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"82375\",\"async\":false},\"app/api/cli-tools/dsh-settings/route\":{\"moduleId\":\"36768\",\"async\":false}},\"filename\":\"app/api/cli-tools/dsh-settings/route.ts\",\"exportedName\":\"POST\"},\"40730d70cfa02aefff0b19e11dee02dff81255c0bb\":{\"workers\":{\"app/api/cli-tools/cowork-mcp-registry/route\":{\"moduleId\":\"37143\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-mcp-registry/route.js\",\"exportedName\":\"GET\"},\"40079189fc65f2915c17041c4302db4d0c86871bd1\":{\"workers\":{\"app/api/cli-tools/cowork-mcp-tools/route\":{\"moduleId\":\"87789\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-mcp-tools/route.js\",\"exportedName\":\"POST\"},\"407ecb15a459802d88d92fa139102a5086a91d1b67\":{\"workers\":{\"app/api/tunnel/tailscale-install/route\":{\"moduleId\":\"24481\",\"async\":false}},\"filename\":\"app/api/tunnel/tailscale-install/route.js\",\"exportedName\":\"POST\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
1
+ self.__RSC_SERVER_MANIFEST="{\"node\":{\"00ffec1c4311f5509d26dd90382eebe2624093f4e0\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false}},\"filename\":\"app/api/cli-tools/all-statuses/route.js\",\"exportedName\":\"GET\"},\"0053e1f0cc8ced8b3c30a7cfde86a11bea21bbb954\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"63597\",\"async\":false}},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"GET\"},\"00876fee55824ae5e10577cb8490001a7a07e0cd95\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"63597\",\"async\":false}},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"DELETE\"},\"40b8a3a36edc4965fcd8455b5090facfffd8af8e46\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"63597\",\"async\":false}},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"POST\"},\"005e8f68bea81486b3b7466943ed0df5b0162d8e6d\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"54139\",\"async\":false}},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"GET\"},\"00cea43aad23445d51c8a6aea9aecb3a2c07208679\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"54139\",\"async\":false}},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"DELETE\"},\"402634fd1a39139e33d1fd62a4f5af5a94cca3bafc\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"54139\",\"async\":false}},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"POST\"},\"0009015c9541dda0f07e9dfd680f4c53ba18757585\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"70200\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"GET\"},\"403b35636497546e0dffd210d29237914981f1a481\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"70200\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"POST\"},\"408fd10c8d2528afc240e77735502ff008b09a7386\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"70200\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"DELETE\"},\"40b978d2a8d5b3d0c9e0055b8831f53d315b65cd36\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"70200\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"PATCH\"},\"00b3feee0668ef63b69261e38171d400c3e14afd5b\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/cowork-settings/route\":{\"moduleId\":\"38470\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-settings/route.js\",\"exportedName\":\"DELETE\"},\"00cf58067ad42b304f221992a0c488f3a3d851d7dd\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/cowork-settings/route\":{\"moduleId\":\"38470\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-settings/route.js\",\"exportedName\":\"GET\"},\"4050bf67c375afecc3fc2c74d7ac0a1bd15edf918d\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/cowork-settings/route\":{\"moduleId\":\"38470\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-settings/route.js\",\"exportedName\":\"POST\"},\"000a3e6b4bf14567b943f565c56b580c4197a31e14\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/dsh-settings/route\":{\"moduleId\":\"89617\",\"async\":false}},\"filename\":\"app/api/cli-tools/dsh-settings/route.ts\",\"exportedName\":\"DELETE\"},\"009497d7fb2b2904e7f5f58cdf7119e3d6f0639906\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/dsh-settings/route\":{\"moduleId\":\"89617\",\"async\":false}},\"filename\":\"app/api/cli-tools/dsh-settings/route.ts\",\"exportedName\":\"GET\"},\"40ae397d7827d743d60d01b95bfe0c61f913e1c183\":{\"workers\":{\"app/api/cli-tools/all-statuses/route\":{\"moduleId\":\"3577\",\"async\":false},\"app/api/cli-tools/dsh-settings/route\":{\"moduleId\":\"89617\",\"async\":false}},\"filename\":\"app/api/cli-tools/dsh-settings/route.ts\",\"exportedName\":\"POST\"},\"40290d314d44bfe224bd6bfdaa2f2d70f5110644d1\":{\"workers\":{\"app/api/cli-tools/cowork-mcp-registry/route\":{\"moduleId\":\"74121\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-mcp-registry/route.js\",\"exportedName\":\"GET\"},\"40fa180205f01f8a656a795bfac9ae33c27ac24958\":{\"workers\":{\"app/api/cli-tools/cowork-mcp-tools/route\":{\"moduleId\":\"38369\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-mcp-tools/route.js\",\"exportedName\":\"POST\"},\"40dd39e48c033ae36a5ecd1399678401f458045fb3\":{\"workers\":{\"app/api/tunnel/tailscale-install/route\":{\"moduleId\":\"46784\",\"async\":false}},\"filename\":\"app/api/tunnel/tailscale-install/route.js\",\"exportedName\":\"POST\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
@@ -1 +1 @@
1
- {"node":{"00d1c06b76183638a1aa20c777c2685837630511d9":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false}},"filename":"app/api/cli-tools/all-statuses/route.js","exportedName":"GET"},"008ade9e0b4884e31cea2171eafab0be75c294ef2d":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"89221","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"GET"},"00d418840f47e34a36b49570f54fd88944e09ded4e":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"89221","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"DELETE"},"40778a9af8e9ce14a35c0d0c4c7fcfe94749520970":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"89221","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"POST"},"002c56d7e1adba80aa45fa445f5cb0e61bff91f18f":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"87916","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"GET"},"008062ae87b693c28417988b69f7c8daad75608d79":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"87916","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"DELETE"},"40beb9102f24050686d41b748530dc9a1a564e92ac":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"87916","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"POST"},"001f6dbed11f73eae3540e29b59c387e8e7323d555":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"60163","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"GET"},"4095ab83ef9b0b0b3f854229cf25873b0b9fc34592":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"60163","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"POST"},"40ae0dbfce27bd2071a3472636aab741beed7e53c7":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"60163","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"PATCH"},"40f9d955b74c7db19c604b15728c8ff184911fc223":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"60163","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"DELETE"},"0007930224fee5562c4e91a17fe908063c018a23ee":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"34598","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"DELETE"},"009d4ff53347e40e0e0364f911a7775f18099f055d":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"34598","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"GET"},"4072e5eb708f67417de8e20702be7b94730b2667b9":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"34598","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"POST"},"001347a9f103ef1b35ccf0a0081d8656b571909d92":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"36768","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"GET"},"001876b92e9370e4dcbddb7f1d981416509b9536c2":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"36768","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"DELETE"},"405f796d5938e5a304b66486bcc9bb47579b8ed81f":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"82375","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"36768","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"POST"},"40730d70cfa02aefff0b19e11dee02dff81255c0bb":{"workers":{"app/api/cli-tools/cowork-mcp-registry/route":{"moduleId":"37143","async":false}},"filename":"app/api/cli-tools/cowork-mcp-registry/route.js","exportedName":"GET"},"40079189fc65f2915c17041c4302db4d0c86871bd1":{"workers":{"app/api/cli-tools/cowork-mcp-tools/route":{"moduleId":"87789","async":false}},"filename":"app/api/cli-tools/cowork-mcp-tools/route.js","exportedName":"POST"},"407ecb15a459802d88d92fa139102a5086a91d1b67":{"workers":{"app/api/tunnel/tailscale-install/route":{"moduleId":"24481","async":false}},"filename":"app/api/tunnel/tailscale-install/route.js","exportedName":"POST"}},"edge":{},"encryptionKey":"MTrXSwCwrEwj6EWVaYZ3/V639s0V5Sbp5Yz0tW3q1As="}
1
+ {"node":{"00ffec1c4311f5509d26dd90382eebe2624093f4e0":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false}},"filename":"app/api/cli-tools/all-statuses/route.js","exportedName":"GET"},"0053e1f0cc8ced8b3c30a7cfde86a11bea21bbb954":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"63597","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"GET"},"00876fee55824ae5e10577cb8490001a7a07e0cd95":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"63597","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"DELETE"},"40b8a3a36edc4965fcd8455b5090facfffd8af8e46":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/claude-settings/route":{"moduleId":"63597","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"POST"},"005e8f68bea81486b3b7466943ed0df5b0162d8e6d":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"54139","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"GET"},"00cea43aad23445d51c8a6aea9aecb3a2c07208679":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"54139","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"DELETE"},"402634fd1a39139e33d1fd62a4f5af5a94cca3bafc":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/codex-settings/route":{"moduleId":"54139","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"POST"},"0009015c9541dda0f07e9dfd680f4c53ba18757585":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"70200","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"GET"},"403b35636497546e0dffd210d29237914981f1a481":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"70200","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"POST"},"408fd10c8d2528afc240e77735502ff008b09a7386":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"70200","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"DELETE"},"40b978d2a8d5b3d0c9e0055b8831f53d315b65cd36":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/opencode-settings/route":{"moduleId":"70200","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"PATCH"},"00b3feee0668ef63b69261e38171d400c3e14afd5b":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"38470","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"DELETE"},"00cf58067ad42b304f221992a0c488f3a3d851d7dd":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"38470","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"GET"},"4050bf67c375afecc3fc2c74d7ac0a1bd15edf918d":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/cowork-settings/route":{"moduleId":"38470","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"POST"},"000a3e6b4bf14567b943f565c56b580c4197a31e14":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"89617","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"DELETE"},"009497d7fb2b2904e7f5f58cdf7119e3d6f0639906":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"89617","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"GET"},"40ae397d7827d743d60d01b95bfe0c61f913e1c183":{"workers":{"app/api/cli-tools/all-statuses/route":{"moduleId":"3577","async":false},"app/api/cli-tools/dsh-settings/route":{"moduleId":"89617","async":false}},"filename":"app/api/cli-tools/dsh-settings/route.ts","exportedName":"POST"},"40290d314d44bfe224bd6bfdaa2f2d70f5110644d1":{"workers":{"app/api/cli-tools/cowork-mcp-registry/route":{"moduleId":"74121","async":false}},"filename":"app/api/cli-tools/cowork-mcp-registry/route.js","exportedName":"GET"},"40fa180205f01f8a656a795bfac9ae33c27ac24958":{"workers":{"app/api/cli-tools/cowork-mcp-tools/route":{"moduleId":"38369","async":false}},"filename":"app/api/cli-tools/cowork-mcp-tools/route.js","exportedName":"POST"},"40dd39e48c033ae36a5ecd1399678401f458045fb3":{"workers":{"app/api/tunnel/tailscale-install/route":{"moduleId":"46784","async":false}},"filename":"app/api/tunnel/tailscale-install/route.js","exportedName":"POST"}},"edge":{},"encryptionKey":"I+PNJda2RVjTNR5xsoMUC5BaWo+gDtoekIRKvfnGhxM="}
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1278],{738:(e,t,a)=>{a.d(t,{A:()=>n});var r=a(29798),s=a(15814),i=a(63729);function n({src:e,providerId:t,alt:a,size:o=32,className:l="",fallbackText:d="?",fallbackColor:c}){let u=function(e,t){if(t)return(0,i.HY)(t);if(!e)return null;let a=String(e).match(/^\/providers\/([^/]+)\.png$/i);return a?(0,i.HY)(a[1]):e}(e,t),[m,p]=(0,s.useState)(!1);return!u||m?(0,r.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${l}`.trim(),style:{width:o,height:o,color:c,fontSize:Math.max(10,Math.floor(.38*o))},children:d}):(0,r.jsx)("img",{src:u,alt:a,width:o,height:o,className:l,loading:"lazy",decoding:"async",onError:()=>{let e=u.match(/^\/providers\/([^/]+)\.png$/i);e&&(0,i.Kw)(e[1]),t&&(0,i.Kw)(t),p(!0)}})}},3537:(e,t,a)=>{a.d(t,{ConfirmModal:()=>u,default:()=>c});var r=a(29798),s=a(15814),i=a(69221),n=a(13008),o=a(18055),l=a(49787);let d={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-4xl"};function c({isOpen:e,onClose:t,title:a,children:i,footer:o,size:u="md",closeOnOverlay:m=!0,className:p}){return(0,s.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,r.jsx)(l.lG,{open:!!e,onOpenChange:e=>{e||t()},children:(0,r.jsxs)(l.Cf,{className:(0,n.cn)(d[u],p),onPointerDownOutside:m?void 0:e=>e.preventDefault(),onInteractOutside:m?void 0:e=>e.preventDefault(),children:[a&&(0,r.jsx)(l.c7,{children:(0,r.jsx)(l.L3,{children:a})}),(0,r.jsx)("div",{className:"max-h-[calc(85vh-100px)] overflow-y-auto p-4",children:i}),o&&(0,r.jsx)(l.Es,{children:o})]})})}function u({isOpen:e,onClose:t,onConfirm:a,title:s="Confirm",message:n,confirmText:l="Confirm",cancelText:d="Cancel",variant:m="danger",loading:p=!1}){return(0,r.jsx)(c,{isOpen:e,onClose:t,title:s,size:"sm",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.$,{variant:"ghost",onClick:t,disabled:p,children:d}),(0,r.jsxs)(o.$,{variant:"danger"===m?"destructive":"primary"===m?"default":m,onClick:a,disabled:p,children:[p&&(0,r.jsx)(i.A,{className:"animate-spin"}),l]})]}),children:(0,r.jsx)("p",{className:"text-muted-foreground",children:n})})}},13008:(e,t,a)=>{a.d(t,{cn:()=>s});var r=a(5471);function s(...e){return(0,r.cn)(...e)}},16675:(e,t,a)=>{a.d(t,{default:()=>em});var r=a(29798),s=a(58913),i=a(70782),n=a(41671),o=a(42535),l=a(15814),d=a(16653),c=a(50141),u=a.n(c),m=a(51660),p=a(1352),x=a(69221),h=a(53784),f=a(18055),g=a(75669),b=a(49787),v=a(63523),j=a(63175);let w=["docker compose pull","docker compose up -d"],y=["docker pull ghcr.io/amir83nasr/10router:latest","docker stop 10router && docker rm 10router",'docker run -d --name 10router -p 20128:20128 -v "$HOME/.10router:/app/data" -e DATA_DIR=/app/data ghcr.io/amir83nasr/10router:latest'],k=["git pull","pnpm install","pnpm run build && PORT=20128 pnpm run start"];function N({id:e,steps:t}){let{copied:a,copy:i}=(0,v.C)();return(0,r.jsx)("ol",{className:"flex flex-col gap-1.5",children:t.map((t,n)=>{let o=`${e}-${n}`,l=a===o;return(0,r.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("span",{className:"flex size-5 shrink-0 items-center justify-center rounded-full bg-muted text-[11px] font-medium text-muted-foreground",children:n+1}),(0,r.jsx)("code",{className:"min-w-0 flex-1 rounded bg-muted px-2 py-1 font-mono text-xs break-all",children:t}),(0,r.jsx)(f.$,{variant:"ghost",size:"icon-xs",onClick:()=>i(t,o),"aria-label":`Copy step ${n+1}: ${t}`,children:(0,r.jsx)(s.default,{name:l?"check":"content_copy",className:"size-3.5"})})]},o)})})}function C({title:e,icon:t,id:a,steps:i}){return(0,r.jsxs)("details",{className:"group rounded-lg border border-border",children:[(0,r.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-2 px-3 py-2 text-sm font-medium text-foreground [&::-webkit-details-marker]:hidden",children:[(0,r.jsx)(s.default,{name:t,className:"size-4 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"flex-1",children:e}),(0,r.jsx)(s.default,{name:"expand_more",className:"size-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180"})]}),(0,r.jsx)("div",{className:"px-3 py-2",children:(0,r.jsx)(N,{id:a,steps:i})})]})}function _(){return(0,r.jsxs)("details",{className:"group flex flex-col gap-2 rounded-lg border border-border p-3",children:[(0,r.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-2 text-sm font-medium text-foreground [&::-webkit-details-marker]:hidden",children:[(0,r.jsx)(s.default,{name:"terminal",className:"size-4 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"flex-1",children:"Other install methods"}),(0,r.jsx)(s.default,{name:"expand_more",className:"size-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 py-2",children:[(0,r.jsx)(C,{title:"Docker Compose",icon:"lan",id:"compose",steps:w}),(0,r.jsx)(C,{title:"Plain Docker run",icon:"dns",id:"docker",steps:y}),(0,r.jsx)(C,{title:"From source",icon:"code",id:"source",steps:k})]})]})}function S(){let{copied:e,copy:t}=(0,v.C)(),a=(0,j.c)(),i="npm i -g @amir83nasr/10router@latest",n="npm-0",o=e===n;return(0,r.jsxs)(g.Zp,{size:"sm",className:"border-primary/30 bg-primary/5",children:[(0,r.jsx)(g.aR,{children:(0,r.jsxs)(g.ZB,{className:"flex items-center gap-2",children:[(0,r.jsx)(s.default,{name:"upload",className:"size-4 shrink-0 text-primary"}),"npm ",(0,r.jsx)(h.E,{variant:"default",children:"recommended"})]})}),(0,r.jsxs)(g.Wu,{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("code",{className:"min-w-0 flex-1 rounded bg-muted px-2 py-1 font-mono text-xs break-all",children:i}),(0,r.jsx)(f.$,{variant:"ghost",size:"icon-xs",onClick:()=>t(i,n),"aria-label":`Copy: ${i}`,children:(0,r.jsx)(s.default,{name:o?"check":"content_copy",className:"size-3.5"})})]}),o&&!a.stopped&&!a.timedOut&&(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Copied. Stop the server, paste the command in your terminal, then run"," ",(0,r.jsx)("code",{className:"rounded bg-muted px-1 font-mono",children:"10router start"}),"."]}),(0,r.jsxs)(f.$,{variant:"destructive",size:"sm",className:"self-start",onClick:a.confirm,disabled:a.shuttingDown,children:[a.shuttingDown?(0,r.jsx)(x.A,{className:"animate-spin"}):(0,r.jsx)(s.default,{name:"power_settings_new",className:"size-4"}),a.shuttingDown?"Stopping…":"Stop server"]})]}),a.stopped&&(0,r.jsxs)("p",{className:"rounded-lg border border-green-500/30 bg-green-500/10 px-3 py-2 text-xs text-green-600 dark:text-green-400",children:["Server stopped — run the copied command in your terminal, then"," ",(0,r.jsx)("code",{className:"font-mono",children:"10router start"}),"."]}),a.timedOut&&(0,r.jsxs)("p",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-600 dark:text-amber-400",children:["The server did not stop in time — stop it manually (",(0,r.jsx)("code",{className:"font-mono",children:"10router stop"}),"), then run the copied command."]})]})]})}function z({open:e,onOpenChange:t,info:a,checkFailed:i,onRetry:n}){let o=a?a.hasUpdate?(0,r.jsxs)("p",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-sm text-amber-600 dark:text-amber-400",children:["New version v",a.latestVersion," available (you run v",a.currentVersion,"). npm is the fastest way — or run the steps for your install method, in order:"]}):(0,r.jsxs)("p",{className:"rounded-lg border border-green-500/30 bg-green-500/10 px-3 py-2 text-sm text-green-600 dark:text-green-400",children:["Up to date — v",a.currentVersion," is the latest."]}):(0,r.jsx)("p",{className:"rounded-lg border border-border bg-muted/50 px-3 py-2 text-sm text-muted-foreground",children:i?"Could not reach GitHub to check for updates — the manual steps below still work.":"Checking for updates…"});return(0,r.jsx)(b.lG,{open:e,onOpenChange:t,children:(0,r.jsxs)(b.Cf,{className:"sm:max-w-lg",children:[(0,r.jsxs)(b.c7,{children:[(0,r.jsx)(b.L3,{children:"Updates"}),(0,r.jsx)(b.rr,{children:a?`Current v${a.currentVersion} \xb7 latest v${a.latestVersion}`:"Compare your version against the latest release"})]}),(0,r.jsxs)("div",{className:"flex max-h-[70vh] flex-col gap-4 overflow-y-auto p-4",children:[o,(0,r.jsx)(S,{}),(0,r.jsx)(_,{})]}),(0,r.jsxs)(b.Es,{children:[(0,r.jsxs)(f.$,{variant:"ghost",onClick:n,children:[(0,r.jsx)(s.default,{name:"refresh",className:"size-4"}),"Check again"]}),(0,r.jsx)(f.$,{variant:"outline",onClick:()=>t(!1),children:"Close"})]})]})})}var O=a(13008);function A({collapsed:e}){let[t,a]=(0,l.useState)(null),[i,n]=(0,l.useState)(!1),[o,d]=(0,l.useState)(!1),c=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/version",{cache:"no-store"});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();a({currentVersion:t?.currentVersion??m.vQ.version,latestVersion:t?.latestVersion??m.vQ.version,hasUpdate:!!t?.hasUpdate}),n(!1)}catch{n(!0)}},[]);(0,l.useEffect)(()=>{c();let e=setInterval(c,18e5);return()=>clearInterval(e)},[c]);let u=t?.hasUpdate??!1,x=u?`v${t?.latestVersion} available`:t?`v${t.currentVersion} \xb7 up to date`:`v${m.vQ.version}`,h=e?(0,r.jsxs)(p.m_,{children:[(0,r.jsx)(p.k$,{asChild:!0,children:u?(0,r.jsxs)("button",{type:"button",onClick:()=>d(!0),"aria-label":`Update available. ${x}`,className:"relative mx-auto flex size-8 items-center justify-center rounded-md bg-amber-500/15 text-amber-600 transition-colors hover:bg-amber-500/25 dark:text-amber-400",children:[(0,r.jsx)(s.default,{name:"download",className:"size-4"}),(0,r.jsx)("span",{className:"absolute right-1.5 top-1.5 size-1.5 rounded-full bg-amber-500"})]}):(0,r.jsx)("span",{className:"mx-auto flex size-8 items-center justify-center rounded-md text-muted-foreground",children:(0,r.jsx)(s.default,{name:"refresh",className:"size-4"})})}),(0,r.jsx)(p.ZI,{children:u?`${x} — click to update`:x})]}):u?(0,r.jsxs)("button",{type:"button",onClick:()=>d(!0),className:"flex w-full items-center gap-2 rounded-md bg-amber-500/15 px-1 py-1 text-left transition-colors hover:bg-amber-500/25","aria-label":`Update available. ${x}`,children:[(0,r.jsxs)("span",{className:"relative flex shrink-0 items-center text-muted-foreground",children:[(0,r.jsx)(s.default,{name:"download",className:"size-4"}),(0,r.jsx)("span",{className:"absolute -right-0.5 -top-0.5 size-1.5 rounded-full bg-amber-500"})]}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("span",{className:"block truncate text-[11px] text-muted-foreground",children:[m.vQ.name," v",t?.currentVersion??m.vQ.version]}),(0,r.jsx)("span",{className:"block truncate text-[11px] font-medium text-amber-600 dark:text-amber-400",children:x})]}),(0,r.jsx)(s.default,{name:"chevron_right",className:"size-3.5 shrink-0 text-muted-foreground"})]}):(0,r.jsxs)("div",{className:"flex w-full items-center gap-2 rounded-md px-1 py-1 text-left",children:[(0,r.jsx)("span",{className:"flex shrink-0 items-center text-muted-foreground",children:(0,r.jsx)(s.default,{name:"refresh",className:"size-4"})}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("span",{className:"block truncate text-[11px] text-muted-foreground",children:[m.vQ.name," v",t?.currentVersion??m.vQ.version]}),(0,r.jsx)("span",{className:(0,O.cn)("block truncate text-[11px] font-medium",i||!t?"text-muted-foreground":"text-green-600 dark:text-green-400"),children:x})]})]});return(0,r.jsxs)(r.Fragment,{children:[h,(0,r.jsx)(z,{open:o&&u,onOpenChange:d,info:t,checkFailed:i,onRetry:c})]})}var L=a(54366),E=a(5471),T=a(80954);a(77345);var P=a(73639);function I({className:e,orientation:t="horizontal",decorative:a=!0,...s}){return(0,r.jsx)(P.b,{"data-slot":"separator",decorative:a,orientation:t,className:(0,E.cn)("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",e),...s})}var $=a(69260),M=a(6403);function D({...e}){return(0,r.jsx)($.bL,{"data-slot":"sheet",...e})}function U({...e}){return(0,r.jsx)($.ZL,{"data-slot":"sheet-portal",...e})}function R({className:e,...t}){return(0,r.jsx)($.hJ,{"data-slot":"sheet-overlay",className:(0,E.cn)("fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}function F({className:e,children:t,side:a="right",showCloseButton:s=!0,...i}){return(0,r.jsxs)(U,{children:[(0,r.jsx)(R,{}),(0,r.jsxs)($.UC,{"data-slot":"sheet-content","data-side":a,className:(0,E.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10",e),...i,children:[t,s&&(0,r.jsx)($.bm,{"data-slot":"sheet-close",asChild:!0,children:(0,r.jsxs)(f.$,{variant:"ghost",className:"absolute top-4 right-4",size:"icon-sm",children:[(0,r.jsx)(M.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})})]})]})}function H({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sheet-header",className:(0,E.cn)("flex flex-col gap-1.5 p-4",e),...t})}function B({className:e,...t}){return(0,r.jsx)($.hE,{"data-slot":"sheet-title",className:(0,E.cn)("font-heading font-medium text-foreground",e),...t})}function V({className:e,...t}){return(0,r.jsx)($.VY,{"data-slot":"sheet-description",className:(0,E.cn)("text-sm text-muted-foreground",e),...t})}a(99118);let q=l.createContext(null);function Q(){let e=l.useContext(q);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function K({defaultOpen:e=!0,open:t,onOpenChange:a,className:s,style:i,children:n,...o}){let d=function(){let[e,t]=l.useState(void 0);return l.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),a=()=>{t(window.innerWidth<768)};return e.addEventListener("change",a),t(window.innerWidth<768),()=>e.removeEventListener("change",a)},[]),!!e}(),[c,u]=l.useState(!1),[m,p]=l.useState(e),x=t??m,h=l.useCallback(e=>{let t="function"==typeof e?e(x):e;a?a(t):p(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[a,x]),f=l.useCallback(()=>d?u(e=>!e):h(e=>!e),[d,h,u]);l.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),f())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[f]);let g=x?"expanded":"collapsed",b=l.useMemo(()=>({state:g,open:x,setOpen:h,isMobile:d,openMobile:c,setOpenMobile:u,toggleSidebar:f}),[g,x,h,d,c,u,f]);return(0,r.jsx)(q.Provider,{value:b,children:(0,r.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...i},className:(0,E.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",s),...o,children:n})})}function W({side:e="left",variant:t="sidebar",collapsible:a="offcanvas",className:s,children:i,dir:n,...o}){let{isMobile:l,state:d,openMobile:c,setOpenMobile:u}=Q();return"none"===a?(0,r.jsx)("div",{"data-slot":"sidebar",className:(0,E.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",s),...o,children:i}):l?(0,r.jsx)(D,{open:c,onOpenChange:u,...o,children:(0,r.jsxs)(F,{dir:n,"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,r.jsxs)(H,{className:"sr-only",children:[(0,r.jsx)(B,{children:"Sidebar"}),(0,r.jsx)(V,{children:"Displays the mobile sidebar."})]}),(0,r.jsx)("div",{className:"flex h-full w-full flex-col",children:i})]})}):(0,r.jsxs)("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":d,"data-collapsible":"collapsed"===d?a:"","data-variant":t,"data-side":e,"data-slot":"sidebar",children:[(0,r.jsx)("div",{"data-slot":"sidebar-gap",className:(0,E.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===t||"inset"===t?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,r.jsx)("div",{"data-slot":"sidebar-container","data-side":e,className:(0,E.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex","floating"===t||"inset"===t?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",s),...o,children:(0,r.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex size-full min-w-0 flex-col overflow-x-hidden bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border",children:i})})]})}function Z({className:e,...t}){return(0,r.jsx)("main",{"data-slot":"sidebar-inset",className:(0,E.cn)("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...t})}function G({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,E.cn)("flex flex-col gap-2 p-2",e),...t})}function Y({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,E.cn)("flex flex-col gap-2 p-2",e),...t})}function X({className:e,...t}){return(0,r.jsx)(I,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:(0,E.cn)("mx-2 w-auto bg-sidebar-border",e),...t})}function J({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,E.cn)("flex min-h-0 w-full min-w-0 flex-1 flex-col gap-2 overflow-x-hidden overflow-y-auto group-data-[collapsible=icon]:overflow-hidden",e),...t})}function ee({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,E.cn)("relative flex w-full min-w-0 flex-col p-2",e),...t})}function et({className:e,asChild:t=!1,...a}){let s=t?T.bL:"div";return(0,r.jsx)(s,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,E.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",e),...a})}function ea({className:e,...t}){return(0,r.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,E.cn)("flex w-full min-w-0 flex-col gap-1",e),...t})}function er({className:e,...t}){return(0,r.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,E.cn)("group/menu-item relative",e),...t})}let es=(0,L.F)("peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function ei({asChild:e=!1,isActive:t=!1,variant:a="default",size:s="default",tooltip:i,className:n,...o}){let l=e?T.bL:"button",{isMobile:d,state:c}=Q(),u=(0,r.jsx)(l,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":s,"data-active":t,className:(0,E.cn)(es({variant:a,size:s}),n),...o});return i?("string"==typeof i&&(i={children:i}),(0,r.jsxs)(p.m_,{children:[(0,r.jsx)(p.k$,{asChild:!0,children:u}),(0,r.jsx)(p.ZI,{side:"right",align:"center",hidden:"collapsed"!==c||d,...i})]})):u}let en=[{id:"endpoint",href:"/dashboard",label:"Endpoint & Key",icon:"api",match:e=>"/dashboard"===e||e.startsWith("/dashboard/endpoint")},{id:"providers",href:"/dashboard/providers",label:"Providers",icon:"dns"},{id:"combos",href:"/dashboard/combos",label:"Combo",icon:"layers"},{id:"usage",href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{id:"token-saver",href:"/dashboard/token-saver",label:"Token Saver",icon:"scissors"},{id:"cli-tools",href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"},{id:"systemone",href:"/dashboard/media-providers/systemone",label:"System One",icon:"bolt"}],eo=[{id:"proxy-pools",href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"waypoints"}],el=[{id:"profile",href:"/dashboard/profile",label:"Settings",icon:"settings"}];function ed({item:e}){var t;let a=(t=(0,i.usePathname)(),e.match?e.match(t):"/dashboard/profile"===e.href?"/dashboard/profile"===t:t.startsWith(e.href));return(0,r.jsx)(er,{children:(0,r.jsx)(ei,{asChild:!0,isActive:a,children:(0,r.jsxs)(u(),{href:e.href,className:"gap-3",children:[(0,r.jsx)(s.default,{name:e.icon,className:"text-[18px]"}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label})]})})})}function ec({...e}){(0,i.usePathname)();let{state:t}=Q(),a="collapsed"===t;return(0,r.jsxs)(W,{...e,children:[(0,r.jsx)(G,{className:"h-20 justify-center border-b border-sidebar-border px-4",children:(0,r.jsxs)(u(),{href:"/dashboard",className:"flex min-w-0 items-center gap-3",children:[(0,r.jsx)(d.default,{src:"/icons/icon.svg",alt:"10Router logo",width:36,height:36,className:"size-9 rounded-[10px] shrink-0"}),!a&&(0,r.jsxs)("div",{className:"flex min-w-0 flex-col leading-tight",children:[(0,r.jsx)("span",{className:"truncate text-lg font-semibold tracking-tight text-foreground",children:m.vQ.name}),(0,r.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:["v",m.vQ.version]})]})]})}),(0,r.jsxs)(J,{className:"pt-2",children:[(0,r.jsxs)(ee,{children:[(0,r.jsx)(et,{children:"Overview"}),(0,r.jsx)(ea,{children:en.map(e=>(0,r.jsx)(ed,{item:e},e.id))})]}),(0,r.jsx)(X,{}),(0,r.jsxs)(ee,{children:[(0,r.jsx)(et,{children:"System"}),(0,r.jsxs)(ea,{children:[eo.map(e=>(0,r.jsx)(ed,{item:e},e.id)),el.map(e=>(0,r.jsx)(ed,{item:e},e.id))]})]})]}),(0,r.jsx)(Y,{className:"border-t border-sidebar-border p-4",children:(0,r.jsx)(A,{collapsed:a})})]})}function eu({children:e}){let t=(0,i.usePathname)(),a=(0,n.i)(e=>e.notifications),l=(0,n.i)(e=>e.removeNotification),{toggleSidebar:d}=Q();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2",children:a.map(e=>{var t;let a="success"===(t=e.type)?{wrapper:"border-green-500/30 bg-green-500/10 text-green-600 dark:text-green-400",icon:"check_circle"}:"error"===t?{wrapper:"border-red-500/30 bg-red-500/10 text-red-600 dark:text-red-400",icon:"error"}:"warning"===t?{wrapper:"border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400",icon:"warning"}:{wrapper:"border-blue-500/30 bg-blue-500/10 text-blue-600 dark:text-blue-400",icon:"info"};return(0,r.jsx)("div",{className:`rounded-lg border px-3 py-2 shadow-lg backdrop-blur-sm ${a.wrapper}`,children:(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)(s.default,{name:a.icon,className:"text-[18px] leading-5"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[e.title?(0,r.jsx)("p",{className:"text-xs font-semibold mb-0.5",children:e.title}):null,(0,r.jsx)("p",{className:"text-xs whitespace-pre-wrap break-words",children:e.message})]}),e.dismissible?(0,r.jsx)("button",{type:"button",onClick:()=>l(e.id),className:"text-current/70 hover:text-current","aria-label":"Dismiss notification",children:(0,r.jsx)(s.default,{name:"close",className:"text-[16px]"})}):null]})},e.id)})}),(0,r.jsx)(ec,{}),(0,r.jsxs)(Z,{className:"flex flex-col h-full min-w-0 relative transition-colors duration-300 isolate",children:[(0,r.jsx)(o.default,{onMenuClick:d},t),(0,r.jsx)("div",{className:`dashboard-grid-bg flex-1 overflow-y-auto ${"/dashboard/basic-chat"===t?"":"p-6 lg:p-10"} ${"/dashboard/basic-chat"===t?"flex flex-col overflow-hidden":""}`,children:(0,r.jsx)("div",{className:`${"/dashboard/basic-chat"===t?"flex-1 w-full h-full flex flex-col":"max-w-7xl mx-auto"}`,children:e})})]})]})}function em({children:e}){return(0,r.jsx)(K,{children:(0,r.jsx)("div",{className:"flex h-screen w-full overflow-hidden bg-background",children:(0,r.jsx)(eu,{children:e})})})}},29575:(e,t,a)=>{a.d(t,{CardGrid:()=>p,Page:()=>c,PageHeader:()=>u,Section:()=>m});var r=a(29798),s=a(50141),i=a.n(s),n=a(13008),o=a(18055),l=a(58913);let d={default:"",narrow:"mx-auto w-full max-w-2xl",wide:"mx-auto w-full max-w-5xl"};function c({children:e,width:t="default",className:a}){return(0,r.jsx)("div",{className:(0,n.cn)("flex min-w-0 flex-col gap-6",d[t],a),children:e})}function u({title:e,description:t,actions:a,backHref:s,backLabel:d,className:c}){let m=null!=a;return(0,r.jsxs)("div",{className:(0,n.cn)(c),children:[s?(0,r.jsx)(o.$,{variant:"outline",size:"sm",asChild:!0,className:"mb-4 self-start",children:(0,r.jsxs)(i(),{href:s,children:[(0,r.jsx)(l.default,{name:"arrow_back",className:"text-lg"}),d??"Back"]})}):null,(0,r.jsxs)("div",{className:(0,n.cn)("flex flex-col gap-3",m&&"sm:flex-row sm:items-center sm:justify-between"),children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("h1",{className:"text-2xl font-semibold tracking-tight sm:text-3xl",children:e}),t?(0,r.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:t}):null]}),m?(0,r.jsx)("div",{className:"grid shrink-0 grid-cols-1 gap-2 sm:flex sm:items-center",children:a}):null]})]})}function m({title:e,actions:t,children:a,className:s}){let i=void 0!==e||void 0!==t;return(0,r.jsxs)("section",{className:(0,n.cn)("flex min-w-0 flex-col gap-4",s),children:[i?(0,r.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e?(0,r.jsx)("h2",{className:"text-lg font-semibold leading-tight sm:text-xl",children:e}):(0,r.jsx)("span",{}),t?(0,r.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:w-auto sm:items-center",children:t}):null]}):null,a]})}function p({children:e,variant:t="cards",className:a}){return(0,r.jsx)("div",{className:(0,n.cn)("grid min-w-0 grid-cols-1 gap-3 sm:gap-4","cards"===t&&"sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","stat"===t&&"sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5",a),children:e})}},41671:(e,t,a)=>{a.d(t,{i:()=>i});var r=a(58013);let s=0,i=(0,r.v)((e,t)=>({notifications:[],addNotification:a=>{let r=++s,i={id:r,type:a.type||"info",message:a.message,title:a.title||null,duration:a.duration??5e3,dismissible:a.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,i]})),i.duration>0&&setTimeout(()=>t().removeNotification(r),i.duration),r},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,a)=>t().addNotification({type:"success",message:e,title:a}),error:(e,a)=>t().addNotification({type:"error",message:e,title:a,duration:8e3}),warning:(e,a)=>t().addNotification({type:"warning",message:e,title:a}),info:(e,a)=>t().addNotification({type:"info",message:e,title:a})}))},42535:(e,t,a)=>{a.d(t,{default:()=>w});var r=a(29798),s=a(58913),i=a(15814),n=a(70782),o=a(50141),l=a.n(o),d=a(738),c=a(56776);let u=(0,a(58013).v)(e=>({query:"",placeholder:"",visible:!1,setQuery:t=>e({query:t}),register:(t="Search...")=>e({visible:!0,placeholder:t,query:""}),unregister:()=>e({visible:!1,placeholder:"",query:""})}));var m=a(51660),p=a(13794),x=a(90046),h=a(63729),f=a(51780),g=a(53784),b=a(18055),v=a(77345),j=a(1352);function w({onMenuClick:e,showMenuButton:t=!0}){let a=(0,n.usePathname)(),[o,u]=(0,i.useState)(""),[b,v]=(0,i.useState)(""),{title:k,description:N,icon:C,breadcrumbs:_}=(0,i.useMemo)(()=>(e=>{if(!e)return{title:"",description:"",breadcrumbs:[]};let t=e.match(/\/providers\/([^/]+)$/);if(t){let e=t[1],a=m.zN[e]||m.fg[e];if(a)return{title:a.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:a.name,image:(0,h.HY)(a.id)}]}}let a=e.match(/\/media-providers\/systemone\/([^/]+)$/);if(a){let e=decodeURIComponent(a[1]),t=p.Q2[e]||Object.values(p.Q2).find(t=>t.alias===e);if(t)return{title:t.name,description:"",breadcrumbs:[{label:"System One",href:"/dashboard/media-providers/systemone"},{label:t.name,image:(0,h.HY)(t.id)}]}}let r=e.match(/\/cli-tools\/([^/]+)$/);if(r){let e=decodeURIComponent(r[1]),t=x.d[e];if(t)return{title:t.name,description:"",breadcrumbs:[{label:"CLI Tools",href:"/dashboard/cli-tools"},{label:t.name,image:t.image}]}}return e.includes("/media-providers/systemone")?{title:"System One",description:"Decision models — native POST /v1/systemone endpoint",icon:"bolt",breadcrumbs:[]}:e.includes("/providers")?{title:"Providers",description:"Manage your AI provider connections",icon:"dns",breadcrumbs:[]}:e.includes("/combos")?{title:"Combos",description:"Model combos with fallback",icon:"layers",breadcrumbs:[]}:e.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",icon:"bar_chart",breadcrumbs:[]}:e.includes("/auth-files")?{title:"Auth Files",description:"Map provider credentials stored in the local database",icon:"vpn_key",breadcrumbs:[]}:e.includes("/quota")?{title:"Quota Tracker",description:"Track and manage your API quota limits",icon:"data_usage",breadcrumbs:[]}:e.includes("/token-saver")?{title:"Token Saver",description:"Compress prompts and outputs to save tokens",icon:"scissors",breadcrumbs:[]}:e.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",icon:"terminal",breadcrumbs:[]}:e.includes("/proxy-pools")?{title:"Proxy Pools",description:"Manage your proxy pool configurations",icon:"waypoints",breadcrumbs:[]}:e.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:e.includes("/profile")?{title:"Settings",description:"Manage your preferences",icon:"settings",breadcrumbs:[]}:e.includes("/console-log")?{title:"Console Log",description:"Live server console output",icon:"monitor",breadcrumbs:[]}:"/dashboard"===e?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(a),[a]);(0,i.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/auth/status",{cache:"no-store"});if(!t.ok)return;let a=await t.json();e||(u(a?.displayName||a?.samlName||a?.samlEmail||a?.oidcName||a?.oidcEmail||""),v(a?.loginMethod||""))}catch{e||(u(""),v(""))}}(),()=>{e=!0}},[]);let S=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&window.location.assign("/login")}catch(e){console.error("Failed to logout:",e)}};return(0,r.jsxs)("header",{className:"sticky top-0 flex h-20 shrink-0 items-center justify-between gap-3 px-4 lg:px-8 border-b border-border bg-card/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none z-20",children:[(0,r.jsx)("div",{className:"flex items-center gap-3 lg:hidden shrink-0",children:t&&(0,r.jsx)("button",{onClick:e,className:"text-foreground hover:text-primary transition-colors",children:(0,r.jsx)(s.default,{name:"menu",className:""})})}),(0,r.jsx)("div",{className:"flex flex-col min-w-0 flex-1",children:_.length>0?(0,r.jsx)("div",{className:"flex items-center gap-2",children:_.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[t>0&&(0,r.jsx)(s.default,{name:"chevron_right",className:"text-muted-foreground text-base"}),e.href?(0,r.jsx)(l(),{href:e.href,className:"text-muted-foreground hover:text-primary transition-colors",children:e.label}):(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[e.image&&(0,r.jsx)(d.A,{src:e.image,alt:e.label,size:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",fallbackText:e.label.slice(0,2).toUpperCase()}),(0,r.jsx)("h1",{className:"text-base lg:text-2xl font-semibold text-foreground tracking-tight truncate",children:(0,f.Tl)(e.label)})]})]},`${e.label}-${e.href||"current"}`))}):k?(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[C&&(0,r.jsx)(s.default,{name:C,className:"text-primary text-xl lg:text-2xl"}),(0,r.jsx)("h1",{className:"text-base lg:text-2xl font-semibold tracking-tight truncate",children:(0,f.Tl)(k)})]}),N&&(0,r.jsx)("p",{className:"hidden lg:block text-sm text-muted-foreground truncate",children:(0,f.Tl)(N)})]}):null}),(0,r.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[o&&("OIDC"===b||"SAML"===b)&&(0,r.jsxs)(j.m_,{children:[(0,r.jsx)(j.k$,{asChild:!0,children:(0,r.jsxs)(g.E,{variant:"secondary",className:"hidden max-w-55 sm:inline-flex",children:[(0,r.jsx)(s.default,{name:"person",className:"size-3.5 text-primary"}),(0,r.jsx)("span",{className:"truncate",children:o}),(0,r.jsx)("span",{className:"shrink-0 rounded-full bg-primary/10 px-1.5 py-px text-[10px] font-semibold uppercase tracking-wide text-primary",children:b})]})}),(0,r.jsx)(j.ZI,{children:o})]}),(0,r.jsx)(y,{}),(0,r.jsx)(c.default,{onLogout:S})]})]})}function y(){let e=u(e=>e.visible),t=u(e=>e.query),a=u(e=>e.placeholder),i=u(e=>e.setQuery);return e?(0,r.jsxs)("div",{className:"relative w-40 sm:w-55",children:[(0,r.jsx)(s.default,{name:"search",className:"absolute left-2 top-1/2 -translate-y-1/2 text-muted-foreground size-4 pointer-events-none"}),(0,r.jsx)(v.p,{type:"text",value:t,onChange:e=>i(e.target.value),placeholder:a,className:"h-8 pl-7 pr-7"}),t&&(0,r.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>i(""),className:"absolute right-1 top-1/2 -translate-y-1/2","aria-label":"Clear search",children:(0,r.jsx)(s.default,{name:"close",className:"size-4"})})]}):null}},51660:(e,t,a)=>{a.d(t,{Q2:()=>r.Q2,fg:()=>r.fg,vQ:()=>s,_$:()=>n,MA:()=>r.MA,UY:()=>l,Nu:()=>i,zN:()=>r.zN,B2:()=>o});var r=a(13794);a(80159);let s={name:"10Router Proxy",description:"AI Infrastructure Management",version:"0.1.3"},i={changelogUrl:"/api/changelog"},n=20128,o={storageKey:"theme",defaultTheme:"light"},l={maxLines:500,pollIntervalMs:1e3}},53599:(e,t,a)=>{a.d(t,{default:()=>o});var r=a(29798),s=a(69221),i=a(18055),n=a(3537);function o({isOpen:e,shuttingDown:t,stopped:a,timedOut:l,onClose:d,onConfirm:c}){let u=t&&!a&&!l;return(0,r.jsx)(n.default,{isOpen:e,onClose:d,title:a?"Server Stopped":l?"Still Running":"Close Proxy",size:"sm",closeOnOverlay:!u,footer:a||l?(0,r.jsx)(i.$,{variant:"default",onClick:d,children:"Close"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.$,{variant:"ghost",onClick:d,disabled:u,children:"Cancel"}),(0,r.jsxs)(i.$,{variant:"destructive",onClick:c,disabled:u,children:[u&&(0,r.jsx)(s.A,{className:"animate-spin"}),u?"Stopping…":"Close"]})]}),children:(0,r.jsx)("p",{className:"text-muted-foreground",children:a?"The proxy server has stopped. You can close this tab now.":l?"The server did not stop in time. It may need a manual stop (10router stop).":"Are you sure you want to close the proxy server?"})})}},53784:(e,t,a)=>{a.d(t,{E:()=>l});var r=a(29798);a(15814);var s=a(54366),i=a(5471),n=a(80954);let o=(0,s.F)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function l({className:e,variant:t="default",asChild:a=!1,...s}){let d=a?n.bL:"span";return(0,r.jsx)(d,{"data-slot":"badge","data-variant":t,className:(0,i.cn)(o({variant:t}),e),...s})}},56776:(e,t,a)=>{a.d(t,{default:()=>m});var r=a(29798),s=a(58913),i=a(15814),n=a(88336),o=a(63175),l=a(53599),d=a(18055),c=a(1352),u=a(76120);function m({onLogout:e}){let[t,a]=(0,i.useState)(!1),p=(0,o.c)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(u.rI,{children:[(0,r.jsxs)(c.m_,{children:[(0,r.jsx)(c.k$,{asChild:!0,children:(0,r.jsx)(u.ty,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon","aria-label":"Settings menu",children:(0,r.jsx)(s.default,{name:"settings",className:"size-5"})})})}),(0,r.jsx)(c.ZI,{children:"Settings"})]}),(0,r.jsxs)(u.SQ,{align:"end",className:"w-60",children:[(0,r.jsx)(u.lp,{children:"System"}),(0,r.jsx)(u.mB,{}),(0,r.jsxs)(u._2,{onSelect:()=>a(!0),children:[(0,r.jsx)(s.default,{name:"history",className:"size-4 text-muted-foreground"}),"Change Log"]}),(0,r.jsx)(u.mB,{}),(0,r.jsxs)(u._2,{variant:"destructive",onSelect:()=>p.open(),children:[(0,r.jsx)(s.default,{name:"power_settings_new",className:"size-4"}),"Shutdown"]}),(0,r.jsxs)(u._2,{variant:"destructive",onSelect:()=>e(),children:[(0,r.jsx)(s.default,{name:"logout",className:"size-4"}),"Logout"]})]})]}),(0,r.jsx)(n.default,{isOpen:t,onClose:()=>a(!1)}),(0,r.jsx)(l.default,{isOpen:p.confirmOpen||p.stopped||p.timedOut,onClose:p.reset,onConfirm:p.confirm,shuttingDown:p.shuttingDown,stopped:p.stopped,timedOut:p.timedOut})]})}},58913:(e,t,a)=>{a.d(t,{default:()=>l});var r=a(29798);a(15814);var s=a(36256);let i={add:"Plus",account_circle:"CircleUser",account_tree:"GitFork",api:"Plug",apps:"LayoutGrid",arrow_back:"ArrowLeft",arrow_downward:"ArrowDown",arrow_forward:"ArrowRight",arrow_upward:"ArrowUp",attach_file:"Paperclip",bar_chart:"BarChart3",block:"Ban",bolt:"Zap",business:"Briefcase",cancel:"X",cast:"Cast",chat:"MessageSquare",check:"Check",check_circle:"CheckCircle2",checklist:"ClipboardCheck",chevron_down:"ChevronDown",chevron_left:"ChevronLeft",chevron_right:"ChevronRight",chevron_up:"ChevronUp",close:"X",cloud:"Cloud",cloud_off:"CloudOff",cloud_sync:"CloudSync",cloud_upload:"CloudUpload",code:"Code2",computer:"Monitor",content_copy:"Copy",cookie:"Cookie",dashboard:"LayoutDashboard",data_array:"Table",data_object:"Braces",data_usage:"BarChart3",dark_mode:"Moon",delete:"Trash2",devices:"MonitorSmartphone",dns:"Network",download:"Download",edit:"Pencil",error:"CircleAlert",expand_more:"ChevronDown",extension:"Blocks",file_upload:"UploadCloud",filter_alt_off:"SlidersHorizontal",folder_open:"FolderOpen",gavel:"Scale",graphic_eq:"AudioWaveform",grid_view:"Grid2X2",group:"Users",help:"CircleHelp",history:"History",hourglass_top:"Timer",hub:"Router",image:"Image",image_search:"ScanSearch",info:"Info",input:"FileInput",key:"Key",keyboard_arrow_down:"ArrowDown",keyboard_arrow_up:"ArrowUp",lan:"Layers",language:"Languages",layers:"Layers",legend_toggle:"ListTree",light_mode:"Sun",link:"Link",link_off:"Link2Off",lock:"Lock",lock_open:"LockOpen",logout:"LogOut",menu:"Menu",menu_book:"BookOpen",mic:"Mic",monitoring:"Activity",monitor:"Monitor",movie:"Clapperboard",music_note:"Music",neurology:"Brain",open_in_new:"ExternalLink",output:"FileOutput",pause_circle:"CirclePause",person:"User",play_arrow:"Play",play_circle:"CirclePlay",playlist_add:"ListPlus",power:"Power",power_off:"PowerOff",power_settings_new:"Power",progress_activity:"Loader2",psychology:"BrainCircuit",public:"Earth",qr_code_scanner:"ScanQrCode",record_voice_over:"Mic",refresh:"RefreshCw",restart_alt:"RotateCcw",restore:"RotateCcw",rocket_launch:"Rocket",route:"Route",save:"Save",savings:"PiggyBank",scatter_plot:"ScatterChart",schedule:"Clock",science:"FlaskConical",search:"Search",search_off:"SearchX",security:"ShieldCheck",send:"Send",settings:"Settings",shield:"Shield",shield_lock:"ShieldCheck",shield_with_heart:"HeartPulse",smart_toy:"Bot",star:"Star",stop:"Square",stop_circle:"CircleStop",sync:"RefreshCw",sync_alt:"RefreshCw",terminal:"Terminal",toggle_off:"ToggleLeft",toggle_on:"ToggleRight",translate:"Languages",travel_explore:"Music4",upload:"Upload",upload_file:"UploadCloud",verified:"BadgeCheck",verified_user:"ShieldCheck",visibility:"Eye",visibility_off:"EyeOff",vpn_key:"KeyRound",vpn_lock:"Lock",warning:"TriangleAlert",wifi:"Wifi",wifi_off:"WifiOff",wifi_tethering:"Wifi"};function n(e){if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim().match(/^(\d+(?:\.\d+)?)px$/);if(t)return Number(t[1])}return null}function o({name:e="",className:t,style:a,...l}){let d=s[e]??s[i[e]||String(e).split(/[^a-zA-Z0-9]+/).filter(Boolean).map(e=>e[0].toUpperCase()+e.slice(1)).join("")]??s.Circle,c=function(e=""){let t=String(e).match(/\[(\d+(?:\.\d+)?)px\]/);return t?Number(t[1]):({"text-xs":12,"text-sm":14,"text-base":16,"text-lg":18,"text-xl":20,"text-2xl":24,"text-3xl":30,"text-4xl":36})[String(e).match(/\btext-(xs|sm|base|lg|xl|2xl|3xl|4xl)\b/)?.[0]]||null}(t)??(a&&"object"==typeof a?n(a.width)??n(a.height)??n(a.fontSize):null),u=c?{width:c,height:c}:void 0,m=String(t??"").replace(/\bmaterial-symbols-outlined\b/g,"").replace(/\bfill-1\b/g,"").replace(/\s+/g," ").trim();return(0,r.jsx)(d,{className:m,style:u?{...u,...a}:a,"aria-hidden":"true",...l})}function l({name:e,className:t,style:a}){return(0,r.jsx)(o,{name:e,className:t,style:a})}},63175:(e,t,a)=>{a.d(t,{c:()=>s});var r=a(15814);function s(){let[e,t]=(0,r.useState)(!1),[a,s]=(0,r.useState)(!1),[i,n]=(0,r.useState)(!1),[o,l]=(0,r.useState)(!1),d=(0,r.useRef)([]);(0,r.useEffect)(()=>()=>d.current.forEach(clearTimeout),[]);let c=(0,r.useCallback)(async()=>{let e=Date.now()+15e3;for(;Date.now()<e;){try{if(!(await fetch("/api/health",{cache:"no-store"})).ok)break}catch{break}await new Promise(e=>{let t=setTimeout(e,1e3);d.current.push(t)})}Date.now()>=e-1e3?l(!0):n(!0)},[]),u=(0,r.useCallback)(async()=>{s(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch{}t(!1),c()},[c]),m=(0,r.useCallback)(()=>{l(!1),n(!1),t(!0)},[]),p=(0,r.useCallback)(()=>{t(!1),s(!1),n(!1),l(!1)},[]);return(0,r.useEffect)(()=>{(i||o)&&s(!1)},[i,o]),{confirmOpen:e,shuttingDown:a,stopped:i,timedOut:o,open:m,confirm:u,reset:p}}},63729:(e,t,a)=>{a.d(t,{HY:()=>n,IM:()=>m,Kw:()=>o,uM:()=>u});let r={antigravity:"gemini","perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","ollama-search":"ollama","opencode-zen":"opencode"},s=new Set;function i(e){return e&&"string"==typeof e?e.trim().toLowerCase():""}function n(e){let t=function(e){let t=i(e);if(!t||s.has(t))return"";let a=r[t]||t;return s.has(a)?"":a}(e);return t?`/providers/${t}.png`:null}function o(e){let t=i(e);t&&s.add(t);let a=r[t];a&&s.add(a)}let l=new Set(["www","api","apis","rest","rpc","gateway","proxy","llm","chat","v1","v2","ai","app","dev","cloud","com","net","org","io","co","us","eu","cn"]),d={generativelanguage:"gemini",googleapis:"gemini",x:"xai"},c=new Set(["agentrouter","alicode","alicode-intl","alims-intl","alitp-intl","amp","anthropic","api-airforce","assemblyai","aws-polly","azure","baidu","bazaarlink","black-forest-labs","blackbox","bluesminds","brave-search","byteplus","cartesia","cerebras","chutes","claude","clinepass","codebuddy-cn","codebuddy-intl","codex","cohere","comfyui","commandcode","continue","coqui","cursor","deepgram","deepseek","deepseek-tui","devin-cli","droid","edge-tts","elevenlabs","exa","fal-ai","featherless","firecrawl","fireworks","fish-audio","gemini","github","gitlab","glm","glm-cn","google-pse","google-tts","grok-cli","grok-web","groq","hermes","huggingface","hyperbolic","iflow","inworld","jcode","jina-ai","jina-reader","kilo-gateway","kilocode","kimchi","linkup","llm7","local-device","longcat","mimo-free","minimax","minimax-cn","mistral","mmf","morph","nanobanana","nebius","novita","nvidia","ollama","ollama-local","openai","openclaw","opencode","opencode-go","opendesign","openrouter","perplexity","perplexity-agent","perplexity-web","playht","poolside","qoder","qwen","recraft","reka","roo","runwayml","sambanova","sdwebui","searchapi","searxng","selfhosted-embedding","selfhosted-stt","selfhosted-tts","serper","siliconflow","stability-ai","tavily","tencent","together","tokenrouter","topaz","tortoise","trae","venice","vercel","vercel-ai-gateway","volcengine-ark","voyage-ai","windsurf","workbuddy","xai","xiaomi-mimo","xiaomi-tokenplan","xquik","youcom","zed"]);function u(e){let t="";try{t=new URL(String(e||"")).hostname.toLowerCase()}catch{return""}if(!t||"localhost"===t||t.startsWith("127.")||t.includes(":")||t.startsWith("[")||/^\d+\.\d+\.\d+\.\d+$/.test(t))return"";let a=t.split(".").filter(Boolean).find(e=>!l.has(e)&&!/^\d+$/.test(e));if(!a)return"";let s=d[a]||r[a]||a;return c.has(s)?s:""}function m(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return t.length?1===t.length?t[0].slice(0,2).toUpperCase():`${t[0][0]}${t[t.length-1][0]}`.toUpperCase():""}},72778:(e,t,a)=>{a.d(t,{default:()=>s});var r=a(29798);function s({children:e}){return(0,r.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-background transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-foreground",children:[(0,r.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,r.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,r.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:e})]})}},76120:(e,t,a)=>{a.d(t,{SQ:()=>l,_2:()=>d,lp:()=>c,mB:()=>u,rI:()=>n,ty:()=>o});var r=a(29798);a(15814);var s=a(5471),i=a(47151);function n({...e}){return(0,r.jsx)(i.bL,{"data-slot":"dropdown-menu",...e})}function o({...e}){return(0,r.jsx)(i.l9,{"data-slot":"dropdown-menu-trigger",...e})}function l({className:e,align:t="start",sideOffset:a=4,...n}){return(0,r.jsx)(i.ZL,{children:(0,r.jsx)(i.UC,{"data-slot":"dropdown-menu-content",sideOffset:a,align:t,className:(0,s.cn)("z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...n})})}function d({className:e,inset:t,variant:a="default",...n}){return(0,r.jsx)(i.q7,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":a,className:(0,s.cn)("group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",e),...n})}function c({className:e,inset:t,...a}){return(0,r.jsx)(i.JU,{"data-slot":"dropdown-menu-label","data-inset":t,className:(0,s.cn)("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:pl-8",e),...a})}function u({className:e,...t}){return(0,r.jsx)(i.wv,{"data-slot":"dropdown-menu-separator",className:(0,s.cn)("-mx-1 my-1 h-px bg-border",e),...t})}},88336:(e,t,a)=>{a.d(t,{default:()=>d});var r=a(29798),s=a(58913),i=a(15814),n=a(62392),o=a(51660),l=a(49787);function d({isOpen:e,onClose:t}){let[a,c]=(0,i.useState)(""),[u,m]=(0,i.useState)(!1),[p,x]=(0,i.useState)(!1),[h,f]=(0,i.useState)("");(0,i.useEffect)(()=>{e&&!a&&(x(!0),f(""),fetch(o.Nu.changelogUrl).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.text()}).then(e=>c(e)).catch(e=>f(e.message||"Failed to load")).finally(()=>x(!1)))},[e,a]);let g=a?a.split(/(?=^## )/m).filter(e=>e.startsWith("## ")):[],b=u?g:g.slice(0,3),v=g.length-b.length,j=b.length?n.xI.parse(b.join("\n")):"";return(0,r.jsx)(l.lG,{open:!!e,onOpenChange:e=>!e&&t?.(),children:(0,r.jsxs)(l.Cf,{className:"sm:max-w-3xl",children:[(0,r.jsx)(l.c7,{children:(0,r.jsx)(l.L3,{children:"Change Log"})}),(0,r.jsxs)("div",{className:"max-h-[75vh] overflow-y-auto p-6",children:[p&&(0,r.jsxs)("div",{className:"flex items-center justify-center py-10 text-muted-foreground",children:[(0,r.jsx)(s.default,{name:"progress_activity",className:"animate-spin mr-2"}),"Loading..."]}),h&&(0,r.jsxs)("div",{className:"text-red-500 py-4",children:["Failed to load changelog: ",h]}),!p&&!h&&j&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"changelog-body text-foreground",dangerouslySetInnerHTML:{__html:j}}),v>0&&(0,r.jsxs)("button",{onClick:()=>m(!0),className:"mt-4 w-full py-2 rounded-lg text-sm font-medium text-foreground bg-black/5 dark:bg-white/5 hover:bg-black/10 dark:hover:bg-white/10 transition-colors",children:["Show ",v," more"]})]})]})]})})}n.xI.setOptions({gfm:!0,breaks:!0})},90046:(e,t,a)=>{a.d(t,{d:()=>r});let r={claude:{id:"claude",name:"Claude Code",image:"/providers/claude.png",color:"#D97757",description:"Anthropic Claude Code CLI",configType:"env",envVars:{baseUrl:"ANTHROPIC_BASE_URL",model:"ANTHROPIC_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",fableModel:"ANTHROPIC_DEFAULT_FABLE_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"},modelAliases:["default","sonnet","opus","fable","haiku","opusplan"],settingsFile:"~/.claude/settings.json",defaultModels:[{id:"fable",name:"Claude Fable",alias:"fable",envKey:"ANTHROPIC_DEFAULT_FABLE_MODEL",defaultValue:"cc/claude-fable-5"},{id:"opus",name:"Claude Opus",alias:"opus",envKey:"ANTHROPIC_DEFAULT_OPUS_MODEL",defaultValue:"cc/claude-opus-5"},{id:"sonnet",name:"Claude Sonnet",alias:"sonnet",envKey:"ANTHROPIC_DEFAULT_SONNET_MODEL",defaultValue:"cc/claude-sonnet-5"},{id:"haiku",name:"Claude Haiku",alias:"haiku",envKey:"ANTHROPIC_DEFAULT_HAIKU_MODEL",defaultValue:"cc/claude-haiku-4-5-20251001"}]},codex:{id:"codex",name:"OpenAI Codex CLI / App",image:"/providers/codex.png",color:"#10A37F",description:"OpenAI Codex CLI",configType:"custom"},opencode:{id:"opencode",name:"OpenCode",image:"/providers/opencode.png",color:"#E87040",description:"OpenCode AI Terminal Assistant",configType:"custom"},cowork:{id:"cowork",name:"Claude Cowork",image:"/providers/claude.png",color:"#D97757",description:"Claude Desktop Cowork (third-party inference)",configType:"custom"},dsh:{id:"dsh",name:"DSH - DeepSeek Harness",image:"/providers/deepseek.png",color:"#4D6BFE",description:"DeepSeek Harness (dsh web) provider",configType:"custom"},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor AI Code Editor",configType:"guide",requiresExternalUrl:!0,notes:[{type:"warning",text:"Requires Cursor Pro account to use this feature."},{type:"cloudCheck",text:"Cursor routes requests through its own server, so local endpoint is not supported. Please enable Tunnel or Cloud Endpoint in Settings."}],guideSteps:[{step:1,title:"Open Settings",desc:"Go to Settings → Models"},{step:2,title:"Enable OpenAI API",desc:'Enable "OpenAI API key" option'},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Add Custom Model",desc:'Click "View All Model" → "Add Custom Model"'},{step:6,title:"Select Model",type:"modelSelector"}]}}},99118:(e,t,a)=>{a.d(t,{E:()=>i});var r=a(29798),s=a(5471);function i({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"skeleton",className:(0,s.cn)("animate-pulse rounded-md bg-muted",e),...t})}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1278],{738:(e,t,a)=>{a.d(t,{A:()=>n});var r=a(29798),s=a(15814),i=a(63729);function n({src:e,providerId:t,alt:a,size:o=32,className:l="",fallbackText:d="?",fallbackColor:c}){let u=function(e,t){if(t)return(0,i.HY)(t);if(!e)return null;let a=String(e).match(/^\/providers\/([^/]+)\.png$/i);return a?(0,i.HY)(a[1]):e}(e,t),[m,p]=(0,s.useState)(!1);return!u||m?(0,r.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${l}`.trim(),style:{width:o,height:o,color:c,fontSize:Math.max(10,Math.floor(.38*o))},children:d}):(0,r.jsx)("img",{src:u,alt:a,width:o,height:o,className:l,loading:"lazy",decoding:"async",onError:()=>{let e=u.match(/^\/providers\/([^/]+)\.png$/i);e&&(0,i.Kw)(e[1]),t&&(0,i.Kw)(t),p(!0)}})}},3537:(e,t,a)=>{a.d(t,{ConfirmModal:()=>u,default:()=>c});var r=a(29798),s=a(15814),i=a(69221),n=a(13008),o=a(18055),l=a(49787);let d={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-4xl"};function c({isOpen:e,onClose:t,title:a,children:i,footer:o,size:u="md",closeOnOverlay:m=!0,className:p}){return(0,s.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,r.jsx)(l.lG,{open:!!e,onOpenChange:e=>{e||t()},children:(0,r.jsxs)(l.Cf,{className:(0,n.cn)(d[u],p),onPointerDownOutside:m?void 0:e=>e.preventDefault(),onInteractOutside:m?void 0:e=>e.preventDefault(),children:[a&&(0,r.jsx)(l.c7,{children:(0,r.jsx)(l.L3,{children:a})}),(0,r.jsx)("div",{className:"max-h-[calc(85vh-100px)] overflow-y-auto p-4",children:i}),o&&(0,r.jsx)(l.Es,{children:o})]})})}function u({isOpen:e,onClose:t,onConfirm:a,title:s="Confirm",message:n,confirmText:l="Confirm",cancelText:d="Cancel",variant:m="danger",loading:p=!1}){return(0,r.jsx)(c,{isOpen:e,onClose:t,title:s,size:"sm",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.$,{variant:"ghost",onClick:t,disabled:p,children:d}),(0,r.jsxs)(o.$,{variant:"danger"===m?"destructive":"primary"===m?"default":m,onClick:a,disabled:p,children:[p&&(0,r.jsx)(i.A,{className:"animate-spin"}),l]})]}),children:(0,r.jsx)("p",{className:"text-muted-foreground",children:n})})}},13008:(e,t,a)=>{a.d(t,{cn:()=>s});var r=a(5471);function s(...e){return(0,r.cn)(...e)}},16675:(e,t,a)=>{a.d(t,{default:()=>em});var r=a(29798),s=a(58913),i=a(70782),n=a(41671),o=a(42535),l=a(15814),d=a(16653),c=a(50141),u=a.n(c),m=a(51660),p=a(1352),x=a(69221),h=a(53784),f=a(18055),g=a(75669),b=a(49787),v=a(63523),j=a(63175);let w=["docker compose pull","docker compose up -d"],y=["docker pull ghcr.io/amir83nasr/10router:latest","docker stop 10router && docker rm 10router",'docker run -d --name 10router -p 20128:20128 -v "$HOME/.10router:/app/data" -e DATA_DIR=/app/data ghcr.io/amir83nasr/10router:latest'],k=["git pull","pnpm install","pnpm run build && PORT=20128 pnpm run start"];function N({id:e,steps:t}){let{copied:a,copy:i}=(0,v.C)();return(0,r.jsx)("ol",{className:"flex flex-col gap-1.5",children:t.map((t,n)=>{let o=`${e}-${n}`,l=a===o;return(0,r.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("span",{className:"flex size-5 shrink-0 items-center justify-center rounded-full bg-muted text-[11px] font-medium text-muted-foreground",children:n+1}),(0,r.jsx)("code",{className:"min-w-0 flex-1 rounded bg-muted px-2 py-1 font-mono text-xs break-all",children:t}),(0,r.jsx)(f.$,{variant:"ghost",size:"icon-xs",onClick:()=>i(t,o),"aria-label":`Copy step ${n+1}: ${t}`,children:(0,r.jsx)(s.default,{name:l?"check":"content_copy",className:"size-3.5"})})]},o)})})}function C({title:e,icon:t,id:a,steps:i}){return(0,r.jsxs)("details",{className:"group rounded-lg border border-border",children:[(0,r.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-2 px-3 py-2 text-sm font-medium text-foreground [&::-webkit-details-marker]:hidden",children:[(0,r.jsx)(s.default,{name:t,className:"size-4 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"flex-1",children:e}),(0,r.jsx)(s.default,{name:"expand_more",className:"size-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180"})]}),(0,r.jsx)("div",{className:"px-3 py-2",children:(0,r.jsx)(N,{id:a,steps:i})})]})}function _(){return(0,r.jsxs)("details",{className:"group flex flex-col gap-2 rounded-lg border border-border p-3",children:[(0,r.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-2 text-sm font-medium text-foreground [&::-webkit-details-marker]:hidden",children:[(0,r.jsx)(s.default,{name:"terminal",className:"size-4 shrink-0 text-muted-foreground"}),(0,r.jsx)("span",{className:"flex-1",children:"Other install methods"}),(0,r.jsx)(s.default,{name:"expand_more",className:"size-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180"})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 py-2",children:[(0,r.jsx)(C,{title:"Docker Compose",icon:"lan",id:"compose",steps:w}),(0,r.jsx)(C,{title:"Plain Docker run",icon:"dns",id:"docker",steps:y}),(0,r.jsx)(C,{title:"From source",icon:"code",id:"source",steps:k})]})]})}function S(){let{copied:e,copy:t}=(0,v.C)(),a=(0,j.c)(),i="npm i -g @amir83nasr/10router@latest",n="npm-0",o=e===n;return(0,r.jsxs)(g.Zp,{size:"sm",className:"border-primary/30 bg-primary/5",children:[(0,r.jsx)(g.aR,{children:(0,r.jsxs)(g.ZB,{className:"flex items-center gap-2",children:[(0,r.jsx)(s.default,{name:"upload",className:"size-4 shrink-0 text-primary"}),"npm ",(0,r.jsx)(h.E,{variant:"default",children:"recommended"})]})}),(0,r.jsxs)(g.Wu,{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("code",{className:"min-w-0 flex-1 rounded bg-muted px-2 py-1 font-mono text-xs break-all",children:i}),(0,r.jsx)(f.$,{variant:"ghost",size:"icon-xs",onClick:()=>t(i,n),"aria-label":`Copy: ${i}`,children:(0,r.jsx)(s.default,{name:o?"check":"content_copy",className:"size-3.5"})})]}),o&&!a.stopped&&!a.timedOut&&(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Copied. Stop the server, paste the command in your terminal, then run"," ",(0,r.jsx)("code",{className:"rounded bg-muted px-1 font-mono",children:"10router start"}),"."]}),(0,r.jsxs)(f.$,{variant:"destructive",size:"sm",className:"self-start",onClick:a.confirm,disabled:a.shuttingDown,children:[a.shuttingDown?(0,r.jsx)(x.A,{className:"animate-spin"}):(0,r.jsx)(s.default,{name:"power_settings_new",className:"size-4"}),a.shuttingDown?"Stopping…":"Stop server"]})]}),a.stopped&&(0,r.jsxs)("p",{className:"rounded-lg border border-green-500/30 bg-green-500/10 px-3 py-2 text-xs text-green-600 dark:text-green-400",children:["Server stopped — run the copied command in your terminal, then"," ",(0,r.jsx)("code",{className:"font-mono",children:"10router start"}),"."]}),a.timedOut&&(0,r.jsxs)("p",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs text-amber-600 dark:text-amber-400",children:["The server did not stop in time — stop it manually (",(0,r.jsx)("code",{className:"font-mono",children:"10router stop"}),"), then run the copied command."]})]})]})}function z({open:e,onOpenChange:t,info:a,checkFailed:i,onRetry:n}){let o=a?a.hasUpdate?(0,r.jsxs)("p",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-sm text-amber-600 dark:text-amber-400",children:["New version v",a.latestVersion," available (you run v",a.currentVersion,"). npm is the fastest way — or run the steps for your install method, in order:"]}):(0,r.jsxs)("p",{className:"rounded-lg border border-green-500/30 bg-green-500/10 px-3 py-2 text-sm text-green-600 dark:text-green-400",children:["Up to date — v",a.currentVersion," is the latest."]}):(0,r.jsx)("p",{className:"rounded-lg border border-border bg-muted/50 px-3 py-2 text-sm text-muted-foreground",children:i?"Could not reach GitHub to check for updates — the manual steps below still work.":"Checking for updates…"});return(0,r.jsx)(b.lG,{open:e,onOpenChange:t,children:(0,r.jsxs)(b.Cf,{className:"sm:max-w-lg",children:[(0,r.jsxs)(b.c7,{children:[(0,r.jsx)(b.L3,{children:"Updates"}),(0,r.jsx)(b.rr,{children:a?`Current v${a.currentVersion} \xb7 latest v${a.latestVersion}`:"Compare your version against the latest release"})]}),(0,r.jsxs)("div",{className:"flex max-h-[70vh] flex-col gap-4 overflow-y-auto p-4",children:[o,(0,r.jsx)(S,{}),(0,r.jsx)(_,{})]}),(0,r.jsxs)(b.Es,{children:[(0,r.jsxs)(f.$,{variant:"ghost",onClick:n,children:[(0,r.jsx)(s.default,{name:"refresh",className:"size-4"}),"Check again"]}),(0,r.jsx)(f.$,{variant:"outline",onClick:()=>t(!1),children:"Close"})]})]})})}var O=a(13008);function A({collapsed:e}){let[t,a]=(0,l.useState)(null),[i,n]=(0,l.useState)(!1),[o,d]=(0,l.useState)(!1),c=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/version",{cache:"no-store"});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();a({currentVersion:t?.currentVersion??m.vQ.version,latestVersion:t?.latestVersion??m.vQ.version,hasUpdate:!!t?.hasUpdate}),n(!1)}catch{n(!0)}},[]);(0,l.useEffect)(()=>{c();let e=setInterval(c,18e5);return()=>clearInterval(e)},[c]);let u=t?.hasUpdate??!1,x=u?`v${t?.latestVersion} available`:t?`v${t.currentVersion} \xb7 up to date`:`v${m.vQ.version}`,h=e?(0,r.jsxs)(p.m_,{children:[(0,r.jsx)(p.k$,{asChild:!0,children:u?(0,r.jsxs)("button",{type:"button",onClick:()=>d(!0),"aria-label":`Update available. ${x}`,className:"relative mx-auto flex size-8 items-center justify-center rounded-md bg-amber-500/15 text-amber-600 transition-colors hover:bg-amber-500/25 dark:text-amber-400",children:[(0,r.jsx)(s.default,{name:"download",className:"size-4"}),(0,r.jsx)("span",{className:"absolute right-1.5 top-1.5 size-1.5 rounded-full bg-amber-500"})]}):(0,r.jsx)("span",{className:"mx-auto flex size-8 items-center justify-center rounded-md text-muted-foreground",children:(0,r.jsx)(s.default,{name:"refresh",className:"size-4"})})}),(0,r.jsx)(p.ZI,{children:u?`${x} — click to update`:x})]}):u?(0,r.jsxs)("button",{type:"button",onClick:()=>d(!0),className:"flex w-full items-center gap-2 rounded-md bg-amber-500/15 px-1 py-1 text-left transition-colors hover:bg-amber-500/25","aria-label":`Update available. ${x}`,children:[(0,r.jsxs)("span",{className:"relative flex shrink-0 items-center text-muted-foreground",children:[(0,r.jsx)(s.default,{name:"download",className:"size-4"}),(0,r.jsx)("span",{className:"absolute -right-0.5 -top-0.5 size-1.5 rounded-full bg-amber-500"})]}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("span",{className:"block truncate text-[11px] text-muted-foreground",children:[m.vQ.name," v",t?.currentVersion??m.vQ.version]}),(0,r.jsx)("span",{className:"block truncate text-[11px] font-medium text-amber-600 dark:text-amber-400",children:x})]}),(0,r.jsx)(s.default,{name:"chevron_right",className:"size-3.5 shrink-0 text-muted-foreground"})]}):(0,r.jsxs)("div",{className:"flex w-full items-center gap-2 rounded-md px-1 py-1 text-left",children:[(0,r.jsx)("span",{className:"flex shrink-0 items-center text-muted-foreground",children:(0,r.jsx)(s.default,{name:"refresh",className:"size-4"})}),(0,r.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("span",{className:"block truncate text-[11px] text-muted-foreground",children:[m.vQ.name," v",t?.currentVersion??m.vQ.version]}),(0,r.jsx)("span",{className:(0,O.cn)("block truncate text-[11px] font-medium",i||!t?"text-muted-foreground":"text-green-600 dark:text-green-400"),children:x})]})]});return(0,r.jsxs)(r.Fragment,{children:[h,(0,r.jsx)(z,{open:o&&u,onOpenChange:d,info:t,checkFailed:i,onRetry:c})]})}var L=a(54366),E=a(5471),T=a(80954);a(77345);var P=a(73639);function I({className:e,orientation:t="horizontal",decorative:a=!0,...s}){return(0,r.jsx)(P.b,{"data-slot":"separator",decorative:a,orientation:t,className:(0,E.cn)("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",e),...s})}var $=a(69260),M=a(6403);function D({...e}){return(0,r.jsx)($.bL,{"data-slot":"sheet",...e})}function U({...e}){return(0,r.jsx)($.ZL,{"data-slot":"sheet-portal",...e})}function R({className:e,...t}){return(0,r.jsx)($.hJ,{"data-slot":"sheet-overlay",className:(0,E.cn)("fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}function F({className:e,children:t,side:a="right",showCloseButton:s=!0,...i}){return(0,r.jsxs)(U,{children:[(0,r.jsx)(R,{}),(0,r.jsxs)($.UC,{"data-slot":"sheet-content","data-side":a,className:(0,E.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10",e),...i,children:[t,s&&(0,r.jsx)($.bm,{"data-slot":"sheet-close",asChild:!0,children:(0,r.jsxs)(f.$,{variant:"ghost",className:"absolute top-4 right-4",size:"icon-sm",children:[(0,r.jsx)(M.A,{}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})})]})]})}function H({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sheet-header",className:(0,E.cn)("flex flex-col gap-1.5 p-4",e),...t})}function B({className:e,...t}){return(0,r.jsx)($.hE,{"data-slot":"sheet-title",className:(0,E.cn)("font-heading font-medium text-foreground",e),...t})}function V({className:e,...t}){return(0,r.jsx)($.VY,{"data-slot":"sheet-description",className:(0,E.cn)("text-sm text-muted-foreground",e),...t})}a(99118);let q=l.createContext(null);function Q(){let e=l.useContext(q);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function K({defaultOpen:e=!0,open:t,onOpenChange:a,className:s,style:i,children:n,...o}){let d=function(){let[e,t]=l.useState(void 0);return l.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),a=()=>{t(window.innerWidth<768)};return e.addEventListener("change",a),t(window.innerWidth<768),()=>e.removeEventListener("change",a)},[]),!!e}(),[c,u]=l.useState(!1),[m,p]=l.useState(e),x=t??m,h=l.useCallback(e=>{let t="function"==typeof e?e(x):e;a?a(t):p(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[a,x]),f=l.useCallback(()=>d?u(e=>!e):h(e=>!e),[d,h,u]);l.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),f())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[f]);let g=x?"expanded":"collapsed",b=l.useMemo(()=>({state:g,open:x,setOpen:h,isMobile:d,openMobile:c,setOpenMobile:u,toggleSidebar:f}),[g,x,h,d,c,u,f]);return(0,r.jsx)(q.Provider,{value:b,children:(0,r.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...i},className:(0,E.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",s),...o,children:n})})}function W({side:e="left",variant:t="sidebar",collapsible:a="offcanvas",className:s,children:i,dir:n,...o}){let{isMobile:l,state:d,openMobile:c,setOpenMobile:u}=Q();return"none"===a?(0,r.jsx)("div",{"data-slot":"sidebar",className:(0,E.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",s),...o,children:i}):l?(0,r.jsx)(D,{open:c,onOpenChange:u,...o,children:(0,r.jsxs)(F,{dir:n,"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,r.jsxs)(H,{className:"sr-only",children:[(0,r.jsx)(B,{children:"Sidebar"}),(0,r.jsx)(V,{children:"Displays the mobile sidebar."})]}),(0,r.jsx)("div",{className:"flex h-full w-full flex-col",children:i})]})}):(0,r.jsxs)("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":d,"data-collapsible":"collapsed"===d?a:"","data-variant":t,"data-side":e,"data-slot":"sidebar",children:[(0,r.jsx)("div",{"data-slot":"sidebar-gap",className:(0,E.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===t||"inset"===t?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,r.jsx)("div",{"data-slot":"sidebar-container","data-side":e,className:(0,E.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex","floating"===t||"inset"===t?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",s),...o,children:(0,r.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex size-full min-w-0 flex-col overflow-x-hidden bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border",children:i})})]})}function Z({className:e,...t}){return(0,r.jsx)("main",{"data-slot":"sidebar-inset",className:(0,E.cn)("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...t})}function G({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,E.cn)("flex flex-col gap-2 p-2",e),...t})}function Y({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,E.cn)("flex flex-col gap-2 p-2",e),...t})}function X({className:e,...t}){return(0,r.jsx)(I,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:(0,E.cn)("mx-2 w-auto bg-sidebar-border",e),...t})}function J({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,E.cn)("flex min-h-0 w-full min-w-0 flex-1 flex-col gap-2 overflow-x-hidden overflow-y-auto group-data-[collapsible=icon]:overflow-hidden",e),...t})}function ee({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,E.cn)("relative flex w-full min-w-0 flex-col p-2",e),...t})}function et({className:e,asChild:t=!1,...a}){let s=t?T.bL:"div";return(0,r.jsx)(s,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,E.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",e),...a})}function ea({className:e,...t}){return(0,r.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,E.cn)("flex w-full min-w-0 flex-col gap-1",e),...t})}function er({className:e,...t}){return(0,r.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,E.cn)("group/menu-item relative",e),...t})}let es=(0,L.F)("peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function ei({asChild:e=!1,isActive:t=!1,variant:a="default",size:s="default",tooltip:i,className:n,...o}){let l=e?T.bL:"button",{isMobile:d,state:c}=Q(),u=(0,r.jsx)(l,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":s,"data-active":t,className:(0,E.cn)(es({variant:a,size:s}),n),...o});return i?("string"==typeof i&&(i={children:i}),(0,r.jsxs)(p.m_,{children:[(0,r.jsx)(p.k$,{asChild:!0,children:u}),(0,r.jsx)(p.ZI,{side:"right",align:"center",hidden:"collapsed"!==c||d,...i})]})):u}let en=[{id:"endpoint",href:"/dashboard",label:"Endpoint & Key",icon:"api",match:e=>"/dashboard"===e||e.startsWith("/dashboard/endpoint")},{id:"providers",href:"/dashboard/providers",label:"Providers",icon:"dns"},{id:"combos",href:"/dashboard/combos",label:"Combo",icon:"layers"},{id:"usage",href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{id:"token-saver",href:"/dashboard/token-saver",label:"Token Saver",icon:"scissors"},{id:"cli-tools",href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"},{id:"systemone",href:"/dashboard/media-providers/systemone",label:"System One",icon:"bolt"}],eo=[{id:"proxy-pools",href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"waypoints"}],el=[{id:"profile",href:"/dashboard/profile",label:"Settings",icon:"settings"}];function ed({item:e}){var t;let a=(t=(0,i.usePathname)(),e.match?e.match(t):"/dashboard/profile"===e.href?"/dashboard/profile"===t:t.startsWith(e.href));return(0,r.jsx)(er,{children:(0,r.jsx)(ei,{asChild:!0,isActive:a,children:(0,r.jsxs)(u(),{href:e.href,className:"gap-3",children:[(0,r.jsx)(s.default,{name:e.icon,className:"text-[18px]"}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label})]})})})}function ec({...e}){(0,i.usePathname)();let{state:t}=Q(),a="collapsed"===t;return(0,r.jsxs)(W,{...e,children:[(0,r.jsx)(G,{className:"h-20 justify-center border-b border-sidebar-border px-4",children:(0,r.jsxs)(u(),{href:"/dashboard",className:"flex min-w-0 items-center gap-3",children:[(0,r.jsx)(d.default,{src:"/icons/icon.svg",alt:"10Router logo",width:36,height:36,className:"size-9 rounded-[10px] shrink-0"}),!a&&(0,r.jsxs)("div",{className:"flex min-w-0 flex-col leading-tight",children:[(0,r.jsx)("span",{className:"truncate text-lg font-semibold tracking-tight text-foreground",children:m.vQ.name}),(0,r.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:["v",m.vQ.version]})]})]})}),(0,r.jsxs)(J,{className:"pt-2",children:[(0,r.jsxs)(ee,{children:[(0,r.jsx)(et,{children:"Overview"}),(0,r.jsx)(ea,{children:en.map(e=>(0,r.jsx)(ed,{item:e},e.id))})]}),(0,r.jsx)(X,{}),(0,r.jsxs)(ee,{children:[(0,r.jsx)(et,{children:"System"}),(0,r.jsxs)(ea,{children:[eo.map(e=>(0,r.jsx)(ed,{item:e},e.id)),el.map(e=>(0,r.jsx)(ed,{item:e},e.id))]})]})]}),(0,r.jsx)(Y,{className:"border-t border-sidebar-border p-4",children:(0,r.jsx)(A,{collapsed:a})})]})}function eu({children:e}){let t=(0,i.usePathname)(),a=(0,n.i)(e=>e.notifications),l=(0,n.i)(e=>e.removeNotification),{toggleSidebar:d}=Q();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2",children:a.map(e=>{var t;let a="success"===(t=e.type)?{wrapper:"border-green-500/30 bg-green-500/10 text-green-600 dark:text-green-400",icon:"check_circle"}:"error"===t?{wrapper:"border-red-500/30 bg-red-500/10 text-red-600 dark:text-red-400",icon:"error"}:"warning"===t?{wrapper:"border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400",icon:"warning"}:{wrapper:"border-blue-500/30 bg-blue-500/10 text-blue-600 dark:text-blue-400",icon:"info"};return(0,r.jsx)("div",{className:`rounded-lg border px-3 py-2 shadow-lg backdrop-blur-sm ${a.wrapper}`,children:(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)(s.default,{name:a.icon,className:"text-[18px] leading-5"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[e.title?(0,r.jsx)("p",{className:"text-xs font-semibold mb-0.5",children:e.title}):null,(0,r.jsx)("p",{className:"text-xs whitespace-pre-wrap break-words",children:e.message})]}),e.dismissible?(0,r.jsx)("button",{type:"button",onClick:()=>l(e.id),className:"text-current/70 hover:text-current","aria-label":"Dismiss notification",children:(0,r.jsx)(s.default,{name:"close",className:"text-[16px]"})}):null]})},e.id)})}),(0,r.jsx)(ec,{}),(0,r.jsxs)(Z,{className:"flex flex-col h-full min-w-0 relative transition-colors duration-300 isolate",children:[(0,r.jsx)(o.default,{onMenuClick:d},t),(0,r.jsx)("div",{className:`dashboard-grid-bg flex-1 overflow-y-auto ${"/dashboard/basic-chat"===t?"":"p-6 lg:p-10"} ${"/dashboard/basic-chat"===t?"flex flex-col overflow-hidden":""}`,children:(0,r.jsx)("div",{className:`${"/dashboard/basic-chat"===t?"flex-1 w-full h-full flex flex-col":"max-w-7xl mx-auto"}`,children:e})})]})]})}function em({children:e}){return(0,r.jsx)(K,{children:(0,r.jsx)("div",{className:"flex h-screen w-full overflow-hidden bg-background",children:(0,r.jsx)(eu,{children:e})})})}},29575:(e,t,a)=>{a.d(t,{CardGrid:()=>p,Page:()=>c,PageHeader:()=>u,Section:()=>m});var r=a(29798),s=a(50141),i=a.n(s),n=a(13008),o=a(18055),l=a(58913);let d={default:"",narrow:"mx-auto w-full max-w-2xl",wide:"mx-auto w-full max-w-5xl"};function c({children:e,width:t="default",className:a}){return(0,r.jsx)("div",{className:(0,n.cn)("flex min-w-0 flex-col gap-6",d[t],a),children:e})}function u({title:e,description:t,actions:a,backHref:s,backLabel:d,className:c}){let m=null!=a;return(0,r.jsxs)("div",{className:(0,n.cn)(c),children:[s?(0,r.jsx)(o.$,{variant:"outline",size:"sm",asChild:!0,className:"mb-4 self-start",children:(0,r.jsxs)(i(),{href:s,children:[(0,r.jsx)(l.default,{name:"arrow_back",className:"text-lg"}),d??"Back"]})}):null,(0,r.jsxs)("div",{className:(0,n.cn)("flex flex-col gap-3",m&&"sm:flex-row sm:items-center sm:justify-between"),children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("h1",{className:"text-2xl font-semibold tracking-tight sm:text-3xl",children:e}),t?(0,r.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:t}):null]}),m?(0,r.jsx)("div",{className:"grid shrink-0 grid-cols-1 gap-2 sm:flex sm:items-center",children:a}):null]})]})}function m({title:e,actions:t,children:a,className:s}){let i=void 0!==e||void 0!==t;return(0,r.jsxs)("section",{className:(0,n.cn)("flex min-w-0 flex-col gap-4",s),children:[i?(0,r.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e?(0,r.jsx)("h2",{className:"text-lg font-semibold leading-tight sm:text-xl",children:e}):(0,r.jsx)("span",{}),t?(0,r.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:w-auto sm:items-center",children:t}):null]}):null,a]})}function p({children:e,variant:t="cards",className:a}){return(0,r.jsx)("div",{className:(0,n.cn)("grid min-w-0 grid-cols-1 gap-3 sm:gap-4","cards"===t&&"sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","stat"===t&&"sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5",a),children:e})}},41671:(e,t,a)=>{a.d(t,{i:()=>i});var r=a(58013);let s=0,i=(0,r.v)((e,t)=>({notifications:[],addNotification:a=>{let r=++s,i={id:r,type:a.type||"info",message:a.message,title:a.title||null,duration:a.duration??5e3,dismissible:a.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,i]})),i.duration>0&&setTimeout(()=>t().removeNotification(r),i.duration),r},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,a)=>t().addNotification({type:"success",message:e,title:a}),error:(e,a)=>t().addNotification({type:"error",message:e,title:a,duration:8e3}),warning:(e,a)=>t().addNotification({type:"warning",message:e,title:a}),info:(e,a)=>t().addNotification({type:"info",message:e,title:a})}))},42535:(e,t,a)=>{a.d(t,{default:()=>w});var r=a(29798),s=a(58913),i=a(15814),n=a(70782),o=a(50141),l=a.n(o),d=a(738),c=a(56776);let u=(0,a(58013).v)(e=>({query:"",placeholder:"",visible:!1,setQuery:t=>e({query:t}),register:(t="Search...")=>e({visible:!0,placeholder:t,query:""}),unregister:()=>e({visible:!1,placeholder:"",query:""})}));var m=a(51660),p=a(13794),x=a(90046),h=a(63729),f=a(51780),g=a(53784),b=a(18055),v=a(77345),j=a(1352);function w({onMenuClick:e,showMenuButton:t=!0}){let a=(0,n.usePathname)(),[o,u]=(0,i.useState)(""),[b,v]=(0,i.useState)(""),{title:k,description:N,icon:C,breadcrumbs:_}=(0,i.useMemo)(()=>(e=>{if(!e)return{title:"",description:"",breadcrumbs:[]};let t=e.match(/\/providers\/([^/]+)$/);if(t){let e=t[1],a=m.zN[e]||m.fg[e];if(a)return{title:a.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:a.name,image:(0,h.HY)(a.id)}]}}let a=e.match(/\/media-providers\/systemone\/([^/]+)$/);if(a){let e=decodeURIComponent(a[1]),t=p.Q2[e]||Object.values(p.Q2).find(t=>t.alias===e);if(t)return{title:t.name,description:"",breadcrumbs:[{label:"System One",href:"/dashboard/media-providers/systemone"},{label:t.name,image:(0,h.HY)(t.id)}]}}let r=e.match(/\/cli-tools\/([^/]+)$/);if(r){let e=decodeURIComponent(r[1]),t=x.d[e];if(t)return{title:t.name,description:"",breadcrumbs:[{label:"CLI Tools",href:"/dashboard/cli-tools"},{label:t.name,image:t.image}]}}return e.includes("/media-providers/systemone")?{title:"System One",description:"Decision models — native POST /v1/systemone endpoint",icon:"bolt",breadcrumbs:[]}:e.includes("/providers")?{title:"Providers",description:"Manage your AI provider connections",icon:"dns",breadcrumbs:[]}:e.includes("/combos")?{title:"Combos",description:"Model combos with fallback",icon:"layers",breadcrumbs:[]}:e.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",icon:"bar_chart",breadcrumbs:[]}:e.includes("/auth-files")?{title:"Auth Files",description:"Map provider credentials stored in the local database",icon:"vpn_key",breadcrumbs:[]}:e.includes("/quota")?{title:"Quota Tracker",description:"Track and manage your API quota limits",icon:"data_usage",breadcrumbs:[]}:e.includes("/token-saver")?{title:"Token Saver",description:"Compress prompts and outputs to save tokens",icon:"scissors",breadcrumbs:[]}:e.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",icon:"terminal",breadcrumbs:[]}:e.includes("/proxy-pools")?{title:"Proxy Pools",description:"Manage your proxy pool configurations",icon:"waypoints",breadcrumbs:[]}:e.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:e.includes("/profile")?{title:"Settings",description:"Manage your preferences",icon:"settings",breadcrumbs:[]}:e.includes("/console-log")?{title:"Console Log",description:"Live server console output",icon:"monitor",breadcrumbs:[]}:"/dashboard"===e?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(a),[a]);(0,i.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/auth/status",{cache:"no-store"});if(!t.ok)return;let a=await t.json();e||(u(a?.displayName||a?.samlName||a?.samlEmail||a?.oidcName||a?.oidcEmail||""),v(a?.loginMethod||""))}catch{e||(u(""),v(""))}}(),()=>{e=!0}},[]);let S=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&window.location.assign("/login")}catch(e){console.error("Failed to logout:",e)}};return(0,r.jsxs)("header",{className:"sticky top-0 flex h-20 shrink-0 items-center justify-between gap-3 px-4 lg:px-8 border-b border-border bg-card/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none z-20",children:[(0,r.jsx)("div",{className:"flex items-center gap-3 lg:hidden shrink-0",children:t&&(0,r.jsx)("button",{onClick:e,className:"text-foreground hover:text-primary transition-colors",children:(0,r.jsx)(s.default,{name:"menu",className:""})})}),(0,r.jsx)("div",{className:"flex flex-col min-w-0 flex-1",children:_.length>0?(0,r.jsx)("div",{className:"flex items-center gap-2",children:_.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[t>0&&(0,r.jsx)(s.default,{name:"chevron_right",className:"text-muted-foreground text-base"}),e.href?(0,r.jsx)(l(),{href:e.href,className:"text-muted-foreground hover:text-primary transition-colors",children:e.label}):(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[e.image&&(0,r.jsx)(d.A,{src:e.image,alt:e.label,size:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",fallbackText:e.label.slice(0,2).toUpperCase()}),(0,r.jsx)("h1",{className:"text-base lg:text-2xl font-semibold text-foreground tracking-tight truncate",children:(0,f.Tl)(e.label)})]})]},`${e.label}-${e.href||"current"}`))}):k?(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[C&&(0,r.jsx)(s.default,{name:C,className:"text-primary text-xl lg:text-2xl"}),(0,r.jsx)("h1",{className:"text-base lg:text-2xl font-semibold tracking-tight truncate",children:(0,f.Tl)(k)})]}),N&&(0,r.jsx)("p",{className:"hidden lg:block text-sm text-muted-foreground truncate",children:(0,f.Tl)(N)})]}):null}),(0,r.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[o&&("OIDC"===b||"SAML"===b)&&(0,r.jsxs)(j.m_,{children:[(0,r.jsx)(j.k$,{asChild:!0,children:(0,r.jsxs)(g.E,{variant:"secondary",className:"hidden max-w-55 sm:inline-flex",children:[(0,r.jsx)(s.default,{name:"person",className:"size-3.5 text-primary"}),(0,r.jsx)("span",{className:"truncate",children:o}),(0,r.jsx)("span",{className:"shrink-0 rounded-full bg-primary/10 px-1.5 py-px text-[10px] font-semibold uppercase tracking-wide text-primary",children:b})]})}),(0,r.jsx)(j.ZI,{children:o})]}),(0,r.jsx)(y,{}),(0,r.jsx)(c.default,{onLogout:S})]})]})}function y(){let e=u(e=>e.visible),t=u(e=>e.query),a=u(e=>e.placeholder),i=u(e=>e.setQuery);return e?(0,r.jsxs)("div",{className:"relative w-40 sm:w-55",children:[(0,r.jsx)(s.default,{name:"search",className:"absolute left-2 top-1/2 -translate-y-1/2 text-muted-foreground size-4 pointer-events-none"}),(0,r.jsx)(v.p,{type:"text",value:t,onChange:e=>i(e.target.value),placeholder:a,className:"h-8 pl-7 pr-7"}),t&&(0,r.jsx)(b.$,{type:"button",variant:"ghost",size:"icon-xs",onClick:()=>i(""),className:"absolute right-1 top-1/2 -translate-y-1/2","aria-label":"Clear search",children:(0,r.jsx)(s.default,{name:"close",className:"size-4"})})]}):null}},51660:(e,t,a)=>{a.d(t,{Q2:()=>r.Q2,fg:()=>r.fg,vQ:()=>s,_$:()=>n,MA:()=>r.MA,UY:()=>l,Nu:()=>i,zN:()=>r.zN,B2:()=>o});var r=a(13794);a(80159);let s={name:"10Router Proxy",description:"AI Infrastructure Management",version:"0.1.4"},i={changelogUrl:"/api/changelog"},n=20128,o={storageKey:"theme",defaultTheme:"light"},l={maxLines:500,pollIntervalMs:1e3}},53599:(e,t,a)=>{a.d(t,{default:()=>o});var r=a(29798),s=a(69221),i=a(18055),n=a(3537);function o({isOpen:e,shuttingDown:t,stopped:a,timedOut:l,onClose:d,onConfirm:c}){let u=t&&!a&&!l;return(0,r.jsx)(n.default,{isOpen:e,onClose:d,title:a?"Server Stopped":l?"Still Running":"Close Proxy",size:"sm",closeOnOverlay:!u,footer:a||l?(0,r.jsx)(i.$,{variant:"default",onClick:d,children:"Close"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.$,{variant:"ghost",onClick:d,disabled:u,children:"Cancel"}),(0,r.jsxs)(i.$,{variant:"destructive",onClick:c,disabled:u,children:[u&&(0,r.jsx)(s.A,{className:"animate-spin"}),u?"Stopping…":"Close"]})]}),children:(0,r.jsx)("p",{className:"text-muted-foreground",children:a?"The proxy server has stopped. You can close this tab now.":l?"The server did not stop in time. It may need a manual stop (10router stop).":"Are you sure you want to close the proxy server?"})})}},53784:(e,t,a)=>{a.d(t,{E:()=>l});var r=a(29798);a(15814);var s=a(54366),i=a(5471),n=a(80954);let o=(0,s.F)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function l({className:e,variant:t="default",asChild:a=!1,...s}){let d=a?n.bL:"span";return(0,r.jsx)(d,{"data-slot":"badge","data-variant":t,className:(0,i.cn)(o({variant:t}),e),...s})}},56776:(e,t,a)=>{a.d(t,{default:()=>m});var r=a(29798),s=a(58913),i=a(15814),n=a(88336),o=a(63175),l=a(53599),d=a(18055),c=a(1352),u=a(76120);function m({onLogout:e}){let[t,a]=(0,i.useState)(!1),p=(0,o.c)();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(u.rI,{children:[(0,r.jsxs)(c.m_,{children:[(0,r.jsx)(c.k$,{asChild:!0,children:(0,r.jsx)(u.ty,{asChild:!0,children:(0,r.jsx)(d.$,{variant:"ghost",size:"icon","aria-label":"Settings menu",children:(0,r.jsx)(s.default,{name:"settings",className:"size-5"})})})}),(0,r.jsx)(c.ZI,{children:"Settings"})]}),(0,r.jsxs)(u.SQ,{align:"end",className:"w-60",children:[(0,r.jsx)(u.lp,{children:"System"}),(0,r.jsx)(u.mB,{}),(0,r.jsxs)(u._2,{onSelect:()=>a(!0),children:[(0,r.jsx)(s.default,{name:"history",className:"size-4 text-muted-foreground"}),"Change Log"]}),(0,r.jsx)(u.mB,{}),(0,r.jsxs)(u._2,{variant:"destructive",onSelect:()=>p.open(),children:[(0,r.jsx)(s.default,{name:"power_settings_new",className:"size-4"}),"Shutdown"]}),(0,r.jsxs)(u._2,{variant:"destructive",onSelect:()=>e(),children:[(0,r.jsx)(s.default,{name:"logout",className:"size-4"}),"Logout"]})]})]}),(0,r.jsx)(n.default,{isOpen:t,onClose:()=>a(!1)}),(0,r.jsx)(l.default,{isOpen:p.confirmOpen||p.stopped||p.timedOut,onClose:p.reset,onConfirm:p.confirm,shuttingDown:p.shuttingDown,stopped:p.stopped,timedOut:p.timedOut})]})}},58913:(e,t,a)=>{a.d(t,{default:()=>l});var r=a(29798);a(15814);var s=a(36256);let i={add:"Plus",account_circle:"CircleUser",account_tree:"GitFork",api:"Plug",apps:"LayoutGrid",arrow_back:"ArrowLeft",arrow_downward:"ArrowDown",arrow_forward:"ArrowRight",arrow_upward:"ArrowUp",attach_file:"Paperclip",bar_chart:"BarChart3",block:"Ban",bolt:"Zap",business:"Briefcase",cancel:"X",cast:"Cast",chat:"MessageSquare",check:"Check",check_circle:"CheckCircle2",checklist:"ClipboardCheck",chevron_down:"ChevronDown",chevron_left:"ChevronLeft",chevron_right:"ChevronRight",chevron_up:"ChevronUp",close:"X",cloud:"Cloud",cloud_off:"CloudOff",cloud_sync:"CloudSync",cloud_upload:"CloudUpload",code:"Code2",computer:"Monitor",content_copy:"Copy",cookie:"Cookie",dashboard:"LayoutDashboard",data_array:"Table",data_object:"Braces",data_usage:"BarChart3",dark_mode:"Moon",delete:"Trash2",devices:"MonitorSmartphone",dns:"Network",download:"Download",edit:"Pencil",error:"CircleAlert",expand_more:"ChevronDown",extension:"Blocks",file_upload:"UploadCloud",filter_alt_off:"SlidersHorizontal",folder_open:"FolderOpen",gavel:"Scale",graphic_eq:"AudioWaveform",grid_view:"Grid2X2",group:"Users",help:"CircleHelp",history:"History",hourglass_top:"Timer",hub:"Router",image:"Image",image_search:"ScanSearch",info:"Info",input:"FileInput",key:"Key",keyboard_arrow_down:"ArrowDown",keyboard_arrow_up:"ArrowUp",lan:"Layers",language:"Languages",layers:"Layers",legend_toggle:"ListTree",light_mode:"Sun",link:"Link",link_off:"Link2Off",lock:"Lock",lock_open:"LockOpen",logout:"LogOut",menu:"Menu",menu_book:"BookOpen",mic:"Mic",monitoring:"Activity",monitor:"Monitor",movie:"Clapperboard",music_note:"Music",neurology:"Brain",open_in_new:"ExternalLink",output:"FileOutput",pause_circle:"CirclePause",person:"User",play_arrow:"Play",play_circle:"CirclePlay",playlist_add:"ListPlus",power:"Power",power_off:"PowerOff",power_settings_new:"Power",progress_activity:"Loader2",psychology:"BrainCircuit",public:"Earth",qr_code_scanner:"ScanQrCode",record_voice_over:"Mic",refresh:"RefreshCw",restart_alt:"RotateCcw",restore:"RotateCcw",rocket_launch:"Rocket",route:"Route",save:"Save",savings:"PiggyBank",scatter_plot:"ScatterChart",schedule:"Clock",science:"FlaskConical",search:"Search",search_off:"SearchX",security:"ShieldCheck",send:"Send",settings:"Settings",shield:"Shield",shield_lock:"ShieldCheck",shield_with_heart:"HeartPulse",smart_toy:"Bot",star:"Star",stop:"Square",stop_circle:"CircleStop",sync:"RefreshCw",sync_alt:"RefreshCw",terminal:"Terminal",toggle_off:"ToggleLeft",toggle_on:"ToggleRight",translate:"Languages",travel_explore:"Music4",upload:"Upload",upload_file:"UploadCloud",verified:"BadgeCheck",verified_user:"ShieldCheck",visibility:"Eye",visibility_off:"EyeOff",vpn_key:"KeyRound",vpn_lock:"Lock",warning:"TriangleAlert",wifi:"Wifi",wifi_off:"WifiOff",wifi_tethering:"Wifi"};function n(e){if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e){let t=e.trim().match(/^(\d+(?:\.\d+)?)px$/);if(t)return Number(t[1])}return null}function o({name:e="",className:t,style:a,...l}){let d=s[e]??s[i[e]||String(e).split(/[^a-zA-Z0-9]+/).filter(Boolean).map(e=>e[0].toUpperCase()+e.slice(1)).join("")]??s.Circle,c=function(e=""){let t=String(e).match(/\[(\d+(?:\.\d+)?)px\]/);return t?Number(t[1]):({"text-xs":12,"text-sm":14,"text-base":16,"text-lg":18,"text-xl":20,"text-2xl":24,"text-3xl":30,"text-4xl":36})[String(e).match(/\btext-(xs|sm|base|lg|xl|2xl|3xl|4xl)\b/)?.[0]]||null}(t)??(a&&"object"==typeof a?n(a.width)??n(a.height)??n(a.fontSize):null),u=c?{width:c,height:c}:void 0,m=String(t??"").replace(/\bmaterial-symbols-outlined\b/g,"").replace(/\bfill-1\b/g,"").replace(/\s+/g," ").trim();return(0,r.jsx)(d,{className:m,style:u?{...u,...a}:a,"aria-hidden":"true",...l})}function l({name:e,className:t,style:a}){return(0,r.jsx)(o,{name:e,className:t,style:a})}},63175:(e,t,a)=>{a.d(t,{c:()=>s});var r=a(15814);function s(){let[e,t]=(0,r.useState)(!1),[a,s]=(0,r.useState)(!1),[i,n]=(0,r.useState)(!1),[o,l]=(0,r.useState)(!1),d=(0,r.useRef)([]);(0,r.useEffect)(()=>()=>d.current.forEach(clearTimeout),[]);let c=(0,r.useCallback)(async()=>{let e=Date.now()+15e3;for(;Date.now()<e;){try{if(!(await fetch("/api/health",{cache:"no-store"})).ok)break}catch{break}await new Promise(e=>{let t=setTimeout(e,1e3);d.current.push(t)})}Date.now()>=e-1e3?l(!0):n(!0)},[]),u=(0,r.useCallback)(async()=>{s(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch{}t(!1),c()},[c]),m=(0,r.useCallback)(()=>{l(!1),n(!1),t(!0)},[]),p=(0,r.useCallback)(()=>{t(!1),s(!1),n(!1),l(!1)},[]);return(0,r.useEffect)(()=>{(i||o)&&s(!1)},[i,o]),{confirmOpen:e,shuttingDown:a,stopped:i,timedOut:o,open:m,confirm:u,reset:p}}},63729:(e,t,a)=>{a.d(t,{HY:()=>n,IM:()=>m,Kw:()=>o,uM:()=>u});let r={antigravity:"gemini","perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","ollama-search":"ollama","opencode-zen":"opencode"},s=new Set;function i(e){return e&&"string"==typeof e?e.trim().toLowerCase():""}function n(e){let t=function(e){let t=i(e);if(!t||s.has(t))return"";let a=r[t]||t;return s.has(a)?"":a}(e);return t?`/providers/${t}.png`:null}function o(e){let t=i(e);t&&s.add(t);let a=r[t];a&&s.add(a)}let l=new Set(["www","api","apis","rest","rpc","gateway","proxy","llm","chat","v1","v2","ai","app","dev","cloud","com","net","org","io","co","us","eu","cn"]),d={generativelanguage:"gemini",googleapis:"gemini",x:"xai"},c=new Set(["agentrouter","alicode","alicode-intl","alims-intl","alitp-intl","amp","anthropic","api-airforce","assemblyai","aws-polly","azure","baidu","bazaarlink","black-forest-labs","blackbox","bluesminds","brave-search","byteplus","cartesia","cerebras","chutes","claude","clinepass","codebuddy-cn","codebuddy-intl","codex","cohere","comfyui","commandcode","continue","coqui","cursor","deepgram","deepseek","deepseek-tui","devin-cli","droid","edge-tts","elevenlabs","exa","fal-ai","featherless","firecrawl","fireworks","fish-audio","gemini","github","gitlab","glm","glm-cn","google-pse","google-tts","grok-cli","grok-web","groq","hermes","huggingface","hyperbolic","iflow","inworld","jcode","jina-ai","jina-reader","kilo-gateway","kilocode","kimchi","linkup","llm7","local-device","longcat","mimo-free","minimax","minimax-cn","mistral","mmf","morph","nanobanana","nebius","novita","nvidia","ollama","ollama-local","openai","openclaw","opencode","opencode-go","opendesign","openrouter","perplexity","perplexity-agent","perplexity-web","playht","poolside","qoder","qwen","recraft","reka","roo","runwayml","sambanova","sdwebui","searchapi","searxng","selfhosted-embedding","selfhosted-stt","selfhosted-tts","serper","siliconflow","stability-ai","tavily","tencent","together","tokenrouter","topaz","tortoise","trae","venice","vercel","vercel-ai-gateway","volcengine-ark","voyage-ai","windsurf","workbuddy","xai","xiaomi-mimo","xiaomi-tokenplan","xquik","youcom","zed"]);function u(e){let t="";try{t=new URL(String(e||"")).hostname.toLowerCase()}catch{return""}if(!t||"localhost"===t||t.startsWith("127.")||t.includes(":")||t.startsWith("[")||/^\d+\.\d+\.\d+\.\d+$/.test(t))return"";let a=t.split(".").filter(Boolean).find(e=>!l.has(e)&&!/^\d+$/.test(e));if(!a)return"";let s=d[a]||r[a]||a;return c.has(s)?s:""}function m(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return t.length?1===t.length?t[0].slice(0,2).toUpperCase():`${t[0][0]}${t[t.length-1][0]}`.toUpperCase():""}},72778:(e,t,a)=>{a.d(t,{default:()=>s});var r=a(29798);function s({children:e}){return(0,r.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-background transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-foreground",children:[(0,r.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,r.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,r.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:e})]})}},76120:(e,t,a)=>{a.d(t,{SQ:()=>l,_2:()=>d,lp:()=>c,mB:()=>u,rI:()=>n,ty:()=>o});var r=a(29798);a(15814);var s=a(5471),i=a(47151);function n({...e}){return(0,r.jsx)(i.bL,{"data-slot":"dropdown-menu",...e})}function o({...e}){return(0,r.jsx)(i.l9,{"data-slot":"dropdown-menu-trigger",...e})}function l({className:e,align:t="start",sideOffset:a=4,...n}){return(0,r.jsx)(i.ZL,{children:(0,r.jsx)(i.UC,{"data-slot":"dropdown-menu-content",sideOffset:a,align:t,className:(0,s.cn)("z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...n})})}function d({className:e,inset:t,variant:a="default",...n}){return(0,r.jsx)(i.q7,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":a,className:(0,s.cn)("group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",e),...n})}function c({className:e,inset:t,...a}){return(0,r.jsx)(i.JU,{"data-slot":"dropdown-menu-label","data-inset":t,className:(0,s.cn)("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:pl-8",e),...a})}function u({className:e,...t}){return(0,r.jsx)(i.wv,{"data-slot":"dropdown-menu-separator",className:(0,s.cn)("-mx-1 my-1 h-px bg-border",e),...t})}},88336:(e,t,a)=>{a.d(t,{default:()=>d});var r=a(29798),s=a(58913),i=a(15814),n=a(62392),o=a(51660),l=a(49787);function d({isOpen:e,onClose:t}){let[a,c]=(0,i.useState)(""),[u,m]=(0,i.useState)(!1),[p,x]=(0,i.useState)(!1),[h,f]=(0,i.useState)("");(0,i.useEffect)(()=>{e&&!a&&(x(!0),f(""),fetch(o.Nu.changelogUrl).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.text()}).then(e=>c(e)).catch(e=>f(e.message||"Failed to load")).finally(()=>x(!1)))},[e,a]);let g=a?a.split(/(?=^## )/m).filter(e=>e.startsWith("## ")):[],b=u?g:g.slice(0,3),v=g.length-b.length,j=b.length?n.xI.parse(b.join("\n")):"";return(0,r.jsx)(l.lG,{open:!!e,onOpenChange:e=>!e&&t?.(),children:(0,r.jsxs)(l.Cf,{className:"sm:max-w-3xl",children:[(0,r.jsx)(l.c7,{children:(0,r.jsx)(l.L3,{children:"Change Log"})}),(0,r.jsxs)("div",{className:"max-h-[75vh] overflow-y-auto p-6",children:[p&&(0,r.jsxs)("div",{className:"flex items-center justify-center py-10 text-muted-foreground",children:[(0,r.jsx)(s.default,{name:"progress_activity",className:"animate-spin mr-2"}),"Loading..."]}),h&&(0,r.jsxs)("div",{className:"text-red-500 py-4",children:["Failed to load changelog: ",h]}),!p&&!h&&j&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"changelog-body text-foreground",dangerouslySetInnerHTML:{__html:j}}),v>0&&(0,r.jsxs)("button",{onClick:()=>m(!0),className:"mt-4 w-full py-2 rounded-lg text-sm font-medium text-foreground bg-black/5 dark:bg-white/5 hover:bg-black/10 dark:hover:bg-white/10 transition-colors",children:["Show ",v," more"]})]})]})]})})}n.xI.setOptions({gfm:!0,breaks:!0})},90046:(e,t,a)=>{a.d(t,{d:()=>r});let r={claude:{id:"claude",name:"Claude Code",image:"/providers/claude.png",color:"#D97757",description:"Anthropic Claude Code CLI",configType:"env",envVars:{baseUrl:"ANTHROPIC_BASE_URL",model:"ANTHROPIC_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",fableModel:"ANTHROPIC_DEFAULT_FABLE_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"},modelAliases:["default","sonnet","opus","fable","haiku","opusplan"],settingsFile:"~/.claude/settings.json",defaultModels:[{id:"fable",name:"Claude Fable",alias:"fable",envKey:"ANTHROPIC_DEFAULT_FABLE_MODEL",defaultValue:"cc/claude-fable-5"},{id:"opus",name:"Claude Opus",alias:"opus",envKey:"ANTHROPIC_DEFAULT_OPUS_MODEL",defaultValue:"cc/claude-opus-5"},{id:"sonnet",name:"Claude Sonnet",alias:"sonnet",envKey:"ANTHROPIC_DEFAULT_SONNET_MODEL",defaultValue:"cc/claude-sonnet-5"},{id:"haiku",name:"Claude Haiku",alias:"haiku",envKey:"ANTHROPIC_DEFAULT_HAIKU_MODEL",defaultValue:"cc/claude-haiku-4-5-20251001"}]},codex:{id:"codex",name:"OpenAI Codex CLI / App",image:"/providers/codex.png",color:"#10A37F",description:"OpenAI Codex CLI",configType:"custom"},opencode:{id:"opencode",name:"OpenCode",image:"/providers/opencode.png",color:"#E87040",description:"OpenCode AI Terminal Assistant",configType:"custom"},cowork:{id:"cowork",name:"Claude Cowork",image:"/providers/claude.png",color:"#D97757",description:"Claude Desktop Cowork (third-party inference)",configType:"custom"},dsh:{id:"dsh",name:"DSH - DeepSeek Harness",image:"/providers/deepseek.png",color:"#4D6BFE",description:"DeepSeek Harness (dsh web) provider",configType:"custom"},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor AI Code Editor",configType:"guide",requiresExternalUrl:!0,notes:[{type:"warning",text:"Requires Cursor Pro account to use this feature."},{type:"cloudCheck",text:"Cursor routes requests through its own server, so local endpoint is not supported. Please enable Tunnel or Cloud Endpoint in Settings."}],guideSteps:[{step:1,title:"Open Settings",desc:"Go to Settings → Models"},{step:2,title:"Enable OpenAI API",desc:'Enable "OpenAI API key" option'},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Add Custom Model",desc:'Click "View All Model" → "Add Custom Model"'},{step:6,title:"Select Model",type:"modelSelector"}]}}},99118:(e,t,a)=>{a.d(t,{E:()=>i});var r=a(29798),s=a(5471);function i({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"skeleton",className:(0,s.cn)("animate-pulse rounded-md bg-muted",e),...t})}}}]);