cartethyia 2.7.3 → 2.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/dist/dashboard/assets/{BannedPage-2TJD37Hb.js → BannedPage-ChG5svFb.js} +1 -1
  2. package/dist/dashboard/assets/BannedPage-ChG5svFb.js.gz +0 -0
  3. package/dist/dashboard/assets/{CliToolDetailPage-xefJNRmJ.js → CliToolDetailPage-BIcWQun7.js} +1 -1
  4. package/dist/dashboard/assets/CliToolDetailPage-BIcWQun7.js.gz +0 -0
  5. package/dist/dashboard/assets/{CliToolsPage-Rj9iHQ3F.js → CliToolsPage-Bf2VelDe.js} +1 -1
  6. package/dist/dashboard/assets/CliToolsPage-Bf2VelDe.js.gz +0 -0
  7. package/dist/dashboard/assets/{CombosPage-JEbYJFxw.js → CombosPage-DCgm5g6g.js} +1 -1
  8. package/dist/dashboard/assets/CombosPage-DCgm5g6g.js.gz +0 -0
  9. package/dist/dashboard/assets/ConsoleLogPage-a8mD0QF1.js +1 -0
  10. package/dist/dashboard/assets/ConsoleLogPage-a8mD0QF1.js.gz +0 -0
  11. package/dist/dashboard/assets/CustomizationPage-ggeMSjte.js +1 -0
  12. package/dist/dashboard/assets/CustomizationPage-ggeMSjte.js.gz +0 -0
  13. package/dist/dashboard/assets/HealthEventsModal-DzSWzE_j.js +1 -0
  14. package/dist/dashboard/assets/HealthEventsModal-DzSWzE_j.js.gz +0 -0
  15. package/dist/dashboard/assets/{LoginPage-C4w7vea-.js → LoginPage-U6AKaJcF.js} +1 -1
  16. package/dist/dashboard/assets/LoginPage-U6AKaJcF.js.gz +0 -0
  17. package/dist/dashboard/assets/{ModelPicker-BtPcAfot.js → ModelPicker-BMS2t8BA.js} +1 -1
  18. package/dist/dashboard/assets/ModelPicker-BMS2t8BA.js.gz +0 -0
  19. package/dist/dashboard/assets/OverviewPage-D2D4IiHl.js +1 -0
  20. package/dist/dashboard/assets/OverviewPage-D2D4IiHl.js.gz +0 -0
  21. package/dist/dashboard/assets/ProviderDetailPage-CrNf7j_X.js +5 -0
  22. package/dist/dashboard/assets/ProviderDetailPage-CrNf7j_X.js.gz +0 -0
  23. package/dist/dashboard/assets/ProvidersPage-BSDbquc1.js +1 -0
  24. package/dist/dashboard/assets/ProvidersPage-BSDbquc1.js.gz +0 -0
  25. package/dist/dashboard/assets/ProxyPage-lsrx7NYg.js +9 -0
  26. package/dist/dashboard/assets/ProxyPage-lsrx7NYg.js.gz +0 -0
  27. package/dist/dashboard/assets/QuotaPage-L0skzML8.js +1 -0
  28. package/dist/dashboard/assets/QuotaPage-L0skzML8.js.gz +0 -0
  29. package/dist/dashboard/assets/SettingsPage-CmAbjRHW.js +1 -0
  30. package/dist/dashboard/assets/SettingsPage-CmAbjRHW.js.gz +0 -0
  31. package/dist/dashboard/assets/{SetupPage-BQS0Rx_u.js → SetupPage-f0DE1h0-.js} +1 -1
  32. package/dist/dashboard/assets/SetupPage-f0DE1h0-.js.gz +0 -0
  33. package/dist/dashboard/assets/{SortableList-BAL5npBC.js → SortableList-ClzpwyET.js} +1 -1
  34. package/dist/dashboard/assets/SortableList-ClzpwyET.js.gz +0 -0
  35. package/dist/dashboard/assets/{StudioPage-TP7voAQ0.js → StudioPage-Cq5tW7hW.js} +3 -3
  36. package/dist/dashboard/assets/StudioPage-Cq5tW7hW.js.gz +0 -0
  37. package/dist/dashboard/assets/UsagePage-Dfc9rWQn.js +56 -0
  38. package/dist/dashboard/assets/UsagePage-Dfc9rWQn.js.gz +0 -0
  39. package/dist/dashboard/assets/api-keys-C38iXoO4.js +1 -0
  40. package/dist/dashboard/assets/api-keys-C38iXoO4.js.gz +0 -0
  41. package/dist/dashboard/assets/app-a159k0ub.css +2 -0
  42. package/dist/dashboard/assets/app-a159k0ub.css.gz +0 -0
  43. package/dist/dashboard/assets/assert-DbRA8EG2.js +15 -0
  44. package/dist/dashboard/assets/assert-DbRA8EG2.js.gz +0 -0
  45. package/dist/dashboard/assets/{badge-B_DMpMJN.js → badge-D9CS6dZk.js} +1 -1
  46. package/dist/dashboard/assets/badge-D9CS6dZk.js.gz +0 -0
  47. package/dist/dashboard/assets/{banner-DMrMPmth.js → banner-DympBNq4.js} +1 -1
  48. package/dist/dashboard/assets/banner-DympBNq4.js.gz +0 -0
  49. package/dist/dashboard/assets/{card-Be5Uzamx.js → card-ibRWU_uT.js} +1 -1
  50. package/dist/dashboard/assets/card-ibRWU_uT.js.gz +0 -0
  51. package/dist/dashboard/assets/cli-tools-63qBGaRw.js +1 -0
  52. package/dist/dashboard/assets/cli-tools-63qBGaRw.js.gz +0 -0
  53. package/dist/dashboard/assets/{clipboard-button-DOfrVmsi.js → clipboard-button-DJm-9pz7.js} +1 -1
  54. package/dist/dashboard/assets/clipboard-button-DJm-9pz7.js.gz +0 -0
  55. package/dist/dashboard/assets/{dialog-C9omdjQt.js → dialog-8fiE6tec.js} +1 -1
  56. package/dist/dashboard/assets/dialog-8fiE6tec.js.gz +0 -0
  57. package/dist/dashboard/assets/{drawer-Bm8WKaGY.js → drawer-CqGYeOrd.js} +1 -1
  58. package/dist/dashboard/assets/drawer-CqGYeOrd.js.gz +0 -0
  59. package/dist/dashboard/assets/{entry-q5HwZ8nN.js → entry-BSAsYsmV.js} +1 -1
  60. package/dist/dashboard/assets/entry-BSAsYsmV.js.gz +0 -0
  61. package/dist/dashboard/assets/entry-CiIQULZD.js +4 -0
  62. package/dist/dashboard/assets/entry-CiIQULZD.js.gz +0 -0
  63. package/dist/dashboard/assets/entry-Daz0lJ-W.js +1 -0
  64. package/dist/dashboard/assets/entry-Daz0lJ-W.js.gz +0 -0
  65. package/dist/dashboard/assets/{formatters-BTScrQpe.js → formatters-D-MTJxMr.js} +1 -1
  66. package/dist/dashboard/assets/formatters-D-MTJxMr.js.gz +0 -0
  67. package/dist/dashboard/assets/{github-badge-Orjuzemr.js → github-badge-CPK47xQx.js} +1 -1
  68. package/dist/dashboard/assets/github-badge-CPK47xQx.js.gz +0 -0
  69. package/dist/dashboard/assets/{index-cPrX5vn6.js → index-DBNPOfhV.js} +2 -2
  70. package/dist/dashboard/assets/index-DBNPOfhV.js.gz +0 -0
  71. package/dist/dashboard/assets/{inline-Dvux8w-0.js → inline-BT0zntEr.js} +1 -1
  72. package/dist/dashboard/assets/inline-BT0zntEr.js.gz +0 -0
  73. package/dist/dashboard/assets/{input-CU1Rgf3p.js → input-Da2ZViWg.js} +1 -1
  74. package/dist/dashboard/assets/input-Da2ZViWg.js.gz +0 -0
  75. package/dist/dashboard/assets/{layout-C_7A6H55.js → layout-BXNeLw6M.js} +1 -1
  76. package/dist/dashboard/assets/layout-BXNeLw6M.js.gz +0 -0
  77. package/dist/dashboard/assets/{list-row-CzFvogbj.js → list-row-BycOrrIV.js} +1 -1
  78. package/dist/dashboard/assets/list-row-BycOrrIV.js.gz +0 -0
  79. package/dist/dashboard/assets/live-DCQNZpF7.js +1 -0
  80. package/dist/dashboard/assets/live-DCQNZpF7.js.gz +0 -0
  81. package/dist/dashboard/assets/minimize-2-BTmMTK4o.js +1 -0
  82. package/dist/dashboard/assets/minimize-2-BTmMTK4o.js.gz +0 -0
  83. package/dist/dashboard/assets/{mutation-JJGQm8TD.js → mutation-Rr0TIvcj.js} +1 -1
  84. package/dist/dashboard/assets/mutation-Rr0TIvcj.js.gz +0 -0
  85. package/dist/dashboard/assets/network-9Yj2ZyLo.js +1 -0
  86. package/dist/dashboard/assets/network-9Yj2ZyLo.js.gz +0 -0
  87. package/dist/dashboard/assets/{numbers-BNDZnsUE.js → numbers-CEagj6ZZ.js} +2 -2
  88. package/dist/dashboard/assets/numbers-CEagj6ZZ.js.gz +0 -0
  89. package/dist/dashboard/assets/{query-keys-CLaNz8Xz.js → query-keys-BloKtaXJ.js} +1 -1
  90. package/dist/dashboard/assets/query-keys-BloKtaXJ.js.gz +0 -0
  91. package/dist/dashboard/assets/quota-Caw7wqci.js +1 -0
  92. package/dist/dashboard/assets/quota-Caw7wqci.js.gz +0 -0
  93. package/dist/dashboard/assets/routing-CO9zCUus.js +1 -0
  94. package/dist/dashboard/assets/routing-CO9zCUus.js.gz +0 -0
  95. package/dist/dashboard/assets/{select-B3iTetHN.js → select-BIYIBkMU.js} +2 -2
  96. package/dist/dashboard/assets/select-BIYIBkMU.js.gz +0 -0
  97. package/dist/dashboard/assets/settings-jS3-PNSA.js +1 -0
  98. package/dist/dashboard/assets/settings-jS3-PNSA.js.gz +0 -0
  99. package/dist/dashboard/assets/{stack-KrOrm7JZ.js → stack-DfgnFDWY.js} +1 -1
  100. package/dist/dashboard/assets/stack-DfgnFDWY.js.gz +0 -0
  101. package/dist/dashboard/assets/{state-DLS7IDMy.js → state-CkfdYWel.js} +1 -1
  102. package/dist/dashboard/assets/state-CkfdYWel.js.gz +0 -0
  103. package/dist/dashboard/assets/{switch-42ItvbAs.js → switch-SYm237HG.js} +1 -1
  104. package/dist/dashboard/assets/switch-SYm237HG.js.gz +0 -0
  105. package/dist/dashboard/assets/{useMutation-Dmnfh1Ue.js → useMutation-BQqCRNIi.js} +1 -1
  106. package/dist/dashboard/assets/useMutation-BQqCRNIi.js.gz +0 -0
  107. package/dist/dashboard/index.html +2 -2
  108. package/dist/dashboard/index.html.gz +0 -0
  109. package/dist/dashboard/precompressed-assets.json +55 -54
  110. package/migrations/full-postgres/0027_qoder_identity_genuine_seed.sql +9 -10
  111. package/migrations/full-postgres/0032_add_provider_pool_accounts.sql +53 -0
  112. package/migrations/full-postgres/0033_add_api_key_ban.sql +9 -0
  113. package/migrations/full-postgres/0034_add_api_key_ban_until.sql +7 -0
  114. package/migrations/full-postgres/0035_align_pool_account_status_enum.sql +21 -0
  115. package/migrations/lite-sqlite3/0027_qoder_identity_genuine_seed.sql +9 -10
  116. package/migrations/lite-sqlite3/0032_add_provider_pool_accounts.sql +44 -0
  117. package/migrations/lite-sqlite3/0033_add_api_key_ban.sql +8 -0
  118. package/migrations/lite-sqlite3/0034_add_api_key_ban_until.sql +5 -0
  119. package/migrations/lite-sqlite3/0035_align_pool_account_status_enum.sql +6 -0
  120. package/package.json +2 -1
  121. package/src/boot/app.ts +9 -8
  122. package/src/config/network.ts +7 -3
  123. package/src/console/api-keys/contracts.ts +52 -0
  124. package/src/console/api-keys/routes.ts +93 -4
  125. package/src/console/audit/routes.ts +3 -3
  126. package/src/console/auth/account-reset.ts +4 -4
  127. package/src/console/auth/session.ts +3 -3
  128. package/src/console/backup/contracts.ts +2 -0
  129. package/src/console/backup/export-endpoint.ts +6 -6
  130. package/src/console/backup/routes.ts +3 -3
  131. package/src/console/cli-tools/routes.ts +3 -3
  132. package/src/console/console-router-guards.ts +2 -2
  133. package/src/console/console-router.ts +4 -4
  134. package/src/console/data-management/routes.ts +3 -3
  135. package/src/console/domain-registration.ts +2 -2
  136. package/src/console/observability/contracts.ts +4 -0
  137. package/src/console/observability/live.ts +3 -3
  138. package/src/console/observability/logs.ts +3 -3
  139. package/src/console/observability/performance.ts +3 -3
  140. package/src/console/observability/routes.ts +3 -3
  141. package/src/console/observability/store.ts +16 -16
  142. package/src/console/providers/catalog/contracts.ts +43 -22
  143. package/src/console/providers/catalog/provider-operations.ts +17 -2
  144. package/src/console/providers/catalog/routes.ts +3 -3
  145. package/src/console/providers/catalog/store-helpers.ts +349 -326
  146. package/src/console/providers/catalog/store.ts +1523 -1292
  147. package/src/console/providers/detail/routes.ts +3 -3
  148. package/src/console/providers/oauth/routes.ts +3 -3
  149. package/src/console/quota/account-quota-tenant.ts +26 -1
  150. package/src/console/quota/account-test-egress.ts +4 -4
  151. package/src/console/routing/model/routes.ts +3 -3
  152. package/src/console/routing/pools/contracts.ts +11 -8
  153. package/src/console/routing/pools/operations.ts +14 -7
  154. package/src/console/routing/pools/probe-verdict.ts +8 -3
  155. package/src/console/routing/pools/relay-deploy.ts +9 -9
  156. package/src/console/routing/pools/routes.ts +3 -3
  157. package/src/console/routing/pools/store.ts +21 -1
  158. package/src/console/settings/routes.ts +3 -3
  159. package/src/console/share/share-router.ts +12 -12
  160. package/src/console/share/share-stats.ts +105 -35
  161. package/src/console/shared/read-through-cache.ts +38 -2
  162. package/src/console/updates/routes.ts +7 -4
  163. package/src/network/outbound-fetch.ts +75 -4
  164. package/src/network/pool/resolver.ts +39 -39
  165. package/src/network/pool-cooldown-store.ts +71 -16
  166. package/src/network/pool-health-machine.ts +21 -1
  167. package/src/network/rate-limit-verdict.ts +68 -0
  168. package/src/network/ssrf.ts +4 -4
  169. package/src/observability/event-query.ts +320 -16
  170. package/src/observability/telemetry-status.ts +1 -1
  171. package/src/persistence/db-sqlite.ts +7 -2
  172. package/src/persistence/readiness.ts +18 -6
  173. package/src/persistence/schema.ts +66 -7
  174. package/src/persistence/stores/api-key-store.ts +99 -3
  175. package/src/persistence/stores/telemetry-store.ts +1 -1
  176. package/src/protocol/codecs.ts +6 -6
  177. package/src/protocol/gateway-error.ts +6 -3
  178. package/src/protocol/image-generation.ts +2 -2
  179. package/src/protocol/response/chat.ts +2 -2
  180. package/src/protocol/response/codex.ts +1 -1
  181. package/src/protocol/response/gemini.ts +1 -1
  182. package/src/protocol/response/messages.ts +5 -5
  183. package/src/protocol/response/responses.ts +2 -2
  184. package/src/protocol/sse-decoder.ts +14 -3
  185. package/src/protocol/translation/capabilities.ts +2 -2
  186. package/src/protocol/upstream/send-claude-messages.ts +3 -3
  187. package/src/providers/adapters/base-adapter.ts +1 -1
  188. package/src/providers/adapters/compatible-adapter.ts +2 -2
  189. package/src/providers/authentication/oauth-refresh-service.ts +2 -2
  190. package/src/providers/configured-provider.ts +1 -1
  191. package/src/providers/discovery/probe-phases.ts +2 -2
  192. package/src/providers/discovery/probing-service.ts +12 -12
  193. package/src/providers/integrations/agentrouter/agentrouter.ts +2 -3
  194. package/src/providers/integrations/alibabacp/alibabacp.ts +2 -2
  195. package/src/providers/integrations/anthropic.ts +4 -11
  196. package/src/providers/integrations/antigravity/antigravity.ts +13 -24
  197. package/src/providers/integrations/buddy/buddy-catalog-shared.ts +1 -1
  198. package/src/providers/integrations/buddy/buddy-discovery-shared.ts +37 -6
  199. package/src/providers/integrations/buddy/buddy-identity.ts +22 -1
  200. package/src/providers/integrations/buddy/buddy-media.ts +16 -16
  201. package/src/providers/integrations/buddy/codebuddy/provider.ts +1 -1
  202. package/src/providers/integrations/buddy/workbuddy/provider.ts +1 -1
  203. package/src/providers/integrations/claude/claude-betas.ts +1 -1
  204. package/src/providers/integrations/claude/claude-credentials.ts +1 -1
  205. package/src/providers/integrations/claude/claude-slow-lane-retry.ts +1 -1
  206. package/src/providers/integrations/claude/claude.ts +3 -10
  207. package/src/providers/integrations/cline/cline.ts +1 -1
  208. package/src/providers/integrations/cloudflareai/cloudflareai.ts +4 -7
  209. package/src/providers/integrations/codex/codex-errors.ts +1 -1
  210. package/src/providers/integrations/codex/codex.ts +14 -15
  211. package/src/providers/integrations/commandcode/commandcode.ts +4 -4
  212. package/src/providers/integrations/commandcode/quota.ts +5 -1
  213. package/src/providers/integrations/cursor/cursor-http2.ts +11 -11
  214. package/src/providers/integrations/cursor/cursor.ts +15 -15
  215. package/src/providers/integrations/factory/factory.ts +4 -4
  216. package/src/providers/integrations/gemini.ts +11 -11
  217. package/src/providers/integrations/github/github.ts +6 -6
  218. package/src/providers/integrations/grok/grok.ts +2 -6
  219. package/src/providers/integrations/inferhub.ts +4 -11
  220. package/src/providers/integrations/kimi/kimi.ts +4 -11
  221. package/src/providers/integrations/kiro/kiro.ts +10 -10
  222. package/src/providers/integrations/muse/muse.ts +6 -9
  223. package/src/providers/integrations/perplexity.ts +2 -2
  224. package/src/providers/integrations/qoder/qoder-catalog.ts +47 -9
  225. package/src/providers/integrations/qoder/qoder-checkin.ts +26 -8
  226. package/src/providers/integrations/qoder/qoder-native-identity-store.ts +9 -8
  227. package/src/providers/integrations/qoder/qoder-realm.ts +15 -0
  228. package/src/providers/integrations/qoder/qoder-umid.ts +12 -13
  229. package/src/providers/integrations/qoder/qoder-virtual.ts +2 -2
  230. package/src/providers/integrations/qoder/qoder.ts +188 -22
  231. package/src/providers/integrations/tokenharbor.ts +2 -2
  232. package/src/providers/integrations/trae/trae.ts +6 -9
  233. package/src/providers/integrations/zcode/oauth.ts +1 -1
  234. package/src/providers/operations/provider-catalog-service.ts +4 -4
  235. package/src/providers/operations/provider-credential-service.ts +16 -4
  236. package/src/providers/operations/upstream-deadline.ts +3 -3
  237. package/src/providers/provider-contracts.ts +47 -3
  238. package/src/providers/provider-credential-resolver.ts +1 -1
  239. package/src/providers/provider-registry.ts +4 -4
  240. package/src/providers/quota/quota-contracts.ts +24 -10
  241. package/src/providers/quota/refresh.ts +2 -2
  242. package/src/providers/search/search-provider.ts +5 -5
  243. package/src/security/abuse.ts +4 -4
  244. package/src/security/admission/reasons.ts +17 -17
  245. package/src/security/api-key-auth.ts +4 -4
  246. package/src/shared/coerce.ts +19 -0
  247. package/src/transport/dispatch/attempt-finalize.ts +4 -3
  248. package/src/transport/dispatch/attempt-loop.ts +10 -7
  249. package/src/transport/dispatch/empty-stream.ts +6 -6
  250. package/src/transport/dispatch/generation.ts +9 -9
  251. package/src/transport/dispatch/leases.ts +8 -8
  252. package/src/transport/dispatch/proxy-request.ts +7 -7
  253. package/src/transport/dispatch/responses-compact.ts +11 -11
  254. package/src/transport/dispatch/retry-policy.ts +4 -67
  255. package/src/transport/dispatch/stream-bridge.ts +1 -1
  256. package/src/transport/dispatch/streaming/finalize.ts +9 -8
  257. package/src/transport/dispatch/systemone.ts +8 -8
  258. package/src/transport/dispatch/token-count.ts +9 -9
  259. package/src/transport/dispatch/websearch.ts +6 -6
  260. package/src/transport/drain-endpoint.ts +2 -2
  261. package/src/transport/failure-policy.ts +13 -6
  262. package/src/transport/guards/auth-guard.ts +6 -5
  263. package/src/transport/guards/body-policy.ts +4 -4
  264. package/src/transport/guards/error-lifecycle.ts +18 -3
  265. package/src/transport/guards/guard-errors.ts +7 -3
  266. package/src/transport/guards/headroom-guard.ts +1 -1
  267. package/src/transport/guards/pipeline.ts +6 -6
  268. package/src/transport/guards/readiness-guard.ts +16 -2
  269. package/src/transport/guards/request-context.ts +3 -3
  270. package/src/transport/request/preparer.ts +20 -20
  271. package/src/transport/request/state.ts +4 -7
  272. package/src/transport/routing/route-catalog.ts +97 -2
  273. package/src/transport/routing/route-model.ts +7 -7
  274. package/src/transport/routing/router.ts +2 -2
  275. package/src/transport/shutdown-notice.ts +19 -7
  276. package/src/transport/surface/completion.ts +1 -1
  277. package/src/transport/surface/messages/encode.ts +1 -1
  278. package/dist/dashboard/assets/BannedPage-2TJD37Hb.js.gz +0 -0
  279. package/dist/dashboard/assets/CliToolDetailPage-xefJNRmJ.js.gz +0 -0
  280. package/dist/dashboard/assets/CliToolsPage-Rj9iHQ3F.js.gz +0 -0
  281. package/dist/dashboard/assets/CombosPage-JEbYJFxw.js.gz +0 -0
  282. package/dist/dashboard/assets/ConsoleLogPage-C3xx_inM.js +0 -1
  283. package/dist/dashboard/assets/ConsoleLogPage-C3xx_inM.js.gz +0 -0
  284. package/dist/dashboard/assets/CustomizationPage-Dw306gJU.js +0 -1
  285. package/dist/dashboard/assets/CustomizationPage-Dw306gJU.js.gz +0 -0
  286. package/dist/dashboard/assets/HealthEventsModal-jaBo1TWV.js +0 -1
  287. package/dist/dashboard/assets/HealthEventsModal-jaBo1TWV.js.gz +0 -0
  288. package/dist/dashboard/assets/LoginPage-C4w7vea-.js.gz +0 -0
  289. package/dist/dashboard/assets/ModelPicker-BtPcAfot.js.gz +0 -0
  290. package/dist/dashboard/assets/OverviewPage-CGC5gNs1.js +0 -1
  291. package/dist/dashboard/assets/OverviewPage-CGC5gNs1.js.gz +0 -0
  292. package/dist/dashboard/assets/ProviderDetailPage-DQcthNGt.js +0 -4
  293. package/dist/dashboard/assets/ProviderDetailPage-DQcthNGt.js.gz +0 -0
  294. package/dist/dashboard/assets/ProvidersPage-0OsXRGXe.js +0 -1
  295. package/dist/dashboard/assets/ProvidersPage-0OsXRGXe.js.gz +0 -0
  296. package/dist/dashboard/assets/ProxyPage-DdPc8slb.js +0 -9
  297. package/dist/dashboard/assets/ProxyPage-DdPc8slb.js.gz +0 -0
  298. package/dist/dashboard/assets/QuotaPage-Ci5O4BnH.js +0 -1
  299. package/dist/dashboard/assets/QuotaPage-Ci5O4BnH.js.gz +0 -0
  300. package/dist/dashboard/assets/SettingsPage-CDZjTt87.js +0 -1
  301. package/dist/dashboard/assets/SettingsPage-CDZjTt87.js.gz +0 -0
  302. package/dist/dashboard/assets/SetupPage-BQS0Rx_u.js.gz +0 -0
  303. package/dist/dashboard/assets/SortableList-BAL5npBC.js.gz +0 -0
  304. package/dist/dashboard/assets/StudioPage-TP7voAQ0.js.gz +0 -0
  305. package/dist/dashboard/assets/UsagePage-Cj_fEzhg.js +0 -56
  306. package/dist/dashboard/assets/UsagePage-Cj_fEzhg.js.gz +0 -0
  307. package/dist/dashboard/assets/api-keys-MbI7e7rt.js +0 -1
  308. package/dist/dashboard/assets/api-keys-MbI7e7rt.js.gz +0 -0
  309. package/dist/dashboard/assets/app-B2vyPoII.css +0 -2
  310. package/dist/dashboard/assets/app-B2vyPoII.css.gz +0 -0
  311. package/dist/dashboard/assets/assert-C0YYuZJ4.js +0 -1
  312. package/dist/dashboard/assets/assert-C0YYuZJ4.js.gz +0 -0
  313. package/dist/dashboard/assets/badge-B_DMpMJN.js.gz +0 -0
  314. package/dist/dashboard/assets/banner-DMrMPmth.js.gz +0 -0
  315. package/dist/dashboard/assets/card-Be5Uzamx.js.gz +0 -0
  316. package/dist/dashboard/assets/cli-tools-muFRphDu.js +0 -1
  317. package/dist/dashboard/assets/cli-tools-muFRphDu.js.gz +0 -0
  318. package/dist/dashboard/assets/clipboard-button-DOfrVmsi.js.gz +0 -0
  319. package/dist/dashboard/assets/dialog-C9omdjQt.js.gz +0 -0
  320. package/dist/dashboard/assets/drawer-Bm8WKaGY.js.gz +0 -0
  321. package/dist/dashboard/assets/entry-DS90gUks.js +0 -1
  322. package/dist/dashboard/assets/entry-DS90gUks.js.gz +0 -0
  323. package/dist/dashboard/assets/entry-j40LJotO.js +0 -4
  324. package/dist/dashboard/assets/entry-j40LJotO.js.gz +0 -0
  325. package/dist/dashboard/assets/entry-q5HwZ8nN.js.gz +0 -0
  326. package/dist/dashboard/assets/formatters-BTScrQpe.js.gz +0 -0
  327. package/dist/dashboard/assets/github-badge-Orjuzemr.js.gz +0 -0
  328. package/dist/dashboard/assets/index-cPrX5vn6.js.gz +0 -0
  329. package/dist/dashboard/assets/inline-Dvux8w-0.js.gz +0 -0
  330. package/dist/dashboard/assets/input-CU1Rgf3p.js.gz +0 -0
  331. package/dist/dashboard/assets/layout-C_7A6H55.js.gz +0 -0
  332. package/dist/dashboard/assets/list-row-CzFvogbj.js.gz +0 -0
  333. package/dist/dashboard/assets/live-KaG15HLQ.js +0 -1
  334. package/dist/dashboard/assets/live-KaG15HLQ.js.gz +0 -0
  335. package/dist/dashboard/assets/minimize-2-D-MN8W8a.js +0 -1
  336. package/dist/dashboard/assets/minimize-2-D-MN8W8a.js.gz +0 -0
  337. package/dist/dashboard/assets/mutation-JJGQm8TD.js.gz +0 -0
  338. package/dist/dashboard/assets/numbers-BNDZnsUE.js.gz +0 -0
  339. package/dist/dashboard/assets/query-keys-CLaNz8Xz.js.gz +0 -0
  340. package/dist/dashboard/assets/quota-DZGyp0N5.js +0 -1
  341. package/dist/dashboard/assets/quota-DZGyp0N5.js.gz +0 -0
  342. package/dist/dashboard/assets/routing-BEH32QOC.js +0 -1
  343. package/dist/dashboard/assets/routing-BEH32QOC.js.gz +0 -0
  344. package/dist/dashboard/assets/select-B3iTetHN.js.gz +0 -0
  345. package/dist/dashboard/assets/settings-Dt3Eqbnq.js +0 -1
  346. package/dist/dashboard/assets/settings-Dt3Eqbnq.js.gz +0 -0
  347. package/dist/dashboard/assets/stack-KrOrm7JZ.js.gz +0 -0
  348. package/dist/dashboard/assets/state-DLS7IDMy.js.gz +0 -0
  349. package/dist/dashboard/assets/switch-42ItvbAs.js.gz +0 -0
  350. package/dist/dashboard/assets/useMutation-Dmnfh1Ue.js.gz +0 -0
  351. /package/dist/dashboard/assets/{app-wvwCi4Eh.js → app-BayTTy01.js} +0 -0
  352. /package/dist/dashboard/assets/{app-wvwCi4Eh.js.gz → app-BayTTy01.js.gz} +0 -0
