9router 0.5.86 → 0.5.91

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 (1058) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +15 -11
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +23 -23
  5. package/app/.next-cli-build/react-loadable-manifest.json +67 -0
  6. package/app/.next-cli-build/routes-manifest.json +26 -0
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +5 -5
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  76. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  77. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  79. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  85. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  88. package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
  89. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
  90. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  91. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  92. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  93. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +2 -2
  109. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +27 -12
  115. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  117. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  121. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +2 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js +4 -0
  127. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -0
  128. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -0
  129. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  132. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  136. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -2
  138. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -2
  140. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  142. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +2 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  150. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +24 -9
  152. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -2
  154. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  156. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  160. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  162. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +2 -2
  166. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  168. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
  170. package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  172. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  176. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  190. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  198. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  244. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  254. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js +1 -1
  258. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +42 -0
  260. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -0
  261. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route_client-reference-manifest.js +1 -0
  262. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -0
  263. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -0
  264. package/app/.next-cli-build/server/app/api/oauth/zed/import/route_client-reference-manifest.js +1 -0
  265. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  274. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  276. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  298. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  300. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  304. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  306. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  308. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  310. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  312. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  314. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  316. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  318. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  320. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  328. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  330. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  332. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  334. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  338. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  340. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  344. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  352. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  354. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  358. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -0
  360. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -0
  361. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route_client-reference-manifest.js +1 -0
  362. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  363. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  369. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  381. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  387. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  393. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  399. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  401. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  405. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  409. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  415. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  417. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  421. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  423. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  427. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  429. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  430. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  431. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  433. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  435. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  437. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  439. package/app/.next-cli-build/server/app/callback.html +1 -1
  440. package/app/.next-cli-build/server/app/callback.rsc +5 -5
  441. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
  442. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  443. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
  444. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  445. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
  446. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
  447. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  448. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  449. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  450. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
  451. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +7 -7
  452. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  453. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  454. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  455. package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
  456. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +7 -7
  457. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  458. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  459. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  460. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
  461. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
  462. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  463. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  464. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  465. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
  466. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +7 -7
  467. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
  468. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  469. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  470. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
  471. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +7 -7
  472. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
  473. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  474. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  475. package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
  476. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +7 -7
  477. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
  478. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  479. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  480. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
  481. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
  482. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  483. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  484. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  485. package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
  486. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +7 -7
  487. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  488. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  489. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  490. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
  491. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +7 -7
  492. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
  493. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  494. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  495. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +7 -7
  496. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +7 -7
  497. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +7 -7
  498. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  499. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  500. package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
  501. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
  502. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
  503. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  504. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  505. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  506. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  507. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  508. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
  509. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  510. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  511. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +5 -5
  512. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  513. package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
  514. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +7 -7
  515. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
  516. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  517. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  518. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
  519. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
  520. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
  521. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  522. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  523. package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
  524. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
  525. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  526. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  527. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  528. package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
  529. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +7 -7
  530. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  531. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  532. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  533. package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
  534. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
  535. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
  536. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  537. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  538. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  539. package/app/.next-cli-build/server/app/index.html +1 -1
  540. package/app/.next-cli-build/server/app/index.rsc +5 -5
  541. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  542. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
  543. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  544. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  545. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  546. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  547. package/app/.next-cli-build/server/app/landing.html +1 -1
  548. package/app/.next-cli-build/server/app/landing.rsc +5 -5
  549. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  550. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  551. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
  552. package/app/.next-cli-build/server/app/login/page.js +1 -1
  553. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  554. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  555. package/app/.next-cli-build/server/app/login.html +1 -1
  556. package/app/.next-cli-build/server/app/login.rsc +6 -6
  557. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
  558. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  559. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  560. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  561. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  562. package/app/.next-cli-build/server/app/page.js +1 -1
  563. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  564. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  565. package/app/.next-cli-build/server/app-paths-manifest.json +15 -11
  566. package/app/.next-cli-build/server/chunks/1220.js +2 -2
  567. package/app/.next-cli-build/server/chunks/1306.js +1 -0
  568. package/app/.next-cli-build/server/chunks/1679.js +1 -1
  569. package/app/.next-cli-build/server/chunks/1731.js +1 -0
  570. package/app/.next-cli-build/server/chunks/2220.js +1 -1
  571. package/app/.next-cli-build/server/chunks/24.js +1 -1
  572. package/app/.next-cli-build/server/chunks/2416.js +2 -2
  573. package/app/.next-cli-build/server/chunks/{9528.js → 2750.js} +2 -3
  574. package/app/.next-cli-build/server/chunks/2760.js +1 -0
  575. package/app/.next-cli-build/server/chunks/3449.js +1 -0
  576. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  577. package/app/.next-cli-build/server/chunks/3966.js +1 -1
  578. package/app/.next-cli-build/server/chunks/4037.js +1 -1
  579. package/app/.next-cli-build/server/chunks/4049.js +1 -1
  580. package/app/.next-cli-build/server/chunks/412.js +2 -2
  581. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  582. package/app/.next-cli-build/server/chunks/4190.js +1 -0
  583. package/app/.next-cli-build/server/chunks/436.js +1 -1
  584. package/app/.next-cli-build/server/chunks/4572.js +1 -1
  585. package/app/.next-cli-build/server/chunks/4884.js +3 -3
  586. package/app/.next-cli-build/server/chunks/{2778.js → 5299.js} +27 -16
  587. package/app/.next-cli-build/server/chunks/5315.js +1 -0
  588. package/app/.next-cli-build/server/chunks/5330.js +4 -4
  589. package/app/.next-cli-build/server/chunks/5524.js +1 -1
  590. package/app/.next-cli-build/server/chunks/5615.js +1 -1
  591. package/app/.next-cli-build/server/chunks/5670.js +1 -1
  592. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  593. package/app/.next-cli-build/server/chunks/615.js +1 -1
  594. package/app/.next-cli-build/server/chunks/6249.js +2 -2
  595. package/app/.next-cli-build/server/chunks/6457.js +1 -1
  596. package/app/.next-cli-build/server/chunks/6708.js +1 -0
  597. package/app/.next-cli-build/server/chunks/6763.js +1 -1
  598. package/app/.next-cli-build/server/chunks/6877.js +1 -1
  599. package/app/.next-cli-build/server/chunks/6921.js +65 -0
  600. package/app/.next-cli-build/server/chunks/6922.js +1 -1
  601. package/app/.next-cli-build/server/chunks/700.js +1 -0
  602. package/app/.next-cli-build/server/chunks/7011.js +1 -1
  603. package/app/.next-cli-build/server/chunks/7066.js +1 -0
  604. package/app/.next-cli-build/server/chunks/7121.js +1 -0
  605. package/app/.next-cli-build/server/chunks/7211.js +1 -1
  606. package/app/.next-cli-build/server/chunks/7220.js +1 -1
  607. package/app/.next-cli-build/server/chunks/7247.js +1 -1
  608. package/app/.next-cli-build/server/chunks/7716.js +1 -1
  609. package/app/.next-cli-build/server/chunks/7868.js +1 -0
  610. package/app/.next-cli-build/server/chunks/7911.js +1 -0
  611. package/app/.next-cli-build/server/chunks/7995.js +5 -5
  612. package/app/.next-cli-build/server/chunks/8145.js +1 -1
  613. package/app/.next-cli-build/server/chunks/827.js +1 -1
  614. package/app/.next-cli-build/server/chunks/8363.js +1 -1
  615. package/app/.next-cli-build/server/chunks/8402.js +1 -1
  616. package/app/.next-cli-build/server/chunks/8499.js +3 -3
  617. package/app/.next-cli-build/server/chunks/8635.js +1 -1
  618. package/app/.next-cli-build/server/chunks/869.js +1 -1
  619. package/app/.next-cli-build/server/chunks/8895.js +8 -8
  620. package/app/.next-cli-build/server/chunks/8920.js +1 -1
  621. package/app/.next-cli-build/server/chunks/9055.js +2 -0
  622. package/app/.next-cli-build/server/chunks/9128.js +1 -1
  623. package/app/.next-cli-build/server/chunks/9866.js +1 -0
  624. package/app/.next-cli-build/server/instrumentation.js +1 -1
  625. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  626. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  627. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  628. package/app/.next-cli-build/server/middleware.js +2 -2
  629. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  630. package/app/.next-cli-build/server/pages/404.html +1 -1
  631. package/app/.next-cli-build/server/pages/500.html +1 -1
  632. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  633. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  634. package/app/.next-cli-build/static/JwK09RQ_bBz2fzOX7dkNE/_buildManifest.js +1 -0
  635. package/app/.next-cli-build/static/chunks/124.c092990b4bdb9713.js +1 -0
  636. package/app/.next-cli-build/static/chunks/1321-a87b4fa8cd302a0f.js +1 -0
  637. package/app/.next-cli-build/static/chunks/1649-772a31b7f3a65900.js +1 -0
  638. package/app/.next-cli-build/static/chunks/2435.8a5a02e626c780d0.js +1 -0
  639. package/app/.next-cli-build/static/chunks/3842-da1878db3339b090.js +1 -0
  640. package/app/.next-cli-build/static/chunks/5462.c82c64c26a864ec0.js +1 -0
  641. package/app/.next-cli-build/static/chunks/5497-b868b97201a1d557.js +7 -0
  642. package/app/.next-cli-build/static/chunks/5815-5ae3ffefacfeacef.js +1 -0
  643. package/app/.next-cli-build/static/chunks/6808-d08581bd3ec10128.js +1 -0
  644. package/app/.next-cli-build/static/chunks/{6447-467b22b596554ff1.js → 761-cdfc24b04958e1db.js} +32 -21
  645. package/app/.next-cli-build/static/chunks/763-82556b77902c26fd.js +1 -0
  646. package/app/.next-cli-build/static/chunks/8569.df0d706176dc1f57.js +1 -0
  647. package/app/.next-cli-build/static/chunks/8720-25e3ea26eb583e94.js +3 -0
  648. package/app/.next-cli-build/static/chunks/9233.4e4be172e7d96210.js +65 -0
  649. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-566c562aea0d33f7.js → page-f321de0d63774474.js} +1 -1
  650. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-000b3ff64c79b3a1.js → page-9fe240988c674585.js} +1 -1
  651. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-bbc112aa323ffe08.js → page-24afa348ae02fb20.js} +1 -1
  652. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-77b94f5796e62459.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-18cf4cae137f74ba.js → page-3e870d07c6560624.js} +1 -1
  654. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-89b4e7c84f9ff4c9.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-ba8aa23f1be66687.js → page-109d99636a7cb2c3.js} +1 -1
  656. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-ee738bbb467dbbb8.js → page-a48c547537b89bde.js} +1 -1
  657. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-dad97bb34ee4a4d6.js → page-0d64ab89d11c4405.js} +1 -1
  658. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-4d19fb076460cdeb.js → page-ecb40c2909e044f3.js} +1 -1
  659. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-84eb67ca92184841.js → page-2f96a614dc53d80f.js} +1 -1
  660. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-34bce3aa01f949d8.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-a896c8f331e171df.js → page-730a5df0d3165521.js} +1 -1
  662. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-060e4856389ef940.js +27 -0
  663. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-2ad323fe12e6b781.js → page-6104935fa34af5d6.js} +1 -1
  664. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-9fa5d037c33d7a6d.js → page-03f8be08007256fb.js} +1 -1
  665. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-9854a7c8daf32685.js → page-1a2bc6aa2b324191.js} +1 -1
  666. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-283f973389ee8f03.js → page-aba0b9209187b108.js} +1 -1
  667. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-1faac22f38ea330b.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-95618951c98361e4.js → page-79497ae20fc75323.js} +1 -1
  669. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-7eaafbef54a3c461.js → page-f50251d9b41e5c19.js} +1 -1
  670. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-c38caf71440b36c6.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-888c58ee93724e20.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-e6c7ea2e5290e4e1.js → layout-2de4c147da76ae92.js} +1 -1
  673. package/app/.next-cli-build/static/chunks/app/_global-error/page-6680a0968873a9a5.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-6680a0968873a9a5.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-6680a0968873a9a5.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-6680a0968873a9a5.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-6680a0968873a9a5.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-6680a0968873a9a5.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-6680a0968873a9a5.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-6680a0968873a9a5.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-6680a0968873a9a5.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-6680a0968873a9a5.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-6680a0968873a9a5.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-6680a0968873a9a5.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-6680a0968873a9a5.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-6680a0968873a9a5.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-6680a0968873a9a5.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-6680a0968873a9a5.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-6680a0968873a9a5.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codewhale-settings/route-6680a0968873a9a5.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-6680a0968873a9a5.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-6680a0968873a9a5.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-6680a0968873a9a5.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-6680a0968873a9a5.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-6680a0968873a9a5.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-6680a0968873a9a5.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/cli-tools/crush-settings/route-6680a0968873a9a5.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-6680a0968873a9a5.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-6680a0968873a9a5.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-6680a0968873a9a5.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/cli-tools/forge-settings/route-6680a0968873a9a5.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-6680a0968873a9a5.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-6680a0968873a9a5.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-6680a0968873a9a5.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-6680a0968873a9a5.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-6680a0968873a9a5.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-6680a0968873a9a5.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-6680a0968873a9a5.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-6680a0968873a9a5.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/cli-tools/smelt-settings/route-6680a0968873a9a5.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-6680a0968873a9a5.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/combos/presets/route-6680a0968873a9a5.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/combos/route-6680a0968873a9a5.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-6680a0968873a9a5.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-6680a0968873a9a5.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-6680a0968873a9a5.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-6680a0968873a9a5.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-6680a0968873a9a5.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-6680a0968873a9a5.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/health/route-6680a0968873a9a5.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/init/route-6680a0968873a9a5.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-6680a0968873a9a5.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/keys/route-6680a0968873a9a5.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/locale/route-6680a0968873a9a5.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-6680a0968873a9a5.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-6680a0968873a9a5.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-6680a0968873a9a5.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-6680a0968873a9a5.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-6680a0968873a9a5.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-6680a0968873a9a5.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-6680a0968873a9a5.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-6680a0968873a9a5.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-6680a0968873a9a5.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-6680a0968873a9a5.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-6680a0968873a9a5.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-6680a0968873a9a5.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/models/route-6680a0968873a9a5.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/models/test/route-6680a0968873a9a5.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-6680a0968873a9a5.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-6680a0968873a9a5.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-6680a0968873a9a5.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-6680a0968873a9a5.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-6680a0968873a9a5.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-6680a0968873a9a5.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-6680a0968873a9a5.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-6680a0968873a9a5.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-6680a0968873a9a5.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-6680a0968873a9a5.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-6680a0968873a9a5.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-6680a0968873a9a5.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-6680a0968873a9a5.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-6680a0968873a9a5.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-6680a0968873a9a5.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-6680a0968873a9a5.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/start/route-6680a0968873a9a5.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/status/route-6680a0968873a9a5.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-6680a0968873a9a5.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-6680a0968873a9a5.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/pricing/route-6680a0968873a9a5.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-6680a0968873a9a5.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-6680a0968873a9a5.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-6680a0968873a9a5.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-6680a0968873a9a5.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-6680a0968873a9a5.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-6680a0968873a9a5.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-6680a0968873a9a5.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-6680a0968873a9a5.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-6680a0968873a9a5.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/providers/route-6680a0968873a9a5.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-6680a0968873a9a5.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-6680a0968873a9a5.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-6680a0968873a9a5.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-6680a0968873a9a5.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-6680a0968873a9a5.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-6680a0968873a9a5.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-6680a0968873a9a5.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-6680a0968873a9a5.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-6680a0968873a9a5.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-6680a0968873a9a5.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-6680a0968873a9a5.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-6680a0968873a9a5.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-6680a0968873a9a5.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-6680a0968873a9a5.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-6680a0968873a9a5.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-6680a0968873a9a5.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-6680a0968873a9a5.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-6680a0968873a9a5.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-6680a0968873a9a5.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-6680a0968873a9a5.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/settings/route-6680a0968873a9a5.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-6680a0968873a9a5.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/tags/route-6680a0968873a9a5.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-6680a0968873a9a5.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-6680a0968873a9a5.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-6680a0968873a9a5.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-6680a0968873a9a5.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-6680a0968873a9a5.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-6680a0968873a9a5.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-6680a0968873a9a5.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-6680a0968873a9a5.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-6680a0968873a9a5.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-6680a0968873a9a5.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-6680a0968873a9a5.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-6680a0968873a9a5.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-6680a0968873a9a5.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-6680a0968873a9a5.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-6680a0968873a9a5.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-6680a0968873a9a5.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-6680a0968873a9a5.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-6680a0968873a9a5.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-6680a0968873a9a5.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-6680a0968873a9a5.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-6680a0968873a9a5.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-6680a0968873a9a5.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-6680a0968873a9a5.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-6680a0968873a9a5.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-6680a0968873a9a5.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-6680a0968873a9a5.js +1 -0
  819. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-6680a0968873a9a5.js +1 -0
  820. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-6680a0968873a9a5.js +1 -0
  821. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-6680a0968873a9a5.js +1 -0
  822. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-6680a0968873a9a5.js +1 -0
  823. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-6680a0968873a9a5.js +1 -0
  824. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-6680a0968873a9a5.js +1 -0
  825. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-6680a0968873a9a5.js +1 -0
  826. package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-6680a0968873a9a5.js +1 -0
  827. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-6680a0968873a9a5.js +1 -0
  828. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-6680a0968873a9a5.js +1 -0
  829. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-6680a0968873a9a5.js +1 -0
  830. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-6680a0968873a9a5.js +1 -0
  831. package/app/.next-cli-build/static/chunks/app/api/v1/route-6680a0968873a9a5.js +1 -0
  832. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-6680a0968873a9a5.js +1 -0
  833. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-6680a0968873a9a5.js +1 -0
  834. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-6680a0968873a9a5.js +1 -0
  835. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-6680a0968873a9a5.js +1 -0
  836. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-6680a0968873a9a5.js +1 -0
  837. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-6680a0968873a9a5.js +1 -0
  838. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-6680a0968873a9a5.js +1 -0
  839. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-6680a0968873a9a5.js +1 -0
  840. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-6680a0968873a9a5.js +1 -0
  841. package/app/.next-cli-build/static/chunks/app/api/version/route-6680a0968873a9a5.js +1 -0
  842. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-6680a0968873a9a5.js +1 -0
  843. package/app/.next-cli-build/static/chunks/app/api/version/update/route-6680a0968873a9a5.js +1 -0
  844. package/app/.next-cli-build/static/chunks/app/login/{page-082c8d1e2c2c9166.js → page-1b3a1d4b1a5f1f21.js} +1 -1
  845. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-6680a0968873a9a5.js +1 -0
  846. package/app/.next-cli-build/static/chunks/app/page-6680a0968873a9a5.js +1 -0
  847. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-6680a0968873a9a5.js +1 -0
  848. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-6680a0968873a9a5.js +1 -0
  849. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-6680a0968873a9a5.js +1 -0
  850. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-6680a0968873a9a5.js +1 -0
  851. package/app/.next-cli-build/static/chunks/webpack-69d91e61421e854e.js +1 -0
  852. package/app/.next-cli-build/static/css/8f3253c444713bee.css +1 -0
  853. package/app/cli/.build-home/.9router/db/data.sqlite +0 -0
  854. package/app/package.json +1 -1
  855. package/app/public/providers/agnes.png +0 -0
  856. package/app/public/providers/atria.png +0 -0
  857. package/app/public/providers/bai.png +0 -0
  858. package/app/public/providers/dahl.png +0 -0
  859. package/app/public/providers/hermes.png +0 -0
  860. package/app/public/providers/tokenharbor.png +0 -0
  861. package/hooks/trayRuntime.js +152 -7
  862. package/package.json +4 -2
  863. package/src/cli/tray/tray.js +8 -5
  864. package/src/cli/utils/modelSelector.js +73 -10
  865. package/app/.next-cli-build/server/chunks/3933.js +0 -65
  866. package/app/.next-cli-build/server/chunks/4895.js +0 -1
  867. package/app/.next-cli-build/server/chunks/6022.js +0 -1
  868. package/app/.next-cli-build/server/chunks/7524.js +0 -1
  869. package/app/.next-cli-build/server/chunks/8325.js +0 -1
  870. package/app/.next-cli-build/server/chunks/9820.js +0 -1
  871. package/app/.next-cli-build/static/chunks/1321-6ced1223fc1b20f6.js +0 -1
  872. package/app/.next-cli-build/static/chunks/2997-c07f947b000ff8a3.js +0 -65
  873. package/app/.next-cli-build/static/chunks/5497-93c230f5ad0162d6.js +0 -7
  874. package/app/.next-cli-build/static/chunks/8720-d7bd322d82b846f1.js +0 -3
  875. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-bcd6787f0d0c9440.js +0 -1
  876. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-7ae24599df15b02e.js +0 -1
  877. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-2889490cee9cf923.js +0 -1
  878. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-0e33c459c11d3c62.js +0 -27
  879. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-57a854f9174e04de.js +0 -1
  880. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-4f6b2ed5b226e013.js +0 -1
  881. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-808c4b6f8a1b2a9b.js +0 -1
  882. package/app/.next-cli-build/static/chunks/app/_global-error/page-8d5a053022fc1e16.js +0 -1
  883. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-8d5a053022fc1e16.js +0 -1
  884. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-8d5a053022fc1e16.js +0 -1
  885. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-8d5a053022fc1e16.js +0 -1
  886. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-8d5a053022fc1e16.js +0 -1
  887. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-8d5a053022fc1e16.js +0 -1
  888. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-8d5a053022fc1e16.js +0 -1
  889. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-8d5a053022fc1e16.js +0 -1
  890. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-8d5a053022fc1e16.js +0 -1
  891. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-8d5a053022fc1e16.js +0 -1
  892. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-8d5a053022fc1e16.js +0 -1
  893. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-8d5a053022fc1e16.js +0 -1
  894. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-8d5a053022fc1e16.js +0 -1
  895. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-8d5a053022fc1e16.js +0 -1
  896. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-8d5a053022fc1e16.js +0 -1
  897. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-8d5a053022fc1e16.js +0 -1
  898. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-8d5a053022fc1e16.js +0 -1
  899. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codewhale-settings/route-8d5a053022fc1e16.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-8d5a053022fc1e16.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-8d5a053022fc1e16.js +0 -1
  902. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-8d5a053022fc1e16.js +0 -1
  903. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-8d5a053022fc1e16.js +0 -1
  904. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-8d5a053022fc1e16.js +0 -1
  905. package/app/.next-cli-build/static/chunks/app/api/cli-tools/crush-settings/route-8d5a053022fc1e16.js +0 -1
  906. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-8d5a053022fc1e16.js +0 -1
  907. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-8d5a053022fc1e16.js +0 -1
  908. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-8d5a053022fc1e16.js +0 -1
  909. package/app/.next-cli-build/static/chunks/app/api/cli-tools/forge-settings/route-8d5a053022fc1e16.js +0 -1
  910. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-8d5a053022fc1e16.js +0 -1
  911. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-8d5a053022fc1e16.js +0 -1
  912. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-8d5a053022fc1e16.js +0 -1
  913. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-8d5a053022fc1e16.js +0 -1
  914. package/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-8d5a053022fc1e16.js +0 -1
  915. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-8d5a053022fc1e16.js +0 -1
  916. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-8d5a053022fc1e16.js +0 -1
  917. package/app/.next-cli-build/static/chunks/app/api/cli-tools/pi-settings/route-8d5a053022fc1e16.js +0 -1
  918. package/app/.next-cli-build/static/chunks/app/api/cli-tools/smelt-settings/route-8d5a053022fc1e16.js +0 -1
  919. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-8d5a053022fc1e16.js +0 -1
  920. package/app/.next-cli-build/static/chunks/app/api/combos/presets/route-8d5a053022fc1e16.js +0 -1
  921. package/app/.next-cli-build/static/chunks/app/api/combos/route-8d5a053022fc1e16.js +0 -1
  922. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-8d5a053022fc1e16.js +0 -1
  923. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-8d5a053022fc1e16.js +0 -1
  924. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-8d5a053022fc1e16.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-8d5a053022fc1e16.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-8d5a053022fc1e16.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-8d5a053022fc1e16.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/api/health/route-8d5a053022fc1e16.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/init/route-8d5a053022fc1e16.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-8d5a053022fc1e16.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/keys/route-8d5a053022fc1e16.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/locale/route-8d5a053022fc1e16.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-8d5a053022fc1e16.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-8d5a053022fc1e16.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-8d5a053022fc1e16.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-8d5a053022fc1e16.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-8d5a053022fc1e16.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-8d5a053022fc1e16.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-8d5a053022fc1e16.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-8d5a053022fc1e16.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-8d5a053022fc1e16.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-8d5a053022fc1e16.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-8d5a053022fc1e16.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-8d5a053022fc1e16.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/models/route-8d5a053022fc1e16.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/models/test/route-8d5a053022fc1e16.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-8d5a053022fc1e16.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-8d5a053022fc1e16.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-8d5a053022fc1e16.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-8d5a053022fc1e16.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-8d5a053022fc1e16.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-8d5a053022fc1e16.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-8d5a053022fc1e16.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-8d5a053022fc1e16.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-8d5a053022fc1e16.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-8d5a053022fc1e16.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-8d5a053022fc1e16.js +0 -1
  958. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-8d5a053022fc1e16.js +0 -1
  959. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-8d5a053022fc1e16.js +0 -1
  960. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-8d5a053022fc1e16.js +0 -1
  961. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-8d5a053022fc1e16.js +0 -1
  962. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-8d5a053022fc1e16.js +0 -1
  963. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/start/route-8d5a053022fc1e16.js +0 -1
  964. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/login/status/route-8d5a053022fc1e16.js +0 -1
  965. package/app/.next-cli-build/static/chunks/app/api/pricing/route-8d5a053022fc1e16.js +0 -1
  966. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-8d5a053022fc1e16.js +0 -1
  967. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-8d5a053022fc1e16.js +0 -1
  968. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-8d5a053022fc1e16.js +0 -1
  969. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-8d5a053022fc1e16.js +0 -1
  970. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-8d5a053022fc1e16.js +0 -1
  971. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-8d5a053022fc1e16.js +0 -1
  972. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-8d5a053022fc1e16.js +0 -1
  973. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-8d5a053022fc1e16.js +0 -1
  974. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-8d5a053022fc1e16.js +0 -1
  975. package/app/.next-cli-build/static/chunks/app/api/providers/route-8d5a053022fc1e16.js +0 -1
  976. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-8d5a053022fc1e16.js +0 -1
  977. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-8d5a053022fc1e16.js +0 -1
  978. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-8d5a053022fc1e16.js +0 -1
  979. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-8d5a053022fc1e16.js +0 -1
  980. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-8d5a053022fc1e16.js +0 -1
  981. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-8d5a053022fc1e16.js +0 -1
  982. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-8d5a053022fc1e16.js +0 -1
  983. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-8d5a053022fc1e16.js +0 -1
  984. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-8d5a053022fc1e16.js +0 -1
  985. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-8d5a053022fc1e16.js +0 -1
  986. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-8d5a053022fc1e16.js +0 -1
  987. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-8d5a053022fc1e16.js +0 -1
  988. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-8d5a053022fc1e16.js +0 -1
  989. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-8d5a053022fc1e16.js +0 -1
  990. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-8d5a053022fc1e16.js +0 -1
  991. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-8d5a053022fc1e16.js +0 -1
  992. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-8d5a053022fc1e16.js +0 -1
  993. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-8d5a053022fc1e16.js +0 -1
  994. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-8d5a053022fc1e16.js +0 -1
  995. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-8d5a053022fc1e16.js +0 -1
  996. package/app/.next-cli-build/static/chunks/app/api/settings/route-8d5a053022fc1e16.js +0 -1
  997. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-8d5a053022fc1e16.js +0 -1
  998. package/app/.next-cli-build/static/chunks/app/api/tags/route-8d5a053022fc1e16.js +0 -1
  999. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-8d5a053022fc1e16.js +0 -1
  1000. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-8d5a053022fc1e16.js +0 -1
  1001. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-8d5a053022fc1e16.js +0 -1
  1002. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-8d5a053022fc1e16.js +0 -1
  1003. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-8d5a053022fc1e16.js +0 -1
  1004. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-8d5a053022fc1e16.js +0 -1
  1005. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-8d5a053022fc1e16.js +0 -1
  1006. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-8d5a053022fc1e16.js +0 -1
  1007. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-8d5a053022fc1e16.js +0 -1
  1008. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-8d5a053022fc1e16.js +0 -1
  1009. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-8d5a053022fc1e16.js +0 -1
  1010. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-8d5a053022fc1e16.js +0 -1
  1011. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-8d5a053022fc1e16.js +0 -1
  1012. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-8d5a053022fc1e16.js +0 -1
  1013. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-8d5a053022fc1e16.js +0 -1
  1014. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-8d5a053022fc1e16.js +0 -1
  1015. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-8d5a053022fc1e16.js +0 -1
  1016. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-8d5a053022fc1e16.js +0 -1
  1017. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-8d5a053022fc1e16.js +0 -1
  1018. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-8d5a053022fc1e16.js +0 -1
  1019. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-8d5a053022fc1e16.js +0 -1
  1020. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-8d5a053022fc1e16.js +0 -1
  1021. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-8d5a053022fc1e16.js +0 -1
  1022. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-8d5a053022fc1e16.js +0 -1
  1023. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-8d5a053022fc1e16.js +0 -1
  1024. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-8d5a053022fc1e16.js +0 -1
  1025. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-8d5a053022fc1e16.js +0 -1
  1026. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-8d5a053022fc1e16.js +0 -1
  1027. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-8d5a053022fc1e16.js +0 -1
  1028. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-8d5a053022fc1e16.js +0 -1
  1029. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-8d5a053022fc1e16.js +0 -1
  1030. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-8d5a053022fc1e16.js +0 -1
  1031. package/app/.next-cli-build/static/chunks/app/api/v1/models/[...model]/route-8d5a053022fc1e16.js +0 -1
  1032. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-8d5a053022fc1e16.js +0 -1
  1033. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-8d5a053022fc1e16.js +0 -1
  1034. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-8d5a053022fc1e16.js +0 -1
  1035. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-8d5a053022fc1e16.js +0 -1
  1036. package/app/.next-cli-build/static/chunks/app/api/v1/route-8d5a053022fc1e16.js +0 -1
  1037. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-8d5a053022fc1e16.js +0 -1
  1038. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-8d5a053022fc1e16.js +0 -1
  1039. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-8d5a053022fc1e16.js +0 -1
  1040. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-8d5a053022fc1e16.js +0 -1
  1041. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-8d5a053022fc1e16.js +0 -1
  1042. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-8d5a053022fc1e16.js +0 -1
  1043. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-8d5a053022fc1e16.js +0 -1
  1044. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-8d5a053022fc1e16.js +0 -1
  1045. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-8d5a053022fc1e16.js +0 -1
  1046. package/app/.next-cli-build/static/chunks/app/api/version/route-8d5a053022fc1e16.js +0 -1
  1047. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-8d5a053022fc1e16.js +0 -1
  1048. package/app/.next-cli-build/static/chunks/app/api/version/update/route-8d5a053022fc1e16.js +0 -1
  1049. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-8d5a053022fc1e16.js +0 -1
  1050. package/app/.next-cli-build/static/chunks/app/page-8d5a053022fc1e16.js +0 -1
  1051. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-8d5a053022fc1e16.js +0 -1
  1052. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-8d5a053022fc1e16.js +0 -1
  1053. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-8d5a053022fc1e16.js +0 -1
  1054. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-8d5a053022fc1e16.js +0 -1
  1055. package/app/.next-cli-build/static/chunks/webpack-c156bc04aeb5cff4.js +0 -1
  1056. package/app/.next-cli-build/static/css/8cc306fc3760c2a2.css +0 -1
  1057. package/app/.next-cli-build/static/lUxA4aZ52fhWcl3GgzzoI/_buildManifest.js +0 -1
  1058. /package/app/.next-cli-build/static/{lUxA4aZ52fhWcl3GgzzoI → JwK09RQ_bBz2fzOX7dkNE}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[763],{1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>a});var n=r(12115);let o=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,u={setState:n,getState:o,getInitialState:()=>a,subscribe:e=>(r.add(e),()=>r.delete(e))},a=t=e(n,o,u);return u},u=e=>{let t=e?o(e):o,r=e=>(function(e,t=e=>e){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},a=e=>e?u(e):u},10857:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return _},MissingStaticPage:function(){return b},NormalizeError:function(){return g},PageNotFoundError:function(){return v},SP:function(){return h},ST:function(){return m},WEB_VITALS:function(){return o},execOnce:function(){return u},getDisplayName:function(){return c},getLocationOrigin:function(){return s},getURL:function(){return l},isAbsoluteUrl:function(){return i},isResSent:function(){return f},loadGetInitialProps:function(){return d},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return P}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function u(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let a=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,i=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&a.test(e)};function s(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function l(){let{href:e}=window.location,t=s();return e.substring(t.length)}function c(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function d(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await d(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${c(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let h="u">typeof performance,m=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class g extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class _ extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}},14051:(e,t,r)=>{e.exports=r(34701)()},20091:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={formatUrl:function(){return i},formatWithValidation:function(){return l},urlObjectKeys:function(){return s}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});let u=r(66388)._(r(31393)),a=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",i=e.hash||"",s=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(l+=":"+e.port)),s&&"object"==typeof s&&(s=String(u.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||a.test(n))&&!1!==l?(l="//"+(l||""),o&&"/"!==o[0]&&(o="/"+o)):l||(l=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${l}${o}${c}${i}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return i(e)}},21172:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=r(12115);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=u(e,n)),t&&(o.current=u(t,n))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},31393:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={assign:function(){return i},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return a}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function u(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,u(e));else t.set(r,u(n));return t}function i(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},31692:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>o});let n=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>n(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>n(t)(e)}}},o=(e,t)=>(r,o,u)=>{let a,i={storage:function(e){let t;try{t=e()}catch(e){return}return{getItem:e=>{var r;let n=e=>null===e?null:JSON.parse(e,void 0),o=null!=(r=t.getItem(e))?r:null;return o instanceof Promise?o.then(n):n(o)},setItem:(e,r)=>t.setItem(e,JSON.stringify(r,void 0)),removeItem:e=>t.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},s=!1,l=0,c=new Set,f=new Set,p=i.storage;if(!p)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${i.name}', the given storage is currently unavailable.`),r(...e)},o,u);let d=()=>{let e=i.partialize({...o()});return p.setItem(i.name,{state:e,version:i.version})},h=u.setState;u.setState=(e,t)=>(h(e,t),d());let m=e((...e)=>(r(...e),d()),o,u);u.getInitialState=()=>m;let y=()=>{var e,t;if(!p)return;let u=++l;s=!1,c.forEach(e=>{var t;return e(null!=(t=o())?t:m)});let h=(null==(t=i.onRehydrateStorage)?void 0:t.call(i,null!=(e=o())?e:m))||void 0;return n(p.getItem.bind(p))(i.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===i.version)return[!1,e.state];else{if(i.migrate){let t=i.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(u!==l)return;let[n,s]=e;if(r(a=i.merge(s,null!=(t=o())?t:m),!0),n)return d()}).then(()=>{u===l&&(null==h||h(o(),void 0),a=o(),s=!0,f.forEach(e=>e(a)))}).catch(e=>{u===l&&(null==h||h(void 0,e))})};return u.persist={setOptions:e=>{i={...i,...e},e.storage&&(p=e.storage)},clearStorage:()=>{++l,null==p||p.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>y(),hasHydrated:()=>s,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(f.add(e),()=>{f.delete(e)})},i.skipHydration||y(),a||m}},34701:(e,t,r)=>{"use strict";var n=r(82114);function o(){}function u(){}u.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,u,a){if(a!==n){var i=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:u,resetWarningCache:o};return r.PropTypes=r,r}},54642:e=>{var t;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="//"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"u">typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"u">typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},e.exports=t},69470:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=r(10857),o=r(48512);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},73321:(e,t,r)=>{"use strict";var n=r(74645);r.o(n,"notFound")&&r.d(t,{notFound:function(){return n.notFound}}),r.o(n,"useParams")&&r.d(t,{useParams:function(){return n.useParams}}),r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},82114:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},98500:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={default:function(){return g},useLinkStatus:function(){return b}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});let u=r(66388),a=r(95155),i=u._(r(12115)),s=r(20091),l=r(22909),c=r(21172),f=r(10857),p=r(70127),d=r(74616),h=r(24972),m=r(69470),y=r(77565);function g(e){var t;let n,o,u,[g,b]=(0,i.useOptimistic)(h.IDLE_LINK_STATUS),_=(0,i.useRef)(null),{href:P,as:S,children:E,prefetch:O=null,passHref:j,replace:T,shallow:C,scroll:I,onClick:w,onMouseEnter:R,onTouchStart:k,legacyBehavior:N=!1,onNavigate:L,transitionTypes:x,ref:A,unstable_dynamicOnHover:U,...M}=e;n=E,N&&("string"==typeof n||"number"==typeof n)&&(n=(0,a.jsx)("a",{children:n}));let $=i.default.useContext(l.AppRouterContext),F=!1!==O,D=!1===O?"none":!0===O?"full":"auto",B="none"!==D?"auto"===D?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,z="string"==typeof(t=S||P)?t:(0,s.formatUrl)(t);if(N){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=i.default.Children.only(n)}let K=N?o&&"object"==typeof o&&o.ref:A,V,W=i.default.useCallback(e=>(null!==$&&(_.current=(0,h.mountLinkInstance)(e,z,$,B,F,b,V)),()=>{_.current&&((0,h.unmountLinkForCurrentNavigation)(_.current),_.current=null),(0,h.unmountPrefetchableInstance)(e)}),[F,z,$,B,b,V]),q={ref:(0,c.useMergedRef)(W,K),onClick(e){N||"function"!=typeof w||w(e),N&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(e),!$||e.defaultPrevented||function(e,t,n,o,u,a,s,l="none"){{let c,{nodeName:f}=e.currentTarget;if("A"===f.toUpperCase()&&((c=e.currentTarget.getAttribute("target"))&&"_self"!==c||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which)||e.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(t)){o&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),a){let e=!1;if(a({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:p}=r(70156);i.default.startTransition(()=>{p(t,o?"replace":"push",!1===u?d.ScrollBehavior.NoScroll:d.ScrollBehavior.Default,n.current,s,l)})}}(e,z,_,T,I,L,x,D)},onMouseEnter(e){N||"function"!=typeof R||R(e),N&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),$&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)},onTouchStart:function(e){N||"function"!=typeof k||k(e),N&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),$&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)}};return(0,f.isAbsoluteUrl)(z)?q.href=z:N&&!j&&("a"!==o.type||"href"in o.props)||(q.href=(0,p.addBasePath)(z)),u=N?i.default.cloneElement(o,q):(0,a.jsx)("a",{...M,...q,children:n}),(0,a.jsx)(v.Provider,{value:g,children:u})}let v=(0,i.createContext)(h.IDLE_LINK_STATUS),b=()=>(0,i.useContext)(v);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8569],{45639:(e,t,r)=>{r.d(t,{yP:()=>eW,LP:()=>eK});var n=r(12115),a=r(29722),i=r(11058),l=r(67389),o=r(85545),u=r(92191),s=r(21966),c=r(39168),d=r(18387),f=r(12161),v=r(59318),p=["option"],m=f.M;function y(e){var t=e.option,r=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(e,p);return n.createElement(v.y,{option:t,DefaultShape:m,shapeProps:r,activeClassName:"recharts-active-bar",inActiveClassName:"recharts-inactive-bar"})}var h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(r,n)=>{if((0,u.Et)(e))return e;var a=(0,u.Et)(r)||(0,u.uy)(r);return a?e(r,n):(a||function(e,t){if(!e)throw Error("Invariant failed")}(!1,"minPointSize callback function received a value with type of ".concat(typeof r,". Currently only numbers or null/undefined are supported.")),t)}},x=r(10365),b=r(74624),g=(e,t,r)=>{var n=(0,x.j)();return(a,i)=>l=>{null==e||e(a,i,l),n((0,b.RD)({activeIndex:String(i),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:r}))}},A=e=>{var t=(0,x.j)();return(r,n)=>a=>{null==e||e(r,n,a),t((0,b.oP)())}},I=(e,t,r)=>{var n=(0,x.j)();return(a,i)=>l=>{null==e||e(a,i,l),n((0,b.ML)({activeIndex:String(i),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:r}))}},E=r(96561),O=["children"],P=(0,n.createContext)({data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0});function S(e){var t=e.children,r=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(e,O);return n.createElement(P.Provider,{value:r},t)}var w=r(36793),z=r(65372),k=r(2842),j=r(73252),M=r(57346),B=r(21877),C=r(90744),D=r(84224);function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var W=(e,t,r)=>{var n=null!=r?r:e;if(!(0,u.uy)(n))return(0,u.F4)(n,t,0)},T=r(99498);function G(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function N(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?G(Object(r),!0).forEach(function(t){var n,a,i;n=e,a=t,i=r[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in n?Object.defineProperty(n,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):G(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var R=r(62082),F=r(76592),L=(0,k.Mz)([j.ld,(e,t)=>t],(e,t)=>e.filter(e=>"bar"===e.type).find(e=>e.id===t)),H=(0,k.Mz)([L],e=>null==e?void 0:e.maxBarSize),_=(0,k.Mz)([z.fz,j.ld,F.W,F.B,(e,t,r)=>r],(e,t,r,n,a)=>t.filter(t=>"horizontal"===e?t.xAxisId===r:t.yAxisId===n).filter(e=>e.isPanorama===a).filter(e=>!1===e.hide).filter(e=>"bar"===e.type)),V=(0,k.Mz)([_,C.x3,(e,t)=>{var r=(0,z.fz)(e),n=(0,F.W)(e,t),a=(0,F.B)(e,t);if(null!=n&&null!=a)return"horizontal"===r?(0,j.BQ)(e,"xAxis",n):(0,j.BQ)(e,"yAxis",a)}],(e,t,r)=>{var n=e.filter(D.g),a=e.filter(e=>null==e.stackId);return[...Object.entries(n.reduce((e,t)=>{var r=e[t.stackId];return null==r&&(r=[]),r.push(t),e[t.stackId]=r,e},{})).map(e=>{var n,a=function(e){if(Array.isArray(e))return e}(e)||function(e){var t=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,n,a,i,l=[],o=!0,u=!1;try{a=(t=t.call(e)).next,!1;for(;!(o=(r=a.call(t)).done)&&(l.push(r.value),2!==l.length);o=!0);}catch(e){u=!0,n=e}finally{try{if(!o&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(u)throw n}}return l}}(e)||function(e){if(e){if("string"==typeof e)return K(e,2);var t=({}).toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?K(e,2):void 0}}(e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),i=a[0],l=a[1];return{stackId:i,dataKeys:l.map(e=>e.dataKey),barSize:W(t,r,null==(n=l[0])?void 0:n.barSize)}}),...a.map(e=>({stackId:void 0,dataKeys:[e.dataKey].filter(e=>null!=e),barSize:W(t,r,e.barSize)}))]}),Q=(e,t,r)=>{var n,a,i=(0,z.fz)(e),l=(0,F.W)(e,t),o=(0,F.B)(e,t);if(null!=l&&null!=o)return"horizontal"===i?(n=(0,j.Gx)(e,"xAxis",l,r),a=(0,j.CR)(e,"xAxis",l,r)):(n=(0,j.Gx)(e,"yAxis",o,r),a=(0,j.CR)(e,"yAxis",o,r)),(0,c.Hj)(n,a)},U=(0,k.Mz)([V,C.JN,C._5,C.gY,(e,t,r)=>{var n,a,i,l,o=L(e,t);if(null==o)return 0;var s=(0,F.W)(e,t),d=(0,F.B)(e,t);if(null==s||null==d)return 0;var f=(0,z.fz)(e),v=(0,C.JN)(e),p=o.maxBarSize,m=(0,u.uy)(p)?v:p;return"horizontal"===f?(i=(0,j.Gx)(e,"xAxis",s,r),l=(0,j.CR)(e,"xAxis",s,r)):(i=(0,j.Gx)(e,"yAxis",d,r),l=(0,j.CR)(e,"yAxis",d,r)),null!=(n=null!=(a=(0,c.Hj)(i,l,!0))?a:m)?n:0},Q,H],(e,t,r,n,a,i,l)=>{var o=function(e,t,r,n,a){var i,l,o=n.length;if(!(o<1)){var s=(0,u.F4)(e,r,0,!0),c=[];if((0,T.H)(null==(i=n[0])?void 0:i.barSize)){var d=!1,f=r/o,v=n.reduce((e,t)=>e+(t.barSize||0),0);(v+=(o-1)*s)>=r&&(v-=(o-1)*s,s=0),v>=r&&f>0&&(d=!0,f*=.9,v=o*f);var p={offset:Math.round((r-v)/2)-s,size:0};l=n.reduce((e,t)=>{var r,n={stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:p.offset+p.size+s,size:d?f:null!=(r=t.barSize)?r:0}},a=[...e,n];return p=n.position,a},c)}else{var m=(0,u.F4)(t,r,0,!0);r-2*m-(o-1)*s<=0&&(s=0);var y=(r-2*m-(o-1)*s)/o;y>1&&(y=Math.round(y));var h=(0,T.H)(a)?Math.min(y,a):y;l=n.reduce((e,t,r)=>[...e,{stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:m+o*(y-h)/2+(h+s)*r,size:h}}],c)}return l}}(r,n,a!==i?a:i,e,(0,u.uy)(l)?t:l);return a!==i&&null!=o&&(o=o.map(e=>N(N({},e),{},{position:N(N({},e.position),{},{offset:e.position.offset-a/2})}))),o}),X=(0,k.Mz)([U,L],(e,t)=>{if(null!=e&&null!=t){var r=e.find(e=>e.stackId===t.stackId&&null!=t.dataKey&&e.dataKeys.includes(t.dataKey));if(null!=r)return r.position}}),$=(0,k.Mz)([(e,t,r)=>{var n=(0,z.fz)(e),a=(0,F.W)(e,t),i=(0,F.B)(e,t);if(null!=a&&null!=i)return"horizontal"===n?(0,j.TC)(e,"yAxis",i,r):(0,j.TC)(e,"xAxis",a,r)},L],(e,t)=>{var r=(0,R.x)(t);if(!e||null==r||null==t)return;var n=t.stackId;if(null!=n){var a=e[n];if(a){var i=a.stackedData;if(i)return i.find(e=>e.key===r)}}}),q=(0,k.Mz)([B.HZ,B.c2,(e,t,r)=>{var n=(0,F.W)(e,t);if(null!=n)return(0,j.Gx)(e,"xAxis",n,r)},(e,t,r)=>{var n=(0,F.B)(e,t);if(null!=n)return(0,j.Gx)(e,"yAxis",n,r)},(e,t,r)=>{var n=(0,F.W)(e,t);if(null!=n)return(0,j.CR)(e,"xAxis",n,r)},(e,t,r)=>{var n=(0,F.B)(e,t);if(null!=n)return(0,j.CR)(e,"yAxis",n,r)},X,z.fz,M.rN,Q,$,L,(e,t,r,n)=>n],(e,t,r,n,a,i,l,o,u,s,c,d,f)=>{var v,p=u.chartData,m=u.dataStartIndex,y=u.dataEndIndex;if(null!=d&&null!=l&&null!=t&&("horizontal"===o||"vertical"===o)&&null!=r&&null!=n&&null!=a&&null!=i&&null!=s){var h=d.data;if(null!=(v=null!=h&&h.length>0?h:null==p?void 0:p.slice(m,y+1)))return eK({layout:o,barSettings:d,pos:l,parentViewBox:t,bandSize:s,xAxis:r,yAxis:n,xAxisTicks:a,yAxisTicks:i,stackedData:c,displayedData:v,offset:e,cells:f,dataStartIndex:m})}}),J=r(64105),Y=r(541),Z=r(45970),ee=r(43527),et=r(75345),er=r(9629),en=r(23651),ea=r(89045),ei=r(60106),el=r(10483),eo=r(51531),eu=r(46574),es=["index"];function ec(){return(ec=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}var ed=(0,n.createContext)(void 0),ef=e=>{var t=e.index,r=function(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}(e,es),a=(e=>{var t=(0,n.useContext)(ed);if(null!=t){var r=t.stackId;return"url(#".concat("recharts-bar-stack-clip-path-".concat(r,"-").concat(e),")")}})(t);return n.createElement(i.W,ec({className:"recharts-bar-stack-layer",clipPath:a},r))},ev=["onMouseEnter","onMouseLeave","onClick"],ep=["value","background","tooltipPosition"],em=["id"],ey=["onMouseEnter","onClick","onMouseLeave"];function eh(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,o=[],u=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(o.push(n.value),o.length!==t);u=!0);}catch(e){s=!0,a=e}finally{try{if(!u&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ex(e,t);var r=({}).toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ex(e,t):void 0}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ex(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function eb(){return(eb=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}function eg(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function eA(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?eg(Object(r),!0).forEach(function(t){var n,a,i;n=e,a=t,i=r[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in n?Object.defineProperty(n,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):eg(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function eI(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],-1===t.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var eE=n.memo(e=>{var t=e.dataKey,r=e.stroke,a=e.strokeWidth,i=e.fill,l=e.name,o=e.hide,s=e.unit,d=e.formatter,f=e.tooltipType,v=e.id,p={dataDefinedOnItem:void 0,getPosition:u.lQ,settings:{stroke:r,strokeWidth:a,fill:i,dataKey:t,nameKey:void 0,name:(0,c.uM)(l,t),hide:o,type:f,color:i,unit:s,formatter:d,graphicalItemId:v}};return n.createElement(E.r,{tooltipEntrySettings:p})});function eO(e){var t,r=(0,x.G)(Y.A2),a=e.data,i=e.dataKey,l=e.background,o=e.allOtherBarProps,u=o.onMouseEnter,s=o.onMouseLeave,c=o.onClick,f=eI(o,ev),v=g(u,i,o.id),p=A(s),m=I(c,i,o.id);if(!l||null==a)return null;var h=(0,en.ic)(l);return n.createElement(el.g,{zIndex:(t=eo.I.barBackground,l&&"object"==typeof l&&"zIndex"in l&&"number"==typeof l.zIndex&&(0,T.H)(l.zIndex)?l.zIndex:t)},a.map((e,t)=>{e.value;var a=e.background,o=(e.tooltipPosition,eI(e,ep));if(!a)return null;var u=v(e,e.originalDataIndex),s=p(e,e.originalDataIndex),c=m(e,e.originalDataIndex),x=eA(eA(eA(eA(eA({option:l,isActive:String(e.originalDataIndex)===r},o),{},{fill:"#eee"},a),h),(0,d.XC)(f,e,t)),{},{onMouseEnter:u,onMouseLeave:s,onClick:c,dataKey:i,index:t,className:"recharts-bar-background-rectangle"});return n.createElement(y,eb({key:"background-bar-".concat(t)},x))}))}function eP(e){var t=e.showLabels,r=e.children,a=e.rects,i=null==a?void 0:a.map(e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return eA(eA({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return n.createElement(o.h8,{value:t?i:void 0},r)}function eS(e){var t,r=e.shape,a=e.activeBar,i=e.baseProps,l=e.entry,o=e.index,u=e.dataKey,s=(0,x.G)(Y.A2),c=(0,x.G)(Y.Xb),d=a&&String(l.originalDataIndex)===s&&(null==c||u===c),f=null!=s&&(String(l.originalDataIndex)!==s||null!=c&&u!==c),v=eh((0,n.useState)(!1),2),p=v[0],m=v[1],h=eh((0,n.useState)(!1),2),b=h[0],g=h[1];(0,n.useEffect)(()=>{var e;return d?(m(!0),e=requestAnimationFrame(()=>{g(!0)})):(g(!1),f&&m(!1)),()=>{cancelAnimationFrame(e)}},[d,f]);var A=(0,n.useCallback)(()=>{d||m(!1)},[d]),I=d&&b,E=d||p;t=d?!0===a?r:a:r;var O=n.createElement(y,eb({},i,{name:String(i.name)},l,{isActive:I,option:t,index:o,dataKey:u,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:A}));return E?n.createElement(el.g,{zIndex:eo.I.activeBar},n.createElement(ef,{index:l.originalDataIndex},O)):O}function ew(e){var t=e.shape,r=e.baseProps,a=e.entry,i=e.index,l=e.dataKey;return n.createElement(y,eb({},r,{name:String(r.name)},a,{isActive:!1,option:t,index:i,dataKey:l,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function ez(e){var t,r=e.data,a=e.props,i=e.animationElapsedTime,l=e.isAnimating,o=e.isEntrance,u=null!=(t=(0,en.uZ)(a))?t:{},s=u.id,c=eI(u,em),f=a.shape,v=a.dataKey,p=a.activeBar,m=a.onMouseEnter,y=a.onClick,h=a.onMouseLeave,x=eI(a,ey),b=g(m,v,s),E=A(h),O=I(y,v,s);return r?n.createElement(n.Fragment,null,r.map((e,t)=>n.createElement(ef,eb({index:e.originalDataIndex,key:"rectangle-".concat(null==e?void 0:e.x,"-").concat(null==e?void 0:e.y,"-").concat(null==e?void 0:e.value,"-").concat(t),className:"recharts-bar-rectangle"},(0,d.XC)(x,e,t),{onMouseEnter:b(e,e.originalDataIndex),onMouseLeave:E(e,e.originalDataIndex),onClick:O(e,e.originalDataIndex)}),p?n.createElement(eS,{shape:f,activeBar:p,baseProps:c,entry:e,index:t,dataKey:v,animationElapsedTime:i,isAnimating:l,isEntrance:o}):n.createElement(ew,{shape:f,baseProps:c,entry:e,index:t,dataKey:v,animationElapsedTime:i,isAnimating:l,isEntrance:o})))):null}function ek(e){var t=e.props,r=e.previousRectanglesRef,a=t.data,l=t.isAnimationActive,u=t.animationBegin,s=t.animationDuration,c=t.animationEasing,d=t.animationInterpolateFn,f=t.layout,v=(0,ea.I)(t.onAnimationStart,t.onAnimationEnd),p=v.isAnimating,m=v.handleAnimationStart,y=v.handleAnimationEnd;return n.createElement(eP,{showLabels:!p,rects:a},n.createElement(ea.U,{animationInput:a,animationIdPrefix:"recharts-bar-",items:a,previousItemsRef:r,isAnimationActive:l,animationBegin:u,animationDuration:s,animationEasing:c,onAnimationStart:m,onAnimationEnd:y,animationInterpolateFn:d,animationMatchBy:t.animationMatchBy,layout:f},(e,r,a)=>n.createElement(i.W,null,n.createElement(ez,{props:t,data:e,animationElapsedTime:r,isAnimating:p||r<1,isEntrance:a}))),n.createElement(o.qY,{label:t.label}),t.children)}function ej(e){var t=(0,n.useRef)(null);return n.createElement(ek,{previousRectanglesRef:t,props:e})}var eM=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:(0,c.kr)(e,t)}};class eB extends n.PureComponent{render(){var e=this.props,t=e.hide,r=e.data,l=e.dataKey,o=e.className,u=e.xAxisId,s=e.yAxisId,c=e.needClip,d=e.background,f=e.id;if(t||null==r)return null;var v=(0,a.$)("recharts-bar",o);return n.createElement(i.W,{className:v,id:f},c&&n.createElement("defs",null,n.createElement(w.Q,{clipPathId:f,xAxisId:u,yAxisId:s})),n.createElement(i.W,{className:"recharts-bar-rectangles",clipPath:c?"url(#clipPath-".concat(f,")"):void 0},n.createElement(eO,{data:r,dataKey:l,background:d,allOtherBarProps:this.props}),n.createElement(ej,this.props)))}}var eC={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",animationInterpolateFn:(e,t,r)=>null==e?[]:1===t?e.flatMap(e=>"removed"===e.status?[]:[e.next]):e.flatMap(e=>{if("removed"===e.status)return"horizontal"===r?[eA(eA({},e.prev),{},{height:(0,u.GW)(e.prev.height,0,t),y:(0,u.GW)(e.prev.y,e.prev.y+e.prev.height,t)})]:[eA(eA({},e.prev),{},{width:(0,u.GW)(e.prev.width,0,t)})];if("matched"===e.status)return[eA(eA({},e.next),{},{x:(0,u.GW)(e.prev.x,e.next.x,t),y:(0,u.GW)(e.prev.y,e.next.y,t),width:(0,u.GW)(e.prev.width,e.next.width,t),height:(0,u.GW)(e.prev.height,e.next.height,t)})];var n=e.next;return"horizontal"===r?[eA(eA({},n),{},{height:(0,u.GW)(0,n.height,t),y:(0,u.GW)(n.stackedBarStart,n.y,t)})]:[eA(eA({},n),{},{width:(0,u.GW)(0,n.width,t),x:(0,u.GW)(n.stackedBarStart,n.x,t)})]}),animationMatchBy:ei.Um,background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:0,shape:m,xAxisId:0,yAxisId:0,zIndex:eo.I.bar};function eD(e){var t,r=e.xAxisId,a=e.yAxisId,i=e.hide,o=e.legendType,u=e.minPointSize,c=e.activeBar,d=e.animationBegin,f=e.animationDuration,v=e.animationEasing,p=e.isAnimationActive,m=(0,w.l)(r,a).needClip,y=(0,z.WX)(),h=(0,J.r)(),b=(0,s.aS)(e.children,l.f),g=(0,x.G)(t=>q(t,e.id,h,b));if("vertical"!==y&&"horizontal"!==y)return null;var A=null==g?void 0:g[0];return t=null==A||null==A.height||null==A.width?0:"vertical"===y?A.height/2:A.width/2,n.createElement(S,{xAxisId:r,yAxisId:a,data:g,dataPointFormatter:eM,errorBarOffset:t},n.createElement(eB,eb({},e,{layout:y,needClip:m,data:g,xAxisId:r,yAxisId:a,hide:i,legendType:o,minPointSize:u,activeBar:c,animationBegin:d,animationDuration:f,animationEasing:v,isAnimationActive:p})))}function eK(e){var t=e.layout,r=e.barSettings,n=r.dataKey,a=r.minPointSize,i=r.hasCustomShape,l=e.pos,o=e.bandSize,s=e.xAxis,d=e.yAxis,f=e.xAxisTicks,v=e.yAxisTicks,p=e.stackedData,m=e.displayedData,y=e.offset,x=e.cells,b=e.parentViewBox,g=e.dataStartIndex,A="horizontal"===t?d:s,I=p?A.scale.domain():null,E=(0,c.DW)({numericAxis:A}),O=A.scale.map(E);return m.map((e,r)=>{if(p){var m=p[r+g];if(null==m)return null;P=(0,c._f)(m,I)}else Array.isArray(P=(0,c.kr)(e,n))||(P=[E,P]);var A=h(a,0)(P[1],r);if("horizontal"===t){var P,S,w,z,k,j,M,B=d.scale.map(P[0]),C=d.scale.map(P[1]);if(null==B||null==C)return null;S=(0,c.y2)({axis:s,ticks:f,bandSize:o,offset:l.offset,entry:e,index:r}),w=null!=(M=null!=C?C:B)?M:void 0,z=l.size;var D=B-C;if(k=(0,u.M8)(D)?0:D,j={x:S,y:y.top,width:z,height:y.height},Math.abs(A)>0&&Math.abs(k)<Math.abs(A)){var K=(0,u.sA)(k||A)*(Math.abs(A)-Math.abs(k));w-=K,k+=K}}else{var W=s.scale.map(P[0]),T=s.scale.map(P[1]);if(null==W||null==T)return null;if(S=W,w=(0,c.y2)({axis:d,ticks:v,bandSize:o,offset:l.offset,entry:e,index:r}),z=T-W,k=l.size,j={x:y.left,y:w,width:y.width,height:k},Math.abs(A)>0&&Math.abs(z)<Math.abs(A)){var G=(0,u.sA)(z||A)*(Math.abs(A)-Math.abs(z));z+=G}}return null!=S&&null!=w&&null!=z&&null!=k&&(i||0!==z&&0!==k)?eA(eA({},e),{},{stackedBarStart:O,x:S,y:w,width:z,height:k,value:p?P:P[1],payload:e,background:j,tooltipPosition:{x:S+z/2,y:w+k/2},parentViewBox:b,originalDataIndex:r},x&&x[r]&&x[r].props):null}).filter(Boolean)}var eW=n.memo(function(e){var t,r,a=(0,ee.e)(e,eC),i=(t=a.stackId,null!=(r=(0,n.useContext)(ed))?r.stackId:null!=t?(0,c.$8)(t):void 0),l=(0,J.r)();return n.createElement(et.x,{id:a.id,type:"bar"},e=>{var t,r,o,u;return n.createElement(n.Fragment,null,n.createElement(Z.A,{legendPayload:(t=a.dataKey,r=a.name,o=a.fill,u=a.legendType,[{inactive:a.hide,dataKey:t,type:u,color:o,value:(0,c.uM)(r,t),payload:a}])}),n.createElement(eE,{dataKey:a.dataKey,stroke:a.stroke,strokeWidth:a.strokeWidth,fill:a.fill,name:a.name,hide:a.hide,unit:a.unit,formatter:a.formatter,tooltipType:a.tooltipType,id:e}),n.createElement(er.p,{type:"bar",id:e,data:void 0,xAxisId:a.xAxisId,yAxisId:a.yAxisId,zAxisId:0,dataKey:a.dataKey,stackId:i,hide:a.hide,barSize:a.barSize,minPointSize:a.minPointSize,maxBarSize:a.maxBarSize,isPanorama:l,hasCustomShape:null!=a.shape&&a.shape!==m}),n.createElement(el.g,{zIndex:a.zIndex},n.createElement(eD,eb({},a,{id:e}))))})},eu.P);eW.displayName="Bar"},48035:(e,t,r)=>{r.d(t,{E:()=>o});var n=r(12115),a=r(95295),i=r(17218),l=["axis","item"],o=(0,n.forwardRef)((e,t)=>n.createElement(i.P,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:l,tooltipPayloadSearcher:a.uN,categoricalChartProps:e,ref:t}))},67389:(e,t,r)=>{r.d(t,{f:()=>n});var n=e=>null;n.displayName="Cell"}}]);
@@ -0,0 +1,3 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8720],{15536:(e,t,s)=>{"use strict";s.d(t,{Cp:()=>r,Hx:()=>n,Iv:()=>d,Nv:()=>u,RL:()=>c,ev:()=>m,fl:()=>i,hT:()=>a,oX:()=>l,t6:()=>o});let a=["zh-CN","zh-TW"],l=[{icon:"public",title:"Access Anywhere",desc:"Use your API from any network"},{icon:"group",title:"Share Endpoint",desc:"Share URL with team members"},{icon:"code",title:"Use in Cursor/Cline",desc:"Connect AI tools remotely"},{icon:"lock",title:"Encrypted",desc:"End-to-end TLS via Cloudflare"}],n=2e3,r=3e5,i=5e3,o=5,c=1e4,d=5e3,m=[{id:"lite",label:"Lite",desc:"Drop filler, keep grammar"},{id:"full",label:"Full",desc:"Drop articles, fragments OK"},{id:"ultra",label:"Ultra",desc:"Telegraphic, max compression"},{id:"wenyan-lite",label:"文 Lite",desc:"Classical Chinese, light compression",wenyan:!0},{id:"wenyan",label:"文 Full",desc:"Maximum 文言文, 80-90% reduction",wenyan:!0},{id:"wenyan-ultra",label:"文 Ultra",desc:"Extreme classical compression",wenyan:!0}],u=[{id:"lite",label:"Lite",desc:"Build asked, name lazier option"},{id:"full",label:"Full",desc:"Ladder enforced: stdlib/native first"},{id:"ultra",label:"Ultra",desc:"YAGNI extremist, deletion first"}]},20242:(e,t,s)=>{"use strict";s.d(t,{default:()=>g});var a=s(95155),l=s(12115),n=s(14051),r=s.n(n),i=s(35497),o=s(11059),c=s(15536);async function d(e){if(!e)return!1;try{return(await fetch(`${e}/api/health`,{mode:"cors",cache:"no-store",signal:AbortSignal.timeout(c.Iv)})).ok}catch{return!1}}async function m(...e){let t=e.filter(Boolean).map(d);return!!t.length&&new Promise(e=>{let s=t.length;t.forEach(t=>t.then(t=>{t?e(!0):0==--s&&e(!1)}))})}var u=s(72767);function x({label:e,url:t,copyId:s,copied:l,onCopy:n,badge:r,actions:o}){return(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${"CF"===r||"TS"===r?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:e}),(0,a.jsx)(i.pd,{value:t,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>n(t,s),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:l===s?"check":"content_copy"})}),o]})}function h({status:e,className:t=""}){return(0,a.jsx)("div",{className:`p-2 rounded text-sm ${t} ${"success"===e.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===e.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===e.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:e.message.split(/(https?:\/\/[^\s]+)/g).map((e,t)=>/^https?:\/\//.test(e)?(0,a.jsx)("a",{href:e,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:e},t):e)})}function p({text:e}){return(0,a.jsxs)("span",{className:"relative group inline-flex items-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted cursor-help",children:"help"}),(0,a.jsx)("span",{className:"pointer-events-none absolute left-5 top-1/2 -translate-y-1/2 z-50 w-64 rounded bg-gray-900 dark:bg-gray-800 text-white text-xs px-2.5 py-1.5 opacity-0 group-hover:opacity-100 transition-opacity shadow-lg",children:e})]})}function b({message:e,action:t}){return(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-amber-500/10 border border-amber-500/20 text-amber-700 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] shrink-0 mt-0.5",children:"warning"}),(0,a.jsx)("p",{className:"text-xs flex-1",children:e}),t&&(0,a.jsx)("a",{href:t.href,className:"text-xs font-medium underline shrink-0 hover:opacity-80",onClick:t.href.startsWith("#")?e=>{e.preventDefault(),document.getElementById(t.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:t.label})]})}function g({machineId:e}){let[t,s]=(0,l.useState)([]),[n,r]=(0,l.useState)(!0),[y,f]=(0,l.useState)(!1),[j,k]=(0,l.useState)(""),[w,v]=(0,l.useState)(null),[N,C]=(0,l.useState)(null),[S,T]=(0,l.useState)(!1),[_,P]=(0,l.useState)(!0),[E,$]=(0,l.useState)(!0),[A,I]=(0,l.useState)(!1),[U,D]=(0,l.useState)(!0),[O,F]=(0,l.useState)(!1),[R,L]=(0,l.useState)(!1),[W,q]=(0,l.useState)(""),[K,z]=(0,l.useState)(""),[H,J]=(0,l.useState)(!1),[B,M]=(0,l.useState)(""),[Q,X]=(0,l.useState)(null),[Z,G]=(0,l.useState)(!1),[V,Y]=(0,l.useState)(!1),[ee,et]=(0,l.useState)(!1),[es,ea]=(0,l.useState)(!1),[el,en]=(0,l.useState)(""),[er,ei]=(0,l.useState)(!1),[eo,ec]=(0,l.useState)(""),[ed,em]=(0,l.useState)(null),[eu,ex]=(0,l.useState)(""),[eh,ep]=(0,l.useState)(""),[eb,eg]=(0,l.useState)(null),[ey,ef]=(0,l.useState)(!1),[ej,ek]=(0,l.useState)([]),[ew,ev]=(0,l.useState)(""),[eN,eC]=(0,l.useState)(!1),[eS,eT]=(0,l.useState)(!1),[e_,eP]=(0,l.useState)(!1),eE=(0,l.useRef)(null),e$=(0,l.useRef)(0),eA=(0,l.useRef)(0),eI=(0,l.useRef)(!1),eU=(0,l.useRef)(!1),eD=(0,l.useRef)(!1),eO=(0,l.useRef)(!1),[eF,eR]=(0,l.useState)(!1),[eL,eW]=(0,l.useState)(!1),[eq,eK]=(0,l.useState)(new Set),[ez,eH]=(0,l.useState)(!1);(0,l.useEffect)(()=>{eH(!["localhost","127.0.0.1","::1"].includes(window.location.hostname))},[]);let{copied:eJ,copy:eB}=(0,o.C)(),eM=!_||!E,eQ=_?"Change the default dashboard password before activating the tunnel.":'Enable "Require login" and set a custom password before activating the tunnel.';(0,l.useEffect)(()=>{eE.current&&(eE.current.scrollTop=eE.current.scrollHeight)},[ej]),(0,l.useEffect)(()=>{e0(),eG()},[]),(0,l.useEffect)(()=>{if(!(O||ee))return;let e=!O||R,t=!ee||es,s=()=>{document.hidden||eZ()};if(document.addEventListener("visibilitychange",s),e&&t)return()=>document.removeEventListener("visibilitychange",s);let a=setInterval(()=>{document.hidden||eZ()},c.fl);return()=>{clearInterval(a),document.removeEventListener("visibilitychange",s)}},[O,ee,R,es]),(0,l.useEffect)(()=>{let e=async()=>{if(!document.hidden){if(O&&(W||K)){let e=await m(K,W);eI.current=e,e?(e$.current=0,L(!0),eD.current||(eD.current=!0,eR(!0))):(e$.current+=1,e$.current>=c.t6&&L(!1))}else eI.current=!1;if(ee&&el){let e=await d(el);eU.current=e,e?(eA.current=0,ea(!0),eO.current||(eO.current=!0,eW(!0))):(eA.current+=1,eA.current>=c.t6&&ea(!1))}else eU.current=!1}};if(!(O&&(W||K)||ee&&el))return;e();let t=!ee||es;if((!O||R)&&t)return;let s=setInterval(e,c.RL);return()=>clearInterval(s)},[O,W,K,ee,el,R,es]);let eX=(0,l.useCallback)((e,t,s,a,l,n)=>{t.current?(s.current=0,a(!0),l.current||(l.current=!0,n(!0))):(s.current+=1,s.current>=c.t6&&a(!1))},[]),eZ=async()=>{try{let e=await fetch("/api/tunnel/status",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),s=t.tunnel?.settingsEnabled??t.tunnel?.enabled??!1,a=t.tunnel?.tunnelUrl||"";q(a),z(t.tunnel?.publicUrl||""),F(s),eX(null,eI,e$,L,eD,eR);let l=t.tailscale?.settingsEnabled??t.tailscale?.enabled??!1,n=t.tailscale?.tunnelUrl||"";en(n),et(l),eX(null,eU,eA,ea,eO,eW)}catch{}},eG=async()=>{D(!0);try{let[e,t]=await Promise.all([u.A.getState().fetchSettings(),fetch("/api/tunnel/status",{cache:"no-store"})]);if(e&&(T(e.requireApiKey||!1),P(!1!==e.requireLogin),$(e.hasPassword||!1),I(e.tunnelDashboardAccess||!1)),t.ok){let e=await t.json(),s=e.tunnel?.settingsEnabled??e.tunnel?.enabled??!1,a=e.tunnel?.tunnelUrl||"";q(a),z(e.tunnel?.publicUrl||""),F(s),eX(null,eI,e$,L,eD,eR);let l=e.tailscale?.settingsEnabled??e.tailscale?.enabled??!1,n=e.tailscale?.tunnelUrl||"";en(n),et(l),eX(null,eU,eA,ea,eO,eW)}}catch(e){console.log("Error loading settings:",e)}finally{D(!1)}},eV=async e=>{try{await u.A.getState().patchSettings({tunnelDashboardAccess:e})&&I(e)}catch(e){console.log("Error updating tunnelDashboardAccess:",e)}},eY=async e=>{try{await u.A.getState().patchSettings({requireApiKey:e})&&T(e)}catch(e){console.log("Error updating requireApiKey:",e)}},e0=async()=>{try{let e=async()=>{let e=await fetch("/api/keys");return e.ok&&(await e.json()).keys||[]},t=await e();if(0===t.length)try{(await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"Default Key"})})).ok&&(t=await e())}catch{}s(t)}catch(e){console.log("Error fetching data:",e)}finally{r(!1)}},e1=async(...e)=>{J(!0),M("Waiting for tunnel ready...");let t=e.filter(Boolean).map(e=>`${e}/api/health`),s=Date.now();for(;Date.now()-s<c.Cp;){if(await new Promise(e=>setTimeout(e,c.Hx)),await Promise.any(t.map(async e=>{if((await fetch(e,{mode:"cors",cache:"no-store"})).ok)return!0;throw Error("not ready")})).catch(()=>!1))return F(!0),J(!1),M(""),!0;if((Date.now()-s)%1e4<c.Hx)try{let e=await fetch("/api/tunnel/status");if(e.ok){let t=await e.json();if(!t.tunnel?.enabled)return X({type:"error",message:"Tunnel process stopped unexpectedly."}),J(!1),M(""),!1}}catch{}}return X({type:"error",message:"Tunnel created but not reachable. Please try again."}),J(!1),M(""),!1},e5=async()=>{G(!1),J(!0),X(null),M("Creating tunnel...");let e=!0;(async()=>{for(;e;){try{let t=await fetch("/api/tunnel/status");if(t.ok){let s=await t.json();s.download?.downloading?M(`Downloading cloudflared... ${s.download.progress}%`):e&&M("Creating tunnel...")}}catch{}await new Promise(e=>setTimeout(e,1e3))}})();try{let t=await fetch("/api/tunnel/enable",{method:"POST"});e=!1;let s=await t.json();if(!t.ok)return void X({type:"error",message:s.error||"Failed to enable tunnel"});let a=s.tunnelUrl;if(!a)return void X({type:"error",message:"No tunnel URL returned"});q(a),z(s.publicUrl||""),await e1(s.publicUrl,a)}catch(e){X({type:"error",message:e.message})}finally{e=!1,J(!1),M("")}},e2=async()=>{J(!0),X(null);try{let e=await fetch("/api/tunnel/disable",{method:"POST"}),t=await e.json();e.ok?(F(!1),q(""),Y(!1),X({type:"success",message:"Tunnel disabled"})):X({type:"error",message:t.error||"Failed to disable tunnel"})}catch(e){X({type:"error",message:e.message})}finally{J(!1)}},e4=async()=>{eg(null);try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok){let t=await e.json();return eg(t.installed),t}}catch{}return eg(!1),{installed:!1}},e3=async()=>{ef(!0),em(null),ek([]);try{let e=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:ew})});ev("");let t=e.body.getReader(),s=new TextDecoder,a="";for(;;){let{done:e,value:l}=await t.read();if(e)break;let n=(a+=s.decode(l,{stream:!0})).split("\n\n");for(let e of(a=n.pop()||"",n)){let t=e.split("\n"),s="progress",a=null;for(let e of t)if(e.startsWith("event: ")&&(s=e.slice(7).trim()),e.startsWith("data: "))try{a=JSON.parse(e.slice(6))}catch{}if(a)if("progress"===s)ek(e=>[...e.slice(-50),a.message]);else if("done"===s){eg(!0),ef(!1),eT(!1),e9();return}else"error"===s&&em({type:"error",message:a.error||"Install failed"})}}}catch(e){em({type:"error",message:e.message})}finally{ef(!1)}},e8=async e=>{ec("Waiting for Tailscale ready...");let t=`${e}/api/health`,s=Date.now();for(;Date.now()-s<c.Cp;){await new Promise(e=>setTimeout(e,c.Hx));try{let e=await fetch(t,{mode:"no-cors",cache:"no-store"});if(e.ok||"opaque"===e.type)return!0}catch{}}return!1},e6=(e,t)=>{ex(e),ep(t)},e7=()=>{ex(""),ep("")},e9=async()=>{eT(!1),eC(!0),ei(!0),em(null),ec("Connecting..."),e7();try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){en(t.tunnelUrl||"");let e=await e8(t.tunnelUrl);et(!0),em(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.needsLogin&&t.authUrl){e6(t.authUrl,"Open Login Page"),ec('Login required — click "Open Login Page" to continue');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok&&(await e.json()).loggedIn){e7(),ec("Starting funnel...");let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){en(t.tunnelUrl||"");let e=await e8(t.tunnelUrl);et(!0),em(e?null:{type:"warning",message:"Connected but not reachable yet."})}else t.funnelNotEnabled&&t.enableUrl?await te(t.enableUrl):em({type:"error",message:t.error||"Failed to start funnel"});return}}catch{}}e7(),em({type:"error",message:"Login timed out. Please try again."});return}if(t.funnelNotEnabled&&t.enableUrl)return void await te(t.enableUrl);em({type:"error",message:t.error||"Failed to connect"})}catch(e){em({type:"error",message:e.message})}finally{ei(!1),eC(!1),ec(""),e7()}},te=async e=>{e6(e,"Open Funnel Settings"),ec('Click "Open Funnel Settings" to enable Funnel...');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){e7(),en(t.tunnelUrl||"");let e=await e8(t.tunnelUrl);et(!0),em(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.funnelNotEnabled)continue;if(t.error){e7(),em({type:"error",message:t.error});return}}catch{}}e7(),em({type:"error",message:"Timed out waiting for Funnel to be enabled."})},tt=async()=>{ei(!0),em(null);try{let e=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),t=await e.json();e.ok?(et(!1),en(""),eP(!1),em({type:"success",message:"Tailscale disabled"})):em({type:"error",message:t.error||"Failed to disable Tailscale"})}catch(e){em({type:"error",message:e.message})}finally{ei(!1)}},ts=async()=>{em(null),ek([]);let e=await e4();e?.installed&&e?.hasCachedPassword?e9():eT(!0)},ta=async()=>{if(j.trim())try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:j})}),t=await e.json();e.ok&&(v(t.key),await e0(),k(""),f(!1))}catch(e){console.log("Error creating key:",e)}},tl=async e=>{C({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{C(null);try{(await fetch(`/api/keys/${e}`,{method:"DELETE"})).ok&&(s(t.filter(t=>t.id!==e)),eK(t=>{let s=new Set(t);return s.delete(e),s}))}catch(e){console.log("Error deleting key:",e)}}})},tn=async(e,t)=>{try{(await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&s(s=>s.map(s=>s.id===e?{...s,isActive:t}:s))}catch(e){console.log("Error toggling key:",e)}},[tr,ti]=(0,l.useState)("/v1");return((0,l.useEffect)(()=>{ti(`${window.location.origin}/v1`)},[]),n)?(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsx)(i.Qv,{}),(0,a.jsx)(i.Qv,{})]}):(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsxs)(i.Zp,{children:[(0,a.jsxs)("h2",{className:"text-lg font-semibold mb-4 flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"api"}),"API Endpoint"]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(x,{label:"Local",url:tr,copyId:"local_url",copied:eJ,onCopy:eB}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${O?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tunnel"}),O&&!H&&R?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.pd,{value:`${K||W}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>eB(`${K||W}/v1`,"tunnel_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===eJ?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:()=>Y(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!O||H||R?H?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),B||"Creating tunnel..."]}),(0,a.jsx)("button",{onClick:()=>{J(!1),M("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):Q?.type==="error"?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),Q.message]}),(0,a.jsx)(i.$n,{size:"sm",icon:"cloud_upload",onClick:()=>G(!0),children:"Enable"})]}):U?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),(0,a.jsx)("button",{onClick:()=>D(!1),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,a.jsx)(i.$n,{size:"sm",icon:"cloud_upload",onClick:()=>{eM?X({type:"error",message:`Security required: ${eQ}`}):S?G(!0):X({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eF?"Tunnel reconnecting...":"Tunnel checking..."]}),(0,a.jsx)("button",{onClick:()=>Y(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${ee?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tailscale"}),ee&&!er&&es?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.pd,{value:`${el}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>eB(`${el}/v1`,"ts_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===eJ?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:()=>eP(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!ee||er||es?er||eN?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eo||"Connecting..."]}),eu&&(0,a.jsx)(i.$n,{size:"sm",icon:"open_in_new",onClick:()=>window.open(eu,"tailscale_auth","width=600,height=700,noopener,noreferrer"),children:eh||"Open"}),(0,a.jsx)("button",{onClick:()=>{ei(!1),eC(!1),ec(""),e7()},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):ed?.type==="error"?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),ed.message]}),(0,a.jsx)(i.$n,{size:"sm",icon:"vpn_lock",onClick:ts,children:"Enable"})]}):(0,a.jsx)(i.$n,{size:"sm",icon:"vpn_lock",onClick:()=>{eM?em({type:"error",message:`Security required: ${eQ}`}):ts()},className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Enable"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eL?"Tailscale reconnecting...":"Tailscale checking..."]}),(0,a.jsx)("button",{onClick:()=>eP(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]})]}),eM&&!O&&!ee&&(0,a.jsx)("div",{className:"mt-4",children:(0,a.jsx)(b,{message:eQ,action:{label:"Open settings",href:"/dashboard/profile"}})}),(O||ee)&&(0,a.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!S&&(0,a.jsx)(b,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!_||!E)&&(0,a.jsx)(b,{message:_?"Dashboard uses the default password — change it in Profile settings.":"Require login is disabled — anyone can access your dashboard via tunnel.",action:{label:_?"Change password":"Enable",href:"/dashboard/profile"}})]}),(O||ee)&&(0,a.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,a.jsx)(i.lM,{checked:A,onChange:()=>eV(!A)}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("p",{className:"font-medium text-sm",children:"Allow dashboard access via tunnel"}),(0,a.jsx)(p,{text:"When enabled, the dashboard can be accessed through your tunnel or Tailscale URL (login still required). When disabled, dashboard access via tunnel/Tailscale is completely blocked."})]})]})]}),(0,a.jsxs)(i.Zp,{id:"require-api-key",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"vpn_key"}),"API Keys"]}),(0,a.jsx)(i.$n,{icon:"add",onClick:()=>f(!0),children:"Create Key"})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between pb-4 mb-4 border-b border-border",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Requests without a valid key will be rejected"})]}),(0,a.jsx)(i.lM,{checked:S,onChange:()=>eY(!S)})]}),ez&&!S&&(0,a.jsx)("div",{className:"mb-4 -mt-2",children:(0,a.jsx)(b,{message:"Endpoint is exposed without an API key."})}),0===t.length?(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,a.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,a.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,a.jsx)(i.$n,{icon:"add",onClick:()=>f(!0),children:"Create Key"})]}):(0,a.jsx)("div",{className:"flex flex-col",children:t.map(e=>{var t;return(0,a.jsxs)("div",{className:`group flex items-center justify-between py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0 ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,a.jsx)("code",{className:"text-xs text-text-muted font-mono",children:eq.has(e.id)?e.key:(t=e.key)&&!(t.length<=10)?t.slice(0,6)+"•".repeat(t.length-10)+t.slice(-4):t||""}),(0,a.jsx)("button",{onClick:()=>{var t;return t=e.id,void eK(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-all",title:eq.has(e.id)?"Hide key":"Show key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:eq.has(e.id)?"visibility_off":"visibility"})}),(0,a.jsx)("button",{onClick:()=>eB(e.key,e.id),className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-all",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:eJ===e.id?"check":"content_copy"})})]}),(0,a.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(e.createdAt).toLocaleDateString()]}),!1===e.isActive&&(0,a.jsx)("p",{className:"text-xs text-orange-500 mt-1",children:"Paused"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(i.lM,{size:"sm",checked:e.isActive??!0,onChange:t=>{e.isActive&&!t?C({title:"Pause API Key",message:`Pause API key "${e.name}"?
2
+
3
+ This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{C(null),tn(e.id,t)}}):tn(e.id,t)},title:e.isActive?"Pause key":"Resume key"}),(0,a.jsx)("button",{onClick:()=>tl(e.id),className:"p-2 hover:bg-red-500/10 rounded text-red-500 opacity-100 sm:opacity-0 sm:group-hover:opacity-100 transition-all",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},e.id)})})]}),(0,a.jsx)(i.aF,{isOpen:y,title:"Create API Key",onClose:()=>{f(!1),k("")},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)(i.pd,{label:"Key Name",value:j,onChange:e=>k(e.target.value),placeholder:"Production Key"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:ta,fullWidth:!0,disabled:!j.trim(),children:"Create"}),(0,a.jsx)(i.$n,{onClick:()=>{f(!1),k("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(i.aF,{isOpen:!!w,title:"API Key Created",onClose:()=>v(null),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,a.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,a.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.pd,{value:w||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)(i.$n,{variant:"secondary",icon:"created_key"===eJ?"check":"content_copy",onClick:()=>eB(w,"created_key"),children:"created_key"===eJ?"Copied!":"Copy"})]}),(0,a.jsx)(i.$n,{onClick:()=>v(null),fullWidth:!0,children:"Done"})]})}),(0,a.jsx)(i.aF,{isOpen:Z,title:"Enable Tunnel",onClose:()=>G(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("div",{className:"bg-surface-2 border border-border-subtle rounded-lg p-4",children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"cloud_upload"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm text-text-main font-medium mb-1",children:"Cloudflare Tunnel"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Expose your local 9Router to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere."})]})]})}),(0,a.jsx)("div",{className:"grid grid-cols-2 gap-3",children:c.oX.map(e=>(0,a.jsxs)("div",{className:"flex flex-col items-center text-center p-3 rounded-lg bg-sidebar/50",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-xl text-primary mb-1",children:e.icon}),(0,a.jsx)("p",{className:"text-xs font-semibold",children:e.title}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:e.desc})]},e.title))}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:e5,fullWidth:!0,children:"Start Tunnel"}),(0,a.jsx)(i.$n,{onClick:()=>G(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(i.aF,{isOpen:V,title:"Disable Tunnel",onClose:()=>!H&&Y(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:e2,fullWidth:!0,disabled:H,variant:"danger",children:H?"Disabling...":"Disable"}),(0,a.jsx)(i.$n,{onClick:()=>Y(!1),variant:"ghost",fullWidth:!0,disabled:H,children:"Cancel"})]})]})}),(0,a.jsx)(i.aF,{isOpen:eS,title:"Tailscale Funnel",onClose:()=>{ey||(eT(!1),ev(""),em(null))},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[null===eb&&(0,a.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===eb&&!ey&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:e3,fullWidth:!0,children:"Install Tailscale"}),(0,a.jsx)(i.$n,{onClick:()=>eT(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ey&&(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),ej.length>0&&(0,a.jsx)("div",{ref:eE,className:"bg-black/5 dark:bg-white/5 rounded p-2 max-h-40 overflow-y-auto font-mono text-xs text-text-muted",children:ej.map((e,t)=>(0,a.jsx)("div",{children:e},t))})]}),!0===eb&&!ey&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:()=>e9(),fullWidth:!0,children:"Connect"}),(0,a.jsx)(i.$n,{onClick:()=>eT(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ed&&(0,a.jsx)(h,{status:ed})]})}),(0,a.jsx)(i.aF,{isOpen:e_,title:"Disable Tailscale",onClose:()=>!er&&eP(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:tt,fullWidth:!0,disabled:er,variant:"danger",children:er?"Disabling...":"Disable"}),(0,a.jsx)(i.$n,{onClick:()=>eP(!1),variant:"ghost",fullWidth:!0,disabled:er,children:"Cancel"})]})]})}),(0,a.jsx)(i.uo,{isOpen:!!N,onClose:()=>C(null),onConfirm:N?.onConfirm,title:N?.title||"Confirm",message:N?.message,variant:"danger"})]})}g.propTypes={machineId:r().string.isRequired}},58720:(e,t,s)=>{Promise.resolve().then(s.bind(s,20242))}}]);
@@ -0,0 +1,65 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9233],{9233:(e,t,r)=>{function n(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}r.r(t),r.d(t,{Hooks:()=>ey,Lexer:()=>em,Marked:()=>eR,Parser:()=>eS,Renderer:()=>ew,TextRenderer:()=>e$,Tokenizer:()=>eb,defaults:()=>s,getDefaults:()=>n,lexer:()=>eB,marked:()=>e_,options:()=>eA,parse:()=>eI,parseInline:()=>eE,parser:()=>eC,setOptions:()=>eP,use:()=>ez,walkTokens:()=>eL});var s=n(),l={exec:()=>null};function i(e){let t=[];return r=>{let n=Math.max(0,Math.min(3,r-1)),s=t[n];return s||(s=e(n),t[n]=s),s}}function a(e,t=""){let r="string"==typeof e?e:e.source,n={replace:(e,t)=>{let s="string"==typeof t?t:t.source;return s=s.replace(c.caret,"$1"),r=r.replace(e,s),n},getRegex:()=>new RegExp(r,t)};return n}var o=((e="")=>{try{return!!RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),c={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:i(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:i(e=>RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:i(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:i(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:i(e=>RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:i(e=>RegExp(`^ {0,${e}}>`))},h=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,p=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,u=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,k=a(u).replace(/bull/g,p).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),g=a(u).replace(/bull/g,p).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),d=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,f=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,x=a(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",f).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),b=a(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,p).getRegex(),m="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",w=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,$=a("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",w).replace("tag",m).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),S=e=>a(d).replace("hr",h).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",e).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",m).getRegex(),y=S(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),R=S(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),T={blockquote:a(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",R).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:x,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:h,html:$,lheading:k,list:b,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:y,table:l,text:/^[^\n]+/},_=a("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",h).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",m).getRegex(),z={...T,lheading:g,table:_,paragraph:a(d).replace("hr",h).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",_).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",m).getRegex()},A={...T,html:a("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",w).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:l,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:a(d).replace("hr",h).replace("heading",` *#{1,6} *[^
2
+ ]`).replace("lheading",k).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},P=/^( {2,}|\\)\n(?!\s*$)/,L=/[\p{P}\p{S}]/u,E=/[\s\p{P}\p{S}]/u,I=/[^\s\p{P}\p{S}]/u,C=a(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,E).getRegex(),B=/(?!~)[\p{P}\p{S}]/u,q=a(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",o?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),v=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,D=a(v,"u").replace(/punct/g,L).getRegex(),Z=a(v,"u").replace(/punct/g,B).getRegex(),Q=a(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,"u").replace(/openQuote/g,/[\p{Pi}\p{Ps}"']/u).replace(/punct/g,L).getRegex(),O="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",M=a(O,"gu").replace(/notPunctSpace/g,I).replace(/punctSpace/g,E).replace(/punct/g,L).getRegex(),N=a(O,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,B).getRegex(),j=a("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,I).replace(/punctSpace/g,E).replace(/punct/g,L).getRegex(),H=a("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,I).replace(/punctSpace/g,E).replace(/punct/g,L).getRegex(),G=a("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,I).replace(/punctSpace/g,E).replace(/punct/g,L).getRegex(),X=a(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,L).getRegex(),U=a("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)","gu").replace(/notPunctSpace/g,I).replace(/punctSpace/g,E).replace(/punct/g,L).getRegex(),W=a(/\\(punct)/,"gu").replace(/punct/g,L).getRegex(),F=a(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),J=a(w).replace("(?:--\x3e|$)","--\x3e").getRegex(),K=a("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",J).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),V=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Y=a(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",V).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ee=a(/^!?\[(label)\]\[(ref)\]/).replace("label",V).replace("ref",f).getRegex(),et=a(/^!?\[(ref)\](?:\[\])?/).replace("ref",f).getRegex(),er=a("reflink|nolink(?!\\()","g").replace("reflink",ee).replace("nolink",et).getRegex(),en=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,es={_backpedal:l,anyPunctuation:W,autolink:F,blockSkip:q,br:P,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:l,delLDelim:l,delRDelim:l,emStrongLDelim:D,emStrongRDelimAst:M,emStrongRDelimUnd:H,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:Y,nolink:et,punctuation:C,reflink:ee,reflinkSearch:er,tag:K,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:l},el={...es,emStrongLDelim:Q,emStrongRDelimAst:j,emStrongRDelimUnd:G,link:a(/^!?\[(label)\]\((.*?)\)/).replace("label",V).getRegex(),reflink:a(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",V).getRegex()},ei={...es,emStrongRDelimAst:N,emStrongLDelim:Z,delLDelim:X,delRDelim:U,url:a(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",en).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:a(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",en).getRegex()},ea={...ei,br:a(P).replace("{2,}","*").getRegex(),text:a(ei.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},eo={normal:T,gfm:z,pedantic:A},ec={normal:es,gfm:ei,breaks:ea,pedantic:el},eh={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ep=e=>eh[e];function eu(e,t){if(t){if(c.escapeTest.test(e))return e.replace(c.escapeReplace,ep)}else if(c.escapeTestNoEncode.test(e))return e.replace(c.escapeReplaceNoEncode,ep);return e}function ek(e){try{e=encodeURI(e).replace(c.percentDecode,"%")}catch{return null}return e}function eg(e,t){let r=e.replace(c.findPipe,(e,t,r)=>{let n=!1,s=t;for(;--s>=0&&"\\"===r[s];)n=!n;return n?"|":" |"}).split(c.splitPipe),n=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;n<r.length;n++)r[n]=r[n].trim().replace(c.slashPipe,"|");return r}function ed(e,t,r){let n=e.length;if(0===n)return"";let s=0;for(;s<n;){let l=e.charAt(n-s-1);if(l!==t||r)if(l!==t&&r)s++;else break;else s++}return e.slice(0,n-s)}function ef(e){let t=e.split(`
3
+ `),r=t.length-1;for(;r>=0&&c.blankLine.test(t[r]);)r--;return t.length-r<=2?e:t.slice(0,r+1).join(`
4
+ `)}function ex(e,t,r,n,s){let l=t.href,i=t.title||null,a=e[1].replace(s.other.outputLinkReplace,"$1"),o="!"===e[0].charAt(0);n.state.inLink=!0;let c=n.state.linkEmitted,h=n.state.inRawBlock;n.state.linkEmitted=!1;let p=n.inlineTokens(a),u=n.state.linkEmitted;if(n.state.linkEmitted=c,n.state.inLink=!1,!o){if(u){n.state.inRawBlock=h;return}n.state.linkEmitted=!0}return{type:o?"image":"link",raw:r,href:l,title:i,text:a,tokens:p}}var eb=class{constructor(e){this.options=e||s}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:ef(t[0]),r=e.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e,codeBlockStyle:"indented",text:r}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],r=function(e,t,r){let n=e.match(r.other.indentCodeCompensation);if(null===n)return t;let s=n[1];return t.split(`
5
+ `).map(e=>{let t=e.match(r.other.beginningSpace);if(null===t)return e;let[n]=t;return n.length>=s.length?e.slice(s.length):e}).join(`
6
+ `)}(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=ed(e,"#");(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:"heading",raw:ed(t[0],`
7
+ `),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:ed(t[0],`
8
+ `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=ed(t[0],`
9
+ `).split(`
10
+ `),r="",n="",s=[];for(;e.length>0;){let t=!1,l=[],i;for(i=0;i<e.length;i++)if(this.rules.other.blockquoteStart.test(e[i]))l.push(e[i]),t=!0;else if(t)break;else l.push(e[i]);e=e.slice(i);let a=l.join(`
11
+ `),o=a.replace(this.rules.other.blockquoteSetextReplace,`
12
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
13
+ ${a}`:a,n=n?`${n}
14
+ ${o}`:o;let c=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(o,s,!0),this.lexer.state.top=c,0===e.length)break;let h=s.at(-1);if(h?.type==="code")break;if(h?.type==="blockquote"){let t=e.join(`
15
+ `),l=h.raw+`
16
+ `+t.replace(this.rules.other.blockquoteSetextReplace2,""),i=this.blockquote(l);s[s.length-1]=i,r=`${r}
17
+ ${t}`,n=n.substring(0,n.length-h.text.length)+i.text;break}if(h?.type==="list"){let t=h.raw+`
18
+ `+e.join(`
19
+ `),l=this.list(t);s[s.length-1]=l,r=r.substring(0,r.length-h.raw.length)+l.raw,n=n.substring(0,n.length-h.raw.length)+l.raw,e=t.substring(s.at(-1).raw.length).split(`
20
+ `);continue}}return{type:"blockquote",raw:r,tokens:s,text:n}}}list(e){let t=this.rules.block.list.exec(e);if(t){let r=t[1].trim(),n=r.length>1,s={type:"list",raw:"",ordered:n,start:n?+r.slice(0,-1):"",loose:!1,items:[]};r=n?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=n?r:"[*+-]");let l=this.rules.other.listItemRegex(r),i=!1;for(;e;){let r=!1,n="",a="";if(!(t=l.exec(e))||this.rules.block.hr.test(e))break;n=t[0],e=e.substring(n.length);let o=function(e,t=0){let r=t,n="";for(let t of e)if(" "===t){let e=4-r%4;n+=" ".repeat(e),r+=e}else n+=t,r++;return n}(t[2].split(`
21
+ `,1)[0],t[1].length),c=e.split(`
22
+ `,1)[0],h=!o.trim(),p=0;if(this.options.pedantic?(p=2,a=o.trimStart()):h?p=t[1].length+1:(p=(p=o.search(this.rules.other.nonSpaceChar))>4?1:p,a=o.slice(p),p+=t[1].length),h&&this.rules.other.blankLine.test(c)&&(n+=c+`
23
+ `,e=e.substring(c.length+1),r=!0),!r){let t=this.rules.other.nextBulletRegex(p),r=this.rules.other.hrRegex(p),s=this.rules.other.fencesBeginRegex(p),l=this.rules.other.headingBeginRegex(p),i=this.rules.other.htmlBeginRegex(p),u=this.rules.other.blockquoteBeginRegex(p);for(;e;){let k=e.split(`
24
+ `,1)[0],g;if(c=k,g=this.options.pedantic?c=c.replace(this.rules.other.listReplaceNesting," "):c.replace(this.rules.other.tabCharGlobal," "),s.test(c)||l.test(c)||i.test(c)||u.test(c)||t.test(c)||r.test(c))break;if(g.search(this.rules.other.nonSpaceChar)>=p||!c.trim())a+=`
25
+ `+g.slice(p);else{if(h||o.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||s.test(o)||l.test(o)||r.test(o))break;a+=`
26
+ `+c}h=!c.trim(),n+=k+`
27
+ `,e=e.substring(k.length+1),o=g.slice(p)}}s.loose||(i?s.loose=!0:this.rules.other.doubleBlankLine.test(n)&&(i=!0)),s.items.push({type:"list_item",raw:n,task:!!this.options.gfm&&this.rules.other.listIsTask.test(a),loose:!1,text:a,tokens:[]}),s.raw+=n}let a=s.items.at(-1);if(!a)return;for(let e of(a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd(),s.raw=s.raw.trimEnd(),s.items))if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),!s.loose){let t=e.tokens.filter(e=>"space"===e.type);s.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}for(let e of s.items){let t=e.tokens[0];if(e.task&&(t?.type==="text"||t?.type==="paragraph")){e.text=e.text.replace(this.rules.other.listReplaceTask,""),t.raw=t.raw.replace(this.rules.other.listReplaceTask,""),t.text=t.text.replace(this.rules.other.listReplaceTask,"");for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,"");break}let r=this.rules.other.listTaskCheckbox.exec(e.raw);if(r){let t={type:"checkbox",raw:r[0]+" ",checked:"[ ]"!==r[0]};e.checked=t.checked,s.loose?e.tokens[0]&&["paragraph","text"].includes(e.tokens[0].type)&&"tokens"in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=t.raw+e.tokens[0].raw,e.tokens[0].text=t.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(t)):e.tokens.unshift({type:"paragraph",raw:t.raw,text:t.raw,tokens:[t]}):e.tokens.unshift(t)}}else e.task&&(e.task=!1)}if(s.loose)for(let e of s.items)for(let t of(e.loose=!0,e.tokens))"text"===t.type&&(t.type="paragraph");return s}}html(e){let t=this.rules.block.html.exec(e);if(t){let e=ef(t[0]);return{type:"html",block:!0,raw:e,pre:"pre"===t[1]||"script"===t[1]||"style"===t[1],text:e}}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:ed(t[0],`
28
+ `),href:r,title:n}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let r=eg(t[1]),n=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
29
+ `):[],l={type:"table",raw:ed(t[0],`
30
+ `),header:[],align:[],rows:[]};if(r.length===n.length){for(let e of n)this.rules.other.tableAlignRight.test(e)?l.align.push("right"):this.rules.other.tableAlignCenter.test(e)?l.align.push("center"):this.rules.other.tableAlignLeft.test(e)?l.align.push("left"):l.align.push(null);for(let e=0;e<r.length;e++)l.header.push({text:r[e],tokens:this.lexer.inline(r[e]),header:!0,align:l.align[e]});for(let e of s)l.rows.push(eg(e,l.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:l.align[t]})));return l}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:"heading",raw:ed(t[0],`
31
+ `),depth:"="===t[2].charAt(0)?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
32
+ `?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=ed(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{let e=function(e){if(-1===e.indexOf(")"))return -1;let t=0;for(let r=0;r<e.length;r++)if("\\"===e[r])r++;else if("("===e[r])t++;else if(")"===e[r]&&--t<0)return r;return t>0?-2:-1}(t[2]);if(-2===e)return;if(e>-1){let r=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,r).trim(),t[3]=""}}let r=t[2],n="";if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(r);e&&(r=e[1],n=e[3])}else n=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(r=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?r.slice(1):r.slice(1,-1)),ex(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){let e=t[(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," ").toLowerCase()];if(!e){let e=r[0].charAt(0);return{type:"text",raw:e,text:e}}return ex(r,e,r[0],this.lexer,this.rules)}}emStrong(e,t,r=""){let n=this.rules.inline.emStrongLDelim.exec(e);if(!(!n||!n[1]&&!n[2]&&!n[3]&&!n[4]||n[4]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[3])||!r||this.rules.inline.punctuation.exec(r))){let s=[...n[0]].length-1,l,i,a=s,o=0,c=n[0][0],h=r===c,p="*"===c?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(p.lastIndex=0,t=t.slice(-1*e.length+s);null!==(n=p.exec(t));){if(!(l=n[1]||n[2]||n[3]||n[4]||n[5]||n[6]))continue;if(i=[...l].length,n[3]||n[4]){a+=i;continue}if(n[5]||n[6]){if(s%3&&!((s+i)%3)){o+=i;continue}if(h)break}if((a-=i)>0)continue;i=Math.min(i,i+a+o);let t=[...n[0]][0].length,r=e.slice(0,s+n.index+t+i);if(Math.min(s,i)%2){let e=r.slice(1,-1);return{type:"em",raw:r,text:e,tokens:this.lexer.inlineTokens(e)}}let c=r.slice(2,-2);return{type:"strong",raw:r,text:c,tokens:this.lexer.inlineTokens(c)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(e),n=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return r&&n&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,r=""){let n=this.rules.inline.delLDelim.exec(e);if(n&&(!n[1]||!r||this.rules.inline.punctuation.exec(r))){let r=[...n[0]].length-1,s,l,i=r,a=this.rules.inline.delRDelim;for(a.lastIndex=0,t=t.slice(-1*e.length+r);null!==(n=a.exec(t));){if(!(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6])||(l=[...s].length)!==r)continue;if(n[3]||n[4]){i+=l;continue}if((i-=l)>0)continue;l=Math.min(l,l+i);let t=[...n[0]][0].length,a=e.slice(0,r+n.index+t+l),o=a.slice(r,-r);return{type:"del",raw:a,text:o,tokens:this.lexer.inlineTokens(o)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,r;return r="@"===t[2]?"mailto:"+(e=t[1]):e=t[1],{type:"link",raw:t[0],text:e,href:r,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,r;if("@"===t[2])r="mailto:"+(e=t[0]);else{let n;do n=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(n!==t[0]);e=t[0],r="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:r,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},em=class e{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||s,this.options.tokenizer=this.options.tokenizer||new eb,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,linkEmitted:!1,top:!0};let t={other:c,block:eo.normal,inline:ec.normal};this.options.pedantic?(t.block=eo.pedantic,t.inline=ec.pedantic):this.options.gfm&&(t.block=eo.gfm,this.options.breaks?t.inline=ec.breaks:t.inline=ec.gfm),this.tokenizer.rules=t}static get rules(){return{block:eo,inline:ec}}static lex(t,r){return new e(r).lex(t)}static lexInline(t,r){return new e(r).inlineTokens(t)}lex(e){e=e.replace(c.carriageReturn,`
33
+ `),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],r=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(c.tabCharGlobal," ").replace(c.spaceLine,""));let n=1/0;for(;e;){let s;if(e.length<n)n=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}if(this.options.extensions?.block?.some(r=>!!(s=r.call({lexer:this},e,t))&&(e=e.substring(s.raw.length),t.push(s),!0)))continue;if(s=this.tokenizer.space(e)){e=e.substring(s.raw.length);let r=t.at(-1);1===s.raw.length&&void 0!==r?r.raw+=`
34
+ `:t.push(s);continue}if(s=this.tokenizer.code(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=(r.raw.endsWith(`
35
+ `)?"":`
36
+ `)+s.raw,r.text+=`
37
+ `+s.text,this.inlineQueue.at(-1).src=r.text):t.push(s);continue}if((s=this.tokenizer.fences(e))||(s=this.tokenizer.heading(e))||(s=this.tokenizer.hr(e))||(s=this.tokenizer.blockquote(e))||(s=this.tokenizer.list(e))||(s=this.tokenizer.html(e))){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.def(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=(r.raw.endsWith(`
38
+ `)?"":`
39
+ `)+s.raw,r.text+=`
40
+ `+s.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title},t.push(s));continue}if((s=this.tokenizer.table(e))||(s=this.tokenizer.lheading(e))){e=e.substring(s.raw.length),t.push(s);continue}let l=e;if(this.options.extensions?.startBlock){let t=1/0,r=e.slice(1),n;this.options.extensions.startBlock.forEach(e=>{"number"==typeof(n=e.call({lexer:this},r))&&n>=0&&(t=Math.min(t,n))}),t<1/0&&t>=0&&(l=e.substring(0,t+1))}if(this.state.top&&(s=this.tokenizer.paragraph(l))){let n=t.at(-1);r&&n?.type==="paragraph"?(n.raw+=(n.raw.endsWith(`
41
+ `)?"":`
42
+ `)+s.raw,n.text+=`
43
+ `+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(s),r=l.length!==e.length,e=e.substring(s.raw.length);continue}if(s=this.tokenizer.text(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="text"?(r.raw+=(r.raw.endsWith(`
44
+ `)?"":`
45
+ `)+s.raw,r.text+=`
46
+ `+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(s);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}linkInText(e){if(!e.includes("["))return!1;let t=this.tokenizer.rules.inline.link;for(let r of e.matchAll(this.tokenizer.rules.inline.blockSkip))if(t.test(r[0])&&"!"!==e.charAt(r.index-1))return!0;for(let t of e.matchAll(this.tokenizer.rules.inline.reflinkSearch)){let e=t[0],r=e.lastIndexOf("[");if(!("!"===e.charAt(0)||!Object.hasOwn(this.tokens.links,e.slice(r+1,-1)))&&!(r>1&&this.linkInText(e.slice(1,r-1))))return!0}return!1}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let r=e;if(this.tokens.links&&e.includes("[")){let e=this.tokenizer.rules.inline.reflinkSearch,t=r=>{let n=r.lastIndexOf("[");if(!Object.hasOwn(this.tokens.links,r.slice(n+1,-1)))return r;if(n>1&&"!"!==r.charAt(0)){let s=r.slice(1,n-1);if(this.linkInText(s))return"["+s.replace(e,t)+"]["+"a".repeat(r.length-n-2)+"]"}return"["+"a".repeat(r.length-2)+"]"};r=r.replace(e,t)}r=(r=r.replace(this.tokenizer.rules.inline.anyPunctuation,e=>"+".repeat(e.length))).replace(this.tokenizer.rules.inline.blockSkip,(e,t,r)=>{let n=r?r.length:0;return e.slice(0,n)+"["+"a".repeat(e.length-n-2)+"]"}),r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let n=!1,s="",l=1/0;for(;e;){let i;if(e.length<l)l=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}if(n||(s=""),n=!1,this.options.extensions?.inline?.some(r=>!!(i=r.call({lexer:this},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)))continue;if((i=this.tokenizer.escape(e))||(i=this.tokenizer.tag(e))||(i=this.tokenizer.link(e))){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(i.raw.length);let r=t.at(-1);"text"===i.type&&r?.type==="text"?(r.raw+=i.raw,r.text+=i.text):t.push(i);continue}if((i=this.tokenizer.emStrong(e,r,s))||(i=this.tokenizer.codespan(e))||(i=this.tokenizer.br(e))||(i=this.tokenizer.del(e,r,s))||(i=this.tokenizer.autolink(e))||!this.state.inLink&&(i=this.tokenizer.url(e))){e=e.substring(i.raw.length),t.push(i);continue}let a=e;if(this.options.extensions?.startInline){let t=1/0,r=e.slice(1),n;this.options.extensions.startInline.forEach(e=>{"number"==typeof(n=e.call({lexer:this},r))&&n>=0&&(t=Math.min(t,n))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(i=this.tokenizer.inlineText(a)){e=e.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(s=i.raw.slice(-1)),n=!0;let r=t.at(-1);r?.type==="text"?(r.raw+=i.raw,r.text+=i.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t="Infinite loop on byte: "+e;if(this.options.silent)console.error(t);else throw Error(t)}},ew=class{constructor(e){this.options=e||s}space(e){return""}code({text:e,lang:t,escaped:r}){let n=(t||"").match(c.notSpaceStart)?.[0],s=e.replace(c.endingNewline,"")+`
47
+ `;return n?'<pre><code class="language-'+eu(n)+'">'+(r?s:eu(s,!0))+`</code></pre>
48
+ `:"<pre><code>"+(r?s:eu(s,!0))+`</code></pre>
49
+ `}blockquote({tokens:e}){return`<blockquote>
50
+ ${this.parser.parse(e)}</blockquote>
51
+ `}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
52
+ `}hr(e){return`<hr>
53
+ `}list(e){let t=e.ordered,r=e.start,n="";for(let t=0;t<e.items.length;t++){let r=e.items[t];n+=this.listitem(r)}let s=t?"ol":"ul";return"<"+s+(t&&1!==r?' start="'+r+'"':"")+`>
54
+ `+n+"</"+s+`>
55
+ `}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
56
+ `}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
57
+ `}table(e){let t="",r="";for(let t=0;t<e.header.length;t++)r+=this.tablecell(e.header[t]);t+=this.tablerow({text:r});let n="";for(let t=0;t<e.rows.length;t++){let s=e.rows[t];r="";for(let e=0;e<s.length;e++)r+=this.tablecell(s[e]);n+=this.tablerow({text:r})}return n&&(n=`<tbody>${n}</tbody>`),`<table>
58
+ <thead>
59
+ `+t+`</thead>
60
+ `+n+`</table>
61
+ `}tablerow({text:e}){return`<tr>
62
+ ${e}</tr>
63
+ `}tablecell(e){let t=this.parser.parseInline(e.tokens),r=e.header?"th":"td";return(e.align?`<${r} align="${e.align}">`:`<${r}>`)+t+`</${r}>
64
+ `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${eu(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:r}){let n=this.parser.parseInline(r),s=ek(e);if(null===s)return n;let l='<a href="'+(e=s)+'"';return t&&(l+=' title="'+eu(t)+'"'),l+=">"+n+"</a>"}image({href:e,title:t,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let s=ek(e);if(null===s)return eu(r);e=s;let l=`<img src="${e}" alt="${eu(r)}"`;return t&&(l+=` title="${eu(t)}"`),l+=">"}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:eu(e.text)}},e$=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},eS=class e{constructor(e){this.options=e||s,this.options.renderer=this.options.renderer||new ew,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new e$}static parse(t,r){return new e(r).parse(t)}static parseInline(t,r){return new e(r).parseInline(t)}parse(e){this.renderer.parser=this;let t="";for(let r=0;r<e.length;r++){let n=e[r];if(this.options.extensions?.renderers?.[n.type]){let e=this.options.extensions.renderers[n.type].call({parser:this},n);if(!1!==e||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(n.type)){t+=e||"";continue}}switch(n.type){case"space":t+=this.renderer.space(n);break;case"hr":t+=this.renderer.hr(n);break;case"heading":t+=this.renderer.heading(n);break;case"code":t+=this.renderer.code(n);break;case"table":t+=this.renderer.table(n);break;case"blockquote":t+=this.renderer.blockquote(n);break;case"list":t+=this.renderer.list(n);break;case"checkbox":t+=this.renderer.checkbox(n);break;case"html":t+=this.renderer.html(n);break;case"def":t+=this.renderer.def(n);break;case"paragraph":t+=this.renderer.paragraph(n);break;case"text":t+=this.renderer.text(n);break;default:{let e='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let r="";for(let n=0;n<e.length;n++){let s=e[n];if(this.options.extensions?.renderers?.[s.type]){let e=this.options.extensions.renderers[s.type].call({parser:this},s);if(!1!==e||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(s.type)){r+=e||"";continue}}switch(s.type){case"escape":case"text":r+=t.text(s);break;case"html":r+=t.html(s);break;case"link":r+=t.link(s);break;case"image":r+=t.image(s);break;case"checkbox":r+=t.checkbox(s);break;case"strong":r+=t.strong(s);break;case"em":r+=t.em(s);break;case"codespan":r+=t.codespan(s);break;case"br":r+=t.br(s);break;case"del":r+=t.del(s);break;default:{let e='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return r}},ey=class{constructor(e){this.options=e||s}static{this.passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])}static{this.passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"])}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?em.lex:em.lexInline}provideParser(e=this.block){return e?eS.parse:eS.parseInline}},eR=class{constructor(...e){this.defaults=n(),this.options=this.setOptions,this.parse=this.parseMarkdown(!0),this.parseInline=this.parseMarkdown(!1),this.Parser=eS,this.Renderer=ew,this.TextRenderer=e$,this.Lexer=em,this.Tokenizer=eb,this.Hooks=ey,this.use(...e)}walkTokens(e,t){let r=[];for(let n of e)switch(r=r.concat(t.call(this,n)),n.type){case"table":for(let e of n.header)r=r.concat(this.walkTokens(e.tokens,t));for(let e of n.rows)for(let n of e)r=r.concat(this.walkTokens(n.tokens,t));break;case"list":r=r.concat(this.walkTokens(n.items,t));break;default:{let e=n;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(n=>{let s=e[n].flat(1/0);r=r.concat(this.walkTokens(s,t))}):e.tokens&&(r=r.concat(this.walkTokens(e.tokens,t)))}}return r}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let r={...e};if(r.async=this.defaults.async||r.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error("extension name required");if("renderer"in e){let r=t.renderers[e.name];r?t.renderers[e.name]=function(...t){let n=e.renderer.apply(this,t);return!1===n&&(n=r.apply(this,t)),n}:t.renderers[e.name]=e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw Error("extension level must be 'block' or 'inline'");let r=t[e.level];r?r.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),r.extensions=t),e.renderer){let t=this.defaults.renderer||new ew(this.defaults);for(let r in e.renderer){if(!(r in t))throw Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let n=e.renderer[r],s=t[r];t[r]=(...e)=>{let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r||""}}r.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new eb(this.defaults);for(let r in e.tokenizer){if(!(r in t))throw Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let n=e.tokenizer[r],s=t[r];t[r]=(...e)=>{let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r}}r.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new ey;for(let r in e.hooks){if(!(r in t))throw Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let n=e.hooks[r],s=t[r];ey.passThroughHooks.has(r)?t[r]=e=>{if(this.defaults.async&&ey.passThroughHooksRespectAsync.has(r))return(async()=>{let r=await n.call(t,e);return s.call(t,r)})();let l=n.call(t,e);return s.call(t,l)}:t[r]=(...e)=>{if(this.defaults.async)return(async()=>{let r=await n.apply(t,e);return!1===r&&(r=await s.apply(t,e)),r})();let r=n.apply(t,e);return!1===r&&(r=s.apply(t,e)),r}}r.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,n=e.walkTokens;r.walkTokens=function(e){let r=[];return r.push(n.call(this,e)),t&&(r=r.concat(t.call(this,e))),r}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return em.lex(e,t??this.defaults)}parser(e,t){return eS.parse(e,t??this.defaults)}parseMarkdown(e){return(t,r)=>{let n={...r},s={...this.defaults,...n},l=this.onError(!!s.silent,!!s.async);if(!0===this.defaults.async&&!1===n.async)return l(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||null===t)return l(Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return l(Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let r=s.hooks?await s.hooks.preprocess(t):t,n=await (s.hooks?await s.hooks.provideLexer(e):e?em.lex:em.lexInline)(r,s),l=s.hooks?await s.hooks.processAllTokens(n):n;s.walkTokens&&await Promise.all(this.walkTokens(l,s.walkTokens));let i=await (s.hooks?await s.hooks.provideParser(e):e?eS.parse:eS.parseInline)(l,s);return s.hooks?await s.hooks.postprocess(i):i})().catch(l);try{s.hooks&&(t=s.hooks.preprocess(t));let r=(s.hooks?s.hooks.provideLexer(e):e?em.lex:em.lexInline)(t,s);s.hooks&&(r=s.hooks.processAllTokens(r)),s.walkTokens&&this.walkTokens(r,s.walkTokens);let n=(s.hooks?s.hooks.provideParser(e):e?eS.parse:eS.parseInline)(r,s);return s.hooks&&(n=s.hooks.postprocess(n)),n}catch(e){return l(e)}}}onError(e,t){return r=>{if(r.message+=`
65
+ Please report this to https://github.com/markedjs/marked.`,e){let e="<p>An error occurred:</p><pre>"+eu(r.message+"",!0)+"</pre>";return t?Promise.resolve(e):e}if(t)return Promise.reject(r);throw r}}},eT=new eR;function e_(e,t){return eT.parse(e,t)}function ez(...e){return eT.use(...e),e_.defaults=eT.defaults,s=e_.defaults,e_}e_.options=e_.setOptions=function(e){return eT.setOptions(e),e_.defaults=eT.defaults,s=e_.defaults,e_},e_.getDefaults=n,e_.defaults=s,e_.use=ez,e_.walkTokens=function(e,t){return eT.walkTokens(e,t)},e_.parseInline=eT.parseInline,e_.Parser=eS,e_.parser=eS.parse,e_.Renderer=ew,e_.TextRenderer=e$,e_.Lexer=em,e_.lexer=em.lex,e_.Tokenizer=eb,e_.Hooks=ey,e_.parse=e_;var eA=e_.options,eP=e_.setOptions,eL=e_.walkTokens,eE=e_.parseInline,eI=e_,eC=eS.parse,eB=em.lex}}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4465],{43547:(e,t,r)=>{Promise.resolve().then(r.bind(r,88512))},88512:(e,t,r)=>{"use strict";r.d(t,{default:()=>g});var s=r(95155),a=r(12115),i=r(35497),l=r(28777),n=r(88105);let o="basic-chat.sessions",d="basic-chat.activeSessionId",c="basic-chat.activeProviderId",m="basic-chat.draft";function u(){return globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID():`chat_${Date.now()}_${Math.random().toString(16).slice(2)}`}function p(e){if("string"==typeof e)return e;if(null==e)return"";if(Array.isArray(e))return e.map(p).filter(Boolean).join(" ");if("object"==typeof e){if("string"==typeof e.message)return e.message;if("string"==typeof e.error)return e.error;try{return JSON.stringify(e)}catch{}}return String(e)}function h(e=""){let t=p(e).replace(/\s+/g," ").trim();return t?t.length>52?`${t.slice(0,52).trimEnd()}…`:t:"New chat"}async function x(e){return await new Promise((t,r)=>{let s=new FileReader;s.onload=()=>t(String(s.result||"")),s.onerror=()=>r(s.error||Error("Failed to read file")),s.readAsDataURL(e)})}function f(e){return e?.name||function(e=""){return String(e).replace(/[-_]/g," ").replace(/\b\w/g,e=>e.toUpperCase()).trim()||"Unknown"}(e?.provider||e?.id||"provider")}function g(){let[e,t]=(0,a.useState)([]),[r,g]=(0,a.useState)(!0),[w,v]=(0,a.useState)(""),[b,N]=(0,a.useState)(()=>{try{let e=function(e,t){try{return JSON.parse(e)}catch{return t}}(globalThis.localStorage.getItem(o),[]);return Array.isArray(e)?e.map(e=>({...e,messages:Array.isArray(e.messages)?e.messages:[]})):[]}catch{return[]}}),[y,j]=(0,a.useState)(()=>globalThis.localStorage.getItem(d)||""),[S,I]=(0,a.useState)(()=>globalThis.localStorage.getItem(c)||""),[A,k]=(0,a.useState)(""),[D,O]=(0,a.useState)(()=>globalThis.localStorage.getItem(m)||""),[$,C]=(0,a.useState)([]),[_,M]=(0,a.useState)(!1),[E,T]=(0,a.useState)(""),[U,R]=(0,a.useState)(""),[z,q]=(0,a.useState)(!1),[P,J]=(0,a.useState)(!1),[B,F]=(0,a.useState)(!1),K=(0,a.useRef)(null),L=(0,a.useRef)(null),W=(0,a.useRef)(!1),H=(0,a.useRef)(null),Y=(0,a.useRef)(null);(0,a.useEffect)(()=>{q(!0)},[]),(0,a.useEffect)(()=>{let e=!1;return async function(){g(!0),v("");try{let r=await fetch("/api/providers",{cache:"no-store"}),s=await r.json().catch(()=>({})),a=Array.isArray(s.connections)?s.connections.filter(e=>e?.isActive!==!1):[];if(0===a.length){e||(t([]),v("No providers connected yet."));return}let i=new Map;for(let e of a){let t=e.provider||e.id,r=f(e),s=(0,n.mq)(t)?"openai-compatible":(0,n.gb)(t)?"anthropic-compatible":t;i.has(t)||i.set(t,{providerId:t,providerName:r,providerType:s,connections:[],models:[]});let a=i.get(t);a.providerName=a.providerName||r,a.providerType=a.providerType||s,a.connections.push(e);let o=(0,l.KC)(t).map(t=>t?.id?{id:`${e.provider}/${t.id}`,requestModel:`${e.provider}/${t.id}`,name:t.name||t.id,providerId:e.provider,providerName:f(e),source:"static"}:null).filter(Boolean);a.models.push(...o)}for(let e of(await Promise.all(a.map(async e=>{try{let t=await fetch(`/api/providers/${e.id}/models`,{cache:"no-store"}),r=await t.json().catch(()=>({}));if(!t.ok)return{connection:e,models:[]};let s=(Array.isArray(r?.models)?r.models:Array.isArray(r?.data)?r.data:Array.isArray(r?.results)?r.results:Array.isArray(r)?r:[]).map(t=>(function(e,t){let r="string"==typeof e?e:e?.id||e?.name||e?.model||"";if(!r)return null;let s="string"==typeof e?e:e?.name||e?.displayName||r,a=r;return((0,n.mq)(t.provider)||(0,n.gb)(t.provider))&&!r.includes("/")&&(a=`${t.provider}/${r}`),{id:a,requestModel:a,name:s,providerId:t.provider,providerName:f(t),source:"live"}})(t,e)).filter(Boolean);return{connection:e,models:s}}catch{return{connection:e,models:[]}}})))){let t=e.connection.provider||e.connection.id,r=i.get(t);r&&r.models.push(...e.models)}let o=Array.from(i.values()).map(e=>({...e,models:(function(e){let t=new Map;for(let r of e)r?.id&&(t.has(r.id)||t.set(r.id,r));return Array.from(t.values())})(e.models).sort((e,t)=>e.name.localeCompare(t.name))})).filter(e=>e.models.length>0).sort((e,t)=>e.providerName.localeCompare(t.providerName));e||(t(o),0===o.length&&v("Providers connected but no models available."))}catch(r){e||(v(p(r?.message)||"Failed to load providers/models."),t([]))}finally{e||g(!1)}}(),()=>{e=!0}},[]),(0,a.useEffect)(()=>{let e=e=>{H.current&&!H.current.contains(e.target)&&J(!1),Y.current&&!Y.current.contains(e.target)&&F(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let G=(0,a.useMemo)(()=>{let t=new Map;for(let r of e)for(let e of r.models)t.set(e.id,{...e,providerId:r.providerId,providerName:r.providerName});return t},[e]),Q=(0,a.useMemo)(()=>e.find(e=>e.providerId===S)||e[0]||null,[e,S]),V=(0,a.useMemo)(()=>{if(A&&G.has(A))return G.get(A);if(y){let e=b.find(e=>e.id===y);if(e?.modelId&&G.has(e.modelId))return G.get(e.modelId)}return Q?.models?.[0]||null},[A,G,Q,b,y]),X=(0,a.useMemo)(()=>b.find(e=>e.id===y)||null,[b,y]),Z=X?.messages||[],ee=(0,a.useMemo)(()=>[...b].sort((e,t)=>new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime()),[b]),et=!_&&!!V&&(D.trim().length>0||$.length>0);(0,a.useEffect)(()=>{if(z)try{globalThis.localStorage.setItem(o,JSON.stringify(b)),globalThis.localStorage.setItem(d,y),globalThis.localStorage.setItem(c,S),globalThis.localStorage.setItem(m,D)}catch{}},[z,b,y,S,D]),(0,a.useEffect)(()=>{if(!z||r||W.current||0===e.length)return;let t=e.find(e=>e.providerId===S)||e[0],s=A&&G.has(A)?G.get(A):t.models[0];if(b.length>0){let e=b.find(e=>e.id===y)||b[0],r=e?.modelId&&G.has(e.modelId)?G.get(e.modelId):s;W.current=!0,j(e.id),I(r?.providerId||t.providerId),k(r?.id||s.id);return}let a={id:u(),title:"New chat",providerId:t.providerId,providerName:t.providerName,modelId:s.id,modelName:s.name,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),messages:[]};W.current=!0,N([a]),j(a.id),I(t.providerId),k(s.id)},[z,r,e,G,b,y,S,A]);let er=(e,t)=>{N(r=>r.map(r=>r.id===e?t({...r,messages:Array.isArray(r.messages)?r.messages.map(e=>({...e})):[]}):r))},es=e=>e?{id:u(),title:"New chat",providerId:e.providerId,providerName:e.providerName,modelId:e.id,modelName:e.name,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),messages:[]}:null,ea=async e=>{let t=Array.from(e.target.files||[]);if(0===t.length)return;let r=t.filter(e=>e.type.startsWith("image/"));if(0===r.length){e.target.value="";return}let s=await Promise.all(r.map(async e=>({id:u(),name:e.name,type:e.type,size:e.size,dataUrl:await x(e)})));C(e=>[...e,...s]),e.target.value=""},ei=async()=>{let e=V||Q?.models?.[0]||null;if(!e)return;let t=D.trim();if(!t&&0===$.length)return;let r=y,s=b.find(e=>e.id===r);if(!s){if(!(s=es(e)))return;r=s.id,N(e=>[s,...e]),j(r)}let a={id:u(),role:"user",content:t,attachments:$.map(e=>({id:e.id,name:e.name,type:e.type,dataUrl:e.dataUrl})),createdAt:new Date().toISOString()},i=u(),l={id:i,role:"assistant",content:"",createdAt:new Date().toISOString(),status:"streaming"},n=[...s.messages||[],a,l];N(s=>s.map(s=>s.id===r?{...s,providerId:e.providerId,providerName:e.providerName,modelId:e.id,modelName:e.name,messages:n,updatedAt:new Date().toISOString(),title:"New chat"===s.title?h(t):s.title}:s)),O(""),C([]),M(!0),T(i),R(""),L.current?.abort(),L.current=new AbortController;let o=n.filter(e=>"assistant"!==e.role||e.id!==i).map(e=>({role:e.role,content:"user"===e.role?function(e){let t=p(e.content).trim(),r=Array.isArray(e.attachments)?e.attachments:[];if(0===r.length)return t;let s=[];for(let e of(t&&s.push({type:"text",text:t}),r))e?.dataUrl&&s.push({type:"image_url",image_url:{url:e.dataUrl}});return s.length>0?s:t}(e):e.content}));try{var d;let s,a=await fetch("/api/dashboard/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify({model:e.requestModel||e.id,messages:o,stream:!0}),signal:L.current.signal});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(p(e.error||e.message||`Request failed (${a.status})`))}let l=a.body?.getReader();if(!l){let e=await a.json().catch(()=>({})),t=p(e?.choices?.[0]?.message?.content||e?.output_text||e?.error||e?.message||"");er(r,e=>({...e,messages:e.messages.map(e=>e.id===i?{...e,content:t,status:"done"}:e),updatedAt:new Date().toISOString()}));return}let n=new TextDecoder,c="",m="";for(;;){let{value:e,done:t}=await l.read();if(t)break;let s=(c+=n.decode(e,{stream:!0})).split(/\r?\n/);for(let e of(c=s.pop()||"",s)){let t=e.trim();if(!t.startsWith("data:"))continue;let s=t.slice(5).trim();if(s&&"[DONE]"!==s)try{let e=JSON.parse(s),t=function(e){if(!e||"object"!=typeof e)return"";let t=e.choices?.[0];return[(t?.delta||{}).content,t?.message?.content,e.output_text,e.text].map(p).filter(Boolean)[0]||""}(e);if(!t)continue;m+=t,R(m),er(r,e=>({...e,messages:e.messages.map(e=>e.id===i?{...e,content:m,status:"streaming"}:e),updatedAt:new Date().toISOString()}))}catch{}}}er(r,e=>({...e,messages:e.messages.map(e=>e.id===i?{...e,content:m||e.content,status:"done"}:e),updatedAt:new Date().toISOString()})),d=r,s=h(t),er(d,e=>({...e,title:"New chat"===e.title?s:e.title,updatedAt:new Date().toISOString()}))}catch(e){if("AbortError"!==e.name){let t=p(e?.message||e);er(r,e=>({...e,messages:e.messages.map(e=>e.id===i?{...e,content:e.content||`Error: ${t}`,status:"error"}:e),updatedAt:new Date().toISOString()})),v(t||"Failed to send message.")}}finally{M(!1),T(""),R(""),L.current=null}},el=V?`${V.name}`:"Select model",en=V?V.requestModel:"Choose from connected providers";return(0,s.jsx)("div",{className:"relative flex-1 flex flex-col h-full min-h-0 min-w-0 bg-[#212121] text-white overflow-hidden",children:(0,s.jsxs)("div",{className:"relative mx-auto flex flex-1 h-full min-h-0 w-full max-w-4xl flex-col",children:[(0,s.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 px-4 py-3 lg:px-6",children:[(0,s.jsxs)("div",{ref:H,className:"relative",children:[(0,s.jsx)("button",{type:"button",onClick:()=>J(e=>!e),className:"flex items-center gap-3 rounded-2xl border border-white/10 bg-white/5 px-4 py-3 text-left transition hover:bg-white/8",children:(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-semibold text-white",children:el}),(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px] text-white/70",children:"expand_more"})]}),(0,s.jsx)("p",{className:"truncate text-xs text-white/55",children:en})]})}),P?(0,s.jsxs)("div",{className:"absolute left-0 top-[calc(100%+10px)] z-30 w-[min(520px,calc(100vw-2rem))] overflow-hidden rounded-[20px] border border-white/10 bg-[#262626] shadow-2xl shadow-black/50",children:[(0,s.jsxs)("div",{className:"border-b border-white/10 px-4 py-3",children:[(0,s.jsx)("p",{className:"text-xs uppercase tracking-[0.22em] text-white/45",children:"Models"}),(0,s.jsx)("p",{className:"text-sm text-white/75",children:"Only from connected providers"})]}),(0,s.jsx)("div",{className:"max-h-[60vh] overflow-y-auto p-2 custom-scrollbar",children:e.map(e=>(0,s.jsxs)("div",{className:"mb-2 rounded-[16px] border border-white/10 bg-black/20 p-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between px-2 py-2",children:[(0,s.jsx)("p",{className:"text-sm font-semibold text-white",children:e.providerName}),(0,s.jsx)(i.Ex,{size:"sm",variant:"default",children:e.models.length})]}),(0,s.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:e.models.map(e=>{let t=e.id===A;return(0,s.jsx)("button",{type:"button",onClick:()=>(e=>{let t=G.get(e);if(!t)return;let r=b.find(e=>e.id===y);if(r&&r.messages.length>0){let e=es(t);if(!e)return;N(t=>[e,...t]),j(e.id)}else if(r)N(e=>e.map(e=>e.id===r.id?{...e,providerId:t.providerId,providerName:t.providerName,modelId:t.id,modelName:t.name}:e)),j(r.id);else{let e=es(t);if(!e)return;N(t=>[e,...t]),j(e.id)}I(t.providerId),k(t.id),J(!1)})(e.id),className:`rounded-[14px] border px-3 py-3 text-left transition ${t?"border-blue-400/40 bg-blue-500/15":"border-white/10 bg-white/5 hover:bg-white/8"}`,children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"truncate text-sm font-medium text-white",children:e.name}),(0,s.jsx)("p",{className:"truncate text-[11px] text-white/45",children:e.requestModel})]}),t?(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px] text-blue-300",children:"check_circle"}):null]})},e.id)})})]},e.providerId))})]}):null]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>F(e=>!e),className:"rounded-2xl border border-white/10 bg-white/5 px-4 py-3 text-sm text-white/80 transition hover:bg-white/8",children:"History"}),(0,s.jsx)(i.$n,{variant:"ghost",size:"sm",icon:"delete",onClick:()=>{if(!y)return;let e=b.filter(e=>e.id!==y),t=e[0]||null;N(e),t?(j(t.id),I(t.providerId),k(t.modelId)):(j(""),I(""),k(""))},disabled:!y||0===b.length,children:"Clear"})]})]}),B?(0,s.jsxs)("div",{ref:Y,className:"absolute right-4 top-[72px] z-20 w-[min(360px,calc(100vw-2rem))] rounded-[20px] border border-white/10 bg-[#262626] p-2 shadow-2xl shadow-black/50 lg:right-6",children:[(0,s.jsx)("div",{className:"px-3 py-2",children:(0,s.jsx)("p",{className:"text-xs uppercase tracking-[0.22em] text-white/45",children:"Recent chats"})}),(0,s.jsx)("div",{className:"max-h-[48vh] space-y-2 overflow-y-auto p-1 custom-scrollbar",children:0===ee.length?(0,s.jsx)("div",{className:"rounded-[16px] border border-dashed border-white/10 bg-white/5 p-4 text-sm text-white/55",children:"No conversations yet."}):ee.map(e=>{let t=e.id===y,r=[...e.messages||[]].reverse().find(e=>"user"===e.role)||e.messages?.[0];return(0,s.jsx)("button",{type:"button",onClick:()=>{var t;let r;return t=e.id,void((r=b.find(e=>e.id===t))&&(j(t),I(r.providerId||S),k(r.modelId||A),F(!1)))},className:`w-full rounded-[16px] border px-3 py-3 text-left transition ${t?"border-blue-400/40 bg-blue-500/15":"border-white/10 bg-white/5 hover:bg-white/8"}`,children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("p",{className:"truncate text-sm font-medium text-white",children:e.title}),(0,s.jsx)("p",{className:"mt-1 truncate text-xs text-white/50",children:p(r?.content)||"Empty chat"})]}),(0,s.jsx)("span",{className:"text-[10px] text-white/40 shrink-0",children:function(e){if(!e)return"Now";let t=new Date(e).getTime();if(Number.isNaN(t))return"Now";let r=Math.max(1,Math.round((Date.now()-t)/6e4));if(r<60)return`${r}m`;let s=Math.round(r/60);return s<24?`${s}h`:`${Math.round(s/24)}d`}(e.updatedAt)})]})},e.id)})})]}):null,w?(0,s.jsx)("div",{className:"mt-4 rounded-[18px] border border-rose-500/20 bg-rose-500/10 px-4 py-3 text-rose-100",children:(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"error"}),(0,s.jsx)("p",{className:"text-sm leading-6",children:w})]})}):null,(0,s.jsxs)("div",{className:"flex flex-1 flex-col min-h-0",children:[(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto py-4 custom-scrollbar",children:[0===Z.length?(0,s.jsx)("div",{className:"flex min-h-[50vh] items-center justify-center px-4 text-center",children:(0,s.jsxs)("div",{className:"max-w-xl space-y-4",children:[(0,s.jsx)("div",{className:"mx-auto flex size-16 items-center justify-center rounded-[20px] border border-white/10 bg-white/5 text-white/80",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[30px]",children:"chat"})}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("h2",{className:"text-2xl font-semibold text-white",children:"Start a conversation"}),(0,s.jsx)("p",{className:"text-sm leading-6 text-white/60",children:"Simple chat interface to interact with any AI model from connected providers. Select a model and start chatting!"})]})]})}):null,(0,s.jsx)("div",{className:"mx-auto flex w-full max-w-3xl flex-col gap-4 px-4",children:Z.map(e=>{let t="user"===e.role,r="assistant"===e.role,a=r&&e.id===E&&"streaming"===e.status,i=p(e.content)||(r?U:"");return(0,s.jsx)("div",{className:`flex w-full ${t?"justify-end":"justify-start"} mb-6`,children:(0,s.jsxs)("div",{className:`max-w-[min(88%,42rem)] ${t?"rounded-3xl bg-[#2f2f2f] px-5 py-3.5 text-white":"text-white/90"}`,children:[(0,s.jsx)("div",{className:"mb-1 flex items-center justify-between gap-3",children:(0,s.jsx)("span",{className:"text-xs font-semibold",children:t?"You":V?.name||"Assistant"})}),e.attachments?.length?(0,s.jsx)("div",{className:"mb-3 grid grid-cols-2 gap-2 sm:grid-cols-3 mt-2",children:e.attachments.map(e=>(0,s.jsx)("a",{href:e.dataUrl,target:"_blank",rel:"noreferrer",className:"overflow-hidden rounded-[18px] border border-white/10 bg-black/20",children:(0,s.jsx)("img",{src:e.dataUrl,alt:e.name,className:"h-28 w-full object-cover",loading:"lazy",decoding:"async"})},e.id))}):null,(0,s.jsxs)("div",{className:"whitespace-pre-wrap break-words text-[15px] leading-7",children:[i,r&&a&&!U?(0,s.jsx)("span",{className:"inline-block animate-pulse",children:"▋"}):null]})]})},e.id)})})]}),(0,s.jsxs)("div",{className:"shrink-0 pt-2",children:[$.length>0?(0,s.jsx)("div",{className:"mx-auto mb-3 flex w-full max-w-3xl flex-wrap gap-2 px-4",children:$.map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-2",children:[(0,s.jsx)("span",{className:"text-xs text-white/80 max-w-[12rem] truncate",children:e.name}),(0,s.jsx)("button",{type:"button",onClick:()=>{var t;return t=e.id,void C(e=>e.filter(e=>e.id!==t))},className:"text-white/55 hover:text-white","aria-label":"Remove attachment",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"close"})})]},e.id))}):null,(0,s.jsx)("div",{className:"mx-auto w-full max-w-3xl px-4 pb-2",children:(0,s.jsxs)("div",{className:"rounded-[26px] bg-[#2f2f2f] px-3 pt-3 pb-2 shadow-[0_0_15px_rgba(0,0,0,0.10)] ring-1 ring-white/5",children:[(0,s.jsx)("textarea",{value:D,onChange:e=>O(e.target.value),onKeyDown:e=>{"Enter"===e.key&&!e.shiftKey&&(e.preventDefault(),et&&ei())},placeholder:"Message AI",rows:1,className:"w-full resize-none bg-transparent px-2 text-[15px] leading-6 text-white outline-none placeholder:text-white/40 custom-scrollbar max-h-[25vh] overflow-y-auto"}),(0,s.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>K.current?.click(),disabled:!V||r,className:"p-2 text-white/50 hover:text-white transition rounded-full hover:bg-white/5",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"attach_file"})}),(0,s.jsx)("input",{ref:K,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:ea}),(0,s.jsx)("span",{className:"text-xs font-medium text-white/30 truncate max-w-[120px]",children:V?V.name:"No model"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[_?(0,s.jsx)("button",{type:"button",onClick:()=>{L.current?.abort()},className:"p-2 text-white bg-white/10 hover:bg-white/20 transition rounded-full h-8 w-8 flex items-center justify-center",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"stop"})}):null,(0,s.jsx)("button",{onClick:ei,disabled:!et,className:`h-8 w-8 rounded-full flex items-center justify-center transition ${et?"bg-white text-black hover:opacity-90":"bg-white/10 text-white/30 cursor-not-allowed"}`,children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_upward"})})]})]})]})})]}),(0,s.jsx)("p",{className:"mx-auto mt-2 max-w-3xl px-4 pb-4 text-center text-[11px] text-white/30",children:"Model list is filtered from connected providers."})]})]})})}}},e=>{e.O(0,[2997,1321,705,5497,8441,3794,7358],()=>e(e.s=43547)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4465],{43547:(e,t,r)=>{Promise.resolve().then(r.bind(r,88512))},88512:(e,t,r)=>{"use strict";r.d(t,{default:()=>g});var s=r(95155),a=r(12115),i=r(35497),l=r(28777),n=r(88105);let o="basic-chat.sessions",d="basic-chat.activeSessionId",c="basic-chat.activeProviderId",m="basic-chat.draft";function u(){return globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID():`chat_${Date.now()}_${Math.random().toString(16).slice(2)}`}function p(e){if("string"==typeof e)return e;if(null==e)return"";if(Array.isArray(e))return e.map(p).filter(Boolean).join(" ");if("object"==typeof e){if("string"==typeof e.message)return e.message;if("string"==typeof e.error)return e.error;try{return JSON.stringify(e)}catch{}}return String(e)}function h(e=""){let t=p(e).replace(/\s+/g," ").trim();return t?t.length>52?`${t.slice(0,52).trimEnd()}…`:t:"New chat"}async function x(e){return await new Promise((t,r)=>{let s=new FileReader;s.onload=()=>t(String(s.result||"")),s.onerror=()=>r(s.error||Error("Failed to read file")),s.readAsDataURL(e)})}function f(e){return e?.name||function(e=""){return String(e).replace(/[-_]/g," ").replace(/\b\w/g,e=>e.toUpperCase()).trim()||"Unknown"}(e?.provider||e?.id||"provider")}function g(){let[e,t]=(0,a.useState)([]),[r,g]=(0,a.useState)(!0),[w,v]=(0,a.useState)(""),[b,N]=(0,a.useState)(()=>{try{let e=function(e,t){try{return JSON.parse(e)}catch{return t}}(globalThis.localStorage.getItem(o),[]);return Array.isArray(e)?e.map(e=>({...e,messages:Array.isArray(e.messages)?e.messages:[]})):[]}catch{return[]}}),[y,j]=(0,a.useState)(()=>globalThis.localStorage.getItem(d)||""),[S,I]=(0,a.useState)(()=>globalThis.localStorage.getItem(c)||""),[A,k]=(0,a.useState)(""),[D,O]=(0,a.useState)(()=>globalThis.localStorage.getItem(m)||""),[$,C]=(0,a.useState)([]),[_,M]=(0,a.useState)(!1),[E,T]=(0,a.useState)(""),[U,R]=(0,a.useState)(""),[z,q]=(0,a.useState)(!1),[P,J]=(0,a.useState)(!1),[B,F]=(0,a.useState)(!1),K=(0,a.useRef)(null),L=(0,a.useRef)(null),W=(0,a.useRef)(!1),H=(0,a.useRef)(null),Y=(0,a.useRef)(null);(0,a.useEffect)(()=>{q(!0)},[]),(0,a.useEffect)(()=>{let e=!1;return async function(){g(!0),v("");try{let r=await fetch("/api/providers",{cache:"no-store"}),s=await r.json().catch(()=>({})),a=Array.isArray(s.connections)?s.connections.filter(e=>e?.isActive!==!1):[];if(0===a.length){e||(t([]),v("No providers connected yet."));return}let i=new Map;for(let e of a){let t=e.provider||e.id,r=f(e),s=(0,n.mq)(t)?"openai-compatible":(0,n.gb)(t)?"anthropic-compatible":t;i.has(t)||i.set(t,{providerId:t,providerName:r,providerType:s,connections:[],models:[]});let a=i.get(t);a.providerName=a.providerName||r,a.providerType=a.providerType||s,a.connections.push(e);let o=(0,l.KC)(t).map(t=>t?.id?{id:`${e.provider}/${t.id}`,requestModel:`${e.provider}/${t.id}`,name:t.name||t.id,providerId:e.provider,providerName:f(e),source:"static"}:null).filter(Boolean);a.models.push(...o)}for(let e of(await Promise.all(a.map(async e=>{try{let t=await fetch(`/api/providers/${e.id}/models`,{cache:"no-store"}),r=await t.json().catch(()=>({}));if(!t.ok)return{connection:e,models:[]};let s=(Array.isArray(r?.models)?r.models:Array.isArray(r?.data)?r.data:Array.isArray(r?.results)?r.results:Array.isArray(r)?r:[]).map(t=>(function(e,t){let r="string"==typeof e?e:e?.id||e?.name||e?.model||"";if(!r)return null;let s="string"==typeof e?e:e?.name||e?.displayName||r,a=r;return((0,n.mq)(t.provider)||(0,n.gb)(t.provider))&&!r.includes("/")&&(a=`${t.provider}/${r}`),{id:a,requestModel:a,name:s,providerId:t.provider,providerName:f(t),source:"live"}})(t,e)).filter(Boolean);return{connection:e,models:s}}catch{return{connection:e,models:[]}}})))){let t=e.connection.provider||e.connection.id,r=i.get(t);r&&r.models.push(...e.models)}let o=Array.from(i.values()).map(e=>({...e,models:(function(e){let t=new Map;for(let r of e)r?.id&&(t.has(r.id)||t.set(r.id,r));return Array.from(t.values())})(e.models).sort((e,t)=>e.name.localeCompare(t.name))})).filter(e=>e.models.length>0).sort((e,t)=>e.providerName.localeCompare(t.providerName));e||(t(o),0===o.length&&v("Providers connected but no models available."))}catch(r){e||(v(p(r?.message)||"Failed to load providers/models."),t([]))}finally{e||g(!1)}}(),()=>{e=!0}},[]),(0,a.useEffect)(()=>{let e=e=>{H.current&&!H.current.contains(e.target)&&J(!1),Y.current&&!Y.current.contains(e.target)&&F(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let G=(0,a.useMemo)(()=>{let t=new Map;for(let r of e)for(let e of r.models)t.set(e.id,{...e,providerId:r.providerId,providerName:r.providerName});return t},[e]),Q=(0,a.useMemo)(()=>e.find(e=>e.providerId===S)||e[0]||null,[e,S]),V=(0,a.useMemo)(()=>{if(A&&G.has(A))return G.get(A);if(y){let e=b.find(e=>e.id===y);if(e?.modelId&&G.has(e.modelId))return G.get(e.modelId)}return Q?.models?.[0]||null},[A,G,Q,b,y]),X=(0,a.useMemo)(()=>b.find(e=>e.id===y)||null,[b,y]),Z=X?.messages||[],ee=(0,a.useMemo)(()=>[...b].sort((e,t)=>new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime()),[b]),et=!_&&!!V&&(D.trim().length>0||$.length>0);(0,a.useEffect)(()=>{if(z)try{globalThis.localStorage.setItem(o,JSON.stringify(b)),globalThis.localStorage.setItem(d,y),globalThis.localStorage.setItem(c,S),globalThis.localStorage.setItem(m,D)}catch{}},[z,b,y,S,D]),(0,a.useEffect)(()=>{if(!z||r||W.current||0===e.length)return;let t=e.find(e=>e.providerId===S)||e[0],s=A&&G.has(A)?G.get(A):t.models[0];if(b.length>0){let e=b.find(e=>e.id===y)||b[0],r=e?.modelId&&G.has(e.modelId)?G.get(e.modelId):s;W.current=!0,j(e.id),I(r?.providerId||t.providerId),k(r?.id||s.id);return}let a={id:u(),title:"New chat",providerId:t.providerId,providerName:t.providerName,modelId:s.id,modelName:s.name,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),messages:[]};W.current=!0,N([a]),j(a.id),I(t.providerId),k(s.id)},[z,r,e,G,b,y,S,A]);let er=(e,t)=>{N(r=>r.map(r=>r.id===e?t({...r,messages:Array.isArray(r.messages)?r.messages.map(e=>({...e})):[]}):r))},es=e=>e?{id:u(),title:"New chat",providerId:e.providerId,providerName:e.providerName,modelId:e.id,modelName:e.name,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),messages:[]}:null,ea=async e=>{let t=Array.from(e.target.files||[]);if(0===t.length)return;let r=t.filter(e=>e.type.startsWith("image/"));if(0===r.length){e.target.value="";return}let s=await Promise.all(r.map(async e=>({id:u(),name:e.name,type:e.type,size:e.size,dataUrl:await x(e)})));C(e=>[...e,...s]),e.target.value=""},ei=async()=>{let e=V||Q?.models?.[0]||null;if(!e)return;let t=D.trim();if(!t&&0===$.length)return;let r=y,s=b.find(e=>e.id===r);if(!s){if(!(s=es(e)))return;r=s.id,N(e=>[s,...e]),j(r)}let a={id:u(),role:"user",content:t,attachments:$.map(e=>({id:e.id,name:e.name,type:e.type,dataUrl:e.dataUrl})),createdAt:new Date().toISOString()},i=u(),l={id:i,role:"assistant",content:"",createdAt:new Date().toISOString(),status:"streaming"},n=[...s.messages||[],a,l];N(s=>s.map(s=>s.id===r?{...s,providerId:e.providerId,providerName:e.providerName,modelId:e.id,modelName:e.name,messages:n,updatedAt:new Date().toISOString(),title:"New chat"===s.title?h(t):s.title}:s)),O(""),C([]),M(!0),T(i),R(""),L.current?.abort(),L.current=new AbortController;let o=n.filter(e=>"assistant"!==e.role||e.id!==i).map(e=>({role:e.role,content:"user"===e.role?function(e){let t=p(e.content).trim(),r=Array.isArray(e.attachments)?e.attachments:[];if(0===r.length)return t;let s=[];for(let e of(t&&s.push({type:"text",text:t}),r))e?.dataUrl&&s.push({type:"image_url",image_url:{url:e.dataUrl}});return s.length>0?s:t}(e):e.content}));try{var d;let s,a=await fetch("/api/dashboard/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify({model:e.requestModel||e.id,messages:o,stream:!0}),signal:L.current.signal});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(p(e.error||e.message||`Request failed (${a.status})`))}let l=a.body?.getReader();if(!l){let e=await a.json().catch(()=>({})),t=p(e?.choices?.[0]?.message?.content||e?.output_text||e?.error||e?.message||"");er(r,e=>({...e,messages:e.messages.map(e=>e.id===i?{...e,content:t,status:"done"}:e),updatedAt:new Date().toISOString()}));return}let n=new TextDecoder,c="",m="";for(;;){let{value:e,done:t}=await l.read();if(t)break;let s=(c+=n.decode(e,{stream:!0})).split(/\r?\n/);for(let e of(c=s.pop()||"",s)){let t=e.trim();if(!t.startsWith("data:"))continue;let s=t.slice(5).trim();if(s&&"[DONE]"!==s)try{let e=JSON.parse(s),t=function(e){if(!e||"object"!=typeof e)return"";let t=e.choices?.[0];return[(t?.delta||{}).content,t?.message?.content,e.output_text,e.text].map(p).filter(Boolean)[0]||""}(e);if(!t)continue;m+=t,R(m),er(r,e=>({...e,messages:e.messages.map(e=>e.id===i?{...e,content:m,status:"streaming"}:e),updatedAt:new Date().toISOString()}))}catch{}}}er(r,e=>({...e,messages:e.messages.map(e=>e.id===i?{...e,content:m||e.content,status:"done"}:e),updatedAt:new Date().toISOString()})),d=r,s=h(t),er(d,e=>({...e,title:"New chat"===e.title?s:e.title,updatedAt:new Date().toISOString()}))}catch(e){if("AbortError"!==e.name){let t=p(e?.message||e);er(r,e=>({...e,messages:e.messages.map(e=>e.id===i?{...e,content:e.content||`Error: ${t}`,status:"error"}:e),updatedAt:new Date().toISOString()})),v(t||"Failed to send message.")}}finally{M(!1),T(""),R(""),L.current=null}},el=V?`${V.name}`:"Select model",en=V?V.requestModel:"Choose from connected providers";return(0,s.jsx)("div",{className:"relative flex-1 flex flex-col h-full min-h-0 min-w-0 bg-[#212121] text-white overflow-hidden",children:(0,s.jsxs)("div",{className:"relative mx-auto flex flex-1 h-full min-h-0 w-full max-w-4xl flex-col",children:[(0,s.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 px-4 py-3 lg:px-6",children:[(0,s.jsxs)("div",{ref:H,className:"relative",children:[(0,s.jsx)("button",{type:"button",onClick:()=>J(e=>!e),className:"flex items-center gap-3 rounded-2xl border border-white/10 bg-white/5 px-4 py-3 text-left transition hover:bg-white/8",children:(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-semibold text-white",children:el}),(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px] text-white/70",children:"expand_more"})]}),(0,s.jsx)("p",{className:"truncate text-xs text-white/55",children:en})]})}),P?(0,s.jsxs)("div",{className:"absolute left-0 top-[calc(100%+10px)] z-30 w-[min(520px,calc(100vw-2rem))] overflow-hidden rounded-[20px] border border-white/10 bg-[#262626] shadow-2xl shadow-black/50",children:[(0,s.jsxs)("div",{className:"border-b border-white/10 px-4 py-3",children:[(0,s.jsx)("p",{className:"text-xs uppercase tracking-[0.22em] text-white/45",children:"Models"}),(0,s.jsx)("p",{className:"text-sm text-white/75",children:"Only from connected providers"})]}),(0,s.jsx)("div",{className:"max-h-[60vh] overflow-y-auto p-2 custom-scrollbar",children:e.map(e=>(0,s.jsxs)("div",{className:"mb-2 rounded-[16px] border border-white/10 bg-black/20 p-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between px-2 py-2",children:[(0,s.jsx)("p",{className:"text-sm font-semibold text-white",children:e.providerName}),(0,s.jsx)(i.Ex,{size:"sm",variant:"default",children:e.models.length})]}),(0,s.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:e.models.map(e=>{let t=e.id===A;return(0,s.jsx)("button",{type:"button",onClick:()=>(e=>{let t=G.get(e);if(!t)return;let r=b.find(e=>e.id===y);if(r&&r.messages.length>0){let e=es(t);if(!e)return;N(t=>[e,...t]),j(e.id)}else if(r)N(e=>e.map(e=>e.id===r.id?{...e,providerId:t.providerId,providerName:t.providerName,modelId:t.id,modelName:t.name}:e)),j(r.id);else{let e=es(t);if(!e)return;N(t=>[e,...t]),j(e.id)}I(t.providerId),k(t.id),J(!1)})(e.id),className:`rounded-[14px] border px-3 py-3 text-left transition ${t?"border-blue-400/40 bg-blue-500/15":"border-white/10 bg-white/5 hover:bg-white/8"}`,children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"truncate text-sm font-medium text-white",children:e.name}),(0,s.jsx)("p",{className:"truncate text-[11px] text-white/45",children:e.requestModel})]}),t?(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px] text-blue-300",children:"check_circle"}):null]})},e.id)})})]},e.providerId))})]}):null]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>F(e=>!e),className:"rounded-2xl border border-white/10 bg-white/5 px-4 py-3 text-sm text-white/80 transition hover:bg-white/8",children:"History"}),(0,s.jsx)(i.$n,{variant:"ghost",size:"sm",icon:"delete",onClick:()=>{if(!y)return;let e=b.filter(e=>e.id!==y),t=e[0]||null;N(e),t?(j(t.id),I(t.providerId),k(t.modelId)):(j(""),I(""),k(""))},disabled:!y||0===b.length,children:"Clear"})]})]}),B?(0,s.jsxs)("div",{ref:Y,className:"absolute right-4 top-[72px] z-20 w-[min(360px,calc(100vw-2rem))] rounded-[20px] border border-white/10 bg-[#262626] p-2 shadow-2xl shadow-black/50 lg:right-6",children:[(0,s.jsx)("div",{className:"px-3 py-2",children:(0,s.jsx)("p",{className:"text-xs uppercase tracking-[0.22em] text-white/45",children:"Recent chats"})}),(0,s.jsx)("div",{className:"max-h-[48vh] space-y-2 overflow-y-auto p-1 custom-scrollbar",children:0===ee.length?(0,s.jsx)("div",{className:"rounded-[16px] border border-dashed border-white/10 bg-white/5 p-4 text-sm text-white/55",children:"No conversations yet."}):ee.map(e=>{let t=e.id===y,r=[...e.messages||[]].reverse().find(e=>"user"===e.role)||e.messages?.[0];return(0,s.jsx)("button",{type:"button",onClick:()=>{var t;let r;return t=e.id,void((r=b.find(e=>e.id===t))&&(j(t),I(r.providerId||S),k(r.modelId||A),F(!1)))},className:`w-full rounded-[16px] border px-3 py-3 text-left transition ${t?"border-blue-400/40 bg-blue-500/15":"border-white/10 bg-white/5 hover:bg-white/8"}`,children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("p",{className:"truncate text-sm font-medium text-white",children:e.title}),(0,s.jsx)("p",{className:"mt-1 truncate text-xs text-white/50",children:p(r?.content)||"Empty chat"})]}),(0,s.jsx)("span",{className:"text-[10px] text-white/40 shrink-0",children:function(e){if(!e)return"Now";let t=new Date(e).getTime();if(Number.isNaN(t))return"Now";let r=Math.max(1,Math.round((Date.now()-t)/6e4));if(r<60)return`${r}m`;let s=Math.round(r/60);return s<24?`${s}h`:`${Math.round(s/24)}d`}(e.updatedAt)})]})},e.id)})})]}):null,w?(0,s.jsx)("div",{className:"mt-4 rounded-[18px] border border-rose-500/20 bg-rose-500/10 px-4 py-3 text-rose-100",children:(0,s.jsxs)("div",{className:"flex items-start gap-3",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"error"}),(0,s.jsx)("p",{className:"text-sm leading-6",children:w})]})}):null,(0,s.jsxs)("div",{className:"flex flex-1 flex-col min-h-0",children:[(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto py-4 custom-scrollbar",children:[0===Z.length?(0,s.jsx)("div",{className:"flex min-h-[50vh] items-center justify-center px-4 text-center",children:(0,s.jsxs)("div",{className:"max-w-xl space-y-4",children:[(0,s.jsx)("div",{className:"mx-auto flex size-16 items-center justify-center rounded-[20px] border border-white/10 bg-white/5 text-white/80",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[30px]",children:"chat"})}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("h2",{className:"text-2xl font-semibold text-white",children:"Start a conversation"}),(0,s.jsx)("p",{className:"text-sm leading-6 text-white/60",children:"Simple chat interface to interact with any AI model from connected providers. Select a model and start chatting!"})]})]})}):null,(0,s.jsx)("div",{className:"mx-auto flex w-full max-w-3xl flex-col gap-4 px-4",children:Z.map(e=>{let t="user"===e.role,r="assistant"===e.role,a=r&&e.id===E&&"streaming"===e.status,i=p(e.content)||(r?U:"");return(0,s.jsx)("div",{className:`flex w-full ${t?"justify-end":"justify-start"} mb-6`,children:(0,s.jsxs)("div",{className:`max-w-[min(88%,42rem)] ${t?"rounded-3xl bg-[#2f2f2f] px-5 py-3.5 text-white":"text-white/90"}`,children:[(0,s.jsx)("div",{className:"mb-1 flex items-center justify-between gap-3",children:(0,s.jsx)("span",{className:"text-xs font-semibold",children:t?"You":V?.name||"Assistant"})}),e.attachments?.length?(0,s.jsx)("div",{className:"mb-3 grid grid-cols-2 gap-2 sm:grid-cols-3 mt-2",children:e.attachments.map(e=>(0,s.jsx)("a",{href:e.dataUrl,target:"_blank",rel:"noreferrer",className:"overflow-hidden rounded-[18px] border border-white/10 bg-black/20",children:(0,s.jsx)("img",{src:e.dataUrl,alt:e.name,className:"h-28 w-full object-cover",loading:"lazy",decoding:"async"})},e.id))}):null,(0,s.jsxs)("div",{className:"whitespace-pre-wrap break-words text-[15px] leading-7",children:[i,r&&a&&!U?(0,s.jsx)("span",{className:"inline-block animate-pulse",children:"▋"}):null]})]})},e.id)})})]}),(0,s.jsxs)("div",{className:"shrink-0 pt-2",children:[$.length>0?(0,s.jsx)("div",{className:"mx-auto mb-3 flex w-full max-w-3xl flex-wrap gap-2 px-4",children:$.map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-2",children:[(0,s.jsx)("span",{className:"text-xs text-white/80 max-w-[12rem] truncate",children:e.name}),(0,s.jsx)("button",{type:"button",onClick:()=>{var t;return t=e.id,void C(e=>e.filter(e=>e.id!==t))},className:"text-white/55 hover:text-white","aria-label":"Remove attachment",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"close"})})]},e.id))}):null,(0,s.jsx)("div",{className:"mx-auto w-full max-w-3xl px-4 pb-2",children:(0,s.jsxs)("div",{className:"rounded-[26px] bg-[#2f2f2f] px-3 pt-3 pb-2 shadow-[0_0_15px_rgba(0,0,0,0.10)] ring-1 ring-white/5",children:[(0,s.jsx)("textarea",{value:D,onChange:e=>O(e.target.value),onKeyDown:e=>{"Enter"===e.key&&!e.shiftKey&&(e.preventDefault(),et&&ei())},placeholder:"Message AI",rows:1,className:"w-full resize-none bg-transparent px-2 text-[15px] leading-6 text-white outline-none placeholder:text-white/40 custom-scrollbar max-h-[25vh] overflow-y-auto"}),(0,s.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:()=>K.current?.click(),disabled:!V||r,className:"p-2 text-white/50 hover:text-white transition rounded-full hover:bg-white/5",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"attach_file"})}),(0,s.jsx)("input",{ref:K,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:ea}),(0,s.jsx)("span",{className:"text-xs font-medium text-white/30 truncate max-w-[120px]",children:V?V.name:"No model"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[_?(0,s.jsx)("button",{type:"button",onClick:()=>{L.current?.abort()},className:"p-2 text-white bg-white/10 hover:bg-white/20 transition rounded-full h-8 w-8 flex items-center justify-center",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"stop"})}):null,(0,s.jsx)("button",{onClick:ei,disabled:!et,className:`h-8 w-8 rounded-full flex items-center justify-center transition ${et?"bg-white text-black hover:opacity-90":"bg-white/10 text-white/30 cursor-not-allowed"}`,children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_upward"})})]})]})]})})]}),(0,s.jsx)("p",{className:"mx-auto mt-2 max-w-3xl px-4 pb-4 text-center text-[11px] text-white/30",children:"Model list is filtered from connected providers."})]})]})})}}},e=>{e.O(0,[763,1321,705,5497,8441,3794,7358],()=>e(e.s=43547)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3554],{50498:(e,t,a)=>{Promise.resolve().then(a.bind(a,85309))},85309:(e,t,a)=>{"use strict";a.d(t,{default:()=>x});var s=a(95155),l=a(12115),i=a(98500),r=a.n(i),d=a(35497),o=a(3534),c=a(28777),n=a(93052);let u="https://9router.com";function x({toolId:e,machineId:t}){let a=o.dM[e],[i,v]=(0,l.useState)([]),[m,h]=(0,l.useState)(!0),[p,f]=(0,l.useState)({}),[b,E]=(0,l.useState)(!1),[j,P]=(0,l.useState)(!1),[g,w]=(0,l.useState)(""),[k,N]=(0,l.useState)(!1),[S,y]=(0,l.useState)(""),[A,M]=(0,l.useState)([]);(0,l.useEffect)(()=>{let e=!0;return(async()=>{try{let[t,a,s,l]=await Promise.all([fetch("/api/providers"),fetch("/api/settings"),fetch("/api/tunnel/status"),fetch("/api/keys")]);if(!e)return;if(t.ok){let e=await t.json();v(e.connections||[])}if(a.ok){let e=await a.json();E(e.cloudEnabled||!1)}if(s.ok){let e=await s.json();P(!!(e.tunnel?.enabled||e.tunnel?.settingsEnabled)),w(e.tunnel?.publicUrl||""),N(!!(e.tailscale?.enabled||e.tailscale?.settingsEnabled)),y(e.tailscale?.tunnelUrl||"")}if(l.ok){let e=await l.json();M(e.keys||[])}}catch(e){console.log("Error loading tool data:",e)}finally{e&&h(!1)}})(),()=>{e=!1}},[]);let $=()=>i.filter(e=>!1!==e.isActive),_=(0,l.useCallback)((e,t,a)=>{f(s=>s[e]?.[t]===a?s:{...s,[e]:{...s[e],[t]:a}})},[]);return a?(0,s.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:px-0",children:[(0,s.jsxs)(r(),{href:"/dashboard/cli-tools",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary w-fit",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"arrow_back"}),"Back to CLI Tools"]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("h1",{className:"text-xl font-semibold text-text-main sm:text-2xl",children:a.name}),(0,s.jsx)("p",{className:"text-sm text-text-muted",children:a.description})]}),m?(0,s.jsx)(d.Qv,{}):(()=>{let t,l,i,r=(t=$(),l=[],i=new Set,t.forEach(e=>{let t=c.Xg[e.provider]||e.provider,a=(0,c.KC)(e.provider);if(a.forEach(a=>{let s=`${t}/${a.id}`;i.has(s)||(i.add(s),l.push({value:s,label:`${t}/${a.id}`,provider:e.provider,alias:t,connectionName:e.name,modelId:a.id}))}),0===a.length){let a=e.providerSpecificData?.prefix||t,s=[];e.defaultModel&&s.push({id:e.defaultModel,name:e.defaultModel}),(e.providerSpecificData?.customModels||[]).forEach(e=>{e?.id&&!s.some(t=>t.id===e.id)&&s.push({id:e.id,name:e.name||e.id})}),0===s.length&&"active"===e.testStatus&&s.push({id:"model-id",name:`${a}/model-id`}),s.forEach(t=>{let s=`${a}/${t.id}`;i.has(s)||(i.add(s),l.push({value:s,label:`${a}/${t.id}`,provider:e.provider,alias:a,connectionName:e.name,modelId:t.id}))})}}),l).length>0,d={tool:a,isExpanded:!0,onToggle:()=>{},baseUrl:j&&g?g:b&&u?u:window.location.origin,apiKeys:A,tunnelEnabled:j,tunnelPublicUrl:g,tailscaleEnabled:k,tailscaleUrl:S};switch(e){case"claude":return(0,s.jsx)(n.Tk,{...d,activeProviders:$(),modelMappings:p[e]||{},onModelMappingChange:(t,a)=>_(e,t,a),hasActiveProviders:r,cloudEnabled:b});case"codex":return(0,s.jsx)(n.Ah,{...d,activeProviders:$(),cloudEnabled:b});case"opencode":return(0,s.jsx)(n.qO,{...d,activeProviders:$(),cloudEnabled:b});case"cowork":return(0,s.jsx)(n.Q6,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b,cloudUrl:u,tunnelEnabled:j,tunnelPublicUrl:g,tailscaleEnabled:k,tailscaleUrl:S});case"droid":return(0,s.jsx)(n.ZM,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"openclaw":return(0,s.jsx)(n.yZ,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"hermes":return(0,s.jsx)(n.RF,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"cline":return(0,s.jsx)(n.aG,{...d,activeProviders:$(),cloudEnabled:b});case"kilo":return(0,s.jsx)(n.c9,{...d,activeProviders:$(),cloudEnabled:b});case"deepseek-tui":return(0,s.jsx)(n.lF,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"jcode":return(0,s.jsx)(n.mW,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"grok-build":return(0,s.jsx)(n.E_,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"pi":case"omp":case"crush":case"forge":case"smelt":case"codewhale":return(0,s.jsx)(n.WE,{...d,activeProviders:$(),cloudEnabled:b});default:return(0,s.jsx)(n.a7,{toolId:e,...d,activeProviders:$(),cloudEnabled:b,tunnelEnabled:j})}})()]}):(0,s.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:px-0",children:[(0,s.jsxs)(r(),{href:"/dashboard/cli-tools",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary w-fit",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"arrow_back"}),"Back to CLI Tools"]}),(0,s.jsx)("p",{className:"text-sm text-text-muted",children:"Tool not found or disabled."})]})}}},e=>{e.O(0,[2997,5772,1321,705,5497,6447,8441,3794,7358],()=>e(e.s=50498)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3554],{50498:(e,t,a)=>{Promise.resolve().then(a.bind(a,85309))},85309:(e,t,a)=>{"use strict";a.d(t,{default:()=>x});var s=a(95155),l=a(12115),i=a(98500),r=a.n(i),d=a(35497),o=a(3534),c=a(28777),n=a(10761);let u="https://9router.com";function x({toolId:e,machineId:t}){let a=o.dM[e],[i,v]=(0,l.useState)([]),[m,h]=(0,l.useState)(!0),[p,f]=(0,l.useState)({}),[b,E]=(0,l.useState)(!1),[j,P]=(0,l.useState)(!1),[g,w]=(0,l.useState)(""),[k,N]=(0,l.useState)(!1),[S,y]=(0,l.useState)(""),[A,M]=(0,l.useState)([]);(0,l.useEffect)(()=>{let e=!0;return(async()=>{try{let[t,a,s,l]=await Promise.all([fetch("/api/providers"),fetch("/api/settings"),fetch("/api/tunnel/status"),fetch("/api/keys")]);if(!e)return;if(t.ok){let e=await t.json();v(e.connections||[])}if(a.ok){let e=await a.json();E(e.cloudEnabled||!1)}if(s.ok){let e=await s.json();P(!!(e.tunnel?.enabled||e.tunnel?.settingsEnabled)),w(e.tunnel?.publicUrl||""),N(!!(e.tailscale?.enabled||e.tailscale?.settingsEnabled)),y(e.tailscale?.tunnelUrl||"")}if(l.ok){let e=await l.json();M(e.keys||[])}}catch(e){console.log("Error loading tool data:",e)}finally{e&&h(!1)}})(),()=>{e=!1}},[]);let $=()=>i.filter(e=>!1!==e.isActive),_=(0,l.useCallback)((e,t,a)=>{f(s=>s[e]?.[t]===a?s:{...s,[e]:{...s[e],[t]:a}})},[]);return a?(0,s.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:px-0",children:[(0,s.jsxs)(r(),{href:"/dashboard/cli-tools",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary w-fit",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"arrow_back"}),"Back to CLI Tools"]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("h1",{className:"text-xl font-semibold text-text-main sm:text-2xl",children:a.name}),(0,s.jsx)("p",{className:"text-sm text-text-muted",children:a.description})]}),m?(0,s.jsx)(d.Qv,{}):(()=>{let t,l,i,r=(t=$(),l=[],i=new Set,t.forEach(e=>{let t=c.Xg[e.provider]||e.provider,a=(0,c.KC)(e.provider);if(a.forEach(a=>{let s=`${t}/${a.id}`;i.has(s)||(i.add(s),l.push({value:s,label:`${t}/${a.id}`,provider:e.provider,alias:t,connectionName:e.name,modelId:a.id}))}),0===a.length){let a=e.providerSpecificData?.prefix||t,s=[];e.defaultModel&&s.push({id:e.defaultModel,name:e.defaultModel}),(e.providerSpecificData?.customModels||[]).forEach(e=>{e?.id&&!s.some(t=>t.id===e.id)&&s.push({id:e.id,name:e.name||e.id})}),0===s.length&&"active"===e.testStatus&&s.push({id:"model-id",name:`${a}/model-id`}),s.forEach(t=>{let s=`${a}/${t.id}`;i.has(s)||(i.add(s),l.push({value:s,label:`${a}/${t.id}`,provider:e.provider,alias:a,connectionName:e.name,modelId:t.id}))})}}),l).length>0,d={tool:a,isExpanded:!0,onToggle:()=>{},baseUrl:j&&g?g:b&&u?u:window.location.origin,apiKeys:A,tunnelEnabled:j,tunnelPublicUrl:g,tailscaleEnabled:k,tailscaleUrl:S};switch(e){case"claude":return(0,s.jsx)(n.Tk,{...d,activeProviders:$(),modelMappings:p[e]||{},onModelMappingChange:(t,a)=>_(e,t,a),hasActiveProviders:r,cloudEnabled:b});case"codex":return(0,s.jsx)(n.Ah,{...d,activeProviders:$(),cloudEnabled:b});case"opencode":return(0,s.jsx)(n.qO,{...d,activeProviders:$(),cloudEnabled:b});case"cowork":return(0,s.jsx)(n.Q6,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b,cloudUrl:u,tunnelEnabled:j,tunnelPublicUrl:g,tailscaleEnabled:k,tailscaleUrl:S});case"droid":return(0,s.jsx)(n.ZM,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"openclaw":return(0,s.jsx)(n.yZ,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"hermes":return(0,s.jsx)(n.RF,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"cline":return(0,s.jsx)(n.aG,{...d,activeProviders:$(),cloudEnabled:b});case"kilo":return(0,s.jsx)(n.c9,{...d,activeProviders:$(),cloudEnabled:b});case"deepseek-tui":return(0,s.jsx)(n.lF,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"jcode":return(0,s.jsx)(n.mW,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"grok-build":return(0,s.jsx)(n.E_,{...d,activeProviders:$(),hasActiveProviders:r,cloudEnabled:b});case"pi":case"omp":case"crush":case"forge":case"smelt":case"codewhale":return(0,s.jsx)(n.WE,{...d,activeProviders:$(),cloudEnabled:b});default:return(0,s.jsx)(n.a7,{toolId:e,...d,activeProviders:$(),cloudEnabled:b,tunnelEnabled:j})}})()]}):(0,s.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:px-0",children:[(0,s.jsxs)(r(),{href:"/dashboard/cli-tools",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary w-fit",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"arrow_back"}),"Back to CLI Tools"]}),(0,s.jsx)("p",{className:"text-sm text-text-muted",children:"Tool not found or disabled."})]})}}},e=>{e.O(0,[763,5772,1321,705,5497,761,8441,3794,7358],()=>e(e.s=50498)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2326],{25403:(e,s,l)=>{Promise.resolve().then(l.bind(l,75882))},75882:(e,s,l)=>{"use strict";l.d(s,{default:()=>m});var t=l(95155),a=l(12115),i=l(35497),r=l(3534),c=l(93052),n=l(98500),o=l.n(n),d=l(5772);function x({toolId:e,tool:s,status:l}){let a=s?.configType==="guide"?{label:"Guide",cls:"bg-blue-500/10 text-blue-600 dark:text-blue-400"}:l?l.installed?l.has9Router?{label:"Connected",cls:"bg-green-500/10 text-green-600 dark:text-green-400"}:{label:"Not configured",cls:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400"}:{label:"Not installed",cls:"bg-gray-500/10 text-gray-500"}:{label:"Unknown",cls:"bg-gray-500/10 text-gray-500"};return(0,t.jsx)(o(),{href:`/dashboard/cli-tools/${e}`,className:"block",children:(0,t.jsx)(i.Zp,{padding:"sm",className:"h-full overflow-hidden hover:border-primary/50 transition-colors cursor-pointer",children:(0,t.jsx)("div",{className:"flex h-full flex-col gap-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:s.image?(0,t.jsx)(d.default,{src:s.image,alt:s.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"},loading:"lazy",decoding:"async"}):s.icon?(0,t.jsx)("span",{className:"material-symbols-outlined text-[28px]",style:{color:s.color},children:s.icon}):null}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"font-medium text-sm truncate",children:s.name}),(0,t.jsx)("span",{className:`inline-block mt-1 px-1.5 py-0.5 text-[10px] font-medium rounded-full ${a.cls}`,children:a.label})]}),(0,t.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[18px] shrink-0",children:"chevron_right"})]})})})})}function m({machineId:e}){let[s,l]=(0,a.useState)(!0),[n,o]=(0,a.useState)({});if((0,a.useEffect)(()=>{let e=!0;return(async()=>{try{let s=await fetch("/api/cli-tools/all-statuses");s.ok&&e&&o(await s.json())}catch(e){console.log("Error fetching tool statuses:",e)}finally{e&&l(!1)}})(),()=>{e=!1}},[]),s)return(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:[(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{})]});let d=Object.entries(r.dM),g=Object.entries(r.wn);return(0,t.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-6 px-1 sm:px-0",children:[(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:d.map(([e,s])=>(0,t.jsx)(x,{toolId:e,tool:s,status:n[e]},e))}),(0,t.jsxs)("div",{className:"flex flex-col gap-3 sm:gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"security"}),(0,t.jsx)("h2",{className:"text-sm font-semibold text-text-main",children:"MITM Tools"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:g.map(([e,s])=>(0,t.jsx)(c.gY,{tool:s},e))})]})]})}}},e=>{e.O(0,[2997,5772,1321,705,5497,6447,8441,3794,7358],()=>e(e.s=25403)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2326],{25403:(e,s,l)=>{Promise.resolve().then(l.bind(l,75882))},75882:(e,s,l)=>{"use strict";l.d(s,{default:()=>m});var t=l(95155),a=l(12115),i=l(35497),r=l(3534),c=l(10761),n=l(98500),o=l.n(n),d=l(5772);function x({toolId:e,tool:s,status:l}){let a=s?.configType==="guide"?{label:"Guide",cls:"bg-blue-500/10 text-blue-600 dark:text-blue-400"}:l?l.installed?l.has9Router?{label:"Connected",cls:"bg-green-500/10 text-green-600 dark:text-green-400"}:{label:"Not configured",cls:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400"}:{label:"Not installed",cls:"bg-gray-500/10 text-gray-500"}:{label:"Unknown",cls:"bg-gray-500/10 text-gray-500"};return(0,t.jsx)(o(),{href:`/dashboard/cli-tools/${e}`,className:"block",children:(0,t.jsx)(i.Zp,{padding:"sm",className:"h-full overflow-hidden hover:border-primary/50 transition-colors cursor-pointer",children:(0,t.jsx)("div",{className:"flex h-full flex-col gap-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:s.image?(0,t.jsx)(d.default,{src:s.image,alt:s.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"},loading:"lazy",decoding:"async"}):s.icon?(0,t.jsx)("span",{className:"material-symbols-outlined text-[28px]",style:{color:s.color},children:s.icon}):null}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"font-medium text-sm truncate",children:s.name}),(0,t.jsx)("span",{className:`inline-block mt-1 px-1.5 py-0.5 text-[10px] font-medium rounded-full ${a.cls}`,children:a.label})]}),(0,t.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[18px] shrink-0",children:"chevron_right"})]})})})})}function m({machineId:e}){let[s,l]=(0,a.useState)(!0),[n,o]=(0,a.useState)({});if((0,a.useEffect)(()=>{let e=!0;return(async()=>{try{let s=await fetch("/api/cli-tools/all-statuses");s.ok&&e&&o(await s.json())}catch(e){console.log("Error fetching tool statuses:",e)}finally{e&&l(!1)}})(),()=>{e=!1}},[]),s)return(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:[(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{}),(0,t.jsx)(i.Qv,{})]});let d=Object.entries(r.dM),g=Object.entries(r.wn);return(0,t.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-6 px-1 sm:px-0",children:[(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:d.map(([e,s])=>(0,t.jsx)(x,{toolId:e,tool:s,status:n[e]},e))}),(0,t.jsxs)("div",{className:"flex flex-col gap-3 sm:gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"security"}),(0,t.jsx)("h2",{className:"text-sm font-semibold text-text-main",children:"MITM Tools"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:g.map(([e,s])=>(0,t.jsx)(c.gY,{tool:s},e))})]})]})}}},e=>{e.O(0,[763,5772,1321,705,5497,761,8441,3794,7358],()=>e(e.s=25403)),_N_E=e.O()}]);