@amir83nasr/10router 0.1.8 → 0.1.9

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 (299) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +6 -6
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +23 -23
  5. package/.next/react-loadable-manifest.json +9 -0
  6. package/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  7. package/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  10. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  13. package/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  14. package/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  16. package/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  17. package/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  19. package/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  20. package/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  22. package/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  23. package/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.js +1 -1
  25. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.js.nft.json +1 -1
  26. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page.js +1 -1
  28. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page.js.nft.json +1 -1
  29. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/(dashboard)/dashboard/page.js +1 -1
  31. package/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  32. package/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  34. package/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  35. package/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  37. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  38. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  40. package/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  41. package/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  43. package/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  44. package/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  45. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  46. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  47. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  49. package/.next/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  50. package/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  51. package/.next/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  52. package/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  53. package/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  54. package/.next/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  55. package/.next/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  56. package/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  58. package/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  59. package/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  60. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/_global-error.html +1 -1
  62. package/.next/server/app/_global-error.rsc +1 -1
  63. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  64. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  65. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  66. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/_not-found.html +1 -1
  68. package/.next/server/app/_not-found.rsc +5 -5
  69. package/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  70. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  71. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  72. package/.next/server/app/api/cli-tools/all-statuses/route.js +1 -1
  73. package/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  74. package/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  75. package/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  76. package/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  77. package/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  78. package/.next/server/app/api/cli-tools/dsh-settings/route.js +1 -1
  79. package/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  80. package/.next/server/app/api/combos/[id]/route.js +1 -1
  81. package/.next/server/app/api/combos/route.js +1 -1
  82. package/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  83. package/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  84. package/.next/server/app/api/oauth/codex/import-token/route.js +1 -1
  85. package/.next/server/app/api/providers/[id]/models/route.js +1 -1
  86. package/.next/server/app/api/providers/client/route.js +1 -1
  87. package/.next/server/app/api/providers/route.js +1 -1
  88. package/.next/server/app/api/translator/send/route.js +1 -1
  89. package/.next/server/app/api/translator/translate/route.js +1 -1
  90. package/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
  91. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  92. package/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  93. package/.next/server/app/api/usage/stream/route.js +2 -6
  94. package/.next/server/app/api/v1/audio/speech/route.js +1 -1
  95. package/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  96. package/.next/server/app/api/v1/embeddings/route.js +1 -1
  97. package/.next/server/app/api/v1/images/generations/route.js +1 -1
  98. package/.next/server/app/api/v1/systemone/route.js +1 -1
  99. package/.next/server/app/api/version/route.js +1 -1
  100. package/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  101. package/.next/server/app/callback.html +1 -1
  102. package/.next/server/app/callback.rsc +6 -6
  103. package/.next/server/app/callback.segments/_full.segment.rsc +6 -6
  104. package/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  105. package/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
  106. package/.next/server/app/dashboard/basic-chat.html +1 -1
  107. package/.next/server/app/dashboard/basic-chat.rsc +7 -7
  108. package/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
  109. package/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  110. package/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  111. package/.next/server/app/dashboard/cli-tools.html +1 -1
  112. package/.next/server/app/dashboard/cli-tools.rsc +7 -7
  113. package/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +7 -7
  114. package/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  115. package/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  116. package/.next/server/app/dashboard/combos.html +1 -1
  117. package/.next/server/app/dashboard/combos.rsc +7 -7
  118. package/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +7 -7
  119. package/.next/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  120. package/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  121. package/.next/server/app/dashboard/endpoint.html +1 -1
  122. package/.next/server/app/dashboard/endpoint.rsc +7 -7
  123. package/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
  124. package/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  125. package/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  126. package/.next/server/app/dashboard/media-providers/systemone.html +1 -1
  127. package/.next/server/app/dashboard/media-providers/systemone.rsc +7 -7
  128. package/.next/server/app/dashboard/media-providers/systemone.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/systemone/__PAGE__.segment.rsc +7 -7
  129. package/.next/server/app/dashboard/media-providers/systemone.segments/_full.segment.rsc +7 -7
  130. package/.next/server/app/dashboard/media-providers/systemone.segments/_tree.segment.rsc +1 -1
  131. package/.next/server/app/dashboard/profile.html +1 -1
  132. package/.next/server/app/dashboard/profile.rsc +7 -7
  133. package/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +7 -7
  134. package/.next/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
  135. package/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  136. package/.next/server/app/dashboard/providers/new.html +1 -1
  137. package/.next/server/app/dashboard/providers/new.rsc +7 -7
  138. package/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
  139. package/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  140. package/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  141. package/.next/server/app/dashboard/providers.html +1 -1
  142. package/.next/server/app/dashboard/providers.rsc +7 -7
  143. package/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +7 -7
  144. package/.next/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  145. package/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  146. package/.next/server/app/dashboard/proxy-pools.html +1 -1
  147. package/.next/server/app/dashboard/proxy-pools.rsc +7 -7
  148. package/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +7 -7
  149. package/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
  150. package/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  151. package/.next/server/app/dashboard/pxpipe.html +1 -1
  152. package/.next/server/app/dashboard/pxpipe.rsc +7 -7
  153. package/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +7 -7
  154. package/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +7 -7
  155. package/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  156. package/.next/server/app/dashboard/quota.html +2 -2
  157. package/.next/server/app/dashboard/quota.rsc +8 -8
  158. package/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
  159. package/.next/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
  160. package/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  161. package/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  162. package/.next/server/app/dashboard/settings/pricing.html +1 -1
  163. package/.next/server/app/dashboard/settings/pricing.rsc +6 -6
  164. package/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  165. package/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  166. package/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
  167. package/.next/server/app/dashboard/token-saver.html +1 -1
  168. package/.next/server/app/dashboard/token-saver.rsc +6 -6
  169. package/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
  170. package/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  171. package/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  172. package/.next/server/app/dashboard/usage.html +2 -2
  173. package/.next/server/app/dashboard/usage.rsc +7 -7
  174. package/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +7 -7
  175. package/.next/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  176. package/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  177. package/.next/server/app/dashboard.html +1 -1
  178. package/.next/server/app/dashboard.rsc +7 -7
  179. package/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
  180. package/.next/server/app/dashboard.segments/_full.segment.rsc +7 -7
  181. package/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  182. package/.next/server/app/index.html +1 -1
  183. package/.next/server/app/index.rsc +5 -5
  184. package/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  185. package/.next/server/app/index.segments/_full.segment.rsc +5 -5
  186. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  187. package/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  188. package/.next/server/app/landing.html +1 -1
  189. package/.next/server/app/landing.rsc +6 -6
  190. package/.next/server/app/landing.segments/_full.segment.rsc +6 -6
  191. package/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  192. package/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
  193. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  194. package/.next/server/app/login.html +1 -1
  195. package/.next/server/app/login.rsc +5 -5
  196. package/.next/server/app/login.segments/_full.segment.rsc +5 -5
  197. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  198. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
  199. package/.next/server/app/page_client-reference-manifest.js +1 -1
  200. package/.next/server/app-paths-manifest.json +6 -6
  201. package/.next/server/chunks/1003.js +1 -1
  202. package/.next/server/chunks/1011.js +1 -1
  203. package/.next/server/chunks/1194.js +1 -1
  204. package/.next/server/chunks/1289.js +1 -1
  205. package/.next/server/chunks/1412.js +1 -1
  206. package/.next/server/chunks/1633.js +1 -1
  207. package/.next/server/chunks/1985.js +1 -1
  208. package/.next/server/chunks/2282.js +8 -4
  209. package/.next/server/chunks/2339.js +1 -1
  210. package/.next/server/chunks/2801.js +1 -1
  211. package/.next/server/chunks/3425.js +1 -1
  212. package/.next/server/chunks/4364.js +1 -1
  213. package/.next/server/chunks/460.js +1 -1
  214. package/.next/server/chunks/5761.js +1 -1
  215. package/.next/server/chunks/6056.js +1 -1
  216. package/.next/server/chunks/6343.js +3 -3
  217. package/.next/server/chunks/6823.js +1 -1
  218. package/.next/server/chunks/7019.js +2 -2
  219. package/.next/server/chunks/7348.js +1 -1
  220. package/.next/server/chunks/7504.js +1 -1
  221. package/.next/server/chunks/7535.js +2 -2
  222. package/.next/server/chunks/8923.js +1 -1
  223. package/.next/server/chunks/9018.js +1 -1
  224. package/.next/server/chunks/9250.js +1 -1
  225. package/.next/server/chunks/9429.js +1 -1
  226. package/.next/server/chunks/9646.js +1 -1
  227. package/.next/server/chunks/9817.js +67 -0
  228. package/.next/server/middleware-build-manifest.js +1 -1
  229. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  230. package/.next/server/middleware.js +1 -1
  231. package/.next/server/pages/404.html +1 -1
  232. package/.next/server/pages/500.html +1 -1
  233. package/.next/server/server-reference-manifest.js +1 -1
  234. package/.next/server/server-reference-manifest.json +1 -1
  235. package/.next/static/chunks/{1278-605cc36f762c2ea7.js → 1278-efb46cc82262aa4e.js} +1 -1
  236. package/.next/static/chunks/{1471-69a7c30abf98c656.js → 1471-10f225f62f7469cc.js} +1 -1
  237. package/.next/static/chunks/{1699-49be310981e2759e.js → 1699-13ee6864a8a31a96.js} +2 -2
  238. package/.next/static/chunks/{1830-901fe48c3c62604f.js → 1830-d26d77c95932d7ce.js} +1 -1
  239. package/.next/static/chunks/1940.1f30124180f22498.js +1 -0
  240. package/.next/static/chunks/{2836-8e7f4c382297ac97.js → 2836-d97f0aa2718945d5.js} +1 -1
  241. package/.next/static/chunks/3445-99e12528f235cedb.js +1 -0
  242. package/.next/static/chunks/{3577-1f02993330d7fba7.js → 3577-cd98d40e3099e1b0.js} +1 -1
  243. package/.next/static/chunks/{5862-6f3a3a6d4c00100d.js → 5862-f98c2f3d480b80d2.js} +1 -1
  244. package/.next/static/chunks/6770-e2921b2ce695ed57.js +1 -0
  245. package/.next/static/chunks/7276-a15e4d56ec28aba8.js +1 -0
  246. package/.next/static/chunks/{9369-7ef21480b9132957.js → 9369-0d43b295968c2168.js} +1 -1
  247. package/.next/static/chunks/{9ce8c186-6cd204e9c27ecee1.js → 9ce8c186-3c7d7dbc5d428052.js} +1 -1
  248. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-9efe55fed2f7c81f.js → page-e8bceccb95695755.js} +2 -2
  249. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-9dcb29085167b384.js → page-adee408d9de02423.js} +1 -1
  250. package/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-f5db9f681c6bface.js → page-d4c1e29e8d038f09.js} +1 -1
  251. package/.next/static/chunks/app/(dashboard)/dashboard/console-log/{page-d134cc313c9fa0b8.js → page-139200833f7a4ecc.js} +1 -1
  252. package/.next/static/chunks/app/(dashboard)/dashboard/endpoint/{page-f2d1a733e7f841cb.js → page-67516b120adbc4d7.js} +1 -1
  253. package/.next/static/chunks/app/(dashboard)/dashboard/media-providers/systemone/[id]/{page-0d6e623de6134598.js → page-b751d9603cb82e62.js} +1 -1
  254. package/.next/static/chunks/app/(dashboard)/dashboard/{page-e8f1d8be5e294fb0.js → page-315c9f52c472a700.js} +1 -1
  255. package/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-c96cbcc4f5736e36.js → page-d5d480e209fdc55a.js} +1 -1
  256. package/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-cc51346e464158b1.js → page-61b87a31ba21a055.js} +1 -1
  257. package/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-1ee147fbe0693dc1.js → page-2396571281d02804.js} +1 -1
  258. package/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-2287b1915fa887fc.js → page-cfd6bcb7e55d7d18.js} +2 -2
  259. package/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-696cb5c2703ca1ec.js → page-4d758f53c8cfc308.js} +1 -1
  260. package/.next/static/chunks/app/(dashboard)/dashboard/quota/{page-54a329d725734a1f.js → page-fef6edb7aafd8bd0.js} +1 -1
  261. package/.next/static/chunks/app/(dashboard)/dashboard/usage/{page-a81f78bb43042c30.js → page-697f46461825d7fc.js} +1 -1
  262. package/.next/static/chunks/app/(dashboard)/{layout-c199eb2ad56ae96a.js → layout-5039502fc12707c9.js} +1 -1
  263. package/.next/static/chunks/app/{layout-9bd5877ae6198856.js → layout-8810d4df3081b5df.js} +1 -1
  264. package/.next/static/chunks/webpack-cb89101193742e2b.js +1 -0
  265. package/CHANGELOG.md +19 -0
  266. package/open-sse/executors/zed.js +98 -5
  267. package/open-sse/handlers/chatCore/sseToJsonHandler.js +11 -4
  268. package/open-sse/providers/pricing.js +24 -10
  269. package/open-sse/services/usage/antigravity-weekly.js +10 -0
  270. package/open-sse/services/usage/claude.js +15 -0
  271. package/open-sse/shared/zedAuth.js +43 -2
  272. package/open-sse/translator/concerns/prefetch.js +12 -4
  273. package/open-sse/translator/response/claude-to-openai.js +2 -2
  274. package/open-sse/utils/streamHandler.js +1 -5
  275. package/package.json +1 -1
  276. package/src/app/(dashboard)/dashboard/providers/[id]/BulkImportGrokCliModal.tsx +1 -1
  277. package/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +1 -1
  278. package/src/app/(dashboard)/dashboard/usage/components/ProviderTopology.tsx +5 -2
  279. package/src/app/api/combos/[id]/route.js +38 -1
  280. package/src/app/api/combos/route.js +27 -2
  281. package/src/app/api/providers/[id]/models/route.js +12 -1
  282. package/src/app/api/providers/route.js +4 -1
  283. package/src/app/api/usage/stream/route.js +74 -68
  284. package/src/app/api/v1/models/route.js +20 -6
  285. package/src/lib/db/index.js +3 -0
  286. package/src/lib/db/repos/settingsRepo.js +22 -1
  287. package/src/lib/oauth/services/xai.js +4 -4
  288. package/src/lib/validateComboModels.ts +48 -0
  289. package/src/shared/components/UsageStats.tsx +7 -1
  290. package/src/shared/hooks/useShutdown.ts +2 -4
  291. package/src/sse/handlers/chat.js +5 -1
  292. package/src/sse/services/antigravityQuota.ts +7 -3
  293. package/src/sse/services/model.ts +9 -20
  294. package/.next/server/chunks/5351.js +0 -67
  295. package/.next/static/chunks/3973-424848b943e2ecab.js +0 -1
  296. package/.next/static/chunks/7276-16ef14f7b2cd478d.js +0 -1
  297. package/.next/static/chunks/webpack-452a2f4aec1a53ee.js +0 -1
  298. /package/.next/static/{iz7psrsEuHZGPvj7rbSWc → awjDWqWCZbU3VVSuN7-oA}/_buildManifest.js +0 -0
  299. /package/.next/static/{iz7psrsEuHZGPvj7rbSWc → awjDWqWCZbU3VVSuN7-oA}/_ssgManifest.js +0 -0
@@ -3,7 +3,7 @@
3
3
  ON CONFLICT(id) DO UPDATE SET
4
4
  provider=excluded.provider, authType=excluded.authType, name=excluded.name,
5
5
  email=excluded.email, priority=excluded.priority, isActive=excluded.isActive,