@@ -0,0 +1 @@
1
+ import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{l as i}from"./app-BayTTy01.js";import{n as a,t as o}from"./brain-Cwed_72z.js";import{C as s,E as c,O as l,T as u,_ as d,a as f,b as ee,c as p,d as te,f as m,l as h,m as ne,p as g,s as _,w as v,x as re}from"./numbers-CEagj6ZZ.js";import{t as y}from"./chevron-right-BXIy5l3h.js";import{t as ie}from"./circle-check-BU3v_mFW.js";import{t as b}from"./eye-C_hawfH4.js";import{r as ae,t as oe}from"./github-badge-CPK47xQx.js";import{n as se,r as ce,t as le}from"./state-CkfdYWel.js";import{t as ue}from"./key-round-UkavsGxp.js";import{n as de,r as fe,t as x}from"./clipboard-button-DJm-9pz7.js";import{t as S}from"./scaling-nWE4Cx8f.js";import{t as C}from"./wrench-B6E1oEuY.js";import{n as w,t as T}from"./card-ibRWU_uT.js";import{n as pe,t as me}from"./download-dRFo5_Wu.js";import{a as E,l as D,m as O,o as k,s as A}from"./tokens-COzario9.js";import{t as j}from"./stream-retry-5QnVuSSo.js";import{t as M}from"./switch-SYm237HG.js";var N=e(`chart-column`,[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`,key:`c24i48`}],[`path`,{d:`M18 17V9`,key:`2bz60n`}],[`path`,{d:`M13 17V5`,key:`1frdt8`}],[`path`,{d:`M8 17v-3`,key:`17ska0`}]]),P=t(n(),1),F=i();function I(e){if(e===`link_expired_or_used`)return`This enrollment link has expired or has already been used.`;if(e===`key_unavailable`)return`The shared access template is no longer available.`;if(e===`link_not_found`)return`This enrollment link is unavailable.`;if(e===`link_disabled`)return`This share link's API key is paused. Ask whoever shared this link to re-enable it.`;if(e===`link_expired`)return`This share link has expired.`;if(e===`link_revoked`)return`This share link's API key has been revoked, so the link can no longer be used. Ask whoever shared this link for a new one — a revoked key cannot be re-enabled.`}function L(e,t){let n=e.error;return I(typeof n==`string`?n:n?.code)??(typeof n==`string`?n:n?.message)??e.message??t}function R(e){let t=e.error;return(typeof t==`string`?t:t?.code)??null}function he(e,t){let n=t?.streamEvent,[r,i]=(0,P.useState)({data:null,error:null,code:null,loading:!0}),a=p();return(0,P.useEffect)(()=>{let t=!0,r=new AbortController,o,s,c=e=>{i({data:e,error:null,code:null,loading:!1})};if(n===void 0)return fetch(e,{signal:r.signal,credentials:`same-origin`,cache:`no-store`,referrerPolicy:`no-referrer`}).then(async e=>{let n=await e.json();if(t){if(!e.ok){i({data:null,error:L(n,`This enrollment link is unavailable.`),code:R(n),loading:!1});return}c(n)}}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||t&&i({data:null,error:`Unable to reach the Cartethyia gateway.`,code:null,loading:!1})}),()=>{t=!1,r.abort()};if(!a)return;let l=!1,u=()=>{if(!t)return;let r=new EventSource(e);o=r,r.addEventListener(n,e=>{if(t)try{c(JSON.parse(e.data))}catch{}}),r.addEventListener(`error`,()=>{r.close(),t&&(l||(l=!0,i(e=>e.data===null?{...e,loading:!1}:e)),s=setTimeout(u,j))})};return u(),()=>{t=!1,o?.close(),clearTimeout(s)}},[e,n,a]),r}var z=r(),B=`max-h-168 w-full min-w-0 overflow-x-auto overflow-y-auto touch-pan-x touch-pan-y [&_thead_th]:sticky [&_thead_th]:top-0 [&_thead_th]:z-card [&_thead_th]:bg-surface-2`,V=`w-full border-collapse text-caption [&_th]:border-b [&_th]:border-inner-border [&_th]:px-5 [&_th]:py-3 [&_th]:text-left [&_th]:font-mono [&_th]:text-micro [&_th]:font-bold [&_th]:uppercase [&_th]:tracking-label [&_th]:text-text-tertiary [&_td]:border-b [&_td]:border-surface-muted [&_td]:px-5 [&_td]:py-4 [&_td]:text-text-secondary [&_tr:last-child_td]:border-b-0 [&_code]:overflow-hidden [&_code]:text-ellipsis [&_code]:whitespace-nowrap`,H=(0,P.createContext)({data:null,loading:!0,unit:E,cycleUnit:()=>void 0}),U=`cartethyia:share-token-unit`;function ge(){try{let e=window.localStorage.getItem(U);if(e===null)return E;if(e===`auto`)return-1;let t=Number(e);return Number.isInteger(t)&&t>=0&&t<=E?t:E}catch{return E}}function W(e){return e===-1?0:e>=E?-1:e+1}function G(e){return e===-1?`auto`:e>=E?`raw`:k[e]?.suffix??`auto`}function _e({path:e,children:t}){let n=he(e,{streamEvent:`stats`}),[r,i]=(0,P.useState)(()=>typeof window>`u`?E:ge()),a=(0,P.useCallback)(()=>{i(e=>{let t=W(e);try{window.localStorage.setItem(U,t===-1?`auto`:String(t))}catch{}return t})},[]);return(0,z.jsx)(H.Provider,{value:{data:n.data,loading:n.loading,unit:r,cycleUnit:a},children:t})}function K(){let{unit:e,cycleUnit:t}=(0,P.useContext)(H),n=G(e),r=G(W(e));return(0,z.jsxs)(`button`,{type:`button`,className:`ml-auto inline-flex min-h-6 items-center gap-1 rounded-chip border border-inner-border bg-surface-2 px-2 text-text-secondary font-mono text-micro font-bold uppercase tracking-[0.04em] cursor-pointer hover:border-accent hover:text-text-primary`,"aria-label":`Token unit: currently ${n}, switch to ${r}`,title:`Show ${r}`,onClick:t,children:[(0,z.jsx)(S,{size:11,"aria-hidden":`true`}),n]})}function ve({policy:e}){let{data:t}=(0,P.useContext)(H);return(0,z.jsx)(be,{policy:e,stats:t})}function ye(){let{data:e,loading:t}=(0,P.useContext)(H);return(0,z.jsx)(Ce,{stats:e,loading:t})}function q(){let{unit:e}=(0,P.useContext)(H);return(0,P.useCallback)(t=>O(t,e),[e])}function J(e){return Number.isFinite(e)?Math.max(0,Math.round(e)).toLocaleString():`—`}function Y(e){return e===null||!Number.isFinite(e)||e<=0?`—`:`${Number(e.toFixed(1))} t/s`}function X(e){return e===null||!Number.isFinite(e)||e<=0?`—`:e>=1e3?`${Number((e/1e3).toFixed(1))}s`:`${Math.round(e)}ms`}function Z(e){if(!e)return`—`;let t=new Date(e).getTime();if(!Number.isFinite(t))return`—`;let n=Math.max(0,Math.round((Date.now()-t)/1e3));if(n<60)return`just now`;let r=Math.round(n/60);if(r<60)return`${r} min ago`;let i=Math.round(r/60);return i<24?`${i} h ago`:new Date(e).toLocaleDateString()}function Q(e){let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:00`}function be({policy:e,stats:t}){let n=q(),r=[{label:`Lifetime`,used:t?.totals?.totalTokens??0,limit:e.oneTimeLimit},{label:`Daily`,used:t?.totals?.todayTokens??0,limit:e.dailyLimit},{label:`Monthly`,used:t?.totals?.monthTokens??0,limit:e.monthlyLimit}],i=t?.recipients;return(0,z.jsxs)(`div`,{className:`mt-5 flex flex-col gap-6 border-t border-inner-border pt-9`,children:[r.map(e=>{let t=e.limit!==null&&e.limit>0,r=t?Math.min(1,e.used/e.limit):1;return(0,z.jsxs)(`div`,{className:`flex items-center gap-6 max-sm:flex-col max-sm:items-stretch max-sm:gap-3`,children:[(0,z.jsx)(`span`,{className:`w-39 shrink-0 text-text-secondary font-mono text-micro uppercase tracking-label max-sm:w-auto`,children:e.label}),(0,z.jsx)(`div`,{className:`relative h-4 flex-1 overflow-hidden rounded-tiny bg-teal max-sm:flex-none`,title:t?`${n(e.used)} of ${n(e.limit)} used`:`${n(e.used)} used (no limit set)`,children:t?(0,z.jsx)(`div`,{className:`h-full rounded-tiny bg-red transition-[width] duration-200`,style:{width:`${Math.round(r*100)}%`}}):null}),(0,z.jsxs)(`span`,{className:`whitespace-nowrap text-text-secondary font-mono text-micro [&>strong]:text-text-primary [&>strong]:font-semibold max-sm:self-start`,children:[(0,z.jsx)(`strong`,{children:n(e.used)}),t?` / ${n(e.limit)}`:` used`]})]},e.label)}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,z.jsxs)(`span`,{className:`inline-flex min-h-14 items-center gap-3.5 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-text-secondary font-mono text-badge leading-[1.3]`,children:[`RPM `,e.requestsPerMinute??`unlimited`]}),(0,z.jsxs)(`span`,{className:`inline-flex min-h-14 items-center gap-3.5 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-text-secondary font-mono text-badge leading-[1.3]`,children:[`Concurrent `,e.maxConcurrentRequests??`unlimited`]}),i?(0,z.jsxs)(`span`,{className:`inline-flex min-h-14 items-center gap-3.5 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-text-secondary font-mono text-badge leading-[1.3]`,children:[i.active,` / `,i.total,` recipients active`]}):null,(0,z.jsx)(K,{})]})]})}function xe({hourly:e}){let t=q(),n=Math.max(1,...e.map(e=>e.requests)),r=e.length*10,[i,a]=(0,P.useState)(null),o=(t,n)=>{let r=t.getBoundingClientRect();if(r.width===0||e.length===0)return null;let i=Math.floor((n-r.left)/r.width*e.length);return i>=0&&i<e.length?i:null},s=i===null?void 0:e[i];return(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`div`,{className:`mb-2 flex min-h-9 items-baseline gap-4 text-text-tertiary font-mono text-badge [&>strong]:text-text-primary [&>strong]:font-head [&>strong]:text-body-lg [&>strong]:font-semibold`,"aria-live":`polite`,children:s?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`strong`,{children:t(s.tokens)}),(0,z.jsxs)(`span`,{children:[Q(s.hour),` · `,J(s.requests),` req`]})]}):(0,z.jsx)(`span`,{children:`drag a bar`})}),(0,z.jsx)(`div`,{className:`cursor-crosshair touch-none`,onPointerEnter:e=>a(o(e.currentTarget,e.clientX)),onPointerMove:e=>a(o(e.currentTarget,e.clientX)),onPointerLeave:()=>a(null),children:(0,z.jsx)(`svg`,{className:`h-22 w-full`,viewBox:`0 0 ${r} 44`,preserveAspectRatio:`none`,role:`img`,"aria-label":`Requests per hour over the last 24 hours`,children:e.map((e,r)=>{let a=Math.round(e.requests/n*40);return(0,z.jsx)(`rect`,{className:`${e.requests===0?`fill-track`:`fill-teal`}${r===i?` fill-text-primary`:``}`,x:r*10+1,y:44-Math.max(2,a),width:7,height:Math.max(2,a),rx:1.5,children:(0,z.jsx)(`title`,{children:`${t(e.tokens)} tokens · ${J(e.requests)} requests`})},e.hour)})})}),(0,z.jsxs)(`div`,{className:`mt-1.5 flex justify-between text-text-tertiary font-mono text-micro`,children:[(0,z.jsx)(`span`,{children:e.length?Q(e[0].hour):``}),(0,z.jsx)(`span`,{children:`last 24h`}),(0,z.jsx)(`span`,{children:e.length?Q(e[e.length-1].hour):``})]})]})}function Se({value:e,max:t,label:n}){let r=t>0?Math.min(1,e/t):0;return(0,z.jsxs)(`div`,{className:`flex min-w-55 items-center gap-4 max-sm:min-w-32`,children:[(0,z.jsx)(`div`,{className:`h-3 min-w-0 flex-1 overflow-hidden rounded-tiny bg-surface-muted`,children:(0,z.jsx)(`div`,{className:`h-full rounded-tiny bg-teal`,style:{width:`${Math.round(r*100)}%`}})}),(0,z.jsx)(`span`,{className:`min-w-8 text-right font-mono text-micro text-text-secondary`,children:n})]})}function Ce({stats:e,loading:t}){let[n,r]=(0,P.useState)(!1),[i,a]=(0,P.useState)(!1),o=q(),s=e?.totals,c=e?.models??[],l=e?.clientIps??[],u=i?l:l.filter(e=>e.active),d=Math.max(1,...c.map(e=>e.tokens)),f=Math.max(1,...u.map(e=>e.requests));return(0,z.jsxs)(T,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg p-5 backdrop-blur-md backdrop-saturate-150`,children:[(0,z.jsxs)(`button`,{type:`button`,className:`group flex w-full cursor-pointer items-center gap-3 bg-transparent p-0 text-left`,"aria-expanded":n,onClick:()=>r(e=>!e),children:[(0,z.jsx)(y,{size:14,className:`shrink-0 text-text-secondary transition-transform duration-200${n?` rotate-90`:``}`,"aria-hidden":`true`}),(0,z.jsx)(`span`,{className:`text-text-secondary font-mono text-badge font-bold tracking-label transition-colors duration-150 group-hover:text-text-primary`,children:`STATS & ACTIVITY`}),(0,z.jsxs)(`span`,{className:`ml-auto flex flex-wrap items-center gap-2 text-text-tertiary font-mono text-micro max-medium:hidden`,children:[(0,z.jsxs)(`span`,{children:[l.length,` IPs`]}),(0,z.jsx)(`span`,{children:`·`}),(0,z.jsxs)(`span`,{children:[c.length,` models`]}),(0,z.jsx)(`span`,{children:`·`}),(0,z.jsxs)(`span`,{children:[J(s?.requests??0),` req`]})]})]}),n?(0,z.jsx)(`div`,{className:`mt-5 flex flex-col gap-5`,children:t&&!e?(0,z.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`Loading activity…`}):e?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`div`,{className:`grid grid-cols-4 gap-5 max-wide:grid-cols-2 max-narrow:grid-cols-1`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,z.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Requests`}),(0,z.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:J(s?.requests??0)}),(0,z.jsxs)(`span`,{className:`text-text-secondary text-micro`,children:[J(s?.errors??0),` errors`]})]}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,z.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Tokens`}),(0,z.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:o(s?.totalTokens??0)}),(0,z.jsx)(`span`,{className:`text-text-secondary text-micro`,children:`all time`})]}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,z.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Last hour`}),(0,z.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:J(s?.lastHourRequests??0)}),(0,z.jsx)(`span`,{className:`text-text-secondary text-micro`,children:`requests in 60 min`})]}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-panel border border-inner-border bg-surface-2 px-7 py-6`,children:[(0,z.jsx)(`span`,{className:`text-text-tertiary font-mono text-micro uppercase tracking-label`,children:`Models`}),(0,z.jsx)(`span`,{className:`font-head text-display font-semibold tracking-tight`,children:c.length}),(0,z.jsx)(`span`,{className:`text-text-secondary text-micro`,children:`in use`})]})]}),(0,z.jsx)(xe,{hourly:e.hourly}),(0,z.jsxs)(`section`,{"aria-label":`Top models`,children:[(0,z.jsx)(`div`,{className:`flex items-center justify-between gap-6`,children:(0,z.jsxs)(`h3`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-badge font-bold tracking-label transition-colors duration-150`,children:[(0,z.jsx)(N,{size:13,"aria-hidden":`true`}),` TOP MODELS`]})}),c.length===0?(0,z.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`No model traffic yet.`}):(0,z.jsx)(`div`,{className:B,children:(0,z.jsxs)(`table`,{className:V,children:[(0,z.jsx)(`thead`,{children:(0,z.jsxs)(`tr`,{children:[(0,z.jsx)(`th`,{scope:`col`,"aria-label":`Rank`}),(0,z.jsx)(`th`,{scope:`col`,children:`Model`}),(0,z.jsx)(`th`,{scope:`col`,className:`text-right`,children:`Req`}),(0,z.jsx)(`th`,{scope:`col`,className:`text-right`,title:`Average output tokens per second`,children:`Avg t/s`}),(0,z.jsx)(`th`,{scope:`col`,className:`text-right`,title:`Average time to first token`,children:`TTFT`}),(0,z.jsx)(`th`,{scope:`col`,children:`Tokens`})]})}),(0,z.jsx)(`tbody`,{children:c.map((e,t)=>(0,z.jsxs)(`tr`,{children:[(0,z.jsx)(`td`,{className:`w-13 font-mono text-micro text-text-tertiary`,children:t+1}),(0,z.jsx)(`td`,{children:(0,z.jsx)(`span`,{className:`flex min-w-0 flex-col gap-1 [&_code]:overflow-hidden [&_code]:text-ellipsis [&_code]:whitespace-nowrap [&_code]:text-text-primary [&_code]:text-caption [&_span]:font-mono [&_span]:text-micro [&_span]:text-text-tertiary`,children:(0,z.jsx)(`code`,{title:e.modelId,children:e.modelId})})}),(0,z.jsx)(`td`,{className:`text-right`,children:J(e.requests)}),(0,z.jsx)(`td`,{className:`text-right`,children:Y(e.avgTokensPerSec)}),(0,z.jsx)(`td`,{className:`text-right`,children:X(e.avgTtfbMs)}),(0,z.jsx)(`td`,{children:(0,z.jsx)(Se,{value:e.tokens,max:d,label:o(e.tokens)})})]},e.modelId))})]})})]}),(0,z.jsxs)(`section`,{"aria-label":`Client IPs`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-6`,children:[(0,z.jsxs)(`h3`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-badge font-bold tracking-label transition-colors duration-150`,children:[(0,z.jsx)(v,{size:13,"aria-hidden":`true`}),` CLIENT IPS`]}),(0,z.jsx)(M,{checked:i,onChange:a,label:`Show inactive`,"aria-label":`Show inactive client addresses`,className:`shrink-0`})]}),u.length===0?(0,z.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`No client addresses recorded yet.`}):(0,z.jsx)(`div`,{className:B,children:(0,z.jsxs)(`table`,{className:V,children:[(0,z.jsx)(`thead`,{children:(0,z.jsxs)(`tr`,{children:[(0,z.jsx)(`th`,{scope:`col`,children:`Address`}),(0,z.jsx)(`th`,{scope:`col`,children:`Client`}),(0,z.jsx)(`th`,{scope:`col`,className:`text-right`,children:`Req`}),(0,z.jsx)(`th`,{scope:`col`,children:`Tokens`}),(0,z.jsx)(`th`,{scope:`col`,children:`Last seen`}),(0,z.jsx)(`th`,{scope:`col`,children:`Status`})]})}),(0,z.jsx)(`tbody`,{children:u.map(e=>(0,z.jsxs)(`tr`,{children:[(0,z.jsx)(`td`,{children:(0,z.jsx)(`code`,{children:e.ip})}),(0,z.jsx)(`td`,{children:e.clientType?(0,z.jsx)(`span`,{className:`inline-block max-w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-pill border border-inner-border bg-surface-2 px-3 py-px font-mono text-micro text-text-secondary`,children:e.clientType}):(0,z.jsx)(`span`,{className:`inline-block max-w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-pill border border-inner-border bg-surface-2 px-3 py-px font-mono text-micro italic text-text-tertiary`,children:`unknown`})}),(0,z.jsx)(`td`,{className:`text-right`,children:J(e.requests)}),(0,z.jsx)(`td`,{children:(0,z.jsx)(Se,{value:e.requests,max:f,label:o(e.tokens)})}),(0,z.jsx)(`td`,{children:Z(e.lastSeenAt)}),(0,z.jsx)(`td`,{children:e.active?(0,z.jsx)(`span`,{className:`inline-block whitespace-nowrap rounded-pill border border-inner-border bg-surface-2 px-3 py-px font-mono text-micro text-text-secondary`,title:`Made a request in the last 24 hours`,children:`Active`}):(0,z.jsx)(`span`,{className:`inline-block whitespace-nowrap rounded-pill border border-inner-border bg-surface-2 px-3 py-px font-mono text-micro italic text-text-tertiary`,title:`No request in the last 24 hours`,children:`Inactive`})})]},e.ip))})]})})]})]}):(0,z.jsx)(`p`,{className:`py-9 text-center text-text-tertiary text-caption`,children:`Activity is unavailable right now.`})}):null]})}var we=`cartethyia-share-keys`,$=`issued-keys`,Te=1;function Ee(){return new Promise((e,t)=>{if(typeof indexedDB>`u`){t(Error(`IndexedDB is unavailable`));return}let n=indexedDB.open(we,Te);n.onupgradeneeded=()=>{n.result.objectStoreNames.contains($)||n.result.createObjectStore($)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error??Error(`Could not open share-key storage`))})}function De(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.key==`string`&&typeof t.keyId==`string`&&typeof t.keyPrefix==`string`&&typeof t.createdAt==`string`}async function Oe(e){let t=await Ee();return await new Promise((n,r)=>{let i=t.transaction($,`readonly`).objectStore($).get(e);i.onsuccess=()=>n(De(i.result)?i.result:null),i.onerror=()=>r(i.error??Error(`Could not read share-key storage`))})}async function ke(e,t){let n=await Ee();await new Promise((r,i)=>{let a=n.transaction($,`readwrite`);a.objectStore($).put(t,e),a.oncomplete=()=>r(),a.onerror=()=>i(a.error??Error(`Could not save share key in this browser`)),a.onabort=()=>i(a.error??Error(`Could not save share key in this browser`))})}async function Ae(e){let t=await Ee();await new Promise((n,r)=>{let i=t.transaction($,`readwrite`);i.objectStore($).delete(e),i.oncomplete=()=>n(),i.onerror=()=>r(i.error??Error(`Could not clear share-key storage`)),i.onabort=()=>r(i.error??Error(`Could not clear share-key storage`))})}function je(e){return typeof e.error==`string`?e.error:e.error?.message??e.message??`Unable to generate an API key.`}var Me={link_revoked:`Key revoked`,link_expired:`Link expired`,link_disabled:`Key paused`,link_not_found:`Link not available`,link_expired_or_used:`Link expired`,key_unavailable:`Key unavailable`};function Ne(e){let t=e.replace(/\/$/,``);return t.slice(t.lastIndexOf(`/`)+1)}var Pe=20;function Fe({id:e,label:t,info:n,canProbe:r,probing:i,onProbe:s,result:c}){let l=(n?.capabilities?.input??[]).some(e=>e===`image`||e===`vision`);return(0,z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2.5 rounded-control border border-inner-border bg-surface-2 p-3`,children:[(0,z.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,z.jsx)(`span`,{className:`inline-flex size-13 shrink-0 items-center justify-center rounded-lg bg-teal-soft text-teal`,"aria-hidden":`true`,children:(0,z.jsx)(a,{size:14})}),(0,z.jsx)(`span`,{className:`min-w-0 flex-1 overflow-hidden text-ellipsis whitespace-nowrap font-mono text-caption font-semibold leading-chat text-text-primary`,title:e,children:t})]}),(0,z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-text-secondary text-badge`,children:[(0,z.jsxs)(`span`,{className:`inline-flex gap-1 [&>span]:inline-flex`,children:[n?.reasoning?(0,z.jsx)(`span`,{title:`Reasoning`,"aria-label":`Reasoning`,className:`text-purple`,children:(0,z.jsx)(o,{size:12})}):null,l?(0,z.jsx)(`span`,{title:`Vision`,"aria-label":`Vision`,className:`text-status-info`,children:(0,z.jsx)(b,{size:12})}):null,n?.toolCall?(0,z.jsx)(`span`,{title:`Tool calling`,"aria-label":`Tool calling`,className:`text-orange`,children:(0,z.jsx)(C,{size:12})}):null,n?.webSearch?(0,z.jsx)(`span`,{title:`Web search`,"aria-label":`Web search`,className:`text-teal`,children:(0,z.jsx)(v,{size:12})}):null]}),(0,z.jsxs)(`span`,{className:`min-w-0 overflow-hidden text-ellipsis whitespace-nowrap`,children:[n?.contextLength==null?(0,z.jsx)(`span`,{title:A,className:`cursor-help`,children:`n/a ctx`}):`${D(n.contextLength)} ctx`,` · `,n?.maxOutputTokens==null?(0,z.jsx)(`span`,{title:A,className:`cursor-help`,children:`n/a out`}):`${D(n.maxOutputTokens)} out`]})]}),c?.ok?(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 font-mono text-badge text-text-secondary [&>strong]:font-sans [&>strong]:text-green`,role:`status`,children:[(0,z.jsx)(`strong`,{children:`OK`}),(0,z.jsxs)(`span`,{children:[`TTFT `,f(c.ttftMs)]}),(0,z.jsxs)(`span`,{children:[`Done `,f(c.totalMs)]})]}):null,(0,z.jsxs)(`div`,{className:`mt-auto grid min-w-0 grid-cols-2 items-center gap-4 [&>*]:w-full [&>*]:min-w-0 [&_.btn]:w-full [&_.btn]:min-w-0`,children:[r?(0,z.jsx)(h,{variant:`secondary`,size:`sm`,icon:c?.ok?(0,z.jsx)(`span`,{className:`inline-flex text-green`,children:(0,z.jsx)(ie,{size:13})}):(0,z.jsx)(u,{size:13}),loading:i,disabled:i,onClick:()=>s(e),title:c?.ok?`Last test passed in ${f(c.totalMs)} — click to re-test`:c?`Last test failed${c.status===null?``:` with HTTP ${c.status}`} — click to re-test`:`Test this model using the shared API key`,children:i?`Testing…`:c?.ok?`Done ${f(c.totalMs)}`:c?`Failed${c.status===null?``:` ${c.status}`}`:`Test`}):null,(0,z.jsx)(x,{value:e,size:`sm`,variant:`secondary`,label:`Copy`,copiedLabel:`Copied`,"aria-label":`Copy ${e}`,title:`Copy ${e}`})]})]})}function Ie(){let e=typeof window>`u`?`/share`:window.location.pathname.replace(/\/$/,``),t=`${e}/data`,n=`${e}/issue`,r=typeof window>`u`?``:Ne(e),i=typeof window>`u`?``:window.location.origin,o=he(t),[u,d]=(0,P.useState)(null),[f,p]=(0,P.useState)(null),[y,ie]=(0,P.useState)(``),[b,S]=(0,P.useState)(null),[C,E]=(0,P.useState)(!1),[D,O]=(0,P.useState)(null),[k,A]=(0,P.useState)(()=>new Set),[j,M]=(0,P.useState)(()=>new Map),N=(0,P.useRef)(new Map),F=(0,P.useRef)(null),[I,L]=(0,P.useState)(()=>g(`dark`)),[R,B]=(0,P.useState)(!1),[V,H]=(0,P.useState)(`raw`);(0,P.useEffect)(()=>{let e=()=>B(window.scrollY>24);return e(),window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[]),(0,P.useEffect)(()=>{document.title=`Cartethyia — Shared access`,L(g(`dark`)),te(g(`dark`))},[]);let U=o.data?.kind===`enroll`?o.data:null;(0,P.useEffect)(()=>{let e=!0;if(d(null),p(null),S(null),!r||!U){o.error&&Ae(r).catch(()=>void 0);return}return Oe(r).then(t=>{e&&t&&(p(t),d(null))}).catch(()=>{e&&S(`This browser could not read the stored key. Issue a new key only if this enrollment permits one.`)}),()=>{e=!1}},[r,U,o.error]);let ge=async()=>{E(!0),O(null),S(null);try{let e=await fetch(n,{method:`POST`,credentials:`same-origin`,cache:`no-store`,referrerPolicy:`no-referrer`,headers:{"content-type":`application/json`},body:JSON.stringify(y.trim()?{nameHint:y.trim().slice(0,Pe)}:{})}),t=await e.json();if(!e.ok){O(je(t));return}let i=t;if(p(null),d(i),!r)return;try{await ke(r,{key:i.key,keyId:i.keyId,keyPrefix:i.keyPrefix,createdAt:i.createdAt}),p({key:i.key,keyId:i.keyId,keyPrefix:i.keyPrefix,createdAt:i.createdAt}),d(null)}catch{S(`Your key was issued, but this browser could not save it. Copy it now: refreshing will not restore it.`)}}catch{O(`Unable to reach the Cartethyia gateway. Please try again.`)}finally{E(!1)}},W=f??u,G=o.data,K=G?.kind===`handoff`?!!G.key:!!W?.key,q=()=>{let e=F.current;e&&(e.scrollIntoView({behavior:`smooth`,block:`center`}),e.focus({preventScroll:!0}))},J=async e=>{let t=G?.kind===`handoff`?G.key:(f??u)?.key;if(k.has(e))return;if(!t){_.error(`Create your API key first`,`Generate a key in the API key panel before testing a model.`),q();return}let n=new AbortController;N.current.set(e,n),A(t=>new Set(t).add(e));let r=performance.now(),a=null;try{let o=await fetch(`${i}/v1/chat/completions`,{method:`POST`,headers:{Authorization:`Bearer ${t}`,"Content-Type":`application/json`,Accept:`text/event-stream`},body:JSON.stringify({model:e,messages:[{role:`user`,content:`Reply with exactly: OK`}],stream:!0,max_tokens:16}),cache:`no-store`,referrerPolicy:`no-referrer`,signal:n.signal});if(!o.ok||!o.body){M(t=>new Map(t).set(e,{ok:!1,status:o.status})),_.error(`Model probe failed`,`Request failed with HTTP ${o.status}`);return}let s=o.body.getReader();try{for(;;){let e=await s.read();if(e.value&&e.value.byteLength>0&&a===null&&(a=performance.now()),e.done)break}}finally{s.releaseLock()}let c=Math.round(performance.now()-r),l=Math.round((a??performance.now())-r);M(t=>new Map(t).set(e,{ok:!0,ttftMs:l,totalMs:c})),_.success(`Model test complete`,`${e} · TTFT ${l} ms · Done ${c} ms`)}catch(t){t instanceof DOMException&&t.name===`AbortError`||(M(t=>new Map(t).set(e,{ok:!1,status:null})),_.error(`Model probe failed`,t instanceof Error?t.message:`The request could not be completed.`))}finally{N.current.get(e)===n&&N.current.delete(e),A(t=>{let n=new Set(t);return n.delete(e),n})}};(0,P.useEffect)(()=>()=>{for(let e of N.current.values())e.abort()},[]);let Y=!!U?.canIssue&&!W,X=G?.kind===`handoff`?G.key:null,Z=new Map;for(let e of G?.models??[]){let t=e.indexOf(`/`),n=t>0?e.slice(0,t):`Other`,r=Z.get(n)??[];r.push(e),Z.set(n,r)}return(0,z.jsx)(_e,{path:`${e}/stats/stream`,children:(0,z.jsxs)(`div`,{className:`min-h-screen text-text-primary font-sans`,children:[(0,z.jsx)(`div`,{className:`share-backdrop`,"aria-hidden":`true`}),(0,z.jsx)(`header`,{className:`share-header`,"data-scrolled":R,children:(0,z.jsxs)(`div`,{className:`share-header-inner`,"data-scrolled":R,children:[(0,z.jsxs)(`a`,{className:`inline-flex items-center gap-5 font-head text-lead tracking-tight text-text-primary no-underline`,href:`/`,children:[(0,z.jsx)(`span`,{className:`grid size-17 place-items-center overflow-hidden rounded-control border border-inner-border bg-accent-soft text-accent`,"aria-hidden":`true`,children:(0,z.jsx)(`img`,{className:`block size-full object-cover`,src:`/assets/brand/favicon.jpg`,alt:``,width:34,height:34})}),(0,z.jsx)(`b`,{children:`Cartethyia`})]}),(0,z.jsxs)(`div`,{className:`inline-flex items-center gap-4 max-narrow:gap-3`,children:[(0,z.jsx)(oe,{className:`max-narrow:[&_.github-badge-metric]:hidden max-narrow:[&_.github-badge]:px-2.5`}),(0,z.jsx)(`button`,{type:`button`,className:`grid size-17 cursor-pointer place-items-center rounded-pill border border-inner-border bg-surface-2 text-text-secondary hover:border-border-strong hover:text-text-primary focus-visible:outline-2 focus-visible:outline-focus-ring focus-visible:outline-offset-2`,onClick:()=>{let e=m(I)?`light`:`dark`;L(e),ne(e)},"aria-label":`Toggle theme`,"aria-pressed":m(I),title:m(I)?`Switch to light mode`:`Switch to dark mode`,children:m(I)?(0,z.jsx)(ee,{size:15}):(0,z.jsx)(re,{size:15})}),(0,z.jsxs)(`a`,{href:`/`,className:`inline-flex min-h-17 items-center gap-3 rounded-pill border border-inner-border bg-surface-2 px-6 text-badge font-semibold text-text-secondary no-underline hover:border-border-strong hover:text-text-primary max-narrow:px-5`,children:[(0,z.jsx)(ae,{size:13,"aria-hidden":`true`}),` Home`]})]})]})}),(0,z.jsx)(`main`,{className:`relative z-1 mx-auto flex w-full max-w-480 flex-col gap-8 px-12 pb-24 pt-40 max-narrow:gap-6 max-narrow:px-6 max-narrow:pb-16 max-narrow:pt-36`,children:o.loading?(0,z.jsx)(T,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:(0,z.jsx)(w,{children:(0,z.jsx)(ce,{label:`Loading enrollment policy…`})})}):o.error?(0,z.jsx)(T,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:(0,z.jsx)(w,{children:(0,z.jsx)(se,{title:Me[o.code??``]??`Link not available`,message:o.error,onRetry:()=>window.location.reload()})})}):G?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(T,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-7 max-sm:p-5`,children:[(0,z.jsxs)(`p`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[G.kind===`handoff`?(0,z.jsx)(ue,{size:13,"aria-hidden":`true`}):(0,z.jsx)(fe,{size:13,"aria-hidden":`true`}),G.kind===`handoff`?`SHARED ACCESS / KEY`:`SHARED ACCESS / ENROLLMENT`]}),(0,z.jsx)(`h1`,{children:G.name||`Shared API access`}),G.kind===`handoff`?(0,z.jsx)(`p`,{className:`mt-2.5 text-text-secondary text-body leading-loose`,children:`The API key for this gateway, provided through a share link. It is subject to the limits below.`}):null,(0,z.jsx)(`div`,{className:`mt-5 flex flex-wrap items-center gap-2`,children:G.expiresAt?(0,z.jsxs)(`span`,{className:`inline-flex min-h-7 items-center gap-1.5 rounded-chip border border-inner-border bg-surface-2 px-2.5 py-1 text-text-secondary font-mono text-micro leading-snug`,children:[(0,z.jsx)(l,{size:12,"aria-hidden":`true`}),`Link expires `,new Date(G.expiresAt).toLocaleString()]}):null}),(0,z.jsx)(ve,{policy:G})]}),(0,z.jsxs)(`div`,{className:`grid grid-cols-2 gap-8 max-md:grid-cols-1`,children:[(0,z.jsxs)(T,{surface:`muted`,className:`flex min-w-0 flex-col items-start gap-6 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,z.jsxs)(`h2`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,z.jsx)(v,{size:13,"aria-hidden":`true`}),` BASE URL`]}),(0,z.jsxs)(`div`,{className:`flex w-full min-w-0 items-center gap-4 [&>code]:block [&>code]:min-w-0 [&>code]:flex-1 [&>code]:overflow-hidden [&>code]:text-ellipsis [&>code]:whitespace-nowrap [&>code]:rounded-inset [&>code]:border [&>code]:border-inner-border [&>code]:bg-code-surface [&>code]:p-5 [&>code]:text-text-primary [&>code]:font-mono [&>code]:text-caption [&>code]:leading-normal [&>button]:shrink-0`,children:[(0,z.jsxs)(`code`,{children:[i,`/v1`]}),(0,z.jsx)(x,{value:`${i}/v1`,size:`sm`,variant:`secondary`,label:`Copy URL`,copiedLabel:`Copied`,"aria-label":`Copy Base URL`})]}),(0,z.jsx)(`p`,{className:`text-caption leading-loose text-text-secondary`,children:`Point your SDK, Opencode, Claude Code, Droid, and any other CLI`})]}),(0,z.jsx)(`div`,{ref:F,tabIndex:-1,children:(0,z.jsxs)(T,{surface:`muted`,className:`flex min-w-0 flex-col items-start gap-6 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,z.jsxs)(`h2`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,z.jsx)(ue,{size:13,"aria-hidden":`true`}),` YOUR API KEY`]}),G.kind===`handoff`?X?(0,z.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-5`,role:`status`,children:[(0,z.jsx)(`p`,{className:`font-mono text-micro font-bold tracking-label text-orange`,children:`REVEALED BY THE LINK OWNER`}),(0,z.jsx)(`code`,{className:`block min-w-0 flex-1 overflow-hidden rounded-inset border border-inner-border bg-code-surface p-5 font-mono text-caption leading-normal text-text-primary [overflow-wrap:anywhere] [user-select:all]`,children:X}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-5 [&>span]:font-mono [&>span]:text-micro [&>span]:text-text-tertiary`,children:[(0,z.jsx)(x,{value:X,size:`sm`,variant:`primary`,label:`Copy key`,copiedLabel:`Copied`}),(0,z.jsx)(h,{variant:`secondary`,size:`sm`,onClick:()=>pe(`cartethyia-api-key.txt`,`Cartethyia API key\n\n${X}\n\nKeep this secret.\n`,`text/plain;charset=utf-8`),children:`Save this key`}),(0,z.jsxs)(`span`,{children:[`Prefix `,G.keyPrefix??`—`]})]}),(0,z.jsx)(`p`,{className:`text-caption leading-loose text-text-secondary`,children:`This link reveals the key itself, so anyone holding the URL can read it. Keep the URL private; the link owner regenerates it to replace this key.`})]}):(0,z.jsx)(`p`,{className:`text-caption leading-normal text-text-secondary`,children:`This link can no longer reveal its key. Ask the link owner to regenerate it.`}):W?(0,z.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col gap-5`,role:`status`,children:[(0,z.jsx)(`p`,{className:`font-mono text-micro font-bold tracking-wide text-orange`,children:`GENERATED ONCE · COPY AND KEEP IT`}),(0,z.jsx)(`code`,{className:`block min-w-0 flex-1 overflow-hidden rounded-inset border border-inner-border bg-code-surface p-5 font-mono text-caption leading-normal text-text-primary [overflow-wrap:anywhere] [user-select:all]`,children:W.key}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-5 [&>span]:font-mono [&>span]:text-micro [&>span]:text-text-tertiary`,children:[(0,z.jsx)(x,{value:W.key,size:`sm`,variant:`primary`,label:`Copy key`,copiedLabel:`Copied`}),(0,z.jsx)(h,{variant:`secondary`,size:`sm`,onClick:()=>pe(`cartethyia-api-key.txt`,`Cartethyia API key\n\n${W.key}\n\nKeep this secret.\n`,`text/plain;charset=utf-8`),children:`Save this key`}),(0,z.jsxs)(`span`,{children:[`Key ID `,W.keyId.slice(0,12),`…`]})]}),(0,z.jsx)(`p`,{className:`text-caption leading-loose text-text-secondary`,children:`Saved in this browser while this enrollment link remains valid. It is not shown again from another browser, and an expired, revoked, or unavailable link does not restore a local copy.`})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`p`,{className:`text-caption leading-normal text-text-secondary`,children:Y?`Issue a personal key to use the shared endpoint.`:`No key is available in this browser.`}),Y?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`label`,{className:`flex w-full flex-col gap-1.5 text-text-secondary text-micro font-bold [&>input]:w-full [&>input]:min-h-11 [&>input]:rounded-control [&>input]:border [&>input]:border-inner-border [&>input]:bg-surface-1 [&>input]:px-3 [&>input]:text-text-primary [&>input]:text-body [&>input]:font-medium [&>input]:focus-visible:outline-2 [&>input]:focus-visible:outline-focus-ring [&>input]:focus-visible:outline-offset-2`,children:[(0,z.jsx)(`span`,{children:`Your name`}),(0,z.jsx)(`input`,{type:`text`,value:y,required:!0,maxLength:Pe,autoComplete:`nickname`,onChange:e=>ie(e.target.value)}),(0,z.jsx)(`span`,{className:`text-text-tertiary text-micro font-normal leading-normal`,children:`Shown on your key (best kept to ~5 letters) — the gateway appends its own code.`})]}),(0,z.jsx)(`p`,{className:`-mt-3 text-text-tertiary text-micro font-normal leading-normal`,children:`Enter your name to generate a personal key.`}),(0,z.jsx)(h,{variant:`primary`,size:`sm`,loading:C,disabled:C||!y.trim(),onClick:()=>void ge(),children:C?`Generating…`:`Generate API Key`})]}):null]}),G.kind===`enroll`&&!Y&&!W?(0,z.jsx)(`p`,{role:`status`,className:`w-full rounded-inset border border-orange-soft bg-orange-soft px-5 py-4 text-badge leading-normal text-orange`,children:D??`This enrollment link is not currently accepting key requests.`}):null,D&&Y?(0,z.jsx)(`p`,{role:`alert`,className:`form-error`,children:D}):null,b?(0,z.jsx)(`p`,{role:`alert`,className:`form-error`,children:b}):null]})})]}),G.sharePopup.enabled&&G.sharePopup.hasImage?(0,z.jsx)(T,{surface:`muted`,className:`min-w-0 overflow-hidden border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150`,children:(0,z.jsxs)(`div`,{className:`grid grid-cols-qris gap-0 max-sm:grid-cols-qris-compact`,children:[(0,z.jsx)(`div`,{className:`relative flex items-center justify-center bg-white p-4`,children:(0,z.jsx)(`img`,{src:`/share/`+r+`/popup-image`,alt:G.sharePopup.title??`Support QR code`,className:`block w-full max-w-qris-badge rounded-control`})}),(0,z.jsxs)(`div`,{className:`flex flex-col justify-center gap-5 p-6 max-sm:p-4 max-sm:gap-3`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`p`,{className:`inline-flex items-center gap-2 text-text-tertiary font-mono text-micro font-bold tracking-label leading-normal mb-3`,children:[(0,z.jsx)(s,{size:12,"aria-hidden":`true`,className:`text-orange`}),` SUPPORT`]}),G.sharePopup.title?(0,z.jsx)(`h2`,{className:`font-head text-title font-semibold leading-snug wrap-anywhere max-sm:text-lead`,children:G.sharePopup.title}):null,G.sharePopup.body?(0,z.jsx)(`p`,{className:`mt-2 text-body leading-loose whitespace-pre-wrap text-text-secondary wrap-anywhere max-sm:text-caption max-sm:leading-normal`,children:G.sharePopup.body}):null]}),(0,z.jsx)(`div`,{className:`flex flex-wrap gap-3`,children:(0,z.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-2 rounded-pill border border-inner-border bg-surface-2 px-5 py-2.5 text-caption font-semibold text-text-primary hover:brightness-110 focus-visible:outline-2 focus-visible:outline-focus-ring focus-visible:outline-offset-2 transition-[filter]`,onClick:async()=>{try{let e=await fetch(`/share/`+r+`/popup-image`);if(!e.ok)throw Error(`fetch failed`);let t=await e.arrayBuffer(),n=e.headers.get(`content-type`)??`image/png`,i=n.includes(`jpeg`)?`jpg`:n.split(`/`)[1]??`png`;me(`qris-support.`+i,new Uint8Array(t),n)}catch{_.error(`Could not download the image.`)}},children:[(0,z.jsx)(c,{size:14,"aria-hidden":`true`}),`Download QR`]})}),(0,z.jsxs)(`div`,{className:`border-t border-inner-border pt-4 max-sm:pt-3 flex flex-col gap-1`,children:[(0,z.jsxs)(`p`,{className:`text-badge text-text-tertiary`,children:[(0,z.jsx)(`span`,{className:`font-semibold text-text-secondary`,children:`Gateway`}),` `,G.name]}),(0,z.jsx)(`p`,{className:`text-badge text-text-tertiary max-sm:hidden`,children:`Scan with any QRIS-compatible banking or e-wallet app.`})]})]})]})}):null,G.notes.title||G.notes.subtitle||G.notes.body?(0,z.jsxs)(T,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,z.jsxs)(`h2`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,z.jsx)(de,{size:13,"aria-hidden":`true`}),` NOTES`]}),G.notes.title?(0,z.jsx)(`h3`,{className:`mt-5 font-head text-title font-semibold`,children:G.notes.title}):null,G.notes.subtitle?(0,z.jsx)(`p`,{className:`mt-3 text-caption font-semibold text-text-secondary`,children:G.notes.subtitle}):null,G.notes.body?(0,z.jsx)(`p`,{className:`mt-5 text-body leading-loose whitespace-pre-wrap text-text-secondary`,children:G.notes.body}):null]}):null,(0,z.jsx)(ye,{}),(0,z.jsxs)(T,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-6`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`p`,{className:`inline-flex items-center gap-3 text-text-secondary font-mono text-micro font-bold tracking-label leading-normal`,children:[(0,z.jsx)(a,{size:13,"aria-hidden":`true`}),` MODEL ACCESS`]}),(0,z.jsx)(`h2`,{className:`mt-3 font-head text-lead font-semibold tracking-tight`,children:`Allowed models`})]}),(0,z.jsxs)(`div`,{className:`inline-flex items-center gap-4`,children:[(0,z.jsxs)(`div`,{className:`inline-flex rounded-pill border border-inner-border bg-surface-2 p-1`,role:`tablist`,"aria-label":`Allowed model layout`,children:[(0,z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":V===`raw`,className:`min-h-13 cursor-pointer rounded-pill border-0 bg-transparent px-5 font-mono text-micro font-bold tracking-label text-text-secondary uppercase hover:text-text-primary${V===`raw`?` bg-accent text-accent-foreground`:``}`,onClick:()=>H(`raw`),children:`Raw`}),(0,z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":V===`grouped`,className:`min-h-13 cursor-pointer rounded-pill border-0 bg-transparent px-5 font-mono text-micro font-bold tracking-label text-text-secondary uppercase hover:text-text-primary${V===`grouped`?` bg-accent text-accent-foreground`:``}`,onClick:()=>H(`grouped`),children:`Grouped`})]}),G.models.length?(0,z.jsx)(x,{value:G.models.join(`, `),size:`sm`,variant:`secondary`,label:`Copy all`,copiedLabel:`Copied`,"aria-label":`Copy all granted models`}):null]})]}),Z.size?V===`raw`?(0,z.jsx)(`div`,{className:`mt-8 grid grid-cols-3 gap-4 max-wide:grid-cols-2 max-narrow:grid-cols-1`,children:G.models.map(e=>(0,z.jsx)(Fe,{id:e,label:e,info:G.modelInfo?.[e],canProbe:K,probing:k.has(e),onProbe:J,result:j.get(e)},e))}):(0,z.jsx)(`div`,{className:`mt-8 grid grid-cols-2 gap-6 min-extra-wide:grid-cols-3 max-medium:grid-cols-1`,children:[...Z].sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>(0,z.jsxs)(`section`,{className:`min-w-0 overflow-hidden rounded-panel border border-inner-border bg-surface-2`,"aria-label":`${e} models`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-6 border-b border-inner-border px-6 py-5`,children:[(0,z.jsx)(`h3`,{className:`font-mono text-badge font-bold text-text-primary wrap-anywhere`,children:e}),(0,z.jsx)(`span`,{className:`rounded-pill bg-accent-soft px-4 py-1 font-mono text-micro font-bold text-accent`,children:t.length})]}),(0,z.jsx)(`div`,{className:`mt-0 grid max-h-150 grid-cols-1 gap-3 overflow-y-auto p-4`,children:t.map(t=>(0,z.jsx)(Fe,{id:t,label:e===`Other`?t:t.slice(e.length+1),info:G.modelInfo?.[t],canProbe:K,probing:k.has(t),onProbe:J,result:j.get(t)},t))})]},e))}):(0,z.jsx)(`p`,{className:`mt-8 rounded-control border border-inner-border bg-surface-2 p-7 text-caption text-text-secondary`,children:`Model access follows the share template policy.`}),G.modelPrefix?(0,z.jsxs)(`p`,{className:`mt-6 text-badge leading-normal text-text-secondary wrap-anywhere`,children:[`Required model prefix: `,G.modelPrefix]}):null]})]}):(0,z.jsx)(T,{surface:`muted`,className:`min-w-0 border-glass-border-2 bg-glass-bg backdrop-blur-md backdrop-saturate-150 p-5`,children:(0,z.jsx)(w,{children:(0,z.jsx)(le,{title:`No enrollment data`,message:`This enrollment link did not return usable policy data.`})})})})]})})}var Le=document.getElementById(`root`);if(Le===null)throw Error(`Share root element is missing`);(0,F.createRoot)(Le).render((0,z.jsxs)(P.StrictMode,{children:[(0,z.jsx)(Ie,{}),(0,z.jsx)(d,{position:`top-right`,offset:{top:`1rem`,right:`1rem`},mobileOffset:{top:`1rem`,left:`1rem`,right:`1rem`},visibleToasts:2,toastOptions:{className:`toast-surface select-text`,style:{background:`var(--glass-bg-2)`,border:`1px solid var(--glass-border-2)`,color:`var(--text-primary)`,fontSize:`12.5px`},classNames:{title:`select-text`,description:`select-text`},actionButtonStyle:{background:`var(--accent)`,color:`var(--accent-foreground)`},cancelButtonStyle:{background:`var(--surface-muted)`,color:`var(--text-primary)`}}})]}));
@@ -1 +1 @@
1
- import{n as e,t}from"./jsx-runtime-CXUMngI_.js";import{i as n,n as r,r as i}from"./numbers-BNDZnsUE.js";import{x as a}from"./assert-C0YYuZJ4.js";import{a as o,t as s,u as c}from"./tokens-COzario9.js";import{t as l}from"./select-B3iTetHN.js";var u=e(`cog`,[[`path`,{d:`M11 10.27 7 3.34`,key:`16pf9h`}],[`path`,{d:`m11 13.73-4 6.93`,key:`794ttg`}],[`path`,{d:`M12 22v-2`,key:`1osdcq`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M14 12h8`,key:`4f43i9`}],[`path`,{d:`m17 20.66-1-1.73`,key:`eq3orb`}],[`path`,{d:`m17 3.34-1 1.73`,key:`2wel8s`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`m20.66 17-1.73-1`,key:`sg0v6f`}],[`path`,{d:`m20.66 7-1.73 1`,key:`1ow05n`}],[`path`,{d:`m3.34 17 1.73-1`,key:`nuk764`}],[`path`,{d:`m3.34 7 1.73 1`,key:`1ulond`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`circle`,{cx:`12`,cy:`12`,r:`8`,key:`46899m`}]]),d=[`1h`,`6h`,`12h`,`24h`,`7d`,`30d`,`all`],f=t(),p={"1h":`Last 1 Hour`,"6h":`Last 6 Hours`,"12h":`Last 12 Hours`,"24h":`Last 24 Hours`,"7d":`Last 7 Days`,"30d":`Last 30 Days`,all:`All retained`},m=d.map(e=>({value:e,label:p[e]??e}));function h(e){return p[e]??e}function g({value:e,onChange:t}){return(0,f.jsx)(l,{"aria-label":`Period`,value:e,size:`sm`,className:`w-auto min-w-46 shrink-0 grow-0 basis-auto`,onValueChange:t,options:m.map(e=>({value:e.value,label:e.label}))})}function _(e,t,r){let a=h(e);if(t||r===void 0)return a;let o=r.inputTokens+r.outputTokens;return`${a} · ${n(r.requests)} calls · ${c(o)} tokens · avg ${i(r.avgDurationMs)}`}function v(e){return e!==null&&d.includes(e)?e:`24h`}function y(e){return e===`tokens`||e===`cached`?e:`requests`}function b(e){if(e===null)return s;if(e===`auto`)return-1;let t=Number(e);return Number.isInteger(t)&&t>=0&&t<=o?t:s}function x(e){return e!==null&&a.includes(e)?e:`model`}function S(e){return e==null||!Number.isFinite(e)?`—`:e===0?`$0.00`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function C(e){return e==null||!Number.isFinite(e)?`—`:`${r(e)} CR`}function w(e){return e==null||!Number.isFinite(e)||e<=0?`—`:`${(e>=100?Math.round(e):Math.round(e*10)/10).toLocaleString(`en-US`)} tok/s`}function T(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString(`en-GB`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function E(e){switch(e){case`chat`:return`OpenAI Completions`;case`messages`:return`Anthropic Messages`;case`responses`:return`OpenAI Responses`;case`completion`:return`OpenAI Completions`;default:return e||`—`}}function D(e,t=Date.now()){let n=new Date(e).getTime();if(Number.isNaN(n))return`—`;let r=Math.max(0,t-n),i=6e4,a=60*i,o=24*a,s=7*o;if(r<a){let e=Math.max(0,Math.floor(r/i));return e<=1?`just now`:`${e}m ago`}if(r<o){let e=Math.floor(r/a);return e<=1?`1h ago`:`${e}h ago`}if(r<s){let e=Math.floor(r/o);return e<=1?`1d ago`:`${e}d ago`}let c=Math.floor(r/s);return c<=1?`1w ago`:`${c}w ago`}export{D as a,T as c,_ as d,g as f,b as i,S as l,u as m,y as n,C as o,h as p,v as r,w as s,x as t,E as u};
1
+ import{n as e,t}from"./jsx-runtime-CXUMngI_.js";import{i as n,n as r,r as i}from"./numbers-CEagj6ZZ.js";import{C as a}from"./assert-DbRA8EG2.js";import{a as o,t as s,u as c}from"./tokens-COzario9.js";import{t as l}from"./select-BIYIBkMU.js";var u=e(`cog`,[[`path`,{d:`M11 10.27 7 3.34`,key:`16pf9h`}],[`path`,{d:`m11 13.73-4 6.93`,key:`794ttg`}],[`path`,{d:`M12 22v-2`,key:`1osdcq`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M14 12h8`,key:`4f43i9`}],[`path`,{d:`m17 20.66-1-1.73`,key:`eq3orb`}],[`path`,{d:`m17 3.34-1 1.73`,key:`2wel8s`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`m20.66 17-1.73-1`,key:`sg0v6f`}],[`path`,{d:`m20.66 7-1.73 1`,key:`1ow05n`}],[`path`,{d:`m3.34 17 1.73-1`,key:`nuk764`}],[`path`,{d:`m3.34 7 1.73 1`,key:`1ulond`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`circle`,{cx:`12`,cy:`12`,r:`8`,key:`46899m`}]]),d=[`1h`,`6h`,`12h`,`24h`,`7d`,`30d`,`all`],f=t(),p={"1h":`Last 1 Hour`,"6h":`Last 6 Hours`,"12h":`Last 12 Hours`,"24h":`Last 24 Hours`,"7d":`Last 7 Days`,"30d":`Last 30 Days`,all:`All retained`},m=d.map(e=>({value:e,label:p[e]??e}));function h(e){return p[e]??e}function g({value:e,onChange:t}){return(0,f.jsx)(l,{"aria-label":`Period`,value:e,size:`sm`,className:`w-auto min-w-46 shrink-0 grow-0 basis-auto`,onValueChange:t,options:m.map(e=>({value:e.value,label:e.label}))})}function _(e,t,r){let a=h(e);if(t||r===void 0)return a;let o=r.inputTokens+r.outputTokens;return`${a} · ${n(r.requests)} calls · ${c(o)} tokens · avg ${i(r.avgDurationMs)}`}function v(e){return e!==null&&d.includes(e)?e:`24h`}function y(e){return e===`tokens`||e===`cached`?e:`requests`}function b(e){if(e===null)return s;if(e===`auto`)return-1;let t=Number(e);return Number.isInteger(t)&&t>=0&&t<=o?t:s}function x(e){return e!==null&&a.includes(e)?e:`model`}function S(e){return e==null||!Number.isFinite(e)?`—`:e===0?`$0.00`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function C(e){return e==null||!Number.isFinite(e)?`—`:`${r(e)} CR`}function w(e){return e==null||!Number.isFinite(e)||e<=0?`—`:`${(e>=100?Math.round(e):Math.round(e*10)/10).toLocaleString(`en-US`)} tok/s`}function T(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString(`en-GB`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function E(e){switch(e){case`chat`:return`OpenAI Completions`;case`messages`:return`Anthropic Messages`;case`responses`:return`OpenAI Responses`;case`completion`:return`OpenAI Completions`;default:return e||`—`}}function D(e,t=Date.now()){let n=new Date(e).getTime();if(Number.isNaN(n))return`—`;let r=Math.max(0,t-n),i=6e4,a=60*i,o=24*a,s=7*o;if(r<a){let e=Math.max(0,Math.floor(r/i));return e<=1?`just now`:`${e}m ago`}if(r<o){let e=Math.floor(r/a);return e<=1?`1h ago`:`${e}h ago`}if(r<s){let e=Math.floor(r/o);return e<=1?`1d ago`:`${e}d ago`}let c=Math.floor(r/s);return c<=1?`1w ago`:`${c}w ago`}export{D as a,T as c,_ as d,g as f,b as i,S as l,u as m,y as n,C as o,h as p,v as r,w as s,x as t,E as u};
@@ -1 +1 @@
1
- import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{a as i,c as a,i as o}from"./app-wvwCi4Eh.js";var s=e(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),c=t(n(),1),l=r(),u=`https://img.shields.io`;function d(e,t){let n=new URLSearchParams({style:`flat-square`,labelColor:`0b1220`,color:t});return`${u}/github/${e}/${o}?${n.toString()}`}function f({size:e=16}){return(0,l.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,l.jsx)(`path`,{d:`M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8Z`})})}function p({size:e=15}){return(0,l.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,l.jsx)(`path`,{d:`M0 0v16h16V0H0Zm13 13h-2V5H8v8H3V3h10v10Z`})})}function m({size:e=15}){return(0,l.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,l.jsx)(`path`,{d:`m15.5 6.3-.02-.06-2.14-5.58a.56.56 0 0 0-.22-.26.57.57 0 0 0-.65.03.57.57 0 0 0-.19.29l-1.45 4.42H5.17L3.72.72A.57.57 0 0 0 3.53.43a.57.57 0 0 0-.65-.03.56.56 0 0 0-.22.26L.52 6.24l-.02.06a3.97 3.97 0 0 0 1.32 4.59l.01.01.02.02 3.25 2.44 1.61 1.22.98.74a.67.67 0 0 0 .81 0l.98-.74 1.61-1.22 3.26-2.45.01-.01a3.97 3.97 0 0 0 1.32-4.59Z`})})}function h({size:e=15}){return(0,l.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,l.jsx)(`path`,{d:`M13.55 3.02A12.6 12.6 0 0 0 10.5 2.1a8.9 8.9 0 0 0-.4.83 11.7 11.7 0 0 0-3.2 0 8.6 8.6 0 0 0-.41-.83 12.6 12.6 0 0 0-3.05.92C1.3 5.75.85 8.4 1.07 11.01a12.7 12.7 0 0 0 3.74 1.9c.3-.41.57-.85.8-1.31-.44-.17-.86-.37-1.26-.6l.31-.24a9 9 0 0 0 7.68 0l.31.24c-.4.23-.82.43-1.26.6.23.46.5.9.8 1.31a12.7 12.7 0 0 0 3.74-1.9c.26-3.03-.44-5.66-1.98-7.99ZM5.68 9.4c-.73 0-1.33-.67-1.33-1.49s.59-1.49 1.33-1.49c.74 0 1.34.68 1.33 1.49 0 .82-.59 1.49-1.33 1.49Zm4.64 0c-.73 0-1.33-.67-1.33-1.49s.59-1.49 1.33-1.49c.74 0 1.34.68 1.33 1.49 0 .82-.59 1.49-1.33 1.49Z`})})}function g({id:e,size:t}){return e===`npm`?(0,l.jsx)(p,{size:t}):e===`gitlab`?(0,l.jsx)(m,{size:t}):e===`discord`?(0,l.jsx)(h,{size:t}):(0,l.jsx)(f,{size:t})}function _({className:e=``}){let[t,n]=(0,c.useState)(!1),r=(0,c.useRef)(null),o=(0,c.useId)(),s=(0,c.useCallback)(()=>n(!1),[]);return(0,c.useEffect)(()=>{if(!t)return;let e=e=>{r.current!==null&&!r.current.contains(e.target)&&s()},n=e=>{e.key===`Escape`&&s()};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,n),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,n)}},[t,s]),(0,l.jsx)(`div`,{className:e,ref:r,children:(0,l.jsxs)(`div`,{className:`github-split`,children:[(0,l.jsxs)(`a`,{className:`github-badge`,href:i,target:`_blank`,rel:`noreferrer`,"aria-label":`Cartethyia on GitHub`,children:[(0,l.jsx)(f,{size:15}),(0,l.jsx)(`img`,{className:`github-badge-metric`,src:d(`stars`,`2ea043`),alt:`GitHub stars`,height:20,loading:`lazy`,decoding:`async`}),(0,l.jsx)(`img`,{className:`github-badge-metric`,src:d(`forks`,`1f6feb`),alt:`GitHub forks`,height:20,loading:`lazy`,decoding:`async`})]}),(0,l.jsx)(`button`,{type:`button`,className:`github-split-toggle`,"aria-haspopup":`menu`,"aria-expanded":t,"aria-controls":o,"aria-label":`More ways to get Cartethyia`,onClick:()=>n(e=>!e),children:(0,l.jsx)(`svg`,{width:12,height:12,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,l.jsx)(`path`,{d:`M8 11 3 5h10l-5 6Z`})})}),t?(0,l.jsx)(`div`,{className:`github-split-menu`,id:o,role:`menu`,"aria-label":`Source and package links`,children:a.map(e=>(0,l.jsxs)(`a`,{className:`github-split-item`,href:e.href,target:`_blank`,rel:`noreferrer`,role:`menuitem`,onClick:s,children:[(0,l.jsx)(g,{id:e.id,size:14}),(0,l.jsxs)(`span`,{className:`github-split-item-text`,children:[(0,l.jsx)(`span`,{className:`github-split-item-label`,children:e.label}),(0,l.jsx)(`span`,{className:`github-split-item-hint`,children:e.hint})]})]},e.id))}):null]})})}export{f as n,s as r,_ as t};
1
+ import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{a as i,c as a,i as o}from"./app-BayTTy01.js";var s=e(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),c=t(n(),1),l=r(),u=`https://img.shields.io`;function d(e,t){let n=new URLSearchParams({style:`flat-square`,labelColor:`0b1220`,color:t});return`${u}/github/${e}/${o}?${n.toString()}`}function f({size:e=16}){return(0,l.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,l.jsx)(`path`,{d:`M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8Z`})})}function p({size:e=15}){return(0,l.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,l.jsx)(`path`,{d:`M0 0v16h16V0H0Zm13 13h-2V5H8v8H3V3h10v10Z`})})}function m({size:e=15}){return(0,l.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,l.jsx)(`path`,{d:`m15.5 6.3-.02-.06-2.14-5.58a.56.56 0 0 0-.22-.26.57.57 0 0 0-.65.03.57.57 0 0 0-.19.29l-1.45 4.42H5.17L3.72.72A.57.57 0 0 0 3.53.43a.57.57 0 0 0-.65-.03.56.56 0 0 0-.22.26L.52 6.24l-.02.06a3.97 3.97 0 0 0 1.32 4.59l.01.01.02.02 3.25 2.44 1.61 1.22.98.74a.67.67 0 0 0 .81 0l.98-.74 1.61-1.22 3.26-2.45.01-.01a3.97 3.97 0 0 0 1.32-4.59Z`})})}function h({size:e=15}){return(0,l.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,l.jsx)(`path`,{d:`M13.55 3.02A12.6 12.6 0 0 0 10.5 2.1a8.9 8.9 0 0 0-.4.83 11.7 11.7 0 0 0-3.2 0 8.6 8.6 0 0 0-.41-.83 12.6 12.6 0 0 0-3.05.92C1.3 5.75.85 8.4 1.07 11.01a12.7 12.7 0 0 0 3.74 1.9c.3-.41.57-.85.8-1.31-.44-.17-.86-.37-1.26-.6l.31-.24a9 9 0 0 0 7.68 0l.31.24c-.4.23-.82.43-1.26.6.23.46.5.9.8 1.31a12.7 12.7 0 0 0 3.74-1.9c.26-3.03-.44-5.66-1.98-7.99ZM5.68 9.4c-.73 0-1.33-.67-1.33-1.49s.59-1.49 1.33-1.49c.74 0 1.34.68 1.33 1.49 0 .82-.59 1.49-1.33 1.49Zm4.64 0c-.73 0-1.33-.67-1.33-1.49s.59-1.49 1.33-1.49c.74 0 1.34.68 1.33 1.49 0 .82-.59 1.49-1.33 1.49Z`})})}function g({id:e,size:t}){return e===`npm`?(0,l.jsx)(p,{size:t}):e===`gitlab`?(0,l.jsx)(m,{size:t}):e===`discord`?(0,l.jsx)(h,{size:t}):(0,l.jsx)(f,{size:t})}function _({className:e=``}){let[t,n]=(0,c.useState)(!1),r=(0,c.useRef)(null),o=(0,c.useId)(),s=(0,c.useCallback)(()=>n(!1),[]);return(0,c.useEffect)(()=>{if(!t)return;let e=e=>{r.current!==null&&!r.current.contains(e.target)&&s()},n=e=>{e.key===`Escape`&&s()};return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,n),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,n)}},[t,s]),(0,l.jsx)(`div`,{className:e,ref:r,children:(0,l.jsxs)(`div`,{className:`github-split`,children:[(0,l.jsxs)(`a`,{className:`github-badge`,href:i,target:`_blank`,rel:`noreferrer`,"aria-label":`Cartethyia on GitHub`,children:[(0,l.jsx)(f,{size:15}),(0,l.jsx)(`img`,{className:`github-badge-metric`,src:d(`stars`,`2ea043`),alt:`GitHub stars`,height:20,loading:`lazy`,decoding:`async`}),(0,l.jsx)(`img`,{className:`github-badge-metric`,src:d(`forks`,`1f6feb`),alt:`GitHub forks`,height:20,loading:`lazy`,decoding:`async`})]}),(0,l.jsx)(`button`,{type:`button`,className:`github-split-toggle`,"aria-haspopup":`menu`,"aria-expanded":t,"aria-controls":o,"aria-label":`More ways to get Cartethyia`,onClick:()=>n(e=>!e),children:(0,l.jsx)(`svg`,{width:12,height:12,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,l.jsx)(`path`,{d:`M8 11 3 5h10l-5 6Z`})})}),t?(0,l.jsx)(`div`,{className:`github-split-menu`,id:o,role:`menu`,"aria-label":`Source and package links`,children:a.map(e=>(0,l.jsxs)(`a`,{className:`github-split-item`,href:e.href,target:`_blank`,rel:`noreferrer`,role:`menuitem`,onClick:s,children:[(0,l.jsx)(g,{id:e.id,size:14}),(0,l.jsxs)(`span`,{className:`github-split-item-text`,children:[(0,l.jsx)(`span`,{className:`github-split-item-label`,children:e.label}),(0,l.jsx)(`span`,{className:`github-split-item-hint`,children:e.hint})]})]},e.id))}):null]})})}export{f as n,s as r,_ as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/entry-j40LJotO.js","assets/jsx-runtime-CXUMngI_.js","assets/app-wvwCi4Eh.js","assets/app-B2vyPoII.css","assets/terminal-0_IjPWTk.js","assets/numbers-BNDZnsUE.js","assets/use-modal-focus-By7oJoGd.js","assets/dialog-C9omdjQt.js","assets/assert-C0YYuZJ4.js","assets/query-keys-CLaNz8Xz.js","assets/mutation-JJGQm8TD.js","assets/useMutation-Dmnfh1Ue.js","assets/dialog-actions-B1axpEg7.js","assets/entry-DS90gUks.js","assets/brain-Cwed_72z.js","assets/chevron-right-BXIy5l3h.js","assets/circle-check-BU3v_mFW.js","assets/eye-C_hawfH4.js","assets/github-badge-Orjuzemr.js","assets/state-DLS7IDMy.js","assets/key-round-UkavsGxp.js","assets/clipboard-button-DOfrVmsi.js","assets/use-clipboard-B0Sy03fE.js","assets/scaling-nWE4Cx8f.js","assets/wrench-B6E1oEuY.js","assets/card-Be5Uzamx.js","assets/download-dRFo5_Wu.js","assets/tokens-COzario9.js","assets/stream-retry-5QnVuSSo.js","assets/entry-q5HwZ8nN.js","assets/arrow-right-Dl5yKnp8.js","assets/log-in-BmRjy60c.js","assets/message-circle-CCxGwRvv.js","assets/shield-check-DVS0Foqh.js","assets/use-reduced-motion-C4B0R6Sz.js"])))=>i.map(i=>d[i]);
2
- (function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function e(e){return e===`/share`||e.startsWith(`/share/`)?`share`:e===`/console`||e.startsWith(`/console/`)?`console`:`landing`}var t=`modulepreload`,n=function(e){return`/`+e},r={},i=function(e,i,a){let o=Promise.resolve();if(i&&i.length>0){let e=document.getElementsByTagName(`link`),s=document.querySelector(`meta[property=csp-nonce]`),c=s?.nonce||s?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}o=l(i.map(i=>{if(i=n(i,a),i=u(i),i in r)return;r[i]=!0;let o=i.endsWith(`.css`);for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.href===i&&(!o||n.rel===`stylesheet`))return}let s=document.createElement(`link`);if(s.rel=o?`stylesheet`:t,o||(s.as=`script`),s.crossOrigin=``,s.href=i,c&&s.setAttribute(`nonce`,c),document.head.appendChild(s),o)return new Promise((e,t)=>{s.addEventListener(`load`,e),s.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${i}`)))})}))}function s(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return o.then(t=>{for(let e of t||[])e.status===`rejected`&&s(e.reason);return e().catch(s)})},a=document.getElementById(`root`);if(a===null)throw Error(`Dashboard root element is missing`);var o=e(window.location.pathname);o===`console`?i(async()=>{let{mountConsole:e}=await import(`./entry-j40LJotO.js`);return{mountConsole:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])).then(({mountConsole:e})=>e(a)):o===`share`?i(()=>import(`./entry-DS90gUks.js`).then(()=>void 0),__vite__mapDeps([13,1,2,3,14,5,15,16,17,18,19,20,21,22,23,24,25,26,27,28])):i(async()=>{let{mountLanding:e}=await import(`./entry-q5HwZ8nN.js`);return{mountLanding:e}},__vite__mapDeps([29,1,2,3,4,30,18,31,32,33,34])).then(({mountLanding:e})=>e(a));export{i as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/entry-CiIQULZD.js","assets/jsx-runtime-CXUMngI_.js","assets/app-BayTTy01.js","assets/app-a159k0ub.css","assets/terminal-0_IjPWTk.js","assets/numbers-CEagj6ZZ.js","assets/use-modal-focus-By7oJoGd.js","assets/dialog-8fiE6tec.js","assets/assert-DbRA8EG2.js","assets/query-keys-BloKtaXJ.js","assets/mutation-Rr0TIvcj.js","assets/useMutation-BQqCRNIi.js","assets/dialog-actions-B1axpEg7.js","assets/entry-Daz0lJ-W.js","assets/brain-Cwed_72z.js","assets/chevron-right-BXIy5l3h.js","assets/circle-check-BU3v_mFW.js","assets/eye-C_hawfH4.js","assets/github-badge-CPK47xQx.js","assets/state-CkfdYWel.js","assets/key-round-UkavsGxp.js","assets/clipboard-button-DJm-9pz7.js","assets/use-clipboard-B0Sy03fE.js","assets/scaling-nWE4Cx8f.js","assets/wrench-B6E1oEuY.js","assets/card-ibRWU_uT.js","assets/download-dRFo5_Wu.js","assets/tokens-COzario9.js","assets/stream-retry-5QnVuSSo.js","assets/switch-SYm237HG.js","assets/entry-BSAsYsmV.js","assets/arrow-right-Dl5yKnp8.js","assets/log-in-BmRjy60c.js","assets/message-circle-CCxGwRvv.js","assets/shield-check-DVS0Foqh.js","assets/use-reduced-motion-C4B0R6Sz.js"])))=>i.map(i=>d[i]);
2
+ (function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function e(e){return e===`/share`||e.startsWith(`/share/`)?`share`:e===`/console`||e.startsWith(`/console/`)?`console`:`landing`}var t=`modulepreload`,n=function(e){return`/`+e},r={},i=function(e,i,a){let o=Promise.resolve();if(i&&i.length>0){let e=document.getElementsByTagName(`link`),s=document.querySelector(`meta[property=csp-nonce]`),c=s?.nonce||s?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}o=l(i.map(i=>{if(i=n(i,a),i=u(i),i in r)return;r[i]=!0;let o=i.endsWith(`.css`);for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.href===i&&(!o||n.rel===`stylesheet`))return}let s=document.createElement(`link`);if(s.rel=o?`stylesheet`:t,o||(s.as=`script`),s.crossOrigin=``,s.href=i,c&&s.setAttribute(`nonce`,c),document.head.appendChild(s),o)return new Promise((e,t)=>{s.addEventListener(`load`,e),s.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${i}`)))})}))}function s(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return o.then(t=>{for(let e of t||[])e.status===`rejected`&&s(e.reason);return e().catch(s)})},a=document.getElementById(`root`);if(a===null)throw Error(`Dashboard root element is missing`);var o=e(window.location.pathname);o===`console`?i(async()=>{let{mountConsole:e}=await import(`./entry-CiIQULZD.js`);return{mountConsole:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])).then(({mountConsole:e})=>e(a)):o===`share`?i(()=>import(`./entry-Daz0lJ-W.js`).then(()=>void 0),__vite__mapDeps([13,1,2,3,14,5,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])):i(async()=>{let{mountLanding:e}=await import(`./entry-BSAsYsmV.js`);return{mountLanding:e}},__vite__mapDeps([30,1,2,3,4,31,18,32,33,34,35])).then(({mountLanding:e})=>e(a));export{i as t};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-CXUMngI_.js";import{m as t}from"./numbers-BNDZnsUE.js";import{r as n}from"./stack-KrOrm7JZ.js";var r=e(),i={center:`items-center`,start:`items-start`,end:`items-end`,"flex-start":`items-start`,"flex-end":`items-end`,baseline:`items-baseline`,stretch:`items-stretch`},a={center:`justify-center`,start:`justify-start`,end:`justify-end`,"flex-start":`justify-start`,"flex-end":`justify-end`,"space-between":`justify-between`,"space-around":`justify-around`,"space-evenly":`justify-evenly`};function o({children:e,gap:t=3,gapRaw:n,align:i=`center`,justify:a,wrap:o=!0,style:c,className:l=``}){return(0,r.jsx)(s,{gap:t,gapRaw:n,align:i,justify:a,wrap:o,style:c,className:l,children:e})}function s({children:e,gap:o=4,gapRaw:s,align:c=`center`,justify:l,wrap:u=!1,style:d,className:f=``}){let p=n(o,4);return(0,r.jsx)(`div`,{className:t(`flex flex-row`,i[c??``]??``,a[l??``]??``,u&&`flex-wrap`,s===void 0?p:null,f),style:s===void 0?d:{gap:s,...d},children:e})}export{s as n,o as t};
1
+ import{t as e}from"./jsx-runtime-CXUMngI_.js";import{h as t}from"./numbers-CEagj6ZZ.js";import{r as n}from"./stack-DfgnFDWY.js";var r=e(),i={center:`items-center`,start:`items-start`,end:`items-end`,"flex-start":`items-start`,"flex-end":`items-end`,baseline:`items-baseline`,stretch:`items-stretch`},a={center:`justify-center`,start:`justify-start`,end:`justify-end`,"flex-start":`justify-start`,"flex-end":`justify-end`,"space-between":`justify-between`,"space-around":`justify-around`,"space-evenly":`justify-evenly`};function o({children:e,gap:t=3,gapRaw:n,align:i=`center`,justify:a,wrap:o=!0,style:c,className:l=``}){return(0,r.jsx)(s,{gap:t,gapRaw:n,align:i,justify:a,wrap:o,style:c,className:l,children:e})}function s({children:e,gap:o=4,gapRaw:s,align:c=`center`,justify:l,wrap:u=!1,style:d,className:f=``}){let p=n(o,4);return(0,r.jsx)(`div`,{className:t(`flex flex-row`,i[c??``]??``,a[l??``]??``,u&&`flex-wrap`,s===void 0?p:null,f),style:s===void 0?d:{gap:s,...d},children:e})}export{s as n,o as t};
@@ -1 +1 @@
1
- import{o as e,r as t,t as n}from"./jsx-runtime-CXUMngI_.js";import{m as r}from"./numbers-BNDZnsUE.js";import{t as i}from"./eye-off-Bk5g2luF.js";import{t as a}from"./eye-C_hawfH4.js";var o=e(t(),1),s=n(),c=`w-full rounded-control border border-inner-border bg-surface-2 text-text-primary px-6 py-4 text-body outline-none transition-[border-color,box-shadow] duration-(--dur-micro) ease-spring focus:border-accent focus:shadow-focus`,l=(0,o.forwardRef)(({label:e,hint:t,error:n,id:l,type:u,className:d=``,showPasswordToggle:f,...p},m)=>{let h=u===`password`,g=h||f,[_,v]=(0,o.useState)(!1);return(0,s.jsxs)(`div`,{className:`form-group flex w-full flex-col gap-3`,children:[e?(0,s.jsxs)(`label`,{htmlFor:l,className:`form-label flex items-center justify-between text-caption font-semibold text-text-primary`,children:[(0,s.jsx)(`span`,{children:e}),t?(0,s.jsx)(`span`,{className:`form-hint text-badge font-normal text-text-tertiary`,children:t}):null]}):null,(0,s.jsxs)(`div`,{className:`relative flex items-center w-full`,children:[(0,s.jsx)(`input`,{ref:m,id:l,type:h?_?`text`:`password`:u,className:r(`form-input`,c,g&&`pr-18`,d),...p}),g?(0,s.jsx)(`button`,{type:`button`,onClick:()=>v(e=>!e),"aria-label":_?`Hide password`:`Show password`,"aria-pressed":_,className:`absolute right-5 bg-transparent border-none text-text-tertiary cursor-pointer p-1 inline-flex items-center justify-center`,children:_?(0,s.jsx)(i,{size:16}):(0,s.jsx)(a,{size:16})}):null]}),n?(0,s.jsx)(`p`,{className:`form-error mt-2 text-badge text-red`,role:`alert`,children:n}):null]})});l.displayName=`Input`;var u=(0,o.forwardRef)(({className:e,...t},n)=>(0,s.jsx)(`input`,{ref:n,type:`file`,className:r(`form-file-input box-border min-w-0 h-16 flex-auto cursor-pointer rounded-control border border-inner-border bg-surface-2 py-0 pl-0 pr-2 font-sans text-badge text-text-secondary transition-colors duration-(--dur-micro) ease-standard enabled:hover:border-border-strong focus-visible:outline-2 focus-visible:outline-focus-ring focus-visible:outline-offset-1 disabled:cursor-not-allowed disabled:opacity-60`,`file:h-full file:mr-4 file:px-5 file:py-0 file:rounded-l-control file:rounded-r-none file:border-0 file:border-r file:border-inner-border file:bg-surface-1 file:font-sans file:text-badge file:font-semibold file:text-text-primary file:cursor-pointer disabled:file:cursor-not-allowed file:hover:bg-surface-hover`,e),...t}));u.displayName=`FileInput`;var d=(0,o.forwardRef)(({label:e,hint:t,error:n,id:i,className:a=``,...o},l)=>(0,s.jsxs)(`div`,{className:`form-group flex w-full flex-col gap-3`,children:[e?(0,s.jsxs)(`label`,{htmlFor:i,className:`form-label flex items-center justify-between text-caption font-semibold text-text-primary`,children:[(0,s.jsx)(`span`,{children:e}),t?(0,s.jsx)(`span`,{className:`form-hint text-badge font-normal text-text-tertiary`,children:t}):null]}):null,(0,s.jsx)(`textarea`,{ref:l,id:i,className:r(`form-textarea`,c,a),...o}),n?(0,s.jsx)(`p`,{className:`form-error mt-2 text-badge text-red`,role:`alert`,children:n}):null]}));d.displayName=`Textarea`;export{l as n,d as r,u as t};
1
+ import{o as e,r as t,t as n}from"./jsx-runtime-CXUMngI_.js";import{h as r}from"./numbers-CEagj6ZZ.js";import{t as i}from"./eye-off-Bk5g2luF.js";import{t as a}from"./eye-C_hawfH4.js";var o=e(t(),1),s=n(),c=`w-full rounded-control border border-inner-border bg-surface-2 text-text-primary px-6 py-4 text-body outline-none transition-[border-color,box-shadow] duration-(--dur-micro) ease-spring focus:border-accent focus:shadow-focus`,l=(0,o.forwardRef)(({label:e,hint:t,error:n,id:l,type:u,className:d=``,showPasswordToggle:f,...p},m)=>{let h=u===`password`,g=h||f,[_,v]=(0,o.useState)(!1);return(0,s.jsxs)(`div`,{className:`form-group flex w-full flex-col gap-3`,children:[e?(0,s.jsxs)(`label`,{htmlFor:l,className:`form-label flex items-center justify-between text-caption font-semibold text-text-primary`,children:[(0,s.jsx)(`span`,{children:e}),t?(0,s.jsx)(`span`,{className:`form-hint text-badge font-normal text-text-tertiary`,children:t}):null]}):null,(0,s.jsxs)(`div`,{className:`relative flex items-center w-full`,children:[(0,s.jsx)(`input`,{ref:m,id:l,type:h?_?`text`:`password`:u,className:r(`form-input`,c,g&&`pr-18`,d),...p}),g?(0,s.jsx)(`button`,{type:`button`,onClick:()=>v(e=>!e),"aria-label":_?`Hide password`:`Show password`,"aria-pressed":_,className:`absolute right-5 bg-transparent border-none text-text-tertiary cursor-pointer p-1 inline-flex items-center justify-center`,children:_?(0,s.jsx)(i,{size:16}):(0,s.jsx)(a,{size:16})}):null]}),n?(0,s.jsx)(`p`,{className:`form-error mt-2 text-badge text-red`,role:`alert`,children:n}):null]})});l.displayName=`Input`;var u=(0,o.forwardRef)(({className:e,...t},n)=>(0,s.jsx)(`input`,{ref:n,type:`file`,className:r(`form-file-input box-border min-w-0 h-16 flex-auto cursor-pointer rounded-control border border-inner-border bg-surface-2 py-0 pl-0 pr-2 font-sans text-badge text-text-secondary transition-colors duration-(--dur-micro) ease-standard enabled:hover:border-border-strong focus-visible:outline-2 focus-visible:outline-focus-ring focus-visible:outline-offset-1 disabled:cursor-not-allowed disabled:opacity-60`,`file:h-full file:mr-4 file:px-5 file:py-0 file:rounded-l-control file:rounded-r-none file:border-0 file:border-r file:border-inner-border file:bg-surface-1 file:font-sans file:text-badge file:font-semibold file:text-text-primary file:cursor-pointer disabled:file:cursor-not-allowed file:hover:bg-surface-hover`,e),...t}));u.displayName=`FileInput`;var d=(0,o.forwardRef)(({label:e,hint:t,error:n,id:i,className:a=``,...o},l)=>(0,s.jsxs)(`div`,{className:`form-group flex w-full flex-col gap-3`,children:[e?(0,s.jsxs)(`label`,{htmlFor:i,className:`form-label flex items-center justify-between text-caption font-semibold text-text-primary`,children:[(0,s.jsx)(`span`,{children:e}),t?(0,s.jsx)(`span`,{className:`form-hint text-badge font-normal text-text-tertiary`,children:t}):null]}):null,(0,s.jsx)(`textarea`,{ref:l,id:i,className:r(`form-textarea`,c,a),...o}),n?(0,s.jsx)(`p`,{className:`form-error mt-2 text-badge text-red`,role:`alert`,children:n}):null]}));d.displayName=`Textarea`;export{l as n,d as r,u as t};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-CXUMngI_.js";import{m as t}from"./numbers-BNDZnsUE.js";var n=e();function r({eyebrow:e,title:r,description:i,action:a,icon:o,level:s=2}){let c=!!(e||r||i),l=s===1?`h1`:s===3?`h3`:`h2`;return(0,n.jsxs)(`div`,{className:t(`section-header flex items-center justify-between gap-6 max-small:flex-col max-small:items-start max-small:gap-4`,c?void 0:`justify-end`),children:[c?(0,n.jsxs)(`div`,{className:`section-header-text min-w-0`,children:[e?(0,n.jsx)(`p`,{className:`text-badge font-bold uppercase tracking-label text-text-tertiary mb-1`,children:e}):null,r?(0,n.jsx)(l,{className:`font-head text-title font-bold tracking-[-0.02em] text-text-primary`,children:r}):null,i?(0,n.jsx)(`p`,{className:`mt-1 text-caption text-text-secondary`,children:i}):null]}):null,o?(0,n.jsx)(`div`,{className:`card-header-icon grid size-14 shrink-0 place-items-center rounded-pill bg-accent-soft text-accent [&_svg]:size-7.5`,children:o}):null,a?(0,n.jsx)(`div`,{className:`section-header-action max-small:w-full max-small:[&_button]:w-full`,children:a}):null]})}function i(e){return e.length<=7?`default`:e.length<=11?`medium`:`long`}function a({label:e,value:r,detail:a,icon:o,tone:s,status:c,valueColor:l,action:u,size:d=`default`,fit:f=!1}){let p={teal:`text-teal`,purple:`text-accent`,green:`text-green`,orange:`text-orange`,red:`text-red`,accent:`text-accent`}[s||(c===`cooldown`?`orange`:c===`disabled`?`red`:`accent`)]??`text-accent`;return(0,n.jsxs)(`div`,{className:t(`stat-card min-w-0 border border-inner-border rounded-card bg-surface-2`,d===`roomy`?`p-9`:`p-6`),children:[(0,n.jsxs)(`div`,{className:t(`flex items-center justify-between gap-4 font-bold uppercase tracking-label`,d===`roomy`?`text-caption`:`text-micro`,p),children:[(0,n.jsxs)(`span`,{className:`inline-flex items-center gap-4 min-w-0`,children:[o,(0,n.jsx)(`span`,{children:e})]}),u?(0,n.jsx)(`span`,{className:`shrink-0`,children:u}):null]}),(0,n.jsx)(`p`,{className:t(`mb-0`,f?t(`stat-card-value`,d===`roomy`?`mt-4`:`mt-1`):t(`font-mono tabular-nums font-bold leading-[1.15]`,d===`roomy`?`text-hero mt-4`:`text-display mt-1`)),"data-fit":f?i(r):void 0,style:l?{color:l}:void 0,children:r}),(0,n.jsx)(`span`,{className:t(`stat-card-detail line-clamp-2 wrap-anywhere text-text-secondary`,d===`roomy`?`mt-2 text-body`:`text-badge`),children:a})]})}function o({headers:e,children:r,maxHeight:i,onScroll:a,sortKey:o,sortDirection:s,onSort:c,scrollRegion:l=!1,dense:u=!1}){return(0,n.jsx)(`div`,{className:t(`data-table-container`,l&&`scroll-region`),style:i?{maxHeight:i,overflowY:`auto`}:void 0,onScroll:a,children:(0,n.jsxs)(`table`,{className:t(`data-table text-caption`,u&&`text-badge [&_th]:px-4 [&_th]:py-2.5 [&_td]:px-4 [&_td]:py-2.5 [&_th]:text-text-secondary [&_th]:font-semibold [&_th]:normal-case [&_th]:tracking-normal [&_td]:tabular-nums`),children:[(0,n.jsx)(`thead`,{children:(0,n.jsx)(`tr`,{children:e.map(e=>{let r=typeof e==`string`?e:e.key,i=typeof e==`string`?e:e.label,a=typeof e!=`string`&&e.sortable===!0&&c!==void 0,l=o===r;return(0,n.jsx)(`th`,{scope:`col`,"aria-sort":l?s===`asc`?`ascending`:`descending`:void 0,children:a?(0,n.jsxs)(`button`,{type:`button`,onClick:()=>c(r),title:`Sort by ${i}`,className:`inline-flex items-center gap-2 cursor-pointer`,children:[(0,n.jsx)(`span`,{children:i}),(0,n.jsx)(`span`,{"aria-hidden":`true`,className:t(`text-micro`,l?`opacity-100`:`opacity-[0.35]`),children:l?s===`asc`?`▲`:`▼`:`△`})]}):i},r)})})}),(0,n.jsx)(`tbody`,{children:r})]})})}export{r as n,a as r,o as t};
1
+ import{t as e}from"./jsx-runtime-CXUMngI_.js";import{h as t}from"./numbers-CEagj6ZZ.js";var n=e();function r({eyebrow:e,title:r,description:i,action:a,icon:o,level:s=2}){let c=!!(e||r||i),l=s===1?`h1`:s===3?`h3`:`h2`;return(0,n.jsxs)(`div`,{className:t(`section-header flex items-center justify-between gap-6 max-small:flex-col max-small:items-start max-small:gap-4`,c?void 0:`justify-end`),children:[c?(0,n.jsxs)(`div`,{className:`section-header-text min-w-0`,children:[e?(0,n.jsx)(`p`,{className:`text-badge font-bold uppercase tracking-label text-text-tertiary mb-1`,children:e}):null,r?(0,n.jsx)(l,{className:`font-head text-title font-bold tracking-[-0.02em] text-text-primary`,children:r}):null,i?(0,n.jsx)(`p`,{className:`mt-1 text-caption text-text-secondary`,children:i}):null]}):null,o?(0,n.jsx)(`div`,{className:`card-header-icon grid size-14 shrink-0 place-items-center rounded-pill bg-accent-soft text-accent [&_svg]:size-7.5`,children:o}):null,a?(0,n.jsx)(`div`,{className:`section-header-action max-small:w-full max-small:[&_button]:w-full`,children:a}):null]})}function i(e){return e.length<=7?`default`:e.length<=11?`medium`:`long`}function a({label:e,value:r,detail:a,icon:o,tone:s,status:c,valueColor:l,action:u,size:d=`default`,fit:f=!1}){let p={teal:`text-teal`,purple:`text-accent`,green:`text-green`,orange:`text-orange`,red:`text-red`,accent:`text-accent`}[s||(c===`cooldown`?`orange`:c===`disabled`?`red`:`accent`)]??`text-accent`;return(0,n.jsxs)(`div`,{className:t(`stat-card min-w-0 border border-inner-border rounded-card bg-surface-2`,d===`roomy`?`p-9`:`p-6`),children:[(0,n.jsxs)(`div`,{className:t(`flex items-center justify-between gap-4 font-bold uppercase tracking-label`,d===`roomy`?`text-caption`:`text-micro`,p),children:[(0,n.jsxs)(`span`,{className:`inline-flex items-center gap-4 min-w-0`,children:[o,(0,n.jsx)(`span`,{children:e})]}),u?(0,n.jsx)(`span`,{className:`shrink-0`,children:u}):null]}),(0,n.jsx)(`p`,{className:t(`mb-0`,f?t(`stat-card-value`,d===`roomy`?`mt-4`:`mt-1`):t(`font-mono tabular-nums font-bold leading-[1.15]`,d===`roomy`?`text-hero mt-4`:`text-display mt-1`)),"data-fit":f?i(r):void 0,style:l?{color:l}:void 0,children:r}),(0,n.jsx)(`span`,{className:t(`stat-card-detail line-clamp-2 wrap-anywhere text-text-secondary`,d===`roomy`?`mt-2 text-body`:`text-badge`),children:a})]})}function o({headers:e,children:r,maxHeight:i,onScroll:a,sortKey:o,sortDirection:s,onSort:c,scrollRegion:l=!1,dense:u=!1}){return(0,n.jsx)(`div`,{className:t(`data-table-container`,l&&`scroll-region`),style:i?{maxHeight:i,overflowY:`auto`}:void 0,onScroll:a,children:(0,n.jsxs)(`table`,{className:t(`data-table text-caption`,u&&`text-badge [&_th]:px-4 [&_th]:py-2.5 [&_td]:px-4 [&_td]:py-2.5 [&_th]:text-text-secondary [&_th]:font-semibold [&_th]:normal-case [&_th]:tracking-normal [&_td]:tabular-nums`),children:[(0,n.jsx)(`thead`,{children:(0,n.jsx)(`tr`,{children:e.map(e=>{let r=typeof e==`string`?e:e.key,i=typeof e==`string`?e:e.label,a=typeof e!=`string`&&e.sortable===!0&&c!==void 0,l=o===r;return(0,n.jsx)(`th`,{scope:`col`,"aria-sort":l?s===`asc`?`ascending`:`descending`:void 0,children:a?(0,n.jsxs)(`button`,{type:`button`,onClick:()=>c(r),title:`Sort by ${i}`,className:`inline-flex items-center gap-2 cursor-pointer`,children:[(0,n.jsx)(`span`,{children:i}),(0,n.jsx)(`span`,{"aria-hidden":`true`,className:t(`text-micro`,l?`opacity-100`:`opacity-[0.35]`),children:l?s===`asc`?`▲`:`▼`:`△`})]}):i},r)})})}),(0,n.jsx)(`tbody`,{children:r})]})})}export{r as n,a as r,o as t};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-CXUMngI_.js";import{m as t}from"./numbers-BNDZnsUE.js";var n=e();function r({children:e,leading:r,actions:i,density:a=`default`,className:o=``,...s}){return(0,n.jsxs)(`div`,{className:t(`list-row flex items-center gap-6 rounded-control border border-inner-border bg-surface-2 min-w-0 px-7 py-5`,a===`compact`&&`list-row-compact px-5 py-3 rounded-inset gap-4`,o),...s,children:[r?(0,n.jsx)(`div`,{className:`list-row-leading shrink-0`,children:r}):null,(0,n.jsx)(`div`,{className:`list-row-body flex-1 min-w-0 flex flex-col gap-2`,children:e}),i?(0,n.jsx)(`div`,{className:`list-row-actions flex items-center gap-2 shrink-0 flex-wrap`,children:i}):null]})}export{r as t};
1
+ import{t as e}from"./jsx-runtime-CXUMngI_.js";import{h as t}from"./numbers-CEagj6ZZ.js";var n=e();function r({children:e,leading:r,actions:i,density:a=`default`,className:o=``,...s}){return(0,n.jsxs)(`div`,{className:t(`list-row flex items-center gap-6 rounded-control border border-inner-border bg-surface-2 min-w-0 px-7 py-5`,a===`compact`&&`list-row-compact px-5 py-3 rounded-inset gap-4`,o),...s,children:[r?(0,n.jsx)(`div`,{className:`list-row-leading shrink-0`,children:r}):null,(0,n.jsx)(`div`,{className:`list-row-body flex-1 min-w-0 flex flex-col gap-2`,children:e}),i?(0,n.jsx)(`div`,{className:`list-row-actions flex items-center gap-2 shrink-0 flex-wrap`,children:i}):null]})}export{r as t};
@@ -0,0 +1 @@
1
+ import{o as e,r as t}from"./jsx-runtime-CXUMngI_.js";import{c as n}from"./numbers-CEagj6ZZ.js";import{E as r}from"./assert-DbRA8EG2.js";import{o as i,t as a,u as o}from"./query-keys-BloKtaXJ.js";import{t as s}from"./stream-retry-5QnVuSSo.js";var c=e(t(),1);function l(e){if(!o(e)||typeof e.inFlight!=`number`||!Number.isFinite(e.inFlight))return null;let t=Math.max(0,Math.floor(e.inFlight));return{count:t,uniqueIps:typeof e.uniqueIps==`number`&&Number.isFinite(e.uniqueIps)?Math.max(0,Math.min(t,Math.floor(e.uniqueIps))):t}}function u(){let[e,t]=(0,c.useState)(null),[r,a]=(0,c.useState)(null),[o,u]=(0,c.useState)(!1),d=n();return(0,c.useEffect)(()=>{if(!d)return;let e=!1,n,r,o=0,c=async()=>{let d=++o;try{let f=await i(`/live/in-flight`);if(e||d!==o)return;let p=l(f);p!==null&&(t(p.count),a(p.uniqueIps));let m=new EventSource(`/console/api/live/in-flight/stream`);n=m,m.addEventListener(`count`,n=>{if(!(e||d!==o))try{let e=l(JSON.parse(n.data));e!==null&&(t(e.count),a(e.uniqueIps),u(!0))}catch{}}),m.onerror=()=>{e||d!==o||(m.close(),n===m&&(n=void 0),u(!1),r=setTimeout(()=>{e||c()},s))}}catch{!e&&d===o&&(u(!1),r=setTimeout(()=>{e||c()},s))}};return c(),()=>{e=!0,o+=1,r!==void 0&&clearTimeout(r),n?.close()}},[d]),{count:e,uniqueIps:r,live:o}}function d(e){if(!o(e)||!Array.isArray(e.pools))return null;let t=[];for(let n of e.pools){if(!o(n)||typeof n.poolId!=`string`)continue;let e=typeof n.currentInflight==`number`&&Number.isFinite(n.currentInflight)?Math.max(0,Math.floor(n.currentInflight)):0,r=e=>typeof e==`number`&&Number.isFinite(e)&&e>0?Math.floor(e):0;t.push({poolId:n.poolId,currentInflight:e,bytesSent:r(n.bytesSent),bytesReceived:r(n.bytesReceived)})}return t}function f(e){for(;e.size>500;){let t=e.keys().next().value;if(t===void 0)break;e.delete(t)}}function p(e,t){let n=new Set,r=[];for(let i of t){n.add(i.poolId);let t=e.get(i.poolId),a=t?{poolId:i.poolId,currentInflight:i.currentInflight,bytesSent:Math.max(t.bytesSent,i.bytesSent),bytesReceived:Math.max(t.bytesReceived,i.bytesReceived)}:i;e.set(i.poolId,a),r.push(a)}f(e);for(let[t,i]of e)n.has(t)||r.push(i);return r}function m(){let e=r(),[t,o]=(0,c.useState)(null),[l,u]=(0,c.useState)(!1),f=(0,c.useState)(()=>new Map)[0],m=n();return(0,c.useEffect)(()=>{if(!m)return;let t=!1,n,r,c=()=>{n=new EventSource(`/console/api/live/pools/stream`),n.addEventListener(`pools`,e=>{if(!t)try{let t=d(JSON.parse(e.data));t!==null&&(o(p(f,t)),u(!0))}catch{}}),n.addEventListener(`health`,()=>{t||e.invalidateQueries({queryKey:a.network.pools})}),n.onerror=()=>{n?.close(),!t&&(u(!1),r=setTimeout(()=>{t||l()},s))}},l=async()=>{try{let e=await i(`/live/pools`);if(t)return;let n=d(e);n!==null&&o(p(f,n)),c()}catch{}};return l(),()=>{t=!0,r!==void 0&&clearTimeout(r),n?.close()}},[e,m]),{pools:t,live:l}}function h(){let e=r(),t=n();(0,c.useEffect)(()=>{if(!t)return;let n=!1,r,a,o=0,c=async()=>{let t=++o;try{if(await i(`/live/in-flight`),n||t!==o)return;let l=new EventSource(`/console/api/live/requests/stream`);r=l,l.addEventListener(`request_completed`,()=>{n||t!==o||e.invalidateQueries({queryKey:[`console`,`usage`,`requests`],exact:!1})}),l.onerror=()=>{n||t!==o||(l.close(),r===l&&(r=void 0),a=setTimeout(()=>{n||c()},s))}}catch{n||(a=setTimeout(()=>{n||c()},s))}};return c(),()=>{n=!0,a!==void 0&&clearTimeout(a),r?.close()}},[e,t])}export{m as n,h as r,u as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./jsx-runtime-CXUMngI_.js";var t=e(`ban`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]]),n=e(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]);export{t as n,n as t};
@@ -1 +1 @@
1
- import{h as e,m as t,v as n}from"./query-keys-CLaNz8Xz.js";var r=class extends t{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||i(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??(this.state.status===`pending`?this.execute(this.state.variables):Promise.resolve())}async execute(t){let n=()=>{this.#i({type:`continue`})},r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},i=this.#r=e({fn:()=>this.options.mutationFn?this.options.mutationFn(t,r):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)}),a=this.state.status===`pending`,o=!i.canStart();try{if(a)n();else{this.#i({type:`pending`,variables:t,isPaused:o}),this.#n.config.onMutate&&await this.#n.config.onMutate(t,this,r);let e=await this.options.onMutate?.(t,r);e!==this.state.context&&this.#i({type:`pending`,context:e,variables:t,isPaused:o})}let e=await i.start();return await this.#n.config.onSuccess?.(e,t,this.state.context,this,r),await this.options.onSuccess?.(e,t,this.state.context,r),await this.#n.config.onSettled?.(e,null,this.state.variables,this.state.context,this,r),await this.options.onSettled?.(e,null,t,this.state.context,r),this.#i({type:`success`,data:e}),e}catch(e){try{await this.#n.config.onError?.(e,t,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onError?.(e,t,this.state.context,r)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,e,this.state.variables,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,e,t,this.state.context,r)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:e}),e}finally{this.#r===i&&(this.#r=void 0),this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),n.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function i(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}export{i as n,r as t};
1
+ import{h as e,m as t,v as n}from"./query-keys-BloKtaXJ.js";var r=class extends t{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||i(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??(this.state.status===`pending`?this.execute(this.state.variables):Promise.resolve())}async execute(t){let n=()=>{this.#i({type:`continue`})},r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey},i=this.#r=e({fn:()=>this.options.mutationFn?this.options.mutationFn(t,r):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)}),a=this.state.status===`pending`,o=!i.canStart();try{if(a)n();else{this.#i({type:`pending`,variables:t,isPaused:o}),this.#n.config.onMutate&&await this.#n.config.onMutate(t,this,r);let e=await this.options.onMutate?.(t,r);e!==this.state.context&&this.#i({type:`pending`,context:e,variables:t,isPaused:o})}let e=await i.start();return await this.#n.config.onSuccess?.(e,t,this.state.context,this,r),await this.options.onSuccess?.(e,t,this.state.context,r),await this.#n.config.onSettled?.(e,null,this.state.variables,this.state.context,this,r),await this.options.onSettled?.(e,null,t,this.state.context,r),this.#i({type:`success`,data:e}),e}catch(e){try{await this.#n.config.onError?.(e,t,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onError?.(e,t,this.state.context,r)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,e,this.state.variables,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,e,t,this.state.context,r)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:e}),e}finally{this.#r===i&&(this.#r=void 0),this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),n.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function i(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}export{i as n,r as t};
@@ -0,0 +1 @@
1
+ import{s as e}from"./numbers-CEagj6ZZ.js";import{E as t,c as n,s as r,v as i,w as a}from"./assert-DbRA8EG2.js";import{a as o,i as s,l as c,o as l,t as u}from"./query-keys-BloKtaXJ.js";import{t as d}from"./useMutation-BQqCRNIi.js";function f(){return a({queryKey:u.network.pools,queryFn:e=>l(`/network/pools`,{signal:i(e)}).then(r),staleTime:s.staleTime,gcTime:s.gcTime})}function p(e){return a({queryKey:u.network.poolHealthEvents(e??``),queryFn:t=>l(`/network/pools/${encodeURIComponent(e??``)}/health-events`,{signal:i(t)}),enabled:e!==void 0})}function m(){return d({mutationFn:({poolId:e,providerId:t})=>l(`/network/pools/${encodeURIComponent(e)}/provider-probe`,{method:`POST`,body:JSON.stringify({providerId:t})})})}function h(){let e=t();return d({mutationFn:e=>l(`/network/pools/relay/deploy`,{method:`POST`,body:JSON.stringify(e)}),onSuccess:async()=>{await e.invalidateQueries({queryKey:u.network.pools})}})}function g(){return d({mutationFn:e=>l(`/network/pools/test-batch`,{method:`POST`,body:JSON.stringify({targets:e})})})}function _(){let n=t();return d({mutationFn:({poolId:e,request:t})=>l(`/network/pools/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)}),onSuccess:async()=>{await n.invalidateQueries({queryKey:u.network.pools}),e.success(`Proxy updated`)},onError:t=>{e.error(`Could not update the proxy pool.`,c(t))}})}function v(){let n=t();return d({mutationFn:e=>l(`/network/pools/bulk/create`,{method:`POST`,body:JSON.stringify({targets:e})}),onSuccess:async()=>{await n.invalidateQueries({queryKey:u.network.pools})},onError:t=>{e.error(`Could not create the proxy pools.`,c(t))}})}function y(){let n=t();return d({mutationFn:e=>l(`/network/pools/bulk/delete`,{method:`POST`,body:JSON.stringify({ids:e})}),onSuccess:async()=>{await n.invalidateQueries({queryKey:u.network.pools})},onError:t=>{e.error(`Could not delete the proxy pools.`,c(t))}})}function b(){let n=t();return d({mutationFn:({ids:e,status:t})=>l(`/network/pools/bulk/status`,{method:`POST`,body:JSON.stringify({ids:e,status:t})}),onSuccess:async()=>{await n.invalidateQueries({queryKey:u.network.pools})},onError:t=>{e.error(`Could not update the proxy pools.`,c(t))}})}function x(e){return a({queryKey:[...u.network.pools,e,`health-events`],queryFn:t=>l(`/network/pools/${encodeURIComponent(e??``)}/health-events`,{signal:i(t)}),enabled:!!e,...s,refetchInterval:o.status})}function S(){let n=t();return d({mutationFn:e=>l(`/network/pools/${encodeURIComponent(e)}/recover`,{method:`POST`,body:`{}`}),onSuccess:async(t,r)=>{await Promise.all([n.invalidateQueries({queryKey:u.network.pools}),n.invalidateQueries({queryKey:[...u.network.pools,r,`health-events`]})]),e.success(`Proxy pool recovered`)},onError:t=>{e.error(`Could not recover the proxy pool.`,c(t))}})}function C(){let n=t();return d({mutationFn:e=>l(`/network/pools/${encodeURIComponent(e)}`,{method:`DELETE`}),onSuccess:async()=>{await n.invalidateQueries({queryKey:u.network.pools}),e.success(`Proxy pool deleted`)},onError:t=>{e.error(`Could not delete the proxy pool.`,c(t))}})}function w(){let e=t();return d({mutationFn:({poolId:e,providerId:t})=>l(`/network/pools/${encodeURIComponent(e)}/provider-probe`,{method:`POST`,body:JSON.stringify({providerId:t})}),onSuccess:async()=>{await e.invalidateQueries({queryKey:u.network.pools})}})}function T(){return d({mutationFn:({providerId:e,targets:t})=>l(`/network/pools/test-batch/provider`,{method:`POST`,body:JSON.stringify({providerId:e,targets:t})})})}function E(){let n=t();return d({mutationFn:e=>l(`/network/pools/${encodeURIComponent(e)}/health-check`,{method:`POST`,body:`{}`}),onSuccess:async()=>{await n.invalidateQueries({queryKey:u.network.pools}),e.success(`Health check complete`)},onError:t=>{e.error(`Health check failed.`,c(t))}})}function D(){let e=t();return d({mutationFn:({poolId:e,bytes:t})=>l(`/network/pools/${encodeURIComponent(e)}/speed-test`,{method:`POST`,body:JSON.stringify({bytes:t})}),onSuccess:async()=>{await e.invalidateQueries({queryKey:u.network.pools})}})}function O(){let n=t();return d({mutationFn:({poolId:e,providerId:t})=>l(`/network/pools/${encodeURIComponent(e)}/cooldowns/clear`,{method:`POST`,body:JSON.stringify(t?{providerId:t}:{})}),onSuccess:async()=>{await n.invalidateQueries({queryKey:u.network.pools}),e.success(`Provider cooldowns cleared`)},onError:t=>{e.error(`Could not clear provider cooldowns.`,c(t))}})}function k(){return a({queryKey:u.network.poolStrategy,queryFn:e=>l(`/network/pools/strategy`,{signal:i(e)}).then(n),staleTime:s.staleTime,gcTime:s.gcTime})}function A(){let n=t();return d({mutationFn:e=>l(`/network/pools/strategy`,{method:`PATCH`,body:JSON.stringify(e)}),onSuccess:async()=>{await n.invalidateQueries({queryKey:u.network.poolStrategy})},onError:t=>{e.error(`Could not update pool routing`,c(t))}})}export{D as _,h as a,f as c,k as d,T as f,b as g,S as h,y as i,p as l,w as m,v as n,E as o,g as p,C as r,x as s,O as t,m as u,_ as v,A as y};