codexLB-up 1.25.0b10__py3-none-any.whl

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 (827) hide show
  1. app/__init__.py +10 -0
  2. app/admin_cli.py +494 -0
  3. app/cli.py +339 -0
  4. app/codex_sessions_retag.py +487 -0
  5. app/core/__init__.py +0 -0
  6. app/core/audit/__init__.py +0 -0
  7. app/core/audit/service.py +216 -0
  8. app/core/audit/types.py +94 -0
  9. app/core/auth/__init__.py +236 -0
  10. app/core/auth/api_key_cache.py +65 -0
  11. app/core/auth/dashboard_access.py +429 -0
  12. app/core/auth/dashboard_mode.py +171 -0
  13. app/core/auth/dashboard_session_ttl.py +74 -0
  14. app/core/auth/dashboard_users_cache.py +120 -0
  15. app/core/auth/dependencies.py +710 -0
  16. app/core/auth/external_identity.py +78 -0
  17. app/core/auth/guardian.py +374 -0
  18. app/core/auth/models.py +49 -0
  19. app/core/auth/providers/__init__.py +129 -0
  20. app/core/auth/providers/oidc.py +838 -0
  21. app/core/auth/providers/registry.py +118 -0
  22. app/core/auth/refresh.py +394 -0
  23. app/core/auth/step_up.py +117 -0
  24. app/core/auth/totp.py +81 -0
  25. app/core/balancer/__init__.py +71 -0
  26. app/core/balancer/logic.py +1612 -0
  27. app/core/balancer/rendezvous_hash.py +21 -0
  28. app/core/balancer/types.py +21 -0
  29. app/core/bootstrap.py +172 -0
  30. app/core/cache/invalidation.py +426 -0
  31. app/core/clients/__init__.py +0 -0
  32. app/core/clients/codex.py +996 -0
  33. app/core/clients/codex_version.py +187 -0
  34. app/core/clients/codex_version_snapshot.py +2 -0
  35. app/core/clients/files.py +534 -0
  36. app/core/clients/headers.py +29 -0
  37. app/core/clients/http.py +511 -0
  38. app/core/clients/model_fetcher.py +276 -0
  39. app/core/clients/native_egress.py +1304 -0
  40. app/core/clients/oauth.py +477 -0
  41. app/core/clients/proxy.py +6089 -0
  42. app/core/clients/proxy_websocket.py +1411 -0
  43. app/core/clients/rate_limit_reset_credits.py +412 -0
  44. app/core/clients/stream_errors.py +12 -0
  45. app/core/clients/thread_cache_identity.py +347 -0
  46. app/core/clients/usage.py +467 -0
  47. app/core/clock.py +170 -0
  48. app/core/config/__init__.py +0 -0
  49. app/core/config/background_jobs.py +73 -0
  50. app/core/config/context_window_overrides.py +166 -0
  51. app/core/config/dashboard_overrides.py +145 -0
  52. app/core/config/inheritable.py +47 -0
  53. app/core/config/key_fingerprint.py +115 -0
  54. app/core/config/settings.py +872 -0
  55. app/core/config/settings_cache.py +100 -0
  56. app/core/config/spool_retention.py +217 -0
  57. app/core/config/tiers.py +174 -0
  58. app/core/conversation_archive.py +568 -0
  59. app/core/crypto.py +37 -0
  60. app/core/draining.py +11 -0
  61. app/core/errors.py +365 -0
  62. app/core/exceptions.py +155 -0
  63. app/core/handlers/__init__.py +3 -0
  64. app/core/handlers/exceptions.py +478 -0
  65. app/core/http_protocol.py +176 -0
  66. app/core/http_protocol_httptools.py +204 -0
  67. app/core/ingress_limits.py +17 -0
  68. app/core/metadata_store.py +18 -0
  69. app/core/metrics/__init__.py +0 -0
  70. app/core/metrics/middleware.py +74 -0
  71. app/core/metrics/prometheus.py +604 -0
  72. app/core/middleware/__init__.py +25 -0
  73. app/core/middleware/api_firewall.py +111 -0
  74. app/core/middleware/app_version.py +37 -0
  75. app/core/middleware/dashboard_auth_proxy.py +55 -0
  76. app/core/middleware/dashboard_csrf.py +177 -0
  77. app/core/middleware/dashboard_gzip.py +41 -0
  78. app/core/middleware/dashboard_overrides.py +59 -0
  79. app/core/middleware/firewall_cache.py +91 -0
  80. app/core/middleware/inflight.py +126 -0
  81. app/core/middleware/multipart_content_encoding.py +129 -0
  82. app/core/middleware/path_rewrite.py +148 -0
  83. app/core/middleware/request_body_limit.py +196 -0
  84. app/core/middleware/request_decompression.py +209 -0
  85. app/core/middleware/request_id.py +72 -0
  86. app/core/middleware/required_capability_http.py +116 -0
  87. app/core/middleware/trusted_proxy_headers.py +36 -0
  88. app/core/multipart.py +237 -0
  89. app/core/multipart_fields.py +91 -0
  90. app/core/openai/__init__.py +0 -0
  91. app/core/openai/chat_requests.py +493 -0
  92. app/core/openai/chat_responses.py +931 -0
  93. app/core/openai/contracts.py +46 -0
  94. app/core/openai/exceptions.py +24 -0
  95. app/core/openai/host_models.py +14 -0
  96. app/core/openai/images.py +413 -0
  97. app/core/openai/message_coercion.py +376 -0
  98. app/core/openai/model_refresh_scheduler.py +423 -0
  99. app/core/openai/model_registry.py +997 -0
  100. app/core/openai/model_registry_store.py +548 -0
  101. app/core/openai/models.py +172 -0
  102. app/core/openai/parsing.py +97 -0
  103. app/core/openai/requests.py +1980 -0
  104. app/core/openai/strict_schema.py +199 -0
  105. app/core/openai/tool_call_safety.py +99 -0
  106. app/core/openai/v1_requests.py +187 -0
  107. app/core/plan_types.py +90 -0
  108. app/core/prestop.py +202 -0
  109. app/core/rate_limiter/__init__.py +0 -0
  110. app/core/rate_limiter/db_rate_limiter.py +215 -0
  111. app/core/request_locality.py +473 -0
  112. app/core/resilience/__init__.py +0 -0
  113. app/core/resilience/backpressure.py +57 -0
  114. app/core/resilience/bulkhead.py +202 -0
  115. app/core/resilience/circuit_breaker.py +150 -0
  116. app/core/resilience/degradation.py +55 -0
  117. app/core/resilience/loop_lag_monitor.py +60 -0
  118. app/core/resilience/memory_monitor.py +137 -0
  119. app/core/resilience/network_recovery.py +256 -0
  120. app/core/resilience/overload.py +98 -0
  121. app/core/resilience/toggles.py +114 -0
  122. app/core/retention/__init__.py +0 -0
  123. app/core/retention/job.py +240 -0
  124. app/core/retention/scheduler.py +69 -0
  125. app/core/runtime_logging.py +601 -0
  126. app/core/scheduling/__init__.py +0 -0
  127. app/core/scheduling/leader_election.py +993 -0
  128. app/core/scheduling/leader_election_handle.py +25 -0
  129. app/core/server.py +140 -0
  130. app/core/shutdown.py +326 -0
  131. app/core/socket_peer.py +22 -0
  132. app/core/startup.py +41 -0
  133. app/core/timeout_invariants.py +347 -0
  134. app/core/tracing/__init__.py +0 -0
  135. app/core/tracing/otel.py +207 -0
  136. app/core/types.py +6 -0
  137. app/core/upstream_proxy/__init__.py +13 -0
  138. app/core/upstream_proxy/cache.py +130 -0
  139. app/core/upstream_proxy/resolver.py +189 -0
  140. app/core/upstream_proxy/types.py +104 -0
  141. app/core/usage/__init__.py +407 -0
  142. app/core/usage/depletion.py +109 -0
  143. app/core/usage/live_hub.py +41 -0
  144. app/core/usage/live_snapshots.py +174 -0
  145. app/core/usage/logs.py +212 -0
  146. app/core/usage/metadata_scheduler.py +118 -0
  147. app/core/usage/models.py +54 -0
  148. app/core/usage/pricing.py +576 -0
  149. app/core/usage/pricing_catalog.py +241 -0
  150. app/core/usage/pricing_snapshot.json +821 -0
  151. app/core/usage/quota.py +133 -0
  152. app/core/usage/refresh_policy.py +21 -0
  153. app/core/usage/refresh_scheduler.py +713 -0
  154. app/core/usage/reset_credits_refresh_scheduler.py +435 -0
  155. app/core/usage/types.py +168 -0
  156. app/core/utils/__init__.py +0 -0
  157. app/core/utils/json_guards.py +18 -0
  158. app/core/utils/locks.py +33 -0
  159. app/core/utils/masking.py +20 -0
  160. app/core/utils/proxy_env.py +104 -0
  161. app/core/utils/request_id.py +65 -0
  162. app/core/utils/retry.py +77 -0
  163. app/core/utils/shared_future.py +172 -0
  164. app/core/utils/sse.py +286 -0
  165. app/core/utils/time.py +24 -0
  166. app/db/__init__.py +0 -0
  167. app/db/account_identity_lock.py +56 -0
  168. app/db/alembic/__init__.py +1 -0
  169. app/db/alembic/env.py +70 -0
  170. app/db/alembic/revision_ids.py +43 -0
  171. app/db/alembic/versions/20260213_000000_base_schema.py +248 -0
  172. app/db/alembic/versions/20260213_000100_normalize_account_plan_types.py +45 -0
  173. app/db/alembic/versions/20260213_000200_add_request_logs_reasoning_effort.py +45 -0
  174. app/db/alembic/versions/20260213_000300_add_accounts_reset_at.py +45 -0
  175. app/db/alembic/versions/20260213_000400_add_accounts_chatgpt_account_id.py +45 -0
  176. app/db/alembic/versions/20260213_000500_add_dashboard_settings.py +70 -0
  177. app/db/alembic/versions/20260213_000600_add_dashboard_settings_totp.py +64 -0
  178. app/db/alembic/versions/20260213_000700_add_dashboard_settings_password.py +59 -0
  179. app/db/alembic/versions/20260213_000800_add_api_keys.py +87 -0
  180. app/db/alembic/versions/20260214_000000_add_api_key_limits.py +143 -0
  181. app/db/alembic/versions/20260215_000000_add_idx_logs_requested_at.py +38 -0
  182. app/db/alembic/versions/20260218_000000_add_api_key_usage_reservations.py +117 -0
  183. app/db/alembic/versions/20260218_000100_add_import_without_overwrite_and_drop_accounts_email_unique.py +198 -0
  184. app/db/alembic/versions/20260225_000000_add_dashboard_settings_routing_strategy.py +53 -0
  185. app/db/alembic/versions/20260228_020000_align_api_key_limit_enum_types.py +104 -0
  186. app/db/alembic/versions/20260228_030000_add_api_firewall_allowlist.py +42 -0
  187. app/db/alembic/versions/20260306_000000_add_request_logs_service_tier.py +45 -0
  188. app/db/alembic/versions/20260307_000000_add_api_key_enforcement_fields.py +56 -0
  189. app/db/alembic/versions/20260308_000000_add_sqlite_performance_indexes.py +41 -0
  190. app/db/alembic/versions/20260309_000000_add_additional_usage_history.py +71 -0
  191. app/db/alembic/versions/20260309_000000_request_logs_nullable_account_id.py +28 -0
  192. app/db/alembic/versions/20260310_000000_add_request_logs_transport.py +45 -0
  193. app/db/alembic/versions/20260310_000000_fix_postgresql_enum_value_casing.py +79 -0
  194. app/db/alembic/versions/20260310_120000_add_sticky_session_kinds_and_affinity_ttl.py +110 -0
  195. app/db/alembic/versions/20260312_000000_add_additional_usage_quota_key.py +193 -0
  196. app/db/alembic/versions/20260312_000000_split_sticky_sessions_primary_key_by_kind.py +96 -0
  197. app/db/alembic/versions/20260312_010000_merge_additional_usage_and_sticky_session_heads.py +25 -0
  198. app/db/alembic/versions/20260312_020000_merge_request_logs_transport_and_feature_heads.py +25 -0
  199. app/db/alembic/versions/20260312_020000_merge_request_logs_transport_and_sticky_heads.py +25 -0
  200. app/db/alembic/versions/20260312_120000_add_dashboard_upstream_stream_transport.py +62 -0
  201. app/db/alembic/versions/20260313_024500_merge_request_log_transport_heads.py +27 -0
  202. app/db/alembic/versions/20260319_100937_increase_prompt_cache_ttl_to_1800s.py +73 -0
  203. app/db/alembic/versions/20260319_111500_merge_prompt_cache_ttl_and_upstream_transport_heads.py +25 -0
  204. app/db/alembic/versions/20260319_183000_normalize_sqlite_account_status_casing.py +48 -0
  205. app/db/alembic/versions/20260320_000000_add_request_log_requested_actual_tiers.py +51 -0
  206. app/db/alembic/versions/20260321_190000_tighten_dashboard_db_indexes.py +64 -0
  207. app/db/alembic/versions/20260321_210000_merge_request_log_tiers_and_dashboard_index_heads.py +25 -0
  208. app/db/alembic/versions/20260325_000000_add_request_log_cost.py +193 -0
  209. app/db/alembic/versions/20260328_000000_add_rate_limit_attempts.py +48 -0
  210. app/db/alembic/versions/20260328_120000_add_request_log_ttft.py +37 -0
  211. app/db/alembic/versions/20260328_130000_add_audit_logs_table.py +45 -0
  212. app/db/alembic/versions/20260328_140000_add_scheduler_leader_table.py +39 -0
  213. app/db/alembic/versions/20260330_000000_add_cache_locality_settings.py +69 -0
  214. app/db/alembic/versions/20260330_010000_merge_scheduler_leader_and_cache_locality_heads.py +25 -0
  215. app/db/alembic/versions/20260330_020000_add_bridge_ring_members.py +46 -0
  216. app/db/alembic/versions/20260401_000000_add_api_key_enforced_service_tier.py +52 -0
  217. app/db/alembic/versions/20260401_000000_add_cache_invalidation.py +41 -0
  218. app/db/alembic/versions/20260401_020000_merge_cache_invalidation_and_api_key_service_tier_heads.py +22 -0
  219. app/db/alembic/versions/20260402_000000_switch_dashboard_routing_default_to_capacity_weighted.py +66 -0
  220. app/db/alembic/versions/20260403_000000_add_credit_api_key_limit_values.py +44 -0
  221. app/db/alembic/versions/20260406_000000_add_api_key_account_assignments.py +57 -0
  222. app/db/alembic/versions/20260406_010000_add_api_key_assignment_scope_flag.py +75 -0
  223. app/db/alembic/versions/20260407_000000_add_bridge_gateway_safe_mode.py +51 -0
  224. app/db/alembic/versions/20260407_010000_merge_api_key_assignment_and_bridge_gateway_heads.py +25 -0
  225. app/db/alembic/versions/20260408_000000_switch_import_without_overwrite_default_to_true.py +73 -0
  226. app/db/alembic/versions/20260408_010000_merge_import_without_overwrite_and_assignment_heads.py +25 -0
  227. app/db/alembic/versions/20260409_000000_add_http_bridge_sessions.py +130 -0
  228. app/db/alembic/versions/20260409_000000_switch_sticky_threads_and_prefer_earlier_reset_defaults_to_true.py +89 -0
  229. app/db/alembic/versions/20260409_010000_add_dashboard_settings_bootstrap_token.py +57 -0
  230. app/db/alembic/versions/20260409_010000_merge_http_bridge_and_import_without_overwrite_heads.py +25 -0
  231. app/db/alembic/versions/20260409_020000_fix_http_bridge_last_seen_index.py +46 -0
  232. app/db/alembic/versions/20260410_000000_backfill_pristine_dashboard_settings_defaults.py +77 -0
  233. app/db/alembic/versions/20260410_030000_restore_import_without_overwrite_default_true.py +73 -0
  234. app/db/alembic/versions/20260410_040000_merge_dashboard_defaults_and_import_default_heads.py +25 -0
  235. app/db/alembic/versions/20260413_000000_add_accounts_blocked_at.py +44 -0
  236. app/db/alembic/versions/20260415_160000_add_automations_tables.py +189 -0
  237. app/db/alembic/versions/20260415_160000_add_request_logs_response_lookup_index.py +67 -0
  238. app/db/alembic/versions/20260417_000000_add_request_log_plan_type.py +44 -0
  239. app/db/alembic/versions/20260418_190000_add_automation_runs_cycle_key.py +87 -0
  240. app/db/alembic/versions/20260419_000000_add_automation_run_cycle_metadata.py +56 -0
  241. app/db/alembic/versions/20260419_020000_add_automation_run_cycles_snapshot_tables.py +342 -0
  242. app/db/alembic/versions/20260421_000000_add_dashboard_session_ttl_setting.py +51 -0
  243. app/db/alembic/versions/20260421_120000_merge_request_log_lookup_and_plan_type_heads.py +25 -0
  244. app/db/alembic/versions/20260421_130000_merge_automation_and_request_log_heads.py +25 -0
  245. app/db/alembic/versions/20260422_103000_normalize_legacy_automation_run_cycle_keys.py +648 -0
  246. app/db/alembic/versions/20260423_120000_add_api_key_limit_reset_at_index.py +43 -0
  247. app/db/alembic/versions/20260424_000000_merge_dashboard_session_ttl_and_request_log_heads.py +25 -0
  248. app/db/alembic/versions/20260426_000000_add_dashboard_relative_availability_settings.py +68 -0
  249. app/db/alembic/versions/20260427_130000_add_warmup_model_and_request_kind.py +75 -0
  250. app/db/alembic/versions/20260506_000000_add_account_routing_policy.py +37 -0
  251. app/db/alembic/versions/20260509_000000_add_api_key_traffic_class.py +37 -0
  252. app/db/alembic/versions/20260509_010000_add_additional_quota_routing_policies.py +37 -0
  253. app/db/alembic/versions/20260513_000000_add_accounts_alias.py +44 -0
  254. app/db/alembic/versions/20260513_000000_add_api_key_apply_to_codex_model.py +59 -0
  255. app/db/alembic/versions/20260514_000000_add_request_logs_api_key_time_index.py +43 -0
  256. app/db/alembic/versions/20260515_000000_add_prefer_earlier_reset_window.py +47 -0
  257. app/db/alembic/versions/20260515_000000_soft_delete_request_logs_on_account_delete.py +83 -0
  258. app/db/alembic/versions/20260515_020000_add_split_sticky_budget_thresholds.py +62 -0
  259. app/db/alembic/versions/20260516_000000_add_sqlite_hot_path_indexes.py +75 -0
  260. app/db/alembic/versions/20260517_000000_merge_sqlite_hot_path_and_request_log_delete_heads.py +24 -0
  261. app/db/alembic/versions/20260518_000000_add_http_bridge_durable_input_prefix.py +44 -0
  262. app/db/alembic/versions/20260518_010000_merge_http_bridge_and_sqlite_recovery_heads.py +25 -0
  263. app/db/alembic/versions/20260518_120000_add_dashboard_guest_access.py +57 -0
  264. app/db/alembic/versions/20260520_000000_merge_api_key_and_http_bridge_heads.py +26 -0
  265. app/db/alembic/versions/20260520_010000_add_request_logs_api_key_account_index.py +45 -0
  266. app/db/alembic/versions/20260520_010000_merge_automation_and_api_key_heads.py +26 -0
  267. app/db/alembic/versions/20260520_030000_add_quota_planner.py +194 -0
  268. app/db/alembic/versions/20260520_040000_merge_quota_planner_and_request_log_index_heads.py +24 -0
  269. app/db/alembic/versions/20260521_000000_add_account_security_work_authorized.py +46 -0
  270. app/db/alembic/versions/20260521_000000_merge_dashboard_guest_and_api_key_heads.py +26 -0
  271. app/db/alembic/versions/20260521_000000_merge_prefer_reset_window_head.py +26 -0
  272. app/db/alembic/versions/20260521_000000_merge_warmup_and_request_log_index_heads.py +25 -0
  273. app/db/alembic/versions/20260522_000000_add_limit_warmup_trigger.py +195 -0
  274. app/db/alembic/versions/20260524_000000_merge_accounts_alias_and_reset_window_heads.py +24 -0
  275. app/db/alembic/versions/20260525_000000_add_usage_raw_window_latest_index.py +31 -0
  276. app/db/alembic/versions/20260526_000000_add_request_log_failure_metadata.py +100 -0
  277. app/db/alembic/versions/20260531_000000_add_account_workspace_identity.py +39 -0
  278. app/db/alembic/versions/20260531_000000_add_single_account_routing.py +42 -0
  279. app/db/alembic/versions/20260601_000000_merge_relative_availability_and_usage_raw_heads.py +24 -0
  280. app/db/alembic/versions/20260601_010000_add_api_key_usage_sections.py +58 -0
  281. app/db/alembic/versions/20260601_010000_add_routing_policy_persistence.py +67 -0
  282. app/db/alembic/versions/20260601_010000_merge_security_work_and_relative_availability_heads.py +25 -0
  283. app/db/alembic/versions/20260601_010000_merge_split_sticky_and_relative_usage_heads.py +25 -0
  284. app/db/alembic/versions/20260601_010000_merge_warmup_and_relative_availability_heads.py +25 -0
  285. app/db/alembic/versions/20260601_020000_merge_additional_quota_routing_and_relative_availability_heads.py +25 -0
  286. app/db/alembic/versions/20260601_020000_merge_quota_planner_and_relative_availability_heads.py +25 -0
  287. app/db/alembic/versions/20260601_020000_merge_reset_window_and_relative_availability_heads.py +25 -0
  288. app/db/alembic/versions/20260601_020000_merge_routing_policy_and_split_threshold_heads.py +24 -0
  289. app/db/alembic/versions/20260601_020000_merge_warmup_and_request_log_failure_heads.py +25 -0
  290. app/db/alembic/versions/20260601_030000_merge_single_account_and_routing_quota_heads.py +29 -0
  291. app/db/alembic/versions/20260601_040000_merge_security_work_and_routing_consolidation_heads.py +25 -0
  292. app/db/alembic/versions/20260601_050000_merge_quota_planner_and_routing_consolidation_heads.py +25 -0
  293. app/db/alembic/versions/20260602_050000_add_upstream_proxy_routing.py +164 -0
  294. app/db/alembic/versions/20260602_060000_merge_account_workspace_and_failure_heads.py +25 -0
  295. app/db/alembic/versions/20260602_070000_add_request_log_useragent_fields.py +86 -0
  296. app/db/alembic/versions/20260602_070000_merge_quota_planner_and_account_workspace_heads.py +25 -0
  297. app/db/alembic/versions/20260602_080000_merge_upstream_proxy_and_quota_planner_heads.py +25 -0
  298. app/db/alembic/versions/20260602_080000_merge_useragent_and_upstream_proxy_heads.py +24 -0
  299. app/db/alembic/versions/20260603_000000_add_weekly_pace_working_days.py +52 -0
  300. app/db/alembic/versions/20260603_000000_free_account_monthly_window.py +60 -0
  301. app/db/alembic/versions/20260604_000000_add_reauth_required_account_status.py +159 -0
  302. app/db/alembic/versions/20260604_010000_merge_automations_and_reauth_status_heads.py +25 -0
  303. app/db/alembic/versions/20260604_010000_merge_dashboard_guest_and_reauth_status_heads.py +25 -0
  304. app/db/alembic/versions/20260604_010000_merge_useragent_and_reauth_heads.py +24 -0
  305. app/db/alembic/versions/20260607_000000_merge_weekly_monthly_useragent_heads.py +28 -0
  306. app/db/alembic/versions/20260608_000000_add_hide_upstream_quota_from_api_keys.py +50 -0
  307. app/db/alembic/versions/20260611_000000_add_request_log_archive_request_id.py +47 -0
  308. app/db/alembic/versions/20260611_000000_merge_automations_and_weekly_monthly_useragent_heads.py +26 -0
  309. app/db/alembic/versions/20260611_000000_merge_dashboard_guest_and_weekly_useragent_heads.py +26 -0
  310. app/db/alembic/versions/20260611_010000_add_request_log_client_ip.py +57 -0
  311. app/db/alembic/versions/20260611_020000_merge_request_log_archive_and_client_ip_heads.py +26 -0
  312. app/db/alembic/versions/20260611_030000_merge_dashboard_guest_and_request_log_client_ip_heads.py +26 -0
  313. app/db/alembic/versions/20260613_000000_add_accounts_codex_installation_id.py +57 -0
  314. app/db/alembic/versions/20260613_010000_merge_installation_id_and_dashboard_weekly_heads.py +26 -0
  315. app/db/alembic/versions/20260615_000000_merge_automations_and_dashboard_guest_heads.py +26 -0
  316. app/db/alembic/versions/20260623_000000_add_limit_warmup_exhausted_threshold.py +51 -0
  317. app/db/alembic/versions/20260626_000000_add_http_downstream_transport_policy.py +46 -0
  318. app/db/alembic/versions/20260626_010000_add_request_logs_upstream_transport.py +31 -0
  319. app/db/alembic/versions/20260629_000000_add_dashboard_query_hot_path_indexes.py +53 -0
  320. app/db/alembic/versions/20260630_000000_add_limit_warmup_staggered_idle.py +47 -0
  321. app/db/alembic/versions/20260630_000000_merge_request_log_client_ip_and_dashboard_hot_path_heads.py +26 -0
  322. app/db/alembic/versions/20260630_010000_merge_warmup_and_request_log_dashboard_heads.py +26 -0
  323. app/db/alembic/versions/20260630_020000_merge_automations_and_main_heads.py +26 -0
  324. app/db/alembic/versions/20260630_020000_merge_warmup_threshold_and_main_heads.py +26 -0
  325. app/db/alembic/versions/20260630_030000_add_automation_run_model_snapshot.py +59 -0
  326. app/db/alembic/versions/20260630_040000_merge_automation_snapshot_and_warmup_threshold_heads.py +26 -0
  327. app/db/alembic/versions/20260630_050000_add_automation_run_prompt_snapshot.py +52 -0
  328. app/db/alembic/versions/20260701_000000_add_weekly_pace_smoothing_minutes.py +51 -0
  329. app/db/alembic/versions/20260702_000000_add_model_sources.py +176 -0
  330. app/db/alembic/versions/20260705_000000_add_model_source_audio_transcriptions.py +50 -0
  331. app/db/alembic/versions/20260705_000000_harden_dashboard_session_ttl.py +62 -0
  332. app/db/alembic/versions/20260706_000000_add_model_source_audio_per_minute.py +43 -0
  333. app/db/alembic/versions/20260707_000000_merge_model_sources_and_session_ttl.py +24 -0
  334. app/db/alembic/versions/20260707_010000_merge_automations_and_model_sources_heads.py +24 -0
  335. app/db/alembic/versions/20260707_020000_add_automation_job_account_scope.py +125 -0
  336. app/db/alembic/versions/20260709_000000_add_ttft_phase_observability.py +66 -0
  337. app/db/alembic/versions/20260711_000000_add_dashboard_prohibit_fast_mode.py +42 -0
  338. app/db/alembic/versions/20260711_010000_add_account_chatgpt_user_id.py +40 -0
  339. app/db/alembic/versions/20260711_020000_add_dashboard_account_concurrency_caps.py +71 -0
  340. app/db/alembic/versions/20260711_030000_add_limit_warmup_idle_threshold.py +51 -0
  341. app/db/alembic/versions/20260712_010000_add_account_usage_rollups.py +56 -0
  342. app/db/alembic/versions/20260712_020000_add_api_key_usage_rollups.py +53 -0
  343. app/db/alembic/versions/20260713_020000_add_model_registry_snapshot.py +42 -0
  344. app/db/alembic/versions/20260713_040000_add_account_refresh_claims.py +42 -0
  345. app/db/alembic/versions/20260713_040000_add_replica_guardrails.py +64 -0
  346. app/db/alembic/versions/20260713_070000_add_reset_credit_redeem_tables.py +58 -0
  347. app/db/alembic/versions/20260714_000000_add_oauth_flow_states.py +63 -0
  348. app/db/alembic/versions/20260715_000000_add_request_log_queue_latency.py +44 -0
  349. app/db/alembic/versions/20260716_000000_add_oauth_device_flow_slots.py +41 -0
  350. app/db/alembic/versions/20260716_010000_add_dashboard_retention_settings.py +48 -0
  351. app/db/alembic/versions/20260716_010000_add_reset_credit_display_settings.py +73 -0
  352. app/db/alembic/versions/20260717_000000_add_http_bridge_retry_circuits.py +47 -0
  353. app/db/alembic/versions/20260717_000000_merge_retention_and_reset_credit_display_heads.py +26 -0
  354. app/db/alembic/versions/20260717_000000_optimize_dashboard_hot_path_indexes.py +162 -0
  355. app/db/alembic/versions/20260717_000001_merge_retry_circuits_and_dashboard_indexes.py +22 -0
  356. app/db/alembic/versions/20260720_000000_add_request_log_conversation_id.py +57 -0
  357. app/db/alembic/versions/20260722_000000_backfill_request_log_useragent_families.py +40 -0
  358. app/db/alembic/versions/20260724_000000_add_request_usage_time_rollups.py +176 -0
  359. app/db/alembic/versions/20260724_000000_merge_request_log_schema_heads.py +33 -0
  360. app/db/alembic/versions/20260725_000000_add_http_bridge_pending_tool_calls.py +43 -0
  361. app/db/alembic/versions/20260726_000000_add_account_plan_downgrade_observations.py +44 -0
  362. app/db/alembic/versions/20260726_000000_repair_request_usage_rollups_after_merge.py +37 -0
  363. app/db/alembic/versions/20260727_000000_add_sticky_session_continuity_abandoned_at.py +45 -0
  364. app/db/alembic/versions/20260728_000000_merge_pending_tool_calls_and_rollup_repair_heads.py +31 -0
  365. app/db/alembic/versions/20260730_000000_add_api_key_fair_share_threshold.py +44 -0
  366. app/db/alembic/versions/20260730_000000_add_http_bridge_recovery_attempts.py +60 -0
  367. app/db/alembic/versions/20260731_000000_add_capability_lineage_markers.py +38 -0
  368. app/db/alembic/versions/20260803_000000_merge_http_bridge_recovery_and_capability_lineage_heads.py +30 -0
  369. app/db/alembic/versions/20260804_000000_add_http_bridge_operations.py +63 -0
  370. app/db/alembic/versions/20260804_000001_add_global_http_bridge_operation_fingerprint.py +53 -0
  371. app/db/alembic/versions/20260804_230000_add_request_log_connection_request_kind.py +43 -0
  372. app/db/alembic/versions/20260805_000000_add_http_bridge_operation_spool.py +75 -0
  373. app/db/alembic/versions/20260805_000001_finalize_http_bridge_operation_spool.py +65 -0
  374. app/db/alembic/versions/20260806_000000_add_additional_usage_alias_probe_indexes.py +84 -0
  375. app/db/alembic/versions/20260806_000000_add_anonymous_telemetry.py +49 -0
  376. app/db/alembic/versions/20260806_010000_add_conversation_presence_rollup.py +72 -0
  377. app/db/alembic/versions/20260806_020000_add_usage_history_bulk_covering_indexes.py +99 -0
  378. app/db/alembic/versions/20260806_030000_add_api_key_allowed_reasoning_efforts.py +65 -0
  379. app/db/alembic/versions/20260806_120000_add_http_bridge_owner_process_epoch.py +57 -0
  380. app/db/alembic/versions/20260807_000000_merge_http_bridge_operation_spool_and_latest_main.py +24 -0
  381. app/db/alembic/versions/20260808_000000_tune_usage_history_autovacuum.py +54 -0
  382. app/db/alembic/versions/20260810_000000_add_http_bridge_recovery_dispatch_count.py +44 -0
  383. app/db/alembic/versions/20260811_000000_add_hourly_rollup_cancelled_count.py +92 -0
  384. app/db/alembic/versions/20260812_000000_merge_recovery_dispatch_and_hourly_cancelled_heads.py +25 -0
  385. app/db/alembic/versions/20260812_120000_add_sticky_abandonment_scope.py +43 -0
  386. app/db/alembic/versions/20260813_000000_add_file_account_pins.py +40 -0
  387. app/db/alembic/versions/20260816_000000_add_account_pending_deletion.py +81 -0
  388. app/db/alembic/versions/20260816_000000_add_model_source_embeddings.py +50 -0
  389. app/db/alembic/versions/20260821_000000_add_retry_circuit_admission_generation.py +49 -0
  390. app/db/alembic/versions/20260826_000000_add_http_bridge_event_chunks.py +107 -0
  391. app/db/alembic/versions/20260828_000000_add_accounts_chatgpt_identity_index.py +55 -0
  392. app/db/alembic/versions/20260830_000000_add_quota_warmup_claim_expiry.py +83 -0
  393. app/db/alembic/versions/20260908_000000_add_guest_session_generation.py +37 -0
  394. app/db/alembic/versions/20260908_000000_add_subscription_overflow.py +140 -0
  395. app/db/alembic/versions/20260908_000000_replace_upstream_stream_transport_default_sentinel.py +50 -0
  396. app/db/alembic/versions/20260908_020000_merge_overflow_transport_heads.py +27 -0
  397. app/db/alembic/versions/20260909_000000_add_dashboard_roles.py +72 -0
  398. app/db/alembic/versions/20260909_010000_add_dashboard_users.py +183 -0
  399. app/db/alembic/versions/20260909_020000_reproject_compat_admin_credentials.py +105 -0
  400. app/db/alembic/versions/20260909_030000_add_audit_actor_columns.py +103 -0
  401. app/db/alembic/versions/20260909_030000_dashboard_resilience_toggle_settings.py +63 -0
  402. app/db/alembic/versions/20260909_040000_add_dashboard_user_invites.py +54 -0
  403. app/db/alembic/versions/20260909_040000_dashboard_timeout_settings.py +68 -0
  404. app/db/alembic/versions/20260909_050000_dashboard_routing_overload_settings.py +65 -0
  405. app/db/alembic/versions/20260909_060000_add_report_rollup.py +74 -0
  406. app/db/alembic/versions/20260909_070000_automation_run_claim_budget.py +50 -0
  407. app/db/alembic/versions/20260909_080000_dashboard_stream_bridge_budgets.py +62 -0
  408. app/db/alembic/versions/20260909_090000_dashboard_background_job_toggles.py +63 -0
  409. app/db/alembic/versions/20260909_100000_dashboard_codex_prewarm.py +49 -0
  410. app/db/alembic/versions/20260909_110000_model_context_window_overrides.py +45 -0
  411. app/db/alembic/versions/20260909_120000_dashboard_conversation_archive.py +48 -0
  412. app/db/alembic/versions/20260909_130000_add_request_logs_live_facet_indexes.py +96 -0
  413. app/db/alembic/versions/20260910_000000_add_totp_required_for_admin_role.py +44 -0
  414. app/db/alembic/versions/20260910_000000_request_logs_missing_cost_index.py +52 -0
  415. app/db/alembic/versions/20260910_010000_add_dashboard_auth_providers.py +134 -0
  416. app/db/alembic/versions/20260910_010000_dashboard_spool_retention.py +52 -0
  417. app/db/alembic/versions/20260910_020000_add_dashboard_role_mappings.py +74 -0
  418. app/db/alembic/versions/20260910_143000_request_log_affinity.py +28 -0
  419. app/db/alembic/versions/20260910_180000_merge_affinity_guest_heads.py +17 -0
  420. app/db/alembic/versions/20260910_200000_merge_affinity_identity_heads.py +17 -0
  421. app/db/alembic/versions/20260910_220000_merge_affinity_invite_heads.py +17 -0
  422. app/db/alembic/versions/20260911_000000_model_source_pins_kind_expires_index.py +43 -0
  423. app/db/alembic/versions/20260911_010000_merge_pin_index_and_affinity_heads.py +17 -0
  424. app/db/alembic/versions/20260911_020000_add_http_bridge_terminal_append_phase.py +54 -0
  425. app/db/alembic/versions/20260911_030000_add_local_login_policy.py +48 -0
  426. app/db/alembic/versions/20260911_040000_add_thread_cache_identity_mode.py +48 -0
  427. app/db/alembic/versions/20260911_060000_add_bridge_session_continuity_abandonment.py +40 -0
  428. app/db/alembic/versions/20260912_000000_merge_thread_cache_and_bridge_retirement_heads.py +22 -0
  429. app/db/alembic/versions/20260912_010000_drop_legacy_dashboard_credentials.py +140 -0
  430. app/db/alembic/versions/20260913_000000_add_oidc_provider_flow.py +134 -0
  431. app/db/alembic/versions/20260914_000000_add_scim_tokens.py +78 -0
  432. app/db/alembic/versions/20260914_000000_drop_subscription_overflow_schema.py +132 -0
  433. app/db/alembic/versions/20260918_000000_merge_scim_and_overflow_heads.py +17 -0
  434. app/db/alembic/versions/__init__.py +1 -0
  435. app/db/backup.py +64 -0
  436. app/db/migrate.py +1249 -0
  437. app/db/migration_lock.py +160 -0
  438. app/db/migration_url.py +18 -0
  439. app/db/models.py +3100 -0
  440. app/db/recover.py +244 -0
  441. app/db/session.py +1295 -0
  442. app/db/snapshot.py +46 -0
  443. app/db/sqlite_lock_retry.py +190 -0
  444. app/db/sqlite_utils.py +549 -0
  445. app/dependencies.py +462 -0
  446. app/main.py +1240 -0
  447. app/modules/__init__.py +0 -0
  448. app/modules/accounts/__init__.py +0 -0
  449. app/modules/accounts/api.py +426 -0
  450. app/modules/accounts/auth_manager.py +1439 -0
  451. app/modules/accounts/background_repository.py +160 -0
  452. app/modules/accounts/deletion.py +540 -0
  453. app/modules/accounts/mappers.py +654 -0
  454. app/modules/accounts/refresh_claims.py +352 -0
  455. app/modules/accounts/repository.py +1679 -0
  456. app/modules/accounts/schemas.py +308 -0
  457. app/modules/accounts/service.py +809 -0
  458. app/modules/accounts/usage_rollup.py +486 -0
  459. app/modules/accounts/usage_rollup_scheduler.py +75 -0
  460. app/modules/accounts/usage_time_rollup.py +1037 -0
  461. app/modules/accounts/usage_time_rollup_read.py +522 -0
  462. app/modules/api_keys/__init__.py +1 -0
  463. app/modules/api_keys/api.py +344 -0
  464. app/modules/api_keys/last_used_coalescer.py +216 -0
  465. app/modules/api_keys/limit_windows.py +41 -0
  466. app/modules/api_keys/repository.py +1200 -0
  467. app/modules/api_keys/reset_scheduler.py +85 -0
  468. app/modules/api_keys/schemas.py +135 -0
  469. app/modules/api_keys/service.py +2123 -0
  470. app/modules/audit/__init__.py +0 -0
  471. app/modules/audit/api.py +88 -0
  472. app/modules/audit/repository.py +74 -0
  473. app/modules/audit/schemas.py +33 -0
  474. app/modules/audit/service.py +71 -0
  475. app/modules/auth_providers/__init__.py +0 -0
  476. app/modules/auth_providers/api.py +127 -0
  477. app/modules/auth_providers/config.py +343 -0
  478. app/modules/auth_providers/repository.py +101 -0
  479. app/modules/auth_providers/schemas.py +88 -0
  480. app/modules/auth_providers/seed.py +105 -0
  481. app/modules/auth_providers/service.py +289 -0
  482. app/modules/automations/__init__.py +1 -0
  483. app/modules/automations/api.py +369 -0
  484. app/modules/automations/repository.py +1896 -0
  485. app/modules/automations/scheduler.py +107 -0
  486. app/modules/automations/schemas.py +158 -0
  487. app/modules/automations/service.py +2548 -0
  488. app/modules/cache_isolation_probe/__init__.py +0 -0
  489. app/modules/cache_isolation_probe/api.py +188 -0
  490. app/modules/cache_isolation_probe/prefix.py +144 -0
  491. app/modules/cache_isolation_probe/schemas.py +94 -0
  492. app/modules/cache_isolation_probe/sender.py +229 -0
  493. app/modules/cache_isolation_probe/service.py +525 -0
  494. app/modules/conversation_archive/__init__.py +1 -0
  495. app/modules/conversation_archive/api.py +101 -0
  496. app/modules/conversation_archive/schemas.py +28 -0
  497. app/modules/conversation_archive/service.py +165 -0
  498. app/modules/dashboard/__init__.py +1 -0
  499. app/modules/dashboard/api.py +106 -0
  500. app/modules/dashboard/builders.py +107 -0
  501. app/modules/dashboard/repository.py +304 -0
  502. app/modules/dashboard/schemas.py +148 -0
  503. app/modules/dashboard/service.py +534 -0
  504. app/modules/dashboard/timeframes.py +19 -0
  505. app/modules/dashboard/weekly_pace.py +617 -0
  506. app/modules/dashboard_auth/__init__.py +1 -0
  507. app/modules/dashboard_auth/api.py +1344 -0
  508. app/modules/dashboard_auth/oidc_api.py +753 -0
  509. app/modules/dashboard_auth/oidc_flows.py +330 -0
  510. app/modules/dashboard_auth/repository.py +452 -0
  511. app/modules/dashboard_auth/schemas.py +232 -0
  512. app/modules/dashboard_auth/service.py +1384 -0
  513. app/modules/dashboard_roles/__init__.py +0 -0
  514. app/modules/dashboard_roles/api.py +64 -0
  515. app/modules/dashboard_roles/repository.py +54 -0
  516. app/modules/dashboard_roles/schemas.py +29 -0
  517. app/modules/dashboard_roles/seed.py +80 -0
  518. app/modules/dashboard_roles/service.py +142 -0
  519. app/modules/dashboard_users/__init__.py +0 -0
  520. app/modules/dashboard_users/api.py +278 -0
  521. app/modules/dashboard_users/break_glass.py +169 -0
  522. app/modules/dashboard_users/credentials.py +18 -0
  523. app/modules/dashboard_users/identity_resolver.py +665 -0
  524. app/modules/dashboard_users/repository.py +725 -0
  525. app/modules/dashboard_users/schemas.py +117 -0
  526. app/modules/dashboard_users/service.py +1054 -0
  527. app/modules/firewall/__init__.py +1 -0
  528. app/modules/firewall/api.py +78 -0
  529. app/modules/firewall/repository.py +51 -0
  530. app/modules/firewall/schemas.py +28 -0
  531. app/modules/firewall/service.py +93 -0
  532. app/modules/fleet/__init__.py +1 -0
  533. app/modules/fleet/api.py +177 -0
  534. app/modules/fleet/mappers.py +56 -0
  535. app/modules/fleet/observability.py +372 -0
  536. app/modules/fleet/schemas.py +119 -0
  537. app/modules/health/__init__.py +0 -0
  538. app/modules/health/api.py +246 -0
  539. app/modules/health/schemas.py +27 -0
  540. app/modules/limit_warmup/__init__.py +1 -0
  541. app/modules/limit_warmup/repository.py +159 -0
  542. app/modules/limit_warmup/service.py +1001 -0
  543. app/modules/model_sources/__init__.py +1 -0
  544. app/modules/model_sources/api.py +99 -0
  545. app/modules/model_sources/catalog.py +307 -0
  546. app/modules/model_sources/forwarding.py +1435 -0
  547. app/modules/model_sources/projection.py +55 -0
  548. app/modules/model_sources/repository.py +201 -0
  549. app/modules/model_sources/schemas.py +79 -0
  550. app/modules/model_sources/selection.py +166 -0
  551. app/modules/model_sources/service.py +236 -0
  552. app/modules/oauth/__init__.py +0 -0
  553. app/modules/oauth/api.py +101 -0
  554. app/modules/oauth/repository.py +238 -0
  555. app/modules/oauth/schemas.py +49 -0
  556. app/modules/oauth/service.py +1196 -0
  557. app/modules/oauth/templates/oauth_success.html +122 -0
  558. app/modules/proxy/__init__.py +0 -0
  559. app/modules/proxy/_load_balancer/__init__.py +1 -0
  560. app/modules/proxy/_load_balancer/error_rate.py +116 -0
  561. app/modules/proxy/_load_balancer/latency_cohort.py +154 -0
  562. app/modules/proxy/_load_balancer/model_eligibility.py +250 -0
  563. app/modules/proxy/_load_balancer/opportunistic_admission.py +350 -0
  564. app/modules/proxy/_load_balancer/overload_backoff.py +394 -0
  565. app/modules/proxy/_load_balancer/sticky_selection.py +2417 -0
  566. app/modules/proxy/_load_balancer/throughput_cohort.py +233 -0
  567. app/modules/proxy/_load_balancer/ttft_cohort.py +214 -0
  568. app/modules/proxy/_load_balancer/tunables.py +97 -0
  569. app/modules/proxy/_load_balancer/types.py +96 -0
  570. app/modules/proxy/_load_balancer/unbound_selection.py +534 -0
  571. app/modules/proxy/_service/__init__.py +6 -0
  572. app/modules/proxy/_service/api_key_usage.py +745 -0
  573. app/modules/proxy/_service/clock_budget.py +38 -0
  574. app/modules/proxy/_service/codex_control.py +611 -0
  575. app/modules/proxy/_service/compact.py +2211 -0
  576. app/modules/proxy/_service/file_ops.py +749 -0
  577. app/modules/proxy/_service/http_bridge/__init__.py +3 -0
  578. app/modules/proxy/_service/http_bridge/accepted_replay.py +331 -0
  579. app/modules/proxy/_service/http_bridge/account_sessions.py +57 -0
  580. app/modules/proxy/_service/http_bridge/activity.py +178 -0
  581. app/modules/proxy/_service/http_bridge/helpers.py +3959 -0
  582. app/modules/proxy/_service/http_bridge/mixin.py +2435 -0
  583. app/modules/proxy/_service/http_bridge/owner_forwarding.py +609 -0
  584. app/modules/proxy/_service/http_bridge/protocol.py +167 -0
  585. app/modules/proxy/_service/http_bridge/proxy_failover.py +58 -0
  586. app/modules/proxy/_service/http_bridge/quarantine.py +443 -0
  587. app/modules/proxy/_service/http_bridge/request_submit.py +4582 -0
  588. app/modules/proxy/_service/http_bridge/retry_circuit.py +2442 -0
  589. app/modules/proxy/_service/http_bridge/service_stubs.py +492 -0
  590. app/modules/proxy/_service/http_bridge/session_registry.py +778 -0
  591. app/modules/proxy/_service/http_bridge/streaming.py +5328 -0
  592. app/modules/proxy/_service/http_bridge/upstream_events.py +4538 -0
  593. app/modules/proxy/_service/observability.py +410 -0
  594. app/modules/proxy/_service/rate_limit.py +361 -0
  595. app/modules/proxy/_service/realtime_live.py +655 -0
  596. app/modules/proxy/_service/refresh.py +154 -0
  597. app/modules/proxy/_service/request_log.py +585 -0
  598. app/modules/proxy/_service/response_create.py +930 -0
  599. app/modules/proxy/_service/streaming/__init__.py +3 -0
  600. app/modules/proxy/_service/streaming/helpers.py +1317 -0
  601. app/modules/proxy/_service/streaming/mixin.py +1100 -0
  602. app/modules/proxy/_service/streaming/protocol.py +32 -0
  603. app/modules/proxy/_service/streaming/retry.py +3762 -0
  604. app/modules/proxy/_service/support.py +2122 -0
  605. app/modules/proxy/_service/transcribe.py +434 -0
  606. app/modules/proxy/_service/warmup.py +483 -0
  607. app/modules/proxy/_service/websocket/__init__.py +3 -0
  608. app/modules/proxy/_service/websocket/helpers.py +2360 -0
  609. app/modules/proxy/_service/websocket/mixin.py +7285 -0
  610. app/modules/proxy/_service/websocket/protocol.py +74 -0
  611. app/modules/proxy/account_cache.py +229 -0
  612. app/modules/proxy/account_eligibility.py +87 -0
  613. app/modules/proxy/additional_model_limits.py +40 -0
  614. app/modules/proxy/affinity.py +830 -0
  615. app/modules/proxy/affinity_observation.py +101 -0
  616. app/modules/proxy/api.py +10254 -0
  617. app/modules/proxy/api_key_usage.py +113 -0
  618. app/modules/proxy/cap_partitioning.py +280 -0
  619. app/modules/proxy/capability_lineage.py +65 -0
  620. app/modules/proxy/capability_lineage_repository.py +82 -0
  621. app/modules/proxy/capability_routing.py +253 -0
  622. app/modules/proxy/continuity.py +112 -0
  623. app/modules/proxy/downstream_delivery.py +277 -0
  624. app/modules/proxy/durable_bridge_coordinator.py +1217 -0
  625. app/modules/proxy/durable_bridge_repository.py +4516 -0
  626. app/modules/proxy/durable_bridge_runtime.py +9 -0
  627. app/modules/proxy/durable_bridge_transcript_codec.py +122 -0
  628. app/modules/proxy/fair_share.py +131 -0
  629. app/modules/proxy/file_pin_repository.py +210 -0
  630. app/modules/proxy/helpers.py +439 -0
  631. app/modules/proxy/http_bridge_event_batcher.py +613 -0
  632. app/modules/proxy/http_bridge_forwarding.py +797 -0
  633. app/modules/proxy/http_continuation.py +76 -0
  634. app/modules/proxy/images_observability.py +62 -0
  635. app/modules/proxy/images_service.py +1054 -0
  636. app/modules/proxy/load_balancer.py +3016 -0
  637. app/modules/proxy/rate_limit_cache.py +46 -0
  638. app/modules/proxy/replay_safety.py +1063 -0
  639. app/modules/proxy/repo_bundle.py +31 -0
  640. app/modules/proxy/request_policy.py +1054 -0
  641. app/modules/proxy/ring_membership.py +251 -0
  642. app/modules/proxy/schemas.py +345 -0
  643. app/modules/proxy/selection_errors.py +41 -0
  644. app/modules/proxy/service.py +2600 -0
  645. app/modules/proxy/source_admission.py +125 -0
  646. app/modules/proxy/source_dispatch.py +999 -0
  647. app/modules/proxy/sticky_repository.py +831 -0
  648. app/modules/proxy/thread_anchors.py +491 -0
  649. app/modules/proxy/tool_call_dedupe.py +802 -0
  650. app/modules/proxy/types.py +54 -0
  651. app/modules/proxy/work_admission.py +121 -0
  652. app/modules/quota_planner/__init__.py +1 -0
  653. app/modules/quota_planner/api.py +276 -0
  654. app/modules/quota_planner/logic.py +743 -0
  655. app/modules/quota_planner/repository.py +722 -0
  656. app/modules/quota_planner/scheduler.py +212 -0
  657. app/modules/quota_planner/schemas.py +102 -0
  658. app/modules/quota_planner/warmup.py +693 -0
  659. app/modules/rate_limit_reset_credits/__init__.py +0 -0
  660. app/modules/rate_limit_reset_credits/api.py +601 -0
  661. app/modules/rate_limit_reset_credits/redeem_coordination.py +274 -0
  662. app/modules/rate_limit_reset_credits/store.py +114 -0
  663. app/modules/reports/__init__.py +1 -0
  664. app/modules/reports/api.py +134 -0
  665. app/modules/reports/cache.py +74 -0
  666. app/modules/reports/filters.py +27 -0
  667. app/modules/reports/repository.py +525 -0
  668. app/modules/reports/rollup.py +150 -0
  669. app/modules/reports/rollup_read.py +148 -0
  670. app/modules/reports/schemas.py +123 -0
  671. app/modules/reports/service.py +287 -0
  672. app/modules/reports/thread_identity.py +256 -0
  673. app/modules/request_logs/__init__.py +0 -0
  674. app/modules/request_logs/api.py +224 -0
  675. app/modules/request_logs/cost_backfill.py +154 -0
  676. app/modules/request_logs/mappers.py +97 -0
  677. app/modules/request_logs/repository.py +1765 -0
  678. app/modules/request_logs/schemas.py +145 -0
  679. app/modules/request_logs/service.py +348 -0
  680. app/modules/role_mappings/__init__.py +0 -0
  681. app/modules/role_mappings/api.py +206 -0
  682. app/modules/role_mappings/matching.py +55 -0
  683. app/modules/role_mappings/repository.py +106 -0
  684. app/modules/role_mappings/schemas.py +67 -0
  685. app/modules/role_mappings/service.py +334 -0
  686. app/modules/runtime/__init__.py +1 -0
  687. app/modules/runtime/api.py +18 -0
  688. app/modules/runtime/schemas.py +14 -0
  689. app/modules/runtime/service.py +218 -0
  690. app/modules/scim/__init__.py +1 -0
  691. app/modules/scim/api.py +194 -0
  692. app/modules/scim/dependencies.py +112 -0
  693. app/modules/scim/errors.py +77 -0
  694. app/modules/scim/management_api.py +156 -0
  695. app/modules/scim/repository.py +212 -0
  696. app/modules/scim/schemas.py +145 -0
  697. app/modules/scim/service.py +786 -0
  698. app/modules/scim/tokens.py +43 -0
  699. app/modules/settings/__init__.py +1 -0
  700. app/modules/settings/api.py +1677 -0
  701. app/modules/settings/repository.py +606 -0
  702. app/modules/settings/schemas.py +496 -0
  703. app/modules/settings/service.py +769 -0
  704. app/modules/shared/__init__.py +0 -0
  705. app/modules/shared/schemas.py +22 -0
  706. app/modules/sticky_sessions/__init__.py +1 -0
  707. app/modules/sticky_sessions/api.py +118 -0
  708. app/modules/sticky_sessions/cleanup_scheduler.py +487 -0
  709. app/modules/sticky_sessions/schemas.py +78 -0
  710. app/modules/sticky_sessions/service.py +196 -0
  711. app/modules/telemetry/__init__.py +5 -0
  712. app/modules/telemetry/api.py +115 -0
  713. app/modules/telemetry/clients.py +62 -0
  714. app/modules/telemetry/consent.py +115 -0
  715. app/modules/telemetry/scheduler.py +85 -0
  716. app/modules/telemetry/schemas.py +163 -0
  717. app/modules/telemetry/sender.py +221 -0
  718. app/modules/telemetry/snapshot.py +490 -0
  719. app/modules/usage/__init__.py +0 -0
  720. app/modules/usage/additional_quota_keys.py +379 -0
  721. app/modules/usage/api.py +45 -0
  722. app/modules/usage/background_repository.py +147 -0
  723. app/modules/usage/builders.py +559 -0
  724. app/modules/usage/depletion_service.py +277 -0
  725. app/modules/usage/live_ingest.py +356 -0
  726. app/modules/usage/mappers.py +29 -0
  727. app/modules/usage/plan_downgrade_observations.py +488 -0
  728. app/modules/usage/repository.py +1890 -0
  729. app/modules/usage/schemas.py +68 -0
  730. app/modules/usage/service.py +102 -0
  731. app/modules/usage/updater.py +1488 -0
  732. app/static/assets/Trans-Cj-J9mVA.js +1 -0
  733. app/static/assets/access-page-DHzZiXZi.js +1 -0
  734. app/static/assets/account-cost-donut-DGhfA4U8.js +1 -0
  735. app/static/assets/account-identifiers-CxbdLshZ.js +1 -0
  736. app/static/assets/account-status-DIsU5sUS.js +1 -0
  737. app/static/assets/account-trend-chart-BptlfwwQ.js +1 -0
  738. app/static/assets/accounts-page-Bbai8ift.js +3 -0
  739. app/static/assets/api-Dwa7XxPe.js +1 -0
  740. app/static/assets/api-client-dugX1Pti.js +55 -0
  741. app/static/assets/api-key-create-dialog-DnRm0oYN.js +1 -0
  742. app/static/assets/api-key-created-dialog-B6jkDG9f.js +1 -0
  743. app/static/assets/api-key-edit-dialog-Ck3Bnc3V.js +1 -0
  744. app/static/assets/api-trend-chart-BchCw7Hj.js +1 -0
  745. app/static/assets/apis-page-BvXz9c6i.js +2 -0
  746. app/static/assets/arrow-up-Dqh_KzJo.js +1 -0
  747. app/static/assets/arrow-up-down-LBRgVDGY.js +1 -0
  748. app/static/assets/automations-page-DQgNAJOR.js +3 -0
  749. app/static/assets/badge-DqMb9es0.js +1 -0
  750. app/static/assets/blur-email-HEvKagG2.js +1 -0
  751. app/static/assets/button-BjVmmiGW.js +1 -0
  752. app/static/assets/checkbox-apsl9vzk.js +1 -0
  753. app/static/assets/chevron-left-1d_pHVa5.js +1 -0
  754. app/static/assets/circle-alert-BS0xd_o1.js +1 -0
  755. app/static/assets/clsx-DB0hHKMi.js +1 -0
  756. app/static/assets/colors-BBy8GEtr.js +1 -0
  757. app/static/assets/copy-button-D7nAvOKR.js +1 -0
  758. app/static/assets/cost-per-day-chart-YdqlkZVM.js +1 -0
  759. app/static/assets/createLucideIcon-DBLzLNh2.js +1 -0
  760. app/static/assets/dashboard-page-CSdhBy0f.js +2 -0
  761. app/static/assets/distribution-metric-format-yZTy1ZEu.js +1 -0
  762. app/static/assets/donut-chart-Bxc69cra.js +1 -0
  763. app/static/assets/download-kQteIcsB.js +1 -0
  764. app/static/assets/ellipsis-B_5OgIre.js +1 -0
  765. app/static/assets/empty-state-JcA7tc8m.js +1 -0
  766. app/static/assets/es2015-bMH8YKZT.js +41 -0
  767. app/static/assets/es6-B264ni6W.js +69 -0
  768. app/static/assets/external-link-UVAOgMQ0.js +1 -0
  769. app/static/assets/i18n-BWqZ9Ua2.js +1 -0
  770. app/static/assets/inbox-B_RM2s1J.js +1 -0
  771. app/static/assets/index-DIpd264Z.js +23 -0
  772. app/static/assets/index-DMeLKRJx.css +2 -0
  773. app/static/assets/inherit-badge-QhTYVaU6.js +1 -0
  774. app/static/assets/invite-dialog-0CYh0GiQ.js +1 -0
  775. app/static/assets/iso-Bpe5Ihbb.js +1 -0
  776. app/static/assets/label-CGaLmLNf.js +1 -0
  777. app/static/assets/lazy-recharts-Pv8p9ArM.js +2 -0
  778. app/static/assets/loading-overlay-CzKQfHLI.js +1 -0
  779. app/static/assets/mini-quota-bar-cGT_t8Ae.js +1 -0
  780. app/static/assets/model-distribution-donut-BKjAfT48.js +1 -0
  781. app/static/assets/model-source-multi-select-D2d06Vc7.js +1 -0
  782. app/static/assets/multi-select-filter-KIA5qU6Z.js +1 -0
  783. app/static/assets/oauth-dialog-XeaGGDjS.js +1 -0
  784. app/static/assets/pagination-controls-D1Ypd0RU.js +1 -0
  785. app/static/assets/payload-CIYnGZz9.js +1 -0
  786. app/static/assets/queue-wait-chart-VoV7Yg9L.js +1 -0
  787. app/static/assets/report-chart-card-BXDliwcc.js +1 -0
  788. app/static/assets/reports-page-CGCJeMHG.js +3 -0
  789. app/static/assets/reset-credit-confirm-dialog-QOifTnVB.js +1 -0
  790. app/static/assets/rolldown-runtime-hePW80VL.js +1 -0
  791. app/static/assets/search-HfhqwERt.js +1 -0
  792. app/static/assets/select-Cl33bz-g.js +1 -0
  793. app/static/assets/settings-page-mZj01HYl.js +2 -0
  794. app/static/assets/shim-CZwyM4Q7.js +1 -0
  795. app/static/assets/skeleton-C_EUc4Rp.js +1 -0
  796. app/static/assets/sparkline-chart-DdNNsddM.js +1 -0
  797. app/static/assets/status-badge-CHHA5X6c.js +1 -0
  798. app/static/assets/switch-CzxgokcM.js +1 -0
  799. app/static/assets/table-DXaNSQ0G.js +1 -0
  800. app/static/assets/time-to-first-token-chart--68L0u_v.js +1 -0
  801. app/static/assets/tokens-per-day-chart-Cs82BFuE.js +1 -0
  802. app/static/assets/tokens-per-second-chart-AD2dfOn6.js +1 -0
  803. app/static/assets/totp-settings-CRHtxQ7j.js +1 -0
  804. app/static/assets/trash-D3KyWr1h.js +1 -0
  805. app/static/assets/use-account-quota-display-BPmrTBTC.js +1 -0
  806. app/static/assets/use-accounts-PWlVGw3z.js +1 -0
  807. app/static/assets/use-auth-CuDlW3iC.js +1 -0
  808. app/static/assets/use-chart-colors-DIu6tClI.js +1 -0
  809. app/static/assets/use-model-sources-Bul24JBu.js +1 -0
  810. app/static/assets/use-models-DUCPUuZg.js +1 -0
  811. app/static/assets/use-reduced-motion-hAm5r6_d.js +1 -0
  812. app/static/assets/useTranslation--56nHhlH.js +1 -0
  813. app/static/assets/useragent-distribution-donut-Dup6sf_n.js +1 -0
  814. app/static/assets/users-uIC3TIlE.js +1 -0
  815. app/static/assets/vendor-query-_bHZuxEx.js +1 -0
  816. app/static/assets/vendor-react-BVL0YZPW.js +9 -0
  817. app/static/favicon.svg +10 -0
  818. app/static/fonts/GeistSans-Variable.woff2 +0 -0
  819. app/static/fonts/jetbrains-mono-latin-ext.woff2 +0 -0
  820. app/static/fonts/jetbrains-mono-latin.woff2 +0 -0
  821. app/static/index.html +29 -0
  822. codexlb_up-1.25.0b10.dist-info/METADATA +124 -0
  823. codexlb_up-1.25.0b10.dist-info/RECORD +827 -0
  824. codexlb_up-1.25.0b10.dist-info/WHEEL +4 -0
  825. codexlb_up-1.25.0b10.dist-info/entry_points.txt +3 -0
  826. codexlb_up-1.25.0b10.dist-info/licenses/LICENSE +21 -0
  827. config/additional_quota_registry.json +11 -0
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t}from"./vendor-query-_bHZuxEx.js";import{t as n}from"./createLucideIcon-DBLzLNh2.js";import{a as r}from"./i18n-BWqZ9Ua2.js";import{a as i,c as a,d as o,l as s,n as c,r as l,s as u,u as d}from"./useTranslation--56nHhlH.js";var f={name:`activity`,size:24,node:[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]};f.node;var p=n(f),m={name:`flame`,size:24,node:[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]};m.node;var h=n(m),g={name:`zap`,size:24,node:[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`,key:`1v7up4`}]]};g.node;var _=n(g),v=e(t()),y={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,"!doctype":!0,"!DOCTYPE":!0},b=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?("[^"]*"|'[^']*')/g;function x(e){let t={type:`tag`,name:``,voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(y[n[1]]||e.charAt(e.length-2)===`/`)&&(t.voidElement=!0),t.name.startsWith(`!--`))){let t=e.indexOf(`-->`);return{type:`comment`,comment:t===-1?``:e.slice(4,t)}}let r=new RegExp(b),i=null;for(;i=r.exec(e),i!==null;)if(i[0].trim()){if(i[1]){let e=i[1].trim(),n=[e,null],a=e.indexOf(`=`);a>-1&&(n=[e.slice(0,a),e.slice(a+1)]),t.attrs[n[0]]=n[1],r.lastIndex--}else i[2]&&(t.attrs[i[2]]=i[3].trim().substring(1,i[3].length-1))}return t}var S=/<!--[\s\S]*?-->|<[a-zA-Z0-9\-!/](?:"[^"]*"|'[^']*'|[^'">])*>/g,C=/<\/?([^\s]+?)[/\s>]/,w=/^\s*$/,T=/^(script|style)$/i,E=`\0`,D=Object.create(null);function O(e){e.forEach(function(e){if(e.type===`text`)e.content=e.content.split(E).join(`<`);else if(e.type===`comment`)e.comment=e.comment.split(E).join(`<`);else{for(let t in e.attrs){let n=e.attrs[t];typeof n==`string`&&n.indexOf(E)>-1&&(e.attrs[t]=n.split(E).join(`<`))}e.children.length&&O(e.children)}})}function k(e,t){let n=t&&t.components||D,r=t&&t.allowedTags,i=!1;if(r){let t=typeof r==`function`?r:function(e){return r.indexOf(e)>-1},n=``,a=0;S.lastIndex=0;let o;for(;o=S.exec(e);){let r=o[0];n+=e.slice(a,o.index);let s=r.match(C);r.startsWith(`<!--`)||s&&t(s[1])?(n+=r,a=o.index+r.length):(i=!0,n+=E,a=o.index+1,S.lastIndex=a)}e=n+e.slice(a)}let a=[],o=[],s,c=-1,l=!1,u=0,d;if(e.indexOf(`<`)!==0){let t=e.indexOf(`<`);a.push({type:`text`,content:t===-1?e:e.substring(0,t)})}let f=[],p;for(;p=S.exec(e);)f.push(p);return f.forEach(function(e,t){let n=e[0];if(!n||n.startsWith(`<!--`))return;let r=0,i=0,a=-1,o=null;for(let e=0;e<n.length;e++){let t=n.charAt(e);o?t===o&&(o=null):t===`"`||t===`'`?o=t:t===`<`?(r++,r===2&&(a=e)):t===`>`&&i++}let s=a>-1&&/[a-zA-Z0-9\-!/]/.test(n.charAt(a+1));if(r>i&&s){let e=n.substring(0,a),r=n.substring(e.length);f[t][0]=r,f[t].index+=e.length}}),f.forEach(function(t,r){let i=t[0];if(!i)return;let p=t.index;if(p<u)return;if(l){if(i!==`</`+s.name+`>`)return;l=!1}let m=i.charAt(1)!==`/`,h=i.startsWith(`<!--`),g=p+i.length,_=e.charAt(g),v=f[r+1],y;if(_===`<`&&v){let t=e.substring(g,v.index);y=t.split(`<`).length>t.split(`>`).length}let b;if(h){let t=x(i);if(c<0)return a.push(t),a;b=o[c],b.children.push(t);let n=e.slice(g,v?v.index:void 0);return n.length>0&&b.children.push({type:`text`,content:n}),a}if(m){c++,s=x(i),s.type===`tag`&&n[s.name]&&(s.type=`component`,l=!0);let t=!1;if(!l&&!s.voidElement&&T.test(s.name)){t=!0,d||=e.toLowerCase();let n=d.indexOf(`</`+s.name.toLowerCase()+`>`,g),r=n===-1?e.length:n,i=e.slice(g,r);i&&s.children.push({type:`text`,content:i}),u=r}!s.voidElement&&!l&&!t&&_&&_!==`<`&&s.children.push({type:`text`,content:e.slice(g,v?v.index:void 0)}),c===0&&a.push(s),b=o[c-1],b&&b.children.push(s),o[c]=s}if((!m||s.voidElement)&&(c>-1&&(s.voidElement||s.name===i.slice(2,-1))&&(c--,s=c===-1?a:o[c]),!l&&(_!==`<`||y)&&_)){b=c===-1?a:o[c].children;let t=v?v.index:-1,n=e.slice(g,t===-1?void 0:t);w.test(n)&&(n=` `),(t>-1&&c+b.length>=0||n!==` `)&&b.push({type:`text`,content:n})}}),i&&O(a),a}function A(e){let t=[];for(let n in e)e[n]===null?t.push(n):t.push(n+`="`+String(e[n]).replace(/"/g,`&quot;`)+`"`);return t.length?` `+t.join(` `):``}function j(e,t){switch(t.type){case`text`:return e+t.content;case`tag`:{let n=t.voidElement&&t.name.toLowerCase()!==`!doctype`?`/>`:`>`;return e+=`<`+t.name+(t.attrs?A(t.attrs):``)+n,t.voidElement?e:e+t.children.reduce(j,``)+`</`+t.name+`>`}case`comment`:return e+=`<!--`+t.comment+`-->`,e}}function M(e){return e.reduce(function(e,t){return e+j(``,t)},``)}var N={parse:k,stringify:M},P=(e,t)=>{if(!e)return!1;let n=e.props?.children??e.children;return t?n.length>0:!!n},F=e=>{if(!e)return[];let t=e.props?.children??e.children;return e.props?.i18nIsDynamicList?L(t):t},I=e=>L(e).every(v.isValidElement),L=e=>Array.isArray(e)?e:[e],R=(e,t)=>{let n={...t};return n.props={...t.props,...e.props},n},z=e=>{let t={};if(!e)return t;let n=e=>{L(e).forEach(e=>{s(e)||(P(e)?n(F(e)):a(e)&&!(0,v.isValidElement)(e)&&Object.assign(t,e))})};return n(e),t},B=(e,t,n,r)=>{if(!e)return``;let i=``,o=L(e),c=t?.transSupportBasicHtmlNodes?t.transKeepBasicHtmlNodesFor??[]:[];return o.forEach((e,o)=>{if(s(e))i+=`${e}`;else if((0,v.isValidElement)(e)){let{props:a,type:l}=e,u=Object.keys(a).length,d=c.indexOf(l)>-1,f=a.children;if(!f&&d&&!u){i+=`<${l}/>`;return}if(!f&&(!d||u)||a.i18nIsDynamicList){i+=`<${o}></${o}>`;return}if(d&&u<=1){let e=s(f)?f:B(f,t,n,r);i+=`<${l}>${e}</${l}>`;return}let p=B(f,t,n,r);i+=`<${o}>${p}</${o}>`}else if(e===null)d(n,`TRANS_NULL_VALUE`,`Passed in a null value as child`,{i18nKey:r});else if(a(e)){let{format:t,...a}=e,o=Object.keys(a);if(o.length===1){let e=t?`${o[0]}, ${t}`:o[0];i+=`{{${e}}}`;return}d(n,`TRANS_INVALID_OBJ`,`Invalid child - Object should only have keys {{ value, format }} (format is optional).`,{i18nKey:r,child:e})}else d(n,`TRANS_INVALID_VAR`,`Passed in a variable like {number} - pass variables for interpolation as full objects like {{number}}.`,{i18nKey:r,child:e})}),i},V=(e,t,n,r,o,c,l)=>{if(n===``)return[];let d=o.transKeepBasicHtmlNodesFor||[],f=n&&new RegExp(d.map(e=>`<${e}`).join(`|`)).test(n);if(!e&&!t&&!f&&!l)return[n];let p=t??{},m=e=>{L(e).forEach(e=>{s(e)||(P(e)?m(F(e)):a(e)&&!(0,v.isValidElement)(e)&&Object.assign(p,e))})};m(e);let h=Object.keys(p),g=N.parse(`<0>${n}</0>`,{allowedTags:e=>/^\d+$/.test(e)||d.indexOf(e)>-1||h.indexOf(e)>-1}),_={...p,...c},y=(e,t,n)=>{let r=F(e),i=x(r,t.children,n);return I(r)&&i.length===0||e.props?.i18nIsDynamicList?r:i},b=(e,t,n,r,i)=>{e.dummy?(e.children=t,n.push((0,v.cloneElement)(e,{key:r},i?void 0:t))):n.push(...v.Children.map([e],e=>{if(e.type===v.Fragment||e.props?.i18nIsDynamicList!==void 0){let n={key:r};return e&&e.props&&Object.keys(e.props).forEach(t=>{t!==`children`&&t!==`i18nIsDynamicList`&&(n[t]=e.props[t])}),(0,v.createElement)(e.type,n,i?null:t)}let n={key:r};return e&&e.props&&Object.keys(e.props).forEach(t=>{t!==`ref`&&t!==`children`&&(n[t]=e.props[t])}),(0,v.cloneElement)(e,n,i?null:t)}))},x=(e,n,c)=>{let p=L(e),m=L(n),h={};return m.reduce((e,n,m)=>{let g=n.children?.[0]?.content&&r.services.interpolator.interpolate(n.children[0].content,_,r.language);if(n.type===`tag`){let i=p[parseInt(n.name,10)];!i&&t&&(i=t[n.name]),c.length===1&&!i&&(i=c[0][n.name]),i||={};let S={...n.attrs};l&&Object.keys(S).forEach(e=>{let t=S[e];s(t)&&(S[e]=u(t))});let C=Object.keys(S).length===0?i:R({props:S},i),w=(0,v.isValidElement)(C),T=w&&P(n,!0)&&!n.voidElement,E=f&&a(C)&&C.dummy&&!w,D=a(t)&&Object.hasOwnProperty.call(t,n.name);if(s(C)){let t=r.services.interpolator.interpolate(C,_,r.language);e.push(t)}else if(P(C)||T){let t=y(C,n,c);b(C,t,e,m)}else if(E){let t=x(p,n.children,c);b(C,t,e,m)}else if(Number.isNaN(parseFloat(n.name))){if(D){let t=y(C,n,c);b(C,t,e,m,n.voidElement)}else if(o.transSupportBasicHtmlNodes&&d.indexOf(n.name)>-1){if(n.voidElement)e.push((0,v.createElement)(n.name,{key:`${n.name}-${m}`}));else{let t=h[n.name]||0;h[n.name]=t+1;let r,i=0;for(let e=0;e<p.length;e+=1){let a=p[e];if((0,v.isValidElement)(a)&&a.type===n.name){if(i===t){r=a;break}i+=1}}let a=r?L(F(r)):p,o=x(a,n.children,c);e.push((0,v.createElement)(n.name,{key:`${n.name}-${m}`},o))}}else if(n.voidElement)e.push(`<${n.name} />`);else{let t=x(p,n.children,c);e.push(`<${n.name}>${t}</${n.name}>`)}}else if(a(C)&&!w){let t=n.children[0]?g:null;t&&e.push(t)}else b(C,g,e,m,n.children.length!==1||!g)}else if(n.type===`text`){let t=o.transWrapTextNodes,a=typeof o.unescape==`function`?o.unescape:i().unescape,s=l?a(r.services.interpolator.interpolate(n.content,_,r.language)):r.services.interpolator.interpolate(n.content,_,r.language);t?e.push((0,v.createElement)(t,{key:`${n.name}-${m}`},s)):e.push(s)}return e},[])};return F(x([{dummy:!0,children:e||[]}],g,L(e||[]))[0])},H=(e,t,n)=>{let r=e.key||t,i=(0,v.cloneElement)(e,{key:r});if(!i.props||!i.props.children||n.indexOf(`${t}/>`)<0&&n.indexOf(`${t} />`)<0)return i;function a(){return(0,v.createElement)(v.Fragment,null,i)}return(0,v.createElement)(a,{key:r})},U=(e,t)=>e.map((e,n)=>H(e,n,t)),W=(e,t)=>{let n={};return Object.keys(e).forEach(r=>{Object.assign(n,{[r]:H(e[r],r,t)})}),n},G=(e,t,n,r)=>e?Array.isArray(e)?U(e,t):a(e)?W(e,t):(o(n,`TRANS_INVALID_COMPONENTS`,`<Trans /> "components" prop expects an object or array`,{i18nKey:r}),null):null,K=e=>!a(e)||Array.isArray(e)?!1:Object.keys(e).reduce((e,t)=>e&&Number.isNaN(Number.parseFloat(t)),!0);function q({children:e,count:t,parent:n,i18nKey:a,context:c,tOptions:u={},values:d,defaults:f,components:p,ns:m,i18n:h,t:g,shouldUnescape:_,...y}){let b=h||l();if(!b)return o(b,`NO_I18NEXT_INSTANCE`,`Trans: You need to pass in an i18next instance using initReactI18next or by passing it via props or context. In monorepo setups, make sure there is only one instance of react-i18next.`,{i18nKey:a}),e;let x=g||b.t.bind(b)||(e=>e),S={...i(),...b.options?.react},C=m||(x.ns?void 0:b.options?.defaultNS||`translation`);s(C)&&(C=[C]);let{transDefaultProps:w}=S,T=w?.tOptions?{...w.tOptions,...u}:u,E=_??w?.shouldUnescape,D=w?.values?{...w.values,...d}:d,O=w?.components?{...w.components,...p}:p,k=B(e,S,b,a),A=f||T?.defaultValue||k||S.transEmptyNodeValue||(typeof a==`function`?r(a):a),{hashTransKey:j}=S,M=a||(j?j(k||A):k||A);d=b.options?.interpolation?.defaultVariables?D&&Object.keys(D).length>0?{...D,...b.options.interpolation.defaultVariables}:{...b.options.interpolation.defaultVariables}:D;let N=z(e);N&&typeof N.count==`number`&&t===void 0&&(t=N.count);let P=d||t!==void 0&&!b.options?.interpolation?.alwaysFormat||!e?T.interpolation:{interpolation:{...T.interpolation,prefix:`#$?`,suffix:`?$#`}},F={...T,context:c||T.context,count:t,...d,...P,defaultValue:A,ns:C},I=M?x(M,F):A;I===M&&A&&(I=A);let L=G(O,I,b,a),R=L||e,H=null;K(L)&&(H=L,R=e);let U=V(R,H,I,b,S,F,E),W=n??S.defaultTransParent;return W?(0,v.createElement)(W,y,U):U}function J({children:e,count:t,parent:n,i18nKey:r,context:i,tOptions:a={},values:o,defaults:s,components:u,ns:d,i18n:f,t:p,shouldUnescape:m,...h}){let{i18n:g,defaultNS:_}=(0,v.useContext)(c)||{},y=f||g||l(),b=p||y?.t.bind(y);return q({children:e,count:t,parent:n,i18nKey:r,context:i,tOptions:a,values:o,defaults:s,components:u,ns:d||(b?.ns?void 0:_||y?.options?.defaultNS),i18n:y,t:p,shouldUnescape:m,...h})}export{p as i,_ as n,h as r,J as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,S as n}from"./vendor-query-_bHZuxEx.js";import{t as r}from"./users-uIC3TIlE.js";import{t as i}from"./useTranslation--56nHhlH.js";import{n as a,r as o}from"./use-auth-CuDlW3iC.js";import{or as s,sr as c}from"./index-DIpd264Z.js";import{n as l,r as u,t as d}from"./invite-dialog-0CYh0GiQ.js";var f=e(t(),1),p=n();function m(){let{t:e}=i(),t=o(`users:manage`),n=a(e=>e.user),[m,h]=(0,f.useState)(!1),[g,_]=(0,f.useState)(null);return!t||n===null?(0,p.jsx)(c,{to:`/settings`,replace:!0}):(0,p.jsxs)(`div`,{className:`animate-fade-in-up space-y-6`,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsxs)(`h1`,{className:`flex items-center gap-2 text-2xl font-semibold tracking-tight`,children:[(0,p.jsx)(r,{className:`h-5 w-5 text-primary`,"aria-hidden":`true`}),e(`access.page.title`)]}),(0,p.jsxs)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:[e(`access.page.subtitle`),` `,(0,p.jsx)(s,{to:`/settings`,className:`text-primary underline-offset-4 hover:underline`,children:e(`access.page.backToSettings`)})]})]}),(0,p.jsx)(u,{fullPage:!0,onInvite:()=>h(!0),onIssued:_}),(0,p.jsx)(d,{open:m,onOpenChange:h,onIssued:_}),(0,p.jsx)(l,{issued:g,onClose:()=>{_(null),a.getState().refreshSession().catch(()=>void 0)}})]})}export{m as AccessPage};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,S as n}from"./vendor-query-_bHZuxEx.js";import{t as r}from"./useTranslation--56nHhlH.js";import{j as i,mt as a,w as o}from"./index-DIpd264Z.js";import{i as s,l as c,o as l,s as u}from"./lazy-recharts-Pv8p9ArM.js";import{t as d}from"./colors-BBy8GEtr.js";import{t as f}from"./use-reduced-motion-hAm5r6_d.js";var p=e(t(),1),m=n(),h=152,g=4,_=72,v=72,y=53,b=68,x=4,S=5,C=1.75;function w({accountCosts:e,totalCostUsd:t}){let{t:n}=r(),w=o(e=>e.theme===`dark`),T=a(e=>e.blurred),E=f(),[D,O]=(0,p.useState)(null),k=(0,p.useRef)({}),A=w?`#404040`:`#d3d3d3`,{chartData:j,legendItems:M}=(0,p.useMemo)(()=>{let r=e.filter(e=>e.costUsd>0),i=d(r.length,w),a=r.map((e,t)=>{let r=e.isDeleted;return{id:r?`__deleted__`:e.accountId??`__unknown_${t}__`,label:r?n(`apis.accountCost.deletedAccount`):e.email??n(`apis.accountCost.unknownAccount`),isDeleted:r,value:e.costUsd,color:r?A:i[t%i.length]}}),o=a.reduce((e,t)=>e+t.value,0),s=Math.max(0,t-o),c=[...a.map(e=>({id:e.id,name:e.label,value:e.value,fill:e.color})),...s>0?[{id:`__remaining__`,name:`__remaining__`,value:s,fill:A}]:[]];return c.some(e=>e.value>0)||(c.length=0,c.push({id:`__empty__`,name:`__empty__`,value:1,fill:A})),{chartData:c,legendItems:a}},[e,t,w,A,n]),N=e=>{if(O(e),e===null)return;let t=k.current[e];typeof t?.scrollIntoView==`function`&&t.scrollIntoView({block:`nearest`,inline:`nearest`})};return(0,m.jsxs)(`div`,{"data-testid":`account-cost-panel`,children:[(0,m.jsx)(`div`,{className:`mb-5`,children:(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`h3`,{className:`text-sm font-semibold`,children:n(`apis.accountCost.title`)}),(0,m.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:n(`apis.accountCost.description`)})]})}),(0,m.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[(0,m.jsx)(`div`,{className:`flex shrink-0 flex-col items-center`,children:(0,m.jsxs)(`div`,{className:`relative h-[152px] w-[152px] overflow-visible`,children:[(0,m.jsx)(u,{width:h,height:h,margin:{top:g,right:g,bottom:g,left:g},children:(0,m.jsx)(l,{data:j,cx:_,cy:v,innerRadius:y,outerRadius:b,startAngle:90,endAngle:-270,dataKey:`value`,stroke:`none`,shape:e=>{let t=e.isActive||e.payload?.id===D;return(0,m.jsx)(c,{...e,outerRadius:typeof e.outerRadius==`number`?e.outerRadius+(t?x:0):b+(t?x:0),stroke:t?`hsl(var(--background))`:`none`,strokeWidth:t?2:0})},isAnimationActive:!E,animationDuration:600,animationEasing:`ease-out`,onMouseEnter:e=>{let t=e.payload;typeof t?.id==`string`&&N(t.id)},onMouseLeave:()=>N(null),onMouseOut:()=>N(null),children:j.map(e=>(0,m.jsx)(s,{fill:e.fill},e.id))})}),(0,m.jsx)(`div`,{className:`absolute inset-[22px] flex items-center justify-center rounded-full text-center pointer-events-none`,children:(0,m.jsxs)(`div`,{children:[(0,m.jsx)(`p`,{className:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground`,children:n(`apis.accountCost.centerLabel`)}),(0,m.jsx)(`p`,{className:`text-base font-semibold tabular-nums`,children:i(t)})]})})]})}),M.length>0&&(0,m.jsx)(`div`,{className:`w-full overflow-y-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,"data-testid":`account-cost-legend-list`,style:{maxHeight:`calc(${S} * ${C}rem + 0rem)`},children:M.map((e,t)=>{let n=D===e.id;return(0,m.jsxs)(`button`,{ref:t=>{k.current[e.id]=t},type:`button`,className:`animate-fade-in-up flex h-7 w-full items-center justify-between px-1.5 gap-3 rounded-lg border bg-transparent text-xs transition-all`,style:{animationDelay:`${t*75}ms`,borderColor:n?e.color:`transparent`},onMouseEnter:()=>N(e.id),onMouseLeave:()=>N(null),onFocus:()=>N(e.id),onBlur:()=>N(null),"data-active":n?`true`:`false`,"data-testid":`account-cost-legend-${t}`,children:[(0,m.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,m.jsx)(`span`,{"aria-hidden":!0,className:`h-2.5 w-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,m.jsx)(`span`,{className:`truncate font-medium`,children:e.isDeleted?e.label:T?(0,m.jsx)(`span`,{className:`privacy-blur`,children:e.label}):e.label})]}),(0,m.jsx)(`span`,{className:`shrink-0 tabular-nums text-muted-foreground`,children:i(e.value)})]},e.id)})})]})]})}export{w as AccountCostDonut};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createLucideIcon-DBLzLNh2.js";var t={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};t.node;var n=e(t);function r(e,t=8,n=6){let r=Math.max(1,t),i=Math.max(1,n);return e.length<=r+i+3?e:`${e.slice(0,r)}...${e.slice(-i)}`}export{n,r as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,S as n}from"./vendor-query-_bHZuxEx.js";import{c as r,d as i,f as a,h as o,l as s,m as c,p as l,u}from"./select-Cl33bz-g.js";import{n as d}from"./i18n-BWqZ9Ua2.js";var f=n();function p({open:e,title:t,description:n,confirmLabel:p=d.t(`common.confirm`),confirmDisabled:m=!1,keepOpenOnConfirm:h=!1,cancelLabel:g=d.t(`common.cancel`),onConfirm:_,onOpenChange:v,children:y}){return(0,f.jsx)(r,{open:e,onOpenChange:v,children:(0,f.jsxs)(i,{children:[(0,f.jsxs)(c,{children:[(0,f.jsx)(o,{children:t}),n?(0,f.jsx)(a,{children:n}):null]}),y,(0,f.jsxs)(l,{children:[(0,f.jsx)(u,{children:g}),(0,f.jsx)(s,{disabled:m,onClick:e=>{h&&e.preventDefault(),_()},children:p})]})]})})}var m=e(t(),1);function h(){let[e,t]=(0,m.useState)(!1),[n,r]=(0,m.useState)(null),i=(0,m.useCallback)(e=>{r(e??null),t(!0)},[]),a=(0,m.useCallback)(()=>{t(!1),r(null)},[]);return{open:e,data:n,onOpenChange:(0,m.useCallback)(e=>{e?t(!0):a()},[a]),show:i,hide:a}}function g(e){return e>=70?`bg-emerald-500`:e>=30?`bg-amber-500`:`bg-red-500`}function _(e){return e>=70?`bg-emerald-500/15`:e>=30?`bg-amber-500/15`:`bg-red-500/15`}function v(e){return e===`paused`?`paused`:e===`rate_limited`?`limited`:e===`quota_exceeded`?`exceeded`:e===`reauth_required`?`reauth`:e===`deactivated`?`deactivated`:`active`}function y(e){let t=v(e);return t===`paused`||t===`reauth`||t===`deactivated`}function b(e){return!y(e)}function x(e){return!y(e)}export{_ as a,g as i,x as n,h as o,v as r,p as s,b as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,S as n}from"./vendor-query-_bHZuxEx.js";import{t as r}from"./useTranslation--56nHhlH.js";import{D as i}from"./index-DIpd264Z.js";import{a,c as o,d as s,f as c,n as l,r as u,t as d,u as f}from"./lazy-recharts-Pv8p9ArM.js";import{t as p}from"./use-reduced-motion-hAm5r6_d.js";import{t as m}from"./use-chart-colors-DIu6tClI.js";var h=e(t(),1),g=n();function _(e,t,n){let r=new Map(n.map(e=>[Date.parse(e.t),e.v])),i=[...new Set([...e,...t,...n].map(e=>Date.parse(e.t)))].sort((e,t)=>e-t),a=v(e,i),o=v(t,i);return i.map((e,t)=>({t:new Date(e).toISOString(),primary:a[t],secondary:o[t],secondaryScheduled:r.get(e)}))}function v(e,t){let n=[...e].sort((e,t)=>Date.parse(e.t)-Date.parse(t.t)),r=0;return t.map(e=>{for(;r<n.length&&Date.parse(n[r].t)<=e;)r+=1;let t=n[r-1],i=n[r];if(!t)return null;if(!i)return t.v;let a=(e-Date.parse(t.t))/(Date.parse(i.t)-Date.parse(t.t));return t.v+a*(i.v-t.v)})}function y(e){return e.slice(5,10)}var b={primary:{label:`Primary`},secondary:{label:`Secondary`},secondaryScheduled:{label:`Weekly plan`}};function x({active:e,payload:t,label:n,monthly:a}){let{t:o}=r();if(!e||!t?.length)return null;let s=i(n);return(0,g.jsxs)(`div`,{className:`rounded-lg border bg-popover px-3 py-2 text-popover-foreground shadow-md`,children:[(0,g.jsx)(`p`,{className:`mb-1 text-[11px] text-muted-foreground`,children:s}),t.map(e=>{let t=b[e.dataKey];return(0,g.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,g.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:e.color}}),(0,g.jsx)(`span`,{className:`text-muted-foreground`,children:t?a&&e.dataKey===`secondary`?o(`common.quota.monthly`):a&&e.dataKey===`secondaryScheduled`?o(`accounts.usage.monthlyPlan`):o(`accounts.trend.series.${e.dataKey}`,{defaultValue:t.label}):``}),(0,g.jsxs)(`span`,{className:`ml-auto tabular-nums font-medium`,children:[e.value?.toFixed(1),`%`]})]},e.dataKey)})]})}var S={top:4,right:8,bottom:0,left:0},C=[];function w({primary:e,secondary:t,secondaryScheduled:n=C,monthly:i=!1}){let{t:v}=r(),b=m(),w=p(),T=b[0],E=b[1],D=(0,h.useMemo)(()=>_(e,t,n),[e,t,n]);return D.length===0?(0,g.jsx)(`div`,{className:`flex h-[200px] items-center justify-center text-xs text-muted-foreground`,children:v(`accounts.trend.empty`)}):(0,g.jsx)(o,{width:`100%`,height:200,children:(0,g.jsxs)(l,{data:D,margin:S,children:[(0,g.jsxs)(`defs`,{children:[(0,g.jsxs)(`linearGradient`,{id:`trend-primary`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,g.jsx)(`stop`,{offset:`0%`,stopColor:T,stopOpacity:.12}),(0,g.jsx)(`stop`,{offset:`100%`,stopColor:T,stopOpacity:0})]}),(0,g.jsxs)(`linearGradient`,{id:`trend-secondary`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,g.jsx)(`stop`,{offset:`0%`,stopColor:E,stopOpacity:.12}),(0,g.jsx)(`stop`,{offset:`100%`,stopColor:E,stopOpacity:0})]})]}),(0,g.jsx)(u,{strokeDasharray:`3 3`,vertical:!1,stroke:`currentColor`,opacity:.06}),(0,g.jsx)(s,{dataKey:`t`,tickFormatter:y,tick:{fontSize:10,fill:`var(--muted-foreground)`},tickLine:!1,axisLine:!1,minTickGap:50,dy:4}),(0,g.jsx)(c,{domain:[0,100],ticks:[0,25,50,75,100],tickFormatter:e=>`${e}%`,tick:{fontSize:10,fill:`var(--muted-foreground)`},tickLine:!1,axisLine:!1,width:38}),(0,g.jsx)(f,{content:(0,g.jsx)(x,{monthly:i}),cursor:{stroke:`hsl(var(--border))`,strokeWidth:1}}),e.length>0&&(0,g.jsx)(d,{type:`monotone`,dataKey:`primary`,stroke:T,strokeWidth:1.5,fill:`url(#trend-primary)`,dot:!1,activeDot:{r:3,strokeWidth:1.5,fill:`hsl(var(--popover))`},isAnimationActive:!w,animationDuration:500}),t.length>0&&(0,g.jsx)(d,{type:`monotone`,dataKey:`secondary`,stroke:E,strokeWidth:1.5,fill:`url(#trend-secondary)`,dot:!1,activeDot:{r:3,strokeWidth:1.5,fill:`hsl(var(--popover))`},isAnimationActive:!w,animationDuration:500,animationBegin:100}),n.length>0&&(0,g.jsx)(a,{type:`linear`,dataKey:`secondaryScheduled`,stroke:E,strokeWidth:1.25,strokeDasharray:`5 5`,dot:!1,activeDot:{r:3,strokeWidth:1.5,fill:`hsl(var(--popover))`},connectNulls:!1,isAnimationActive:!w,animationDuration:500,animationBegin:150})]})})}export{w as AccountTrendChart};
@@ -0,0 +1,3 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/account-trend-chart-BptlfwwQ.js","assets/rolldown-runtime-hePW80VL.js","assets/vendor-query-_bHZuxEx.js","assets/useTranslation--56nHhlH.js","assets/shim-CZwyM4Q7.js","assets/index-DIpd264Z.js","assets/vendor-react-BVL0YZPW.js","assets/createLucideIcon-DBLzLNh2.js","assets/iso-Bpe5Ihbb.js","assets/es2015-bMH8YKZT.js","assets/button-BjVmmiGW.js","assets/clsx-DB0hHKMi.js","assets/api-client-dugX1Pti.js","assets/circle-alert-BS0xd_o1.js","assets/i18n-BWqZ9Ua2.js","assets/label-CGaLmLNf.js","assets/use-auth-CuDlW3iC.js","assets/index-DMeLKRJx.css","assets/lazy-recharts-Pv8p9ArM.js","assets/use-reduced-motion-hAm5r6_d.js","assets/use-chart-colors-DIu6tClI.js","assets/oauth-dialog-XeaGGDjS.js","assets/copy-button-D7nAvOKR.js","assets/external-link-UVAOgMQ0.js"])))=>i.map(i=>d[i]);
2
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,S as n,x as r}from"./vendor-query-_bHZuxEx.js";import{t as i}from"./createLucideIcon-DBLzLNh2.js";import{i as a,n as o,r as s,t as c}from"./Trans-Cj-J9mVA.js";import{l}from"./iso-Bpe5Ihbb.js";import{g as u,i as d,n as f,o as p,s as m,t as h}from"./select-Cl33bz-g.js";import{a as g,i as _,n as v,o as y,r as b,t as x}from"./use-account-quota-display-BPmrTBTC.js";import{n as S,r as C,t as w}from"./reset-credit-confirm-dialog-QOifTnVB.js";import{t as T}from"./copy-button-D7nAvOKR.js";import{t as E}from"./download-kQteIcsB.js";import{n as D,r as O,t as k}from"./trash-D3KyWr1h.js";import{n as A,t as j}from"./search-HfhqwERt.js";import{n as M,t as N}from"./account-identifiers-CxbdLshZ.js";import{b as P}from"./es2015-bMH8YKZT.js";import{t as F}from"./useTranslation--56nHhlH.js";import{c as I,t as L}from"./button-BjVmmiGW.js";import{t as ee}from"./checkbox-apsl9vzk.js";import{t as te}from"./label-CGaLmLNf.js";import{t as R}from"./switch-CzxgokcM.js";import{r as ne}from"./use-auth-CuDlW3iC.js";import{$n as re,B as z,Et as B,G as V,Gt as H,H as U,I as W,Jn as G,Kt as K,M as ie,Nt as ae,O as oe,Pt as se,Rt as q,T as ce,U as le,W as ue,Xn as de,Y as fe,Zn as pe,_t as me,an as he,dr as ge,en as _e,et as ve,in as ye,ir as be,j as xe,mt as Se,nn as Ce,o as we,q as Te,r as Ee,rn as De,rr as Oe,sn as ke,tn as Ae,ur as je,wt as Me,z as Ne}from"./index-DIpd264Z.js";import{a as Pe,i as Fe,o as J,r as Ie,s as Le}from"./account-status-DIsU5sUS.js";import{t as Re}from"./loading-overlay-CzKQfHLI.js";import{t as ze}from"./blur-email-HEvKagG2.js";import{i as Be,n as Ve,r as He}from"./use-accounts-PWlVGw3z.js";import{t as Ue}from"./badge-DqMb9es0.js";import{t as We}from"./status-badge-CHHA5X6c.js";import{t as Ge}from"./mini-quota-bar-cGT_t8Ae.js";import{t as Y}from"./skeleton-C_EUc4Rp.js";var Ke={name:`pause`,size:24,node:[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]};Ke.node;var qe=i(Ke),X=e(t(),1),Z=n();function Je({account:e,busy:t,readOnly:n=!1,onPause:r,onResume:i,onProbe:s,onDelete:c,onReauth:l,onExportAuth:u,onResetCredit:g,showResetCreditExpiryBadge:v=!0,onSecurityWorkAuthorizedChange:y,onLimitWarmupChange:b,onRoutingPolicyChange:x}){let{t:S}=F(),C=ne(`accounts:export`),w=e.status===`reauth_required`||e.status===`deactivated`,T=e.status===`paused`||e.status===`deactivated`,D=t||n||e.status===`paused`||w,O=v&&e.resetCreditNearestExpiresAt?ue(e.resetCreditNearestExpiresAt):null,j=e.availableResetCredits??0,N=j>0,P=t||n||e.status===`paused`||w;return(0,Z.jsxs)(`div`,{className:`space-y-3 border-t pt-4`,children:[w?null:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md border bg-muted/30 p-3 sm:flex-row sm:items-center sm:gap-3`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 text-sm font-medium sm:min-w-36`,children:[(0,Z.jsx)(_,{className:`h-4 w-4 text-muted-foreground`}),S(`accounts.actions.routingPolicy`)]}),(0,Z.jsxs)(h,{value:e.routingPolicy??`normal`,onValueChange:t=>x(e.accountId,t),disabled:t||n,children:[(0,Z.jsx)(p,{"aria-label":S(`accounts.actions.routingPolicy`),size:`sm`,className:`h-8 w-full min-w-0 text-xs sm:min-w-32 sm:flex-1`,children:(0,Z.jsx)(m,{})}),(0,Z.jsxs)(f,{children:[(0,Z.jsx)(d,{value:`burn_first`,children:S(`common.routingPolicies.burnFirst`)}),(0,Z.jsx)(d,{value:`normal`,children:S(`common.routingPolicies.normal`)}),(0,Z.jsx)(d,{value:`preserve`,children:S(`common.routingPolicies.preserve`)})]})]})]}),(0,Z.jsxs)(`label`,{htmlFor:`security-work-authorized-${e.accountId}`,className:`flex min-w-0 items-center justify-between gap-3 rounded-md border px-3 py-2`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2 text-xs font-medium`,children:[(0,Z.jsx)(de,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,Z.jsx)(`span`,{className:`truncate`,children:S(`accounts.actions.trustedAccess`)})]}),(0,Z.jsx)(R,{id:`security-work-authorized-${e.accountId}`,className:`shrink-0`,checked:e.securityWorkAuthorized??!1,disabled:t||n,onCheckedChange:t=>y(e.accountId,t)})]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[T?(0,Z.jsxs)(L,{type:`button`,size:`sm`,className:`h-8 gap-1.5 text-xs`,onClick:()=>i(e.accountId),disabled:t||n,children:[(0,Z.jsx)(A,{className:`h-3.5 w-3.5`}),S(`common.actions.resume`)]}):w?null:(0,Z.jsxs)(L,{type:`button`,size:`sm`,variant:`outline`,className:`h-8 gap-1.5 text-xs`,onClick:()=>r(e.accountId),disabled:t||n,children:[(0,Z.jsx)(qe,{className:`h-3.5 w-3.5`}),S(`common.actions.pause`)]}),w?(0,Z.jsxs)(L,{type:`button`,size:`sm`,variant:`outline`,className:`h-8 gap-1.5 text-xs`,onClick:l,disabled:t||n,children:[(0,Z.jsx)(pe,{className:`h-3.5 w-3.5`}),S(`common.actions.reauthenticate`)]}):null,(0,Z.jsxs)(L,{type:`button`,size:`sm`,variant:`outline`,className:`h-8 gap-1.5 text-xs`,onClick:()=>s(e.accountId),disabled:D,children:[(0,Z.jsx)(a,{className:`h-3.5 w-3.5`}),S(`accounts.actions.forceProbe`)]}),(0,Z.jsxs)(L,{type:`button`,size:`sm`,variant:`outline`,className:`h-8 gap-1.5 text-xs`,onClick:()=>b(e.accountId,!e.limitWarmupEnabled),disabled:t||n,children:[(0,Z.jsx)(o,{className:`h-3.5 w-3.5`}),e.limitWarmupEnabled?S(`accounts.actions.disableWarmup`):S(`accounts.actions.enableWarmup`)]}),C?(0,Z.jsxs)(L,{type:`button`,size:`sm`,variant:`outline`,className:`h-8 gap-1.5 text-xs`,onClick:()=>u(e.accountId),disabled:t||n,children:[(0,Z.jsx)(E,{className:`h-3.5 w-3.5`}),S(`common.actions.export`)]}):null,N?(0,Z.jsxs)(L,{type:`button`,size:`sm`,variant:`outline`,className:`relative h-8 gap-1.5 pr-8 text-xs`,onClick:()=>g(e.accountId),disabled:P,children:[(0,Z.jsx)(M,{className:`h-3.5 w-3.5`}),S(`accounts.actions.resetWithCount`,{count:j}),O?(0,Z.jsx)(`span`,{"aria-hidden":`true`,className:[`pointer-events-none absolute -top-1 right-1 text-[10px] tabular-nums`,O.expiringSoon?`text-destructive`:`text-muted-foreground`].join(` `),children:O.label}):null]}):null,(0,Z.jsxs)(L,{type:`button`,size:`sm`,variant:`destructive`,className:`h-8 gap-1.5 text-xs`,onClick:()=>c(e.accountId),disabled:t||n,children:[(0,Z.jsx)(k,{className:`h-3.5 w-3.5`}),S(`common.actions.delete`)]})]})]})}function Ye({account:e,admin:t,busy:n,readOnly:r=!1,onSave:i,onTestEndpoint:a}){let{t:o}=F(),s=t?.bindings.find(t=>t.accountId===e.accountId)??null,c=s?.poolId??t?.pools[0]?.id??``,[l,u]=(0,X.useState)(c),[_,v]=(0,X.useState)(null),[b,x]=(0,X.useState)(null),S=(0,X.useMemo)(()=>new Map((t?.pools??[]).map(e=>[e.id,e])),[t?.pools]),C=(0,X.useMemo)(()=>new Map((t?.endpoints??[]).map(e=>[e.id,e])),[t?.endpoints]),w=l&&S.has(l)?l:c,T=S.get(w)??null,E=T?.endpointIds[0]??null,D=E?C.get(E)??null:null,O=s?.isActive??!1;if(!t)return null;let k=async()=>{if(E&&a&&_===null){v(E),x(null);try{let e=await a(E);x({endpointId:E,result:e})}catch(e){x({endpointId:E,result:{endpointId:E,ok:!1,statusCode:null,elapsedMs:null,error:e instanceof Error?e.message:o(`accounts.proxyBinding.testFailed`)}})}finally{v(null)}}};return(0,Z.jsxs)(`section`,{className:`min-w-0 rounded-lg border bg-muted/30 p-4`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between sm:gap-4`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,Z.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center rounded-lg bg-primary/10`,children:(0,Z.jsx)(g,{className:`h-4 w-4 text-primary`,"aria-hidden":`true`})}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:o(`accounts.proxyBinding.title`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o(`accounts.proxyBinding.description`)})]})]}),(0,Z.jsx)(R,{"aria-label":o(`accounts.proxyBinding.enableAria`),className:`shrink-0`,checked:O,disabled:n||r||!s,onCheckedChange:t=>{let n=s?.poolId??w;n&&i(e.accountId,{poolId:n,isActive:t})}})]}),(0,Z.jsxs)(`div`,{className:`mt-3 flex flex-col gap-2 sm:flex-row`,children:[(0,Z.jsxs)(h,{value:w,onValueChange:e=>{u(e),x(null)},disabled:n||r||t.pools.length===0,children:[(0,Z.jsx)(p,{className:`h-8 w-full min-w-0 text-xs sm:w-auto sm:flex-1`,"aria-label":o(`accounts.proxyBinding.poolAria`),children:(0,Z.jsx)(m,{placeholder:o(`accounts.proxyBinding.poolPlaceholder`)})}),(0,Z.jsx)(f,{children:t.pools.map(e=>(0,Z.jsx)(d,{value:e.id,children:e.name},e.id))})]}),(0,Z.jsx)(L,{type:`button`,size:`sm`,variant:`outline`,className:`h-8 text-xs sm:w-28`,disabled:n||r||!w,onClick:()=>void i(e.accountId,{poolId:w,isActive:!0}),children:o(`accounts.proxyBinding.save`)}),a?(0,Z.jsxs)(L,{type:`button`,size:`sm`,variant:`outline`,className:`h-8 text-xs sm:w-28`,disabled:n||r||!E||_!==null,onClick:()=>void k(),children:[_===E?(0,Z.jsx)(re,{className:`mr-1 h-3 w-3 animate-spin`,"aria-hidden":`true`}):null,o(`accounts.proxyBinding.testPool`)]}):null]}),(0,Z.jsxs)(`p`,{className:`mt-2 text-xs text-muted-foreground`,children:[s?o(`accounts.proxyBinding.currentBinding`,{pool:S.get(s.poolId)?.name??s.poolId,state:s.isActive?o(`common.states.active`):o(`common.states.disabled`)}):o(`accounts.proxyBinding.noBinding`),T?` ${o(`accounts.proxyBinding.selectedPoolEndpoints`,{count:T.endpointIds.length})}`:``,D?` ${o(`accounts.proxyBinding.firstEndpoint`,{name:D.name})}`:``]}),b&&b.endpointId===E?(0,Z.jsxs)(`div`,{className:b.result.ok?`mt-2 flex items-center gap-1 text-xs text-emerald-600`:`mt-2 flex items-center gap-1 text-xs text-destructive`,children:[b.result.ok?(0,Z.jsx)(Oe,{className:`h-3 w-3`,"aria-hidden":`true`}):(0,Z.jsx)(y,{className:`h-3 w-3`,"aria-hidden":`true`}),(0,Z.jsxs)(`span`,{children:[b.result.ok?o(`accounts.proxyBinding.connectionOk`):o(`accounts.proxyBinding.connectionFailed`),b.result.statusCode?` · HTTP ${b.result.statusCode}`:``,b.result.elapsedMs!==null&&b.result.elapsedMs!==void 0?` · ${b.result.elapsedMs}ms`:``,!b.result.ok&&b.result.error?` · ${b.result.error}`:``]})]}):null]})}function Xe({account:e}){let{t}=F();return(0,Z.jsxs)(`div`,{className:`space-y-3 rounded-lg border bg-muted/30 p-4`,children:[(0,Z.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:t(`accounts.tokenInfo.title`)}),(0,Z.jsxs)(`dl`,{className:`space-y-2 text-xs`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-2`,children:[(0,Z.jsx)(`dt`,{className:`text-muted-foreground`,children:t(`accounts.tokenInfo.access`)}),(0,Z.jsx)(`dd`,{className:`min-w-0 break-words text-right font-medium`,children:ce(e.auth)})]}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-2`,children:[(0,Z.jsx)(`dt`,{className:`text-muted-foreground`,children:t(`accounts.tokenInfo.refresh`)}),(0,Z.jsx)(`dd`,{className:`min-w-0 break-words text-right font-medium`,children:U(e.auth)})]}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-2`,children:[(0,Z.jsx)(`dt`,{className:`text-muted-foreground`,children:t(`accounts.tokenInfo.idToken`)}),(0,Z.jsx)(`dd`,{className:`min-w-0 break-words text-right font-medium`,children:W(e.auth)})]})]})]})}var Ze=(0,X.lazy)(()=>ge(()=>import(`./account-trend-chart-BptlfwwQ.js`).then(e=>({default:t=>(0,Z.jsx)(e.AccountTrendChart,{...t})})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])));function Qe({label:e,percent:t,resetAt:n}){let{t:r}=F(),i=t===null?0:Math.max(0,Math.min(100,t)),a=t!==null;return(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:r(`accounts.usage.remainingLabel`,{label:e})}),(0,Z.jsx)(`span`,{className:I(`tabular-nums font-medium`,a?i>=70?`text-emerald-600 dark:text-emerald-400`:i>=30?`text-amber-600 dark:text-amber-400`:`text-red-600 dark:text-red-400`:`text-muted-foreground`),children:Ne(t,1)})]}),(0,Z.jsx)(`div`,{className:I(`h-1.5 w-full overflow-hidden rounded-full`,Pe(i)),children:(0,Z.jsx)(`div`,{className:I(`h-full rounded-full transition-colors duration-500 ease-out`,Fe(i)),style:{width:`${i}%`}})}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,Z.jsx)(C,{className:`h-3 w-3 shrink-0`}),(0,Z.jsx)(`span`,{children:r(`accounts.usage.resetAt`,{label:z(n??null)})})]})]})}var $e={codex_spark:`GPT-5.3-Codex-Spark`,codex_other:`GPT-5.3-Codex-Spark`,"gpt-5.3-codex-spark":`GPT-5.3-Codex-Spark`};function et(e,t){let n=t?.trim().toLowerCase();return n&&$e[n]?$e[n]:$e[e.trim().toLowerCase()]??e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function tt(e){if(e===null)return null;let t=e*1e3-Date.now();return t<=0?`resetting`:le(t)}function nt({label:e,usedPercent:t,resetAt:n}){let{t:r}=F(),i=Math.max(0,Math.min(100,t)),a=tt(n),o=a===`resetting`?r(`formatters.resetting`):a?r(`accounts.usage.resetsAt`,{label:a}):null;return(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:e}),(0,Z.jsx)(`span`,{className:`tabular-nums font-medium`,children:r(`accounts.usage.percentUsed`,{percent:Math.round(t)})})]}),(0,Z.jsx)(`div`,{className:`h-1.5 rounded-full bg-muted`,children:(0,Z.jsx)(`div`,{className:I(`h-full rounded-full transition-all`,i>95?`bg-red-500`:i>80?`bg-orange-500`:i>60?`bg-amber-500`:`bg-green-500`),style:{width:`${i}%`}})}),o?(0,Z.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:o}):null]})}var rt={burn_first:`Burn first`,normal:`Normal`,preserve:`Preserve`};function it({accountId:e,resetCredits:t,loading:n,unavailable:r,nearestExpiresAt:i,resetDisabled:a,onReset:o}){let{t:s}=F(),c=ve(e=>e.dateDisplayFormat);if(t==null&&!n&&!r)return null;let l=t?.availableCount??0,u=n&&t==null?s(`accounts.usage.resetCredits.checking`):r&&t==null?s(`common.states.unavailable`):s(`accounts.usage.resetCredits.available`,{count:l}),d=i?ue(i):null;return(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-md border bg-background/60 px-3 py-2 text-xs`,children:[(0,Z.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2 text-muted-foreground`,children:[(0,Z.jsx)(M,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`truncate font-medium`,children:s(`accounts.usage.resetCredits.title`)})]}),(0,Z.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center justify-end gap-2`,children:[i&&d?(0,Z.jsxs)(`span`,{className:`min-w-0 max-w-[min(18rem,42vw)] truncate text-[11px] text-muted-foreground`,children:[s(`accounts.usage.resetCredits.expires`,{time:ie(i,c)}),` `,(0,Z.jsxs)(`span`,{className:`tabular-nums`,children:[`(`,d.label,`)`]})]}):null,(0,Z.jsx)(`span`,{className:`shrink-0 tabular-nums font-semibold`,children:u}),o?(0,Z.jsxs)(L,{type:`button`,size:`sm`,variant:`ghost`,className:`h-6 shrink-0 gap-1 px-1.5 text-[11px]`,"aria-label":s(`accounts.usageResetDialog.title`),onClick:()=>o(e),disabled:a||l<=0,children:[(0,Z.jsx)(M,{className:`h-3 w-3`,"aria-hidden":`true`}),s(`common.actions.reset`)]}):null]})]})}function at(e){return(0,Z.jsx)(ot,{...e},e.account.accountId)}function ot({account:e,trends:t,resetCredits:n,resetCreditsLoading:r,resetCreditsUnavailable:i,resetDisabled:a=!1,onReset:o}){let{t:c}=F(),l=S(e.usage?.primaryRemainingPercent??null),u=S(e.usage?.secondaryRemainingPercent??null),d=S(e.usage?.monthlyRemainingPercent??null),f=l.percent,p=u.percent,m=d.percent,h=e.requestUsage??null,g=(h?.requestCount??0)>0,_=e.windowMinutesPrimary!=null||l.everKnown,v=e.windowMinutesSecondary!=null||u.everKnown,y=e.windowMinutesMonthly!=null||d.everKnown,b=!_&&v,x=t?.primary??[],C=t?.secondary??[],w=t?.secondaryScheduled??[],T=y&&!_&&!v,E=x.length>0||C.length>0||w.length>0;return(0,Z.jsxs)(`div`,{className:`min-w-0 space-y-4 rounded-lg border bg-muted/30 p-4`,children:[(0,Z.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:c(`accounts.usage.title`)}),(0,Z.jsx)(`div`,{className:I(`grid gap-4`,b||T?`grid-cols-1`:`grid-cols-1 sm:grid-cols-2`),children:T?(0,Z.jsx)(Qe,{label:c(`common.quota.monthly`),percent:m,resetAt:e.resetAtMonthly}):(0,Z.jsxs)(Z.Fragment,{children:[!b&&(0,Z.jsx)(Qe,{label:`5h`,percent:f,resetAt:e.resetAtPrimary}),(0,Z.jsx)(Qe,{label:c(`common.quota.weekly`),percent:p,resetAt:e.resetAtSecondary})]})}),(0,Z.jsx)(it,{accountId:e.accountId,resetCredits:n,loading:r,unavailable:i,nearestExpiresAt:e.resetCreditNearestExpiresAt??null,resetDisabled:a,onReset:o}),(0,Z.jsxs)(`div`,{className:`rounded-md border bg-background/60 px-3 py-2`,children:[(0,Z.jsx)(`p`,{className:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:c(`accounts.usage.requestLogsTotal`)}),g?(0,Z.jsx)(`p`,{className:`mt-1 break-words text-xs tabular-nums text-muted-foreground`,children:c(`accounts.usage.requestUsageMeta`,{tokens:oe(h?.totalTokens),cached:oe(h?.cachedInputTokens),requests:oe(h?.requestCount),cost:xe(h?.totalCostUsd)})}):(0,Z.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:c(`accounts.usage.noRequestUsage`)})]}),e.additionalQuotas.length>0?(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[(0,Z.jsx)(`p`,{className:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground`,children:c(`accounts.usage.additionalQuotas`)}),e.additionalQuotas.map(e=>(0,Z.jsxs)(`div`,{className:`rounded-md border bg-background/60 px-3 py-2 space-y-2`,children:[(0,Z.jsxs)(`p`,{className:`text-xs font-medium`,children:[(0,Z.jsx)(`span`,{children:e.displayLabel??et(e.limitName,e.quotaKey)}),e.routingPolicy!=null&&e.routingPolicy!==`inherit`?(0,Z.jsxs)(`span`,{className:`ml-2 inline-flex items-center gap-1 rounded-full border border-orange-200 bg-orange-50 px-1.5 py-0.5 text-[10px] font-medium text-orange-700 dark:border-orange-900/60 dark:bg-orange-950/40 dark:text-orange-300`,children:[(0,Z.jsx)(s,{className:`h-3 w-3`,"aria-hidden":`true`}),c(`common.routingPolicies.${e.routingPolicy===`burn_first`?`burnFirst`:e.routingPolicy}`,{defaultValue:rt[e.routingPolicy]??e.routingPolicy})]}):null]}),e.primaryWindow==null?null:(0,Z.jsx)(nt,{label:Te(`primary`,e.primaryWindow.windowMinutes??null),usedPercent:e.primaryWindow.usedPercent,resetAt:e.primaryWindow.resetAt??null}),e.secondaryWindow==null?null:(0,Z.jsx)(nt,{label:Te(`secondary`,e.secondaryWindow.windowMinutes??null),usedPercent:e.secondaryWindow.usedPercent,resetAt:e.secondaryWindow.resetAt??null})]},e.quotaKey??e.limitName))]}):null,E&&(0,Z.jsxs)(`div`,{className:`pt-3`,children:[(0,Z.jsxs)(`div`,{className:`mb-2 flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,Z.jsx)(`h4`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:c(`accounts.usage.trendTitle`)}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-[10px] text-muted-foreground`,children:[x.length>0&&(0,Z.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full bg-chart-1`}),`5h`]}),C.length>0&&(0,Z.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full bg-chart-2`}),c(T?`common.quota.monthly`:`common.quota.weekly`)]}),w.length>0?(0,Z.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(`span`,{className:`inline-block h-0 w-4 border-t border-dashed border-chart-2`}),c(T?`accounts.usage.monthlyPlan`:`accounts.usage.weeklyPlan`)]}):null]})]}),(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`div`,{className:`h-[220px]`}),children:(0,Z.jsx)(Ze,{monthly:T,primary:x,secondary:C,secondaryScheduled:w})})]})]})}function st({account:e,showAccountId:t=!1,busy:n,readOnly:r=!1,onPause:i,onResume:a,onProbe:o,onResetUsage:s,onSetAlias:c,onDelete:l,onReauth:u,onExportAuth:d,onResetCredit:f,showResetCreditExpiryBadge:p=!0,onLimitWarmupChange:m,onRoutingPolicyChange:h,onSecurityWorkAuthorizedChange:g,upstreamProxyAdmin:_=null,onProxyBindingSave:v,onProxyEndpointTest:y,resetCredits:b=null,resetCreditsLoading:x=!1,resetCreditsUnavailable:S=!1}){let{t:C}=F(),{data:w}=Ve(e?.accountId??null),T=Se(e=>e.blurred);if(!e)return(0,Z.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-xl border border-dashed p-12`,children:[(0,Z.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-xl bg-muted`,children:(0,Z.jsx)(G,{className:`h-5 w-5 text-muted-foreground`})}),(0,Z.jsx)(`p`,{className:`mt-3 text-sm font-medium text-muted-foreground`,children:C(`accounts.detail.emptyTitle`)}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground/70`,children:C(`accounts.detail.emptyDescription`)})]});let E=e.alias?.trim()??``,D=E||e.displayName||e.email,O=!E&&ze(D,e.email),k=N(e.accountId),A=E||e.displayName&&e.displayName!==e.email?e.email:null,j=t?` (${k})`:``,M=e.chatgptAccountId||e.workspaceLabel||e.workspaceId||C(`accounts.detail.unknownWorkspace`),P=e.seatType?` | ${V(e.seatType)}`:``,I=e.status===`reauth_required`||e.status===`deactivated`,L=n||r||e.status===`paused`||I||(b?.availableCount??0)<=0;return(0,Z.jsxs)(`div`,{className:`animate-fade-in-up min-w-0 space-y-4 rounded-xl border bg-card p-4 sm:p-5`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(ct,{accountId:e.accountId,alias:e.alias??null,localLabel:D,labelIsEmail:O,idSuffix:A?``:j,blurred:T,busy:n,readOnly:r,onSetAlias:c},e.accountId),A?(0,Z.jsxs)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,title:t?C(`accounts.detail.accountIdTitle`,{accountId:e.accountId}):void 0,children:[(0,Z.jsx)(`span`,{className:T?`privacy-blur`:``,children:A}),t?` | ID ${k}`:``]}):null,(0,Z.jsxs)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:[M,` | `,V(e.planType),P]})]}),v?(0,Z.jsx)(Ye,{account:e,admin:_,busy:n,readOnly:r,onSave:v,onTestEndpoint:y}):null,(0,Z.jsx)(at,{account:e,trends:w,resetCredits:b,resetCreditsLoading:x,resetCreditsUnavailable:S,resetDisabled:L,onReset:s}),(0,Z.jsx)(Xe,{account:e}),(0,Z.jsx)(Je,{account:e,busy:n,readOnly:r,onPause:i,onResume:a,onProbe:o,onDelete:l,onReauth:u,onExportAuth:d,onResetCredit:f,showResetCreditExpiryBadge:p,onLimitWarmupChange:m,onRoutingPolicyChange:h,onSecurityWorkAuthorizedChange:g})]},e.accountId)}function ct({accountId:e,alias:t,localLabel:n,labelIsEmail:r,idSuffix:i,blurred:a,busy:o,readOnly:s,onSetAlias:c}){let{t:l}=F(),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(t??``),m=async()=>{let t=f.trim();await c(e,t===``?null:t),d(!1)},h=()=>{p(t??``),d(!1)};return u?(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(K,{id:`account-alias`,"aria-label":l(`accounts.detail.aliasLabel`),className:`h-8 text-sm`,maxLength:255,placeholder:l(`accounts.detail.aliasPlaceholder`),value:f,autoFocus:!0,disabled:o||s,onChange:e=>p(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),m()):e.key===`Escape`&&(e.preventDefault(),h())}}),(0,Z.jsx)(L,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":l(`accounts.detail.saveAlias`),disabled:o||s,onClick:()=>void m(),children:(0,Z.jsx)(be,{className:`size-4`})}),(0,Z.jsx)(L,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":l(`common.cancel`),onClick:h,children:(0,Z.jsx)(P,{className:`size-4`})})]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`accounts.detail.aliasHelp`)})]}):(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,Z.jsx)(`h2`,{className:`min-w-0 truncate text-base font-semibold`,children:r?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:I(a&&`privacy-blur`),children:n}),i]}):(0,Z.jsxs)(Z.Fragment,{children:[n,i]})}),(0,Z.jsx)(L,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":l(`accounts.detail.editAlias`),title:l(`accounts.detail.aliasHelp`),disabled:o||s,onClick:()=>{p(t??``),d(!0)},children:(0,Z.jsx)(O,{className:`size-3.5`})})]})}function lt({account:e,selected:t,showAccountId:n=!1,showResetCreditBadge:r=!0,onSelect:i}){let{t:a}=F(),o=Se(e=>e.blurred),s=x(e=>e.quotaDisplay),c=ve(e=>e.dateDisplayFormat),l=Ie(e.status),u=e.displayName||e.email,d=ze(u,e.email),f=e.displayName&&e.displayName!==e.email?e.email:null,p=e.chatgptAccountId||e.workspaceLabel||e.workspaceId||a(`accounts.detail.unknownWorkspace`),m=e.seatType?` | ${V(e.seatType)}`:``,h=`${V(e.planType)} | ${p}${m}`,g=n?` | ID ${N(e.accountId)}`:``,_=S(e.usage?.primaryRemainingPercent??null),v=S(e.usage?.secondaryRemainingPercent??null),y=S(e.usage?.monthlyRemainingPercent??null),b=_.percent,C=v.percent,w=y.percent,T=e.windowMinutesPrimary!=null||b!==null||e.resetAtPrimary!=null||_.everKnown,E=e.windowMinutesSecondary!=null||C!==null||e.resetAtSecondary!=null||v.everKnown,D=(e.windowMinutesMonthly!=null||w!==null||e.resetAtMonthly!=null||y.everKnown)&&!T&&!E,O=D,k=!D&&T&&(s!==`weekly`||!E),A=!D&&E&&(s!==`5h`||!T),j=Number(k)+Number(A)+Number(O),M=l!==`reauth`&&l!==`deactivated`,P=e.limitWarmupEnabled?a(`accounts.listItem.warmupOn`):a(`accounts.listItem.warmupOff`),L=e.limitWarmup?`${V(e.limitWarmup.status)} | ${V(e.limitWarmup.model)} | ${ie(e.limitWarmup.completedAt??e.limitWarmup.attemptedAt,c)}`:a(`accounts.listItem.noAttempts`),ee=e.availableResetCredits??0,te=ee>99?`99+`:String(ee),R=l===`active`?a(`accounts.listItem.statusActiveHint`):void 0;return(0,Z.jsxs)(`button`,{type:`button`,title:R,onClick:()=>i(e.accountId),className:I(`relative min-w-0 w-full rounded-lg px-3 py-2.5 text-left transition-colors`,t?`bg-primary/8 ring-1 ring-primary/25`:`hover:bg-muted/50`),children:[r&&ee>0?(0,Z.jsx)(`span`,{className:`absolute -top-1 -right-1 grid h-5 min-w-[1.25rem] place-items-center rounded-full bg-primary px-1 text-[10px] font-medium text-primary-foreground`,children:te}):null,(0,Z.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`p`,{className:`truncate text-sm font-medium`,children:d&&o?(0,Z.jsx)(`span`,{className:`privacy-blur`,children:u}):u}),(0,Z.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,title:n?a(`accounts.detail.accountIdTitle`,{accountId:e.accountId}):void 0,children:f?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:o?`privacy-blur`:void 0,children:f}),` | `,h,g]}):(0,Z.jsxs)(Z.Fragment,{children:[h,g]})})]}),M?(0,Z.jsx)(ut,{policy:e.routingPolicy}):null,e.securityWorkAuthorized===!0?(0,Z.jsx)(de,{className:`h-3.5 w-3.5 text-emerald-600`,"aria-label":a(`accounts.actions.trustedAccess`)}):null,(0,Z.jsx)(We,{status:l,title:R})]}),(0,Z.jsxs)(`div`,{className:I(`mt-2 grid gap-2`,j>1?`grid-cols-1 sm:grid-cols-2`:`grid-cols-1`),children:[O?(0,Z.jsx)(dt,{label:a(`common.quota.monthly`),percent:w,resetAt:e.resetAtMonthly}):null,k?(0,Z.jsx)(dt,{label:`5h`,percent:b,resetAt:e.resetAtPrimary}):null,A?(0,Z.jsx)(dt,{label:a(`common.quota.weekly`),percent:C,resetAt:e.resetAtSecondary}):null]}),(0,Z.jsxs)(`div`,{className:`mt-2 flex min-w-0 items-center justify-between gap-2 text-[10px] text-muted-foreground`,children:[(0,Z.jsx)(`span`,{className:`shrink-0`,children:P}),(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:L})]})]})}function ut({policy:e}){let{t}=F();return e===`burn_first`?(0,Z.jsxs)(Ue,{variant:`outline`,className:`shrink-0 gap-1 border-amber-300 bg-amber-50 px-1.5 text-[11px] text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-300`,children:[(0,Z.jsx)(s,{className:`h-3 w-3`,"aria-hidden":`true`}),t(`common.routingPolicies.burnFirst`)]}):e===`preserve`?(0,Z.jsxs)(Ue,{variant:`outline`,className:`shrink-0 gap-1 border-sky-300 bg-sky-50 px-1.5 text-[11px] text-sky-700 dark:border-sky-500/30 dark:bg-sky-500/10 dark:text-sky-300`,children:[(0,Z.jsx)(b,{className:`h-3 w-3`,"aria-hidden":`true`}),t(`common.routingPolicies.preserve`)]}):(0,Z.jsx)(Ue,{variant:`outline`,className:`shrink-0 px-1.5 text-[11px] text-muted-foreground`,children:t(`common.routingPolicies.normal`)})}function dt({label:e,percent:t,resetAt:n}){let{t:r}=F();return(0,Z.jsxs)(`div`,{className:`space-y-1`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between text-[11px]`,children:[(0,Z.jsx)(`span`,{className:`text-muted-foreground`,children:e}),(0,Z.jsx)(`span`,{className:`tabular-nums font-medium`,children:Ne(t,1)})]}),(0,Z.jsx)(Ge,{"aria-label":r(`accounts.listItem.quotaRemainingAria`,{label:e}),percent:t,testId:`mini-quota-track-${e.toLowerCase()}`}),(0,Z.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:ft(n??null,r)})]})}function ft(e,t){let n=z(e);return n.startsWith(`Reset `)?n:t(`accounts.listItem.resetAt`,{label:n})}function pt({open:e,onOpenChange:t,onImport:n,onAddAccount:r}){let{t:i}=F(),a=e=>{t(!1),requestAnimationFrame(()=>e())};return(0,Z.jsx)(_e,{open:e,onOpenChange:t,children:(0,Z.jsxs)(Ae,{children:[(0,Z.jsxs)(ye,{children:[(0,Z.jsx)(he,{children:i(`accounts.addDialog.title`)}),(0,Z.jsx)(Ce,{children:i(`accounts.addDialog.description`)})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>a(r),className:I(`flex w-full cursor-pointer items-start gap-3 rounded-lg border p-3 text-left transition-colors hover:bg-muted/50`,`outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`),children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border bg-muted/50`,children:(0,Z.jsx)(D,{className:`h-4 w-4 text-muted-foreground`})}),(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`block text-sm font-medium`,children:i(`accounts.addDialog.oauthTitle`)}),(0,Z.jsx)(`span`,{className:`mt-0.5 block text-xs text-muted-foreground`,children:i(`accounts.addDialog.oauthDescription`)})]})]}),(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>a(n),className:I(`flex w-full cursor-pointer items-start gap-3 rounded-lg border p-3 text-left transition-colors hover:bg-muted/50`,`outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`),children:[(0,Z.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border bg-muted/50`,children:(0,Z.jsx)(v,{className:`h-4 w-4 text-muted-foreground`})}),(0,Z.jsxs)(`span`,{className:`min-w-0`,children:[(0,Z.jsx)(`span`,{className:`block text-sm font-medium`,children:i(`common.actions.import`)}),(0,Z.jsx)(`span`,{className:`mt-0.5 block text-xs text-muted-foreground`,children:i(`accounts.addDialog.importDescription`)})]})]})]})]})})}var mt=new Set([`localhost`,`127.0.0.1`,`::1`,`[::1]`]);function ht(e,t){let n=t?.trim()??``;if(n)return n;let r=e.trim().toLowerCase();return!r||mt.has(r)?`<codex-lb-ip-or-dns>`:e}function gt(){let{t:e}=F(),t=typeof window<`u`?window.location.hostname:``,[n,r]=(0,X.useState)(null);(0,X.useEffect)(()=>{let e=!0;return B().then(t=>{if(!e)return;let n=t.connectAddress?.trim();n&&r(n)}).catch(()=>{}),()=>{e=!1}},[]);let i=(0,X.useMemo)(()=>ht(t,n),[t,n]),a=(0,X.useMemo)(()=>[`sc.exe config iphlpsvc start= auto`,`sc.exe start iphlpsvc`,``,`netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=1455`,`netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=1455 connectaddress=${i} connectport=1455`,`netsh interface portproxy show v4tov4`].join(`
3
+ `),[i]);return(0,Z.jsxs)(`div`,{className:`space-y-3 rounded-xl border bg-card p-4`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold`,children:e(`accounts.windowsOauth.title`)}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:(0,Z.jsx)(c,{i18nKey:`accounts.windowsOauth.description`,components:[(0,Z.jsx)(`code`,{className:`mx-1 rounded bg-muted px-1 py-0.5`})]})})]}),(0,Z.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[e(`accounts.windowsOauth.connectAddress`),(0,Z.jsx)(`code`,{className:`ml-1 rounded bg-muted px-1 py-0.5`,children:i})]}),(0,Z.jsx)(`pre`,{className:`overflow-x-auto rounded-lg border bg-muted/20 p-3 text-xs`,children:(0,Z.jsx)(`code`,{children:a})}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(T,{value:a,label:e(`accounts.windowsOauth.copyCommands`)}),(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`accounts.windowsOauth.runAsAdmin`)})]})]})}var _t=[{value:`reset_soonest`,label:`Reset time (soonest)`},{value:`reset_latest`,label:`Reset time (latest)`},{value:`most_reset_credits`,label:`Most reset credits`},{value:`name_asc`,label:`Name (A-Z)`},{value:`name_desc`,label:`Name (Z-A)`},{value:`status_asc`,label:`Status (active first)`},{value:`status_desc`,label:`Status (inactive first)`},{value:`quota_5h_asc`,label:`5h quota (lowest remaining)`},{value:`quota_5h_desc`,label:`5h quota (highest remaining)`},{value:`quota_7d_asc`,label:`Weekly quota (lowest remaining)`},{value:`quota_7d_desc`,label:`Weekly quota (highest remaining)`},{value:`quota_monthly_asc`,label:`Monthly quota (lowest remaining)`},{value:`quota_monthly_desc`,label:`Monthly quota (highest remaining)`}],vt=`most_reset_credits`,yt={active:0,paused:1,limited:2,exceeded:3,reauth:4,deactivated:5};function bt(e,t){switch(t){case`status_asc`:case`status_desc`:return yt[Ie(e.status)];case`quota_5h_asc`:case`quota_5h_desc`:return e.usage?.primaryRemainingPercent??1/0;case`quota_7d_asc`:case`quota_7d_desc`:return e.usage?.secondaryRemainingPercent??1/0;case`quota_monthly_asc`:case`quota_monthly_desc`:return e.usage?.monthlyRemainingPercent??1/0;default:return 1/0}}function xt(e,t){let n=Date.now(),r=e.windowMinutesPrimary!=null||e.usage?.primaryRemainingPercent!=null||e.resetAtPrimary!=null,i=e.windowMinutesSecondary!=null||e.usage?.secondaryRemainingPercent!=null||e.resetAtSecondary!=null,a=r&&(t!==`weekly`||!i),o=i&&(t!==`5h`||!r);return[a?fe(e.resetAtPrimary)?.getTime()??1/0:1/0,o?fe(e.resetAtSecondary)?.getTime()??1/0:1/0].filter(e=>e>n)}function Q(e){return(e.displayName||e.email||e.accountId).trim().toLowerCase()}function St(e,t){let n=xt(e,t);return n.length>0?Math.min(...n):1/0}function Ct(e,t,n){let r=Number.isFinite(e);return r===Number.isFinite(t)?e===t?0:n===`desc`?t-e:e-t:r?-1:1}function wt(e){let t=fe(e.resetCreditNearestExpiresAt);return t?t.getTime():1/0}function Tt(e,t){let n=e.availableResetCredits??0,r=t.availableResetCredits??0;return n===r?Ct(wt(e),wt(t),`asc`):r-n}function Et(e,t,n=vt){return e.slice().sort((e,r)=>{if(n.startsWith(`status_`)||n.startsWith(`quota_`)){let t=Ct(bt(e,n),bt(r,n),n.endsWith(`_desc`)?`desc`:`asc`);if(t!==0)return t}else if(n===`most_reset_credits`){let t=Tt(e,r);if(t!==0)return t}else if(n===`reset_latest`||n===`reset_soonest`){let i=Ct(St(e,t),St(r,t),n===`reset_latest`?`desc`:`asc`);if(i!==0)return i}else{let t=Q(e),i=Q(r),a=n===`name_asc`?t.localeCompare(i):i.localeCompare(t);if(a!==0)return a}let i=Ct(St(e,t),St(r,t),`asc`);if(i!==0)return i;let a=Q(e).localeCompare(Q(r));return a===0?e.accountId.localeCompare(r.accountId):a})}var Dt=[`all`,`active`,`paused`,`rate_limited`,`quota_exceeded`,`reauth_required`,`deactivated`];function Ot({accounts:e,selectedAccountId:t,onSelect:n,onOpenImport:r,onOpenOauth:i,sortMode:a,onSortModeChange:o,showResetCreditBadges:s=!0,readOnly:c=!1}){let{t:g}=F(),[_,v]=(0,X.useState)(``),[y,b]=(0,X.useState)(`all`),[S,C]=(0,X.useState)(!1),[w,T]=(0,X.useState)(!1),E=x(e=>e.quotaDisplay),O=a??`most_reset_credits`,k=(0,X.useMemo)(()=>{let t=_.trim().toLowerCase();return Et(e,E,O).filter(e=>y!==`all`&&e.status!==y?!1:!t||e.email.toLowerCase().includes(t)||(e.alias?.toLowerCase().includes(t)??!1)||e.displayName.toLowerCase().includes(t)||e.accountId.toLowerCase().includes(t)||e.planType.toLowerCase().includes(t))},[e,E,_,y,O]);return(0,Z.jsxs)(`div`,{className:`flex max-h-[calc(100dvh-15rem)] min-h-0 min-w-0 flex-1 flex-col space-y-3`,children:[(0,Z.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`relative min-w-0 sm:col-span-2`,children:[(0,Z.jsx)(j,{className:`pointer-events-none absolute top-1/2 left-2.5 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground/60`,"aria-hidden":!0}),(0,Z.jsx)(K,{placeholder:g(`accounts.list.searchPlaceholder`),value:_,onChange:e=>v(e.target.value),className:`h-8 pl-8`})]}),(0,Z.jsxs)(h,{value:y,onValueChange:b,children:[(0,Z.jsx)(p,{size:`sm`,className:`w-full min-w-0`,"aria-label":g(`accounts.list.statusFilterAria`),children:(0,Z.jsx)(m,{placeholder:g(`accounts.list.statusPlaceholder`)})}),(0,Z.jsx)(f,{children:Dt.map(e=>(0,Z.jsx)(d,{value:e,children:e===`all`?g(`accounts.list.allStatuses`):g(`accounts.statusFilters.${e}`,{defaultValue:V(e)})},e))})]}),(0,Z.jsxs)(h,{value:O,onValueChange:e=>o?.(e),children:[(0,Z.jsx)(p,{size:`sm`,className:`w-full min-w-0`,"aria-label":g(`accounts.list.sortAria`),children:(0,Z.jsx)(m,{placeholder:g(`accounts.list.sortPlaceholder`)})}),(0,Z.jsx)(f,{children:_t.map(e=>(0,Z.jsx)(d,{value:e.value,children:g(`accounts.sort.${e.value}`,{defaultValue:e.label})},e.value))})]})]}),(0,Z.jsxs)(`div`,{className:I(`flex flex-wrap items-center gap-3`,c?`justify-end`:`justify-between`),children:[c?null:(0,Z.jsxs)(L,{type:`button`,variant:`link`,size:`sm`,className:`h-auto px-0 text-xs`,onClick:()=>C(e=>!e),children:[g(`accounts.list.needHelp`),S?(0,Z.jsx)(u,{className:`h-3.5 w-3.5`}):(0,Z.jsx)(l,{className:`h-3.5 w-3.5`})]}),(0,Z.jsxs)(L,{type:`button`,size:`sm`,className:`gap-1.5`,disabled:c,onClick:()=>T(!0),children:[(0,Z.jsx)(D,{className:`h-3.5 w-3.5`}),g(`accounts.list.addAccount`)]})]}),S&&!c?(0,Z.jsx)(gt,{}):null,(0,Z.jsx)(`div`,{className:`flex-1 min-h-0 space-y-1 overflow-y-auto p-1 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,"data-testid":`account-list-scroll-region`,children:k.length===0?(0,Z.jsxs)(`div`,{className:`flex flex-col items-center gap-2 rounded-lg border border-dashed p-6 text-center`,children:[(0,Z.jsx)(`p`,{className:`text-sm font-medium text-muted-foreground`,children:e.length===0?g(`accounts.list.emptyTitle`):g(`accounts.list.noMatches`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground/70`,children:e.length===0?g(`accounts.list.emptyDescription`):g(`accounts.list.adjustFilters`)})]}):k.map(e=>(0,Z.jsx)(lt,{account:e,selected:e.accountId===t,showAccountId:e.isEmailDuplicate===!0,showResetCreditBadge:s,onSelect:n},e.accountId))}),e.length>0?(0,Z.jsx)(`p`,{className:`px-1 text-[11px] leading-snug text-muted-foreground/80`,children:g(`accounts.list.statusEligibilityNote`)}):null,(0,Z.jsx)(pt,{open:w,onOpenChange:T,onImport:r,onAddAccount:i})]})}function kt(){return(0,Z.jsxs)(`div`,{className:`grid min-w-0 grid-cols-1 gap-4 lg:grid-cols-[minmax(18rem,22rem)_minmax(0,1fr)]`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 rounded-xl border bg-card p-3 space-y-3 sm:p-4`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(Y,{className:`h-8 flex-1 rounded-md`}),(0,Z.jsx)(Y,{className:`h-8 w-32 rounded-md`})]}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(Y,{className:`h-8 flex-1 rounded-md`}),(0,Z.jsx)(Y,{className:`h-8 flex-1 rounded-md`})]}),Array.from({length:4}).map((e,t)=>(0,Z.jsxs)(`div`,{className:`flex items-center gap-2.5 rounded-lg px-3 py-2.5`,children:[(0,Z.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,Z.jsx)(Y,{className:`h-4 w-32`}),(0,Z.jsx)(Y,{className:`h-3 w-20`})]}),(0,Z.jsx)(Y,{className:`h-5 w-14 rounded-full`})]},t))]}),(0,Z.jsxs)(`div`,{className:`min-w-0 rounded-xl border bg-card p-4 space-y-4 sm:p-5`,children:[(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(Y,{className:`h-5 w-40`}),(0,Z.jsx)(Y,{className:`h-3 w-48`})]}),(0,Z.jsxs)(`div`,{className:`space-y-4 rounded-lg border bg-muted/30 p-4`,children:[(0,Z.jsx)(Y,{className:`h-3 w-12`}),(0,Z.jsx)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2`,children:Array.from({length:2}).map((e,t)=>(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(Y,{className:`h-3 w-28`}),(0,Z.jsx)(Y,{className:`h-3 w-10`})]}),(0,Z.jsx)(Y,{className:`h-1.5 w-full rounded-full`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(Y,{className:`h-3 w-3 rounded-sm`}),(0,Z.jsx)(Y,{className:`h-3 w-24`})]})]},t))}),(0,Z.jsxs)(`div`,{className:`pt-3`,children:[(0,Z.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,Z.jsx)(Y,{className:`h-3 w-20`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(Y,{className:`h-2 w-2 rounded-full`}),(0,Z.jsx)(Y,{className:`h-2.5 w-12`})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(Y,{className:`h-2 w-2 rounded-full`}),(0,Z.jsx)(Y,{className:`h-2.5 w-16`})]})]})]}),(0,Z.jsx)(Y,{className:`h-24 w-full rounded-md`})]})]}),(0,Z.jsxs)(`div`,{className:`space-y-3 rounded-lg border bg-muted/30 p-4`,children:[(0,Z.jsx)(Y,{className:`h-3 w-20`}),Array.from({length:3}).map((e,t)=>(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(Y,{className:`h-3 w-16`}),(0,Z.jsx)(Y,{className:`h-3 w-20`})]},t))]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2 border-t pt-4`,children:[(0,Z.jsx)(Y,{className:`h-8 w-20 rounded-md`}),(0,Z.jsx)(Y,{className:`h-8 w-28 rounded-md`}),(0,Z.jsx)(Y,{className:`h-8 w-20 rounded-md`})]})]})]})}function At({open:e,busy:t,error:n,onOpenChange:r,onImport:i}){let{t:a}=F(),[o,s]=(0,X.useState)([]),[c,l]=(0,X.useState)(0),[u,d]=(0,X.useState)(!1),f=async e=>{if(e.preventDefault(),o.length!==0){d(!0);try{for(let[e,t]of o.entries()){try{await i(t)}catch{s(o.slice(e)),l(e=>e+1);return}s(o.slice(e+1))}r(!1),s([]),l(e=>e+1)}finally{d(!1)}}},p=t||u;return(0,Z.jsx)(_e,{open:e,onOpenChange:e=>{p||r(e)},children:(0,Z.jsxs)(Ae,{children:[(0,Z.jsxs)(ye,{children:[(0,Z.jsx)(he,{children:a(`accounts.importDialog.title`)}),(0,Z.jsx)(Ce,{children:a(`accounts.importDialog.description`)})]}),(0,Z.jsxs)(`form`,{className:`space-y-4`,"aria-busy":p,onSubmit:f,children:[(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(te,{htmlFor:`auth-json-file`,children:a(`accounts.importDialog.fileLabel`)}),(0,Z.jsx)(K,{id:`auth-json-file`,type:`file`,accept:`application/json,.json`,multiple:!0,disabled:p,onChange:e=>s(Array.from(e.currentTarget.files??[]))},c)]}),o.length>0?(0,Z.jsxs)(`div`,{className:`space-y-1 text-xs text-muted-foreground`,children:[(0,Z.jsx)(`p`,{children:a(`accounts.importDialog.selectedFiles`)}),(0,Z.jsx)(`ul`,{className:`max-h-28 space-y-1 overflow-y-auto rounded-md border px-2 py-1`,children:o.map((e,t)=>(0,Z.jsx)(`li`,{className:`truncate`,title:e.name,children:e.name},`${e.name}-${e.size}-${e.lastModified}-${t}`))})]}):null,n?(0,Z.jsx)(`p`,{className:`rounded-md border border-destructive/30 bg-destructive/10 px-2 py-1 text-xs text-destructive`,children:n}):null,(0,Z.jsx)(De,{children:(0,Z.jsx)(L,{type:`submit`,disabled:p||o.length===0,children:a(`common.actions.import`)})})]})]})})}function $(e,t=18,n=10){return e.length<=t+n+1?e:`${e.slice(0,t)}…${e.slice(-n)}`}function jt(e){return`${JSON.stringify(e.codexAuthJson,null,2)}\n`}function Mt(e){return`${JSON.stringify({auth_mode:e.codexAuthJson.auth_mode,OPENAI_API_KEY:e.codexAuthJson.OPENAI_API_KEY,tokens:{id_token:$(e.codexAuthJson.tokens.id_token),access_token:$(e.codexAuthJson.tokens.access_token),refresh_token:$(e.codexAuthJson.tokens.refresh_token),account_id:e.codexAuthJson.tokens.account_id},last_refresh:e.codexAuthJson.last_refresh},null,2)}\n`}function Nt(e){return`${JSON.stringify({openai:{...e.opencodeAuthJson.openai,access:$(e.opencodeAuthJson.openai.access),refresh:$(e.opencodeAuthJson.openai.refresh)}},null,2)}\n`}function Pt(e,t){let n=t===`codex`?jt(e):`${JSON.stringify(e.opencodeAuthJson,null,2)}\n`,r=new Blob([n],{type:`application/json`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=t===`codex`?`auth.json`:e.filename,document.body.append(a);try{a.click()}finally{a.remove(),URL.revokeObjectURL(i)}}function Ft({exportData:e,onOpenChange:t}){let{t:n}=F(),r=Se(e=>e.blurred),[i,a]=(0,X.useState)(`codex`),o=i===`codex`?Mt(e):Nt(e),s=i===`codex`?jt(e):`${JSON.stringify(e.opencodeAuthJson,null,2)}\n`,c=i===`codex`?[{label:n(`accounts.authExport.idToken`),value:e.codexAuthJson.tokens.id_token,copyLabel:n(`accounts.authExport.copyIdToken`)},{label:n(`accounts.authExport.accessToken`),value:e.codexAuthJson.tokens.access_token,copyLabel:n(`accounts.authExport.copyAccessToken`)},{label:n(`accounts.authExport.refreshToken`),value:e.codexAuthJson.tokens.refresh_token,copyLabel:n(`accounts.authExport.copyRefreshToken`)}]:[{label:n(`accounts.authExport.accessToken`),value:e.opencodeAuthJson.openai.access,copyLabel:n(`accounts.authExport.copyAccessToken`)},{label:n(`accounts.authExport.refreshToken`),value:e.opencodeAuthJson.openai.refresh,copyLabel:n(`accounts.authExport.copyRefreshToken`)}];return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[(0,Z.jsx)(ke,{variant:`warning`,children:n(`accounts.authExport.warning`)}),(0,Z.jsxs)(`div`,{className:`rounded-lg border bg-muted/20 p-3 text-xs`,children:[(0,Z.jsx)(`div`,{className:`font-medium`,children:n(`accounts.authExport.exportedAccount`)}),(0,Z.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:(0,Z.jsx)(`span`,{className:r?`privacy-blur`:void 0,children:e.account.email})}),(0,Z.jsx)(`div`,{className:`mt-1 font-mono text-muted-foreground`,children:e.account.chatgptAccountId??e.account.accountId})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(te,{id:`auth-export-format-label`,children:n(`accounts.authExport.format`)}),(0,Z.jsxs)(h,{value:i,onValueChange:e=>a(e),children:[(0,Z.jsx)(p,{className:`w-[180px]`,"aria-labelledby":`auth-export-format-label`,children:(0,Z.jsx)(m,{})}),(0,Z.jsxs)(f,{children:[(0,Z.jsx)(d,{value:`codex`,children:`codex`}),(0,Z.jsx)(d,{value:`opencode`,children:`opencode`})]})]})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`div`,{className:`text-sm font-medium`,children:n(`accounts.authExport.tokenPreview`)}),(0,Z.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:n(`accounts.authExport.tokenPreviewDescription`)})]}),(0,Z.jsx)(`div`,{className:`overflow-hidden rounded-lg border bg-muted/20`,children:c.map((e,t)=>(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-3 py-2 ${t<c.length-1?`border-b`:``}`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`div`,{className:`text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:e.label}),(0,Z.jsx)(`div`,{className:`truncate font-mono text-xs`,children:$(e.value)})]}),(0,Z.jsx)(T,{value:e.value,label:e.copyLabel,iconOnly:!0})]},e.copyLabel))})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Z.jsx)(`div`,{className:`text-sm font-medium`,children:`auth.json`}),(0,Z.jsx)(T,{value:s,label:n(`accounts.authExport.copyAuthJson`)})]}),(0,Z.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-all rounded-lg border bg-muted/20 p-3 text-xs`,children:o})]})]}),(0,Z.jsxs)(De,{children:[(0,Z.jsx)(L,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:n(`common.actions.close`)}),(0,Z.jsxs)(L,{type:`button`,className:`gap-1.5`,onClick:()=>Pt(e,i),children:[(0,Z.jsx)(E,{className:`h-4 w-4`}),n(`common.actions.download`)]})]})]})}function It({open:e,exportData:t,onOpenChange:n}){let{t:r}=F();return(0,Z.jsx)(_e,{open:e,onOpenChange:n,children:(0,Z.jsxs)(Ae,{className:`sm:max-w-2xl`,children:[(0,Z.jsxs)(ye,{children:[(0,Z.jsx)(he,{children:r(`accounts.authExport.title`)}),(0,Z.jsx)(Ce,{children:r(`accounts.authExport.description`)})]}),t?(0,Z.jsx)(Ft,{exportData:t,onOpenChange:n},e?`open`:`closed`):null]})})}function Lt(e,t){e.invalidateQueries({queryKey:[`accounts`,`list`]}),e.invalidateQueries({queryKey:[`accounts`,`trends`]}),e.invalidateQueries({queryKey:[`dashboard`,`overview`]}),e.invalidateQueries({queryKey:[`dashboard`,`projections`]}),t&&e.invalidateQueries({queryKey:[`accounts`,`trends`,t]})}var Rt=q.parse({flowId:null,status:`idle`,method:null,authorizationUrl:null,callbackUrl:null,verificationUrl:null,userCode:null,deviceAuthId:null,intervalSeconds:null,expiresInSeconds:null,errorMessage:null}),zt=2;function Bt(){let e=r(),[t,n]=(0,X.useState)(Rt),i=(0,X.useRef)(Rt),a=(0,X.useRef)(0),o=(0,X.useRef)(null),s=(0,X.useRef)(null),c=(0,X.useCallback)(e=>{n(t=>{let n=typeof e==`function`?e(t):e;return i.current=n,n})},[]),l=(0,X.useCallback)(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]),u=(0,X.useCallback)(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]),d=(0,X.useCallback)(()=>{a.current+=1,l(),u(),c(Rt)},[u,l,c]),f=(0,X.useCallback)(async()=>{let t=a.current,n=i.current.flowId,r=i.current.deviceAuthId,o=i.current.userCode,s=()=>a.current===t&&i.current.flowId===n;try{let t=await Me(n??void 0);if(!s())return;if(t.status===`success`){let t=await me({...n?{flowId:n}:{},deviceAuthId:r??void 0,userCode:o??void 0});if(!s())return;c(e=>q.parse({...e,status:t.status===`success`?`success`:t.status===`error`?`error`:`pending`,errorMessage:t.errorMessage??null})),t.status===`success`?(Lt(e),l(),u()):t.status===`error`&&(l(),u());return}c(e=>q.parse({...e,status:t.status===`success`?`success`:t.status===`error`?`error`:`pending`,errorMessage:t.errorMessage})),t.status===`error`&&(l(),u())}catch(e){if(!s())return;l(),u(),c(t=>q.parse({...t,status:`error`,errorMessage:e instanceof Error?e.message:`Failed to poll OAuth status`}))}},[u,l,e,c]),p=(0,X.useCallback)(e=>{l(),!(!e||e<=0)&&(o.current=window.setInterval(()=>{f()},e*1e3))},[l,f]),m=(0,X.useCallback)(e=>{u(),!(!e||e<=0)&&(s.current=window.setInterval(()=>{c(e=>{let t=Math.max(0,(e.expiresInSeconds??0)-1);return t===0&&u(),q.parse({...e,expiresInSeconds:t})})},1e3))},[u,c]),h=(0,X.useCallback)(async(e,t)=>{a.current+=1;let n=a.current;l(),u(),c(e=>({...e,status:`starting`,errorMessage:null}));try{let r=await ae({forceMethod:e,accountId:t});if(a.current!==n)return i.current;let o=r.method===`device`?`device`:`browser`,s=q.parse({flowId:r.flowId??null,status:`pending`,method:o,authorizationUrl:r.authorizationUrl,callbackUrl:r.callbackUrl,verificationUrl:r.verificationUrl,userCode:r.userCode,deviceAuthId:r.deviceAuthId,intervalSeconds:r.intervalSeconds??(o===`browser`&&r.flowId?zt:null),expiresInSeconds:r.expiresInSeconds,errorMessage:null});return c(s),p(s.intervalSeconds),m(s.expiresInSeconds),s.method===`device`&&s.deviceAuthId&&s.userCode&&await me({...s.flowId?{flowId:s.flowId}:{},deviceAuthId:s.deviceAuthId,userCode:s.userCode}),s}catch(e){if(a.current!==n)throw e;let t=e instanceof Error?e.message:`Failed to start OAuth`;throw l(),u(),c(e=>q.parse({...e,status:`error`,errorMessage:t})),e}},[u,l,m,p,c]),g=(0,X.useCallback)(async()=>{try{let t=await me({...i.current.flowId?{flowId:i.current.flowId}:{},deviceAuthId:i.current.deviceAuthId??void 0,userCode:i.current.userCode??void 0});c(e=>q.parse({...e,status:t.status===`success`?`success`:t.status===`error`?`error`:`pending`,errorMessage:t.errorMessage??null})),t.status===`success`?(Lt(e),l(),u()):t.status===`error`&&(l(),u())}catch(e){throw l(),u(),c(t=>q.parse({...t,status:`error`,errorMessage:e instanceof Error?e.message:`Failed to complete OAuth`})),e}},[u,l,e,c]),_=(0,X.useCallback)(async t=>{try{let n=await se({callbackUrl:t,...i.current.flowId?{flowId:i.current.flowId}:{}});return c(e=>q.parse({...e,status:n.status===`success`?`success`:`error`,errorMessage:n.errorMessage})),n.status===`success`?(Lt(e),l(),u()):(l(),u()),n}catch(e){throw l(),u(),c(t=>q.parse({...t,status:`error`,errorMessage:e instanceof Error?e.message:`Failed to process OAuth callback`})),e}},[u,l,e,c]);return(0,X.useEffect)(()=>()=>{l(),u()},[u,l]),{state:t,start:h,poll:f,complete:g,manualCallback:_,reset:d}}var Vt=(0,X.lazy)(()=>ge(()=>import(`./oauth-dialog-XeaGGDjS.js`).then(e=>({default:e.OauthDialog})),__vite__mapDeps([21,1,2,13,7,22,3,4,10,11,5,6,8,9,12,14,15,16,17,23])));function Ht(){let{t:e}=F(),[t,n]=je(),[r,i]=(0,X.useState)(vt),[a,o]=(0,X.useState)(null),{accountsQuery:s,importMutation:c,pauseMutation:l,resumeMutation:u,setAliasMutation:d,probeMutation:f,usageResetMutation:p,limitWarmupMutation:m,updateMutation:h,deleteMutation:g,routingPolicyMutation:_,exportAuthMutation:v}=Be(),{settingsQuery:y}=Ee(),b=ne(`accounts:write`),S=ne(`ops:write`),{upstreamProxyQuery:C,accountBindingMutation:T,testEndpointMutation:E}=we({enabled:S}),D=Bt(),O=J(),k=J(),A=J(),j=J(),M=J(),N=J(),[P,I]=(0,X.useState)(!1),L=(0,X.useMemo)(()=>s.data??[],[s.data]),te=y.data?.showResetCreditBadges??!0,R=y.data?.showResetCreditExpiryBadge??!0,re=x(e=>e.quotaDisplay),z=(0,X.useMemo)(()=>Et(L,re,r),[L,re,r]),B=t.get(`selected`),V=(0,X.useCallback)(e=>{let r=new URLSearchParams(t);r.set(`selected`,e),n(r)},[t,n]),U=(0,X.useMemo)(()=>L.length===0?null:B&&L.some(e=>e.accountId===B)?B:z[0]?.accountId??null,[L,B,z]),W=(0,X.useMemo)(()=>U?L.find(e=>e.accountId===U)??null:null,[L,U]),G=He(W?.accountId??null),K=c.isPending||l.isPending||u.isPending||d.isPending||f.isPending||p.isPending||m.isPending||g.isPending||_.isPending||v.isPending||h.isPending||T.isPending||E.isPending,ie=H(c.error)||H(l.error)||H(u.error)||H(d.error)||H(f.error)||H(p.error)||H(m.error)||H(g.error)||H(_.error)||H(v.error)||H(h.error)||H(y.error)||H(C.error)||H(T.error)||H(E.error);return(0,Z.jsxs)(`div`,{className:`animate-fade-in-up space-y-6`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:e(`accounts.page.title`)}),(0,Z.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:e(`accounts.page.subtitle`)})]}),ie?(0,Z.jsx)(ke,{variant:`error`,children:ie}):null,s.data?(0,Z.jsxs)(`div`,{"data-testid":`accounts-layout`,className:`grid min-w-0 grid-cols-1 gap-4 lg:grid-cols-[minmax(18rem,22rem)_minmax(0,1fr)]`,children:[(0,Z.jsx)(`div`,{"data-testid":`accounts-list-panel`,className:`min-w-0 min-h-0 self-start`,children:(0,Z.jsx)(`div`,{"data-testid":`accounts-list-card`,className:`flex min-h-0 min-w-0 flex-col rounded-xl border bg-card p-3 sm:p-4`,children:(0,Z.jsx)(Ot,{accounts:L,selectedAccountId:U,onSelect:V,sortMode:r,onSortModeChange:i,showResetCreditBadges:te,onOpenImport:()=>O.show(),onOpenOauth:()=>{o(null),k.show()},readOnly:!b})})}),(0,Z.jsx)(st,{account:W,showAccountId:W?.isEmailDuplicate===!0,busy:K,readOnly:!b,onPause:e=>void l.mutateAsync(e),onResume:e=>void u.mutateAsync(e),onProbe:e=>void f.mutateAsync({accountId:e}),onResetUsage:e=>M.show(e),onSetAlias:(e,t)=>d.mutateAsync({accountId:e,alias:t}),onDelete:e=>A.show(e),onReauth:()=>{o(W?.accountId??null),k.show()},onExportAuth:e=>{v.mutateAsync(e).then(e=>N.show(e)).catch(()=>null)},onResetCredit:e=>{let t=s.data?.find(t=>t.accountId===e);j.show({accountId:e,availableResetCredits:t?.availableResetCredits??0})},showResetCreditExpiryBadge:R,onLimitWarmupChange:(e,t)=>void m.mutateAsync({accountId:e,enabled:t}),onRoutingPolicyChange:(e,t)=>void _.mutateAsync({accountId:e,routingPolicy:t}),onSecurityWorkAuthorizedChange:(e,t)=>void h.mutateAsync({accountId:e,securityWorkAuthorized:t}),upstreamProxyAdmin:S?C.data??null:null,onProxyBindingSave:(e,t)=>T.mutateAsync({accountId:e,payload:t}),onProxyEndpointTest:e=>E.mutateAsync(e),resetCredits:G.data?.rateLimitResetCredits??null,resetCreditsLoading:G.isFetching,resetCreditsUnavailable:!!G.error})]}):(0,Z.jsx)(kt,{}),(0,Z.jsx)(At,{open:O.open,busy:c.isPending,error:H(c.error),onOpenChange:O.onOpenChange,onImport:async e=>{await c.mutateAsync(e)}}),(0,Z.jsx)(X.Suspense,{fallback:null,children:(0,Z.jsx)(Vt,{open:k.open,state:D.state,onOpenChange:e=>{k.onOpenChange(e),e||o(null)},onStart:async e=>{await D.start(e,a??void 0)},onComplete:async()=>{await s.refetch()},onManualCallback:async e=>{await D.manualCallback(e)},onReset:D.reset})}),(0,Z.jsx)(It,{open:N.open,exportData:N.data,onOpenChange:N.onOpenChange}),j.data?(0,Z.jsx)(w,{open:j.open,accountId:j.data.accountId,summaryAvailableCount:j.data.availableResetCredits,onOpenChange:j.onOpenChange}):null,(0,Z.jsx)(Le,{open:A.open,title:e(`accounts.deleteDialog.title`),description:e(`accounts.deleteDialog.description`),confirmLabel:e(`common.actions.delete`),cancelLabel:e(`common.cancel`),onOpenChange:e=>{A.onOpenChange(e),e||I(!1)},onConfirm:()=>{A.data&&g.mutateAsync({accountId:A.data,deleteHistory:P}).finally(()=>{A.hide(),I(!1)})},children:(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(ee,{id:`delete-history`,checked:P,onCheckedChange:e=>I(e===!0)}),(0,Z.jsx)(`label`,{htmlFor:`delete-history`,className:`text-sm text-muted-foreground cursor-pointer`,children:e(`accounts.deleteDialog.deleteHistory`)})]})}),(0,Z.jsx)(Le,{open:M.open,title:e(`accounts.usageResetDialog.title`),description:e(`accounts.usageResetDialog.description`),confirmLabel:e(`common.actions.reset`),cancelLabel:e(`common.cancel`),onOpenChange:M.onOpenChange,onConfirm:()=>{M.data&&p.mutateAsync({accountId:M.data}).finally(()=>{M.hide()})}}),(0,Z.jsx)(Re,{visible:!!s.data&&K,label:e(`accounts.page.updating`)})]})}export{Ht as AccountsPage};
@@ -0,0 +1 @@
1
+ import{t as e}from"./iso-Bpe5Ihbb.js";import{a as t,d as n,f as r,h as i,i as a,m as o,n as s,r as c,u as l,v as u}from"./api-client-dugX1Pti.js";var d=[`total_tokens`,`input_tokens`,`output_tokens`,`cost_usd`,`credits`],f=[`daily`,`weekly`,`monthly`,`5h`,`7d`],p=i({id:o(),limitType:l(d),limitWindow:l(f),maxValue:o(),currentValue:o(),modelFilter:u().nullable(),resetAt:e({offset:!0})}),m=i({limitType:l(d),limitWindow:l(f),maxValue:o().int().positive(),modelFilter:u().nullable().optional()}),h=i({requestCount:o().int().nonnegative(),totalTokens:o().int().nonnegative(),cachedInputTokens:o().int().nonnegative(),totalCostUsd:o().nonnegative().default(0)}),g=[`auto`,`default`,`priority`,`flex`,`ultrafast`],_=[`foreground`,`opportunistic`],v=[`smart`,`always_http`,`always_websocket`],y=[`minimal`,`low`,`medium`,`high`,`xhigh`,`max`,`ultra`],b=[`none`,...y],x=i({id:u(),name:u(),keyPrefix:u(),allowedModels:n(u()).nullable(),applyToCodexModel:r().default(!1),enforcedModel:u().nullable().default(null),allowedReasoningEfforts:n(l(y)).nullable().default(null),trafficClass:l(_).default(`foreground`),transportPolicyOverride:l(v).nullable().default(null),enforcedReasoningEffort:l(b).nullable().default(null),enforcedServiceTier:l(g).nullable().default(null),usageSections:u().default(`upstream_limits,account_pool_usage`),expiresAt:e({offset:!0}).nullable(),isActive:r(),accountAssignmentScopeEnabled:r().default(!1),sourceAssignmentScopeEnabled:r().default(!1),assignedAccountIds:n(u()).default([]),assignedSourceIds:n(u()).default([]),createdAt:e({offset:!0}),lastUsedAt:e({offset:!0}).nullable(),limits:n(p).default([]),usageSummary:h.nullable().default(null),pooledRemainingPercentPrimary:o().nullable().default(null),pooledRemainingPercentSecondary:o().nullable().default(null),pooledCapacityCreditsPrimary:o().default(0)}),S=[`upstream_limits`,`account_pool_usage`],C={upstream_limits:`Upstream limits`,account_pool_usage:`Account pool usage`},w=i({name:u().min(1).max(128),allowedModels:n(u()).optional(),applyToCodexModel:r().optional(),trafficClass:l(_).optional(),transportPolicyOverride:l(v).nullable().optional(),enforcedModel:u().min(1).nullable().optional(),allowedReasoningEfforts:n(l(y)).min(1).nullable().optional(),enforcedReasoningEffort:l(b).nullable().optional(),enforcedServiceTier:l(g).nullable().optional(),usageSections:u().optional(),weeklyTokenLimit:o().int().positive().nullable().optional(),expiresAt:e({offset:!0}).nullable().optional(),assignedAccountIds:n(u()).optional(),assignedSourceIds:n(u()).optional(),limits:n(m).optional()}),T=x.extend({key:u()}),E=i({name:u().min(1).max(128).optional(),allowedModels:n(u()).nullable().optional(),applyToCodexModel:r().optional(),trafficClass:l(_).optional(),transportPolicyOverride:l(v).nullable().optional(),enforcedModel:u().min(1).nullable().optional(),allowedReasoningEfforts:n(l(y)).min(1).nullable().optional(),enforcedReasoningEffort:l(b).nullable().optional(),enforcedServiceTier:l(g).nullable().optional(),usageSections:u().optional(),weeklyTokenLimit:o().int().positive().nullable().optional(),expiresAt:e({offset:!0}).nullable().optional(),isActive:r().optional(),assignedAccountIds:n(u()).optional(),assignedSourceIds:n(u()).optional(),limits:n(m).optional(),resetUsage:r().optional()}),D=n(x),O=i({id:u(),name:u(),sourceOnly:r().default(!1),supportedReasoningEfforts:n(l(y)).default([]),defaultReasoningEffort:l(y).nullable().optional()}),k=i({models:n(O)}),A=`/api/api-keys`,j=`/api/models`;function M(){return c(`${A}/`,D)}function N(e){let n=w.parse(e);return t(`${A}/`,T,{body:n})}function P(e,t){let n=E.parse(t);return a(`${A}/${encodeURIComponent(e)}`,x,{body:n})}function F(e){return s(`${A}/${encodeURIComponent(e)}`)}function I(e){return t(`${A}/${encodeURIComponent(e)}/regenerate`,T)}function L(){return c(j,k)}export{L as a,d as c,S as d,C as f,M as i,f as l,N as n,I as o,F as r,P as s,A as t,y as u};
@@ -0,0 +1,55 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t}from"./vendor-query-_bHZuxEx.js";import{h as n}from"./es2015-bMH8YKZT.js";var r=e(t(),1),i=Object.defineProperty,a=(e,t)=>i(e,`name`,{value:t,configurable:!0});function o(e){let[t,i]=r.useState(void 0);return n(()=>{if(e){i({width:e.offsetWidth,height:e.offsetHeight});let t=0,n=new ResizeObserver(n=>{if(!Array.isArray(n)||!n.length)return;let r=n[0];window.cancelAnimationFrame(t),t=window.requestAnimationFrame(()=>{let t,n;if(`borderBoxSize`in r){let e=r.borderBoxSize,i=Array.isArray(e)?e[0]:e;t=i.inlineSize,n=i.blockSize}else t=e.offsetWidth,n=e.offsetHeight;i({width:t,height:n})})});return n.observe(e,{box:`border-box`}),()=>{window.cancelAnimationFrame(t),n.unobserve(e)}}i(void 0)},[e]),t}a(o,`useSize`);function s(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function c(e,t=`|`){return e.map(e=>de(e)).join(t)}function l(e,t){return typeof t==`bigint`?t.toString():t}var u=class{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;return e!==void 0&&(this._value=e(),this._getter=void 0),this._value}};function d(e){return new u(e)}function f(e){return e==null}function p(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function m(e,t){let n=e/t,r=Math.round(n),i=4*2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}function h(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function ee(e){let t=Object.getOwnPropertyDescriptor(e,`shape`);return t?.get?t.get.raw:t?.value}function g(e){return ee(e._zod.def)??e._zod.def.shape}function te(e,t,n){Object.defineProperty(e,t,{get(){let e=n();return h(this,t,e),e},enumerable:!0,configurable:!0})}function ne(e,t,n){t in e?h(e,t,n):e[t]=n}function _(e,t,n,r){let i=g(t);for(let a of n){let n=Object.getOwnPropertyDescriptor(i,a);n.enumerable&&(n.get?te(e,a,()=>{let e=t._zod.def.shape[a];return r?r(e,a):e}):ne(e,a,r?r(n.value,a):n.value))}}function re(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);r.enumerable&&(r.get?te(e,n,()=>t[n]):ne(e,n,r.value))}}function v(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function ie(e){return JSON.stringify(e)}function ae(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var oe=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function se(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ce=d(()=>{if(N.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function y(e){if(se(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return se(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function le(e){return y(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var ue=new Set([`string`,`number`,`symbol`]);function b(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function x(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function S(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function de(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function fe(e){return Object.keys(e).filter(t=>e[t]._zod.optin!==void 0&&e[t]._zod.optout===`optional`)}var pe={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},me={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]};function he(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);let i={};return _(i,e,ge(e,t)),x(e,v(n,{shape:i,checks:[]}))}function ge(e,t){let n=g(e),r=[];for(let e of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,e)?.enumerable)throw Error(`Unrecognized key: "${String(e)}"`);t[e]&&r.push(e)}return r}function _e(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);let i=new Set(ge(e,t)),a={};return _(a,e,Reflect.ownKeys(g(e)).filter(e=>!i.has(e))),x(e,v(n,{shape:a,checks:[]}))}function ve(e,t){if(!y(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=g(e);for(let e of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return x(e,v(e._zod.def,{shape:ye(e,t)}))}function ye(e,t){let n={};return _(n,e,Reflect.ownKeys(g(e))),re(n,t),n}function be(e,t){if(!y(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return x(e,v(e._zod.def,{shape:ye(e,t)}))}function xe(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);let n={};return _(n,e,Reflect.ownKeys(g(e))),_(n,t,Reflect.ownKeys(g(t))),x(e,v(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function Se(e,t,n,r=`partial`){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(ge(t,n)):void 0,o={};return _(o,t,Reflect.ownKeys(g(t)),e&&((t,n)=>a&&!a.has(n)?t:new e({type:`optional`,innerType:t}))),x(t,v(t._zod.def,{shape:o,checks:[]}))}function Ce(e,t,n){let r=n?new Set(ge(t,n)):void 0,i={};return _(i,t,Reflect.ownKeys(g(t)),(t,n)=>r&&!r.has(n)?t:new e({type:`nonoptional`,innerType:t})),x(t,v(t._zod.def,{shape:i}))}function C(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function we(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function w(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function T(e){return typeof e==`string`?e:e?.message}function Te(e,t,n){var r;for(let i=t;i<e.length;i++)(r=e[i]).schema??(r.schema=n)}function E(e,t,n){var r;let i=e.inst?._zod?.traits;i?.has(`$ZodType`)&&(i.has(`$ZodCheck`)?(r=e).schema??(r.schema=e.inst):e.schema=e.inst);let a=e.schema===e.inst?void 0:e.schema?._zod.def?.error,o=e.message?e.message:T(e.inst?._zod.def?.error?.(e))??T(a?.(e))??T(t?.error?.(e))??T(n.customError?.(e))??T(n.localeError?.(e))??`Invalid input`,s={};for(let t of Object.keys(e))t!==`inst`&&t!==`schema`&&t!==`continue`&&t!==`input`&&t!==`__proto__`&&(s[t]=e[t]);return s.path??=[],s.message=o,t?.reportInput&&(s.input=e.input),s}var Ee=/[\uD800-\uDBFF]/;function De(e){let t=e.length;if(!Ee.test(e))return t;let n=t;for(let r=0;r<t-1;r++)(e.charCodeAt(r)&64512)==55296&&(e.charCodeAt(r+1)&64512)==56320&&(n--,r++);return n}function Oe(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function ke(e){let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`nan`:`number`;case`object`:{if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=e;if(t&&Object.getPrototypeOf(t)!==Object.prototype&&`constructor`in t&&t.constructor)return t.constructor.name}}return t}function D(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function Ae(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);r.get?Object.defineProperty(e,n,{...r,enumerable:!1}):Ne(e,n,r.value)}}function O(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function je(e,t,n){return O(e,t,n,!1)}function Me(e,t){for(let n in e){let r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return O(this,n,r(this))},set(e){O(this,n,e)}})}return t}function Ne(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:O(this,t,n.bind(this))},set(e){O(this,t,e)}})}function Pe(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}var Fe,k=!1,Ie={configurable:!0,get(){k=!0}};function A(e,t,n){let r=Object.getPrototypeOf(e._zod);t in r&&Fe!==e._zod?Fe=void 0:(Fe=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,Ie);let e=k;k=!1;try{let r=n(this);return k?delete this[t]:Object.defineProperty(this,t,{configurable:!0,writable:!0,value:r}),k||=e,r}catch(n){throw delete this[t],k||=e,n}},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}}))}function Le(e,t,n,r){let i=Pe(e,t);i&&Object.defineProperty(i,t,{configurable:!0,get(){let e={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,e),e.value=n(this),Object.defineProperty(this,t,e),e.value},set(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:e})}})}var Re=`~constantCatch`;function ze(e){let t=()=>e;return t[Re]=!0,t}var Be,Ve={value:void 0,enumerable:!1},He=`captureStackTrace`in Error?Error:null;function Ue(e){let t=He;if(t){let n=t.stackTraceLimit;if(typeof n==`number`){try{t.stackTraceLimit=0}catch{return He=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function j(e,t,n,r){let i={};function a(e){this.def=e,this.constr=d,this.traits=new Set}a.prototype=i;let o=n,s=o&&new WeakSet;function c(n,r){if(!n._zod){Ve.value=new a(r);try{Object.defineProperty(n,"_zod",Ve)}finally{Ve.value=void 0}}else if(n._zod.traits.has(e))return;if(n._zod.traits.add(e),t(n,r),s){let e=Object.getPrototypeOf(n),t=n._zod.constr.prototype,r=e;for(;r&&r!==t;)r=Object.getPrototypeOf(r);let i=r??e;s.has(i)||(s.add(i),Ae(i,o))}let i=d.prototype;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&(e in n||(n[e]=i[e].bind(n)))}let l=r?.Parent??Object;class u extends l{}Object.defineProperty(u,"name",{value:e});function d(e){let t=r?.Parent?Ue(u):this;c(t,e);let n=t._zod.deferred;if(n){for(let e of n)e();t._zod.deferred=void 0}let i=globalThis.__zod_globalConfig?.postProcessor;return i&&i(t),t}return Object.defineProperty(d,"init",{value:c}),Object.defineProperty(d,Symbol.hasInstance,{value:t=>r?.Parent&&t instanceof r.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(d,"name",{value:e}),d}var M=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},We=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Be=globalThis).__zod_globalConfig??(Be.__zod_globalConfig={});var N=globalThis.__zod_globalConfig;function P(e){return e&&Object.assign(N,e),N}function Ge(){let e=this._zod;return e.message??=JSON.stringify(e.def,l,2),e.message}function Ke(e){this._zod.message=e}var qe={get:Ge,set:Ke,enumerable:!0,configurable:!0},Je={value:void 0,enumerable:!1},Ye=new WeakSet([Object.prototype,Error.prototype]),Xe=(e,t)=>{e.name=`$ZodError`,Je.value=t,Object.defineProperty(e,"issues",Je),Je.value=void 0,Object.defineProperty(e,"message",qe);let n=Object.getPrototypeOf(e);Ye.has(n)||(Ye.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let e=()=>this.message;return Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,"toString",{value:e,configurable:!0,writable:!0})}}))},Ze=j(`$ZodError`,Xe);j(`$ZodError`,Xe,void 0,{Parent:Error});function Qe(e,t,n){return Object.prototype.hasOwnProperty.call(e,t)||(t===`__proto__`?Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0}):e[t]=n()),e[t]}function $e(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?Qe(n,i.path[0],()=>[]).push(t(i)):r.push(t(i));return{formErrors:r,fieldErrors:n}}function et(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i],o=i===e.length-1;if(n===`_errors`){o&&r._errors.push(t(a)),i++;continue}Object.prototype.hasOwnProperty.call(r,n)||Object.defineProperty(r,n,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let s=r[n];o&&s._errors.push(t(a)),r=s,i++}}}};return r(e),n}function tt(e,t){return{callee:t?.callee??e,Err:t?.Err}}var nt=e=>{let t=(n,r,i,a)=>{let o=i?{...i,async:!1}:{async:!1},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new M;if(s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>E(e,o,P())));throw oe(n,a?.callee??t),n}return s.value};return t},rt=e=>{let t=async(n,r,i,a)=>{let o=i?{...i,async:!0}:{async:!0},s=n._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){let n=new((a?.Err)??e)(s.issues.map(e=>E(e,o,P())));throw oe(n,a?.callee??t),n}return s.value};return t},it=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new M;return a.issues.length?at(e,a.issues,i):{success:!0,data:a.value}};function at(e,t,n){let r;return{success:!1,get error(){return r||(r=new e(t.map(e=>E(e,n,P()))),t=void 0,n=void 0),r},set error(e){r=e,t=void 0,n=void 0}}}var ot=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?at(e,a.issues,i):{success:!0,data:a.value}},st=Symbol.for(`zod.compile.invalid`),ct=Symbol.for(`zod.compile.fallback`),lt=((e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==st)return!0;if(r.definite===!0&&n===void 0)return!1}return ut(e,t,n)});function ut(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},i=e._zod.bag.fallbackRun,a;if(i?(r[ct]=!0,a=i({value:t,issues:[]},r)):a=e._zod.run({value:t,issues:[]},r),a instanceof Promise)throw new M;return a.issues.length===0}var dt=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},i=e._zod.run({value:t,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length===0},ft=e=>{let t=nt(e),n=(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return t(e,r,o,tt(n,a))};return n},pt=e=>{let t=nt(e),n=(e,r,i,a)=>t(e,r,i,tt(n,a));return n},mt=e=>{let t=rt(e),n=async(e,r,i,a)=>{let o=i?{...i,direction:`backward`}:{direction:`backward`};return await t(e,r,o,tt(n,a))};return n},ht=e=>{let t=rt(e),n=async(e,r,i,a)=>await t(e,r,i,tt(n,a));return n},gt=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return it(e)(t,n,i)},_t=e=>(t,n,r)=>it(e)(t,n,r),vt=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return ot(e)(t,n,i)},yt=e=>async(t,n,r)=>ot(e)(t,n,r),bt=/^[cC][0-9a-z]{6,}$/,xt=/^[0-9a-z]+$/,St=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Ct=/^[0-9a-vA-V]{20}$/,wt=/^[A-Za-z0-9]{27}$/,Tt=/^[a-zA-Z0-9_-]{21}$/;function Et(e){return RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var Dt=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ot=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,kt=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,At=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,jt=`^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;function Mt(){return new RegExp(jt,`u`)}var Nt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Pt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Ft=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,It=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Lt=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Rt=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/,zt=/^https?$/,Bt=/^\+[1-9]\d{6,14}$/,Vt=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;function Ht(e){return RegExp(`^${e}$`)}var Ut=Ht(Vt);function Wt(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?`${t}:[0-5]\\d(?:\\.\\d+)?`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Gt(e){return RegExp(`^${Wt(e)}$`)}function Kt(e){let t=[`Z`];e.offset&&t.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let n=`${Wt({precision:e.precision,seconds:!0})}(?:${t.join(`|`)})`,r=e.local?`${n}|${Wt({precision:e.precision})}`:n;return RegExp(`^${Vt}T(?:${r})$`)}var qt=/^[\s\S]{0,}$/,Jt=/^-?\d+$/,Yt=/^-?\d+(?:\.\d+)?$/,Xt=/^(?:true|false)$/i,Zt=/^[^A-Z]*$/,Qt=/^[^a-z]*$/,F=j(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),$t=e=>{let t=e.value;return!f(t)&&t.length!==void 0},en={number:`number`,bigint:`bigint`,object:`date`},tn=j(`$ZodCheckLessThan`,(e,t)=>{F.init(e,t);let n=en[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:en[typeof r.value]??n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),nn=j(`$ZodCheckGreaterThan`,(e,t)=>{F.init(e,t);let n=en[typeof t.value];e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:en[typeof r.value]??n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),rn=j(`$ZodCheckMultipleOf`,(e,t)=>{F.init(e,t),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):m(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),an=j(`$ZodCheckNumberFormat`,(e,t)=>{F.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=pe[t.format];e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),on=j(`$ZodCheckMaxLength`,(e,t)=>{var n;F.init(e,t),(n=e._zod.def).when??(n.when=$t),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>t.maximum?De(r):i)<=t.maximum)return;let a=Oe(r);n.issues.push({origin:a,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),sn=j(`$ZodCheckMinLength`,(e,t)=>{var n;F.init(e,t),(n=e._zod.def).when??(n.when=$t),e._zod.check=n=>{let r=n.value,i=r.length;if((typeof r==`string`&&i>=t.minimum&&i<t.minimum*2?De(r):i)>=t.minimum)return;let a=Oe(r);n.issues.push({origin:a,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),cn=j(`$ZodCheckLengthEquals`,(e,t)=>{var n;F.init(e,t),(n=e._zod.def).when??(n.when=$t),e._zod.check=n=>{let r=n.value,i=r.length,a=typeof r==`string`&&i>=t.length&&i<=t.length*2?De(r):i;if(a===t.length)return;let o=Oe(r),s=a>t.length;n.issues.push({origin:o,...s?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),ln=j(`$ZodCheckStringFormat`,(e,t)=>{var n,r;F.init(e,t),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),un=j(`$ZodCheckRegex`,(e,t)=>{ln.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),dn=j(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=Zt,ln.init(e,t)}),fn=j(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=Qt,ln.init(e,t)}),pn=j(`$ZodCheckIncludes`,(e,t)=>{F.init(e,t);let n=b(t.includes);t.pattern=new RegExp(typeof t.position==`number`?`^.{${t.position},}${n}`:n),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),mn=j(`$ZodCheckStartsWith`,(e,t)=>{F.init(e,t);let n=RegExp(`^${b(t.prefix)}.*`);t.pattern??=n,e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),hn=j(`$ZodCheckEndsWith`,(e,t)=>{F.init(e,t);let n=RegExp(`.*${b(t.suffix)}$`);t.pattern??=n,e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),gn=j(`$ZodCheckOverwrite`,(e,t)=>{F.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),_n=class{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{--this.indent}}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
2
+ `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.content??[``];return new e(...Object.keys(this.closed),`return function (${this.args.join(`, `)}) {\n${t.join(`
3
+ `)}\n};`)(...Object.values(this.closed))}},vn={major:4,minor:6,patch:5},I=j(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=vn;let r=e._zod.def.checks,i=e._zod.traits.has(`$ZodCheck`)?[e,...r??[]]:r?.length?[...r]:[];for(let t of i)for(let n of t._zod.onattach)n(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(t,n,r)=>{if(t.memo)return t;let i=C(t),a;for(let o of n){if(o._zod.def.when){if(we(t)||!o._zod.def.when(t))continue}else if(i)continue;let n=t.issues.length,s=o._zod.check(t);if(s instanceof Promise&&r?.async===!1)throw new M;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,t.issues.length!==n&&(Te(t.issues,n,e),i||=C(t,n))});else{if(t.issues.length===n)continue;Te(t.issues,n,e),i||=C(t,n)}}return a?a.then(()=>t):t},n=(n,r,a)=>{if(C(n))return n.aborted=!0,n;let o=t(r,i,a);if(o instanceof Promise){if(a.async===!1)throw new M;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction===`backward`){let t=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,a)):n(t,r,a)}let o=e._zod.parse(r,a);if(o instanceof Promise){if(a.async===!1)throw new M;return o.then(e=>t(e,i,a))}return t(o,i,a)}}},{get"~standard"(){return je(this,`~standard`,xn(this))},set"~standard"(e){O(this,`~standard`,e)}}),yn=(e,t)=>e.issues.length?{issues:e.issues.map(e=>E(e,t,P()))}:{value:e.value};async function bn(e,t){let n={async:!0};return yn(await e._zod.run({value:t,issues:[]},n),n)}function xn(e){return{validate:t=>{let n={async:!1};try{let r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return yn(r,n)}catch{}return bn(e,t)},vendor:`zod`,version:1}}var Sn=j(`$ZodString`,(e,t)=>{I.init(e,t),e._zod.pattern=t.pattern??qt,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),L=j(`$ZodStringFormat`,(e,t)=>{ln.init(e,t),Sn.init(e,t)}),Cn=j(`$ZodGUID`,(e,t)=>{t.pattern??=Ot,L.init(e,t)}),wn=j(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=kt(e)}else t.pattern??=kt();L.init(e,t)}),Tn=j(`$ZodEmail`,(e,t)=>{t.pattern??=At,L.init(e,t)});function En(e){try{return typeof URL<`u`&&typeof URL.canParse==`function`?URL.canParse(e):(new URL(e),!0)}catch{return!1}}function Dn(e,t){return!(`normalize`in t)&&!(`hostname`in t)&&!(`protocol`in t)?En(e)||2:On(e,t)}function On(e,t){if(!t.normalize&&t.protocol?.source===zt.source&&!/^https?:\/\//i.test(e))return 1;try{if(typeof URL<`u`){let t=URL;if(typeof t.parse==`function`)return t.parse(e)??2}return new URL(e)}catch{return 2}}var kn=/[\t\n\r]/g;function An(e){return e.replace(kn,``)}function jn(e,t){return t.lastIndex=0,t.test(e.hostname)}function Mn(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(`:`)?e.protocol.slice(0,-1):e.protocol)}var Nn=j(`$ZodURL`,(e,t)=>{L.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=Dn(r,t);if(i===1){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}if(i===2){n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort});return}if(i===!0){n.value=An(r);return}t.hostname&&!jn(i,t.hostname)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort}),t.protocol&&!Mn(i,t.protocol)&&n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort}),n.value=t.normalize?i.href:An(r);return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),Pn=j(`$ZodEmoji`,(e,t)=>{t.pattern??=Mt(),L.init(e,t)}),Fn=j(`$ZodNanoID`,(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??=t.length===void 0?Tt:Et(t.length),L.init(e,t)}),In=j(`$ZodCUID`,(e,t)=>{t.pattern??=bt,L.init(e,t)}),Ln=j(`$ZodCUID2`,(e,t)=>{t.pattern??=xt,L.init(e,t)}),Rn=j(`$ZodULID`,(e,t)=>{t.pattern??=St,L.init(e,t)}),zn=j(`$ZodXID`,(e,t)=>{t.pattern??=Ct,L.init(e,t)}),Bn=j(`$ZodKSUID`,(e,t)=>{t.pattern??=wt,L.init(e,t)}),Vn=j(`$ZodISODateTime`,(e,t)=>{t.pattern??=Kt(t),L.init(e,t)}),Hn=j(`$ZodISODate`,(e,t)=>{t.pattern??=Ut,L.init(e,t)}),Un=j(`$ZodISOTime`,(e,t)=>{t.pattern??=Gt(t),L.init(e,t)}),Wn=j(`$ZodISODuration`,(e,t)=>{t.pattern??=Dt,L.init(e,t)}),Gn=j(`$ZodIPv4`,(e,t)=>{t.pattern??=Nt,L.init(e,t)}),Kn=/^[0-9a-fA-F:.]+$/;function qn(e){return Kn.test(e)?En(`http://[${e}]`):!1}var Jn=j(`$ZodIPv6`,(e,t)=>{t.pattern??=Pt,L.init(e,t),e._zod.check=n=>{qn(n.value)||n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}),Yn=j(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Ft,L.init(e,t)});function Xn(e){let t=e.split(`/`);if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let i=Number(r);return`${i}`!==r||i<0||i>128?!1:qn(n)}var Zn=j(`$ZodCIDRv6`,(e,t)=>{t.pattern??=It,L.init(e,t),e._zod.check=n=>{Xn(n.value)||n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}});function Qn(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var $n=/^[0-9a-zA-Z+/]*={0,2}$/,er=j(`$ZodBase64`,(e,t)=>{t.pattern??=$n,L.init(e,t),e._zod.check=n=>{Qn(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}}),tr=/^[A-Za-z0-9_-]*$/;function nr(e){if(!tr.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Qn(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var rr=j(`$ZodBase64URL`,(e,t)=>{t.pattern??=tr,L.init(e,t),e._zod.check=n=>{nr(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),ir=j(`$ZodE164`,(e,t)=>{t.pattern??=Bt,L.init(e,t)});function ar(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var or=j(`$ZodJWT`,(e,t)=>{L.init(e,t),e._zod.check=n=>{ar(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),sr=j(`$ZodNumber`,(e,t)=>{I.init(e,t),e._zod.pattern=Yt,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:String(i):void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),cr=j(`$ZodNumberFormat`,(e,t)=>{an.init(e,t),sr.init(e,t)}),lr=j(`$ZodBoolean`,(e,t)=>{I.init(e,t),e._zod.pattern=Xt,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),ur=j(`$ZodUnknown`,(e,t)=>{I.init(e,t),e._zod.parse=e=>e}),dr=j(`$ZodNever`,(e,t)=>{I.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function fr(e,t,n){e.issues.length&&t.issues.push(...w(n,e.issues)),t.value[n]=e.value}var pr=j(`$ZodArray`,(e,t)=>{I.init(e,t);let n=N.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({expected:`array`,code:`invalid_type`,input:a,inst:e}),r;r.value=n?n.alloc(e,r,Array(a.length),i):Array(a.length);let o=[],s=i?.abortEarly;for(let e=0;e<a.length;e++){let n=a[e],c=t.element._zod.run({value:n,issues:[]},i);if(c instanceof Promise)o.push(c.then(t=>fr(t,r,e)));else if(fr(c,r,e),s&&c.issues.length!==0&&C(c))break}return o.length?Promise.all(o).then(()=>r):r}});function mr(e,t,n,r,i,a){let o=n in r,s=a===`optional`;if(o||!s||i!==`optional`){if(e.issues.length){if(i!==void 0&&s&&!o)return;t.issues.push(...w(n,e.issues))}!o&&i===void 0?e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]}):e.value===void 0?(o||i===`defaulted`&&!s)&&(t.value[n]=void 0):t.value[n]=e.value}}var hr=[];function gr(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:hr,i=r.length?[...t,...r]:t;for(let t of i)if(!e.shape?.[t]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${String(t)}": expected a Zod schema`);let a=fe(e.shape);return{...e,allKeys:i,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(a)}}function _r(e,t,n,r,i,a,o){let s=[],c=i.keySet,l=i.catchall._zod,u=l.def.type,d=l.optin,f=l.optout,p=0;for(let i in t){if(o&&n.issues.length!==p){if(C(n,p))break;p=n.issues.length}if(c.has(i))continue;if(i===`__proto__`){u===`never`&&s.push(i);continue}if(u===`never`){s.push(i);continue}let a=l.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>mr(e,n,i,t,d,f))):mr(a,n,i,t,d,f)}return s.length&&n.issues.push({code:`unrecognized_keys`,keys:s,input:t,inst:a,continue:!0}),e.length?Promise.all(e).then(()=>n):n}var vr=j(`$ZodObject`,(e,t)=>{I.init(e,t);let n=Object.getOwnPropertyDescriptor(t,`shape`),r=n?.get?n.get.raw:t.shape??{};if(r){let e=()=>{let n={...r};return Object.defineProperty(t,"shape",{value:n}),e.raw=n,n};e.raw=r,Object.defineProperty(t,"shape",{get:e})}let i=d(()=>gr(t));A(e,`propValues`,e=>{let t=e.def.shape,n={};for(let e in t){let r=t[e]._zod;if(r.values){Object.prototype.hasOwnProperty.call(n,e)||h(n,e,new Set);for(let t of r.values)n[e].add(t);r.optin!==void 0&&n[e].add(void 0)}}return n});let a=se,o=t.catchall,s,c=N.memoizer;c?.attach(e),e._zod.parse=(t,n)=>{s??=i.value;let r=t.value;if(!a(r))return t.issues.push({expected:`object`,code:`invalid_type`,input:r,inst:e}),t;t.value=c?c.alloc(e,t,{},n):{};let l=[],u=s.shape,d=n?.abortEarly,f=t.issues.length;for(let e of s.allKeys){if(d&&t.issues.length!==f){if(C(t,f))break;f=t.issues.length}if(e===`__proto__`)continue;let i=u[e],a=i._zod.optin,o=i._zod.optout,s=i._zod.run({value:r[e],issues:[]},n);s instanceof Promise?l.push(s.then(n=>mr(n,t,e,r,a,o))):mr(s,t,e,r,a,o)}return o?_r(l,r,t,n,i.value,e,d===!0):l.length?Promise.all(l).then(()=>t):t}}),yr=j(`$ZodObjectJIT`,(e,t)=>{vr.init(e,t);let n=e._zod.parse,r=d(()=>gr(t)),i=N.memoizer,a=t=>{let n=r.value,a=n.symbolKeys,o=new _n([`payload`,`ctx`],{shape:t,inst:e,memo:i,syms:a}),s=e=>`shape[${e}]._zod.run({ value: input[${e}], issues: [] }, ctx)`,c=(e,t)=>`
4
+ let ${e}_ab = false;
5
+ for (let i = 0; i < ${e}.issues.length; i++) {
6
+ const iss = ${e}.issues[i];
7
+ iss.path = iss.path ? [${t}, ...iss.path] : [${t}];
8
+ payload.issues.push(iss);
9
+ if (iss.continue !== true) ${e}_ab = true;
10
+ }
11
+ if (${e}_ab && ctx && ctx.abortEarly) {
12
+ payload.value = newResult;
13
+ return payload;
14
+ }`;o.write(`const input = payload.value;`);let l=Object.create(null),u=0;for(let e of n.allKeys)l[e]=`key_${u++}`;o.write(i?`const newResult = memo.alloc(inst, payload, {}, ctx);`:`const newResult = {};`);for(let e of n.allKeys){if(e===`__proto__`)continue;let n=l[e],r=typeof e==`symbol`?`syms[${a.indexOf(e)}]`:ie(e),i=`${r} in input`,u=t[e],d=u?._zod?.optin,f=d!==void 0,p=u?._zod?.optout===`optional`;if(o.write(`const ${n} = ${s(r)};`),f&&p){let e=d===`optional`?`${n}_present`:`${n}.value !== undefined || ${n}_present`;o.write(`
15
+ const ${n}_present = ${i};
16
+ if (!${n}.issues.length || ${n}_present) {
17
+ if (${n}.issues.length) {${c(n,r)}
18
+ }
19
+
20
+ if (${e}) {
21
+ newResult[${r}] = ${n}.value;
22
+ }
23
+ }
24
+
25
+ `)}else f?(o.write(`
26
+ if (${n}.issues.length) {${c(n,r)}
27
+ }
28
+ `),d===`defaulted`?o.write(`newResult[${r}] = ${n}.value;`):o.write(`
29
+ if (${n}.value !== undefined || ${i}) {
30
+ newResult[${r}] = ${n}.value;
31
+ }
32
+ `)):o.write(`
33
+ const ${n}_present = ${i};
34
+ if (${n}.issues.length) {${c(n,r)}
35
+ }
36
+ if (!${n}_present && !${n}.issues.length) {
37
+ payload.issues.push({
38
+ code: "invalid_type",
39
+ expected: "nonoptional",
40
+ input: undefined,
41
+ path: [${r}]
42
+ });
43
+ if (ctx && ctx.abortEarly) {
44
+ payload.value = newResult;
45
+ return payload;
46
+ }
47
+ }
48
+
49
+ if (${n}_present) {
50
+ newResult[${r}] = ${n}.value;
51
+ }
52
+
53
+ `)}return o.write(`payload.value = newResult;`),o.write(`return payload;`),o.compile()},o,s=se,c=!N.jitless,l=c&&ce.value,u=t.catchall,f;e._zod.parse=(i,d)=>{f??=r.value;let p=i.value;return s(p)?c&&l&&d?.async===!1&&d.jitless!==!0?(o||=a(t.shape),i=o(i,d),u?_r([],p,i,d,f,e,d?.abortEarly===!0):i):n(i,d):(i.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),i)}});function br(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!C(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>E(e,r,P())))}),t)}var xr=j(`$ZodUnion`,(e,t)=>{I.init(e,t),A(e,`optin`,e=>e.def.options.some(e=>e._zod.optin===`defaulted`)?`defaulted`:e.def.options.some(e=>e._zod.optin!==void 0)?`optional`:void 0),A(e,`optout`,e=>e.def.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),A(e,`values`,e=>{if(e.def.options.every(e=>e._zod.values))return new Set(e.def.options.flatMap(e=>Array.from(e._zod.values)))}),A(e,`pattern`,e=>{if(e.def.options.every(e=>e._zod.pattern)){let t=e.def.options.map(e=>e._zod.pattern);return RegExp(`^(${t.map(e=>p(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>br(t,r,e,i)):br(o,r,e,i)}}),Sr=j(`$ZodIntersection`,(e,t)=>{I.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>wr(e,t,n)):wr(e,i,a)}});function Cr(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(y(e)&&y(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};Object.prototype.hasOwnProperty.call(i,`__proto__`)&&delete i.__proto__;for(let n of r){if(n===`__proto__`)continue;let r=Cr(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Cr(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function wr(e,t,n){let r=new Map,i,a=new Map,o=(e,t)=>{let n;if(e.code===`unrecognized_keys`&&!e.path?.length)i??=e,n=e.keys;else if(e.code===`invalid_key`&&e.origin===`record`&&e.path?.length===1){let t=String(e.path[0]);a.has(t)||a.set(t,e),n=[t]}else return!1;for(let e of n)r.has(e)||r.set(e,{}),r.get(e)[t]=!0;return!0};for(let n of t.issues)o(n,`l`)||e.issues.push(n);for(let t of n.issues)o(t,`r`)||e.issues.push(t);let s=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(s.length){let t=i?s.filter(e=>i.keys.includes(e)):[];t.length&&e.issues.push({...i,keys:t});for(let n of s)!t.includes(n)&&a.has(n)&&e.issues.push(a.get(n))}let c=Cr(t.value,n.value);if(!c.valid){if(C(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}var Tr=j(`$ZodRecord`,(e,t)=>{I.init(e,t);let n=N.memoizer;n?.attach(e),e._zod.parse=(r,i)=>{let a=r.value;if(!y(a))return r.issues.push({expected:`record`,code:`invalid_type`,input:a,inst:e}),r;let o=[],s=t.keyType._zod.values;if(s&&!t.partial){r.value=n?n.alloc(e,r,{},i):{};let c=new Set;for(let n of s)if(typeof n==`string`||typeof n==`number`||typeof n==`symbol`){if(c.add(typeof n==`number`?n.toString():n),n===`__proto__`)continue;let s=t.keyType._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(s.issues.length){r.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>E(e,i,P())),input:n,path:[n],inst:e});continue}let l=s.value;if(l===`__proto__`)continue;let u=t.valueType._zod.run({value:a[n],issues:[]},i);u instanceof Promise?o.push(u.then(e=>{e.issues.length&&r.issues.push(...w(n,e.issues)),r.value[l]=e.value})):(u.issues.length&&r.issues.push(...w(n,u.issues)),r.value[l]=u.value)}let l;for(let e in a)if(!c.has(e)){if(t.mode===`loose`){if(e===`__proto__`)continue;r.value[e]=a[e]}else l??=[],l.push(e)}l&&l.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:l,continue:!0})}else{r.value=n?n.alloc(e,r,{},i):{};let c;for(let n of Reflect.ownKeys(a)){if(n===`__proto__`||!Object.prototype.propertyIsEnumerable.call(a,n))continue;let l=t.keyType._zod.run({value:n,issues:[]},i);if(l instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof n==`string`&&Yt.test(n)&&l.issues.length){let e=t.keyType._zod.run({value:Number(n),issues:[]},i);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(l=e)}if(l.issues.length){t.mode===`loose`?r.value[n]=a[n]:s?(c??=[],c.push(n)):r.issues.push({code:`invalid_key`,origin:`record`,issues:l.issues.map(e=>E(e,i,P())),input:n,path:[n],inst:e});continue}let u=l.value;if(u===`__proto__`)continue;let d=t.valueType._zod.run({value:a[n],issues:[]},i);d instanceof Promise?o.push(d.then(e=>{e.issues.length&&r.issues.push(...w(n,e.issues)),r.value[u]=e.value})):(d.issues.length&&r.issues.push(...w(n,d.issues)),r.value[u]=d.value)}c&&c.length>0&&r.issues.push({code:`unrecognized_keys`,input:a,inst:e,keys:c,continue:!0})}return o.length?Promise.all(o).then(()=>r):r}}),Er=j(`$ZodEnum`,(e,t)=>{I.init(e,t);let n=s(t.entries),r=new Set(n);e._zod.values=r,A(e,`pattern`,e=>{let t=s(e.def.entries).filter(e=>ue.has(typeof e));return RegExp(t.length?`^(${t.map(e=>b(e.toString())).join(`|`)})$`:`^[^\\s\\S]$`)}),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),Dr=j(`$ZodLiteral`,(e,t)=>{I.init(e,t);let n=new Set(t.values);e._zod.values=n,A(e,`pattern`,e=>{let t=e.def.values;return RegExp(t.length?`^(${t.map(e=>typeof e==`string`?b(e):e?b(e.toString()):String(e)).join(`|`)})$`:`^[^\\s\\S]$`)}),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),Or=j(`$ZodTransform`,(e,t)=>{I.init(e,t),e._zod.optin=`optional`,N.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new We(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new M;return n.value=i,n}});function kr(e,t){return e.value=t.issues.length?void 0:t.value,e}var Ar=j(`$ZodOptional`,(e,t)=>{I.init(e,t),A(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),e._zod.optout=`optional`,A(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t,void 0]):void 0}),A(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${p(t.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(e.value===void 0){if(t.innerType._zod.optin!==`defaulted`)return e;let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(t=>kr(e,t)):kr(e,r)}return t.innerType._zod.run(e,n)}}),jr=j(`$ZodExactOptional`,(e,t)=>{Ar.init(e,t),A(e,`values`,e=>e.def.innerType._zod.values),A(e,`pattern`,e=>e.def.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),Mr=j(`$ZodNullable`,(e,t)=>{I.init(e,t),A(e,`optin`,e=>e.def.innerType._zod.optin),A(e,`optout`,e=>e.def.innerType._zod.optout),A(e,`pattern`,e=>{let t=e.def.innerType._zod.pattern;return t?RegExp(`^(${p(t.source)}|null)$`):void 0}),A(e,`values`,e=>e.def.innerType._zod.values?new Set([...e.def.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Nr=j(`$ZodDefault`,(e,t)=>{I.init(e,t),e._zod.optin=`defaulted`,A(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Pr(e,t)):Pr(r,t)}});function Pr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Fr=j(`$ZodPrefault`,(e,t)=>{I.init(e,t),e._zod.optin=`defaulted`,A(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),Ir=j(`$ZodNonOptional`,(e,t)=>{I.init(e,t),A(e,`values`,e=>{let t=e.def.innerType._zod.values;return t?new Set([...t].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>Lr(t,e)):Lr(i,e)}});function Lr(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}function Rr(e,t,n,r){return t.issues.length?(e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map(e=>E(e,r,P()))},input:e.value}),e):(e.value=t.value,t.memo&&(e.memo=!0),e)}var zr=j(`$ZodCatch`,(e,t)=>{I.init(e,t),A(e,`optin`,e=>e.def.innerType._zod.optin===`defaulted`?`defaulted`:`optional`),A(e,`optout`,e=>e.def.innerType._zod.optout),A(e,`values`,e=>e.def.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run({value:e.value,issues:[]},n);return r instanceof Promise?r.then(r=>Rr(e,r,t,n)):Rr(e,r,t,n)}}),Br=j(`$ZodPipe`,(e,t)=>{I.init(e,t),A(e,`values`,e=>e.def.in._zod.values),A(e,`optin`,e=>e.def.in._zod.optin),A(e,`optout`,e=>e.def.out._zod.optout),A(e,`propValues`,e=>e.def.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Vr(e,t.in,n)):Vr(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Vr(e,t.out,n)):Vr(r,t.out,n)}});function Vr(e,t,n){return e.issues.some(e=>e.code!==`unrecognized_keys`)?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var Hr=j(`$ZodReadonly`,(e,t)=>{I.init(e,t),A(e,`propValues`,e=>e.def.innerType._zod.propValues),A(e,`values`,e=>e.def.innerType._zod.values),A(e,`optin`,e=>e.def.innerType?._zod?.optin),A(e,`optout`,e=>e.def.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Ur):Ur(r)}});function Ur(e){return e.memo||(e.value=Object.freeze(e.value)),e}var Wr=j(`$ZodCustom`,(e,t)=>{F.init(e,t),I.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>Gr(t,n,r,e));Gr(i,n,r,e)}});function Gr(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(D(e))}}var Kr=class extends Error{constructor(){super(`Cannot parse a reference cycle that closes through a transform`),this.name=`ZodCyclicError`}},qr=`~memo`,Jr=[];function Yr(e){return typeof e==`object`&&!!e}function Xr(e){return e.map(e=>e.path?{...e,path:e.path.slice()}:{...e})}var Zr=new WeakMap,R=0,Qr=1,z=2;function $r(e,t,n){let r=Zr.get(e);if(r!==void 0)return r?z:R;if(t.has(e))return z;t.add(e);let i=R,a=e=>{if(i!==z&&e?._zod){let r=$r(e,t,n);r>i&&(i=r)}},o=(e,r)=>{let i=R;for(let a of Reflect.ownKeys(e)){let o=Object.getOwnPropertyDescriptor(e,a);if(r&&!o.enumerable)continue;let s=o.get?Qr:o.value?._zod?$r(o.value,t,n):R;s>i&&(i=s)}return i},s=e=>{e>i&&(i=e)},c=e._zod.def;switch(c.type){case`object`:{let e=ee(c);s(e?o(e,!0):Qr),a(c.catchall);break}case`array`:a(c.element);break;case`tuple`:for(let e of c.items)a(e);a(c.rest);break;case`record`:case`map`:a(c.keyType),a(c.valueType);break;case`set`:a(c.valueType);break;case`union`:for(let e of c.options)a(e);break;case`intersection`:a(c.left),a(c.right);break;case`optional`:case`nullable`:case`default`:case`prefault`:case`catch`:case`readonly`:case`nonoptional`:case`promise`:case`success`:a(c.innerType);break;case`pipe`:a(c.in),a(c.out);break;case`function`:a(c.input),a(c.output);break;case`lazy`:{let r=c._cachedInner??(n?e._zod.innerType:void 0);s(r?$r(r,t,!1):Qr);break}case`template_literal`:case`string`:case`number`:case`int`:case`boolean`:case`bigint`:case`symbol`:case`undefined`:case`null`:case`void`:case`never`:case`any`:case`unknown`:case`date`:case`nan`:case`enum`:case`literal`:case`file`:case`transform`:case`custom`:break;default:for(let e in c){let t=Object.getOwnPropertyDescriptor(c,e);if(!t||t.get)continue;let n=t.value;if(n&&typeof n==`object`){if(n._zod)a(n);else if(Array.isArray(n))for(let e of n)a(e)}}}return t.delete(e),ei(e,i)}function ei(e,t){return t!==Qr&&Zr.set(e,t===z),t}function ti(e,t){let n=e.buckets.get(t);return n||(n=new WeakMap,e.buckets.set(t,n)),n}var ni,ri=[],ii={alloc(e,t,n){let r=ni;if(!r)return n;ni=void 0;let i={value:n,issues:null};return r.set(t.value,i),ri.push(i),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,n=(e,n)=>{if(n.direction!==`backward`&&oi(n,e.value))throw new Kr;return t(e,n)};e._zod.parse=n,e._zod.run===t&&(e._zod.run=n)})},attach(e){var t;let n,r=!1,i,a;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let t=e._zod.parse,o=(s,c)=>{if(n===void 0){let i=$r(e,new Set,!1);if(i===R)return e._zod.parse=t,e._zod.run===o&&(e._zod.run=t),t(s,c);i===z||r?n=!0:r=!0}let l=s.value;if(!Yr(l))return t(s,c);let u=c[qr];u||(u={buckets:new WeakMap,backEdges:void 0},c[qr]=u);let d;i===c?d=a:(d=ti(u,e),i=c,a=d);let f=d.get(l);if(f)return s.value=f.value,f.issues?f.issues.length&&s.issues.push(...Xr(f.issues)):(s.memo=!0,u.backEdges??(u.backEdges=new WeakSet),u.backEdges.add(f.value)),s;ni=d;let p=ri.length,m=t(s,c);ni=void 0;let h=ri.length>p?ri.pop():void 0;return m instanceof Promise?m.then(e=>(h&&(h.issues=e.issues.length?Xr(e.issues):Jr),e)):(h&&(h.issues=m.issues.length?Xr(m.issues):Jr),m)};e._zod.parse=o,e._zod.run===t&&(e._zod.run=o)})}};function ai(){return ii}function oi(e,t){let n=e[qr]?.backEdges;return n!==void 0&&Yr(t)&&n.has(t)}var si=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`},map:{unit:`entries`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,currency_code:`currency code`,credit_card:`credit card number`,iban:`IBAN`,jwt:`JWT`,template_literal:`input`},r={nan:`NaN`};function i(e,t){return e===`number`&&typeof t==`number`&&!Number.isFinite(t)?String(t):r[e]??e}return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${i(e.expected)}, received ${i(ke(e.input),e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${de(e.values[0])}`:`Invalid option: expected one of ${c(e.values,`|`)}`;case`too_big`:{let n=e.exact?`exactly `:e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.exact?`exactly `:e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${c(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return e.options&&Array.isArray(e.options)&&e.options.length>0?`Invalid discriminator value. Expected ${e.options.map(e=>`'${e}'`).join(` | `)}`:e.inclusive===!1?`Invalid input: more than one option matched`:`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function ci(){return{localeError:si()}}var li,ui=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function di(){return new ui}(li=globalThis).__zod_globalRegistry??(li.__zod_globalRegistry=di());var fi=globalThis.__zod_globalRegistry;function pi(e){return e.checks&&=[...e.checks],e}function mi(e,t){return new e(pi({type:`string`,...S(t)}))}function hi(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...S(t)})}function gi(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...S(t)})}function _i(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...S(t)})}function vi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...S(t)})}function yi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...S(t)})}function bi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...S(t)})}function xi(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...S(t)})}function Si(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...S(t)})}function Ci(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...S(t)})}function wi(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...S(t)})}function Ti(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...S(t)})}function Ei(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...S(t)})}function Di(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...S(t)})}function Oi(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...S(t)})}function ki(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...S(t)})}function Ai(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...S(t)})}function ji(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...S(t)})}function Mi(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...S(t)})}function Ni(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...S(t)})}function Pi(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...S(t)})}function Fi(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...S(t)})}function Ii(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...S(t)})}function Li(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...S(t)})}function Ri(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...S(t)})}function zi(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...S(t)})}function Bi(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...S(t)})}function Vi(e,t){return new e(pi({type:`number`,checks:[],...S(t)}))}function Hi(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...S(t)})}function Ui(e,t){return new e({type:`boolean`,...S(t)})}function Wi(e){return new e({type:`unknown`})}function Gi(e,t){return new e({type:`never`,...S(t)})}function Ki(e,t){return new tn({check:`less_than`,...S(t),value:e,inclusive:!1})}function qi(e,t){return new tn({check:`less_than`,...S(t),value:e,inclusive:!0})}function Ji(e,t){return new nn({check:`greater_than`,...S(t),value:e,inclusive:!1})}function Yi(e,t){return new nn({check:`greater_than`,...S(t),value:e,inclusive:!0})}function Xi(e,t){return new rn({check:`multiple_of`,...S(t),value:e})}function Zi(e,t){return new on({check:`max_length`,...S(t),maximum:e})}function Qi(e,t){return new sn({check:`min_length`,...S(t),minimum:e})}function $i(e,t){return new cn({check:`length_equals`,...S(t),length:e})}function ea(e,t){return new un({check:`string_format`,format:`regex`,...S(t),pattern:e})}function ta(e){return new dn({check:`string_format`,format:`lowercase`,...S(e)})}function na(e){return new fn({check:`string_format`,format:`uppercase`,...S(e)})}function ra(e,t){return new pn({check:`string_format`,format:`includes`,...S(t),includes:e})}function ia(e,t){return new mn({check:`string_format`,format:`starts_with`,...S(t),prefix:e})}function aa(e,t){return new hn({check:`string_format`,format:`ends_with`,...S(t),suffix:e})}function B(e){return new gn({check:`overwrite`,tx:e})}function oa(e){return B(t=>t.normalize(e))}function sa(){return B(e=>e.trim())}function ca(){return B(e=>e.toLowerCase())}function la(){return B(e=>e.toUpperCase())}function ua(){return B(e=>ae(e))}function da(e,t,n){return new e({type:`array`,element:t,...S(n)})}function fa(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...S(n)})}function pa(e,t){let n=ma(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(D(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,`input`in r||(r.input=t.value),r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(D(r))}},e(t.value,t)),t);return n}function ma(e,t){let n=new F({check:`custom`,...S(t)});return n._zod.check=e,n}function V(e,...t){for(let n of t)for(let t of Reflect.ownKeys(n))Object.prototype.propertyIsEnumerable.call(n,t)&&h(e,t,n[t]);return e}function ha(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??fi,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,intersections:[],deferred:[],external:e?.external??void 0}}function H(e,t,n,r,i){let a=typeof t.unrepresentable==`function`?t.unrepresentable({zodSchema:e,path:r.path,message:i}):t.unrepresentable;if(a===`any`)return!1;if(a===void 0||a===`throw`)throw Error(i);return Object.assign(n,a),!0}function U(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,U(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&V(o.schema,c),t.io===`input`&&W(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function ga(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}function _a(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);if(e.external&&e.sharedDefsExtractedFor===e.external)return;let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${ga(a)}`}}let i=`#/${r}/`;if(t[1]===n&&!t[1].schema.id)return{ref:`#`};let a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+ga(a)}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
54
+
55
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0])a(n);else{if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}(e.metadataRegistry.get(n[0])?.id||r.cycle||r.count>1&&e.reused===`ref`)&&a(n)}}e.external&&(e.sharedDefsExtractedFor=e.external)}function va(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let e of t){if(!e||typeof e!=`object`)return;va(e);let t=Object.keys(e);if(t.length!==1||t[0]!==`type`)return;let r=e.type;for(let e of Array.isArray(r)?r:[r]){if(typeof e!=`string`)return;n.includes(e)||n.push(e)}}delete e.anyOf,e.type=n.length===1?n[0]:n}var ya=new Set([`type`,`properties`,`required`,`additionalProperties`]),ba=[`oneOf`,`anyOf`];function xa(e){let t=e.additionalProperties;return t===void 0||t===!1||typeof t!=`object`||!t?null:Object.keys(t).length?t:null}function Sa(e){let t=[];for(let n of e){if(typeof n!=`object`||n.type!==`object`)return null;for(let e in n)if(!ya.has(e))return null;t.push(n)}let n={},r=new Set;for(let e of t){for(let r in e.properties){if(Object.prototype.hasOwnProperty.call(n,r))continue;let e=[];for(let n of t){let t=n.properties?.[r]??xa(n);t!=null&&(e.some(e=>JSON.stringify(e)===JSON.stringify(t))||e.push(t))}h(n,r,e.length===1?e[0]:Sa(e)??{allOf:e})}for(let t of e.required??[])r.add(t)}let i={type:`object`,properties:n};if(r.size&&(i.required=[...r]),t.every(e=>e.additionalProperties===!1))i.additionalProperties=!1;else{let e=[];for(let n of t){let t=xa(n);t&&!e.some(e=>JSON.stringify(e)===JSON.stringify(t))&&e.push(t)}e.length===1?i.additionalProperties=e[0]:e.length>1&&(i.additionalProperties={allOf:e})}return i}function Ca(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let t of ya)if(t in e)return;let n=t.filter(e=>ba.some(t=>Array.isArray(e[t]))),r=null;if(!n.length)r=Sa(t);else{let e=n[0],i=ba.find(t=>Array.isArray(e[t]));if(Object.keys(e).length!==1)return;let a=t.filter(t=>t!==e),o=e[i].map(e=>Sa([...a,e]));if(o.some(e=>!e))return;r={[i]:o}}r&&(delete e.allOf,V(e,r))}function wa(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):V(i,s),V(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let t of[...e.seen.entries()].reverse())r(t[0]);if(e.target!==`openapi-3.0`)for(let t of e.seen.entries())va(t[1].def??t[1].schema);for(let t of e.deferred)t();if(e.intersections.length){let t=new Map;for(let n of e.seen.values())for(let e of[n.schema,n.def]){let n=e?.allOf;if(!Array.isArray(n))continue;let r=t.get(n);r?r.push(e):t.set(n,[e])}for(let n of e.intersections)for(let e of t.get(n)??[])Ca(e)}}let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}V(i,n.defId?n.schema:n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,h(o,e.defId,e.def))}e.external&&(e.sharedEmitDoneFor=e.external),e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Ea(t,`input`,e.processors),output:Ea(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function W(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return W(r.element,n);if(r.type===`set`)return W(r.valueType,n);if(r.type===`lazy`)return W(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`||r.type===`catch`)return W(r.innerType,n);if(r.type===`intersection`)return W(r.left,n)||W(r.right,n);if(r.type===`record`||r.type===`map`)return W(r.keyType,n)||W(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:W(r.in,n)||W(r.out,n);if(r.type===`object`){for(let e in r.shape)if(W(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(W(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(W(e,n))return!0;return!!(r.rest&&W(r.rest,n))}return!1}var Ta=(e,t={})=>n=>{let r=ha({...n,processors:t});return U(e,r),_a(r,e),wa(r,e)},Ea=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=ha({...i??{},target:a,io:t,processors:n});return U(e,o),_a(o,e),wa(o,e)},G=(e,t,n)=>{(e[t]===void 0||n>e[t])&&(e[t]=n)},K=(e,t,n)=>{(e[t]===void 0||n<e[t])&&(e[t]=n)},Da=(e,t)=>{G(e,`minimum`,t),K(e,`maximum`,t)},Oa=(e,t)=>{e.multipleOf??=[],e.multipleOf.includes(t)||e.multipleOf.push(t)},ka=(e,t)=>{e.patterns??=new Set,e.patterns.add(t)},Aa=(e,t)=>{e.mime=e.mime?e.mime.filter(e=>t.includes(e)):[...t]},ja=(e,t)=>{e.format=t,t.includes(`int`)&&(e.isInt=!0)},Ma=(e,t)=>G(e,`minimum`,t.minimum),Na=(e,t)=>K(e,`maximum`,t.maximum),Pa=e=>(t,n)=>{ja(t,n.format);let[r,i]=e[n.format];G(t,`minimum`,r),K(t,`maximum`,i)},Fa={greater_than:(e,t)=>G(e,t.inclusive?`minimum`:`exclusiveMinimum`,t.value),less_than:(e,t)=>K(e,t.inclusive?`maximum`:`exclusiveMaximum`,t.value),multiple_of:(e,t)=>Oa(e,t.value),number_format:Pa(pe),bigint_format:Pa(me),min_length:Ma,max_length:Na,length_equals:(e,t)=>Da(e,t.length),min_size:Ma,max_size:Na,size_equals:(e,t)=>Da(e,t.size),string_format:(e,t)=>{ja(e,t.format),t.pattern&&ka(e,t.pattern),(t.format===`base64`||t.format===`base64url`)&&(e.contentEncoding=t.format),(t.local||t.precision===-1)&&(e.laxFormat=!0)},mime_type:(e,t)=>Aa(e,t.mime)};function q(e){let t={},n=e._zod.def,r=e._zod.traits.has(`$ZodCheck`)?[e,...n.checks??[]]:n.checks??[];for(let e of r)Fa[e._zod.def.check]?.(t,e._zod.def);let i=e._zod.bag;i.minimum!==void 0&&G(t,`minimum`,i.minimum),i.exclusiveMinimum!==void 0&&G(t,`exclusiveMinimum`,i.exclusiveMinimum),i.maximum!==void 0&&K(t,`maximum`,i.maximum),i.exclusiveMaximum!==void 0&&K(t,`exclusiveMaximum`,i.exclusiveMaximum),i.multipleOf!==void 0&&Oa(t,i.multipleOf),i.format!==void 0&&(t.format??=i.format,i.format.includes(`int`)&&(t.isInt=!0)),i.mime&&Aa(t,i.mime);for(let e of i.patterns??[])ka(t,e);return t}var Ia={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},La=new Map([[$n,Lt],[tr,Rt]]),Ra=e=>La.get(e)??e,za=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l,laxFormat:u}=q(e);if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Ia[s]??s,i.format===``&&delete i.format,(s===`time`||u)&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c].map(Ra);e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Ba=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,multipleOf:s,exclusiveMaximum:c,exclusiveMinimum:l,isInt:u}=q(e);i.type=u?`integer`:`number`;let d=typeof l==`number`&&l>=(a??-1/0),f=typeof c==`number`&&c<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;if(d?p?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=c,i.exclusiveMaximum=!0):i.exclusiveMaximum=c:typeof o==`number`&&(i.maximum=o),s){let n=new Set;for(let a of s)Number.isFinite(a)&&a!==0?n.add(Math.abs(a)):H(e,t,i,r,`A multipleOf divisor of ${a} cannot be represented in JSON Schema`);let[a,...o]=n;a!==void 0&&(i.multipleOf=a),o.length&&(i.allOf=[...i.allOf??[],...o.map(e=>({multipleOf:e}))])}},Va=(e,t,n,r)=>{n.type=`boolean`},Ha=(e,t,n,r)=>{n.not={}},Ua=(e,t,n,r)=>{let i=e._zod.def,a=s(i.entries);a.length===0?n.not={}:(a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a)},Wa=(e,t,n,r)=>{let i=e._zod.def;if(i.values.length===0){n.not={};return}let a=[];for(let o of i.values)if(o===void 0){if(H(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof o==`bigint`){if(H(e,t,n,r,`BigInt literals cannot be represented in JSON Schema`))return;a.push(Number(o))}else a.push(o);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},Ga=(e,t,n,r)=>{H(e,t,n,r,`Custom types cannot be represented in JSON Schema`)},Ka=(e,t,n,r)=>{H(e,t,n,r,`Transforms cannot be represented in JSON Schema`)},qa=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=q(e);typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=U(a.element,t,{...r,path:[...r.path,`items`]})};function Ja(e){let t=e._zod.def;return t.type===`pipe`&&t.in._zod.traits.has(`$ZodTransform`)?Ja(t.out):t.type===`catch`?Ja(t.innerType):e._zod.optin}var Ya=(e,t,n,r)=>{let i=n,a=e._zod.def,o=a.shape;if(Object.getOwnPropertySymbols(o).length&&H(e,t,i,r,`Symbol keys cannot be represented in JSON Schema`))return;i.type=`object`,i.properties={};for(let e in o)h(i.properties,e,U(o[e],t,{...r,path:[...r.path,`properties`,e]}));let s=[];for(let e of Object.keys(o)){let n=a.shape[e];(t.io===`input`?Ja(n)===void 0:n._zod.optout===void 0)&&s.push(e)}s.length>0&&(i.required=s),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=U(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Xa=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>U(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},Za=(e,t,n,r)=>{let i=e._zod.def,a=U(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=U(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1,c=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]];n.allOf=c,t.intersections.push(c)};function Qa(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let r=e.get(t)?.def;if(!r)return t;let i=Qa(e,r,n);return i===r?t:i}for(let r of[`anyOf`,`oneOf`]){let i=t[r];if(!Array.isArray(i))continue;let a=i.map(t=>Qa(e,t,n));a.some((e,t)=>e!==i[t])&&(t={...t,[r]:a})}let r=Array.isArray(t.type)?t.type:[t.type],i=!r.includes(`string`)&&r.some(e=>e===`number`||e===`integer`),a=t.enum??(t.const===void 0?void 0:[t.const]);if(!i&&!a?.some(e=>typeof e==`number`))return t;let{minimum:o,maximum:s,exclusiveMinimum:c,exclusiveMaximum:l,multipleOf:u,format:d,id:f,...p}=t;return p.enum?p.enum=p.enum.map(e=>typeof e==`number`?String(e):e):typeof p.const==`number`&&(p.const=String(p.const)),i&&(p.type=`string`,a||(p.pattern=(r.includes(`number`)?Yt:Jt).source)),p}var $a=new WeakMap;function eo(e){let t=new Map;for(let n of e.seen.values())n.def&&!t.has(n.schema)&&t.set(n.schema,n);let n=new Map;for(let r of $a.get(e)??[]){let i=e.seen.get(r),a=(i?.def??i?.schema)?.propertyNames;if(!a||a===!0||n.has(a))continue;let o=Qa(t,a,new Set);o!==a&&n.set(a,o)}if(n.size)for(let t of e.seen.values())for(let e of[t.schema,t.def]){let t=e&&n.get(e.propertyNames);t&&(e.propertyNames=t)}}var to=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=q(o).patterns;if(a.mode===`loose`&&s&&s.size>0){let e=U(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)h(i.patternProperties,Ra(t).source,e)}else{if(t.target===`draft-07`||t.target===`draft-2020-12`){i.propertyNames=U(a.keyType,t,{...r,path:[...r.path,`propertyNames`]});let n=$a.get(t);n||(n=[],$a.set(t,n),t.deferred.push(()=>eo(t))),n.push(e)}i.additionalProperties=U(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]})}let c=o._zod.values,l=t.io===`input`&&Ja(a.valueType)!==void 0;if(c&&!a.partial&&!l){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e.map(String))}},no=(e,t,n,r)=>{let i=e._zod.def,a=U(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},ro=(e,t,n,r)=>{let i=e._zod.def;U(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},io=Symbol();function ao(e,t,n,r,i){let a=!1,o=JSON.stringify(e,(e,t)=>typeof t==`bigint`?(a=!0,null):t);return a?(H(t,n,r,i,`BigInt defaults cannot be represented in JSON Schema`),io):JSON.parse(o)}var oo=(e,t,n,r)=>{let i=e._zod.def;U(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o=ao(i.defaultValue,e,t,n,r);o!==io&&(n.default=o)},so=(e,t,n,r)=>{let i=e._zod.def;U(i.innerType,t,r);let a=t.seen.get(e);if(a.ref=i.innerType,t.io!==`input`)return;let o=ao(i.defaultValue,e,t,n,r);o!==io&&(n._prefault=o)},co=(e,t,n,r)=>{let i=e._zod.def;U(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{H(e,t,n,r,`Dynamic catch values are not supported in JSON Schema`);return}n.default=o},lo=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;U(o,t,r);let s=t.seen.get(e);s.ref=o},uo=(e,t,n,r)=>{let i=e._zod.def;U(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},fo=(e,t,n,r)=>{let i=e._zod.def;U(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},po=new WeakSet([Object.prototype,Error.prototype]);function mo(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let e=n(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e},set(e){Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0})}})}var ho=(e,t)=>{Ze.init(e,t),e.name=`ZodError`;let n=Object.getPrototypeOf(e);po.has(n)||(po.add(n),mo(n,`format`,e=>t=>et(e,t)),mo(n,`flatten`,e=>t=>$e(e,t)),mo(n,`addIssue`,e=>t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,l,2)}),mo(n,`addIssues`,e=>t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,l,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}}))},go=j(`ZodError`,ho),J=j(`ZodError`,ho,void 0,{Parent:Error}),_o=nt(J),vo=rt(J),yo=it(J),bo=ot(J),xo=ft(J),So=pt(J),Co=mt(J),wo=ht(J),To=gt(J),Eo=_t(J),Do=vt(J),Oo=yt(J);function ko(){N.localeError||P(ci())}function Ao(){N.memoizer||P({memoizer:ai()})}var Y=j(`ZodType`,(e,t)=>(ko(),I.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(v(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return x(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(Js(e,t))},superRefine(e,t){return this.check(Ys(e,t))},overwrite(e){return this.check(B(e))},optional(){return As(this)},exactOptional(){return Ms(this)},nullable(){return Ps(this)},nullish(){return As(Ps(this))},nonoptional(e){return Bs(this,e)},array(){return ms(this)},or(e){return vs([this,e])},and(e){return bs(this,e)},transform(e){return Ws(this,Os(e))},default(e){return Is(this,e)},prefault(e){return Rs(this,e)},catch(e){return Hs(this,e)},pipe(e){return Ws(this,e)},readonly(){return Ks(this)},describe(e){let t=this.clone();return fi.add(t,{description:e}),t},meta(...e){if(e.length===0)return fi.get(this);let t=this.clone();return fi.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get"~standard"(){return je(this,`~standard`,{...xn(this),jsonSchema:{input:Ea(this,`input`),output:Ea(this,`output`)}})},set"~standard"(e){O(this,`~standard`,e)},parse:function e(t,n){return _o(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await vo(this,t,n,{callee:e})},safeParse(e,t){return yo(this,e,t)},async safeParseAsync(e,t){return bo(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){O(this,`spa`,e)},validate(e,t){return lt(this,e,t)},validateAsync(e,t){return dt(this,e,t)},encode:function e(t,n){return xo(this,t,n,{callee:e})},decode:function e(t,n){return So(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await Co(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await wo(this,t,n,{callee:e})},safeEncode(e,t){return To(this,e,t)},safeDecode(e,t){return Eo(this,e,t)},async safeEncodeAsync(e,t){return Do(this,e,t)},async safeDecodeAsync(e,t){return Oo(this,e,t)},toJSONSchema(e){return Ta(this,{})(e)},get description(){return fi.get(this)?.description},get _def(){return this._zod.def}}),jo=j(`_ZodString`,(e,t)=>{Sn.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>za(e,t,n,r)},Me({format:e=>q(e).format??null,minLength:e=>q(e).minimum??null,maxLength:e=>q(e).maximum??null},{regex(...e){return this.check(ea(...e))},includes(...e){return this.check(ra(...e))},startsWith(...e){return this.check(ia(...e))},endsWith(...e){return this.check(aa(...e))},min(...e){return this.check(Qi(...e))},max(...e){return this.check(Zi(...e))},length(...e){return this.check($i(...e))},nonempty(...e){return this.check(Qi(1,...e))},lowercase(e){return this.check(ta(e))},uppercase(e){return this.check(na(e))},trim(){return this.check(sa())},normalize(...e){return this.check(oa(...e))},toLowerCase(){return this.check(ca())},toUpperCase(){return this.check(la())},slugify(){return this.check(ua())}})),Mo=j(`ZodString`,(e,t)=>{Sn.init(e,t),jo.init(e,t)},{email(e){return this.check(hi(Lo,e))},url(e){return this.check(xi(Bo,e))},jwt(e){return this.check(Ii(ns,e))},emoji(e){return this.check(Si(Ho,e))},guid(e){return this.check(gi(Ro,e))},uuid(e){return this.check(_i(zo,e))},uuidv4(e){return this.check(vi(zo,e))},uuidv6(e){return this.check(yi(zo,e))},uuidv7(e){return this.check(bi(zo,e))},nanoid(e){return this.check(Ci(Uo,e))},cuid(e){return this.check(wi(Wo,e))},cuid2(e){return this.check(Ti(Go,e))},ulid(e){return this.check(Ei(Ko,e))},base64(e){return this.check(Ni($o,e))},base64url(e){return this.check(Pi(es,e))},xid(e){return this.check(Di(qo,e))},ksuid(e){return this.check(Oi(Jo,e))},ipv4(e){return this.check(ki(Yo,e))},ipv6(e){return this.check(Ai(Xo,e))},cidrv4(e){return this.check(ji(Zo,e))},cidrv6(e){return this.check(Mi(Qo,e))},e164(e){return this.check(Fi(ts,e))},datetime(e){return this.check(Li(No,e))},date(e){return this.check(Ri(Po,e))},time(e){return this.check(zi(Fo,e))},duration(e){return this.check(Bi(Io,e))}});function X(e){return mi(Mo,e)}var Z=j(`ZodStringFormat`,(e,t)=>{L.init(e,t),jo.init(e,t)}),No=j(`ZodISODateTime`,(e,t)=>{Vn.init(e,t),Z.init(e,t)}),Po=j(`ZodISODate`,(e,t)=>{Hn.init(e,t),Z.init(e,t)}),Fo=j(`ZodISOTime`,(e,t)=>{Un.init(e,t),Z.init(e,t)}),Io=j(`ZodISODuration`,(e,t)=>{Wn.init(e,t),Z.init(e,t)}),Lo=j(`ZodEmail`,(e,t)=>{Tn.init(e,t),Z.init(e,t)}),Ro=j(`ZodGUID`,(e,t)=>{Cn.init(e,t),Z.init(e,t)}),zo=j(`ZodUUID`,(e,t)=>{wn.init(e,t),Z.init(e,t)}),Bo=j(`ZodURL`,(e,t)=>{Nn.init(e,t),Z.init(e,t)});function Vo(e){return xi(Bo,e)}var Ho=j(`ZodEmoji`,(e,t)=>{Pn.init(e,t),Z.init(e,t)}),Uo=j(`ZodNanoID`,(e,t)=>{Fn.init(e,t),Z.init(e,t)}),Wo=j(`ZodCUID`,(e,t)=>{In.init(e,t),Z.init(e,t)}),Go=j(`ZodCUID2`,(e,t)=>{Ln.init(e,t),Z.init(e,t)}),Ko=j(`ZodULID`,(e,t)=>{Rn.init(e,t),Z.init(e,t)}),qo=j(`ZodXID`,(e,t)=>{zn.init(e,t),Z.init(e,t)}),Jo=j(`ZodKSUID`,(e,t)=>{Bn.init(e,t),Z.init(e,t)}),Yo=j(`ZodIPv4`,(e,t)=>{Gn.init(e,t),Z.init(e,t)}),Xo=j(`ZodIPv6`,(e,t)=>{Jn.init(e,t),Z.init(e,t)}),Zo=j(`ZodCIDRv4`,(e,t)=>{Yn.init(e,t),Z.init(e,t)}),Qo=j(`ZodCIDRv6`,(e,t)=>{Zn.init(e,t),Z.init(e,t)}),$o=j(`ZodBase64`,(e,t)=>{er.init(e,t),Z.init(e,t)}),es=j(`ZodBase64URL`,(e,t)=>{rr.init(e,t),Z.init(e,t)}),ts=j(`ZodE164`,(e,t)=>{ir.init(e,t),Z.init(e,t)}),ns=j(`ZodJWT`,(e,t)=>{or.init(e,t),Z.init(e,t)}),rs=j(`ZodNumber`,(e,t)=>{sr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ba(e,t,n,r),e.isFinite=!0},Me({minValue:e=>{let{minimum:t,exclusiveMinimum:n}=q(e);return Math.max(t??-1/0,n??-1/0)},maxValue:e=>{let{maximum:t,exclusiveMaximum:n}=q(e);return Math.min(t??1/0,n??1/0)},isInt:e=>{let{isInt:t,multipleOf:n}=q(e);return!!t||!!n?.some(Number.isSafeInteger)},format:e=>q(e).format??null},{gt(e,t){return this.check(Ji(e,t))},gte(e,t){return this.check(Yi(e,t))},min(e,t){return this.check(Yi(e,t))},lt(e,t){return this.check(Ki(e,t))},lte(e,t){return this.check(qi(e,t))},max(e,t){return this.check(qi(e,t))},int(e){return this.check(os(e))},safe(e){return this.check(os(e))},positive(e){return this.check(Ji(0,e))},nonnegative(e){return this.check(Yi(0,e))},negative(e){return this.check(Ki(0,e))},nonpositive(e){return this.check(qi(0,e))},multipleOf(e,t){return this.check(Xi(e,t))},step(e,t){return this.check(Xi(e,t))},finite(){return this}}));function is(e){return Vi(rs,e)}var as=j(`ZodNumberFormat`,(e,t)=>{cr.init(e,t),rs.init(e,t)});function os(e){return Hi(as,e)}var ss=j(`ZodBoolean`,(e,t)=>{lr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Va(e,t,n,r)});function cs(e){return Ui(ss,e)}var ls=j(`ZodUnknown`,(e,t)=>{ur.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function us(){return Wi(ls)}var ds=j(`ZodNever`,(e,t)=>{dr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ha(e,t,n,r)});function fs(e){return Gi(ds,e)}var ps=j(`ZodArray`,(e,t)=>{Ao(),pr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qa(e,t,n,r),e.element=t.element},{min(e,t){return this.check(Qi(e,t))},nonempty(e){return this.check(Qi(1,e))},max(e,t){return this.check(Zi(e,t))},length(e,t){return this.check($i(e,t))},unwrap(){return this.element}});function ms(e,t){return da(ps,e,t)}var hs=j(`ZodObject`,(e,t)=>{Ao(),yr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ya(e,t,n,r),Le(e,`shape`,e=>e._zod.def.shape,!1)},{keyof(){return ws(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(v(this._zod.def,{catchall:e}))},passthrough(){return this.clone(v(this._zod.def,{catchall:us()}))},loose(){return this.clone(v(this._zod.def,{catchall:us()}))},strict(){return this.clone(v(this._zod.def,{catchall:fs()}))},strip(){return this.clone(v(this._zod.def,{catchall:void 0}))},extend(e){return ve(this,e)},safeExtend(e){return be(this,e)},merge(e){return xe(this,e)},pick(e){return he(this,e)},omit(e){return _e(this,e)},partial(...e){return Se(ks,this,e[0])},exactPartial(...e){return Se(js,this,e[0],`exactPartial`)},required(...e){return Ce(zs,this,e[0])}});function Q(e,t){return new hs({type:`object`,shape:e??{},...S(t)})}function gs(e,t){return new hs({type:`object`,shape:e,catchall:fs(),...S(t)})}var _s=j(`ZodUnion`,(e,t)=>{xr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xa(e,t,n,r),e.options=t.options});function vs(e,t){return new _s({type:`union`,options:e,...S(t)})}var ys=j(`ZodIntersection`,(e,t)=>{Sr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Za(e,t,n,r)});function bs(e,t){return new ys({type:`intersection`,left:e,right:t})}var xs=j(`ZodRecord`,(e,t)=>{Ao(),Tr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>to(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function Ss(e,t,n){return!t||!t._zod?new xs({type:`record`,keyType:X(),valueType:e,...S(t)}):new xs({type:`record`,keyType:e,valueType:t,...S(n)})}var Cs=j(`ZodEnum`,(e,t)=>{Er.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ua(e,t,n,r),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Cs({...t,checks:[],...S(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Cs({...t,checks:[],...S(r),entries:i})}});function ws(e,t){return new Cs({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...S(t)})}var Ts=j(`ZodLiteral`,(e,t)=>{Dr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Wa(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Es(e,t){return new Ts({type:`literal`,values:Array.isArray(e)?e:[e],...S(t)})}var Ds=j(`ZodTransform`,(e,t)=>{Ao(),Or.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ka(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new We(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(D(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,`input`in t||(t.input=n.value),t.inst??=e,n.issues.push(D(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Os(e){return new Ds({type:`transform`,transform:e})}var ks=j(`ZodOptional`,(e,t)=>{Ar.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function As(e){return new ks({type:`optional`,innerType:e})}var js=j(`ZodExactOptional`,(e,t)=>{jr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ms(e){return new js({type:`optional`,innerType:e})}var Ns=j(`ZodNullable`,(e,t)=>{Mr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>no(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ps(e){return new Ns({type:`nullable`,innerType:e})}var Fs=j(`ZodDefault`,(e,t)=>{Nr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>oo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Is(e,t){return new Fs({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():le(t)}})}var Ls=j(`ZodPrefault`,(e,t)=>{Fr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>so(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Rs(e,t){return new Ls({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():le(t)}})}var zs=j(`ZodNonOptional`,(e,t)=>{Ir.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ro(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Bs(e,t){return new zs({type:`nonoptional`,innerType:e,...S(t)})}var Vs=j(`ZodCatch`,(e,t)=>{zr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>co(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Hs(e,t){return new Vs({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:ze(t)})}var Us=j(`ZodPipe`,(e,t)=>{Br.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>lo(e,t,n,r),e.in=t.in,e.out=t.out});function Ws(e,t){return new Us({type:`pipe`,in:e,out:t})}var Gs=j(`ZodReadonly`,(e,t)=>{Hr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>uo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ks(e){return new Gs({type:`readonly`,innerType:e})}var qs=j(`ZodCustom`,(e,t)=>{Wr.init(e,t),Y.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Ga(e,t,n,r)});function Js(e,t={}){return fa(qs,e,t)}function Ys(e,t){return pa(e,t)}var Xs=vs([Q({error:Q({code:X(),message:X(),param:X().optional(),details:Ss(X(),us()).optional()})}),Q({error:Q({message:X().optional(),type:X().optional(),code:X().optional(),param:X().optional()})})]),Zs=`application/json`,Qs=new Set([204,205]),$s=class extends Error{status;code;details;payload;retryAfter;constructor(e){super(e.message),this.name=`ApiError`,this.status=e.status,this.code=e.code,this.details=e.details,this.payload=e.payload,this.retryAfter=e.retryAfter??null}};function ec(e){let t=e.headers.get(`Retry-After`);if(t===null)return null;let n=Number.parseInt(t,10);return Number.isFinite(n)&&n>0?n:null}var tc=null;function nc(e){tc=e}var rc=null;function ic(e){rc=e}function ac(e){let t=Q({details:Q({methods:ms(ws([`password`,`totp`,`oidc`]))})}).safeParse(e);return t.success?t.data.details.methods:[]}function oc(e){return typeof e==`string`||e instanceof Blob||e instanceof FormData||e instanceof URLSearchParams||e instanceof ArrayBuffer||ArrayBuffer.isView(e)||e instanceof ReadableStream}function sc(e){return e==null?{}:oc(e)?{body:e}:{body:JSON.stringify(e),contentType:Zs}}async function cc(e){if(Qs.has(e.status))return;let t=await e.text();if(t)try{return JSON.parse(t)}catch{return t}}function lc(e){let t=Xs.safeParse(e);if(!t.success)return{code:`request_failed`,message:`Request failed`,details:e};let n=t.data.error;return{code:typeof n.code==`string`&&n.code.length>0?n.code:`request_failed`,message:typeof n.message==`string`&&n.message.length>0?n.message:`Request failed`,details:n}}async function $(e,t,n,r){let i=sc(r?.body),a=new Headers(r?.headers);i.contentType&&!a.has(`Content-Type`)&&a.set(`Content-Type`,i.contentType),a.has(`Accept`)||a.set(`Accept`,Zs);let o;try{o=await fetch(t,{method:e,body:i.body,headers:a,signal:r?.signal,credentials:r?.credentials??`same-origin`,cache:r?.cache})}catch(e){throw new $s({status:0,code:`network_error`,message:e instanceof Error?e.message:`Network request failed`,details:e})}o.status===401&&!r?.suppressUnauthorizedHandler&&tc?.();let s=await cc(o);if(!o.ok){let i=lc(s);if(o.status===403&&rc&&!r?.skipStepUp){if(i.code===`step_up_required`){if(await rc.onRequired(ac(i.details)))return $(e,t,n,{...r,skipStepUp:!0})}else i.code===`step_up_unavailable`&&rc.onUnavailable(i.message)}throw new $s({status:o.status,code:i.code,message:i.message,details:i.details,payload:s,retryAfter:ec(o)})}if(n===null)return;let c=n.safeParse(s);if(!c.success)throw new $s({status:o.status,code:`invalid_response_schema`,message:`Response schema mismatch`,details:c.error.format(),payload:s});return c.data}function uc(e,t,n){return $(`GET`,e,t,n)}function dc(e,t,n){return $(`POST`,e,t,n)}function fc(e,t,n){return $(`PATCH`,e,t,n)}function pc(e,t,n){return $(`PUT`,e,t,n)}function mc(e,t,n){return t instanceof Y?$(`DELETE`,e,t,n):$(`DELETE`,e,null,t)}export{Li as C,go as S,gs as _,dc as a,us as b,nc as c,ms as d,cs as f,Ss as g,Q as h,fc as i,No as l,is as m,mc as n,pc as o,Es as p,uc as r,ic as s,$s as t,ws as u,X as v,o as w,Vo as x,vs as y};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,S as n}from"./vendor-query-_bHZuxEx.js";import{a as r,i,n as a,o,r as s,t as c}from"./model-source-multi-select-D2d06Vc7.js";import{i as l,n as u,o as d,s as f,t as p}from"./select-Cl33bz-g.js";import{n as m}from"./use-models-DUCPUuZg.js";import{t as h}from"./useTranslation--56nHhlH.js";import{t as g}from"./button-BjVmmiGW.js";import{h as _,v}from"./api-client-dugX1Pti.js";import{t as y}from"./checkbox-apsl9vzk.js";import{$t as b,Jt as x,Kt as S,Qt as C,Xt as w,Zt as T,an as E,en as D,in as O,ln as k,nn as A,qt as j,rn as M,tn as N,un as P}from"./index-DIpd264Z.js";var F=e(t(),1),I=n(),L=`follow_global`,R={smart:`apiKeys.transport.smart`,always_http:`apiKeys.transport.alwaysHttp`,always_websocket:`apiKeys.transport.alwaysWebsocket`},z={selectedModels:[],selectedAccountIds:[],selectedSourceIds:[],selectedReasoningEfforts:[],usageSections:`upstream_limits,account_pool_usage`,limitRules:[],expiresAt:null,enforcedModel:``,enforcedReasoningEffort:`none`,enforcedServiceTier:`none`,trafficClass:`foreground`,transportPolicyOverride:null,applyToCodexModel:!1};function B(e,t){return{...e,...t}}function V({busy:e,onClose:t,onSubmit:n}){let{t:E}=h(),D=_({name:v().min(1,E(`apiKeys.validation.nameRequired`))}),O=P({resolver:k(D),defaultValues:{name:``}}),[A,N]=(0,F.useReducer)(B,z),V=async e=>{let r=A.limitRules.filter(e=>e.maxValue>0),i={name:e.name,allowedModels:A.selectedModels.length>0?A.selectedModels:void 0,applyToCodexModel:A.applyToCodexModel,...A.selectedAccountIds.length>0?{assignedAccountIds:A.selectedAccountIds}:{},...A.selectedSourceIds.length>0?{assignedSourceIds:A.selectedSourceIds}:{},usageSections:A.usageSections,enforcedModel:A.enforcedModel.trim()?A.enforcedModel.trim():null,enforcedReasoningEffort:A.enforcedReasoningEffort===`none`?null:A.enforcedReasoningEffort,...A.selectedReasoningEfforts.length>0?{allowedReasoningEfforts:A.selectedReasoningEfforts}:{},enforcedServiceTier:A.enforcedServiceTier===`none`?null:A.enforcedServiceTier,trafficClass:A.trafficClass,transportPolicyOverride:A.transportPolicyOverride,expiresAt:A.expiresAt?.toISOString(),limits:r.length>0?r:void 0};try{await n(i)}catch{return}t()};return(0,I.jsx)(j,{...O,children:(0,I.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col`,onSubmit:O.handleSubmit(V),children:[(0,I.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain px-6 pb-4`,"data-testid":`api-key-create-scroll-region`,children:(0,I.jsxs)(`div`,{className:`grid gap-x-6 sm:grid-cols-2`,children:[(0,I.jsxs)(`div`,{className:`space-y-3 pl-1 pr-2`,children:[(0,I.jsx)(`h4`,{className:`sticky top-0 bg-background pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:E(`apiKeys.form.general`)}),(0,I.jsx)(w,{control:O.control,name:`name`,render:({field:e})=>(0,I.jsxs)(T,{children:[(0,I.jsx)(C,{children:E(`apiKeys.form.name`)}),(0,I.jsx)(x,{children:(0,I.jsx)(S,{...e,autoComplete:`off`})}),(0,I.jsx)(b,{})]})}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(`p`,{className:`text-sm font-medium`,children:E(`apiKeys.form.allowedModels`)}),(0,I.jsx)(r,{value:A.selectedModels,onChange:e=>N({selectedModels:e})})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border p-2 text-sm`,children:[(0,I.jsx)(y,{id:`create-api-key-apply-to-codex-model`,checked:A.applyToCodexModel,onCheckedChange:e=>N({applyToCodexModel:e===!0})}),(0,I.jsx)(`label`,{htmlFor:`create-api-key-apply-to-codex-model`,className:`cursor-pointer`,children:E(`apiKeys.form.applyToCodexModel`)})]}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(`p`,{className:`text-sm font-medium`,children:E(`apiKeys.form.assignedAccounts`)}),(0,I.jsx)(m,{value:A.selectedAccountIds,onChange:e=>N({selectedAccountIds:e})})]}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(`p`,{className:`text-sm font-medium`,children:E(`apiKeys.form.assignedModelSources`)}),(0,I.jsx)(c,{value:A.selectedSourceIds,onChange:e=>N({selectedSourceIds:e})})]}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(`label`,{className:`text-sm font-medium`,children:E(`apiKeys.form.usageSections`)}),(0,I.jsx)(a,{value:A.usageSections,onChange:e=>N({usageSections:e})})]}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(`label`,{htmlFor:`create-api-key-enforced-model`,className:`text-sm font-medium`,children:E(`apiKeys.form.enforcedModel`)}),(0,I.jsx)(S,{id:`create-api-key-enforced-model`,value:A.enforcedModel,onChange:e=>N({enforcedModel:e.target.value}),placeholder:`e.g. gpt-5.3-codex`,autoComplete:`off`})]}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(`label`,{htmlFor:`create-api-key-enforced-reasoning`,className:`text-sm font-medium`,children:E(`apiKeys.form.enforcedReasoning`)}),(0,I.jsxs)(p,{value:A.enforcedReasoningEffort,disabled:A.selectedReasoningEfforts.length>0,onValueChange:e=>N({enforcedReasoningEffort:e,selectedReasoningEfforts:[]}),children:[(0,I.jsx)(d,{id:`create-api-key-enforced-reasoning`,children:(0,I.jsx)(f,{placeholder:E(`common.options.none`)})}),(0,I.jsxs)(u,{children:[(0,I.jsx)(l,{value:`none`,children:E(`common.options.none`)}),(0,I.jsx)(l,{value:`minimal`,children:E(`common.reasoning.minimal`)}),(0,I.jsx)(l,{value:`low`,children:E(`common.reasoning.low`)}),(0,I.jsx)(l,{value:`medium`,children:E(`common.reasoning.medium`)}),(0,I.jsx)(l,{value:`high`,children:E(`common.reasoning.high`)}),(0,I.jsx)(l,{value:`xhigh`,children:E(`common.reasoning.xhigh`)}),(0,I.jsx)(l,{value:`max`,children:E(`common.reasoning.max`)}),(0,I.jsx)(l,{value:`ultra`,children:E(`common.reasoning.ultra`)})]})]})]}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(`p`,{className:`text-sm font-medium`,children:E(`apiKeys.form.allowedReasoningEfforts`)}),(0,I.jsx)(s,{value:A.selectedReasoningEfforts,disabled:A.enforcedReasoningEffort!==`none`,onChange:e=>N({selectedReasoningEfforts:e,enforcedReasoningEffort:e.length>0?`none`:A.enforcedReasoningEffort})})]}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(`label`,{htmlFor:`create-api-key-enforced-service-tier`,className:`text-sm font-medium`,children:E(`apiKeys.form.enforcedServiceTier`)}),(0,I.jsxs)(p,{value:A.enforcedServiceTier,onValueChange:e=>N({enforcedServiceTier:e}),children:[(0,I.jsx)(d,{id:`create-api-key-enforced-service-tier`,children:(0,I.jsx)(f,{placeholder:E(`common.options.none`)})}),(0,I.jsxs)(u,{children:[(0,I.jsx)(l,{value:`none`,children:E(`common.options.none`)}),(0,I.jsx)(l,{value:`auto`,children:E(`common.serviceTier.auto`)}),(0,I.jsx)(l,{value:`default`,children:E(`common.serviceTier.default`)}),(0,I.jsx)(l,{value:`priority`,children:E(`common.serviceTier.priority`)}),(0,I.jsx)(l,{value:`flex`,children:E(`common.serviceTier.flex`)}),(0,I.jsx)(l,{value:`ultrafast`,children:E(`common.serviceTier.ultrafast`)})]})]})]}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(C,{htmlFor:`create-api-key-traffic-class`,children:E(`apiKeys.form.trafficClass`)}),(0,I.jsxs)(p,{value:A.trafficClass,onValueChange:e=>N({trafficClass:e}),children:[(0,I.jsx)(d,{id:`create-api-key-traffic-class`,children:(0,I.jsx)(f,{placeholder:E(`common.traffic.foreground`)})}),(0,I.jsxs)(u,{children:[(0,I.jsx)(l,{value:`foreground`,children:E(`common.traffic.foreground`)}),(0,I.jsx)(l,{value:`opportunistic`,children:E(`common.traffic.opportunistic`)})]})]})]}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(C,{htmlFor:`create-api-key-transport-policy`,children:E(`apiKeys.form.httpClientRouting`)}),(0,I.jsxs)(p,{value:A.transportPolicyOverride??L,onValueChange:e=>N({transportPolicyOverride:e===L?null:e}),children:[(0,I.jsx)(d,{id:`create-api-key-transport-policy`,children:(0,I.jsx)(f,{placeholder:E(`apiKeys.transport.followGlobal`)})}),(0,I.jsxs)(u,{children:[(0,I.jsx)(l,{value:L,children:E(`apiKeys.transport.followGlobal`)}),Object.entries(R).map(([e,t])=>(0,I.jsx)(l,{value:e,children:E(t)},e))]})]})]}),(0,I.jsxs)(`div`,{className:`space-y-1`,children:[(0,I.jsx)(`p`,{className:`text-sm font-medium`,children:E(`apiKeys.form.expiry`)}),(0,I.jsx)(o,{value:A.expiresAt,onChange:e=>N({expiresAt:e})})]})]}),(0,I.jsxs)(`div`,{className:`space-y-3 pl-1 pr-2 max-sm:mt-3 max-sm:border-t max-sm:pt-3`,children:[(0,I.jsx)(`h4`,{className:`sticky top-0 bg-background pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:E(`apiKeys.form.limits`)}),(0,I.jsx)(i,{rules:A.limitRules,onChange:e=>N({limitRules:e})})]})]})}),(0,I.jsx)(M,{className:`border-t px-6 py-4`,children:(0,I.jsx)(g,{type:`submit`,disabled:e||O.formState.isSubmitting,children:E(`common.actions.create`)})})]})})}function H({open:e,busy:t,onOpenChange:n,onSubmit:r}){let{t:i}=h();return(0,I.jsx)(D,{open:e,onOpenChange:n,children:e?(0,I.jsxs)(N,{className:`flex max-h-[calc(100dvh-2rem)] flex-col gap-0 overflow-hidden p-0 sm:max-w-3xl`,children:[(0,I.jsxs)(O,{className:`px-6 pt-6 pr-12 pb-2`,children:[(0,I.jsx)(E,{children:i(`apiKeys.createDialog.title`)}),(0,I.jsx)(A,{children:i(`apiKeys.createDialog.description`)})]}),(0,I.jsx)(V,{busy:t,onClose:()=>n(!1),onSubmit:r})]}):null})}export{H as ApiKeyCreateDialog};
@@ -0,0 +1 @@
1
+ import{S as e}from"./vendor-query-_bHZuxEx.js";import{t}from"./copy-button-D7nAvOKR.js";import{t as n}from"./useTranslation--56nHhlH.js";import{t as r}from"./button-BjVmmiGW.js";import{an as i,en as a,in as o,nn as s,rn as c,tn as l}from"./index-DIpd264Z.js";var u=e();function d({open:e,apiKey:d,onOpenChange:f}){let{t:p}=n();return(0,u.jsx)(a,{open:e,onOpenChange:f,children:(0,u.jsxs)(l,{children:[(0,u.jsxs)(o,{children:[(0,u.jsx)(i,{children:p(`apiKeys.createdDialog.title`)}),(0,u.jsx)(s,{children:p(`apiKeys.createdDialog.description`)})]}),d?(0,u.jsxs)(`div`,{className:`min-w-0 space-y-1.5`,children:[(0,u.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:p(`apiKeys.createdDialog.keyLabel`)}),(0,u.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 overflow-hidden rounded-lg border bg-muted/20 px-3 py-2`,children:[(0,u.jsx)(`p`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,children:d}),(0,u.jsx)(t,{value:d})]})]}):null,(0,u.jsx)(c,{children:(0,u.jsx)(r,{type:`button`,onClick:()=>f(!1),children:p(`common.actions.close`)})})]})})}export{d as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,S as n}from"./vendor-query-_bHZuxEx.js";import{a as r,i,n as a,o,r as s,t as c}from"./model-source-multi-select-D2d06Vc7.js";import{i as l,n as u,o as d,s as f,t as p}from"./select-Cl33bz-g.js";import{n as m}from"./use-models-DUCPUuZg.js";import{t as h}from"./useTranslation--56nHhlH.js";import{t as g}from"./button-BjVmmiGW.js";import{f as _,h as v,v as y}from"./api-client-dugX1Pti.js";import{t as b}from"./checkbox-apsl9vzk.js";import{t as x}from"./switch-CzxgokcM.js";import{$t as S,Jt as C,Kt as w,Qt as T,Xt as E,Y as D,Zt as O,an as k,en as A,in as j,ln as M,nn as N,qt as P,rn as F,tn as I,un as L}from"./index-DIpd264Z.js";var R=e(t(),1);function z(e){let t=typeof e.modelFilter==`string`?e.modelFilter.trim():null;return{limitType:e.limitType,limitWindow:e.limitWindow,maxValue:e.maxValue,modelFilter:t||null}}function B(e){return[e.limitType,e.limitWindow,e.modelFilter??``,String(e.maxValue)].join(`::`)}function V(e){return e.reduce((e,t)=>(t.maxValue>0&&e.push(z(t)),e),[]).sort((e,t)=>B(e).localeCompare(B(t)))}function H(e,t){let n=V(e),r=V(t);return n.length!==r.length||n.some((e,t)=>{let n=r[t];return!n||e.limitType!==n.limitType||e.limitWindow!==n.limitWindow||e.maxValue!==n.maxValue||e.modelFilter!==n.modelFilter})}var U=n(),W=`follow_global`,G={smart:`apiKeys.transport.smart`,always_http:`apiKeys.transport.alwaysHttp`,always_websocket:`apiKeys.transport.alwaysWebsocket`};function K(e){return e.limits.map(e=>({limitType:e.limitType,limitWindow:e.limitWindow,maxValue:e.maxValue,modelFilter:e.modelFilter}))}function q(e,t){if(e.length!==t.length)return!0;let n=new Set(e);return t.some(e=>!n.has(e))}function J(e){return{selectedModels:e.allowedModels||[],selectedAccountIds:e.assignedAccountIds,selectedSourceIds:e.assignedSourceIds,selectedReasoningEfforts:e.allowedReasoningEfforts||[],clearSourceScope:!1,usageSections:e.usageSections,limitRules:K(e),expiresAt:D(e.expiresAt),applyToCodexModel:e.applyToCodexModel,enforcedModel:e.enforcedModel||``,enforcedReasoningEffort:e.enforcedReasoningEffort||`none`,enforcedServiceTier:e.enforcedServiceTier||`none`,trafficClass:e.trafficClass||`foreground`,transportPolicyOverride:e.transportPolicyOverride}}function Y(e,t){return{...e,...t}}function X({apiKey:e,busy:t,onSubmit:n,onClose:D}){let{t:k}=h(),A=v({name:y().min(1,k(`apiKeys.validation.nameRequired`)),isActive:_()}),j=L({resolver:M(A),defaultValues:{name:e.name,isActive:e.isActive}}),N=(0,R.useMemo)(()=>K(e),[e]),[I,z]=(0,R.useReducer)(Y,e,J),B=e.allowedReasoningEfforts?.length===0,X=async t=>{let r=V(I.limitRules),i=q(e.assignedAccountIds,I.selectedAccountIds)||e.accountAssignmentScopeEnabled&&I.selectedAccountIds.length===0,a=q(e.assignedSourceIds,I.selectedSourceIds)||e.sourceAssignmentScopeEnabled&&I.selectedSourceIds.length===0&&I.clearSourceScope,o={name:t.name,allowedModels:I.selectedModels.length>0?I.selectedModels:null,applyToCodexModel:I.applyToCodexModel,enforcedModel:I.enforcedModel.trim()?I.enforcedModel.trim():null,enforcedReasoningEffort:I.enforcedReasoningEffort===`none`?null:I.enforcedReasoningEffort,...I.selectedReasoningEfforts.length>0||e.allowedReasoningEfforts!==null&&!B?{allowedReasoningEfforts:I.selectedReasoningEfforts.length>0?I.selectedReasoningEfforts:null}:{},enforcedServiceTier:I.enforcedServiceTier===`none`?null:I.enforcedServiceTier,trafficClass:I.trafficClass,transportPolicyOverride:I.transportPolicyOverride,usageSections:I.usageSections,expiresAt:I.expiresAt?.toISOString()??null,isActive:t.isActive};i&&(o.assignedAccountIds=I.selectedAccountIds),a&&(o.assignedSourceIds=I.selectedSourceIds),H(N,I.limitRules)&&(o.limits=r);try{await n(o)}catch{return}D()};return(0,U.jsx)(P,{...j,children:(0,U.jsxs)(`form`,{onSubmit:j.handleSubmit(X),children:[(0,U.jsxs)(`div`,{className:`grid gap-x-6 sm:grid-cols-2`,children:[(0,U.jsxs)(`div`,{className:`max-h-[55vh] space-y-3 overflow-y-auto overscroll-contain pl-1 pr-2`,children:[(0,U.jsx)(`h4`,{className:`sticky top-0 bg-background pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:k(`apiKeys.form.general`)}),(0,U.jsx)(E,{control:j.control,name:`name`,render:({field:e})=>(0,U.jsxs)(O,{children:[(0,U.jsx)(T,{children:k(`apiKeys.form.name`)}),(0,U.jsx)(C,{children:(0,U.jsx)(w,{...e,autoComplete:`off`})}),(0,U.jsx)(S,{})]})}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:k(`apiKeys.form.allowedModels`)}),(0,U.jsx)(r,{value:I.selectedModels,onChange:e=>z({selectedModels:e})})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border p-2 text-sm`,children:[(0,U.jsx)(b,{id:`edit-api-key-apply-to-codex-model`,checked:I.applyToCodexModel,onCheckedChange:e=>z({applyToCodexModel:e===!0})}),(0,U.jsx)(`label`,{htmlFor:`edit-api-key-apply-to-codex-model`,className:`cursor-pointer`,children:k(`apiKeys.form.applyToCodexModel`)})]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:k(`apiKeys.form.assignedAccounts`)}),(0,U.jsx)(m,{value:I.selectedAccountIds,onChange:e=>z({selectedAccountIds:e})})]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:k(`apiKeys.form.assignedModelSources`)}),(0,U.jsx)(c,{value:I.selectedSourceIds,onChange:e=>z({selectedSourceIds:e})}),e.sourceAssignmentScopeEnabled&&e.assignedSourceIds.length===0&&I.selectedSourceIds.length===0?(0,U.jsxs)(`div`,{className:`space-y-1 rounded-md border border-destructive/50 p-2 text-xs`,children:[(0,U.jsx)(`p`,{className:`text-muted-foreground`,children:k(`apiKeys.form.missingSourceRestriction`)}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(b,{id:`edit-api-key-clear-source-scope`,checked:I.clearSourceScope,onCheckedChange:e=>z({clearSourceScope:e===!0})}),(0,U.jsx)(`label`,{htmlFor:`edit-api-key-clear-source-scope`,className:`cursor-pointer`,children:k(`apiKeys.form.removeSourceRestriction`)})]})]}):null]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:k(`apiKeys.form.usageSections`)}),(0,U.jsx)(a,{value:I.usageSections,onChange:e=>z({usageSections:e})})]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:k(`apiKeys.form.enforcedModel`)}),(0,U.jsx)(w,{value:I.enforcedModel,onChange:e=>z({enforcedModel:e.target.value}),placeholder:`e.g. gpt-5.3-codex`,autoComplete:`off`})]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:k(`apiKeys.form.enforcedReasoning`)}),(0,U.jsxs)(p,{value:I.enforcedReasoningEffort,disabled:I.selectedReasoningEfforts.length>0||B,onValueChange:e=>z({enforcedReasoningEffort:e,selectedReasoningEfforts:[]}),children:[(0,U.jsx)(d,{children:(0,U.jsx)(f,{placeholder:k(`common.options.none`)})}),(0,U.jsxs)(u,{children:[(0,U.jsx)(l,{value:`none`,children:k(`common.options.none`)}),(0,U.jsx)(l,{value:`minimal`,children:k(`common.reasoning.minimal`)}),(0,U.jsx)(l,{value:`low`,children:k(`common.reasoning.low`)}),(0,U.jsx)(l,{value:`medium`,children:k(`common.reasoning.medium`)}),(0,U.jsx)(l,{value:`high`,children:k(`common.reasoning.high`)}),(0,U.jsx)(l,{value:`xhigh`,children:k(`common.reasoning.xhigh`)}),(0,U.jsx)(l,{value:`max`,children:k(`common.reasoning.max`)}),(0,U.jsx)(l,{value:`ultra`,children:k(`common.reasoning.ultra`)})]})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:k(`apiKeys.form.allowedReasoningEfforts`)}),(0,U.jsx)(s,{value:I.selectedReasoningEfforts,disabled:I.enforcedReasoningEffort!==`none`,onChange:e=>z({selectedReasoningEfforts:e,enforcedReasoningEffort:e.length>0?`none`:I.enforcedReasoningEffort})})]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`label`,{htmlFor:`edit-api-key-enforced-service-tier`,className:`text-sm font-medium`,children:k(`apiKeys.form.enforcedServiceTier`)}),(0,U.jsxs)(p,{value:I.enforcedServiceTier,onValueChange:e=>z({enforcedServiceTier:e}),children:[(0,U.jsx)(d,{id:`edit-api-key-enforced-service-tier`,children:(0,U.jsx)(f,{placeholder:k(`common.options.none`)})}),(0,U.jsxs)(u,{children:[(0,U.jsx)(l,{value:`none`,children:k(`common.options.none`)}),(0,U.jsx)(l,{value:`auto`,children:k(`common.serviceTier.auto`)}),(0,U.jsx)(l,{value:`default`,children:k(`common.serviceTier.default`)}),(0,U.jsx)(l,{value:`priority`,children:k(`common.serviceTier.priority`)}),(0,U.jsx)(l,{value:`flex`,children:k(`common.serviceTier.flex`)}),(0,U.jsx)(l,{value:`ultrafast`,children:k(`common.serviceTier.ultrafast`)})]})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`label`,{className:`text-sm font-medium`,htmlFor:`edit-api-key-traffic-class`,children:k(`apiKeys.form.trafficClass`)}),(0,U.jsxs)(p,{value:I.trafficClass,onValueChange:e=>z({trafficClass:e}),children:[(0,U.jsx)(d,{id:`edit-api-key-traffic-class`,children:(0,U.jsx)(f,{placeholder:k(`common.traffic.foreground`)})}),(0,U.jsxs)(u,{children:[(0,U.jsx)(l,{value:`foreground`,children:k(`common.traffic.foreground`)}),(0,U.jsx)(l,{value:`opportunistic`,children:k(`common.traffic.opportunistic`)})]})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`label`,{className:`text-sm font-medium`,htmlFor:`edit-api-key-transport-policy`,children:k(`apiKeys.form.httpClientRouting`)}),(0,U.jsxs)(p,{value:I.transportPolicyOverride??W,onValueChange:e=>z({transportPolicyOverride:e===W?null:e}),children:[(0,U.jsx)(d,{id:`edit-api-key-transport-policy`,children:(0,U.jsx)(f,{placeholder:k(`apiKeys.transport.followGlobal`)})}),(0,U.jsxs)(u,{children:[(0,U.jsx)(l,{value:W,children:k(`apiKeys.transport.followGlobal`)}),Object.entries(G).map(([e,t])=>(0,U.jsx)(l,{value:e,children:k(t)},e))]})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`div`,{className:`text-sm font-medium`,children:k(`apiKeys.form.expiry`)}),(0,U.jsx)(o,{value:I.expiresAt,onChange:e=>z({expiresAt:e})})]}),(0,U.jsx)(E,{control:j.control,name:`isActive`,render:({field:e})=>(0,U.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-2`,children:[(0,U.jsx)(`span`,{className:`text-sm`,children:k(`common.states.active`)}),(0,U.jsx)(x,{checked:e.value,onCheckedChange:e.onChange})]})})]}),(0,U.jsxs)(`div`,{className:`max-h-[55vh] space-y-3 overflow-y-auto overscroll-contain pl-1 pr-2 max-sm:mt-3 max-sm:border-t max-sm:pt-3`,children:[(0,U.jsx)(`h4`,{className:`sticky top-0 bg-background pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:k(`apiKeys.form.limits`)}),(0,U.jsx)(i,{rules:I.limitRules,onChange:e=>z({limitRules:e})}),e.limits.length>0?(0,U.jsxs)(`div`,{className:`space-y-1`,children:[(0,U.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:k(`apiKeys.form.currentUsage`)}),(0,U.jsx)(`div`,{className:`space-y-1`,children:e.limits.map(e=>(0,U.jsx)(Z,{limit:e},e.id))})]}):null]})]}),(0,U.jsx)(F,{className:`mt-4`,children:(0,U.jsx)(g,{type:`submit`,disabled:t||j.formState.isSubmitting,children:k(`common.actions.save`)})})]})})}function Z({limit:e}){let t=e.limitType===`cost_usd`,n=e.maxValue>0?Math.min(100,e.currentValue/e.maxValue*100):0,r=t?`$${(e.currentValue/1e6).toFixed(2)}`:$(e.currentValue),i=t?`$${(e.maxValue/1e6).toFixed(2)}`:$(e.maxValue),a=Q[e.limitType],o=e.limitWindow,s=e.modelFilter||`all`;return(0,U.jsxs)(`div`,{className:`rounded border p-1.5`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,U.jsxs)(`span`,{className:`text-muted-foreground`,children:[a,` (`,o,`, `,s,`)`]}),(0,U.jsxs)(`span`,{className:`tabular-nums`,children:[r,` / `,i]})]}),(0,U.jsx)(`div`,{className:`mt-1 h-1.5 w-full rounded-full bg-muted`,children:(0,U.jsx)(`div`,{className:`h-full rounded-full ${n>=90?`bg-destructive`:`bg-primary`}`,style:{width:`${n}%`}})})]})}var Q={total_tokens:`Tokens`,input_tokens:`Input`,output_tokens:`Output`,cost_usd:`Cost`,credits:`Credits`};function $(e){return e>=1e9?`${(e/1e9).toFixed(1)}B`:e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e)}function ee({open:e,busy:t,apiKey:n,onOpenChange:r,onSubmit:i}){let{t:a}=h();return(0,U.jsx)(A,{open:e,onOpenChange:r,children:(0,U.jsxs)(I,{className:`sm:max-w-3xl`,children:[(0,U.jsxs)(j,{children:[(0,U.jsx)(k,{children:a(`apiKeys.editDialog.title`)}),(0,U.jsx)(N,{children:a(`apiKeys.editDialog.description`)})]}),n?(0,U.jsx)(X,{apiKey:n,busy:t,onSubmit:i,onClose:()=>r(!1)},`${n.id}:${e?`open`:`closed`}`):(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:a(`apiKeys.editDialog.selectKey`)})]})})}export{ee as ApiKeyEditDialog};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{C as t,S as n}from"./vendor-query-_bHZuxEx.js";import{t as r}from"./useTranslation--56nHhlH.js";import{D as i,O as a,j as o}from"./index-DIpd264Z.js";import{c as s,d as c,f as l,n as u,r as d,t as f,u as p}from"./lazy-recharts-Pv8p9ArM.js";import{t as m}from"./use-reduced-motion-hAm5r6_d.js";import{t as h}from"./use-chart-colors-DIu6tClI.js";var g=e(t(),1),_=n();function v(e,t){let n=new Map(e.map(e=>[e.t,e.v])),r=new Map(t.map(e=>[e.t,e.v])),i=new Set([...n.keys(),...r.keys()]);return i.size===0?[]:Array.from(i).sort().map(e=>({t:e,cost:n.get(e)??0,tokens:r.get(e)??0}))}function y(e){return e.slice(5,10)}function b(e){return e===0?`$0`:e<.01?`<$0.01`:`$${e.toFixed(2)}`}function x(e){return e===0?`0`:e>=1e9?`${(e/1e9).toFixed(0)}B`:e>=1e6?`${(e/1e6).toFixed(0)}M`:e>=1e3?`${(e/1e3).toFixed(0)}K`:String(e)}var S={cost:{label:`Cost`,formatter:o},tokens:{label:`Tokens`,formatter:e=>a(e)}};function C({active:e,payload:t,label:n}){let{t:a}=r();if(!e||!t?.length)return null;let o=i(n);return(0,_.jsxs)(`div`,{className:`rounded-lg border bg-popover px-3 py-2 text-popover-foreground shadow-md`,children:[(0,_.jsx)(`p`,{className:`mb-1 text-[11px] text-muted-foreground`,children:o}),t.map(e=>{let t=S[e.dataKey];return(0,_.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,_.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:e.color}}),(0,_.jsx)(`span`,{className:`text-muted-foreground`,children:t?a(`apis.trend.series.${e.dataKey}`,{defaultValue:t.label}):``}),(0,_.jsx)(`span`,{className:`ml-auto tabular-nums font-medium`,children:t?.formatter(e.value??0)})]},e.dataKey)})]})}var w={top:4,right:8,bottom:0,left:0};function T({cost:e,tokens:t}){let{t:n}=r(),i=h(),a=m(),o=i[0],S=i[1],T=(0,g.useMemo)(()=>v(e,t),[e,t]),E=(0,g.useMemo)(()=>Math.max(...T.map(e=>e.tokens),1),[T]),D=(0,g.useMemo)(()=>Math.max(...T.map(e=>e.cost),.01),[T]);if(T.length===0)return(0,_.jsx)(`div`,{className:`flex h-[280px] items-center justify-center text-xs text-muted-foreground`,children:n(`accounts.trend.empty`)});let O=[0,E*.5,E],k=[0,D*.5,D];return(0,_.jsx)(s,{width:`100%`,height:280,children:(0,_.jsxs)(u,{data:T,margin:w,children:[(0,_.jsxs)(`defs`,{children:[(0,_.jsxs)(`linearGradient`,{id:`api-trend-cost`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,_.jsx)(`stop`,{offset:`0%`,stopColor:o,stopOpacity:.15}),(0,_.jsx)(`stop`,{offset:`100%`,stopColor:o,stopOpacity:0})]}),(0,_.jsxs)(`linearGradient`,{id:`api-trend-tokens`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,_.jsx)(`stop`,{offset:`0%`,stopColor:S,stopOpacity:.15}),(0,_.jsx)(`stop`,{offset:`100%`,stopColor:S,stopOpacity:0})]})]}),(0,_.jsx)(d,{strokeDasharray:`3 3`,vertical:!1,stroke:`currentColor`,opacity:.06}),(0,_.jsx)(c,{dataKey:`t`,tickFormatter:y,tick:{fontSize:10,fill:`var(--muted-foreground)`},tickLine:!1,axisLine:!1,minTickGap:50,dy:4}),(0,_.jsx)(l,{yAxisId:`tokens`,orientation:`left`,domain:[0,E*1.1],ticks:O,tickFormatter:x,tick:{fontSize:10,fill:`var(--muted-foreground)`},tickLine:!1,axisLine:!1,width:48}),(0,_.jsx)(l,{yAxisId:`cost`,orientation:`right`,domain:[0,D*1.1],ticks:k,tickFormatter:b,tick:{fontSize:10,fill:`var(--muted-foreground)`},tickLine:!1,axisLine:!1,width:48}),(0,_.jsx)(p,{content:(0,_.jsx)(C,{}),cursor:{stroke:`hsl(var(--border))`,strokeWidth:1}}),(0,_.jsx)(f,{yAxisId:`tokens`,type:`monotone`,dataKey:`tokens`,stroke:S,strokeWidth:1.5,fill:`url(#api-trend-tokens)`,dot:!1,activeDot:{r:3,strokeWidth:1.5,fill:`hsl(var(--popover))`},isAnimationActive:!a,animationDuration:500}),(0,_.jsx)(f,{yAxisId:`cost`,type:`monotone`,dataKey:`cost`,stroke:o,strokeWidth:1.5,fill:`url(#api-trend-cost)`,dot:!1,activeDot:{r:3,strokeWidth:1.5,fill:`hsl(var(--popover))`},isAnimationActive:!a,animationDuration:500,animationBegin:100})]})})}export{T as ApiTrendChart};