6
- data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function k(a={}){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(i);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function l(a){return i((await (0,e.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}function m(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(i);c.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),c.forEach((b,c)=>{a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[c+1,b.id])})}async function n(a){let b,c=await (0,e.c)(),f=new Date().toISOString();return c.transaction(()=>{var e;let k=c.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(i),l=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;l=k.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;if("codex"===a.provider){let a=d.providerSpecificData?.chatgptAccountId;return!!c&&!!a&&c===a}let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(l=k.find(b=>"apikey"===b.authType&&b.name===a.name));if(l){let d=h(l,a),e={...l,...d,updatedAt:f};j(c,e),b=e;return}let n=a.name||null;n||"oauth"!==a.authType&&"access_token"!==a.authType||(e=a.email||`Account ${k.length+1}`,n="github"===a.provider&&(a.providerSpecificData?.githubLogin||a.providerSpecificData?.githubEmail||a.email||a.providerSpecificData?.githubName)||e);let o=a.priority;o||(o=k.reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let p={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:n,priority:o,isActive:void 0===a.isActive||a.isActive,createdAt:f,updatedAt:f};for(let b of g)void 0!==a[b]&&null!==a[b]&&(p[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(p.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(p.email=a.email),j(c,p),m(c,a.provider),b=p}),b}async function o(a,b){let c,d=await (0,e.c)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=i(e),g=h(f,b),k={...f,...g,updatedAt:new Date().toISOString()};j(d,k),void 0!==b.priority&&m(d,f.provider),c=k}),c}async function p(a){let b=await (0,e.c)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),m(b,d.provider),c=!0)}),c}async function q(a){let b=await (0,e.c)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n||0}async function r(a){let b=await (0,e.c)();b.transaction(()=>m(b,a))}async function s(){let a=await (0,e.c)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=i(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&j(a,e)}}),c}},30039:(a,b,c)=>{c.d(b,{Xx:()=>j,exportSettings:()=>k,getSettings:()=>i});var d=c(35462),e=c(96700);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},quotaVisibility:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},capacityAdapter:{vision:{enabled:!0,roundRobin:!1,models:[]},pdf:{enabled:!1,roundRobin:!1,models:[]},audioInput:{enabled:!0,roundRobin:!1,models:[]},videoInput:{enabled:!1,roundRobin:!1,models:[]}},requireLogin:!0,requireApiKey:!0,tunnelDashboardAccess:!0,authMode:"password",ssoType:"oidc",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",samlEntryPoint:"",samlIssuer:"urn:10router:sp",samlCert:"",samlLoginLabel:"Sign in with SAML SSO",samlAttributeEmail:"email",samlAttributeName:"name",enableObservability:!1,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyPoolId:"",outboundProxyUrl:"",outboundNoProxy:"",rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,headroomTimeoutMs:3e3,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",pxpipeEnabled:!1,pxpipeAutoInstall:!0,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3};async function g(){let a=(await (0,d.c)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}function h(a){let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);return b}async function i(){return h(await g())}async function j(a){let b,c=await (0,d.c)();return c.transaction(function(){let d=c.get("SELECT data FROM settings WHERE id = 1");b={...d?(0,e.q)(d.data,{}):{},...a},c.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(b)])}),h(b)}async function k(){return await g()}},35462:(a,b,c)=>{c.d(b,{c:()=>k});var d=c(3314);global._dbAdapter||(global._dbAdapter={instance:null,initPromise:null,logged:!1});let e=global._dbAdapter;async function f(){if(!process.versions.bun)return null;try{let{createBunSqliteAdapter:a}=await c.e(4139).then(c.bind(c,94139));return await a(d.AL)}catch(a){return console.warn(`[DB] bun:sqlite unavailable: ${a.message}`),null}}async function g(){if(process.versions.bun)return null;let[a]=process.versions.node.split(".").map(Number);if(a>=24)return null;try{let{createBetterSqliteAdapter:a}=await c.e(3250).then(c.bind(c,33250));return a(d.AL)}catch(a){return console.warn(`[DB] better-sqlite3 unavailable: ${a.message}`),null}}async function h(){if(process.versions.bun)return null;let[a,b]=process.versions.node.split(".").map(Number);if(a<22||22===a&&b<5)return null;try{let{createNodeSqliteAdapter:a}=await c.e(9792).then(c.bind(c,29792));return await a(d.AL)}catch(a){return console.warn(`[DB] node:sqlite unavailable: ${a.message}`),null}}async function i(){try{let{createSqlJsAdapter:a}=await c.e(2225).then(c.bind(c,32225));return await a(d.AL)}catch(a){return console.warn(`[DB] sql.js unavailable: ${a.message}`),null}}async function j(){(0,d.Jh)();let a=await f();if(a||(a=await g()),a||(a=await h()),a||(a=await i()),!a)throw Error("[DB] No SQLite driver available (bun/better/node/sql.js all failed)");e.logged||(console.log(`[DB] Driver: ${a.driver} | file: ${d.AL}`),e.logged=!0);let{runMigrationOnce:b}=await c.e(3023).then(c.bind(c,63023));return await b(a),a}async function k(){return e.instance?e.instance:(e.initPromise||(e.initPromise=j().then(a=>(e.instance=a,a))),e.initPromise)}},47535:(a,b,c)=>{c.d(b,{S8:()=>G,E5:()=>af,bI:()=>g.cleanupProviderConnections,Iq:()=>q.createApiKey,jd:()=>v,iE:()=>g.createProviderConnection,i0:()=>h.createProviderNode,ZO:()=>n,Lh:()=>q.deleteApiKey,CG:()=>x,uL:()=>H,fv:()=>D,fK:()=>g.deleteProviderConnection,op:()=>g.deleteProviderConnectionsByProvider,Pc:()=>h.deleteProviderNode,Yd:()=>p,tm:()=>L,oF:()=>M,zP:()=>at,rg:()=>aa,yg:()=>q.getApiKeyById,PX:()=>q.getApiKeys,j$:()=>ae,L:()=>t,Dj:()=>u,Uv:()=>s,uv:()=>F,vF:()=>K,Lk:()=>ar,OM:()=>B,r4:()=>I.r4,Mc:()=>g.getProviderConnectionById,P:()=>g.getProviderConnections,Qu:()=>h.getProviderNodeById,Fh:()=>h.getProviderNodes,hr:()=>m,ui:()=>l,Zx:()=>ag,SL:()=>aq,mt:()=>f.getSettings,BY:()=>ad,K1:()=>au,VT:()=>I.VT,yF:()=>I.yF,ox:()=>ap,sZ:()=>ab,o5:()=>C,_V:()=>V,uw:()=>_,XW:()=>q.updateApiKey,oG:()=>w,KJ:()=>I.KJ,rj:()=>g.updateProviderConnection,ho:()=>h.updateProviderNode,Q_:()=>o,Xx:()=>f.Xx,ek:()=>q.validateApiKey});var d=c(35462),e=c(96700),f=c(30039),g=c(14557),h=c(78449),i=c(97091);function j(a){return a?{...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive||!0===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function k(a,b){let c=function(a){let{id:b,isActive:c,testStatus:d,createdAt:f,updatedAt:g,...h}=a;return{id:b,isActive:+(!1!==c),testStatus:d??null,data:(0,e.s)(h),createdAt:f,updatedAt:g}}(b);a.run(`INSERT INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt)
6
+ data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function k(a={}){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(i);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function l(a){return i((await (0,e.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}function m(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(i);c.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),c.forEach((b,c)=>{a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[c+1,b.id])})}async function n(a){let b,c=await (0,e.c)(),f=new Date().toISOString();return c.transaction(()=>{var e;let k=c.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(i),l=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;l=k.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;if("codex"===a.provider){let a=d.providerSpecificData?.chatgptAccountId;return!!c&&!!a&&c===a}let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(l=k.find(b=>"apikey"===b.authType&&b.name===a.name));if(l){let d=h(l,a),e={...l,...d,updatedAt:f};j(c,e),b=e;return}let n=a.name||null;n||"oauth"!==a.authType&&"access_token"!==a.authType||(e=a.email||`Account ${k.length+1}`,n="github"===a.provider&&(a.providerSpecificData?.githubLogin||a.providerSpecificData?.githubEmail||a.email||a.providerSpecificData?.githubName)||e);let o=a.priority;o||(o=k.reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let p={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:n,priority:o,isActive:void 0===a.isActive||a.isActive,createdAt:f,updatedAt:f};for(let b of g)void 0!==a[b]&&null!==a[b]&&(p[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(p.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(p.email=a.email),j(c,p),m(c,a.provider),b=p}),b}async function o(a,b){let c,d=await (0,e.c)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=i(e),g=h(f,b),k={...f,...g,updatedAt:new Date().toISOString()};j(d,k),void 0!==b.priority&&m(d,f.provider),c=k}),c}async function p(a){let b=await (0,e.c)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),m(b,d.provider),c=!0)}),c}async function q(a){let b=await (0,e.c)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n||0}async function r(a){let b=await (0,e.c)();b.transaction(()=>m(b,a))}async function s(){let a=await (0,e.c)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=i(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&j(a,e)}}),c}},30039:(a,b,c)=>{c.d(b,{Xx:()=>m,exportSettings:()=>n,getSettings:()=>k,vZ:()=>l});var d=c(35462),e=c(96700);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},quotaVisibility:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},capacityAdapter:{vision:{enabled:!0,roundRobin:!1,models:[]},pdf:{enabled:!1,roundRobin:!1,models:[]},audioInput:{enabled:!0,roundRobin:!1,models:[]},videoInput:{enabled:!1,roundRobin:!1,models:[]}},requireLogin:!0,requireApiKey:!0,tunnelDashboardAccess:!0,authMode:"password",ssoType:"oidc",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",samlEntryPoint:"",samlIssuer:"urn:10router:sp",samlCert:"",samlLoginLabel:"Sign in with SAML SSO",samlAttributeEmail:"email",samlAttributeName:"name",enableObservability:!1,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyPoolId:"",outboundProxyUrl:"",outboundNoProxy:"",rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,headroomTimeoutMs:3e3,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",pxpipeEnabled:!1,pxpipeAutoInstall:!0,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3},g=null,h=0;async function i(){if(g&&Date.now()-h<2e3)return g;let a=(await (0,d.c)()).get("SELECT data FROM settings WHERE id = 1");return g=a?(0,e.q)(a.data,{}):{},h=Date.now(),g}function j(a){let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);return b}async function k(){return j(await i())}function l(){g=null,h=0}async function m(a){let b,c=await (0,d.c)();return c.transaction(function(){let d=c.get("SELECT data FROM settings WHERE id = 1");b={...d?(0,e.q)(d.data,{}):{},...a},c.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(b)])}),g=b,h=Date.now(),j(b)}async function n(){return await i()}},35462:(a,b,c)=>{c.d(b,{c:()=>k});var d=c(3314);global._dbAdapter||(global._dbAdapter={instance:null,initPromise:null,logged:!1});let e=global._dbAdapter;async function f(){if(!process.versions.bun)return null;try{let{createBunSqliteAdapter:a}=await c.e(4139).then(c.bind(c,94139));return await a(d.AL)}catch(a){return console.warn(`[DB] bun:sqlite unavailable: ${a.message}`),null}}async function g(){if(process.versions.bun)return null;let[a]=process.versions.node.split(".").map(Number);if(a>=24)return null;try{let{createBetterSqliteAdapter:a}=await c.e(3250).then(c.bind(c,33250));return a(d.AL)}catch(a){return console.warn(`[DB] better-sqlite3 unavailable: ${a.message}`),null}}async function h(){if(process.versions.bun)return null;let[a,b]=process.versions.node.split(".").map(Number);if(a<22||22===a&&b<5)return null;try{let{createNodeSqliteAdapter:a}=await c.e(9792).then(c.bind(c,29792));return await a(d.AL)}catch(a){return console.warn(`[DB] node:sqlite unavailable: ${a.message}`),null}}async function i(){try{let{createSqlJsAdapter:a}=await c.e(2225).then(c.bind(c,32225));return await a(d.AL)}catch(a){return console.warn(`[DB] sql.js unavailable: ${a.message}`),null}}async function j(){(0,d.Jh)();let a=await f();if(a||(a=await g()),a||(a=await h()),a||(a=await i()),!a)throw Error("[DB] No SQLite driver available (bun/better/node/sql.js all failed)");e.logged||(console.log(`[DB] Driver: ${a.driver} | file: ${d.AL}`),e.logged=!0);let{runMigrationOnce:b}=await c.e(3023).then(c.bind(c,63023));return await b(a),a}async function k(){return e.instance?e.instance:(e.initPromise||(e.initPromise=j().then(a=>(e.instance=a,a))),e.initPromise)}},47535:(a,b,c)=>{c.d(b,{S8:()=>G,E5:()=>af,bI:()=>g.cleanupProviderConnections,Iq:()=>q.createApiKey,jd:()=>v,iE:()=>g.createProviderConnection,i0:()=>h.createProviderNode,ZO:()=>n,Lh:()=>q.deleteApiKey,CG:()=>x,uL:()=>H,fv:()=>D,fK:()=>g.deleteProviderConnection,op:()=>g.deleteProviderConnectionsByProvider,Pc:()=>h.deleteProviderNode,Yd:()=>p,tm:()=>L,oF:()=>M,zP:()=>at,rg:()=>aa,yg:()=>q.getApiKeyById,PX:()=>q.getApiKeys,j$:()=>ae,L:()=>t,Dj:()=>u,Uv:()=>s,uv:()=>F,vF:()=>K,Lk:()=>ar,OM:()=>B,r4:()=>I.r4,Mc:()=>g.getProviderConnectionById,P:()=>g.getProviderConnections,Qu:()=>h.getProviderNodeById,Fh:()=>h.getProviderNodes,hr:()=>m,ui:()=>l,Zx:()=>ag,SL:()=>aq,mt:()=>f.getSettings,BY:()=>ad,K1:()=>au,VT:()=>I.VT,yF:()=>I.yF,ox:()=>ap,sZ:()=>ab,o5:()=>C,_V:()=>V,uw:()=>_,XW:()=>q.updateApiKey,oG:()=>w,KJ:()=>I.KJ,rj:()=>g.updateProviderConnection,ho:()=>h.updateProviderNode,Q_:()=>o,Xx:()=>f.Xx,ek:()=>q.validateApiKey});var d=c(35462),e=c(96700),f=c(30039),g=c(14557),h=c(78449),i=c(97091);function j(a){return a?{...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive||!0===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function k(a,b){let c=function(a){let{id:b,isActive:c,testStatus:d,createdAt:f,updatedAt:g,...h}=a;return{id:b,isActive:+(!1!==c),testStatus:d??null,data:(0,e.s)(h),createdAt:f,updatedAt:g}}(b);a.run(`INSERT INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt)
7
7
  VALUES(?, ?, ?, ?, ?, ?)
8
8
  ON CONFLICT(id) DO UPDATE SET
9
9
  isActive=excluded.isActive, testStatus=excluded.testStatus,
@@ -15,7 +15,7 @@
15
15
  AND COALESCE(apiKey, '') = COALESCE(?, '')
16
16
  AND promptTokens = ?
17
17
  AND completionTokens = ?
18
- ORDER BY id DESC LIMIT 1`,[a.timestamp,a.provider||null,a.model||null,a.connectionId||null,a.apiKey||null,g,h])),u){!u.endpoint&&a.endpoint&&b.run("UPDATE usageHistory SET endpoint = ? WHERE id = ?",[a.endpoint,u.id]);return}b.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[a.timestamp,a.provider||null,a.model||null,a.connectionId||null,a.apiKey||null,a.endpoint||null,g,h,a.cost||0,a.status||"ok",(0,e.s)(f),(0,e.s)({})]);let v=(j=(d=a.timestamp)?new Date(d):new Date,`${j.getFullYear()}-${String(j.getMonth()+1).padStart(2,"0")}-${String(j.getDate()).padStart(2,"0")}`),w=b.get("SELECT data FROM usageDaily WHERE dateKey = ?",[v]),x=w?(0,e.q)(w.data,{}):{requests:0,promptTokens:0,completionTokens:0,cost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{}};k=a.tokens?.prompt_tokens||a.tokens?.input_tokens||0,l=a.tokens?.completion_tokens||a.tokens?.output_tokens||0,m=a.tokens?.cached_tokens||a.tokens?.cache_read_input_tokens||0,n=a.cost||0,o={promptTokens:k,completionTokens:l,cachedTokens:m,cost:n},x.requests=(x.requests||0)+1,x.promptTokens=(x.promptTokens||0)+k,x.completionTokens=(x.completionTokens||0)+l,x.cachedTokens=(x.cachedTokens||0)+m,x.cost=(x.cost||0)+n,x.byProvider||={},x.byModel||={},x.byAccount||={},x.byApiKey||={},x.byEndpoint||={},a.provider&&X(x.byProvider,a.provider,o),p=a.provider?`${a.model}|${a.provider}`:a.model,X(x.byModel,p,{...o,meta:{rawModel:a.model,provider:a.provider}}),a.connectionId&&X(x.byAccount,a.connectionId,{...o,meta:{rawModel:a.model,provider:a.provider}}),q=a.apiKey&&"string"==typeof a.apiKey?a.apiKey:"local-no-key",r=`${q}|${a.model}|${a.provider||"unknown"}`,X(x.byApiKey,r,{...o,meta:{rawModel:a.model,provider:a.provider,apiKey:a.apiKey||null}}),s=a.endpoint||"Unknown",t=`${s}|${a.model}|${a.provider||"unknown"}`,X(x.byEndpoint,t,{...o,meta:{endpoint:s,rawModel:a.model,provider:a.provider}}),b.run("INSERT INTO usageDaily(dateKey, data) VALUES(?, ?) ON CONFLICT(dateKey) DO UPDATE SET data = excluded.data",[v,(0,e.s)(x)]);let y=b.get("SELECT value FROM _meta WHERE key = 'totalRequestsLifetime'"),z=(y?parseInt(y.value,10):0)+1;b.run("INSERT INTO _meta(key, value) VALUES('totalRequestsLifetime', ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[String(z)]),i=!0}),i)&&(S.items.push(a),S.items.length>50&&(S.items=S.items.slice(-50)),W("update",250))}catch(a){console.error("Failed to save usage stats:",a)}}function ac(a,b){if(null==b)return a.all("SELECT dateKey, data FROM usageDaily");let c=new Date,d=new Date(c.getFullYear(),c.getMonth(),c.getDate()-b+1),e=`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`;return a.all("SELECT dateKey, data FROM usageDaily WHERE dateKey >= ?",[e])}async function ad(a="all"){let b=await (0,d.c)(),[{getProviderConnections:f},{getApiKeys:g},{getProviderNodes:h}]=await Promise.all([Promise.resolve().then(c.bind(c,14557)),Promise.resolve().then(c.bind(c,68364)),Promise.resolve().then(c.bind(c,78449))]),i=[];try{i=await f()}catch{}let j={};for(let a of i)j[a.id]=a.name||a.email||a.id;let k={};try{for(let a of(await h()))a.id&&a.name&&(k[a.id]=a.name)}catch{}let l=[];try{l=await g()}catch{}let m={};for(let a of l)m[a.key]={name:a.name,id:a.id,createdAt:a.createdAt};let n=b.all("SELECT timestamp, provider, model, tokens, status FROM usageHistory ORDER BY id DESC LIMIT 100"),o=new Set,p={totalRequests:0,totalPromptTokens:0,totalCompletionTokens:0,totalCachedTokens:0,totalCost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{},last10Minutes:[],pending:P,activeRequests:[],recentRequests:n.map(a=>{let b=(0,e.q)(a.tokens,{})||{};return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:b.prompt_tokens||b.input_tokens||0,completionTokens:b.completion_tokens||b.output_tokens||0,cachedTokens:b.cached_tokens||b.cache_read_input_tokens||0,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!o.has(c)&&(o.add(c),!0)}).slice(0,20),errorProvider:Date.now()-Q.ts<1e4?Q.provider:""};for(let[a,b]of Object.entries(P.byAccount))for(let[c,d]of Object.entries(b))if(d>0){let b=j[a]||`Account ${a.slice(0,8)}...`,e=c.match(/^(.*) \((.*)\)$/);p.activeRequests.push({model:e?e[1]:c,provider:e?e[2]:"unknown",account:b,count:d})}let q=new Date,r=new Date(6e4*Math.floor(q.getTime()/6e4)),s=new Date(r.getTime()-54e4),t={};for(let a=0;a<10;a++){let b=r.getTime()-(9-a)*6e4;t[b]={requests:0,promptTokens:0,completionTokens:0,cost:0},p.last10Minutes.push(t[b])}for(let a of b.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ? AND timestamp <= ?",[s.toISOString(),q.toISOString()])){let b=6e4*Math.floor(new Date(a.timestamp).getTime()/6e4);t[b]&&(t[b].requests++,t[b].promptTokens+=a.promptTokens||0,t[b].completionTokens+=a.completionTokens||0,t[b].cost+=a.cost||0)}if("24h"!==a&&"today"!==a){let c={"7d":7,"30d":30,"60d":60}[a]||null;for(let a of ac(b,c)){let b=a.dateKey,c=(0,e.q)(a.data,{});for(let[a,b]of(p.totalPromptTokens+=c.promptTokens||0,p.totalCompletionTokens+=c.completionTokens||0,p.totalCachedTokens+=c.cachedTokens||0,p.totalCost+=c.cost||0,Object.entries(c.byProvider||{})))p.byProvider[a]||(p.byProvider[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0}),p.byProvider[a].requests+=b.requests||0,p.byProvider[a].promptTokens+=b.promptTokens||0,p.byProvider[a].completionTokens+=b.completionTokens||0,p.byProvider[a].cachedTokens+=b.cachedTokens||0,p.byProvider[a].cost+=b.cost||0;for(let[a,d]of Object.entries(c.byModel||{})){let c=d.rawModel||a.split("|")[0],e=d.provider||a.split("|")[1]||"",f=e?`${c} (${e})`:c,g=k[e]||e;p.byModel[f]||(p.byModel[f]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:c,provider:g,lastUsed:b}),p.byModel[f].requests+=d.requests||0,p.byModel[f].promptTokens+=d.promptTokens||0,p.byModel[f].completionTokens+=d.completionTokens||0,p.byModel[f].cachedTokens+=d.cachedTokens||0,p.byModel[f].cost+=d.cost||0,b>(p.byModel[f].lastUsed||"")&&(p.byModel[f].lastUsed=b)}for(let[a,d]of Object.entries(c.byAccount||{})){let c=j[a]||`Account ${a.slice(0,8)}...`,e=d.rawModel||"",f=d.provider||"",g=k[f]||f,h=`${e} (${f} - ${c})`;p.byAccount[h]||(p.byAccount[h]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:e,provider:g,connectionId:a,accountName:c,lastUsed:b}),p.byAccount[h].requests+=d.requests||0,p.byAccount[h].promptTokens+=d.promptTokens||0,p.byAccount[h].completionTokens+=d.completionTokens||0,p.byAccount[h].cachedTokens+=d.cachedTokens||0,p.byAccount[h].cost+=d.cost||0,b>(p.byAccount[h].lastUsed||"")&&(p.byAccount[h].lastUsed=b)}for(let[a,d]of Object.entries(c.byApiKey||{})){let c=d.rawModel||"",e=d.provider||"",f=k[e]||e,g=d.apiKey,h=g?m[g]:null,i=h?.name||(g?g.slice(0,8)+"...":"Local (No API Key)"),j=O(g),l=j||"local-no-key";p.byApiKey[a]||(p.byApiKey[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:c,provider:f,apiKeyMasked:j,keyName:i,apiKeyKey:l,lastUsed:b}),p.byApiKey[a].requests+=d.requests||0,p.byApiKey[a].promptTokens+=d.promptTokens||0,p.byApiKey[a].completionTokens+=d.completionTokens||0,p.byApiKey[a].cachedTokens+=d.cachedTokens||0,p.byApiKey[a].cost+=d.cost||0,b>(p.byApiKey[a].lastUsed||"")&&(p.byApiKey[a].lastUsed=b)}for(let[a,d]of Object.entries(c.byEndpoint||{})){let c=d.endpoint||a.split("|")[0]||"Unknown",e=d.rawModel||"",f=d.provider||"",g=k[f]||f;p.byEndpoint[a]||(p.byEndpoint[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,endpoint:c,rawModel:e,provider:g,lastUsed:b}),p.byEndpoint[a].requests+=d.requests||0,p.byEndpoint[a].promptTokens+=d.promptTokens||0,p.byEndpoint[a].completionTokens+=d.completionTokens||0,p.byEndpoint[a].cachedTokens+=d.cachedTokens||0,p.byEndpoint[a].cost+=d.cost||0,b>(p.byEndpoint[a].lastUsed||"")&&(p.byEndpoint[a].lastUsed=b)}}let d=c?Date.now()-864e5*c:0;for(let a of b.all("SELECT timestamp, provider, model, connectionId, apiKey, endpoint FROM usageHistory WHERE timestamp >= ?",[new Date(d).toISOString()])){let b=a.timestamp,c=a.provider?`${a.model} (${a.provider})`:a.model;if(p.byModel[c]&&new Date(b)>new Date(p.byModel[c].lastUsed)&&(p.byModel[c].lastUsed=b),a.connectionId){let c=j[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,d=`${a.model} (${a.provider} - ${c})`;p.byAccount[d]&&new Date(b)>new Date(p.byAccount[d].lastUsed)&&(p.byAccount[d].lastUsed=b)}let d=a.apiKey&&"string"==typeof a.apiKey?`${a.apiKey}|${a.model}|${a.provider||"unknown"}`:"local-no-key";p.byApiKey[d]&&new Date(b)>new Date(p.byApiKey[d].lastUsed)&&(p.byApiKey[d].lastUsed=b);let e=a.endpoint||"Unknown",f=`${e}|${a.model}|${a.provider||"unknown"}`;p.byEndpoint[f]&&new Date(b)>new Date(p.byEndpoint[f].lastUsed)&&(p.byEndpoint[f].lastUsed=b)}}else{let c;if("today"===a){let a=new Date;a.setHours(0,0,0,0),c=a.toISOString()}else c=new Date(Date.now()-864e5).toISOString();for(let a of b.all("SELECT timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, tokens FROM usageHistory WHERE timestamp >= ?",[c])){let b=(0,e.q)(a.tokens,{})||{},c=b.prompt_tokens||0,d=b.completion_tokens||0,f=b.cached_tokens||b.cache_read_input_tokens||0,g=a.cost||0,h=k[a.provider]||a.provider;p.totalPromptTokens+=c,p.totalCompletionTokens+=d,p.totalCachedTokens+=f,p.totalCost+=g,p.byProvider[a.provider]||(p.byProvider[a.provider]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0}),p.byProvider[a.provider].requests++,p.byProvider[a.provider].promptTokens+=c,p.byProvider[a.provider].completionTokens+=d,p.byProvider[a.provider].cachedTokens+=f,p.byProvider[a.provider].cost+=g;let i=a.provider?`${a.model} (${a.provider})`:a.model;if(p.byModel[i]||(p.byModel[i]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,lastUsed:a.timestamp}),p.byModel[i].requests++,p.byModel[i].promptTokens+=c,p.byModel[i].completionTokens+=d,p.byModel[i].cachedTokens+=f,p.byModel[i].cost+=g,new Date(a.timestamp)>new Date(p.byModel[i].lastUsed)&&(p.byModel[i].lastUsed=a.timestamp),a.connectionId){let b=j[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,e=`${a.model} (${a.provider} - ${b})`;p.byAccount[e]||(p.byAccount[e]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,connectionId:a.connectionId,accountName:b,lastUsed:a.timestamp}),p.byAccount[e].requests++,p.byAccount[e].promptTokens+=c,p.byAccount[e].completionTokens+=d,p.byAccount[e].cachedTokens+=f,p.byAccount[e].cost+=g,new Date(a.timestamp)>new Date(p.byAccount[e].lastUsed)&&(p.byAccount[e].lastUsed=a.timestamp)}if(a.apiKey&&"string"==typeof a.apiKey){let b=m[a.apiKey],e=b?.name||a.apiKey.slice(0,8)+"...",i=O(a.apiKey),j=`${i}|${a.model}|${a.provider||"unknown"}`;p.byApiKey[j]||(p.byApiKey[j]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,apiKeyMasked:i,keyName:e,apiKeyKey:i,lastUsed:a.timestamp});let k=p.byApiKey[j];k.requests++,k.promptTokens+=c,k.completionTokens+=d,k.cachedTokens+=f,k.cost+=g,new Date(a.timestamp)>new Date(k.lastUsed)&&(k.lastUsed=a.timestamp)}else{p.byApiKey["local-no-key"]||(p.byApiKey["local-no-key"]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,apiKeyMasked:null,keyName:"Local (No API Key)",apiKeyKey:"local-no-key",lastUsed:a.timestamp});let b=p.byApiKey["local-no-key"];b.requests++,b.promptTokens+=c,b.completionTokens+=d,b.cachedTokens+=f,b.cost+=g,new Date(a.timestamp)>new Date(b.lastUsed)&&(b.lastUsed=a.timestamp)}let l=a.endpoint||"Unknown",n=`${l}|${a.model}|${a.provider||"unknown"}`;p.byEndpoint[n]||(p.byEndpoint[n]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,endpoint:l,rawModel:a.model,provider:h,lastUsed:a.timestamp});let o=p.byEndpoint[n];o.requests++,o.promptTokens+=c,o.completionTokens+=d,o.cachedTokens+=f,o.cost+=g,new Date(a.timestamp)>new Date(o.lastUsed)&&(o.lastUsed=a.timestamp)}}return p.totalRequests=Object.values(p.byProvider).reduce((a,b)=>a+(b.requests||0),0),p}async function ae(a="7d"){let b=await (0,d.c)(),c=Date.now();if("today"===a){let a=new Date;a.setHours(0,0,0,0);let c=a.getTime(),d=c+864e5,e=Array.from({length:24},(a,b)=>({label:new Date(c+36e5*b).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tokens:0,cost:0}));for(let a of b.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ?",[new Date(c).toISOString()])){let b=new Date(a.timestamp).getTime();if(b<c||b>=d)continue;let f=Math.floor((b-c)/36e5);f>=0&&f<24&&(e[f].tokens+=(a.promptTokens||0)+(a.completionTokens||0),e[f].cost+=a.cost||0)}return e}if("24h"===a){let a=c-864e5,d=Array.from({length:24},(b,c)=>({label:new Date(a+36e5*c).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tokens:0,cost:0}));for(let e of b.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ?",[new Date(a).toISOString()])){let b=new Date(e.timestamp).getTime();if(b<a||b>c)continue;let f=Math.min(Math.floor((b-a)/36e5),23);d[f].tokens+=(e.promptTokens||0)+(e.completionTokens||0),d[f].cost+=e.cost||0}return d}let f="7d"===a?7:"30d"===a?30:60,g=new Date,h=ac(b,f),i={};for(let a of h)i[a.dateKey]=(0,e.q)(a.data,{});return Array.from({length:f},(a,b)=>{let c=new Date(g);c.setDate(c.getDate()-(f-1-b));let d=i[`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`];return{label:c.toLocaleDateString("en-US",{month:"short",day:"numeric"}),tokens:d?(d.promptTokens||0)+(d.completionTokens||0):0,cost:d&&d.cost||0}})}async function af(){}async function ag(a=200){try{let b=(await (0,d.c)()).all("SELECT timestamp, provider, model, connectionId, promptTokens, completionTokens, status, tokens FROM usageHistory ORDER BY id DESC LIMIT ?",[a]);if(!b.length)return[];let f={};try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,14557));for(let b of(await a()))f[b.id]=b.name||b.email||""}catch{}return b.map(a=>{let b=function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${b(a.getDate())}-${b(a.getMonth()+1)}-${a.getFullYear()} ${b(a.getHours())}:${b(a.getMinutes())}:${b(a.getSeconds())}`}(new Date(a.timestamp)),c=a.provider?.toUpperCase()||"-",d=a.model||"-",g=f[a.connectionId]||(a.connectionId?a.connectionId.slice(0,8):"-"),h=a.tokens?(0,e.q)(a.tokens,{}):{},i=a.promptTokens??h.prompt_tokens??"-",j=a.completionTokens??h.completion_tokens??"-";return`${b} | ${d} | ${c} | ${g} | ${i} | ${j} | ${a.status||"-"}`})}catch(a){return console.error("[usageRepo] getRecentLogs failed:",a.message),[]}}let ah=null,ai=0;async function aj(){if(ah&&Date.now()-ai<5e3)return ah;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,30039)),b=await a(),d=process.env.ENABLE_REQUEST_LOGS;if(void 0!==d)return ah={enabled:"true"===d.toLowerCase(),maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))},ai=Date.now(),ah;let e="false"!==process.env.OBSERVABILITY_ENABLED;ah={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:e,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{ah={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return ai=Date.now(),ah}let ak=[],al=null,am=!1;function an(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function ao(){if(!am&&0!==ak.length){am=!0;try{for(;ak.length>0;){let a=ak.splice(0,ak.length),b=await (0,d.c)(),c=await aj();b.transaction(()=>{for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:an(d.request,c.maxJsonSize),providerRequest:an(d.providerRequest,c.maxJsonSize),providerResponse:an(d.providerResponse,c.maxJsonSize),response:an(d.response,c.maxJsonSize),pxpipe:d.pxpipe||void 0};b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",[a.id,a.timestamp,a.provider,a.model,a.connectionId,a.status,(0,e.s)(a)])}let d=b.get("SELECT COUNT(*) as c FROM requestDetails");d&&d.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[d.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{am=!1}}}async function ap(a){let b=await aj();b.enabled&&(ak.push(a),ak.length>=b.batchSize?(al&&(clearTimeout(al),al=null),ao().catch(a=>console.error("[requestDetailsRepo] flush err:",a))):al||(al=setTimeout(()=>{al=null,ao().catch(()=>{})},b.flushIntervalMs)))}async function aq(a={}){let b=await (0,d.c)(),c=[],f=[];a.provider&&(c.push("provider = ?"),f.push(a.provider)),a.model&&(c.push("model = ?"),f.push(a.model)),a.connectionId&&(c.push("connectionId = ?"),f.push(a.connectionId)),a.status&&(c.push("status = ?"),f.push(a.status)),a.startDate&&(c.push("timestamp >= ?"),f.push(new Date(a.startDate).toISOString())),a.endDate&&(c.push("timestamp <= ?"),f.push(new Date(a.endDate).toISOString()));let g=c.length?`WHERE ${c.join(" AND ")}`:"",h=b.get(`SELECT COUNT(*) as c FROM requestDetails ${g}`,f),i=h?h.c:0,j=a.page||1,k=a.pageSize||50,l=Math.ceil(i/k);return{details:b.all(`SELECT data FROM requestDetails ${g} ORDER BY timestamp DESC LIMIT ? OFFSET ?`,[...f,k,(j-1)*k]).map(a=>(0,e.q)(a.data,{})),pagination:{page:j,pageSize:k,totalItems:i,totalPages:l,hasNext:j<l,hasPrev:j>1}}}async function ar(){return(await (0,d.c)()).all("SELECT DISTINCT provider FROM requestDetails WHERE provider IS NOT NULL ORDER BY provider ASC").map(a=>a.provider)}let as=async()=>{al&&(clearTimeout(al),al=null),ak.length>0&&await ao()};async function at(){let a=await (0,d.c)(),{exportSettings:b}=await Promise.resolve().then(c.bind(c,30039)),f={settings:await b(),providerConnections:a.all("SELECT * FROM providerConnections").map(a=>({...(0,e.q)(a.data,{}),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt})),providerNodes:a.all("SELECT * FROM providerNodes").map(a=>({...(0,e.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt})),proxyPools:a.all("SELECT * FROM proxyPools").map(a=>({...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt})),apiKeys:a.all("SELECT * FROM apiKeys").map(a=>({id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive,createdAt:a.createdAt})),combos:a.all("SELECT * FROM combos").map(a=>({id:a.id,name:a.name,kind:a.kind,models:(0,e.q)(a.models,[]),createdAt:a.createdAt,updatedAt:a.updatedAt})),modelAliases:{},customModels:[],pricing:{}};for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'modelAliases'"))f.modelAliases[b.key]=(0,e.q)(b.value);for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'customModels'"))f.customModels.push((0,e.q)(b.value));for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'pricing'"))f.pricing[b.key]=(0,e.q)(b.value);return f}async function au(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let b=await (0,d.c)();return b.transaction(()=>{for(let c of(b.run("DELETE FROM settings"),b.run("DELETE FROM providerConnections"),b.run("DELETE FROM providerNodes"),b.run("DELETE FROM proxyPools"),b.run("DELETE FROM apiKeys"),b.run("DELETE FROM combos"),b.run("DELETE FROM kv WHERE scope IN ('modelAliases', 'customModels', 'pricing')"),a.settings&&b.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(a.settings)]),a.providerConnections||[])){let{id:a,provider:d,authType:f,name:g,email:h,priority:i,isActive:j,createdAt:k,updatedAt:l,...m}=c;b.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[a,d,f||"oauth",g||null,h||null,i||null,+(!1!==j),(0,e.s)(m),k||new Date().toISOString(),l||new Date().toISOString()])}for(let c of a.providerNodes||[]){let{id:a,type:d,name:f,createdAt:g,updatedAt:h,...i}=c;b.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[a,d||null,f||null,(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let c of a.proxyPools||[]){let{id:a,isActive:d,testStatus:f,createdAt:g,updatedAt:h,...i}=c;b.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[a,+(!1!==d),f||"unknown",(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let c of a.apiKeys||[])b.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[c.id,c.key,c.name||null,c.machineId||null,+(!1!==c.isActive),c.createdAt||new Date().toISOString()]);for(let c of a.combos||[])b.run("INSERT OR REPLACE INTO combos(id, name, kind, models, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c.id,c.name,c.kind||null,(0,e.s)(c.models||[]),c.createdAt||new Date().toISOString(),c.updatedAt||new Date().toISOString()]);for(let[c,d]of Object.entries(a.modelAliases||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[c,(0,e.s)(d)]);for(let c of a.customModels||[]){let a=`${c.providerAlias}|${c.id}|${c.type||"llm"}`;b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[a,(0,e.s)(c)])}for(let[c,d]of Object.entries(a.pricing||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[c,(0,e.s)(d||{})])}),await at()}process.off("beforeExit",as),process.off("SIGINT",as),process.off("SIGTERM",as),process.off("exit",as),process.on("beforeExit",as),process.on("SIGINT",as),process.on("SIGTERM",as),process.on("exit",as)},51336:(a,b,c)=>{c.d(b,{getDataDir:()=>n,n:()=>o});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="10router",k="9router";function l(a){try{return!e().existsSync(a)||0===e().readdirSync(a).length}catch{return!0}}function m(){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),j):g().join(i().homedir(),`.${j}`)}function n(){let a=process.env.DATA_DIR;if(!a)return!function(){let a=m(),b="win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),k):g().join(i().homedir(),`.${k}`);if(a!==b&&l(a))try{if(!e().existsSync(b)||l(b))return;e().mkdirSync(a,{recursive:!0}),e().cpSync(b,a,{recursive:!0,force:!1,errorOnExist:!1})}catch(a){console.warn(`[DATA_DIR] legacy migrate ~/.${k} → ~/.${j} failed: ${a?.message||a}`)}}(),m();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),m();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),m();throw b}}let o=n()},68364:(a,b,c)=>{c.r(b),c.d(b,{createApiKey:()=>i,deleteApiKey:()=>k,getApiKeyById:()=>h,getApiKeys:()=>g,updateApiKey:()=>j,validateApiKey:()=>l});var d=c(97091),e=c(35462);function f(a){return a?{id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt}:null}async function g(){return(await (0,e.c)()).all("SELECT * FROM apiKeys ORDER BY createdAt ASC").map(f)}async function h(a){return f((await (0,e.c)()).get("SELECT * FROM apiKeys WHERE id = ?",[a]))}async function i(a,b){if(!b)throw Error("machineId is required");let f=await (0,e.c)(),{generateApiKeyWithMachine:g}=await c.e(1126).then(c.bind(c,81126)),h=g(b),i={id:(0,d.A)(),name:a,key:h.key,machineId:b,isActive:!0,createdAt:new Date().toISOString()};return f.run("INSERT INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[i.id,i.key,i.name,i.machineId,1,i.createdAt]),i}async function j(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM apiKeys WHERE id = ?",[a]);if(!e)return;let g={...f(e),...b};c.run("UPDATE apiKeys SET key = ?, name = ?, machineId = ?, isActive = ? WHERE id = ?",[g.key,g.name,g.machineId,+!!g.isActive,a]),d=g}),d}async function k(a){let b=(await (0,e.c)()).run("DELETE FROM apiKeys WHERE id = ?",[a]);return(b?.changes??0)>0}async function l(a){let b=(await (0,e.c)()).get("SELECT isActive FROM apiKeys WHERE key = ?",[a]);return!!b&&(1===b.isActive||!0===b.isActive)}},78449:(a,b,c)=>{c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(97091),e=c(35462),f=c(96700);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
18
+ ORDER BY id DESC LIMIT 1`,[a.timestamp,a.provider||null,a.model||null,a.connectionId||null,a.apiKey||null,g,h])),u){!u.endpoint&&a.endpoint&&b.run("UPDATE usageHistory SET endpoint = ? WHERE id = ?",[a.endpoint,u.id]);return}b.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[a.timestamp,a.provider||null,a.model||null,a.connectionId||null,a.apiKey||null,a.endpoint||null,g,h,a.cost||0,a.status||"ok",(0,e.s)(f),(0,e.s)({})]);let v=(j=(d=a.timestamp)?new Date(d):new Date,`${j.getFullYear()}-${String(j.getMonth()+1).padStart(2,"0")}-${String(j.getDate()).padStart(2,"0")}`),w=b.get("SELECT data FROM usageDaily WHERE dateKey = ?",[v]),x=w?(0,e.q)(w.data,{}):{requests:0,promptTokens:0,completionTokens:0,cost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{}};k=a.tokens?.prompt_tokens||a.tokens?.input_tokens||0,l=a.tokens?.completion_tokens||a.tokens?.output_tokens||0,m=a.tokens?.cached_tokens||a.tokens?.cache_read_input_tokens||0,n=a.cost||0,o={promptTokens:k,completionTokens:l,cachedTokens:m,cost:n},x.requests=(x.requests||0)+1,x.promptTokens=(x.promptTokens||0)+k,x.completionTokens=(x.completionTokens||0)+l,x.cachedTokens=(x.cachedTokens||0)+m,x.cost=(x.cost||0)+n,x.byProvider||={},x.byModel||={},x.byAccount||={},x.byApiKey||={},x.byEndpoint||={},a.provider&&X(x.byProvider,a.provider,o),p=a.provider?`${a.model}|${a.provider}`:a.model,X(x.byModel,p,{...o,meta:{rawModel:a.model,provider:a.provider}}),a.connectionId&&X(x.byAccount,a.connectionId,{...o,meta:{rawModel:a.model,provider:a.provider}}),q=a.apiKey&&"string"==typeof a.apiKey?a.apiKey:"local-no-key",r=`${q}|${a.model}|${a.provider||"unknown"}`,X(x.byApiKey,r,{...o,meta:{rawModel:a.model,provider:a.provider,apiKey:a.apiKey||null}}),s=a.endpoint||"Unknown",t=`${s}|${a.model}|${a.provider||"unknown"}`,X(x.byEndpoint,t,{...o,meta:{endpoint:s,rawModel:a.model,provider:a.provider}}),b.run("INSERT INTO usageDaily(dateKey, data) VALUES(?, ?) ON CONFLICT(dateKey) DO UPDATE SET data = excluded.data",[v,(0,e.s)(x)]);let y=b.get("SELECT value FROM _meta WHERE key = 'totalRequestsLifetime'"),z=(y?parseInt(y.value,10):0)+1;b.run("INSERT INTO _meta(key, value) VALUES('totalRequestsLifetime', ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[String(z)]),i=!0}),i)&&(S.items.push(a),S.items.length>50&&(S.items=S.items.slice(-50)),W("update",250))}catch(a){console.error("Failed to save usage stats:",a)}}function ac(a,b){if(null==b)return a.all("SELECT dateKey, data FROM usageDaily");let c=new Date,d=new Date(c.getFullYear(),c.getMonth(),c.getDate()-b+1),e=`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`;return a.all("SELECT dateKey, data FROM usageDaily WHERE dateKey >= ?",[e])}async function ad(a="all"){let b=await (0,d.c)(),[{getProviderConnections:f},{getApiKeys:g},{getProviderNodes:h}]=await Promise.all([Promise.resolve().then(c.bind(c,14557)),Promise.resolve().then(c.bind(c,68364)),Promise.resolve().then(c.bind(c,78449))]),i=[];try{i=await f()}catch{}let j={};for(let a of i)j[a.id]=a.name||a.email||a.id;let k={};try{for(let a of(await h()))a.id&&a.name&&(k[a.id]=a.name)}catch{}let l=[];try{l=await g()}catch{}let m={};for(let a of l)m[a.key]={name:a.name,id:a.id,createdAt:a.createdAt};let n=b.all("SELECT timestamp, provider, model, tokens, status FROM usageHistory ORDER BY id DESC LIMIT 100"),o=new Set,p={totalRequests:0,totalPromptTokens:0,totalCompletionTokens:0,totalCachedTokens:0,totalCost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{},last10Minutes:[],pending:P,activeRequests:[],recentRequests:n.map(a=>{let b=(0,e.q)(a.tokens,{})||{};return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:b.prompt_tokens||b.input_tokens||0,completionTokens:b.completion_tokens||b.output_tokens||0,cachedTokens:b.cached_tokens||b.cache_read_input_tokens||0,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!o.has(c)&&(o.add(c),!0)}).slice(0,20),errorProvider:Date.now()-Q.ts<1e4?Q.provider:""};for(let[a,b]of Object.entries(P.byAccount))for(let[c,d]of Object.entries(b))if(d>0){let b=j[a]||`Account ${a.slice(0,8)}...`,e=c.match(/^(.*) \((.*)\)$/);p.activeRequests.push({model:e?e[1]:c,provider:e?e[2]:"unknown",account:b,count:d})}let q=new Date,r=new Date(6e4*Math.floor(q.getTime()/6e4)),s=new Date(r.getTime()-54e4),t={};for(let a=0;a<10;a++){let b=r.getTime()-(9-a)*6e4;t[b]={requests:0,promptTokens:0,completionTokens:0,cost:0},p.last10Minutes.push(t[b])}for(let a of b.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ? AND timestamp <= ?",[s.toISOString(),q.toISOString()])){let b=6e4*Math.floor(new Date(a.timestamp).getTime()/6e4);t[b]&&(t[b].requests++,t[b].promptTokens+=a.promptTokens||0,t[b].completionTokens+=a.completionTokens||0,t[b].cost+=a.cost||0)}if("24h"!==a&&"today"!==a){let c={"7d":7,"30d":30,"60d":60}[a]||null;for(let a of ac(b,c)){let b=a.dateKey,c=(0,e.q)(a.data,{});for(let[a,b]of(p.totalPromptTokens+=c.promptTokens||0,p.totalCompletionTokens+=c.completionTokens||0,p.totalCachedTokens+=c.cachedTokens||0,p.totalCost+=c.cost||0,Object.entries(c.byProvider||{})))p.byProvider[a]||(p.byProvider[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0}),p.byProvider[a].requests+=b.requests||0,p.byProvider[a].promptTokens+=b.promptTokens||0,p.byProvider[a].completionTokens+=b.completionTokens||0,p.byProvider[a].cachedTokens+=b.cachedTokens||0,p.byProvider[a].cost+=b.cost||0;for(let[a,d]of Object.entries(c.byModel||{})){let c=d.rawModel||a.split("|")[0],e=d.provider||a.split("|")[1]||"",f=e?`${c} (${e})`:c,g=k[e]||e;p.byModel[f]||(p.byModel[f]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:c,provider:g,lastUsed:b}),p.byModel[f].requests+=d.requests||0,p.byModel[f].promptTokens+=d.promptTokens||0,p.byModel[f].completionTokens+=d.completionTokens||0,p.byModel[f].cachedTokens+=d.cachedTokens||0,p.byModel[f].cost+=d.cost||0,b>(p.byModel[f].lastUsed||"")&&(p.byModel[f].lastUsed=b)}for(let[a,d]of Object.entries(c.byAccount||{})){let c=j[a]||`Account ${a.slice(0,8)}...`,e=d.rawModel||"",f=d.provider||"",g=k[f]||f,h=`${e} (${f} - ${c})`;p.byAccount[h]||(p.byAccount[h]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:e,provider:g,connectionId:a,accountName:c,lastUsed:b}),p.byAccount[h].requests+=d.requests||0,p.byAccount[h].promptTokens+=d.promptTokens||0,p.byAccount[h].completionTokens+=d.completionTokens||0,p.byAccount[h].cachedTokens+=d.cachedTokens||0,p.byAccount[h].cost+=d.cost||0,b>(p.byAccount[h].lastUsed||"")&&(p.byAccount[h].lastUsed=b)}for(let[a,d]of Object.entries(c.byApiKey||{})){let c=d.rawModel||"",e=d.provider||"",f=k[e]||e,g=d.apiKey,h=g?m[g]:null,i=h?.name||(g?g.slice(0,8)+"...":"Local (No API Key)"),j=O(g),l=j||"local-no-key";p.byApiKey[a]||(p.byApiKey[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:c,provider:f,apiKeyMasked:j,keyName:i,apiKeyKey:l,lastUsed:b}),p.byApiKey[a].requests+=d.requests||0,p.byApiKey[a].promptTokens+=d.promptTokens||0,p.byApiKey[a].completionTokens+=d.completionTokens||0,p.byApiKey[a].cachedTokens+=d.cachedTokens||0,p.byApiKey[a].cost+=d.cost||0,b>(p.byApiKey[a].lastUsed||"")&&(p.byApiKey[a].lastUsed=b)}for(let[a,d]of Object.entries(c.byEndpoint||{})){let c=d.endpoint||a.split("|")[0]||"Unknown",e=d.rawModel||"",f=d.provider||"",g=k[f]||f;p.byEndpoint[a]||(p.byEndpoint[a]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,endpoint:c,rawModel:e,provider:g,lastUsed:b}),p.byEndpoint[a].requests+=d.requests||0,p.byEndpoint[a].promptTokens+=d.promptTokens||0,p.byEndpoint[a].completionTokens+=d.completionTokens||0,p.byEndpoint[a].cachedTokens+=d.cachedTokens||0,p.byEndpoint[a].cost+=d.cost||0,b>(p.byEndpoint[a].lastUsed||"")&&(p.byEndpoint[a].lastUsed=b)}}let d=c?Date.now()-864e5*c:0;for(let a of b.all("SELECT timestamp, provider, model, connectionId, apiKey, endpoint FROM usageHistory WHERE timestamp >= ?",[new Date(d).toISOString()])){let b=a.timestamp,c=a.provider?`${a.model} (${a.provider})`:a.model;if(p.byModel[c]&&new Date(b)>new Date(p.byModel[c].lastUsed)&&(p.byModel[c].lastUsed=b),a.connectionId){let c=j[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,d=`${a.model} (${a.provider} - ${c})`;p.byAccount[d]&&new Date(b)>new Date(p.byAccount[d].lastUsed)&&(p.byAccount[d].lastUsed=b)}let d=a.apiKey&&"string"==typeof a.apiKey?`${a.apiKey}|${a.model}|${a.provider||"unknown"}`:"local-no-key";p.byApiKey[d]&&new Date(b)>new Date(p.byApiKey[d].lastUsed)&&(p.byApiKey[d].lastUsed=b);let e=a.endpoint||"Unknown",f=`${e}|${a.model}|${a.provider||"unknown"}`;p.byEndpoint[f]&&new Date(b)>new Date(p.byEndpoint[f].lastUsed)&&(p.byEndpoint[f].lastUsed=b)}}else{let c;if("today"===a){let a=new Date;a.setHours(0,0,0,0),c=a.toISOString()}else c=new Date(Date.now()-864e5).toISOString();for(let a of b.all("SELECT timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, tokens FROM usageHistory WHERE timestamp >= ?",[c])){let b=(0,e.q)(a.tokens,{})||{},c=b.prompt_tokens||0,d=b.completion_tokens||0,f=b.cached_tokens||b.cache_read_input_tokens||0,g=a.cost||0,h=k[a.provider]||a.provider;p.totalPromptTokens+=c,p.totalCompletionTokens+=d,p.totalCachedTokens+=f,p.totalCost+=g,p.byProvider[a.provider]||(p.byProvider[a.provider]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0}),p.byProvider[a.provider].requests++,p.byProvider[a.provider].promptTokens+=c,p.byProvider[a.provider].completionTokens+=d,p.byProvider[a.provider].cachedTokens+=f,p.byProvider[a.provider].cost+=g;let i=a.provider?`${a.model} (${a.provider})`:a.model;if(p.byModel[i]||(p.byModel[i]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,lastUsed:a.timestamp}),p.byModel[i].requests++,p.byModel[i].promptTokens+=c,p.byModel[i].completionTokens+=d,p.byModel[i].cachedTokens+=f,p.byModel[i].cost+=g,new Date(a.timestamp)>new Date(p.byModel[i].lastUsed)&&(p.byModel[i].lastUsed=a.timestamp),a.connectionId){let b=j[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,e=`${a.model} (${a.provider} - ${b})`;p.byAccount[e]||(p.byAccount[e]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,connectionId:a.connectionId,accountName:b,lastUsed:a.timestamp}),p.byAccount[e].requests++,p.byAccount[e].promptTokens+=c,p.byAccount[e].completionTokens+=d,p.byAccount[e].cachedTokens+=f,p.byAccount[e].cost+=g,new Date(a.timestamp)>new Date(p.byAccount[e].lastUsed)&&(p.byAccount[e].lastUsed=a.timestamp)}if(a.apiKey&&"string"==typeof a.apiKey){let b=m[a.apiKey],e=b?.name||a.apiKey.slice(0,8)+"...",i=O(a.apiKey),j=`${i}|${a.model}|${a.provider||"unknown"}`;p.byApiKey[j]||(p.byApiKey[j]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,apiKeyMasked:i,keyName:e,apiKeyKey:i,lastUsed:a.timestamp});let k=p.byApiKey[j];k.requests++,k.promptTokens+=c,k.completionTokens+=d,k.cachedTokens+=f,k.cost+=g,new Date(a.timestamp)>new Date(k.lastUsed)&&(k.lastUsed=a.timestamp)}else{p.byApiKey["local-no-key"]||(p.byApiKey["local-no-key"]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,rawModel:a.model,provider:h,apiKeyMasked:null,keyName:"Local (No API Key)",apiKeyKey:"local-no-key",lastUsed:a.timestamp});let b=p.byApiKey["local-no-key"];b.requests++,b.promptTokens+=c,b.completionTokens+=d,b.cachedTokens+=f,b.cost+=g,new Date(a.timestamp)>new Date(b.lastUsed)&&(b.lastUsed=a.timestamp)}let l=a.endpoint||"Unknown",n=`${l}|${a.model}|${a.provider||"unknown"}`;p.byEndpoint[n]||(p.byEndpoint[n]={requests:0,promptTokens:0,completionTokens:0,cachedTokens:0,cost:0,endpoint:l,rawModel:a.model,provider:h,lastUsed:a.timestamp});let o=p.byEndpoint[n];o.requests++,o.promptTokens+=c,o.completionTokens+=d,o.cachedTokens+=f,o.cost+=g,new Date(a.timestamp)>new Date(o.lastUsed)&&(o.lastUsed=a.timestamp)}}return p.totalRequests=Object.values(p.byProvider).reduce((a,b)=>a+(b.requests||0),0),p}async function ae(a="7d"){let b=await (0,d.c)(),c=Date.now();if("today"===a){let a=new Date;a.setHours(0,0,0,0);let c=a.getTime(),d=c+864e5,e=Array.from({length:24},(a,b)=>({label:new Date(c+36e5*b).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tokens:0,cost:0}));for(let a of b.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ?",[new Date(c).toISOString()])){let b=new Date(a.timestamp).getTime();if(b<c||b>=d)continue;let f=Math.floor((b-c)/36e5);f>=0&&f<24&&(e[f].tokens+=(a.promptTokens||0)+(a.completionTokens||0),e[f].cost+=a.cost||0)}return e}if("24h"===a){let a=c-864e5,d=Array.from({length:24},(b,c)=>({label:new Date(a+36e5*c).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tokens:0,cost:0}));for(let e of b.all("SELECT timestamp, promptTokens, completionTokens, cost FROM usageHistory WHERE timestamp >= ?",[new Date(a).toISOString()])){let b=new Date(e.timestamp).getTime();if(b<a||b>c)continue;let f=Math.min(Math.floor((b-a)/36e5),23);d[f].tokens+=(e.promptTokens||0)+(e.completionTokens||0),d[f].cost+=e.cost||0}return d}let f="7d"===a?7:"30d"===a?30:60,g=new Date,h=ac(b,f),i={};for(let a of h)i[a.dateKey]=(0,e.q)(a.data,{});return Array.from({length:f},(a,b)=>{let c=new Date(g);c.setDate(c.getDate()-(f-1-b));let d=i[`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`];return{label:c.toLocaleDateString("en-US",{month:"short",day:"numeric"}),tokens:d?(d.promptTokens||0)+(d.completionTokens||0):0,cost:d&&d.cost||0}})}async function af(){}async function ag(a=200){try{let b=(await (0,d.c)()).all("SELECT timestamp, provider, model, connectionId, promptTokens, completionTokens, status, tokens FROM usageHistory ORDER BY id DESC LIMIT ?",[a]);if(!b.length)return[];let f={};try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,14557));for(let b of(await a()))f[b.id]=b.name||b.email||""}catch{}return b.map(a=>{let b=function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${b(a.getDate())}-${b(a.getMonth()+1)}-${a.getFullYear()} ${b(a.getHours())}:${b(a.getMinutes())}:${b(a.getSeconds())}`}(new Date(a.timestamp)),c=a.provider?.toUpperCase()||"-",d=a.model||"-",g=f[a.connectionId]||(a.connectionId?a.connectionId.slice(0,8):"-"),h=a.tokens?(0,e.q)(a.tokens,{}):{},i=a.promptTokens??h.prompt_tokens??"-",j=a.completionTokens??h.completion_tokens??"-";return`${b} | ${d} | ${c} | ${g} | ${i} | ${j} | ${a.status||"-"}`})}catch(a){return console.error("[usageRepo] getRecentLogs failed:",a.message),[]}}let ah=null,ai=0;async function aj(){if(ah&&Date.now()-ai<5e3)return ah;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,30039)),b=await a(),d=process.env.ENABLE_REQUEST_LOGS;if(void 0!==d)return ah={enabled:"true"===d.toLowerCase(),maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))},ai=Date.now(),ah;let e="false"!==process.env.OBSERVABILITY_ENABLED;ah={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:e,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{ah={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return ai=Date.now(),ah}let ak=[],al=null,am=!1;function an(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function ao(){if(!am&&0!==ak.length){am=!0;try{for(;ak.length>0;){let a=ak.splice(0,ak.length),b=await (0,d.c)(),c=await aj();b.transaction(()=>{for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:an(d.request,c.maxJsonSize),providerRequest:an(d.providerRequest,c.maxJsonSize),providerResponse:an(d.providerResponse,c.maxJsonSize),response:an(d.response,c.maxJsonSize),pxpipe:d.pxpipe||void 0};b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",[a.id,a.timestamp,a.provider,a.model,a.connectionId,a.status,(0,e.s)(a)])}let d=b.get("SELECT COUNT(*) as c FROM requestDetails");d&&d.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[d.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{am=!1}}}async function ap(a){let b=await aj();b.enabled&&(ak.push(a),ak.length>=b.batchSize?(al&&(clearTimeout(al),al=null),ao().catch(a=>console.error("[requestDetailsRepo] flush err:",a))):al||(al=setTimeout(()=>{al=null,ao().catch(()=>{})},b.flushIntervalMs)))}async function aq(a={}){let b=await (0,d.c)(),c=[],f=[];a.provider&&(c.push("provider = ?"),f.push(a.provider)),a.model&&(c.push("model = ?"),f.push(a.model)),a.connectionId&&(c.push("connectionId = ?"),f.push(a.connectionId)),a.status&&(c.push("status = ?"),f.push(a.status)),a.startDate&&(c.push("timestamp >= ?"),f.push(new Date(a.startDate).toISOString())),a.endDate&&(c.push("timestamp <= ?"),f.push(new Date(a.endDate).toISOString()));let g=c.length?`WHERE ${c.join(" AND ")}`:"",h=b.get(`SELECT COUNT(*) as c FROM requestDetails ${g}`,f),i=h?h.c:0,j=a.page||1,k=a.pageSize||50,l=Math.ceil(i/k);return{details:b.all(`SELECT data FROM requestDetails ${g} ORDER BY timestamp DESC LIMIT ? OFFSET ?`,[...f,k,(j-1)*k]).map(a=>(0,e.q)(a.data,{})),pagination:{page:j,pageSize:k,totalItems:i,totalPages:l,hasNext:j<l,hasPrev:j>1}}}async function ar(){return(await (0,d.c)()).all("SELECT DISTINCT provider FROM requestDetails WHERE provider IS NOT NULL ORDER BY provider ASC").map(a=>a.provider)}let as=async()=>{al&&(clearTimeout(al),al=null),ak.length>0&&await ao()};async function at(){let a=await (0,d.c)(),{exportSettings:b}=await Promise.resolve().then(c.bind(c,30039)),f={settings:await b(),providerConnections:a.all("SELECT * FROM providerConnections").map(a=>({...(0,e.q)(a.data,{}),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt})),providerNodes:a.all("SELECT * FROM providerNodes").map(a=>({...(0,e.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt})),proxyPools:a.all("SELECT * FROM proxyPools").map(a=>({...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt})),apiKeys:a.all("SELECT * FROM apiKeys").map(a=>({id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive,createdAt:a.createdAt})),combos:a.all("SELECT * FROM combos").map(a=>({id:a.id,name:a.name,kind:a.kind,models:(0,e.q)(a.models,[]),createdAt:a.createdAt,updatedAt:a.updatedAt})),modelAliases:{},customModels:[],pricing:{}};for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'modelAliases'"))f.modelAliases[b.key]=(0,e.q)(b.value);for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'customModels'"))f.customModels.push((0,e.q)(b.value));for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'pricing'"))f.pricing[b.key]=(0,e.q)(b.value);return f}async function au(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let b=await (0,d.c)();return b.transaction(()=>{for(let c of(b.run("DELETE FROM settings"),b.run("DELETE FROM providerConnections"),b.run("DELETE FROM providerNodes"),b.run("DELETE FROM proxyPools"),b.run("DELETE FROM apiKeys"),b.run("DELETE FROM combos"),b.run("DELETE FROM kv WHERE scope IN ('modelAliases', 'customModels', 'pricing')"),a.settings&&b.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(a.settings)]),a.providerConnections||[])){let{id:a,provider:d,authType:f,name:g,email:h,priority:i,isActive:j,createdAt:k,updatedAt:l,...m}=c;b.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[a,d,f||"oauth",g||null,h||null,i||null,+(!1!==j),(0,e.s)(m),k||new Date().toISOString(),l||new Date().toISOString()])}for(let c of a.providerNodes||[]){let{id:a,type:d,name:f,createdAt:g,updatedAt:h,...i}=c;b.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[a,d||null,f||null,(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let c of a.proxyPools||[]){let{id:a,isActive:d,testStatus:f,createdAt:g,updatedAt:h,...i}=c;b.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[a,+(!1!==d),f||"unknown",(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let c of a.apiKeys||[])b.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[c.id,c.key,c.name||null,c.machineId||null,+(!1!==c.isActive),c.createdAt||new Date().toISOString()]);for(let c of a.combos||[])b.run("INSERT OR REPLACE INTO combos(id, name, kind, models, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c.id,c.name,c.kind||null,(0,e.s)(c.models||[]),c.createdAt||new Date().toISOString(),c.updatedAt||new Date().toISOString()]);for(let[c,d]of Object.entries(a.modelAliases||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[c,(0,e.s)(d)]);for(let c of a.customModels||[]){let a=`${c.providerAlias}|${c.id}|${c.type||"llm"}`;b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[a,(0,e.s)(c)])}for(let[c,d]of Object.entries(a.pricing||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[c,(0,e.s)(d||{})])}),(0,f.vZ)(),await at()}process.off("beforeExit",as),process.off("SIGINT",as),process.off("SIGTERM",as),process.off("exit",as),process.on("beforeExit",as),process.on("SIGINT",as),process.on("SIGTERM",as),process.on("exit",as)},51336:(a,b,c)=>{c.d(b,{getDataDir:()=>n,n:()=>o});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="10router",k="9router";function l(a){try{return!e().existsSync(a)||0===e().readdirSync(a).length}catch{return!0}}function m(){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),j):g().join(i().homedir(),`.${j}`)}function n(){let a=process.env.DATA_DIR;if(!a)return!function(){let a=m(),b="win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),k):g().join(i().homedir(),`.${k}`);if(a!==b&&l(a))try{if(!e().existsSync(b)||l(b))return;e().mkdirSync(a,{recursive:!0}),e().cpSync(b,a,{recursive:!0,force:!1,errorOnExist:!1})}catch(a){console.warn(`[DATA_DIR] legacy migrate ~/.${k} → ~/.${j} failed: ${a?.message||a}`)}}(),m();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),m();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),m();throw b}}let o=n()},68364:(a,b,c)=>{c.r(b),c.d(b,{createApiKey:()=>i,deleteApiKey:()=>k,getApiKeyById:()=>h,getApiKeys:()=>g,updateApiKey:()=>j,validateApiKey:()=>l});var d=c(97091),e=c(35462);function f(a){return a?{id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt}:null}async function g(){return(await (0,e.c)()).all("SELECT * FROM apiKeys ORDER BY createdAt ASC").map(f)}async function h(a){return f((await (0,e.c)()).get("SELECT * FROM apiKeys WHERE id = ?",[a]))}async function i(a,b){if(!b)throw Error("machineId is required");let f=await (0,e.c)(),{generateApiKeyWithMachine:g}=await c.e(1126).then(c.bind(c,81126)),h=g(b),i={id:(0,d.A)(),name:a,key:h.key,machineId:b,isActive:!0,createdAt:new Date().toISOString()};return f.run("INSERT INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[i.id,i.key,i.name,i.machineId,1,i.createdAt]),i}async function j(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM apiKeys WHERE id = ?",[a]);if(!e)return;let g={...f(e),...b};c.run("UPDATE apiKeys SET key = ?, name = ?, machineId = ?, isActive = ? WHERE id = ?",[g.key,g.name,g.machineId,+!!g.isActive,a]),d=g}),d}async function k(a){let b=(await (0,e.c)()).run("DELETE FROM apiKeys WHERE id = ?",[a]);return(b?.changes??0)>0}async function l(a){let b=(await (0,e.c)()).get("SELECT isActive FROM apiKeys WHERE key = ?",[a]);return!!b&&(1===b.isActive||!0===b.isActive)}},78449:(a,b,c)=>{c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(97091),e=c(35462),f=c(96700);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
19
19
  VALUES(?, ?, ?, ?, ?, ?)
20
20
  ON CONFLICT(id) DO UPDATE SET
21
21
  type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function i(a={}){let b=await (0,e.c)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(g)}async function j(a){return g((await (0,e.c)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function k(a){let b=await (0,e.c)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return h(b,f),f}async function l(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...g(e),...b,updatedAt:new Date().toISOString()};h(c,f),d=f}),d}async function m(a){let b=await (0,e.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=g(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]))}),c}},79558:(a,b,c)=>{c.d(b,{U:()=>f});var d=c(35462),e=c(96700);function f(a){return{async get(b,c=null){let f=(await (0,d.c)()).get("SELECT value FROM kv WHERE scope = ? AND key = ?",[a,b]);return f?(0,e.q)(f.value,c):c},async getAll(){let b=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[a]),c={};for(let a of b)c[a.key]=(0,e.q)(a.value);return c},async set(b,c){(await (0,d.c)()).run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,b,(0,e.s)(c)])},async setMany(b){let c=await (0,d.c)();c.transaction(()=>{for(let[d,f]of Object.entries(b))c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,d,(0,e.s)(f)])})},async remove(b){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ? AND key = ?",[a,b])},async clear(){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ?",[a])}}}},91602:(a,b,c)=>{c.d(b,{KJ:()=>l,VT:()=>n,getPricingForModel:()=>k,r4:()=>j,yF:()=>m});var d=c(35462),e=c(96700);let f=(0,c(79558).U)("pricing"),g={value:null,expiresAt:0};function h(){g={value:null,expiresAt:0}}async function i(){return await f.getAll()}async function j(){let a=Date.now();if(g.value&&g.expiresAt>a)return g.value;let b=await i(),{PROVIDER_PRICING:d}=await c.e(7504).then(c.bind(c,7504)),e={};for(let[a,c]of Object.entries(d))if(e[a]={...c},b[a])for(let[c,d]of Object.entries(b[a]))e[a][c]=e[a][c]?{...e[a][c],...d}:d;for(let[a,c]of Object.entries(b))if(e[a])for(let[b,d]of Object.entries(c))e[a][b]||(e[a][b]=d);else e[a]={...c};return g={value:e,expiresAt:a+5e3},e}async function k(a,b){if(!b)return null;let d=await i();if(a&&d[a]?.[b])return d[a][b];let{getPricingForModel:e}=await c.e(7504).then(c.bind(c,7504));return e(a,b)}async function l(a){let b=await (0,d.c)();return b.transaction(()=>{for(let[c,d]of Object.entries(a)){let a=b.get("SELECT value FROM kv WHERE scope = 'pricing' AND key = ?",[c]),f={...a&&(0,e.q)(a.value,{})||{}};for(let[a,b]of Object.entries(d))f[a]=b;b.run("INSERT INTO kv(scope, key, value) VALUES('pricing', ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[c,(0,e.s)(f)])}}),h(),await i()}async function m(a,b){if(!a)return await i();let c=await (0,d.c)();return c.transaction(()=>{if(!b)return void c.run("DELETE FROM kv WHERE scope = 'pricing' AND key = ?",[a]);let d=c.get("SELECT value FROM kv WHERE scope = 'pricing' AND key = ?",[a]),f=d&&(0,e.q)(d.value,{})||{};delete f[b],0===Object.keys(f).length?c.run("DELETE FROM kv WHERE scope = 'pricing' AND key = ?",[a]):c.run("INSERT INTO kv(scope, key, value) VALUES('pricing', ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,(0,e.s)(f)])}),h(),await i()}async function n(){return await f.clear(),h(),{}}},96700:(a,b,c)=>{function d(a,b=null){if(null==a)return b;if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return b}}function e(a){return JSON.stringify(a??null)}c.d(b,{q:()=>d,s:()=>e})}};
@@ -1 +1 @@
1
- "use strict";exports.id=8923,exports.ids=[8923],exports.modules={34948:(a,b,c)=>{c.d(b,{Q_:()=>p,Wc:()=>q,k9:()=>w,le:()=>o,qJ:()=>u,w9:()=>B,xK:()=>h,zn:()=>y});var d=c(77598),e=c.n(d),f=c(35841);let g="https://cloud.zed.dev",h={expiredToken:"x-zed-expired-token",outdatedToken:"x-zed-outdated-token",clientSupportsStatus:"x-zed-client-supports-status-messages",clientSupportsStreamEnded:"x-zed-client-supports-stream-ended-request-completion-status",serverSupportsStatus:"x-zed-server-supports-status-messages",clientSupportsXai:"x-zed-client-supports-x-ai",systemId:"x-zed-system-id"},i="zed-rsa-pkcs1:",j=new Map,k=new Map,l=new Map;function m(a,b){return String(a||b).replace(/\/+$/,"")}function n(a,b,c,d){let e=m(a?.[b],d);return`${e}${c}`}function o(a={},b={}){let{publicKey:c,privateKey:d}=e().generateKeyPairSync("rsa",{modulusLength:2048,publicKeyEncoding:{type:"pkcs1",format:"der"},privateKeyEncoding:{type:"pkcs1",format:"pem"}}),f=Number(b.nativeAppPort||a.defaultNativeAppPort||58443),g=b.systemId||e().randomUUID(),h=c.toString("base64").replace(/\+/g,"-").replace(/\//g,"_"),j=new URL(`${m(a.webBaseUrl,"https://zed.dev")}/native_app_signin`);return j.searchParams.set("native_app_port",String(f)),j.searchParams.set("native_app_public_key",h),g&&j.searchParams.set("system_id",g),{authUrl:j.toString(),privateKeyVerifier:`${i}${Buffer.from(d).toString("base64url")}`,nativeAppPort:f,systemId:g,publicKey:h}}function p(a){let b=String(a||"").trim();if(!b)throw Error("Missing Zed callback URL");let c={};try{c=JSON.parse(b)}catch{let a;try{a=new URL(b)}catch{try{let c=b.includes("?")?b.slice(b.indexOf("?")+1):b.replace(/^\?/,"");a=new URL(`http://127.0.0.1/?${c}`)}catch{throw Error("Invalid Zed callback URL")}}a.searchParams.forEach((a,b)=>{c[b]=a})}let d=c.user_id||c.userId,e=c.access_token||c.accessToken||c.token;if(!d||!e)throw Error("Zed callback must include user_id and access_token");return{userId:String(d),encryptedAccessToken:String(e)}}function q(a,b){let c=function(a){var b;let c=String(a||"");if(!c.startsWith(i))throw Error("Missing Zed private key verifier; restart the login flow");return b=c.slice(i.length),Buffer.from(String(b||""),"base64url").toString("utf8")}(b),d=Buffer.from(String(a),"base64url"),f=a=>{let b=a instanceof Error?a.message:String(a);throw Error(`Failed to decrypt Zed access token: ${b}`)};try{return e().privateDecrypt({key:c,padding:e().constants.RSA_PKCS1_OAEP_PADDING,oaepHash:"sha256"},d).toString("utf8")}catch(a){try{let b=e().privateDecrypt({key:c,padding:e().constants.RSA_PKCS1_PADDING},d).toString("utf8");return b.includes("�")&&f(a),b}catch(b){if(b.message.startsWith("Failed to decrypt Zed access token"))throw b;f(a)}}}function r(a){let b=(a?.providerSpecificData||{}).userId||a?.userId,c=a?.accessToken||a?.apiKey;if(!b||!c)throw Error("Zed credential is missing userId or accessToken");return`${b} ${c}`}function s(a){return String(a?.providerSpecificData?.systemId||a?.systemId||"")}async function t(a,b,c=null){let d=await (0,f.proxyAwareFetch)(a,b,c),e=await d.text(),g=null;if(e)try{g=JSON.parse(e)}catch{g={raw:e}}if(!d.ok){let a=Error(String(g?.message||g?.error?.message||g?.error||e||`HTTP ${d.status}`));throw a.status=d.status,a.body=g,a}return g}async function u(a,b={}){let c=b.config||{},d={Accept:"application/json",Authorization:r(a)},e=s(a);return e&&(d[h.systemId]=e),t(n(c,"cloudBaseUrl","/client/users/me",g),{method:"GET",headers:d,signal:b.signal??void 0},b.proxyOptions??null)}function v(a){if(!a)return"";if("string"==typeof a)return a;if("object"==typeof a&&null!==a){if("string"==typeof a[0])return a[0];if("string"==typeof a.id)return a.id}return String(a)}function w(a,b=null){let c=a?.providerSpecificData||{},d=v(c.organizationId||c.defaultOrganizationId);if(d)return d;let e=v(b?.default_organization_id||b?.defaultOrganizationId);if(e)return e;let f=b?.organizations||[],g=f.find(a=>a?.is_personal)||f[0];return v(g?.id)}async function x(a,b={}){var c;let d,e,f=b.config||{},i=b.organizationId||w(a);if(!i){let c=await u(a,b);i=w(a,c)}if(!i)throw Error("No Zed organization selected");let k=(c=i,d=(a?.providerSpecificData||{}).userId||a?.userId||"unknown",e=a?.accessToken||a?.apiKey||"",`${d}:${c||"default"}:${e.slice(-16)}`),l=j.get(k);if(!b.forceRefresh&&l&&l.expiresAt>Date.now())return l.token;let m={"Content-Type":"application/json",Accept:"application/json",Authorization:r(a)},o=s(a);o&&(m[h.systemId]=o);let p=await t(n(f,"cloudBaseUrl","/client/llm_tokens",g),{method:"POST",headers:m,body:JSON.stringify({organization_id:i}),signal:b.signal??void 0},b.proxyOptions??null),q="string"==typeof p?.token?p.token:p?.token?.[0]||p?.token?.value;if(!q)throw Error("Zed did not return an LLM token");return j.set(k,{token:q,expiresAt:Date.now()+3e6}),q}async function y(a,b,c={}){var d;let e=n(c.config||{},"llmBaseUrl",b,"https://cloud.zed.dev"),g=async b=>{let d=await x(a,{...c,forceRefresh:b});return(0,f.proxyAwareFetch)(e,{...c.fetchOptions,headers:{...c.fetchOptions?.headers||{},Authorization:`Bearer ${d}`},signal:c.signal??void 0},c.proxyOptions??null)},i=await g(!1);return d=i,(d?.status===401||d?.headers?.has?.(h.expiredToken)||d?.headers?.has?.(h.outdatedToken))&&(i=await g(!0)),i}function z(a){if(!a)return"";if("string"==typeof a)return a;if("object"==typeof a&&null!==a){if("string"==typeof a[0])return a[0];if("string"==typeof a.id)return a.id}return String(a)}function A(a){let b=z(a?.id);return b?{id:b,name:a.display_name||a.displayName||b,provider:a.provider,isLatest:!!a.is_latest,contextLength:a.max_token_count??a.maxTokenCount,contextLengthInMaxMode:a.max_token_count_in_max_mode??a.maxTokenCountInMaxMode,maxOutputTokens:a.max_output_tokens??a.maxOutputTokens,supportsTools:!!a.supports_tools,supportsImages:!!a.supports_images,supportsThinking:!!a.supports_thinking,supportsDisablingThinking:!!a.supports_disabling_thinking,supportsFastMode:!!a.supports_fast_mode,supportsServerSideCompaction:!!a.supports_server_side_compaction,supportedEffortLevels:a.supported_effort_levels??a.supportedEffortLevels??[],supportsStreamingTools:!!a.supports_streaming_tools,supportsParallelToolCalls:!!a.supports_parallel_tool_calls,isDisabled:!!a.is_disabled,disabledReason:a.disabled_reason??null}:null}async function B(a,b={}){let c,d,e;if(!a?.accessToken)return null;let f=(d=(c=a?.providerSpecificData||{}).organizationId||c.defaultOrganizationId||"default",e=a?.accessToken||a?.apiKey||"",`${c.userId||"unknown"}:${d}:${e.slice(-16)}`),g=k.get(f);if(!b.forceRefresh&&g&&g.expiresAt>Date.now())return g;let i=l.get(f);if(i&&!b.forceRefresh)return i;let j=(async()=>{let c=await y(a,"/models",{...b,fetchOptions:{method:"GET",headers:{Accept:"application/json",[h.clientSupportsXai]:"true"}}});if(!c.ok){let a=await c.text().catch(()=>"");throw Error(`Zed models failed: ${c.status} ${a}`)}let d=await c.json(),e=Array.isArray(d?.models)?d.models:[],g=e.map(A).filter(Boolean).filter(a=>!a.isDisabled),i=new Map;for(let a of e){let b=z(a?.id);b&&i.set(b,a)}let j={expiresAt:Date.now()+36e5,models:g,rawModels:e,rawById:i,defaultModel:z(d?.default_model??d?.defaultModel),defaultFastModel:z(d?.default_fast_model??d?.defaultFastModel),recommendedModels:(d?.recommended_models||d?.recommendedModels||[]).map(z).filter(Boolean)};return k.set(f,j),j})();l.set(f,j);try{return await j}finally{l.get(f)===j&&l.delete(f)}}},98630:(a,b,c)=>{c.d(b,{B:()=>h,p:()=>g});var d=c(67268);function e(a){return null==a?"":String(a).trim()}let f=new Map;function g(a,b,c){if(!a||0===a.length)return null;if(1===a.length)return a[0];if("round-robin"===b){let b=f.get(c)||{index:-1};return b.index=(b.index+1)%a.length,f.set(c,b),a[b.index]}return"random"===b?a[Math.floor(Math.random()*a.length)]:a[0]}async function h(a={}){try{let b=e(a?.proxyPoolId),c="__none__"===b?"":b,f=function(a={}){let b=a?.connectionProxyEnabled===!0,c=e(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(f.connectionProxyEnabled&&f.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...f};return{source:"none",proxyPoolId:c||null,proxyPool:null,...f}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}}};
1
+ "use strict";exports.id=8923,exports.ids=[8923],exports.modules={34948:(a,b,c)=>{c.d(b,{Q_:()=>q,Wc:()=>r,k9:()=>z,le:()=>p,qJ:()=>x,w9:()=>E,xK:()=>i,zn:()=>B});var d=c(77598),e=c.n(d),f=c(35841),g=c(97508);let h="https://cloud.zed.dev",i={expiredToken:"x-zed-expired-token",outdatedToken:"x-zed-outdated-token",clientSupportsStatus:"x-zed-client-supports-status-messages",clientSupportsStreamEnded:"x-zed-client-supports-stream-ended-request-completion-status",serverSupportsStatus:"x-zed-server-supports-status-messages",clientSupportsXai:"x-zed-client-supports-x-ai",systemId:"x-zed-system-id"},j="zed-rsa-pkcs1:",k=new Map,l=new Map,m=new Map;function n(a,b){return String(a||b).replace(/\/+$/,"")}function o(a,b,c,d){let e=n(a?.[b],d);return`${e}${c}`}function p(a={},b={}){let{publicKey:c,privateKey:d}=e().generateKeyPairSync("rsa",{modulusLength:2048,publicKeyEncoding:{type:"pkcs1",format:"der"},privateKeyEncoding:{type:"pkcs1",format:"pem"}}),f=Number(b.nativeAppPort||a.defaultNativeAppPort||58443),g=b.systemId||e().randomUUID(),h=c.toString("base64").replace(/\+/g,"-").replace(/\//g,"_"),i=new URL(`${n(a.webBaseUrl,"https://zed.dev")}/native_app_signin`);return i.searchParams.set("native_app_port",String(f)),i.searchParams.set("native_app_public_key",h),g&&i.searchParams.set("system_id",g),{authUrl:i.toString(),privateKeyVerifier:`${j}${Buffer.from(d).toString("base64url")}`,nativeAppPort:f,systemId:g,publicKey:h}}function q(a){let b=String(a||"").trim();if(!b)throw Error("Missing Zed callback URL");let c={};try{c=JSON.parse(b)}catch{let a;try{a=new URL(b)}catch{try{let c=b.includes("?")?b.slice(b.indexOf("?")+1):b.replace(/^\?/,"");a=new URL(`http://127.0.0.1/?${c}`)}catch{throw Error("Invalid Zed callback URL")}}a.searchParams.forEach((a,b)=>{c[b]=a})}let d=c.user_id||c.userId,e=c.access_token||c.accessToken||c.token;if(!d||!e)throw Error("Zed callback must include user_id and access_token");return{userId:String(d),encryptedAccessToken:String(e)}}function r(a,b){let c=function(a){var b;let c=String(a||"");if(!c.startsWith(j))throw Error("Missing Zed private key verifier; restart the login flow");return b=c.slice(j.length),Buffer.from(String(b||""),"base64url").toString("utf8")}(b),d=Buffer.from(String(a),"base64url"),f=a=>{let b=a instanceof Error?a.message:String(a);throw Error(`Failed to decrypt Zed access token: ${b}`)};try{return e().privateDecrypt({key:c,padding:e().constants.RSA_PKCS1_OAEP_PADDING,oaepHash:"sha256"},d).toString("utf8")}catch(a){try{let b=e().privateDecrypt({key:c,padding:e().constants.RSA_PKCS1_PADDING},d).toString("utf8");return b.includes("�")&&f(a),b}catch(b){if(b.message.startsWith("Failed to decrypt Zed access token"))throw b;f(a)}}}function s(a){let b=(a?.providerSpecificData||{}).userId||a?.userId,c=a?.accessToken||a?.apiKey;if(!b||!c)throw Error("Zed credential is missing userId or accessToken");return`${b} ${c}`}function t(a){return String(a?.providerSpecificData?.systemId||a?.systemId||"")}let u=new Set(["ECONNRESET","ECONNREFUSED","ETIMEDOUT","EPIPE","EAI_AGAIN","UND_ERR_SOCKET"]);async function v(a,b,c=null,d=502){let{attempts:e,delayMs:h}=(0,g.DR)(g.cI[d]);for(let d=0;;d++)try{return await (0,f.proxyAwareFetch)(a,b,c)}catch(a){if(!function(a){if(!a||"AbortError"===a.name)return!1;let b=a.code||a.cause?.code;return!!(b&&u.has(b))||/socket hang up|ECONNRESET|other side closed/i.test(String(a.message||""))}(a)||d>=e)throw a;await function(a){return new Promise(b=>setTimeout(b,a))}(h)}}async function w(a,b,c=null){let d=await v(a,b,c),e=await d.text(),f=null;if(e)try{f=JSON.parse(e)}catch{f={raw:e}}if(!d.ok){let a=Error(String(f?.message||f?.error?.message||f?.error||e||`HTTP ${d.status}`));throw a.status=d.status,a.body=f,a}return f}async function x(a,b={}){let c=b.config||{},d={Accept:"application/json",Authorization:s(a)},e=t(a);return e&&(d[i.systemId]=e),w(o(c,"cloudBaseUrl","/client/users/me",h),{method:"GET",headers:d,signal:b.signal??void 0},b.proxyOptions??null)}function y(a){if(!a)return"";if("string"==typeof a)return a;if("object"==typeof a&&null!==a){if("string"==typeof a[0])return a[0];if("string"==typeof a.id)return a.id}return String(a)}function z(a,b=null){let c=a?.providerSpecificData||{},d=y(c.organizationId||c.defaultOrganizationId);if(d)return d;let e=y(b?.default_organization_id||b?.defaultOrganizationId);if(e)return e;let f=b?.organizations||[],g=f.find(a=>a?.is_personal)||f[0];return y(g?.id)}async function A(a,b={}){var c;let d,e,f=b.config||{},g=b.organizationId||z(a);if(!g){let c=await x(a,b);g=z(a,c)}if(!g)throw Error("No Zed organization selected");let j=(c=g,d=(a?.providerSpecificData||{}).userId||a?.userId||"unknown",e=a?.accessToken||a?.apiKey||"",`${d}:${c||"default"}:${e.slice(-16)}`),l=k.get(j);if(!b.forceRefresh&&l&&l.expiresAt>Date.now())return l.token;let m={"Content-Type":"application/json",Accept:"application/json",Authorization:s(a)},n=t(a);n&&(m[i.systemId]=n);let p=await w(o(f,"cloudBaseUrl","/client/llm_tokens",h),{method:"POST",headers:m,body:JSON.stringify({organization_id:g}),signal:b.signal??void 0},b.proxyOptions??null),q="string"==typeof p?.token?p.token:p?.token?.[0]||p?.token?.value;if(!q)throw Error("Zed did not return an LLM token");return k.set(j,{token:q,expiresAt:Date.now()+3e6}),q}async function B(a,b,c={}){var d;let e=o(c.config||{},"llmBaseUrl",b,"https://cloud.zed.dev"),f=async b=>{let d=await A(a,{...c,forceRefresh:b});return v(e,{...c.fetchOptions,headers:{...c.fetchOptions?.headers||{},Authorization:`Bearer ${d}`},signal:c.signal??void 0},c.proxyOptions??null)},g=await f(!1);return d=g,(d?.status===401||d?.headers?.has?.(i.expiredToken)||d?.headers?.has?.(i.outdatedToken))&&(g=await f(!0)),g}function C(a){if(!a)return"";if("string"==typeof a)return a;if("object"==typeof a&&null!==a){if("string"==typeof a[0])return a[0];if("string"==typeof a.id)return a.id}return String(a)}function D(a){let b=C(a?.id);return b?{id:b,name:a.display_name||a.displayName||b,provider:a.provider,isLatest:!!a.is_latest,contextLength:a.max_token_count??a.maxTokenCount,contextLengthInMaxMode:a.max_token_count_in_max_mode??a.maxTokenCountInMaxMode,maxOutputTokens:a.max_output_tokens??a.maxOutputTokens,supportsTools:!!a.supports_tools,supportsImages:!!a.supports_images,supportsThinking:!!a.supports_thinking,supportsDisablingThinking:!!a.supports_disabling_thinking,supportsFastMode:!!a.supports_fast_mode,supportsServerSideCompaction:!!a.supports_server_side_compaction,supportedEffortLevels:a.supported_effort_levels??a.supportedEffortLevels??[],supportsStreamingTools:!!a.supports_streaming_tools,supportsParallelToolCalls:!!a.supports_parallel_tool_calls,isDisabled:!!a.is_disabled,disabledReason:a.disabled_reason??null}:null}async function E(a,b={}){let c,d,e;if(!a?.accessToken)return null;let f=(d=(c=a?.providerSpecificData||{}).organizationId||c.defaultOrganizationId||"default",e=a?.accessToken||a?.apiKey||"",`${c.userId||"unknown"}:${d}:${e.slice(-16)}`),g=l.get(f);if(!b.forceRefresh&&g&&g.expiresAt>Date.now())return g;let h=m.get(f);if(h&&!b.forceRefresh)return h;let j=(async()=>{let c=await B(a,"/models",{...b,fetchOptions:{method:"GET",headers:{Accept:"application/json",[i.clientSupportsXai]:"true"}}});if(!c.ok){let a=await c.text().catch(()=>"");throw Error(`Zed models failed: ${c.status} ${a}`)}let d=await c.json(),e=Array.isArray(d?.models)?d.models:[],g=e.map(D).filter(Boolean).filter(a=>!a.isDisabled),h=new Map;for(let a of e){let b=C(a?.id);b&&h.set(b,a)}let j={expiresAt:Date.now()+36e5,models:g,rawModels:e,rawById:h,defaultModel:C(d?.default_model??d?.defaultModel),defaultFastModel:C(d?.default_fast_model??d?.defaultFastModel),recommendedModels:(d?.recommended_models||d?.recommendedModels||[]).map(C).filter(Boolean)};return l.set(f,j),j})();m.set(f,j);try{return await j}finally{m.get(f)===j&&m.delete(f)}}},98630:(a,b,c)=>{c.d(b,{B:()=>h,p:()=>g});var d=c(67268);function e(a){return null==a?"":String(a).trim()}let f=new Map;function g(a,b,c){if(!a||0===a.length)return null;if(1===a.length)return a[0];if("round-robin"===b){let b=f.get(c)||{index:-1};return b.index=(b.index+1)%a.length,f.set(c,b),a[b.index]}return"random"===b?a[Math.floor(Math.random()*a.length)]:a[0]}async function h(a={}){try{let b=e(a?.proxyPoolId),c="__none__"===b?"":b,f=function(a={}){let b=a?.connectionProxyEnabled===!0,c=e(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(f.connectionProxyEnabled&&f.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...f};return{source:"none",proxyPoolId:c||null,proxyPool:null,...f}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=9018,exports.ids=[9018],exports.modules={4271:(a,b,c)=>{c.d(b,{BT:()=>i,Wu:()=>k,X9:()=>j,ZB:()=>h,Zp:()=>f,aR:()=>g});var d=c(86240);c(70433);var e=c(89988);function f({className:a,size:b="default",...c}){return(0,d.jsx)("div",{"data-slot":"card","data-size":b,className:(0,e.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground shadow-xs ring-1 ring-foreground/10 [--card-spacing:--spacing(6)] has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(4)] *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",a),...c})}function g({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:(0,e.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",a),...b})}function h({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:(0,e.cn)("font-heading text-base leading-normal font-medium group-data-[size=sm]/card:text-sm",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:(0,e.cn)("text-sm text-muted-foreground",a),...b})}function j({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-action",className:(0,e.cn)("col-start-2 row-span-2 row-start-1 self-start justify-self-end",a),...b})}function k({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:(0,e.cn)("flex flex-col gap-3 px-(--card-spacing)",a),...b})}},19094:(a,b,c)=>{c.d(b,{ad:()=>f,gH:()=>e});let d={gh:{"gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14,cache_creation:1.75}},tokenrouter:{"MiniMax-M3":{input:.3,output:1.2,cached:.06,reasoning:1.2},"anthropic/claude-fable-5":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-haiku-4.5":{input:1,output:5,cached:.1,cache_creation:1.25,reasoning:5},"anthropic/claude-opus-4.5":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.6":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.7":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.7-fast":{input:30,output:150,cached:3,reasoning:150},"anthropic/claude-opus-4.8":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.8-fast":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-opus-5":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-5-fast":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-sonnet-4":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-4.5":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-4.6":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-5":{input:2,output:10,cached:.2,reasoning:10},"claude-opus-4-8-m-aws":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"deepseek/deepseek-v3.2":{input:.26,output:.38,cached:.13,reasoning:.38},"deepseek/deepseek-v4-flash":{input:.14,output:.28,cached:.0028,reasoning:.28},"deepseek/deepseek-v4-flash-0731":{input:.14,output:.28,cached:.0028,reasoning:.28},"deepseek/deepseek-v4-pro":{input:.435,output:.87,cached:.003625,reasoning:.87},"ex/gpt-5.4":{input:2.5,output:15,cached:.25,reasoning:15},"google/gemini-2.5-flash-image":{input:.3,output:2.5,reasoning:2.5},"google/gemini-3-flash-preview":{input:.5,output:3,cached:.05,cache_creation:.08333,reasoning:3},"google/gemini-3-pro-image-preview":{input:2,output:12,reasoning:12},"google/gemini-3.1-flash-image-preview":{input:.5,output:3,reasoning:3},"google/gemini-3.1-flash-lite-image":{input:.25,output:1.5,reasoning:1.5},"google/gemini-3.1-pro-preview":{input:2,output:12,cached:.2,cache_creation:.375,reasoning:12},"google/gemini-3.5-flash":{input:1.5,output:9,cached:.15,cache_creation:.08333,reasoning:9},"google/gemini-3.5-flash-lite":{input:.3,output:2.5,cached:.03,cache_creation:.08333,reasoning:2.5},"google/gemini-3.6-flash":{input:1.5,output:7.5,cached:.15,cache_creation:.08333,reasoning:7.5},"google/gemini-embedding-2":{input:1,output:6,cached:.1,reasoning:6},"google/gemma-4-26b-a4b-it":{input:.06,output:.33,reasoning:.33},"kling-3.0-turbo":{input:2.1,output:2.1,reasoning:2.1},"microsoft/mai-image-2.5":{input:5,output:47,reasoning:47},"minimax/minimax-m2-her":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.1":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.1-highspeed":{input:.6,output:2.4,cached:.06,reasoning:2.4},"minimax/minimax-m2.5":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.7":{input:.3,output:1.2,cached:.06,reasoning:1.2},"minimax/minimax-m2.7-highspeed":{input:.6,output:2.4,cached:.06,reasoning:2.4},"miromind/mirothinker-1-7-deepresearch":{input:4,output:25,reasoning:25},"miromind/mirothinker-1-7-deepresearch-mini":{input:1.25,output:10,reasoning:10},"mistralai/devstral-2512":{input:.4,output:2,cached:.04,reasoning:2},"mistralai/mistral-medium-3-5":{input:1.5,output:7.5,reasoning:7.5},"mistralai/mistral-small-2603":{input:.15,output:.6,cached:.015,reasoning:.6},"mistralai/voxtral-small-24b-2507":{input:.1,output:.3,cached:.01,reasoning:.3},"moonshotai/kimi-k2.5":{input:.6,output:3,cached:.1,reasoning:3},"moonshotai/kimi-k2.6":{input:.95,output:4,cached:.16,reasoning:4},"moonshotai/kimi-k2.7-code":{input:.9286,output:3.8571,cached:.1857,reasoning:3.8571},"moonshotai/kimi-k3":{input:3,output:15,cached:.3,reasoning:15},"nvidia/nemotron-3-super-120b-a12b":{input:.3,output:.9,cached:.1,reasoning:.9},"openai/gpt-4o-mini":{input:.15,output:.6,cached:.075,reasoning:.6},"openai/gpt-5":{input:1.25,output:10,cached:.125,reasoning:10},"openai/gpt-5-image":{input:10,output:40,cached:2.5,reasoning:40},"openai/gpt-5-image-mini":{input:2.5,output:8,cached:.25,reasoning:8},"openai/gpt-5-mini":{input:.25,output:2,cached:.025,reasoning:2},"openai/gpt-5.2":{input:1.75,output:14,cached:.175,reasoning:14},"openai/gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14},"openai/gpt-5.4":{input:2.5,output:15,cached:.25,reasoning:15},"openai/gpt-5.4-image-2":{input:8,output:30,cached:2,reasoning:30},"openai/gpt-5.4-mini":{input:.75,output:4.5,cached:.075,reasoning:4.5},"openai/gpt-5.4-nano":{input:.2,output:1.25,cached:.02,reasoning:1.25},"openai/gpt-5.4-pro":{input:30,output:180,reasoning:180},"openai/gpt-5.5":{input:5,output:30,cached:.5,reasoning:30},"openai/gpt-5.5-pro":{input:30,output:180,reasoning:180},"openai/gpt-5.6-luna":{input:.2,output:1.2,cached:.02,cache_creation:.25,reasoning:1.2},"openai/gpt-5.6-sol":{input:5,output:30,cached:.5,cache_creation:6.25,reasoning:30},"openai/gpt-5.6-terra":{input:2,output:12,cached:.2,cache_creation:2.5,reasoning:12},"openai/gpt-audio":{input:2.5,output:10,reasoning:10},"openai/gpt-audio-mini":{input:.6,output:2.4,reasoning:2.4},"openai/gpt-oss-120b":{input:.039,output:.18,reasoning:.18},"qwen/qwen3-coder-next":{input:.12,output:.75,cached:.06,reasoning:.75},"qwen/qwen3.5-122b-a10b":{input:.26,output:2.08,reasoning:2.08},"qwen/qwen3.5-35b-a3b":{input:.1625,output:1.3,reasoning:1.3},"qwen/qwen3.5-397b-a17b":{input:.39,output:2.34,reasoning:2.34},"qwen/qwen3.5-9b":{input:.1,output:.15,reasoning:.15},"qwen/qwen3.5-flash":{input:.1048,output:.4194,reasoning:.4194},"qwen/qwen3.5-plus-02-15":{input:.26,output:1.56,reasoning:1.56},"qwen/qwen3.6-plus":{input:.54,output:3.21,reasoning:3.21},"qwen/qwen3.7-max":{input:1.25,output:3.75,cached:.25,reasoning:3.75},"qwen/qwen3.7-plus":{input:.4,output:1.6,cached:.08,reasoning:1.6},"qwen/qwen3.8-max":{input:2,output:6,cached:.25,cache_creation:2.5,reasoning:6},"qwen3.5-omni-plus":{input:1,output:5.7143,reasoning:5.7143},"qwen3.6-flash":{input:.171,output:1.029,cached:.017,cache_creation:.214,reasoning:1.029},"sakana/fugu-ultra":{input:5,output:30,cached:.5,reasoning:30},"seed-2-0-code-preview-260328":{input:1,output:6,cached:.2,cache_creation:.008333,reasoning:6},"seed-2-0-lite-260428":{input:.5,output:4,cached:.1,cache_creation:.008333,reasoning:4},"seed-2-0-mini-260428":{input:.2,output:.8,cached:.04,cache_creation:.00833,reasoning:.8},"seed-2-0-pro-260328":{input:1,output:6,cached:.2,cache_creation:.008333,reasoning:6},"stepfun/step-3.5-flash":{input:.1,output:.3,cached:.02,reasoning:.3},"stepfun/step-3.7-flash":{input:.2,output:1.15,cached:.04,reasoning:1.15},"tencent/hy3-preview":{input:.066,output:.26,cached:.029,reasoning:.26},"x-ai/grok-4.1-fast":{input:.2,output:.5,cached:.05,reasoning:.5},"x-ai/grok-4.20-beta":{input:2,output:6,cached:.2,reasoning:6},"x-ai/grok-4.3":{input:1.25,output:2.5,cached:.2,reasoning:2.5},"x-ai/grok-4.5":{input:2,output:6,cached:.5,reasoning:6},"x-ai/grok-build-0.1":{input:1,output:2,cached:.2,reasoning:2},"xiaomi/mimo-v2-flash":{input:.1,output:.3,cached:.01,reasoning:.3},"xiaomi/mimo-v2-omni":{input:.4,output:2,cached:.08,reasoning:2},"xiaomi/mimo-v2-pro":{input:1,output:3,cached:.2,reasoning:3},"xiaomi/mimo-v2.5":{input:.4,output:2,cached:.08,reasoning:2},"xiaomi/mimo-v2.5-pro":{input:1,output:3,cached:.2,reasoning:3},"z-ai/glm-4.5-air":{input:.13,output:.85,cached:.025,reasoning:.85},"z-ai/glm-4.6":{input:.6,output:2.2,cached:.11,reasoning:2.2},"z-ai/glm-4.6v":{input:.3,output:.9,reasoning:.9},"z-ai/glm-4.7":{input:.6,output:2.2,cached:.11,reasoning:2.2},"z-ai/glm-5":{input:1,output:3.2,cached:.2,reasoning:3.2},"z-ai/glm-5-turbo":{input:1.2,output:4,cached:.24,reasoning:4},"z-ai/glm-5.1":{input:1.05,output:3.5,cached:.525,reasoning:3.5},"z-ai/glm-5.2":{input:1.4,output:4.4,cached:.26,reasoning:4.4},"z-ai/glm-5.3-free":{input:0,output:0,cached:0,reasoning:0}}};function e(a,b){return RegExp("^"+a.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i").test(b)}function f(){return d}},63265:(a,b,c)=>{c.d(b,{$:()=>i});var d=c(86240);c(70433);var e=c(48884),f=c(89988),g=c(3510);let h=(0,e.F)("group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background shadow-xs hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",lg:"h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-9","icon-xs":"size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",asChild:e=!1,...j}){let k=e?g.bL:"button";return(0,d.jsx)(k,{"data-slot":"button","data-variant":b,"data-size":c,className:(0,f.cn)(h({variant:b,size:c,className:a})),...j})}},67209:(a,b,c)=>{c.d(b,{Cf:()=>m,Es:()=>o,HM:()=>k,L3:()=>p,c7:()=>n,lG:()=>i,rr:()=>q});var d=c(86240);c(70433);var e=c(89988),f=c(68322),g=c(63265),h=c(78629);function i({...a}){return(0,d.jsx)(f.bL,{"data-slot":"dialog",...a})}function j({...a}){return(0,d.jsx)(f.ZL,{"data-slot":"dialog-portal",...a})}function k({...a}){return(0,d.jsx)(f.bm,{"data-slot":"dialog-close",...a})}function l({className:a,...b}){return(0,d.jsx)(f.hJ,{"data-slot":"dialog-overlay",className:(0,e.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...b})}function m({className:a,children:b,showCloseButton:c=!0,...i}){return(0,d.jsxs)(j,{children:[(0,d.jsx)(l,{}),(0,d.jsxs)(f.UC,{"data-slot":"dialog-content",className:(0,e.cn)("fixed top-1/2 left-1/2 z-50 grid w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-0 rounded-xl bg-popover p-0 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...i,children:[b,c&&(0,d.jsx)(f.bm,{"data-slot":"dialog-close",asChild:!0,children:(0,d.jsxs)(g.$,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm",children:[(0,d.jsx)(h.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})})]})]})}function n({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-header",className:(0,e.cn)("flex min-h-14 flex-col items-start justify-center gap-1 border-b border-border px-4 py-3 pr-12",a),...b})}function o({className:a,showCloseButton:b=!1,children:c,...h}){return(0,d.jsxs)("div",{"data-slot":"dialog-footer",className:(0,e.cn)("flex flex-col-reverse gap-2 border-t border-border p-4 sm:flex-row sm:justify-end",a),...h,children:[c,b&&(0,d.jsx)(f.bm,{asChild:!0,children:(0,d.jsx)(g.$,{variant:"outline",children:"Close"})})]})}function p({className:a,...b}){return(0,d.jsx)(f.hE,{"data-slot":"dialog-title",className:(0,e.cn)("font-heading leading-none font-medium",a),...b})}function q({className:a,...b}){return(0,d.jsx)(f.VY,{"data-slot":"dialog-description",className:(0,e.cn)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",a),...b})}},81501:(a,b,c)=>{c.d(b,{p:()=>f});var d=c(86240);c(70433);var e=c(89988);function f({className:a,type:b,...c}){return(0,d.jsx)("input",{type:b,"data-slot":"input",className:(0,e.cn)("h-9 w-full min-w-0 rounded-md border border-input bg-background px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",a),...c})}}};
1
+ "use strict";exports.id=9018,exports.ids=[9018],exports.modules={4271:(a,b,c)=>{c.d(b,{BT:()=>i,Wu:()=>k,X9:()=>j,ZB:()=>h,Zp:()=>f,aR:()=>g});var d=c(86240);c(70433);var e=c(89988);function f({className:a,size:b="default",...c}){return(0,d.jsx)("div",{"data-slot":"card","data-size":b,className:(0,e.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground shadow-xs ring-1 ring-foreground/10 [--card-spacing:--spacing(6)] has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(4)] *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",a),...c})}function g({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:(0,e.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",a),...b})}function h({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:(0,e.cn)("font-heading text-base leading-normal font-medium group-data-[size=sm]/card:text-sm",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:(0,e.cn)("text-sm text-muted-foreground",a),...b})}function j({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-action",className:(0,e.cn)("col-start-2 row-span-2 row-start-1 self-start justify-self-end",a),...b})}function k({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:(0,e.cn)("flex flex-col gap-3 px-(--card-spacing)",a),...b})}},19094:(a,b,c)=>{c.d(b,{ad:()=>g,gH:()=>f});let d={gh:{"gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14,cache_creation:1.75}},tokenrouter:{"MiniMax-M3":{input:.3,output:1.2,cached:.06,reasoning:1.2},"anthropic/claude-fable-5":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-haiku-4.5":{input:1,output:5,cached:.1,cache_creation:1.25,reasoning:5},"anthropic/claude-opus-4.5":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.6":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.7":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.7-fast":{input:30,output:150,cached:3,reasoning:150},"anthropic/claude-opus-4.8":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-4.8-fast":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-opus-5":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"anthropic/claude-opus-5-fast":{input:10,output:50,cached:1,cache_creation:12.5,reasoning:50},"anthropic/claude-sonnet-4":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-4.5":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-4.6":{input:3,output:15,cached:.3,cache_creation:3.75,reasoning:15},"anthropic/claude-sonnet-5":{input:2,output:10,cached:.2,reasoning:10},"claude-opus-4-8-m-aws":{input:5,output:25,cached:.5,cache_creation:6.25,reasoning:25},"deepseek/deepseek-v3.2":{input:.26,output:.38,cached:.13,reasoning:.38},"deepseek/deepseek-v4-flash":{input:.14,output:.28,cached:.0028,reasoning:.28},"deepseek/deepseek-v4-flash-0731":{input:.14,output:.28,cached:.0028,reasoning:.28},"deepseek/deepseek-v4-pro":{input:.435,output:.87,cached:.003625,reasoning:.87},"ex/gpt-5.4":{input:2.5,output:15,cached:.25,reasoning:15},"google/gemini-2.5-flash-image":{input:.3,output:2.5,reasoning:2.5},"google/gemini-3-flash-preview":{input:.5,output:3,cached:.05,cache_creation:.08333,reasoning:3},"google/gemini-3-pro-image-preview":{input:2,output:12,reasoning:12},"google/gemini-3.1-flash-image-preview":{input:.5,output:3,reasoning:3},"google/gemini-3.1-flash-lite-image":{input:.25,output:1.5,reasoning:1.5},"google/gemini-3.1-pro-preview":{input:2,output:12,cached:.2,cache_creation:.375,reasoning:12},"google/gemini-3.5-flash":{input:1.5,output:9,cached:.15,cache_creation:.08333,reasoning:9},"google/gemini-3.5-flash-lite":{input:.3,output:2.5,cached:.03,cache_creation:.08333,reasoning:2.5},"google/gemini-3.6-flash":{input:1.5,output:7.5,cached:.15,cache_creation:.08333,reasoning:7.5},"google/gemini-embedding-2":{input:1,output:6,cached:.1,reasoning:6},"google/gemma-4-26b-a4b-it":{input:.06,output:.33,reasoning:.33},"kling-3.0-turbo":{input:2.1,output:2.1,reasoning:2.1},"microsoft/mai-image-2.5":{input:5,output:47,reasoning:47},"minimax/minimax-m2-her":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.1":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.1-highspeed":{input:.6,output:2.4,cached:.06,reasoning:2.4},"minimax/minimax-m2.5":{input:.3,output:1.2,cached:.03,reasoning:1.2},"minimax/minimax-m2.7":{input:.3,output:1.2,cached:.06,reasoning:1.2},"minimax/minimax-m2.7-highspeed":{input:.6,output:2.4,cached:.06,reasoning:2.4},"miromind/mirothinker-1-7-deepresearch":{input:4,output:25,reasoning:25},"miromind/mirothinker-1-7-deepresearch-mini":{input:1.25,output:10,reasoning:10},"mistralai/devstral-2512":{input:.4,output:2,cached:.04,reasoning:2},"mistralai/mistral-medium-3-5":{input:1.5,output:7.5,reasoning:7.5},"mistralai/mistral-small-2603":{input:.15,output:.6,cached:.015,reasoning:.6},"mistralai/voxtral-small-24b-2507":{input:.1,output:.3,cached:.01,reasoning:.3},"moonshotai/kimi-k2.5":{input:.6,output:3,cached:.1,reasoning:3},"moonshotai/kimi-k2.6":{input:.95,output:4,cached:.16,reasoning:4},"moonshotai/kimi-k2.7-code":{input:.9286,output:3.8571,cached:.1857,reasoning:3.8571},"moonshotai/kimi-k3":{input:3,output:15,cached:.3,reasoning:15},"nvidia/nemotron-3-super-120b-a12b":{input:.3,output:.9,cached:.1,reasoning:.9},"openai/gpt-4o-mini":{input:.15,output:.6,cached:.075,reasoning:.6},"openai/gpt-5":{input:1.25,output:10,cached:.125,reasoning:10},"openai/gpt-5-image":{input:10,output:40,cached:2.5,reasoning:40},"openai/gpt-5-image-mini":{input:2.5,output:8,cached:.25,reasoning:8},"openai/gpt-5-mini":{input:.25,output:2,cached:.025,reasoning:2},"openai/gpt-5.2":{input:1.75,output:14,cached:.175,reasoning:14},"openai/gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14},"openai/gpt-5.4":{input:2.5,output:15,cached:.25,reasoning:15},"openai/gpt-5.4-image-2":{input:8,output:30,cached:2,reasoning:30},"openai/gpt-5.4-mini":{input:.75,output:4.5,cached:.075,reasoning:4.5},"openai/gpt-5.4-nano":{input:.2,output:1.25,cached:.02,reasoning:1.25},"openai/gpt-5.4-pro":{input:30,output:180,reasoning:180},"openai/gpt-5.5":{input:5,output:30,cached:.5,reasoning:30},"openai/gpt-5.5-pro":{input:30,output:180,reasoning:180},"openai/gpt-5.6-luna":{input:.2,output:1.2,cached:.02,cache_creation:.25,reasoning:1.2},"openai/gpt-5.6-sol":{input:5,output:30,cached:.5,cache_creation:6.25,reasoning:30},"openai/gpt-5.6-terra":{input:2,output:12,cached:.2,cache_creation:2.5,reasoning:12},"openai/gpt-audio":{input:2.5,output:10,reasoning:10},"openai/gpt-audio-mini":{input:.6,output:2.4,reasoning:2.4},"openai/gpt-oss-120b":{input:.039,output:.18,reasoning:.18},"qwen/qwen3-coder-next":{input:.12,output:.75,cached:.06,reasoning:.75},"qwen/qwen3.5-122b-a10b":{input:.26,output:2.08,reasoning:2.08},"qwen/qwen3.5-35b-a3b":{input:.1625,output:1.3,reasoning:1.3},"qwen/qwen3.5-397b-a17b":{input:.39,output:2.34,reasoning:2.34},"qwen/qwen3.5-9b":{input:.1,output:.15,reasoning:.15},"qwen/qwen3.5-flash":{input:.1048,output:.4194,reasoning:.4194},"qwen/qwen3.5-plus-02-15":{input:.26,output:1.56,reasoning:1.56},"qwen/qwen3.6-plus":{input:.54,output:3.21,reasoning:3.21},"qwen/qwen3.7-max":{input:1.25,output:3.75,cached:.25,reasoning:3.75},"qwen/qwen3.7-plus":{input:.4,output:1.6,cached:.08,reasoning:1.6},"qwen/qwen3.8-max":{input:2,output:6,cached:.25,cache_creation:2.5,reasoning:6},"qwen3.5-omni-plus":{input:1,output:5.7143,reasoning:5.7143},"qwen3.6-flash":{input:.171,output:1.029,cached:.017,cache_creation:.214,reasoning:1.029},"sakana/fugu-ultra":{input:5,output:30,cached:.5,reasoning:30},"seed-2-0-code-preview-260328":{input:1,output:6,cached:.2,cache_creation:.008333,reasoning:6},"seed-2-0-lite-260428":{input:.5,output:4,cached:.1,cache_creation:.008333,reasoning:4},"seed-2-0-mini-260428":{input:.2,output:.8,cached:.04,cache_creation:.00833,reasoning:.8},"seed-2-0-pro-260328":{input:1,output:6,cached:.2,cache_creation:.008333,reasoning:6},"stepfun/step-3.5-flash":{input:.1,output:.3,cached:.02,reasoning:.3},"stepfun/step-3.7-flash":{input:.2,output:1.15,cached:.04,reasoning:1.15},"tencent/hy3-preview":{input:.066,output:.26,cached:.029,reasoning:.26},"x-ai/grok-4.1-fast":{input:.2,output:.5,cached:.05,reasoning:.5},"x-ai/grok-4.20-beta":{input:2,output:6,cached:.2,reasoning:6},"x-ai/grok-4.3":{input:1.25,output:2.5,cached:.2,reasoning:2.5},"x-ai/grok-4.5":{input:2,output:6,cached:.5,reasoning:6},"x-ai/grok-build-0.1":{input:1,output:2,cached:.2,reasoning:2},"xiaomi/mimo-v2-flash":{input:.1,output:.3,cached:.01,reasoning:.3},"xiaomi/mimo-v2-omni":{input:.4,output:2,cached:.08,reasoning:2},"xiaomi/mimo-v2-pro":{input:1,output:3,cached:.2,reasoning:3},"xiaomi/mimo-v2.5":{input:.4,output:2,cached:.08,reasoning:2},"xiaomi/mimo-v2.5-pro":{input:1,output:3,cached:.2,reasoning:3},"z-ai/glm-4.5-air":{input:.13,output:.85,cached:.025,reasoning:.85},"z-ai/glm-4.6":{input:.6,output:2.2,cached:.11,reasoning:2.2},"z-ai/glm-4.6v":{input:.3,output:.9,reasoning:.9},"z-ai/glm-4.7":{input:.6,output:2.2,cached:.11,reasoning:2.2},"z-ai/glm-5":{input:1,output:3.2,cached:.2,reasoning:3.2},"z-ai/glm-5-turbo":{input:1.2,output:4,cached:.24,reasoning:4},"z-ai/glm-5.1":{input:1.05,output:3.5,cached:.525,reasoning:3.5},"z-ai/glm-5.2":{input:1.4,output:4.4,cached:.26,reasoning:4.4},"z-ai/glm-5.3-free":{input:0,output:0,cached:0,reasoning:0}}},e=new Map;function f(a,b){let c;return(!(c=e.get(a))&&(c=RegExp("^"+a.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i"),e.set(a,c)),c).test(b)}function g(){return d}},63265:(a,b,c)=>{c.d(b,{$:()=>i});var d=c(86240);c(70433);var e=c(48884),f=c(89988),g=c(3510);let h=(0,e.F)("group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background shadow-xs hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",lg:"h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-9","icon-xs":"size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",asChild:e=!1,...j}){let k=e?g.bL:"button";return(0,d.jsx)(k,{"data-slot":"button","data-variant":b,"data-size":c,className:(0,f.cn)(h({variant:b,size:c,className:a})),...j})}},67209:(a,b,c)=>{c.d(b,{Cf:()=>m,Es:()=>o,HM:()=>k,L3:()=>p,c7:()=>n,lG:()=>i,rr:()=>q});var d=c(86240);c(70433);var e=c(89988),f=c(68322),g=c(63265),h=c(78629);function i({...a}){return(0,d.jsx)(f.bL,{"data-slot":"dialog",...a})}function j({...a}){return(0,d.jsx)(f.ZL,{"data-slot":"dialog-portal",...a})}function k({...a}){return(0,d.jsx)(f.bm,{"data-slot":"dialog-close",...a})}function l({className:a,...b}){return(0,d.jsx)(f.hJ,{"data-slot":"dialog-overlay",className:(0,e.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...b})}function m({className:a,children:b,showCloseButton:c=!0,...i}){return(0,d.jsxs)(j,{children:[(0,d.jsx)(l,{}),(0,d.jsxs)(f.UC,{"data-slot":"dialog-content",className:(0,e.cn)("fixed top-1/2 left-1/2 z-50 grid w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-0 rounded-xl bg-popover p-0 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...i,children:[b,c&&(0,d.jsx)(f.bm,{"data-slot":"dialog-close",asChild:!0,children:(0,d.jsxs)(g.$,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm",children:[(0,d.jsx)(h.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})})]})]})}function n({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-header",className:(0,e.cn)("flex min-h-14 flex-col items-start justify-center gap-1 border-b border-border px-4 py-3 pr-12",a),...b})}function o({className:a,showCloseButton:b=!1,children:c,...h}){return(0,d.jsxs)("div",{"data-slot":"dialog-footer",className:(0,e.cn)("flex flex-col-reverse gap-2 border-t border-border p-4 sm:flex-row sm:justify-end",a),...h,children:[c,b&&(0,d.jsx)(f.bm,{asChild:!0,children:(0,d.jsx)(g.$,{variant:"outline",children:"Close"})})]})}function p({className:a,...b}){return(0,d.jsx)(f.hE,{"data-slot":"dialog-title",className:(0,e.cn)("font-heading leading-none font-medium",a),...b})}function q({className:a,...b}){return(0,d.jsx)(f.VY,{"data-slot":"dialog-description",className:(0,e.cn)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",a),...b})}},81501:(a,b,c)=>{c.d(b,{p:()=>f});var d=c(86240);c(70433);var e=c(89988);function f({className:a,type:b,...c}){return(0,d.jsx)("input",{type:b,"data-slot":"input",className:(0,e.cn)("h-9 w-full min-w-0 rounded-md border border-input bg-background px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",a),...c})}}};
@@ -1,6 +1,6 @@
1
1
  "use strict";exports.id=9250,exports.ids=[9250],exports.modules={19250:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{XaiService:()=>r,decodeIdTokenEmail:()=>p,discoverEndpoints:()=>o,validateOAuthEndpoint:()=>n});var e=c(71622),f=c(92235),g=c(55511),h=c.n(g),i=c(71631),j=c(77786),k=c(99208),l=c(88590),m=a([e,f]);[e,f]=m.then?(await m)():m;let q=null;function n(a,b){let c,d=String(a||"").trim();if(!d)throw Error(`xai discovery ${b} is empty`);try{c=new URL(d)}catch(a){throw Error(`xai discovery ${b} is invalid: ${a.message}`)}if("https:"!==c.protocol)throw Error(`xai discovery ${b} must use https: ${d}`);let e=c.hostname.toLowerCase().trim();if("x.ai"!==e&&!e.endsWith(".x.ai"))throw Error(`xai discovery ${b} host ${e} is not on x.ai`);return d}async function o(){if(q)return q;try{let a=await fetch(i.oT.discoveryUrl,{headers:{Accept:"application/json"}});if(a.ok){let b=await a.json();return q={authorizeUrl:n(b.authorization_endpoint,"authorization_endpoint"),tokenUrl:n(b.token_endpoint,"token_endpoint")}}}catch{}return q={authorizeUrl:i.oT.authorizeUrl,tokenUrl:i.oT.tokenUrl}}function p(a){if(!a||"string"!=typeof a)return;let b=a.split(".");if(3===b.length)try{let a=b[1].replace(/-/g,"+").replace(/_/g,"/"),c=(4-a.length%4)%4,d=Buffer.from(a+"=".repeat(c),"base64").toString("utf8"),e=JSON.parse(d);return e.email||e.preferred_username||e.sub||void 0}catch{return}}class r extends f.T{constructor(){super(i.oT)}buildXaiAuthUrl(a,b,c,d){let e=h().randomBytes(16).toString("hex"),f={response_type:"code",client_id:i.oT.clientId,redirect_uri:a,scope:i.oT.scope,code_challenge:c,code_challenge_method:i.oT.codeChallengeMethod,state:b,nonce:e,plan:"generic",referrer:"cli-proxy-api"},g=Object.entries(f).map(([a,b])=>`${a}=${encodeURIComponent(b)}`).join("&");return`${d}?${g}`}async exchangeXaiCode({tokenUrl:a,code:b,redirectUri:c,codeVerifier:d}){let e=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"authorization_code",client_id:i.oT.clientId,code:b,redirect_uri:c,code_verifier:d})});if(!e.ok){let a=await e.text();throw Error(`xAI token exchange failed: ${a}`)}return await e.json()}async refreshAccessToken(a){let{tokenUrl:b}=await o(),c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",client_id:i.oT.clientId,refresh_token:a})});if(!c.ok){let a=await c.text();throw Error(`xAI token refresh failed: ${a}`)}return await c.json()}async connect(){let a=(0,l.u1)("Starting xAI OAuth...").start();try{a.text="Discovering xAI endpoints...";let{authorizeUrl:b,tokenUrl:c}=await o();a.text=`Starting local server on port ${i.oT.loopbackPort}...`;let d=null,{port:f,close:g}=await (0,j.Pd)(a=>{d=a},i.oT.loopbackPort),h=`http://127.0.0.1:${f}${i.oT.callbackPath}`;a.succeed(`Local server started on port ${f}`);let l=(0,k.$N)(i.Ue),m=(0,k.OK)(l),n=(0,k.Zl)(),q=this.buildXaiAuthUrl(h,n,m,b);if(console.log("\nOpening browser for xAI authentication..."),console.log(`If browser doesn't open, visit:
2
2
  ${q}
3
- `),await (0,e.default)(q),a.start("Waiting for xAI authorization..."),await new Promise((a,b)=>{let c=setTimeout(()=>b(Error("Authentication timeout (5 minutes)")),3e5),e=setInterval(()=>{d&&(clearInterval(e),clearTimeout(c),a())},100)}),g(),d.error)throw Error(d.error_description||d.error);if(!d.code)throw Error("No authorization code received");if(d.state!==n)throw Error("Invalid state parameter");a.start("Exchanging code for tokens...");let r=await this.exchangeXaiCode({tokenUrl:c,code:d.code,redirectUri:h,codeVerifier:l}),s=p(r.id_token);return a.succeed("xAI connected successfully!"),{tokens:r,email:s}}catch(b){throw a.fail(`Failed: ${b.message}`),b}}}d()}catch(a){d(a)}})},88590:(a,b,c)=>{let d,e;c.d(b,{u1:()=>aL});var f=c(1708),g=c(57975);let h=(a=0)=>b=>`\u001B[${b+a}m`,i=(a=0)=>b=>`\u001B[${38+a};5;${b}m`,j=(a=0)=>(b,c,d)=>`\u001B[${38+a};2;${b};${c};${d}m`,k={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(k.modifier),[...Object.keys(k.color),...Object.keys(k.bgColor)];let l=function(){let a=new Map;for(let[b,c]of Object.entries(k)){for(let[b,d]of Object.entries(c))k[b]={open:`\u001B[${d[0]}m`,close:`\u001B[${d[1]}m`},c[b]=k[b],a.set(d[0],d[1]);Object.defineProperty(k,b,{value:c,enumerable:!1})}return Object.defineProperty(k,"codes",{value:a,enumerable:!1}),k.color.close="\x1b[39m",k.bgColor.close="\x1b[49m",k.color.ansi=h(),k.color.ansi256=i(),k.color.ansi16m=j(),k.bgColor.ansi=h(10),k.bgColor.ansi256=i(10),k.bgColor.ansi16m=j(10),Object.defineProperties(k,{rgbToAnsi256:{value:(a,b,c)=>a===b&&b===c?a<8?16:a>248?231:Math.round((a-8)/247*24)+232:16+36*Math.round(a/255*5)+6*Math.round(b/255*5)+Math.round(c/255*5),enumerable:!1},hexToRgb:{value(a){let b=/[a-f\d]{6}|[a-f\d]{3}/i.exec(a.toString(16));if(!b)return[0,0,0];let[c]=b;3===c.length&&(c=[...c].map(a=>a+a).join(""));let d=Number.parseInt(c,16);return[d>>16&255,d>>8&255,255&d]},enumerable:!1},hexToAnsi256:{value:a=>k.rgbToAnsi256(...k.hexToRgb(a)),enumerable:!1},ansi256ToAnsi:{value(a){let b,c,d;if(a<8)return 30+a;if(a<16)return 90+(a-8);if(a>=232)c=b=((a-232)*10+8)/255,d=b;else{let e=(a-=16)%36;b=Math.floor(a/36)/5,c=Math.floor(e/6)/5,d=e%6/5}let e=2*Math.max(b,c,d);if(0===e)return 30;let f=30+(Math.round(d)<<2|Math.round(c)<<1|Math.round(b));return 2===e&&(f+=60),f},enumerable:!1},rgbToAnsi:{value:(a,b,c)=>k.ansi256ToAnsi(k.rgbToAnsi256(a,b,c)),enumerable:!1},hexToAnsi:{value:a=>k.ansi256ToAnsi(k.hexToAnsi256(a)),enumerable:!1}}),k}();var m=c(48161),n=c(7066);function o(a,b=globalThis.Deno?globalThis.Deno.args:f.argv){let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}let{env:p}=f;function q(a,b={}){var c;return 0!==(c=function(a,{streamIsTTY:b,sniffFlags:c=!0}={}){let e=function(){if("FORCE_COLOR"in p)return"true"===p.FORCE_COLOR?1:"false"===p.FORCE_COLOR?0:0===p.FORCE_COLOR.length?1:Math.min(Number.parseInt(p.FORCE_COLOR,10),3)}();void 0!==e&&(d=e);let g=c?d:e;if(0===g)return 0;if(c){if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2}if("TF_BUILD"in p&&"AGENT_NAME"in p)return 1;if(a&&!b&&void 0===g)return 0;let h=g||0;if("dumb"===p.TERM)return h;if("win32"===f.platform){let a=m.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in p)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(a=>a in p)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(a=>a in p)||"codeship"===p.CI_NAME?1:h;if("TEAMCITY_VERSION"in p)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(p.TEAMCITY_VERSION);if("truecolor"===p.COLORTERM||"xterm-kitty"===p.TERM||"xterm-ghostty"===p.TERM||"wezterm"===p.TERM)return 3;if("TERM_PROGRAM"in p){let a=Number.parseInt((p.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(p.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(p.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(p.TERM)||"COLORTERM"in p?1:h}(a,{streamIsTTY:a&&a.isTTY,...b}))&&{level:c,hasBasic:!0,has256:c>=2,has16m:c>=3}}o("no-color")||o("no-colors")||o("color=false")||o("color=never")?d=0:(o("color")||o("colors")||o("color=true")||o("color=always"))&&(d=1);let{stdout:r,stderr:s}={stdout:q({isTTY:n.isatty(1)}),stderr:q({isTTY:n.isatty(2)})},t=Symbol("GENERATOR"),u=Symbol("STYLER"),v=Symbol("IS_EMPTY"),w=["ansi","ansi","ansi256","ansi16m"],x=Object.create(null);function y(a){let b;return((a,b={})=>{if(b.level&&!(Number.isInteger(b.level)&&b.level>=0&&b.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let c=r?r.level:0;a.level=void 0===b.level?c:b.level})(b=(...a)=>a.join(" "),a),Object.setPrototypeOf(b,y.prototype),b}for(let[a,b]of(Object.setPrototypeOf(y.prototype,Function.prototype),Object.entries(l)))x[a]={get(){let c=C(this,B(b.open,b.close,this[u]),this[v]);return Object.defineProperty(this,a,{value:c}),c}};x.visible={get(){let a=C(this,this[u],!0);return Object.defineProperty(this,"visible",{value:a}),a}};let z=(a,b,c,...d)=>"rgb"===a?"ansi16m"===b?l[c].ansi16m(...d):"ansi256"===b?l[c].ansi256(l.rgbToAnsi256(...d)):l[c].ansi(l.rgbToAnsi(...d)):"hex"===a?z("rgb",b,c,...l.hexToRgb(...d)):l[c][a](...d);for(let a of["rgb","hex","ansi256"])x[a]={get(){let{level:b}=this;return function(...c){return C(this,B(z(a,w[b],"color",...c),l.color.close,this[u]),this[v])}}},x["bg"+a[0].toUpperCase()+a.slice(1)]={get(){let{level:b}=this;return function(...c){return C(this,B(z(a,w[b],"bgColor",...c),l.bgColor.close,this[u]),this[v])}}};let A=Object.defineProperties(()=>{},{...x,level:{enumerable:!0,get(){return this[t].level},set(a){this[t].level=a}}}),B=(a,b,c)=>{let d,e;return void 0===c?(d=a,e=b):(d=c.openAll+a,e=b+c.closeAll),{open:a,close:b,openAll:d,closeAll:e,parent:c}},C=(a,b,c)=>{let d=(...a)=>D(d,1===a.length?""+a[0]:a.join(" "));return Object.setPrototypeOf(d,A),d[t]=a,d[u]=b,d[v]=c,d},D=(a,b)=>{if(a.level<=0||!b)return a[v]?"":b;let c=a[u];if(void 0===c)return b;let{openAll:d,closeAll:e}=c;if(b.includes("\x1b"))for(;void 0!==c;)b=function(a,b,c){let d=a.indexOf(b);if(-1===d)return a;let e=b.length,f=0,g="";do g+=a.slice(f,d)+b+c,f=d+e,d=a.indexOf(b,f);while(-1!==d);return g+a.slice(f)}(b,c.close,c.open),c=c.parent;let f=b.indexOf("\n");return -1!==f&&(b=function(a,b,c,d){let e=0,f="";do{let g="\r"===a[d-1];f+=a.slice(e,g?d-1:d)+b+(g?"\r\n":"\n")+c,e=d+1,d=a.indexOf("\n",e)}while(-1!==d);return f+a.slice(e)}(b,e,d,f)),d+b+e};Object.defineProperties(y.prototype,x);let E=y();y({level:s?s.level:0});let F=(a,b,c,d)=>{if("length"===c||"prototype"===c||"arguments"===c||"caller"===c)return;let e=Object.getOwnPropertyDescriptor(a,c),f=Object.getOwnPropertyDescriptor(b,c);(G(e,f)||!d)&&Object.defineProperty(a,c,f)},G=function(a,b){return void 0===a||a.configurable||a.writable===b.writable&&a.enumerable===b.enumerable&&a.configurable===b.configurable&&(a.writable||a.value===b.value)},H=(a,b)=>`/* Wrapped ${a}*/
3
+ `),await (0,e.default)(q),a.start("Waiting for xAI authorization..."),await new Promise((a,b)=>{let c=setInterval(()=>{d&&(clearInterval(c),clearTimeout(e),a())},100),e=setTimeout(()=>{clearInterval(c),b(Error("Authentication timeout (5 minutes)"))},3e5)}),g(),d.error)throw Error(d.error_description||d.error);if(!d.code)throw Error("No authorization code received");if(d.state!==n)throw Error("Invalid state parameter");a.start("Exchanging code for tokens...");let r=await this.exchangeXaiCode({tokenUrl:c,code:d.code,redirectUri:h,codeVerifier:l}),s=p(r.id_token);return a.succeed("xAI connected successfully!"),{tokens:r,email:s}}catch(b){throw a.fail(`Failed: ${b.message}`),b}}}d()}catch(a){d(a)}})},88590:(a,b,c)=>{let d,e;c.d(b,{u1:()=>aL});var f=c(1708),g=c(57975);let h=(a=0)=>b=>`\u001B[${b+a}m`,i=(a=0)=>b=>`\u001B[${38+a};5;${b}m`,j=(a=0)=>(b,c,d)=>`\u001B[${38+a};2;${b};${c};${d}m`,k={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(k.modifier),[...Object.keys(k.color),...Object.keys(k.bgColor)];let l=function(){let a=new Map;for(let[b,c]of Object.entries(k)){for(let[b,d]of Object.entries(c))k[b]={open:`\u001B[${d[0]}m`,close:`\u001B[${d[1]}m`},c[b]=k[b],a.set(d[0],d[1]);Object.defineProperty(k,b,{value:c,enumerable:!1})}return Object.defineProperty(k,"codes",{value:a,enumerable:!1}),k.color.close="\x1b[39m",k.bgColor.close="\x1b[49m",k.color.ansi=h(),k.color.ansi256=i(),k.color.ansi16m=j(),k.bgColor.ansi=h(10),k.bgColor.ansi256=i(10),k.bgColor.ansi16m=j(10),Object.defineProperties(k,{rgbToAnsi256:{value:(a,b,c)=>a===b&&b===c?a<8?16:a>248?231:Math.round((a-8)/247*24)+232:16+36*Math.round(a/255*5)+6*Math.round(b/255*5)+Math.round(c/255*5),enumerable:!1},hexToRgb:{value(a){let b=/[a-f\d]{6}|[a-f\d]{3}/i.exec(a.toString(16));if(!b)return[0,0,0];let[c]=b;3===c.length&&(c=[...c].map(a=>a+a).join(""));let d=Number.parseInt(c,16);return[d>>16&255,d>>8&255,255&d]},enumerable:!1},hexToAnsi256:{value:a=>k.rgbToAnsi256(...k.hexToRgb(a)),enumerable:!1},ansi256ToAnsi:{value(a){let b,c,d;if(a<8)return 30+a;if(a<16)return 90+(a-8);if(a>=232)c=b=((a-232)*10+8)/255,d=b;else{let e=(a-=16)%36;b=Math.floor(a/36)/5,c=Math.floor(e/6)/5,d=e%6/5}let e=2*Math.max(b,c,d);if(0===e)return 30;let f=30+(Math.round(d)<<2|Math.round(c)<<1|Math.round(b));return 2===e&&(f+=60),f},enumerable:!1},rgbToAnsi:{value:(a,b,c)=>k.ansi256ToAnsi(k.rgbToAnsi256(a,b,c)),enumerable:!1},hexToAnsi:{value:a=>k.ansi256ToAnsi(k.hexToAnsi256(a)),enumerable:!1}}),k}();var m=c(48161),n=c(7066);function o(a,b=globalThis.Deno?globalThis.Deno.args:f.argv){let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}let{env:p}=f;function q(a,b={}){var c;return 0!==(c=function(a,{streamIsTTY:b,sniffFlags:c=!0}={}){let e=function(){if("FORCE_COLOR"in p)return"true"===p.FORCE_COLOR?1:"false"===p.FORCE_COLOR?0:0===p.FORCE_COLOR.length?1:Math.min(Number.parseInt(p.FORCE_COLOR,10),3)}();void 0!==e&&(d=e);let g=c?d:e;if(0===g)return 0;if(c){if(o("color=16m")||o("color=full")||o("color=truecolor"))return 3;if(o("color=256"))return 2}if("TF_BUILD"in p&&"AGENT_NAME"in p)return 1;if(a&&!b&&void 0===g)return 0;let h=g||0;if("dumb"===p.TERM)return h;if("win32"===f.platform){let a=m.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in p)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(a=>a in p)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(a=>a in p)||"codeship"===p.CI_NAME?1:h;if("TEAMCITY_VERSION"in p)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(p.TEAMCITY_VERSION);if("truecolor"===p.COLORTERM||"xterm-kitty"===p.TERM||"xterm-ghostty"===p.TERM||"wezterm"===p.TERM)return 3;if("TERM_PROGRAM"in p){let a=Number.parseInt((p.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(p.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(p.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(p.TERM)||"COLORTERM"in p?1:h}(a,{streamIsTTY:a&&a.isTTY,...b}))&&{level:c,hasBasic:!0,has256:c>=2,has16m:c>=3}}o("no-color")||o("no-colors")||o("color=false")||o("color=never")?d=0:(o("color")||o("colors")||o("color=true")||o("color=always"))&&(d=1);let{stdout:r,stderr:s}={stdout:q({isTTY:n.isatty(1)}),stderr:q({isTTY:n.isatty(2)})},t=Symbol("GENERATOR"),u=Symbol("STYLER"),v=Symbol("IS_EMPTY"),w=["ansi","ansi","ansi256","ansi16m"],x=Object.create(null);function y(a){let b;return((a,b={})=>{if(b.level&&!(Number.isInteger(b.level)&&b.level>=0&&b.level<=3))throw Error("The `level` option should be an integer from 0 to 3");let c=r?r.level:0;a.level=void 0===b.level?c:b.level})(b=(...a)=>a.join(" "),a),Object.setPrototypeOf(b,y.prototype),b}for(let[a,b]of(Object.setPrototypeOf(y.prototype,Function.prototype),Object.entries(l)))x[a]={get(){let c=C(this,B(b.open,b.close,this[u]),this[v]);return Object.defineProperty(this,a,{value:c}),c}};x.visible={get(){let a=C(this,this[u],!0);return Object.defineProperty(this,"visible",{value:a}),a}};let z=(a,b,c,...d)=>"rgb"===a?"ansi16m"===b?l[c].ansi16m(...d):"ansi256"===b?l[c].ansi256(l.rgbToAnsi256(...d)):l[c].ansi(l.rgbToAnsi(...d)):"hex"===a?z("rgb",b,c,...l.hexToRgb(...d)):l[c][a](...d);for(let a of["rgb","hex","ansi256"])x[a]={get(){let{level:b}=this;return function(...c){return C(this,B(z(a,w[b],"color",...c),l.color.close,this[u]),this[v])}}},x["bg"+a[0].toUpperCase()+a.slice(1)]={get(){let{level:b}=this;return function(...c){return C(this,B(z(a,w[b],"bgColor",...c),l.bgColor.close,this[u]),this[v])}}};let A=Object.defineProperties(()=>{},{...x,level:{enumerable:!0,get(){return this[t].level},set(a){this[t].level=a}}}),B=(a,b,c)=>{let d,e;return void 0===c?(d=a,e=b):(d=c.openAll+a,e=b+c.closeAll),{open:a,close:b,openAll:d,closeAll:e,parent:c}},C=(a,b,c)=>{let d=(...a)=>D(d,1===a.length?""+a[0]:a.join(" "));return Object.setPrototypeOf(d,A),d[t]=a,d[u]=b,d[v]=c,d},D=(a,b)=>{if(a.level<=0||!b)return a[v]?"":b;let c=a[u];if(void 0===c)return b;let{openAll:d,closeAll:e}=c;if(b.includes("\x1b"))for(;void 0!==c;)b=function(a,b,c){let d=a.indexOf(b);if(-1===d)return a;let e=b.length,f=0,g="";do g+=a.slice(f,d)+b+c,f=d+e,d=a.indexOf(b,f);while(-1!==d);return g+a.slice(f)}(b,c.close,c.open),c=c.parent;let f=b.indexOf("\n");return -1!==f&&(b=function(a,b,c,d){let e=0,f="";do{let g="\r"===a[d-1];f+=a.slice(e,g?d-1:d)+b+(g?"\r\n":"\n")+c,e=d+1,d=a.indexOf("\n",e)}while(-1!==d);return f+a.slice(e)}(b,e,d,f)),d+b+e};Object.defineProperties(y.prototype,x);let E=y();y({level:s?s.level:0});let F=(a,b,c,d)=>{if("length"===c||"prototype"===c||"arguments"===c||"caller"===c)return;let e=Object.getOwnPropertyDescriptor(a,c),f=Object.getOwnPropertyDescriptor(b,c);(G(e,f)||!d)&&Object.defineProperty(a,c,f)},G=function(a,b){return void 0===a||a.configurable||a.writable===b.writable&&a.enumerable===b.enumerable&&a.configurable===b.configurable&&(a.writable||a.value===b.value)},H=(a,b)=>`/* Wrapped ${a}*/
4
4
  ${b}`,I=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),J=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),K=new WeakMap,L=(a,b={})=>{let c;if("function"!=typeof a)throw TypeError("Expected a function");let d=0,e=a.displayName||a.name||"<anonymous>",f=function(...g){if(K.set(f,++d),1===d)c=a.apply(this,g),a=void 0;else if(!0===b.throw)throw Error(`Function \`${e}\` can only be called once`);return c};return!function(a,b,{ignoreNonConfigurable:c=!1}={}){let d,{name:e}=a;for(let d of Reflect.ownKeys(b))F(a,b,d,c);(d=Object.getPrototypeOf(b))!==Object.getPrototypeOf(a)&&Object.setPrototypeOf(a,d),((a,b,c)=>{let d=""===c?"":`with ${c.trim()}() `,e=H.bind(null,d,b.toString());Object.defineProperty(e,"name",J);let{writable:f,enumerable:g,configurable:h}=I;Object.defineProperty(a,"toString",{value:e,writable:f,enumerable:g,configurable:h})})(a,b,e)}(f,a),K.set(f,d),f};L.callCount=a=>{if(!K.has(a))throw Error(`The given function \`${a.name}\` is not wrapped by the \`onetime\` package`);return K.get(a)};let M=[];M.push("SIGHUP","SIGINT","SIGTERM"),"win32"!==process.platform&&M.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&M.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");let N=a=>!!a&&"object"==typeof a&&"function"==typeof a.removeListener&&"function"==typeof a.emit&&"function"==typeof a.reallyExit&&"function"==typeof a.listeners&&"function"==typeof a.kill&&"number"==typeof a.pid&&"function"==typeof a.on,O=Symbol.for("signal-exit emitter"),P=globalThis,Q=Object.defineProperty.bind(Object);class R{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(P[O])return P[O];Q(P,O,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(a,b){this.listeners[a].push(b)}removeListener(a,b){let c=this.listeners[a],d=c.indexOf(b);-1!==d&&(0===d&&1===c.length?c.length=0:c.splice(d,1))}emit(a,b,c){if(this.emitted[a])return!1;this.emitted[a]=!0;let d=!1;for(let e of this.listeners[a])d=!0===e(b,c)||d;return"exit"===a&&(d=this.emit("afterExit",b,c)||d),d}}class S{}class T extends S{onExit(){return()=>{}}load(){}unload(){}}class U extends S{#a="win32"===V.platform?"SIGINT":"SIGHUP";#b=new R;#c;#d;#e;#f={};#g=!1;constructor(a){for(const b of(super(),this.#c=a,this.#f={},M))this.#f[b]=()=>{let c=this.#c.listeners(b),{count:d}=this.#b;if("object"==typeof a.__signal_exit_emitter__&&"number"==typeof a.__signal_exit_emitter__.count&&(d+=a.__signal_exit_emitter__.count),c.length===d){this.unload();let c=this.#b.emit("exit",null,b),d="SIGHUP"===b?this.#a:b;c||a.kill(a.pid,d)}};this.#e=a.reallyExit,this.#d=a.emit}onExit(a,b){if(!N(this.#c))return()=>{};!1===this.#g&&this.load();let c=b?.alwaysLast?"afterExit":"exit";return this.#b.on(c,a),()=>{this.#b.removeListener(c,a),0===this.#b.listeners.exit.length&&0===this.#b.listeners.afterExit.length&&this.unload()}}load(){if(!this.#g){for(let a of(this.#g=!0,this.#b.count+=1,M))try{let b=this.#f[a];b&&this.#c.on(a,b)}catch(a){}this.#c.emit=(a,...b)=>this.#h(a,...b),this.#c.reallyExit=a=>this.#i(a)}}unload(){this.#g&&(this.#g=!1,M.forEach(a=>{let b=this.#f[a];if(!b)throw Error("Listener not defined for signal: "+a);try{this.#c.removeListener(a,b)}catch(a){}}),this.#c.emit=this.#d,this.#c.reallyExit=this.#e,this.#b.count-=1)}#i(a){return N(this.#c)?(this.#c.exitCode=a||0,this.#b.emit("exit",this.#c.exitCode,null),this.#e.call(this.#c,this.#c.exitCode)):0}#h(a,...b){let c=this.#d;if(!("exit"===a&&N(this.#c)))return c.call(this.#c,a,...b);{"number"==typeof b[0]&&(this.#c.exitCode=b[0]);let d=c.call(this.#c,a,...b);return this.#b.emit("exit",this.#c.exitCode,null),d}}}let V=globalThis.process,{onExit:W,load:X,unload:Y}=(e=N(V)?new U(V):new T,{onExit:(a,b)=>e.onExit(a,b),load:()=>e.load(),unload:()=>e.unload()}),Z=f.stderr.isTTY?f.stderr:f.stdout.isTTY?f.stdout:void 0,$=Z?L(()=>{W(()=>{Z.write("\x1b[?25h")},{alwaysLast:!0})}):()=>{},_=!1,aa={};aa.show=(a=f.stderr)=>{a.isTTY&&(_=!1,a.write("\x1b[?25h"))},aa.hide=(a=f.stderr)=>{a.isTTY&&($(),_=!0,a.write("\x1b[?25l"))},aa.toggle=(a,b)=>{void 0!==a&&(_=a),_?aa.show(b):aa.hide(b)};let ab=JSON.parse('{"dots":{"interval":80,"frames":["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"]},"dots2":{"interval":80,"frames":["⣾","⣽","⣻","⢿","⡿","⣟","⣯","⣷"]},"dots3":{"interval":80,"frames":["⠋","⠙","⠚","⠞","⠖","⠦","⠴","⠲","⠳","⠓"]},"dots4":{"interval":80,"frames":["⠄","⠆","⠇","⠋","⠙","⠸","⠰","⠠","⠰","⠸","⠙","⠋","⠇","⠆"]},"dots5":{"interval":80,"frames":["⠋","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋"]},"dots6":{"interval":80,"frames":["⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠴","⠲","⠒","⠂","⠂","⠒","⠚","⠙","⠉","⠁"]},"dots7":{"interval":80,"frames":["⠈","⠉","⠋","⠓","⠒","⠐","⠐","⠒","⠖","⠦","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈"]},"dots8":{"interval":80,"frames":["⠁","⠁","⠉","⠙","⠚","⠒","⠂","⠂","⠒","⠲","⠴","⠤","⠄","⠄","⠤","⠠","⠠","⠤","⠦","⠖","⠒","⠐","⠐","⠒","⠓","⠋","⠉","⠈","⠈"]},"dots9":{"interval":80,"frames":["⢹","⢺","⢼","⣸","⣇","⡧","⡗","⡏"]},"dots10":{"interval":80,"frames":["⢄","⢂","⢁","⡁","⡈","⡐","⡠"]},"dots11":{"interval":100,"frames":["⠁","⠂","⠄","⡀","⢀","⠠","⠐","⠈"]},"dots12":{"interval":80,"frames":["⢀⠀","⡀⠀","⠄⠀","⢂⠀","⡂⠀","⠅⠀","⢃⠀","⡃⠀","⠍⠀","⢋⠀","⡋⠀","⠍⠁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⢈⠩","⡀⢙","⠄⡙","⢂⠩","⡂⢘","⠅⡘","⢃⠨","⡃⢐","⠍⡐","⢋⠠","⡋⢀","⠍⡁","⢋⠁","⡋⠁","⠍⠉","⠋⠉","⠋⠉","⠉⠙","⠉⠙","⠉⠩","⠈⢙","⠈⡙","⠈⠩","⠀⢙","⠀⡙","⠀⠩","⠀⢘","⠀⡘","⠀⠨","⠀⢐","⠀⡐","⠀⠠","⠀⢀","⠀⡀"]},"dots13":{"interval":80,"frames":["⣼","⣹","⢻","⠿","⡟","⣏","⣧","⣶"]},"dots14":{"interval":80,"frames":["⠉⠉","⠈⠙","⠀⠹","⠀⢸","⠀⣰","⢀⣠","⣀⣀","⣄⡀","⣆⠀","⡇⠀","⠏⠀","⠋⠁"]},"dots8Bit":{"interval":80,"frames":["⠀","⠁","⠂","⠃","⠄","⠅","⠆","⠇","⡀","⡁","⡂","⡃","⡄","⡅","⡆","⡇","⠈","⠉","⠊","⠋","⠌","⠍","⠎","⠏","⡈","⡉","⡊","⡋","⡌","⡍","⡎","⡏","⠐","⠑","⠒","⠓","⠔","⠕","⠖","⠗","⡐","⡑","⡒","⡓","⡔","⡕","⡖","⡗","⠘","⠙","⠚","⠛","⠜","⠝","⠞","⠟","⡘","⡙","⡚","⡛","⡜","⡝","⡞","⡟","⠠","⠡","⠢","⠣","⠤","⠥","⠦","⠧","⡠","⡡","⡢","⡣","⡤","⡥","⡦","⡧","⠨","⠩","⠪","⠫","⠬","⠭","⠮","⠯","⡨","⡩","⡪","⡫","⡬","⡭","⡮","⡯","⠰","⠱","⠲","⠳","⠴","⠵","⠶","⠷","⡰","⡱","⡲","⡳","⡴","⡵","⡶","⡷","⠸","⠹","⠺","⠻","⠼","⠽","⠾","⠿","⡸","⡹","⡺","⡻","⡼","⡽","⡾","⡿","⢀","⢁","⢂","⢃","⢄","⢅","⢆","⢇","⣀","⣁","⣂","⣃","⣄","⣅","⣆","⣇","⢈","⢉","⢊","⢋","⢌","⢍","⢎","⢏","⣈","⣉","⣊","⣋","⣌","⣍","⣎","⣏","⢐","⢑","⢒","⢓","⢔","⢕","⢖","⢗","⣐","⣑","⣒","⣓","⣔","⣕","⣖","⣗","⢘","⢙","⢚","⢛","⢜","⢝","⢞","⢟","⣘","⣙","⣚","⣛","⣜","⣝","⣞","⣟","⢠","⢡","⢢","⢣","⢤","⢥","⢦","⢧","⣠","⣡","⣢","⣣","⣤","⣥","⣦","⣧","⢨","⢩","⢪","⢫","⢬","⢭","⢮","⢯","⣨","⣩","⣪","⣫","⣬","⣭","⣮","⣯","⢰","⢱","⢲","⢳","⢴","⢵","⢶","⢷","⣰","⣱","⣲","⣳","⣴","⣵","⣶","⣷","⢸","⢹","⢺","⢻","⢼","⢽","⢾","⢿","⣸","⣹","⣺","⣻","⣼","⣽","⣾","⣿"]},"dotsCircle":{"interval":80,"frames":["⢎ ","⠎⠁","⠊⠑","⠈⠱"," ⡱","⢀⡰","⢄⡠","⢆⡀"]},"sand":{"interval":80,"frames":["⠁","⠂","⠄","⡀","⡈","⡐","⡠","⣀","⣁","⣂","⣄","⣌","⣔","⣤","⣥","⣦","⣮","⣶","⣷","⣿","⡿","⠿","⢟","⠟","⡛","⠛","⠫","⢋","⠋","⠍","⡉","⠉","⠑","⠡","⢁"]},"line":{"interval":130,"frames":["-","\\\\","|","/"]},"line2":{"interval":100,"frames":["⠂","-","–","—","–","-"]},"rollingLine":{"interval":80,"frames":["/ "," - "," \\\\ "," |"," |"," \\\\ "," - ","/ "]},"pipe":{"interval":100,"frames":["┤","┘","┴","└","├","┌","┬","┐"]},"simpleDots":{"interval":400,"frames":[". ",".. ","..."," "]},"simpleDotsScrolling":{"interval":200,"frames":[". ",".. ","..."," .."," ."," "]},"star":{"interval":70,"frames":["✶","✸","✹","✺","✹","✷"]},"star2":{"interval":80,"frames":["+","x","*"]},"flip":{"interval":70,"frames":["_","_","_","-","`","`","\'","\xb4","-","_","_","_"]},"hamburger":{"interval":100,"frames":["☱","☲","☴"]},"growVertical":{"interval":120,"frames":["▁","▃","▄","▅","▆","▇","▆","▅","▄","▃"]},"growHorizontal":{"interval":120,"frames":["▏","▎","▍","▌","▋","▊","▉","▊","▋","▌","▍","▎"]},"balloon":{"interval":140,"frames":[" ",".","o","O","@","*"," "]},"balloon2":{"interval":120,"frames":[".","o","O","\xb0","O","o","."]},"noise":{"interval":100,"frames":["▓","▒","░"]},"bounce":{"interval":120,"frames":["⠁","⠂","⠄","⠂"]},"boxBounce":{"interval":120,"frames":["▖","▘","▝","▗"]},"boxBounce2":{"interval":100,"frames":["▌","▀","▐","▄"]},"triangle":{"interval":50,"frames":["◢","◣","◤","◥"]},"binary":{"interval":80,"frames":["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},"arc":{"interval":100,"frames":["◜","◠","◝","◞","◡","◟"]},"circle":{"interval":120,"frames":["◡","⊙","◠"]},"squareCorners":{"interval":180,"frames":["◰","◳","◲","◱"]},"circleQuarters":{"interval":120,"frames":["◴","◷","◶","◵"]},"circleHalves":{"interval":50,"frames":["◐","◓","◑","◒"]},"squish":{"interval":100,"frames":["╫","╪"]},"toggle":{"interval":250,"frames":["⊶","⊷"]},"toggle2":{"interval":80,"frames":["▫","▪"]},"toggle3":{"interval":120,"frames":["□","■"]},"toggle4":{"interval":100,"frames":["■","□","▪","▫"]},"toggle5":{"interval":100,"frames":["▮","▯"]},"toggle6":{"interval":300,"frames":["ဝ","၀"]},"toggle7":{"interval":80,"frames":["⦾","⦿"]},"toggle8":{"interval":100,"frames":["◍","◌"]},"toggle9":{"interval":100,"frames":["◉","◎"]},"toggle10":{"interval":100,"frames":["㊂","㊀","㊁"]},"toggle11":{"interval":50,"frames":["⧇","⧆"]},"toggle12":{"interval":120,"frames":["☗","☖"]},"toggle13":{"interval":80,"frames":["=","*","-"]},"arrow":{"interval":100,"frames":["←","↖","↑","↗","→","↘","↓","↙"]},"arrow2":{"interval":80,"frames":["⬆️ ","↗️ ","➡️ ","↘️ ","⬇️ ","↙️ ","⬅️ ","↖️ "]},"arrow3":{"interval":120,"frames":["▹▹▹▹▹","▸▹▹▹▹","▹▸▹▹▹","▹▹▸▹▹","▹▹▹▸▹","▹▹▹▹▸"]},"bouncingBar":{"interval":80,"frames":["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},"bouncingBall":{"interval":80,"frames":["( ● )","( ● )","( ● )","( ● )","( ●)","( ● )","( ● )","( ● )","( ● )","(● )"]},"smiley":{"interval":200,"frames":["\uD83D\uDE04 ","\uD83D\uDE1D "]},"monkey":{"interval":300,"frames":["\uD83D\uDE48 ","\uD83D\uDE48 ","\uD83D\uDE49 ","\uD83D\uDE4A "]},"hearts":{"interval":100,"frames":["\uD83D\uDC9B ","\uD83D\uDC99 ","\uD83D\uDC9C ","\uD83D\uDC9A ","\uD83D\uDC97 "]},"clock":{"interval":100,"frames":["\uD83D\uDD5B ","\uD83D\uDD50 ","\uD83D\uDD51 ","\uD83D\uDD52 ","\uD83D\uDD53 ","\uD83D\uDD54 ","\uD83D\uDD55 ","\uD83D\uDD56 ","\uD83D\uDD57 ","\uD83D\uDD58 ","\uD83D\uDD59 ","\uD83D\uDD5A "]},"earth":{"interval":180,"frames":["\uD83C\uDF0D ","\uD83C\uDF0E ","\uD83C\uDF0F "]},"material":{"interval":17,"frames":["█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁","██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁","███████▁▁▁▁▁▁▁▁▁▁▁▁▁","████████▁▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","██████████▁▁▁▁▁▁▁▁▁▁","███████████▁▁▁▁▁▁▁▁▁","█████████████▁▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁▁██████████████▁▁▁▁","▁▁▁██████████████▁▁▁","▁▁▁▁█████████████▁▁▁","▁▁▁▁██████████████▁▁","▁▁▁▁██████████████▁▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁██████████████▁","▁▁▁▁▁▁██████████████","▁▁▁▁▁▁██████████████","▁▁▁▁▁▁▁█████████████","▁▁▁▁▁▁▁█████████████","▁▁▁▁▁▁▁▁████████████","▁▁▁▁▁▁▁▁████████████","▁▁▁▁▁▁▁▁▁███████████","▁▁▁▁▁▁▁▁▁███████████","▁▁▁▁▁▁▁▁▁▁██████████","▁▁▁▁▁▁▁▁▁▁██████████","▁▁▁▁▁▁▁▁▁▁▁▁████████","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","██████▁▁▁▁▁▁▁▁▁▁▁▁▁█","████████▁▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","█████████▁▁▁▁▁▁▁▁▁▁▁","███████████▁▁▁▁▁▁▁▁▁","████████████▁▁▁▁▁▁▁▁","████████████▁▁▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","██████████████▁▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁██████████████▁▁▁▁▁","▁▁▁█████████████▁▁▁▁","▁▁▁▁▁████████████▁▁▁","▁▁▁▁▁████████████▁▁▁","▁▁▁▁▁▁███████████▁▁▁","▁▁▁▁▁▁▁▁█████████▁▁▁","▁▁▁▁▁▁▁▁█████████▁▁▁","▁▁▁▁▁▁▁▁▁█████████▁▁","▁▁▁▁▁▁▁▁▁█████████▁▁","▁▁▁▁▁▁▁▁▁▁█████████▁","▁▁▁▁▁▁▁▁▁▁▁████████▁","▁▁▁▁▁▁▁▁▁▁▁████████▁","▁▁▁▁▁▁▁▁▁▁▁▁███████▁","▁▁▁▁▁▁▁▁▁▁▁▁███████▁","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁███████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁","▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"]},"moon":{"interval":80,"frames":["\uD83C\uDF11 ","\uD83C\uDF12 ","\uD83C\uDF13 ","\uD83C\uDF14 ","\uD83C\uDF15 ","\uD83C\uDF16 ","\uD83C\uDF17 ","\uD83C\uDF18 "]},"runner":{"interval":140,"frames":["\uD83D\uDEB6 ","\uD83C\uDFC3 "]},"pong":{"interval":80,"frames":["▐⠂ ▌","▐⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂▌","▐ ⠠▌","▐ ⡀▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐ ⠠ ▌","▐ ⠂ ▌","▐ ⠈ ▌","▐ ⠂ ▌","▐ ⠠ ▌","▐ ⡀ ▌","▐⠠ ▌"]},"shark":{"interval":120,"frames":["▐|\\\\____________▌","▐_|\\\\___________▌","▐__|\\\\__________▌","▐___|\\\\_________▌","▐____|\\\\________▌","▐_____|\\\\_______▌","▐______|\\\\______▌","▐_______|\\\\_____▌","▐________|\\\\____▌","▐_________|\\\\___▌","▐__________|\\\\__▌","▐___________|\\\\_▌","▐____________|\\\\▌","▐____________/|▌","▐___________/|_▌","▐__________/|__▌","▐_________/|___▌","▐________/|____▌","▐_______/|_____▌","▐______/|______▌","▐_____/|_______▌","▐____/|________▌","▐___/|_________▌","▐__/|__________▌","▐_/|___________▌","▐/|____________▌"]},"dqpb":{"interval":100,"frames":["d","q","p","b"]},"weather":{"interval":100,"frames":["☀️ ","☀️ ","☀️ ","\uD83C\uDF24 ","⛅️ ","\uD83C\uDF25 ","☁️ ","\uD83C\uDF27 ","\uD83C\uDF28 ","\uD83C\uDF27 ","\uD83C\uDF28 ","\uD83C\uDF27 ","\uD83C\uDF28 ","⛈ ","\uD83C\uDF28 ","\uD83C\uDF27 ","\uD83C\uDF28 ","☁️ ","\uD83C\uDF25 ","⛅️ ","\uD83C\uDF24 ","☀️ ","☀️ "]},"christmas":{"interval":400,"frames":["\uD83C\uDF32","\uD83C\uDF84"]},"grenade":{"interval":80,"frames":["، ","′ "," \xb4 "," ‾ "," ⸌"," ⸊"," |"," ⁎"," ⁕"," ෴ "," ⁓"," "," "," "]},"point":{"interval":125,"frames":["∙∙∙","●∙∙","∙●∙","∙∙●","∙∙∙"]},"layer":{"interval":150,"frames":["-","=","≡"]},"betaWave":{"interval":80,"frames":["ρββββββ","βρβββββ","ββρββββ","βββρβββ","ββββρββ","βββββρβ","ββββββρ"]},"fingerDance":{"interval":160,"frames":["\uD83E\uDD18 ","\uD83E\uDD1F ","\uD83D\uDD96 ","✋ ","\uD83E\uDD1A ","\uD83D\uDC46 "]},"fistBump":{"interval":80,"frames":["\uD83E\uDD1C    \uD83E\uDD1B ","\uD83E\uDD1C    \uD83E\uDD1B ","\uD83E\uDD1C    \uD83E\uDD1B "," \uD83E\uDD1C  \uD83E\uDD1B  ","  \uD83E\uDD1C\uD83E\uDD1B   "," \uD83E\uDD1C✨\uD83E\uDD1B   ","\uD83E\uDD1C ✨ \uD83E\uDD1B  "]},"soccerHeader":{"interval":80,"frames":[" \uD83E\uDDD1⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️\uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 ","\uD83E\uDDD1 ⚽️ \uD83E\uDDD1 "]},"mindblown":{"interval":160,"frames":["\uD83D\uDE10 ","\uD83D\uDE10 ","\uD83D\uDE2E ","\uD83D\uDE2E ","\uD83D\uDE26 ","\uD83D\uDE26 ","\uD83D\uDE27 ","\uD83D\uDE27 ","\uD83E\uDD2F ","\uD83D\uDCA5 ","✨ ","  ","  ","  "]},"speaker":{"interval":160,"frames":["\uD83D\uDD08 ","\uD83D\uDD09 ","\uD83D\uDD0A ","\uD83D\uDD09 "]},"orangePulse":{"interval":100,"frames":["\uD83D\uDD38 ","\uD83D\uDD36 ","\uD83D\uDFE0 ","\uD83D\uDFE0 ","\uD83D\uDD36 "]},"bluePulse":{"interval":100,"frames":["\uD83D\uDD39 ","\uD83D\uDD37 ","\uD83D\uDD35 ","\uD83D\uDD35 ","\uD83D\uDD37 "]},"orangeBluePulse":{"interval":100,"frames":["\uD83D\uDD38 ","\uD83D\uDD36 ","\uD83D\uDFE0 ","\uD83D\uDFE0 ","\uD83D\uDD36 ","\uD83D\uDD39 ","\uD83D\uDD37 ","\uD83D\uDD35 ","\uD83D\uDD35 ","\uD83D\uDD37 "]},"timeTravel":{"interval":100,"frames":["\uD83D\uDD5B ","\uD83D\uDD5A ","\uD83D\uDD59 ","\uD83D\uDD58 ","\uD83D\uDD57 ","\uD83D\uDD56 ","\uD83D\uDD55 ","\uD83D\uDD54 ","\uD83D\uDD53 ","\uD83D\uDD52 ","\uD83D\uDD51 ","\uD83D\uDD50 "]},"aesthetic":{"interval":80,"frames":["▰▱▱▱▱▱▱","▰▰▱▱▱▱▱","▰▰▰▱▱▱▱","▰▰▰▰▱▱▱","▰▰▰▰▰▱▱","▰▰▰▰▰▰▱","▰▰▰▰▰▰▰","▰▱▱▱▱▱▱"]},"dwarfFortress":{"interval":80,"frames":[" ██████\xa3\xa3\xa3 ","☺██████\xa3\xa3\xa3 ","☺██████\xa3\xa3\xa3 ","☺▓█████\xa3\xa3\xa3 ","☺▓█████\xa3\xa3\xa3 ","☺▒█████\xa3\xa3\xa3 ","☺▒█████\xa3\xa3\xa3 ","☺░█████\xa3\xa3\xa3 ","☺░█████\xa3\xa3\xa3 ","☺ █████\xa3\xa3\xa3 "," ☺█████\xa3\xa3\xa3 "," ☺█████\xa3\xa3\xa3 "," ☺▓████\xa3\xa3\xa3 "," ☺▓████\xa3\xa3\xa3 "," ☺▒████\xa3\xa3\xa3 "," ☺▒████\xa3\xa3\xa3 "," ☺░████\xa3\xa3\xa3 "," ☺░████\xa3\xa3\xa3 "," ☺ ████\xa3\xa3\xa3 "," ☺████\xa3\xa3\xa3 "," ☺████\xa3\xa3\xa3 "," ☺▓███\xa3\xa3\xa3 "," ☺▓███\xa3\xa3\xa3 "," ☺▒███\xa3\xa3\xa3 "," ☺▒███\xa3\xa3\xa3 "," ☺░███\xa3\xa3\xa3 "," ☺░███\xa3\xa3\xa3 "," ☺ ███\xa3\xa3\xa3 "," ☺███\xa3\xa3\xa3 "," ☺███\xa3\xa3\xa3 "," ☺▓██\xa3\xa3\xa3 "," ☺▓██\xa3\xa3\xa3 "," ☺▒██\xa3\xa3\xa3 "," ☺▒██\xa3\xa3\xa3 "," ☺░██\xa3\xa3\xa3 "," ☺░██\xa3\xa3\xa3 "," ☺ ██\xa3\xa3\xa3 "," ☺██\xa3\xa3\xa3 "," ☺██\xa3\xa3\xa3 "," ☺▓█\xa3\xa3\xa3 "," ☺▓█\xa3\xa3\xa3 "," ☺▒█\xa3\xa3\xa3 "," ☺▒█\xa3\xa3\xa3 "," ☺░█\xa3\xa3\xa3 "," ☺░█\xa3\xa3\xa3 "," ☺ █\xa3\xa3\xa3 "," ☺█\xa3\xa3\xa3 "," ☺█\xa3\xa3\xa3 "," ☺▓\xa3\xa3\xa3 "," ☺▓\xa3\xa3\xa3 "," ☺▒\xa3\xa3\xa3 "," ☺▒\xa3\xa3\xa3 "," ☺░\xa3\xa3\xa3 "," ☺░\xa3\xa3\xa3 "," ☺ \xa3\xa3\xa3 "," ☺\xa3\xa3\xa3 "," ☺\xa3\xa3\xa3 "," ☺▓\xa3\xa3 "," ☺▓\xa3\xa3 "," ☺▒\xa3\xa3 "," ☺▒\xa3\xa3 "," ☺░\xa3\xa3 "," ☺░\xa3\xa3 "," ☺ \xa3\xa3 "," ☺\xa3\xa3 "," ☺\xa3\xa3 "," ☺▓\xa3 "," ☺▓\xa3 "," ☺▒\xa3 "," ☺▒\xa3 "," ☺░\xa3 "," ☺░\xa3 "," ☺ \xa3 "," ☺\xa3 "," ☺\xa3 "," ☺▓ "," ☺▓ "," ☺▒ "," ☺▒ "," ☺░ "," ☺░ "," ☺ "," ☺ &"," ☺ ☼&"," ☺ ☼ &"," ☺☼ &"," ☺☼ & "," ‼ & "," ☺ & "," ‼ & "," ☺ & "," ‼ & "," ☺ & ","‼ & "," & "," & "," & ░ "," & ▒ "," & ▓ "," & \xa3 "," & ░\xa3 "," & ▒\xa3 "," & ▓\xa3 "," & \xa3\xa3 "," & ░\xa3\xa3 "," & ▒\xa3\xa3 ","& ▓\xa3\xa3 ","& \xa3\xa3\xa3 "," ░\xa3\xa3\xa3 "," ▒\xa3\xa3\xa3 "," ▓\xa3\xa3\xa3 "," █\xa3\xa3\xa3 "," ░█\xa3\xa3\xa3 "," ▒█\xa3\xa3\xa3 "," ▓█\xa3\xa3\xa3 "," ██\xa3\xa3\xa3 "," ░██\xa3\xa3\xa3 "," ▒██\xa3\xa3\xa3 "," ▓██\xa3\xa3\xa3 "," ███\xa3\xa3\xa3 "," ░███\xa3\xa3\xa3 "," ▒███\xa3\xa3\xa3 "," ▓███\xa3\xa3\xa3 "," ████\xa3\xa3\xa3 "," ░████\xa3\xa3\xa3 "," ▒████\xa3\xa3\xa3 "," ▓████\xa3\xa3\xa3 "," █████\xa3\xa3\xa3 "," ░█████\xa3\xa3\xa3 "," ▒█████\xa3\xa3\xa3 "," ▓█████\xa3\xa3\xa3 "," ██████\xa3\xa3\xa3 "," ██████\xa3\xa3\xa3 "]},"fish":{"interval":80,"frames":["~~~~~~~~~~~~~~~~~~~~","> ~~~~~~~~~~~~~~~~~~","\xba> ~~~~~~~~~~~~~~~~~","(\xba> ~~~~~~~~~~~~~~~~","((\xba> ~~~~~~~~~~~~~~~","<((\xba> ~~~~~~~~~~~~~~","><((\xba> ~~~~~~~~~~~~~"," ><((\xba> ~~~~~~~~~~~~","~ ><((\xba> ~~~~~~~~~~~","~~ <>((\xba> ~~~~~~~~~~","~~~ ><((\xba> ~~~~~~~~~","~~~~ <>((\xba> ~~~~~~~~","~~~~~ ><((\xba> ~~~~~~~","~~~~~~ <>((\xba> ~~~~~~","~~~~~~~ ><((\xba> ~~~~~","~~~~~~~~ <>((\xba> ~~~~","~~~~~~~~~ ><((\xba> ~~~","~~~~~~~~~~ <>((\xba> ~~","~~~~~~~~~~~ ><((\xba> ~","~~~~~~~~~~~~ <>((\xba> ","~~~~~~~~~~~~~ ><((\xba>","~~~~~~~~~~~~~~ <>((\xba","~~~~~~~~~~~~~~~ ><((","~~~~~~~~~~~~~~~~ <>(","~~~~~~~~~~~~~~~~~ ><","~~~~~~~~~~~~~~~~~~ <","~~~~~~~~~~~~~~~~~~~~"]}}');Object.keys(ab);let ac=n?.WriteStream?.prototype?.hasColors?.()??!1,ad=(a,b)=>{if(!ac)return a=>a;let c=`\u001B[${a}m`,d=`\u001B[${b}m`;return a=>{let e=a+"",f=e.indexOf(d);if(-1===f)return c+e+d;let g=c,h=0,i=(22===b?d:"")+c;for(;-1!==f;)g+=e.slice(h,f)+i,h=f+d.length,f=e.indexOf(d,h);return g+(e.slice(h)+d)}};ad(0,0),ad(1,22),ad(2,22),ad(3,23),ad(4,24),ad("4:2",24),ad("4:3",24),ad("4:4",24),ad("4:5",24),ad(53,55),ad(7,27),ad(8,28),ad(9,29),ad(30,39);let ae=ad(31,39),af=ad(32,39),ag=ad(33,39),ah=ad(34,39);function ai(){let{env:a}=f,{TERM:b,TERM_PROGRAM:c}=a;return"win32"!==f.platform?"linux"!==b:!!a.WT_SESSION||!!a.TERMINUS_SUBLIME||"{cmd::Cmder}"===a.ConEmuTask||"Terminus-Sublime"===c||"vscode"===c||"xterm-256color"===b||"alacritty"===b||"rxvt-unicode"===b||"rxvt-unicode-256color"===b||"JetBrains-JediTerm"===a.TERMINAL_EMULATOR}ad(35,39),ad(36,39),ad(37,39),ad(90,39),ad(40,49),ad(41,49),ad(42,49),ad(43,49),ad(44,49),ad(45,49),ad(46,49),ad(47,49),ad(100,49),ad(91,39),ad(92,39),ad(93,39),ad(94,39),ad(95,39),ad(96,39),ad(97,39),ad(101,49),ad(102,49),ad(103,49),ad(104,49),ad(105,49),ad(106,49),ad(107,49),ad("58;5;0",59),ad("58;5;1",59),ad("58;5;2",59),ad("58;5;3",59),ad("58;5;4",59),ad("58;5;5",59),ad("58;5;6",59),ad("58;5;7",59),ad("58;5;8",59),ad("58;5;9",59),ad("58;5;10",59),ad("58;5;11",59),ad("58;5;12",59),ad("58;5;13",59),ad("58;5;14",59),ad("58;5;15",59);let aj=ai(),ak=ah(aj?"ℹ":"i"),al=af(aj?"✔":"√"),am=ag(aj?"⚠":"‼"),an=ae(aj?"✖":"\xd7"),ao=function({onlyFirst:a=!1}={}){return RegExp("(?:\\u001B\\][^\\u0007\\u001B\\u009C]*(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",a?void 0:"g")}(),ap=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],aq=[12288,12288,65281,65376,65504,65510],ar=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101594,101631,101664,101760,101874,101888,102801,102816,102866,110576,110579,110581,110587,110589,110590,110592,110888,110898,110898,110928,110930,110933,110933,110948,110952,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127406,127406,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128729,128732,128735,128747,128748,128756,128764,128986,128986,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129734,129736,129736,129740,129757,129759,129771,129775,129786,131072,196605,196608,262141],as=(a,b)=>{let c=0,d=Math.floor(a.length/2)-1;for(;c<=d;){let e=Math.floor((c+d)/2),f=2*e;if(b<a[f])d=e-1;else{if(!(b>a[f+1]))return!0;c=e+1}}return!1},[at,au]=function(a){let b=a[0],c=a[1];for(let d=0;d<a.length;d+=2){let e=a[d],f=a[d+1];if(19968>=e&&19968<=f)return[e,f];f-e>c-b&&(b=e,c=f)}return[b,c]}(ar);function av(a,{ambiguousAsWide:b=!1}={}){if(!Number.isSafeInteger(a))throw TypeError(`Expected a code point, got \`${typeof a}\`.`);return!(a<12288)&&!(a>65510)&&as(aq,a)||a>=at&&a<=au||!(a<4352)&&!(a>262141)&&as(ar,a)||b&&!(a<161)&&!(a>1114109)&&as(ap,a)?2:1}let aw=new Intl.Segmenter,ax=/^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Format}|\p{Nonspacing_Mark}|\p{Enclosing_Mark}|\p{Surrogate})+$/v,ay=/^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Nonspacing_Mark}\p{Enclosing_Mark}\p{Surrogate}]+/v,az=/\p{Spacing_Mark}/v,aA=/^\p{RGI_Emoji}$/v,aB=/^[\d#*]\u20E3$/,aC=/\p{Extended_Pictographic}/gu;function aD(a){return a>=4352&&a<=4447||a>=43360&&a<=43388}function aE(a){return a>=4448&&a<=4519||a>=55216&&a<=55238}function aF(a){return a>=4520&&a<=4607||a>=55243&&a<=55291}class aG{#j=0;#k;#l=!1;#m=!1;#n=a=>{a?.length&&("string"==typeof a?a.codePointAt(0):a[0])===3&&f.kill(f.pid,"SIGINT")};start(){this.#j++,1===this.#j&&this.#o()}stop(){0!==this.#j&&0==--this.#j&&this.#p()}#o(){let{stdin:a}=f;if("win32"===f.platform||!a?.isTTY||"function"!=typeof a.setRawMode){this.#k=void 0;return}this.#k=a,this.#l=a.isPaused(),this.#m=!!a.isRaw,a.setRawMode(!0),a.prependListener("data",this.#n),this.#l&&a.resume()}#p(){if(!this.#k)return;let a=this.#k;a.off("data",this.#n),a.isTTY&&a.setRawMode?.(this.#m),this.#l&&a.pause(),this.#k=void 0,this.#l=!1,this.#m=!1}}let aH=Object.freeze(new aG),aI=new Map,aJ=new Set(["black","red","green","yellow","blue","magenta","cyan","white","gray"]);class aK{#q=0;#r=-1;#s=0;#t;#u;#v;#w;#x=new Map;#y=!1;#z;#A;#B=!1;#C;#D(a){this.#y=!0;try{return a()}finally{this.#y=!1}}#E(){this.isSpinning&&this.render()}#F(a,b){return null==a?"":"string"==typeof a?a:Buffer.isBuffer(a)||ArrayBuffer.isView(a)?Buffer.from(a).toString("string"==typeof b&&b&&"buffer"!==b?b:"utf8"):String(a)}#G(a){if(!a)return!1;let b=a.at(-1);return"\n"===b||"\r"===b}#H(){this.#A||(this.#A=setTimeout(()=>{this.#A=void 0,this.isSpinning&&this.#E()},200),"function"==typeof this.#A?.unref&&this.#A.unref())}#I(){this.#A&&(clearTimeout(this.#A),this.#A=void 0)}#J(a,b,c,d){return this.#K(c," ")+a+("string"==typeof b?(a?" ":"")+b:"")+this.#L(d," ")}constructor(a){if("string"==typeof a&&(a={text:a}),this.#t={color:"cyan",stream:f.stderr,discardStdin:!0,hideCursor:!0,...a},this.color=this.#t.color,this.#v=this.#t.stream,"boolean"!=typeof this.#t.isEnabled&&(this.#t.isEnabled=function({stream:a=process.stdout}={}){return!!(a&&a.isTTY&&"dumb"!==process.env.TERM&&!("CI"in process.env))}({stream:this.#v})),"boolean"!=typeof this.#t.isSilent&&(this.#t.isSilent=!1),void 0!==this.#t.interval&&!(Number.isInteger(this.#t.interval)&&this.#t.interval>0))throw Error("The `interval` option must be a positive integer");const b=this.#t.interval;this.spinner=this.#t.spinner,this.#t.interval=b,this.text=this.#t.text,this.prefixText=this.#t.prefixText,this.suffixText=this.#t.suffixText,this.indent=this.#t.indent}get indent(){return this.#t.indent}set indent(a=0){if(!(a>=0&&Number.isInteger(a)))throw Error("The `indent` option must be an integer from 0 and up");this.#t.indent=a}get interval(){return this.#t.interval??this.#u.interval??100}get spinner(){return this.#u}set spinner(a){if(this.#r=-1,this.#t.interval=void 0,"object"==typeof a){if(!Array.isArray(a.frames)||0===a.frames.length||a.frames.some(a=>"string"!=typeof a))throw Error("The given spinner must have a non-empty `frames` array of strings");if(void 0!==a.interval&&!(Number.isInteger(a.interval)&&a.interval>0))throw Error("`spinner.interval` must be a positive integer if provided");this.#u=a}else if(ai())if(void 0===a)this.#u=ab.dots;else if("default"!==a&&ab[a])this.#u=ab[a];else throw Error(`There is no built-in spinner named '${a}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);else this.#u=ab.line}get text(){return this.#t.text}set text(a=""){this.#t.text=a}get prefixText(){return this.#t.prefixText}set prefixText(a=""){this.#t.prefixText=a}get suffixText(){return this.#t.suffixText}set suffixText(a=""){this.#t.suffixText=a}get isSpinning(){return void 0!==this.#w}#M(a,b,c=!1){let d="function"==typeof a?a():a;return"string"==typeof d&&""!==d?c?b+d:d+b:""}#K(a=this.#t.prefixText,b=" "){return this.#M(a,b,!1)}#L(a=this.#t.suffixText,b=" "){return this.#M(a,b,!0)}#N(a,b){let c=0;for(let d of(0,g.stripVTControlCharacters)(a).split("\n"))c+=Math.max(1,Math.ceil(function(a,b={}){if("string"!=typeof a||0===a.length)return 0;let{ambiguousIsNarrow:c=!0,countAnsiEscapeCodes:d=!1}=b,e=a;if(!d&&(e.includes("\x1b")||e.includes("\x9b"))&&(e=function(a){if("string"!=typeof a)throw TypeError(`Expected a \`string\`, got \`${typeof a}\``);return a.includes("\x1b")||a.includes("\x9b")?a.replace(ao,""):a}(e)),0===e.length)return 0;if(/^[\u0020-\u007E]*$/.test(e))return e.length;let f=0,g={ambiguousAsWide:!c};for(let{segment:a}of aw.segment(e)){if(ax.test(a))continue;if(aA.test(a)||function(a){if(a.length>50)return!1;if(aB.test(a))return!0;if(a.includes("‍")){let b=a.match(aC);return null!==b&&b.length>=2}return!1}(a)){f+=2;continue}let b=a.replace(ay,""),c=function(a,b){let c=[];for(let b of a)ax.test(b)||c.push(b.codePointAt(0));if(0===c.length)return;let d=0;for(let a=0;a<c.length;a++){let e=c[a];if(!(aD(e)||aE(e)||aF(e))){if(0===d)return;for(let e=a;e<c.length;e++)d+=av(c[e],b);break}if(aD(e)&&aE(c[a+1])){d+=2,a+=aF(c[a+2])?2:1;continue}d+=av(e,b)}return d}(b,g);if(void 0!==c){f+=c;continue}f+=av(b.codePointAt(0),g),f+=function(a,b){let c=0,d=!0;for(let e of a){if(d){d=!1;continue}(az.test(e)||e>="＀"&&e<="￯")&&(c+=av(e.codePointAt(0),b))}return c}(b,g)}return f}(d)/b));return c}get color(){return this.#C}set color(a){if(void 0!==a&&!1!==a&&!aJ.has(a))throw Error("The `color` option must be a valid color or `false` to disable");this.#C=a}get isEnabled(){return this.#t.isEnabled&&!this.#t.isSilent}set isEnabled(a){if("boolean"!=typeof a)throw TypeError("The `isEnabled` option must be a boolean");this.#t.isEnabled=a}get isSilent(){return this.#t.isSilent}set isSilent(a){if("boolean"!=typeof a)throw TypeError("The `isSilent` option must be a boolean");this.#t.isSilent=a}frame(){let a=Date.now();(-1===this.#r||a-this.#s>=this.interval)&&(this.#r=(this.#r+1)%this.#u.frames.length,this.#s=a);let{frames:b}=this.#u,c=b[this.#r];return this.#C&&(c=E[this.#C](c)),this.#K(this.#t.prefixText," ")+c+("string"==typeof this.text?" "+this.text:"")+this.#L(this.#t.suffixText," ")}clear(){return this.isEnabled&&this.#v.isTTY&&(this.#D(()=>{this.#v.cursorTo(0);for(let a=0;a<this.#q;a++)a>0&&this.#v.moveCursor(0,-1),this.#v.clearLine(1);this.#t.indent&&this.#v.cursorTo(this.#t.indent)}),this.#q=0),this}#O(a){if(!a||this.#x.has(a)||!a.isTTY||"function"!=typeof a.write)return;aI.has(a)&&console.warn("[ora] Multiple concurrent spinners detected. This may cause visual corruption. Use one spinner at a time.");let b=a.write;this.#x.set(a,b),aI.set(a,this),a.write=(c,d,e)=>this.#P(a,b,c,d,e)}#Q(){if(this.isEnabled&&!(this.#x.size>0))for(let a of new Set([this.#v,f.stdout,f.stderr]))this.#O(a)}#R(){for(let[a,b]of this.#x)a.write=b,aI.get(a)===this&&aI.delete(a);this.#x.clear()}#P(a,b,c,d,e){if("function"==typeof d&&(e=d,d=void 0),this.#y)return b.call(a,c,d,e);this.clear();let f=this.#F(c,d),g=this.#G(f),h=b.call(a,c,d,e);return g?this.#I():f.length>0&&this.#H(),this.isSpinning&&!this.#A&&this.render(),h}render(){if(!this.isEnabled||this.#z||this.#A)return this;let a=this.#v.isTTY,b=!1;try{a&&(this.#D(()=>this.#v.write("\x1b[?2026h")),b=!0),this.clear();let c=this.frame(),d=this.#v.columns??80,e=this.#N(c,d),f=this.#v.rows;f&&f>1&&e>f&&(c=[...c.split("\n").slice(0,f-1),"... (content truncated to fit terminal)"].join("\n"));let g=this.#D(()=>this.#v.write(c));!1===g&&this.#v.isTTY&&(this.#z=()=>{this.#z=void 0,this.#E()},this.#v.once("drain",this.#z)),this.#q=this.#N(c,d)}finally{b&&this.#D(()=>this.#v.write("\x1b[?2026l"))}return this}start(a){if(void 0!==a&&(this.text=a),this.isSilent)return this;if(!this.isEnabled){let a=this.text?"-":"",b=" ".repeat(this.#t.indent)+this.#J(a,this.text,this.#t.prefixText,this.#t.suffixText);return""!==b.trim()&&this.#D(()=>this.#v.write(b+"\n")),this}return this.isSpinning||(this.#t.hideCursor&&aa.hide(this.#v),this.#t.discardStdin&&f.stdin.isTTY&&(aH.start(),this.#B=!0),this.#Q(),this.render(),this.#w=setInterval(this.render.bind(this),this.interval)),this}stop(){return clearInterval(this.#w),this.#w=void 0,this.#r=-1,this.#s=0,this.#I(),this.#R(),this.#z&&(this.#v.removeListener("drain",this.#z),this.#z=void 0),this.isEnabled&&(this.clear(),this.#t.hideCursor&&aa.show(this.#v)),this.#B&&(this.#B=!1,aH.stop()),this}succeed(a){return this.stopAndPersist({symbol:al,text:a})}fail(a){return this.stopAndPersist({symbol:an,text:a})}warn(a){return this.stopAndPersist({symbol:am,text:a})}info(a){return this.stopAndPersist({symbol:ak,text:a})}stopAndPersist(a={}){if(this.isSilent)return this;let b=a.symbol??" ",c=a.text??this.text,d=a.prefixText??this.#t.prefixText,e=a.suffixText??this.#t.suffixText,f=this.#J(b,c,d,e)+"\n";return this.stop(),this.#D(()=>this.#v.write(f)),this}}function aL(a){return new aK(a)}},92235:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{T:()=>k});var e=c(71622),f=c(77786),g=c(99208),h=c(88590),i=c(49734),j=a([e]);e=(j.then?(await j)():j)[0];class k{constructor(a){this.config=a}buildAuthUrl(a,b,c,d={}){let e=new URLSearchParams({client_id:this.config.clientId,response_type:"code",redirect_uri:a,state:b,code_challenge:c,code_challenge_method:this.config.codeChallengeMethod,...d});return`${this.config.authorizeUrl}?${e.toString()}`}async startAuthFlow(a,b){let c=(0,h.u1)("Starting local server...").start(),d=null,{port:e,close:g}=await (0,f.Pd)(a=>{d=a}),j=`http://localhost:${e}/callback`;return c.succeed(`Local server started on port ${e}`),{redirectUri:j,port:e,close:g,waitForCallback:async()=>{if(c.start(`Waiting for ${b} authorization...`),await new Promise((a,b)=>{let c=setTimeout(()=>{b(Error("Authentication timeout (5 minutes)"))},i.Ww),e=setInterval(()=>{d&&(clearInterval(e),clearTimeout(c),a())},100)}),c.stop(),g(),d.error)throw Error(d.error_description||d.error);if(!d.code)throw Error("No authorization code received");return d}}}async exchangeCode(a,b,c,d="application/x-www-form-urlencoded"){let e="application/json"===d?JSON.stringify({grant_type:"authorization_code",client_id:this.config.clientId,code:a,redirect_uri:b,code_verifier:c}):new URLSearchParams({grant_type:"authorization_code",client_id:this.config.clientId,code:a,redirect_uri:b,code_verifier:c}),f=await fetch(this.config.tokenUrl,{method:"POST",headers:{"Content-Type":d,Accept:"application/json"},body:e});if(!f.ok){let a=await f.text();throw Error(`Token exchange failed: ${a}`)}return await f.json()}async authenticate(a,b){let{codeVerifier:c,codeChallenge:d,state:f}=(0,g.lz)(),{redirectUri:h,waitForCallback:i}=await this.startAuthFlow(null,a),j=b(h,f,d);console.log(`
5
5
  Opening browser for ${a} authentication...`),console.log(`If browser doesn't open, visit:
6
6
  ${j}
@@ -1,2 +1,2 @@
1
1
  "use strict";exports.id=9429,exports.ids=[9429],exports.modules={69429:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>H,GET:()=>F,POST:()=>G});var d=c(33059),e=c(94661),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(38066),o=c(89864);let p="10router-",q=".config.toml",r="10router-model-catalog.json";function s(a){return a&&"object"==typeof a?Array.isArray(a.models)?a.models.filter(a=>a&&a.slug):Array.isArray(a)?a.filter(a=>a&&a.slug):null:null}var t=c(5153);let u=(0,g.promisify)(f.exec),v=()=>k().join((0,o.Y$)(),".codex"),w=()=>k().join(v(),"config.toml"),x=()=>k().join(v(),r),y=async a=>{let b=async a=>{try{return s(JSON.parse(await i().readFile(a,"utf-8")))}catch{return null}},c=a?.model_catalog_json;if("string"==typeof c&&c.trim()&&c!==r){let a=k().isAbsolute(c)?c:k().join(v(),c),d=await b(a);if(d?.length)return d}let d=await b(k().join(v(),"models_cache.json"));if(d?.length)return d;try{let{stdout:a}=await u("codex debug models",{env:{...process.env,CODEX_HOME:v()},maxBuffer:8388608,timeout:15e3,windowsHide:!0}),b=s(JSON.parse(a));if(b?.length)return b}catch{}let e=await b(x());if(e?.length){let a=new Set((await E()).map(a=>a.model)),b=e.filter(b=>!a.has(String(b.slug)));if(b.length)return b}return null},z=a=>a??{},A=(a,b)=>{let c=b.split("."),d=a;for(let a=0;a<c.length-1;a++)if(null==(d=d?.[c[a]]))return;delete d[c[c.length-1]]},B=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await u(a?"where codex":"which codex",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(w()),!0}catch{return!1}}},C=async()=>{try{let a=w();return await i().readFile(a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}},D=a=>a?.model_provider==="10router"||a?.model_provider==="9router",E=async()=>{try{let a=v(),b=await i().readdir(a),c=[];for(let d of b)if(d.startsWith(p)&&d.endsWith(q))try{let b=await i().readFile(k().join(a,d),"utf-8"),e=(0,n.M)(b);c.push({name:d.slice(0,-q.length),file:d,model:e?.model||""})}catch{}return c.sort((a,b)=>a.name.localeCompare(b.name))}catch(a){if("ENOENT"===a.code)return[];throw a}};async function F(){try{if(!await B()){if((0,o.u_)()&&!(0,o.U_)())return e.NextResponse.json({installed:null,container:!0,config:null,message:"Running in a container — configure the CLI on the host manually"});return e.NextResponse.json({installed:!1,config:null,message:"Codex CLI is not installed"})}let a=await C(),b=!1;try{b=D((0,n.M)(a||""))}catch{}let c=!1;try{c=(0,n.M)(a||"")?.model_catalog_json===r}catch{}return e.NextResponse.json({installed:!0,config:a,has10Router:!!a&&(a.includes('model_provider = "10router"')||a.includes("[model_providers.10router]")),rootHijacked:b,profiles:await E(),catalogActive:c,configPath:w()})}catch(a){return console.log("Error checking codex settings:",a),e.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function G(a){try{if((0,o.u_)()&&!(0,o.U_)())return e.NextResponse.json({error:"Running in a container — apply the manual config on the host instead"},{status:409});let{baseUrl:b,apiKey:c,model:d,models:f,subagentModel:g}=await a.json(),h=(Array.isArray(f)&&f.length?f:d?[d]:[]).map(a=>String(a||"").trim()).filter(Boolean);if(!b||!c||0===h.length)return e.NextResponse.json({error:"baseUrl, apiKey and at least one model are required"},{status:400});let j=v(),l=w();await i().mkdir(j,{recursive:!0});let m={};try{let a=await i().readFile(l,"utf-8");m=z((0,n.M)(a))}catch{}D(m)&&(delete m.model,delete m.model_provider,A(m,"agents.default_subagent_model")),A(m,"model_providers.9router"),A(m,"agents.subagent");let s=b.endsWith("/v1")?b:`${b}/v1`;((a,b,c)=>{let d=b.split("."),e=a;for(let a=0;a<d.length-1;a++)(null==e[d[a]]||"object"!=typeof e[d[a]])&&(e[d[a]]={}),e=e[d[a]];e[d[d.length-1]]=c})(m,"model_providers.10router",{name:"10Router",base_url:s,wire_api:"responses",http_headers:{Authorization:`Bearer ${c}`}});let t=await y(m),u=!1;if(t){let a,b,c,d,e,{models:f}=(b=(a=Array.isArray(t)?t.filter(a=>a&&a.slug):[])[0]||null,c=[...new Set(h.filter(Boolean).map(a=>String(a)))],d=new Set(c),e=a.filter(a=>!d.has(String(a.slug))),{models:[...c.map(a=>{let c,d;return d={...c=b&&"object"==typeof b?JSON.parse(JSON.stringify(b)):{},slug:String(a),display_name:String(a),visibility:"list",priority:0,description:c.description||"10Router model"},delete d.upgrade,delete d.availability_nux,delete d.model_messages,Array.isArray(d.supported_reasoning_levels)&&0!==d.supported_reasoning_levels.length||(d.supported_reasoning_levels=[{effort:"low",description:"Fast responses with lighter reasoning"},{effort:"medium",description:"Balances speed and reasoning depth for everyday tasks"},{effort:"high",description:"Greater reasoning depth for complex problems"}]),null==d.shell_type&&(d.shell_type="unified_exec"),null==d.supported_in_api&&(d.supported_in_api=!0),d}),...e]});await i().writeFile(x(),`${JSON.stringify({models:f},null,2)}
2
- `),m.model_catalog_json=r,u=!0}else m.model_catalog_json===r&&delete m.model_catalog_json;let B=(0,n.q)(m);await i().writeFile(l,B);let C=function(a){let b=new Set,c=[];for(let e of a){var d;let a=function(a){let b=String(a??"").trim().replace(/[^A-Za-z0-9_-]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"");return`${p}${b||"model"}`}(e),f=a,g=2;for(;b.has(f);)f=`${a}-${g++}`;b.add(f),c.push({model:String(e),name:f,file:(d=f,`${d}${q}`)})}return c}(h);for(let a of(await E()))C.some(b=>b.name===a.name)||await i().unlink(k().join(j,a.file)).catch(()=>{});for(let{model:a,file:b}of C){let c={model:a,model_provider:"10router"};u&&(c.model_catalog_json=r),g&&(c.agents={default_subagent_model:g}),await i().writeFile(k().join(j,b),(0,n.q)(c))}return e.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:l,profiles:C,catalogWritten:u})}catch(a){return console.log("Error updating codex settings:",a),e.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function H(){try{if((0,o.u_)()&&!(0,o.U_)())return e.NextResponse.json({error:"Running in a container — apply the manual config on the host instead"},{status:409});let a=w(),b={};try{let c=await i().readFile(a,"utf-8");b=z((0,n.M)(c))}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}D(b)&&(delete b.model,delete b.model_provider),A(b,"model_providers.10router"),A(b,"model_providers.9router"),A(b,"agents.default_subagent_model"),A(b,"agents.subagent"),b.model_catalog_json===r&&delete b.model_catalog_json;let c=(0,n.q)(b);for(let b of(await i().writeFile(a,c),await E()))await i().unlink(k().join(v(),b.file)).catch(()=>{});return await i().unlink(x()).catch(()=>{}),e.NextResponse.json({success:!0,message:"10Router settings removed successfully"})}catch(a){return console.log("Error resetting codex settings:",a),e.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,t.D)([F,G,H]),(0,d.A)(F,"005d93c71d4b369b76272cedd74a53d4badf524076",null),(0,d.A)(G,"406b20af6dc7424cb9e00083ab6a034c9289105c78",null),(0,d.A)(H,"00cf0eda7a77070c3be1b22440e205157d324dd16f",null)}};
2
+ `),m.model_catalog_json=r,u=!0}else m.model_catalog_json===r&&delete m.model_catalog_json;let B=(0,n.q)(m);await i().writeFile(l,B);let C=function(a){let b=new Set,c=[];for(let e of a){var d;let a=function(a){let b=String(a??"").trim().replace(/[^A-Za-z0-9_-]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"");return`${p}${b||"model"}`}(e),f=a,g=2;for(;b.has(f);)f=`${a}-${g++}`;b.add(f),c.push({model:String(e),name:f,file:(d=f,`${d}${q}`)})}return c}(h);for(let a of(await E()))C.some(b=>b.name===a.name)||await i().unlink(k().join(j,a.file)).catch(()=>{});for(let{model:a,file:b}of C){let c={model:a,model_provider:"10router"};u&&(c.model_catalog_json=r),g&&(c.agents={default_subagent_model:g}),await i().writeFile(k().join(j,b),(0,n.q)(c))}return e.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:l,profiles:C,catalogWritten:u})}catch(a){return console.log("Error updating codex settings:",a),e.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function H(){try{if((0,o.u_)()&&!(0,o.U_)())return e.NextResponse.json({error:"Running in a container — apply the manual config on the host instead"},{status:409});let a=w(),b={};try{let c=await i().readFile(a,"utf-8");b=z((0,n.M)(c))}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}D(b)&&(delete b.model,delete b.model_provider),A(b,"model_providers.10router"),A(b,"model_providers.9router"),A(b,"agents.default_subagent_model"),A(b,"agents.subagent"),b.model_catalog_json===r&&delete b.model_catalog_json;let c=(0,n.q)(b);for(let b of(await i().writeFile(a,c),await E()))await i().unlink(k().join(v(),b.file)).catch(()=>{});return await i().unlink(x()).catch(()=>{}),e.NextResponse.json({success:!0,message:"10Router settings removed successfully"})}catch(a){return console.log("Error resetting codex settings:",a),e.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,t.D)([F,G,H]),(0,d.A)(F,"0045c7c3ceac28d69bf685a90f467fa36c34d13d7d",null),(0,d.A)(G,"408a42f3166b9fd154a7d87b40d191ae28ead3bfed",null),(0,d.A)(H,"004953963bfc3d098b3e7f7910759ec95d6946368f",null)}};