From c1d67acdfed5f9866e57dde626b4a617fefc1802 Mon Sep 17 00:00:00 2001 From: "Jakub A. W" Date: Tue, 11 Aug 2026 13:59:22 +0200 Subject: [PATCH 1/7] feat(usage): add per-session cost reporting --- cmd/gomodel/docs/docs.go | 224 ++++++++++++++- docs/advanced/admin-endpoints.mdx | 45 +++ docs/features/session-keeping.mdx | 51 +++- docs/openapi.json | 272 +++++++++++++++++- ...{index-DM1VKejK.css => index-CciBuXXI.css} | 2 +- .../static/dist/assets/index-D05Km9Si.js | 68 ----- .../static/dist/assets/index-gjjSu70a.js | 68 +++++ .../admin/dashboard/static/dist/index.html | 4 +- internal/admin/handler.go | 1 + internal/admin/handler_test.go | 61 +++- internal/admin/handler_usage.go | 80 +++++- internal/admin/routes.go | 1 + internal/admin/routes_test.go | 1 + internal/batch/store.go | 1 + internal/gateway/batch_orchestrator.go | 1 + internal/gateway/batch_usage.go | 1 + internal/gateway/usage.go | 1 + internal/live/broker.go | 1 + internal/responsecache/usage_hit.go | 1 + internal/server/audio_service.go | 1 + internal/server/passthrough_support.go | 1 + internal/server/realtime_service.go | 3 + .../server/translated_inference_service.go | 1 + internal/usage/cache_type.go | 4 +- internal/usage/reader.go | 44 ++- internal/usage/reader_helpers.go | 10 + internal/usage/reader_mongodb.go | 153 ++++++++++ internal/usage/reader_mongodb_test.go | 46 +++ internal/usage/reader_postgresql.go | 77 ++++- internal/usage/reader_postgresql_test.go | 36 ++- internal/usage/reader_sqlite.go | 69 ++++- internal/usage/session_sqlite_test.go | 119 ++++++++ internal/usage/store_mongodb.go | 3 + internal/usage/store_postgresql.go | 8 +- internal/usage/store_postgresql_test.go | 58 ++-- internal/usage/store_sqlite.go | 12 +- internal/usage/stream_observer.go | 10 + internal/usage/stream_observer_test.go | 4 + internal/usage/usage.go | 1 + .../audit-logs/AuditEntryMetadata.svelte | 29 +- .../pages/audit-logs/AuditEntrySummary.svelte | 44 ++- .../pages/audit-logs/AuditThreadGroup.svelte | 2 + .../src/pages/audit-logs/live-logs-logic.js | 4 +- .../src/pages/audit-logs/liveLogs.svelte.js | 1 + .../src/pages/usage/FacetFilters.svelte | 50 +++- .../src/pages/usage/SessionIDChip.svelte | 108 +++++++ .../pages/usage/UsageBreakdownChart.svelte | 117 +++++--- web/dashboard/src/pages/usage/UsageLog.svelte | 18 +- .../src/pages/usage/UsagePage.svelte | 14 + .../src/pages/usage/usage-helpers.js | 15 + web/dashboard/src/pages/usage/usage.svelte.js | 73 ++++- web/dashboard/tests/live-logs.test.js | 14 + web/dashboard/tests/usage.test.js | 19 +- 53 files changed, 1879 insertions(+), 173 deletions(-) rename internal/admin/dashboard/static/dist/assets/{index-DM1VKejK.css => index-CciBuXXI.css} (53%) delete mode 100644 internal/admin/dashboard/static/dist/assets/index-D05Km9Si.js create mode 100644 internal/admin/dashboard/static/dist/assets/index-gjjSu70a.js create mode 100644 internal/usage/session_sqlite_test.go create mode 100644 web/dashboard/src/pages/usage/SessionIDChip.svelte diff --git a/cmd/gomodel/docs/docs.go b/cmd/gomodel/docs/docs.go index 541d4e6d5..ea2754e3e 100644 --- a/cmd/gomodel/docs/docs.go +++ b/cmd/gomodel/docs/docs.go @@ -833,6 +833,12 @@ const docTemplate = `{ "name": "label", "in": "query" }, + { + "type": "string", + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query" + }, { "type": "string", "description": "Filter by tracked user path subtree", @@ -2290,6 +2296,12 @@ const docTemplate = `{ "name": "label", "in": "query" }, + { + "type": "string", + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query" + }, { "type": "string", "description": "Filter by tracked user path subtree", @@ -2380,6 +2392,12 @@ const docTemplate = `{ "name": "label", "in": "query" }, + { + "type": "string", + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query" + }, { "type": "string", "description": "Filter by tracked user path subtree", @@ -2483,7 +2501,13 @@ const docTemplate = `{ }, { "type": "string", - "description": "Search across model, provider, request_id, provider_id", + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query" + }, + { + "type": "string", + "description": "Search across model, provider, request_id, provider_id, session_id", "name": "search", "in": "query" }, @@ -2573,6 +2597,12 @@ const docTemplate = `{ "name": "label", "in": "query" }, + { + "type": "string", + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query" + }, { "type": "string", "description": "Filter by tracked user path subtree", @@ -2678,6 +2708,105 @@ const docTemplate = `{ ] } }, + "/admin/usage/sessions": { + "get": { + "description": "Returns a bounded page of request, token, and cost aggregates\nfor detected, user-path-scoped sessions. Requests and tokens\ninclude local-cache hits; costs represent provider spend only.\nUsage without a detected session is omitted.", + "produces": [ + "application/json" + ], + "tags": [ + "admin" + ], + "summary": "Get usage breakdown by detected session", + "parameters": [ + { + "type": "integer", + "description": "Number of days (default 30)", + "name": "days", + "in": "query" + }, + { + "type": "string", + "description": "Start date (YYYY-MM-DD)", + "name": "start_date", + "in": "query" + }, + { + "type": "string", + "description": "End date (YYYY-MM-DD)", + "name": "end_date", + "in": "query" + }, + { + "type": "string", + "description": "Filter by exact model name", + "name": "model", + "in": "query" + }, + { + "type": "string", + "description": "Filter by provider name or provider type", + "name": "provider", + "in": "query" + }, + { + "type": "string", + "description": "Filter by request label (exact match)", + "name": "label", + "in": "query" + }, + { + "type": "string", + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query" + }, + { + "type": "string", + "description": "Filter by tracked user path subtree", + "name": "user_path", + "in": "query" + }, + { + "type": "integer", + "description": "Page size (default 50, max 200)", + "name": "limit", + "in": "query" + }, + { + "type": "integer", + "description": "Offset for pagination", + "name": "offset", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/usage.SessionUsageResult" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/core.GatewayError" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/core.GatewayError" + } + } + }, + "security": [ + { + "BearerAuth": [] + } + ] + } + }, "/admin/usage/summary": { "get": { "produces": [ @@ -2724,6 +2853,12 @@ const docTemplate = `{ "name": "label", "in": "query" }, + { + "type": "string", + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query" + }, { "type": "string", "description": "Filter by tracked user path subtree", @@ -2856,6 +2991,12 @@ const docTemplate = `{ "name": "label", "in": "query" }, + { + "type": "string", + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query" + }, { "type": "string", "description": "Filter by tracked user path subtree", @@ -6857,6 +6998,10 @@ const docTemplate = `{ }, "USAGE_PRICING_RECALCULATION_ENABLED": { "type": "string" + }, + "VIRTUAL_MODEL_STRATEGIES": { + "description": "VirtualModelStrategies is the comma-separated list of load-balancing\nstrategies this deployment supports. \"adaptive\" appears only when a\nroute-selector extension is registered, so the dashboard never offers\na strategy that would silently fall back to round robin.", + "type": "string" } } }, @@ -6929,6 +7074,9 @@ const docTemplate = `{ "path": { "type": "string" }, + "principal_id": { + "type": "string" + }, "provider": { "description": "canonical provider type used for routing and filters", "type": "string" @@ -7391,6 +7539,9 @@ const docTemplate = `{ "service_account_json_base64": { "type": "string" }, + "session_sticky_keys": { + "type": "boolean" + }, "type": { "type": "string" }, @@ -7789,6 +7940,9 @@ const docTemplate = `{ "service_account_json_base64": { "type": "string" }, + "session_sticky_keys": { + "type": "boolean" + }, "type": { "type": "string" }, @@ -8043,6 +8197,9 @@ const docTemplate = `{ "anthropicapi.MessagesRequest": { "type": "object", "properties": { + "cache_control": { + "type": "object" + }, "max_tokens": { "type": "integer" }, @@ -8181,6 +8338,9 @@ const docTemplate = `{ "anthropicapi.Tool": { "type": "object", "properties": { + "cache_control": { + "type": "object" + }, "description": { "type": "string" }, @@ -8305,6 +8465,10 @@ const docTemplate = `{ "description": "Error details (message can be long, so kept in JSON)", "type": "string" }, + "event_type": { + "description": "EventType identifies non-request security lifecycle entries written\nthrough the extension authentication event recorder.", + "type": "string" + }, "failover": { "description": "Failover captures runtime redirect details when translated execution\nmoved from the primary selector to a configured failover target.", "allOf": [ @@ -10853,6 +11017,61 @@ const docTemplate = `{ } } }, + "usage.SessionUsage": { + "type": "object", + "properties": { + "input_cost": { + "type": "number", + "x-nullable": true + }, + "input_tokens": { + "type": "integer" + }, + "output_cost": { + "type": "number", + "x-nullable": true + }, + "output_tokens": { + "type": "integer" + }, + "requests": { + "type": "integer" + }, + "session_id": { + "type": "string" + }, + "total_cost": { + "type": "number", + "x-nullable": true + }, + "total_tokens": { + "type": "integer" + }, + "user_path": { + "type": "string" + } + } + }, + "usage.SessionUsageResult": { + "type": "object", + "properties": { + "entries": { + "type": "array", + "items": { + "$ref": "#/definitions/usage.SessionUsage" + } + }, + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + }, + "total": { + "type": "integer" + } + } + }, "usage.ThroughputBucket": { "type": "object", "properties": { @@ -10960,6 +11179,9 @@ const docTemplate = `{ "rewrite_tokens_saved": { "type": "integer" }, + "session_id": { + "type": "string" + }, "timestamp": { "type": "string" }, diff --git a/docs/advanced/admin-endpoints.mdx b/docs/advanced/admin-endpoints.mdx index cc2d16be5..0f7dd4d47 100644 --- a/docs/advanced/admin-endpoints.mdx +++ b/docs/advanced/admin-endpoints.mdx @@ -208,6 +208,51 @@ The `date` field in the response changes format based on the interval: `YYYY-MM- Returns an empty array if usage tracking is disabled or no data exists for the period. +### GET /admin/usage/sessions + +Returns a bounded page of usage grouped by detected, user-path-scoped session, +ordered by latest session activity. Rows without a detected session are +omitted. + +Request and token totals include local response-cache hits. Cost totals include +provider-bound requests only, so avoided cache cost is not reported as spend. + +**Query parameters:** + +| Parameter | Type | Description | Default | +| ------------ | ------ | ------------------------------------------------ | ------- | +| `days` | int | Number of days | `30` | +| `start_date` | string | Start date (`YYYY-MM-DD`) | — | +| `end_date` | string | End date (`YYYY-MM-DD`) | — | +| `session_id` | string | Exact detected session id | — | +| `user_path` | string | Tracked user-path subtree | — | +| `model` | string | Exact model name | — | +| `provider` | string | Provider name or type | — | +| `label` | string | Exact request label | — | +| `limit` | int | Page size, capped at 200 | `50` | +| `offset` | int | Pagination offset | `0` | + +```json +{ + "entries": [ + { + "session_id": "scoped-0123456789abcdef0123456789abcdef", + "user_path": "/team/alpha", + "requests": 8, + "input_tokens": 24000, + "output_tokens": 4100, + "total_tokens": 28100, + "input_cost": 0.42, + "output_cost": 0.16, + "total_cost": 0.58 + } + ], + "total": 1, + "limit": 50, + "offset": 0 +} +``` + ### GET /admin/audit/stats Returns time-bucketed request counts grouped into `2xx`/`4xx`/`5xx` status diff --git a/docs/features/session-keeping.mdx b/docs/features/session-keeping.mdx index 017144e45..5e6c16ef2 100644 --- a/docs/features/session-keeping.mdx +++ b/docs/features/session-keeping.mdx @@ -6,7 +6,7 @@ icon: "pin" Coding agents and chat apps send many requests that belong to one logical session — one conversation, one agent task. GoModel detects that session and -uses it in two places: +uses it throughout routing and observability: - **Sticky load balancing** — a load-balanced virtual model routes every request of a session to the target that served it first, which keeps provider @@ -17,6 +17,9 @@ uses it in two places: - **Threaded audit logs** — the dashboard's Audit Logs page groups a session's requests into one thread: the latest request as the row, with an expander that unfolds the older requests beneath it. +- **Per-session usage and cost** — usage records carry the same scoped session + id, so the dashboard and admin API can report the requests, tokens, and + provider spend for one conversation or agent task. Session keeping works with zero configuration. Defaults fit most setups; the options below exist for the rare cases they don't. @@ -103,6 +106,52 @@ latest request with a count badge; the expander on the left unfolds the older requests. `GET /admin/audit/sessions` serves the thread list; `GET /admin/audit/log?session_id=…` returns one session's entries. +Each grouped thread also has a usage-chart action. It opens Usage Analytics +with that session selected; expanding an individual request exposes the same +action on its session badge. + +## Per-session usage and cost + +Usage Analytics includes a full-width **Usage by Recent Session** table. Each +row represents one detected, user-path-scoped session and shows request count, +input/output/total tokens, and input/output/total cost. Session chips in that +table and the request log filter the whole usage page. + +The admin API exposes the same bounded report: + +```bash +curl -H "Authorization: Bearer $GOMODEL_MASTER_KEY" \ + "http://localhost:8080/admin/usage/sessions?days=7&limit=50&offset=0" +``` + +```json +{ + "entries": [ + { + "session_id": "scoped-0123456789abcdef0123456789abcdef", + "user_path": "/team/alpha", + "requests": 8, + "input_tokens": 24000, + "output_tokens": 4100, + "total_tokens": 28100, + "input_cost": 0.42, + "output_cost": 0.16, + "total_cost": 0.58 + } + ], + "total": 1, + "limit": 50, + "offset": 0 +} +``` + +Requests and tokens include responses served by GoModel's local response +cache. Cost fields include provider-bound requests only, because cost stored on +a local-cache hit is the cost that was avoided, not money actually spent. +Results are ordered by latest session activity; `limit` defaults to 50 and is +capped at 200. The normal usage filters (`session_id`, `user_path`, `model`, +`provider`, `label`, and date range) apply. + ## Configuration Everything is on by default. diff --git a/docs/openapi.json b/docs/openapi.json index a97d6988f..2187be08e 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -1086,6 +1086,14 @@ "type": "string" } }, + { + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query", + "schema": { + "type": "string" + } + }, { "description": "Filter by tracked user path subtree", "name": "user_path", @@ -3035,6 +3043,14 @@ "type": "string" } }, + { + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query", + "schema": { + "type": "string" + } + }, { "description": "Filter by tracked user path subtree", "name": "user_path", @@ -3155,6 +3171,14 @@ "type": "string" } }, + { + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query", + "schema": { + "type": "string" + } + }, { "description": "Filter by tracked user path subtree", "name": "user_path", @@ -3291,7 +3315,15 @@ } }, { - "description": "Search across model, provider, request_id, provider_id", + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "description": "Search across model, provider, request_id, provider_id, session_id", "name": "search", "in": "query", "schema": { @@ -3414,6 +3446,14 @@ "type": "string" } }, + { + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query", + "schema": { + "type": "string" + } + }, { "description": "Filter by tracked user path subtree", "name": "user_path", @@ -3559,6 +3599,139 @@ } } }, + "/admin/usage/sessions": { + "get": { + "description": "Returns a bounded page of request, token, and cost aggregates\nfor detected, user-path-scoped sessions. Requests and tokens\ninclude local-cache hits; costs represent provider spend only.\nUsage without a detected session is omitted.", + "tags": [ + "admin" + ], + "summary": "Get usage breakdown by detected session", + "parameters": [ + { + "description": "Number of days (default 30)", + "name": "days", + "in": "query", + "schema": { + "type": "integer" + } + }, + { + "description": "Start date (YYYY-MM-DD)", + "name": "start_date", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "description": "End date (YYYY-MM-DD)", + "name": "end_date", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "description": "Filter by exact model name", + "name": "model", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "description": "Filter by provider name or provider type", + "name": "provider", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "description": "Filter by request label (exact match)", + "name": "label", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "description": "Filter by tracked user path subtree", + "name": "user_path", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "description": "Page size (default 50, max 200)", + "name": "limit", + "in": "query", + "schema": { + "type": "integer" + } + }, + { + "description": "Offset for pagination", + "name": "offset", + "in": "query", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/usage.SessionUsageResult" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/core.GatewayError" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/core.GatewayError" + } + } + } + } + }, + "security": [ + { + "BearerAuth": [] + } + ], + "x-mint": { + "metadata": { + "sidebarTitle": "/admin/usage/sessions" + } + } + } + }, "/admin/usage/summary": { "get": { "tags": [ @@ -3614,6 +3787,14 @@ "type": "string" } }, + { + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query", + "schema": { + "type": "string" + } + }, { "description": "Filter by tracked user path subtree", "name": "user_path", @@ -3792,6 +3973,14 @@ "type": "string" } }, + { + "description": "Filter by exact detected session ID", + "name": "session_id", + "in": "query", + "schema": { + "type": "string" + } + }, { "description": "Filter by tracked user path subtree", "name": "user_path", @@ -10041,6 +10230,10 @@ }, "USAGE_PRICING_RECALCULATION_ENABLED": { "type": "string" + }, + "VIRTUAL_MODEL_STRATEGIES": { + "description": "VirtualModelStrategies is the comma-separated list of load-balancing\nstrategies this deployment supports. \"adaptive\" appears only when a\nroute-selector extension is registered, so the dashboard never offers\na strategy that would silently fall back to round robin.", + "type": "string" } } }, @@ -10113,6 +10306,9 @@ "path": { "type": "string" }, + "principal_id": { + "type": "string" + }, "provider": { "description": "canonical provider type used for routing and filters", "type": "string" @@ -10593,6 +10789,9 @@ "service_account_json_base64": { "type": "string" }, + "session_sticky_keys": { + "type": "boolean" + }, "type": { "type": "string" }, @@ -11002,6 +11201,9 @@ "service_account_json_base64": { "type": "string" }, + "session_sticky_keys": { + "type": "boolean" + }, "type": { "type": "string" }, @@ -11256,6 +11458,9 @@ "anthropicapi.MessagesRequest": { "type": "object", "properties": { + "cache_control": { + "type": "object" + }, "max_tokens": { "type": "integer" }, @@ -11394,6 +11599,9 @@ "anthropicapi.Tool": { "type": "object", "properties": { + "cache_control": { + "type": "object" + }, "description": { "type": "string" }, @@ -11518,6 +11726,10 @@ "description": "Error details (message can be long, so kept in JSON)", "type": "string" }, + "event_type": { + "description": "EventType identifies non-request security lifecycle entries written\nthrough the extension authentication event recorder.", + "type": "string" + }, "failover": { "description": "Failover captures runtime redirect details when translated execution\nmoved from the primary selector to a configured failover target.", "allOf": [ @@ -14107,6 +14319,61 @@ } } }, + "usage.SessionUsage": { + "type": "object", + "properties": { + "input_cost": { + "type": "number", + "nullable": true + }, + "input_tokens": { + "type": "integer" + }, + "output_cost": { + "type": "number", + "nullable": true + }, + "output_tokens": { + "type": "integer" + }, + "requests": { + "type": "integer" + }, + "session_id": { + "type": "string" + }, + "total_cost": { + "type": "number", + "nullable": true + }, + "total_tokens": { + "type": "integer" + }, + "user_path": { + "type": "string" + } + } + }, + "usage.SessionUsageResult": { + "type": "object", + "properties": { + "entries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/usage.SessionUsage" + } + }, + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + }, + "total": { + "type": "integer" + } + } + }, "usage.ThroughputBucket": { "type": "object", "properties": { @@ -14214,6 +14481,9 @@ "rewrite_tokens_saved": { "type": "integer" }, + "session_id": { + "type": "string" + }, "timestamp": { "type": "string" }, diff --git a/internal/admin/dashboard/static/dist/assets/index-DM1VKejK.css b/internal/admin/dashboard/static/dist/assets/index-CciBuXXI.css similarity index 53% rename from internal/admin/dashboard/static/dist/assets/index-DM1VKejK.css rename to internal/admin/dashboard/static/dist/assets/index-CciBuXXI.css index 4d4239f7e..f765989c1 100644 --- a/internal/admin/dashboard/static/dist/assets/index-DM1VKejK.css +++ b/internal/admin/dashboard/static/dist/assets/index-CciBuXXI.css @@ -1 +1 @@ -:root{--bg:#111110;--bg-surface:#1e1d1c;--bg-surface-hover:#2a2420;--border:#2a2826;--text:#e8e0d6;--text-muted:#9a918a;--accent:#b8956e;--accent-hover:#d4b896;--success:#34d399;--info:#3b82f6;--warning:#f59e0b;--danger:#ef4444;--prompt-cache-color:color-mix(in srgb, var(--info) 72%, #fff);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 24%, var(--bg-surface));--cache-meter-uncached:var(--token-input);--cache-meter-local:var(--token-local);--cache-meter-prompt:var(--token-prompt);--token-input:#c0824a;--token-output:#ddb27a;--token-prompt:color-mix(in srgb, var(--info) 60%, transparent);--token-local:color-mix(in srgb, var(--info) 20%, transparent);--sidebar-width:240px;--radius:8px;--chart-grid:#2a2826;--chart-text:#9a918a;--chart-day-marker:var(--text);--chart-tooltip-bg:#1e1d1c;--chart-tooltip-border:#2a2826;--chart-tooltip-text:#e8e0d6;--cal-level-0:#161b22;--cal-level-1:color-mix(in srgb, var(--info) 15%, var(--bg-surface));--cal-level-2:color-mix(in srgb, var(--info) 25%, var(--bg-surface));--cal-level-3:color-mix(in srgb, var(--info) 36%, var(--bg-surface));--cal-level-4:color-mix(in srgb, var(--info) 48%, var(--bg-surface));--cal-level-5:color-mix(in srgb, var(--info) 60%, var(--bg-surface));--cal-level-6:color-mix(in srgb, var(--info) 73%, var(--bg-surface));--cal-level-7:color-mix(in srgb, var(--info) 87%, var(--bg-surface));--cal-level-8:var(--info);--cal-level-9:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-10:color-mix(in srgb, var(--info) 62%, #fff);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface-hover) 86%, #fff 14%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface-hover) 72%, #fff 28%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}body.dashboard-modal-open{overflow:hidden}.app{height:100vh;min-height:0;display:flex;overflow:hidden}.badge{background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.auth-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:min(440px,100%);padding:22px;box-shadow:0 24px 70px #00000061}.auth-dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.auth-dialog h2{margin-top:2px;font-size:22px;line-height:1.2}.auth-dialog-close{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.auth-dialog-close:hover{color:var(--text);background:var(--bg-surface-hover)}.auth-dialog-close:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-hint{color:var(--text-muted);font-size:13px}.auth-dialog-error{color:var(--danger);font-size:13px;font-weight:600}.auth-dialog-form{gap:10px;margin-top:18px;display:grid}.auth-dialog-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.content{-webkit-overflow-scrolling:touch;flex:1 1 0;width:100%;min-width:0;min-height:0;padding:32px;transition:width .2s;overflow-y:auto;container:dashboard-content/inline-size}.content>*{width:100%;max-width:1336px;margin-inline:auto}body.dashboard-modal-open .content{overflow-y:hidden}.content.interactions-open>*{max-width:none}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h2{letter-spacing:-.3px;font-size:22px;font-weight:700}.page-header-controls{align-items:center;gap:12px;display:flex}.page-with-sticky-date{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:12px;display:grid}.page-with-sticky-date>*{grid-column:1/-1}.page-with-sticky-date>.date-range-page-header{grid-column:1}.page-with-sticky-date>.sticky-date-range{z-index:8;grid-column:2;justify-self:end;position:sticky;top:16px}.model-count{color:var(--text-muted);font-size:14px}.provider-status-section{margin-top:28px;scroll-margin-top:24px}.cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px;display:grid}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:600}.card-value{letter-spacing:-.5px;font-size:28px;font-weight:700}.cache-meter{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:28px;padding:24px}.chart-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.chart-container h3{margin-bottom:16px;font-size:16px;font-weight:600}.chart-container-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.chart-container-header h3{margin-bottom:0}.chart-wrapper{height:210px;position:relative}.live-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.live-dot.is-streaming{background:var(--success);position:relative}.live-dot.is-streaming:after{content:"";z-index:-1;background:color-mix(in srgb, var(--success) 55%, transparent);border-radius:50%;animation:1.8s ease-out infinite live-dot-pulse;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.live-dot.is-streaming:after{opacity:0;animation:none}}@keyframes live-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(2.5)}to{opacity:0;transform:scale(2.5)}}.alert{border-radius:var(--radius);margin-bottom:20px;padding:12px 16px;font-size:14px}.alert-warning{color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b4d}.table-toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.table-toolbar-main{flex:1;min-width:0}.table-toolbar-actions{justify-content:flex-end;margin-left:auto;display:flex}input:is([type=text],[type=date],[type=number]){background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:8px 12px;font-family:inherit;font-size:13px}input:is([type=text],[type=date],[type=number]):focus{border-color:var(--accent)}input:is([type=text],[type=date],[type=number]):disabled,textarea:disabled,.form-input:disabled{opacity:.6;cursor:not-allowed}.table-wrapper{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;font-weight:600}.data-table th.model-actions-header{text-align:right;white-space:nowrap;width:1%;min-width:156px}.data-table td{border-bottom:1px solid var(--border);padding:10px 16px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-surface-hover)}.mono{font-family:SF Mono,Menlo,Consolas,monospace}.font-size-md{font-size:13px}.col-price,.data-table th.col-price{text-align:right}td.col-price{color:var(--text-muted);white-space:nowrap;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.provider-badge{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.empty-state{text-align:center;color:var(--text-muted);padding:48px 0;font-size:14px}.empty-state-icon{width:auto;height:auto;max-height:160px;color:var(--text-muted);margin:0 auto;display:block}.empty-state-icon text{fill:var(--text-muted);font-family:inherit;font-weight:600}.chart-empty-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chart-empty-overlay .empty-state-icon{width:auto;max-width:90%;height:auto;max-height:195px}.loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.table-action-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.table-action-btn:hover:not(:disabled){background:var(--bg-surface-hover)}.table-action-btn:disabled{opacity:.45;cursor:default}.table-action-btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.table-action-btn-active{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 38%, var(--border))}.table-action-btn-active:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, var(--bg-surface-hover))}.table-action-btn-failover-active{color:var(--info);background:color-mix(in srgb, var(--cache-meter-prompt) 35%, var(--bg));border-color:color-mix(in srgb, var(--info) 45%, var(--border));position:relative}.table-action-btn-failover-active:hover:not(:disabled){background:color-mix(in srgb, var(--cache-meter-prompt) 45%, var(--bg-surface-hover))}.table-icon-btn{border-radius:6px;gap:0;width:32px;min-width:32px;height:32px;padding:0}.table-icon-btn.table-action-btn-active{position:relative}.table-icon-btn.table-action-btn-active:after{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-btn.table-action-btn-failover-active:after{content:"";background:var(--info);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-svg{flex-shrink:0;width:14px;height:14px}.model-editor{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:24px}.alias-kind-badge{border:1px solid var(--border);background:var(--bg);min-height:24px;color:var(--accent);letter-spacing:.2px;text-transform:uppercase;border-color:color-mix(in srgb, var(--accent) 55%, var(--border));border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.form h3{font-size:20px;font-weight:700}.form-kicker,.form-hint{color:var(--text-muted);font-size:13px}.alias-actions-cell{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.model-list-actions{white-space:nowrap;flex-wrap:nowrap}.model-list-actions .table-icon-btn{flex:0 0 32px}.model-list-actions .alias-toggle{flex:none}.alias-toggle{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-family:inherit;font-size:12px;transition:all .15s;display:inline-flex}.alias-toggle:hover:not(:disabled){background:var(--bg-surface-hover)}.alias-toggle:disabled{opacity:.45;cursor:default}.alias-toggle-track{background:color-mix(in srgb, var(--border) 80%, var(--bg));border-radius:6px;width:34px;height:18px;transition:background .15s;position:relative}.alias-toggle-thumb{background:var(--text-muted);border-radius:6px;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:1px;left:2px}.alias-toggle.enabled{border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.alias-toggle.enabled .alias-toggle-track{background:color-mix(in srgb, var(--success) 55%, var(--bg))}.alias-toggle.enabled .alias-toggle-thumb{background:#fff;transform:translate(14px)}.alias-toggle.restricted{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:color-mix(in srgb, var(--accent) 70%, var(--text))}.alias-toggle.restricted .alias-toggle-track{background:color-mix(in srgb, var(--accent) 55%, var(--bg))}.editor-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.form{flex-direction:column;gap:16px;display:flex}.auth-key-editor{background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg) 18%)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-field{flex-direction:column;gap:8px;display:flex}.form-field-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:12px;font-weight:600;display:inline-block}.vm-target-row{align-items:center;gap:8px;display:flex}.vm-target-row .vm-target-model{flex:auto;min-width:0}.vm-target-row .vm-target-weight{flex:0 0 88px;width:88px}.vm-status-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.vm-status-row .vm-status-toggle{margin-left:auto}.form-error{border:1px solid color-mix(in srgb, var(--danger) 42%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface));color:var(--danger);overflow-wrap:anywhere;margin:0;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.4}.form-error:empty{display:none}.form-field-error{color:var(--danger);overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:1.4}.form-field-required{color:var(--danger);margin-left:3px}:is(input,textarea,select)[aria-invalid=true]{border-color:color-mix(in srgb, var(--danger) 60%, var(--border))}:is(input,textarea,select)[aria-invalid=true]:focus{border-color:var(--danger)}textarea{resize:vertical;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:60px;color:var(--text);outline:none;padding:10px 12px;font-family:inherit;font-size:13px}textarea:focus{border-color:var(--accent)}.form-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:38px;color:var(--text);outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.form-input:focus{border-color:var(--accent)}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.failover-target-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.data-table tr.alias-row.is-valid td{background:var(--alias-row-valid-bg)}.data-table tr.alias-row.is-valid:hover td{background:var(--alias-row-valid-bg-hover)}.data-table tr.alias-row:not(.is-valid) td{background:color-mix(in srgb, var(--accent) 10%, var(--bg-surface))}.data-table tr.alias-row:not(.is-valid):hover td{background:color-mix(in srgb, var(--accent) 16%, var(--bg-surface-hover))}.data-table tr.alias-row.is-disabled td{background:var(--bg-surface);opacity:.58}.data-table tr.alias-row.is-disabled:hover td{background:var(--bg-surface-hover);opacity:.72}.data-table tr.model-access-disabled-row td{background:color-mix(in srgb, var(--danger) 6%, var(--bg-surface))}.data-table tr.model-access-disabled-row:hover td{background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface-hover))}.workflow-section-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-section-head h4{font-size:14px;font-weight:700}.workflow-preview{flex-direction:column;gap:12px;display:flex}.workflow-feature-toggles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.workflow-feature-toggle{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.workflow-feature-toggle input{width:16px;height:16px}.model-chart-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;padding:24px}.model-chart-section h3{margin:0;font-size:16px;font-weight:600}.model-chart-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.bar-chart-wrap{width:100%;height:180px;position:relative}.form-select,.usage-log-select{appearance:none;background-color:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px;outline:none;min-width:140px;padding:8px 34px 8px 12px;font-family:inherit;font-size:13px}.form-select:disabled,.usage-log-select:disabled{cursor:not-allowed;opacity:.6}.form-select:focus,.usage-log-select:focus{border-color:var(--accent)}.form-select{width:100%;min-width:0}.usage-label-chips{flex-wrap:wrap;gap:4px;max-width:280px;display:inline-flex}.usage-label-chip{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg));min-height:20px;color:var(--text);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;padding:1px 9px;font-family:inherit;font-size:11px;font-style:normal;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s;display:inline-flex}.usage-label-chip:hover{background:color-mix(in srgb, var(--label-color,var(--accent)) 26%, var(--bg))}.usage-label-chip.active{background:color-mix(in srgb, var(--label-color,var(--accent)) 32%, var(--bg));border-color:var(--label-color,var(--accent));box-shadow:0 0 0 1px color-mix(in srgb, var(--label-color,var(--accent)) 55%, transparent)}@keyframes audit-live-summary-stripe-blink{0%,to{opacity:.9}50%{opacity:.28}}.audit-status-badge{border:1px solid var(--border);letter-spacing:.2px;background:var(--bg-surface);border-radius:999px;justify-content:center;align-items:center;min-width:46px;height:24px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.audit-status-badge.status-success{color:var(--success);border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.audit-status-badge.status-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.audit-status-badge.status-error{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.audit-status-badge.status-neutral{color:var(--text-muted)}.audit-status-badge.status-unknown{color:var(--text-muted);border-color:color-mix(in srgb, var(--border) 75%, transparent)}.audit-pane{border:1px solid var(--border);background:var(--bg);border-top:0;border-radius:0 0 8px 8px;min-width:0;padding:12px}.audit-pane h5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:11px;font-weight:600}.audit-prompt-cache-pill{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);min-height:20px;color:var(--prompt-cache-color);letter-spacing:.02em;text-transform:none;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.audit-prompt-cache-highlight{color:var(--prompt-cache-color);font-weight:700}.audit-audio{white-space:normal;flex-direction:column;gap:8px;display:flex}.audit-audio-player{width:100%;max-width:420px;height:36px}.audit-audio-meta{color:var(--text-muted);font-size:12px}.audit-audio-empty{align-items:flex-start;padding:4px 0}.audit-audio-icon{font-size:20px;line-height:1}.audit-audio-note{color:var(--text-muted);font-size:12px}.audit-audio-metadata{flex-direction:column;gap:2px;margin-top:4px;font-size:12px;display:flex}.audit-audio-meta-row{gap:8px;display:flex}.audit-audio-meta-key{color:var(--text-muted);min-width:120px}.conversation-body-highlight{border-left:2px solid color-mix(in srgb, var(--accent) 70%, var(--border));background:color-mix(in srgb, var(--accent) 10%, transparent);cursor:pointer;line-height:inherit;border-radius:2px;margin:0 0 0 -2px;padding:0 0 0 2px;display:inline}.conversation-body-highlight:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.conversation-body-highlight.conversation-system{border-left-color:color-mix(in srgb, var(--warning) 70%, var(--border));background:color-mix(in srgb, var(--warning) 10%, transparent)}.conversation-body-highlight.conversation-user{border-left-color:color-mix(in srgb, var(--accent) 75%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent)}.conversation-body-highlight.conversation-assistant{border-left-color:color-mix(in srgb, var(--success) 65%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}#interactions-drawer-content{flex:1;min-height:0;overflow-y:auto}.pagination{justify-content:space-between;align-items:center;padding:12px 0 0;display:flex}.btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 16px;font-family:inherit;font-size:13px;transition:all .15s}.btn:hover:not(:disabled){background:var(--bg-surface-hover)}.btn-primary{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 70%, #000 10%);color:#fff;font-weight:600;box-shadow:0 10px 22px #3b82f62e}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 90%, #fff 10%);border-color:color-mix(in srgb, var(--accent) 78%, #000 12%)}.btn-danger-outline{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:0 0;font-weight:600}.btn-danger-outline:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 75%, var(--border))}.btn-danger{color:#fff;border-color:color-mix(in srgb, var(--danger) 76%, #000 12%);background:var(--danger);box-shadow:0 10px 22px color-mix(in srgb, var(--danger) 20%, transparent);font-weight:600}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 90%, #fff 10%);border-color:color-mix(in srgb, var(--danger) 82%, #000 14%)}.btn-with-icon{justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn-with-icon .table-icon-svg{width:16px;height:16px}.btn:disabled{opacity:.4;cursor:default}.settings-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.inline-help-section{flex-direction:column;gap:2px;display:flex}.inline-help-title-row{align-items:center;gap:10px;display:inline-flex}.inline-help-title-row h2,.inline-help-title-row h3{margin-bottom:0}.inline-help-title-row h2:empty,.inline-help-title-row h3:empty{display:none}.inline-help-toggle{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));width:16px;height:16px;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:color .18s,border-color .18s;display:inline-flex;position:relative}.inline-help-toggle:before{content:"";pointer-events:auto;background:0 0;width:32px;height:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.inline-help-toggle:hover{border-color:color-mix(in srgb, var(--accent) 48%, var(--border));color:var(--text);background:0 0}.inline-help-toggle:active{background:0 0}.inline-help-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.inline-help-toggle-icon{justify-content:center;align-items:center;width:100%;height:100%;padding-bottom:1px;font-size:13px;font-weight:700;line-height:1;transition:transform .52s cubic-bezier(.22,.72,.12,1);display:inline-flex;transform:rotate(0)}.inline-help-copy{max-width:780px;color:var(--text-muted);margin-top:2px;font-size:14px}.settings-select{width:100%}.settings-refresh-section{border-top:1px solid var(--border);justify-items:start;gap:12px;margin-top:24px;padding-top:22px;display:grid}.settings-refresh-section h3{font-size:18px}.settings-refresh-section p{max-width:720px;color:var(--text-muted);font-size:14px;line-height:1.55}.budget-list{gap:10px;padding:10px 0;display:grid}.budget-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;display:grid}.budget-row-main{min-width:0}.budget-row-head{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.budget-scope-value{width:fit-content;max-width:100%;min-height:24px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;justify-self:start;align-items:center;gap:5px;padding:2px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;display:inline-flex;overflow:hidden}.budget-user-path{border:1px solid color-mix(in srgb, var(--accent) 32%, var(--border));background:color-mix(in srgb, var(--accent) 9%, var(--bg))}.budget-label{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.budget-scope-icon{stroke-width:2.2px;opacity:.85;flex:0 0 12px;width:12px;height:12px}.budget-row-meta{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.budget-source{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:999px;padding:2px 7px;font-size:11px}.budget-row-period{justify-content:center;min-width:0;display:flex}.budget-row-controls{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.budget-bars{gap:6px;margin-top:10px;display:grid}.budget-bar-line{grid-template-columns:118px minmax(0,1fr);align-items:center;gap:10px;display:grid}.budget-bar-label{color:var(--text-muted);justify-content:space-between;align-items:center;gap:6px;font-size:11px;line-height:1;display:flex}.budget-bar-percent{font-weight:700}.budget-bar-track{background:color-mix(in srgb, var(--border) 75%, var(--bg));border-radius:999px;height:16px;position:relative;overflow:hidden}.budget-bar-fill{border-radius:inherit;min-width:0;height:100%;transition:width .2s}.budget-bar-fill-usage{background:color-mix(in srgb, var(--success) 82%, var(--accent))}.budget-bar-fill-danger{background:var(--danger)}.budget-bar-text-row{z-index:1;pointer-events:none;color:var(--text);position:absolute;inset:0}.budget-bar-text{text-overflow:ellipsis;white-space:nowrap;max-width:min(44%,190px);font-size:11px;font-weight:700;line-height:12px;position:absolute;top:50%;overflow:hidden}.budget-bar-text-center{max-width:min(46%,240px);left:50%;transform:translate(-50%,-50%)}.budget-bar-text-end{text-align:right;max-width:min(34%,180px);right:8px;transform:translateY(-50%)}.budget-period-label{border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.budget-period-icon{stroke-width:2.2px;flex:0 0 12px;width:12px;height:12px}.budget-period-label-monthly{border-color:color-mix(in srgb, #30302c 62%, var(--border));background:color-mix(in srgb, #30302c 12%, var(--bg));color:color-mix(in srgb, #30302c 34%, var(--text) 66%)}.budget-period-label-weekly{border-color:color-mix(in srgb, #68765c 62%, var(--border));background:color-mix(in srgb, #68765c 12%, var(--bg));color:color-mix(in srgb, #68765c 34%, var(--text) 66%)}.budget-period-label-daily{border-color:color-mix(in srgb, #b5652d 62%, var(--border));background:color-mix(in srgb, #b5652d 12%, var(--bg));color:color-mix(in srgb, #b5652d 34%, var(--text) 66%)}.budget-period-label-hourly{border-color:color-mix(in srgb, #783f22 62%, var(--border));background:color-mix(in srgb, #783f22 12%, var(--bg));color:color-mix(in srgb, #783f22 34%, var(--text) 66%)}.budget-period-label-custom{border-style:dashed;border-color:color-mix(in srgb, #bfa584 68%, var(--border));background:color-mix(in srgb, #bfa584 16%, var(--bg));color:color-mix(in srgb, #8b6f4f 34%, var(--text) 66%)}[data-theme=light] .budget-period-label-monthly{color:#30302c}[data-theme=light] .budget-period-label-weekly{color:#68765c}[data-theme=light] .budget-period-label-daily{color:#b5652d}[data-theme=light] .budget-period-label-hourly{color:#783f22}[data-theme=light] .budget-period-label-custom{color:#8b6f4f}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .budget-period-label-monthly{color:#30302c}:root:not([data-theme=dark]) .budget-period-label-weekly{color:#68765c}:root:not([data-theme=dark]) .budget-period-label-daily{color:#b5652d}:root:not([data-theme=dark]) .budget-period-label-hourly{color:#783f22}:root:not([data-theme=dark]) .budget-period-label-custom{color:#8b6f4f}}.budget-row-actions{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.budget-action-btn{white-space:nowrap;justify-content:center;gap:0;width:28px;min-width:0;height:28px;padding:0;transition:width .18s,border-color .15s,background .15s,color .15s;overflow:hidden}.budget-action-btn:hover,.budget-action-btn:focus-visible{gap:6px;width:82px;padding:0 9px}.budget-action-label{opacity:0;max-width:0;transition:max-width .18s,opacity .12s;overflow:hidden}.budget-action-btn:hover .budget-action-label,.budget-action-btn:focus-visible .budget-action-label{opacity:1;max-width:58px}.budget-action-btn-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.budget-action-icon{flex:0 0 14px;width:14px;height:14px}.budget-editor{background:color-mix(in srgb, var(--bg-surface) 86%, var(--bg) 14%)}.budget-settings-actions{flex-wrap:wrap;gap:10px;display:flex}.budget-reset-dialog{max-width:460px}.form-action-icon{flex:0 0 16px;width:16px;height:16px}.settings-refresh-alert{margin-top:16px;margin-bottom:0}@media (width<=768px){.badge{display:none}.content{width:100%;margin:0 auto;padding:20px}.auth-dialog{padding:18px}.auth-dialog-actions{flex-direction:column-reverse}.auth-dialog-actions .btn{width:100%}.cards{grid-template-columns:repeat(2,1fr)}.page-header{flex-wrap:wrap;gap:12px}.page-header h2{width:100%}.page-header-controls{flex-wrap:wrap;justify-content:space-between;width:100%}.page-with-sticky-date{grid-template-columns:minmax(0,1fr)}.page-with-sticky-date>.date-range-page-header,.page-with-sticky-date>.sticky-date-range{grid-column:1}.page-with-sticky-date>.date-range-page-header{margin-bottom:12px}.page-with-sticky-date>.sticky-date-range{width:100%;margin-bottom:24px;top:10px}.sticky-date-range .date-picker-trigger{justify-content:space-between;width:100%}.usage-log-select{min-width:0}.budget-row{grid-template-columns:1fr}.budget-row-controls{flex-wrap:wrap}.budget-bar-line{grid-template-columns:1fr;gap:5px}.form-grid,.workflow-feature-toggles{grid-template-columns:1fr}.workflow-section-head{flex-direction:column;align-items:flex-start}.table-toolbar{flex-direction:column;align-items:stretch}.table-toolbar-actions{justify-content:stretch;margin-left:0}.table-toolbar-actions .btn{width:100%}.model-editor{padding:16px}.alias-actions-cell,.editor-header{flex-direction:column;align-items:flex-start}.alias-actions-cell .table-action-btn,.editor-header .table-action-btn{width:100%}.alias-actions-cell .table-icon-btn,.editor-header .table-icon-btn{width:36px}.model-list-actions{flex-flow:row;align-items:center}.model-list-actions .table-action-btn{width:auto}.model-list-actions .table-icon-btn{flex-basis:32px;width:32px}.model-editor .editor-header{flex-direction:row;align-items:flex-start}.model-editor .editor-header>:first-child{flex:1;min-width:0}.model-editor .editor-header .dialog-close-btn{flex:0 0 32px;align-self:flex-start;width:32px;min-width:32px}.settings-panel{padding:18px}.budget-settings-actions,.budget-settings-actions .btn{width:100%}}.workflow-conn{background:color-mix(in srgb, var(--accent) 44%, var(--border));flex:1 1 0;width:auto;min-width:13px;height:2px;position:relative}.workflow-conn:after{content:"";background:color-mix(in srgb, var(--accent) 44%, var(--border));clip-path:polygon(0 0,100% 50%,0 100%);width:7px;height:9px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)}.workflow-node{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-surface);text-align:center;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;min-width:72px;padding:8px 12px;display:flex}.auth-key-description{color:var(--text-muted);max-width:220px;font-size:13px}.auth-key-status-badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.auth-key-status-active{background:color-mix(in srgb, var(--success) 12%, var(--bg));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));color:var(--success)}.auth-key-status-inactive{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));color:var(--danger)}.mcp-server-advanced{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg-surface) 72%, var(--bg) 28%);overflow:hidden}.mcp-server-advanced>summary{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;list-style:none;display:flex}.mcp-server-advanced>summary::-webkit-details-marker{display:none}.mcp-server-advanced>summary:after{border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);content:"";flex:none;width:7px;height:7px;transition:transform .15s;transform:rotate(45deg)}.mcp-server-advanced[open]>summary:after{transform:rotate(225deg)}.mcp-server-advanced-summary-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.mcp-server-advanced-title{font-size:13px;font-weight:600}.mcp-server-advanced-fields{border-top:1px solid var(--border);flex-direction:column;gap:16px;padding:14px;display:flex}.copy-feedback-btn{align-items:center;gap:6px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.rate-limit-pressure-row{background-image:linear-gradient(to right, color-mix(in srgb, var(--success) 16%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-high{background-image:linear-gradient(to right, color-mix(in srgb, var(--warning) 20%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-full{background-image:linear-gradient(to right, color-mix(in srgb, var(--danger) 22%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.table-icon-btn.rate-limit-gauge-inherited{color:var(--accent-strong,var(--accent));background:linear-gradient(to right, color-mix(in srgb, var(--accent) 22%, var(--bg)) 50%, var(--bg) 50%);border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.auth-dialog-input-icon{width:16px;height:16px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.auth-dialog-input-shell:focus-within .auth-dialog-input-icon{color:var(--accent)}.auth-dialog-submit-icon{flex:0 0 16px;width:16px;height:16px}.nav-icon{flex:0 0 18px;width:18px;height:18px}.api-key-open-icon{flex:0 0 15px;width:15px;height:15px}.theme-icon{flex:0 0 14px;width:14px;height:14px}.theme-toggle-mobile .theme-icon{flex-basis:16px;width:16px;height:16px}@media (width<=768px){.sidebar-footer .api-key-open-icon{flex-basis:16px;width:16px;height:16px}}.failover-drafts-loading{min-height:96px}.models-loading-state{top:16px;left:var(--sidebar-width);z-index:110;pointer-events:none;--loading-state-min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);width:fit-content;box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);margin:0 auto;padding:10px 14px;position:fixed;right:0}@media (width<=768px){.models-loading-state{left:60px}}.sidebar.sidebar-collapsed~.content .models-loading-state{left:60px}.alias-create-icon{flex:0 0 16px;width:16px;height:16px}.pricing-override-remove-row{margin-bottom:1px}@media (width<=768px){.pricing-override-remove-row{margin-bottom:0}}.pricing-recalculate-dialog{max-width:480px}.settings-refresh-btn.is-refreshing .settings-refresh-icon{transform-origin:50%;animation:.8s linear infinite loading-spin}.cost-source-icon{width:14px;height:14px;color:var(--success);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.cache-savings-icon{width:14px;height:14px;color:var(--accent);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.theme-toggle.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;margin-bottom:10px;padding:2px;display:inline-flex}.theme-btn.svelte-1keql7b{width:28px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.theme-btn.svelte-1keql7b:hover{color:var(--text)}.theme-btn.active.svelte-1keql7b{background:var(--accent);color:#fff}.theme-btn.svelte-1keql7b:focus-visible,.theme-toggle-mobile.svelte-1keql7b:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.theme-toggle-mobile.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:none}.theme-toggle-mobile.svelte-1keql7b:hover{color:var(--text)}.theme-toggle.is-compact.svelte-1keql7b{display:none}.theme-toggle-mobile.is-compact.svelte-1keql7b{margin:0 auto;display:flex}@media (width<=768px){.theme-toggle.svelte-1keql7b{display:none}.theme-toggle-mobile.svelte-1keql7b{margin:0 auto;display:flex}}.sidebar.svelte-1nwtzae{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);-webkit-overflow-scrolling:touch;z-index:10;flex-direction:column;max-height:100vh;transition:flex-basis .2s,width .2s;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar.sidebar-resizing.svelte-1nwtzae{transition:none}.sidebar-header.svelte-1nwtzae{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:20px;display:flex}.sidebar-logo.svelte-1nwtzae{width:28px;height:28px;color:var(--accent);flex-shrink:0}.sidebar-logo.svelte-1nwtzae svg{width:100%;height:100%}.sidebar-header.svelte-1nwtzae h1{letter-spacing:-.3px;font-size:18px;font-weight:700}.sidebar-nav.svelte-1nwtzae{flex-direction:column;flex:1;gap:4px;padding:12px;display:flex}.nav-item.svelte-1nwtzae{border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item.svelte-1nwtzae:hover{background:var(--bg-surface-hover);color:var(--text)}.nav-item.active.svelte-1nwtzae{background:var(--accent);color:#fff}.nav-label.svelte-1nwtzae{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-footer.svelte-1nwtzae{border-top:1px solid var(--border);padding:16px}.api-key-section.svelte-1nwtzae{gap:8px;display:grid}.external-auth-section.svelte-1nwtzae{gap:8px;margin-top:8px;display:grid}.external-auth-user.svelte-1nwtzae{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.external-auth-user.svelte-1nwtzae span:where(.svelte-1nwtzae){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.api-key-open-btn.svelte-1nwtzae{border:1px solid var(--accent);border-radius:var(--radius);width:100%;color:var(--accent);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.api-key-open-btn.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 78%, var(--text));color:color-mix(in srgb, var(--accent) 78%, var(--text))}.api-key-open-btn.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.sidebar-toggle.svelte-1nwtzae{cursor:ew-resize;z-index:11;background:0 0;border:none;flex:0 0 6px;width:6px;height:100vh;padding:0;transition:background .15s;position:sticky;top:0}.sidebar-toggle.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 15%, transparent)}.sidebar-toggle.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}body.sidebar-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae){justify-content:center;padding:16px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae) h1,.sidebar.sidebar-collapsed.svelte-1nwtzae .badge{display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae){padding:8px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:none}@media (width<=768px){.sidebar.svelte-1nwtzae{flex-basis:60px;width:60px}.sidebar-header.svelte-1nwtzae{justify-content:center;padding:16px}.sidebar-header.svelte-1nwtzae h1{display:none}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar-footer.svelte-1nwtzae{gap:8px;padding:8px;display:grid}.sidebar-footer.svelte-1nwtzae .api-key-section:where(.svelte-1nwtzae),.sidebar-footer.svelte-1nwtzae .external-auth-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .external-auth-user:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae){justify-self:center;width:36px;height:36px;min-height:36px;padding:0}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae) span,.sidebar-toggle.svelte-1nwtzae{display:none}}.dialog-close-btn.svelte-11l1bb5{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.dialog-close-btn.svelte-11l1bb5:hover{color:var(--text);background:var(--bg-surface-hover)}.dialog-close-btn.svelte-11l1bb5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-backdrop.svelte-17e0w4c,.editor-modal-backdrop.svelte-17e0w4c{z-index:80;background:#0000007a;position:fixed;inset:0}.auth-dialog-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.editor-modal-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.editor-modal-shell.svelte-17e0w4c>*{overscroll-behavior:contain;width:min(760px,100%);max-height:min(100vh - 40px,960px);margin:0;overflow:auto;box-shadow:0 24px 70px #00000061}@media (width<=768px){.auth-dialog-shell.svelte-17e0w4c,.editor-modal-shell.svelte-17e0w4c{align-items:end;padding:12px}.editor-modal-shell.svelte-17e0w4c>*{max-height:calc(100vh - 24px)}}.external-login-btn.svelte-1dsu6u0{justify-content:center;width:100%;text-decoration:none}.auth-dialog-separator.svelte-1dsu6u0{color:var(--text-muted);align-items:center;gap:10px;font-size:12px;display:flex}.auth-dialog-separator.svelte-1dsu6u0:before,.auth-dialog-separator.svelte-1dsu6u0:after{content:"";border-top:1px solid var(--border);flex:1}.auth-dialog-input-shell.svelte-1dsu6u0{position:relative}.auth-dialog-input.svelte-1dsu6u0{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:11px 12px 11px 38px;font-family:inherit;font-size:14px}.auth-dialog-input.svelte-1dsu6u0:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.flash-region.svelte-1i257xg{top:16px;left:var(--sidebar-width);z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;right:0}.sidebar.sidebar-collapsed~.flash-region.svelte-1i257xg{left:60px}@media (width<=768px){.flash-region.svelte-1i257xg{left:60px}}.flash-toast.svelte-1i257xg{border-radius:var(--radius);pointer-events:auto;align-items:flex-start;gap:10px;width:max-content;max-width:min(480px,100% - 32px);padding:12px 12px 12px 16px;font-size:14px;animation:.9s ease-out svelte-1i257xg-flash-toast-glow;display:flex;box-shadow:0 10px 30px #00000059}@keyframes svelte-1i257xg-flash-toast-glow{0%{box-shadow:0 0 0 4px color-mix(in srgb, currentColor 45%, transparent), 0 10px 30px #00000059}to{box-shadow:0 0 0 4px #0000,0 10px 30px #00000059}}@media (prefers-reduced-motion:reduce){.flash-toast.svelte-1i257xg{animation:none}}.flash-toast-success.svelte-1i257xg{background:color-mix(in srgb, var(--success) 14%, var(--bg-surface));color:var(--success);border:1px solid #34d39959}.flash-toast-error.svelte-1i257xg{background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--warning);border:1px solid #f59e0b66}.flash-toast-text.svelte-1i257xg{overflow-wrap:anywhere;flex:1;min-width:0}.flash-toast-dismiss.svelte-1i257xg{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;flex-shrink:0;padding:0 2px;font-size:18px;line-height:1}.flash-toast-dismiss.svelte-1i257xg:hover{opacity:1}.demo-mode-banner.svelte-1s3mcn8{border:1px solid color-mix(in srgb, var(--warning) 55%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--text);box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:grid}.demo-mode-banner-icon.svelte-1s3mcn8{width:20px;height:20px;color:var(--warning);flex:0 0 20px}.demo-mode-banner-copy.svelte-1s3mcn8{align-items:baseline;gap:8px;min-width:0;font-size:13px;display:flex}.demo-mode-banner.svelte-1s3mcn8 strong{color:var(--warning);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;font-size:12px}.demo-mode-banner-links.svelte-1s3mcn8{justify-content:flex-end;align-items:center;gap:6px;display:flex}.demo-mode-banner-links.svelte-1s3mcn8 a{border:1px solid color-mix(in srgb, var(--warning) 42%, var(--border));border-radius:var(--radius);min-height:28px;color:var(--text);white-space:nowrap;align-items:center;padding:4px 8px;font-size:12px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.demo-mode-banner-links.svelte-1s3mcn8 a:hover{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 16%, transparent);color:var(--text)}.demo-mode-banner-links.svelte-1s3mcn8 a:focus-visible{outline:2px solid color-mix(in srgb, var(--warning) 42%, transparent);outline-offset:2px}@media (width<=768px){.demo-mode-banner.svelte-1s3mcn8{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.demo-mode-banner-copy.svelte-1s3mcn8{gap:2px;display:grid}.demo-mode-banner-links.svelte-1s3mcn8{flex-wrap:wrap;grid-column:2;justify-content:flex-start}}.auth-banner.svelte-1c5yh36{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dp-calendar.svelte-g7ga4u{flex-shrink:0;width:224px}.dp-cal-header.svelte-g7ga4u{justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px;display:flex}.dp-cal-title.svelte-g7ga4u{font-size:13px;font-weight:600}.dp-nav-btn.svelte-g7ga4u{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.dp-nav-btn.svelte-g7ga4u:hover{background:var(--bg-surface-hover);color:var(--text)}.dp-nav-btn.svelte-g7ga4u:disabled{opacity:.3;cursor:default;pointer-events:none}.dp-nav-prev-mobile.svelte-g7ga4u{display:none}.dp-weekdays.svelte-g7ga4u{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.dp-weekdays.svelte-g7ga4u span:where(.svelte-g7ga4u){color:var(--text-muted);padding:4px 0;font-size:11px;font-weight:600}.dp-days.svelte-g7ga4u{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.dp-day.svelte-g7ga4u{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-family:inherit;font-size:12px;transition:all .1s;display:flex}.dp-day.svelte-g7ga4u:hover:not(.disabled):not(.other-month){background:var(--bg-surface-hover)}.dp-day.other-month.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default}.dp-day.today.svelte-g7ga4u{color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}.dp-day.in-range.svelte-g7ga4u{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:0}.dp-day.range-start.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:6px 0 0 6px;font-weight:600}.dp-day.range-end.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:0 6px 6px 0;font-weight:600}.dp-day.range-start.range-end.svelte-g7ga4u{border-radius:6px}.dp-day.range-start.today.svelte-g7ga4u,.dp-day.range-end.today.svelte-g7ga4u{box-shadow:none}.dp-day.disabled.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default;pointer-events:none}@media (width<=768px){.dp-nav-prev-mobile.svelte-g7ga4u{display:flex}}.date-picker.svelte-ax7ma4{position:relative}.date-picker-trigger.svelte-ax7ma4{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s;display:inline-flex}.date-picker-trigger.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.date-picker-trigger.svelte-ax7ma4 svg:where(.svelte-ax7ma4){color:var(--text-muted);flex-shrink:0}.date-picker-chevron.svelte-ax7ma4{transition:transform .15s}.date-picker-chevron.open.svelte-ax7ma4{transform:rotate(180deg)}.date-picker-dropdown.svelte-ax7ma4{z-index:100;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000040}.date-picker-presets.svelte-ax7ma4{border-right:1px solid var(--border);flex-direction:column;gap:2px;min-width:140px;padding:8px;display:flex}.preset-btn.svelte-ax7ma4{color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s}.preset-btn.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.preset-btn.active.svelte-ax7ma4{background:var(--accent);color:#fff}.date-picker-calendars.svelte-ax7ma4{flex-wrap:nowrap;gap:16px;padding:12px;display:flex}.dp-cursor-hint.svelte-ax7ma4{pointer-events:none;z-index:101;background:var(--bg-surface);color:var(--text);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:500;display:flex;position:fixed;transform:translate(12px,-50%)}.dp-cursor-hint.svelte-ax7ma4 svg:where(.svelte-ax7ma4){width:12px;height:12px;color:var(--accent);flex-shrink:0}@media (width<=768px){.date-picker-dropdown.svelte-ax7ma4{border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto}.date-picker-presets.svelte-ax7ma4{-webkit-overflow-scrolling:touch;border-right:none;border-bottom:1px solid var(--border);flex-flow:row;min-width:0;overflow-x:auto}.date-picker-calendars.svelte-ax7ma4{justify-content:center}.date-picker-calendars.svelte-ax7ma4>.dp-calendar:first-child{display:none}}.segmented-control.svelte-92fh5i{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.segmented-btn.svelte-92fh5i{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.segmented-btn.svelte-92fh5i:hover{color:var(--text)}.segmented-btn.active.svelte-92fh5i{background:var(--accent);color:#fff}@media (width<=768px){.segmented-btn.svelte-92fh5i{padding:4px 8px;font-size:11px}}.live-tokens.svelte-17qr2ta{margin-bottom:28px}.live-tokens-heading.svelte-17qr2ta{flex-direction:column;gap:2px;display:flex}.live-tokens-subtitle.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.live-tokens-legend.svelte-17qr2ta{flex-wrap:wrap;gap:8px 18px;margin-bottom:16px;display:flex}.live-tokens-legend-item.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:7px;font-size:12px;display:inline-flex}.live-tokens-swatch.svelte-17qr2ta{border-radius:2px;flex-shrink:0;width:10px;height:10px}.live-tokens-legend-value.svelte-17qr2ta{color:var(--text);font-weight:600}.live-tokens-empty.svelte-17qr2ta .live-tokens-empty-text:where(.svelte-17qr2ta){color:var(--text-muted);font-size:13px}.provider-status-flag.svelte-6tr9cf{grid-column:span 2}.provider-status-overview-card.svelte-6tr9cf{grid-column:span 1}.provider-status-flag.is-healthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, var(--bg-surface))}.provider-status-flag.is-degraded.svelte-6tr9cf{border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-flag.is-unhealthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface))}.provider-status-value.svelte-6tr9cf{margin-bottom:8px}.provider-status-card-link.svelte-6tr9cf{color:var(--accent-strong,var(--accent));font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:13px;font-weight:600}.provider-status-card-link.svelte-6tr9cf:hover{color:var(--text);text-decoration:underline}.provider-status-card-link.svelte-6tr9cf:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:3px;border-radius:4px}.provider-status-card-note.svelte-6tr9cf{color:var(--text-muted);font-size:13px;display:block}@media (width>=720px){.card-wide.svelte-6tr9cf{grid-column:span 2}}.cache-token-value.svelte-6tr9cf{flex-wrap:wrap;align-items:center;gap:6px;line-height:1;display:flex}.cache-token-part.svelte-6tr9cf{align-items:center;display:inline-flex}.cache-token-operator.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;font-size:24px;font-weight:600;line-height:1}.cache-token-marker.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;margin-left:2px;font-size:14px;font-weight:700}.prompt-cache-gauge.svelte-6tr9cf{width:120px;height:60px;margin:8px auto 0;position:relative;overflow:hidden}.prompt-cache-gauge.svelte-6tr9cf canvas{display:block}.prompt-cache-gauge-value.svelte-6tr9cf{text-align:center;color:var(--text);font-size:18px;font-weight:700;line-height:1;position:absolute;bottom:4px;left:0;right:0}@media (width<=768px){.provider-status-flag.svelte-6tr9cf{grid-column:span 1}}.mcp-servers-flag.svelte-6tr9cf{grid-column:span 1}.cache-meter-header.svelte-1yzecxj{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:16px;display:flex}.cache-meter-header.svelte-1yzecxj h3{font-size:16px;font-weight:600}.cache-meter-subtitle.svelte-1yzecxj{color:var(--text-muted);font-size:13px}.cache-meter-bar.svelte-1yzecxj{background:var(--bg-surface-hover);border-radius:6px;width:100%;height:28px;display:flex;overflow:hidden}.cache-meter-segment.svelte-1yzecxj{justify-content:center;align-items:center;min-width:3px;height:100%;transition:width .3s;display:flex;overflow:hidden}.cache-meter-segment-label.svelte-1yzecxj{color:#fff;white-space:nowrap;text-shadow:0 1px 2px #00000073;font-size:12px;font-weight:600;line-height:1}.cache-meter-segment.svelte-1yzecxj+.cache-meter-segment:where(.svelte-1yzecxj){box-shadow:-1px 0 0 var(--bg-surface)}.cache-meter-bar.is-empty.svelte-1yzecxj{background:var(--bg-surface-hover);justify-content:center;align-items:center;height:auto;min-height:28px;padding:6px 12px}.cache-meter-legend.svelte-1yzecxj{flex-wrap:wrap;gap:10px 24px;margin-top:16px;display:flex}.cache-meter-legend-item.svelte-1yzecxj{align-items:center;gap:8px;font-size:13px;display:flex}.cache-meter-swatch.svelte-1yzecxj{border-radius:3px;flex-shrink:0;width:12px;height:12px}.cache-meter-legend-label.svelte-1yzecxj{color:var(--text)}.cache-meter-legend-pct.svelte-1yzecxj{color:var(--text);font-weight:600}.cache-meter-legend-tokens.svelte-1yzecxj{color:var(--text-muted)}.cache-meter-empty.svelte-1yzecxj{color:var(--text-muted);text-align:center;font-size:13px}.spinner.svelte-b54l9o{width:var(--spinner-size);height:var(--spinner-size);border:2px solid var(--border,#80808059);border-top-color:var(--accent,currentColor);border-radius:50%;flex:none;animation:.7s linear infinite svelte-b54l9o-spinner-rotate;display:inline-block}@keyframes svelte-b54l9o-spinner-rotate{to{transform:rotate(360deg)}}.contribution-calendar-section.svelte-3hfxuq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:24px;padding:24px}.contribution-calendar-header.svelte-3hfxuq{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.contribution-calendar-header.svelte-3hfxuq h3{font-size:16px;font-weight:600}.contribution-calendar-grid-wrapper.svelte-3hfxuq{gap:8px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq{flex-direction:column;gap:2px;padding-top:22px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq span{height:13px;color:var(--text-muted);text-align:right;min-width:28px;font-size:10px;line-height:13px}.contribution-calendar-scroll.svelte-3hfxuq{--contribution-week-size:13px;--contribution-week-gap:2px;flex:1;min-width:0;overflow-x:auto}.contribution-calendar-months.svelte-3hfxuq{grid-auto-columns:var(--contribution-week-size);gap:var(--contribution-week-gap);grid-auto-flow:column;height:16px;margin-bottom:6px;display:grid}.contribution-calendar-month-label.svelte-3hfxuq{color:var(--text-muted);white-space:nowrap;font-size:10px}.contribution-calendar-grid.svelte-3hfxuq{gap:var(--contribution-week-gap);display:flex}.contribution-calendar-week.svelte-3hfxuq{flex-direction:column;gap:2px;display:flex}.contribution-calendar-cell.svelte-3hfxuq{width:var(--contribution-week-size);height:var(--contribution-week-size);background:var(--cal-level-0);border-radius:2px}.contribution-calendar-cell.level-1.svelte-3hfxuq{background:var(--cal-level-1)}.contribution-calendar-cell.level-2.svelte-3hfxuq{background:var(--cal-level-2)}.contribution-calendar-cell.level-3.svelte-3hfxuq{background:var(--cal-level-3)}.contribution-calendar-cell.level-4.svelte-3hfxuq{background:var(--cal-level-4)}.contribution-calendar-cell.level-5.svelte-3hfxuq{background:var(--cal-level-5)}.contribution-calendar-cell.level-6.svelte-3hfxuq{background:var(--cal-level-6)}.contribution-calendar-cell.level-7.svelte-3hfxuq{background:var(--cal-level-7)}.contribution-calendar-cell.level-8.svelte-3hfxuq{background:var(--cal-level-8)}.contribution-calendar-cell.level-9.svelte-3hfxuq{background:var(--cal-level-9)}.contribution-calendar-cell.level-10.svelte-3hfxuq{background:var(--cal-level-10)}.contribution-calendar-cell.empty.svelte-3hfxuq{background:0 0}.contribution-calendar-footer.svelte-3hfxuq{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.contribution-calendar-meta.svelte-3hfxuq{flex-direction:column;gap:4px;display:flex}.contribution-calendar-summary.svelte-3hfxuq{color:var(--text-muted);font-size:12px}.contribution-calendar-legend.svelte-3hfxuq{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.contribution-calendar-legend.svelte-3hfxuq .contribution-calendar-cell:where(.svelte-3hfxuq){cursor:default;width:11px;height:11px}.contribution-calendar-tooltip.svelte-3hfxuq{z-index:200;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);white-space:nowrap;pointer-events:none;border-radius:4px;padding:4px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;position:fixed;transform:translate(-50%);box-shadow:0 4px 12px #0003}@media (width<=768px){.contribution-calendar-day-labels.svelte-3hfxuq{display:none}.contribution-calendar-section.svelte-3hfxuq{padding:16px}.contribution-calendar-footer.svelte-3hfxuq{flex-direction:column;align-items:flex-start}}.inline-help-toggle.is-open.svelte-y40or3{color:var(--text);background:0 0}.inline-help-toggle.is-open.svelte-y40or3 .inline-help-toggle-icon{transform:rotate(540deg)}.audit-stats-section.svelte-14e9yan{margin-top:24px}.audit-stats-header.svelte-14e9yan{align-items:flex-start}.audit-stats-kpis.svelte-14e9yan{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.audit-stats-kpi.svelte-14e9yan{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.audit-stats-kpi-value.svelte-14e9yan{color:var(--text);font-size:13px}.audit-stats-kpi-dot.svelte-14e9yan{border-radius:2px;flex-shrink:0;width:8px;height:8px}.audit-stats-dot-2xx.svelte-14e9yan{background:var(--success)}.audit-stats-dot-4xx.svelte-14e9yan{background:var(--warning)}.audit-stats-dot-5xx.svelte-14e9yan{background:var(--danger)}.provider-status-details.svelte-6y9wjv{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .28s,opacity .22s;display:grid}.provider-status-details.is-expanded.svelte-6y9wjv{opacity:1;grid-template-rows:1fr}.provider-status-details.is-collapsed.svelte-6y9wjv{pointer-events:none}.provider-status-details-inner.svelte-6y9wjv{flex-direction:column;gap:14px;min-height:0;display:flex;overflow:hidden}.provider-status-reason.svelte-6y9wjv{color:var(--text-muted);font-size:13px}.provider-status-error.svelte-6y9wjv{color:var(--danger);overflow-wrap:break-word;font-size:12px}.provider-status-config-label.svelte-6y9wjv{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-config.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}.provider-status-config-row.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-config-value.svelte-6y9wjv{color:var(--text);overflow-wrap:break-word;font-size:13px;display:block}.provider-status-health.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-bottom:12px;padding-top:12px;display:flex}.provider-status-health-state.svelte-6y9wjv{border:1px solid var(--border);border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.provider-status-health-state.is-healthy.svelte-6y9wjv{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-health-state.is-degraded.svelte-6y9wjv{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-health-state.is-unhealthy.svelte-6y9wjv{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-health-models.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-health-model.svelte-6y9wjv{color:var(--text);justify-content:space-between;gap:8px;font-size:13px;display:flex}.provider-status-health-model.is-flagged.svelte-6y9wjv{color:var(--danger)}.provider-status-health-model-name.svelte-6y9wjv{overflow-wrap:anywhere}.provider-status-health-model-stats.svelte-6y9wjv{white-space:nowrap;color:var(--text-muted)}.provider-status-health-model.is-flagged.svelte-6y9wjv .provider-status-health-model-stats:where(.svelte-6y9wjv){color:var(--danger);font-weight:700}.provider-status-card.svelte-nopjmh{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:18px;display:flex}.provider-status-card-toggle.svelte-nopjmh{border:0;border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin:auto -18px -18px;padding:7px 0;transition:background .15s,color .15s;display:flex}.provider-status-card-toggle.svelte-nopjmh:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text)}.provider-status-card-toggle.svelte-nopjmh:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:-2px}.provider-status-card-toggle.svelte-nopjmh .provider-status-card-toggle-icon{width:16px;height:16px;transition:transform .28s;display:block}.provider-status-card-toggle.is-expanded.svelte-nopjmh .provider-status-card-toggle-icon{transform:rotate(180deg)}.provider-status-card-head.svelte-nopjmh{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.provider-status-name.svelte-nopjmh{letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:16px;font-weight:700;display:flex}.provider-doc-help.svelte-nopjmh{align-self:center;text-decoration:none}.provider-status-name-type.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-pill.svelte-nopjmh{border:1px solid var(--border);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.provider-status-pill.is-healthy.svelte-nopjmh{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-pill.is-degraded.svelte-nopjmh{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-pill.is-unhealthy.svelte-nopjmh{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-meta.svelte-nopjmh{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.provider-status-meta-item.svelte-nopjmh{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.provider-status-meta-label.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-meta-value.svelte-nopjmh{color:var(--text);font-size:14px}@media (width<=768px){.provider-status-meta.svelte-nopjmh{grid-template-columns:1fr}}.provider-status-section-loading.svelte-1kx3uw4{justify-content:center;padding:24px 0;display:flex}.provider-status-section-header.svelte-1kx3uw4{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.provider-status-toggle.svelte-1kx3uw4{background:var(--bg-surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.provider-status-toggle.svelte-1kx3uw4:hover{background:var(--bg-surface-hover)}.provider-status-toggle.svelte-1kx3uw4:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.provider-status-toggle-copy.svelte-1kx3uw4{white-space:nowrap}.provider-status-toggle-track.svelte-1kx3uw4{background:color-mix(in srgb, var(--text-muted) 35%, var(--border));border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background-color .2s;position:relative}.provider-status-toggle-track.is-active.svelte-1kx3uw4{background:color-mix(in srgb, var(--accent) 82%, var(--bg-surface))}.provider-status-toggle-thumb.svelte-1kx3uw4{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000003d}.provider-status-toggle-track.is-active.svelte-1kx3uw4 .provider-status-toggle-thumb:where(.svelte-1kx3uw4){transform:translate(14px)}.provider-status-grid.svelte-1kx3uw4{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:16px;display:grid}@media (width<=768px){.provider-status-section-header.svelte-1kx3uw4{flex-direction:column;align-items:flex-start}.provider-status-toggle.svelte-1kx3uw4{justify-content:space-between;width:100%}}.filter-input-wrap.svelte-30xz1k{flex:1;width:100%;min-width:min(400px,100%);display:flex;position:relative}.filter-input.svelte-30xz1k{flex:1;width:100%;min-width:0;padding-left:34px}.filter-input-wrap.svelte-30xz1k .filter-input-icon{width:14px;height:14px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.usage-page-filters.svelte-1oi6ywk{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.usage-page-filters.svelte-1oi6ywk .usage-log-select{flex:0 auto}.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path{flex:220px;min-width:180px;max-width:360px}@media (width<=768px){.usage-page-filters.svelte-1oi6ywk .usage-log-select,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path{flex:100%;max-width:none}}.pro-saved-value.svelte-1qiwzdu{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.pro-saved-delta.svelte-1qiwzdu{color:var(--success);letter-spacing:0;font-size:13px;font-weight:600}.usage-breakdown-loading.svelte-1kee4g8{justify-content:center;align-items:center;min-height:120px;display:flex}.chart-view-toggle.svelte-1kee4g8{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.chart-view-btn.svelte-1kee4g8{width:30px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.chart-view-btn.svelte-1kee4g8:hover{color:var(--text)}.chart-view-btn.active.svelte-1kee4g8{background:var(--accent);color:#fff}.chart-view-btn.svelte-1kee4g8 svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.usage-chart-table-wrapper.svelte-1kee4g8{-webkit-overflow-scrolling:touch;margin-top:0;overflow-x:auto}.usage-chart-data-table.svelte-1kee4g8{min-width:max-content}.usage-chart-data-table.svelte-1kee4g8 th,.usage-chart-data-table.svelte-1kee4g8 td{white-space:nowrap}.pagination-info.svelte-1imew3q{color:var(--text-muted);font-size:13px}.pagination-buttons.svelte-1imew3q{gap:8px;display:flex}.usage-log-loading.svelte-hg4ill{justify-content:center;align-items:center;min-height:120px;display:flex}.usage-log-section.svelte-hg4ill{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.usage-log-section.svelte-hg4ill h3{margin-bottom:16px;font-size:16px;font-weight:600}.usage-log-section.svelte-hg4ill .table-wrapper{overflow-x:auto}.usage-log-toolbar.svelte-hg4ill{gap:12px;margin-bottom:16px;display:grid}.usage-filter-row.svelte-hg4ill{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:12px;display:grid}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1/-1}.usage-filter-row-options.svelte-hg4ill{grid-template-columns:1fr}.usage-log-checkbox.svelte-hg4ill{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.usage-log-checkbox.svelte-hg4ill input{cursor:pointer;width:16px;height:16px}.usage-ts.svelte-hg4ill{white-space:nowrap;font-size:12px}.usage-log-row-cached.svelte-hg4ill td{opacity:.75;font-style:italic}.usage-log-row-cached.svelte-hg4ill .usage-log-cache-cell:where(.svelte-hg4ill){font-weight:700}.caveat-icon.svelte-hg4ill{color:var(--warning);cursor:help;margin-left:4px;font-size:14px}@media (width<=768px){.usage-log-toolbar.svelte-hg4ill{gap:10px}.usage-filter-row.svelte-hg4ill{grid-template-columns:1fr}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1}.usage-log-table.svelte-hg4ill{display:block;overflow-x:auto}}.usage-sticky-controls.svelte-spwie6{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.usage-charts-grid.svelte-spwie6{flex-wrap:wrap;gap:24px;margin-bottom:24px;display:flex}.usage-charts-grid.svelte-spwie6 .model-chart-section{flex:calc(50% - 24px);min-width:420px;margin-bottom:0}@media (width<=520px){.usage-charts-grid.svelte-spwie6 .model-chart-section{min-width:0}}.loading-state.svelte-hzxv1d{min-height:var(--loading-state-min-height,64px);color:var(--text-muted);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.budget-bar-text-row-on-fill.svelte-1jm56wo{color:#fff;clip-path:inset(0 calc(100% - var(--budget-progress,0%)) 0 0)}.budget-bar-text-start.svelte-1jm56wo{left:8px;transform:translateY(-50%)}.budget-bar-track-period-custom.svelte-1jm56wo .budget-bar-text-row-on-fill:where(.svelte-1jm56wo){color:#3f332a}.budget-override-dialog.svelte-13ryo7h{max-width:460px}.budget-sort-control.svelte-1752fqe{align-items:center;gap:8px}.budget-sort-control.svelte-1752fqe label{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.budget-sort-select.svelte-1752fqe{background-color:var(--bg-surface);min-width:132px}.budget-sort-select.svelte-1752fqe:hover{background-color:var(--bg-surface-hover)}.model-name-cell.svelte-1iynym{flex-direction:column;gap:8px;display:flex}.model-name-primary.svelte-1iynym{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.model-name-secondary.svelte-1iynym{color:var(--text-muted);font-size:12px}.model-redirect-remove-btn.svelte-1iynym{appearance:none;color:var(--danger);cursor:pointer;background:0 0;border:0;margin-left:4px;padding:0;font-size:11px}.model-redirect-remove-btn.svelte-1iynym:hover:not(:disabled){text-decoration:underline}.model-redirect-remove-btn.svelte-1iynym:disabled{opacity:.45;cursor:default}.model-kind-icon.svelte-1iynym{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border));background:var(--bg);width:24px;height:24px;color:var(--accent);border-radius:999px;flex:0 0 24px;justify-content:center;align-items:center;display:inline-flex}.model-kind-icon-svg.svelte-1iynym{width:14px;height:14px}.model-row-actions.svelte-1iynym{text-align:right;width:170px}@media (width<=768px){.model-name-primary.svelte-1iynym{flex-direction:column;align-items:flex-start}}.provider-group-row.svelte-1911hy6 td{background:color-mix(in srgb, var(--accent) 6%, var(--bg));padding-top:12px;padding-bottom:12px}.provider-group-row.svelte-1911hy6:hover td{background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.provider-group-header.svelte-1911hy6{justify-content:space-between;align-items:center;gap:16px;display:flex}.provider-group-meta.svelte-1911hy6{flex-direction:column;gap:4px;min-width:0;display:flex}.provider-group-title.svelte-1911hy6{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.provider-group-type.svelte-1911hy6,.provider-group-count.svelte-1911hy6,.provider-group-summary.svelte-1911hy6{color:var(--text-muted);font-size:12px}@media (width<=768px){.provider-group-header.svelte-1911hy6{flex-direction:column;align-items:flex-start}}.vm-session-affinity-checkbox.svelte-d1j6xw{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.vm-session-affinity-checkbox.svelte-d1j6xw input:where(.svelte-d1j6xw){accent-color:var(--accent);cursor:pointer}.pricing-override-rows.svelte-u8snes{gap:12px;display:grid}.pricing-override-row.svelte-u8snes{grid-template-columns:minmax(220px,1fr) minmax(130px,180px) 32px;align-items:end;gap:12px;display:grid}.pricing-override-row-actions.svelte-u8snes{justify-content:flex-start;display:flex}.pricing-override-tier-note.svelte-u8snes{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:6px;padding:10px 12px;font-size:13px}.pricing-preview.svelte-u8snes{border:1px solid var(--border);border-radius:6px;overflow:hidden}.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:minmax(150px,1fr) minmax(90px,auto) minmax(130px,.8fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.pricing-preview-header.svelte-u8snes{background:var(--bg);color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.pricing-preview-row.svelte-u8snes{border-top:1px solid var(--border);font-size:13px}.pricing-preview-row-empty.svelte-u8snes{color:var(--text-muted);grid-template-columns:1fr}@media (width<=768px){.pricing-override-row.svelte-u8snes,.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:1fr}}.failover-drafts-editor.svelte-1n87bip{flex-direction:column;gap:16px;display:flex}.failover-draft-header-actions.svelte-1n87bip{flex:none;align-items:center;gap:10px;display:flex}.failover-draft-counter.svelte-1n87bip{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.failover-draft-toolbar.svelte-1n87bip{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.failover-draft-toolbar.svelte-1n87bip .filter-input-wrap,.failover-draft-toolbar.svelte-1n87bip .filter-input{min-width:0}.failover-draft-toggle-all.svelte-1n87bip{flex:none}.failover-draft-list.svelte-1n87bip{flex-direction:column;gap:8px;max-height:min(52vh,430px);padding-right:4px;display:flex;overflow-y:auto}.failover-draft-row.svelte-1n87bip{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:10px;display:grid}.failover-draft-row.svelte-1n87bip:hover{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));background:var(--bg-surface-hover)}.failover-draft-row.svelte-1n87bip input{width:16px;height:16px;margin-top:2px}.failover-draft-copy.svelte-1n87bip{gap:4px;min-width:0;display:grid}.failover-draft-source.svelte-1n87bip,.failover-draft-targets.svelte-1n87bip{overflow-wrap:anywhere}.failover-draft-targets.svelte-1n87bip{color:var(--text-muted);font-size:12px}.failover-drafts-empty.svelte-1n87bip{align-items:center;min-height:96px;display:flex}.failover-draft-actions.svelte-1n87bip{margin-top:0}.category-tabs.svelte-scpjps{-webkit-overflow-scrolling:touch;align-items:center;gap:4px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.category-tab.svelte-scpjps{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.category-tab.svelte-scpjps:hover{color:var(--text);background:var(--bg-surface-hover)}.category-tab.active.svelte-scpjps{background:var(--accent);color:#fff;border-color:var(--accent)}.category-tab.svelte-scpjps .tab-count:where(.svelte-scpjps){background:#ffffff26;border-radius:9px;justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 5px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.category-tab.svelte-scpjps:not(.active) .tab-count:where(.svelte-scpjps){background:var(--bg)}@media (width<=768px){.category-tabs.svelte-scpjps{gap:4px}.category-tab.svelte-scpjps{padding:5px 10px;font-size:12px}}.workflow-pipeline-meta.svelte-1viff7o{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 86%, transparent);min-width:0;max-width:calc(100% - 28px);color:var(--text-muted);white-space:nowrap;appearance:none;cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:0;padding:2px 10px;font-size:12px;font-weight:500;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex;position:absolute;top:12px;right:14px;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover,.workflow-pipeline-meta.svelte-1viff7o:focus-visible{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface));color:color-mix(in srgb, var(--accent) 74%, var(--text))}.workflow-pipeline-meta.svelte-1viff7o:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.workflow-pipeline-meta-label.svelte-1viff7o{flex:none;font-weight:700}.workflow-pipeline-meta-placeholder.svelte-1viff7o{opacity:1;flex:none;max-width:3ch;margin-left:4px;transition:max-width .18s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta-value.svelte-1viff7o{opacity:0;text-overflow:clip;flex:0 auto;max-width:0;margin-left:0;transition:max-width .22s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o){opacity:0;max-width:0;margin-left:0}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o){opacity:1;max-width:42ch;margin-left:4px}.workflow-pipeline-meta-icon.svelte-1viff7o{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:14px;margin-left:0;line-height:0;transition:width .18s,margin-left .18s,opacity .15s,transform .18s;display:inline-flex;overflow:hidden;transform:translate(4px)translateY(1px)scale(.84)}.workflow-pipeline-meta-icon.svelte-1viff7o svg{width:14px;height:14px}.workflow-pipeline-meta-copied.svelte-1viff7o,.workflow-pipeline-meta-copied.svelte-1viff7o:hover,.workflow-pipeline-meta-copied.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-icon:where(.svelte-1viff7o){opacity:1;width:14px;margin-left:6px;transform:translateY(1px)}.workflow-pipeline-meta-error.svelte-1viff7o,.workflow-pipeline-meta-error.svelte-1viff7o:hover,.workflow-pipeline-meta-error.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 34%, var(--border));color:var(--danger)}.workflow-pipeline.svelte-nbptrg{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);flex-direction:column;gap:0;margin-bottom:12px;padding:18px 20px 20px;display:flex;position:relative}.workflow-pipeline-has-meta.svelte-nbptrg{padding-top:42px}.workflow-pipeline-row.svelte-nbptrg{align-items:center;width:100%;min-width:0;display:flex;overflow-x:auto}.workflow-node-icon.svelte-nbptrg{border-radius:var(--radius);background:var(--bg);width:28px;height:28px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.workflow-node-icon.svelte-nbptrg svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.workflow-node-label.svelte-nbptrg{letter-spacing:.03em;color:var(--text);white-space:nowrap;font-size:11px;font-weight:700;line-height:1.2}.workflow-node-sub.svelte-nbptrg{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:120px;font-size:10px;font-weight:500;line-height:1.2;font-family:var(--font-mono,ui-monospace, monospace);overflow:hidden}.workflow-node-badge.svelte-nbptrg{border-radius:var(--radius);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);align-items:center;padding:2px 7px;font-size:9px;font-weight:800;line-height:1.5;display:inline-flex}.workflow-node-endpoint.svelte-nbptrg{border-radius:var(--radius);border-color:var(--border);background:var(--bg-surface);flex-direction:row;gap:7px;min-width:auto;padding:10px 14px}.workflow-node-icon-endpoint.svelte-nbptrg{border-radius:var(--radius);width:auto;height:auto;color:var(--text-muted);background:0 0;justify-content:flex-start;padding:0}.workflow-node-icon-endpoint.svelte-nbptrg svg{width:14px;height:14px}.workflow-node-endpoint.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted);font-size:11px;font-weight:600}.workflow-node-feature.svelte-nbptrg{border-color:color-mix(in srgb, var(--accent) 46%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface))}.workflow-node-feature.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--accent) 70%, var(--text-muted))}.workflow-node-ai.svelte-nbptrg{border-radius:var(--radius);gap:6px;min-width:96px;padding:12px 16px}.workflow-async-section.svelte-nbptrg{justify-content:flex-end;align-items:center;gap:0;width:100%;min-width:0;margin-top:10px;display:flex}.workflow-async-turn.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 60px;height:2px;position:relative}.workflow-async-turn.svelte-nbptrg:before{content:"";background:color-mix(in srgb, var(--text-muted) 40%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);width:7px;height:9px;position:absolute;top:50%;left:-7px;transform:translateY(-50%)}.workflow-async-turn.svelte-nbptrg:after{content:"";border-right:2px dashed color-mix(in srgb, var(--text-muted) 40%, var(--border));height:16px;position:absolute;bottom:1px;right:0}.workflow-async-row.svelte-nbptrg{align-items:center;min-width:0;margin-right:7px;display:flex}.workflow-conn-async.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 24px;width:24px}.workflow-conn-async.svelte-nbptrg:after{background:color-mix(in srgb, var(--text-muted) 45%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);left:-1px;right:auto}.workflow-node-async.svelte-nbptrg{border-radius:var(--radius);border-style:dashed;flex-direction:row;gap:7px;min-width:auto;padding:7px 12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){border-radius:var(--radius);width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg) svg{width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){font-size:10px;font-weight:700}.workflow-async-label.svelte-nbptrg{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);opacity:.55;white-space:nowrap;flex-shrink:0;align-items:center;margin-left:8px;font-size:9px;font-weight:800;display:inline-flex}.workflow-node-success.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 18%, var(--bg));color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 85%, var(--text))}.workflow-node-success.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 74%, var(--text-muted))}.workflow-node-success.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 14%, var(--bg));border-color:color-mix(in srgb, var(--success) 38%, var(--border));color:var(--success)}.workflow-node-current.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 16%, var(--bg));color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 85%, var(--text))}.workflow-node-current.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 72%, var(--text-muted))}.workflow-node-current.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 13%, var(--bg));border-color:color-mix(in srgb, var(--info) 36%, var(--border));color:var(--info)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 85%, var(--text))}.workflow-node-warning.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 72%, var(--text-muted))}.workflow-node-warning.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 38%, var(--border));color:var(--warning)}.workflow-node-error.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--danger) 14%, var(--bg));color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 85%, var(--text))}.workflow-node-error.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 72%, var(--text-muted))}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 12%, var(--bg));color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg),.workflow-node-neutral.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--text-muted) 84%, var(--border))}.workflow-node-neutral.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 10%, var(--bg));border-color:color-mix(in srgb, var(--text-muted) 28%, var(--border));color:var(--text-muted)}.workflow-conn-hit.svelte-nbptrg,.workflow-conn-hit.svelte-nbptrg:after{background:color-mix(in srgb, var(--success) 58%, var(--border))}.workflow-conn-dim.svelte-nbptrg,.workflow-conn-dim.svelte-nbptrg:after{background:color-mix(in srgb, var(--border) 75%, transparent)}.workflow-node-success.svelte-nbptrg{border-color:color-mix(in srgb, var(--success) 52%, var(--border));background:color-mix(in srgb, var(--success) 9%, var(--bg-surface))}.workflow-node-current.svelte-nbptrg{border-color:color-mix(in srgb, var(--info) 56%, var(--border));background:color-mix(in srgb, var(--info) 10%, var(--bg-surface))}.workflow-node-warning.svelte-nbptrg{border-color:color-mix(in srgb, var(--warning) 52%, var(--border));background:color-mix(in srgb, var(--warning) 9%, var(--bg-surface))}.workflow-node-error.svelte-nbptrg{border-color:color-mix(in srgb, var(--danger) 52%, var(--border));background:color-mix(in srgb, var(--danger) 9%, var(--bg-surface))}.workflow-node-neutral.svelte-nbptrg{border-color:color-mix(in srgb, var(--text-muted) 40%, var(--border));background:color-mix(in srgb, var(--text-muted) 8%, var(--bg-surface))}.workflow-node-skipped.svelte-nbptrg{opacity:.28;position:relative}.workflow-card.svelte-1fo9fvq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:20px;display:flex}.workflow-card-head.svelte-1fo9fvq{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-card-footer.svelte-1fo9fvq{flex-direction:column;align-items:stretch;gap:10px;display:flex}.workflow-card-head.svelte-1fo9fvq h3{font-size:18px;font-weight:700}.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.workflow-card-meta-footer.svelte-1fo9fvq{justify-content:flex-start}.workflow-card-footer.svelte-1fo9fvq .alias-actions-cell{align-self:flex-end}.workflow-card-description.svelte-1fo9fvq{color:var(--text-muted);font-size:14px}.workflow-guardrails.svelte-1fo9fvq{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list.svelte-1fo9fvq{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-item.svelte-1fo9fvq{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}@media (width<=768px){.workflow-card-head.svelte-1fo9fvq,.workflow-card-footer.svelte-1fo9fvq,.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq,.workflow-guardrail-item.svelte-1fo9fvq{flex-direction:column;align-items:flex-start}}.model-editor.workflow-editor{width:min(1080px,100%);margin-bottom:0}.alert-inline-actions.svelte-1bcpzh1{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.workflow-guardrail-editor.svelte-1bcpzh1{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list-editor.svelte-1bcpzh1{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-row.svelte-1bcpzh1{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:stretch;align-items:center;gap:12px;padding:10px 12px;display:flex}.workflow-guardrail-field.svelte-1bcpzh1{flex:auto;min-width:0}.workflow-guardrail-step-field.svelte-1bcpzh1{flex:0 0 120px}.workflow-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-step-input.svelte-1bcpzh1{max-width:120px}@media (width<=768px){.workflow-guardrail-row.svelte-1bcpzh1{flex-direction:column;align-items:flex-start}.workflow-step-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-guardrail-field.svelte-1bcpzh1,.workflow-guardrail-step-field.svelte-1bcpzh1{flex-basis:auto;width:100%}}.workflow-list-loading.svelte-ie2kfk{justify-content:center;align-items:center;gap:8px;display:flex}.workflows-list.svelte-ie2kfk{min-width:0}.workflow-card-grid.svelte-ie2kfk{grid-template-columns:1fr;gap:16px;display:grid}.workflow-page-note.svelte-l8kr26{color:var(--text-muted);margin-top:6px;font-size:14px}.audit-log-toolbar.svelte-1pwbpcm{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;display:grid}.audit-filter-select.svelte-1pwbpcm{grid-column:span 2;min-width:0}.audit-filter-row-search.svelte-1pwbpcm .filter-input-wrap{grid-column:1/-1;max-width:none}.audit-filter-row-controls.svelte-1pwbpcm .audit-filter-select:where(.svelte-1pwbpcm){grid-column:span 2}.audit-filter-row-controls.svelte-1pwbpcm .btn{grid-column:11/-1;justify-self:end;min-width:108px}.audit-clear-btn.svelte-1pwbpcm{justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.audit-clear-btn.svelte-1pwbpcm .table-icon-svg{width:12px;height:12px}@media (width<=768px){.audit-log-toolbar.svelte-1pwbpcm{gap:8px}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:1fr}.audit-filter-row.svelte-1pwbpcm .filter-input-wrap,.audit-filter-row.svelte-1pwbpcm .filter-input,.audit-filter-select.svelte-1pwbpcm,.audit-filter-row.svelte-1pwbpcm .btn{grid-column:auto}}.audit-live-status.svelte-tve6yv{color:var(--text-muted);align-items:center;gap:10px;margin-left:16px;padding-left:6px;font-size:12px;display:inline-flex}.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:1.8s ease-out infinite svelte-tve6yv-audit-live-dot-throb}@keyframes svelte-tve6yv-audit-live-dot-throb{0%{transform:scale(1)}35%{transform:scale(1.35)}70%{transform:scale(1)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:none}}.audit-live-status-text.is-live.svelte-tve6yv{color:var(--success);font-weight:600}.audit-entry-metadata.svelte-hyopt0{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.audit-entry-metadata-label.svelte-hyopt0{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:12px;font-weight:700}.audit-entry-context.svelte-hyopt0{flex-wrap:wrap;flex:auto;gap:8px;display:flex}.audit-alias-badge.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 28%, var(--border));color:var(--accent-strong,var(--accent))}@media (width<=768px){.audit-entry-metadata.svelte-hyopt0{flex-direction:column;align-items:flex-start;gap:8px}}.audit-attempt-track.svelte-1eu22xn{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.audit-attempt-track-pips.svelte-1eu22xn{align-items:center;gap:3px;display:inline-flex}.audit-attempt-pip.svelte-1eu22xn{background:var(--text-muted);border-radius:2px;width:8px;height:8px}.audit-attempt-pip.audit-attempt-success.svelte-1eu22xn{background:var(--success)}.audit-attempt-pip.audit-attempt-error.svelte-1eu22xn{background:var(--danger)}.audit-attempt-track-count.svelte-1eu22xn{color:var(--text-muted);font-size:11px}.audit-entry-summary.svelte-17mysgz{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;list-style:none;display:flex;position:relative}.audit-entry-summary.svelte-17mysgz::-webkit-details-marker{display:none}.audit-entry-summary-live-in-progress.svelte-17mysgz{background:color-mix(in srgb, var(--info) 7%, var(--bg))}.audit-entry-summary-has-interactions.svelte-17mysgz{padding-right:44px}.audit-entry-summary-live-in-progress.svelte-17mysgz:before{content:"";background:var(--info);pointer-events:none;width:3px;animation:1.2s ease-in-out infinite audit-live-summary-stripe-blink;position:absolute;inset:0 auto 0 0}@media (prefers-reduced-motion:reduce){.audit-entry-summary-live-in-progress.svelte-17mysgz:before{opacity:.78;animation:none}}.audit-entry-left.svelte-17mysgz{align-items:center;gap:8px;min-width:0;display:flex}.audit-entry-right.svelte-17mysgz{color:var(--text-muted);flex-shrink:0;align-items:center;gap:10px;min-height:28px;display:inline-flex}.audit-thread-expander.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);min-width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:3px;padding:0 7px 0 4px;transition:background .1s ease-out,color .1s ease-out;display:inline-flex}.audit-thread-expander.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 12%, var(--bg));color:var(--accent)}.audit-thread-expander.svelte-17mysgz .audit-thread-expander-svg{width:14px;height:14px}.audit-thread-count.svelte-17mysgz{font-size:11px;font-weight:600}.audit-conversation-trigger.svelte-17mysgz{border:0;border-left:1px solid var(--border);background:color-mix(in srgb, var(--accent) 12%, var(--bg));width:32px;height:100%;color:var(--accent);cursor:pointer;border-radius:0;justify-content:center;align-items:center;margin:0;transition:background .1s ease-out,color .1s ease-out;display:inline-flex;position:absolute;inset:0 0 0 auto}.audit-conversation-trigger.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg))}.audit-conversation-trigger-active.svelte-17mysgz{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 28%, var(--bg));border-left:0}.audit-conversation-trigger-active.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 34%, var(--bg))}.audit-conversation-trigger.svelte-17mysgz .audit-conversation-trigger-svg{stroke-linecap:butt;stroke-linejoin:miter;width:18px;height:18px}.audit-path.svelte-17mysgz{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.audit-request-badge.svelte-17mysgz{white-space:nowrap;gap:6px;min-width:0}.audit-timestamp-time.svelte-17mysgz{display:none}.audit-provider-model.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);height:24px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:420px;padding:0 10px;font-size:12px;display:inline-flex;overflow:hidden}@container dashboard-content (width<=699px){.audit-entry-summary.svelte-17mysgz{flex-direction:column;align-items:flex-start}.audit-entry-right.svelte-17mysgz{justify-content:space-between;width:100%}.audit-request-status.svelte-17mysgz,.audit-timestamp-full.svelte-17mysgz{display:none}.audit-timestamp-time.svelte-17mysgz{display:inline}}.audit-pane-split.svelte-1h5puht{grid-template-columns:1fr 2fr;align-items:start;gap:10px 14px;display:grid}.audit-pane-split-single.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}@container dashboard-content (width<=699px){.audit-pane-split.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}}.audit-pane-split.svelte-1h5puht .audit-pane-block-error:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-pane-empty:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-size-warning:where(.svelte-1h5puht){grid-column:1/-1}.audit-pane-block.svelte-1h5puht{min-width:0}.audit-pane-block.svelte-1h5puht>h5{margin-bottom:6px}.audit-pane-block-head.svelte-1h5puht{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.audit-pane-block-title.svelte-1h5puht{align-items:center;gap:8px;min-width:0;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn{background-color:var(--bg-surface);border:1px solid color-mix(in srgb, var(--border) 70%, var(--text) 30%);color:var(--text);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:6px;padding:4px 8px;font-family:inherit;font-size:12px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn:hover:not(:disabled){background:color-mix(in srgb, var(--bg-surface) 80%, var(--text) 20%);border-color:color-mix(in srgb, var(--border) 45%, var(--text) 55%)}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 18%, var(--bg-surface))}.audit-json.svelte-1h5puht{background:var(--bg-surface);border:1px solid var(--border);box-sizing:border-box;white-space:pre;max-width:100%;max-height:220px;color:var(--text);border-radius:6px;padding:10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;overflow:auto}.audit-pane-error-message.svelte-1h5puht{color:var(--danger)}.audit-pane-clickable-preview.svelte-1h5puht{cursor:pointer}.audit-pane-clickable-preview.svelte-1h5puht:hover{background:color-mix(in srgb, var(--danger) 8%, transparent)}.audit-json-body.svelte-1h5puht{white-space:pre;overflow-wrap:normal}.audit-pane-empty.svelte-1h5puht{text-align:left;padding:8px 0 0}.audit-pane-pending.svelte-1h5puht{align-items:center;gap:8px;display:flex}.audit-pane-streaming.svelte-1h5puht{letter-spacing:.02em;color:var(--text-muted);align-items:center;gap:7px;padding-left:4px;font-size:11px;font-weight:600;display:inline-flex}.audit-size-warning.svelte-1h5puht{color:var(--warning);margin-top:8px;font-size:12px}.audit-request-response.svelte-1bc5vi5{margin-top:4px}.audit-pane-tablist.svelte-1bc5vi5{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;display:flex}.audit-pane-tab.svelte-1bc5vi5{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-bottom-color:#0000;border-radius:6px 6px 0 0;align-items:center;gap:8px;margin-bottom:-1px;margin-right:12px;padding:8px 12px;font-family:inherit;font-size:13px;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.audit-pane-tab.svelte-1bc5vi5:not(.audit-pane-tab-active):hover{color:var(--text);background:color-mix(in srgb, var(--text) 5%, transparent)}.audit-pane-tab-active.svelte-1bc5vi5{color:var(--text);border-color:var(--border);border-bottom-color:var(--bg);background:var(--bg)}.audit-pane-tab-label.svelte-1bc5vi5{font-weight:600}.audit-pane-tabpanel.svelte-1bc5vi5{min-width:0}.audit-pane-icon.svelte-1bc5vi5{color:var(--text-muted);flex:none;align-items:center;display:inline-flex}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-request{color:var(--accent)}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-response{color:var(--info)}.audit-pane-icon.svelte-1bc5vi5 svg{width:16px;height:16px}.audit-pane-seq.svelte-1bc5vi5{color:var(--text-muted);font-size:12px}.audit-pane-kind.svelte-1bc5vi5{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-primary{color:var(--text-muted)}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-failover{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-retry{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 30%, var(--border))}.audit-savings-pill.svelte-1bc5vi5{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);color:var(--prompt-cache-color);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;font-weight:700;display:inline-flex}.audit-step-pill.svelte-1bc5vi5{border:1px dashed var(--border);color:var(--text-muted);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;display:inline-flex}.audit-entry.svelte-cmjgwr{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);transition:background .12s ease-out,border-color .12s ease-out;overflow:hidden}.audit-entry-interactions-open.svelte-cmjgwr{border-width:2px;border-color:color-mix(in srgb, var(--prompt-cache-color) 38%, var(--border))}.audit-entry-details.svelte-cmjgwr{border-top:1px solid var(--border);background:var(--bg-surface);padding:12px;overflow:hidden}.audit-thread.svelte-pneivi{flex-direction:column;gap:10px;display:flex}.audit-thread-children.svelte-pneivi{flex-direction:column;gap:10px;margin-left:26px;display:flex}.audit-thread-child.svelte-pneivi,.audit-thread-loading.svelte-pneivi{position:relative}.audit-thread-child.svelte-pneivi:before,.audit-thread-loading.svelte-pneivi:before{content:"";border-left:1px solid var(--border);border-bottom:1px solid var(--border);pointer-events:none;border-bottom-left-radius:6px;width:12px;height:calc(50% + 10px);position:absolute;top:-10px;left:-14px}.audit-thread-child.svelte-pneivi:not(:last-child):after{content:"";border-left:1px solid var(--border);pointer-events:none;position:absolute;top:50%;bottom:-10px;left:-14px}.audit-thread-loading.svelte-pneivi{padding:6px 0 6px 4px;display:flex}.audit-thread-more.svelte-pneivi{color:var(--text-muted);padding-left:4px;font-size:12px}.audit-log-loading.svelte-1nhcbov{justify-content:center;padding:2rem 0;display:flex}.audit-list-toolbar.svelte-1nhcbov{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.audit-list-toolbar-left.svelte-1nhcbov{flex-wrap:wrap;align-items:center;gap:16px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov input:where(.svelte-1nhcbov){accent-color:var(--accent);cursor:pointer}.audit-retention-note.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-retention-highlight.svelte-1nhcbov{color:var(--text);font-weight:600}.audit-log-section.svelte-1nhcbov{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.audit-log-summary.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-log-list.svelte-1nhcbov{flex-direction:column;gap:10px;display:flex}.settings-guardrails-list.svelte-1bvx512{min-width:0}.settings-guardrail-type-pill.svelte-1bvx512{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.settings-guardrail-summary.svelte-1bvx512{color:var(--text);font-size:14px;line-height:1.45}.settings-guardrail-description.svelte-1bvx512{color:var(--text-muted);margin-top:6px;font-size:12px}.model-editor.guardrails-editor-wide{width:min(1080px,100%)}.form-field-fieldset.svelte-s964s3{border:0;min-inline-size:0;margin:0;padding:0}.form-field-legend.svelte-s964s3{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;padding:0;font-size:12px;font-weight:600}.model-editor.settings-guardrails-editor{min-width:0}.settings-guardrails-hero.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));border-radius:var(--radius);background:radial-gradient(circle at top right, color-mix(in srgb, var(--accent-hover) 18%, transparent), transparent 42%), radial-gradient(circle at bottom left, color-mix(in srgb, var(--accent) 16%, transparent), transparent 40%), var(--bg-surface);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding:24px;display:flex}.settings-kicker.svelte-5x874c{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.settings-guardrails-hero.svelte-5x874c h3{margin-bottom:8px}.settings-guardrails-hero.svelte-5x874c p:last-child{color:var(--text-muted);margin-bottom:0}.settings-guardrails-meta.svelte-5x874c{gap:12px;display:flex}.settings-guardrails-stat.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));background:color-mix(in srgb, var(--bg-surface-hover) 76%, transparent);border-radius:16px;min-width:110px;padding:14px 16px}.settings-guardrails-stat-label.svelte-5x874c{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.settings-guardrails-stat.svelte-5x874c strong{font-size:24px;font-weight:700}@media (width<=768px){.settings-guardrails-hero.svelte-5x874c{flex-direction:column}.settings-guardrails-meta.svelte-5x874c{width:100%}.settings-guardrails-stat.svelte-5x874c{flex:1 1 0}}.mcp-catalog-section.svelte-1xqrzco{margin-top:18px}.mcp-catalog-section.svelte-1xqrzco .form-field-label{margin-bottom:8px}.mcp-catalog-subtitle.svelte-1xqrzco{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mcp-catalog-list.svelte-1xqrzco{flex-direction:column;gap:12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.mcp-catalog-item-name.svelte-1xqrzco{overflow-wrap:anywhere;font-size:13px}.mcp-catalog-item-aggregated.svelte-1xqrzco{color:var(--text-muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px}.mcp-catalog-item-description.svelte-1xqrzco{color:var(--text-muted);margin:2px 0 0;font-size:13px;font-weight:400}.mcp-server-sub-counts.svelte-ah8nrt{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:280px;margin-top:4px;font-size:11px;overflow:hidden}.mcp-server-table-wrapper.svelte-ah8nrt{overflow-x:auto}.mcp-server-table-wrapper.svelte-ah8nrt .data-table{min-width:860px}.auth-key-form-fields.svelte-1gswxes>.form-field{margin-bottom:4px}.auth-key-dashboard-toggle.svelte-1gswxes{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-key-issued-banner.svelte-1gswxes{background:color-mix(in srgb, var(--success) 8%, var(--bg-surface));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));border-radius:var(--radius);margin-bottom:20px;padding:16px}.auth-key-issued-warning.svelte-1gswxes{color:color-mix(in srgb, var(--success) 80%, var(--text));margin-bottom:12px;font-size:13px;font-weight:600}.auth-key-issued-value-row.svelte-1gswxes{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.auth-key-issued-token.svelte-1gswxes{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;flex:1;min-width:0;padding:8px 12px;font-size:13px;overflow-x:auto}.usage-label-chip-static.svelte-nf0ldb,.usage-label-chip-static.svelte-nf0ldb:hover{cursor:default;background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.auth-key-redacted.svelte-nf0ldb{color:var(--text-muted);font-size:13px}.auth-key-actions-cell.svelte-nf0ldb{white-space:nowrap}.auth-key-row-deactivated.svelte-nf0ldb td:where(.svelte-nf0ldb):not(.auth-key-actions-cell){opacity:.55}.auth-key-expiry.svelte-nf0ldb{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.auth-key-th-help.svelte-nf0ldb{cursor:help;align-items:center;gap:4px;display:inline-flex}.auth-key-row-actions.svelte-nf0ldb{align-items:center;gap:6px;display:inline-flex}.auth-keys-loading.svelte-1xpdcqx{justify-content:center;align-items:center;padding:32px 0;display:flex}.auth-keys-help-notice.svelte-1xpdcqx{margin-bottom:20px}.auth-keys-inactive-toggle.svelte-1xpdcqx{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-keys-inactive-toggle.svelte-1xpdcqx input:where(.svelte-1xpdcqx){width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.settings-panel-header.svelte-15kyv2y{justify-content:space-between;gap:16px;margin-bottom:20px;display:flex}.settings-panel-header.svelte-15kyv2y h3{font-size:18px}.settings-form-grid.svelte-15kyv2y{grid-template-columns:minmax(280px,420px);gap:16px;display:grid}@media (width<=768px){.settings-form-grid.svelte-15kyv2y{grid-template-columns:1fr}}.budget-settings-section.svelte-a747ys{width:100%}.budget-settings-grid.svelte-a747ys{gap:12px;display:grid}.budget-settings-row.svelte-a747ys{grid-template-columns:96px minmax(170px,1fr) minmax(110px,140px) minmax(110px,140px) minmax(220px,280px);align-items:start;gap:12px;display:grid}.budget-settings-period.svelte-a747ys{color:var(--text);letter-spacing:0;text-transform:uppercase;align-self:end;min-height:35px;padding-bottom:9px;font-size:12px;font-weight:700}.budget-settings-spacer.svelte-a747ys{min-height:1px}.budget-settings-help-cell.svelte-a747ys{align-self:start;min-width:0;min-height:35px}.budget-settings-help-cell.svelte-a747ys .inline-help-copy{max-width:280px;margin:22px 0 0;font-size:12px;line-height:1.35}@media (width<=768px){.budget-settings-grid.svelte-a747ys,.budget-settings-row.svelte-a747ys{grid-template-columns:1fr}.budget-settings-spacer.svelte-a747ys{display:none}}.tagging-settings-grid.svelte-18e8yem{gap:12px;display:grid}.tagging-settings-row.svelte-18e8yem{grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) minmax(80px,110px) auto minmax(90px,auto);align-items:end;gap:12px;display:grid}.tagging-do-not-pass.svelte-18e8yem{color:var(--text);white-space:nowrap;align-items:center;gap:6px;min-height:35px;font-size:13px;display:flex}.tagging-row-trailer.svelte-18e8yem{align-items:center;gap:8px;min-height:35px;display:flex}.tagging-settings-empty.svelte-18e8yem{color:var(--text-muted);margin:0}.tagging-settings-actions.svelte-18e8yem{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.tagging-settings-row.svelte-18e8yem{grid-template-columns:1fr;align-items:stretch}.tagging-settings-actions.svelte-18e8yem,.tagging-settings-actions.svelte-18e8yem .btn{width:100%}}.pricing-recalculate-section.svelte-1cdxzyk{width:100%}.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:minmax(220px,320px) minmax(260px,360px);justify-content:start;align-items:end;gap:12px;width:100%;display:grid}.pricing-recalculate-date-field.svelte-1cdxzyk{grid-column:1/-1;width:100%;max-width:320px}.pricing-recalculate-filter-field.svelte-1cdxzyk{width:100%;max-width:360px}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker{width:100%}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-trigger{justify-content:space-between;width:100%}.pricing-recalculate-actions.svelte-1cdxzyk{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:1fr}.pricing-recalculate-actions.svelte-1cdxzyk,.pricing-recalculate-actions.svelte-1cdxzyk .btn{width:100%}}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-dropdown{inset:auto auto calc(100% + 6px) 0}.settings-refresh-icon.svelte-yeq2mp{flex:0 0 16px;width:16px;height:16px}.runtime-refresh-steps.svelte-yeq2mp{color:var(--text-muted);gap:8px;margin-top:14px;padding-left:18px;font-size:13px;display:grid}.runtime-refresh-step.is-ok.svelte-yeq2mp{color:var(--success)}.runtime-refresh-step.is-partial.svelte-yeq2mp{color:var(--warning)}.runtime-refresh-step.is-failed.svelte-yeq2mp{color:var(--danger)}.runtime-settings-copy.svelte-tldbe5{min-width:180px}.runtime-settings-fields.svelte-tldbe5{gap:16px;width:min(560px,100%);display:grid}.runtime-setting-row.svelte-tldbe5{grid-template-columns:minmax(220px,1fr) 180px;align-items:center;gap:20px;display:grid}.runtime-setting-description.svelte-tldbe5,.runtime-setting-managed.svelte-tldbe5{color:var(--text-muted);margin:4px 0 0;font-size:12px}.runtime-setting-managed.svelte-tldbe5{color:var(--warning)}@media (width<=720px){.runtime-setting-row.svelte-tldbe5{grid-template-columns:1fr;gap:8px}}.settings-version-footer.svelte-3naq7u{color:var(--text-muted);text-align:right;margin-top:24px;font-size:12px}.chat-message.svelte-12s99s5{border:1px solid var(--border);background:var(--bg);border-radius:10px;max-width:94%;padding:10px 42px 10px 12px;position:relative;overflow:hidden}.chat-message.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.chat-message.is-after-anchor.svelte-12s99s5,.chat-function-note.is-after-anchor.svelte-12s99s5{opacity:.46}.chat-message.role-user.svelte-12s99s5{align-self:flex-start}.chat-message.role-assistant.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 18%, var(--bg));align-self:flex-end}.chat-message.role-system.svelte-12s99s5{background:color-mix(in srgb, var(--warning) 10%, var(--bg));align-self:center;width:100%;max-width:100%}.chat-message.role-error.svelte-12s99s5{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg));align-self:flex-end}.chat-message.role-error.svelte-12s99s5 .chat-role:where(.svelte-12s99s5){color:color-mix(in srgb, var(--danger) 75%, var(--text-muted))}.chat-message-meta.svelte-12s99s5{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.chat-role.svelte-12s99s5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:12px;font-weight:700}.chat-time.svelte-12s99s5{color:var(--text-muted);white-space:nowrap;font-size:11px}.chat-content.svelte-12s99s5{white-space:pre-wrap;overflow-wrap:break-word;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.5}.chat-message.svelte-12s99s5:before,.chat-function-note.svelte-12s99s5:before{content:"";z-index:0;pointer-events:none;opacity:var(--prompt-cache-visibility);background:linear-gradient(90deg, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) 0, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) var(--prompt-cache-fill), transparent var(--prompt-cache-fill), transparent 100%);transition:opacity .15s;position:absolute;inset:0}.chat-message.svelte-12s99s5>:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5>:where(.svelte-12s99s5){z-index:1;position:relative}.chat-message-copy.svelte-12s99s5{z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 92%, transparent);width:26px;height:26px;color:var(--text-muted);opacity:0;pointer-events:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:opacity .12s,transform .12s,color .12s,background-color .12s,border-color .12s;display:inline-flex;position:absolute;bottom:6px;right:6px;transform:translateY(3px)}.chat-message.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-message.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-message-copy.is-copied.svelte-12s99s5{opacity:1;pointer-events:auto;transform:translateY(0)}.chat-message-copy.svelte-12s99s5:hover{color:var(--text);background:var(--bg-surface-hover)}.chat-message-copy.svelte-12s99s5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.chat-message-copy.is-copied.svelte-12s99s5{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border))}.chat-tool-calls.svelte-12s99s5{border-top:1px solid var(--border);flex-direction:column;gap:3px;margin-top:8px;padding-top:6px;display:flex}.chat-tool-call.svelte-12s99s5{color:var(--text-muted);border-radius:5px;min-width:0;padding:3px 5px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;position:relative;overflow:hidden}.chat-tool-call-summary.svelte-12s99s5{cursor:pointer;align-items:baseline;gap:6px;min-width:0;display:flex}.chat-tool-call-preview.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;opacity:.8;flex:1;min-width:0;overflow:hidden}.chat-tool-call-arguments.svelte-12s99s5{background:color-mix(in srgb, var(--border) 45%, transparent);color:var(--text);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;max-height:200px;margin-top:5px;padding:6px 8px;line-height:1.45;overflow:auto}.chat-tool-call-name.svelte-12s99s5:before{content:"⚡"}.chat-function-note.svelte-12s99s5{max-width:94%;color:var(--text-muted);background:color-mix(in srgb, var(--border) 40%, transparent);border:1px dashed var(--border);border-radius:12px;align-self:center;padding:4px 42px 4px 12px;font-size:12px;position:relative;overflow:hidden}.chat-function-note.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-inner.svelte-12s99s5{align-items:baseline;gap:6px;min-height:26px;display:flex;overflow:hidden}.chat-function-note-inner.svelte-12s99s5 .chat-time:where(.svelte-12s99s5){flex-shrink:0;margin-left:auto}.chat-function-call-id.svelte-12s99s5{color:var(--text-muted);overflow-wrap:anywhere;margin-top:6px;font-size:10px}.chat-function-label.svelte-12s99s5{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}.chat-function-label.svelte-12s99s5:before{content:"▸";margin-right:4px;transition:transform .12s;display:inline-block}.chat-function-note-details[open].svelte-12s99s5 .chat-function-label:where(.svelte-12s99s5):before{transform:rotate(90deg)}.chat-function-detail.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;overflow:hidden}.chat-function-note.role-function-call.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));align-self:flex-end}.chat-function-note.role-function-result.svelte-12s99s5{background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 30%, var(--border));align-self:flex-start}.chat-function-note.is-anchor.role-function-call.svelte-12s99s5,.chat-function-note.is-anchor.role-function-result.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-details.svelte-12s99s5{width:100%}.chat-function-note-details.svelte-12s99s5>summary{cursor:pointer;list-style:none}.chat-function-note-details.svelte-12s99s5>summary::-webkit-details-marker{display:none}.chat-function-expanded.svelte-12s99s5{border-top:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);max-height:200px;margin-top:6px;padding-top:6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;overflow:auto}@media (width<=768px){.chat-message.svelte-12s99s5{max-width:100%}}@media (hover:none){.chat-message-copy.svelte-12s99s5{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.chat-message-copy.svelte-12s99s5{transition:none}}.conversation-drawer.svelte-ssrzja{width:var(--conversation-panel-width);background:var(--bg-surface);border-left:1px solid var(--border);z-index:12;flex-direction:column;flex:none;min-width:0;height:100vh;display:flex;position:sticky;top:0}.conversation-drawer-fullscreen.svelte-ssrzja{z-index:70;border-left:0;flex-basis:auto;width:100vw;height:100dvh;position:fixed;inset:0}.conversation-drawer-fullscreen.svelte-ssrzja .conversation-resize-handle:where(.svelte-ssrzja){display:none}.conversation-resize-handle.svelte-ssrzja{z-index:2;cursor:col-resize;touch-action:none;background:0 0;border:0;border-radius:0;outline:none;width:10px;padding:0;position:absolute;top:0;bottom:0;left:-5px}.conversation-resize-handle.svelte-ssrzja:after{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:4px}.conversation-resize-handle.svelte-ssrzja:hover:after,.conversation-resize-handle.svelte-ssrzja:focus-visible:after{background:color-mix(in srgb, var(--accent) 70%, var(--border))}body.conversation-panel-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.conversation-drawer-header.svelte-ssrzja{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.conversation-drawer-header-actions.svelte-ssrzja{align-items:center;gap:6px;display:flex}.conversation-drawer-title.svelte-ssrzja{align-items:center;gap:9px;min-width:0;display:flex}.conversation-follow-status.svelte-ssrzja{justify-content:center;align-items:center;margin:-4px;padding:4px;display:inline-flex}.conversation-drawer-header.svelte-ssrzja h3{font-size:16px;font-weight:700}#interactions-drawer-content.svelte-ssrzja{position:relative}.conversation-message-navigation.svelte-ssrzja{z-index:4;opacity:0;pointer-events:none;flex-direction:column;gap:4px;width:max-content;height:0;margin-left:auto;margin-right:12px;transition:opacity .12s,transform .12s;display:flex;position:sticky;top:12px;transform:translateY(-3px)}#interactions-drawer-content.svelte-ssrzja:hover .conversation-message-navigation:where(.svelte-ssrzja),.conversation-message-navigation.svelte-ssrzja:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja){border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 94%, transparent);width:30px;height:30px;min-height:30px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 1px 3px #00000029}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):hover{color:var(--text);background:var(--bg-surface-hover)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.conversation-drawer-footer.svelte-ssrzja{border-top:1px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;gap:9px;padding:10px 16px;display:flex}.conversation-composer.svelte-ssrzja{flex-direction:column;gap:7px;display:flex}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja){resize:vertical;border:1px solid var(--border);background:var(--bg);width:100%;min-height:50px;color:var(--text);font:inherit;border-radius:7px;padding:9px 10px;line-height:1.45}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):focus{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:1px}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):disabled{opacity:.65}.conversation-composer-actions.svelte-ssrzja{justify-content:space-between;align-items:center;gap:10px;display:flex}.conversation-endpoint.svelte-ssrzja{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:11px;overflow:hidden}.conversation-send-error.svelte-ssrzja{color:var(--danger);font-size:12px}.conversation-truncated.svelte-ssrzja{color:var(--text-muted);padding:0 16px 14px;font-size:12px}.conversation-cache-legend.svelte-ssrzja{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin:12px 16px 0;padding:0;font-family:inherit;font-size:11px;display:flex}.conversation-cache-legend.svelte-ssrzja:hover{color:var(--text)}.conversation-cache-legend.svelte-ssrzja:focus-visible{outline:2px solid color-mix(in srgb, var(--prompt-cache-color) 35%, transparent);outline-offset:3px;border-radius:3px}.conversation-cache-switch.svelte-ssrzja{background:color-mix(in srgb, var(--text-muted) 30%, var(--border));border-radius:999px;flex:none;width:28px;height:16px;transition:background-color .15s;position:relative}.conversation-cache-switch.is-active.svelte-ssrzja{background:color-mix(in srgb, var(--prompt-cache-color) 80%, var(--bg))}.conversation-cache-switch-thumb.svelte-ssrzja{background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000003d}.conversation-cache-switch.is-active.svelte-ssrzja .conversation-cache-switch-thumb:where(.svelte-ssrzja){transform:translate(12px)}.conversation-cache-estimate.svelte-ssrzja{opacity:.75}.conversation-thread.svelte-ssrzja{flex-direction:column;gap:10px;padding:14px 16px 20px;display:flex}.conversation-live-status.svelte-ssrzja{color:var(--text-muted);align-items:center;gap:10px;padding:4px 16px 20px;font-size:13px;display:flex}@media (hover:none){.conversation-message-navigation.svelte-ssrzja{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.conversation-message-navigation.svelte-ssrzja{transition:none}} +:root{--bg:#111110;--bg-surface:#1e1d1c;--bg-surface-hover:#2a2420;--border:#2a2826;--text:#e8e0d6;--text-muted:#9a918a;--accent:#b8956e;--accent-hover:#d4b896;--success:#34d399;--info:#3b82f6;--warning:#f59e0b;--danger:#ef4444;--prompt-cache-color:color-mix(in srgb, var(--info) 72%, #fff);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 24%, var(--bg-surface));--cache-meter-uncached:var(--token-input);--cache-meter-local:var(--token-local);--cache-meter-prompt:var(--token-prompt);--token-input:#c0824a;--token-output:#ddb27a;--token-prompt:color-mix(in srgb, var(--info) 60%, transparent);--token-local:color-mix(in srgb, var(--info) 20%, transparent);--sidebar-width:240px;--radius:8px;--chart-grid:#2a2826;--chart-text:#9a918a;--chart-day-marker:var(--text);--chart-tooltip-bg:#1e1d1c;--chart-tooltip-border:#2a2826;--chart-tooltip-text:#e8e0d6;--cal-level-0:#161b22;--cal-level-1:color-mix(in srgb, var(--info) 15%, var(--bg-surface));--cal-level-2:color-mix(in srgb, var(--info) 25%, var(--bg-surface));--cal-level-3:color-mix(in srgb, var(--info) 36%, var(--bg-surface));--cal-level-4:color-mix(in srgb, var(--info) 48%, var(--bg-surface));--cal-level-5:color-mix(in srgb, var(--info) 60%, var(--bg-surface));--cal-level-6:color-mix(in srgb, var(--info) 73%, var(--bg-surface));--cal-level-7:color-mix(in srgb, var(--info) 87%, var(--bg-surface));--cal-level-8:var(--info);--cal-level-9:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-10:color-mix(in srgb, var(--info) 62%, #fff);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface-hover) 86%, #fff 14%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface-hover) 72%, #fff 28%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}body.dashboard-modal-open{overflow:hidden}.app{height:100vh;min-height:0;display:flex;overflow:hidden}.badge{background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.auth-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:min(440px,100%);padding:22px;box-shadow:0 24px 70px #00000061}.auth-dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.auth-dialog h2{margin-top:2px;font-size:22px;line-height:1.2}.auth-dialog-close{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.auth-dialog-close:hover{color:var(--text);background:var(--bg-surface-hover)}.auth-dialog-close:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-hint{color:var(--text-muted);font-size:13px}.auth-dialog-error{color:var(--danger);font-size:13px;font-weight:600}.auth-dialog-form{gap:10px;margin-top:18px;display:grid}.auth-dialog-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.content{-webkit-overflow-scrolling:touch;flex:1 1 0;width:100%;min-width:0;min-height:0;padding:32px;transition:width .2s;overflow-y:auto;container:dashboard-content/inline-size}.content>*{width:100%;max-width:1336px;margin-inline:auto}body.dashboard-modal-open .content{overflow-y:hidden}.content.interactions-open>*{max-width:none}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h2{letter-spacing:-.3px;font-size:22px;font-weight:700}.page-header-controls{align-items:center;gap:12px;display:flex}.page-with-sticky-date{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:12px;display:grid}.page-with-sticky-date>*{grid-column:1/-1}.page-with-sticky-date>.date-range-page-header{grid-column:1}.page-with-sticky-date>.sticky-date-range{z-index:8;grid-column:2;justify-self:end;position:sticky;top:16px}.model-count{color:var(--text-muted);font-size:14px}.provider-status-section{margin-top:28px;scroll-margin-top:24px}.cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px;display:grid}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:600}.card-value{letter-spacing:-.5px;font-size:28px;font-weight:700}.cache-meter{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:28px;padding:24px}.chart-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.chart-container h3{margin-bottom:16px;font-size:16px;font-weight:600}.chart-container-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.chart-container-header h3{margin-bottom:0}.chart-wrapper{height:210px;position:relative}.live-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.live-dot.is-streaming{background:var(--success);position:relative}.live-dot.is-streaming:after{content:"";z-index:-1;background:color-mix(in srgb, var(--success) 55%, transparent);border-radius:50%;animation:1.8s ease-out infinite live-dot-pulse;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.live-dot.is-streaming:after{opacity:0;animation:none}}@keyframes live-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(2.5)}to{opacity:0;transform:scale(2.5)}}.alert{border-radius:var(--radius);margin-bottom:20px;padding:12px 16px;font-size:14px}.alert-warning{color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b4d}.table-toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.table-toolbar-main{flex:1;min-width:0}.table-toolbar-actions{justify-content:flex-end;margin-left:auto;display:flex}input:is([type=text],[type=date],[type=number]){background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:8px 12px;font-family:inherit;font-size:13px}input:is([type=text],[type=date],[type=number]):focus{border-color:var(--accent)}input:is([type=text],[type=date],[type=number]):disabled,textarea:disabled,.form-input:disabled{opacity:.6;cursor:not-allowed}.table-wrapper{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;font-weight:600}.data-table th.model-actions-header{text-align:right;white-space:nowrap;width:1%;min-width:156px}.data-table td{border-bottom:1px solid var(--border);padding:10px 16px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-surface-hover)}.mono{font-family:SF Mono,Menlo,Consolas,monospace}.font-size-md{font-size:13px}.col-price,.data-table th.col-price{text-align:right}td.col-price{color:var(--text-muted);white-space:nowrap;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.provider-badge{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.empty-state{text-align:center;color:var(--text-muted);padding:48px 0;font-size:14px}.empty-state-icon{width:auto;height:auto;max-height:160px;color:var(--text-muted);margin:0 auto;display:block}.empty-state-icon text{fill:var(--text-muted);font-family:inherit;font-weight:600}.chart-empty-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chart-empty-overlay .empty-state-icon{width:auto;max-width:90%;height:auto;max-height:195px}.loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.table-action-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.table-action-btn:hover:not(:disabled){background:var(--bg-surface-hover)}.table-action-btn:disabled{opacity:.45;cursor:default}.table-action-btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.table-action-btn-active{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 38%, var(--border))}.table-action-btn-active:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, var(--bg-surface-hover))}.table-action-btn-failover-active{color:var(--info);background:color-mix(in srgb, var(--cache-meter-prompt) 35%, var(--bg));border-color:color-mix(in srgb, var(--info) 45%, var(--border));position:relative}.table-action-btn-failover-active:hover:not(:disabled){background:color-mix(in srgb, var(--cache-meter-prompt) 45%, var(--bg-surface-hover))}.table-icon-btn{border-radius:6px;gap:0;width:32px;min-width:32px;height:32px;padding:0}.table-icon-btn.table-action-btn-active{position:relative}.table-icon-btn.table-action-btn-active:after{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-btn.table-action-btn-failover-active:after{content:"";background:var(--info);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-svg{flex-shrink:0;width:14px;height:14px}.model-editor{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:24px}.alias-kind-badge{border:1px solid var(--border);background:var(--bg);min-height:24px;color:var(--accent);letter-spacing:.2px;text-transform:uppercase;border-color:color-mix(in srgb, var(--accent) 55%, var(--border));border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.form h3{font-size:20px;font-weight:700}.form-kicker,.form-hint{color:var(--text-muted);font-size:13px}.alias-actions-cell{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.model-list-actions{white-space:nowrap;flex-wrap:nowrap}.model-list-actions .table-icon-btn{flex:0 0 32px}.model-list-actions .alias-toggle{flex:none}.alias-toggle{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-family:inherit;font-size:12px;transition:all .15s;display:inline-flex}.alias-toggle:hover:not(:disabled){background:var(--bg-surface-hover)}.alias-toggle:disabled{opacity:.45;cursor:default}.alias-toggle-track{background:color-mix(in srgb, var(--border) 80%, var(--bg));border-radius:6px;width:34px;height:18px;transition:background .15s;position:relative}.alias-toggle-thumb{background:var(--text-muted);border-radius:6px;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:1px;left:2px}.alias-toggle.enabled{border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.alias-toggle.enabled .alias-toggle-track{background:color-mix(in srgb, var(--success) 55%, var(--bg))}.alias-toggle.enabled .alias-toggle-thumb{background:#fff;transform:translate(14px)}.alias-toggle.restricted{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:color-mix(in srgb, var(--accent) 70%, var(--text))}.alias-toggle.restricted .alias-toggle-track{background:color-mix(in srgb, var(--accent) 55%, var(--bg))}.editor-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.form{flex-direction:column;gap:16px;display:flex}.auth-key-editor{background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg) 18%)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-field{flex-direction:column;gap:8px;display:flex}.form-field-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:12px;font-weight:600;display:inline-block}.vm-target-row{align-items:center;gap:8px;display:flex}.vm-target-row .vm-target-model{flex:auto;min-width:0}.vm-target-row .vm-target-weight{flex:0 0 88px;width:88px}.vm-status-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.vm-status-row .vm-status-toggle{margin-left:auto}.form-error{border:1px solid color-mix(in srgb, var(--danger) 42%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface));color:var(--danger);overflow-wrap:anywhere;margin:0;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.4}.form-error:empty{display:none}.form-field-error{color:var(--danger);overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:1.4}.form-field-required{color:var(--danger);margin-left:3px}:is(input,textarea,select)[aria-invalid=true]{border-color:color-mix(in srgb, var(--danger) 60%, var(--border))}:is(input,textarea,select)[aria-invalid=true]:focus{border-color:var(--danger)}textarea{resize:vertical;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:60px;color:var(--text);outline:none;padding:10px 12px;font-family:inherit;font-size:13px}textarea:focus{border-color:var(--accent)}.form-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:38px;color:var(--text);outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.form-input:focus{border-color:var(--accent)}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.failover-target-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.data-table tr.alias-row.is-valid td{background:var(--alias-row-valid-bg)}.data-table tr.alias-row.is-valid:hover td{background:var(--alias-row-valid-bg-hover)}.data-table tr.alias-row:not(.is-valid) td{background:color-mix(in srgb, var(--accent) 10%, var(--bg-surface))}.data-table tr.alias-row:not(.is-valid):hover td{background:color-mix(in srgb, var(--accent) 16%, var(--bg-surface-hover))}.data-table tr.alias-row.is-disabled td{background:var(--bg-surface);opacity:.58}.data-table tr.alias-row.is-disabled:hover td{background:var(--bg-surface-hover);opacity:.72}.data-table tr.model-access-disabled-row td{background:color-mix(in srgb, var(--danger) 6%, var(--bg-surface))}.data-table tr.model-access-disabled-row:hover td{background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface-hover))}.workflow-section-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-section-head h4{font-size:14px;font-weight:700}.workflow-preview{flex-direction:column;gap:12px;display:flex}.workflow-feature-toggles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.workflow-feature-toggle{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.workflow-feature-toggle input{width:16px;height:16px}.model-chart-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;padding:24px}.model-chart-section h3{margin:0;font-size:16px;font-weight:600}.model-chart-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.bar-chart-wrap{width:100%;height:180px;position:relative}.form-select,.usage-log-select{appearance:none;background-color:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px;outline:none;min-width:140px;padding:8px 34px 8px 12px;font-family:inherit;font-size:13px}.form-select:disabled,.usage-log-select:disabled{cursor:not-allowed;opacity:.6}.form-select:focus,.usage-log-select:focus{border-color:var(--accent)}.form-select{width:100%;min-width:0}.usage-label-chips{flex-wrap:wrap;gap:4px;max-width:280px;display:inline-flex}.usage-label-chip{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg));min-height:20px;color:var(--text);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;padding:1px 9px;font-family:inherit;font-size:11px;font-style:normal;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s;display:inline-flex}.usage-label-chip:hover{background:color-mix(in srgb, var(--label-color,var(--accent)) 26%, var(--bg))}.usage-label-chip.active{background:color-mix(in srgb, var(--label-color,var(--accent)) 32%, var(--bg));border-color:var(--label-color,var(--accent));box-shadow:0 0 0 1px color-mix(in srgb, var(--label-color,var(--accent)) 55%, transparent)}@keyframes audit-live-summary-stripe-blink{0%,to{opacity:.9}50%{opacity:.28}}.audit-status-badge{border:1px solid var(--border);letter-spacing:.2px;background:var(--bg-surface);border-radius:999px;justify-content:center;align-items:center;min-width:46px;height:24px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.audit-status-badge.status-success{color:var(--success);border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.audit-status-badge.status-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.audit-status-badge.status-error{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.audit-status-badge.status-neutral{color:var(--text-muted)}.audit-status-badge.status-unknown{color:var(--text-muted);border-color:color-mix(in srgb, var(--border) 75%, transparent)}.audit-pane{border:1px solid var(--border);background:var(--bg);border-top:0;border-radius:0 0 8px 8px;min-width:0;padding:12px}.audit-pane h5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:11px;font-weight:600}.audit-prompt-cache-pill{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);min-height:20px;color:var(--prompt-cache-color);letter-spacing:.02em;text-transform:none;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.audit-prompt-cache-highlight{color:var(--prompt-cache-color);font-weight:700}.audit-audio{white-space:normal;flex-direction:column;gap:8px;display:flex}.audit-audio-player{width:100%;max-width:420px;height:36px}.audit-audio-meta{color:var(--text-muted);font-size:12px}.audit-audio-empty{align-items:flex-start;padding:4px 0}.audit-audio-icon{font-size:20px;line-height:1}.audit-audio-note{color:var(--text-muted);font-size:12px}.audit-audio-metadata{flex-direction:column;gap:2px;margin-top:4px;font-size:12px;display:flex}.audit-audio-meta-row{gap:8px;display:flex}.audit-audio-meta-key{color:var(--text-muted);min-width:120px}.conversation-body-highlight{border-left:2px solid color-mix(in srgb, var(--accent) 70%, var(--border));background:color-mix(in srgb, var(--accent) 10%, transparent);cursor:pointer;line-height:inherit;border-radius:2px;margin:0 0 0 -2px;padding:0 0 0 2px;display:inline}.conversation-body-highlight:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.conversation-body-highlight.conversation-system{border-left-color:color-mix(in srgb, var(--warning) 70%, var(--border));background:color-mix(in srgb, var(--warning) 10%, transparent)}.conversation-body-highlight.conversation-user{border-left-color:color-mix(in srgb, var(--accent) 75%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent)}.conversation-body-highlight.conversation-assistant{border-left-color:color-mix(in srgb, var(--success) 65%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}#interactions-drawer-content{flex:1;min-height:0;overflow-y:auto}.pagination{justify-content:space-between;align-items:center;padding:12px 0 0;display:flex}.btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 16px;font-family:inherit;font-size:13px;transition:all .15s}.btn:hover:not(:disabled){background:var(--bg-surface-hover)}.btn-primary{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 70%, #000 10%);color:#fff;font-weight:600;box-shadow:0 10px 22px #3b82f62e}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 90%, #fff 10%);border-color:color-mix(in srgb, var(--accent) 78%, #000 12%)}.btn-danger-outline{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:0 0;font-weight:600}.btn-danger-outline:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 75%, var(--border))}.btn-danger{color:#fff;border-color:color-mix(in srgb, var(--danger) 76%, #000 12%);background:var(--danger);box-shadow:0 10px 22px color-mix(in srgb, var(--danger) 20%, transparent);font-weight:600}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 90%, #fff 10%);border-color:color-mix(in srgb, var(--danger) 82%, #000 14%)}.btn-with-icon{justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn-with-icon .table-icon-svg{width:16px;height:16px}.btn:disabled{opacity:.4;cursor:default}.settings-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.inline-help-section{flex-direction:column;gap:2px;display:flex}.inline-help-title-row{align-items:center;gap:10px;display:inline-flex}.inline-help-title-row h2,.inline-help-title-row h3{margin-bottom:0}.inline-help-title-row h2:empty,.inline-help-title-row h3:empty{display:none}.inline-help-toggle{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));width:16px;height:16px;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:color .18s,border-color .18s;display:inline-flex;position:relative}.inline-help-toggle:before{content:"";pointer-events:auto;background:0 0;width:32px;height:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.inline-help-toggle:hover{border-color:color-mix(in srgb, var(--accent) 48%, var(--border));color:var(--text);background:0 0}.inline-help-toggle:active{background:0 0}.inline-help-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.inline-help-toggle-icon{justify-content:center;align-items:center;width:100%;height:100%;padding-bottom:1px;font-size:13px;font-weight:700;line-height:1;transition:transform .52s cubic-bezier(.22,.72,.12,1);display:inline-flex;transform:rotate(0)}.inline-help-copy{max-width:780px;color:var(--text-muted);margin-top:2px;font-size:14px}.settings-select{width:100%}.settings-refresh-section{border-top:1px solid var(--border);justify-items:start;gap:12px;margin-top:24px;padding-top:22px;display:grid}.settings-refresh-section h3{font-size:18px}.settings-refresh-section p{max-width:720px;color:var(--text-muted);font-size:14px;line-height:1.55}.budget-list{gap:10px;padding:10px 0;display:grid}.budget-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;display:grid}.budget-row-main{min-width:0}.budget-row-head{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.budget-scope-value{width:fit-content;max-width:100%;min-height:24px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;justify-self:start;align-items:center;gap:5px;padding:2px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;display:inline-flex;overflow:hidden}.budget-user-path{border:1px solid color-mix(in srgb, var(--accent) 32%, var(--border));background:color-mix(in srgb, var(--accent) 9%, var(--bg))}.budget-label{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.budget-scope-icon{stroke-width:2.2px;opacity:.85;flex:0 0 12px;width:12px;height:12px}.budget-row-meta{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.budget-source{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:999px;padding:2px 7px;font-size:11px}.budget-row-period{justify-content:center;min-width:0;display:flex}.budget-row-controls{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.budget-bars{gap:6px;margin-top:10px;display:grid}.budget-bar-line{grid-template-columns:118px minmax(0,1fr);align-items:center;gap:10px;display:grid}.budget-bar-label{color:var(--text-muted);justify-content:space-between;align-items:center;gap:6px;font-size:11px;line-height:1;display:flex}.budget-bar-percent{font-weight:700}.budget-bar-track{background:color-mix(in srgb, var(--border) 75%, var(--bg));border-radius:999px;height:16px;position:relative;overflow:hidden}.budget-bar-fill{border-radius:inherit;min-width:0;height:100%;transition:width .2s}.budget-bar-fill-usage{background:color-mix(in srgb, var(--success) 82%, var(--accent))}.budget-bar-fill-danger{background:var(--danger)}.budget-bar-text-row{z-index:1;pointer-events:none;color:var(--text);position:absolute;inset:0}.budget-bar-text{text-overflow:ellipsis;white-space:nowrap;max-width:min(44%,190px);font-size:11px;font-weight:700;line-height:12px;position:absolute;top:50%;overflow:hidden}.budget-bar-text-center{max-width:min(46%,240px);left:50%;transform:translate(-50%,-50%)}.budget-bar-text-end{text-align:right;max-width:min(34%,180px);right:8px;transform:translateY(-50%)}.budget-period-label{border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.budget-period-icon{stroke-width:2.2px;flex:0 0 12px;width:12px;height:12px}.budget-period-label-monthly{border-color:color-mix(in srgb, #30302c 62%, var(--border));background:color-mix(in srgb, #30302c 12%, var(--bg));color:color-mix(in srgb, #30302c 34%, var(--text) 66%)}.budget-period-label-weekly{border-color:color-mix(in srgb, #68765c 62%, var(--border));background:color-mix(in srgb, #68765c 12%, var(--bg));color:color-mix(in srgb, #68765c 34%, var(--text) 66%)}.budget-period-label-daily{border-color:color-mix(in srgb, #b5652d 62%, var(--border));background:color-mix(in srgb, #b5652d 12%, var(--bg));color:color-mix(in srgb, #b5652d 34%, var(--text) 66%)}.budget-period-label-hourly{border-color:color-mix(in srgb, #783f22 62%, var(--border));background:color-mix(in srgb, #783f22 12%, var(--bg));color:color-mix(in srgb, #783f22 34%, var(--text) 66%)}.budget-period-label-custom{border-style:dashed;border-color:color-mix(in srgb, #bfa584 68%, var(--border));background:color-mix(in srgb, #bfa584 16%, var(--bg));color:color-mix(in srgb, #8b6f4f 34%, var(--text) 66%)}[data-theme=light] .budget-period-label-monthly{color:#30302c}[data-theme=light] .budget-period-label-weekly{color:#68765c}[data-theme=light] .budget-period-label-daily{color:#b5652d}[data-theme=light] .budget-period-label-hourly{color:#783f22}[data-theme=light] .budget-period-label-custom{color:#8b6f4f}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .budget-period-label-monthly{color:#30302c}:root:not([data-theme=dark]) .budget-period-label-weekly{color:#68765c}:root:not([data-theme=dark]) .budget-period-label-daily{color:#b5652d}:root:not([data-theme=dark]) .budget-period-label-hourly{color:#783f22}:root:not([data-theme=dark]) .budget-period-label-custom{color:#8b6f4f}}.budget-row-actions{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.budget-action-btn{white-space:nowrap;justify-content:center;gap:0;width:28px;min-width:0;height:28px;padding:0;transition:width .18s,border-color .15s,background .15s,color .15s;overflow:hidden}.budget-action-btn:hover,.budget-action-btn:focus-visible{gap:6px;width:82px;padding:0 9px}.budget-action-label{opacity:0;max-width:0;transition:max-width .18s,opacity .12s;overflow:hidden}.budget-action-btn:hover .budget-action-label,.budget-action-btn:focus-visible .budget-action-label{opacity:1;max-width:58px}.budget-action-btn-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.budget-action-icon{flex:0 0 14px;width:14px;height:14px}.budget-editor{background:color-mix(in srgb, var(--bg-surface) 86%, var(--bg) 14%)}.budget-settings-actions{flex-wrap:wrap;gap:10px;display:flex}.budget-reset-dialog{max-width:460px}.form-action-icon{flex:0 0 16px;width:16px;height:16px}.settings-refresh-alert{margin-top:16px;margin-bottom:0}@media (width<=768px){.badge{display:none}.content{width:100%;margin:0 auto;padding:20px}.auth-dialog{padding:18px}.auth-dialog-actions{flex-direction:column-reverse}.auth-dialog-actions .btn{width:100%}.cards{grid-template-columns:repeat(2,1fr)}.page-header{flex-wrap:wrap;gap:12px}.page-header h2{width:100%}.page-header-controls{flex-wrap:wrap;justify-content:space-between;width:100%}.page-with-sticky-date{grid-template-columns:minmax(0,1fr)}.page-with-sticky-date>.date-range-page-header,.page-with-sticky-date>.sticky-date-range{grid-column:1}.page-with-sticky-date>.date-range-page-header{margin-bottom:12px}.page-with-sticky-date>.sticky-date-range{width:100%;margin-bottom:24px;top:10px}.sticky-date-range .date-picker-trigger{justify-content:space-between;width:100%}.usage-log-select{min-width:0}.budget-row{grid-template-columns:1fr}.budget-row-controls{flex-wrap:wrap}.budget-bar-line{grid-template-columns:1fr;gap:5px}.form-grid,.workflow-feature-toggles{grid-template-columns:1fr}.workflow-section-head{flex-direction:column;align-items:flex-start}.table-toolbar{flex-direction:column;align-items:stretch}.table-toolbar-actions{justify-content:stretch;margin-left:0}.table-toolbar-actions .btn{width:100%}.model-editor{padding:16px}.alias-actions-cell,.editor-header{flex-direction:column;align-items:flex-start}.alias-actions-cell .table-action-btn,.editor-header .table-action-btn{width:100%}.alias-actions-cell .table-icon-btn,.editor-header .table-icon-btn{width:36px}.model-list-actions{flex-flow:row;align-items:center}.model-list-actions .table-action-btn{width:auto}.model-list-actions .table-icon-btn{flex-basis:32px;width:32px}.model-editor .editor-header{flex-direction:row;align-items:flex-start}.model-editor .editor-header>:first-child{flex:1;min-width:0}.model-editor .editor-header .dialog-close-btn{flex:0 0 32px;align-self:flex-start;width:32px;min-width:32px}.settings-panel{padding:18px}.budget-settings-actions,.budget-settings-actions .btn{width:100%}}.workflow-conn{background:color-mix(in srgb, var(--accent) 44%, var(--border));flex:1 1 0;width:auto;min-width:13px;height:2px;position:relative}.workflow-conn:after{content:"";background:color-mix(in srgb, var(--accent) 44%, var(--border));clip-path:polygon(0 0,100% 50%,0 100%);width:7px;height:9px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)}.workflow-node{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-surface);text-align:center;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;min-width:72px;padding:8px 12px;display:flex}.auth-key-description{color:var(--text-muted);max-width:220px;font-size:13px}.auth-key-status-badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.auth-key-status-active{background:color-mix(in srgb, var(--success) 12%, var(--bg));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));color:var(--success)}.auth-key-status-inactive{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));color:var(--danger)}.mcp-server-advanced{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg-surface) 72%, var(--bg) 28%);overflow:hidden}.mcp-server-advanced>summary{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;list-style:none;display:flex}.mcp-server-advanced>summary::-webkit-details-marker{display:none}.mcp-server-advanced>summary:after{border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);content:"";flex:none;width:7px;height:7px;transition:transform .15s;transform:rotate(45deg)}.mcp-server-advanced[open]>summary:after{transform:rotate(225deg)}.mcp-server-advanced-summary-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.mcp-server-advanced-title{font-size:13px;font-weight:600}.mcp-server-advanced-fields{border-top:1px solid var(--border);flex-direction:column;gap:16px;padding:14px;display:flex}.copy-feedback-btn{align-items:center;gap:6px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.rate-limit-pressure-row{background-image:linear-gradient(to right, color-mix(in srgb, var(--success) 16%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-high{background-image:linear-gradient(to right, color-mix(in srgb, var(--warning) 20%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-full{background-image:linear-gradient(to right, color-mix(in srgb, var(--danger) 22%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.table-icon-btn.rate-limit-gauge-inherited{color:var(--accent-strong,var(--accent));background:linear-gradient(to right, color-mix(in srgb, var(--accent) 22%, var(--bg)) 50%, var(--bg) 50%);border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.auth-dialog-input-icon{width:16px;height:16px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.auth-dialog-input-shell:focus-within .auth-dialog-input-icon{color:var(--accent)}.auth-dialog-submit-icon{flex:0 0 16px;width:16px;height:16px}.nav-icon{flex:0 0 18px;width:18px;height:18px}.api-key-open-icon{flex:0 0 15px;width:15px;height:15px}.theme-icon{flex:0 0 14px;width:14px;height:14px}.theme-toggle-mobile .theme-icon{flex-basis:16px;width:16px;height:16px}@media (width<=768px){.sidebar-footer .api-key-open-icon{flex-basis:16px;width:16px;height:16px}}.failover-drafts-loading{min-height:96px}.models-loading-state{top:16px;left:var(--sidebar-width);z-index:110;pointer-events:none;--loading-state-min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);width:fit-content;box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);margin:0 auto;padding:10px 14px;position:fixed;right:0}@media (width<=768px){.models-loading-state{left:60px}}.sidebar.sidebar-collapsed~.content .models-loading-state{left:60px}.alias-create-icon{flex:0 0 16px;width:16px;height:16px}.pricing-override-remove-row{margin-bottom:1px}@media (width<=768px){.pricing-override-remove-row{margin-bottom:0}}.pricing-recalculate-dialog{max-width:480px}.settings-refresh-btn.is-refreshing .settings-refresh-icon{transform-origin:50%;animation:.8s linear infinite loading-spin}.cost-source-icon{width:14px;height:14px;color:var(--success);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.cache-savings-icon{width:14px;height:14px;color:var(--accent);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.theme-toggle.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;margin-bottom:10px;padding:2px;display:inline-flex}.theme-btn.svelte-1keql7b{width:28px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.theme-btn.svelte-1keql7b:hover{color:var(--text)}.theme-btn.active.svelte-1keql7b{background:var(--accent);color:#fff}.theme-btn.svelte-1keql7b:focus-visible,.theme-toggle-mobile.svelte-1keql7b:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.theme-toggle-mobile.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:none}.theme-toggle-mobile.svelte-1keql7b:hover{color:var(--text)}.theme-toggle.is-compact.svelte-1keql7b{display:none}.theme-toggle-mobile.is-compact.svelte-1keql7b{margin:0 auto;display:flex}@media (width<=768px){.theme-toggle.svelte-1keql7b{display:none}.theme-toggle-mobile.svelte-1keql7b{margin:0 auto;display:flex}}.sidebar.svelte-1nwtzae{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);-webkit-overflow-scrolling:touch;z-index:10;flex-direction:column;max-height:100vh;transition:flex-basis .2s,width .2s;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar.sidebar-resizing.svelte-1nwtzae{transition:none}.sidebar-header.svelte-1nwtzae{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:20px;display:flex}.sidebar-logo.svelte-1nwtzae{width:28px;height:28px;color:var(--accent);flex-shrink:0}.sidebar-logo.svelte-1nwtzae svg{width:100%;height:100%}.sidebar-header.svelte-1nwtzae h1{letter-spacing:-.3px;font-size:18px;font-weight:700}.sidebar-nav.svelte-1nwtzae{flex-direction:column;flex:1;gap:4px;padding:12px;display:flex}.nav-item.svelte-1nwtzae{border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item.svelte-1nwtzae:hover{background:var(--bg-surface-hover);color:var(--text)}.nav-item.active.svelte-1nwtzae{background:var(--accent);color:#fff}.nav-label.svelte-1nwtzae{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-footer.svelte-1nwtzae{border-top:1px solid var(--border);padding:16px}.api-key-section.svelte-1nwtzae{gap:8px;display:grid}.external-auth-section.svelte-1nwtzae{gap:8px;margin-top:8px;display:grid}.external-auth-user.svelte-1nwtzae{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.external-auth-user.svelte-1nwtzae span:where(.svelte-1nwtzae){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.api-key-open-btn.svelte-1nwtzae{border:1px solid var(--accent);border-radius:var(--radius);width:100%;color:var(--accent);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.api-key-open-btn.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 78%, var(--text));color:color-mix(in srgb, var(--accent) 78%, var(--text))}.api-key-open-btn.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.sidebar-toggle.svelte-1nwtzae{cursor:ew-resize;z-index:11;background:0 0;border:none;flex:0 0 6px;width:6px;height:100vh;padding:0;transition:background .15s;position:sticky;top:0}.sidebar-toggle.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 15%, transparent)}.sidebar-toggle.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}body.sidebar-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae){justify-content:center;padding:16px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae) h1,.sidebar.sidebar-collapsed.svelte-1nwtzae .badge{display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae){padding:8px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:none}@media (width<=768px){.sidebar.svelte-1nwtzae{flex-basis:60px;width:60px}.sidebar-header.svelte-1nwtzae{justify-content:center;padding:16px}.sidebar-header.svelte-1nwtzae h1{display:none}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar-footer.svelte-1nwtzae{gap:8px;padding:8px;display:grid}.sidebar-footer.svelte-1nwtzae .api-key-section:where(.svelte-1nwtzae),.sidebar-footer.svelte-1nwtzae .external-auth-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .external-auth-user:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae){justify-self:center;width:36px;height:36px;min-height:36px;padding:0}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae) span,.sidebar-toggle.svelte-1nwtzae{display:none}}.dialog-close-btn.svelte-11l1bb5{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.dialog-close-btn.svelte-11l1bb5:hover{color:var(--text);background:var(--bg-surface-hover)}.dialog-close-btn.svelte-11l1bb5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-backdrop.svelte-17e0w4c,.editor-modal-backdrop.svelte-17e0w4c{z-index:80;background:#0000007a;position:fixed;inset:0}.auth-dialog-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.editor-modal-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.editor-modal-shell.svelte-17e0w4c>*{overscroll-behavior:contain;width:min(760px,100%);max-height:min(100vh - 40px,960px);margin:0;overflow:auto;box-shadow:0 24px 70px #00000061}@media (width<=768px){.auth-dialog-shell.svelte-17e0w4c,.editor-modal-shell.svelte-17e0w4c{align-items:end;padding:12px}.editor-modal-shell.svelte-17e0w4c>*{max-height:calc(100vh - 24px)}}.external-login-btn.svelte-1dsu6u0{justify-content:center;width:100%;text-decoration:none}.auth-dialog-separator.svelte-1dsu6u0{color:var(--text-muted);align-items:center;gap:10px;font-size:12px;display:flex}.auth-dialog-separator.svelte-1dsu6u0:before,.auth-dialog-separator.svelte-1dsu6u0:after{content:"";border-top:1px solid var(--border);flex:1}.auth-dialog-input-shell.svelte-1dsu6u0{position:relative}.auth-dialog-input.svelte-1dsu6u0{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:11px 12px 11px 38px;font-family:inherit;font-size:14px}.auth-dialog-input.svelte-1dsu6u0:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.flash-region.svelte-1i257xg{top:16px;left:var(--sidebar-width);z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;right:0}.sidebar.sidebar-collapsed~.flash-region.svelte-1i257xg{left:60px}@media (width<=768px){.flash-region.svelte-1i257xg{left:60px}}.flash-toast.svelte-1i257xg{border-radius:var(--radius);pointer-events:auto;align-items:flex-start;gap:10px;width:max-content;max-width:min(480px,100% - 32px);padding:12px 12px 12px 16px;font-size:14px;animation:.9s ease-out svelte-1i257xg-flash-toast-glow;display:flex;box-shadow:0 10px 30px #00000059}@keyframes svelte-1i257xg-flash-toast-glow{0%{box-shadow:0 0 0 4px color-mix(in srgb, currentColor 45%, transparent), 0 10px 30px #00000059}to{box-shadow:0 0 0 4px #0000,0 10px 30px #00000059}}@media (prefers-reduced-motion:reduce){.flash-toast.svelte-1i257xg{animation:none}}.flash-toast-success.svelte-1i257xg{background:color-mix(in srgb, var(--success) 14%, var(--bg-surface));color:var(--success);border:1px solid #34d39959}.flash-toast-error.svelte-1i257xg{background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--warning);border:1px solid #f59e0b66}.flash-toast-text.svelte-1i257xg{overflow-wrap:anywhere;flex:1;min-width:0}.flash-toast-dismiss.svelte-1i257xg{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;flex-shrink:0;padding:0 2px;font-size:18px;line-height:1}.flash-toast-dismiss.svelte-1i257xg:hover{opacity:1}.demo-mode-banner.svelte-1s3mcn8{border:1px solid color-mix(in srgb, var(--warning) 55%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--text);box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:grid}.demo-mode-banner-icon.svelte-1s3mcn8{width:20px;height:20px;color:var(--warning);flex:0 0 20px}.demo-mode-banner-copy.svelte-1s3mcn8{align-items:baseline;gap:8px;min-width:0;font-size:13px;display:flex}.demo-mode-banner.svelte-1s3mcn8 strong{color:var(--warning);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;font-size:12px}.demo-mode-banner-links.svelte-1s3mcn8{justify-content:flex-end;align-items:center;gap:6px;display:flex}.demo-mode-banner-links.svelte-1s3mcn8 a{border:1px solid color-mix(in srgb, var(--warning) 42%, var(--border));border-radius:var(--radius);min-height:28px;color:var(--text);white-space:nowrap;align-items:center;padding:4px 8px;font-size:12px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.demo-mode-banner-links.svelte-1s3mcn8 a:hover{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 16%, transparent);color:var(--text)}.demo-mode-banner-links.svelte-1s3mcn8 a:focus-visible{outline:2px solid color-mix(in srgb, var(--warning) 42%, transparent);outline-offset:2px}@media (width<=768px){.demo-mode-banner.svelte-1s3mcn8{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.demo-mode-banner-copy.svelte-1s3mcn8{gap:2px;display:grid}.demo-mode-banner-links.svelte-1s3mcn8{flex-wrap:wrap;grid-column:2;justify-content:flex-start}}.auth-banner.svelte-1c5yh36{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dp-calendar.svelte-g7ga4u{flex-shrink:0;width:224px}.dp-cal-header.svelte-g7ga4u{justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px;display:flex}.dp-cal-title.svelte-g7ga4u{font-size:13px;font-weight:600}.dp-nav-btn.svelte-g7ga4u{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.dp-nav-btn.svelte-g7ga4u:hover{background:var(--bg-surface-hover);color:var(--text)}.dp-nav-btn.svelte-g7ga4u:disabled{opacity:.3;cursor:default;pointer-events:none}.dp-nav-prev-mobile.svelte-g7ga4u{display:none}.dp-weekdays.svelte-g7ga4u{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.dp-weekdays.svelte-g7ga4u span:where(.svelte-g7ga4u){color:var(--text-muted);padding:4px 0;font-size:11px;font-weight:600}.dp-days.svelte-g7ga4u{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.dp-day.svelte-g7ga4u{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-family:inherit;font-size:12px;transition:all .1s;display:flex}.dp-day.svelte-g7ga4u:hover:not(.disabled):not(.other-month){background:var(--bg-surface-hover)}.dp-day.other-month.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default}.dp-day.today.svelte-g7ga4u{color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}.dp-day.in-range.svelte-g7ga4u{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:0}.dp-day.range-start.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:6px 0 0 6px;font-weight:600}.dp-day.range-end.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:0 6px 6px 0;font-weight:600}.dp-day.range-start.range-end.svelte-g7ga4u{border-radius:6px}.dp-day.range-start.today.svelte-g7ga4u,.dp-day.range-end.today.svelte-g7ga4u{box-shadow:none}.dp-day.disabled.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default;pointer-events:none}@media (width<=768px){.dp-nav-prev-mobile.svelte-g7ga4u{display:flex}}.date-picker.svelte-ax7ma4{position:relative}.date-picker-trigger.svelte-ax7ma4{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s;display:inline-flex}.date-picker-trigger.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.date-picker-trigger.svelte-ax7ma4 svg:where(.svelte-ax7ma4){color:var(--text-muted);flex-shrink:0}.date-picker-chevron.svelte-ax7ma4{transition:transform .15s}.date-picker-chevron.open.svelte-ax7ma4{transform:rotate(180deg)}.date-picker-dropdown.svelte-ax7ma4{z-index:100;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000040}.date-picker-presets.svelte-ax7ma4{border-right:1px solid var(--border);flex-direction:column;gap:2px;min-width:140px;padding:8px;display:flex}.preset-btn.svelte-ax7ma4{color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s}.preset-btn.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.preset-btn.active.svelte-ax7ma4{background:var(--accent);color:#fff}.date-picker-calendars.svelte-ax7ma4{flex-wrap:nowrap;gap:16px;padding:12px;display:flex}.dp-cursor-hint.svelte-ax7ma4{pointer-events:none;z-index:101;background:var(--bg-surface);color:var(--text);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:500;display:flex;position:fixed;transform:translate(12px,-50%)}.dp-cursor-hint.svelte-ax7ma4 svg:where(.svelte-ax7ma4){width:12px;height:12px;color:var(--accent);flex-shrink:0}@media (width<=768px){.date-picker-dropdown.svelte-ax7ma4{border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto}.date-picker-presets.svelte-ax7ma4{-webkit-overflow-scrolling:touch;border-right:none;border-bottom:1px solid var(--border);flex-flow:row;min-width:0;overflow-x:auto}.date-picker-calendars.svelte-ax7ma4{justify-content:center}.date-picker-calendars.svelte-ax7ma4>.dp-calendar:first-child{display:none}}.segmented-control.svelte-92fh5i{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.segmented-btn.svelte-92fh5i{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.segmented-btn.svelte-92fh5i:hover{color:var(--text)}.segmented-btn.active.svelte-92fh5i{background:var(--accent);color:#fff}@media (width<=768px){.segmented-btn.svelte-92fh5i{padding:4px 8px;font-size:11px}}.live-tokens.svelte-17qr2ta{margin-bottom:28px}.live-tokens-heading.svelte-17qr2ta{flex-direction:column;gap:2px;display:flex}.live-tokens-subtitle.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.live-tokens-legend.svelte-17qr2ta{flex-wrap:wrap;gap:8px 18px;margin-bottom:16px;display:flex}.live-tokens-legend-item.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:7px;font-size:12px;display:inline-flex}.live-tokens-swatch.svelte-17qr2ta{border-radius:2px;flex-shrink:0;width:10px;height:10px}.live-tokens-legend-value.svelte-17qr2ta{color:var(--text);font-weight:600}.live-tokens-empty.svelte-17qr2ta .live-tokens-empty-text:where(.svelte-17qr2ta){color:var(--text-muted);font-size:13px}.provider-status-flag.svelte-6tr9cf{grid-column:span 2}.provider-status-overview-card.svelte-6tr9cf{grid-column:span 1}.provider-status-flag.is-healthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, var(--bg-surface))}.provider-status-flag.is-degraded.svelte-6tr9cf{border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-flag.is-unhealthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface))}.provider-status-value.svelte-6tr9cf{margin-bottom:8px}.provider-status-card-link.svelte-6tr9cf{color:var(--accent-strong,var(--accent));font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:13px;font-weight:600}.provider-status-card-link.svelte-6tr9cf:hover{color:var(--text);text-decoration:underline}.provider-status-card-link.svelte-6tr9cf:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:3px;border-radius:4px}.provider-status-card-note.svelte-6tr9cf{color:var(--text-muted);font-size:13px;display:block}@media (width>=720px){.card-wide.svelte-6tr9cf{grid-column:span 2}}.cache-token-value.svelte-6tr9cf{flex-wrap:wrap;align-items:center;gap:6px;line-height:1;display:flex}.cache-token-part.svelte-6tr9cf{align-items:center;display:inline-flex}.cache-token-operator.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;font-size:24px;font-weight:600;line-height:1}.cache-token-marker.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;margin-left:2px;font-size:14px;font-weight:700}.prompt-cache-gauge.svelte-6tr9cf{width:120px;height:60px;margin:8px auto 0;position:relative;overflow:hidden}.prompt-cache-gauge.svelte-6tr9cf canvas{display:block}.prompt-cache-gauge-value.svelte-6tr9cf{text-align:center;color:var(--text);font-size:18px;font-weight:700;line-height:1;position:absolute;bottom:4px;left:0;right:0}@media (width<=768px){.provider-status-flag.svelte-6tr9cf{grid-column:span 1}}.mcp-servers-flag.svelte-6tr9cf{grid-column:span 1}.cache-meter-header.svelte-1yzecxj{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:16px;display:flex}.cache-meter-header.svelte-1yzecxj h3{font-size:16px;font-weight:600}.cache-meter-subtitle.svelte-1yzecxj{color:var(--text-muted);font-size:13px}.cache-meter-bar.svelte-1yzecxj{background:var(--bg-surface-hover);border-radius:6px;width:100%;height:28px;display:flex;overflow:hidden}.cache-meter-segment.svelte-1yzecxj{justify-content:center;align-items:center;min-width:3px;height:100%;transition:width .3s;display:flex;overflow:hidden}.cache-meter-segment-label.svelte-1yzecxj{color:#fff;white-space:nowrap;text-shadow:0 1px 2px #00000073;font-size:12px;font-weight:600;line-height:1}.cache-meter-segment.svelte-1yzecxj+.cache-meter-segment:where(.svelte-1yzecxj){box-shadow:-1px 0 0 var(--bg-surface)}.cache-meter-bar.is-empty.svelte-1yzecxj{background:var(--bg-surface-hover);justify-content:center;align-items:center;height:auto;min-height:28px;padding:6px 12px}.cache-meter-legend.svelte-1yzecxj{flex-wrap:wrap;gap:10px 24px;margin-top:16px;display:flex}.cache-meter-legend-item.svelte-1yzecxj{align-items:center;gap:8px;font-size:13px;display:flex}.cache-meter-swatch.svelte-1yzecxj{border-radius:3px;flex-shrink:0;width:12px;height:12px}.cache-meter-legend-label.svelte-1yzecxj{color:var(--text)}.cache-meter-legend-pct.svelte-1yzecxj{color:var(--text);font-weight:600}.cache-meter-legend-tokens.svelte-1yzecxj{color:var(--text-muted)}.cache-meter-empty.svelte-1yzecxj{color:var(--text-muted);text-align:center;font-size:13px}.spinner.svelte-b54l9o{width:var(--spinner-size);height:var(--spinner-size);border:2px solid var(--border,#80808059);border-top-color:var(--accent,currentColor);border-radius:50%;flex:none;animation:.7s linear infinite svelte-b54l9o-spinner-rotate;display:inline-block}@keyframes svelte-b54l9o-spinner-rotate{to{transform:rotate(360deg)}}.contribution-calendar-section.svelte-3hfxuq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:24px;padding:24px}.contribution-calendar-header.svelte-3hfxuq{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.contribution-calendar-header.svelte-3hfxuq h3{font-size:16px;font-weight:600}.contribution-calendar-grid-wrapper.svelte-3hfxuq{gap:8px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq{flex-direction:column;gap:2px;padding-top:22px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq span{height:13px;color:var(--text-muted);text-align:right;min-width:28px;font-size:10px;line-height:13px}.contribution-calendar-scroll.svelte-3hfxuq{--contribution-week-size:13px;--contribution-week-gap:2px;flex:1;min-width:0;overflow-x:auto}.contribution-calendar-months.svelte-3hfxuq{grid-auto-columns:var(--contribution-week-size);gap:var(--contribution-week-gap);grid-auto-flow:column;height:16px;margin-bottom:6px;display:grid}.contribution-calendar-month-label.svelte-3hfxuq{color:var(--text-muted);white-space:nowrap;font-size:10px}.contribution-calendar-grid.svelte-3hfxuq{gap:var(--contribution-week-gap);display:flex}.contribution-calendar-week.svelte-3hfxuq{flex-direction:column;gap:2px;display:flex}.contribution-calendar-cell.svelte-3hfxuq{width:var(--contribution-week-size);height:var(--contribution-week-size);background:var(--cal-level-0);border-radius:2px}.contribution-calendar-cell.level-1.svelte-3hfxuq{background:var(--cal-level-1)}.contribution-calendar-cell.level-2.svelte-3hfxuq{background:var(--cal-level-2)}.contribution-calendar-cell.level-3.svelte-3hfxuq{background:var(--cal-level-3)}.contribution-calendar-cell.level-4.svelte-3hfxuq{background:var(--cal-level-4)}.contribution-calendar-cell.level-5.svelte-3hfxuq{background:var(--cal-level-5)}.contribution-calendar-cell.level-6.svelte-3hfxuq{background:var(--cal-level-6)}.contribution-calendar-cell.level-7.svelte-3hfxuq{background:var(--cal-level-7)}.contribution-calendar-cell.level-8.svelte-3hfxuq{background:var(--cal-level-8)}.contribution-calendar-cell.level-9.svelte-3hfxuq{background:var(--cal-level-9)}.contribution-calendar-cell.level-10.svelte-3hfxuq{background:var(--cal-level-10)}.contribution-calendar-cell.empty.svelte-3hfxuq{background:0 0}.contribution-calendar-footer.svelte-3hfxuq{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.contribution-calendar-meta.svelte-3hfxuq{flex-direction:column;gap:4px;display:flex}.contribution-calendar-summary.svelte-3hfxuq{color:var(--text-muted);font-size:12px}.contribution-calendar-legend.svelte-3hfxuq{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.contribution-calendar-legend.svelte-3hfxuq .contribution-calendar-cell:where(.svelte-3hfxuq){cursor:default;width:11px;height:11px}.contribution-calendar-tooltip.svelte-3hfxuq{z-index:200;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);white-space:nowrap;pointer-events:none;border-radius:4px;padding:4px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;position:fixed;transform:translate(-50%);box-shadow:0 4px 12px #0003}@media (width<=768px){.contribution-calendar-day-labels.svelte-3hfxuq{display:none}.contribution-calendar-section.svelte-3hfxuq{padding:16px}.contribution-calendar-footer.svelte-3hfxuq{flex-direction:column;align-items:flex-start}}.inline-help-toggle.is-open.svelte-y40or3{color:var(--text);background:0 0}.inline-help-toggle.is-open.svelte-y40or3 .inline-help-toggle-icon{transform:rotate(540deg)}.audit-stats-section.svelte-14e9yan{margin-top:24px}.audit-stats-header.svelte-14e9yan{align-items:flex-start}.audit-stats-kpis.svelte-14e9yan{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.audit-stats-kpi.svelte-14e9yan{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.audit-stats-kpi-value.svelte-14e9yan{color:var(--text);font-size:13px}.audit-stats-kpi-dot.svelte-14e9yan{border-radius:2px;flex-shrink:0;width:8px;height:8px}.audit-stats-dot-2xx.svelte-14e9yan{background:var(--success)}.audit-stats-dot-4xx.svelte-14e9yan{background:var(--warning)}.audit-stats-dot-5xx.svelte-14e9yan{background:var(--danger)}.provider-status-details.svelte-6y9wjv{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .28s,opacity .22s;display:grid}.provider-status-details.is-expanded.svelte-6y9wjv{opacity:1;grid-template-rows:1fr}.provider-status-details.is-collapsed.svelte-6y9wjv{pointer-events:none}.provider-status-details-inner.svelte-6y9wjv{flex-direction:column;gap:14px;min-height:0;display:flex;overflow:hidden}.provider-status-reason.svelte-6y9wjv{color:var(--text-muted);font-size:13px}.provider-status-error.svelte-6y9wjv{color:var(--danger);overflow-wrap:break-word;font-size:12px}.provider-status-config-label.svelte-6y9wjv{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-config.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}.provider-status-config-row.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-config-value.svelte-6y9wjv{color:var(--text);overflow-wrap:break-word;font-size:13px;display:block}.provider-status-health.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-bottom:12px;padding-top:12px;display:flex}.provider-status-health-state.svelte-6y9wjv{border:1px solid var(--border);border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.provider-status-health-state.is-healthy.svelte-6y9wjv{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-health-state.is-degraded.svelte-6y9wjv{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-health-state.is-unhealthy.svelte-6y9wjv{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-health-models.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-health-model.svelte-6y9wjv{color:var(--text);justify-content:space-between;gap:8px;font-size:13px;display:flex}.provider-status-health-model.is-flagged.svelte-6y9wjv{color:var(--danger)}.provider-status-health-model-name.svelte-6y9wjv{overflow-wrap:anywhere}.provider-status-health-model-stats.svelte-6y9wjv{white-space:nowrap;color:var(--text-muted)}.provider-status-health-model.is-flagged.svelte-6y9wjv .provider-status-health-model-stats:where(.svelte-6y9wjv){color:var(--danger);font-weight:700}.provider-status-card.svelte-nopjmh{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:18px;display:flex}.provider-status-card-toggle.svelte-nopjmh{border:0;border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin:auto -18px -18px;padding:7px 0;transition:background .15s,color .15s;display:flex}.provider-status-card-toggle.svelte-nopjmh:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text)}.provider-status-card-toggle.svelte-nopjmh:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:-2px}.provider-status-card-toggle.svelte-nopjmh .provider-status-card-toggle-icon{width:16px;height:16px;transition:transform .28s;display:block}.provider-status-card-toggle.is-expanded.svelte-nopjmh .provider-status-card-toggle-icon{transform:rotate(180deg)}.provider-status-card-head.svelte-nopjmh{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.provider-status-name.svelte-nopjmh{letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:16px;font-weight:700;display:flex}.provider-doc-help.svelte-nopjmh{align-self:center;text-decoration:none}.provider-status-name-type.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-pill.svelte-nopjmh{border:1px solid var(--border);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.provider-status-pill.is-healthy.svelte-nopjmh{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-pill.is-degraded.svelte-nopjmh{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-pill.is-unhealthy.svelte-nopjmh{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-meta.svelte-nopjmh{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.provider-status-meta-item.svelte-nopjmh{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.provider-status-meta-label.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-meta-value.svelte-nopjmh{color:var(--text);font-size:14px}@media (width<=768px){.provider-status-meta.svelte-nopjmh{grid-template-columns:1fr}}.provider-status-section-loading.svelte-1kx3uw4{justify-content:center;padding:24px 0;display:flex}.provider-status-section-header.svelte-1kx3uw4{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.provider-status-toggle.svelte-1kx3uw4{background:var(--bg-surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.provider-status-toggle.svelte-1kx3uw4:hover{background:var(--bg-surface-hover)}.provider-status-toggle.svelte-1kx3uw4:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.provider-status-toggle-copy.svelte-1kx3uw4{white-space:nowrap}.provider-status-toggle-track.svelte-1kx3uw4{background:color-mix(in srgb, var(--text-muted) 35%, var(--border));border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background-color .2s;position:relative}.provider-status-toggle-track.is-active.svelte-1kx3uw4{background:color-mix(in srgb, var(--accent) 82%, var(--bg-surface))}.provider-status-toggle-thumb.svelte-1kx3uw4{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000003d}.provider-status-toggle-track.is-active.svelte-1kx3uw4 .provider-status-toggle-thumb:where(.svelte-1kx3uw4){transform:translate(14px)}.provider-status-grid.svelte-1kx3uw4{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:16px;display:grid}@media (width<=768px){.provider-status-section-header.svelte-1kx3uw4{flex-direction:column;align-items:flex-start}.provider-status-toggle.svelte-1kx3uw4{justify-content:space-between;width:100%}}.filter-input-wrap.svelte-30xz1k{flex:1;width:100%;min-width:min(400px,100%);display:flex;position:relative}.filter-input.svelte-30xz1k{flex:1;width:100%;min-width:0;padding-left:34px}.filter-input-wrap.svelte-30xz1k .filter-input-icon{width:14px;height:14px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.usage-page-filters.svelte-1oi6ywk{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.usage-page-filters.svelte-1oi6ywk .usage-log-select{flex:0 auto}.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-session{flex:220px;min-width:180px;max-width:360px}.active-session-filter.svelte-1oi6ywk{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent-strong,var(--accent));cursor:pointer;white-space:nowrap;border-radius:999px;align-self:center;padding:6px 10px;font-size:12px}.active-session-filter.svelte-1oi6ywk:hover{background:color-mix(in srgb, var(--accent) 25%, var(--bg))}@media (width<=768px){.usage-page-filters.svelte-1oi6ywk .usage-log-select,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-session{flex:100%;max-width:none}}.pro-saved-value.svelte-1qiwzdu{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.pro-saved-delta.svelte-1qiwzdu{color:var(--success);letter-spacing:0;font-size:13px;font-weight:600}.pagination-info.svelte-1imew3q{color:var(--text-muted);font-size:13px}.pagination-buttons.svelte-1imew3q{gap:8px;display:flex}.session-id-chip.svelte-1pkjhcn{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg));max-width:290px;color:var(--accent-strong,var(--accent));vertical-align:middle;border-radius:999px;align-items:stretch;display:inline-flex;overflow:hidden}.session-id-chip.svelte-1pkjhcn:hover,.session-id-chip.active.svelte-1pkjhcn{background:color-mix(in srgb, var(--accent) 20%, var(--bg));border-color:var(--accent)}.session-id-filter.svelte-1pkjhcn,.session-id-copy.svelte-1pkjhcn{color:inherit;cursor:pointer;background:0 0;border:0}.session-id-filter.svelte-1pkjhcn{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:4px 8px;font-size:12px;overflow:hidden}.session-id-copy.svelte-1pkjhcn{border-left:1px solid color-mix(in srgb, var(--accent) 25%, var(--border));justify-content:center;align-items:center;width:28px;padding:0 7px;display:inline-flex}.session-id-copy.svelte-1pkjhcn:hover,.session-id-copy.copied.svelte-1pkjhcn{background:color-mix(in srgb, var(--accent) 18%, transparent)}.session-id-copy.svelte-1pkjhcn svg{width:13px;height:13px}.session-id-chip.compact.svelte-1pkjhcn{max-width:220px}.session-id-chip.compact.svelte-1pkjhcn .session-id-filter:where(.svelte-1pkjhcn){padding:3px 7px;font-size:11px}.session-id-chip.compact.svelte-1pkjhcn .session-id-copy:where(.svelte-1pkjhcn){width:25px;padding:0 6px}.usage-breakdown-loading.svelte-1kee4g8{justify-content:center;align-items:center;min-height:120px;display:flex}.chart-view-toggle.svelte-1kee4g8{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.chart-view-btn.svelte-1kee4g8{width:30px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.chart-view-btn.svelte-1kee4g8:hover{color:var(--text)}.chart-view-btn.active.svelte-1kee4g8{background:var(--accent);color:#fff}.chart-view-btn.svelte-1kee4g8 svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.usage-chart-table-wrapper.svelte-1kee4g8{-webkit-overflow-scrolling:touch;margin-top:0;overflow-x:auto}.usage-chart-data-table.svelte-1kee4g8{min-width:max-content}.usage-chart-data-table.svelte-1kee4g8 th,.usage-chart-data-table.svelte-1kee4g8 td{white-space:nowrap}.usage-log-loading.svelte-hg4ill{justify-content:center;align-items:center;min-height:120px;display:flex}.usage-log-section.svelte-hg4ill{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.usage-log-section.svelte-hg4ill h3{margin-bottom:16px;font-size:16px;font-weight:600}.usage-log-section.svelte-hg4ill .table-wrapper{overflow-x:auto}.usage-log-toolbar.svelte-hg4ill{gap:12px;margin-bottom:16px;display:grid}.usage-filter-row.svelte-hg4ill{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:12px;display:grid}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1/-1}.usage-filter-row-options.svelte-hg4ill{grid-template-columns:1fr}.usage-log-checkbox.svelte-hg4ill{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.usage-log-checkbox.svelte-hg4ill input{cursor:pointer;width:16px;height:16px}.usage-ts.svelte-hg4ill{white-space:nowrap;font-size:12px}.usage-log-row-cached.svelte-hg4ill td{opacity:.75;font-style:italic}.usage-log-row-cached.svelte-hg4ill .usage-log-cache-cell:where(.svelte-hg4ill){font-weight:700}.caveat-icon.svelte-hg4ill{color:var(--warning);cursor:help;margin-left:4px;font-size:14px}@media (width<=768px){.usage-log-toolbar.svelte-hg4ill{gap:10px}.usage-filter-row.svelte-hg4ill{grid-template-columns:1fr}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1}.usage-log-table.svelte-hg4ill{display:block;overflow-x:auto}}.usage-sticky-controls.svelte-spwie6{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.usage-charts-grid.svelte-spwie6{flex-wrap:wrap;gap:24px;margin-bottom:24px;display:flex}.usage-charts-grid.svelte-spwie6 .model-chart-section{flex:calc(50% - 24px);min-width:420px;margin-bottom:0}.usage-session-breakdown-wrap.svelte-spwie6{margin-bottom:24px}.usage-session-breakdown-wrap.svelte-spwie6 .session-usage-breakdown{width:100%;margin-bottom:0}@media (width<=520px){.usage-charts-grid.svelte-spwie6 .model-chart-section{min-width:0}}.loading-state.svelte-hzxv1d{min-height:var(--loading-state-min-height,64px);color:var(--text-muted);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.budget-bar-text-row-on-fill.svelte-1jm56wo{color:#fff;clip-path:inset(0 calc(100% - var(--budget-progress,0%)) 0 0)}.budget-bar-text-start.svelte-1jm56wo{left:8px;transform:translateY(-50%)}.budget-bar-track-period-custom.svelte-1jm56wo .budget-bar-text-row-on-fill:where(.svelte-1jm56wo){color:#3f332a}.budget-override-dialog.svelte-13ryo7h{max-width:460px}.budget-sort-control.svelte-1752fqe{align-items:center;gap:8px}.budget-sort-control.svelte-1752fqe label{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.budget-sort-select.svelte-1752fqe{background-color:var(--bg-surface);min-width:132px}.budget-sort-select.svelte-1752fqe:hover{background-color:var(--bg-surface-hover)}.model-name-cell.svelte-1iynym{flex-direction:column;gap:8px;display:flex}.model-name-primary.svelte-1iynym{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.model-name-secondary.svelte-1iynym{color:var(--text-muted);font-size:12px}.model-redirect-remove-btn.svelte-1iynym{appearance:none;color:var(--danger);cursor:pointer;background:0 0;border:0;margin-left:4px;padding:0;font-size:11px}.model-redirect-remove-btn.svelte-1iynym:hover:not(:disabled){text-decoration:underline}.model-redirect-remove-btn.svelte-1iynym:disabled{opacity:.45;cursor:default}.model-kind-icon.svelte-1iynym{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border));background:var(--bg);width:24px;height:24px;color:var(--accent);border-radius:999px;flex:0 0 24px;justify-content:center;align-items:center;display:inline-flex}.model-kind-icon-svg.svelte-1iynym{width:14px;height:14px}.model-row-actions.svelte-1iynym{text-align:right;width:170px}@media (width<=768px){.model-name-primary.svelte-1iynym{flex-direction:column;align-items:flex-start}}.provider-group-row.svelte-1911hy6 td{background:color-mix(in srgb, var(--accent) 6%, var(--bg));padding-top:12px;padding-bottom:12px}.provider-group-row.svelte-1911hy6:hover td{background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.provider-group-header.svelte-1911hy6{justify-content:space-between;align-items:center;gap:16px;display:flex}.provider-group-meta.svelte-1911hy6{flex-direction:column;gap:4px;min-width:0;display:flex}.provider-group-title.svelte-1911hy6{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.provider-group-type.svelte-1911hy6,.provider-group-count.svelte-1911hy6,.provider-group-summary.svelte-1911hy6{color:var(--text-muted);font-size:12px}@media (width<=768px){.provider-group-header.svelte-1911hy6{flex-direction:column;align-items:flex-start}}.vm-session-affinity-checkbox.svelte-d1j6xw{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.vm-session-affinity-checkbox.svelte-d1j6xw input:where(.svelte-d1j6xw){accent-color:var(--accent);cursor:pointer}.pricing-override-rows.svelte-u8snes{gap:12px;display:grid}.pricing-override-row.svelte-u8snes{grid-template-columns:minmax(220px,1fr) minmax(130px,180px) 32px;align-items:end;gap:12px;display:grid}.pricing-override-row-actions.svelte-u8snes{justify-content:flex-start;display:flex}.pricing-override-tier-note.svelte-u8snes{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:6px;padding:10px 12px;font-size:13px}.pricing-preview.svelte-u8snes{border:1px solid var(--border);border-radius:6px;overflow:hidden}.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:minmax(150px,1fr) minmax(90px,auto) minmax(130px,.8fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.pricing-preview-header.svelte-u8snes{background:var(--bg);color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.pricing-preview-row.svelte-u8snes{border-top:1px solid var(--border);font-size:13px}.pricing-preview-row-empty.svelte-u8snes{color:var(--text-muted);grid-template-columns:1fr}@media (width<=768px){.pricing-override-row.svelte-u8snes,.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:1fr}}.failover-drafts-editor.svelte-1n87bip{flex-direction:column;gap:16px;display:flex}.failover-draft-header-actions.svelte-1n87bip{flex:none;align-items:center;gap:10px;display:flex}.failover-draft-counter.svelte-1n87bip{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.failover-draft-toolbar.svelte-1n87bip{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.failover-draft-toolbar.svelte-1n87bip .filter-input-wrap,.failover-draft-toolbar.svelte-1n87bip .filter-input{min-width:0}.failover-draft-toggle-all.svelte-1n87bip{flex:none}.failover-draft-list.svelte-1n87bip{flex-direction:column;gap:8px;max-height:min(52vh,430px);padding-right:4px;display:flex;overflow-y:auto}.failover-draft-row.svelte-1n87bip{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:10px;display:grid}.failover-draft-row.svelte-1n87bip:hover{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));background:var(--bg-surface-hover)}.failover-draft-row.svelte-1n87bip input{width:16px;height:16px;margin-top:2px}.failover-draft-copy.svelte-1n87bip{gap:4px;min-width:0;display:grid}.failover-draft-source.svelte-1n87bip,.failover-draft-targets.svelte-1n87bip{overflow-wrap:anywhere}.failover-draft-targets.svelte-1n87bip{color:var(--text-muted);font-size:12px}.failover-drafts-empty.svelte-1n87bip{align-items:center;min-height:96px;display:flex}.failover-draft-actions.svelte-1n87bip{margin-top:0}.category-tabs.svelte-scpjps{-webkit-overflow-scrolling:touch;align-items:center;gap:4px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.category-tab.svelte-scpjps{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.category-tab.svelte-scpjps:hover{color:var(--text);background:var(--bg-surface-hover)}.category-tab.active.svelte-scpjps{background:var(--accent);color:#fff;border-color:var(--accent)}.category-tab.svelte-scpjps .tab-count:where(.svelte-scpjps){background:#ffffff26;border-radius:9px;justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 5px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.category-tab.svelte-scpjps:not(.active) .tab-count:where(.svelte-scpjps){background:var(--bg)}@media (width<=768px){.category-tabs.svelte-scpjps{gap:4px}.category-tab.svelte-scpjps{padding:5px 10px;font-size:12px}}.workflow-pipeline-meta.svelte-1viff7o{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 86%, transparent);min-width:0;max-width:calc(100% - 28px);color:var(--text-muted);white-space:nowrap;appearance:none;cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:0;padding:2px 10px;font-size:12px;font-weight:500;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex;position:absolute;top:12px;right:14px;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover,.workflow-pipeline-meta.svelte-1viff7o:focus-visible{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface));color:color-mix(in srgb, var(--accent) 74%, var(--text))}.workflow-pipeline-meta.svelte-1viff7o:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.workflow-pipeline-meta-label.svelte-1viff7o{flex:none;font-weight:700}.workflow-pipeline-meta-placeholder.svelte-1viff7o{opacity:1;flex:none;max-width:3ch;margin-left:4px;transition:max-width .18s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta-value.svelte-1viff7o{opacity:0;text-overflow:clip;flex:0 auto;max-width:0;margin-left:0;transition:max-width .22s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o){opacity:0;max-width:0;margin-left:0}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o){opacity:1;max-width:42ch;margin-left:4px}.workflow-pipeline-meta-icon.svelte-1viff7o{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:14px;margin-left:0;line-height:0;transition:width .18s,margin-left .18s,opacity .15s,transform .18s;display:inline-flex;overflow:hidden;transform:translate(4px)translateY(1px)scale(.84)}.workflow-pipeline-meta-icon.svelte-1viff7o svg{width:14px;height:14px}.workflow-pipeline-meta-copied.svelte-1viff7o,.workflow-pipeline-meta-copied.svelte-1viff7o:hover,.workflow-pipeline-meta-copied.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-icon:where(.svelte-1viff7o){opacity:1;width:14px;margin-left:6px;transform:translateY(1px)}.workflow-pipeline-meta-error.svelte-1viff7o,.workflow-pipeline-meta-error.svelte-1viff7o:hover,.workflow-pipeline-meta-error.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 34%, var(--border));color:var(--danger)}.workflow-pipeline.svelte-nbptrg{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);flex-direction:column;gap:0;margin-bottom:12px;padding:18px 20px 20px;display:flex;position:relative}.workflow-pipeline-has-meta.svelte-nbptrg{padding-top:42px}.workflow-pipeline-row.svelte-nbptrg{align-items:center;width:100%;min-width:0;display:flex;overflow-x:auto}.workflow-node-icon.svelte-nbptrg{border-radius:var(--radius);background:var(--bg);width:28px;height:28px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.workflow-node-icon.svelte-nbptrg svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.workflow-node-label.svelte-nbptrg{letter-spacing:.03em;color:var(--text);white-space:nowrap;font-size:11px;font-weight:700;line-height:1.2}.workflow-node-sub.svelte-nbptrg{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:120px;font-size:10px;font-weight:500;line-height:1.2;font-family:var(--font-mono,ui-monospace, monospace);overflow:hidden}.workflow-node-badge.svelte-nbptrg{border-radius:var(--radius);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);align-items:center;padding:2px 7px;font-size:9px;font-weight:800;line-height:1.5;display:inline-flex}.workflow-node-endpoint.svelte-nbptrg{border-radius:var(--radius);border-color:var(--border);background:var(--bg-surface);flex-direction:row;gap:7px;min-width:auto;padding:10px 14px}.workflow-node-icon-endpoint.svelte-nbptrg{border-radius:var(--radius);width:auto;height:auto;color:var(--text-muted);background:0 0;justify-content:flex-start;padding:0}.workflow-node-icon-endpoint.svelte-nbptrg svg{width:14px;height:14px}.workflow-node-endpoint.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted);font-size:11px;font-weight:600}.workflow-node-feature.svelte-nbptrg{border-color:color-mix(in srgb, var(--accent) 46%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface))}.workflow-node-feature.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--accent) 70%, var(--text-muted))}.workflow-node-ai.svelte-nbptrg{border-radius:var(--radius);gap:6px;min-width:96px;padding:12px 16px}.workflow-async-section.svelte-nbptrg{justify-content:flex-end;align-items:center;gap:0;width:100%;min-width:0;margin-top:10px;display:flex}.workflow-async-turn.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 60px;height:2px;position:relative}.workflow-async-turn.svelte-nbptrg:before{content:"";background:color-mix(in srgb, var(--text-muted) 40%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);width:7px;height:9px;position:absolute;top:50%;left:-7px;transform:translateY(-50%)}.workflow-async-turn.svelte-nbptrg:after{content:"";border-right:2px dashed color-mix(in srgb, var(--text-muted) 40%, var(--border));height:16px;position:absolute;bottom:1px;right:0}.workflow-async-row.svelte-nbptrg{align-items:center;min-width:0;margin-right:7px;display:flex}.workflow-conn-async.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 24px;width:24px}.workflow-conn-async.svelte-nbptrg:after{background:color-mix(in srgb, var(--text-muted) 45%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);left:-1px;right:auto}.workflow-node-async.svelte-nbptrg{border-radius:var(--radius);border-style:dashed;flex-direction:row;gap:7px;min-width:auto;padding:7px 12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){border-radius:var(--radius);width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg) svg{width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){font-size:10px;font-weight:700}.workflow-async-label.svelte-nbptrg{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);opacity:.55;white-space:nowrap;flex-shrink:0;align-items:center;margin-left:8px;font-size:9px;font-weight:800;display:inline-flex}.workflow-node-success.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 18%, var(--bg));color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 85%, var(--text))}.workflow-node-success.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 74%, var(--text-muted))}.workflow-node-success.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 14%, var(--bg));border-color:color-mix(in srgb, var(--success) 38%, var(--border));color:var(--success)}.workflow-node-current.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 16%, var(--bg));color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 85%, var(--text))}.workflow-node-current.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 72%, var(--text-muted))}.workflow-node-current.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 13%, var(--bg));border-color:color-mix(in srgb, var(--info) 36%, var(--border));color:var(--info)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 85%, var(--text))}.workflow-node-warning.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 72%, var(--text-muted))}.workflow-node-warning.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 38%, var(--border));color:var(--warning)}.workflow-node-error.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--danger) 14%, var(--bg));color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 85%, var(--text))}.workflow-node-error.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 72%, var(--text-muted))}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 12%, var(--bg));color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg),.workflow-node-neutral.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--text-muted) 84%, var(--border))}.workflow-node-neutral.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 10%, var(--bg));border-color:color-mix(in srgb, var(--text-muted) 28%, var(--border));color:var(--text-muted)}.workflow-conn-hit.svelte-nbptrg,.workflow-conn-hit.svelte-nbptrg:after{background:color-mix(in srgb, var(--success) 58%, var(--border))}.workflow-conn-dim.svelte-nbptrg,.workflow-conn-dim.svelte-nbptrg:after{background:color-mix(in srgb, var(--border) 75%, transparent)}.workflow-node-success.svelte-nbptrg{border-color:color-mix(in srgb, var(--success) 52%, var(--border));background:color-mix(in srgb, var(--success) 9%, var(--bg-surface))}.workflow-node-current.svelte-nbptrg{border-color:color-mix(in srgb, var(--info) 56%, var(--border));background:color-mix(in srgb, var(--info) 10%, var(--bg-surface))}.workflow-node-warning.svelte-nbptrg{border-color:color-mix(in srgb, var(--warning) 52%, var(--border));background:color-mix(in srgb, var(--warning) 9%, var(--bg-surface))}.workflow-node-error.svelte-nbptrg{border-color:color-mix(in srgb, var(--danger) 52%, var(--border));background:color-mix(in srgb, var(--danger) 9%, var(--bg-surface))}.workflow-node-neutral.svelte-nbptrg{border-color:color-mix(in srgb, var(--text-muted) 40%, var(--border));background:color-mix(in srgb, var(--text-muted) 8%, var(--bg-surface))}.workflow-node-skipped.svelte-nbptrg{opacity:.28;position:relative}.workflow-card.svelte-1fo9fvq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:20px;display:flex}.workflow-card-head.svelte-1fo9fvq{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-card-footer.svelte-1fo9fvq{flex-direction:column;align-items:stretch;gap:10px;display:flex}.workflow-card-head.svelte-1fo9fvq h3{font-size:18px;font-weight:700}.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.workflow-card-meta-footer.svelte-1fo9fvq{justify-content:flex-start}.workflow-card-footer.svelte-1fo9fvq .alias-actions-cell{align-self:flex-end}.workflow-card-description.svelte-1fo9fvq{color:var(--text-muted);font-size:14px}.workflow-guardrails.svelte-1fo9fvq{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list.svelte-1fo9fvq{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-item.svelte-1fo9fvq{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}@media (width<=768px){.workflow-card-head.svelte-1fo9fvq,.workflow-card-footer.svelte-1fo9fvq,.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq,.workflow-guardrail-item.svelte-1fo9fvq{flex-direction:column;align-items:flex-start}}.model-editor.workflow-editor{width:min(1080px,100%);margin-bottom:0}.alert-inline-actions.svelte-1bcpzh1{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.workflow-guardrail-editor.svelte-1bcpzh1{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list-editor.svelte-1bcpzh1{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-row.svelte-1bcpzh1{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:stretch;align-items:center;gap:12px;padding:10px 12px;display:flex}.workflow-guardrail-field.svelte-1bcpzh1{flex:auto;min-width:0}.workflow-guardrail-step-field.svelte-1bcpzh1{flex:0 0 120px}.workflow-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-step-input.svelte-1bcpzh1{max-width:120px}@media (width<=768px){.workflow-guardrail-row.svelte-1bcpzh1{flex-direction:column;align-items:flex-start}.workflow-step-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-guardrail-field.svelte-1bcpzh1,.workflow-guardrail-step-field.svelte-1bcpzh1{flex-basis:auto;width:100%}}.workflow-list-loading.svelte-ie2kfk{justify-content:center;align-items:center;gap:8px;display:flex}.workflows-list.svelte-ie2kfk{min-width:0}.workflow-card-grid.svelte-ie2kfk{grid-template-columns:1fr;gap:16px;display:grid}.workflow-page-note.svelte-l8kr26{color:var(--text-muted);margin-top:6px;font-size:14px}.audit-log-toolbar.svelte-1pwbpcm{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;display:grid}.audit-filter-select.svelte-1pwbpcm{grid-column:span 2;min-width:0}.audit-filter-row-search.svelte-1pwbpcm .filter-input-wrap{grid-column:1/-1;max-width:none}.audit-filter-row-controls.svelte-1pwbpcm .audit-filter-select:where(.svelte-1pwbpcm){grid-column:span 2}.audit-filter-row-controls.svelte-1pwbpcm .btn{grid-column:11/-1;justify-self:end;min-width:108px}.audit-clear-btn.svelte-1pwbpcm{justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.audit-clear-btn.svelte-1pwbpcm .table-icon-svg{width:12px;height:12px}@media (width<=768px){.audit-log-toolbar.svelte-1pwbpcm{gap:8px}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:1fr}.audit-filter-row.svelte-1pwbpcm .filter-input-wrap,.audit-filter-row.svelte-1pwbpcm .filter-input,.audit-filter-select.svelte-1pwbpcm,.audit-filter-row.svelte-1pwbpcm .btn{grid-column:auto}}.audit-live-status.svelte-tve6yv{color:var(--text-muted);align-items:center;gap:10px;margin-left:16px;padding-left:6px;font-size:12px;display:inline-flex}.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:1.8s ease-out infinite svelte-tve6yv-audit-live-dot-throb}@keyframes svelte-tve6yv-audit-live-dot-throb{0%{transform:scale(1)}35%{transform:scale(1.35)}70%{transform:scale(1)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:none}}.audit-live-status-text.is-live.svelte-tve6yv{color:var(--success);font-weight:600}.audit-entry-metadata.svelte-hyopt0{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.audit-entry-metadata-label.svelte-hyopt0{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:12px;font-weight:700}.audit-entry-context.svelte-hyopt0{flex-wrap:wrap;flex:auto;gap:8px;display:flex}.audit-alias-badge.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 28%, var(--border));color:var(--accent-strong,var(--accent))}.audit-session-usage-link.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 35%, var(--border));color:var(--accent-strong,var(--accent));cursor:pointer}.audit-session-usage-link.svelte-hyopt0:hover{background:color-mix(in srgb, var(--accent) 22%, var(--bg));border-color:var(--accent)}@media (width<=768px){.audit-entry-metadata.svelte-hyopt0{flex-direction:column;align-items:flex-start;gap:8px}}.audit-attempt-track.svelte-1eu22xn{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.audit-attempt-track-pips.svelte-1eu22xn{align-items:center;gap:3px;display:inline-flex}.audit-attempt-pip.svelte-1eu22xn{background:var(--text-muted);border-radius:2px;width:8px;height:8px}.audit-attempt-pip.audit-attempt-success.svelte-1eu22xn{background:var(--success)}.audit-attempt-pip.audit-attempt-error.svelte-1eu22xn{background:var(--danger)}.audit-attempt-track-count.svelte-1eu22xn{color:var(--text-muted);font-size:11px}.audit-entry-summary.svelte-17mysgz{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;list-style:none;display:flex;position:relative}.audit-entry-summary.svelte-17mysgz::-webkit-details-marker{display:none}.audit-entry-summary-live-in-progress.svelte-17mysgz{background:color-mix(in srgb, var(--info) 7%, var(--bg))}.audit-entry-summary-has-interactions.svelte-17mysgz{padding-right:44px}.audit-entry-summary-live-in-progress.svelte-17mysgz:before{content:"";background:var(--info);pointer-events:none;width:3px;animation:1.2s ease-in-out infinite audit-live-summary-stripe-blink;position:absolute;inset:0 auto 0 0}@media (prefers-reduced-motion:reduce){.audit-entry-summary-live-in-progress.svelte-17mysgz:before{opacity:.78;animation:none}}.audit-entry-left.svelte-17mysgz{align-items:center;gap:8px;min-width:0;display:flex}.audit-entry-right.svelte-17mysgz{color:var(--text-muted);flex-shrink:0;align-items:center;gap:10px;min-height:28px;display:inline-flex}.audit-thread-expander.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);min-width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:3px;padding:0 7px 0 4px;transition:background .1s ease-out,color .1s ease-out;display:inline-flex}.audit-thread-expander.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 12%, var(--bg));color:var(--accent)}.audit-thread-expander.svelte-17mysgz .audit-thread-expander-svg{width:14px;height:14px}.audit-thread-count.svelte-17mysgz{font-size:11px;font-weight:600}.audit-thread-usage.svelte-17mysgz{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg));width:28px;height:28px;color:var(--accent-strong,var(--accent));cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.audit-thread-usage.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg));border-color:var(--accent)}.audit-thread-usage.svelte-17mysgz .audit-thread-usage-svg{width:14px;height:14px}.audit-conversation-trigger.svelte-17mysgz{border:0;border-left:1px solid var(--border);background:color-mix(in srgb, var(--accent) 12%, var(--bg));width:32px;height:100%;color:var(--accent);cursor:pointer;border-radius:0;justify-content:center;align-items:center;margin:0;transition:background .1s ease-out,color .1s ease-out;display:inline-flex;position:absolute;inset:0 0 0 auto}.audit-conversation-trigger.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg))}.audit-conversation-trigger-active.svelte-17mysgz{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 28%, var(--bg));border-left:0}.audit-conversation-trigger-active.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 34%, var(--bg))}.audit-conversation-trigger.svelte-17mysgz .audit-conversation-trigger-svg{stroke-linecap:butt;stroke-linejoin:miter;width:18px;height:18px}.audit-path.svelte-17mysgz{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.audit-request-badge.svelte-17mysgz{white-space:nowrap;gap:6px;min-width:0}.audit-timestamp-time.svelte-17mysgz{display:none}.audit-provider-model.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);height:24px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:420px;padding:0 10px;font-size:12px;display:inline-flex;overflow:hidden}@container dashboard-content (width<=699px){.audit-entry-summary.svelte-17mysgz{flex-direction:column;align-items:flex-start}.audit-entry-right.svelte-17mysgz{justify-content:space-between;width:100%}.audit-request-status.svelte-17mysgz,.audit-timestamp-full.svelte-17mysgz{display:none}.audit-timestamp-time.svelte-17mysgz{display:inline}}.audit-pane-split.svelte-1h5puht{grid-template-columns:1fr 2fr;align-items:start;gap:10px 14px;display:grid}.audit-pane-split-single.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}@container dashboard-content (width<=699px){.audit-pane-split.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}}.audit-pane-split.svelte-1h5puht .audit-pane-block-error:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-pane-empty:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-size-warning:where(.svelte-1h5puht){grid-column:1/-1}.audit-pane-block.svelte-1h5puht{min-width:0}.audit-pane-block.svelte-1h5puht>h5{margin-bottom:6px}.audit-pane-block-head.svelte-1h5puht{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.audit-pane-block-title.svelte-1h5puht{align-items:center;gap:8px;min-width:0;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn{background-color:var(--bg-surface);border:1px solid color-mix(in srgb, var(--border) 70%, var(--text) 30%);color:var(--text);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:6px;padding:4px 8px;font-family:inherit;font-size:12px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn:hover:not(:disabled){background:color-mix(in srgb, var(--bg-surface) 80%, var(--text) 20%);border-color:color-mix(in srgb, var(--border) 45%, var(--text) 55%)}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 18%, var(--bg-surface))}.audit-json.svelte-1h5puht{background:var(--bg-surface);border:1px solid var(--border);box-sizing:border-box;white-space:pre;max-width:100%;max-height:220px;color:var(--text);border-radius:6px;padding:10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;overflow:auto}.audit-pane-error-message.svelte-1h5puht{color:var(--danger)}.audit-pane-clickable-preview.svelte-1h5puht{cursor:pointer}.audit-pane-clickable-preview.svelte-1h5puht:hover{background:color-mix(in srgb, var(--danger) 8%, transparent)}.audit-json-body.svelte-1h5puht{white-space:pre;overflow-wrap:normal}.audit-pane-empty.svelte-1h5puht{text-align:left;padding:8px 0 0}.audit-pane-pending.svelte-1h5puht{align-items:center;gap:8px;display:flex}.audit-pane-streaming.svelte-1h5puht{letter-spacing:.02em;color:var(--text-muted);align-items:center;gap:7px;padding-left:4px;font-size:11px;font-weight:600;display:inline-flex}.audit-size-warning.svelte-1h5puht{color:var(--warning);margin-top:8px;font-size:12px}.audit-request-response.svelte-1bc5vi5{margin-top:4px}.audit-pane-tablist.svelte-1bc5vi5{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;display:flex}.audit-pane-tab.svelte-1bc5vi5{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-bottom-color:#0000;border-radius:6px 6px 0 0;align-items:center;gap:8px;margin-bottom:-1px;margin-right:12px;padding:8px 12px;font-family:inherit;font-size:13px;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.audit-pane-tab.svelte-1bc5vi5:not(.audit-pane-tab-active):hover{color:var(--text);background:color-mix(in srgb, var(--text) 5%, transparent)}.audit-pane-tab-active.svelte-1bc5vi5{color:var(--text);border-color:var(--border);border-bottom-color:var(--bg);background:var(--bg)}.audit-pane-tab-label.svelte-1bc5vi5{font-weight:600}.audit-pane-tabpanel.svelte-1bc5vi5{min-width:0}.audit-pane-icon.svelte-1bc5vi5{color:var(--text-muted);flex:none;align-items:center;display:inline-flex}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-request{color:var(--accent)}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-response{color:var(--info)}.audit-pane-icon.svelte-1bc5vi5 svg{width:16px;height:16px}.audit-pane-seq.svelte-1bc5vi5{color:var(--text-muted);font-size:12px}.audit-pane-kind.svelte-1bc5vi5{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-primary{color:var(--text-muted)}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-failover{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-retry{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 30%, var(--border))}.audit-savings-pill.svelte-1bc5vi5{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);color:var(--prompt-cache-color);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;font-weight:700;display:inline-flex}.audit-step-pill.svelte-1bc5vi5{border:1px dashed var(--border);color:var(--text-muted);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;display:inline-flex}.audit-entry.svelte-cmjgwr{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);transition:background .12s ease-out,border-color .12s ease-out;overflow:hidden}.audit-entry-interactions-open.svelte-cmjgwr{border-width:2px;border-color:color-mix(in srgb, var(--prompt-cache-color) 38%, var(--border))}.audit-entry-details.svelte-cmjgwr{border-top:1px solid var(--border);background:var(--bg-surface);padding:12px;overflow:hidden}.audit-thread.svelte-pneivi{flex-direction:column;gap:10px;display:flex}.audit-thread-children.svelte-pneivi{flex-direction:column;gap:10px;margin-left:26px;display:flex}.audit-thread-child.svelte-pneivi,.audit-thread-loading.svelte-pneivi{position:relative}.audit-thread-child.svelte-pneivi:before,.audit-thread-loading.svelte-pneivi:before{content:"";border-left:1px solid var(--border);border-bottom:1px solid var(--border);pointer-events:none;border-bottom-left-radius:6px;width:12px;height:calc(50% + 10px);position:absolute;top:-10px;left:-14px}.audit-thread-child.svelte-pneivi:not(:last-child):after{content:"";border-left:1px solid var(--border);pointer-events:none;position:absolute;top:50%;bottom:-10px;left:-14px}.audit-thread-loading.svelte-pneivi{padding:6px 0 6px 4px;display:flex}.audit-thread-more.svelte-pneivi{color:var(--text-muted);padding-left:4px;font-size:12px}.audit-log-loading.svelte-1nhcbov{justify-content:center;padding:2rem 0;display:flex}.audit-list-toolbar.svelte-1nhcbov{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.audit-list-toolbar-left.svelte-1nhcbov{flex-wrap:wrap;align-items:center;gap:16px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov input:where(.svelte-1nhcbov){accent-color:var(--accent);cursor:pointer}.audit-retention-note.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-retention-highlight.svelte-1nhcbov{color:var(--text);font-weight:600}.audit-log-section.svelte-1nhcbov{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.audit-log-summary.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-log-list.svelte-1nhcbov{flex-direction:column;gap:10px;display:flex}.settings-guardrails-list.svelte-1bvx512{min-width:0}.settings-guardrail-type-pill.svelte-1bvx512{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.settings-guardrail-summary.svelte-1bvx512{color:var(--text);font-size:14px;line-height:1.45}.settings-guardrail-description.svelte-1bvx512{color:var(--text-muted);margin-top:6px;font-size:12px}.model-editor.guardrails-editor-wide{width:min(1080px,100%)}.form-field-fieldset.svelte-s964s3{border:0;min-inline-size:0;margin:0;padding:0}.form-field-legend.svelte-s964s3{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;padding:0;font-size:12px;font-weight:600}.model-editor.settings-guardrails-editor{min-width:0}.settings-guardrails-hero.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));border-radius:var(--radius);background:radial-gradient(circle at top right, color-mix(in srgb, var(--accent-hover) 18%, transparent), transparent 42%), radial-gradient(circle at bottom left, color-mix(in srgb, var(--accent) 16%, transparent), transparent 40%), var(--bg-surface);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding:24px;display:flex}.settings-kicker.svelte-5x874c{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.settings-guardrails-hero.svelte-5x874c h3{margin-bottom:8px}.settings-guardrails-hero.svelte-5x874c p:last-child{color:var(--text-muted);margin-bottom:0}.settings-guardrails-meta.svelte-5x874c{gap:12px;display:flex}.settings-guardrails-stat.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));background:color-mix(in srgb, var(--bg-surface-hover) 76%, transparent);border-radius:16px;min-width:110px;padding:14px 16px}.settings-guardrails-stat-label.svelte-5x874c{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.settings-guardrails-stat.svelte-5x874c strong{font-size:24px;font-weight:700}@media (width<=768px){.settings-guardrails-hero.svelte-5x874c{flex-direction:column}.settings-guardrails-meta.svelte-5x874c{width:100%}.settings-guardrails-stat.svelte-5x874c{flex:1 1 0}}.mcp-catalog-section.svelte-1xqrzco{margin-top:18px}.mcp-catalog-section.svelte-1xqrzco .form-field-label{margin-bottom:8px}.mcp-catalog-subtitle.svelte-1xqrzco{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mcp-catalog-list.svelte-1xqrzco{flex-direction:column;gap:12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.mcp-catalog-item-name.svelte-1xqrzco{overflow-wrap:anywhere;font-size:13px}.mcp-catalog-item-aggregated.svelte-1xqrzco{color:var(--text-muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px}.mcp-catalog-item-description.svelte-1xqrzco{color:var(--text-muted);margin:2px 0 0;font-size:13px;font-weight:400}.mcp-server-sub-counts.svelte-ah8nrt{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:280px;margin-top:4px;font-size:11px;overflow:hidden}.mcp-server-table-wrapper.svelte-ah8nrt{overflow-x:auto}.mcp-server-table-wrapper.svelte-ah8nrt .data-table{min-width:860px}.auth-key-form-fields.svelte-1gswxes>.form-field{margin-bottom:4px}.auth-key-dashboard-toggle.svelte-1gswxes{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-key-issued-banner.svelte-1gswxes{background:color-mix(in srgb, var(--success) 8%, var(--bg-surface));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));border-radius:var(--radius);margin-bottom:20px;padding:16px}.auth-key-issued-warning.svelte-1gswxes{color:color-mix(in srgb, var(--success) 80%, var(--text));margin-bottom:12px;font-size:13px;font-weight:600}.auth-key-issued-value-row.svelte-1gswxes{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.auth-key-issued-token.svelte-1gswxes{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;flex:1;min-width:0;padding:8px 12px;font-size:13px;overflow-x:auto}.usage-label-chip-static.svelte-nf0ldb,.usage-label-chip-static.svelte-nf0ldb:hover{cursor:default;background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.auth-key-redacted.svelte-nf0ldb{color:var(--text-muted);font-size:13px}.auth-key-actions-cell.svelte-nf0ldb{white-space:nowrap}.auth-key-row-deactivated.svelte-nf0ldb td:where(.svelte-nf0ldb):not(.auth-key-actions-cell){opacity:.55}.auth-key-expiry.svelte-nf0ldb{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.auth-key-th-help.svelte-nf0ldb{cursor:help;align-items:center;gap:4px;display:inline-flex}.auth-key-row-actions.svelte-nf0ldb{align-items:center;gap:6px;display:inline-flex}.auth-keys-loading.svelte-1xpdcqx{justify-content:center;align-items:center;padding:32px 0;display:flex}.auth-keys-help-notice.svelte-1xpdcqx{margin-bottom:20px}.auth-keys-inactive-toggle.svelte-1xpdcqx{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-keys-inactive-toggle.svelte-1xpdcqx input:where(.svelte-1xpdcqx){width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.settings-panel-header.svelte-15kyv2y{justify-content:space-between;gap:16px;margin-bottom:20px;display:flex}.settings-panel-header.svelte-15kyv2y h3{font-size:18px}.settings-form-grid.svelte-15kyv2y{grid-template-columns:minmax(280px,420px);gap:16px;display:grid}@media (width<=768px){.settings-form-grid.svelte-15kyv2y{grid-template-columns:1fr}}.budget-settings-section.svelte-a747ys{width:100%}.budget-settings-grid.svelte-a747ys{gap:12px;display:grid}.budget-settings-row.svelte-a747ys{grid-template-columns:96px minmax(170px,1fr) minmax(110px,140px) minmax(110px,140px) minmax(220px,280px);align-items:start;gap:12px;display:grid}.budget-settings-period.svelte-a747ys{color:var(--text);letter-spacing:0;text-transform:uppercase;align-self:end;min-height:35px;padding-bottom:9px;font-size:12px;font-weight:700}.budget-settings-spacer.svelte-a747ys{min-height:1px}.budget-settings-help-cell.svelte-a747ys{align-self:start;min-width:0;min-height:35px}.budget-settings-help-cell.svelte-a747ys .inline-help-copy{max-width:280px;margin:22px 0 0;font-size:12px;line-height:1.35}@media (width<=768px){.budget-settings-grid.svelte-a747ys,.budget-settings-row.svelte-a747ys{grid-template-columns:1fr}.budget-settings-spacer.svelte-a747ys{display:none}}.tagging-settings-grid.svelte-18e8yem{gap:12px;display:grid}.tagging-settings-row.svelte-18e8yem{grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) minmax(80px,110px) auto minmax(90px,auto);align-items:end;gap:12px;display:grid}.tagging-do-not-pass.svelte-18e8yem{color:var(--text);white-space:nowrap;align-items:center;gap:6px;min-height:35px;font-size:13px;display:flex}.tagging-row-trailer.svelte-18e8yem{align-items:center;gap:8px;min-height:35px;display:flex}.tagging-settings-empty.svelte-18e8yem{color:var(--text-muted);margin:0}.tagging-settings-actions.svelte-18e8yem{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.tagging-settings-row.svelte-18e8yem{grid-template-columns:1fr;align-items:stretch}.tagging-settings-actions.svelte-18e8yem,.tagging-settings-actions.svelte-18e8yem .btn{width:100%}}.pricing-recalculate-section.svelte-1cdxzyk{width:100%}.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:minmax(220px,320px) minmax(260px,360px);justify-content:start;align-items:end;gap:12px;width:100%;display:grid}.pricing-recalculate-date-field.svelte-1cdxzyk{grid-column:1/-1;width:100%;max-width:320px}.pricing-recalculate-filter-field.svelte-1cdxzyk{width:100%;max-width:360px}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker{width:100%}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-trigger{justify-content:space-between;width:100%}.pricing-recalculate-actions.svelte-1cdxzyk{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:1fr}.pricing-recalculate-actions.svelte-1cdxzyk,.pricing-recalculate-actions.svelte-1cdxzyk .btn{width:100%}}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-dropdown{inset:auto auto calc(100% + 6px) 0}.settings-refresh-icon.svelte-yeq2mp{flex:0 0 16px;width:16px;height:16px}.runtime-refresh-steps.svelte-yeq2mp{color:var(--text-muted);gap:8px;margin-top:14px;padding-left:18px;font-size:13px;display:grid}.runtime-refresh-step.is-ok.svelte-yeq2mp{color:var(--success)}.runtime-refresh-step.is-partial.svelte-yeq2mp{color:var(--warning)}.runtime-refresh-step.is-failed.svelte-yeq2mp{color:var(--danger)}.runtime-settings-copy.svelte-tldbe5{min-width:180px}.runtime-settings-fields.svelte-tldbe5{gap:16px;width:min(560px,100%);display:grid}.runtime-setting-row.svelte-tldbe5{grid-template-columns:minmax(220px,1fr) 180px;align-items:center;gap:20px;display:grid}.runtime-setting-description.svelte-tldbe5,.runtime-setting-managed.svelte-tldbe5{color:var(--text-muted);margin:4px 0 0;font-size:12px}.runtime-setting-managed.svelte-tldbe5{color:var(--warning)}@media (width<=720px){.runtime-setting-row.svelte-tldbe5{grid-template-columns:1fr;gap:8px}}.settings-version-footer.svelte-3naq7u{color:var(--text-muted);text-align:right;margin-top:24px;font-size:12px}.chat-message.svelte-12s99s5{border:1px solid var(--border);background:var(--bg);border-radius:10px;max-width:94%;padding:10px 42px 10px 12px;position:relative;overflow:hidden}.chat-message.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.chat-message.is-after-anchor.svelte-12s99s5,.chat-function-note.is-after-anchor.svelte-12s99s5{opacity:.46}.chat-message.role-user.svelte-12s99s5{align-self:flex-start}.chat-message.role-assistant.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 18%, var(--bg));align-self:flex-end}.chat-message.role-system.svelte-12s99s5{background:color-mix(in srgb, var(--warning) 10%, var(--bg));align-self:center;width:100%;max-width:100%}.chat-message.role-error.svelte-12s99s5{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg));align-self:flex-end}.chat-message.role-error.svelte-12s99s5 .chat-role:where(.svelte-12s99s5){color:color-mix(in srgb, var(--danger) 75%, var(--text-muted))}.chat-message-meta.svelte-12s99s5{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.chat-role.svelte-12s99s5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:12px;font-weight:700}.chat-time.svelte-12s99s5{color:var(--text-muted);white-space:nowrap;font-size:11px}.chat-content.svelte-12s99s5{white-space:pre-wrap;overflow-wrap:break-word;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.5}.chat-message.svelte-12s99s5:before,.chat-function-note.svelte-12s99s5:before{content:"";z-index:0;pointer-events:none;opacity:var(--prompt-cache-visibility);background:linear-gradient(90deg, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) 0, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) var(--prompt-cache-fill), transparent var(--prompt-cache-fill), transparent 100%);transition:opacity .15s;position:absolute;inset:0}.chat-message.svelte-12s99s5>:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5>:where(.svelte-12s99s5){z-index:1;position:relative}.chat-message-copy.svelte-12s99s5{z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 92%, transparent);width:26px;height:26px;color:var(--text-muted);opacity:0;pointer-events:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:opacity .12s,transform .12s,color .12s,background-color .12s,border-color .12s;display:inline-flex;position:absolute;bottom:6px;right:6px;transform:translateY(3px)}.chat-message.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-message.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-message-copy.is-copied.svelte-12s99s5{opacity:1;pointer-events:auto;transform:translateY(0)}.chat-message-copy.svelte-12s99s5:hover{color:var(--text);background:var(--bg-surface-hover)}.chat-message-copy.svelte-12s99s5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.chat-message-copy.is-copied.svelte-12s99s5{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border))}.chat-tool-calls.svelte-12s99s5{border-top:1px solid var(--border);flex-direction:column;gap:3px;margin-top:8px;padding-top:6px;display:flex}.chat-tool-call.svelte-12s99s5{color:var(--text-muted);border-radius:5px;min-width:0;padding:3px 5px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;position:relative;overflow:hidden}.chat-tool-call-summary.svelte-12s99s5{cursor:pointer;align-items:baseline;gap:6px;min-width:0;display:flex}.chat-tool-call-preview.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;opacity:.8;flex:1;min-width:0;overflow:hidden}.chat-tool-call-arguments.svelte-12s99s5{background:color-mix(in srgb, var(--border) 45%, transparent);color:var(--text);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;max-height:200px;margin-top:5px;padding:6px 8px;line-height:1.45;overflow:auto}.chat-tool-call-name.svelte-12s99s5:before{content:"⚡"}.chat-function-note.svelte-12s99s5{max-width:94%;color:var(--text-muted);background:color-mix(in srgb, var(--border) 40%, transparent);border:1px dashed var(--border);border-radius:12px;align-self:center;padding:4px 42px 4px 12px;font-size:12px;position:relative;overflow:hidden}.chat-function-note.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-inner.svelte-12s99s5{align-items:baseline;gap:6px;min-height:26px;display:flex;overflow:hidden}.chat-function-note-inner.svelte-12s99s5 .chat-time:where(.svelte-12s99s5){flex-shrink:0;margin-left:auto}.chat-function-call-id.svelte-12s99s5{color:var(--text-muted);overflow-wrap:anywhere;margin-top:6px;font-size:10px}.chat-function-label.svelte-12s99s5{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}.chat-function-label.svelte-12s99s5:before{content:"▸";margin-right:4px;transition:transform .12s;display:inline-block}.chat-function-note-details[open].svelte-12s99s5 .chat-function-label:where(.svelte-12s99s5):before{transform:rotate(90deg)}.chat-function-detail.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;overflow:hidden}.chat-function-note.role-function-call.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));align-self:flex-end}.chat-function-note.role-function-result.svelte-12s99s5{background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 30%, var(--border));align-self:flex-start}.chat-function-note.is-anchor.role-function-call.svelte-12s99s5,.chat-function-note.is-anchor.role-function-result.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-details.svelte-12s99s5{width:100%}.chat-function-note-details.svelte-12s99s5>summary{cursor:pointer;list-style:none}.chat-function-note-details.svelte-12s99s5>summary::-webkit-details-marker{display:none}.chat-function-expanded.svelte-12s99s5{border-top:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);max-height:200px;margin-top:6px;padding-top:6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;overflow:auto}@media (width<=768px){.chat-message.svelte-12s99s5{max-width:100%}}@media (hover:none){.chat-message-copy.svelte-12s99s5{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.chat-message-copy.svelte-12s99s5{transition:none}}.conversation-drawer.svelte-ssrzja{width:var(--conversation-panel-width);background:var(--bg-surface);border-left:1px solid var(--border);z-index:12;flex-direction:column;flex:none;min-width:0;height:100vh;display:flex;position:sticky;top:0}.conversation-drawer-fullscreen.svelte-ssrzja{z-index:70;border-left:0;flex-basis:auto;width:100vw;height:100dvh;position:fixed;inset:0}.conversation-drawer-fullscreen.svelte-ssrzja .conversation-resize-handle:where(.svelte-ssrzja){display:none}.conversation-resize-handle.svelte-ssrzja{z-index:2;cursor:col-resize;touch-action:none;background:0 0;border:0;border-radius:0;outline:none;width:10px;padding:0;position:absolute;top:0;bottom:0;left:-5px}.conversation-resize-handle.svelte-ssrzja:after{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:4px}.conversation-resize-handle.svelte-ssrzja:hover:after,.conversation-resize-handle.svelte-ssrzja:focus-visible:after{background:color-mix(in srgb, var(--accent) 70%, var(--border))}body.conversation-panel-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.conversation-drawer-header.svelte-ssrzja{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.conversation-drawer-header-actions.svelte-ssrzja{align-items:center;gap:6px;display:flex}.conversation-drawer-title.svelte-ssrzja{align-items:center;gap:9px;min-width:0;display:flex}.conversation-follow-status.svelte-ssrzja{justify-content:center;align-items:center;margin:-4px;padding:4px;display:inline-flex}.conversation-drawer-header.svelte-ssrzja h3{font-size:16px;font-weight:700}#interactions-drawer-content.svelte-ssrzja{position:relative}.conversation-message-navigation.svelte-ssrzja{z-index:4;opacity:0;pointer-events:none;flex-direction:column;gap:4px;width:max-content;height:0;margin-left:auto;margin-right:12px;transition:opacity .12s,transform .12s;display:flex;position:sticky;top:12px;transform:translateY(-3px)}#interactions-drawer-content.svelte-ssrzja:hover .conversation-message-navigation:where(.svelte-ssrzja),.conversation-message-navigation.svelte-ssrzja:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja){border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 94%, transparent);width:30px;height:30px;min-height:30px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 1px 3px #00000029}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):hover{color:var(--text);background:var(--bg-surface-hover)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.conversation-drawer-footer.svelte-ssrzja{border-top:1px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;gap:9px;padding:10px 16px;display:flex}.conversation-composer.svelte-ssrzja{flex-direction:column;gap:7px;display:flex}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja){resize:vertical;border:1px solid var(--border);background:var(--bg);width:100%;min-height:50px;color:var(--text);font:inherit;border-radius:7px;padding:9px 10px;line-height:1.45}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):focus{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:1px}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):disabled{opacity:.65}.conversation-composer-actions.svelte-ssrzja{justify-content:space-between;align-items:center;gap:10px;display:flex}.conversation-endpoint.svelte-ssrzja{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:11px;overflow:hidden}.conversation-send-error.svelte-ssrzja{color:var(--danger);font-size:12px}.conversation-truncated.svelte-ssrzja{color:var(--text-muted);padding:0 16px 14px;font-size:12px}.conversation-cache-legend.svelte-ssrzja{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin:12px 16px 0;padding:0;font-family:inherit;font-size:11px;display:flex}.conversation-cache-legend.svelte-ssrzja:hover{color:var(--text)}.conversation-cache-legend.svelte-ssrzja:focus-visible{outline:2px solid color-mix(in srgb, var(--prompt-cache-color) 35%, transparent);outline-offset:3px;border-radius:3px}.conversation-cache-switch.svelte-ssrzja{background:color-mix(in srgb, var(--text-muted) 30%, var(--border));border-radius:999px;flex:none;width:28px;height:16px;transition:background-color .15s;position:relative}.conversation-cache-switch.is-active.svelte-ssrzja{background:color-mix(in srgb, var(--prompt-cache-color) 80%, var(--bg))}.conversation-cache-switch-thumb.svelte-ssrzja{background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000003d}.conversation-cache-switch.is-active.svelte-ssrzja .conversation-cache-switch-thumb:where(.svelte-ssrzja){transform:translate(12px)}.conversation-cache-estimate.svelte-ssrzja{opacity:.75}.conversation-thread.svelte-ssrzja{flex-direction:column;gap:10px;padding:14px 16px 20px;display:flex}.conversation-live-status.svelte-ssrzja{color:var(--text-muted);align-items:center;gap:10px;padding:4px 16px 20px;font-size:13px;display:flex}@media (hover:none){.conversation-message-navigation.svelte-ssrzja{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.conversation-message-navigation.svelte-ssrzja{transition:none}} diff --git a/internal/admin/dashboard/static/dist/assets/index-D05Km9Si.js b/internal/admin/dashboard/static/dist/assets/index-D05Km9Si.js deleted file mode 100644 index ff9b4635c..000000000 --- a/internal/admin/dashboard/static/dist/assets/index-D05Km9Si.js +++ /dev/null @@ -1,68 +0,0 @@ -(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible;function d(e){return typeof e==`function`}var f=()=>{};function p(e){for(var t=0;t{e=n,t=r}),resolve:e,reject:t}}function h(e,t,n=!1){return e===void 0?n?t():t:e}function g(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var _=1<<24,v=1024,y=2048,b=4096,x=8192,S=16384,C=32768,w=1<<25,T=65536,ee=1<<19,te=1<<20,ne=1<<25,re=65536,ie=1<<21,ae=1<<22,oe=1<<23,se=Symbol(`$state`),ce=Symbol(`legacy props`),le=Symbol(``),ue=Symbol(`attributes`),de=Symbol(`class`),fe=Symbol(`style`),pe=Symbol(`text`),me=Symbol(`form reset`),he=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ge=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function _e(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function ve(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function ye(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function be(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function xe(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function Se(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Ce(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function we(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Te(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Ee(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function De(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Oe={},ke=Symbol(`uninitialized`),Ae=`http://www.w3.org/1999/xhtml`,je=`http://www.w3.org/2000/svg`,Me=`http://www.w3.org/1998/Math/MathML`;function Ne(){console.warn(`https://svelte.dev/e/derived_inert`)}function Pe(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Fe(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Ie(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var Le=!1;function Re(e){Le=e}var ze;function Be(e){if(e===null)throw Pe(),Oe;return ze=e}function Ve(){return Be(yn(ze))}function E(e){if(Le){if(yn(ze)!==null)throw Pe(),Oe;ze=e}}function He(e=1){if(Le){for(var t=e,n=ze;t--;)n=yn(n);ze=n}}function Ue(e=!0){for(var t=0,n=ze;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=yn(n);e&&n.remove(),n=i}}function We(e){if(!e||e.nodeType!==8)throw Pe(),Oe;return e.data}function Ge(e){return e===this.v}function Ke(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function qe(e){return!Ke(e,this.v)}var Je=null;function Ye(e){Je=e}function D(e,t=!1,n){Je={p:Je,i:!1,c:null,e:null,s:e,x:null,r:rr,l:null}}function O(e){var t=Je,n=t.e;if(n!==null){t.e=null;for(var r of n)An(r)}return e!==void 0&&(t.x=e),t.i=!0,Je=t.p,e??{}}function Xe(){return!0}var Ze=[];function Qe(){var e=Ze;Ze=[],p(e)}function $e(e){if(Ze.length===0&&!Rt){var t=Ze;queueMicrotask(()=>{t===Ze&&Qe()})}Ze.push(e)}function et(){for(;Ze.length>0;)Qe()}function tt(e){var t=rr;if(t===null)return er.f|=oe,e;if(!(t.f&32768)&&!(t.f&4))throw e;nt(e,t)}function nt(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}var rt=~(y|b|v);function it(e,t){e.f=e.f&rt|t}function at(e){e.f&512||e.deps===null?it(e,v):it(e,b)}function ot(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=re,ot(t.deps))}function st(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),ot(e.deps),it(e,v)}var ct=!1;function lt(e){var t=ct;try{return ct=!1,[e(),ct]}finally{ct=t}}function ut(e,t){if(t){let t=document.body;e.autofocus=!0,$e(()=>{document.activeElement===t&&e.focus()})}}function dt(e){Le&&vn(e)!==null&&bn(e)}var ft=!1;function pt(){ft||(ft=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[me]?.()})},{capture:!0}))}function mt(e){var t=er,n=rr;nr(null),ir(null);try{return e()}finally{nr(t),ir(n)}}function ht(e,t,n,r=n){e.addEventListener(t,()=>mt(n));let i=e[me];i?e[me]=()=>{i(),r(!0)}:e[me]=()=>r(!0),pt()}function gt(e){let t=0,n=rn(0),r;return()=>{Dn()&&(L(n),Fn(()=>(t===0&&(r=Tr(()=>e(()=>cn(n)))),t+=1,()=>{$e(()=>{--t,t===0&&(r?.(),r=void 0,cn(n))})})))}}var _t=T|ee;function vt(e,t,n,r){new yt(e,t,n,r)}var yt=class{parent;is_pending=!1;transform_error;#e;#t=Le?ze:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=gt(()=>(this.#m=rn(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=rr;t.b=this,t.f|=128,n(e)},this.parent=rr.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=In(()=>{if(Le){let e=this.#t;Ve();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},_t),Le&&(this.#e=ze)}#g(){try{this.#a=Rn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Rn(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Rn(()=>e(this.#e)),$e(()=>{var e=this.#c=document.createDocumentFragment(),t=_n();e.append(t),this.#a=this.#x(()=>Rn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Gn(this.#o,()=>{this.#o=null}),this.#b(Pt))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Rn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Yn(this.#a,e);let t=this.#n.pending;this.#o=Rn(()=>t(this.#e))}else this.#b(Pt)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){st(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=rr,n=er,r=Je;ir(this.#i),nr(this.#i),Ye(this.#i.ctx);try{return Wt.ensure(),e()}catch(e){return tt(e),null}finally{ir(t),nr(n),Ye(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&Gn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,$e(()=>{this.#d=!1,this.#m&&on(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),L(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;Pt?.is_fork?(this.#a&&Pt.skip_effect(this.#a),this.#o&&Pt.skip_effect(this.#o),this.#s&&Pt.skip_effect(this.#s),Pt.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(Hn(this.#a),null),this.#o&&=(Hn(this.#o),null),this.#s&&=(Hn(this.#s),null),Le&&(Be(this.#t),He(),Be(Ue()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Ie();return}r=!0,i&&De(),this.#s!==null&&Gn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){nt(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Rn(()=>{var t=rr;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return nt(e,this.#i.parent),null}}))};$e(()=>{var t;try{t=this.transform_error(e)}catch(e){nt(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>nt(e,this.#i&&this.#i.parent)):o(t)})}};function bt(e,t,n,r){let i=Xe()?wt:Dt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=rr,c=xt(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){nt(e,s)}St()}}var d=Ct();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>Et(e))).then(u).catch(e=>nt(e,s)).finally(d)}l?l.then(()=>{c(),f(),St()}):f()}function xt(){var e=rr,t=er,n=Je,r=Pt;return function(i=!0){ir(e),nr(t),Ye(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function St(e=!0){ir(null),nr(null),Ye(null),e&&Pt?.deactivate()}function Ct(){var e=rr,t=e.b,n=Pt,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function wt(e){var t=2|y;return rr!==null&&(rr.f|=ee),{ctx:Je,deps:null,effects:null,equals:Ge,f:t,fn:e,reactions:null,rv:0,v:ke,wv:0,parent:rr,ac:null}}var Tt=Symbol(`obsolete`);function Et(e,t,n){let r=rr;r===null&&_e();var i=void 0,a=rn(ke),o=!er,s=new Set;return Pn(()=>{var t=rr,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==he&&n.reject(e)}).finally(St)}catch(e){n.reject(e),St()}var c=Pt;if(o){if(t.f&32768)var l=Ct();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(Tt);else for(let e of s.values())e.reject(Tt);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==Tt&&(c.activate(),t?(a.f|=oe,on(a,t)):(a.f&8388608&&(a.f^=oe),on(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),On(()=>{for(let e of s)e.reject(Tt)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function k(e){let t=wt(e);return or(t),t}function Dt(e){let t=wt(e);return t.equals=qe,t}function Ot(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n{t.ac.abort(he),t.ac=null}),t.fn!==null&&(t.teardown=f),br(t,0),Bn(t))}function Mt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&xr(t)}var Nt=null,Pt=null,Ft=null,It=null,Lt=null,Rt=!1,zt=!1,Bt=null,Vt=null,Ht=0,Ut=1,Wt=class e{id=Ut++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){Nt===null?Nt=this:(Nt.#n=this,this.#t=Nt),Nt=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)it(r,y),t(r);for(r of n.m)it(r,b),t(r)}this.#p.add(e)}#g(){this.#e=!0,Ht++>1e3&&(this.#x(),Kt());for(let e of this.#u)this.#d.delete(e),it(e,y),this.schedule(e);for(let e of this.#d)it(e,b),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=Bt=[],r=[],i=Vt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw $t(e),this.#h()||this.discard(),t}if(Pt=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(Bt=null,Vt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Qt(e,t);i.length>0&&Pt.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),Ft=this,Jt(r),Jt(n),Ft=null,this.#s?.resolve();var s=Pt;if(this.#a===0&&(this.#c.length===0||s!==null)&&this.#x(),this.#c.length>0)if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this;s!==null&&s.#g()}#_(e,t,n){e.f^=v;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=v:i&4?t.push(r):gr(r)&&(i&16&&this.#d.add(r),xr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),it(i,y),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),Pt=this,this.#g()}#b(e){for(var t=0;t{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=m()).promise}static ensure(){if(Pt===null){let t=Pt=new e;!zt&&!Rt&&$e(()=>{t.#e||t.flush()})}return Pt}apply(){It=null}schedule(e){if(Lt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(Bt!==null&&t===rr&&(er===null||!(er.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=v}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?Nt=e:t.#t=e,this.linked=!1}}};function Gt(e){var t=Rt;Rt=!0;try{var n;for(e&&(Pt!==null&&!Pt.is_fork&&Pt.flush(),n=e());;){if(et(),Pt===null)return n;Pt.flush()}}finally{Rt=t}}function Kt(){try{Se()}catch(e){nt(e,Lt)}}var qt=null;function Jt(e){var t=e.length;if(t!==0){for(var n=0;n0)){tn.clear();for(let e of qt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)qt.has(n)&&(qt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||xr(n)}}qt.clear()}}qt=null}}function Yt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Yt(i,t,n,r):e&4194320&&!(e&2048)&&Xt(i,t,r)&&(it(i,y),Zt(i))}}function Xt(e,t,r){let i=r.get(e);if(i!==void 0)return i;if(e.deps!==null)for(let i of e.deps){if(n.call(t,i))return!0;if(i.f&2&&Xt(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Zt(e){Pt.schedule(e)}function Qt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),it(e,v);for(var n=e.first;n!==null;)Qt(n,t),n=n.next}}function $t(e){it(e,v);for(var t=e.first;t!==null;)$t(t),t=t.next}var en=new Set,tn=new Map,nn=!1;function rn(e,t){return{f:0,v:e,reactions:null,equals:Ge,rv:0,wv:0}}function A(e,t){let n=rn(e,t);return or(n),n}function an(e,t=!1,n=!0){let r=rn(e);return t||(r.equals=qe),r}function j(e,t,n=!1){return er!==null&&(!tr||er.f&131072)&&Xe()&&er.f&4325394&&(ar===null||!ar.has(e))&&Ee(),on(e,n?M(t):t,Vt)}function on(e,t,n=null){if(!e.equals(t)){tn.set(e,Qn?t:e.v);var r=Wt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&kt(t),It===null&&at(t)}e.wv=hr(),ln(e,y,n),Xe()&&rr!==null&&rr.f&1024&&!(rr.f&96)&&(lr===null?ur([e]):lr.push(e)),!r.is_fork&&en.size>0&&!nn&&sn()}return t}function sn(){nn=!1;for(let e of en){e.f&1024&&it(e,b);let t;try{t=gr(e)}catch{t=!0}t&&xr(e)}en.clear()}function cn(e){j(e,e.v+1)}function ln(e,t,n){var r=e.reactions;if(r!==null)for(var i=Xe(),a=r.length,o=0;o{if(pr===d)return e();var t=er,n=pr;nr(null),mr(d);var r=e();return nr(t),mr(n),r};return i&&r.set(`length`,A(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&we();var i=r.get(t);return i===void 0?f(()=>{var e=A(n.value,u);return r.set(t,e),e}):j(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>A(ke,u));r.set(t,e),cn(o)}}else j(n,ke),cn(o);return!0},get(e,n,i){if(n===se)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>A(M(s?e[n]:ke),u)),r.set(n,o)),o!==void 0){var c=L(o);return c===ke?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=L(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==ke)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===se)return!0;var n=r.get(t),i=n!==void 0&&n.v!==ke||Reflect.has(e,t);return(n!==void 0||rr!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>A(i?M(e[t]):ke,u)),r.set(t,n)),L(n)===ke)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;dA(ke,u)),r.set(d+``,p)):j(p,ke)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>A(void 0,u)),j(c,M(n)),r.set(t,c));else{l=c.v!==ke;var m=f(()=>M(n));j(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&j(g,_+1)}cn(o)}return!0},ownKeys(e){L(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==ke});for(var[n,i]of r)i.v!==ke&&!(n in e)&&t.push(n);return t},setPrototypeOf(){Te()}})}function un(e){try{if(typeof e==`object`&&e&&se in e)return e[se]}catch{}return e}function dn(e,t){return Object.is(un(e),un(t))}var fn,pn,mn,hn;function gn(){if(fn===void 0){fn=window,pn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;mn=a(t,`firstChild`).get,hn=a(t,`nextSibling`).get,u(e)&&(e[de]=void 0,e[ue]=null,e[fe]=void 0,e.__e=void 0),u(n)&&(n[pe]=void 0)}}function _n(e=``){return document.createTextNode(e)}function vn(e){return mn.call(e)}function yn(e){return hn.call(e)}function N(e,t){if(!Le)return vn(e);var n=vn(ze);if(n===null)n=ze.appendChild(_n());else if(t&&n.nodeType!==3){var r=_n();return n?.before(r),Be(r),r}return t&&Cn(n),Be(n),n}function P(e,t=!1){if(!Le){var n=vn(e);return n instanceof Comment&&n.data===``?yn(n):n}if(t){if(ze?.nodeType!==3){var r=_n();return ze?.before(r),Be(r),r}Cn(ze)}return ze}function F(e,t=1,n=!1){let r=Le?ze:e;for(var i;t--;)i=r,r=yn(r);if(!Le)return r;if(n){if(r?.nodeType!==3){var a=_n();return r===null?i?.after(a):r.before(a),Be(a),a}Cn(r)}return Be(r),r}function bn(e){e.textContent=``}function xn(){return!1}function Sn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function Cn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function wn(e){rr===null&&(er===null&&xe(e),be()),Qn&&ye(e)}function Tn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function En(e,t){var n=rr;n!==null&&n.f&8192&&(e|=x);var r={ctx:Je,deps:null,nodes:null,f:e|y|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};Pt?.register_created_effect(r);var i=r;if(e&4)Bt===null?Wt.ensure().schedule(r):Bt.push(r);else if(t!==null){try{xr(r)}catch(e){throw Hn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=T))}if(i!==null&&(i.parent=n,n!==null&&Tn(i,n),er!==null&&er.f&2&&!(e&64))){var a=er;(a.effects??=[]).push(i)}return r}function Dn(){return er!==null&&!tr}function On(e){let t=En(8,null);return it(t,v),t.teardown=e,t}function kn(e){wn(`$effect`);var t=rr.f;if(!er&&t&32&&Je!==null&&!Je.i){var n=Je;(n.e??=[]).push(e)}else return An(e)}function An(e){return En(4|te,e)}function jn(e){Wt.ensure();let t=En(64|ee,e);return()=>{Hn(t)}}function Mn(e){Wt.ensure();let t=En(64|ee,e);return(e={})=>new Promise(n=>{e.outro?Gn(t,()=>{Hn(t),n(void 0)}):(Hn(t),n(void 0))})}function Nn(e){return En(4,e)}function Pn(e){return En(ae|ee,e)}function Fn(e,t=0){return En(8|t,e)}function I(e,t=[],n=[],r=[]){bt(r,t,n,t=>{En(8,()=>{e(...t.map(L))})})}function In(e,t=0){return En(16|t,e)}function Ln(e,t=0){return En(_|t,e)}function Rn(e){return En(32|ee,e)}function zn(e){var t=e.teardown;if(t!==null){let e=Qn,n=er;$n(!0),nr(null);try{t.call(null)}finally{$n(e),nr(n)}}}function Bn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&mt(()=>{e.abort(he)});var r=n.next;n.f&64?n.parent=null:Hn(n,t),n=r}}function Vn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Hn(t),t=n}}function Hn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Un(e.nodes.start,e.nodes.end),n=!0),e.f|=w,Bn(e,t&&!n),br(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();zn(e),e.f^=w,e.f|=S;var i=e.parent;i!==null&&i.first!==null&&Wn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Un(e,t){for(;e!==null;){var n=e===t?null:yn(e);e.remove(),e=n}}function Wn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Gn(e,t,n=!0){var r=[];Kn(e,r,!0);var i=()=>{n&&Hn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Kn(e,t,n){if(!(e.f&8192)){e.f^=x;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;Kn(i,t,o?n:!1)}i=a}}}function qn(e){Jn(e,!0)}function Jn(e,t){if(e.f&8192){e.f^=x,e.f&1024||(it(e,y),Wt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;Jn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Yn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:yn(n);t.append(n),n=i}}var Xn=null,Zn=!1,Qn=!1;function $n(e){Qn=e}var er=null,tr=!1;function nr(e){er=e}var rr=null;function ir(e){rr=e}var ar=null;function or(e){er!==null&&(ar??=new Set).add(e)}var sr=null,cr=0,lr=null;function ur(e){lr=e}var dr=1,fr=0,pr=fr;function mr(e){pr=e}function hr(){return++dr}function gr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~re),t&4096){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}t&512&&It===null&&it(e,v)}return!1}function _r(e,t,n=!0){var r=e.reactions;if(r!==null&&!(ar!==null&&ar.has(e)))for(var i=0;i{e.ac.abort(he)}),e.ac=null);try{e.f|=ie;var u=e.fn,d=u();e.f|=C;var f=e.deps,p=Pt?.is_fork;if(sr!==null){var m;if(p||br(e,cr),f!==null&&cr>0)for(f.length=cr+sr.length,m=0;m{s.ac.abort(he),s.ac=null,it(s,y)}),jt(s),br(s,0)}}function br(e,t){var n=e.deps;if(n!==null)for(var r=t;rn?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?$e(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Br(e,t,n,r,i){var a={capture:r,passive:i},o=zr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&On(()=>{t.removeEventListener(e,o,a)})}function R(e,t,n){(t[Ir]??={})[e]=n}function Vr(e){for(var t=0;t{throw e});throw p}}finally{e[Ir]=t,delete e.currentTarget,nr(d),ir(f)}}}var Wr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Gr(e){return Wr?.createHTML(e)??e}function Kr(e){var t=Sn(`template`);return t.innerHTML=Gr(e.replaceAll(``,``)),t.content}function qr(e,t){var n=rr;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function z(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(``);return()=>{if(Le)return qr(ze,null),ze;i===void 0&&(i=Kr(a?e:``+e),n||(i=vn(i)));var t=r||pn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=vn(t),s=t.lastChild;qr(o,s)}else qr(t,t);return t}}function Jr(e,t,n=`svg`){var r=!e.startsWith(``),i=(t&1)!=0,a=`<${n}>${r?e:``+e}`,o;return()=>{if(Le)return qr(ze,null),ze;if(!o){var e=vn(Kr(a));if(i)for(o=document.createDocumentFragment();vn(e);)o.appendChild(vn(e));else o=vn(e)}var t=o.cloneNode(!0);if(i){var n=vn(t),r=t.lastChild;qr(n,r)}else qr(t,t);return t}}function Yr(e,t){return Jr(e,t,`svg`)}function Xr(e=``){if(!Le){var t=_n(e+``);return qr(t,t),t}var n=ze;return n.nodeType===3?Cn(n):(n.before(n=_n()),Be(n)),qr(n,n),n}function Zr(){if(Le)return qr(ze,null),ze;var e=document.createDocumentFragment(),t=document.createComment(``),n=_n();return e.append(t,n),qr(t,n),e}function B(e,t){if(Le){var n=rr;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=ze),Ve();return}e!==null&&e.before(t)}var Qr=!0;function $r(e){Qr=e}function V(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[pe]??=e.nodeValue)&&(e[pe]=n,e.nodeValue=`${n}`)}function ei(e,t){return ni(e,t)}var ti=new Map;function ni(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){gn();var l=void 0,u=Mn(()=>{var u=n??t.appendChild(_n());vt(u,{pending:()=>{}},t=>{D({});var n=Je;if(o&&(n.c=o),a&&(i.$$events=a),Le&&qr(t,null),Qr=s,l=e(t,i)||{},Qr=!0,Le&&(rr.nodes.end=ze,ze===null||ze.nodeType!==8||ze.data!==`]`))throw Pe(),Oe;O()},c);var d=new Set,f=e=>{for(var n=0;n{for(var e of d)for(let n of[t,document]){var r=ti.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Ur),r.delete(e),r.size===0&&ti.delete(n)):r.set(e,i)}Rr.delete(f),u!==n&&u.parentNode?.removeChild(u)}});return ri.set(l,u),l}var ri=new WeakMap,ii=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)qn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(qn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Hn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Yn(r,t),t.append(_n()),this.#n.set(e,{effect:r,fragment:t})}else Hn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Gn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Hn(n.effect),this.#n.delete(e))};ensure(e,t){var n=Pt,r=xn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=_n();i.append(a),this.#n.set(e,{effect:Rn(()=>t(a)),fragment:i})}else this.#t.set(e,Rn(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else Le&&(this.anchor=ze),this.#a(n)}};function H(e,t,n=!1){var r;Le&&(r=ze,Ve());var i=new ii(e),a=n?T:0;function o(e,t){if(Le){var n=We(r);if(e!==parseInt(n.substring(1))){var a=Ue();Be(a),i.anchor=a,Re(!1),i.ensure(e,t),Re(!0);return}}i.ensure(e,t)}In(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function ai(e,t){return t}function oi(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;si(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=i.length===0&&n!==null;if(l){var u=n,d=u.parentNode;bn(d),d.append(u),e.items.clear()}si(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function si(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,ui(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=ne,fi(d,null,c)):qn(d):Gn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:In(()=>{p=L(f);var e=p.length;let t=!1;Le&&We(c)===`[!`!=(e===0)&&(c=Ue(),Be(c),Re(!1),t=!0);for(var r=new Set,u=Pt,v=xn(),y=0;ys(c)):(d=Rn(()=>s(ci??=_n())),d.f|=ne)),e>r.size&&ve(``,``,``),Le&&e>0&&Be(Ue()),!h)if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&Re(!0),L(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,Le&&(c=ze)}function li(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function ui(e,t,n,i,a){var o=(i&8)!=0,s=t.length,c=e.items,l=li(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v0){var ee=i&4&&s===0?n:null;if(o){for(v=0;v{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function di(e,t,n,r,i,a,o,s){var c=o&1?o&16?rn(n):an(n,!1,!1):null,l=o&2?rn(i):null;return{v:c,i:l,e:Rn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function fi(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=yn(r);if(a.before(r),r===i)return;r=o}}function pi(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function mi(e,t,n=!1,r=!1,i=!1,a=!1){var o=e,s=``;if(n){var c=e;Le&&(o=Be(vn(c)))}I(()=>{var e=rr;if(s===(s=t()??``)){Le&&Ve();return}if(n&&!Le){e.nodes=null,c.innerHTML=s,s!==``&&qr(vn(c),c.lastChild);return}if(e.nodes!==null&&(Un(e.nodes.start,e.nodes.end),e.nodes=null),s!==``){if(Le){for(var a=ze.data,l=Ve(),u=l;l!==null&&(l.nodeType!==8||l.data!==``);)u=l,l=yn(l);if(l===null)throw Pe(),Oe;qr(ze,u),o=Be(l);return}var d=Sn(r?`svg`:i?`math`:`template`,r?je:i?Me:void 0);d.innerHTML=s;var f=r||i?d:d.content;if(qr(vn(f),f.lastChild),r||i)for(;vn(f);)o.before(vn(f));else o.before(f)}})}function hi(e,t,...n){var r=new ii(e);In(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},T)}function gi(e,t,n){var r;Le&&(r=ze,Ve());var i=new ii(e);In(()=>{var e=t()??null;if(Le&&We(r)===`[`!=(e!==null)){var a=Ue();Be(a),i.anchor=a,Re(!1),i.ensure(e,e&&(t=>n(t,e))),Re(!0);return}i.ensure(e,e&&(t=>n(t,e)))},T)}var _i=()=>performance.now(),vi={tick:e=>requestAnimationFrame(e),now:()=>_i(),tasks:new Set};function yi(){let e=vi.now();vi.tasks.forEach(t=>{t.c(e)||(vi.tasks.delete(t),t.f())}),vi.tasks.size!==0&&vi.tick(yi)}function bi(e){let t;return vi.tasks.size===0&&vi.tick(yi),{promise:new Promise(n=>{vi.tasks.add(t={c:e,f:n})}),abort(){vi.tasks.delete(t)}}}function xi(e,t){mt(()=>{e.dispatchEvent(new CustomEvent(t))})}function Si(e){if(e===`float`)return`cssFloat`;if(e===`offset`)return`cssOffset`;if(e.startsWith(`--`))return e;let t=e.split(`-`);return t.length===1?t[0]:t[0]+t.slice(1).map(e=>e[0].toUpperCase()+e.slice(1)).join(``)}function Ci(e){let t={},n=e.split(`;`);for(let e of n){let[n,r]=e.split(`:`);if(!n||r===void 0)break;let i=Si(n.trim());t[i]=r.trim()}return t}var wi=e=>e,Ti=null;function Ei(e){Ti=e}function Di(e,t,n){var r=(Ti??rr).nodes,i,a,o,s=null;r.a??={element:e,measure(){i=this.element.getBoundingClientRect()},apply(){if(o?.abort(),a=this.element.getBoundingClientRect(),i.left!==a.left||i.right!==a.right||i.top!==a.top||i.bottom!==a.bottom){let e=t()(this.element,{from:i,to:a},n?.());o=ki(this.element,e,void 0,1,()=>{},()=>{o?.abort(),o=void 0})}},fix(){if(!e.getAnimations().length){var{position:t,width:n,height:r}=getComputedStyle(e);if(t!==`absolute`&&t!==`fixed`){var a=e.style;s={position:a.position,width:a.width,height:a.height,transform:a.transform},a.position=`absolute`,a.width=n,a.height=r;var o=e.getBoundingClientRect();if(i.left!==o.left||i.top!==o.top){var c=`translate(${i.left-o.left}px, ${i.top-o.top}px)`;a.transform=a.transform?`${a.transform} ${c}`:c}}}},unfix(){if(s){var t=e.style;t.position=s.position,t.width=s.width,t.height=s.height,t.transform=s.transform}}},r.a.element=e}function Oi(e,t,n,r){var i=(e&1)!=0,a=(e&2)!=0,o=i&&a,s=(e&4)!=0,c=o?`both`:i?`in`:`out`,l,u=t.inert,d=t.style.overflow,f,p;function m(){return mt(()=>l??=n()(t,r?.()??{},{direction:c}))}var h={is_global:s,in(){if(t.inert=u,!i){p?.abort(),p?.reset?.();return}a||f?.abort(),f=ki(t,m(),p,1,()=>{xi(t,`introstart`)},()=>{xi(t,`introend`),f?.abort(),f=l=void 0,t.style.overflow=d})},out(e){if(!a){e?.(),l=void 0;return}t.inert=!0,p=ki(t,m(),f,0,()=>{xi(t,`outrostart`)},()=>{xi(t,`outroend`),e?.()})},stop:()=>{f?.abort(),p?.abort()}},g=rr;if((g.nodes.t??=[]).push(h),i&&Qr){var _=s;if(!_){for(var v=g.parent;v&&v.f&65536;)for(;(v=v.parent)&&!(v.f&16););_=!v||(v.f&32768)!=0}_&&Nn(()=>{Tr(()=>h.in())})}}function ki(e,t,n,r,i,a){var o=r===1;if(d(t)){var s,c=!1;return $e(()=>{c||(s=ki(e,t({direction:o?`in`:`out`}),n,r,i,a))}),{abort:()=>{c=!0,s?.abort()},deactivate:()=>s.deactivate(),reset:()=>s.reset(),t:()=>s.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return i(),a(),{abort:f,deactivate:f,reset:f,t:()=>r};let{delay:l=0,css:u,tick:p,easing:m=wi}=t;var h=[];if(o&&n===void 0&&(p&&p(0,1),u)){var g=Ci(u(0,1));h.push(g,g)}var _=()=>1-r,v=e.animate(h,{duration:l,fill:`forwards`});return v.onfinish=()=>{v.cancel(),i();var o=n?.t()??1-r;n?.abort();var s=r-o,c=t.duration*Math.abs(s),l=[];if(c>0){var d=!1;if(u)for(var f=Math.ceil(c/(1e3/60)),h=0;h<=f;h+=1){var g=o+s*m(h/f),y=Ci(u(g,1-g));l.push(y),d||=y.overflow===`hidden`}d&&(e.style.overflow=`hidden`),_=()=>{var e=v.currentTime;return o+s*m(e/c)},p&&bi(()=>{if(v.playState!==`running`)return!1;var e=_();return p(e,1-e),!0})}v=e.animate(l,{duration:c,fill:`forwards`}),v.onfinish=()=>{_=()=>r,p?.(r,1-r),a()}},{abort:()=>{v&&(v.cancel(),v.effect=null,v.onfinish=f)},deactivate:()=>{a=f},reset:()=>{r===0&&p?.(1,0)},t:()=>_()}}function Ai(e,t,n,r,i,a){let o=Le;Le&&Ve();var s=null;Le&&ze.nodeType===1&&(s=ze,Ve());var c=Le?ze:e,l=rr,u=new ii(c,!1);In(()=>{let e=t()||null;var a=i?i():n||e===`svg`?je:void 0;if(e===null){u.ensure(null,null),$r(!0);return}return u.ensure(e,t=>{if(e){if(s=Le?s:Sn(e,a),qr(s,s),r){var n=null;Le&&Fr(e)&&s.append(n=document.createComment(``));var i=Le?vn(s):s.appendChild(_n());Le&&(i===null?Re(!1):Be(i)),Ei(l),r(s,i),n?.remove(),Ei(null)}rr.nodes.end=s,t.before(s)}Le&&Be(t)}),$r(!0),()=>{e&&$r(!1)}},T),On(()=>{$r(!0)}),o&&(Re(!0),Be(c))}function ji(e,t){var n=void 0,r;Ln(()=>{n!==(n=t())&&(r&&=(Hn(r),null),n&&(r=Rn(()=>{Nn(()=>n(e))})))})}function Mi(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t=0;){var s=o+a;(o===0||Fi.includes(r[o-1]))&&(s===r.length||Fi.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function Li(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function Ri(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function zi(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(Ri)),i&&c.push(...Object.keys(i).map(Ri));var l=0,u=-1;let t=e.length;for(var d=0;d{Hi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),On(()=>{t.disconnect()})}function Wi(e,t,n=t){var r=new WeakSet,i=!0;ht(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),Gi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&Gi(o)}n(a),e.__value=a,Pt!==null&&r.add(Pt)}),Nn(()=>{var a=t();if(e===document.activeElement){var o=Pt;if(r.has(o))return}if(Hi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=Gi(s),n(a))}e.__value=a,i=!1}),Ui(e)}function Gi(e){return`__value`in e?e.__value:e.value}var Ki=Symbol(`class`),qi=Symbol(`style`),Ji=Symbol(`is custom element`),Yi=Symbol(`is html`),Xi=ge?`link`:`LINK`,Zi=ge?`input`:`INPUT`,Qi=ge?`option`:`OPTION`,$i=ge?`select`:`SELECT`,ea=ge?`progress`:`PROGRESS`;function ta(e){if(Le){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;G(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;G(e,`checked`,null),e.checked=r}}};e[me]=n,$e(n),pt()}}function na(e,t){var n=sa(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==ea)||(e.value=t??``)}function ra(e,t){var n=sa(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function ia(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function G(e,t,n,r){var i=sa(e);Le&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Xi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[le]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&la(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function aa(e,t,n,r,i=!1,a=!1){if(Le&&i&&e.nodeName===Zi){var o=e;(o.type===`checkbox`?`defaultChecked`:`defaultValue`)in n||ta(o)}var s=sa(e),c=s[Ji],l=!s[Yi];let u=Le&&c;u&&Re(!1);var d=t||{},f=e.nodeName===Qi;for(var p in t)p in n||(n[p]=null);n.class?n.class=Pi(n.class):(r||n[Ki])&&(n.class=null),n[qi]&&(n.style??=null);var m=la(e);if(e.nodeName===Zi&&`type`in n&&(`value`in n||`__value`in n)){var h=n.type;(h!==d.type||h===void 0&&e.hasAttribute(`type`))&&(d.type=h,G(e,`type`,h,a))}for(let i in n){let o=n[i];if(f&&i===`value`&&o==null){e.value=e.__value=``,d[i]=o;continue}if(i===`class`){W(e,e.namespaceURI===`http://www.w3.org/1999/xhtml`,o,r,t?.[Ki],n[Ki]),d[i]=o,d[Ki]=n[Ki];continue}if(i===`style`){Vi(e,o,t?.[qi],n[qi]),d[i]=o,d[qi]=n[qi];continue}var g=d[i];if(!(o===g&&!(o===void 0&&e.hasAttribute(i)))){d[i]=o;var _=i[0]+i[1];if(_!==`$$`)if(_===`on`){let t={},n=`$$`+i,r=i.slice(2);var v=Or(r);if(Er(r)&&(r=r.slice(0,-7),t.capture=!0),!v&&g){if(o!=null)continue;e.removeEventListener(r,d[n],t),d[n]=null}if(v)R(r,e,o),Vr([r]);else if(o!=null){function a(e){d[i].call(this,e)}d[n]=zr(r,e,a,t)}}else if(i===`style`)G(e,i,o);else if(i===`autofocus`)ut(e,!!o);else if(!c&&(i===`__value`||i===`value`&&o!=null))e.value=e.__value=o;else if(i===`selected`&&f)ia(e,o);else{var y=i;l||(y=jr(y));var b=y===`defaultValue`||y===`defaultChecked`;if(o==null&&!c&&!b)if(s[i]=null,y===`value`||y===`checked`){let n=e,r=t===void 0;if(y===`value`){let e=n.defaultValue;n.removeAttribute(y),n.defaultValue=e,n.value=n.__value=r?e:null}else{let e=n.defaultChecked;n.removeAttribute(y),n.defaultChecked=e,n.checked=r?e:!1}}else e.removeAttribute(i);else b||m.includes(y)&&(c||typeof o!=`string`)?(e[y]=o,y in s&&(s[y]=ke)):typeof o!=`function`&&G(e,y,o,a)}}}return u&&Re(!0),d}function oa(e,t,n=[],r=[],i=[],a,o=!1,s=!1){bt(i,n,r,n=>{var r=void 0,i={},c=e.nodeName===$i,l=!1;if(Ln(()=>{var u=t(...n.map(L)),d=aa(e,r,u,a,o,s);l&&c&&`value`in u&&Hi(e,u.value);for(let e of Object.getOwnPropertySymbols(i))u[e]||Hn(i[e]);for(let t of Object.getOwnPropertySymbols(u)){var f=u[t];t.description===`@attach`&&(!r||f!==r[t])&&(i[t]&&Hn(i[t]),i[t]=Rn(()=>ji(e,()=>f))),d[t]=f}r=d}),c){var u=e;Nn(()=>{Hi(u,r.value,!0),Ui(u)})}l=!0})}function sa(e){return e[ue]??={[Ji]:e.nodeName.includes(`-`),[Yi]:e.namespaceURI===Ae}}var ca=new Map;function la(e){var t=e.getAttribute(`is`)||e.nodeName,n=ca.get(t);if(n)return n;ca.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&s!==`innerHTML`&&s!==`textContent`&&s!==`innerText`&&n.push(s);i=l(i)}return n}function ua(e,t,n=t){var r=new WeakSet;ht(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=fa(e)?pa(a):a,n(a),Pt!==null&&r.add(Pt),await Sr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(Le&&e.defaultValue!==e.value||Tr(t)==null&&e.value)&&(n(fa(e)?pa(e.value):e.value),Pt!==null&&r.add(Pt)),Fn(()=>{var n=t();if(e===document.activeElement){var i=Pt;if(r.has(i))return}fa(e)&&n===pa(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function da(e,t,n=t){ht(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(Le&&e.defaultChecked!==e.checked||Tr(t)==null)&&n(e.checked),Fn(()=>{e.checked=!!t()})}function fa(e){var t=e.type;return t===`number`||t===`range`}function pa(e){return e===``?null:+e}function ma(e,t){return e===t||e?.[se]===t}function ha(e={},t,n,r){var i=Je.r,a=rr;return Nn(()=>{var o,s;return Fn(()=>{o=s,s=r?.()||[],Tr(()=>{ma(n(...s),e)||(t(e,...s),o&&ma(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&ma(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}var ga={get(e,t){if(!e.exclude.has(t))return e.props[t]},set(e,t){return!1},getOwnPropertyDescriptor(e,t){if(!e.exclude.has(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},has(e,t){return!e.exclude.has(t)&&t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.has(t))}};function _a(e,t,n){return new Proxy({props:e,exclude:t},ga)}function K(e,t,n,r){var i=!0,o=(n&8)!=0,s=(n&16)!=0,c=r,l=!0,u=void 0,d=()=>s&&i?(u??=wt(r),L(u)):(l&&(l=!1,c=s?Tr(r):r),c);let f;if(o){var p=se in e||ce in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=lt(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Ce(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?wt:Dt)(()=>(v=!1,g()));o&&L(y);var b=rr;return(function(e,t){if(arguments.length>0){let n=t?L(y):i&&o?M(e):e;return j(y,n),v=!0,c!==void 0&&(c=n),e}return Qn&&v||b.f&16384?y.v:L(y)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var va=new Set([`$$slots`,`$$events`,`$$legacy`,`icon`,`class`]),ya=Yr(``);function q(e,t){let n=K(t,`icon`,19,()=>[]),r=K(t,`class`,3,``),i=_a(t,va);var a=ya();oa(a,()=>({xmlns:`http://www.w3.org/2000/svg`,width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,class:r(),"aria-hidden":`true`,focusable:`false`,...i}));{let e=(t,n=f)=>{var r=Zr();U(P(r),17,n,ai,(t,n)=>{var r=k(()=>g(L(n),3));let i=()=>L(r)[0],a=()=>L(r)[1],o=()=>L(r)[2];var s=Zr();Ai(P(s),i,!0,(t,n)=>{oa(t,()=>({xmlns:`http://www.w3.org/2000/svg`,...a()}));var r=Zr(),i=P(r),s=t=>{e(t,o)},c=k(()=>Array.isArray(o()));H(i,e=>{L(c)&&e(s)}),B(n,r)}),B(t,s)}),B(t,r)};e(N(a),n),E(a)}B(e,a)}var ba=Yr(``);function xa(e){B(e,ba())}function Sa(){try{return typeof localStorage>`u`?null:localStorage}catch{return null}}function Ca(e,t=null){let n=Sa();if(!n)return t;try{return n.getItem(e)??t}catch{return t}}function wa(e,t){let n=Sa();if(n)try{n.setItem(e,String(t))}catch{}}function Ta(e){let t=Number(e);return Number.isFinite(t)?Math.min(240,Math.max(60,Math.round(t))):240}function Ea(e,t,n){return Ta(Number(e)+Number(n)-Number(t))}var Da=new class{#e=A(`system`);get theme(){return L(this.#e)}set theme(e){j(this.#e,e,!0)}#t=A(0);get tick(){return L(this.#t)}set tick(e){j(this.#t,e,!0)}init(){this.theme=Ca(`gomodel_theme`,`system`),this.apply(),window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{this.theme===`system`&&this.tick++})}set(e){this.theme=e,wa(`gomodel_theme`,e),this.apply(),this.tick++}toggle(){let e=[`light`,`system`,`dark`];this.set(e[(e.indexOf(this.theme)+1)%e.length])}apply(){let e=document.documentElement;this.theme===`system`?e.removeAttribute(`data-theme`):e.setAttribute(`data-theme`,this.theme)}},Oa=new class{#e=A(M(240));get width(){return L(this.#e)}set width(e){j(this.#e,e,!0)}get collapsed(){return this.width===60}init(){let e=Ca(`gomodel_sidebar_width`),t=Ca(`gomodel_sidebar_collapsed`)===`true`;this.setWidth(e??(t?60:240))}toggle(){this.setWidth(this.collapsed?240:60,!0)}setWidth(e,t=!1){this.width=Ta(e),typeof document<`u`&&document.documentElement.style.setProperty(`--sidebar-width`,`${this.width}px`),t&&(wa(`gomodel_sidebar_width`,this.width),wa(`gomodel_sidebar_collapsed`,this.collapsed))}},ka=new class{#e=A(M([]));get stack(){return L(this.#e)}set stack(e){j(this.#e,e,!0)}#t=1;opened(){let e=this.#t++;return this.stack=[...this.stack,e],e}closed(e){this.stack=this.stack.filter(t=>t!==e)}isTop(e){return this.stack.length>0&&this.stack[this.stack.length-1]===e}get openCount(){return this.stack.length}get anyOpen(){return this.stack.length>0}},Aa=[[`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`}]],ja=[[`path`,{d:`M12 5v14`}],[`path`,{d:`m19 12-7 7-7-7`}]],Ma=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]],Na=[[`path`,{d:`M5 12h14`}],[`path`,{d:`m12 5 7 7-7 7`}]],Pa=[[`path`,{d:`m5 12 7-7 7 7`}],[`path`,{d:`M12 19V5`}]],Fa=[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`}],[`path`,{d:`M12 22V12`}]],Ia=[[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`}],[`line`,{x1:`8`,x2:`16`,y1:`6`,y2:`6`}],[`line`,{x1:`16`,x2:`16`,y1:`14`,y2:`18`}],[`path`,{d:`M16 10h.01`}],[`path`,{d:`M12 10h.01`}],[`path`,{d:`M8 10h.01`}],[`path`,{d:`M12 14h.01`}],[`path`,{d:`M8 14h.01`}],[`path`,{d:`M12 18h.01`}],[`path`,{d:`M8 18h.01`}]],La=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}],[`path`,{d:`M8 14h.01`}],[`path`,{d:`M12 14h.01`}],[`path`,{d:`M16 14h.01`}],[`path`,{d:`M8 18h.01`}],[`path`,{d:`M12 18h.01`}],[`path`,{d:`M16 18h.01`}]],Ra=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}]],za=[[`path`,{d:`M13 17V9`}],[`path`,{d:`M18 17V5`}],[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M8 17v-3`}]],Ba=[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M18 17V9`}],[`path`,{d:`M13 17V5`}],[`path`,{d:`M8 17v-3`}]],Va=[[`path`,{d:`M20 6 9 17l-5-5`}]],Ha=[[`path`,{d:`m6 9 6 6 6-6`}]],Ua=[[`path`,{d:`m15 18-6-6 6-6`}]],Wa=[[`path`,{d:`m9 18 6-6-6-6`}]],Ga=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`}],[`path`,{d:`m9 11 3 3L22 4`}]],Ka=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m9 12 2 2 4-4`}]],qa=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8`}],[`path`,{d:`M12 18V6`}]],Ja=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 6v6l4 2`}]],Ya=[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`}]],Xa=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 15 21.84`}],[`path`,{d:`M21 5V8`}],[`path`,{d:`M21 12L18 17H22L19 22`}],[`path`,{d:`M3 12A9 3 0 0 0 14.59 14.87`}]],Za=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`}]],Qa=[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`}],[`path`,{d:`M10 9H8`}],[`path`,{d:`M16 13H8`}],[`path`,{d:`M16 17H8`}]],$a=[[`path`,{d:`m12 14 4-4`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`}]],eo=[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}],[`path`,{d:`M12 7v5l4 2`}]],to=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]],no=[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]],ro=[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`}]],io=[[`path`,{d:`M3 5h.01`}],[`path`,{d:`M3 12h.01`}],[`path`,{d:`M3 19h.01`}],[`path`,{d:`M8 5h13`}],[`path`,{d:`M8 12h13`}],[`path`,{d:`M8 19h13`}]],ao=[[`circle`,{cx:`12`,cy:`16`,r:`1`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`}]],oo=[[`path`,{d:`m16 17 5-5-5-5`}],[`path`,{d:`M21 12H9`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`}]],so=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`m21 3-7 7`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M9 21H3v-6`}]],co=[[`path`,{d:`m14 10 7-7`}],[`path`,{d:`M20 10h-6V4`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M4 14h6v6`}]],lo=[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`}]],uo=[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`}]],fo=[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`}],[`path`,{d:`m15 5 4 4`}]],po=[[`path`,{d:`M12 22v-5`}],[`path`,{d:`M15 8V2`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`}],[`path`,{d:`M9 8V2`}]],mo=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]],ho=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]],go=[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`}],[`path`,{d:`M21 3v5h-5`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`}],[`path`,{d:`M8 16H3v5`}]],_o=[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}]],vo=[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`}]],yo=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]],bo=[[`path`,{d:`m10.852 14.772-.383.923`}],[`path`,{d:`M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923`}],[`path`,{d:`m13.148 9.228.383-.923`}],[`path`,{d:`m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544`}],[`path`,{d:`m14.772 10.852.923-.383`}],[`path`,{d:`m14.772 13.148.923.383`}],[`path`,{d:`M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5`}],[`path`,{d:`M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5`}],[`path`,{d:`M6 18h.01`}],[`path`,{d:`M6 6h.01`}],[`path`,{d:`m9.228 10.852-.923-.383`}],[`path`,{d:`m9.228 13.148-.923.383`}]],xo=[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`}]],So=[[`path`,{d:`M14 17H5`}],[`path`,{d:`M19 7h-9`}],[`circle`,{cx:`17`,cy:`17`,r:`3`}],[`circle`,{cx:`7`,cy:`7`,r:`3`}]],Co=[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]],wo=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}],[`path`,{d:`m9 12 2 2 4-4`}]],To=[[`path`,{d:`m2 2 20 20`}],[`path`,{d:`M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71`}],[`path`,{d:`M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264`}]],Eo=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}]],Do=[[`path`,{d:`m18 14 4 4-4 4`}],[`path`,{d:`m18 2 4 4-4 4`}],[`path`,{d:`M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22`}],[`path`,{d:`M2 6h1.972a4 4 0 0 1 3.6 2.2`}],[`path`,{d:`M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45`}]],Oo=[[`circle`,{cx:`12`,cy:`12`,r:`4`}],[`path`,{d:`M12 2v2`}],[`path`,{d:`M12 20v2`}],[`path`,{d:`m4.93 4.93 1.41 1.41`}],[`path`,{d:`m17.66 17.66 1.41 1.41`}],[`path`,{d:`M2 12h2`}],[`path`,{d:`M20 12h2`}],[`path`,{d:`m6.34 17.66-1.41 1.41`}],[`path`,{d:`m19.07 4.93-1.41 1.41`}]],ko=[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]],Ao=[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`}],[`circle`,{cx:`12`,cy:`14`,r:`8`}]],jo=[[`path`,{d:`M10 11v6`}],[`path`,{d:`M14 11v6`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`}],[`path`,{d:`M3 6h18`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`}]],Mo=[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`}],[`path`,{d:`M12 9v4`}],[`path`,{d:`M12 17h.01`}]],No=[[`circle`,{cx:`12`,cy:`8`,r:`5`}],[`path`,{d:`M20 21a8 8 0 0 0-16 0`}]],Po=[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`}],[`circle`,{cx:`12`,cy:`7`,r:`4`}]],Fo=[[`path`,{d:`M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1`}],[`path`,{d:`M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4`}]],Io=[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`}],[`path`,{d:`m14 7 3 3`}],[`path`,{d:`M5 6v4`}],[`path`,{d:`M19 14v4`}],[`path`,{d:`M10 2v2`}],[`path`,{d:`M7 8H3`}],[`path`,{d:`M21 16h-4`}],[`path`,{d:`M11 3H9`}]],Lo=[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`}]],Ro=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]],zo=z(``),Bo=z(`
`,1);function Vo(e,t){D(t,!0);let n=K(t,`compact`,3,!1),r=[{value:`light`,icon:Oo,label:`Light theme`},{value:`system`,icon:lo,label:`System theme`},{value:`dark`,icon:uo,label:`Dark theme`}],i=k(()=>r.find(e=>e.value===Da.theme)||r[1]),a=k(()=>`Change theme (currently `+L(i).label+`)`);var o=Bo(),s=P(o);let c;U(s,21,()=>r,e=>e.value,(e,t)=>{var n=zo();let r;q(N(n),{get icon(){return L(t).icon},class:`theme-icon`}),E(n),I(()=>{r=W(n,1,`theme-btn svelte-1keql7b`,null,r,{active:Da.theme===L(t).value}),G(n,`aria-pressed`,Da.theme===L(t).value),G(n,`title`,L(t).label),G(n,`aria-label`,L(t).label)}),R(`click`,n,()=>Da.set(L(t).value)),B(e,n)}),E(s);var l=F(s,2);let u;q(N(l),{get icon(){return L(i).icon},class:`theme-icon`}),E(l),I(()=>{c=W(s,1,`theme-toggle svelte-1keql7b`,null,c,{"is-compact":n()}),u=W(l,1,`theme-toggle-mobile svelte-1keql7b`,null,u,{"is-compact":n()}),G(l,`title`,L(a)),G(l,`aria-label`,L(a))}),R(`click`,l,()=>Da.toggle()),B(e,o),O()}Vr([`click`]);function Ho(){return typeof window>`u`?`/`:window.GOMODEL_BASE_PATH||`/`}function Uo(e){let t=Ho();return!e||e.charAt(0)!==`/`||e.indexOf(`//`)===0||t===`/`||e===t||e.indexOf(t+`/`)===0?e:t+e}function Wo(e){let t=Ho();return t===`/`||!e?e:e===t?`/`:e.indexOf(t+`/`)===0?e.slice(t.length)||`/`:e}function Go(){return typeof window>`u`?``:window.GOMODEL_VERSION||``}function Ko(){return typeof window>`u`?!1:window.GOMODEL_DEMO_MODE===!0}var qo=[`overview`,`usage`,`budgets`,`rate-limits`,`models`,`workflows`,`audit-logs`,`guardrails`,`mcp-servers`,`providers-config`,`auth-keys`,`settings`];function Jo(e){return e.startsWith(`/admin/static/`)?`/`+e.slice(14).replace(/^\/+/,``):e}function Yo(e){let t=Jo(Wo(e)).replace(/\/$/,``).replace(`/admin/dashboard`,``).replace(/^\//,``).split(`/`),n=t[0];n===`audit`&&(n=`audit-logs`);let r=t[1]||null;return n===`settings`&&r===`guardrails`?{page:`guardrails`,sub:null}:(n=qo.includes(n)?n:`overview`,{page:n,sub:r})}var Xo=new class{#e=A(`overview`);get page(){return L(this.#e)}set page(e){j(this.#e,e,!0)}#t=A(null);get sub(){return L(this.#t)}set sub(e){j(this.#t,e,!0)}init(){let{page:e,sub:t}=Yo(window.location.pathname);this.page=e,this.sub=t,window.addEventListener(`popstate`,()=>{let{page:e,sub:t}=Yo(window.location.pathname);this.page=e,this.sub=t})}navigate(e,t=null){let n=t?`/`+t:``;history.pushState(null,``,Uo(`/admin/dashboard/`+e+n)),this.page=e,this.sub=t}},Zo=`X-GoModel-Auth-Login`,Qo=`X-GoModel-Auth-Logout`,$o=`X-GoModel-Auth-User`;function es(e){let t=String(e||``).trim();return!t.startsWith(`/`)||t.startsWith(`//`)||t.includes(`\\`)?``:t}function ts(e,t=globalThis.location){let n=es(e),r=es(t?.pathname);if(!n||!r)return n;let i=String(t?.search||``),a=r+(i.startsWith(`?`)?i:``),o=n.indexOf(`#`),s=o<0?n:n.slice(0,o),c=o<0?``:n.slice(o);return`${s}${s.includes(`?`)?`&`:`?`}return_to=${encodeURIComponent(a)}${c}`}function ns(e){let t=e?.headers;if(!t||typeof t.has!=`function`)return null;let n={};return t.has(Zo)&&(n.loginURL=es(t.get(Zo))),t.has(Qo)&&(n.logoutURL=es(t.get(Qo))),t.has($o)&&(n.user=String(t.get($o)||``).trim().slice(0,256)),n}var rs=`gomodel_api_key`;function is(e){let t=String(e||``).trim();if(/^Bearer\s*$/i.test(t))return``;let n=t.match(/^Bearer\s+(.+)$/i);return n?n[1].trim():t}var J=new class{#e=A(``);get apiKey(){return L(this.#e)}set apiKey(e){j(this.#e,e,!0)}#t=A(!1);get needsAuth(){return L(this.#t)}set needsAuth(e){j(this.#t,e,!0)}#n=A(!1);get authError(){return L(this.#n)}set authError(e){j(this.#n,e,!0)}#r=A(``);get authErrorMessage(){return L(this.#r)}set authErrorMessage(e){j(this.#r,e,!0)}#i=A(!1);get dialogOpen(){return L(this.#i)}set dialogOpen(e){j(this.#i,e,!0)}#a=A(``);get externalLoginURL(){return L(this.#a)}set externalLoginURL(e){j(this.#a,e,!0)}#o=A(``);get externalLogoutURL(){return L(this.#o)}set externalLogoutURL(e){j(this.#o,e,!0)}#s=A(``);get externalUser(){return L(this.#s)}set externalUser(e){j(this.#s,e,!0)}#c=A(0);get generation(){return L(this.#c)}set generation(e){j(this.#c,e,!0)}#l=A(0);get refreshTick(){return L(this.#l)}set refreshTick(e){j(this.#l,e,!0)}init(){try{this.apiKey=is(localStorage.getItem(rs)||``)}catch{this.apiKey=``}}hasApiKey(){return is(this.apiKey)!==``}save(){this.apiKey=is(this.apiKey);try{localStorage.setItem(rs,this.apiKey)}catch{}}selectExternalAuthentication(){this.apiKey=``;try{localStorage.removeItem(rs)}catch{}this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!0}openDialog(){this.dialogOpen=!0}closeDialog(){this.dialogOpen=!1}submit(){let e=is(this.apiKey);return e?(this.apiKey=e,this.save(),this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!1,this.closeDialog(),this.refresh(),!0):(this.apiKey=``,this.authError=!0,this.authErrorMessage=``,this.needsAuth=!0,this.openDialog(),!1)}refresh(){this.refreshTick++}observeResponse(e){let t=ns(e);t&&(Object.hasOwn(t,`loginURL`)&&(this.externalLoginURL=t.loginURL),Object.hasOwn(t,`logoutURL`)&&(this.externalLogoutURL=t.logoutURL),Object.hasOwn(t,`user`)&&(this.externalUser=t.user))}handleUnauthorized(e,t=``){return typeof e==`number`&&e{r[e.type]=e.value}),r.year+`-`+r.month+`-`+r.day}formatTimestampInTimeZone(e,t){if(e==null)return`-`;let n=new Date(e);if(Number.isNaN(n.getTime()))return`-`;let r=hs(`en-CA`,{timeZone:gs(t)?t:ds,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`}).formatToParts(n),i={};return r.forEach(e=>{i[e.type]=e.value}),i.year+`-`+i.month+`-`+i.day+` `+i.hour+`:`+i.minute+`:`+i.second}formatTimestamp(e){return this.formatTimestampInTimeZone(e,this.effectiveTimezone())}currentDateKey(e){return this.dateKeyInTimeZone(e||new Date,this.effectiveTimezone())}dateKeyToDate(e){return os(e)}dateToDateKey(e){return ss(e)}addDaysToDateKey(e,t){return cs(e,t)}todayDate(){return this.dateKeyToDate(this.currentDateKey())}startOfMonthDate(e){let t=e instanceof Date?e:this.todayDate();return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1))}timeZoneOffsetLabel(e,t){let n=gs(e)?e:ds;try{let e=hs(`en-US`,{timeZone:n,hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`,timeZoneName:`longOffset`}).formatToParts(t||new Date).find(e=>e.type===`timeZoneName`);if(!e||!e.value)return`UTC+00:00`;let r=e.value.replace(`GMT`,`UTC`);return r===`UTC`?`UTC+00:00`:r}catch{return`UTC+00:00`}}timeZoneOffsetMinutes(e,t){let n=/^UTC([+-])(\d{2}):(\d{2})$/.exec(this.timeZoneOffsetLabel(e,t));if(!n)return 0;let r=Number(n[2])*60+Number(n[3]);return n[1]===`-`?-r:r}timeZoneOptionLabel(e,t){return e+` (`+this.timeZoneOffsetLabel(e,t)+`)`}detectedTimeZoneLabel(){return this.timeZoneOptionLabel(this.detectedTimezone)}effectiveTimeZoneLabel(){return this.timeZoneOptionLabel(this.effectiveTimezone())}ensureOptions(){if(this.optionsLoaded)return;let e=new Date,t=[];try{typeof Intl.supportedValuesOf==`function`&&(t=Intl.supportedValuesOf(`timeZone`))}catch{t=[]}[ds,this.detectedTimezone,this.override].forEach(e=>{e&&t.indexOf(e)===-1&&gs(e)&&t.push(e)}),t=t.filter(e=>gs(e)),t.sort((t,n)=>{let r=this.timeZoneOffsetMinutes(t,e)-this.timeZoneOffsetMinutes(n,e);return r===0?t.localeCompare(n):r}),this.options=t.map(t=>({value:t,label:this.timeZoneOptionLabel(t,e)})),this.optionsLoaded=!0}saveOverride(){let e=Sa();if(e)if(this.override&&gs(this.override))try{e.setItem(fs,this.override)}catch{}else{try{e.removeItem(fs)}catch{}this.override=``}this.optionsLoaded=!1,this.ensureOptions()}clearOverride(){let e=Sa();if(e)try{e.removeItem(fs)}catch{}this.override=``}calendarTimeZoneText(){let e=this.override?`manual override`:`auto-detected`;return`Activity grouped by `+this.effectiveTimeZoneLabel()+` (`+e+`)`}};function bs(e,t){let n=e&&typeof e==`object`&&e.error&&e.error.message;return(typeof n==`string`?n.trim():``)||t}function xs(e,t){let n=e&&e.data;if(n&&typeof n==`object`){let e=[n.message,n.error,n.error&&typeof n.error==`object`?n.error.message:null];for(let t of e)if(typeof t==`string`&&t.trim())return t.trim()}return t}function Ss(){let e={"Content-Type":`application/json`},t=is(J.apiKey);return t&&(e.Authorization=`Bearer `+t),e[`X-GoModel-Timezone`]=ys.effectiveTimezone(),e}function Cs(e,t={}){return fetch(Uo(e),{...t,headers:{...Ss(),...t.headers||{}}})}async function ws(e,t,{label:n=e,parse:r=!0}={}){let i=J.generation,a=await Cs(e,t),o=ie.trim()).filter(Boolean);return e.length>0?e:ks}cacheVisible(){if(this.flag(`CACHE_ENABLED`)!==``)return this.booleanFlag(`CACHE_ENABLED`,!1);let e=this.flag(`REDIS_URL`),t=this.flag(`SEMANTIC_CACHE_ENABLED`);return e===``&&t===``||this.booleanFlag(`REDIS_URL`,!1)||this.booleanFlag(`SEMANTIC_CACHE_ENABLED`,!1)}auditVisible(){return this.booleanFlag(`LOGGING_ENABLED`,!0)}usageVisible(){return this.booleanFlag(`USAGE_ENABLED`,!0)}budgetsVisible(){return this.booleanFlag(`BUDGETS_ENABLED`,!0)}rateLimitsVisible(){return this.booleanFlag(`RATE_LIMITS_ENABLED`,!0)}guardrailsVisible(){return this.booleanFlag(`GUARDRAILS_ENABLED`,!0)}mcpVisible(){return this.booleanFlag(`MCP_ENABLED`,!0)}liveLogsVisible(){return this.booleanFlag(`DASHBOARD_LIVE_LOGS_ENABLED`,!0)}fetch(){return this.#n||=this.#r().finally(()=>{this.#n=null}),this.#n}async ensureLoaded(){if(this.#n){await this.#n;return}this.loaded||await this.fetch()}async#r(){let e=typeof AbortController==`function`?new AbortController:null,t=e?setTimeout(()=>e.abort(),1e4):null;try{let t=await Ts(`/admin/runtime/config`,{label:`dashboard config`,signal:e?e.signal:void 0});if(t.stale)return;if(!t.ok){this.config={},this.loaded=!1;return}let n=t.data,r={};for(let e of Os)n&&typeof n==`object`&&!Array.isArray(n)&&n[e]!==void 0&&n[e]!==null&&(r[e]=String(n[e]).trim());this.config=r,this.loaded=!0}catch(e){console.error(`Failed to fetch dashboard config:`,e),this.config={},this.loaded=!1}finally{t!==null&&clearTimeout(t)}}},js=[{page:`overview`,label:`Overview`,icon:ro},{page:`providers-config`,label:`Providers`,icon:bo},{page:`models`,label:`Models`,icon:Fa},{page:`audit-logs`,label:`Audit Logs`,icon:eo},{page:`usage`,label:`Usage`,icon:Ba},{page:`budgets`,label:`Budgets`,icon:Fo,visible:()=>As.budgetsVisible()},{page:`rate-limits`,label:`Rate Limits`,icon:$a,visible:()=>As.rateLimitsVisible()},{page:`auth-keys`,label:`API Keys`,icon:no},{page:`workflows`,label:`Workflows`,icon:Lo},{page:`guardrails`,label:`Guardrails (experimental)`,icon:wo,visible:()=>As.guardrailsVisible()},{page:`mcp-servers`,label:`MCP Servers`,icon:po,visible:()=>As.mcpVisible()},{page:`settings`,label:`Settings`,icon:Co}],Ms=z(` `),Ns=z(`
`),Ps=z(``),Fs=z(`
`),Is=z(` `,1);function Ls(e,t){D(t,!0);let n=k(()=>js.filter(e=>!e.visible||e.visible())),r=A(null),i=0,a=0,o=!1;function s(e){e.button===0&&(e.preventDefault(),j(r,e.pointerId,!0),i=e.clientX,a=Oa.width,o=!1,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`sidebar-resizing`))}function c(e){e.pointerId===L(r)&&(!o&&Math.abs(e.clientX-i)<=4||(o=!0,Oa.setWidth(Ea(a,i,e.clientX))))}function l(e){L(r)===null||e.pointerId!==void 0&&e.pointerId!==L(r)||(j(r,null),document.body.classList.remove(`sidebar-resizing`),Oa.setWidth(Oa.width,!0))}function u(){if(o){o=!1;return}Oa.toggle()}function d(e){let t;if(e.key===`ArrowLeft`)t=Oa.width-12;else if(e.key===`ArrowRight`)t=Oa.width+12;else if(e.key===`Home`)t=60;else if(e.key===`End`)t=240;else if(e.key===`Enter`||e.key===` `){e.preventDefault(),Oa.toggle();return}else return;e.preventDefault(),Oa.setWidth(t,!0)}var f=Is(),p=P(f);let m;var h=N(p),g=N(h);xa(N(g),{}),E(g),He(4),E(h);var _=F(h,2);U(_,21,()=>L(n),e=>e.page,(e,t)=>{var n=Ms();let r;var i=N(n);q(i,{get icon(){return L(t).icon},class:`nav-icon`});var a=F(i,2),o=N(a,!0);E(a),E(n),I(e=>{G(n,`href`,e),r=W(n,1,`nav-item svelte-1nwtzae`,null,r,{active:Xo.page===L(t).page}),G(n,`title`,L(t).label),V(o,L(t).label)},[()=>Uo(`/admin/dashboard/`+L(t).page)]),R(`click`,n,e=>{e.preventDefault(),Xo.navigate(L(t).page)}),B(e,n)}),E(_);var v=F(_,2),y=N(v);Vo(y,{get compact(){return Oa.collapsed}});var b=F(y,2),x=e=>{var t=Ps(),n=N(t),r=e=>{var t=Ns(),n=N(t);q(n,{get icon(){return No},class:`api-key-open-icon`});var r=F(n,2),i=N(r,!0);E(r),E(t),I(()=>{G(t,`title`,J.externalUser),V(i,J.externalUser)}),B(e,t)};H(n,e=>{J.externalUser&&e(r)});var i=F(n,2);q(N(i),{get icon(){return oo},class:`api-key-open-icon`}),He(2),E(i),E(t),I(e=>G(i,`href`,e),[()=>Uo(J.externalLogoutURL)]),B(e,t)};H(b,e=>{J.externalLogoutURL&&e(x)});var S=F(b,2),C=e=>{var t=Fs(),n=N(t),r=N(n);q(r,{get icon(){return ao},class:`api-key-open-icon`});var i=F(r,2),a=N(i,!0);E(i),E(n),E(t),I(()=>{G(n,`aria-label`,J.needsAuth?`Enter API key`:`Change API key`),V(a,J.needsAuth?`Enter API key`:`Change API key`)}),R(`click`,n,()=>J.openDialog()),B(e,t)},w=k(()=>J.needsAuth||J.hasApiKey());H(S,e=>{L(w)&&e(C)}),E(v),E(p);var T=F(p,2);I(()=>{m=W(p,1,`sidebar svelte-1nwtzae`,null,m,{"sidebar-collapsed":Oa.collapsed,"sidebar-resizing":L(r)!==null}),G(T,`aria-valuemin`,60),G(T,`aria-valuemax`,240),G(T,`aria-valuenow`,Oa.width)}),R(`pointerdown`,T,s),R(`pointermove`,T,c),R(`pointerup`,T,l),Br(`pointercancel`,T,l),Br(`lostpointercapture`,T,l),R(`keydown`,T,d),R(`click`,T,u),B(e,f),O()}Vr([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var Rs=z(``);function zs(e,t){D(t,!0);let n=K(t,`label`,3,`Close`),r=K(t,`class`,3,``),i=K(t,`iconClass`,3,`table-icon-svg`),a=K(t,`disabled`,3,!1),o=K(t,`el`,15,null);var s=Rs();q(N(s),{get icon(){return Ro},get class(){return i()}}),E(s),ha(s,e=>o(e),()=>o()),I(()=>{W(s,1,Pi([`dialog-close-btn`,r()]),`svelte-11l1bb5`),G(s,`aria-label`,n()),s.disabled=a()}),R(`click`,s,function(...e){t.onclick?.apply(this,e)}),B(e,s),O()}Vr([`click`]);function Bs(e){return t=>{let n=n=>{t.contains(n.target)||e()},r=t=>{t.key===`Escape`&&e()};return document.addEventListener(`click`,n,!0),window.addEventListener(`keydown`,r),()=>{document.removeEventListener(`click`,n,!0),window.removeEventListener(`keydown`,r)}}}function Vs(e=`[data-modal-autofocus]`){return t=>{let n=t.querySelector(e);n&&typeof n.focus==`function`&&n.focus()}}var Hs=z(`
`,1);function Us(e,t){D(t,!0);let n=K(t,`open`,3,!1),r=K(t,`variant`,3,`editor`),i=K(t,`closeOnBackdrop`,3,!0),a=k(()=>r()===`auth`?`auth-dialog-backdrop`:`editor-modal-backdrop`),o=k(()=>r()===`auth`?`auth-dialog-shell`:`editor-modal-shell`);kn(()=>{if(!n())return;let e=Tr(()=>ka.opened()),r=n=>{n.key===`Escape`&&ka.isTop(e)&&t.onclose?.()};return window.addEventListener(`keydown`,r),()=>{ka.closed(e),window.removeEventListener(`keydown`,r)}});function s(e){i()&&e.target===e.currentTarget&&t.onclose?.()}var c=Zr(),l=P(c),u=e=>{var n=Hs(),r=P(n),i=F(r,2);hi(N(i),()=>t.children??f),E(i),ji(i,Vs),I(()=>{W(r,1,Pi(L(a)),`svelte-17e0w4c`),W(i,1,Pi(L(o)),`svelte-17e0w4c`)}),R(`click`,i,s),B(e,n)};H(l,e=>{n()&&e(u)}),B(e,c),O()}Vr([`click`]);var Ws=z(`
or use an API key
`,1),Gs=z(``),Ks=z(``);function qs(e,t){D(t,!0),Us(e,{get open(){return J.dialogOpen},variant:`auth`,onclose:()=>J.closeDialog(),children:(e,t)=>{var n=Ks(),r=N(n),i=N(r),a=N(i),o=N(a,!0);E(a),E(i),zs(F(i,2),{label:`Close authentication dialog`,onclick:()=>J.closeDialog(),class:`auth-dialog-close`,iconClass:``}),E(r);var s=F(r,2),c=N(s),l=e=>{var t=Ws(),n=P(t);q(N(n),{get icon(){return no}}),He(2),E(n),He(2),I(e=>G(n,`href`,e),[()=>ts(Uo(J.externalLoginURL))]),R(`click`,n,()=>J.selectExternalAuthentication()),B(e,t)};H(c,e=>{J.externalLoginURL&&e(l)});var u=F(c,2),d=N(u);q(d,{get icon(){return ao},class:`auth-dialog-input-icon`});var f=F(d,2);ta(f),E(u);var p=F(u,2),m=e=>{var t=Gs(),n=N(t,!0);E(t),I(()=>V(n,J.authErrorMessage||`Enter a valid API key to continue.`)),B(e,t)};H(p,e=>{J.authError&&e(m)});var h=F(p,4),g=N(h),_=N(g);q(_,{get icon(){return Va},class:`auth-dialog-submit-icon`});var v=F(_,2),y=N(v,!0);E(v),E(g),E(h),E(s),E(n),I(()=>{V(o,J.needsAuth?`Dashboard locked`:`Change API key`),V(y,J.needsAuth?`Unlock dashboard`:`Save API key`)}),Br(`submit`,s,e=>{e.preventDefault(),J.submit()}),ua(f,()=>J.apiKey,e=>J.apiKey=e),B(e,n)},$$slots:{default:!0}}),O()}Vr([`click`]);function Js(){return{open:!1,title:``,titleId:`typedConfirmationDialogTitle`,inputId:`typed-confirmation-input`,message:``,requiredText:``,value:``,confirmLabel:`Confirm`,icon:Mo,dialogClass:``,loading:!1,onConfirm:null,onClose:null}}var Ys=new class{#e=A(M(Js()));get state(){return L(this.#e)}set state(e){j(this.#e,e,!0)}#t=A(``);get error(){return L(this.#t)}set error(e){j(this.#t,e,!0)}open(e){this.error=``,this.state={...Js(),open:!0,...e||{}}}close(){let e=this.state;typeof e.onClose==`function`&&e.onClose(),this.state=Js(),this.error=``}ready(){return String(this.state.value||``).trim().toLowerCase()===String(this.state.requiredText||``).trim().toLowerCase()}inputLabel(){return`Type `+String(this.state.requiredText||``).trim()+` to confirm`}async submit(){if(!this.ready()){this.error=this.inputLabel()+`.`;return}if(typeof this.state.onConfirm==`function`){this.state.loading=!0;try{await this.state.onConfirm()}finally{this.state.loading=!1}}}},Xs=z(`

`),Zs=z(``),Qs=z(`

`);function $s(e,t){D(t,!0);let n=k(()=>Ys.state);Us(e,{get open(){return L(n).open},variant:`auth`,onclose:()=>Ys.close(),children:(e,t)=>{var r=Qs(),i=N(r),a=N(i),o=N(a,!0);E(a),zs(F(a,2),{label:`Close confirmation dialog`,onclick:()=>Ys.close(),class:`auth-dialog-close`,iconClass:``}),E(i);var s=F(i,2),c=N(s),l=e=>{var t=Xs(),r=N(t,!0);E(t),I(()=>V(r,L(n).message)),B(e,t)};H(c,e=>{L(n).message&&e(l)});var u=F(c,2),d=N(u),f=N(d,!0);E(d);var p=F(d,2);ta(p),E(u);var m=F(u,2),h=e=>{var t=Zs(),n=N(t,!0);E(t),I(()=>V(n,Ys.error)),B(e,t)};H(m,e=>{Ys.error&&e(h)});var g=F(m,2),_=N(g),v=F(_,2),y=N(v);q(y,{get icon(){return L(n).icon},class:`form-action-icon`});var b=F(y,2),x=N(b,!0);E(b),E(v),E(g),E(s),E(r),I((e,t)=>{W(r,1,`auth-dialog ${L(n).dialogClass??``}`),G(r,`aria-labelledby`,L(n).titleId),G(a,`id`,L(n).titleId),V(o,L(n).title),G(d,`for`,L(n).inputId),V(f,e),G(p,`id`,L(n).inputId),v.disabled=t,V(x,L(n).confirmLabel)},[()=>Ys.inputLabel(),()=>L(n).loading||!Ys.ready()]),Br(`submit`,s,e=>{e.preventDefault(),Ys.submit()}),ua(p,()=>Ys.state.value,e=>Ys.state.value=e),R(`click`,_,()=>Ys.close()),B(e,r)},$$slots:{default:!0}}),O()}Vr([`click`]);var ec=e=>e;function tc(e){let t=e-1;return t*t*t+1}function nc(e){let t=typeof e==`string`&&e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);return t?[parseFloat(t[1]),t[2]||`px`]:[e,`px`]}function rc(e,{delay:t=0,duration:n=400,easing:r=ec}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function ic(e,{delay:t=0,duration:n=400,easing:r=tc,x:i=0,y:a=0,opacity:o=0}={}){let s=getComputedStyle(e),c=+s.opacity,l=s.transform===`none`?``:s.transform,u=c*(1-o),[d,f]=nc(i),[p,m]=nc(a);return{delay:t,duration:n,easing:r,css:(e,t)=>` - transform: ${l} translate(${(1-e)*d}${f}, ${(1-e)*p}${m}); - opacity: ${c-u*t}`}}function ac(e,{delay:t=0,duration:n=400,easing:r=tc,axis:i=`y`}={}){let a=getComputedStyle(e),o=+a.opacity,s=i===`y`?`height`:`width`,c=parseFloat(a[s]),l=i===`y`?[`top`,`bottom`]:[`left`,`right`],u=l.map(e=>`${e[0].toUpperCase()}${e.slice(1)}`),d=parseFloat(a[`padding${u[0]}`]),f=parseFloat(a[`padding${u[1]}`]),p=parseFloat(a[`margin${u[0]}`]),m=parseFloat(a[`margin${u[1]}`]),h=parseFloat(a[`border${u[0]}Width`]),g=parseFloat(a[`border${u[1]}Width`]);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(e*20,1)*o};${s}: ${e*c}px;padding-${l[0]}: ${e*d}px;padding-${l[1]}: ${e*f}px;margin-${l[0]}: ${e*p}px;margin-${l[1]}: ${e*m}px;border-${l[0]}-width: ${e*h}px;border-${l[1]}-width: ${e*g}px;min-${s}: 0`}}function oc(e){return--e*e*(2.70158*e+1.70158)+1}function sc(e){let t=e-1;return t*t*t+1}var cc=5e3,lc=8e3,Y=new class{#e=A(M([]));get toasts(){return L(this.#e)}set toasts(e){j(this.#e,e,!0)}#t=0;#n=new Map;success(e){this.#r(`success`,e,cc)}error(e){this.#r(`error`,e,lc)}dismiss(e){let t=this.#n.get(e);t&&(clearTimeout(t),this.#n.delete(e)),this.toasts=this.toasts.filter(t=>t.id!==e)}#r(e,t,n){let r=String(t||``).trim();if(!r)return;let i=this.toasts.find(t=>t.kind===e&&t.text===r);i&&this.dismiss(i.id);let a=++this.#t;this.toasts=[...this.toasts,{id:a,kind:e,text:r}],this.#n.set(a,setTimeout(()=>this.dismiss(a),n))}},uc=z(`
`),dc=z(`
`);function fc(e,t){D(t,!0);var n=dc();U(n,21,()=>Y.toasts,e=>e.id,(e,t)=>{var n=uc();let r;var i=N(n),a=N(i,!0);E(i);var o=F(i,2);E(n),I(()=>{r=W(n,1,`flash-toast svelte-1i257xg`,null,r,{"flash-toast-success":L(t).kind===`success`,"flash-toast-error":L(t).kind===`error`}),G(n,`role`,L(t).kind===`error`?`alert`:`status`),G(n,`aria-live`,L(t).kind===`error`?`assertive`:`polite`),V(a,L(t).text)}),R(`click`,o,()=>Y.dismiss(L(t).id)),Oi(1,n,()=>ic,()=>({y:-24,duration:360,easing:oc})),Oi(2,n,()=>rc,()=>({duration:150})),B(e,n)}),E(n),B(e,n),O()}Vr([`click`]);var pc=z(``);function mc(e,t){D(t,!0);var n=Zr(),r=P(n),i=e=>{B(e,pc())},a=k(()=>Ko());H(r,e=>{L(a)&&e(i)}),B(e,n),O()}function hc(e){return String(e||``).split(`,`).map(e=>e.trim()).filter(e=>e)}function gc(e){if(e==null||e===``)return`Not captured`;if(typeof e==`string`){let t=e.trim();if(t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`))try{return JSON.stringify(JSON.parse(t),null,2)}catch{return e}return e}try{return JSON.stringify(e,null,2)}catch{return String(e)}}function _c(e){return e==null||e===void 0?`-`:e.toLocaleString()}function vc(e){if(e==null)return`---`;let t=Number(e);return Number.isFinite(t)?t>0&&t<1e-4?`<$0.0001`:`$`+t.toFixed(4).replace(/(\.\d{2}\d*?)0+$/,`$1`):`---`}function yc(e){return e==null||e===void 0?`—`:`$`+e.toFixed(2)}function bc(e){return e==null||e===void 0?`—`:e<.01?`$`+e.toFixed(6):`$`+e.toFixed(4)}function xc(e){if(e==null||e===``)return`-`;let t=Number(e);if(!Number.isFinite(t))return`-`;let n=Math.abs(t),r=[{threshold:1e9,suffix:`B`},{threshold:1e6,suffix:`M`},{threshold:1e3,suffix:`K`}];for(let e=0;e=i.threshold){let n=t/i.threshold;return Math.abs(Number(n.toFixed(1)))>=1e3&&e>0&&(i=r[e-1],n=t/i.threshold),n.toFixed(1).replace(/\.0$/,``)+i.suffix}}return String(t)}function Sc(e,t){let n=t==null||t===``?NaN:Number(t),r=Number.isFinite(n)?_c(n):`-`;return String(e||`Tokens`)+`: `+r}function Cc(e){return e?typeof e==`string`?e:e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`):``}function wc(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.getUTCFullYear()+`-`+String(t.getUTCMonth()+1).padStart(2,`0`)+`-`+String(t.getUTCDate()).padStart(2,`0`)}function Tc(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.getUTCFullYear()+`-`+String(t.getUTCMonth()+1).padStart(2,`0`)+`-`+String(t.getUTCDate()).padStart(2,`0`)+` `+String(t.getUTCHours()).padStart(2,`0`)+`:`+String(t.getUTCMinutes()).padStart(2,`0`)+`:`+String(t.getUTCSeconds()).padStart(2,`0`)+` UTC`}function Ec(e){return String(e&&e.provider||``).trim()}function Dc(e){return String(e&&e.provider_name||``).trim()||Ec(e)}function Oc(e,t){let n=String(t||``).trim();if(!n)return`-`;let r=Dc(e);return!r||n===r||n.startsWith(r+`/`)?n:r+`/`+n}function kc(e){return Oc(e,e&&e.model)}function Ac(e){return Oc(e,e&&e.resolved_model)}function jc(e){let t=String(e&&(e.requested_model||e.model)||``).trim();if(!e)return t;let n=String(e.data&&e.data.failover&&e.data.failover.target_model||``).trim();if(n&&n!==t)return t+` ⮕ `+n;if(e.alias_used&&e.resolved_model){let n=Ac(e);if(n&&n!==`-`&&n!==t)return t+` ⮕ `+n}return t}var Mc=`gomodel_date_range`,Nc=1;function Pc(e){return/^[1-9]\d*$/.test(String(e??``))}var Fc=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function Ic({selectedPreset:e,startKey:t,endKey:n,followsToday:r}){return e&&Pc(e)?{v:Nc,mode:`preset`,days:String(e)}:e?null:ls(t)&&ls(n)?{v:Nc,mode:`custom`,start:t,end:n,follow:r===!0}:null}function Lc(e){let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return null}return!t||typeof t!=`object`?null:t.mode===`preset`?Pc(t.days)?{mode:`preset`,days:String(t.days)}:null:t.mode===`custom`&&ls(t.start)&&ls(t.end)&&t.start<=t.end?{mode:`custom`,start:t.start,end:t.end,follow:t.follow===!0}:null}function Rc(e,t,n){let r=us(e,t);return r<1||!ls(n)?{start:e,end:t}:{start:cs(n,-(r-1)),end:n}}function zc(e,t){if(e===t)return`Today`;let[n,r,i]=e.split(`-`);return Fc[Number(r)-1]+` `+Number(i)+`, `+n}function Bc({selectedPreset:e,startKey:t,endKey:n,followsToday:r,todayKey:i}){if(e)return`Last `+e+` days`;if(!ls(t)||!ls(n))return``;let a=us(t,n);return r||n===i?a===1?`Today`:`Last `+a+` days`:a===1?`1 day`:a+` days`}function Vc({selectedPreset:e,startKey:t,endKey:n,todayKey:r}){if(e)return`Last `+e+` days`;let i=e=>zc(e,r);return ls(t)&&ls(n)?t===n?i(t):i(t)+` – `+i(n):ls(t)?i(t)+` – ...`:`Last 30 days`}var Hc=6e4,Uc=new class{#e=A(M(`30`));get days(){return L(this.#e)}set days(e){j(this.#e,e,!0)}#t=A(M(`30`));get selectedPreset(){return L(this.#t)}set selectedPreset(e){j(this.#t,e,!0)}#n=A(null);get customStartDate(){return L(this.#n)}set customStartDate(e){j(this.#n,e,!0)}#r=A(null);get customEndDate(){return L(this.#r)}set customEndDate(e){j(this.#r,e,!0)}#i=A(!1);get followsToday(){return L(this.#i)}set followsToday(e){j(this.#i,e,!0)}#a=A(`daily`);get interval(){return L(this.#a)}set interval(e){j(this.#a,e,!0)}#o=A(0);get syncTick(){return L(this.#o)}set syncTick(e){j(this.#o,e,!0)}init(){this.restore(),this.syncToToday(),typeof setInterval==`function`&&setInterval(()=>this.syncToToday(),Hc)}queryStr(){return this.customStartDate&&this.customEndDate?`start_date=`+Cc(this.customStartDate)+`&end_date=`+Cc(this.customEndDate):`days=`+this.days}selectPreset(e){this.selectedPreset=e,this.customStartDate=null,this.customEndDate=null,this.followsToday=!1,this.days=e,this.persist()}selectStart(e){this.selectedPreset=null,this.customStartDate=e,this.customEndDate&&this.customEndDatet.category===e);return t?t.count:0}get filteredModels(){if(!this.filter)return this.models;let e=this.filter.toLowerCase();return this.models.filter(t=>(t.model?.id??``).toLowerCase().includes(e)||(t.provider_name??``).toLowerCase().includes(e)||(t.provider_type??``).toLowerCase().includes(e)||(t.selector??``).toLowerCase().includes(e)||(t.model?.owned_by??``).toLowerCase().includes(e)||(t.model?.metadata?.modes??[]).join(`,`).toLowerCase().includes(e)||(t.model?.metadata?.categories??[]).join(`,`).toLowerCase().includes(e))}},Gc=z(``);function Kc(e,t){D(t,!0);var n=Zr(),r=P(n),i=e=>{var t=Gc(),n=F(N(t),2);E(t),R(`click`,n,()=>J.openDialog()),B(e,t)};H(r,e=>{J.authError&&e(i)}),B(e,n),O()}Vr([`click`]);function qc(){return{total_requests:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,total_input_cost:null,total_output_cost:null,total_cost:null}}function Jc(){return{summary:{total_hits:0,exact_hits:0,semantic_hits:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,total_saved_cost:null},daily:[]}}var Yc=new class{#e=A(M(qc()));get summary(){return L(this.#e)}set summary(e){j(this.#e,e,!0)}#t=A(M([]));get daily(){return L(this.#t)}set daily(e){j(this.#t,e,!0)}#n=A(M(Jc()));get cacheOverview(){return L(this.#n)}set cacheOverview(e){j(this.#n,e,!0)}#r=A(!1);get loading(){return L(this.#r)}set loading(e){j(this.#r,e,!0)}#i=null;#a=null;cacheAnalyticsEnabled(){return As.cacheVisible()}async fetchUsage(){this.#i&&this.#i.abort();let e=new AbortController;this.#i=e,this.loading=!0;try{let t=Uc.queryStr()+`&interval=`+Uc.interval,[n,r]=await Promise.all([Ts(`/admin/usage/summary?`+t,{label:`usage summary`,signal:e.signal}),Ts(`/admin/usage/daily?`+t,{label:`usage daily`,signal:e.signal})]);if(n.stale||r.stale||e.signal.aborted)return;if(!n.ok||!r.ok){this.summary=qc(),this.daily=[],this.cacheOverview=Jc();return}this.summary=n.data||qc(),this.daily=Array.isArray(r.data)?r.data:[]}catch(e){if(Ds(e))return;console.error(`Failed to fetch usage:`,e),this.summary=qc(),this.daily=[]}finally{this.#i===e&&(this.#i=null,this.loading=!1)}}async fetchCacheOverview(e=``){if(await As.ensureLoaded(),!this.cacheAnalyticsEnabled()){this.cacheOverview=Jc();return}this.#a&&this.#a.abort();let t=new AbortController;this.#a=t;try{let n=await Ts(`/admin/cache/overview?`+(Uc.queryStr()+`&interval=`+Uc.interval+e),{label:`cache overview`,signal:t.signal});if(n.stale||t.signal.aborted)return;if(!n.ok){this.cacheOverview=Jc();return}let r=n.data&&typeof n.data==`object`?n.data:Jc();r.summary||=Jc().summary,Array.isArray(r.daily)||(r.daily=[]),this.cacheOverview=r}catch(e){if(Ds(e))return;console.error(`Failed to fetch cache overview:`,e),this.cacheOverview=Jc()}finally{this.#a===t&&(this.#a=null)}}},Xc=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`];function Zc(e,t){let n=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1));return Xc[n.getUTCMonth()]+` `+n.getUTCFullYear()}function Qc(e,t,n){let r=e.getUTCFullYear(),i=e.getUTCMonth()+t,a=new Date(Date.UTC(r,i,1)),o=new Date(Date.UTC(r,i+1,0)),s=(a.getUTCDay()+6)%7,c=[],l=new Date(Date.UTC(r,i,0));for(let e=s-1;e>=0;e--){let t=l.getUTCDate()-e,a=new Date(Date.UTC(r,i-1,t));c.push({day:t,date:a,current:!1,key:`p-`+n(a)})}for(let e=1;e<=o.getUTCDate();e++){let t=new Date(Date.UTC(r,i,e));c.push({day:e,date:t,current:!0,key:`c-`+n(t)})}let u=42-c.length;for(let e=1;e<=u;e++){let t=new Date(Date.UTC(r,i+1,e));c.push({day:e,date:t,current:!1,key:`n-`+n(t)})}return c}function $c(e,t,n){let r=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1));return n&&r.getTime()>n.getTime()?e:r}function el(e,t){return e.getUTCFullYear()===t.getUTCFullYear()&&e.getUTCMonth()===t.getUTCMonth()}var tl=z(``),nl=z(``),rl=z(``),il=z(`
MoTuWeThFrSaSu
`);function al(e,t){D(t,!0);let n=K(t,`offset`,3,0),r=k(()=>Qc(t.calendarMonth,n(),e=>ys.dateToDateKey(e))),i=k(()=>el(t.calendarMonth,ys.todayDate())),a=e=>ys.dateToDateKey(e.date),o=e=>a(e)>ys.currentDateKey(),s=e=>e.current&&a(e)===ys.currentDateKey();function c(e,t){let n=t===`start`?Uc.rangeStart():Uc.rangeEnd();return e.current&&!!n&&a(e)===ys.dateToDateKey(n)}function l(e){let t=Uc.rangeStart(),n=Uc.rangeEnd();return!e.current||!t||!n?!1:a(e)>=ys.dateToDateKey(t)&&a(e)<=ys.dateToDateKey(n)}var u=il(),d=N(u),f=N(d);let p;var m=F(f,2),h=N(m,!0);E(m);var g=F(m,2),_=e=>{B(e,tl())},v=e=>{var n=nl();I(()=>n.disabled=L(i)),R(`click`,n,function(...e){t.onnext?.apply(this,e)}),B(e,n)};H(g,e=>{n()===-1?e(_):e(v,-1)}),E(d);var y=F(d,4);U(y,21,()=>L(r),e=>e.key,(e,n)=>{var r=rl(),i=N(r,!0);E(r),I((e,t)=>{W(r,1,e,`svelte-g7ga4u`),r.disabled=t,V(i,L(n).day)},[()=>Pi([`dp-day`,{"other-month":!L(n).current,today:s(L(n)),"range-start":c(L(n),`start`),"range-end":c(L(n),`end`),"in-range":l(L(n)),disabled:o(L(n))}]),()=>o(L(n))||!L(n).current]),R(`click`,r,()=>t.onselect?.(L(n))),B(e,r)}),E(y),E(u),I(e=>{p=W(f,1,`dp-nav-btn svelte-g7ga4u`,null,p,{"dp-nav-prev-mobile":n()!==-1}),V(h,e)},[()=>Zc(t.calendarMonth,n())]),R(`click`,f,function(...e){t.onprev?.apply(this,e)}),B(e,u),O()}Vr([`click`]);var ol=z(``),sl=z(`
`),cl=Yr(``),ll=Yr(``),ul=z(`
`),dl=z(`
`);function fl(e,t){D(t,!0);let n=[`3`,`7`,`14`,`30`,`90`],r=A(!1),i=A(`start`),a=A(M(new Date)),o=A(M({show:!1,x:0,y:0}));function s(){j(r,!L(r)),L(r)&&(Uc.syncToToday(),j(a,ys.startOfMonthDate(Uc.customEndDate||ys.todayDate()),!0),j(i,`start`))}function c(){j(r,!1),j(o,{show:!1,x:0,y:0},!0)}let l=Uc.syncTick;kn(()=>{let e=Uc.syncTick;e!==l&&(l=e,t.onchange?.())});function u(e){Uc.selectPreset(e),j(i,`start`),t.onchange?.(),c()}let d=()=>j(a,$c(L(a),-1),!0),f=()=>j(a,$c(L(a),1,ys.startOfMonthDate(ys.todayDate())),!0);function p(e){let n=new Date(e.date);if(L(i)===`start`){Uc.selectStart(n),j(i,`end`),t.onchange?.();return}Uc.selectEnd(n),j(i,`start`),t.onchange?.(),c()}var m=dl(),h=N(m),g=F(N(h),2),_=N(g,!0);E(g);var v=F(g,2);let y;E(h);var b=F(h,2),x=e=>{var t=sl(),r=N(t);U(r,20,()=>n,e=>e,(e,t)=>{var n=ol();let r;var i=N(n);E(n),I(()=>{r=W(n,1,`preset-btn svelte-ax7ma4`,null,r,{active:Uc.selectedPreset===t}),V(i,`Last ${t??``} days`)}),R(`click`,n,()=>u(t)),B(e,n)}),E(r);var i=F(r,2);U(i,20,()=>[-1,0],e=>e,(e,t)=>{al(e,{get calendarMonth(){return L(a)},get offset(){return t},onprev:d,onnext:f,onselect:p})}),E(i),E(t),R(`mousemove`,i,e=>j(o,{show:!0,x:e.clientX,y:e.clientY},!0)),Br(`mouseleave`,i,()=>j(o,{show:!1,x:0,y:0},!0)),B(e,t)};H(b,e=>{L(r)&&e(x)});var S=F(b,2),C=e=>{var t=ul(),n=N(t),r=e=>{B(e,cl())},a=e=>{B(e,ll())};H(n,e=>{L(i)===`start`?e(r):e(a,-1)});var s=F(n,2),c=N(s,!0);E(s),E(t),I(()=>{Vi(t,`left:${L(o).x??``}px;top:${L(o).y??``}px`),V(c,L(i)===`end`?`Select end date`:`Select start date`)}),B(e,t)};H(S,e=>{L(o).show&&e(C)}),E(m),ji(m,()=>L(r)?Bs(c):void 0),I((e,t)=>{G(h,`title`,e),V(_,t),y=W(v,0,`date-picker-chevron svelte-ax7ma4`,null,y,{open:L(r)})},[()=>Uc.dateRangeSpanLabel(),()=>Uc.dateRangeLabel()]),R(`click`,h,s),B(e,m),O()}Vr([`click`,`mousemove`]);function pl(e){return e+.5|0}var ml=(e,t,n)=>Math.max(Math.min(e,n),t);function hl(e){return ml(pl(e*2.55),0,255)}function gl(e){return ml(pl(e*255),0,255)}function _l(e){return ml(pl(e/2.55)/100,0,1)}function vl(e){return ml(pl(e*100),0,100)}var yl={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},bl=[...`0123456789ABCDEF`],xl=e=>bl[e&15],Sl=e=>bl[(e&240)>>4]+bl[e&15],Cl=e=>(e&240)>>4==(e&15),wl=e=>Cl(e.r)&&Cl(e.g)&&Cl(e.b)&&Cl(e.a);function Tl(e){var t=e.length,n;return e[0]===`#`&&(t===4||t===5?n={r:255&yl[e[1]]*17,g:255&yl[e[2]]*17,b:255&yl[e[3]]*17,a:t===5?yl[e[4]]*17:255}:(t===7||t===9)&&(n={r:yl[e[1]]<<4|yl[e[2]],g:yl[e[3]]<<4|yl[e[4]],b:yl[e[5]]<<4|yl[e[6]],a:t===9?yl[e[7]]<<4|yl[e[8]]:255})),n}var El=(e,t)=>e<255?t(e):``;function Dl(e){var t=wl(e)?xl:Sl;return e?`#`+t(e.r)+t(e.g)+t(e.b)+El(e.a,t):void 0}var Ol=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function kl(e,t,n){let r=t*Math.min(n,1-n),i=(t,i=(t+e/30)%12)=>n-r*Math.max(Math.min(i-3,9-i,1),-1);return[i(0),i(8),i(4)]}function Al(e,t,n){let r=(r,i=(r+e/60)%6)=>n-n*t*Math.max(Math.min(i,4-i,1),0);return[r(5),r(3),r(1)]}function jl(e,t,n){let r=kl(e,1,.5),i;for(t+n>1&&(i=1/(t+n),t*=i,n*=i),i=0;i<3;i++)r[i]*=1-t-n,r[i]+=t;return r}function Ml(e,t,n,r,i){return e===i?(t-n)/r+(t.5?l/(2-i-a):l/(i+a),s=Ml(t,n,r,l,i),s=s*60+.5),[s|0,c||0,o]}function Pl(e,t,n,r){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,r)).map(gl)}function Fl(e,t,n){return Pl(kl,e,t,n)}function Il(e,t,n){return Pl(jl,e,t,n)}function Ll(e,t,n){return Pl(Al,e,t,n)}function Rl(e){return(e%360+360)%360}function zl(e){let t=Ol.exec(e),n=255,r;if(!t)return;t[5]!==r&&(n=t[6]?hl(+t[5]):gl(+t[5]));let i=Rl(+t[2]),a=t[3]/100,o=t[4]/100;return r=t[1]===`hwb`?Il(i,a,o):t[1]===`hsv`?Ll(i,a,o):Fl(i,a,o),{r:r[0],g:r[1],b:r[2],a:n}}function Bl(e,t){var n=Nl(e);n[0]=Rl(n[0]+t),n=Fl(n),e.r=n[0],e.g=n[1],e.b=n[2]}function Vl(e){if(!e)return;let t=Nl(e),n=t[0],r=vl(t[1]),i=vl(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${i}%, ${_l(e.a)})`:`hsl(${n}, ${r}%, ${i}%)`}var Hl={x:`dark`,Z:`light`,Y:`re`,X:`blu`,W:`gr`,V:`medium`,U:`slate`,A:`ee`,T:`ol`,S:`or`,B:`ra`,C:`lateg`,D:`ights`,R:`in`,Q:`turquois`,E:`hi`,P:`ro`,O:`al`,N:`le`,M:`de`,L:`yello`,F:`en`,K:`ch`,G:`arks`,H:`ea`,I:`ightg`,J:`wh`},Ul={OiceXe:`f0f8ff`,antiquewEte:`faebd7`,aqua:`ffff`,aquamarRe:`7fffd4`,azuY:`f0ffff`,beige:`f5f5dc`,bisque:`ffe4c4`,black:`0`,blanKedOmond:`ffebcd`,Xe:`ff`,XeviTet:`8a2be2`,bPwn:`a52a2a`,burlywood:`deb887`,caMtXe:`5f9ea0`,KartYuse:`7fff00`,KocTate:`d2691e`,cSO:`ff7f50`,cSnflowerXe:`6495ed`,cSnsilk:`fff8dc`,crimson:`dc143c`,cyan:`ffff`,xXe:`8b`,xcyan:`8b8b`,xgTMnPd:`b8860b`,xWay:`a9a9a9`,xgYF:`6400`,xgYy:`a9a9a9`,xkhaki:`bdb76b`,xmagFta:`8b008b`,xTivegYF:`556b2f`,xSange:`ff8c00`,xScEd:`9932cc`,xYd:`8b0000`,xsOmon:`e9967a`,xsHgYF:`8fbc8f`,xUXe:`483d8b`,xUWay:`2f4f4f`,xUgYy:`2f4f4f`,xQe:`ced1`,xviTet:`9400d3`,dAppRk:`ff1493`,dApskyXe:`bfff`,dimWay:`696969`,dimgYy:`696969`,dodgerXe:`1e90ff`,fiYbrick:`b22222`,flSOwEte:`fffaf0`,foYstWAn:`228b22`,fuKsia:`ff00ff`,gaRsbSo:`dcdcdc`,ghostwEte:`f8f8ff`,gTd:`ffd700`,gTMnPd:`daa520`,Way:`808080`,gYF:`8000`,gYFLw:`adff2f`,gYy:`808080`,honeyMw:`f0fff0`,hotpRk:`ff69b4`,RdianYd:`cd5c5c`,Rdigo:`4b0082`,ivSy:`fffff0`,khaki:`f0e68c`,lavFMr:`e6e6fa`,lavFMrXsh:`fff0f5`,lawngYF:`7cfc00`,NmoncEffon:`fffacd`,ZXe:`add8e6`,ZcSO:`f08080`,Zcyan:`e0ffff`,ZgTMnPdLw:`fafad2`,ZWay:`d3d3d3`,ZgYF:`90ee90`,ZgYy:`d3d3d3`,ZpRk:`ffb6c1`,ZsOmon:`ffa07a`,ZsHgYF:`20b2aa`,ZskyXe:`87cefa`,ZUWay:`778899`,ZUgYy:`778899`,ZstAlXe:`b0c4de`,ZLw:`ffffe0`,lime:`ff00`,limegYF:`32cd32`,lRF:`faf0e6`,magFta:`ff00ff`,maPon:`800000`,VaquamarRe:`66cdaa`,VXe:`cd`,VScEd:`ba55d3`,VpurpN:`9370db`,VsHgYF:`3cb371`,VUXe:`7b68ee`,VsprRggYF:`fa9a`,VQe:`48d1cc`,VviTetYd:`c71585`,midnightXe:`191970`,mRtcYam:`f5fffa`,mistyPse:`ffe4e1`,moccasR:`ffe4b5`,navajowEte:`ffdead`,navy:`80`,Tdlace:`fdf5e6`,Tive:`808000`,TivedBb:`6b8e23`,Sange:`ffa500`,SangeYd:`ff4500`,ScEd:`da70d6`,pOegTMnPd:`eee8aa`,pOegYF:`98fb98`,pOeQe:`afeeee`,pOeviTetYd:`db7093`,papayawEp:`ffefd5`,pHKpuff:`ffdab9`,peru:`cd853f`,pRk:`ffc0cb`,plum:`dda0dd`,powMrXe:`b0e0e6`,purpN:`800080`,YbeccapurpN:`663399`,Yd:`ff0000`,Psybrown:`bc8f8f`,PyOXe:`4169e1`,saddNbPwn:`8b4513`,sOmon:`fa8072`,sandybPwn:`f4a460`,sHgYF:`2e8b57`,sHshell:`fff5ee`,siFna:`a0522d`,silver:`c0c0c0`,skyXe:`87ceeb`,UXe:`6a5acd`,UWay:`708090`,UgYy:`708090`,snow:`fffafa`,sprRggYF:`ff7f`,stAlXe:`4682b4`,tan:`d2b48c`,teO:`8080`,tEstN:`d8bfd8`,tomato:`ff6347`,Qe:`40e0d0`,viTet:`ee82ee`,JHt:`f5deb3`,wEte:`ffffff`,wEtesmoke:`f5f5f5`,Lw:`ffff00`,LwgYF:`9acd32`};function Wl(){let e={},t=Object.keys(Ul),n=Object.keys(Hl),r,i,a,o,s;for(r=0;r>16&255,a>>8&255,a&255]}return e}var Gl;function Kl(e){Gl||(Gl=Wl(),Gl.transparent=[0,0,0,0]);let t=Gl[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var ql=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Jl(e){let t=ql.exec(e),n=255,r,i,a;if(t){if(t[7]!==r){let e=+t[7];n=t[8]?hl(e):ml(e*255,0,255)}return r=+t[1],i=+t[3],a=+t[5],r=255&(t[2]?hl(r):ml(r,0,255)),i=255&(t[4]?hl(i):ml(i,0,255)),a=255&(t[6]?hl(a):ml(a,0,255)),{r,g:i,b:a,a:n}}}function Yl(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${_l(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}var Xl=e=>e<=.0031308?e*12.92:e**(1/2.4)*1.055-.055,Zl=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function Ql(e,t,n){let r=Zl(_l(e.r)),i=Zl(_l(e.g)),a=Zl(_l(e.b));return{r:gl(Xl(r+n*(Zl(_l(t.r))-r))),g:gl(Xl(i+n*(Zl(_l(t.g))-i))),b:gl(Xl(a+n*(Zl(_l(t.b))-a))),a:e.a+n*(t.a-e.a)}}function $l(e,t,n){if(e){let r=Nl(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,t===0?360:1)),r=Fl(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function eu(e,t){return e&&Object.assign(t||{},e)}function tu(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=gl(e[3]))):(t=eu(e,{r:0,g:0,b:0,a:1}),t.a=gl(t.a)),t}function nu(e){return e.charAt(0)===`r`?Jl(e):zl(e)}var ru=class e{constructor(t){if(t instanceof e)return t;let n=typeof t,r;n===`object`?r=tu(t):n===`string`&&(r=Tl(t)||Kl(t)||nu(t)),this._rgb=r,this._valid=!!r}get valid(){return this._valid}get rgb(){var e=eu(this._rgb);return e&&(e.a=_l(e.a)),e}set rgb(e){this._rgb=tu(e)}rgbString(){return this._valid?Yl(this._rgb):void 0}hexString(){return this._valid?Dl(this._rgb):void 0}hslString(){return this._valid?Vl(this._rgb):void 0}mix(e,t){if(e){let n=this.rgb,r=e.rgb,i,a=t===i?.5:t,o=2*a-1,s=n.a-r.a,c=((o*s===-1?o:(o+s)/(1+o*s))+1)/2;i=1-c,n.r=255&c*n.r+i*r.r+.5,n.g=255&c*n.g+i*r.g+.5,n.b=255&c*n.b+i*r.b+.5,n.a=a*n.a+(1-a)*r.a,this.rgb=n}return this}interpolate(e,t){return e&&(this._rgb=Ql(this._rgb,e._rgb,t)),this}clone(){return new e(this.rgb)}alpha(e){return this._rgb.a=gl(e),this}clearer(e){let t=this._rgb;return t.a*=1-e,this}greyscale(){let e=this._rgb;return e.r=e.g=e.b=pl(e.r*.3+e.g*.59+e.b*.11),this}opaquer(e){let t=this._rgb;return t.a*=1+e,this}negate(){let e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return $l(this._rgb,2,e),this}darken(e){return $l(this._rgb,2,-e),this}saturate(e){return $l(this._rgb,1,e),this}desaturate(e){return $l(this._rgb,1,-e),this}rotate(e){return Bl(this._rgb,e),this}};function iu(){}var au=(()=>{let e=0;return()=>e++})();function ou(e){return e==null}function su(e){if(Array.isArray&&Array.isArray(e))return!0;let t=Object.prototype.toString.call(e);return t.slice(0,7)===`[object`&&t.slice(-6)===`Array]`}function cu(e){return e!==null&&Object.prototype.toString.call(e)===`[object Object]`}function lu(e){return(typeof e==`number`||e instanceof Number)&&isFinite(+e)}function uu(e,t){return lu(e)?e:t}function du(e,t){return e===void 0?t:e}var fu=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100:+e/t,pu=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100*t:+e;function mu(e,t,n){if(e&&typeof e.call==`function`)return e.apply(n,t)}function hu(e,t,n,r){let i,a,o;if(su(e))if(a=e.length,r)for(i=a-1;i>=0;i--)t.call(n,e[i],i);else for(i=0;ie,x:e=>e.x,y:e=>e.y};function wu(e){let t=e.split(`.`),n=[],r=``;for(let e of t)r+=e,r.endsWith(`\\`)?r=r.slice(0,-1)+`.`:(n.push(r),r=``);return n}function Tu(e){let t=wu(e);return e=>{for(let n of t){if(n===``)break;e&&=e[n]}return e}}function Eu(e,t){return(Cu[t]||(Cu[t]=Tu(t)))(e)}function Du(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Ou=e=>e!==void 0,ku=e=>typeof e==`function`,Au=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0};function ju(e){return e.type===`mouseup`||e.type===`click`||e.type===`contextmenu`}var Mu=Math.PI,Nu=2*Mu,Pu=Nu+Mu,Fu=1/0,Iu=Mu/180,Lu=Mu/2,Ru=Mu/4,zu=Mu*2/3,Bu=Math.log10,Vu=Math.sign;function Hu(e,t,n){return Math.abs(e-t)e-t).pop(),t}function Gu(e){return typeof e==`symbol`||typeof e==`object`&&!!e&&!(Symbol.toPrimitive in e||`toString`in e||`valueOf`in e)}function Ku(e){return!Gu(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function qu(e,t){let n=Math.round(e);return n-t<=e&&n+t>=e}function Ju(e,t,n){let r,i,a;for(r=0,i=e.length;rc&&l=Math.min(t,n)-r&&e<=Math.max(t,n)+r}function od(e,t,n){n||=(n=>e[n]1;)a=i+r>>1,n(a)?i=a:r=a;return{lo:i,hi:r}}var sd=(e,t,n,r)=>od(e,n,r?r=>{let i=e[r][t];return ie[r][t]od(e,n,r=>e[r][t]>=n);function ld(e,t,n){let r=0,i=e.length;for(;rr&&e[i-1]>n;)i--;return r>0||i{let n=`_onData`+Du(t),r=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value(...t){let i=r.apply(this,t);return e._chartjs.listeners.forEach(e=>{typeof e[n]==`function`&&e[n](...t)}),i}})})}function fd(e,t){let n=e._chartjs;if(!n)return;let r=n.listeners,i=r.indexOf(t);i!==-1&&r.splice(i,1),!(r.length>0)&&(ud.forEach(t=>{delete e[t]}),delete e._chartjs)}function pd(e){let t=new Set(e);return t.size===e.length?e:Array.from(t)}var md=function(){return typeof window>`u`?function(e){return e()}:window.requestAnimationFrame}();function hd(e,t){let n=[],r=!1;return function(...i){n=i,r||(r=!0,md.call(window,()=>{r=!1,e.apply(t,n)}))}}function gd(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}var _d=e=>e===`start`?`left`:e===`end`?`right`:`center`,vd=(e,t,n)=>e===`start`?t:e===`end`?n:(t+n)/2,yd=(e,t,n,r)=>e===(r?`left`:`right`)?n:e===`center`?(t+n)/2:t;function bd(e,t,n){let r=t.length,i=0,a=r;if(e._sorted){let{iScale:o,vScale:s,_parsed:c}=e,l=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null,u=o.axis,{min:d,max:f,minDefined:p,maxDefined:m}=o.getUserBounds();if(p){if(i=Math.min(sd(c,u,d).lo,n?r:sd(t,u,o.getPixelForValue(d)).lo),l){let e=c.slice(0,i+1).reverse().findIndex(e=>!ou(e[s.axis]));i-=Math.max(0,e)}i=rd(i,0,r-1)}if(m){let e=Math.max(sd(c,o.axis,f,!0).hi+1,n?0:sd(t,u,o.getPixelForValue(f),!0).hi+1);if(l){let t=c.slice(e-1).findIndex(e=>!ou(e[s.axis]));e+=Math.max(0,t)}a=rd(e,i,r)-i}else a=r-i}return{start:i,count:a}}function xd(e){let{xScale:t,yScale:n,_scaleRanges:r}=e,i={xmin:t.min,xmax:t.max,ymin:n.min,ymax:n.max};if(!r)return e._scaleRanges=i,!0;let a=r.xmin!==t.min||r.xmax!==t.max||r.ymin!==n.min||r.ymax!==n.max;return Object.assign(r,i),a}var Sd=e=>e===0||e===1,Cd=(e,t,n)=>-(2**(10*--e)*Math.sin((e-t)*Nu/n)),wd=(e,t,n)=>2**(-10*e)*Math.sin((e-t)*Nu/n)+1,Td={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-(--e*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>--e*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>-Math.cos(e*Lu)+1,easeOutSine:e=>Math.sin(e*Lu),easeInOutSine:e=>-.5*(Math.cos(Mu*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:-(2**(-10*e))+1,easeInOutExpo:e=>Sd(e)?e:e<.5?.5*2**(10*(e*2-1)):.5*(-(2**(-10*(e*2-1)))+2),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1- --e*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>Sd(e)?e:Cd(e,.075,.3),easeOutElastic:e=>Sd(e)?e:wd(e,.075,.3),easeInOutElastic(e){let t=.1125,n=.45;return Sd(e)?e:e<.5?.5*Cd(e*2,t,n):.5+.5*wd(e*2-1,t,n)},easeInBack(e){return e*e*(2.70158*e-1.70158)},easeOutBack(e){return--e*e*(2.70158*e+1.70158)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)},easeInBounce:e=>1-Td.easeOutBounce(1-e),easeOutBounce(e){let t=7.5625,n=2.75;return e<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375},easeInOutBounce:e=>e<.5?Td.easeInBounce(e*2)*.5:Td.easeOutBounce(e*2-1)*.5+.5};function Ed(e){if(e&&typeof e==`object`){let t=e.toString();return t===`[object CanvasPattern]`||t===`[object CanvasGradient]`}return!1}function Dd(e){return Ed(e)?e:new ru(e)}function Od(e){return Ed(e)?e:new ru(e).saturate(.5).darken(.1).hexString()}var kd=[`x`,`y`,`borderWidth`,`radius`,`tension`],Ad=[`color`,`borderColor`,`backgroundColor`];function jd(e){e.set(`animation`,{delay:void 0,duration:1e3,easing:`easeOutQuart`,fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),e.describe(`animation`,{_fallback:!1,_indexable:!1,_scriptable:e=>e!==`onProgress`&&e!==`onComplete`&&e!==`fn`}),e.set(`animations`,{colors:{type:`color`,properties:Ad},numbers:{type:`number`,properties:kd}}),e.describe(`animations`,{_fallback:`animation`}),e.set(`transitions`,{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:`transparent`},visible:{type:`boolean`,duration:0}}},hide:{animations:{colors:{to:`transparent`},visible:{type:`boolean`,easing:`linear`,fn:e=>e|0}}}})}function Md(e){e.set(`layout`,{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}var Nd=new Map;function Pd(e,t){t||={};let n=e+JSON.stringify(t),r=Nd.get(n);return r||(r=new Intl.NumberFormat(e,t),Nd.set(n,r)),r}function Fd(e,t,n){return Pd(t,n).format(e)}var Id={values(e){return su(e)?e:``+e},numeric(e,t,n){if(e===0)return`0`;let r=this.chart.options.locale,i,a=e;if(n.length>1){let t=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(t<1e-4||t>0x38d7ea4c68000)&&(i=`scientific`),a=Ld(e,n)}let o=Bu(Math.abs(a)),s=isNaN(o)?1:Math.max(Math.min(-1*Math.floor(o),20),0),c={notation:i,minimumFractionDigits:s,maximumFractionDigits:s};return Object.assign(c,this.options.ticks.format),Fd(e,r,c)},logarithmic(e,t,n){if(e===0)return`0`;let r=n[t].significand||e/10**Math.floor(Bu(e));return[1,2,3,5,10,15].includes(r)||t>.8*n.length?Id.numeric.call(this,e,t,n):``}};function Ld(e,t){let n=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(n)>=1&&e!==Math.floor(e)&&(n=e-Math.floor(e)),n}var Rd={formatters:Id};function zd(e){e.set(`scale`,{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:`ticks`,clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,t)=>t.lineWidth,tickColor:(e,t)=>t.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:``,padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:``,padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Rd.formatters.values,minor:{},major:{},align:`center`,crossAlign:`near`,showLabelBackdrop:!1,backdropColor:`rgba(255, 255, 255, 0.75)`,backdropPadding:2}}),e.route(`scale.ticks`,`color`,``,`color`),e.route(`scale.grid`,`color`,``,`borderColor`),e.route(`scale.border`,`color`,``,`borderColor`),e.route(`scale.title`,`color`,``,`color`),e.describe(`scale`,{_fallback:!1,_scriptable:e=>!e.startsWith(`before`)&&!e.startsWith(`after`)&&e!==`callback`&&e!==`parser`,_indexable:e=>e!==`borderDash`&&e!==`tickBorderDash`&&e!==`dash`}),e.describe(`scales`,{_fallback:`scale`}),e.describe(`scale.ticks`,{_scriptable:e=>e!==`backdropPadding`&&e!==`callback`,_indexable:e=>e!==`backdropPadding`})}var Bd=Object.create(null),Vd=Object.create(null);function Hd(e,t){if(!t)return e;let n=t.split(`.`);for(let t=0,r=n.length;te.chart.platform.getDevicePixelRatio(),this.elements={},this.events=[`mousemove`,`mouseout`,`click`,`touchstart`,`touchmove`],this.font={family:`'Helvetica Neue', 'Helvetica', 'Arial', sans-serif`,size:12,style:`normal`,lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,t)=>Od(t.backgroundColor),this.hoverBorderColor=(e,t)=>Od(t.borderColor),this.hoverColor=(e,t)=>Od(t.color),this.indexAxis=`x`,this.interaction={mode:`nearest`,intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(t)}set(e,t){return Ud(this,e,t)}get(e){return Hd(this,e)}describe(e,t){return Ud(Vd,e,t)}override(e,t){return Ud(Bd,e,t)}route(e,t,n,r){let i=Hd(this,e),a=Hd(this,n),o=`_`+t;Object.defineProperties(i,{[o]:{value:i[t],writable:!0},[t]:{enumerable:!0,get(){let e=this[o],t=a[r];return cu(e)?Object.assign({},t,e):du(e,t)},set(e){this[o]=e}}})}apply(e){e.forEach(e=>e(this))}}({_scriptable:e=>!e.startsWith(`on`),_indexable:e=>e!==`events`,hover:{_fallback:`interaction`},interaction:{_scriptable:!1,_indexable:!1}},[jd,Md,zd]);function Gd(e){return!e||ou(e.size)||ou(e.family)?null:(e.style?e.style+` `:``)+(e.weight?e.weight+` `:``)+e.size+`px `+e.family}function Kd(e,t,n,r,i){let a=t[i];return a||(a=t[i]=e.measureText(i).width,n.push(i)),a>r&&(r=a),r}function qd(e,t,n,r){r||={};let i=r.data=r.data||{},a=r.garbageCollect=r.garbageCollect||[];r.font!==t&&(i=r.data={},a=r.garbageCollect=[],r.font=t),e.save(),e.font=t;let o=0,s=n.length,c,l,u,d,f;for(c=0;cn.length){for(c=0;c0&&e.stroke()}}function Qd(e,t,n){return n||=.5,!t||e&&e.x>t.left-n&&e.xt.top-n&&e.y0&&a.strokeColor!==``,c,l;for(e.save(),e.font=i.string,rf(e,a),c=0;c+e||0;function pf(e,t){let n={},r=cu(t),i=r?Object.keys(t):t,a=cu(e)?r?n=>du(e[n],e[t[n]]):t=>e[t]:()=>e;for(let e of i)n[e]=ff(a(e));return n}function mf(e){return pf(e,{top:`y`,right:`x`,bottom:`y`,left:`x`})}function hf(e){return pf(e,[`topLeft`,`topRight`,`bottomLeft`,`bottomRight`])}function gf(e){let t=mf(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function _f(e,t){e||={},t||=Wd.font;let n=du(e.size,t.size);typeof n==`string`&&(n=parseInt(n,10));let r=du(e.style,t.style);r&&!(``+r).match(uf)&&(console.warn(`Invalid font style specified: "`+r+`"`),r=void 0);let i={family:du(e.family,t.family),lineHeight:df(du(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:du(e.weight,t.weight),string:``};return i.string=Gd(i),i}function vf(e,t,n,r){let i=!0,a,o,s;for(a=0,o=e.length;an&&e===0?0:e+t;return{min:o(r,-Math.abs(a)),max:o(i,a)}}function bf(e,t){return Object.assign(Object.create(e),t)}function xf(e,t=[``],n,r,i=()=>e[0]){let a=n||e;return r===void 0&&(r=Lf(`_fallback`,e)),new Proxy({[Symbol.toStringTag]:`Object`,_cacheable:!0,_scopes:e,_rootScopes:a,_fallback:r,_getTarget:i,override:n=>xf([n,...e],t,a,r)},{deleteProperty(t,n){return delete t[n],delete t._keys,delete e[0][n],!0},get(n,r){return Ef(n,r,()=>If(r,t,e,n))},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(e._scopes[0],t)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(e,t){return Rf(e).includes(t)},ownKeys(e){return Rf(e)},set(e,t,n){let r=e._storage||=i();return e[t]=r[t]=n,delete e._keys,!0}})}function Sf(e,t,n,r){let i={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:Cf(e,r),setContext:t=>Sf(e,t,n,r),override:i=>Sf(e.override(i),t,n,r)};return new Proxy(i,{deleteProperty(t,n){return delete t[n],delete e[n],!0},get(e,t,n){return Ef(e,t,()=>Df(e,t,n))},getOwnPropertyDescriptor(t,n){return t._descriptors.allKeys?Reflect.has(e,n)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,n)},getPrototypeOf(){return Reflect.getPrototypeOf(e)},has(t,n){return Reflect.has(e,n)},ownKeys(){return Reflect.ownKeys(e)},set(t,n,r){return e[n]=r,delete t[n],!0}})}function Cf(e,t={scriptable:!0,indexable:!0}){let{_scriptable:n=t.scriptable,_indexable:r=t.indexable,_allKeys:i=t.allKeys}=e;return{allKeys:i,scriptable:n,indexable:r,isScriptable:ku(n)?n:()=>n,isIndexable:ku(r)?r:()=>r}}var wf=(e,t)=>e?e+Du(t):t,Tf=(e,t)=>cu(t)&&e!==`adapters`&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function Ef(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t===`constructor`)return e[t];let r=n();return e[t]=r,r}function Df(e,t,n){let{_proxy:r,_context:i,_subProxy:a,_descriptors:o}=e,s=r[t];return ku(s)&&o.isScriptable(t)&&(s=Of(t,s,e,n)),su(s)&&s.length&&(s=kf(t,s,e,o.isIndexable)),Tf(t,s)&&(s=Sf(s,i,a&&a[t],o)),s}function Of(e,t,n,r){let{_proxy:i,_context:a,_subProxy:o,_stack:s}=n;if(s.has(e))throw Error(`Recursion detected: `+Array.from(s).join(`->`)+`->`+e);s.add(e);let c=t(a,o||r);return s.delete(e),Tf(e,c)&&(c=Nf(i._scopes,i,e,c)),c}function kf(e,t,n,r){let{_proxy:i,_context:a,_subProxy:o,_descriptors:s}=n;if(a.index!==void 0&&r(e))return t[a.index%t.length];if(cu(t[0])){let n=t,r=i._scopes.filter(e=>e!==n);t=[];for(let c of n){let n=Nf(r,i,e,c);t.push(Sf(n,a,o&&o[e],s))}}return t}function Af(e,t,n){return ku(e)?e(t,n):e}var jf=(e,t)=>e===!0?t:typeof e==`string`?Eu(t,e):void 0;function Mf(e,t,n,r,i){for(let a of t){let t=jf(n,a);if(t){e.add(t);let a=Af(t._fallback,n,i);if(a!==void 0&&a!==n&&a!==r)return a}else if(t===!1&&r!==void 0&&n!==r)return null}return!1}function Nf(e,t,n,r){let i=t._rootScopes,a=Af(t._fallback,n,r),o=[...e,...i],s=new Set;s.add(r);let c=Pf(s,o,n,a||n,r);return c===null||a!==void 0&&a!==n&&(c=Pf(s,o,a,c,r),c===null)?!1:xf(Array.from(s),[``],i,a,()=>Ff(t,n,r))}function Pf(e,t,n,r,i){for(;n;)n=Mf(e,t,n,r,i);return n}function Ff(e,t,n){let r=e._getTarget();t in r||(r[t]={});let i=r[t];return su(i)&&cu(n)?n:i||{}}function If(e,t,n,r){let i;for(let a of t)if(i=Lf(wf(a,e),n),i!==void 0)return Tf(e,i)?Nf(n,r,e,i):i}function Lf(e,t){for(let n of t){if(!n)continue;let t=n[e];if(t!==void 0)return t}}function Rf(e){let t=e._keys;return t||=e._keys=zf(e._scopes),t}function zf(e){let t=new Set;for(let n of e)for(let e of Object.keys(n).filter(e=>!e.startsWith(`_`)))t.add(e);return Array.from(t)}function Bf(e,t,n,r){let{iScale:i}=e,{key:a=`r`}=this._parsing,o=Array(r),s,c,l,u;for(s=0,c=r;ste===`x`?`y`:`x`;function Wf(e,t,n,r){let i=e.skip?t:e,a=t,o=n.skip?t:n,s=$u(a,i),c=$u(o,a),l=s/(s+c),u=c/(s+c);l=isNaN(l)?0:l,u=isNaN(u)?0:u;let d=r*l,f=r*u;return{previous:{x:a.x-d*(o.x-i.x),y:a.y-d*(o.y-i.y)},next:{x:a.x+f*(o.x-i.x),y:a.y+f*(o.y-i.y)}}}function Gf(e,t,n){let r=e.length,i,a,o,s,c,l=Hf(e,0);for(let u=0;u!e.skip)),t.cubicInterpolationMode===`monotone`)qf(e,i);else{let n=r?e[e.length-1]:e[0];for(a=0,o=e.length;ae.ownerDocument.defaultView.getComputedStyle(e,null);function tp(e,t){return ep(e).getPropertyValue(t)}var np=[`top`,`right`,`bottom`,`left`];function rp(e,t,n){let r={};n=n?`-`+n:``;for(let i=0;i<4;i++){let a=np[i];r[a]=parseFloat(e[t+`-`+a+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}var ip=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function ap(e,t){let n=e.touches,r=n&&n.length?n[0]:e,{offsetX:i,offsetY:a}=r,o=!1,s,c;if(ip(i,a,e.target))s=i,c=a;else{let e=t.getBoundingClientRect();s=r.clientX-e.left,c=r.clientY-e.top,o=!0}return{x:s,y:c,box:o}}function op(e,t){if(`native`in e)return e;let{canvas:n,currentDevicePixelRatio:r}=t,i=ep(n),a=i.boxSizing===`border-box`,o=rp(i,`padding`),s=rp(i,`border`,`width`),{x:c,y:l,box:u}=ap(e,n),d=o.left+(u&&s.left),f=o.top+(u&&s.top),{width:p,height:m}=t;return a&&(p-=o.width+s.width,m-=o.height+s.height),{x:Math.round((c-d)/p*n.width/r),y:Math.round((l-f)/m*n.height/r)}}function sp(e,t,n){let r,i;if(t===void 0||n===void 0){let a=e&&Qf(e);if(!a)t=e.clientWidth,n=e.clientHeight;else{let e=a.getBoundingClientRect(),o=ep(a),s=rp(o,`border`,`width`),c=rp(o,`padding`);t=e.width-c.width-s.width,n=e.height-c.height-s.height,r=$f(o.maxWidth,a,`clientWidth`),i=$f(o.maxHeight,a,`clientHeight`)}}return{width:t,height:n,maxWidth:r||Fu,maxHeight:i||Fu}}var cp=e=>Math.round(e*10)/10;function lp(e,t,n,r){let i=ep(e),a=rp(i,`margin`),o=$f(i.maxWidth,e,`clientWidth`)||Fu,s=$f(i.maxHeight,e,`clientHeight`)||Fu,c=sp(e,t,n),{width:l,height:u}=c;if(i.boxSizing===`content-box`){let e=rp(i,`border`,`width`),t=rp(i,`padding`);l-=t.width+e.width,u-=t.height+e.height}return l=Math.max(0,l-a.width),u=Math.max(0,r?l/r:u-a.height),l=cp(Math.min(l,o,c.maxWidth)),u=cp(Math.min(u,s,c.maxHeight)),l&&!u&&(u=cp(l/2)),(t!==void 0||n!==void 0)&&r&&c.height&&u>c.height&&(u=c.height,l=cp(Math.floor(u*r))),{width:l,height:u}}function up(e,t,n){let r=t||1,i=cp(e.height*r),a=cp(e.width*r);e.height=cp(e.height),e.width=cp(e.width);let o=e.canvas;return o.style&&(n||!o.style.height&&!o.style.width)&&(o.style.height=`${e.height}px`,o.style.width=`${e.width}px`),e.currentDevicePixelRatio!==r||o.height!==i||o.width!==a?(e.currentDevicePixelRatio=r,o.height=i,o.width=a,e.ctx.setTransform(r,0,0,r,0,0),!0):!1}var dp=function(){let e=!1;try{let t={get passive(){return e=!0,!1}};Zf()&&(window.addEventListener(`test`,null,t),window.removeEventListener(`test`,null,t))}catch{}return e}();function fp(e,t){let n=tp(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function pp(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function mp(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:r===`middle`?n<.5?e.y:t.y:r===`after`?n<1?e.y:t.y:n>0?t.y:e.y}}function hp(e,t,n,r){let i={x:e.cp2x,y:e.cp2y},a={x:t.cp1x,y:t.cp1y},o=pp(e,i,n),s=pp(i,a,n),c=pp(a,t,n);return pp(pp(o,s,n),pp(s,c,n),n)}var gp=function(e,t){return{x(n){return e+e+t-n},setWidth(e){t=e},textAlign(e){return e===`center`?e:e===`right`?`left`:`right`},xPlus(e,t){return e-t},leftForLtr(e,t){return e-t}}},_p=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function vp(e,t,n){return e?gp(t,n):_p()}function yp(e,t){let n,r;(t===`ltr`||t===`rtl`)&&(n=e.canvas.style,r=[n.getPropertyValue(`direction`),n.getPropertyPriority(`direction`)],n.setProperty(`direction`,t,`important`),e.prevTextDirection=r)}function bp(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty(`direction`,t[0],t[1]))}function xp(e){return e===`angle`?{between:nd,compare:ed,normalize:td}:{between:ad,compare:(e,t)=>e-t,normalize:e=>e}}function Sp({start:e,end:t,count:n,loop:r,style:i}){return{start:e%n,end:t%n,loop:r&&(t-e+1)%n===0,style:i}}function Cp(e,t,n){let{property:r,start:i,end:a}=n,{between:o,normalize:s}=xp(r),c=t.length,{start:l,end:u,loop:d}=e,f,p;if(d){for(l+=c,u+=c,f=0,p=c;fc(i,y,_)&&s(i,y)!==0,x=()=>s(a,_)===0||c(a,y,_),S=()=>h||b(),C=()=>!h||x();for(let e=u,n=u;e<=d;++e)v=t[e%o],!v.skip&&(_=l(v[r]),_!==y&&(h=c(_,i,a),g===null&&S()&&(g=s(_,i)===0?e:n),g!==null&&C()&&(m.push(Sp({start:g,end:e,loop:f,count:o,style:p})),g=null),n=e,y=_));return g!==null&&m.push(Sp({start:g,end:d,loop:f,count:o,style:p})),m}function Tp(e,t){let n=[],r=e.segments;for(let i=0;ii&&e[a%t].skip;)a--;return a%=t,{start:i,end:a}}function Dp(e,t,n,r){let i=e.length,a=[],o=t,s=e[t],c;for(c=t+1;c<=n;++c){let n=e[c%i];n.skip||n.stop?s.skip||(r=!1,a.push({start:t%i,end:(c-1)%i,loop:r}),t=o=n.stop?c:null):(o=c,s.skip&&(t=c)),s=n}return o!==null&&a.push({start:t%i,end:o%i,loop:r}),a}function Op(e,t){let n=e.points,r=e.options.spanGaps,i=n.length;if(!i)return[];let a=!!e._loop,{start:o,end:s}=Ep(n,i,a,r);return r===!0?kp(e,[{start:o,end:s,loop:a}],n,t):kp(e,Dp(n,o,sr({chart:e,initial:t.initial,numSteps:a,currentStep:Math.min(n-t.start,a)}))}_refresh(){this._request||=(this._running=!0,md.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let t=0;this._charts.forEach((n,r)=>{if(!n.running||!n.items.length)return;let i=n.items,a=i.length-1,o=!1,s;for(;a>=0;--a)s=i[a],s._active?(s._total>n.duration&&(n.duration=s._total),s.tick(e),o=!0):(i[a]=i[i.length-1],i.pop());o&&(r.draw(),this._notify(r,n,e,`progress`)),i.length||(n.running=!1,this._notify(r,n,e,`complete`),n.initial=!1),t+=i.length}),this._lastDate=e,t===0&&(this._running=!1)}_getAnims(e){let t=this._charts,n=t.get(e);return n||(n={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(e,n)),n}listen(e,t,n){this._getAnims(e).listeners[t].push(n)}add(e,t){!t||!t.length||this._getAnims(e).items.push(...t)}has(e){return this._getAnims(e).items.length>0}start(e){let t=this._charts.get(e);t&&(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce((e,t)=>Math.max(e,t._duration),0),this._refresh())}running(e){if(!this._running)return!1;let t=this._charts.get(e);return!(!t||!t.running||!t.items.length)}stop(e){let t=this._charts.get(e);if(!t||!t.items.length)return;let n=t.items,r=n.length-1;for(;r>=0;--r)n[r].cancel();t.items=[],this._notify(e,t,Date.now(),`complete`)}remove(e){return this._charts.delete(e)}},Lp=`transparent`,Rp={boolean(e,t,n){return n>.5?t:e},color(e,t,n){let r=Dd(e||Lp),i=r.valid&&Dd(t||Lp);return i&&i.valid?i.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}},zp=class{constructor(e,t,n,r){let i=t[n];r=vf([e.to,r,i,e.from]);let a=vf([e.from,i,r]);this._active=!0,this._fn=e.fn||Rp[e.type||typeof a],this._easing=Td[e.easing]||Td.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=t,this._prop=n,this._from=a,this._to=r,this._promises=void 0}active(){return this._active}update(e,t,n){if(this._active){this._notify(!1);let r=this._target[this._prop],i=n-this._start,a=this._duration-i;this._start=n,this._duration=Math.floor(Math.max(a,e.duration)),this._total+=i,this._loop=!!e.loop,this._to=vf([e.to,t,r,e.from]),this._from=vf([e.from,r,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){let t=e-this._start,n=this._duration,r=this._prop,i=this._from,a=this._loop,o=this._to,s;if(this._active=i!==o&&(a||t1?2-s:s,s=this._easing(Math.min(1,Math.max(0,s))),this._target[r]=this._fn(i,o,s)}wait(){let e=this._promises||=[];return new Promise((t,n)=>{e.push({res:t,rej:n})})}_notify(e){let t=e?`res`:`rej`,n=this._promises||[];for(let e=0;e{let i=e[r];if(!cu(i))return;let a={};for(let e of t)a[e]=i[e];(su(i.properties)&&i.properties||[r]).forEach(e=>{(e===r||!n.has(e))&&n.set(e,a)})})}_animateOptions(e,t){let n=t.options,r=Hp(e,n);if(!r)return[];let i=this._createAnimations(r,n);return n.$shared&&Vp(e.options.$animations,n).then(()=>{e.options=n},()=>{}),i}_createAnimations(e,t){let n=this._properties,r=[],i=e.$animations||={},a=Object.keys(t),o=Date.now(),s;for(s=a.length-1;s>=0;--s){let c=a[s];if(c.charAt(0)===`$`)continue;if(c===`options`){r.push(...this._animateOptions(e,t));continue}let l=t[c],u=i[c],d=n.get(c);if(u)if(d&&u.active()){u.update(d,l,o);continue}else u.cancel();if(!d||!d.duration){e[c]=l;continue}i[c]=u=new zp(d,e,c,l),r.push(u)}return r}update(e,t){if(this._properties.size===0){Object.assign(e,t);return}let n=this._createAnimations(e,t);if(n.length)return Ip.add(this._chart,n),!0}};function Vp(e,t){let n=[],r=Object.keys(t);for(let t=0;t0||!n&&t<0)return i.index}return null}function em(e,t){let{chart:n,_cachedMeta:r}=e,i=n._stacks||={},{iScale:a,vScale:o,index:s}=r,c=a.axis,l=o.axis,u=Xp(a,o,r),d=t.length,f;for(let e=0;en[e].axis===t).shift()}function nm(e,t){return bf(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:`default`,type:`dataset`})}function rm(e,t,n){return bf(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:`default`,type:`data`})}function im(e,t){let n=e.controller.index,r=e.vScale&&e.vScale.axis;if(r){t||=e._parsed;for(let e of t){let t=e._stacks;if(!t||t[r]===void 0||t[r][n]===void 0)return;delete t[r][n],t[r]._visualValues!==void 0&&t[r]._visualValues[n]!==void 0&&delete t[r]._visualValues[n]}}}var am=e=>e===`reset`||e===`none`,om=(e,t)=>t?e:Object.assign({},e),sm=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:Kp(n,!0),values:null},cm=class{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,t){this.chart=e,this._ctx=e.ctx,this.index=t,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){let e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Yp(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled(`filler`)&&console.warn(`Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options`)}updateIndex(e){this.index!==e&&im(this._cachedMeta),this.index=e}linkScales(){let e=this.chart,t=this._cachedMeta,n=this.getDataset(),r=(e,t,n,r)=>e===`x`?t:e===`r`?r:n,i=t.xAxisID=du(n.xAxisID,tm(e,`x`)),a=t.yAxisID=du(n.yAxisID,tm(e,`y`)),o=t.rAxisID=du(n.rAxisID,tm(e,`r`)),s=t.indexAxis,c=t.iAxisID=r(s,i,a,o),l=t.vAxisID=r(s,a,i,o);t.xScale=this.getScaleForId(i),t.yScale=this.getScaleForId(a),t.rScale=this.getScaleForId(o),t.iScale=this.getScaleForId(c),t.vScale=this.getScaleForId(l)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){let t=this._cachedMeta;return e===t.iScale?t.vScale:t.iScale}reset(){this._update(`reset`)}_destroy(){let e=this._cachedMeta;this._data&&fd(this._data,this),e._stacked&&im(e)}_dataCheck(){let e=this.getDataset(),t=e.data||=[],n=this._data;if(cu(t)){let e=this._cachedMeta;this._data=Jp(t,e)}else if(n!==t){if(n){fd(n,this);let e=this._cachedMeta;im(e),e._parsed=[]}t&&Object.isExtensible(t)&&dd(t,this),this._syncList=[],this._data=t}}addElements(){let e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){let t=this._cachedMeta,n=this.getDataset(),r=!1;this._dataCheck();let i=t._stacked;t._stacked=Yp(t.vScale,t),t.stack!==n.stack&&(r=!0,im(t),t.stack=n.stack),this._resyncElements(e),(r||i!==t._stacked)&&(em(this,t._parsed),t._stacked=Yp(t.vScale,t))}configure(){let e=this.chart.config,t=e.datasetScopeKeys(this._type),n=e.getOptionScopes(this.getDataset(),t,!0);this.options=e.createResolver(n,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,t){let{_cachedMeta:n,_data:r}=this,{iScale:i,_stacked:a}=n,o=i.axis,s=e===0&&t===r.length||n._sorted,c=e>0&&n._parsed[e-1],l,u,d;if(this._parsing===!1)n._parsed=r,n._sorted=!0,d=r;else{d=su(r[e])?this.parseArrayData(n,r,e,t):cu(r[e])?this.parseObjectData(n,r,e,t):this.parsePrimitiveData(n,r,e,t);let i=()=>u[o]===null||c&&u[o]t||u=0;--d)if(!p()){this.updateRangeFromParsed(c,e,f,s);break}}return c}getAllParsedValues(e){let t=this._cachedMeta._parsed,n=[],r,i,a;for(r=0,i=t.length;r=0&&ethis.getContext(n,r,t),u);return p.$shared&&(p.$shared=s,i[a]=Object.freeze(om(p,s))),p}_resolveAnimations(e,t,n){let r=this.chart,i=this._cachedDataOpts,a=`animation-${t}`,o=i[a];if(o)return o;let s;if(r.options.animation!==!1){let r=this.chart.config,i=r.datasetAnimationScopeKeys(this._type,t),a=r.getOptionScopes(this.getDataset(),i);s=r.createResolver(a,this.getContext(e,n,t))}let c=new Bp(r,s&&s.animations);return s&&s._cacheable&&(i[a]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||=Object.assign({},e)}includeOptions(e,t){return!t||am(e)||this.chart._animationsDisabled}_getSharedOptions(e,t){let n=this.resolveDataElementOptions(e,t),r=this._sharedOptions,i=this.getSharedOptions(n),a=this.includeOptions(t,i)||i!==r;return this.updateSharedOptions(i,t,n),{sharedOptions:i,includeOptions:a}}updateElement(e,t,n,r){am(r)?Object.assign(e,n):this._resolveAnimations(t,r).update(e,n)}updateSharedOptions(e,t,n){e&&!am(t)&&this._resolveAnimations(void 0,t).update(e,n)}_setStyle(e,t,n,r){e.active=r;let i=this.getStyle(t,r);this._resolveAnimations(t,n,r).update(e,{options:!r&&this.getSharedOptions(i)||i})}removeHoverStyle(e,t,n){this._setStyle(e,n,`active`,!1)}setHoverStyle(e,t,n){this._setStyle(e,n,`active`,!0)}_removeDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,`active`,!1)}_setDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,`active`,!0)}_resyncElements(e){let t=this._data,n=this._cachedMeta.data;for(let[e,t,n]of this._syncList)this[e](t,n);this._syncList=[];let r=n.length,i=t.length,a=Math.min(i,r);a&&this.parse(0,a),i>r?this._insertElements(r,i-r,e):i{for(e.length+=t,o=e.length-1;o>=a;o--)e[o]=e[o-t]};for(s(i),o=e;oe-t))}return e._cache.$bar}function um(e){let t=e.iScale,n=lm(t,e.type),r=t._length,i,a,o,s,c=()=>{o===32767||o===-32768||(Ou(s)&&(r=Math.min(r,Math.abs(o-s)||r)),s=o)};for(i=0,a=n.length;i0?i[e-1]:null,s=eMath.abs(s)&&(c=s,l=o),t[n.axis]=l,t._custom={barStart:c,barEnd:l,start:i,end:a,min:o,max:s}}function mm(e,t,n,r){return su(e)?pm(e,t,n,r):t[n.axis]=n.parse(e,r),t}function hm(e,t,n,r){let i=e.iScale,a=e.vScale,o=i.getLabels(),s=i===a,c=[],l,u,d,f;for(l=n,u=n+r;l=n?1:-1):Vu(e)}function vm(e){let t,n,r,i,a;return e.horizontal?(t=e.base>e.x,n=`left`,r=`right`):(t=e.basee.controller.options.grouped),i=n.options.stacked,a=[],o=this._cachedMeta.controller.getParsed(t),s=o&&o[n.axis],c=e=>{let t=e._parsed.find(e=>e[n.axis]===s),r=t&&t[e.vScale.axis];if(ou(r)||isNaN(r))return!0};for(let n of r)if(!(t!==void 0&&c(n))&&((i===!1||a.indexOf(n.stack)===-1||i===void 0&&n.stack===void 0)&&a.push(n.stack),n.index===e))break;return a.length||a.push(void 0),a}_getStackCount(e){return this._getStacks(void 0,e).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){let e=this.chart.scales,t=this.chart.options.indexAxis;return Object.keys(e).filter(n=>e[n].axis===t).shift()}_getAxis(){let e={},t=this.getFirstScaleIdForIndexAxis();for(let n of this.chart.data.datasets)e[du(this.chart.options.indexAxis===`x`?n.xAxisID:n.yAxisID,t)]=!0;return Object.keys(e)}_getStackIndex(e,t,n){let r=this._getStacks(e,n),i=t===void 0?-1:r.indexOf(t);return i===-1?r.length-1:i}_getRuler(){let e=this.options,t=this._cachedMeta,n=t.iScale,r=[],i,a;for(i=0,a=t.data.length;i=0;--n)t=Math.max(t,e[n].size(this.resolveDataElementOptions(n))/2);return t>0&&t}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart.data.labels||[],{xScale:r,yScale:i}=t,a=this.getParsed(e),o=r.getLabelForValue(a.x),s=i.getLabelForValue(a.y),c=a._custom;return{label:n[e]||``,value:`(`+o+`, `+s+(c?`, `+c:``)+`)`}}update(e){let t=this._cachedMeta.data;this.updateElements(t,0,t.length,e)}updateElements(e,t,n,r){let i=r===`reset`,{iScale:a,vScale:o}=this._cachedMeta,{sharedOptions:s,includeOptions:c}=this._getSharedOptions(t,r),l=a.axis,u=o.axis;for(let d=t;dnd(e,s,c,!0)?1:Math.max(t,t*n,r,r*n),m=(e,t,r)=>nd(e,s,c,!0)?-1:Math.min(t,t*n,r,r*n),h=p(0,l,d),g=p(Lu,u,f),_=m(Mu,l,d),v=m(Mu+Lu,u,f);r=(h-_)/2,i=(g-v)/2,a=-(h+_)/2,o=-(g+v)/2}return{ratioX:r,ratioY:i,offsetX:a,offsetY:o}}var Dm=class extends cm{static id=`doughnut`;static defaults={datasetElementType:!1,dataElementType:`arc`,animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:`number`,properties:[`circumference`,`endAngle`,`innerRadius`,`outerRadius`,`startAngle`,`x`,`y`,`offset`,`borderWidth`,`spacing`]}},cutout:`50%`,rotation:0,circumference:360,radius:`100%`,spacing:0,indexAxis:`r`};static descriptors={_scriptable:e=>e!==`spacing`,_indexable:e=>e!==`spacing`&&!e.startsWith(`borderDash`)&&!e.startsWith(`hoverBorderDash`)};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){let t=e.data,{labels:{pointStyle:n,textAlign:r,color:i,useBorderRadius:a,borderRadius:o}}=e.legend.options;return t.labels.length&&t.datasets.length?t.labels.map((t,s)=>{let c=e.getDatasetMeta(0).controller.getStyle(s);return{text:t,fillStyle:c.backgroundColor,fontColor:i,hidden:!e.getDataVisibility(s),lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:c.borderWidth,strokeStyle:c.borderColor,textAlign:r,pointStyle:n,borderRadius:a&&(o||c.borderRadius),index:s}}):[]}},onClick(e,t,n){n.chart.toggleDataVisibility(t.index),n.chart.update()}}}};constructor(e,t){super(e,t),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,t){let n=this.getDataset().data,r=this._cachedMeta;if(this._parsing===!1)r._parsed=n;else{let i=e=>+n[e];if(cu(n[e])){let{key:e=`value`}=this._parsing;i=t=>+Eu(n[t],e)}let a,o;for(a=e,o=e+t;a0&&!isNaN(e)?Math.abs(e)/t*Nu:0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=Fd(t._parsed[e],n.options.locale);return{label:r[e]||``,value:i}}getMaxBorderWidth(e){let t=0,n=this.chart,r,i,a,o,s;if(!e){for(r=0,i=n.data.datasets.length;r0&&this.getParsed(t-1);for(let n=0;n=_){v.skip=!0;continue}let b=this.getParsed(n),x=ou(b[f]),S=v[d]=a.getPixelForValue(b[d],n),C=v[f]=i||x?o.getBasePixel():o.getPixelForValue(s?this.applyStack(o,b,s):b[f],n);v.skip=isNaN(S)||isNaN(C)||x,v.stop=n>0&&Math.abs(b[d]-y[d])>h,m&&(v.parsed=b,v.raw=c.data[n]),u&&(v.options=l||this.resolveDataElementOptions(n,p.active?`active`:r)),g||this.updateElement(p,n,v,r),y=b}}getMaxOverflow(){let e=this._cachedMeta,t=e.dataset,n=t.options&&t.options.borderWidth||0,r=e.data||[];if(!r.length)return n;let i=r[0].size(this.resolveDataElementOptions(0)),a=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(n,i,a)/2}draw(){let e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}},km=class extends cm{static id=`polarArea`;static defaults={dataElementType:`arc`,animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:`number`,properties:[`x`,`y`,`startAngle`,`endAngle`,`innerRadius`,`outerRadius`]}},indexAxis:`r`,startAngle:0};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){let t=e.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:n,color:r}}=e.legend.options;return t.labels.map((t,i)=>{let a=e.getDatasetMeta(0).controller.getStyle(i);return{text:t,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,fontColor:r,lineWidth:a.borderWidth,pointStyle:n,hidden:!e.getDataVisibility(i),index:i}})}return[]}},onClick(e,t,n){n.chart.toggleDataVisibility(t.index),n.chart.update()}}},scales:{r:{type:`radialLinear`,angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(e,t){super(e,t),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=Fd(t._parsed[e].r,n.options.locale);return{label:r[e]||``,value:i}}parseObjectData(e,t,n,r){return Bf.bind(this)(e,t,n,r)}update(e){let t=this._cachedMeta.data;this._updateRadius(),this.updateElements(t,0,t.length,e)}getMinMax(){let e=this._cachedMeta,t={min:1/0,max:-1/0};return e.data.forEach((e,n)=>{let r=this.getParsed(n).r;!isNaN(r)&&this.chart.getDataVisibility(n)&&(rt.max&&(t.max=r))}),t}_updateRadius(){let e=this.chart,t=e.chartArea,n=e.options,r=Math.min(t.right-t.left,t.bottom-t.top),i=Math.max(r/2,0),a=(i-Math.max(n.cutoutPercentage?i/100*n.cutoutPercentage:1,0))/e.getVisibleDatasetCount();this.outerRadius=i-a*this.index,this.innerRadius=this.outerRadius-a}updateElements(e,t,n,r){let i=r===`reset`,a=this.chart,o=a.options.animation,s=this._cachedMeta.rScale,c=s.xCenter,l=s.yCenter,u=s.getIndexAngle(0)-.5*Mu,d=u,f,p=360/this.countVisibleElements();for(f=0;f{!isNaN(this.getParsed(n).r)&&this.chart.getDataVisibility(n)&&t++}),t}_computeAngle(e,t,n){return this.chart.getDataVisibility(e)?Yu(this.resolveDataElementOptions(e,t).angle||n):0}},Am=Object.freeze({__proto__:null,BarController:wm,BubbleController:Tm,DoughnutController:Dm,LineController:Om,PieController:class extends Dm{static id=`pie`;static defaults={cutout:0,rotation:0,circumference:360,radius:`100%`}},PolarAreaController:km,RadarController:class extends cm{static id=`radar`;static defaults={datasetElementType:`line`,dataElementType:`point`,indexAxis:`r`,showLine:!0,elements:{line:{fill:`start`}}};static overrides={aspectRatio:1,scales:{r:{type:`radialLinear`}}};getLabelAndValue(e){let t=this._cachedMeta.vScale,n=this.getParsed(e);return{label:t.getLabels()[e],value:``+t.getLabelForValue(n[t.axis])}}parseObjectData(e,t,n,r){return Bf.bind(this)(e,t,n,r)}update(e){let t=this._cachedMeta,n=t.dataset,r=t.data||[],i=t.iScale.getLabels();if(n.points=r,e!==`resize`){let t=this.resolveDatasetElementOptions(e);this.options.showLine||(t.borderWidth=0);let a={_loop:!0,_fullLoop:i.length===r.length,options:t};this.updateElement(n,void 0,a,e)}this.updateElements(r,0,r.length,e)}updateElements(e,t,n,r){let i=this._cachedMeta.rScale,a=r===`reset`;for(let o=t;o0&&this.getParsed(t-1);for(let l=t;l0&&Math.abs(n[f]-v[f])>g,h&&(m.parsed=n,m.raw=c.data[l]),d&&(m.options=u||this.resolveDataElementOptions(l,t.active?`active`:r)),_||this.updateElement(t,l,m,r),v=n}this.updateSharedOptions(u,r,l)}getMaxOverflow(){let e=this._cachedMeta,t=e.data||[];if(!this.options.showLine){let e=0;for(let n=t.length-1;n>=0;--n)e=Math.max(e,t[n].size(this.resolveDataElementOptions(n))/2);return e>0&&e}let n=e.dataset,r=n.options&&n.options.borderWidth||0;if(!t.length)return r;let i=t[0].size(this.resolveDataElementOptions(0)),a=t[t.length-1].size(this.resolveDataElementOptions(t.length-1));return Math.max(r,i,a)/2}}});function jm(){throw Error(`This method is not implemented: Check that a complete date adapter is provided.`)}var Mm={_date:class e{static override(t){Object.assign(e.prototype,t)}options;constructor(e){this.options=e||{}}init(){}formats(){return jm()}parse(){return jm()}format(){return jm()}add(){return jm()}diff(){return jm()}startOf(){return jm()}endOf(){return jm()}}};function Nm(e,t,n,r){let{controller:i,data:a,_sorted:o}=e,s=i._cachedMeta.iScale,c=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null;if(s&&t===s.axis&&t!==`r`&&o&&a.length){let o=s._reversePixels?cd:sd;if(!r){let r=o(a,t,n);if(c){let{vScale:t}=i._cachedMeta,{_parsed:n}=e,a=n.slice(0,r.lo+1).reverse().findIndex(e=>!ou(e[t.axis]));r.lo-=Math.max(0,a);let o=n.slice(r.hi).findIndex(e=>!ou(e[t.axis]));r.hi+=Math.max(0,o)}return r}else if(i._sharedOptions){let e=a[0],r=typeof e.getRange==`function`&&e.getRange(t);if(r){let e=o(a,t,n-r),i=o(a,t,n+r);return{lo:e.lo,hi:i.hi}}}}return{lo:0,hi:a.length-1}}function Pm(e,t,n,r,i){let a=e.getSortedVisibleDatasetMetas(),o=n[t];for(let e=0,n=a.length;e{e[o]&&e[o](t[n],i)&&(a.push({element:e,datasetIndex:r,index:c}),s||=e.inRange(t.x,t.y,i))}),r&&!s?[]:a}var Vm={evaluateInteractionItems:Pm,modes:{index(e,t,n,r){let i=op(t,e),a=n.axis||`x`,o=n.includeInvisible||!1,s=n.intersect?Im(e,i,a,r,o):zm(e,i,a,!1,r,o),c=[];return s.length?(e.getSortedVisibleDatasetMetas().forEach(e=>{let t=s[0].index,n=e.data[t];n&&!n.skip&&c.push({element:n,datasetIndex:e.index,index:t})}),c):[]},dataset(e,t,n,r){let i=op(t,e),a=n.axis||`xy`,o=n.includeInvisible||!1,s=n.intersect?Im(e,i,a,r,o):zm(e,i,a,!1,r,o);if(s.length>0){let t=s[0].datasetIndex,n=e.getDatasetMeta(t).data;s=[];for(let e=0;ee.pos===t)}function Wm(e,t){return e.filter(e=>Hm.indexOf(e.pos)===-1&&e.box.axis===t)}function Gm(e,t){return e.sort((e,n)=>{let r=t?n:e,i=t?e:n;return r.weight===i.weight?r.index-i.index:r.weight-i.weight})}function Km(e){let t=[],n,r,i,a,o,s;for(n=0,r=(e||[]).length;ne.box.fullSize),!0),r=Gm(Um(t,`left`),!0),i=Gm(Um(t,`right`)),a=Gm(Um(t,`top`),!0),o=Gm(Um(t,`bottom`)),s=Wm(t,`x`),c=Wm(t,`y`);return{fullSize:n,leftAndTop:r.concat(a),rightAndBottom:i.concat(c).concat(o).concat(s),chartArea:Um(t,`chartArea`),vertical:r.concat(i).concat(c),horizontal:a.concat(o).concat(s)}}function Xm(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function Zm(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function Qm(e,t,n,r){let{pos:i,box:a}=n,o=e.maxPadding;if(!cu(i)){n.size&&(e[i]-=n.size);let t=r[n.stack]||{size:0,count:1};t.size=Math.max(t.size,n.horizontal?a.height:a.width),n.size=t.size/t.count,e[i]+=n.size}a.getPadding&&Zm(o,a.getPadding());let s=Math.max(0,t.outerWidth-Xm(o,e,`left`,`right`)),c=Math.max(0,t.outerHeight-Xm(o,e,`top`,`bottom`)),l=s!==e.w,u=c!==e.h;return e.w=s,e.h=c,n.horizontal?{same:l,other:u}:{same:u,other:l}}function $m(e){let t=e.maxPadding;function n(n){let r=Math.max(t[n]-e[n],0);return e[n]+=r,r}e.y+=n(`top`),e.x+=n(`left`),n(`right`),n(`bottom`)}function eh(e,t){let n=t.maxPadding;function r(e){let r={left:0,top:0,right:0,bottom:0};return e.forEach(e=>{r[e]=Math.max(t[e],n[e])}),r}return r(e?[`left`,`right`]:[`top`,`bottom`])}function th(e,t,n,r){let i=[],a,o,s,c,l,u;for(a=0,o=e.length,l=0;a{typeof e.beforeLayout==`function`&&e.beforeLayout()});let u=c.reduce((e,t)=>t.box.options&&t.box.options.display===!1?e:e+1,0)||1,d=Object.freeze({outerWidth:t,outerHeight:n,padding:i,availableWidth:a,availableHeight:o,vBoxMaxWidth:a/2/u,hBoxMaxHeight:o/2}),f=Object.assign({},i);Zm(f,gf(r));let p=Object.assign({maxPadding:f,w:a,h:o,x:i.left,y:i.top},i),m=Jm(c.concat(l),d);th(s.fullSize,p,d,m),th(c,p,d,m),th(l,p,d,m)&&th(c,p,d,m),$m(p),rh(s.leftAndTop,p,d,m),p.x+=p.w,p.y+=p.h,rh(s.rightAndBottom,p,d,m),e.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},hu(s.chartArea,t=>{let n=t.box;Object.assign(n,e.chartArea),n.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}},ah=class{acquireContext(e,t){}releaseContext(e){return!1}addEventListener(e,t,n){}removeEventListener(e,t,n){}getDevicePixelRatio(){return 1}getMaximumSize(e,t,n,r){return t=Math.max(0,t||e.width),n||=e.height,{width:t,height:Math.max(0,r?Math.floor(t/r):n)}}isAttached(e){return!0}updateConfig(e){}},oh=class extends ah{acquireContext(e){return e&&e.getContext&&e.getContext(`2d`)||null}updateConfig(e){e.options.animation=!1}},sh=`$chartjs`,ch={touchstart:`mousedown`,touchmove:`mousemove`,touchend:`mouseup`,pointerenter:`mouseenter`,pointerdown:`mousedown`,pointermove:`mousemove`,pointerup:`mouseup`,pointerleave:`mouseout`,pointerout:`mouseout`},lh=e=>e===null||e===``;function uh(e,t){let n=e.style,r=e.getAttribute(`height`),i=e.getAttribute(`width`);if(e[sh]={initial:{height:r,width:i,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||`block`,n.boxSizing=n.boxSizing||`border-box`,lh(i)){let t=fp(e,`width`);t!==void 0&&(e.width=t)}if(lh(r))if(e.style.height===``)e.height=e.width/(t||2);else{let t=fp(e,`height`);t!==void 0&&(e.height=t)}return e}var dh=dp?{passive:!0}:!1;function fh(e,t,n){e&&e.addEventListener(t,n,dh)}function ph(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,dh)}function mh(e,t){let n=ch[e.type]||e.type,{x:r,y:i}=op(e,t);return{type:n,chart:t,native:e,x:r===void 0?null:r,y:i===void 0?null:i}}function hh(e,t){for(let n of e)if(n===t||n.contains(t))return!0}function gh(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=hh(n.addedNodes,r),t&&=!hh(n.removedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}function _h(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=hh(n.removedNodes,r),t&&=!hh(n.addedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}var vh=new Map,yh=0;function bh(){let e=window.devicePixelRatio;e!==yh&&(yh=e,vh.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function xh(e,t){vh.size||window.addEventListener(`resize`,bh),vh.set(e,t)}function Sh(e){vh.delete(e),vh.size||window.removeEventListener(`resize`,bh)}function Ch(e,t,n){let r=e.canvas,i=r&&Qf(r);if(!i)return;let a=hd((e,t)=>{let r=i.clientWidth;n(e,t),r{let t=e[0],n=t.contentRect.width,r=t.contentRect.height;n===0&&r===0||a(n,r)});return o.observe(i),xh(e,a),o}function wh(e,t,n){n&&n.disconnect(),t===`resize`&&Sh(e)}function Th(e,t,n){let r=e.canvas,i=hd(t=>{e.ctx!==null&&n(mh(t,e))},e);return fh(r,t,i),i}var Eh=class extends ah{acquireContext(e,t){let n=e&&e.getContext&&e.getContext(`2d`);return n&&n.canvas===e?(uh(e,t),n):null}releaseContext(e){let t=e.canvas;if(!t[sh])return!1;let n=t[sh].initial;[`height`,`width`].forEach(e=>{let r=n[e];ou(r)?t.removeAttribute(e):t.setAttribute(e,r)});let r=n.style||{};return Object.keys(r).forEach(e=>{t.style[e]=r[e]}),t.width=t.width,delete t[sh],!0}addEventListener(e,t,n){this.removeEventListener(e,t);let r=e.$proxies||={};r[t]=({attach:gh,detach:_h,resize:Ch}[t]||Th)(e,t,n)}removeEventListener(e,t){let n=e.$proxies||={},r=n[t];r&&(({attach:wh,detach:wh,resize:wh}[t]||ph)(e,t,r),n[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,n,r){return lp(e,t,n,r)}isAttached(e){let t=e&&Qf(e);return!!(t&&t.isConnected)}};function Dh(e){return!Zf()||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas?oh:Eh}var Oh=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(e){let{x:t,y:n}=this.getProps([`x`,`y`],e);return{x:t,y:n}}hasValue(){return Ku(this.x)&&Ku(this.y)}getProps(e,t){let n=this.$animations;if(!t||!n)return this;let r={};return e.forEach(e=>{r[e]=n[e]&&n[e].active()?n[e]._to:this[e]}),r}};function kh(e,t){let n=e.options.ticks,r=Ah(e),i=Math.min(n.maxTicksLimit||r,r),a=n.major.enabled?Mh(t):[],o=a.length,s=a[0],c=a[o-1],l=[];if(o>i)return Nh(t,l,a,o/i),l;let u=jh(a,t,i);if(o>0){let e,n,r=o>1?Math.round((c-s)/(o-1)):null;for(Ph(t,l,u,ou(r)?0:s-r,s),e=0,n=o-1;ei)return t}return Math.max(i,1)}function Mh(e){let t=[],n,r;for(n=0,r=e.length;ne===`left`?`right`:e===`right`?`left`:e,Lh=(e,t,n)=>t===`top`||t===`left`?e[t]+n:e[t]-n,Rh=(e,t)=>Math.min(t||e,e);function zh(e,t){let n=[],r=e.length/t,i=e.length,a=0;for(;ao+s)))return c}function Vh(e,t){hu(e,e=>{let n=e.gc,r=n.length/2,i;if(r>t){for(i=0;in?n:t,n=r&&t>n?t:n,{min:uu(t,uu(n,t)),max:uu(n,uu(t,n))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||=this._computeLabelItems(e)}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){mu(this.options.beforeUpdate,[this])}update(e,t,n){let{beginAtZero:r,grace:i,ticks:a}=this.options,o=a.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=t,this._margins=n=Object.assign({left:0,right:0,top:0,bottom:0},n),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+n.left+n.right:this.height+n.top+n.bottom,this._dataLimitsCached||=(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=yf(this,i,r),!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let s=o=i||n<=1||!this.isHorizontal()){this.labelRotation=r;return}let l=this._getLabelSizes(),u=l.widest.width,d=l.highest.height,f=rd(this.chart.width-u,0,this.maxWidth);o=e.offset?this.maxWidth/n:f/(n-1),u+6>o&&(o=f/(n-(e.offset?.5:1)),s=this.maxHeight-Hh(e.grid)-t.padding-Uh(e.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),a=Xu(Math.min(Math.asin(rd((l.highest.height+6)/o,-1,1)),Math.asin(rd(s/c,-1,1))-Math.asin(rd(d/c,-1,1)))),a=Math.max(r,Math.min(i,a))),this.labelRotation=a}afterCalculateLabelRotation(){mu(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){mu(this.options.beforeFit,[this])}fit(){let e={width:0,height:0},{chart:t,options:{ticks:n,title:r,grid:i}}=this,a=this._isVisible(),o=this.isHorizontal();if(a){let a=Uh(r,t.options.font);if(o?(e.width=this.maxWidth,e.height=Hh(i)+a):(e.height=this.maxHeight,e.width=Hh(i)+a),n.display&&this.ticks.length){let{first:t,last:r,widest:i,highest:a}=this._getLabelSizes(),s=n.padding*2,c=Yu(this.labelRotation),l=Math.cos(c),u=Math.sin(c);if(o){let t=n.mirror?0:u*i.width+l*a.height;e.height=Math.min(this.maxHeight,e.height+t+s)}else{let t=n.mirror?0:l*i.width+u*a.height;e.width=Math.min(this.maxWidth,e.width+t+s)}this._calculatePadding(t,r,u,l)}}this._handleMargins(),o?(this.width=this._length=t.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=t.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,t,n,r){let{ticks:{align:i,padding:a},position:o}=this.options,s=this.labelRotation!==0,c=o!==`top`&&this.axis===`x`;if(this.isHorizontal()){let o=this.getPixelForTick(0)-this.left,l=this.right-this.getPixelForTick(this.ticks.length-1),u=0,d=0;s?c?(u=r*e.width,d=n*t.height):(u=n*e.height,d=r*t.width):i===`start`?d=t.width:i===`end`?u=e.width:i!==`inner`&&(u=e.width/2,d=t.width/2),this.paddingLeft=Math.max((u-o+a)*this.width/(this.width-o),0),this.paddingRight=Math.max((d-l+a)*this.width/(this.width-l),0)}else{let n=t.height/2,r=e.height/2;i===`start`?(n=0,r=e.height):i===`end`&&(n=t.height,r=0),this.paddingTop=n+a,this.paddingBottom=r+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){mu(this.options.afterFit,[this])}isHorizontal(){let{axis:e,position:t}=this.options;return t===`top`||t===`bottom`||e===`x`}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let t,n;for(t=0,n=e.length;t({width:a[e]||0,height:o[e]||0});return{first:C(0),last:C(t-1),widest:C(x),highest:C(S),widths:a,heights:o}}getLabelForValue(e){return e}getPixelForValue(e,t){return NaN}getValueForPixel(e){}getPixelForTick(e){let t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);let t=this._startPixel+e*this._length;return id(this._alignToPixels?Jd(this.chart,t,0):t)}getDecimalForPixel(e){let t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:e,max:t}=this;return e<0&&t<0?t:e>0&&t>0?e:0}getContext(e){let t=this.ticks||[];if(e>=0&&eo*r?o/n:s/r:s*r0:!!e}_computeGridLineItems(e){let t=this.axis,n=this.chart,r=this.options,{grid:i,position:a,border:o}=r,s=i.offset,c=this.isHorizontal(),l=this.ticks.length+ +!!s,u=Hh(i),d=[],f=o.setContext(this.getContext()),p=f.display?f.width:0,m=p/2,h=function(e){return Jd(n,e,p)},g,_,v,y,b,x,S,C,w,T,ee,te;if(a===`top`)g=h(this.bottom),x=this.bottom-u,C=g-m,T=h(e.top)+m,te=e.bottom;else if(a===`bottom`)g=h(this.top),T=e.top,te=h(e.bottom)-m,x=g+m,C=this.top+u;else if(a===`left`)g=h(this.right),b=this.right-u,S=g-m,w=h(e.left)+m,ee=e.right;else if(a===`right`)g=h(this.left),w=e.left,ee=h(e.right)-m,b=g+m,S=this.left+u;else if(t===`x`){if(a===`center`)g=h((e.top+e.bottom)/2+.5);else if(cu(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}T=e.top,te=e.bottom,x=g+m,C=x+u}else if(t===`y`){if(a===`center`)g=h((e.left+e.right)/2);else if(cu(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}b=g-m,S=b-u,w=e.left,ee=e.right}let ne=du(r.ticks.maxTicksLimit,l),re=Math.max(1,Math.ceil(l/ne));for(_=0;_0&&(a-=r/2);break}f={left:a,top:i,width:r+t.width,height:n+t.height,color:e.backdropColor}}h.push({label:y,font:w,textOffset:te,options:{rotation:m,color:n,strokeColor:s,strokeWidth:l,textAlign:d,textBaseline:ne,translation:[b,x],backdrop:f}})}return h}_getXAxisLabelAlignment(){let{position:e,ticks:t}=this.options;if(-Yu(this.labelRotation))return e===`top`?`left`:`right`;let n=`center`;return t.align===`start`?n=`left`:t.align===`end`?n=`right`:t.align===`inner`&&(n=`inner`),n}_getYAxisLabelAlignment(e){let{position:t,ticks:{crossAlign:n,mirror:r,padding:i}}=this.options,a=this._getLabelSizes(),o=e+i,s=a.widest.width,c,l;return t===`left`?r?(l=this.right+i,n===`near`?c=`left`:n===`center`?(c=`center`,l+=s/2):(c=`right`,l+=s)):(l=this.right-o,n===`near`?c=`right`:n===`center`?(c=`center`,l-=s/2):(c=`left`,l=this.left)):t===`right`?r?(l=this.left+i,n===`near`?c=`right`:n===`center`?(c=`center`,l-=s/2):(c=`left`,l-=s)):(l=this.left+o,n===`near`?c=`left`:n===`center`?(c=`center`,l+=s/2):(c=`right`,l=this.right)):c=`right`,{textAlign:c,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;let e=this.chart,t=this.options.position;if(t===`left`||t===`right`)return{top:0,left:this.left,bottom:e.height,right:this.right};if(t===`top`||t===`bottom`)return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){let{ctx:e,options:{backgroundColor:t},left:n,top:r,width:i,height:a}=this;t&&(e.save(),e.fillStyle=t,e.fillRect(n,r,i,a),e.restore())}getLineWidthForValue(e){let t=this.options.grid;if(!this._isVisible()||!t.display)return 0;let n=this.ticks.findIndex(t=>t.value===e);return n>=0?t.setContext(this.getContext(n)).lineWidth:0}drawGrid(e){let t=this.options.grid,n=this.ctx,r=this._gridLineItems||=this._computeGridLineItems(e),i,a,o=(e,t,r)=>{!r.width||!r.color||(n.save(),n.lineWidth=r.width,n.strokeStyle=r.color,n.setLineDash(r.borderDash||[]),n.lineDashOffset=r.borderDashOffset,n.beginPath(),n.moveTo(e.x,e.y),n.lineTo(t.x,t.y),n.stroke(),n.restore())};if(t.display)for(i=0,a=r.length;i{this.draw(e)}}]:[{z:r,draw:e=>{this.drawBackground(),this.drawGrid(e),this.drawTitle()}},{z:i,draw:()=>{this.drawBorder()}},{z:n,draw:e=>{this.drawLabels(e)}}]}getMatchingVisibleMetas(e){let t=this.chart.getSortedVisibleDatasetMetas(),n=this.axis+`AxisID`,r=[],i,a;for(i=0,a=t.length;i{let r=n.split(`.`),i=r.pop(),a=[e].concat(r).join(`.`),o=t[n].split(`.`),s=o.pop(),c=o.join(`.`);Wd.route(a,i,c,s)})}function Qh(e){return`id`in e&&`defaults`in e}var $h=new class{constructor(){this.controllers=new Yh(cm,`datasets`,!0),this.elements=new Yh(Oh,`elements`),this.plugins=new Yh(Object,`plugins`),this.scales=new Yh(Jh,`scales`),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each(`register`,e)}remove(...e){this._each(`unregister`,e)}addControllers(...e){this._each(`register`,e,this.controllers)}addElements(...e){this._each(`register`,e,this.elements)}addPlugins(...e){this._each(`register`,e,this.plugins)}addScales(...e){this._each(`register`,e,this.scales)}getController(e){return this._get(e,this.controllers,`controller`)}getElement(e){return this._get(e,this.elements,`element`)}getPlugin(e){return this._get(e,this.plugins,`plugin`)}getScale(e){return this._get(e,this.scales,`scale`)}removeControllers(...e){this._each(`unregister`,e,this.controllers)}removeElements(...e){this._each(`unregister`,e,this.elements)}removePlugins(...e){this._each(`unregister`,e,this.plugins)}removeScales(...e){this._each(`unregister`,e,this.scales)}_each(e,t,n){[...t].forEach(t=>{let r=n||this._getRegistryForType(t);n||r.isForType(t)||r===this.plugins&&t.id?this._exec(e,r,t):hu(t,t=>{let r=n||this._getRegistryForType(t);this._exec(e,r,t)})})}_exec(e,t,n){let r=Du(e);mu(n[`before`+r],[],n),t[e](n),mu(n[`after`+r],[],n)}_getRegistryForType(e){for(let t=0;te.filter(e=>!t.some(t=>e.plugin.id===t.plugin.id));this._notify(r(t,n),e,`stop`),this._notify(r(n,t),e,`start`)}};function tg(e){let t={},n=[],r=Object.keys($h.plugins.items);for(let e=0;e1&&cg(e[0].toLowerCase());if(t)return t}throw Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function dg(e,t,n){if(n[t+`AxisID`]===e)return{axis:t}}function fg(e,t){if(t.data&&t.data.datasets){let n=t.data.datasets.filter(t=>t.xAxisID===e||t.yAxisID===e);if(n.length)return dg(e,`x`,n[0])||dg(e,`y`,n[0])}return{}}function pg(e,t){let n=Bd[e.type]||{scales:{}},r=t.scales||{},i=ag(e.type,t),a=Object.create(null);return Object.keys(r).forEach(t=>{let o=r[t];if(!cu(o))return console.error(`Invalid scale configuration for scale: ${t}`);if(o._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);let s=ug(t,o,fg(t,e),Wd.scales[o.type]),c=sg(s,i),l=n.scales||{};a[t]=xu(Object.create(null),[{axis:s},o,l[s],l[c]])}),e.data.datasets.forEach(n=>{let i=n.type||e.type,o=n.indexAxis||ag(i,t),s=(Bd[i]||{}).scales||{};Object.keys(s).forEach(e=>{let t=og(e,o),i=n[t+`AxisID`]||t;a[i]=a[i]||Object.create(null),xu(a[i],[{axis:t},r[i],s[e]])})}),Object.keys(a).forEach(e=>{let t=a[e];xu(t,[Wd.scales[t.type],Wd.scale])}),a}function mg(e){let t=e.options||={};t.plugins=du(t.plugins,{}),t.scales=pg(e,t)}function hg(e){return e||={},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function gg(e){return e||={},e.data=hg(e.data),mg(e),e}var _g=new Map,vg=new Set;function yg(e,t){let n=_g.get(e);return n||(n=t(),_g.set(e,n),vg.add(n)),n}var bg=(e,t,n)=>{let r=Eu(t,n);r!==void 0&&e.add(r)},xg=class{constructor(e){this._config=gg(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=hg(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){let e=this._config;this.clearCache(),mg(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return yg(e,()=>[[`datasets.${e}`,``]])}datasetAnimationScopeKeys(e,t){return yg(`${e}.transition.${t}`,()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,``]])}datasetElementScopeKeys(e,t){return yg(`${e}-${t}`,()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,``]])}pluginScopeKeys(e){let t=e.id,n=this.type;return yg(`${n}-plugin-${t}`,()=>[[`plugins.${t}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,t){let n=this._scopeCache,r=n.get(e);return(!r||t)&&(r=new Map,n.set(e,r)),r}getOptionScopes(e,t,n){let{options:r,type:i}=this,a=this._cachedScopes(e,n),o=a.get(t);if(o)return o;let s=new Set;t.forEach(t=>{e&&(s.add(e),t.forEach(t=>bg(s,e,t))),t.forEach(e=>bg(s,r,e)),t.forEach(e=>bg(s,Bd[i]||{},e)),t.forEach(e=>bg(s,Wd,e)),t.forEach(e=>bg(s,Vd,e))});let c=Array.from(s);return c.length===0&&c.push(Object.create(null)),vg.has(t)&&a.set(t,c),c}chartOptionScopes(){let{options:e,type:t}=this;return[e,Bd[t]||{},Wd.datasets[t]||{},{type:t},Wd,Vd]}resolveNamedOptions(e,t,n,r=[``]){let i={$shared:!0},{resolver:a,subPrefixes:o}=Sg(this._resolverCache,e,r),s=a;if(wg(a,t)){i.$shared=!1,n=ku(n)?n():n;let t=this.createResolver(e,n,o);s=Sf(a,n,t)}for(let e of t)i[e]=s[e];return i}createResolver(e,t,n=[``],r){let{resolver:i}=Sg(this._resolverCache,e,n);return cu(t)?Sf(i,t,void 0,r):i}};function Sg(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));let i=n.join(),a=r.get(i);return a||(a={resolver:xf(t,n),subPrefixes:n.filter(e=>!e.toLowerCase().includes(`hover`))},r.set(i,a)),a}var Cg=e=>cu(e)&&Object.getOwnPropertyNames(e).some(t=>ku(e[t]));function wg(e,t){let{isScriptable:n,isIndexable:r}=Cf(e);for(let i of t){let t=n(i),a=r(i),o=(a||t)&&e[i];if(t&&(ku(o)||Cg(o))||a&&su(o))return!0}return!1}var Tg=`4.5.1`,Eg=[`top`,`bottom`,`left`,`right`,`chartArea`];function Dg(e,t){return e===`top`||e===`bottom`||Eg.indexOf(e)===-1&&t===`x`}function Og(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function kg(e){let t=e.chart,n=t.options.animation;t.notifyPlugins(`afterRender`),mu(n&&n.onComplete,[e],t)}function Ag(e){let t=e.chart,n=t.options.animation;mu(n&&n.onProgress,[e],t)}function jg(e){return Zf()&&typeof e==`string`?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}var Mg={},Ng=e=>{let t=jg(e);return Object.values(Mg).filter(e=>e.canvas===t).pop()};function Pg(e,t,n){let r=Object.keys(e);for(let i of r){let r=+i;if(r>=t){let a=e[i];delete e[i],(n>0||r>t)&&(e[r+n]=a)}}}function Fg(e,t,n,r){return!n||e.type===`mouseout`?null:r?t:e}var Ig=class{static defaults=Wd;static instances=Mg;static overrides=Bd;static registry=$h;static version=Tg;static getChart=Ng;static register(...e){$h.add(...e),Lg()}static unregister(...e){$h.remove(...e),Lg()}constructor(e,t){let n=this.config=new xg(t),r=jg(e),i=Ng(r);if(i)throw Error(`Canvas is already in use. Chart with ID '`+i.id+`' must be destroyed before the canvas with ID '`+i.canvas.id+`' can be reused.`);let a=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||(Dh(r))),this.platform.updateConfig(n);let o=this.platform.acquireContext(r,a.aspectRatio),s=o&&o.canvas,c=s&&s.height,l=s&&s.width;if(this.id=au(),this.ctx=o,this.canvas=s,this.width=l,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new eg,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=gd(e=>this.update(e),a.resizeDelay||0),this._dataChanges=[],Mg[this.id]=this,!o||!s){console.error(`Failed to create chart: can't acquire context from the given item`);return}Ip.listen(this,`complete`,kg),Ip.listen(this,`progress`,Ag),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:e,maintainAspectRatio:t},width:n,height:r,_aspectRatio:i}=this;return ou(e)?t&&i?i:r?n/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return $h}_initialize(){return this.notifyPlugins(`beforeInit`),this.options.responsive?this.resize():up(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(`afterInit`),this}clear(){return Yd(this.canvas,this.ctx),this}stop(){return Ip.stop(this),this}resize(e,t){Ip.running(this)?this._resizeBeforeDraw={width:e,height:t}:this._resize(e,t)}_resize(e,t){let n=this.options,r=this.canvas,i=n.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(r,e,t,i),o=n.devicePixelRatio||this.platform.getDevicePixelRatio(),s=this.width?`resize`:`attach`;this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,up(this,o,!0)&&(this.notifyPlugins(`resize`,{size:a}),mu(n.onResize,[this,a],this),this.attached&&this._doResize(s)&&this.render())}ensureScalesHaveIDs(){hu(this.options.scales||{},(e,t)=>{e.id=t})}buildOrUpdateScales(){let e=this.options,t=e.scales,n=this.scales,r=Object.keys(n).reduce((e,t)=>(e[t]=!1,e),{}),i=[];t&&(i=i.concat(Object.keys(t).map(e=>{let n=t[e],r=ug(e,n),i=r===`r`,a=r===`x`;return{options:n,dposition:i?`chartArea`:a?`bottom`:`left`,dtype:i?`radialLinear`:a?`category`:`linear`}}))),hu(i,t=>{let i=t.options,a=i.id,o=ug(a,i),s=du(i.type,t.dtype);(i.position===void 0||Dg(i.position,o)!==Dg(t.dposition))&&(i.position=t.dposition),r[a]=!0;let c=null;a in n&&n[a].type===s?c=n[a]:(c=new($h.getScale(s))({id:a,type:s,ctx:this.ctx,chart:this}),n[c.id]=c),c.init(i,e)}),hu(r,(e,t)=>{e||delete n[t]}),hu(n,e=>{ih.configure(this,e,e.options),ih.addBox(this,e)})}_updateMetasets(){let e=this._metasets,t=this.data.datasets.length,n=e.length;if(e.sort((e,t)=>e.index-t.index),n>t){for(let e=t;et.length&&delete this._stacks,e.forEach((e,n)=>{t.filter(t=>t===e._dataset).length===0&&this._destroyDatasetMeta(n)})}buildOrUpdateControllers(){let e=[],t=this.data.datasets,n,r;for(this._removeUnreferencedMetasets(),n=0,r=t.length;n{this.getDatasetMeta(t).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins(`reset`)}update(e){let t=this.config;t.update();let n=this._options=t.createResolver(t.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins(`beforeUpdate`,{mode:e,cancelable:!0})===!1)return;let i=this.buildOrUpdateControllers();this.notifyPlugins(`beforeElementsUpdate`);let a=0;for(let e=0,t=this.data.datasets.length;e{e.reset()}),this._updateDatasets(e),this.notifyPlugins(`afterUpdate`,{mode:e}),this._layers.sort(Og(`z`,`_idx`));let{_active:o,_lastEvent:s}=this;s?this._eventHandler(s,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){hu(this.scales,e=>{ih.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let e=this.options;(!Au(new Set(Object.keys(this._listeners)),new Set(e.events))||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:e}=this,t=this._getUniformDataChanges()||[];for(let{method:n,start:r,count:i}of t)Pg(e,r,n===`_removeElements`?-i:i)}_getUniformDataChanges(){let e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];let t=this.data.datasets.length,n=t=>new Set(e.filter(e=>e[0]===t).map((e,t)=>t+`,`+e.splice(1).join(`,`))),r=n(0);for(let e=1;ee.split(`,`)).map(e=>({method:e[1],start:+e[2],count:+e[3]}))}_updateLayout(e){if(this.notifyPlugins(`beforeLayout`,{cancelable:!0})===!1)return;ih.update(this,this.width,this.height,e);let t=this.chartArea,n=t.width<=0||t.height<=0;this._layers=[],hu(this.boxes,e=>{n&&e.position===`chartArea`||(e.configure&&e.configure(),this._layers.push(...e._layers()))},this),this._layers.forEach((e,t)=>{e._idx=t}),this.notifyPlugins(`afterLayout`)}_updateDatasets(e){if(this.notifyPlugins(`beforeDatasetsUpdate`,{mode:e,cancelable:!0})!==!1){for(let e=0,t=this.data.datasets.length;e=0;--t)this._drawDataset(e[t]);this.notifyPlugins(`afterDatasetsDraw`)}_drawDataset(e){let t=this.ctx,n={meta:e,index:e.index,cancelable:!0},r=Fp(this,e);this.notifyPlugins(`beforeDatasetDraw`,n)!==!1&&(r&&$d(t,r),e.controller.draw(),r&&ef(t),n.cancelable=!1,this.notifyPlugins(`afterDatasetDraw`,n))}isPointInArea(e){return Qd(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,n,r){let i=Vm.modes[t];return typeof i==`function`?i(this,e,n,r):[]}getDatasetMeta(e){let t=this.data.datasets[e],n=this._metasets,r=n.filter(e=>e&&e._dataset===t).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t&&t.order||0,index:e,_dataset:t,_parsed:[],_sorted:!1},n.push(r)),r}getContext(){return this.$context||=bf(null,{chart:this,type:`chart`})}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){let t=this.data.datasets[e];if(!t)return!1;let n=this.getDatasetMeta(e);return typeof n.hidden==`boolean`?!n.hidden:!t.hidden}setDatasetVisibility(e,t){let n=this.getDatasetMeta(e);n.hidden=!t}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,t,n){let r=n?`show`:`hide`,i=this.getDatasetMeta(e),a=i.controller._resolveAnimations(void 0,r);Ou(t)?(i.data[t].hidden=!n,this.update()):(this.setDatasetVisibility(e,n),a.update(i,{visible:n}),this.update(t=>t.datasetIndex===e?r:void 0))}hide(e,t){this._updateVisibility(e,t,!1)}show(e,t){this._updateVisibility(e,t,!0)}_destroyDatasetMeta(e){let t=this._metasets[e];t&&t.controller&&t.controller._destroy(),delete this._metasets[e]}_stop(){let e,t;for(this.stop(),Ip.remove(this),e=0,t=this.data.datasets.length;e{t.addEventListener(this,n,r),e[n]=r},r=(e,t,n)=>{e.offsetX=t,e.offsetY=n,this._eventHandler(e)};hu(this.options.events,e=>n(e,r))}bindResponsiveEvents(){this._responsiveListeners||={};let e=this._responsiveListeners,t=this.platform,n=(n,r)=>{t.addEventListener(this,n,r),e[n]=r},r=(n,r)=>{e[n]&&(t.removeEventListener(this,n,r),delete e[n])},i=(e,t)=>{this.canvas&&this.resize(e,t)},a,o=()=>{r(`attach`,o),this.attached=!0,this.resize(),n(`resize`,i),n(`detach`,a)};a=()=>{this.attached=!1,r(`resize`,i),this._stop(),this._resize(0,0),n(`attach`,o)},t.isAttached(this.canvas)?o():a()}unbindEvents(){hu(this._listeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._listeners={},hu(this._responsiveListeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,t,n){let r=n?`set`:`remove`,i,a,o,s;for(t===`dataset`&&(i=this.getDatasetMeta(e[0].datasetIndex),i.controller[`_`+r+`DatasetHoverStyle`]()),o=0,s=e.length;o{let n=this.getDatasetMeta(e);if(!n)throw Error(`No dataset found at index `+e);return{datasetIndex:e,element:n.data[t],index:t}});gu(n,t)||(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,t))}notifyPlugins(e,t,n){return this._plugins.notify(this,e,t,n)}isPluginEnabled(e){return this._plugins._cache.filter(t=>t.plugin.id===e).length===1}_updateHoverStyles(e,t,n){let r=this.options.hover,i=(e,t)=>e.filter(e=>!t.some(t=>e.datasetIndex===t.datasetIndex&&e.index===t.index)),a=i(t,e),o=n?e:i(e,t);a.length&&this.updateHoverStyle(a,r.mode,!1),o.length&&r.mode&&this.updateHoverStyle(o,r.mode,!0)}_eventHandler(e,t){let n={event:e,replay:t,cancelable:!0,inChartArea:this.isPointInArea(e)},r=t=>(t.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins(`beforeEvent`,n,r)===!1)return;let i=this._handleEvent(e,t,n.inChartArea);return n.cancelable=!1,this.notifyPlugins(`afterEvent`,n,r),(i||n.changed)&&this.render(),this}_handleEvent(e,t,n){let{_active:r=[],options:i}=this,a=t,o=this._getActiveElements(e,r,n,a),s=ju(e),c=Fg(e,this._lastEvent,n,s);n&&(this._lastEvent=null,mu(i.onHover,[e,o,this],this),s&&mu(i.onClick,[e,o,this],this));let l=!gu(o,r);return(l||t)&&(this._active=o,this._updateHoverStyles(o,r,t)),this._lastEvent=c,l}_getActiveElements(e,t,n,r){if(e.type===`mouseout`)return[];if(!n)return t;let i=this.options.hover;return this.getElementsAtEventForMode(e,i.mode,i,r)}};function Lg(){return hu(Ig.instances,e=>e._plugins.invalidate())}function Rg(e,t,n){let{startAngle:r,x:i,y:a,outerRadius:o,innerRadius:s,options:c}=t,{borderWidth:l,borderJoinStyle:u}=c,d=Math.min(l/o,td(r-n));if(e.beginPath(),e.arc(i,a,o-l/2,r+d/2,n-d/2),s>0){let t=Math.min(l/s,td(r-n));e.arc(i,a,s+l/2,n-t/2,r+t/2,!0)}else{let t=Math.min(l/2,o*td(r-n));if(u===`round`)e.arc(i,a,t,n-Mu/2,r+Mu/2,!0);else if(u===`bevel`){let o=2*t*t,s=-o*Math.cos(n+Mu/2)+i,c=-o*Math.sin(n+Mu/2)+a,l=o*Math.cos(r+Mu/2)+i,u=o*Math.sin(r+Mu/2)+a;e.lineTo(s,c),e.lineTo(l,u)}}e.closePath(),e.moveTo(0,0),e.rect(0,0,e.canvas.width,e.canvas.height),e.clip(`evenodd`)}function zg(e,t,n){let{startAngle:r,pixelMargin:i,x:a,y:o,outerRadius:s,innerRadius:c}=t,l=i/s;e.beginPath(),e.arc(a,o,s,r-l,n+l),c>i?(l=i/c,e.arc(a,o,c,n+l,r-l,!0)):e.arc(a,o,i,n+Lu,r-Lu),e.closePath(),e.clip()}function Bg(e){return pf(e,[`outerStart`,`outerEnd`,`innerStart`,`innerEnd`])}function Vg(e,t,n,r){let i=Bg(e.options.borderRadius),a=(n-t)/2,o=Math.min(a,r*t/2),s=e=>{let t=(n-Math.min(a,e))*r/2;return rd(e,0,Math.min(a,t))};return{outerStart:s(i.outerStart),outerEnd:s(i.outerEnd),innerStart:rd(i.innerStart,0,o),innerEnd:rd(i.innerEnd,0,o)}}function Hg(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function Ug(e,t,n,r,i,a){let{x:o,y:s,startAngle:c,pixelMargin:l,innerRadius:u}=t,d=Math.max(t.outerRadius+r+n-l,0),f=u>0?u+r+n+l:0,p=0,m=i-c;if(r){let e=((u>0?u-r:0)+(d>0?d-r:0))/2;p=(m-(e===0?m:m*e/(e+r)))/2}let h=(m-Math.max(.001,m*d-n/Mu)/d)/2,g=c+h+p,_=i-h-p,{outerStart:v,outerEnd:y,innerStart:b,innerEnd:x}=Vg(t,f,d,_-g),S=d-v,C=d-y,w=g+v/S,T=_-y/C,ee=f+b,te=f+x,ne=g+b/ee,re=_-x/te;if(e.beginPath(),a){let t=(w+T)/2;if(e.arc(o,s,d,w,t),e.arc(o,s,d,t,T),y>0){let t=Hg(C,T,o,s);e.arc(t.x,t.y,y,T,_+Lu)}let n=Hg(te,_,o,s);if(e.lineTo(n.x,n.y),x>0){let t=Hg(te,re,o,s);e.arc(t.x,t.y,x,_+Lu,re+Math.PI)}let r=(_-x/f+(g+b/f))/2;if(e.arc(o,s,f,_-x/f,r,!0),e.arc(o,s,f,r,g+b/f,!0),b>0){let t=Hg(ee,ne,o,s);e.arc(t.x,t.y,b,ne+Math.PI,g-Lu)}let i=Hg(S,g,o,s);if(e.lineTo(i.x,i.y),v>0){let t=Hg(S,w,o,s);e.arc(t.x,t.y,v,g-Lu,w)}}else{e.moveTo(o,s);let t=Math.cos(w)*d+o,n=Math.sin(w)*d+s;e.lineTo(t,n);let r=Math.cos(T)*d+o,i=Math.sin(T)*d+s;e.lineTo(r,i)}e.closePath()}function Wg(e,t,n,r,i){let{fullCircles:a,startAngle:o,circumference:s}=t,c=t.endAngle;if(a){Ug(e,t,n,r,c,i);for(let t=0;t=Mu&&p===0&&u!==`miter`&&Rg(e,t,h),a||(Ug(e,t,n,r,h,i),e.stroke())}var Kg=class extends Oh{static id=`arc`;static defaults={borderAlign:`center`,borderColor:`#fff`,borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:`backgroundColor`};static descriptors={_scriptable:!0,_indexable:e=>e!==`borderDash`};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,t,n){let{angle:r,distance:i}=Qu(this.getProps([`x`,`y`],n),{x:e,y:t}),{startAngle:a,endAngle:o,innerRadius:s,outerRadius:c,circumference:l}=this.getProps([`startAngle`,`endAngle`,`innerRadius`,`outerRadius`,`circumference`],n),u=(this.options.spacing+this.options.borderWidth)/2,d=du(l,o-a),f=nd(r,a,o)&&a!==o,p=d>=Nu||f,m=ad(i,s+u,c+u);return p&&m}getCenterPoint(e){let{x:t,y:n,startAngle:r,endAngle:i,innerRadius:a,outerRadius:o}=this.getProps([`x`,`y`,`startAngle`,`endAngle`,`innerRadius`,`outerRadius`],e),{offset:s,spacing:c}=this.options,l=(r+i)/2,u=(a+o+c+s)/2;return{x:t+Math.cos(l)*u,y:n+Math.sin(l)*u}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){let{options:t,circumference:n}=this,r=(t.offset||0)/4,i=(t.spacing||0)/2,a=t.circular;if(this.pixelMargin=t.borderAlign===`inner`?.33:0,this.fullCircles=n>Nu?Math.floor(n/Nu):0,n===0||this.innerRadius<0||this.outerRadius<0)return;e.save();let o=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(o)*r,Math.sin(o)*r);let s=r*(1-Math.sin(Math.min(Mu,n||0)));e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor,Wg(e,this,s,i,a),Gg(e,this,s,i,a),e.restore()}};function qg(e,t,n=t){e.lineCap=du(n.borderCapStyle,t.borderCapStyle),e.setLineDash(du(n.borderDash,t.borderDash)),e.lineDashOffset=du(n.borderDashOffset,t.borderDashOffset),e.lineJoin=du(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=du(n.borderWidth,t.borderWidth),e.strokeStyle=du(n.borderColor,t.borderColor)}function Jg(e,t,n){e.lineTo(n.x,n.y)}function Yg(e){return e.stepped?tf:e.tension||e.cubicInterpolationMode===`monotone`?nf:Jg}function Xg(e,t,n={}){let r=e.length,{start:i=0,end:a=r-1}=n,{start:o,end:s}=t,c=Math.max(i,o),l=Math.min(a,s),u=is&&a>s;return{count:r,start:c,loop:t.loop,ilen:l(o+(l?s-e:e))%a,y=()=>{h!==g&&(e.lineTo(u,g),e.lineTo(u,h),e.lineTo(u,_))};for(c&&(p=i[v(0)],e.moveTo(p.x,p.y)),f=0;f<=s;++f){if(p=i[v(f)],p.skip)continue;let t=p.x,n=p.y,r=t|0;r===m?(ng&&(g=n),u=(d*u+t)/++d):(y(),e.lineTo(t,n),m=r,d=0,h=g=n),_=n}y()}function $g(e){let t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!==`monotone`&&!t.stepped&&!n?Qg:Zg}function e_(e){return e.stepped?mp:e.tension||e.cubicInterpolationMode===`monotone`?hp:pp}function t_(e,t,n,r){let i=t._path;i||(i=t._path=new Path2D,t.path(i,n,r)&&i.closePath()),qg(e,t.options),e.stroke(i)}function n_(e,t,n,r){let{segments:i,options:a}=t,o=$g(t);for(let s of i)qg(e,a,s.style),e.beginPath(),o(e,t,s,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}var r_=typeof Path2D==`function`;function i_(e,t,n,r){r_&&!t.options.segment?t_(e,t,n,r):n_(e,t,n,r)}var a_=class extends Oh{static id=`line`;static defaults={borderCapStyle:`butt`,borderDash:[],borderDashOffset:0,borderJoinStyle:`miter`,borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:`default`,fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:`backgroundColor`,borderColor:`borderColor`};static descriptors={_scriptable:!0,_indexable:e=>e!==`borderDash`&&e!==`fill`};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,t){let n=this.options;if((n.tension||n.cubicInterpolationMode===`monotone`)&&!n.stepped&&!this._pointsUpdated){let r=n.spanGaps?this._loop:this._fullLoop;Xf(this._points,n,e,r,t),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||=Op(this,this.options.segment)}first(){let e=this.segments,t=this.points;return e.length&&t[e[0].start]}last(){let e=this.segments,t=this.points,n=e.length;return n&&t[e[n-1].end]}interpolate(e,t){let n=this.options,r=e[t],i=this.points,a=Tp(this,{property:t,start:r,end:r});if(!a.length)return;let o=[],s=e_(n),c,l;for(c=0,l=a.length;ce.replace(`rgb(`,`rgba(`).replace(`)`,`, 0.5)`));function b_(e){return v_[e%v_.length]}function x_(e){return y_[e%y_.length]}function S_(e,t){return e.borderColor=b_(t),e.backgroundColor=x_(t),++t}function C_(e,t){return e.backgroundColor=e.data.map(()=>b_(t++)),t}function w_(e,t){return e.backgroundColor=e.data.map(()=>x_(t++)),t}function T_(e){let t=0;return(n,r)=>{let i=e.getDatasetMeta(r).controller;i instanceof Dm?t=C_(n,t):i instanceof km?t=w_(n,t):i&&(t=S_(n,t))}}function E_(e){let t;for(t in e)if(e[t].borderColor||e[t].backgroundColor)return!0;return!1}function D_(e){return e&&(e.borderColor||e.backgroundColor)}function O_(){return Wd.borderColor!==`rgba(0,0,0,0.1)`||Wd.backgroundColor!==`rgba(0,0,0,0.1)`}var k_={id:`colors`,defaults:{enabled:!0,forceOverride:!1},beforeLayout(e,t,n){if(!n.enabled)return;let{data:{datasets:r},options:i}=e.config,{elements:a}=i,o=E_(r)||D_(i)||a&&E_(a)||O_();if(!n.forceOverride&&o)return;let s=T_(e);r.forEach(s)}};function A_(e,t,n,r,i){let a=i.samples||r;if(a>=n)return e.slice(t,t+n);let o=[],s=(n-2)/(a-2),c=0,l=t+n-1,u=t,d,f,p,m,h;for(o[c++]=e[u],d=0;dp&&(p=m,f=e[a],h=a);o[c++]=f,u=h}return o[c++]=e[l],o}function j_(e,t,n,r){let i=0,a=0,o,s,c,l,u,d,f,p,m,h,g=[],_=t+n-1,v=e[t].x,y=e[_].x-v;for(o=t;oh&&(h=l,f=o),i=(a*i+s.x)/++a;else{let n=o-1;if(!ou(d)&&!ou(f)){let t=Math.min(d,f),r=Math.max(d,f);t!==p&&t!==n&&g.push({...e[t],x:i}),r!==p&&r!==n&&g.push({...e[r],x:i})}o>0&&n!==p&&g.push(e[n]),g.push(s),u=t,a=0,m=h=l,d=f=p=o}}return g}function M_(e){if(e._decimated){let t=e._data;delete e._decimated,delete e._data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,writable:!0,value:t})}}function N_(e){e.data.datasets.forEach(e=>{M_(e)})}function P_(e,t){let n=t.length,r=0,i,{iScale:a}=e,{min:o,max:s,minDefined:c,maxDefined:l}=a.getUserBounds();return c&&(r=rd(sd(t,a.axis,o).lo,0,n-1)),i=l?rd(sd(t,a.axis,s).hi+1,r,n)-r:n-r,{start:r,count:i}}var F_={id:`decimation`,defaults:{algorithm:`min-max`,enabled:!1},beforeElementsUpdate:(e,t,n)=>{if(!n.enabled){N_(e);return}let r=e.width;e.data.datasets.forEach((t,i)=>{let{_data:a,indexAxis:o}=t,s=e.getDatasetMeta(i),c=a||t.data;if(vf([o,e.options.indexAxis])===`y`||!s.controller.supportsDecimation)return;let l=e.scales[s.xAxisID];if(l.type!==`linear`&&l.type!==`time`||e.options.parsing)return;let{start:u,count:d}=P_(s,c);if(d<=(n.threshold||4*r)){M_(t);return}ou(a)&&(t._data=c,delete t.data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(e){this._data=e}}));let f;switch(n.algorithm){case`lttb`:f=A_(c,u,d,r,n);break;case`min-max`:f=j_(c,u,d,r);break;default:throw Error(`Unsupported decimation algorithm '${n.algorithm}'`)}t._decimated=f})},destroy(e){N_(e)}};function I_(e,t,n){let r=e.segments,i=e.points,a=t.points,o=[];for(let e of r){let{start:r,end:s}=e;s=z_(r,s,i);let c=L_(n,i[r],i[s],e.loop);if(!t.segments){o.push({source:e,target:c,start:i[r],end:i[s]});continue}let l=Tp(t,c);for(let t of l){let r=L_(n,a[t.start],a[t.end],t.loop),s=wp(e,i,r);for(let e of s)o.push({source:e,target:t,start:{[n]:B_(c,r,`start`,Math.max)},end:{[n]:B_(c,r,`end`,Math.min)}})}}return o}function L_(e,t,n,r){if(r)return;let i=t[e],a=n[e];return e===`angle`&&(i=td(i),a=td(a)),{property:e,start:i,end:a}}function R_(e,t){let{x:n=null,y:r=null}=e||{},i=t.points,a=[];return t.segments.forEach(({start:e,end:t})=>{t=z_(e,t,i);let o=i[e],s=i[t];r===null?n!==null&&(a.push({x:n,y:o.y}),a.push({x:n,y:s.y})):(a.push({x:o.x,y:r}),a.push({x:s.x,y:r}))}),a}function z_(e,t,n){for(;t>e;t--){let e=n[t];if(!isNaN(e.x)&&!isNaN(e.y))break}return t}function B_(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function V_(e,t){let n=[],r=!1;return su(e)?(r=!0,n=e):n=R_(e,t),n.length?new a_({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function H_(e){return e&&e.fill!==!1}function U_(e,t,n){let r=e[t].fill,i=[t],a;if(!n)return r;for(;r!==!1&&i.indexOf(r)===-1;){if(!lu(r))return r;if(a=e[r],!a)return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function W_(e,t,n){let r=J_(e);if(cu(r))return!isNaN(r.value)&&r;let i=parseFloat(r);return lu(i)&&Math.floor(i)===i?G_(r[0],t,i,n):[`origin`,`start`,`end`,`stack`,`shape`].indexOf(r)>=0&&r}function G_(e,t,n,r){return(e===`-`||e===`+`)&&(n=t+n),n===t||n<0||n>=r?!1:n}function K_(e,t){let n=null;return e===`start`?n=t.bottom:e===`end`?n=t.top:cu(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function q_(e,t,n){let r;return r=e===`start`?n:e===`end`?t.options.reverse?t.min:t.max:cu(e)?e.value:t.getBaseValue(),r}function J_(e){let t=e.options,n=t.fill,r=du(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?`origin`:r}function Y_(e){let{scale:t,index:n,line:r}=e,i=[],a=r.segments,o=r.points,s=X_(t,n);s.push(V_({x:null,y:t.bottom},r));for(let e=0;e=0;--t){let n=i[t].$filler;n&&(n.line.updateControlPoints(a,n.axis),r&&n.fill&&av(e.ctx,n,a))}},beforeDatasetsDraw(e,t,n){if(n.drawTime!==`beforeDatasetsDraw`)return;let r=e.getSortedVisibleDatasetMetas();for(let t=r.length-1;t>=0;--t){let n=r[t].$filler;H_(n)&&av(e.ctx,n,e.chartArea)}},beforeDatasetDraw(e,t,n){let r=t.meta.$filler;!H_(r)||n.drawTime!==`beforeDatasetDraw`||av(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:`beforeDatasetDraw`}},pv=(e,t)=>{let{boxHeight:n=t,boxWidth:r=t}=e;return e.usePointStyle&&(n=Math.min(n,t),r=e.pointStyleWidth||Math.min(r,t)),{boxWidth:r,boxHeight:n,itemHeight:Math.max(t,n)}},mv=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index,hv=class extends Oh{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t,n){this.maxWidth=e,this.maxHeight=t,this._margins=n,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let e=this.options.labels||{},t=mu(e.generateLabels,[this.chart],this)||[];e.filter&&(t=t.filter(t=>e.filter(t,this.chart.data))),e.sort&&(t=t.sort((t,n)=>e.sort(t,n,this.chart.data))),this.options.reverse&&t.reverse(),this.legendItems=t}fit(){let{options:e,ctx:t}=this;if(!e.display){this.width=this.height=0;return}let n=e.labels,r=_f(n.font),i=r.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:s}=pv(n,i),c,l;t.font=r.string,this.isHorizontal()?(c=this.maxWidth,l=this._fitRows(a,i,o,s)+10):(l=this.maxHeight,c=this._fitCols(a,r,o,s)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(l,e.maxHeight||this.maxHeight)}_fitRows(e,t,n,r){let{ctx:i,maxWidth:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],c=this.lineWidths=[0],l=r+o,u=e;i.textAlign=`left`,i.textBaseline=`middle`;let d=-1,f=-l;return this.legendItems.forEach((e,p)=>{let m=n+t/2+i.measureText(e.text).width;(p===0||c[c.length-1]+m+2*o>a)&&(u+=l,c[c.length-(p>0?0:1)]=0,f+=l,d++),s[p]={left:0,top:f,row:d,width:m,height:r},c[c.length-1]+=m+o}),u}_fitCols(e,t,n,r){let{ctx:i,maxHeight:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],c=this.columnSizes=[],l=a-e,u=o,d=0,f=0,p=0,m=0;return this.legendItems.forEach((e,a)=>{let{itemWidth:h,itemHeight:g}=gv(n,t,i,e,r);a>0&&f+g+2*o>l&&(u+=d+o,c.push({width:d,height:f}),p+=d+o,m++,d=f=0),s[a]={left:p,top:f,col:m,width:h,height:g},d=Math.max(d,h),f+=g+o}),u+=d,c.push({width:d,height:f}),u}adjustHitBoxes(){if(!this.options.display)return;let e=this._computeTitleHeight(),{legendHitBoxes:t,options:{align:n,labels:{padding:r},rtl:i}}=this,a=vp(i,this.left,this.width);if(this.isHorizontal()){let i=0,o=vd(n,this.left+r,this.right-this.lineWidths[i]);for(let s of t)i!==s.row&&(i=s.row,o=vd(n,this.left+r,this.right-this.lineWidths[i])),s.top+=this.top+e+r,s.left=a.leftForLtr(a.x(o),s.width),o+=s.width+r}else{let i=0,o=vd(n,this.top+e+r,this.bottom-this.columnSizes[i].height);for(let s of t)s.col!==i&&(i=s.col,o=vd(n,this.top+e+r,this.bottom-this.columnSizes[i].height)),s.top=o,s.left+=this.left+r,s.left=a.leftForLtr(a.x(s.left),s.width),o+=s.height+r}}isHorizontal(){return this.options.position===`top`||this.options.position===`bottom`}draw(){if(this.options.display){let e=this.ctx;$d(e,this),this._draw(),ef(e)}}_draw(){let{options:e,columnSizes:t,lineWidths:n,ctx:r}=this,{align:i,labels:a}=e,o=Wd.color,s=vp(e.rtl,this.left,this.width),c=_f(a.font),{padding:l}=a,u=c.size,d=u/2,f;this.drawTitle(),r.textAlign=s.textAlign(`left`),r.textBaseline=`middle`,r.lineWidth=.5,r.font=c.string;let{boxWidth:p,boxHeight:m,itemHeight:h}=pv(a,u),g=function(e,t,n){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;r.save();let i=du(n.lineWidth,1);if(r.fillStyle=du(n.fillStyle,o),r.lineCap=du(n.lineCap,`butt`),r.lineDashOffset=du(n.lineDashOffset,0),r.lineJoin=du(n.lineJoin,`miter`),r.lineWidth=i,r.strokeStyle=du(n.strokeStyle,o),r.setLineDash(du(n.lineDash,[])),a.usePointStyle){let o={radius:m*Math.SQRT2/2,pointStyle:n.pointStyle,rotation:n.rotation,borderWidth:i},c=s.xPlus(e,p/2),l=t+d;Zd(r,o,c,l,a.pointStyleWidth&&p)}else{let a=t+Math.max((u-m)/2,0),o=s.leftForLtr(e,p),c=hf(n.borderRadius);r.beginPath(),Object.values(c).some(e=>e!==0)?cf(r,{x:o,y:a,w:p,h:m,radius:c}):r.rect(o,a,p,m),r.fill(),i!==0&&r.stroke()}r.restore()},_=function(e,t,n){sf(r,n.text,e,t+h/2,c,{strikethrough:n.hidden,textAlign:s.textAlign(n.textAlign)})},v=this.isHorizontal(),y=this._computeTitleHeight();f=v?{x:vd(i,this.left+l,this.right-n[0]),y:this.top+l+y,line:0}:{x:this.left+l,y:vd(i,this.top+y+l,this.bottom-t[0].height),line:0},yp(this.ctx,e.textDirection);let b=h+l;this.legendItems.forEach((o,u)=>{r.strokeStyle=o.fontColor,r.fillStyle=o.fontColor;let m=r.measureText(o.text).width,h=s.textAlign(o.textAlign||=a.textAlign),x=p+d+m,S=f.x,C=f.y;s.setWidth(this.width),v?u>0&&S+x+l>this.right&&(C=f.y+=b,f.line++,S=f.x=vd(i,this.left+l,this.right-n[f.line])):u>0&&C+b>this.bottom&&(S=f.x=S+t[f.line].width+l,f.line++,C=f.y=vd(i,this.top+y+l,this.bottom-t[f.line].height));let w=s.x(S);if(g(w,C,o),S=yd(h,S+p+d,v?S+x:this.right,e.rtl),_(s.x(S),C,o),v)f.x+=x+l;else if(typeof o.text!=`string`){let e=c.lineHeight;f.y+=yv(o,e)+l}else f.y+=b}),bp(this.ctx,e.textDirection)}drawTitle(){let e=this.options,t=e.title,n=_f(t.font),r=gf(t.padding);if(!t.display)return;let i=vp(e.rtl,this.left,this.width),a=this.ctx,o=t.position,s=n.size/2,c=r.top+s,l,u=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),l=this.top+c,u=vd(e.align,u,this.right-d);else{let t=this.columnSizes.reduce((e,t)=>Math.max(e,t.height),0);l=c+vd(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}let f=vd(o,u,u+d);a.textAlign=i.textAlign(_d(o)),a.textBaseline=`middle`,a.strokeStyle=t.color,a.fillStyle=t.color,a.font=n.string,sf(a,t.text,f,l,n)}_computeTitleHeight(){let e=this.options.title,t=_f(e.font),n=gf(e.padding);return e.display?t.lineHeight+n.height:0}_getLegendItemAt(e,t){let n,r,i;if(ad(e,this.left,this.right)&&ad(t,this.top,this.bottom)){for(i=this.legendHitBoxes,n=0;ne.length>t.length?e:t)),t+n.size/2+r.measureText(i).width}function vv(e,t,n){let r=e;return typeof t.text!=`string`&&(r=yv(t,n)),r}function yv(e,t){return t*(e.text?e.text.length:0)}function bv(e,t){return!!((e===`mousemove`||e===`mouseout`)&&(t.onHover||t.onLeave)||t.onClick&&(e===`click`||e===`mouseup`))}var xv={id:`legend`,_element:hv,start(e,t,n){let r=e.legend=new hv({ctx:e.ctx,options:n,chart:e});ih.configure(e,r,n),ih.addBox(e,r)},stop(e){ih.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){let r=e.legend;ih.configure(e,r,n),r.options=n},afterUpdate(e){let t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:`top`,align:`center`,fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){let r=t.datasetIndex,i=n.chart;i.isDatasetVisible(r)?(i.hide(r),t.hidden=!0):(i.show(r),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){let t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:i,color:a,useBorderRadius:o,borderRadius:s}}=e.legend.options;return e._getSortedDatasetMetas().map(e=>{let c=e.controller.getStyle(n?0:void 0),l=gf(c.borderWidth);return{text:t[e.index].label,fillStyle:c.backgroundColor,fontColor:a,hidden:!e.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:c.borderColor,pointStyle:r||c.pointStyle,rotation:c.rotation,textAlign:i||c.textAlign,borderRadius:o&&(s||c.borderRadius),datasetIndex:e.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:`center`,text:``}},descriptors:{_scriptable:e=>!e.startsWith(`on`),labels:{_scriptable:e=>![`generateLabels`,`filter`,`sort`].includes(e)}}},Sv=class extends Oh{constructor(e){super(),this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t){let n=this.options;if(this.left=0,this.top=0,!n.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=e,this.height=this.bottom=t;let r=su(n.text)?n.text.length:1;this._padding=gf(n.padding);let i=r*_f(n.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=i:this.width=i}isHorizontal(){let e=this.options.position;return e===`top`||e===`bottom`}_drawArgs(e){let{top:t,left:n,bottom:r,right:i,options:a}=this,o=a.align,s=0,c,l,u;return this.isHorizontal()?(l=vd(o,n,i),u=t+e,c=i-n):(a.position===`left`?(l=n+e,u=vd(o,r,t),s=Mu*-.5):(l=i-e,u=vd(o,t,r),s=Mu*.5),c=r-t),{titleX:l,titleY:u,maxWidth:c,rotation:s}}draw(){let e=this.ctx,t=this.options;if(!t.display)return;let n=_f(t.font),r=n.lineHeight/2+this._padding.top,{titleX:i,titleY:a,maxWidth:o,rotation:s}=this._drawArgs(r);sf(e,t.text,0,0,n,{color:t.color,maxWidth:o,rotation:s,textAlign:_d(t.align),textBaseline:`middle`,translation:[i,a]})}};function Cv(e,t){let n=new Sv({ctx:e.ctx,options:t,chart:e});ih.configure(e,n,t),ih.addBox(e,n),e.titleBlock=n}var wv={id:`title`,_element:Sv,start(e,t,n){Cv(e,n)},stop(e){let t=e.titleBlock;ih.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){let r=e.titleBlock;ih.configure(e,r,n),r.options=n},defaults:{align:`center`,display:!1,font:{weight:`bold`},fullSize:!0,padding:10,position:`top`,text:``,weight:2e3},defaultRoutes:{color:`color`},descriptors:{_scriptable:!0,_indexable:!1}},Tv=new WeakMap,Ev={id:`subtitle`,start(e,t,n){let r=new Sv({ctx:e.ctx,options:n,chart:e});ih.configure(e,r,n),ih.addBox(e,r),Tv.set(e,r)},stop(e){ih.removeBox(e,Tv.get(e)),Tv.delete(e)},beforeUpdate(e,t,n){let r=Tv.get(e);ih.configure(e,r,n),r.options=n},defaults:{align:`center`,display:!1,font:{weight:`normal`},fullSize:!0,padding:0,position:`top`,text:``,weight:1500},defaultRoutes:{color:`color`},descriptors:{_scriptable:!0,_indexable:!1}},Dv={average(e){if(!e.length)return!1;let t,n,r=new Set,i=0,a=0;for(t=0,n=e.length;te+t)/r.size,y:i/a}},nearest(e,t){if(!e.length)return!1;let n=t.x,r=t.y,i=1/0,a,o,s;for(a=0,o=e.length;a-1?e.split(` -`):e}function Av(e,t){let{element:n,datasetIndex:r,index:i}=t,a=e.getDatasetMeta(r).controller,{label:o,value:s}=a.getLabelAndValue(i);return{chart:e,label:o,parsed:a.getParsed(i),raw:e.data.datasets[r].data[i],formattedValue:s,dataset:a.getDataset(),dataIndex:i,datasetIndex:r,element:n}}function jv(e,t){let n=e.chart.ctx,{body:r,footer:i,title:a}=e,{boxWidth:o,boxHeight:s}=t,c=_f(t.bodyFont),l=_f(t.titleFont),u=_f(t.footerFont),d=a.length,f=i.length,p=r.length,m=gf(t.padding),h=m.height,g=0,_=r.reduce((e,t)=>e+t.before.length+t.lines.length+t.after.length,0);if(_+=e.beforeBody.length+e.afterBody.length,d&&(h+=d*l.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),_){let e=t.displayColors?Math.max(s,c.lineHeight):c.lineHeight;h+=p*e+(_-p)*c.lineHeight+(_-1)*t.bodySpacing}f&&(h+=t.footerMarginTop+f*u.lineHeight+(f-1)*t.footerSpacing);let v=0,y=function(e){g=Math.max(g,n.measureText(e).width+v)};return n.save(),n.font=l.string,hu(e.title,y),n.font=c.string,hu(e.beforeBody.concat(e.afterBody),y),v=t.displayColors?o+2+t.boxPadding:0,hu(r,e=>{hu(e.before,y),hu(e.lines,y),hu(e.after,y)}),v=0,n.font=u.string,hu(e.footer,y),n.restore(),g+=m.width,{width:g,height:h}}function Mv(e,t){let{y:n,height:r}=t;return ne.height-r/2?`bottom`:`center`}function Nv(e,t,n,r){let{x:i,width:a}=r,o=n.caretSize+n.caretPadding;if(e===`left`&&i+a+o>t.width||e===`right`&&i-a-o<0)return!0}function Pv(e,t,n,r){let{x:i,width:a}=n,{width:o,chartArea:{left:s,right:c}}=e,l=`center`;return r===`center`?l=i<=(s+c)/2?`left`:`right`:i<=a/2?l=`left`:i>=o-a/2&&(l=`right`),Nv(l,e,t,n)&&(l=`center`),l}function Fv(e,t,n){let r=n.yAlign||t.yAlign||Mv(e,n);return{xAlign:n.xAlign||t.xAlign||Pv(e,t,n,r),yAlign:r}}function Iv(e,t){let{x:n,width:r}=e;return t===`right`?n-=r:t===`center`&&(n-=r/2),n}function Lv(e,t,n){let{y:r,height:i}=e;return t===`top`?r+=n:t===`bottom`?r-=i+n:r-=i/2,r}function Rv(e,t,n,r){let{caretSize:i,caretPadding:a,cornerRadius:o}=e,{xAlign:s,yAlign:c}=n,l=i+a,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:p}=hf(o),m=Iv(t,s),h=Lv(t,c,l);return c===`center`?s===`left`?m+=l:s===`right`&&(m-=l):s===`left`?m-=Math.max(u,f)+i:s===`right`&&(m+=Math.max(d,p)+i),{x:rd(m,0,r.width-t.width),y:rd(h,0,r.height-t.height)}}function zv(e,t,n){let r=gf(n.padding);return t===`center`?e.x+e.width/2:t===`right`?e.x+e.width-r.right:e.x+r.left}function Bv(e){return Ov([],kv(e))}function Vv(e,t,n){return bf(e,{tooltip:t,tooltipItems:n,type:`tooltip`})}function Hv(e,t){let n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}var Uv={beforeTitle:iu,title(e){if(e.length>0){let t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode===`dataset`)return t.dataset.label||``;if(t.label)return t.label;if(r>0&&t.dataIndex{let t={before:[],lines:[],after:[]},i=Hv(n,e);Ov(t.before,kv(Wv(i,`beforeLabel`,this,e))),Ov(t.lines,Wv(i,`label`,this,e)),Ov(t.after,kv(Wv(i,`afterLabel`,this,e))),r.push(t)}),r}getAfterBody(e,t){return Bv(Wv(t.callbacks,`afterBody`,this,e))}getFooter(e,t){let{callbacks:n}=t,r=Wv(n,`beforeFooter`,this,e),i=Wv(n,`footer`,this,e),a=Wv(n,`afterFooter`,this,e),o=[];return o=Ov(o,kv(r)),o=Ov(o,kv(i)),o=Ov(o,kv(a)),o}_createItems(e){let t=this._active,n=this.chart.data,r=[],i=[],a=[],o=[],s,c;for(s=0,c=t.length;se.filter(t,r,i,n))),e.itemSort&&(o=o.sort((t,r)=>e.itemSort(t,r,n))),hu(o,t=>{let n=Hv(e.callbacks,t);r.push(Wv(n,`labelColor`,this,t)),i.push(Wv(n,`labelPointStyle`,this,t)),a.push(Wv(n,`labelTextColor`,this,t))}),this.labelColors=r,this.labelPointStyles=i,this.labelTextColors=a,this.dataPoints=o,o}update(e,t){let n=this.options.setContext(this.getContext()),r=this._active,i,a=[];if(!r.length)this.opacity!==0&&(i={opacity:0});else{let e=Dv[n.position].call(this,r,this._eventPosition);a=this._createItems(n),this.title=this.getTitle(a,n),this.beforeBody=this.getBeforeBody(a,n),this.body=this.getBody(a,n),this.afterBody=this.getAfterBody(a,n),this.footer=this.getFooter(a,n);let t=this._size=jv(this,n),o=Object.assign({},e,t),s=Fv(this.chart,n,o),c=Rv(n,o,s,this.chart);this.xAlign=s.xAlign,this.yAlign=s.yAlign,i={opacity:1,x:c.x,y:c.y,width:t.width,height:t.height,caretX:e.x,caretY:e.y}}this._tooltipItems=a,this.$context=void 0,i&&this._resolveAnimations().update(this,i),e&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:t})}drawCaret(e,t,n,r){let i=this.getCaretPosition(e,n,r);t.lineTo(i.x1,i.y1),t.lineTo(i.x2,i.y2),t.lineTo(i.x3,i.y3)}getCaretPosition(e,t,n){let{xAlign:r,yAlign:i}=this,{caretSize:a,cornerRadius:o}=n,{topLeft:s,topRight:c,bottomLeft:l,bottomRight:u}=hf(o),{x:d,y:f}=e,{width:p,height:m}=t,h,g,_,v,y,b;return i===`center`?(y=f+m/2,r===`left`?(h=d,g=h-a,v=y+a,b=y-a):(h=d+p,g=h+a,v=y-a,b=y+a),_=h):(g=r===`left`?d+Math.max(s,l)+a:r===`right`?d+p-Math.max(c,u)-a:this.caretX,i===`top`?(v=f,y=v-a,h=g-a,_=g+a):(v=f+m,y=v+a,h=g+a,_=g-a),b=v),{x1:h,x2:g,x3:_,y1:v,y2:y,y3:b}}drawTitle(e,t,n){let r=this.title,i=r.length,a,o,s;if(i){let c=vp(n.rtl,this.x,this.width);for(e.x=zv(this,n.titleAlign,n),t.textAlign=c.textAlign(n.titleAlign),t.textBaseline=`middle`,a=_f(n.titleFont),o=n.titleSpacing,t.fillStyle=n.titleColor,t.font=a.string,s=0;se!==0)?(e.beginPath(),e.fillStyle=i.multiKeyBackground,cf(e,{x:t,y:p,w:c,h:s,radius:o}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),cf(e,{x:n,y:p+1,w:c-2,h:s-2,radius:o}),e.fill()):(e.fillStyle=i.multiKeyBackground,e.fillRect(t,p,c,s),e.strokeRect(t,p,c,s),e.fillStyle=a.backgroundColor,e.fillRect(n,p+1,c-2,s-2))}e.fillStyle=this.labelTextColors[n]}drawBody(e,t,n){let{body:r}=this,{bodySpacing:i,bodyAlign:a,displayColors:o,boxHeight:s,boxWidth:c,boxPadding:l}=n,u=_f(n.bodyFont),d=u.lineHeight,f=0,p=vp(n.rtl,this.x,this.width),m=function(n){t.fillText(n,p.x(e.x+f),e.y+d/2),e.y+=d+i},h=p.textAlign(a),g,_,v,y,b,x,S;for(t.textAlign=a,t.textBaseline=`middle`,t.font=u.string,e.x=zv(this,h,n),t.fillStyle=n.bodyColor,hu(this.beforeBody,m),f=o&&h!==`right`?a===`center`?c/2+l:c+2+l:0,y=0,x=r.length;y0&&t.stroke()}_updateAnimationTarget(e){let t=this.chart,n=this.$animations,r=n&&n.x,i=n&&n.y;if(r||i){let n=Dv[e.position].call(this,this._active,this._eventPosition);if(!n)return;let a=this._size=jv(this,e),o=Object.assign({},n,this._size),s=Fv(t,e,o),c=Rv(e,o,s,t);(r._to!==c.x||i._to!==c.y)&&(this.xAlign=s.xAlign,this.yAlign=s.yAlign,this.width=a.width,this.height=a.height,this.caretX=n.x,this.caretY=n.y,this._resolveAnimations().update(this,c))}}_willRender(){return!!this.opacity}draw(e){let t=this.options.setContext(this.getContext()),n=this.opacity;if(!n)return;this._updateAnimationTarget(t);let r={width:this.width,height:this.height},i={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;let a=gf(t.padding),o=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;t.enabled&&o&&(e.save(),e.globalAlpha=n,this.drawBackground(i,e,r,t),yp(e,t.textDirection),i.y+=a.top,this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),bp(e,t.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,t){let n=this._active,r=e.map(({datasetIndex:e,index:t})=>{let n=this.chart.getDatasetMeta(e);if(!n)throw Error(`Cannot find a dataset at index `+e);return{datasetIndex:e,element:n.data[t],index:t}}),i=!gu(n,r),a=this._positionChanged(r,t);(i||a)&&(this._active=r,this._eventPosition=t,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,t,n=!0){if(t&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let r=this.options,i=this._active||[],a=this._getActiveElements(e,i,t,n),o=this._positionChanged(a,e),s=t||!gu(a,i)||o;return s&&(this._active=a,(r.enabled||r.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,t))),s}_getActiveElements(e,t,n,r){let i=this.options;if(e.type===`mouseout`)return[];if(!r)return t.filter(e=>this.chart.data.datasets[e.datasetIndex]&&this.chart.getDatasetMeta(e.datasetIndex).controller.getParsed(e.index)!==void 0);let a=this.chart.getElementsAtEventForMode(e,i.mode,i,n);return i.reverse&&a.reverse(),a}_positionChanged(e,t){let{caretX:n,caretY:r,options:i}=this,a=Dv[i.position].call(this,e,t);return a!==!1&&(n!==a.x||r!==a.y)}},Kv=Object.freeze({__proto__:null,Colors:k_,Decimation:F_,Filler:fv,Legend:xv,SubTitle:Ev,Title:wv,Tooltip:{id:`tooltip`,_element:Gv,positioners:Dv,afterInit(e,t,n){n&&(e.tooltip=new Gv({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){let t=e.tooltip;if(t&&t._willRender()){let n={tooltip:t};if(e.notifyPlugins(`beforeTooltipDraw`,{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins(`afterTooltipDraw`,n)}},afterEvent(e,t){if(e.tooltip){let n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:`average`,backgroundColor:`rgba(0,0,0,0.8)`,titleColor:`#fff`,titleFont:{weight:`bold`},titleSpacing:2,titleMarginBottom:6,titleAlign:`left`,bodyColor:`#fff`,bodySpacing:2,bodyFont:{},bodyAlign:`left`,footerColor:`#fff`,footerSpacing:2,footerMarginTop:6,footerFont:{weight:`bold`},footerAlign:`left`,padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:`#fff`,displayColors:!0,boxPadding:0,borderColor:`rgba(0,0,0,0)`,borderWidth:0,animation:{duration:400,easing:`easeOutQuart`},animations:{numbers:{type:`number`,properties:[`x`,`y`,`width`,`height`,`caretX`,`caretY`]},opacity:{easing:`linear`,duration:200}},callbacks:Uv},defaultRoutes:{bodyFont:`font`,footerFont:`font`,titleFont:`font`},descriptors:{_scriptable:e=>e!==`filter`&&e!==`itemSort`&&e!==`external`,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:`animation`}},additionalOptionScopes:[`interaction`]}}),qv=(e,t,n,r)=>(typeof t==`string`?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function Jv(e,t,n,r){let i=e.indexOf(t);return i===-1?qv(e,t,n,r):i===e.lastIndexOf(t)?i:n}var Yv=(e,t)=>e===null?null:rd(Math.round(e),0,t);function Xv(e){let t=this.getLabels();return e>=0&&et.length-1?null:this.getPixelForValue(t[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}};function Qv(e,t){let n=[],{bounds:r,step:i,min:a,max:o,precision:s,count:c,maxTicks:l,maxDigits:u,includeBounds:d}=e,f=i||1,p=l-1,{min:m,max:h}=t,g=!ou(a),_=!ou(o),v=!ou(c),y=(h-m)/(u+1),b=Uu((h-m)/p/f)*f,x,S,C,w;if(b<1e-14&&!g&&!_)return[{value:m},{value:h}];w=Math.ceil(h/b)-Math.floor(m/b),w>p&&(b=Uu(w*b/p/f)*f),ou(s)||(x=10**s,b=Math.ceil(b*x)/x),r===`ticks`?(S=Math.floor(m/b)*b,C=Math.ceil(h/b)*b):(S=m,C=h),g&&_&&i&&qu((o-a)/i,b/1e3)?(w=Math.round(Math.min((o-a)/b,l)),b=(o-a)/w,S=a,C=o):v?(S=g?a:S,C=_?o:C,w=c-1,b=(C-S)/w):(w=(C-S)/b,w=Hu(w,Math.round(w),b/1e3)?Math.round(w):Math.ceil(w));let T=Math.max(Zu(b),Zu(S));x=10**(ou(s)?T:s),S=Math.round(S*x)/x,C=Math.round(C*x)/x;let ee=0;for(g&&(d&&S!==a?(n.push({value:a}),So)break;n.push({value:e})}return _&&d&&C!==o?n.length&&Hu(n[n.length-1].value,o,$v(o,y,e))?n[n.length-1].value=o:n.push({value:o}):(!_||C===o)&&n.push({value:C}),n}function $v(e,t,{horizontal:n,minRotation:r}){let i=Yu(r),a=(n?Math.sin(i):Math.cos(i))||.001,o=.75*t*(``+e).length;return Math.min(t/a,o)}var ey=class extends Jh{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,t){return ou(e)||(typeof e==`number`||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){let{beginAtZero:e}=this.options,{minDefined:t,maxDefined:n}=this.getUserBounds(),{min:r,max:i}=this,a=e=>r=t?r:e,o=e=>i=n?i:e;if(e){let e=Vu(r),t=Vu(i);e<0&&t<0?o(0):e>0&&t>0&&a(0)}if(r===i){let t=i===0?1:Math.abs(i*.05);o(i+t),e||a(r-t)}this.min=r,this.max=i}getTickLimit(){let{maxTicksLimit:e,stepSize:t}=this.options.ticks,n;return t?(n=Math.ceil(this.max/t)-Math.floor(this.min/t)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${t} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),e||=11),e&&(n=Math.min(e,n)),n}computeTickLimit(){return 1/0}buildTicks(){let e=this.options,t=e.ticks,n=this.getTickLimit();n=Math.max(2,n);let r=Qv({maxTicks:n,bounds:e.bounds,min:e.min,max:e.max,precision:t.precision,step:t.stepSize,count:t.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:t.minRotation||0,includeBounds:t.includeBounds!==!1},this._range||this);return e.bounds===`ticks`&&Ju(r,this,`value`),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){let e=this.ticks,t=this.min,n=this.max;if(super.configure(),this.options.offset&&e.length){let r=(n-t)/Math.max(e.length-1,1)/2;t-=r,n+=r}this._startValue=t,this._endValue=n,this._valueRange=n-t}getLabelForValue(e){return Fd(e,this.chart.options.locale,this.options.ticks.format)}},ty=class extends ey{static id=`linear`;static defaults={ticks:{callback:Rd.formatters.numeric}};determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=lu(e)?e:0,this.max=lu(t)?t:1,this.handleTickRangeOptions()}computeTickLimit(){let e=this.isHorizontal(),t=e?this.width:this.height,n=Yu(this.options.ticks.minRotation),r=(e?Math.sin(n):Math.cos(n))||.001,i=this._resolveTickFontOptions(0);return Math.ceil(t/Math.min(40,i.lineHeight/r))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}},ny=e=>Math.floor(Bu(e)),ry=(e,t)=>10**(ny(e)+t);function iy(e){return e/10**ny(e)==1}function ay(e,t,n){let r=10**n,i=Math.floor(e/r);return Math.ceil(t/r)-i}function oy(e,t){let n=ny(t-e);for(;ay(e,t,n)>10;)n++;for(;ay(e,t,n)<10;)n--;return Math.min(n,ny(e))}function sy(e,{min:t,max:n}){t=uu(e.min,t);let r=[],i=ny(t),a=oy(t,n),o=a<0?10**Math.abs(a):1,s=10**a,c=i>a?10**i:0,l=Math.round((t-c)*o)/o,u=Math.floor((t-c)/s/10)*s*10,d=Math.floor((l-u)/10**a),f=uu(e.min,Math.round((c+u+d*10**a)*o)/o);for(;f=10?d=d<15?15:20:d++,d>=20&&(a++,d=2,o=a>=0?1:o),f=Math.round((c+u+d*10**a)*o)/o;let p=uu(e.max,f);return r.push({value:p,major:iy(p),significand:d}),r}var cy=class extends Jh{static id=`logarithmic`;static defaults={ticks:{callback:Rd.formatters.logarithmic,major:{enabled:!0}}};constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(e,t){let n=ey.prototype.parse.apply(this,[e,t]);if(n===0){this._zero=!0;return}return lu(n)&&n>0?n:null}determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=lu(e)?Math.max(0,e):null,this.max=lu(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!lu(this._userMin)&&(this.min=e===ry(this.min,0)?ry(this.min,-1):ry(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:e,maxDefined:t}=this.getUserBounds(),n=this.min,r=this.max,i=t=>n=e?n:t,a=e=>r=t?r:e;n===r&&(n<=0?(i(1),a(10)):(i(ry(n,-1)),a(ry(r,1)))),n<=0&&i(ry(r,-1)),r<=0&&a(ry(n,1)),this.min=n,this.max=r}buildTicks(){let e=this.options,t=sy({min:this._userMin,max:this._userMax},this);return e.bounds===`ticks`&&Ju(t,this,`value`),e.reverse?(t.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),t}getLabelForValue(e){return e===void 0?`0`:Fd(e,this.chart.options.locale,this.options.ticks.format)}configure(){let e=this.min;super.configure(),this._startValue=Bu(e),this._valueRange=Bu(this.max)-Bu(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(Bu(e)-this._startValue)/this._valueRange)}getValueForPixel(e){let t=this.getDecimalForPixel(e);return 10**(this._startValue+t*this._valueRange)}};function ly(e){let t=e.ticks;if(t.display&&e.display){let e=gf(t.backdropPadding);return du(t.font&&t.font.size,Wd.font.size)+e.height}return 0}function uy(e,t,n){return n=su(n)?n:[n],{w:qd(e,t.string,n),h:n.length*t.lineHeight}}function dy(e,t,n,r,i){return e===r||e===i?{start:t-n/2,end:t+n/2}:ei?{start:t-n,end:t}:{start:t,end:t+n}}function fy(e){let t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},n=Object.assign({},t),r=[],i=[],a=e._pointLabels.length,o=e.options.pointLabels,s=o.centerPointLabels?Mu/a:0;for(let c=0;ct.r&&(s=(r.end-t.r)/a,e.r=Math.max(e.r,t.r+s)),i.startt.b&&(c=(i.end-t.b)/o,e.b=Math.max(e.b,t.b+c))}function my(e,t,n){let r=e.drawingArea,{extra:i,additionalAngle:a,padding:o,size:s}=n,c=e.getPointPosition(t,r+i+o,a),l=Math.round(Xu(td(c.angle+Lu))),u=yy(c.y,s.h,l),d=_y(l),f=vy(c.x,s.w,d);return{visible:!0,x:c.x,y:u,textAlign:d,left:f,top:u,right:f+s.w,bottom:u+s.h}}function hy(e,t){if(!t)return!0;let{left:n,top:r,right:i,bottom:a}=e;return!(Qd({x:n,y:r},t)||Qd({x:n,y:a},t)||Qd({x:i,y:r},t)||Qd({x:i,y:a},t))}function gy(e,t,n){let r=[],i=e._pointLabels.length,a=e.options,{centerPointLabels:o,display:s}=a.pointLabels,c={extra:ly(a)/2,additionalAngle:o?Mu/i:0},l;for(let a=0;a270||n<90)&&(e-=t),e}function by(e,t,n){let{left:r,top:i,right:a,bottom:o}=n,{backdropColor:s}=t;if(!ou(s)){let n=hf(t.borderRadius),c=gf(t.backdropPadding);e.fillStyle=s;let l=r-c.left,u=i-c.top,d=a-r+c.width,f=o-i+c.height;Object.values(n).some(e=>e!==0)?(e.beginPath(),cf(e,{x:l,y:u,w:d,h:f,radius:n}),e.fill()):e.fillRect(l,u,d,f)}}function xy(e,t){let{ctx:n,options:{pointLabels:r}}=e;for(let i=t-1;i>=0;i--){let t=e._pointLabelItems[i];if(!t.visible)continue;let a=r.setContext(e.getPointLabelContext(i));by(n,a,t);let o=_f(a.font),{x:s,y:c,textAlign:l}=t;sf(n,e._pointLabels[i],s,c+o.lineHeight/2,o,{color:a.color,textAlign:l,textBaseline:`middle`})}}function Sy(e,t,n,r){let{ctx:i}=e;if(n)i.arc(e.xCenter,e.yCenter,t,0,Nu);else{let n=e.getPointPosition(0,t);i.moveTo(n.x,n.y);for(let a=1;a{let n=mu(this.options.pointLabels.callback,[e,t],this);return n||n===0?n:``}).filter((e,t)=>this.chart.getDataVisibility(t))}fit(){let e=this.options;e.display&&e.pointLabels.display?fy(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(e,t,n,r){this.xCenter+=Math.floor((e-t)/2),this.yCenter+=Math.floor((n-r)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(e,t,n,r))}getIndexAngle(e){let t=Nu/(this._pointLabels.length||1),n=this.options.startAngle||0;return td(e*t+Yu(n))}getDistanceFromCenterForValue(e){if(ou(e))return NaN;let t=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-e)*t:(e-this.min)*t}getValueForDistanceFromCenter(e){if(ou(e))return NaN;let t=e/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-t:this.min+t}getPointLabelContext(e){let t=this._pointLabels||[];if(e>=0&&e{if(t!==0||t===0&&this.min<0){s=this.getDistanceFromCenterForValue(e.value);let n=this.getContext(t),o=r.setContext(n),c=i.setContext(n);Cy(this,o,s,a,c)}}),n.display){for(e.save(),o=a-1;o>=0;o--){let r=n.setContext(this.getPointLabelContext(o)),{color:i,lineWidth:a}=r;!a||!i||(e.lineWidth=a,e.strokeStyle=i,e.setLineDash(r.borderDash),e.lineDashOffset=r.borderDashOffset,s=this.getDistanceFromCenterForValue(t.reverse?this.min:this.max),c=this.getPointPosition(o,s),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(c.x,c.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){let e=this.ctx,t=this.options,n=t.ticks;if(!n.display)return;let r=this.getIndexAngle(0),i,a;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(r),e.textAlign=`center`,e.textBaseline=`middle`,this.ticks.forEach((r,o)=>{if(o===0&&this.min>=0&&!t.reverse)return;let s=n.setContext(this.getContext(o)),c=_f(s.font);if(i=this.getDistanceFromCenterForValue(this.ticks[o].value),s.showLabelBackdrop){e.font=c.string,a=e.measureText(r.label).width,e.fillStyle=s.backdropColor;let t=gf(s.backdropPadding);e.fillRect(-a/2-t.left,-i-c.size/2-t.top,a+t.width,c.size+t.height)}sf(e,r.label,0,-i,c,{color:s.color,strokeColor:s.textStrokeColor,strokeWidth:s.textStrokeWidth})}),e.restore()}drawTitle(){}},Ey={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Dy=Object.keys(Ey);function Oy(e,t){return e-t}function ky(e,t){if(ou(t))return null;let n=e._adapter,{parser:r,round:i,isoWeekday:a}=e._parseOpts,o=t;return typeof r==`function`&&(o=r(o)),lu(o)||(o=typeof r==`string`?n.parse(o,r):n.parse(o)),o===null?null:(i&&(o=i===`week`&&(Ku(a)||a===!0)?n.startOf(o,`isoWeek`,a):n.startOf(o,i)),+o)}function Ay(e,t,n,r){let i=Dy.length;for(let a=Dy.indexOf(e);a=Dy.indexOf(n);a--){let n=Dy[a];if(Ey[n].common&&e._adapter.diff(i,r,n)>=t-1)return n}return Dy[n?Dy.indexOf(n):0]}function My(e){for(let t=Dy.indexOf(e)+1,n=Dy.length;t=t?n[r]:n[i];e[a]=!0}}function Py(e,t,n,r){let i=e._adapter,a=+i.startOf(t[0].value,r),o=t[t.length-1].value,s,c;for(s=a;s<=o;s=+i.add(s,1,r))c=n[s],c>=0&&(t[c].major=!0);return t}function Fy(e,t,n){let r=[],i={},a=t.length,o,s;for(o=0;o+e.value))}initOffsets(e=[]){let t=0,n=0,r,i;this.options.offset&&e.length&&(r=this.getDecimalForValue(e[0]),t=e.length===1?1-r:(this.getDecimalForValue(e[1])-r)/2,i=this.getDecimalForValue(e[e.length-1]),n=e.length===1?i:(i-this.getDecimalForValue(e[e.length-2]))/2);let a=e.length<3?.5:.25;t=rd(t,0,a),n=rd(n,0,a),this._offsets={start:t,end:n,factor:1/(t+1+n)}}_generate(){let e=this._adapter,t=this.min,n=this.max,r=this.options,i=r.time,a=i.unit||Ay(i.minUnit,t,n,this._getLabelCapacity(t)),o=du(r.ticks.stepSize,1),s=a===`week`&&i.isoWeekday,c=Ku(s)||s===!0,l={},u=t,d,f;if(c&&(u=+e.startOf(u,`isoWeek`,s)),u=+e.startOf(u,c?`day`:a),e.diff(n,t,a)>1e5*o)throw Error(t+` and `+n+` are too far apart with stepSize of `+o+` `+a);let p=r.ticks.source===`data`&&this.getDataTimestamps();for(d=u,f=0;d+e)}getLabelForValue(e){let t=this._adapter,n=this.options.time;return n.tooltipFormat?t.format(e,n.tooltipFormat):t.format(e,n.displayFormats.datetime)}format(e,t){let n=this.options.time.displayFormats,r=this._unit,i=t||n[r];return this._adapter.format(e,i)}_tickFormatFunction(e,t,n,r){let i=this.options,a=i.ticks.callback;if(a)return mu(a,[e,t,n],this);let o=i.time.displayFormats,s=this._unit,c=this._majorUnit,l=s&&o[s],u=c&&o[c],d=n[t],f=c&&u&&d&&d.major;return this._adapter.format(e,r||(f?u:l))}generateTickLabels(e){let t,n,r;for(t=0,n=e.length;t0?o:1}getDataTimestamps(){let e=this._cache.data||[],t,n;if(e.length)return e;let r=this.getMatchingVisibleMetas();if(this._normalized&&r.length)return this._cache.data=r[0].controller.getAllParsedValues(this);for(t=0,n=r.length;t=e[r].pos&&t<=e[i].pos&&({lo:r,hi:i}=sd(e,`pos`,t)),{pos:a,time:s}=e[r],{pos:o,time:c}=e[i]):(t>=e[r].time&&t<=e[i].time&&({lo:r,hi:i}=sd(e,`time`,t)),{time:a,pos:s}=e[r],{time:o,pos:c}=e[i]);let l=o-a;return l?s+(c-s)*(t-a)/l:s}var Ry=class extends Iy{static id=`timeseries`;static defaults=Iy.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let e=this._getTimestampsForTable(),t=this._table=this.buildLookupTable(e);this._minPos=Ly(t,this.min),this._tableRange=Ly(t,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){let{min:t,max:n}=this,r=[],i=[],a,o,s,c,l;for(a=0,o=e.length;a=t&&c<=n&&r.push(c);if(r.length<2)return[{time:t,pos:0},{time:n,pos:1}];for(a=0,o=r.length;ae-t)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;let t=this.getDataTimestamps(),n=this.getLabelTimestamps();return e=t.length&&n.length?this.normalize(t.concat(n)):t.length?t:n,e=this._cache.all=e,e}getDecimalForValue(e){return(Ly(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){let t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end;return Ly(this._table,n*this._tableRange+this._minPos,!0)}},zy=[Am,__,Kv,Object.freeze({__proto__:null,CategoryScale:Zv,LinearScale:ty,LogarithmicScale:cy,RadialLinearScale:Ty,TimeScale:Iy,TimeSeriesScale:Ry})];Ig.register(...zy);var By=Ig,Vy=z(``);function Hy(e,t){D(t,!0);let n=K(t,`class`,3,``),r=K(t,`ariaLabel`,3,``);function i(e){if(Da.tick,typeof t.build!=`function`)return;let n=t.build();if(!n)return;let r=new By(e.getContext(`2d`),n);return()=>r.destroy()}var a=Vy();ji(a,()=>i),I(()=>{W(a,1,Pi(n())),G(a,`aria-label`,r())}),B(e,a),O()}var Uy=z(``),Wy=z(`
`);function Gy(e,t){D(t,!0);let n=K(t,`options`,19,()=>[]),r=K(t,`ariaLabel`,3,``),i=K(t,`class`,3,``);var a=Wy();U(a,21,n,e=>e.value,(e,n)=>{var r=Uy();let i;var a=N(r,!0);E(r),I(()=>{i=W(r,1,`segmented-btn svelte-92fh5i`,null,i,{active:t.value===L(n).value}),G(r,`aria-pressed`,t.value===L(n).value),V(a,L(n).label)}),R(`click`,r,()=>t.onchange?.(L(n).value)),B(e,r)}),E(a),I(()=>{W(a,1,Pi([`segmented-control`,i()]),`svelte-92fh5i`),G(a,`aria-label`,r())}),B(e,a),O()}Vr([`click`]);function Ky(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function qy(){return{grid:Ky(`--chart-grid`),text:Ky(`--chart-text`),dayMarker:Ky(`--chart-day-marker`),tooltipBg:Ky(`--chart-tooltip-bg`),tooltipBorder:Ky(`--chart-tooltip-border`),tooltipText:Ky(`--chart-tooltip-text`)}}function Jy(){return{size:11,family:`'SF Mono', Menlo, Consolas, monospace`}}function Yy(e,t){return{backgroundColor:e.tooltipBg,borderColor:e.tooltipBorder,borderWidth:1,titleColor:e.tooltipText,bodyColor:e.tooltipText,callbacks:t}}function Xy(e){if(typeof document>`u`||!document.body)return e;let t=document.createElement(`span`);t.style.display=`none`,t.style.color=e,document.body.appendChild(t);let n=getComputedStyle(t).color;return document.body.removeChild(t),n||e}var Zy=[`#c2845a`,`#7a9e7e`,`#d4a574`,`#b8a98e`,`#8b9e6b`,`#7d8a97`,`#c47a5a`,`#6b8e6b`,`#a09486`,`#9b7ea4`,`#c49a6c`];function Qy(){return[...Zy]}function $y(e){let t=5381,n=String(e||``);for(let e=0;exc(e)}}var ab={seconds:{apiName:`second`,windowLabel:`Last 60 seconds`,refreshMs:2e3},minutes:{apiName:`minute`,windowLabel:`Last 60 minutes`,refreshMs:5e3},hours:{apiName:`hour`,windowLabel:`Last 24 hours`,refreshMs:2e4},days:{apiName:`day`,windowLabel:`Last 30 days`,refreshMs:6e4}},ob=[{value:`seconds`,label:`Seconds`},{value:`minutes`,label:`Minutes`},{value:`hours`,label:`Hours`},{value:`days`,label:`Days`}];function sb(){return{input:0,output:0,prompt:0,local:0}}function cb(e){return String(e).padStart(2,`0`)}function lb(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:0}function ub(e,t){if(!Number.isFinite(t))return``;let n=new Date(t);switch(e){case`seconds`:return cb(n.getHours())+`:`+cb(n.getMinutes())+`:`+cb(n.getSeconds());case`minutes`:return cb(n.getHours())+`:`+cb(n.getMinutes());case`hours`:return cb(n.getHours())+`:00`;default:return cb(n.getMonth()+1)+`-`+cb(n.getDate())}}function db(e,t){let n=[],r=[],i={input:[],output:[],prompt:[],local:[]},a=sb();for(let o of e||[]){let e=Date.parse(o&&o.start),s=lb(o&&o.input_tokens),c=lb(o&&o.output_tokens),l=lb(o&&o.prompt_cached_tokens),u=lb(o&&o.locally_cached_tokens);n.push(ub(t,e)),r.push(Number.isFinite(e)?e:null),i.input.push(s),i.output.push(c),i.prompt.push(l),i.local.push(u),a.input+=s,a.output+=c,a.prompt+=l,a.local+=u}return{labels:n,stamps:r,cols:i,totals:a}}function fb(e){let t=e||sb();return t.input+t.output+t.prompt+t.local>0}function pb(e,t){return xc(Math.max(0,Math.round(e&&e[t]||0)))}function mb(e){return(ab[e]||ab.minutes).windowLabel}function hb(e,t){return`Live token throughput, `+mb(t).toLowerCase()+`. Input `+pb(e,`input`)+`, output `+pb(e,`output`)+`, prompt cached `+pb(e,`prompt`)+`, locally cached `+pb(e,`local`)+` tokens.`}function gb(e,t,n,r){let i=e=>xc(Math.max(0,Math.round(e))),a=n.stamps,o=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderWidth:0,borderRadius:0,categoryPercentage:1,barPercentage:1,stack:`tokens`});return{type:`bar`,plugins:[{id:`liveTokensDayMarks`,afterDatasetsDraw:t=>{if(r===`days`)return;let n=t.getDatasetMeta(0),i=t.chartArea;if(!n||!n.data||!i)return;let o=t.ctx;o.save(),o.font=`10px 'SF Mono', Menlo, Consolas, monospace`;let s=null;for(let t=0;t{if(!e.length)return``;let t=a[e[0].dataIndex];if(!t)return e[0].label;let n=new Date(t);return r===`days`?n.toLocaleDateString():n.toLocaleString()},label:e=>e.dataset.label+`: `+i(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),`Total: `+i(t)}})}}}}var _b=900,vb=new class{#e=A(`minutes`);get granularity(){return L(this.#e)}set granularity(e){j(this.#e,e,!0)}#t=A(M([]));get buckets(){return L(this.#t)}set buckets(e){j(this.#t,e,!0)}#n=A(!1);get active(){return L(this.#n)}set active(e){j(this.#n,e,!0)}#r=null;#i=null;#a=null;#o=0;#s=null;#c=!1;start(){this.stop(),this.active=!0,this.fetch(),this.#l(),this.#u()}stop(){this.active=!1,this.#r&&=(clearInterval(this.#r),null),this.#i&&=(clearTimeout(this.#i),null),this.#a&&=(clearTimeout(this.#a),null),this.#o=0,this.#s&&=(this.#s.abort(),null),this.buckets=[]}setGranularity(e){!ab[e]||e===this.granularity||(this.granularity=e,this.buckets=[],this.#l(),this.fetch())}#l(){this.#r&&=(clearInterval(this.#r),null);let e=ab[this.granularity]||ab.minutes;this.#r=setInterval(()=>{this.active&&this.fetch()},e.refreshMs)}noteUsageEvent(e){!this.active||e!==`usage.flushed`||(this.#i||=setTimeout(()=>{this.#i=null,this.fetch()},_b))}async fetch(){if(!this.active||this.#c)return;this.#c=!0;let e=this.granularity;try{let t=await Ts(`/admin/usage/throughput?granularity=`+(ab[e]||ab.minutes).apiName,{label:`token throughput`});if(t.stale||!t.ok||this.granularity!==e)return;this.buckets=t.data&&Array.isArray(t.data.buckets)?t.data.buckets:[]}catch(e){if(Ds(e))return;console.error(`Failed to fetch token throughput:`,e)}finally{this.#c=!1,this.active&&this.granularity!==e&&this.fetch()}}async#u(){await As.ensureLoaded(),this.active&&As.liveLogsVisible()&&(typeof ReadableStream>`u`||(this.#s&&this.#s.abort(),this.#s=new AbortController,this.#d(this.#s)))}async#d(e){let t=()=>{e.signal.aborted||this.#s!==e||this.#p()};try{let n=await Cs(`/admin/live/logs?types=usage`,{signal:e.signal});if(!n.ok||!n.body||typeof n.body.getReader!=`function`){t();return}this.#o=0,await tb(n.body.getReader(),e=>this.#f(e)),t()}catch(n){if(Ds(n)||e.signal.aborted)return;console.error(`Live usage stream failed:`,n),t()}}#f(e){if(!e||typeof e!=`object`)return;let t=String(e.type||``).trim();t.indexOf(`usage.`)===0&&this.noteUsageEvent(t)}#p(){if(!this.active||this.#a)return;let{attempt:e,delay:t}=rb(this.#o);this.#o=e,this.#a=setTimeout(()=>{this.#a=null,this.#u()},t)}},yb=z(`
`),bb=z(`
Waiting for live requests…
`),xb=z(`

Live Token Throughput

`);function Sb(e,t){D(t,!0);let n=k(()=>db(vb.buckets,vb.granularity)),r=k(()=>L(n).totals);function i(){return{input:Xy(`var(--token-input)`),output:Xy(`var(--token-output)`),prompt:Xy(`var(--token-prompt)`),local:Xy(`var(--token-local)`)}}let a=[{metric:`input`,label:`Input Tokens`,colorVar:`--token-input`},{metric:`output`,label:`Output Tokens`,colorVar:`--token-output`},{metric:`prompt`,label:`Prompt (Input) Cached`,colorVar:`--token-prompt`},{metric:`local`,label:`Locally Cached`,colorVar:`--token-local`}];var o=xb(),s=N(o),c=N(s),l=F(N(c),2),u=N(l);let d;var f=F(u,2),p=N(f,!0);E(f),E(l),E(c),Gy(F(c,2),{ariaLabel:`Live token throughput granularity`,get options(){return ob},get value(){return vb.granularity},onchange:e=>vb.setGranularity(e)}),E(s);var m=F(s,2);U(m,21,()=>a,e=>e.metric,(e,t)=>{var n=yb(),i=N(n),a=F(i,2),o=N(a,!0);E(a);var s=F(a,2),c=N(s,!0);E(s),E(n),I(e=>{Vi(i,`background: var(${L(t).colorVar??``})`),V(o,L(t).label),V(c,e)},[()=>pb(L(r),L(t).metric)]),B(e,n)}),E(m);var h=F(m,2),g=N(h);{let e=k(()=>hb(L(r),vb.granularity));Hy(g,{get ariaLabel(){return L(e)},build:()=>gb(qy(),i(),L(n),vb.granularity)})}var _=F(g,2),v=e=>{B(e,bb())},y=k(()=>!fb(L(r)));H(_,e=>{L(y)&&e(v)}),E(h),E(o),I(e=>{d=W(u,1,`live-dot`,null,d,{"is-streaming":vb.active}),V(p,e)},[()=>mb(vb.granularity)]),B(e,o),O()}function Cb(e){let t=e||{};if(t.total_tokens!==null&&t.total_tokens!==void 0){let e=Number(t.total_tokens);if(Number.isFinite(e))return e}let n=Number(t.total_input_tokens||0),r=Number(t.total_output_tokens||0);return(Number.isFinite(n)?n:0)+(Number.isFinite(r)?r:0)}function wb(e,t){if(!t)return 0;let n=e&&e.summary?e.summary:{},r=Number(n.total_hits||0);return Number.isFinite(r)&&r>0?r:0}function Tb(e,t,n){let r=Number(e&&e.total_requests||0);return(Number.isFinite(r)?r:0)+wb(t,n)}function Eb(e,t,n){let r=wb(t,n);return r<=0?``:_c(Tb(e,t,n)-r)+` to providers + `+_c(r)+` from cache`}function Db(e){let t=e&&e.summary?e.summary:{},n=Number(t.total_input_tokens||0),r=Number(t.total_output_tokens||0);return(Number.isFinite(n)?n:0)+(Number.isFinite(r)?r:0)}function Ob(e,t,n){let r=e=>{let t=Number(e||0);return Number.isFinite(t)&&t>0?t:0},i=e||{},a=r(i.uncached_input_tokens),o=r(i.cached_input_tokens),s=r(i.cache_write_input_tokens),c=t&&t.summary?t.summary:{},l=n?r(c.total_input_tokens):0;return[{key:`uncached`,label:`Regular`,tokens:a+s,colorVar:`--cache-meter-uncached`,note:s>0?`Includes `+_c(s)+` cache-write tokens`:``},{key:`prompt`,label:`Prompt cached`,tokens:o,colorVar:`--cache-meter-prompt`,note:`Provider prompt-cache reads`},{key:`local`,label:`Locally cached`,tokens:l,colorVar:`--cache-meter-local`,note:`Served from GoModel response cache`}]}function kb(e,t,n){return Ob(e,t,n).reduce((e,t)=>e+t.tokens,0)}function Ab(e,t,n){return kb(e,t,n)>0}function jb(e,t,n){let r=Ob(e,t,n),i=r.reduce((e,t)=>e+t.tokens,0);if(i<=0)return r.map(e=>Object.assign({},e,{pct:0}));let a=r.map(e=>{let t=e.tokens/i*100,n=Math.floor(t);return Object.assign({},e,{pct:n,remainder:t-n})}),o=100-a.reduce((e,t)=>e+t.pct,0);return a.map((e,t)=>({index:t,remainder:e.remainder,tokens:e.tokens})).filter(e=>e.tokens>0).sort((e,t)=>t.remainder-e.remainder).forEach(e=>{o>0&&(a[e.index].pct+=1,--o)}),a}function Mb(e,t,n){return jb(e,t,n).filter(e=>e.tokens>0)}function Nb(e){let t=[e.label+`: `+_c(e.tokens)+` input tokens (`+e.pct+`%)`];return e.note&&t.push(e.note),t.join(` -`)}function Pb(e){let t=(e||[]).map(e=>e.label+` `+e.pct+`%`);return`Cache breakdown of input tokens — `+(t.length?t.join(`, `):`no data`)}function Fb(e){return e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`)}function Ib(e,t,n,r){if(t!==`daily`||!n||!r)return e;let i={};(e||[]).forEach(e=>{i[e.date]=e});let a=[];for(let e=new Date(n);e<=r;e.setUTCDate(e.getUTCDate()+1)){let t=Fb(e);a.push(i[t]||{date:t,input_tokens:0,output_tokens:0,total_tokens:0,requests:0,input_cost:null,output_cost:null,total_cost:null})}return a}function Lb(e,t){let n=e=>Number(e)||0,r=e.map(e=>e.date),i=e.map(e=>n(e.uncached_input_tokens)+n(e.cache_write_input_tokens)+n(e.cached_input_tokens)>0?n(e.uncached_input_tokens)+n(e.cache_write_input_tokens):n(e.input_tokens)),a=e.map(e=>n(e.output_tokens)),o=e.map(e=>n(e.cached_input_tokens)),s={};return(t||[]).forEach(e=>{s[e.date]=e}),{labels:r,inputPaid:i,output:a,prompt:o,local:r.map(e=>{let t=s[e];return t?n(t.input_tokens)+n(t.output_tokens):0})}}function Rb(e){let t=e||{},n=Math.max(0,Number(t.uncached_input_tokens)||0),r=Math.max(0,Number(t.cached_input_tokens)||0),i=Math.max(0,Number(t.cache_write_input_tokens)||0),a=n+r+i;return a>0?r/a*100:0}function zb(e){let t=e||{};return(Number(t.uncached_input_tokens)||0)+(Number(t.cached_input_tokens)||0)+(Number(t.cache_write_input_tokens)||0)>0}function Bb(e){return zb(e)?Math.round(Rb(e))+`%`:`—`}function Vb(e,t,n={}){let r=!!n.cacheEnabled,i=n.resolve||(e=>e),a=(e,t)=>i(`color-mix(in srgb, `+e+` `+t+`%, transparent)`),o=(e,t,n,r)=>Object.assign({label:e,data:t,borderColor:n,backgroundColor:n,fill:!1,tension:.3,borderWidth:2,pointRadius:0,pointHoverRadius:4},r||{}),s=[o(`Input Tokens`,t.inputPaid,i(`var(--token-input)`),{fill:`origin`}),o(`Output Tokens`,t.output,i(`var(--token-output)`),{fill:`-1`}),o(`Prompt (Input) Cached`,t.prompt,i(`var(--token-prompt)`),{fill:`-1`,borderDash:[6,4]})];return r&&s.push(o(`Locally Cached`,t.local,a(`var(--info)`,35),{fill:`-1`,borderDash:[2,3]})),{type:`line`,data:{labels:t.labels,datasets:s},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:Yy(e,{label:e=>e.dataset.label+`: `+e.parsed.y.toLocaleString(),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),`Total: `+t.toLocaleString()}})},scales:{x:{stacked:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:Jy(),maxRotation:0,autoSkip:!0,maxTicksLimit:10}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:ib(e)}}}}}function Hb(e,t,n){let r=Math.max(0,Math.min(100,e));return{type:`doughnut`,data:{datasets:[{data:[r,100-r],backgroundColor:[t,n],borderWidth:0,spacing:0}]},options:{rotation:-90,circumference:180,cutout:`84%`,responsive:!0,maintainAspectRatio:!1,animation:{duration:0},layout:{padding:1},events:[],plugins:{legend:{display:!1},tooltip:{enabled:!1}}}}}var Ub=`gomodel_provider_status_details_expanded`,Wb=`gomodel_provider_card_expanded_overrides`,Gb=3e3,Kb=`https://gomodel.enterpilot.io/docs/providers/`,qb={anthropic:`anthropic`,azure:`azure`,bailian:`bailian`,bedrock:`bedrock`,"bedrock-mantle":`bedrock-mantle`,cohere:`cohere`,deepseek:`deepseek`,elevenlabs:`elevenlabs`,gemini:`gemini`,llmd:`llmd`,opencode_go:`opencode-go`,oracle:`oracle`,sglang:`sglang`,vertex:`vertex`,vllm:`vllm`,xiaomi:`xiaomi`};function Jb(){return{summary:{total:0,healthy:0,degraded:0,unhealthy:0,overall_status:`degraded`},providers:[]}}function Yb(e){let t={detailsExpanded:!1,cardOverrides:{}};try{if(e){let n=e.getItem(Ub);n===`true`||n===`false`?t.detailsExpanded=n===`true`:e.setItem(Ub,`false`);let r=JSON.parse(e.getItem(Wb)||`{}`);r&&typeof r==`object`&&!Array.isArray(r)&&(t.cardOverrides=r)}}catch{}return t}function Xb(e,t){if(e)try{e.setItem(Ub,t?`true`:`false`)}catch{}}function Zb(e,t){if(e)try{e.setItem(Wb,JSON.stringify(t))}catch{}}function Qb(e,t,n){let r=n&&n.name?String(n.name):``;return r&&Object.prototype.hasOwnProperty.call(e,r)?e[r]===!0:t}function $b(e){return`is-`+(String(e&&e.overall_status||`degraded`).trim()||`degraded`)}function ex(e){return`is-`+(String(e||`degraded`).trim()||`degraded`)}function tx(e){let t=e||{};return String(t.healthy||0)+`/`+String(t.total||0)}function nx(e){let t=e||{},n=Number(t.total||0),r=Number(t.healthy||0);return n>0&&rString(e&&e.status_label||``).trim().toLowerCase()===`starting`)}function ax(e){if(!e||!e.runtime)return``;let t=e.runtime.last_model_fetch_at||``,n=e.runtime.last_availability_check_at||``;return t?n&&Date.parse(n)>Date.parse(t)?n:t:n}function ox(e,t){let n=ax(e);if(!n||typeof t!=`function`)return`-`;let r=t(n);if(!r||r===`-`)return`-`;let i=String(r).split(` `);return i.length>1?i.slice(1).join(` `):r}function sx(e,t){let n=ax(e);return n?typeof t==`function`?t(n):String(n):``}function cx(e){if(!e)return``;let t=String(e.name||``).trim(),n=String(e.type||e.config&&e.config.type||``).trim();return!n||n===t?``:n}function lx(e){let t=String(e&&(e.type||e.config&&e.config.type)||``).trim().toLowerCase(),n=t?qb[t]:``;return n?Kb+n+`?utm_source=gomodel_dashboard`:``}function ux(e){let t=e&&e.config&&e.config.resilience?e.config.resilience.retry:null;return t?String(t.max_retries)+` retries, `+t.initial_backoff+` initial, `+t.max_backoff+` max, factor `+t.backoff_factor+`, jitter `+t.jitter_factor:`-`}function dx(e){let t=e&&e.config&&e.config.resilience?e.config.resilience.circuit_breaker:null;return t?String(t.failure_threshold)+` fail, `+String(t.success_threshold)+` success, `+t.timeout+` timeout`:`-`}function fx(e){let t=e&&e.config&&Array.isArray(e.config.models)?e.config.models.filter(Boolean):[];return t.length===0?`Automatic`:t.join(`, `)}function px(e){if(!e)return``;let t=[];return e.status_reason&&t.push(String(e.status_reason)),e.last_error&&t.push(`Last error: `+String(e.last_error)),t.join(` - -`)}function mx(e){let t=e&&e.request_health;return t&&typeof t==`object`?t:null}function hx(e){let t=mx(e);return t?String(t.circuit_state||``).trim():``}function gx(e){let t=hx(e);return t?t.charAt(0).toUpperCase()+t.slice(1):``}function _x(e){let t=hx(e);return t===`open`?`is-unhealthy`:t===`half-open`?`is-degraded`:`is-healthy`}function vx(e){let t=mx(e);if(!t)return``;let n=Number(t.requests||0),r=Number(t.errors||0),i=Math.round(Number(t.window_seconds||0)/60),a=i>0?`last `+i+` min`:`recent`;return String(n)+` request`+(n===1?``:`s`)+` · `+String(r)+` error`+(r===1?``:`s`)+` (`+a+`)`}function yx(e){let t=mx(e);return t&&Array.isArray(t.models)?t.models:[]}function bx(e){return e?String(Number(e.errors||0))+`/`+String(Number(e.requests||0))+` failed`:``}function xx(e){let t=e&&e.last_error;return!t||!t.message?``:(t.status_code?`HTTP `+String(t.status_code)+`: `:``)+t.message}function Sx(){return{name:``,slug:``,url:``,transport:`http`,description:``,enabled:!0,headers:[],allowed_tools:``,disallowed_tools:``,user_paths:``,tool_timeout_seconds:``}}function Cx(){return{server:``,status:``,instructions:``,tools:[],prompts:[],resources:[],templates:[]}}function wx(e){return String(e&&(e.slug||e.name)||``).trim()}function Tx(e){return String(e&&e.status||``).trim()||`connecting`}function Ex(e){switch(Tx(e)){case`connected`:return`status-success`;case`degraded`:return String(e&&e.last_error||``).trim()?`status-error`:`status-warning`;case`connecting`:return`status-neutral`;default:return`status-unknown`}}function Dx(e,t){let n=Tx(e),r=String(e&&e.last_error||``).trim();return r&&n!==`connected`?r:n===`connected`&&e&&e.connected_at?`Connected since `+(typeof t==`function`?t:String)(e.connected_at):``}function Ox(e){return String(e&&e.transport||``)===`stdio`?`local command`:String(e&&e.url||``).trim()||`—`}function kx(e){let t=Number(e&&e.prompt_count||0),n=Number(e&&e.resource_count||0);return t+` prompts · `+n+` resources`}function Ax(e){let t=String(e||``).normalize(`NFKD`).toLowerCase(),n=t.replace(/[\u0300-\u036f]/g,``).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,64).replace(/-+$/g,``);if(n)return n;let r=2166136261;for(let e of t)r=Math.imul((r^e.codePointAt(0))>>>0,16777619)>>>0;return`mcp-`+r.toString(16).padStart(8,`0`)}function jx(e){return String(e||``).split(` -`).map(e=>e.trim()).filter(e=>e)}function Mx(e){return!e||typeof e!=`object`||Array.isArray(e)?[]:Object.keys(e).sort().map(t=>({name:t,value:String(e[t]||``)}))}function Nx(e){let t={};return(Array.isArray(e)?e:[]).forEach(e=>{let n=String(e&&e.name||``).trim();n&&(t[n]=String(e&&e.value||``))}),t}function Px(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.slug,e.url,e.transport,e.description,e.status].some(e=>String(e||``).toLowerCase().includes(r)))}function Fx(e){return{name:String(e.name||``).trim(),slug:wx(e),url:String(e.url||``).trim(),transport:e.transport===`sse`?`sse`:`http`,description:String(e.description||``).trim(),enabled:e.enabled!==!1,headers:Mx(e.headers),allowed_tools:(Array.isArray(e.allowed_tools)?e.allowed_tools:[]).join(`, `),disallowed_tools:(Array.isArray(e.disallowed_tools)?e.disallowed_tools:[]).join(`, `),user_paths:(Array.isArray(e.user_paths)?e.user_paths:[]).join(` -`),tool_timeout_seconds:e.tool_timeout_seconds?String(e.tool_timeout_seconds):``}}function Ix(e,t,n){let r=String(e.name||``).trim(),i=String(e.slug||Ax(r)).trim().toLowerCase(),a=String(e.url||``).trim(),o=e.transport===`sse`?`sse`:`http`;if(!r)return{error:`Name is required.`};if(!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(i))return{error:`Slug must use 1–64 lowercase ASCII letters, numbers, hyphens, or underscores.`};if(t===`create`&&(n||[]).some(e=>wx(e)===i))return{error:`Slug "`+i+`" is already in use.`};if(!a)return{error:`URL is required.`};let s,c=String(e.tool_timeout_seconds||``).trim();if(c!==``){let e=Number(c);if(!Number.isSafeInteger(e)||e<0)return{error:`Tool timeout must be a non-negative whole number of seconds.`};s=e}return{payload:{name:r,slug:i,url:a,transport:o,headers:Nx(e.headers),description:String(e.description||``).trim(),enabled:!!e.enabled,allowed_tools:hc(e.allowed_tools),disallowed_tools:hc(e.disallowed_tools),user_paths:jx(e.user_paths),tool_timeout_seconds:s}}}function Lx(e,t){let n=t&&typeof t==`object`&&!Array.isArray(t)?t:{},r=e=>(Array.isArray(e)?e:[]).filter(e=>e&&typeof e==`object`);return{server:String(n.server||e||``).trim(),status:String(n.status||``).trim(),instructions:String(n.instructions||``).trim(),tools:r(n.tools),prompts:r(n.prompts),resources:r(n.resources),templates:r(n.templates)}}function Rx(e,t){return String(e&&e.server||``)+`_`+String(t||``)}function zx(e){let t=e||Cx(),n=(e,t)=>{let n=String(e||``).trim(),r=String(t||``).trim();return n&&r?n+` — `+r:r||n},r=e=>n=>({key:e+`:`+String(n.name||``),name:String(n.name||``),aggregated:Rx(t,n.name),description:String(n.description||``).trim()});return[{key:`tools`,title:`Tools`,items:(t.tools||[]).map(r(`tool`))},{key:`prompts`,title:`Prompts`,items:(t.prompts||[]).map(r(`prompt`))},{key:`resources`,title:`Resources`,items:(t.resources||[]).map(e=>({key:`resource:`+String(e.uri||``),name:String(e.uri||``),aggregated:``,description:n(e.name,e.description)}))},{key:`templates`,title:`Resource templates`,items:(t.templates||[]).map(e=>({key:`template:`+String(e.uri_template||``),name:String(e.uri_template||``),aggregated:``,description:n(e.name,e.description)}))}].filter(e=>e.items.length>0)}function Bx(e){return zx(e).length===0}function Vx(e){return(e||[]).length}function Hx(e){return(e||[]).filter(e=>Tx(e)===`connected`).length}function Ux(e){return(e||[]).filter(e=>e&&e.enabled!==!1&&Tx(e)===`degraded`).length}function Wx(e,t){return!!e&&Vx(t)>0}function Gx(e){return String(Hx(e))+`/`+String(Vx(e))}function Kx(e){return Ux(e)>0?`is-degraded`:`is-healthy`}function qx(e){let t=Ux(e);if(t>0)return String(t)+` server`+(t===1?``:`s`)+` need`+(t===1?`s`:``)+` attention`;let n=Vx(e),r=Hx(e);return n>0&&r===n?`All MCP servers connected`:String(r)+` of `+String(n)+` server`+(n===1?``:`s`)+` connected`}function Jx(){return{interval:`day`,buckets:[],summary:{requests:0},provider_latency:[]}}function Yx(e){let t=e&&typeof e==`object`?e:{};return{interval:t.interval===`hour`?`hour`:`day`,buckets:Array.isArray(t.buckets)?t.buckets:[],summary:t.summary&&typeof t.summary==`object`?t.summary:{requests:0},provider_latency:Array.isArray(t.provider_latency)?t.provider_latency:[]}}function Xx(e){return Number(e&&e.summary&&e.summary.requests||0)>0}function Zx(e){return(e&&Array.isArray(e.provider_latency)?e.provider_latency:[]).length>0}function Qx(e){let t=e&&e.summary?e.summary.success_rate:null;return t==null?`—`:(Math.round(Number(t)*1e3)/10).toFixed(1)+`%`}function $x(e,t){return Number(e&&e.summary&&e.summary[t]||0)}function eS(e){let t=Number(e);return Number.isFinite(t)?t>=6e4?(t/6e4).toFixed(1)+` min`:t>=1e3?(t/1e3).toFixed(2)+` s`:Math.round(t)+` ms`:`-`}function tS(e){let t=e&&e.summary?e.summary.avg_duration_ms:null;return t==null?`—`:eS(Number(t))}function nS(e,t){try{let n={};return new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,hourCycle:`h23`}).formatToParts(e).forEach(e=>{n[e.type]=e.value}),{year:n.year,month:n.month,day:n.day,hour:Number(n.hour)}}catch{return{year:String(e.getFullYear()),month:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][e.getMonth()],day:String(e.getDate()),hour:e.getHours()}}}function rS(e,t,n){let r=new Date(e.start);if(Number.isNaN(r.getTime()))return String(e.start||``);let i=nS(r,n),a=i.month+` `+i.day;return t!==`hour`||i.hour===0?a:String(i.hour).padStart(2,`0`)+`:00`}function iS(e,t,n,r){let i=new Date(e.start);if(Number.isNaN(i.getTime()))return String(e.start||``);if(t===`hour`)return r(e.start);let a=nS(i,n);return a.month+` `+a.day+`, `+a.year}function aS(e){return{ok:e(`var(--success)`),clientError:e(`var(--warning)`),serverError:e(`var(--danger)`),other:e(`color-mix(in srgb, var(--text-muted) 55%, transparent)`)}}function oS(e,t,n={}){let r=n.interval===`hour`?`hour`:`day`,i=n.zone,a=n.resolve||(e=>e),o=n.formatTimestamp||(e=>String(e)),s=t.map(e=>rS(e,r,i)),c=aS(a),l=a(`var(--bg-surface)`),u=e=>Number(e)||0,d=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderColor:l,borderWidth:1,borderSkipped:!1,borderRadius:2,maxBarThickness:28}),f=[d(`2xx`,t.map(e=>u(e.status_2xx)),c.ok),d(`4xx`,t.map(e=>u(e.status_4xx)),c.clientError),d(`5xx`,t.map(e=>u(e.status_5xx)),c.serverError)];return t.some(e=>u(e.status_other)>0)&&f.push(d(`Other`,t.map(e=>u(e.status_other)),c.other)),{type:`bar`,data:{labels:s,datasets:f},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:Yy(e,{title:e=>e.length?iS(t[e[0].dataIndex],r,i,o):``,label:e=>e.dataset.label+`: `+e.parsed.y.toLocaleString(),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),`Total: `+t.toLocaleString()}})},scales:{x:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:Jy(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:Jy(),precision:0,callback:e=>xc(e)}}}}}}function sS(e=Qy()){let t={};return function(n){return n in t||(t[n]=e[Object.keys(t).length%e.length]),t[n]}}function cS(e,t,n,r={}){let i=r.interval===`hour`?`hour`:`day`,a=r.zone,o=r.formatTimestamp||(e=>String(e)),s=r.providerColor||sS();return{type:`line`,data:{labels:t.map(e=>rS(e,i,a)),datasets:n.map(e=>({label:e.provider,data:(e.avg_duration_ms||[]).map(e=>e==null?null:Number(e)),borderColor:s(e.provider),backgroundColor:s(e.provider),fill:!1,tension:.3,borderWidth:2,pointRadius:0,pointHoverRadius:4,spanGaps:i===`hour`&&2}))},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:Yy(e,{title:e=>e.length?iS(t[e[0].dataIndex],i,a,o):``,label:e=>{let t=(n[e.datasetIndex]&&n[e.datasetIndex].requests||[])[e.dataIndex],r=Number(t)||0;return e.dataset.label+`: `+eS(e.parsed.y)+(r>0?` (`+r.toLocaleString()+` req)`:``)}})},scales:{x:{grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:Jy(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:Jy(),callback:e=>eS(e)}}}}}}var lS=class{#e=A(M(Jb()));get status(){return L(this.#e)}set status(e){j(this.#e,e,!0)}#t=A(!1);get loading(){return L(this.#t)}set loading(e){j(this.#t,e,!0)}#n=A(!1);get loadedOnce(){return L(this.#n)}set loadedOnce(e){j(this.#n,e,!0)}#r=A(!1);get detailsExpanded(){return L(this.#r)}set detailsExpanded(e){j(this.#r,e,!0)}#i=A(M({}));get cardOverrides(){return L(this.#i)}set cardOverrides(e){j(this.#i,e,!0)}#a=null;#o=null;#s=!1;initPreferences(){if(this.#s)return;this.#s=!0;let e=Yb(Sa());this.detailsExpanded=e.detailsExpanded,this.cardOverrides=e.cardOverrides}cardExpanded(e){return Qb(this.cardOverrides,this.detailsExpanded,e)}toggleCard(e){let t=e&&e.name?String(e.name):``;if(!t)return;let n={...this.cardOverrides};n[t]=!this.cardExpanded(e),this.cardOverrides=n,Zb(Sa(),this.cardOverrides)}toggleDetails(){this.detailsExpanded=!this.detailsExpanded,this.cardOverrides={},Xb(Sa(),this.detailsExpanded),Zb(Sa(),this.cardOverrides)}detailsToggleLabel(){return this.detailsExpanded?`Show Details`:`Hide Details`}async fetch(){this.initPreferences(),this.#a&&this.#a.abort();let e=new AbortController;this.#a=e,this.loading=!0;try{let t=await Ts(`/admin/providers/status`,{label:`provider status`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.status=Jb(),this.#l();return}let n=t.data&&typeof t.data==`object`?t.data:Jb();n.summary||=Jb().summary,Array.isArray(n.providers)||(n.providers=[]),this.status=n,this.#c()}catch(e){if(Ds(e))return;console.error(`Failed to fetch provider status:`,e),this.status=Jb(),this.#l()}finally{this.#a===e&&(this.#a=null,this.loading=!1,this.loadedOnce=!0)}}#c(){this.#l(),ix(this.status.providers)&&(this.#o=setTimeout(()=>{this.#o=null,this.fetch()},Gb))}#l(){this.#o&&=(clearTimeout(this.#o),null)}stopPolling(){this.#l()}},uS=class{#e=A(M(Jx()));get stats(){return L(this.#e)}set stats(e){j(this.#e,e,!0)}#t=A(!1);get loading(){return L(this.#t)}set loading(e){j(this.#t,e,!0)}#n=0;async fetch(){let e=++this.#n;this.loading=!0;try{let t=await Ts(`/admin/audit/stats?`+Uc.queryStr(),{label:`audit stats`});if(t.stale||e!==this.#n)return;if(!t.ok){this.stats=Jx();return}this.stats=Yx(t.data)}catch(t){if(console.error(`Failed to fetch audit stats:`,t),e!==this.#n)return;this.stats=Jx()}finally{e===this.#n&&(this.loading=!1)}}},dS=class{#e=A(M([]));get servers(){return L(this.#e)}set servers(e){j(this.#e,e,!0)}#t=A(!1);get available(){return L(this.#t)}set available(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}async fetch(){if(await As.ensureLoaded(),!As.mcpVisible()){this.available=!1,this.servers=[];return}this.loading=!0;try{let e=await Ts(`/admin/mcp-servers`,{label:`mcp servers`});if(e.stale)return;if(e.status===503||e.status===404){this.available=!1,this.servers=[];return}if(this.available=!0,!e.ok){this.servers=[];return}this.servers=Array.isArray(e.data)?e.data:[]}catch(e){console.error(`Failed to fetch MCP servers:`,e),this.servers=[]}finally{this.loading=!1}}},fS=class{#e=A(M([]));get data(){return L(this.#e)}set data(e){j(this.#e,e,!0)}#t=A(`tokens`);get mode(){return L(this.#t)}set mode(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=null;async fetch(){this.#r&&this.#r.abort();let e=new AbortController;this.#r=e,this.loading=!0;try{let t=await Ts(`/admin/usage/daily?days=365&interval=daily`,{label:`calendar`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.data=[];return}this.data=Array.isArray(t.data)?t.data:[]}catch(e){if(Ds(e))return;console.error(`Failed to fetch calendar data:`,e),this.data=[]}finally{this.#r===e&&(this.#r=null,this.loading=!1)}}},pS=new lS,mS=new uS,hS=new dS,gS=new fS,_S=(e,t=f,n=f,r=f,i=f)=>{var a=yS(),o=N(a),s=N(o,!0);E(o);var c=F(o,2),l=N(c),u=N(l),d=N(u,!0);E(u),He(),E(l);var p=F(l,4),m=N(p),h=N(m,!0);E(m),He(),E(p);var g=F(p,4),_=N(g,!0);E(g),E(c),E(a),I((e,n,r,i,a,o)=>{V(s,t()),G(l,`title`,e),V(d,n),G(p,`title`,r),V(h,i),G(g,`title`,a),V(_,o)},[()=>Sc(`Input tokens`,n()),()=>xc(n()),()=>Sc(`Output tokens`,r()),()=>xc(r()),()=>Sc(`Total tokens`,i()),()=>xc(i())]),B(e,a)},vS=(e,t=f,n=f,r=f,i=f,a=f,o=f)=>{var s=SS(),c=N(s),l=N(c,!0);E(c);var u=F(c,2),d=N(u,!0);E(u);var p=F(u,2),m=e=>{var t=bS(),n=N(t,!0);E(t),I(()=>{G(t,`aria-label`,o().title),G(t,`title`,o().title),V(n,a())}),R(`click`,t,function(...e){o().onclick?.apply(this,e)}),B(e,t)},h=e=>{var t=xS(),n=N(t,!0);E(t),I(()=>V(n,a())),B(e,t)};H(p,e=>{o()?e(m):e(h,-1)}),E(s),I(()=>{W(s,1,`card provider-status-flag ${t()??``} ${n()??``}`,`svelte-6tr9cf`),V(l,r()),V(d,i())}),B(e,s)},yS=z(`
i + o =
`),bS=z(``),xS=z(` `),SS=z(`
`),CS=z(`
Cache Hits
`),wS=z(`
Total Requests
Estimated Cost
Prompt Cache Rate
`);function TS(e,t){D(t,!0);let n=k(()=>Yc.summary),r=k(()=>Yc.cacheOverview),i=k(()=>Yc.cacheAnalyticsEnabled()),a=k(()=>pS.status.summary);function o(){let e=document.getElementById(`provider-status-section`);e&&(e.scrollIntoView({behavior:`smooth`,block:`start`}),e.focus({preventScroll:!0}))}var s=wS(),c=N(s);{let e=k(()=>Cb(L(n)));_S(c,()=>`Tokens`,()=>L(n).total_input_tokens,()=>L(n).total_output_tokens,()=>L(e))}var l=F(c,2),u=F(N(l),2),d=N(u,!0);E(u),E(l);var f=F(l,2),p=e=>{var t=CS(),n=F(N(t),2),i=N(n,!0);E(n),E(t),I(e=>V(i,e),[()=>_c(L(r).summary.total_hits)]),B(e,t)};H(f,e=>{L(i)&&e(p)});var m=F(f,2),h=F(N(m),2),g=N(h,!0);E(h),E(m);var _=F(m,2),v=e=>{{let t=k(()=>Db(L(r)));_S(e,()=>`Local Cache`,()=>L(r).summary.total_input_tokens,()=>L(r).summary.total_output_tokens,()=>L(t))}};H(_,e=>{L(i)&&e(v)});var y=F(_,2),b=F(N(y),2),x=N(b);Hy(x,{build:()=>Hb(Rb(L(n)),Xy(`var(--token-prompt)`),Xy(`var(--bg-surface-hover)`))});var S=F(x,2),C=N(S,!0);E(S),E(b),E(y);var w=F(y,2),T=e=>{{let t=k(()=>$b(L(a))),n=k(()=>tx(L(a))),r=k(()=>rx(L(a))),i=k(()=>nx(L(a))?{title:`View providers overview`,onclick:o}:null);vS(e,()=>`provider-status-overview-card`,()=>L(t),()=>`Provider Status`,()=>L(n),()=>L(r),()=>L(i))}};H(w,e=>{L(a).total>0&&e(T)});var ee=F(w,2),te=e=>{{let t=k(()=>Kx(hS.servers)),n=k(()=>Gx(hS.servers)),r=k(()=>qx(hS.servers));vS(e,()=>`mcp-servers-flag`,()=>L(t),()=>`MCP Servers`,()=>L(n),()=>L(r),()=>({title:`View MCP servers`,onclick:()=>Xo.navigate(`mcp-servers`)}))}},ne=k(()=>Wx(hS.available,hS.servers));H(ee,e=>{L(ne)&&e(te)}),E(s),I((e,t,n,r,i)=>{G(u,`title`,e),V(d,t),V(g,n),G(b,`aria-label`,r),V(C,i)},[()=>Eb(L(n),L(r),L(i)),()=>_c(Tb(L(n),L(r),L(i))),()=>vc(L(n).total_cost),()=>`Prompt cache rate `+Bb(L(n)),()=>Bb(L(n))]),B(e,s),O()}Vr([`click`]);var ES=z(` `),DS=z(`
`),OS=z(`No usage in the selected period yet`),kS=z(`
`),AS=z(`

Tokens

Share of input tokens over the selected period
`);function jS(e,t){D(t,!0);let n=k(()=>Yc.cacheAnalyticsEnabled()),r=k(()=>jb(Yc.summary,Yc.cacheOverview,L(n))),i=k(()=>Mb(Yc.summary,Yc.cacheOverview,L(n))),a=k(()=>Ab(Yc.summary,Yc.cacheOverview,L(n)));var o=AS(),s=F(N(o),2);let c;var l=N(s);U(l,17,()=>L(i),e=>e.key,(e,t)=>{var n=DS(),r=N(n),i=e=>{var n=ES(),r=N(n);E(n),I(()=>V(r,`${L(t).pct??``}%`)),B(e,n)};H(r,e=>{L(t).pct>=8&&e(i)}),E(n),I(e=>{Vi(n,`width: ${L(t).pct??``}%; background: var(${L(t).colorVar??``})`),G(n,`title`,e)},[()=>Nb(L(t))]),B(e,n)});var u=F(l,2),d=e=>{B(e,OS())};H(u,e=>{L(a)||e(d)}),E(s);var f=F(s,2);U(f,21,()=>L(r),e=>e.key,(e,t)=>{var n=kS(),r=N(n),i=F(r,2),a=N(i,!0);E(i);var o=F(i,2),s=N(o);E(o);var c=F(o,2),l=N(c,!0);E(c),E(n),I((e,i)=>{G(n,`title`,e),Vi(r,`background: var(${L(t).colorVar??``})`),V(a,L(t).label),V(s,`${L(t).pct??``}%`),V(l,i)},[()=>Nb(L(t)),()=>_c(L(t).tokens)]),B(e,n)}),E(f),E(o),I(e=>{c=W(s,1,`cache-meter-bar svelte-1yzecxj`,null,c,{"is-empty":!L(a)}),G(s,`aria-label`,e)},[()=>Pb(L(i))]),B(e,o),O()}var MS=z(``);function NS(e,t){let n=K(t,`size`,3,16),r=K(t,`label`,3,`Loading`),i=K(t,`class`,3,``);var a=MS();I(()=>{W(a,1,Pi([`spinner`,i()]),`svelte-b54l9o`),Vi(a,`--spinner-size: ${n()??``}px`),G(a,`aria-label`,r())}),B(e,a)}var PS=Yr(` `),FS=Yr(``);function IS(e,t){let n=K(t,`label`,3,`No data`);var r=FS(),i=F(N(r),9),a=e=>{var t=PS(),r=N(t,!0);E(t),I(()=>V(r,n())),B(e,t)};H(i,e=>{n()&&e(a)}),E(r),I(()=>{G(r,`role`,n()?`img`:void 0),G(r,`aria-label`,n()||void 0),G(r,`aria-hidden`,n()?void 0:`true`)}),B(e,r)}var LS=z(`
`),RS=z(`

`);function zS(e,t){D(t,!0);let n=[`daily`,`weekly`,`monthly`,`yearly`];function r(e){Uc.interval=e,t.onintervalchange?.()}function i(){let e=Yc.daily;if(e.length===0)return null;let t=Uc.rangeStart(),n=Uc.rangeEnd(),r=Lb(Ib(e,Uc.interval,t,n),Ib(Array.isArray(Yc.cacheOverview.daily)?Yc.cacheOverview.daily:[],Uc.interval,t,n));return Vb(qy(),r,{cacheEnabled:Yc.cacheAnalyticsEnabled(),resolve:Xy})}var a=RS(),o=N(a),s=N(o),c=N(s,!0);E(s);var l=F(s,2);{let e=k(()=>n.map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})));Gy(l,{ariaLabel:`Usage chart interval`,get options(){return L(e)},get value(){return Uc.interval},onchange:r})}E(o);var u=F(o,2),d=N(u);Hy(d,{build:i});var f=F(d,2),p=e=>{var t=LS();NS(N(t),{size:24,label:`Loading usage`}),E(t),B(e,t)},m=e=>{var t=LS();IS(N(t),{}),E(t),B(e,t)};H(f,e=>{Yc.daily.length===0&&Yc.loading?e(p):Yc.daily.length===0&&!J.authError&&e(m,1)}),E(u),E(a),I(e=>V(c,e),[()=>Uc.chartTitle()]),B(e,a),O()}var BS=10,VS=.7;function HS(e,t){if(e<=0||t<=0)return 0;let n=(e/t)**+VS,r=Math.ceil(n*BS);return r<1?1:r>BS?BS:r}function US(){let e=[];for(let t=0;t<=BS;t++)e.push(t);return e}function WS(e,t,n){let r={};(e||[]).forEach(e=>{r[e.date]=e});let i=os(cs(n,-364)),a=i.getUTCDay();i.setUTCDate(i.getUTCDate()-a);let o=[];for(let e=new Date(i);ss(e)<=n;e.setUTCDate(e.getUTCDate()+1)){let n=ss(e),i=r[n],a=0;i&&(a=t===`costs`?i.total_cost==null?0:i.total_cost:i.total_tokens||0),o.push({dateStr:n,value:a,level:0,empty:!1})}let s=0;for(let e=0;es&&(s=o[e].value);for(let e=0;e0){for(;l.length<7;)l.push({dateStr:``,value:0,level:0,empty:!0});c.push(l)}return c}function GS(e){let t=os(cs(e,-364)),n=t.getUTCDay();t.setUTCDate(t.getUTCDate()-n);let r=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],i=[],a={},o=0;for(let n=new Date(t);ss(n)<=e;n.setUTCDate(n.getUTCDate()+7),o++){let t=null;if(o===0)t=new Date(n);else for(let r=0;r<7;r++){let i=new Date(n);if(i.setUTCDate(n.getUTCDate()+r),ss(i)>e)break;if(i.getUTCDate()===1){t=i;break}}if(!t)continue;let s=t.getUTCFullYear()+`-`+t.getUTCMonth();a[s]||(i.push({label:r[t.getUTCMonth()],col:o,key:s}),a[s]=!0)}for(let e=0;e `),YS=z(`
`),XS=z(`
`),ZS=z(`
`),QS=z(`
`),$S=z(`

Activity

Mon Wed Fri
`,1);function eC(e,t){D(t,!0);let n=A(M({show:!1,x:0,y:0,text:``})),r=k(()=>ys.currentDateKey()),i=k(()=>WS(gS.data,gS.mode,L(r))),a=k(()=>GS(L(r)));function o(e,t){t.empty||j(n,{show:!0,x:e.clientX,y:e.clientY,text:qS(t,gS.mode)},!0)}function s(){j(n,{show:!1,x:0,y:0,text:``},!0)}var c=$S(),l=P(c),u=N(l),d=F(N(u),2),f=e=>{NS(e,{size:14,label:`Loading activity`})};H(d,e=>{gS.loading&&gS.data.length===0&&e(f)}),Gy(F(d,2),{ariaLabel:`Activity calendar mode`,options:[{value:`tokens`,label:`Tokens`},{value:`costs`,label:`Costs`}],get value(){return gS.mode},onchange:e=>gS.mode=e}),E(u);var p=F(u,2),m=F(N(p),2),h=N(m);U(h,21,()=>L(a),e=>e.key,(e,t)=>{var n=JS(),r=N(n,!0);E(n),I(()=>{Vi(n,`grid-column: ${L(t).col+1} / span ${L(t).span??``}`),V(r,L(t).label)}),B(e,n)}),E(h);var g=F(h,2);U(g,21,()=>L(i),ai,(e,t,n)=>{var r=XS();U(r,23,()=>L(t),(e,t)=>n+`-`+t,(e,t)=>{var n=YS();I(()=>W(n,1,Pi([`contribution-calendar-cell`,L(t).empty?`empty`:`level-${L(t).level}`]),`svelte-3hfxuq`)),Br(`mouseenter`,n,e=>o(e,L(t))),Br(`mouseleave`,n,s),B(e,n)}),E(r),B(e,r)}),E(g),E(m),E(p);var _=F(p,2),v=N(_),y=N(v),b=N(y,!0);E(y),E(v);var x=F(v,2);U(F(N(x),2),16,US,e=>e,(e,t)=>{var n=ZS();I(()=>W(n,1,`contribution-calendar-cell level-${t??``}`,`svelte-3hfxuq`)),B(e,n)}),He(2),E(x),E(_),E(l);var S=F(l,2),C=e=>{var t=QS(),r=N(t,!0);E(t),I(()=>{Vi(t,`left: ${L(n).x??``}px; top: ${L(n).y-40}px`),V(r,L(n).text)}),B(e,t)};H(S,e=>{L(n).show&&e(C)}),I(e=>V(b,e),[()=>KS(gS.data,gS.mode)]),B(e,c),O()}var tC=z(``),nC=z(`

`),rC=z(`
`);function iC(e,t){D(t,!0);let n=K(t,`label`,3,`help`),r=K(t,`text`,3,``),i=K(t,`open`,15,!1),a=K(t,`external`,3,!1),o=k(()=>!!r()||!!t.help||a());var s=rC(),c=N(s),l=N(c);hi(l,()=>t.title??f);var u=F(l,2),d=e=>{var r=tC();let a;I(()=>{a=W(r,1,`inline-help-toggle svelte-y40or3`,null,a,{"is-open":i()}),G(r,`aria-label`,(i()?`Hide `:`Show `)+n()),G(r,`aria-expanded`,i()),G(r,`aria-controls`,t.copyId)}),R(`click`,r,()=>i(!i())),B(e,r)};H(u,e=>{L(o)&&e(d)}),hi(F(u,2),()=>t.extra??f),E(c);var p=F(c,2),m=e=>{var n=nC(),i=N(n),a=e=>{var n=Zr();hi(P(n),()=>t.help),B(e,n)},o=e=>{var t=Xr();I(()=>V(t,r())),B(e,t)};H(i,e=>{t.help?e(a):e(o,-1)}),E(n),I(()=>G(n,`id`,t.copyId)),B(e,n)};H(p,e=>{i()&&L(o)&&!a()&&e(m)}),E(s),B(e,s),O()}Vr([`click`]);var aC=z(`

Provider Latency

`),oC=z(`
Avg
`),sC=z(`

Requests by Status

Success 2xx 4xx 5xx
`,1);function cC(e,t){D(t,!0);let n=sS(),r=k(()=>mS.stats);function i(){return{interval:L(r).interval,zone:ys.effectiveTimezone(),resolve:Xy,formatTimestamp:e=>ys.formatTimestamp(e)}}var a=Zr(),o=P(a),s=e=>{var t=sC(),a=P(t),o=N(a),s=F(N(o),2),c=N(s),l=F(N(c),2),u=N(l,!0);E(l),E(c);var d=F(c,2),f=F(N(d),4),p=N(f,!0);E(f),E(d);var m=F(d,2),h=F(N(m),4),g=N(h,!0);E(h),E(m);var _=F(m,2),v=F(N(_),4),y=N(v,!0);E(v),E(_),E(s),E(o);var b=F(o,2);Hy(N(b),{build:()=>oS(qy(),L(r).buckets,i())}),E(b),E(a);var x=F(a,2),S=e=>{var t=oC(),a=N(t),o=N(a);iC(o,{copyId:`audit-latency-help-copy`,label:`provider latency help`,text:`Average duration of successful requests as measured at the gateway, per provider. Local cache hits and failed requests are excluded; streamed responses count until the stream completes.`,title:e=>{B(e,aC())},$$slots:{title:!0}});var s=F(o,2),c=N(s),l=F(N(c),2),u=N(l,!0);E(l),E(c),E(s),E(a);var d=F(a,2);Hy(N(d),{build:()=>cS(qy(),L(r).buckets,L(r).provider_latency,{...i(),providerColor:n})}),E(d),E(t),I(e=>V(u,e),[()=>tS(L(r))]),B(e,t)},C=k(()=>Zx(L(r)));H(x,e=>{L(C)&&e(S)}),I((e,t,n,r)=>{V(u,e),V(p,t),V(g,n),V(y,r)},[()=>Qx(L(r)),()=>_c($x(L(r),`status_2xx`)),()=>_c($x(L(r),`status_4xx`)),()=>_c($x(L(r),`status_5xx`))]),B(e,t)},c=k(()=>Xx(L(r)));H(o,e=>{L(c)&&e(s)}),B(e,a),O()}var lC=(e,t=f,n=f,r)=>{let i=Dt(()=>h(r?.(),!1));var a=fC(),o=N(a),s=N(o,!0);E(o);var c=F(o,2),l=e=>{var t=uC(),r=N(t,!0);E(t),I(()=>V(r,n())),B(e,t)},u=e=>{var t=dC(),r=N(t,!0);E(t),I(()=>V(r,n())),B(e,t)};H(c,e=>{L(i)?e(l):e(u,-1)}),E(a),I(()=>V(s,t())),B(e,a)},uC=z(` `),dC=z(` `),fC=z(`
`),pC=z(`

`),mC=z(`
Breaker State
`),hC=z(`
`),gC=z(`
Models (Recent Traffic)
`),_C=z(`
`),vC=z(`

`);function yC(e,t){D(t,!0);let n=k(()=>_x(t.provider)),r=k(()=>[[`Base URL`,t.provider.config?.base_url],[`API Version`,t.provider.config?.api_version]].filter(([,e])=>!!e));var i=vC();let a;var o=N(i),s=N(o),c=N(s,!0);E(s);var l=F(s,2),u=e=>{var n=pC(),r=N(n,!0);E(n),I(()=>V(r,t.provider.last_error)),B(e,n)};H(l,e=>{t.provider.last_error&&e(u)});var d=F(l,2),f=e=>{var r=_C(),i=N(r);{let e=k(()=>vx(t.provider));lC(i,()=>`Recent Requests`,()=>L(e))}var a=F(i,2),o=e=>{var r=mC(),i=F(N(r),2),a=N(i),o=N(a,!0);E(a),E(i),E(r),I(e=>{W(a,1,Pi([`provider-status-health-state`,L(n)]),`svelte-6y9wjv`),V(o,e)},[()=>gx(t.provider)]),B(e,r)},s=k(()=>hx(t.provider));H(a,e=>{L(s)&&e(o)});var c=F(a,2),l=e=>{var n=gC(),r=F(N(n),2);U(r,21,()=>yx(t.provider),e=>e.model,(e,t)=>{var n=hC();let r;var i=N(n),a=N(i,!0);E(i);var o=F(i,2),s=N(o,!0);E(o),E(n),I((e,i)=>{r=W(n,1,`provider-status-health-model svelte-6y9wjv`,null,r,{"is-flagged":L(t).flagged}),G(n,`title`,e),V(a,L(t).model),V(s,i)},[()=>xx(L(t)),()=>bx(L(t))]),B(e,n)}),E(r),E(n),B(e,n)},u=k(()=>yx(t.provider).length>0);H(c,e=>{L(u)&&e(l)}),E(r),B(e,r)},p=k(()=>mx(t.provider));H(d,e=>{L(p)&&e(f)});var m=F(d,2),h=N(m);U(h,17,()=>L(r),([e,t])=>e,(e,t)=>{var n=k(()=>g(L(t),2));lC(e,()=>L(n)[0],()=>L(n)[1],()=>!0)});var _=F(h,2);{let e=k(()=>fx(t.provider));lC(_,()=>`Configured Models`,()=>L(e))}var v=F(_,2);{let e=k(()=>ux(t.provider));lC(v,()=>`Retry`,()=>L(e))}var y=F(v,2);{let e=k(()=>dx(t.provider));lC(y,()=>`Circuit Breaker`,()=>L(e))}E(m),E(o),E(i),I(()=>{a=W(i,1,`provider-status-details svelte-6y9wjv`,null,a,{"is-expanded":t.expanded,"is-collapsed":!t.expanded}),G(i,`aria-hidden`,!t.expanded),V(c,t.provider.status_reason)}),B(e,i),O()}var bC=z(` `),xC=z(``),SC=z(`

Models Available
Last Checked
`);function CC(e,t){D(t,!0);let n=k(()=>pS.cardExpanded(t.provider)),r=e=>ys.formatTimestamp(e);var i=SC(),a=N(i),o=N(a),s=N(o),c=N(s),l=N(c,!0);E(c);var u=F(c,2),d=e=>{var n=bC(),r=N(n);E(n),I(e=>V(r,`(${e??``})`),[()=>cx(t.provider)]),B(e,n)},f=k(()=>cx(t.provider));H(u,e=>{L(f)&&e(d)});var p=F(u,2),m=e=>{var n=xC();I((e,t,r)=>{G(n,`href`,e),G(n,`aria-label`,t),G(n,`title`,r)},[()=>lx(t.provider),()=>`View `+(cx(t.provider)||t.provider.name)+` provider docs`,()=>`View `+(cx(t.provider)||t.provider.name)+` provider docs`]),B(e,n)},h=k(()=>lx(t.provider));H(p,e=>{L(h)&&e(m)}),E(s),E(o);var g=F(o,2),_=N(g,!0);E(g),E(a);var v=F(a,2),y=N(v),b=F(N(y),2),x=N(b,!0);E(b),E(y);var S=F(y,2),C=F(N(S),2),w=N(C,!0);E(C),E(S),E(v);var T=F(v,2);yC(T,{get provider(){return t.provider},get expanded(){return L(n)}});var ee=F(T,2);let te;q(N(ee),{get icon(){return Ha},class:`provider-status-card-toggle-icon`}),E(ee),E(i),I((e,r,i,a,o)=>{V(l,t.provider.name),W(g,1,`provider-status-pill ${e??``}`,`svelte-nopjmh`),G(g,`title`,r),V(_,t.provider.status_label),V(x,i),G(C,`title`,a),V(w,o),te=W(ee,1,`provider-status-card-toggle svelte-nopjmh`,null,te,{"is-expanded":L(n)}),G(ee,`aria-expanded`,L(n)),G(ee,`aria-label`,(L(n)?`Collapse `:`Expand `)+t.provider.name+` details`),G(ee,`title`,L(n)?`Collapse details`:`Expand details`)},[()=>ex(t.provider.status),()=>px(t.provider),()=>_c(t.provider.runtime?.discovered_model_count),()=>sx(t.provider,r),()=>ox(t.provider,r)]),R(`click`,ee,()=>pS.toggleCard(t.provider)),B(e,i),O()}Vr([`click`]);var wC=z(`

Providers Overview

`),TC=z(`
`);function EC(e,t){D(t,!0);let n=k(()=>pS.status.providers);var r=Zr(),i=P(r),a=e=>{var t=wC(),r=N(t),i=F(N(r),2),a=N(i),o=N(a,!0);E(a);var s=F(a,2);let c;E(i),E(r);var l=F(r,2);U(l,21,()=>L(n),e=>e.name,(e,t)=>{CC(e,{get provider(){return L(t)}})}),E(l),E(t),I((e,t)=>{G(i,`aria-checked`,pS.detailsExpanded),G(i,`title`,e),V(o,t),c=W(s,1,`provider-status-toggle-track svelte-1kx3uw4`,null,c,{"is-active":pS.detailsExpanded})},[()=>pS.detailsToggleLabel(),()=>pS.detailsToggleLabel()]),R(`click`,i,()=>pS.toggleDetails()),B(e,t)},o=e=>{var t=TC();NS(N(t),{size:18,label:`Loading provider status`}),E(t),B(e,t)};H(i,e=>{L(n).length>0?e(a):pS.loading&&!pS.loadedOnce&&e(o,1)}),B(e,r),O()}Vr([`click`]);var DC=z(`
`);function OC(e,t){D(t,!0);function n(){Yc.fetchUsage(),Yc.fetchCacheOverview(``),mS.fetch(),pS.fetch(),hS.fetch(),gS.fetch()}function r(){Yc.fetchUsage(),Yc.fetchCacheOverview(``),mS.fetch()}function i(){r(),gS.fetch()}kn(()=>{if(J.refreshTick,Xo.page===`overview`)return Tr(()=>{n(),vb.start()}),()=>{vb.stop(),pS.stopPolling()}});var a=DC(),o=N(a);Sb(o,{});var s=F(o,4);fl(N(s),{onchange:i}),E(s);var c=F(s,2);Kc(c,{});var l=F(c,2);TS(l,{});var u=F(l,2);jS(u,{});var d=F(u,2);zS(d,{onintervalchange:r});var f=F(d,2);eC(f,{});var p=F(f,2);cC(p,{}),EC(F(p,2),{}),E(a),B(e,a),O()}var kC=`/admin/live/logs?types=audit,usage`;function AC(e,t,n){return!!t&&String(e&&e.id||``).trim()===t||!!n&&String(e&&e.request_id||``).trim()===n}function jC(e){switch(e){case`date_range`:return`Live paused — the selected date range does not include today. Set it to today to resume.`;case`filters`:return`Live paused while filters are active. Clear them to resume.`;case`pagination`:return`Live paused on later pages. Go to the first page to resume.`;default:return``}}function MC(e){let t=kC,n=Number(e||0);return Number.isFinite(n)&&n>0&&(t+=`&cursor=`+encodeURIComponent(String(n))),t}function NC(){return{async consumeLiveLogsBody(e){await tb(e,e=>this.applyLiveLogEvent(e))},applyLiveLogEvent(e){if(!e||typeof e!=`object`)return;let t=Number(e.seq||0);Number.isFinite(t)&&t>this.liveLogsLastSeq&&(this.liveLogsLastSeq=t);let n=String(e.type||``).trim();if(n!==`heartbeat`){if(n===`reset`){this.reloadLiveLogSources();return}if(n===`audit.removed`){this.removeLiveAuditEntry(e.data);return}if(n.indexOf(`audit.`)===0){this.mergeLiveAuditEntry(e.data||{},n);return}n.indexOf(`usage.`)===0&&(this.mergeLiveUsageEntry(e.data||{},n),typeof this.noteLiveTokenUsage==`function`&&this.noteLiveTokenUsage(n))}},reloadLiveLogSources(){typeof this.fetchUsage==`function`&&this.fetchUsage(),this.page===`audit-logs`&&typeof this.fetchAuditLog==`function`&&this.fetchAuditLog(!0)},auditLivePauseReason(){return!this.auditLog||this.auditLog.offset!==0?`pagination`:this.auditSearch||this.auditMethod||this.auditStatusCode||this.auditStream?`filters`:!this.followsToday&&(this.customStartDate||this.customEndDate)?`date_range`:null},auditLiveInsertAllowed(){return!this.auditLivePauseReason()},usageLiveInsertAllowed(){return this.usageLog&&this.usageLog.offset===0&&!this.usageLogSearch&&!this.usageFilterModel&&!this.usageFilterProvider&&!this.usageFilterLabel&&!this.usageFilterUserPath},mergeLiveAuditEntry(e,t){if(!e||typeof e!=`object`)return;let n=String(e.id||e.request_id||``).trim();if(!n)return;let r=String(e.request_id||``).trim(),i=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],a=i.findIndex(e=>AC(e,n,r)),o=a>=0&&i[a]||{},s=t===`audit.detail`,c=s?{...e,_detail_loaded:!0,_response_partial:!1,bodies_omitted:!1}:this.liveAuditPatch(o,e,t);if(a>=0){let e=this.mergeLiveAuditPatch(o,c);return i.splice(a,1,e),this.auditLog.entries=[...i],this.regroupLiveAuditHead(e),s||this.fetchExpandedAuditDetailIfReady(e),this.cacheMergedAuditRecord(e,t),e}let l=this.mergeLiveAuditChild(e,c);if(l)return s||this.fetchExpandedAuditDetailIfReady(l),this.cacheMergedAuditRecord(l,t),l;if(!this.auditLiveInsertAllowed()){this.cacheMergedAuditRecord(c,t);return}if(!s&&this.auditGroupSessions){let e=this.foldLiveAuditIntoThread(c);if(e)return this.fetchExpandedAuditDetailIfReady(e),this.cacheMergedAuditRecord(e,t),e}this.auditLog.entries=[this.mergeLiveAuditUsagePatch(c),...i].slice(0,this.auditLog.limit||25),this.auditLog.total=Number(this.auditLog.total||0)+1;let u=this.auditLog.entries[0];return s||this.fetchExpandedAuditDetailIfReady(u),this.cacheMergedAuditRecord(u,t),u},liveAuditPatch(e,t,n){let r=this.liveAuditStateAfter(e._live_state,n),i=this.liveAuditEventFlushed(e._live_state)||this.liveAuditEventFlushed(r),a={...t,_live:!0,_live_state:r,_audit_flushed:i,_live_pending:!i};return n===`audit.stream`?a._response_partial=!0:this.liveAuditStateSettled(n)&&(a._response_partial=!1),a},mergeLiveAuditChild(e,t){let n=this.auditThreadChildren;if(!n||typeof n!=`object`)return null;let r=String(e.id||``).trim(),i=String(e.request_id||``).trim(),a=Object.keys(n);for(let e=0;eAC(e,r,i));if(c<0)continue;let l=this.mergeLiveAuditPatch(s[c]||{},t),u=[...s];return u.splice(c,1,l),this.auditThreadChildren={...n,[a[e]]:{...o,entries:u}},l}return null},regroupLiveAuditHead(e){if(!this.auditGroupSessions)return null;let t=String(e&&e.session_id||``).trim();if(!t)return null;let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=String(e.id||``).trim(),i=n.findIndex(e=>String(e.id||``).trim()===r);if(i<0)return null;let a=n.findIndex((e,n)=>n!==i&&String(e.session_id||``).trim()===t);if(a<0)return null;let o=n[a],s=Date.parse(o&&o.timestamp),c=Date.parse(e&&e.timestamp),l=Number.isFinite(s)&&Number.isFinite(c)&&s>c,u=l?o:e,d=l?e:o,f={...u,session_count:Math.max(1,Number(o.session_count||1))+Math.max(1,Number(e.session_count||1))},p=n.filter((e,t)=>t!==i&&t!==a);return p.unshift(f),this.auditLog.entries=p,this.auditLog.total=Math.max(0,Number(this.auditLog.total||0)-1),this.prependLiveAuditThreadChild(t,d),f},foldLiveAuditIntoThread(e){let t=String(e&&e.session_id||``).trim();if(!t)return null;let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=n.findIndex(e=>String(e.session_id||``).trim()===t);if(r<0)return null;let i=n[r],a=Number(i.session_count),o=this.mergeLiveAuditUsagePatch({...e,session_count:(Number.isFinite(a)&&a>0?a:1)+1}),s=[...n];return s.splice(r,1),s.unshift(o),this.auditLog.entries=s,this.prependLiveAuditThreadChild(t,i),o},prependLiveAuditThreadChild(e,t){let n=this.auditThreadChildren||{},r=n[e],i={...t};delete i.session_count;let a=r&&Array.isArray(r.entries)?{...r,entries:[i,...r.entries],total:Number(r.total||r.entries.length)+1}:{loading:!1,loaded:!1,entries:[i],total:1};this.auditThreadChildren={...n,[e]:a}},removeLiveAuditThreadChild(e,t){let n=this.auditThreadChildren;!n||typeof n!=`object`||Object.keys(n).forEach(r=>{let i=n[r],a=i&&Array.isArray(i.entries)?i.entries:[],o=a.filter(n=>!AC(n,e,t)),s=a.length-o.length;s!==0&&(this.auditThreadChildren={...this.auditThreadChildren,[r]:{...i,entries:o,total:Math.max(0,Number(i.total||a.length)-s)}},this.decrementLiveAuditThreadCount(r,s))})},decrementLiveAuditThreadCount(e,t){let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=n.findIndex(t=>String(t.session_id||``).trim()===e);if(r<0)return;let i=n[r],a=[...n];a.splice(r,1,{...i,session_count:Math.max(1,Number(i.session_count||1)-t)}),this.auditLog.entries=a},mergeLiveAuditPatch(e,t){let n={...e,...t};return t.data===void 0&&e.data!==void 0?n.data=e.data:e.data&&t.data&&typeof e.data==`object`&&typeof t.data==`object`&&!Array.isArray(e.data)&&!Array.isArray(t.data)&&(n.data={...e.data,...t.data}),this.mergeLiveAuditUsagePatch(n)},mergeLiveAuditUsagePatch(e){let t=this.liveUsageEntryForAudit(e);if(!t)return e;let n=this.auditEntryWithLiveUsage(e,t);return this.removeSkippedLiveUsage(t),n},liveUsageEntryForAudit(e){let t=String(e&&e.request_id||``).trim();return t&&((this.usageLog&&Array.isArray(this.usageLog.entries)?this.usageLog.entries:[]).find(e=>String(e&&e.request_id||``).trim()===t)||this.skippedLiveUsageByRequestId&&this.skippedLiveUsageByRequestId[t])||null},cacheMergedAuditRecord(e,t){return e&&typeof this.cacheAuditRecord==`function`?this.cacheAuditRecord(e,t):e},fetchExpandedAuditDetailIfReady(e){!e||!this.isAuditEntryExpanded||!this.isAuditEntryExpanded(e)||String(e._live_state||``).trim()!==`audit.flushed`&&!e._audit_flushed||typeof this.fetchAuditEntryDetail==`function`&&this.fetchAuditEntryDetail(e)},liveAuditStateRank(e){switch(String(e||``).trim()){case`audit.started`:return 10;case`audit.updated`:case`audit.stream`:return 20;case`audit.completed`:return 30;case`audit.failed`:case`audit.flushed`:case`audit.detail`:return 40;default:return 0}},liveAuditStateAfter(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return this.liveAuditStateRank(n)>this.liveAuditStateRank(r)?n:r},liveAuditStateSettled(e){return this.liveAuditStateRank(e)>=this.liveAuditStateRank(`audit.completed`)},liveAuditEventFlushed(e){let t=String(e||``).trim();return t===`audit.failed`||t===`audit.flushed`||t===`audit.detail`},removeLiveAuditEntry(e){if(!e||!this.auditLog||!Array.isArray(this.auditLog.entries))return;let t=String(e.id||``).trim(),n=String(e.request_id||``).trim();if(!t&&!n)return;let r=this.auditLog.entries,i=[],a=0,o=0,s=!1;r.forEach(e=>{if(!AC(e,t,n)){i.push(e);return}a++;let r=String(e.session_id||``).trim(),c=Math.max(1,Number(e.session_count||1));if(!this.auditGroupSessions||!r||c<=1)return;o++;let l=this.auditThreadChildren&&this.auditThreadChildren[r],u=l&&Array.isArray(l.entries)?l.entries.filter(e=>!AC(e,t,n)):[];if(u.length===0){s=!0;return}let d={...u[0],session_id:r,session_count:c-1};i.push(d),this.auditThreadChildren={...this.auditThreadChildren,[r]:{...l,entries:u.slice(1),total:Math.max(0,Number(l.total||c)-1)}}}),a>0&&(this.auditLog.entries=i,this.auditLog.total=Math.max(0,Number(this.auditLog.total||0)-a+o)),this.removeLiveAuditThreadChild(t,n),s&&typeof this.fetchAuditLog==`function`&&this.fetchAuditLog(!0)},mergeLiveUsageEntry(e,t){if(!e||typeof e!=`object`)return;e={...e,_live_state:t||e._live_state||`usage.completed`};let n=String(e.id||``).trim();if(!n)return;let r=this.usageLog&&Array.isArray(this.usageLog.entries)?this.usageLog.entries:[],i=r.findIndex(e=>String(e.id||``).trim()===n);if(i>=0){let t=r[i]||{},n=this.mergeLiveUsagePatch(t,e);if(this.applyLiveUsageToAudit(n),this.liveUsageShouldSkip(n)){r.splice(i,1),this.usageLog.entries=[...r],this.usageLog.total=Math.max(0,Number(this.usageLog.total||0)-1),this.storeSkippedLiveUsage(n);return}r.splice(i,1,n),this.usageLog.entries=[...r],this.removeSkippedLiveUsage(n);return}let a=this.mergeLiveUsagePatch(this.liveUsageSeedForEntry(e),e);if(this.applyLiveUsageToAudit(a),this.liveUsageShouldSkip(a)){this.storeSkippedLiveUsage(a);return}this.removeSkippedLiveUsage(a),this.usageLog.entries=[a,...r].slice(0,this.usageLog.limit||50),this.usageLog.total=Number(this.usageLog.total||0)+1},mergeLiveUsagePatch(e,t){e=e&&typeof e==`object`?e:{};let n=this.liveUsageStateAfter(e._live_state,t&&t._live_state),r=this.liveUsageEventFlushed(e)||this.liveUsageEventFlushed({...t,_live_state:n});return{...e,...t,_live:!0,_live_state:n||`usage.completed`,_live_pending:!r,_usage_flushed:r}},liveUsageShouldSkip(e){return!!(this.usageLogHideCached&&this.liveUsageEntryCached(e))||!this.usageLiveInsertAllowed()},liveUsageSeedForEntry(e){return this.skippedLiveUsageForEntry(e)||this.auditLiveUsageForEntry(e)},skippedLiveUsageForEntry(e){let t=String(e&&e.request_id||``).trim();return t&&this.skippedLiveUsageByRequestId?this.skippedLiveUsageByRequestId[t]:null},auditLiveUsageForEntry(e){let t=String(e&&e.request_id||``).trim();if(!t||!this.auditLog||!Array.isArray(this.auditLog.entries))return null;let n=this.auditLog.entries.find(e=>String(e&&e.request_id||``).trim()===t),r=n&&n.usage&&typeof n.usage==`object`&&!Array.isArray(n.usage)?n.usage:null;return r?{id:e&&e.id,request_id:t,entries:r.entries,input_tokens:r.input_tokens,uncached_input_tokens:r.uncached_input_tokens,cached_input_tokens:r.cached_input_tokens,cache_write_input_tokens:r.cache_write_input_tokens,output_tokens:r.output_tokens,total_tokens:r.total_tokens,cached_input_ratio:r.cached_input_ratio,estimated_cached_characters:r.estimated_cached_characters,_live_state:n._usage_live_state,_live_pending:n._usage_live_pending,_usage_flushed:n._usage_flushed}:null},storeSkippedLiveUsage(e){let t=String(e&&e.request_id||``).trim();t&&((!this.skippedLiveUsageByRequestId||typeof this.skippedLiveUsageByRequestId!=`object`||Array.isArray(this.skippedLiveUsageByRequestId))&&(this.skippedLiveUsageByRequestId={}),this.skippedLiveUsageByRequestId[t]=e)},removeSkippedLiveUsage(e){let t=String(e&&e.request_id||``).trim();t&&this.skippedLiveUsageByRequestId&&delete this.skippedLiveUsageByRequestId[t]},liveUsageEntryCached(e){let t=String(e&&e.cache_type||``).trim().toLowerCase();return t===`exact`||t===`semantic`||!!(e&&e.cache_hit)},liveUsageEventFlushed(e){let t=String(e&&e._live_state||``).trim();return!!(e&&e._usage_flushed)||t===`usage.failed`||t===`usage.flushed`},liveUsageStateRank(e){switch(String(e||``).trim()){case`usage.completed`:return 10;case`usage.failed`:case`usage.flushed`:return 20;default:return 0}},liveUsageStateAfter(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return this.liveUsageStateRank(n)>this.liveUsageStateRank(r)?n:r},applyLiveUsageToAudit(e){let t=String(e&&e.request_id||``).trim();if(!t||!this.auditLog||!Array.isArray(this.auditLog.entries))return;let n=this.auditLog.entries.findIndex(e=>String(e.request_id||``).trim()===t);if(n>=0){let t=this.auditLog.entries[n];this.auditLog.entries.splice(n,1,this.auditEntryWithLiveUsage(t,e)),this.auditLog.entries=[...this.auditLog.entries]}let r=this.auditThreadChildren;if(!r||typeof r!=`object`)return;let i=r,a=!1;Object.keys(r).forEach(n=>{let r=i[n],o=r&&Array.isArray(r.entries)?r.entries:[],s=o.findIndex(e=>String(e.request_id||``).trim()===t);if(s<0)return;let c=[...o];c.splice(s,1,this.auditEntryWithLiveUsage(o[s],e)),i={...i,[n]:{...r,entries:c}},a=!0}),a&&(this.auditThreadChildren=i)},auditEntryWithLiveUsage(e,t){let n=this.liveUsageStateAfter(e._usage_live_state,t._live_state||`usage.completed`),r=this.liveUsageEventFlushed({_live_state:n,_usage_flushed:e._usage_flushed||t._usage_flushed});return{...e,usage:this.liveUsageSummary(t,e.usage),_usage_live_state:n||`usage.completed`,_usage_live_pending:!r,_usage_flushed:r}},liveUsageSummary(e,t){let n=t&&typeof t==`object`&&!Array.isArray(t)?t:{},r=this.liveNumber(e.input_tokens,this.liveNumber(n.input_tokens,0)),i=this.liveNumber(e.output_tokens,this.liveNumber(n.output_tokens,0)),a=this.liveNumber(e.uncached_input_tokens,this.liveNumber(n.uncached_input_tokens,0)),o=this.liveNumber(e.cached_input_tokens,this.liveNumber(n.cached_input_tokens,0)),s=this.liveNumber(e.cache_write_input_tokens,this.liveNumber(n.cache_write_input_tokens,0));r>0&&a+o+s===0&&(a=r);let c=a+o+s||r,l=c+i||this.liveNumber(e.total_tokens,this.liveNumber(n.total_tokens,0)),u=this.liveNumber(e.cached_input_ratio,this.liveNumber(n.cached_input_ratio,c>0?o/c:0));return{entries:Math.max(1,this.liveNumber(e.entries,this.liveNumber(n.entries,1))),input_tokens:c,uncached_input_tokens:a,cached_input_tokens:o,cache_write_input_tokens:s,output_tokens:i,total_tokens:l,cached_input_ratio:u,estimated_cached_characters:this.liveNumber(e.estimated_cached_characters,this.liveNumber(n.estimated_cached_characters,o*4))}},liveNumber(e,t){let n=Number(e);return Number.isFinite(n)?n:t},auditEntryShouldFetchDetail(e){return!e||e._detail_loading||e._detail_loaded||this.auditEntryLiveDetailPending(e)?!1:this.auditEntryNeedsPersistedLiveDetail(e)||e.bodies_omitted?!0:!this.auditEntryHasDetailData(e)},auditEntryLiveDetailPending(e){if(!e||!e._live)return!1;let t=String(e._live_state||``).trim();return t===`audit.failed`||!e._audit_flushed&&t!==`audit.flushed`&&t!==`audit.detail`},auditEntryNeedsPersistedLiveDetail(e){return!!(e&&e._live&&!e._detail_loaded)},auditEntryHasDetailData(e){let t=e&&e.data;return!t||typeof t!=`object`?!1:t.request_headers!==void 0||t.response_headers!==void 0||t.request_body!==void 0||t.response_body!==void 0||t.request_body_too_big_to_handle!==void 0||t.response_body_too_big_to_handle!==void 0||t.user_agent!==void 0||t.api_key_hash!==void 0||t.temperature!==void 0||t.max_tokens!==void 0||t.error_message!==void 0||t.error_code!==void 0},clearAuditDetailLoading(e){if(!e)return;let t=String(e.id||``).trim(),n=String(e.request_id||``).trim(),r=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],i=r.find(e=>t&&String(e.id||``).trim()===t?!0:!!(n&&String(e.request_id||``).trim()===n)),a=i||e;a._detail_loading=!1,i&&(this.auditLog.entries=[...r])}}}var PC={"audit.started":10,"audit.updated":20,"audit.stream":20,"audit.completed":30,"audit.failed":40,"audit.flushed":40,"audit.detail":40},FC=new Set(Object.keys(PC));function IC(e){return String(e&&(e.id||e.request_id)||``).trim()}function LC(e,t){let n=e&&typeof e==`object`?e:{},r=t&&typeof t==`object`?t:{},i={...n,...r};r.data==null&&n.data!=null?i.data=n.data:BC(n.data)&&BC(r.data)&&(i.data={...n.data,...r.data});let a=String(n._live_state||``).trim(),o=String(r._live_state||``).trim();return(PC[a]||0)>(PC[o]||0)&&(i._live_state=a),n._audit_flushed&&(i._audit_flushed=!0),i._audit_flushed&&(i._live_pending=!1),n._detail_loaded&&!r._detail_loaded&&(i._detail_loaded=!0,i.bodies_omitted=!1),i.bodies_omitted&&BC(i.data)&&(i.data.request_body!==void 0||i.data.response_body!==void 0)&&(i.bodies_omitted=!1),i}function RC(e,t){let n=Number(t||0);return(Array.isArray(e)?e:[]).filter(e=>Number(e&&e.version||0)>n)}function zC(e){return FC.has(String(e&&e.eventType||``).trim())}function BC(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}var VC=200,HC=class{#e=A(M({entries:[],total:0,limit:25,offset:0}));get auditLog(){return L(this.#e)}set auditLog(e){j(this.#e,e,!0)}#t=A(M({entries:[],total:0,limit:50,offset:0}));get usageLog(){return L(this.#t)}set usageLog(e){j(this.#t,e,!0)}#n=A(M({}));get auditRecords(){return L(this.#n)}set auditRecords(e){j(this.#n,e,!0)}#r=A(M([]));get auditRecordChanges(){return L(this.#r)}set auditRecordChanges(e){j(this.#r,e,!0)}auditRecordVersion=0;auditRecordPins=new Set;#i=A(``);get auditSearch(){return L(this.#i)}set auditSearch(e){j(this.#i,e,!0)}#a=A(``);get auditMethod(){return L(this.#a)}set auditMethod(e){j(this.#a,e,!0)}#o=A(``);get auditStatusCode(){return L(this.#o)}set auditStatusCode(e){j(this.#o,e,!0)}#s=A(``);get auditStream(){return L(this.#s)}set auditStream(e){j(this.#s,e,!0)}#c=A(Ca(`gomodel_audit_group_sessions`,`true`)!==`false`);get auditGroupSessions(){return L(this.#c)}set auditGroupSessions(e){j(this.#c,e,!0)}#l=A(M({}));get auditThreadChildren(){return L(this.#l)}set auditThreadChildren(e){j(this.#l,e,!0)}#u=A(``);get usageLogSearch(){return L(this.#u)}set usageLogSearch(e){j(this.#u,e,!0)}#d=A(``);get usageFilterModel(){return L(this.#d)}set usageFilterModel(e){j(this.#d,e,!0)}#f=A(``);get usageFilterProvider(){return L(this.#f)}set usageFilterProvider(e){j(this.#f,e,!0)}#p=A(``);get usageFilterLabel(){return L(this.#p)}set usageFilterLabel(e){j(this.#p,e,!0)}#m=A(``);get usageFilterUserPath(){return L(this.#m)}set usageFilterUserPath(e){j(this.#m,e,!0)}#h=A(!1);get usageLogHideCached(){return L(this.#h)}set usageLogHideCached(e){j(this.#h,e,!0)}#g=A(!1);get liveLogsStreaming(){return L(this.#g)}set liveLogsStreaming(e){j(this.#g,e,!0)}liveLogsLastSeq=0;liveLogsReconnectAttempts=0;liveLogsReconnectTimer=null;liveLogsController=null;skippedLiveUsageByRequestId=null;fetchUsage=null;fetchAuditLog=null;isAuditEntryExpanded=null;noteLiveTokenUsage=null;upsertAuditRecord(e,t=``){let n=IC(e);if(!n)return e;let r=LC(this.auditRecords[n],e);return this.auditRecords={...this.auditRecords,[n]:r},this.pruneAuditRecords(),this.auditRecordVersion++,this.auditRecordChanges=[...this.auditRecordChanges,{version:this.auditRecordVersion,key:n,eventType:t}].slice(-512),r}upsertAuditRecords(e,t=``){return(Array.isArray(e)?e:[]).map(e=>this.upsertAuditRecord(e,t))}auditRecord(e){let t=typeof e==`string`?String(e).trim():IC(e);return t&&this.auditRecords[t]||null}cacheAuditRecord(e,t){return this.upsertAuditRecord(e,t)}pinAuditRecords(e){this.auditRecordPins=new Set((Array.isArray(e)?e:[]).map(String))}pruneAuditRecords(){let e=Object.keys(this.auditRecords);if(e.length<=VC)return;let t={...this.auditRecords},n=e.length-VC;for(let r of e){if(n<=0)break;this.auditRecordPins.has(r)||(delete t[r],n--)}this.auditRecords=t}get page(){return Xo.page}get customStartDate(){return Uc.customStartDate}get customEndDate(){return Uc.customEndDate}get followsToday(){return Uc.followsToday}liveLogsEnabled(){return As.liveLogsVisible()}async startLiveLogs(){typeof fetch!=`function`||typeof ReadableStream>`u`||(await As.ensureLoaded(),this.liveLogsEnabled()&&(this.stopLiveLogs(),this.liveLogsController=typeof AbortController==`function`?new AbortController:null,this.readLiveLogsStream(this.liveLogsController)))}stopLiveLogs(){this.liveLogsStreaming=!1,this.liveLogsReconnectTimer&&=(clearTimeout(this.liveLogsReconnectTimer),null),this.liveLogsController&&typeof this.liveLogsController.abort==`function`&&this.liveLogsController.abort(),this.liveLogsController=null}ensureLiveLogs(){this.liveLogsController||this.liveLogsReconnectTimer||this.startLiveLogs()}async readLiveLogsStream(e){let t={};e&&(t.signal=e.signal);let n=MC(this.liveLogsLastSeq),r=J.generation;try{let i=await Cs(n,t);if(i.status===401){if(J.handleUnauthorized(r),r{this.liveLogsReconnectTimer=null,this.startLiveLogs()},t)}async fetchAuditEntryDetail(e){if(!this.auditEntryShouldFetchDetail(e))return;let t=String(e.id||``).trim();if(!t)return;e._detail_loading=!0;let n=e;try{let e=await Ts(`/admin/audit/detail?log_id=`+encodeURIComponent(t),{label:`audit detail`});if(e.stale||!e.ok)return;n=this.mergeLiveAuditEntry(e.data,`audit.detail`)||n}catch(e){console.error(`Failed to fetch audit detail:`,e)}finally{this.clearAuditDetailLoading(n)}}};Object.assign(HC.prototype,NC());var UC=new HC;if(typeof window<`u`){let e=!1;window.addEventListener(`pagehide`,()=>{e=!!UC.liveLogsController,UC.stopLiveLogs()}),window.addEventListener(`pageshow`,t=>{t.persisted&&e&&UC.ensureLiveLogs()})}var WC=null;jn(()=>{kn(()=>{let e=J.refreshTick;if(WC===null){WC=e;return}e!==WC&&(WC=e,Tr(()=>{UC.stopLiveLogs(),UC.startLiveLogs()}))})});function GC(){return{total_requests:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,uncached_input_tokens:0,cached_input_tokens:0,cache_write_input_tokens:0,total_input_cost:null,total_output_cost:null,total_cost:null,rewrite_tokens_saved:0,rewrite_cost_saved:null}}function KC(){return{entries:[],total:0,limit:50,offset:0}}function qC(e,t){let n=[[`model`,e&&e.model],[`provider`,e&&e.provider],[`label`,e&&e.label],[`user_path`,e&&e.user_path]],r=``;for(let[e,i]of n)!i||e===t||(r+=`&`+e+`=`+encodeURIComponent(i));return r}function JC({limit:e,offset:t,hideCached:n,search:r}){let i=`&limit=`+e+`&offset=`+t;return i+=`&cache_mode=`+(n?`uncached`:`all`),r&&(i+=`&search=`+encodeURIComponent(r)),i}function YC(e,t){let n=new Set(e||[]);return t&&n.add(t),[...n].sort()}function XC(e,t){let n=Number(t&&t.total_requests||0)-Number(e&&e.total_requests||0);return Number.isFinite(n)&&n>0?n:0}function ZC(e,t,n){let r=n?e:t,i=Number(r&&r.total_requests||0);return Number.isFinite(i)?i:0}function QC(e,t,n){let r=XC(e,t);return r<=0?``:n?_c(r)+` cached requests hidden`:_c(Number(e&&e.total_requests||0))+` to providers + `+_c(r)+` from cache`}function $C(e){let t=e||{};return t.total_input_cost===null||t.total_input_cost===void 0?``:vc(t.total_input_cost)+` input + `+vc(t.total_output_cost)+` output`}function ew(e){let t=Number(e&&e.rewrite_tokens_saved||0);return Number.isFinite(t)&&t>0?t:0}function tw(e){return ew(e)>0}function nw(e){let t=e||{};return t.rewrite_cost_saved===void 0?null:t.rewrite_cost_saved}function rw(){return`Estimated at 4 net characters removed per token`}function iw(e,t){return t===`costs`?vc(nw(e)):xc(ew(e))}function aw(e,t){let n=t===`costs`,r=n?Number(nw(e)):ew(e);if(!Number.isFinite(r)||r<=0)return null;let i=e&&(n?e.total_cost:e.total_input_tokens);if(i==null)return null;let a=Number(i);return!Number.isFinite(a)||a<0?null:r/(a+r)*100}function ow(e,t){let n=aw(e,t);return n===null?``:(n<.1?`<0.1`:n.toFixed(1))+`% less`}function sw(e,t){let n=ew(e);if(n<=0)return``;let r=[_c(n)+` estimated prompt token-transmissions removed across provider requests`,rw(),`Savings are summed per provider request; resent conversation history is counted again`],i=nw(e);i!=null&&(r.push(vc(i)+` estimated gross input cost avoided`),r.push(`Prompt-cache changes caused by rewriting are not included`));let a=ow(e,t);return a&&r.push(a+` than the same traffic without rewriting (`+(t===`costs`?`cost`:`tokens`)+`)`),r.join(` -`)}function cw(e){return String(e&&e.cost_source||``).trim()}function lw(e){let t=cw(e);return t===`openrouter_credits`||t===`xai_cost_in_usd_ticks`}function uw(e){switch(cw(e)){case`openrouter_credits`:return`Costs from OpenRouter USD-based credits.`;case`xai_cost_in_usd_ticks`:return`Costs from xAI usage.cost_in_usd_ticks.`;default:return``}}function dw(e){return String(e&&e.cache_type||``).trim().toLowerCase()}function fw(e){let t=dw(e);return t===`exact`||t===`semantic`}function pw(e){let t=dw(e);return t===`exact`?`Exact`:t===`semantic`?`Semantic`:`-`}function mw(e,t){let n=t?String(t):``;return fw(e)?n?`Saved by cache — not charged -`+n:`Saved by cache — not charged`:n}function hw(e){let t=Number(e&&e.cached_input_ratio);return!Number.isFinite(t)||t<=0?0:Math.min(1,t)}function gw(e){return Number(e&&e.cached_input_tokens||0)>0}function _w(e){return gw(e)?(hw(e)*100).toFixed(1)+`%`:``}function vw(e){if(!gw(e))return``;let t=Number(e.cached_input_tokens||0),n=Number(e.uncached_input_tokens||0),r=Number(e.cache_write_input_tokens||0),i=t+n+r,a=[_c(t)+` cached / `+_c(i)+` input tokens`];return r>0&&a.push(_c(r)+` cache write`),a.join(` -`)}function yw(e){let t=[];if(uw(e)&&(t.push(uw(e)),t.push(``)),t.push(`Input: `+vc(e.input_cost)),t.push(`Output: `+vc(e.output_cost)),e.raw_data){t.push(``);for(let[n,r]of Object.entries(e.raw_data)){let e=n.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase()),i=r&&typeof r==`object`?JSON.stringify(r):_c(r);t.push(e+`: `+i)}}return t.join(` -`)}function bw(e){return Array.isArray(e&&e.labels)?e.labels:[]}function xw(e,t,n){return(e||[]).length>0||t?!0:(n||[]).some(e=>bw(e).length>0)}function Sw(e){return e&&typeof e.total_tokens==`number`?e.total_tokens:(e&&e.input_tokens||0)+(e&&e.output_tokens||0)}function Cw(e,t){return t?e.total_cost||0:Sw(e)}function ww(e,t){return[...e||[]].sort((e,n)=>t?(n.total_cost||0)-(e.total_cost||0):Cw(n,t)-Cw(e,t))}function Tw(e){let t=Array.isArray(e)?e:[];if(t.length===0)return!1;if(t.length!==1)return!0;let n=String(t[0]&&t[0].user_path||``).trim();return n!==``&&n!==`/`}function Ew(e){return(e||`chart`)===`chart`||e===`stacked`}function Dw(e,t,n){let r=ww(e,n),i=e=>Number(e)||0,a=e=>n?Math.min(i(e.cached_input_cost),i(e.input_cost)):i(e.cached_input_tokens),o=e=>n?i(e.input_cost)-a(e):i(e.uncached_input_tokens)+i(e.cached_input_tokens)+i(e.cache_write_input_tokens)>0?i(e.uncached_input_tokens)+i(e.cache_write_input_tokens):i(e.input_tokens),s=e=>i(n?e.output_cost:e.output_tokens),c=e=>n?0:i(e.local_cached_input_tokens),l=e=>n?0:i(e.local_cached_output_tokens),u=r.slice(0,10),d=r.slice(10),f=u.map(t),p=u.map(o),m=u.map(s),h=u.map(a),g=u.map(c),_=u.map(l);if(d.length>0){f.push(`Other`);let e=e=>d.reduce((t,n)=>t+e(n),0);p.push(e(o)),m.push(e(s)),h.push(e(a)),g.push(e(c)),_.push(e(l))}return{labels:f,inputs:p,outputs:m,prompts:h,localIns:g,localOuts:_}}function Ow(e){return Math.max(200,e*32+72)}var kw=new class{#e=A(`tokens`);get usageMode(){return L(this.#e)}set usageMode(e){j(this.#e,e,!0)}get usageFilterModel(){return UC.usageFilterModel}set usageFilterModel(e){UC.usageFilterModel=e}get usageFilterProvider(){return UC.usageFilterProvider}set usageFilterProvider(e){UC.usageFilterProvider=e}get usageFilterLabel(){return UC.usageFilterLabel}set usageFilterLabel(e){UC.usageFilterLabel=e}get usageFilterUserPath(){return UC.usageFilterUserPath}set usageFilterUserPath(e){UC.usageFilterUserPath=e}#t=A(M({models:[],providers:[],labels:[]}));get usageFacetOptions(){return L(this.#t)}set usageFacetOptions(e){j(this.#t,e,!0)}#n=A(M(GC()));get usageSummary(){return L(this.#n)}set usageSummary(e){j(this.#n,e,!0)}#r=A(M(GC()));get usageSummaryAll(){return L(this.#r)}set usageSummaryAll(e){j(this.#r,e,!0)}#i=A(M([]));get modelUsage(){return L(this.#i)}set modelUsage(e){j(this.#i,e,!0)}#a=A(M([]));get userPathUsage(){return L(this.#a)}set userPathUsage(e){j(this.#a,e,!0)}#o=A(M([]));get labelUsage(){return L(this.#o)}set labelUsage(e){j(this.#o,e,!0)}get usageLog(){return UC.usageLog}set usageLog(e){UC.usageLog=e}get usageLogSearch(){return UC.usageLogSearch}set usageLogSearch(e){UC.usageLogSearch=e}get usageLogHideCached(){return UC.usageLogHideCached}set usageLogHideCached(e){UC.usageLogHideCached=e}#s=A(`chart`);get modelUsageView(){return L(this.#s)}set modelUsageView(e){j(this.#s,e,!0)}#c=A(`chart`);get userPathUsageView(){return L(this.#c)}set userPathUsageView(e){j(this.#c,e,!0)}#l=A(`chart`);get labelUsageView(){return L(this.#l)}set labelUsageView(e){j(this.#l,e,!0)}#u=A(!1);get summaryLoading(){return L(this.#u)}set summaryLoading(e){j(this.#u,e,!0)}#d=A(!1);get modelUsageLoading(){return L(this.#d)}set modelUsageLoading(e){j(this.#d,e,!0)}#f=A(!1);get userPathUsageLoading(){return L(this.#f)}set userPathUsageLoading(e){j(this.#f,e,!0)}#p=A(!1);get labelUsageLoading(){return L(this.#p)}set labelUsageLoading(e){j(this.#p,e,!0)}#m=A(!1);get usageLogLoading(){return L(this.#m)}set usageLogLoading(e){j(this.#m,e,!0)}#h={};#g(e){this.#h[e]&&this.#h[e].abort();let t=new AbortController;return this.#h[e]=t,t}#_(e,t){this.#h[e]===t&&(this.#h[e]=null)}filterQueryStr(e){return qC({model:this.usageFilterModel,provider:this.usageFilterProvider,label:this.usageFilterLabel,user_path:this.usageFilterUserPath},e)}onUsageFilterChanged(){this.fetchUsagePage()}toggleUsageLabelFilter(e){this.usageFilterLabel=this.usageFilterLabel===e?``:e,this.onUsageFilterChanged()}usageLabelChipTitle(e){return this.usageFilterLabel===e?`Clear label filter`:`Filter usage by "`+e+`"`}toggleUsageMode(e){this.usageMode=e,Xo.navigate(`usage`,e===`costs`?`costs`:null)}toggleUsageChartView(e,t){e===`model`&&(this.modelUsageView=t),e===`userPath`&&(this.userPathUsageView=t),e===`label`&&(this.labelUsageView=t)}usageFilterModelOptions(){return YC(this.usageFacetOptions.models,this.usageFilterModel)}usageFilterProviderOptions(){return YC(this.usageFacetOptions.providers,this.usageFilterProvider)}usageFilterLabelOptions(){return YC(this.usageFacetOptions.labels,this.usageFilterLabel)}async fetchUsagePage(){await As.ensureLoaded();let e=[this.fetchUsagePageSummary(),this.fetchUsageFacetOptions(),this.fetchModelUsage(),this.fetchUserPathUsage(),this.fetchLabelUsage(),this.fetchUsageLog(!0)];Yc.cacheAnalyticsEnabled()&&e.push(Yc.fetchCacheOverview(this.filterQueryStr())),await Promise.all(e)}async fetchUsagePageSummary(){let e=this.#g(`summary`);this.summaryLoading=!0;try{let t=Uc.queryStr()+this.filterQueryStr(),[n,r]=await Promise.all([Ts(`/admin/usage/summary?`+t+`&cache_mode=uncached`,{label:`usage page summary`,signal:e.signal}),Ts(`/admin/usage/summary?`+t+`&cache_mode=all`,{label:`usage page summary (all)`,signal:e.signal})]);if(n.stale||r.stale||e.signal.aborted)return;if(!n.ok||!r.ok){this.usageSummary=GC(),this.usageSummaryAll=GC();return}this.usageSummary=n.data&&typeof n.data==`object`?n.data:GC(),this.usageSummaryAll=r.data&&typeof r.data==`object`?r.data:GC()}catch(e){if(Ds(e))return;console.error(`Failed to fetch usage page summary:`,e),this.usageSummary=GC(),this.usageSummaryAll=GC()}finally{this.#_(`summary`,e),this.#h.summary===null&&(this.summaryLoading=!1)}}async fetchUsageFacetOptions(){let e=this.#g(`facets`);try{let t=async(t,n)=>{let r=await Ts(t+`?`+Uc.queryStr()+this.filterQueryStr(n),{label:`usage facet options`,signal:e.signal});return r.stale?null:r.ok&&Array.isArray(r.data)?r.data:[]},n=t(`/admin/usage/models`,`model`),r=!this.usageFilterModel&&!this.usageFilterProvider,[i,a,o]=await Promise.all([n,r?n:t(`/admin/usage/models`,`provider`),t(`/admin/usage/labels`,`label`)]);if(e.signal.aborted||i===null||a===null||o===null)return;this.usageFacetOptions={models:i.map(e=>e&&e.model).filter(Boolean),providers:a.map(e=>Dc(e)).filter(Boolean),labels:o.map(e=>e&&e.label).filter(Boolean)}}catch(e){if(Ds(e))return;console.error(`Failed to fetch usage facet options:`,e),this.usageFacetOptions={models:[],providers:[],labels:[]}}finally{this.#_(`facets`,e)}}async#v(e,t,n,r,i){let a=this.#g(e);i(!0);try{let e=await Ts(t+`?`+Uc.queryStr()+this.filterQueryStr(),{label:n,signal:a.signal});if(e.stale||a.signal.aborted)return;if(!e.ok){r([]);return}r(Array.isArray(e.data)?e.data:[])}catch(e){if(Ds(e))return;console.error(`Failed to fetch `+n+`:`,e),r([])}finally{this.#_(e,a),this.#h[e]===null&&i(!1)}}fetchModelUsage(){return this.#v(`modelUsage`,`/admin/usage/models`,`usage models`,e=>this.modelUsage=e,e=>this.modelUsageLoading=e)}fetchUserPathUsage(){return this.#v(`userPathUsage`,`/admin/usage/user-paths`,`usage user paths`,e=>this.userPathUsage=e,e=>this.userPathUsageLoading=e)}fetchLabelUsage(){return this.#v(`labelUsage`,`/admin/usage/labels`,`usage labels`,e=>this.labelUsage=e,e=>this.labelUsageLoading=e)}async fetchUsageLog(e){let t=this.#g(`usageLog`);this.usageLogLoading=!0;try{e&&(this.usageLog.offset=0);let n=Uc.queryStr()+this.filterQueryStr();n+=JC({limit:this.usageLog.limit,offset:this.usageLog.offset,hideCached:this.usageLogHideCached,search:this.usageLogSearch});let r=await Ts(`/admin/usage/log?`+n,{label:`usage log`,signal:t.signal});if(r.stale||t.signal.aborted)return;if(!r.ok){this.usageLog=KC();return}let i=r.data&&typeof r.data==`object`?r.data:KC();i.entries||=[],this.usageLog=i}catch(e){if(Ds(e))return;console.error(`Failed to fetch usage log:`,e),this.usageLog=KC()}finally{this.#_(`usageLog`,t),this.#h.usageLog===null&&(this.usageLogLoading=!1)}}usageLogNextPage(){this.usageLog.offset+this.usageLog.limit0&&(this.usageLog.offset=Math.max(0,this.usageLog.offset-this.usageLog.limit),this.fetchUsageLog(!1))}};UC.fetchUsage=()=>{Xo.page===`usage`&&kw.fetchUsagePage()};var Aw=z(`
`);function jw(e,t){D(t,!0);let n=K(t,`value`,15,``),r=K(t,`placeholder`,3,``),i=K(t,`label`,3,``),a=K(t,`id`,3,void 0),o=K(t,`oninput`,3,void 0),s=K(t,`class`,3,``);var c=Aw(),l=N(c);q(l,{get icon(){return yo},class:`filter-input-icon`});var u=F(l,2);ta(u),E(c),I(()=>{W(c,1,Pi([`filter-input-wrap`,s()]),`svelte-30xz1k`),G(u,`id`,a()),G(u,`placeholder`,r()),G(u,`aria-label`,i())}),R(`input`,u,function(...e){o()?.apply(this,e)}),ua(u,n),B(e,c),O()}Vr([`input`]);function Mw(e,t=300){let n=null,r=(...r)=>{clearTimeout(n),n=setTimeout(()=>{n=null,e(...r)},t)};return r.cancel=()=>{clearTimeout(n),n=null},r}var Nw=z(``),Pw=z(``),Fw=z(`
`);function Iw(e,t){D(t,!0);let n=Mw(()=>kw.onUsageFilterChanged());kn(()=>n.cancel);var r=Fw(),i=N(r),a=N(i);a.value=a.__value=``,U(F(a),16,()=>kw.usageFilterModelOptions(),e=>e,(e,t)=>{var n=Nw(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(i);var o=F(i,2),s=N(o);s.value=s.__value=``,U(F(s),16,()=>kw.usageFilterProviderOptions(),e=>e,(e,t)=>{var n=Nw(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(o);var c=F(o,2),l=e=>{var t=Pw(),n=N(t);n.value=n.__value=``,U(F(n),16,()=>kw.usageFilterLabelOptions(),e=>e,(e,t)=>{var n=Nw(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(t),R(`change`,t,()=>kw.onUsageFilterChanged()),Wi(t,()=>kw.usageFilterLabel,e=>kw.usageFilterLabel=e),B(e,t)},u=k(()=>kw.usageFilterLabelOptions().length>0);H(c,e=>{L(u)&&e(l)}),jw(F(c,2),{class:`usage-page-filters-user-path`,placeholder:`User path /team/alpha`,label:`Filter by user path`,get oninput(){return n},get value(){return kw.usageFilterUserPath},set value(e){kw.usageFilterUserPath=e}}),E(r),R(`change`,i,()=>kw.onUsageFilterChanged()),Wi(i,()=>kw.usageFilterModel,e=>kw.usageFilterModel=e),R(`change`,o,()=>kw.onUsageFilterChanged()),Wi(o,()=>kw.usageFilterProvider,e=>kw.usageFilterProvider=e),B(e,r),O()}Vr([`change`]);var Lw=z(`
Cache Saved
Cache Hits
`,1);function Rw(e,t){D(t,!0);var n=Zr(),r=P(n),i=e=>{var t=Lw(),n=P(t),r=F(N(n),2),i=N(r,!0);E(r),E(n);var a=F(n,2),o=F(N(a),2),s=N(o,!0);E(o),E(a),I((e,t)=>{V(i,e),V(s,t)},[()=>vc(Yc.cacheOverview.summary.total_saved_cost),()=>_c(Yc.cacheOverview.summary.total_hits)]),B(e,t)},a=k(()=>Yc.cacheAnalyticsEnabled());H(r,e=>{L(a)&&e(i)}),B(e,n),O()}var zw=z(` `),Bw=z(`
Pro Saved
`),Vw=z(`
Total Requests
Estimated Cost
`);function Hw(e,t){D(t,!0);let n=k(()=>tw(kw.usageSummary)),r=k(()=>iw(kw.usageSummary,kw.usageMode)),i=k(()=>ow(kw.usageSummary,kw.usageMode));var a=Vw(),o=N(a),s=F(N(o),2),c=N(s),l=e=>{NS(e,{size:18,label:`Loading usage summary`})},u=e=>{var t=Xr();I(e=>V(t,e),[()=>_c(ZC(kw.usageSummary,kw.usageSummaryAll,kw.usageLogHideCached))]),B(e,t)};H(c,e=>{kw.summaryLoading?e(l):e(u,-1)}),E(s),E(o);var d=F(o,2),f=F(N(d),2),p=N(f),m=e=>{NS(e,{size:18,label:`Loading usage summary`})},h=e=>{var t=Xr();I(e=>V(t,e),[()=>vc(kw.usageSummary.total_cost)]),B(e,t)};H(p,e=>{kw.summaryLoading?e(m):e(h,-1)}),E(f),E(d);var g=F(d,2),_=e=>{var t=Bw(),n=F(N(t),2),a=N(n),o=N(a,!0);E(a);var s=F(a,2),c=e=>{var t=zw(),n=N(t,!0);E(t),I(()=>V(n,L(i))),B(e,t)};H(s,e=>{L(i)&&e(c)}),E(n),E(t),I(e=>{G(n,`title`,e),V(o,L(r))},[()=>sw(kw.usageSummary,kw.usageMode)]),B(e,t)};H(g,e=>{L(n)&&e(_)}),Rw(F(g,2),{}),E(a),I((e,t)=>{G(s,`title`,e),G(f,`title`,t)},[()=>QC(kw.usageSummary,kw.usageSummaryAll,kw.usageLogHideCached),()=>$C(kw.usageSummary)]),B(e,a),O()}function Uw(e,t,n,r){let{stacked:i=!1,costs:a=!1,resolve:o=e=>e}=r||{},s=e=>a?`$`+Math.abs(e).toFixed(2):xc(Math.abs(e)),c=e=>a?`$`+Math.abs(e).toFixed(4):Math.abs(e).toLocaleString(),l=e=>e.map(e=>i?Math.abs(e):-Math.abs(e)),u=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderColor:`transparent`,borderWidth:0,borderRadius:4,maxBarThickness:22}),d=e=>(e||[]).some(e=>Math.abs(e)>0),f=[u(a?`Input Cost`:`Input Tokens`,l(n.inputs),o(`var(--token-input)`)),u(a?`Output Cost`:`Output Tokens`,n.outputs,o(`var(--token-output)`))];return d(n.prompts)&&f.push(u(a?`Prompt Cached Cost`:`Prompt Cached`,l(n.prompts),o(`var(--token-prompt)`))),!a&&d(n.localIns)&&f.push(u(`Locally Cached (Input)`,l(n.localIns),o(`var(--token-local)`))),!a&&d(n.localOuts)&&f.push(u(`Locally Cached (Output)`,n.localOuts,o(`var(--token-local)`))),{type:`bar`,data:{labels:t,datasets:f},options:{indexAxis:`y`,responsive:!0,maintainAspectRatio:!1,animation:{duration:0},layout:{padding:{top:8}},scales:{x:{stacked:!0,beginAtZero:!0,grid:i?{color:e.grid}:{color:t=>t.tick&&t.tick.value===0?e.text:e.grid},border:{display:!1},ticks:{color:e.text,font:Jy(),callback:e=>s(e)}},y:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:Jy(),autoSkip:!1}}},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:Yy(e,{label:e=>e.dataset.label+`: `+c(e.parsed.x),footer:e=>{let t=0;return e.forEach(e=>{t+=Math.abs(Number(e.parsed.x))||0}),`Total: `+c(t)}})}}}}var Ww=z(`
`),Gw=z(`

`),Kw=z(`

`,1),qw=z(`
`),Jw=z(`Model Provider`,1),Yw=z(`User Path`),Xw=z(`Label Requests`,1),Zw=z(` `,1),Qw=z(` `),$w=z(` `,1),eT=z(` `),tT=z(`
Input TokensOutput TokensPrompt CachedLocal CachedTotal TokensInput CostOutput CostTotal Cost
`),nT=z(`
`),rT=z(`
`);function iT(e,t){D(t,!0);let n=e=>{var n=Ww(),r=N(n);let a;var o=F(r,2);let s;var l=F(o,2);let u;E(n),I(()=>{G(n,`aria-label`,L(i).group),a=W(r,1,`chart-view-btn svelte-1kee4g8`,null,a,{active:L(c)===`chart`}),G(r,`aria-pressed`,L(c)===`chart`),G(r,`aria-label`,`Show ${L(i).noun??``} chart`),s=W(o,1,`chart-view-btn svelte-1kee4g8`,null,s,{active:L(c)===`stacked`}),G(o,`aria-pressed`,L(c)===`stacked`),G(o,`aria-label`,`Show ${L(i).noun??``} stacked chart`),u=W(l,1,`chart-view-btn svelte-1kee4g8`,null,u,{active:L(c)===`table`}),G(l,`aria-pressed`,L(c)===`table`),G(l,`aria-label`,`Show ${L(i).noun??``} table`)}),R(`click`,r,()=>kw.toggleUsageChartView(t.kind,`chart`)),R(`click`,o,()=>kw.toggleUsageChartView(t.kind,`stacked`)),R(`click`,l,()=>kw.toggleUsageChartView(t.kind,`table`)),B(e,n)},r={model:{group:`Model usage view`,noun:`model usage`,tokensTitle:`Token Usage by Model`,costsTitle:`Cost by Model`},userPath:{group:`User path usage view`,noun:`user path usage`,tokensTitle:`Usage by User Path`,costsTitle:`Cost by User Path`},label:{group:`Label usage view`,noun:`label usage`,tokensTitle:`Usage by Label`,costsTitle:`Cost by Label`}},i=k(()=>r[t.kind]),a=k(()=>t.kind===`model`?e=>kc(e):t.kind===`userPath`?e=>e.user_path||`/`:e=>e.label);function o(e){return t.kind===`model`?(e.provider_name||e.provider||`-`)+`/`+e.model:t.kind===`userPath`?e.user_path||`/`:e.label}let s=k(()=>t.kind===`model`?kw.modelUsage:t.kind===`userPath`?kw.userPathUsage:kw.labelUsage),c=k(()=>t.kind===`model`?kw.modelUsageView:t.kind===`userPath`?kw.userPathUsageView:kw.labelUsageView),l=k(()=>t.kind===`model`?kw.modelUsageLoading:t.kind===`userPath`?kw.userPathUsageLoading:kw.labelUsageLoading),u=k(()=>kw.usageMode===`costs`),d=k(()=>t.kind===`userPath`?Tw(L(s)):L(s).length>0),f=k(()=>L(u)?L(i).costsTitle:L(i).tokensTitle),p=k(()=>Dw(L(s),L(a),L(u))),m=k(()=>ww(L(s),L(u)));function h(){return Ew(L(c))?Uw(qy(),L(p).labels,L(p),{stacked:L(c)===`stacked`,costs:L(u),resolve:Xy}):null}var g=Zr(),_=P(g),v=e=>{var r=nT(),a=N(r),s=N(a),u=e=>{iC(e,{copyId:`label-usage-help-copy`,label:`label usage help`,text:`One request can have multiple labels. Such a request counts once under each of its labels, so label rows can overlap and add up to more than the period totals.`,title:e=>{var t=Gw(),n=N(t,!0);E(t),I(()=>V(n,L(f))),B(e,t)},extra:e=>{var t=Zr(),n=P(t),r=e=>{NS(e,{size:14,get label(){return`Loading ${L(i).noun??``}`}})};H(n,e=>{L(l)&&e(r)}),B(e,t)},$$slots:{title:!0,extra:!0}})},d=e=>{var t=Kw(),n=P(t),r=N(n,!0);E(n);var a=F(n,2),o=e=>{NS(e,{size:14,get label(){return`Loading ${L(i).noun??``}`}})};H(a,e=>{L(l)&&e(o)}),I(()=>V(r,L(f))),B(e,t)};H(s,e=>{t.kind===`label`?e(u):e(d,-1)});var g=F(s,2);n(g),E(a);var _=F(a,2),v=e=>{var t=qw();let n;Hy(N(t),{build:h}),E(t),I(e=>n=Vi(t,``,n,e),[()=>({height:`${Ow(L(p).labels.length)??``}px`})]),B(e,t)},y=k(()=>Ew(L(c))),b=e=>{var n=tT(),r=N(n),i=N(r),a=N(i),s=N(a),c=e=>{var t=Jw();He(2),B(e,t)},l=e=>{B(e,Yw())},u=e=>{var t=Xw();He(2),B(e,t)};H(s,e=>{t.kind===`model`?e(c):t.kind===`userPath`?e(l,1):e(u,-1)}),He(8),E(a),E(i);var d=F(i);U(d,21,()=>L(m),e=>o(e),(e,n)=>{var r=eT(),i=N(r),a=e=>{var t=Zw(),r=P(t),i=N(r,!0);E(r);var a=F(r,2),o=N(a),s=N(o,!0);E(o),E(a),I(e=>{V(i,L(n).model||`-`),V(s,e)},[()=>Dc(L(n))||`-`]),B(e,t)},o=e=>{var t=Qw(),r=N(t,!0);E(t),I(()=>V(r,L(n).user_path||`/`)),B(e,t)},s=e=>{var t=$w(),r=P(t),i=N(r);let a;var o=N(i,!0);E(i),E(r);var s=F(r,2),c=N(s,!0);E(s),I((e,t,r)=>{a=W(i,1,`usage-label-chip`,null,a,{active:kw.usageFilterLabel===L(n).label}),Vi(i,`--label-color: ${e??``}`),G(i,`title`,t),V(o,L(n).label),V(c,r)},[()=>$y(L(n).label),()=>kw.usageLabelChipTitle(L(n).label),()=>_c(L(n).requests)]),R(`click`,i,()=>kw.toggleUsageLabelFilter(L(n).label)),B(e,t)};H(i,e=>{t.kind===`model`?e(a):t.kind===`userPath`?e(o,1):e(s,-1)});var c=F(i),l=N(c,!0);E(c);var u=F(c),d=N(u,!0);E(u);var f=F(u),p=N(f,!0);E(f);var m=F(f),h=N(m,!0);E(m);var g=F(m),_=N(g,!0);E(g);var v=F(g),y=N(v,!0);E(v);var b=F(v),x=N(b,!0);E(b);var S=F(b),C=N(S,!0);E(S),E(r),I((e,t,n,r,i,a,o,s,c,u,g)=>{V(l,e),V(d,t),G(f,`title`,n),V(p,r),G(m,`title`,`${i??``} input + ${a??``} output`),V(h,o),V(_,s),V(y,c),V(x,u),V(C,g)},[()=>_c(L(n).input_tokens),()=>_c(L(n).output_tokens),()=>L(n).cached_input_cost==null?``:`~`+vc(L(n).cached_input_cost)+` at current cached-input pricing`,()=>_c(L(n).cached_input_tokens||0),()=>_c(L(n).local_cached_input_tokens||0),()=>_c(L(n).local_cached_output_tokens||0),()=>_c((L(n).local_cached_input_tokens||0)+(L(n).local_cached_output_tokens||0)),()=>_c(Sw(L(n))),()=>vc(L(n).input_cost),()=>vc(L(n).output_cost),()=>vc(L(n).total_cost)]),B(e,r)}),E(d),E(r),E(n),B(e,n)};H(_,e=>{L(y)?e(v):e(b,-1)}),E(r),B(e,r)},y=e=>{var t=rT();NS(N(t),{size:20,get label(){return`Loading ${L(i).noun??``}`}}),E(t),B(e,t)};H(_,e=>{L(d)?e(v):L(l)&&e(y,1)}),B(e,g),O()}Vr([`click`]);var aT=z(``);function oT(e,t){D(t,!0);let n=K(t,`total`,3,0),r=K(t,`offset`,3,0),i=K(t,`limit`,3,25);var a=Zr(),o=P(a),s=e=>{var a=aT(),o=N(a),s=N(o);E(o);var c=F(o,2),l=N(c),u=F(l,2);E(c),E(a),I(e=>{V(s,`Showing ${r()+1}-${e??``} of ${n()??``}`),l.disabled=r()===0,u.disabled=r()+i()>=n()},[()=>Math.min(r()+i(),n())]),R(`click`,l,()=>t.onprev?.()),R(`click`,u,()=>t.onnext?.()),B(e,a)};H(o,e=>{n()>0&&e(s)}),B(e,a),O()}Vr([`click`]);var sT=(e,t=f)=>{var n=Zr(),r=P(n),i=e=>{var n=lT();U(n,20,()=>bw(t()),e=>e,(e,t)=>{var n=cT();let r;var i=N(n,!0);E(n),I((e,a)=>{r=W(n,1,`usage-label-chip`,null,r,{active:kw.usageFilterLabel===t}),Vi(n,`--label-color: ${e??``}`),G(n,`title`,a),V(i,t)},[()=>$y(t),()=>kw.usageLabelChipTitle(t)]),R(`click`,n,()=>kw.toggleUsageLabelFilter(t)),B(e,n)}),E(n),B(e,n)},a=k(()=>bw(t()).length>0),o=e=>{B(e,uT())};H(r,e=>{L(a)?e(i):e(o,-1)}),B(e,n)},cT=z(``),lT=z(`
`),uT=z(`-`),dT=z(`Labels`),fT=z(`Cost`),pT=z(``),mT=z(` `),hT=z(``),gT=z(` `),_T=z(` `),vT=z(`
TimestampProviderModelUser PathCacheProvider Cache
`),yT=z(`
`),bT=z(`
`),xT=z(`

Request Log

`);function ST(e,t){D(t,!0);let n=k(()=>kw.usageMode===`costs`),r=k(()=>xw(kw.labelUsage,kw.usageFilterLabel,kw.usageLog.entries)),i=Mw(()=>kw.fetchUsageLog(!0));kn(()=>i.cancel);var a=xT(),o=F(N(a),2),s=N(o);jw(N(s),{placeholder:`Search by request ID, model, provider...`,label:`Search by request ID, model, provider`,get oninput(){return i},get value(){return kw.usageLogSearch},set value(e){kw.usageLogSearch=e}}),E(s);var c=F(s,2),l=N(c),u=N(l);ta(u),He(2),E(l),E(c),E(o);var d=F(o,2),f=e=>{var t=vT(),i=N(t),a=N(i),o=N(a),s=F(N(o),4),c=e=>{B(e,dT())};H(s,e=>{L(r)&&e(c)});var l=F(s,3),u=N(l,!0);E(l);var d=F(l),f=N(d,!0);E(d);var p=F(d),m=N(p,!0);E(p);var h=F(p),g=e=>{B(e,fT())};H(h,e=>{L(n)||e(g)}),E(o),E(a);var _=F(a);U(_,21,()=>kw.usageLog.entries,e=>e.id,(e,t)=>{var i=_T();let a;var o=N(i),s=N(o,!0);E(o);var c=F(o),l=N(c),u=N(l,!0);E(l),E(c);var d=F(c),f=N(d,!0);E(d);var p=F(d),m=N(p,!0);E(p);var h=F(p),g=e=>{var n=pT();sT(N(n),()=>L(t)),E(n),B(e,n)};H(h,e=>{L(r)&&e(g)});var _=F(h),v=N(_,!0);E(_);var y=F(_),b=N(y),x=e=>{var n=mT(),r=N(n,!0);E(n),I(e=>V(r,e),[()=>_w(L(t))]),B(e,n)},S=k(()=>gw(L(t))),C=e=>{B(e,uT())};H(b,e=>{L(S)?e(x):e(C,-1)}),E(y);var w=F(y),T=N(w,!0);E(w);var ee=F(w),te=N(ee,!0);E(ee);var ne=F(ee),re=N(ne),ie=N(re,!0);E(re);var ae=F(re,2),oe=e=>{{let n=k(()=>uw(L(t)));q(e,{get icon(){return qa},class:`cost-source-icon`,get title(){return L(n)}})}},se=k(()=>L(n)&&lw(L(t)));H(ae,e=>{L(se)&&e(oe)});var ce=F(ae,2),le=e=>{q(e,{get icon(){return Xa},class:`cache-savings-icon`})},ue=k(()=>L(n)&&fw(L(t)));H(ce,e=>{L(ue)&&e(le)});var de=F(ce,2),fe=e=>{var n=hT();I(()=>G(n,`title`,L(t).costs_calculation_caveat)),B(e,n)};H(de,e=>{L(n)&&L(t).costs_calculation_caveat&&e(fe)}),E(ne);var pe=F(ne),me=e=>{var n=gT(),r=N(n),i=N(r,!0);E(r);var a=F(r,2),o=e=>{{let n=k(()=>uw(L(t)));q(e,{get icon(){return qa},class:`cost-source-icon`,get title(){return L(n)}})}},s=k(()=>lw(L(t)));H(a,e=>{L(s)&&e(o)});var c=F(a,2),l=e=>{q(e,{get icon(){return Xa},class:`cache-savings-icon`})},u=k(()=>fw(L(t)));H(c,e=>{L(u)&&e(l)});var d=F(c,2),f=e=>{var n=hT();I(()=>G(n,`title`,L(t).costs_calculation_caveat)),B(e,n)};H(d,e=>{L(t).costs_calculation_caveat&&e(f)}),E(n),I((e,t)=>{G(n,`title`,e),V(i,t)},[()=>mw(L(t),yw(L(t))),()=>vc(L(t).total_cost)]),B(e,n)};H(pe,e=>{L(n)||e(me)}),E(i),I((e,n,r,c,l,d,p,h,g,_,b,x,S)=>{a=W(i,1,`svelte-hg4ill`,null,a,e),G(o,`title`,n),V(s,r),V(u,c),V(f,L(t).model),V(m,L(t).user_path||`-`),V(v,l),G(y,`title`,d),G(w,`title`,p),V(T,h),G(ee,`title`,g),V(te,_),G(ne,`title`,b),G(re,`title`,x),V(ie,S)},[()=>({"usage-log-row-cached":fw(L(t))}),()=>Tc(L(t).timestamp),()=>ys.formatTimestamp(L(t).timestamp),()=>Dc(L(t))||`-`,()=>pw(L(t)),()=>vw(L(t)),()=>L(n)?_c(L(t).input_tokens)+` tokens`:``,()=>L(n)?vc(L(t).input_cost):_c(L(t).input_tokens),()=>L(n)?_c(L(t).output_tokens)+` tokens`:``,()=>L(n)?vc(L(t).output_cost):_c(L(t).output_tokens),()=>L(n)?mw(L(t),``):``,()=>L(n)?mw(L(t),_c(L(t).total_tokens)+` tokens -`+yw(L(t))):``,()=>L(n)?vc(L(t).total_cost):_c(L(t).total_tokens)]),B(e,i)}),E(_),E(i),E(t),I(()=>{V(u,L(n)?`Input Cost`:`Input`),V(f,L(n)?`Output Cost`:`Output`),V(m,L(n)?`Total Cost`:`Total`)}),B(e,t)},p=e=>{var t=yT();NS(N(t),{size:20,label:`Loading request log`}),E(t),B(e,t)},m=e=>{var t=bT();IS(N(t),{}),E(t),B(e,t)};H(d,e=>{kw.usageLog.entries.length>0?e(f):kw.usageLogLoading?e(p,1):e(m,-1)}),oT(F(d,2),{get total(){return kw.usageLog.total},get offset(){return kw.usageLog.offset},get limit(){return kw.usageLog.limit},onprev:()=>kw.usageLogPrevPage(),onnext:()=>kw.usageLogNextPage()}),E(a),R(`change`,u,()=>kw.fetchUsageLog(!0)),da(u,()=>kw.usageLogHideCached,e=>kw.usageLogHideCached=e),B(e,a),O()}Vr([`click`,`change`]);var CT=z(`
`);function wT(e,t){D(t,!0);let n=`usage`;kn(()=>{J.refreshTick,Xo.page===n&&(kw.fetchUsagePage(),UC.ensureLiveLogs())}),kn(()=>{Xo.page===n&&(kw.usageMode=Xo.sub===`costs`?`costs`:`tokens`)});var r=CT(),i=F(N(r),2),a=N(i);Gy(a,{ariaLabel:`Usage mode`,options:[{value:`tokens`,label:`Tokens`},{value:`costs`,label:`Costs`}],get value(){return kw.usageMode},onchange:e=>kw.toggleUsageMode(e)}),fl(F(a,2),{onchange:()=>kw.fetchUsagePage()}),E(i);var o=F(i,2);Iw(o,{});var s=F(o,2);Hw(s,{});var c=F(s,2),l=N(c);iT(l,{kind:`model`});var u=F(l,2);iT(u,{kind:`userPath`}),iT(F(u,2),{kind:`label`}),E(c),ST(F(c,2),{}),E(r),B(e,r),O()}var TT=z(`
`);function ET(e,t){let n=K(t,`label`,3,`Loading...`),r=K(t,`class`,3,``);var i=TT(),a=F(N(i),2),o=N(a,!0);E(a),E(i),I(()=>{W(i,1,Pi([`loading-state`,r()]),`svelte-hzxv1d`),V(o,n())}),B(e,i)}var DT=z(``);function OT(e,t){let n=K(t,`label`,3,``),r=K(t,`class`,3,``),i=K(t,`disabled`,3,!1);var a=DT();hi(N(a),()=>t.children??f),E(a),I(()=>{W(a,1,Pi([`table-action-btn`,r()])),G(a,`aria-label`,n()),G(a,`title`,n()),a.disabled=i()}),R(`click`,a,function(...e){t.onclick?.apply(this,e)}),B(e,a)}Vr([`click`]);async function kT(e,{label:t,errorFallback:n=`Unable to load ${t}.`,unavailableStatuses:r=[503],normalize:i=e=>Array.isArray(e)?e:[],options:a}){let o;try{o=await Ts(e,{...a||{},label:t})}catch(e){return Ds(e)||console.error(`Failed to fetch ${t}:`,e),{status:`error`,items:[],error:n,result:null}}return o.stale?{status:`stale`,items:[],error:``,result:o}:r.includes(o.status)?{status:`unavailable`,items:[],error:``,result:o}:o.ok?{status:`ok`,items:i(o.data),error:``,result:o}:{status:`error`,items:[],error:o.status===401?``:bs(o.data,n),result:o}}async function AT(e,t,n,{label:r,errorFallback:i=`Unable to ${r}.`,unavailableStatuses:a=[503],unavailableMessage:o=`This feature is unavailable on the gateway.`,options:s}){let c;try{c=await Es(e,t,n,{...s||{},label:r})}catch(e){return Ds(e)||console.error(`Failed to ${r}:`,e),{status:`error`,error:i,result:null}}return c.stale?{status:`stale`,error:``,result:c}:a.includes(c.status)?{status:`unavailable`,error:o,result:c}:c.ok?{status:`ok`,error:``,result:c}:{status:`error`,error:c.status===401?`Authentication required.`:bs(c.data,i),result:c}}function jT(){return{scope:`user_path`,subject:`/`,period:`daily`,period_seconds:86400,amount:``,source:`manual`}}function MT(e){let t={user_path:{label:`User path`,chip:`user path`,fieldLabel:`User Path`,placeholder:`/team/alpha`},label:{label:`Label`,chip:`label`,fieldLabel:`Label`,placeholder:`Mobile-App-iOS`}};return t[e]||t.user_path}function NT(){return[`user_path`,`label`].map(e=>({value:e,label:MT(e).label}))}function PT(e){return String(e&&e.scope||``).trim()||`user_path`}function FT(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function IT(e){return MT(PT(e)).chip}function LT(e){return PT(e)===`label`?`budget-label`:`budget-user-path`}function RT(e){return MT(String(e&&e.scope||``)).fieldLabel}function zT(e){return MT(String(e&&e.scope||``)).placeholder}function BT(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function VT(){return[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`},{value:`custom`,label:`Custom seconds`}]}function HT(e){switch(String(e||``).trim().toLowerCase()){case`hourly`:return 3600;case`daily`:return 86400;case`weekly`:return 604800;case`monthly`:return 2592e3;default:return 0}}function UT(e){switch(Number(e||0)){case 3600:return`hourly`;case 86400:return`daily`;case 604800:return`weekly`;case 2592e3:return`monthly`;default:return`custom`}}function WT(e){return PT(e)+`:`+FT(e)+`:`+String(e&&e.period_seconds||``)}function GT(e,t){if(!t||!Array.isArray(e))return null;let n=WT(t);return e.find(e=>WT(e)===n)||null}function KT(e){let t=String(e||``).trim();if(!t)return`User path is required.`;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return`User path cannot contain "." or ".." segments.`;if(t.includes(`:`))return`User path cannot contain ":" segments.`}}return``}function qT(e){if(KT(e))return``;let t=String(e||``).trim(),n=(t.startsWith(`/`)?t:`/`+t).split(`/`),r=[];for(let e of n){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function JT(e){return`/`+String(e||``).trimStart().replace(/^\/+/,``)}function YT(e){return Array.isArray(e)?e:e&&Array.isArray(e.budgets)?e.budgets:[]}function XT(e){let t=Number(e&&e.period_seconds||0);return[FT(e),IT(e),pE(e),UT(t),t?String(t)+`s`:``,t?String(t)+` seconds`:``].join(` `).toLowerCase()}var ZT={user_path:0,label:1};function QT(e,t){let n=Array.isArray(e)?e.slice():[],r=String(t||`subject`);return n.sort((e,t)=>{let n=(ZT[PT(e)]||0)-(ZT[PT(t)]||0),i=FT(e).localeCompare(FT(t)),a=Number(t&&t.period_seconds||0)-Number(e&&e.period_seconds||0);return r===`period`?a||n||i:n||i||a}),n}function $T(e,t,n){let r=Array.isArray(e)?e:[],i=String(t||``).trim().toLowerCase();return QT(i?r.filter(e=>XT(e).includes(i)):r.slice(),n)}function eE(e){let t=e||{},n=PT(t),r=String(t.subject||``).trim();if(n===`user_path`){let e=KT(r);if(e)return{payload:null,error:e}}else if(!r)return{payload:null,error:`Label is required.`};let i=Number(t.amount);if(!Number.isFinite(i)||i<=0)return{payload:null,error:`Amount must be greater than 0.`};let a=String(t.period||``).trim(),o=HT(a);return a===`custom`&&(o=Number(t.period_seconds)),!Number.isFinite(o)||o<=0?{payload:null,error:`Period seconds must be greater than 0.`}:{payload:{scope:n,subject:n===`user_path`?qT(r):r,period_seconds:Math.trunc(o),amount:i,source:String(t.source||`manual`).trim()||`manual`},error:``}}function tE(e){return{scope:PT(e),subject:FT(e),budget_key:{period_seconds:e.period_seconds},amount:e.amount}}function nE(e){return{scope:PT(e),subject:FT(e),budget_key:{period_seconds:e.period_seconds}}}function rE(e){return{scope:PT(e),subject:FT(e),period_seconds:e.period_seconds}}function iE(e){return vc(e)}function aE(e,t){let n=e||{},r=t||{};return`A budget for "`+((FT(n)||FT(r))+` `+pE({period_seconds:n.period_seconds||r.period_seconds,period_label:r.period_label}))+`" already exists. Saving will override the current `+iE(r.amount)+` limit with `+iE(n.amount)+`.`}function oE(e){let t=Number(e);return!Number.isFinite(t)||t<0?0:t}function sE(e,t){let n=oE(e);return Math.round((t?Math.min(n,1):n)*1e3)/10}function cE(e){return oE(e&&e.usage_ratio)}function lE(e){return sE(cE(e),!0)}function uE(e){return sE(e&&e.period_ratio,!0)}function dE(e){return sE(cE(e),!1).toFixed(1).replace(/\.0$/,``)+`%`}function fE(e){return uE(e).toFixed(1).replace(/\.0$/,``)+`%`}function pE(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return`Hourly`;case 86400:return`Daily`;case 604800:return`Weekly`;case 2592e3:return`Monthly`;default:{let n=String(e&&e.period_label||``).trim();return n?`Custom `+n:`Custom `+String(t||``)+`s`}}}function mE(e){switch(Number(e&&e.period_seconds||0)){case 3600:return`budget-period-label-hourly`;case 86400:return`budget-period-label-daily`;case 604800:return`budget-period-label-weekly`;case 2592e3:return`budget-period-label-monthly`;default:return`budget-period-label-custom`}}function hE(e){return mE(e).replace(`budget-period-label-`,`budget-bar-fill-period-`)}function gE(e){return mE(e).replace(`budget-period-label-`,`budget-bar-track-period-`)}function _E(e){switch(Number(e&&e.period_seconds||0)){case 3600:return Ja;case 86400:return Oo;case 604800:return La;case 2592e3:return Ra;default:return So}}function vE(e){let t=Math.max(0,Math.trunc(Number(e||0)));return t+` `+(t===1?`second`:`seconds`)}function yE(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return`1 hour`;case 86400:return`1 day`;case 604800:return`1 week`;case 2592e3:return`1 month`;default:return vE(t)}}function bE(e){return String(e&&e.source||``).trim()||`manual`}function xE(e){let t=bE(e).toLowerCase();return t===`manual`?`Created from the dashboard.`:t===`config`?`Loaded from configuration.`:`Budget source: `+t}function SE(e){let t=Number(e&&e.remaining);return Number.isFinite(t)?t<0?vc(Math.abs(t))+` over`:vc(t)+` remaining`:``}var X=new class{#e=A(M([]));get budgets(){return L(this.#e)}set budgets(e){j(this.#e,e,!0)}#t=A(!0);get budgetsAvailable(){return L(this.#t)}set budgetsAvailable(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=A(``);get filter(){return L(this.#r)}set filter(e){j(this.#r,e,!0)}#i=A(`subject`);get sortBy(){return L(this.#i)}set sortBy(e){j(this.#i,e,!0)}#a=A(``);get error(){return L(this.#a)}set error(e){j(this.#a,e,!0)}#o=A(!1);get formOpen(){return L(this.#o)}set formOpen(e){j(this.#o,e,!0)}#s=A(!1);get formSubmitting(){return L(this.#s)}set formSubmitting(e){j(this.#s,e,!0)}#c=A(``);get formError(){return L(this.#c)}set formError(e){j(this.#c,e,!0)}#l=A(!1);get editing(){return L(this.#l)}set editing(e){j(this.#l,e,!0)}#u=A(M(jT()));get form(){return L(this.#u)}set form(e){j(this.#u,e,!0)}#d=A(!1);get overrideDialogOpen(){return L(this.#d)}set overrideDialogOpen(e){j(this.#d,e,!0)}#f=A(null);get overridePendingPayload(){return L(this.#f)}set overridePendingPayload(e){j(this.#f,e,!0)}#p=A(null);get overrideExistingBudget(){return L(this.#p)}set overrideExistingBudget(e){j(this.#p,e,!0)}#m=A(``);get resettingKey(){return L(this.#m)}set resettingKey(e){j(this.#m,e,!0)}#h=A(``);get deletingKey(){return L(this.#h)}set deletingKey(e){j(this.#h,e,!0)}#g=A(!1);get resetAllLoading(){return L(this.#g)}set resetAllLoading(e){j(this.#g,e,!0)}#_=null;managementEnabled(){return As.budgetsVisible()}filteredBudgets(){return $T(this.budgets,this.filter,this.sortBy)}async fetchBudgetsPage(){if(await As.ensureLoaded(),!this.managementEnabled()){this.budgets=[],this.budgetsAvailable=!1,this.error=``;return}return this.#_||=this.fetchBudgets().finally(()=>{this.#_=null}),this.#_}async fetchBudgets(){this.loading=!0,this.error=``;let e=await kT(`/admin/budgets`,{label:`budgets`,errorFallback:`Unable to load budgets.`,normalize:YT});if(this.loading=!1,e.status!==`stale`){if(e.status===`unavailable`){this.budgetsAvailable=!1,this.budgets=[];return}if(!e.result){this.budgets=[],this.error=e.error;return}if(this.budgetsAvailable=!0,e.status===`error`){this.error=e.error;return}this.budgets=e.items}}openForm(e){if(this.editing=!!e,this.formError=``,e){let t=Number(e.period_seconds||0);this.form={scope:PT(e),subject:FT(e),period:UT(t),period_seconds:t,amount:String(e.amount||``),source:String(e.source||`manual`)}}else this.form=jT();this.formOpen=!0}syncPeriodSeconds(){let e=HT(String(this.form.period||``).trim());e>0&&(this.form.period_seconds=e)}setFormSubject(e){this.form.subject=this.form.scope===`label`?String(e??``):JT(e)}syncScope(){BT(this.form)}closeForm(){this.closeOverrideDialog(),this.formOpen=!1,this.formSubmitting=!1,this.formError=``,this.editing=!1,this.form=jT()}async submitForm(){if(this.formSubmitting)return;let{payload:e,error:t}=eE(this.form);if(!e){this.formError=t;return}if(!this.editing){let t=GT(this.budgets,e);if(t){this.openOverrideDialog(t,e);return}}await this.saveBudgetPayload(e)}async saveBudgetPayload(e){if(this.formSubmitting||!e)return;this.formSubmitting=!0,this.formError=``;let t=await AT(`/admin/budgets`,`PUT`,tE(e),{label:`save budget`,errorFallback:`Unable to save budget.`,unavailableMessage:`Budget management is unavailable.`});if(this.formSubmitting=!1,t.status!==`stale`){if(t.status===`unavailable`){this.budgetsAvailable=!1,this.formError=t.error;return}if(t.status===`error`){this.formError=t.error;return}this.closeForm(),Y.success(`Budget saved.`),this.fetchBudgets()}}openOverrideDialog(e,t){this.overrideExistingBudget=e||null,this.overridePendingPayload=t||null,this.overrideDialogOpen=!0}closeOverrideDialog(){this.overrideDialogOpen=!1,this.overridePendingPayload=null,this.overrideExistingBudget=null}async confirmOverride(){if(!this.overridePendingPayload){this.closeOverrideDialog();return}let e=this.overridePendingPayload;this.closeOverrideDialog(),await this.saveBudgetPayload(e)}async resetBudget(e){if(!e)return;let t=WT(e);if(this.resettingKey===t)return;let n=FT(e)+` `+pE(e);if(!confirm(`Reset budget "`+n+`"?`))return;this.resettingKey=t;let r=await AT(`/admin/budgets/reset-one`,`POST`,rE(e),{label:`reset budget`,errorFallback:`Unable to reset budget.`,unavailableMessage:`Budget management is unavailable.`});if(this.resettingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,Y.error(r.error);return}if(r.status===`error`){Y.error(r.error);return}Y.success(`Budget reset.`),this.fetchBudgets()}}async deleteBudget(e){if(!e)return;let t=WT(e);if(this.deletingKey===t)return;let n=FT(e)+` `+pE(e);if(!confirm(`Delete budget "`+n+`"? This cannot be undone.`))return;this.deletingKey=t;let r=await AT(`/admin/budgets`,`DELETE`,nE(e),{label:`delete budget`,errorFallback:`Unable to delete budget.`,unavailableMessage:`Budget management is unavailable.`});if(this.deletingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,Y.error(r.error);return}if(r.status===`error`){Y.error(r.error);return}this.budgets=YT(r.result.data),Y.success(`Budget deleted.`)}}openResetDialog(){Ys.open({title:`Reset Budgets`,titleId:`budgetResetDialogTitle`,inputId:`budget-reset-confirmation`,requiredText:`reset`,confirmLabel:`Reset All Budgets`,icon:_o,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.resetAllBudgets()})}async resetAllBudgets(){if(this.resetAllLoading)return;this.resetAllLoading=!0;let e=await AT(`/admin/budgets/reset`,`POST`,{confirmation:`reset`},{label:`reset budgets`,errorFallback:`Unable to reset budgets.`,unavailableStatuses:[]});if(this.resetAllLoading=!1,e.status!==`stale`){if(e.status!==`ok`){Ys.error=e.error;return}Ys.close(),Y.success(`Budgets reset.`),Xo.page===`budgets`&&this.fetchBudgets()}}},CE=z(` Edit`,1),wE=z(` `,1),TE=z(`
Usage
Period
`),EE=z(`
`);function DE(e,t){D(t,!0);let n=K(t,`budgets`,19,()=>[]);function r(e){if(!e)return``;let t=ys.formatTimestamp(e);return!t||t===`-`?``:t+` `+ys.effectiveTimeZoneLabel()}var i=EE();U(i,21,n,e=>WT(e),(e,t)=>{var n=TE(),i=N(n),a=N(i),o=N(a),s=N(o),c=e=>{q(e,{get icon(){return ko},class:`budget-scope-icon`})},l=k(()=>PT(L(t))===`label`);H(s,e=>{L(l)&&e(c)});var u=F(s);E(o);var d=F(o,2),f=N(d),p=N(f);{let e=k(()=>_E(L(t)));q(p,{get icon(){return L(e)},class:`budget-period-icon`})}var m=F(p,2),h=N(m,!0);E(m),E(f),E(d);var g=F(d,2),_=N(g),v=N(_),y=N(v,!0);E(v),E(_);var b=F(_,2),x=N(b);OT(x,{label:`Edit budget`,class:`budget-action-btn`,onclick:()=>X.openForm(L(t)),children:(e,t)=>{var n=CE();q(P(n),{get icon(){return fo},class:`budget-action-icon`}),He(2),B(e,n)},$$slots:{default:!0}});var S=F(x,2);{let e=k(()=>X.resettingKey===WT(L(t))?`Resetting budget`:`Reset budget`),n=k(()=>X.resettingKey===WT(L(t)));OT(S,{get label(){return L(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>X.resetBudget(L(t)),get disabled(){return L(n)},children:(e,n)=>{var r=wE(),i=P(r);q(i,{get icon(){return _o},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);E(a),I(e=>V(o,e),[()=>X.resettingKey===WT(L(t))?`Resetting`:`Reset`]),B(e,r)},$$slots:{default:!0}})}var C=F(S,2);{let e=k(()=>X.deletingKey===WT(L(t))?`Deleting budget`:`Delete budget`),n=k(()=>X.deletingKey===WT(L(t)));OT(C,{get label(){return L(e)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>X.deleteBudget(L(t)),get disabled(){return L(n)},children:(e,n)=>{var r=wE(),i=P(r);q(i,{get icon(){return jo},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);E(a),I(e=>V(o,e),[()=>X.deletingKey===WT(L(t))?`Deleting`:`Delete`]),B(e,r)},$$slots:{default:!0}})}E(b),E(g),E(a);var w=F(a,2),T=N(w),ee=N(T),te=F(N(ee),2),ne=N(te,!0);E(te),E(ee);var re=F(ee,2),ie=N(re);let ae;var oe=F(ie,2),se=N(oe),ce=N(se,!0);E(se);var le=F(se,2),ue=N(le,!0);E(le),E(oe);var de=F(oe,2),fe=N(de),pe=N(fe,!0);E(fe);var me=F(fe,2),he=N(me,!0);E(me),E(de),E(re),E(T);var ge=F(T,2),_e=N(ge),ve=F(N(_e),2),ye=N(ve,!0);E(ve),E(_e);var be=F(_e,2),xe=N(be),Se=F(xe,2),Ce=N(Se),we=N(Ce,!0);E(Ce);var Te=F(Ce,2),Ee=N(Te,!0);E(Te);var De=F(Te,2),Oe=N(De,!0);E(De),E(Se);var ke=F(Se,2),Ae=N(ke),je=N(Ae,!0);E(Ae);var Me=F(Ae,2),Ne=N(Me,!0);E(Me);var Pe=F(Me,2),Fe=N(Pe,!0);E(Pe),E(ke),E(be),E(ge),E(w),E(i),E(n),I((e,t,n,r,i,a,s,c,l,d,p,m,g,_,b,x,S,C,w,T,ee,te,oe,se,le,de,fe,me,ge,_e)=>{W(o,1,`budget-scope-value ${e??``}`,`svelte-1jm56wo`),Vi(o,t),G(o,`title`,n),V(u,` ${r??``}`),W(f,1,`budget-period-label ${i??``}`,`svelte-1jm56wo`),V(h,a),G(v,`title`,s),V(y,c),V(ne,l),G(re,`aria-valuenow`,d),G(re,`aria-label`,p),Vi(re,`--budget-progress: ${m??``}%`),ae=W(ie,1,`budget-bar-fill budget-bar-fill-usage`,null,ae,g),V(ce,_),V(ue,b),V(pe,x),V(he,S),V(ye,C),W(be,1,`budget-bar-track ${w??``}`,`svelte-1jm56wo`),G(be,`aria-valuenow`,T),Vi(be,`--budget-progress: ${ee??``}%`),W(xe,1,`budget-bar-fill budget-bar-fill-period ${te??``}`,`svelte-1jm56wo`),G(Ce,`title`,oe),V(we,se),V(Ee,le),G(De,`title`,de),V(Oe,fe),V(je,me),V(Ne,ge),V(Fe,_e)},[()=>LT(L(t)),()=>PT(L(t))===`label`?`--label-color: `+$y(FT(L(t))):void 0,()=>IT(L(t))+`: `+FT(L(t)),()=>FT(L(t)),()=>mE(L(t)),()=>pE(L(t)),()=>xE(L(t)),()=>bE(L(t)),()=>dE(L(t)),()=>lE(L(t)),()=>`Budget usage: `+vc(L(t).spent)+` of `+vc(L(t).amount)+`, `+SE(L(t)),()=>lE(L(t)),()=>({"budget-bar-fill-danger":cE(L(t))>=1}),()=>vc(L(t).spent)+` of `+vc(L(t).amount),()=>SE(L(t)),()=>vc(L(t).spent)+` of `+vc(L(t).amount),()=>SE(L(t)),()=>fE(L(t)),()=>gE(L(t)),()=>uE(L(t)),()=>uE(L(t)),()=>hE(L(t)),()=>r(L(t).period_start),()=>ys.formatTimestamp(L(t).period_start),()=>yE(L(t)),()=>r(L(t).period_end),()=>ys.formatTimestamp(L(t).period_end),()=>ys.formatTimestamp(L(t).period_start),()=>yE(L(t)),()=>ys.formatTimestamp(L(t).period_end)]),B(e,n)}),E(i),B(e,i),O()}var OE=z(`

`,1),kE=z(``),AE=z(``),jE=z(`
`);function ME(e,t){D(t,!0);let n=K(t,`open`,3,!1),r=K(t,`title`,3,``),i=K(t,`ariaLabel`,3,``),a=K(t,`error`,3,``),o=K(t,`submitting`,3,!1),s=K(t,`submitDisabled`,3,!1),c=K(t,`submitLabel`,3,`Save`),l=K(t,`submittingLabel`,3,`Saving...`),u=K(t,`submitIcon`,3,vo),d=K(t,`cancel`,3,!0),p=K(t,`dialogClass`,3,``),m=K(t,`novalidate`,3,!1),h=K(t,`canClose`,3,()=>!0);function g(){J.dialogOpen||h()()&&t.onclose?.()}Us(e,{get open(){return n()},variant:`editor`,onclose:g,children:(e,n)=>{var h=jE(),g=N(h),_=N(g),v=N(_),y=N(v),b=e=>{var n=Zr();hi(P(n),()=>t.header),B(e,n)},x=e=>{var n=OE(),i=P(n),a=N(i,!0);E(i);var o=F(i,2),s=e=>{var n=Zr();hi(P(n),()=>t.headerHint),B(e,n)};H(o,e=>{t.headerHint&&e(s)}),I(()=>V(a,r())),B(e,n)};H(y,e=>{t.header?e(b):e(x,-1)}),E(v);var S=F(v,2);{let e=k(()=>`Close `+(i()||r()).toLowerCase());zs(S,{get label(){return L(e)},onclick:()=>t.onclose?.()})}E(_);var C=F(_,2);hi(C,()=>t.children??f);var w=F(C,2),T=e=>{var t=kE(),n=N(t,!0);E(t),I(()=>V(n,a())),B(e,t)};H(w,e=>{a()&&e(T)});var ee=F(w,2),te=N(ee),ne=e=>{var n=AE();R(`click`,n,()=>t.onclose?.()),B(e,n)};H(te,e=>{d()&&e(ne)});var re=F(te,2),ie=e=>{var n=Zr();hi(P(n),()=>t.extraActions),B(e,n)};H(re,e=>{t.extraActions&&e(ie)});var ae=F(re,2),oe=N(ae);q(oe,{get icon(){return u()},class:`form-action-icon`});var se=F(oe,2),ce=N(se,!0);E(se),E(ae),E(ee),E(g),E(h),I(()=>{W(h,1,Pi([`model-editor`,p()])),G(h,`aria-label`,i()||r()),g.noValidate=m(),ae.disabled=o()||s(),V(ce,o()?l():c())}),Br(`submit`,g,e=>{e.preventDefault(),t.onsubmit?.()}),B(e,h)},$$slots:{default:!0}}),O()}Vr([`click`]);var NE=z(`
`);function PE(e,t){let n=K(t,`label`,3,``);var r=NE(),i=N(r),a=N(i,!0);E(i),hi(F(i,2),()=>t.children??f),E(r),I(()=>{G(i,`for`,t.id),V(a,n())}),B(e,r)}var FE=z(``),IE=z(``),LE=z(``),RE=z(``),zE=z(``),BE=z(``),VE=z(`

Editing a budget updates its limit only. Use Reset to start a new - budget period.

`),HE=z(`
`,1),UE=z(``),WE=z(` `,1);function GE(e,t){D(t,!0);function n(e){X.setFormSubject(e.target.value),e.target.value=X.form.subject}var r=WE(),i=P(r);{let e=k(()=>X.editing?`Edit Budget`:`Create Budget`);ME(i,{get open(){return X.formOpen},get title(){return L(e)},ariaLabel:`Budget editor`,get error(){return X.formError},get submitting(){return X.formSubmitting},submitLabel:`Save Budget`,dialogClass:`budget-editor`,canClose:()=>!X.overrideDialogOpen,onclose:()=>X.closeForm(),onsubmit:()=>X.submitForm(),children:(e,t)=>{var r=HE(),i=P(r),a=N(i);PE(a,{id:`budget-scope`,label:`Scope`,children:(e,t)=>{var n=IE();U(n,21,NT,e=>e.value,(e,t)=>{var n=FE(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(n),I(()=>n.disabled=X.editing),R(`change`,n,()=>X.syncScope()),Wi(n,()=>X.form.scope,e=>X.form.scope=e),B(e,n)},$$slots:{default:!0}});var o=F(a,2);{let e=k(()=>RT(X.form));PE(o,{id:`budget-subject`,get label(){return L(e)},children:(e,t)=>{var r=LE();ta(r),I(e=>{G(r,`placeholder`,e),na(r,X.form.subject),r.disabled=X.editing,G(r,`data-modal-autofocus`,!X.editing||void 0)},[()=>zT(X.form)]),R(`input`,r,n),B(e,r)},$$slots:{default:!0}})}var s=F(o,2);PE(s,{id:`budget-period`,label:`Period`,children:(e,t)=>{var n=RE();U(n,21,VT,e=>e.value,(e,t)=>{var n=FE(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(n),I(()=>n.disabled=X.editing),R(`change`,n,()=>X.syncPeriodSeconds()),Wi(n,()=>X.form.period,e=>X.form.period=e),B(e,n)},$$slots:{default:!0}});var c=F(s,2),l=e=>{PE(e,{id:`budget-period-seconds`,label:`Period Seconds`,children:(e,t)=>{var n=zE();ta(n),I(()=>n.disabled=X.editing),ua(n,()=>X.form.period_seconds,e=>X.form.period_seconds=e),B(e,n)},$$slots:{default:!0}})};H(c,e=>{X.form.period===`custom`&&e(l)}),PE(F(c,2),{id:`budget-amount`,label:`Amount`,children:(e,t)=>{var n=BE();ta(n),I(()=>G(n,`data-modal-autofocus`,X.editing||void 0)),ua(n,()=>X.form.amount,e=>X.form.amount=e),B(e,n)},$$slots:{default:!0}}),E(i);var u=F(i,2),d=e=>{B(e,VE())};H(u,e=>{X.editing&&e(d)}),B(e,r)},$$slots:{default:!0}})}Us(F(i,2),{get open(){return X.overrideDialogOpen},variant:`auth`,onclose:()=>X.closeOverrideDialog(),children:(e,t)=>{var n=UE(),r=N(n);zs(F(N(r),2),{label:`Close budget override dialog`,onclick:()=>X.closeOverrideDialog(),class:`auth-dialog-close`,iconClass:``}),E(r);var i=F(r,2),a=N(i),o=N(a,!0);E(a);var s=F(a,2),c=N(s),l=F(c,2),u=N(l);q(u,{get icon(){return vo},class:`form-action-icon`});var d=F(u,2),f=N(d,!0);E(d),E(l),E(s),E(i),E(n),I(e=>{V(o,e),l.disabled=X.formSubmitting,V(f,X.formSubmitting?`Saving...`:`Override Budget`)},[()=>aE(X.overridePendingPayload,X.overrideExistingBudget)]),Br(`submit`,i,e=>{e.preventDefault(),X.confirmOverride()}),R(`click`,c,()=>X.closeOverrideDialog()),B(e,n)},$$slots:{default:!0}}),B(e,r),O()}Vr([`change`,`input`,`click`]);var KE=z(`

Budgets

`),qE=z(``),JE=z(`
Budget management is unavailable.
`),YE=z(``),XE=z(`
`),ZE=z(`

No budgets configured yet.

`),QE=z(`

No budgets match your filter.

`),$E=z(`
`);function eD(e,t){D(t,!0),kn(()=>{J.refreshTick,Xo.page===`budgets`&&X.fetchBudgetsPage()});let n=k(()=>X.filteredBudgets());var r=$E(),i=N(r),a=N(i);iC(N(a),{copyId:`budgets-help-copy`,label:`budgets help`,title:e=>{B(e,KE())},help:e=>{He(),B(e,Xr(`Budgets are evaluated from tracked usage cost records for each user - path subtree. Enforcement runs only when Budget is enabled for the - active workflow.`))},$$slots:{title:!0,help:!0}}),E(a);var o=F(a,2),s=N(o),c=e=>{var t=qE();q(N(t),{get icon(){return mo},class:`form-action-icon`}),He(2),E(t),I(()=>t.disabled=X.formSubmitting),R(`click`,t,()=>X.openForm()),B(e,t)},l=k(()=>X.managementEnabled()&&X.budgetsAvailable&&!J.authError);H(s,e=>{L(l)&&e(c)}),E(o),E(i);var u=F(i,2);Kc(u,{});var d=F(u,2),f=e=>{B(e,JE())},p=k(()=>(!X.managementEnabled()||!X.budgetsAvailable)&&!J.authError);H(d,e=>{L(p)&&e(f)});var m=F(d,2),h=e=>{var t=YE(),n=N(t,!0);E(t),I(()=>V(n,X.error)),B(e,t)};H(m,e=>{X.error&&!J.authError&&e(h)});var g=F(m,2),_=e=>{ET(e,{label:`Loading budgets...`})};H(g,e=>{X.loading&&!J.authError&&e(_)});var v=F(g,2),y=e=>{var t=XE(),n=N(t);jw(N(n),{id:`budget-filter`,placeholder:`Filter by user path, label, or period...`,label:`Filter budgets by user path or period`,get value(){return X.filter},set value(e){X.filter=e}}),E(n);var r=F(n,2),i=F(N(r),2),a=N(i);a.value=a.__value=`subject`;var o=F(a);o.value=o.__value=`period`,E(i),E(r),E(t),Wi(i,()=>X.sortBy,e=>X.sortBy=e),B(e,t)};H(v,e=>{(X.budgets.length>0||X.filter)&&X.budgetsAvailable&&!J.authError&&!X.formOpen&&e(y)});var b=F(v,2);GE(b,{});var x=F(b,2),S=e=>{DE(e,{get budgets(){return L(n)}})};H(x,e=>{L(n).length>0&&X.budgetsAvailable&&!J.authError&&e(S)});var C=F(x,2),w=e=>{B(e,ZE())},T=k(()=>X.budgets.length===0&&!X.filter&&!X.loading&&!J.authError&&!X.error&&X.budgetsAvailable&&X.managementEnabled());H(C,e=>{L(T)&&e(w)});var ee=F(C,2),te=e=>{B(e,QE())},ne=k(()=>X.budgets.length>0&&L(n).length===0&&X.filter&&!X.loading&&!J.authError&&!X.error&&X.budgetsAvailable&&X.managementEnabled());H(ee,e=>{L(ne)&&e(te)}),E(r),B(e,r),O()}Vr([`click`]);function tD(){return{scope:`user_path`,subject:`/`,period:`minute`,period_seconds:60,max_requests:``,max_tokens:``,source:`manual`}}function nD(e){let t={user_path:{label:`User path`,chip:`user path`,fieldLabel:`User Path`,placeholder:`/team/alpha`},provider:{label:`Provider`,chip:`provider`,fieldLabel:`Provider Name`,placeholder:`openai`},model:{label:`Model`,chip:`model`,fieldLabel:`Model`,placeholder:`openai/gpt-4o`}};return t[e]||t.user_path}function rD(){return[`user_path`,`provider`,`model`].map(e=>({value:e,label:nD(e).label}))}function iD(e){return String(e&&e.scope||``).trim()||`user_path`}function aD(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function oD(e){return nD(iD(e)).chip}function sD(e){return nD(String(e&&e.scope||``)).fieldLabel}function cD(e){return nD(String(e&&e.scope||``)).placeholder}function lD(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function uD(){return[{value:`minute`,label:`Per minute`},{value:`hour`,label:`Per hour`},{value:`day`,label:`Per day`},{value:`concurrent`,label:`Concurrent (in-flight)`},{value:`custom`,label:`Custom seconds`}]}function dD(e){switch(String(e||``).trim().toLowerCase()){case`minute`:return 60;case`hour`:return 3600;case`day`:return 86400;case`concurrent`:return 0;default:return-1}}function fD(e){switch(Number(e||0)){case 60:return`minute`;case 3600:return`hour`;case 86400:return`day`;case 0:return`concurrent`;default:return`custom`}}function pD(e){let t=String(e&&e.period||``).trim(),n=dD(t);n>=0&&(e.period_seconds=n),t===`concurrent`&&(e.max_tokens=``)}function mD(e){return iD(e)+`:`+aD(e)+`:`+String(e&&e.period_seconds||`0`)}function hD(e){return Number(e&&e.period_seconds||0)===0}function gD(e){return String(e&&e.period_label||``).trim()||fD(Number(e&&e.period_seconds||0))}function _D(e){return String(e&&e.source||``)===`config`?`config`:`manual`}function vD(e){return String(e&&e.source||``)===`config`}function yD(e){let t=Number(e);return Number.isFinite(t)?t.toLocaleString():`0`}function bD(e,t){let n=Number(e),r=Number(t);if(!Number.isFinite(n)||!Number.isFinite(r)||r<=0)return 0;let i=Math.round(n/r*100);return Math.min(Math.max(i,0),100)}function xD(e,t){let n=String(t||``).trim().toLowerCase(),r=Array.isArray(e)?e.slice():[],i={user_path:0,provider:1,model:2};return r.sort((e,t)=>{let n=(i[iD(e)]||0)-(i[iD(t)]||0);if(n!==0)return n;let r=aD(e).localeCompare(aD(t));return r===0?Number(e.period_seconds||0)-Number(t.period_seconds||0):r}),n?r.filter(e=>{let t=aD(e).toLowerCase(),r=oD(e).toLowerCase(),i=gD(e).toLowerCase();return t.includes(n)||r.includes(n)||i.includes(n)}):r}function SD(e){return!e||!Array.isArray(e.rate_limits)?[]:e.rate_limits}function CD(e,t,n){let r=String(t||``).trim();return r=e===`provider`||e===`model`?r.toLowerCase():`/`+r.split(`/`).map(e=>e.trim()).filter(Boolean).join(`/`),e+`:`+r+`:`+Number(n||0)}function wD(e,t){return e?CD(t.scope,t.subject,t.limit_key.period_seconds)!==CD(e.scope,e.subject,e.period_seconds):!1}function TD(e){let t=e||{},n=String(t.scope||`user_path`),r=String(t.subject||``).trim();if(n!==`user_path`&&!r)return{error:sD(t)+` is required.`};let i=String(t.period||``)===`concurrent`,a=t.period_seconds;if(a===``||a==null)return{error:`Period seconds is required.`};let o=Number(a);if(!Number.isInteger(o)||o<0||o===0&&!i)return{error:`Period seconds must be a positive integer (0 only for the concurrent period).`};let s=String(t.max_requests===void 0||t.max_requests===null?``:t.max_requests).trim(),c=String(t.max_tokens===void 0||t.max_tokens===null?``:t.max_tokens).trim();if(!s&&!c)return{error:`Set max requests, max tokens, or both.`};if(i&&c)return{error:`Token limits are not valid for the concurrent period.`};let l={scope:n,subject:r||`/`,limit_key:{period_seconds:o}};if(s){let e=Number(s);if(!Number.isInteger(e)||e<=0)return{error:`Max requests must be a positive integer.`};l.max_requests=e}if(c){let e=Number(c);if(!Number.isInteger(e)||e<=0)return{error:`Max tokens must be a positive integer.`};l.max_tokens=e}return{payload:l}}function ED(e,t,n){if(iD(e)!==`model`)return!1;let r=String(aD(e)).toLowerCase(),i=String(n||``).trim().toLowerCase();if(!i)return!1;if(r===i)return!0;let a=String(t||``).trim().toLowerCase();return a?r===a+`/`+i||i.startsWith(a+`/`)&&r===i.slice(a.length+1):!1}function DD(e,t){return iD(e)===`provider`&&String(aD(e)).toLowerCase()===String(t||``).trim().toLowerCase()}function OD(e){let t=e||{},n=String(t.model||``),r=String(t.provider||``);return!r||n.toLowerCase().startsWith(r+`/`)?n:r+`/`+n}function kD(e,t){let n=e||{},r=Array.isArray(t)?t:[],i=[];return n.kind===`model`&&i.push({key:`model`,title:`Model limits`,scope:`model`,subject:OD(n),hint:``,items:r.filter(e=>ED(e,n.provider,n.model))}),i.push({key:`provider`,title:`Provider limits (`+n.provider+`)`,scope:`provider`,subject:n.provider,hint:n.kind===`model`?`Shared by every model routed to this provider.`:``,items:r.filter(e=>DD(e,n.provider))}),i.push({key:`global`,title:`Global limits`,scope:`user_path`,subject:`/`,hint:`Root user-path rules throttle all traffic. Narrower user-path rules also apply, per consumer.`,items:r.filter(e=>iD(e)===`user_path`&&aD(e)===`/`)}),i}function AD(e){return hD(e)?bD(e.in_flight,e.max_requests):Math.max(bD(e.requests_used,e.max_requests),bD(e.tokens_used,e.max_tokens))}function jD(e){return`--rate-limit-pressure: `+AD(e)+`%`}function MD(e){let t=AD(e);return t>=100?`rate-limit-pressure-row rate-limit-pressure-full`:t>=75?`rate-limit-pressure-row rate-limit-pressure-high`:`rate-limit-pressure-row`}function ND(e){return(Array.isArray(e)?e:[]).some(e=>iD(e)===`user_path`&&aD(e)===`/`)}function PD(e,t,n){let r=Array.isArray(e)?e:[];return r.some(e=>ED(e,t,n))?`table-action-btn-active`:r.some(e=>DD(e,t))||ND(r)?`rate-limit-gauge-inherited`:``}function FD(e,t){let n=Array.isArray(e)?e:[];return n.some(e=>DD(e,t))?`table-action-btn-active`:ND(n)?`rate-limit-gauge-inherited`:``}function ID(e,t){let n=`Rate limits for `+e;return t===`table-action-btn-active`?n+` (direct limits configured)`:t?n+` (inherited limits apply)`:n}function LD(e){if(hD(e))return yD(e.in_flight)+` of `+yD(e.max_requests)+` in flight`;let t=[];return e.max_requests!==null&&e.max_requests!==void 0&&t.push(yD(e.requests_used)+`/`+yD(e.max_requests)+` req`),e.max_tokens!==null&&e.max_tokens!==void 0&&t.push(yD(e.tokens_used)+`/`+yD(e.max_tokens)+` tok`),t.join(` · `)}var Z=new class{#e=A(M([]));get rateLimits(){return L(this.#e)}set rateLimits(e){j(this.#e,e,!0)}#t=A(!0);get rateLimitsAvailable(){return L(this.#t)}set rateLimitsAvailable(e){j(this.#t,e,!0)}#n=A(!1);get rateLimitsLoading(){return L(this.#n)}set rateLimitsLoading(e){j(this.#n,e,!0)}rateLimitFetchPromise=null;#r=A(``);get rateLimitFilter(){return L(this.#r)}set rateLimitFilter(e){j(this.#r,e,!0)}#i=A(``);get rateLimitError(){return L(this.#i)}set rateLimitError(e){j(this.#i,e,!0)}#a=A(!1);get rateLimitFormOpen(){return L(this.#a)}set rateLimitFormOpen(e){j(this.#a,e,!0)}#o=A(!1);get rateLimitFormSubmitting(){return L(this.#o)}set rateLimitFormSubmitting(e){j(this.#o,e,!0)}#s=A(``);get rateLimitFormError(){return L(this.#s)}set rateLimitFormError(e){j(this.#s,e,!0)}#c=A(!1);get rateLimitEditing(){return L(this.#c)}set rateLimitEditing(e){j(this.#c,e,!0)}rateLimitEditingOriginal=null;rateLimitFormReturnToInspector=!1;#l=A(``);get rateLimitResettingKey(){return L(this.#l)}set rateLimitResettingKey(e){j(this.#l,e,!0)}#u=A(``);get rateLimitDeletingKey(){return L(this.#u)}set rateLimitDeletingKey(e){j(this.#u,e,!0)}#d=A(!1);get rateLimitInspectorOpen(){return L(this.#d)}set rateLimitInspectorOpen(e){j(this.#d,e,!0)}#f=A(M({kind:``,provider:``,model:``,title:``}));get rateLimitInspector(){return L(this.#f)}set rateLimitInspector(e){j(this.#f,e,!0)}#p=A(M(tD()));get rateLimitForm(){return L(this.#p)}set rateLimitForm(e){j(this.#p,e,!0)}rateLimitsEnabled(){return As.rateLimitsVisible()}defaultRateLimitForm(){return tD()}rateLimitScopeMeta(e){return nD(e)}rateLimitScopeOptions(){return rD()}rateLimitScope(e){return iD(e)}rateLimitSubject(e){return aD(e)}rateLimitScopeLabel(e){return oD(e)}rateLimitSubjectFieldLabel(){return sD(this.rateLimitForm)}rateLimitSubjectPlaceholder(){return cD(this.rateLimitForm)}syncRateLimitScope(){lD(this.rateLimitForm)}rateLimitPeriodOptions(){return uD()}rateLimitPeriodSeconds(e){return dD(e)}rateLimitPeriodFromSeconds(e){return fD(e)}syncRateLimitPeriodSeconds(){pD(this.rateLimitForm)}rateLimitKey(e){return mD(e)}rateLimitIsConcurrent(e){return hD(e)}rateLimitPeriodLabel(e){return gD(e)}rateLimitSourceLabel(e){return _D(e)}rateLimitIsReadOnly(e){return vD(e)}formatRateLimitNumber(e){return yD(e)}rateLimitUsagePercent(e,t){return bD(e,t)}filteredRateLimits(){return xD(this.rateLimits,this.rateLimitFilter)}normalizeRateLimitListPayload(e){return SD(e)}async fetchRateLimitsPage(){if(await As.ensureLoaded(),!this.rateLimitsEnabled()){this.rateLimits=[],this.rateLimitsAvailable=!1,this.rateLimitError=``;return}return this.rateLimitFetchPromise||=this.fetchRateLimits().finally(()=>{this.rateLimitFetchPromise=null}),this.rateLimitFetchPromise}async fetchRateLimits(){this.rateLimitsLoading=!0,this.rateLimitError=``;let e=await kT(`/admin/rate-limits`,{label:`rate limits`,errorFallback:`Unable to load rate limits.`,normalize:SD});if(this.rateLimitsLoading=!1,e.status!==`stale`){if(e.status===`unavailable`){this.rateLimitsAvailable=!1,this.rateLimits=[];return}if(!e.result){this.rateLimits=[],this.rateLimitError=e.error;return}if(this.rateLimitsAvailable=!0,e.status===`error`){this.rateLimitError=e.error;return}this.rateLimits=e.items}}openRateLimitForm(e){if(this.rateLimitEditing=!!e,this.rateLimitFormError=``,e){let t=Number(e.period_seconds||0);this.rateLimitEditingOriginal={scope:iD(e),subject:aD(e),period_seconds:t},this.rateLimitForm={scope:iD(e),subject:aD(e),period:fD(t),period_seconds:t,max_requests:e.max_requests===null||e.max_requests===void 0?``:String(e.max_requests),max_tokens:e.max_tokens===null||e.max_tokens===void 0?``:String(e.max_tokens),source:String(e.source||`manual`)}}else this.rateLimitEditingOriginal=null,this.rateLimitForm=tD();this.rateLimitFormOpen=!0}closeRateLimitForm(){this.rateLimitFormOpen=!1,this.rateLimitFormSubmitting=!1,this.rateLimitFormError=``,this.rateLimitEditing=!1,this.rateLimitEditingOriginal=null,this.rateLimitForm=tD(),this.rateLimitFormReturnToInspector&&(this.rateLimitFormReturnToInspector=!1,this.rateLimitInspectorOpen=!0)}rateLimitNormalizedIdentity(e,t,n){return CD(e,t,n)}rateLimitIdentityMoved(e){return wD(this.rateLimitEditingOriginal,e)}setRateLimitFormSubject(e){this.rateLimitForm.subject=String(e||``)}rateLimitFormPayload(){return TD(this.rateLimitForm)}async submitRateLimitForm(){if(this.rateLimitFormSubmitting)return;let{payload:e,error:t}=this.rateLimitFormPayload();if(t){this.rateLimitFormError=t;return}let n=this.rateLimitIdentityMoved(e),r=this.rateLimitEditingOriginal;this.rateLimitFormSubmitting=!0,this.rateLimitFormError=``;try{let t=await AT(`/admin/rate-limits`,`PUT`,e,{label:`save rate limit`,errorFallback:`Unable to save rate limit.`,unavailableStatuses:[]});if(t.status===`stale`)return;if(t.status!==`ok`){this.rateLimitFormError=t.error;return}if(this.rateLimits=SD(t.result.data),n&&!await this.deleteMovedRateLimitOriginal(r))return;this.closeRateLimitForm(),Y.success(n?`Rate limit moved; live counters restarted.`:`Rate limit saved.`)}finally{this.rateLimitFormSubmitting=!1}}async deleteMovedRateLimitOriginal(e){let t=await AT(`/admin/rate-limits`,`DELETE`,{scope:e.scope,subject:e.subject,limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`remove the moved rate limit`,errorFallback:`The new rule was saved, but the previous one could not be removed. Delete it manually.`,unavailableStatuses:[]});return t.status===`stale`?!1:t.status===`ok`?(this.rateLimits=SD(t.result.data),!0):(this.rateLimitFormError=t.error,!1)}async deleteRateLimit(e){let t=mD(e);if(this.rateLimitDeletingKey===t)return;this.rateLimitDeletingKey=t;let n=await AT(`/admin/rate-limits`,`DELETE`,{scope:iD(e),subject:aD(e),limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`delete rate limit`,errorFallback:`Unable to delete rate limit.`,unavailableStatuses:[]});if(this.rateLimitDeletingKey=``,n.status!==`stale`){if(n.status!==`ok`){Y.error(n.error);return}this.rateLimits=SD(n.result.data),Y.success(`Rate limit deleted.`)}}async resetRateLimit(e){let t=mD(e);if(this.rateLimitResettingKey===t)return;this.rateLimitResettingKey=t;let n=await AT(`/admin/rate-limits/reset-one`,`POST`,{scope:iD(e),subject:aD(e),period_seconds:Number(e.period_seconds||0)},{label:`reset rate limit`,errorFallback:`Unable to reset rate limit.`,unavailableStatuses:[]});if(this.rateLimitResettingKey=``,n.status!==`stale`){if(n.status!==`ok`){Y.error(n.error);return}this.rateLimits=SD(n.result.data),Y.success(`Rate limit counters reset.`)}}rateLimitInspectorModelID(e){return String(e&&e.model&&e.model.id||``).trim()}openRateLimitInspectorForModel(e){let t=this.rateLimitInspectorModelID(e),n=String(e&&e.provider_name||``).trim().toLowerCase();this.rateLimitInspector={kind:`model`,provider:n,model:t,title:String(e&&e.display_name||t)},this.showRateLimitInspector()}openRateLimitInspectorForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase();this.rateLimitInspector={kind:`provider`,provider:t,model:``,title:String(e&&e.display_name||t)},this.showRateLimitInspector()}showRateLimitInspector(){this.rateLimitInspectorOpen=!0,this.fetchRateLimitsPage()}closeRateLimitInspector(){this.rateLimitInspectorOpen=!1}rateLimitRuleMatchesModel(e,t,n){return ED(e,t,n)}rateLimitRuleMatchesProvider(e,t){return DD(e,t)}rateLimitInspectorQualifiedModel(){return OD(this.rateLimitInspector)}rateLimitInspectorSections(){return kD(this.rateLimitInspector,this.rateLimits)}rateLimitPressurePercent(e){return AD(e)}rateLimitPressureStyle(e){return jD(e)}rateLimitPressureClass(e){return MD(e)}rateLimitGaugeCache={rules:null,states:{}};rateLimitGaugeMemo(e,t){this.rateLimitGaugeCache.rules!==this.rateLimits&&(this.rateLimitGaugeCache={rules:this.rateLimits,states:{}});let n=this.rateLimitGaugeCache.states;return e in n||(n[e]=t()),n[e]}rateLimitGaugeClassForModel(e){let t=this.rateLimitInspectorModelID(e),n=String(e&&e.provider_name||``).trim().toLowerCase(),r=this.rateLimits;return this.rateLimitGaugeMemo(`model:`+n+`/`+t,()=>PD(r,n,t))}rateLimitGaugeClassForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase(),n=this.rateLimits;return this.rateLimitGaugeMemo(`provider:`+t,()=>FD(n,t))}hasGlobalRateLimits(){let e=this.rateLimits;return this.rateLimitGaugeMemo(`global`,()=>ND(e))}rateLimitGaugeTitle(e,t){return ID(e,t)}rateLimitInspectorSummary(e){return LD(e)}openRateLimitFormFromInspector(e,t,n){this.rateLimitInspectorOpen=!1,this.rateLimitFormReturnToInspector=!0,this.openRateLimitForm(n||void 0),n||(this.rateLimitForm.scope=e,this.rateLimitForm.subject=t)}},RD=z(``),zD=z(``),BD=z(``),VD=z(``),HD=z(``),UD=z(``),WD=z(``),GD=z(`

Scope, subject, and period identify the rule: changing any of them - moves the rule to a new key and restarts its live counters.

`),KD=z(`

A user path rule limits the whole subtree; provider and model rules cap - all traffic routed there and make load balancing skip the target while - it is saturated. One shared counter per rule. Leave a field empty to - skip that limit. Token limits require usage tracking.

`,1);function qD(e,t){D(t,!0);{let t=k(()=>Z.rateLimitEditing?`Edit Rate Limit`:`Create Rate Limit`);ME(e,{get open(){return Z.rateLimitFormOpen},get title(){return L(t)},ariaLabel:`Rate limit editor`,get error(){return Z.rateLimitFormError},get submitting(){return Z.rateLimitFormSubmitting},submitLabel:`Save Rate Limit`,dialogClass:`budget-editor`,novalidate:!0,onclose:()=>Z.closeRateLimitForm(),onsubmit:()=>Z.submitRateLimitForm(),children:(e,t)=>{var n=KD(),r=P(n),i=N(r);PE(i,{id:`rate-limit-scope`,label:`Scope`,children:(e,t)=>{var n=zD();U(n,21,()=>Z.rateLimitScopeOptions(),e=>e.value,(e,t)=>{var n=RD(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(n),R(`change`,n,()=>Z.syncRateLimitScope()),Wi(n,()=>Z.rateLimitForm.scope,e=>Z.rateLimitForm.scope=e),B(e,n)},$$slots:{default:!0}});var a=F(i,2);{let e=k(()=>Z.rateLimitSubjectFieldLabel());PE(a,{id:`rate-limit-subject`,get label(){return L(e)},children:(e,t)=>{var n=BD();ta(n),I(e=>{G(n,`placeholder`,e),G(n,`data-modal-autofocus`,!Z.rateLimitEditing||void 0),na(n,Z.rateLimitForm.subject)},[()=>Z.rateLimitSubjectPlaceholder()]),R(`input`,n,e=>Z.setRateLimitFormSubject(e.currentTarget.value)),B(e,n)},$$slots:{default:!0}})}var o=F(a,2);PE(o,{id:`rate-limit-period`,label:`Period`,children:(e,t)=>{var n=VD();U(n,21,()=>Z.rateLimitPeriodOptions(),e=>e.value,(e,t)=>{var n=RD(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(n),R(`change`,n,()=>Z.syncRateLimitPeriodSeconds()),Wi(n,()=>Z.rateLimitForm.period,e=>Z.rateLimitForm.period=e),B(e,n)},$$slots:{default:!0}});var s=F(o,2),c=e=>{PE(e,{id:`rate-limit-period-seconds`,label:`Period Seconds`,children:(e,t)=>{var n=HD();ta(n),ua(n,()=>Z.rateLimitForm.period_seconds,e=>Z.rateLimitForm.period_seconds=e),B(e,n)},$$slots:{default:!0}})};H(s,e=>{Z.rateLimitForm.period===`custom`&&e(c)});var l=F(s,2);{let e=k(()=>Z.rateLimitForm.period===`concurrent`?`Max In-Flight Requests`:`Max Requests`);PE(l,{id:`rate-limit-max-requests`,get label(){return L(e)},children:(e,t)=>{var n=UD();ta(n),I(()=>G(n,`data-modal-autofocus`,Z.rateLimitEditing?!0:void 0)),ua(n,()=>Z.rateLimitForm.max_requests,e=>Z.rateLimitForm.max_requests=e),B(e,n)},$$slots:{default:!0}})}var u=F(l,2),d=e=>{PE(e,{id:`rate-limit-max-tokens`,label:`Max Tokens`,children:(e,t)=>{var n=WD();ta(n),ua(n,()=>Z.rateLimitForm.max_tokens,e=>Z.rateLimitForm.max_tokens=e),B(e,n)},$$slots:{default:!0}})};H(u,e=>{Z.rateLimitForm.period!==`concurrent`&&e(d)}),E(r);var f=F(r,4),p=e=>{B(e,GD())};H(f,e=>{Z.rateLimitEditing&&e(p)}),B(e,n)},$$slots:{default:!0}})}O()}Vr([`change`,`input`]);var JD=z(` `),YD=z(` Edit`,1),XD=z(` `,1),ZD=z(`
In-flight
`),QD=z(`
Requests
`),$D=z(`
Tokens
`),eO=z(`
`),tO=z(`
`);function nO(e,t){D(t,!0);var n=tO();U(n,21,()=>t.rules,e=>Z.rateLimitKey(e),(e,t)=>{var n=eO(),r=N(n),i=N(r),a=N(i),o=N(a,!0);E(a);var s=F(a,2),c=N(s),l=e=>{var n=JD(),r=N(n);{let e=k(()=>Z.rateLimitScope(L(t))===`provider`?xo:Fa);q(r,{get icon(){return L(e)},class:`budget-period-icon`})}var i=F(r,2),a=N(i,!0);E(i),E(n),I((e,t)=>{G(n,`title`,e),V(a,t)},[()=>`Rule scope: `+Z.rateLimitScopeLabel(L(t)),()=>Z.rateLimitScopeLabel(L(t))]),B(e,n)},u=k(()=>Z.rateLimitScope(L(t))!==`user_path`);H(c,e=>{L(u)&&e(l)});var d=F(c,2),f=N(d);{let e=k(()=>Z.rateLimitIsConcurrent(L(t))?Aa:Ao);q(f,{get icon(){return L(e)},class:`budget-period-icon`})}var p=F(f,2),m=N(p,!0);E(p),E(d),E(s);var h=F(s,2),g=N(h),_=N(g),v=N(_,!0);E(_),E(g);var y=F(g,2),b=N(y),x=e=>{OT(e,{label:`Edit rate limit`,class:`budget-action-btn`,onclick:()=>Z.openRateLimitForm(L(t)),children:(e,t)=>{var n=YD();q(P(n),{get icon(){return fo},class:`budget-action-icon`}),He(2),B(e,n)},$$slots:{default:!0}})},S=k(()=>!Z.rateLimitIsReadOnly(L(t)));H(b,e=>{L(S)&&e(x)});var C=F(b,2);{let e=k(()=>Z.rateLimitResettingKey===Z.rateLimitKey(L(t))?`Resetting counters`:`Reset counters`),n=k(()=>Z.rateLimitResettingKey===Z.rateLimitKey(L(t)));OT(C,{get label(){return L(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>Z.resetRateLimit(L(t)),get disabled(){return L(n)},children:(e,n)=>{var r=XD(),i=P(r);q(i,{get icon(){return _o},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);E(a),I(e=>V(o,e),[()=>Z.rateLimitResettingKey===Z.rateLimitKey(L(t))?`Resetting`:`Reset`]),B(e,r)},$$slots:{default:!0}})}var w=F(C,2),T=e=>{{let n=k(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(L(t))?`Deleting rate limit`:`Delete rate limit`),r=k(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(L(t)));OT(e,{get label(){return L(n)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>Z.deleteRateLimit(L(t)),get disabled(){return L(r)},children:(e,n)=>{var r=XD(),i=P(r);q(i,{get icon(){return jo},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);E(a),I(e=>V(o,e),[()=>Z.rateLimitDeletingKey===Z.rateLimitKey(L(t))?`Deleting`:`Delete`]),B(e,r)},$$slots:{default:!0}})}},ee=k(()=>!Z.rateLimitIsReadOnly(L(t)));H(w,e=>{L(ee)&&e(T)}),E(y),E(h),E(i);var te=F(i,2),ne=N(te),re=e=>{var n=ZD(),r=N(n),i=F(N(r),2),a=N(i,!0);E(i),E(r);var o=F(r,2),s=N(o);let c;var l=F(s,2),u=N(l),d=N(u,!0);E(u),E(l),E(o),E(n),I((e,t,n,r,i,l)=>{V(a,e),G(o,`aria-valuenow`,t),G(o,`aria-label`,n),Vi(o,r),c=W(s,1,`budget-bar-fill budget-bar-fill-usage`,null,c,i),V(d,l)},[()=>Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests),()=>`In-flight requests: `+Z.formatRateLimitNumber(L(t).in_flight)+` of `+Z.formatRateLimitNumber(L(t).max_requests),()=>`--budget-progress: `+Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests)>=100}),()=>Z.formatRateLimitNumber(L(t).in_flight)+` of `+Z.formatRateLimitNumber(L(t).max_requests)+` in flight`]),B(e,n)},ie=k(()=>Z.rateLimitIsConcurrent(L(t)));H(ne,e=>{L(ie)&&e(re)});var ae=F(ne,2),oe=e=>{var n=QD(),r=N(n),i=F(N(r),2),a=N(i,!0);E(i),E(r);var o=F(r,2),s=N(o);let c;var l=F(s,2),u=N(l),d=N(u,!0);E(u);var f=F(u,2),p=N(f,!0);E(f),E(l),E(o),E(n),I((e,t,n,r,i,l,u)=>{V(a,e),G(o,`aria-valuenow`,t),G(o,`aria-label`,n),Vi(o,r),c=W(s,1,`budget-bar-fill budget-bar-fill-usage`,null,c,i),V(d,l),V(p,u)},[()=>Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests),()=>`Requests used: `+Z.formatRateLimitNumber(L(t).requests_used)+` of `+Z.formatRateLimitNumber(L(t).max_requests),()=>`--budget-progress: `+Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests)>=100}),()=>Z.formatRateLimitNumber(L(t).requests_used)+` of `+Z.formatRateLimitNumber(L(t).max_requests)+` requests`,()=>Z.formatRateLimitNumber(L(t).requests_remaining)+` left`]),B(e,n)},se=k(()=>!Z.rateLimitIsConcurrent(L(t))&&L(t).max_requests);H(ae,e=>{L(se)&&e(oe)});var ce=F(ae,2),le=e=>{var n=$D(),r=N(n),i=F(N(r),2),a=N(i,!0);E(i),E(r);var o=F(r,2),s=N(o);let c;var l=F(s,2),u=N(l),d=N(u,!0);E(u);var f=F(u,2),p=N(f,!0);E(f),E(l),E(o),E(n),I((e,t,n,r,i,l,u)=>{V(a,e),G(o,`aria-valuenow`,t),G(o,`aria-label`,n),Vi(o,r),c=W(s,1,`budget-bar-fill budget-bar-fill-usage`,null,c,i),V(d,l),V(p,u)},[()=>Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens)+`%`,()=>Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens),()=>`Tokens used: `+Z.formatRateLimitNumber(L(t).tokens_used)+` of `+Z.formatRateLimitNumber(L(t).max_tokens),()=>`--budget-progress: `+Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens)>=100}),()=>Z.formatRateLimitNumber(L(t).tokens_used)+` of `+Z.formatRateLimitNumber(L(t).max_tokens)+` tokens`,()=>Z.formatRateLimitNumber(L(t).tokens_remaining)+` left`]),B(e,n)},ue=k(()=>!Z.rateLimitIsConcurrent(L(t))&&L(t).max_tokens);H(ce,e=>{L(ue)&&e(le)}),E(te),E(r),E(n),I((e,t,n,r,i)=>{G(a,`title`,e),V(o,t),V(m,n),G(_,`title`,r),V(v,i)},[()=>Z.rateLimitScopeLabel(L(t))+`: `+Z.rateLimitSubject(L(t)),()=>Z.rateLimitSubject(L(t)),()=>Z.rateLimitPeriodLabel(L(t)),()=>Z.rateLimitIsReadOnly(L(t))?`Declared in configuration; read-only in the dashboard`:`Managed via dashboard or admin API`,()=>Z.rateLimitSourceLabel(L(t))]),B(e,n)}),E(n),B(e,n),O()}var rO=z(`

Rate Limits

`),iO=z(``),aO=z(`
Rate limit management is unavailable.
`),oO=z(``),sO=z(`
`),cO=z(`

No rate limits configured yet.

`),lO=z(`

No rate limits match your filter.

`),uO=z(`
`);function dO(e,t){D(t,!0),kn(()=>{J.refreshTick,Xo.page===`rate-limits`&&Z.fetchRateLimitsPage()});let n=k(()=>Z.filteredRateLimits());var r=uO(),i=N(r),a=N(i);iC(N(a),{copyId:`rate-limits-help-copy`,label:`rate limits help`,text:`Rate limits cap requests, tokens, and in-flight concurrency for a user path subtree, a provider, or a model. Consumer (user path) breaches return 429 with Retry-After and x-ratelimit-* headers; saturated providers and models are skipped by load balancing and failover while capacity exists elsewhere. Counters are per gateway instance and reset on restart; token limits need usage tracking.`,title:e=>{B(e,rO())},$$slots:{title:!0}}),E(a);var o=F(a,2),s=N(o),c=e=>{var t=iO();q(N(t),{get icon(){return mo},class:`form-action-icon`}),He(2),E(t),I(()=>t.disabled=Z.rateLimitFormSubmitting),R(`click`,t,()=>Z.openRateLimitForm()),B(e,t)},l=k(()=>Z.rateLimitsEnabled()&&Z.rateLimitsAvailable&&!J.authError);H(s,e=>{L(l)&&e(c)}),E(o),E(i);var u=F(i,2);Kc(u,{});var d=F(u,2),f=e=>{B(e,aO())},p=k(()=>(!Z.rateLimitsEnabled()||!Z.rateLimitsAvailable)&&!J.authError);H(d,e=>{L(p)&&e(f)});var m=F(d,2),h=e=>{var t=oO(),n=N(t,!0);E(t),I(()=>V(n,Z.rateLimitError)),B(e,t)};H(m,e=>{Z.rateLimitError&&!J.authError&&e(h)});var g=F(m,2),_=e=>{ET(e,{label:`Loading rate limits...`})};H(g,e=>{Z.rateLimitsLoading&&!J.authError&&e(_)});var v=F(g,2),y=e=>{var t=sO(),n=N(t);jw(N(n),{id:`rate-limit-filter`,placeholder:`Filter by subject, scope, or period...`,label:`Filter rate limits by subject, scope, or period`,get value(){return Z.rateLimitFilter},set value(e){Z.rateLimitFilter=e}}),E(n),E(t),B(e,t)};H(v,e=>{(Z.rateLimits.length>0||Z.rateLimitFilter)&&Z.rateLimitsAvailable&&!J.authError&&!Z.rateLimitFormOpen&&e(y)});var b=F(v,2);qD(b,{});var x=F(b,2),S=e=>{nO(e,{get rules(){return L(n)}})};H(x,e=>{L(n).length>0&&Z.rateLimitsAvailable&&!J.authError&&e(S)});var C=F(x,2),w=e=>{B(e,cO())},T=k(()=>Z.rateLimits.length===0&&!Z.rateLimitFilter&&!Z.rateLimitsLoading&&!J.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());H(C,e=>{L(T)&&e(w)});var ee=F(C,2),te=e=>{B(e,lO())},ne=k(()=>Z.rateLimits.length>0&&L(n).length===0&&Z.rateLimitFilter&&!Z.rateLimitsLoading&&!J.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());H(ee,e=>{L(ne)&&e(te)}),E(r),B(e,r),O()}Vr([`click`]);function fO(e){return String(e||``).trim().toLowerCase()}function pO(e){if(!e)return``;let t=String(e.selector||``).trim();if(t)return t;if(!e.model||!e.model.id)return``;let n=String(e.model.id||``).trim(),r=String(e.provider_name||``).trim();if(r)return r+`/`+n;let i=String(e.provider_type||``).trim();return!i||n.includes(`/`)?n:i+`/`+n}function mO(e,t,n,r){let i=new Set,a=String(e||``).trim().toLowerCase(),o=String(t||``).trim().toLowerCase(),s=String(n||``).trim().toLowerCase(),c=String(r||``).trim().toLowerCase();if(c&&i.add(c),!a)return i;i.add(a),s&&i.add(s+`/`+a),o&&!a.includes(`/`)&&i.add(o+`/`+a);let l=a.split(`/`);return l.length===2&&l[1]&&i.add(l[1]),i}function hO(e){return mO(e&&e.model?e.model.id:``,e?e.provider_type:``,e?e.provider_name:``,e?e.selector:``)}function gO(e){let t=new Set,n=String(e.resolved_model||``).trim().toLowerCase(),r=String(e.target_model||``).trim().toLowerCase(),i=String(e.target_provider||``).trim().toLowerCase();if(n){t.add(n);let e=n.split(`/`);e.length===2&&e[1]&&t.add(e[1])}if(r){t.add(r);let e=r.split(`/`);e.length===2&&e[1]&&t.add(e[1])}return r&&i&&t.add(i+`/`+r),t}function _O(e){if(!e)return``;let t=String(e.provider||``).trim(),n=String(e.model||``).trim();return!t||!n||n===t||n.startsWith(t+`/`)?n:t+`/`+n}function vO(e){if(e===``||e==null)return null;let t=Number(e);return!Number.isFinite(t)||t<=0?null:t}function yO(e,t){let n={model:e},r=vO(t);return r!==null&&(n.weight=r),n}function bO(e){let t=Array.isArray(e)?e:[],n=[];for(let e of t){let t=String(e&&e.model||``).trim();t&&n.push(yO(t,e&&e.weight))}return n}function xO(e){switch(String(e||``).toLowerCase()){case`cost`:return`lowest cost`;case`round_robin`:case``:return`round robin`;default:return e}}var SO={round_robin:`Round-robin (rotate across targets; honors weights)`,cost:`Lowest cost (cheapest target per request)`,adaptive:`Adaptive (target chosen by the registered routing extension)`};function CO(e,t){let n=Array.isArray(e)?[...e]:[],r=String(t||``).trim().toLowerCase();return r&&!n.includes(r)&&n.push(r),n.map(e=>({value:e,label:SO[e]||e}))}function wO(e){let t=Array.isArray(e.targets)?e.targets:[],n=t.length>0?t[0]:{},r=t.map(e=>{let t={provider:e.provider||``,model:e.model||``};return e.weight&&(t.weight=e.weight),t});return{name:e.source,target_provider:n.provider||``,target_model:n.model||``,targets:r,strategy:e.strategy||``,session_affinity:e.session_affinity!==!1,description:e.description||``,enabled:e.enabled!==!1,managed:!!e.managed,valid:!!e.valid,resolved_model:e.resolved_model||``,provider_type:e.provider_type||``,user_paths:Array.isArray(e.user_paths)?e.user_paths:[]}}function TO(e){let t=Array.isArray(e)?e:[],n=[],r=[];for(let e of t)!e||typeof e!=`object`||(e.kind===`redirect`?n.push(wO(e)):e.kind===`policy`&&r.push({selector:e.source,provider_name:e.provider_name||``,model:e.model||``,user_paths:Array.isArray(e.user_paths)?e.user_paths:[],description:e.description||``,enabled:e.enabled!==!1,managed:!!e.managed,scope_kind:e.scope_kind||``}));return{aliases:n,policies:r}}function EO(e){if(!e)return`—`;let t=Array.isArray(e.targets)?e.targets:[];return t.length>1?t.length+` targets · `+xO(e.strategy):e.resolved_model?e.resolved_model:e.target_provider?e.target_provider+`/`+e.target_model:e.target_model||`—`}function DO(e){return e?e.enabled===!1?`is-disabled`:e.valid?`is-valid`:`is-invalid`:`is-invalid`}function OO(e){return e?e.enabled===!1?`Disabled`:e.valid?`Active`:`Invalid`:`Invalid`}function kO(e){return Array.isArray(e)&&e.length>0&&e.indexOf(`/`)===-1}function AO(e,t){return!t||!e?``:e.effective_enabled===!1?`is-disabled`:kO(e.user_paths)?`is-restricted`:`is-enabled`}function jO(e){if(!e)return``;let t=[];e.effective_enabled===!1&&t.push(e.default_enabled===!1?`Disabled by default`:`Disabled`);let n=Array.isArray(e.user_paths)?e.user_paths:[];return n.length>0&&t.push(`Allowed for `+n.join(`, `)),t.join(` · `)}function MO({models:e,aliases:t,virtualModelsAvailable:n,activeCategory:r}){let i=Array.isArray(e)?e:[],a=Array.isArray(t)?t:[],o=new Map;if(n)for(let e of a){let t=fO(e&&e.name);!t||e.enabled===!1||!e.valid||o.set(t,e)}let s=new Map,c=i.map(e=>{let t=pO(e),n=null;for(let t of hO(e))s.has(t)||s.set(t,e),!n&&o.has(t)&&(n=o.get(t));let r=e&&e.access?e.access:null;return{key:`model:`+t,display_name:t,secondary_name:``,provider_name:e.provider_name||``,provider_type:e.provider_type||``,model:e.model,selector:e.selector||``,is_alias:!1,alias:null,access:r,masking_alias:n,has_virtual_model:!!(n||r&&r.override),alias_state_class:``,alias_state_text:``}});if(!n)return c;for(let e of a){let t=s.get(fO(e&&e.name));if(e&&e.enabled!==!1&&e.valid&&t)continue;let n=null;for(let t of gO(e))if(n=s.get(t)||null,n)break;!n&&r&&r!==`all`||c.push({key:`alias:`+e.name,display_name:e.name,secondary_name:EO(e),provider_name:n&&n.provider_name||``,provider_type:n?n.provider_type||e.provider_type||``:e.provider_type||``,model:n?n.model:{id:e.name,object:`model`},selector:``,is_alias:!0,alias:e,access:null,masking_alias:null,source_model_exists:!!t,has_virtual_model:!0,alias_state_class:DO(e),alias_state_text:OO(e)})}return c.sort((e,t)=>e.is_alias===t.is_alias?String(e.display_name||``).localeCompare(String(t.display_name||``)):e.is_alias?-1:1)}function NO(e,t){if(!t)return e;let n=String(t).toLowerCase();return e.filter(e=>[e.display_name,e.secondary_name,e.provider_name,e.provider_type,e.model&&e.model.owned_by,e.alias&&e.alias.description,e.alias&&e.alias_state_text,e.model&&e.model.metadata&&e.model.metadata.modes?e.model.metadata.modes.join(`,`):``,e.model&&e.model.metadata&&e.model.metadata.categories?e.model.metadata.categories.join(`,`):``].some(e=>String(e||``).toLowerCase().includes(n)))}function PO(e,t){return String(e||``).trim()||String(t||``).trim()||`Unassigned`}function FO(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return!r||r===n?``:r}function IO(e){let t=String(e||``).trim();return t?t+`/`:``}function LO(e){let t=Array.isArray(e)?e:[],n=t.filter(e=>e&&!e.is_alias).length,r=t.filter(e=>e&&e.is_alias).length,i=[];return n>0&&i.push(n+(n===1?` model`:` models`)),r>0&&i.push(r+(r===1?` alias`:` aliases`)),i.join(` · `)}function RO(e,t,n){let r=String(t||``).trim(),i=String(n||``).trim();for(let t of Array.isArray(e)?e:[]){let e=String(t&&t.provider_name||``).trim(),n=String(t&&t.provider_type||``).trim();if(!(r&&e!==r)&&!(!r&&i&&n!==i)&&t&&t.access)return t.access.default_enabled!==!1}return!0}function zO(e){for(let t of Array.isArray(e)?e:[])if(t&&t.access)return t.access.default_enabled!==!1;return!0}function BO(e,t){let n=String(t||``).trim();if(!n)return null;for(let t of Array.isArray(e)?e:[])if(String(t&&t.selector||``).trim()===n)return t;return null}function VO(e,t,n,r){let i=IO(t),a=r&&r.get(`/`)||null,o=i&&r&&r.get(i)||null,s=RO(e,t,n),c=o||a,l=c&&Array.isArray(c.user_paths)?Array.from(new Set(c.user_paths)).sort():[];return{selector:i,default_enabled:s,effective_enabled:c?c.enabled!==!1:s,user_paths:l,override:o}}function HO(e,t,n){if(!Array.isArray(e)||e.length===0)return[];let r=new Map;for(let e of Array.isArray(n)?n:[]){let t=String(e&&e.selector||``).trim();t&&r.set(t,e)}let i=[],a=new Map;for(let t of e){if(t&&t.is_alias){i.push(t);continue}let e=String(t&&t.provider_name||``).trim(),n=String(t&&t.provider_type||``).trim(),r=`provider-group:`+(e||n||`unassigned`);a.has(r)||a.set(r,{key:r,provider_name:e,provider_type:n,display_name:PO(e,n),type_label:FO(e,n),rows:[]});let o=a.get(r);!o.provider_name&&e&&(o.provider_name=e),!o.provider_type&&n&&(o.provider_type=n),o.display_name=PO(o.provider_name,o.provider_type),o.type_label=FO(o.provider_name,o.provider_type),o.rows.push(t)}let o=Array.from(a.values()).map(e=>{let n=VO(t,e.provider_name,e.provider_type,r);return{...e,access:n,access_summary:jO(n),item_count_label:LO(e.rows)}}).sort((e,t)=>String(e.display_name||``).localeCompare(String(t.display_name||``)));return i.length>0&&o.unshift({key:`virtual-model-group`,is_virtual_models:!0,provider_name:``,provider_type:``,display_name:`Virtual models`,type_label:``,rows:i,access:{selector:``},access_summary:``,item_count_label:LO(i)}),o}function UO(e,t){let n=BO(t,`/`),r=zO(e),i=n&&Array.isArray(n.user_paths)?n.user_paths:[];return{key:`scope-global`,is_alias:!1,display_name:`all providers and models`,access:{selector:`/`,default_enabled:r,effective_enabled:n?n.enabled!==!1:r,user_paths:i,override:n}}}function WO(e){return e?String(e.access&&e.access.selector||``).trim()||String(e.override_selector||``).trim()||pO(e):``}function GO(e){if(!e)return[];let t=[];return e.is_alias?t.push(`alias-row`,DO(e.alias)):e.has_virtual_model&&t.push(`alias-row`,`is-valid`),!e.is_alias&&e.masking_alias&&t.push(`masked-model-row`),!e.is_alias&&e.access&&e.access.effective_enabled===!1&&t.push(`model-access-disabled-row`),t}function KO(e){return!!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)}function qO(e){return!!(e&&!e.is_alias&&e.masking_alias&&e.masking_alias.name&&!e.masking_alias.managed)}function JO(e){return e&&e.is_alias&&e.alias&&e.alias.name?`alias-row-`+String(e.alias.name).replace(/[^a-zA-Z0-9_-]+/g,`-`):``}function YO(e){return e?e.is_alias?!!(e.alias&&e.alias.managed):!!(e.access&&e.access.override&&e.access.override.managed||e.masking_alias&&e.masking_alias.managed):!1}function XO(e){return!!(e&&e.override)}function ZO(e){return e?`table-action-btn-active`:``}function QO(e,t){let n=`Edit `+String(e||`model access`);return t?n+` (virtual model exists)`:n}function $O(){return{source:``,target_model:``,target_weight:1,targets:[],strategy:`round_robin`,session_affinity:!0,user_paths:``,description:``,enabled:!0}}function ek(e){return String(e&&e.target_model||``).trim()!==``}function tk(e){return String(e&&e.target_model||``).trim()?!0:bO(e&&e.targets).length>0}function nk(e){return!!e&&Array.isArray(e.targets)&&e.targets.length>0}function rk(e){return nk(e)&&String(e&&e.strategy||``).toLowerCase()!==`cost`}function ik(e){let t=Array.isArray(e.targets)?e.targets:[];if(t.length>0){let n=t.shift();e.target_model=n.model||``,e.target_weight=n.weight||1;return}e.target_model=``,e.target_weight=1}function ak(e){let t=Array.isArray(e&&e.targets)?e.targets:[];return t.length>0?{primaryModel:_O(t[0]),primaryWeight:t[0].weight||1,extraTargets:t.slice(1).map(e=>({model:_O(e),weight:e.weight||1}))}:{primaryModel:e&&e.target_provider?e.target_provider+`/`+e.target_model:e&&e.target_model||``,primaryWeight:1,extraTargets:[]}}function ok(e){return String(e||``).split(/\r?\n|,/).map(e=>String(e||``).trim()).filter(Boolean)}function sk(e,t,n){let r=String(e&&e.source||``).trim(),i=String(e&&e.target_model||``).trim(),a=bO(e&&e.targets),o=tk(e),s=String(t||``).trim(),c=n===`edit`&&!!s&&r!==s,l={source:r,user_paths:ok(e&&e.user_paths),description:String(e&&e.description||``).trim(),enabled:!!(e&&e.enabled)};if(c&&(l.old_source=s),o){let t=[];if(i&&t.push(yO(i,e.target_weight)),t.push(...a),t.length>1){let n=e.strategy||`round_robin`;l.targets=n===`cost`?t.map(e=>({model:e.model})):t,l.strategy=n,e&&e.session_affinity===!1&&(l.session_affinity=!1)}else l.target_model=t[0].model}return{payload:l,source:r,isRedirect:o,isRename:c}}function ck(e){let t={source:e.name,description:String(e.description||``).trim(),user_paths:Array.isArray(e.user_paths)?e.user_paths:[],enabled:e.enabled===!1},n=Array.isArray(e.targets)?e.targets:[];return n.length>1?(t.strategy=e.strategy||`round_robin`,e.session_affinity===!1&&(t.session_affinity=!1),t.targets=t.strategy===`cost`?n.map(e=>({model:_O(e)})):n.map(e=>yO(_O(e),e.weight))):n.length===1?t.target_model=_O(n[0]):t.target_model=e.target_provider?e.target_provider+`/`+e.target_model:e.target_model,t}function lk(e,t,n){let r=n||{},i=r.effective_enabled===!1,a=t&&Array.isArray(t.user_paths)?t.user_paths:[],o=`PUT`,s;return i===!1?s={source:e,enabled:!1,user_paths:a}:t&&a.length===0&&r.default_enabled!==!1?(o=`DELETE`,s={source:e}):s={source:e,enabled:!0,user_paths:a},{method:o,payload:s,desired:i}}function uk(e,t,n){let r=Math.max(1,Number(t||75)),i=Math.min(n,e+r);return{limit:i,rendering:iMO({models:Wc.models,aliases:this.aliases,virtualModelsAvailable:this.virtualModelsAvailable,activeCategory:Wc.activeCategory}));get displayModels(){return L(this.#T)}set displayModels(e){j(this.#T,e)}#E=k(()=>HO(this.displayModels,Wc.models,this.modelOverrideViews));get displayModelGroups(){return L(this.#E)}set displayModelGroups(e){j(this.#E,e)}#D=k(()=>NO(this.displayModels,Wc.filter));get filteredDisplayModels(){return L(this.#D)}set filteredDisplayModels(e){j(this.#D,e)}#O=k(()=>{let e=this.filteredDisplayModels,t=Math.max(0,Math.min(Number(this.modelRenderLimit||0),e.length));return!Wc.filter&&t>=this.displayModels.length?this.displayModelGroups:HO(e.slice(0,t),Wc.models,this.modelOverrideViews)});get filteredDisplayModelGroups(){return L(this.#O)}set filteredDisplayModelGroups(e){j(this.#O,e)}#k=k(()=>UO(Wc.models,this.modelOverrideViews));get globalScopeRow(){return L(this.#k)}set globalScopeRow(e){j(this.#k,e)}modelsBusy(){return!!(Wc.loading||this.modelsRendering)}modelLoadingText(){if(Wc.loading)return this.displayModels.length>0?`Refreshing models...`:`Loading models...`;let e=this.filteredDisplayModels.length;return`Rendering models... `+Math.min(Number(this.modelRenderLimit||0),e)+` / `+e}restartModelRendering(e){let t=++this.#a,n=dk(this.modelRenderBatchSize,e);this.modelRenderLimit=n.limit,this.modelsRendering=n.rendering,n.rendering&&this.#A(t)}stopModelRendering(){this.#a++,this.modelsRendering=!1}#A(e){let t=()=>{if(e!==this.#a)return;let t=uk(this.modelRenderLimit,this.modelRenderBatchSize,this.filteredDisplayModels.length);this.modelRenderLimit=t.limit,this.modelsRendering=t.rendering,t.rendering&&this.#A(e)};typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>setTimeout(t,0)):setTimeout(t,0)}async fetchVirtualModels(){this.aliasLoading=!0,this.aliasError=``;try{let e=await Ts(`/admin/virtual-models`,{label:`virtual models`});if(e.status===503){this.virtualModelsAvailable=!1,this.aliases=[],this.modelOverrideViews=[];return}if(e.stale)return;if(this.virtualModelsAvailable=!0,!e.ok){this.aliases=[],this.modelOverrideViews=[];return}let{aliases:t,policies:n}=TO(e.data);this.aliases=t,this.modelOverrideViews=n}catch(e){console.error(`Failed to fetch virtual models:`,e),this.aliases=[],this.modelOverrideViews=[],this.aliasError=`Unable to load virtual models.`}finally{this.aliasLoading=!1}}qualifiedModelName(e){return pO(e)}findModelOverrideView(e){return BO(this.modelOverrideViews,e)}hasGlobalModelOverride(){return!!this.findModelOverrideView(`/`)}findExistingAliasByName(e){let t=fO(e);if(!t)return null;for(let e of this.aliases)if(fO(e&&e.name)===t)return e;return null}findConcreteModelByName(e){let t=fO(e);if(!t)return null;for(let e of Wc.models)if(hO(e).has(t))return e;return null}rowToggleEnabled(e){return e?e.is_alias?e.alias&&e.alias.enabled!==!1:!!(e.access&&e.access.effective_enabled!==!1):!1}rowToggleLabel(e){return this.rowTogglingKey&&this.rowTogglingKey===e.key?`Updating...`:this.rowToggleRestricted(e)?`Restricted`:this.rowToggleEnabled(e)?`Enabled`:`Disabled`}rowToggleRestricted(e){return!!e&&!e.is_alias&&AO(e.access,this.virtualModelsAvailable)===`is-restricted`}rowToggleAriaLabel(e){if(!e)return``;let t=this.rowToggleEnabled(e)?`Disable `:`Enable `,n;return n=e.is_alias?`alias `+String(e.alias&&e.alias.name||``):String(e.display_name||e.access&&e.access.selector||`model`),t+n.trim()}async toggleRowEnabled(e){if(this.virtualModelsAvailable&&!(!e||this.rowTogglingKey===e.key)){if(YO(e)){Y.success(`This virtual model is managed by configuration and is read-only.`);return}if(e.is_alias){await this.toggleAliasRow(e);return}await this.toggleModelRow(e)}}async toggleAliasRow(e){let t=e.alias;if(!t||!t.name)return;this.rowTogglingKey=e.key;let n=ck(t);try{let e=await Es(`/admin/virtual-models`,`PUT`,n,{label:`alias state`});if(e.status===503){this.virtualModelsAvailable=!1,Y.error(`Virtual models feature is unavailable.`);return}if(e.stale)return;if(!e.ok){Y.error(e.status===401?`Authentication required.`:xs(e,`Failed to update alias state.`));return}Y.success(n.enabled?`Alias enabled.`:`Alias disabled.`),this.fetchVirtualModels()}catch(e){console.error(`Failed to toggle alias state:`,e),Y.error(`Failed to update alias state.`)}finally{this.rowTogglingKey=``}}async toggleModelRow(e){let t=WO(e);if(!t)return;let{method:n,payload:r,desired:i}=lk(t,this.findModelOverrideView(t),e.access||{});this.rowTogglingKey=e.key;try{let e=await Es(`/admin/virtual-models`,n,r,{label:`model access`});if(e.status===503){this.virtualModelsAvailable=!1,Y.error(`Virtual models feature is unavailable.`);return}if(!(n===`DELETE`&&e.status===404)){if(e.stale)return;if(!e.ok){Y.error(e.status===401?`Authentication required.`:xs(e,`Failed to update model access.`));return}}Y.success(i?`Model enabled.`:`Model disabled.`),Promise.all([Wc.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to toggle model access:`,e),Y.error(`Failed to update model access.`)}finally{this.rowTogglingKey=``}}async removeAliasRow(e){if(!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)||this.rowDeletingKey)return;let t=String(e.alias.name||``).trim();t&&await this.mutateVirtualModelRow({rowKey:e.key,confirmMessage:`Remove the virtual model alias "`+t+`"?`,method:`DELETE`,payload:{source:t},operation:`virtual model`,failureMessage:`Failed to remove virtual model.`,notice:`Virtual model removed.`,ignoreNotFound:!0})}async removeRedirectRow(e){let t=e&&e.masking_alias;if(!(e&&!e.is_alias&&t&&t.name&&!t.managed)||this.rowDeletingKey)return;let n=String(t.name||``).trim();n&&await this.mutateVirtualModelRow({rowKey:e.key,confirmMessage:`Remove the redirect for "`+n+`"? Other virtual model settings will be preserved.`,method:`PUT`,payload:{source:n,user_paths:Array.isArray(t.user_paths)?t.user_paths:[],description:String(t.description||``).trim(),enabled:t.enabled!==!1},operation:`virtual model redirect`,failureMessage:`Failed to remove redirect.`,notice:`Redirect removed. Other virtual model settings were preserved.`})}async mutateVirtualModelRow(e){if(!this.rowDeletingKey&&window.confirm(e.confirmMessage)){this.rowDeletingKey=e.rowKey;try{let t=await Es(`/admin/virtual-models`,e.method,e.payload,{label:e.operation});if(t.status===503){this.virtualModelsAvailable=!1,Y.error(`Virtual models feature is unavailable.`);return}if(!(e.ignoreNotFound&&t.status===404)){if(t.stale)return;if(!t.ok){Y.error(t.status===401?`Authentication required.`:xs(t,e.failureMessage));return}}this.virtualModelsAvailable=!0,Y.success(e.notice),Promise.all([Wc.fetchModels(),this.fetchVirtualModels()])}catch(t){console.error(e.failureMessage,t),Y.error(e.failureMessage)}finally{this.rowDeletingKey=``}}}addVmTarget(){Array.isArray(this.vmForm.targets)||(this.vmForm.targets=[]),this.vmForm.targets.push({model:``,weight:1})}removeVmTarget(e){Array.isArray(this.vmForm.targets)&&this.vmForm.targets.splice(e,1)}removePrimaryTarget(){ik(this.vmForm)}vmFormHasPrimaryTarget(){return ek(this.vmForm)}vmFormShowStrategy(){return nk(this.vmForm)}vmStrategyOptions(){return CO(As.virtualModelStrategies(),this.vmForm.strategy)}vmFormShowWeights(){return rk(this.vmForm)}vmFormToggleRestricted(){return!!(this.vmForm&&this.vmForm.enabled)&&kO(ok(this.vmForm.user_paths))}vmFormToggleLabel(){return!this.vmForm||!this.vmForm.enabled?`Disabled`:this.vmFormToggleRestricted()?`Restricted`:`Enabled`}resetVirtualModelForm(){this.vmFormError=``,this.vmFormHelpOpen=!1,this.vmFormUserPathsHelpOpen=!1,this.vmSubmitting=!1,this.vmDeleting=!1,this.vmFormHasExisting=!1,this.vmFormDefaultEnabled=!0,this.vmFormEffectiveEnabled=!0,this.vmFormDisplayName=``,this.vmFormSourceLocked=!1,this.vmFormOriginalSource=``,this.vmFormManaged=!1,this.vmForm=$O()}closeVirtualModelForm(){this.vmFormOpen=!1,this.resetVirtualModelForm()}openVirtualModelCreate(e){this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`create`,this.vmFormSourceLocked=!1,this.vmFormDisplayName=`New virtual model`,e&&e.model&&e.model.id&&(this.vmForm.target_model=pO(e))}openVirtualModelEditAlias(e){if(!e)return;this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!1,this.vmFormHasExisting=!0,this.vmFormManaged=!!e.managed,this.vmFormOriginalSource=e.name||``,this.vmFormDisplayName=e.name||``,this.vmFormDefaultEnabled=zO(Wc.models),this.vmFormEffectiveEnabled=e.enabled!==!1;let{primaryModel:t,primaryWeight:n,extraTargets:r}=ak(e);this.vmForm={source:e.name||``,target_model:t,target_weight:n,targets:r,strategy:e.strategy||`round_robin`,session_affinity:e.session_affinity!==!1,user_paths:(Array.isArray(e.user_paths)?e.user_paths:[]).join(` -`),description:e.description||``,enabled:e.enabled!==!1}}openVirtualModelEditModel(e){if(!e||e.is_alias)return;let t=e.access||{},n=t.override||null,r=n&&Array.isArray(n.user_paths)?n.user_paths:Array.isArray(t.user_paths)?t.user_paths:[],i=WO(e);this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!0,this.vmFormHasExisting=!!n,this.vmFormOriginalSource=i;let a=n?n.enabled!==!1:t.effective_enabled!==!1;this.vmFormDefaultEnabled=t.default_enabled!==!1,this.vmFormEffectiveEnabled=a,this.vmFormManaged=!!(n&&n.managed),this.vmFormDisplayName=e.access_display_name||e.display_name||i||``,this.vmForm={source:i,target_model:``,target_weight:``,targets:[],strategy:`round_robin`,user_paths:r.join(` -`),description:n&&n.description?n.description:``,enabled:a}}openGlobalModelOverrideEdit(){let e=this.findModelOverrideView(`/`),t=e&&Array.isArray(e.user_paths)?e.user_paths:[],n=zO(Wc.models);this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!0,this.vmFormHasExisting=!!e,this.vmFormOriginalSource=`/`,this.vmFormDefaultEnabled=n,this.vmFormEffectiveEnabled=e?e.enabled!==!1:n,this.vmFormManaged=!!(e&&e.managed),this.vmFormDisplayName=`All providers and models`,this.vmForm={source:`/`,target_model:``,target_weight:``,targets:[],strategy:`round_robin`,user_paths:t.join(` -`),description:e&&e.description?e.description:``,enabled:e?e.enabled!==!1:n}}openProviderOverrideEdit(e){!e||!e.access||!e.access.selector||this.openVirtualModelEditModel({display_name:e.display_name,access_display_name:`All models in `+e.display_name,provider_name:e.provider_name,provider_type:e.provider_type,access:e.access,override_selector:e.access.selector,is_alias:!1})}async submitVirtualModelForm(){if(this.vmFormManaged){this.vmFormError=`This virtual model is managed by configuration and cannot be edited here.`;return}let{payload:e,source:t,isRedirect:n,isRename:r}=sk(this.vmForm,this.vmFormOriginalSource,this.vmFormMode);if(!t){this.vmFormError=`Source is required.`;return}if(this.vmFormError=``,this.vmFormMode!==`edit`){let e=this.findExistingAliasByName(t),r=e?null:this.findModelOverrideView(t);if(e||r){let n=e?`A virtual model named "`+e.name+`" already exists. Saving will update that virtual model. Continue?`:`An access policy for "`+t+`" already exists. Saving will update that virtual model. Continue?`;if(!window.confirm(n)){this.vmFormError=`Choose a different source or edit the existing virtual model.`;return}}else if(n){let e=this.findConcreteModelByName(t);if(e){let t=pO(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(`A model named "`+t+`" already exists. Creating this alias will mask that model in the list. Continue?`)){this.vmFormError=`Choose a different source to avoid masking an existing model.`;return}}}}else if(r){let e=(this.aliases||[]).find(e=>e&&e.name===t)||null,r=e?null:this.findModelOverrideView(t);if(e||r){this.vmFormError=`A virtual model for "`+t+`" already exists. Choose a different source.`;return}if(n){let e=this.findConcreteModelByName(t);if(e){let t=pO(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(`A model named "`+t+`" already exists. Renaming to that name will mask the model in the list. Continue?`)){this.vmFormError=`Choose a different source to avoid masking an existing model.`;return}}}}this.vmSubmitting=!0;try{let t=await Es(`/admin/virtual-models`,`PUT`,e,{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=`Virtual models feature is unavailable.`;return}if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?`Authentication required.`:xs(t,`Failed to save virtual model.`);return}let r=!n&&t.status===204;this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),Y.success(n?`Alias saved.`:r?`Model access reset to inherited/default.`:`Model access saved.`),Promise.all([Wc.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to save virtual model:`,e),this.vmFormError=`Failed to save virtual model.`}finally{this.vmSubmitting=!1}}async deleteVirtualModel(){if(this.vmFormManaged){this.vmFormError=`This virtual model is managed by configuration and cannot be removed here.`;return}let e=String(this.vmForm.source||this.vmFormOriginalSource||``).trim();if(!(!e||!this.vmFormHasExisting)&&window.confirm(`Remove the virtual model for "`+e+`"? This reverts to inherited/default behavior.`)){this.vmDeleting=!0,this.vmFormError=``;try{let t=await Es(`/admin/virtual-models`,`DELETE`,{source:e},{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=`Virtual models feature is unavailable.`;return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?`Authentication required.`:xs(t,`Failed to remove virtual model.`);return}}this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),Y.success(`Virtual model removed.`),Promise.all([Wc.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to delete virtual model:`,e),this.vmFormError=`Failed to remove virtual model.`}finally{this.vmDeleting=!1}}}},pk=[{value:`input_per_mtok`,label:`Input $/MTok`,group:`Tokens`},{value:`output_per_mtok`,label:`Output $/MTok`,group:`Tokens`},{value:`cached_input_per_mtok`,label:`Cached input $/MTok`,group:`Tokens`},{value:`cache_write_per_mtok`,label:`Cache write $/MTok`,group:`Tokens`},{value:`reasoning_output_per_mtok`,label:`Reasoning output $/MTok`,group:`Tokens`},{value:`batch_input_per_mtok`,label:`Batch input $/MTok`,group:`Batch`},{value:`batch_output_per_mtok`,label:`Batch output $/MTok`,group:`Batch`},{value:`audio_input_per_mtok`,label:`Audio input $/MTok`,group:`Audio`},{value:`audio_output_per_mtok`,label:`Audio output $/MTok`,group:`Audio`},{value:`per_image`,label:`$/Image`,group:`Image`},{value:`input_per_image`,label:`Input $/Image`,group:`Image`},{value:`per_second_input`,label:`Input $/Second`,group:`Audio/Video`},{value:`per_second_output`,label:`Output $/Second`,group:`Video`},{value:`per_character_input`,label:`$/Character`,group:`Audio`},{value:`per_page`,label:`$/Page`,group:`Utility`},{value:`per_request`,label:`$/Request`,group:`Utility`}];function mk(e){let t=pk.find(t=>t.value===e);return t?t.label:String(e||``).replace(/_/g,` `)}function hk(e){return e&&typeof e==`object`?JSON.parse(JSON.stringify(e)):{}}function gk(e,t){let n=hk(e),r=t&&t.pricing?t.pricing:t;if(!r||typeof r!=`object`)return n;for(let e of pk)r[e.value]!==null&&r[e.value]!==void 0&&(n[e.value]=Number(r[e.value]));return Array.isArray(r.tiers)&&r.tiers.length>0&&(n.tiers=hk(r.tiers)),n}function _k(e){switch(String(e||``).trim()){case`config_yaml`:return`config.yaml`;case`model_registry`:return`Model registry`;default:return e?String(e):`Unknown`}}function vk(e){let t=e&&e.pricing?e.pricing:{},n=e&&e.pricing_sources&&typeof e.pricing_sources==`object`?e.pricing_sources:{},r={};for(let e of pk)t[e.value]!==null&&t[e.value]!==void 0&&(r[e.value]=_k(n[e.value]||`model_registry`));return r}function yk(e){let t=String(e&&e.selector||``).trim();return t?`Dashboard/API override (`+t+`)`:`Dashboard/API override`}function bk(e){let t=String(e||``).trim();return t?t+`/`:``}function xk(e){return String(e&&e.model&&e.model.id||``).trim()}function Sk(e){let t=String(e&&e.provider_name||``).trim(),n=xk(e);return t&&n?t+`/`+n:n}function Ck(e){return xk(e)}function wk(e){let t=new Map;for(let n of Array.isArray(e)?e:[]){let e=String(n&&n.selector||``).trim();e&&t.set(e,n)}return t}function Tk(e,t){let n=String(t||``).trim();return n&&wk(e).get(n)||null}function Ek(e,t,n){let r=wk(e),i=Sk(t),a=Ck(t),o=bk(t&&t.provider_name),s=String(n||``).trim();for(let e of[i,a,o,`/`]){if(!e||e===s)continue;let t=r.get(e);if(t)return t}return null}function Dk(e,t,n){let r=e&&e.model&&e.model.metadata?e.model.metadata:null,i=hk(r&&r.pricing),a=vk(r),o=Ek(t,e,n),s=o&&o.pricing?o.pricing:null;if(s){let e=yk(o);for(let t of pk)s[t.value]!==null&&s[t.value]!==void 0&&(i[t.value]=Number(s[t.value]),a[t.value]=e);Array.isArray(s.tiers)&&s.tiers.length>0&&(i.tiers=hk(s.tiers),a.tiers=e)}return{pricing:i,sources:a}}function Ok(e,t){let n=e&&e.pricing?e.pricing:{},r=[];for(let e of pk)n[e.value]!==null&&n[e.value]!==void 0&&r.push({id:t(),field:e.value,value:String(n[e.value])});return r}function kk(e,t){let n=new Set;for(let r of Array.isArray(e)?e:[]){if(t&&r.id===t)continue;let e=String(r.field||``).trim();e&&n.add(e)}return n}function Ak(e,t){let n=kk(e,t&&t.id);return pk.filter(e=>e.value===(t&&t.field)||!n.has(e.value))}function jk(e,t){let n={},r=new Set;for(let t of Array.isArray(e)?e:[]){let e=String(t.field||``).trim();if(!e)return{error:`Choose a price type for every row.`};if(r.has(e))return{error:`Each price type can only be used once.`};r.add(e);let i=String(t.value||``).trim();if(i===``)return{error:`Enter a value for `+mk(e)+`.`};let a=Number(i);if(!Number.isFinite(a)||a<0)return{error:`Pricing values must be numbers greater than or equal to 0.`};n[e]=a}let i=Array.isArray(t)?t:[];return i.length>0&&(n.tiers=hk(i)),Object.keys(n).length===0?{error:`Add at least one pricing field before saving.`}:{pricing:n}}function Mk(e,t,n){let r=e||{},i=t||{},a=n||{},o=gk(r,a);return pk.map(e=>{let t=a[e.value]!==null&&a[e.value]!==void 0,n=r[e.value]!==null&&r[e.value]!==void 0;return{field:e.value,label:e.label,value:o[e.value],source:t?`Form/API value`:n?i[e.value]||`Model registry`:`Unset`}}).filter(e=>e.source!==`Unset`||e.value!==void 0)}var Nk=new class{#e=A(!0);get modelPricingOverridesAvailable(){return L(this.#e)}set modelPricingOverridesAvailable(e){j(this.#e,e,!0)}#t=A(M([]));get modelPricingOverrideViews(){return L(this.#t)}set modelPricingOverrideViews(e){j(this.#t,e,!0)}#n=A(``);get modelPricingOverrideError(){return L(this.#n)}set modelPricingOverrideError(e){j(this.#n,e,!0)}#r=A(!1);get modelPricingOverrideFormOpen(){return L(this.#r)}set modelPricingOverrideFormOpen(e){j(this.#r,e,!0)}#i=A(!1);get modelPricingOverrideSubmitting(){return L(this.#i)}set modelPricingOverrideSubmitting(e){j(this.#i,e,!0)}#a=A(!1);get modelPricingOverrideFormHasExistingOverride(){return L(this.#a)}set modelPricingOverrideFormHasExistingOverride(e){j(this.#a,e,!0)}#o=A(``);get modelPricingOverrideFormDisplayName(){return L(this.#o)}set modelPricingOverrideFormDisplayName(e){j(this.#o,e,!0)}#s=A(``);get modelPricingOverrideFormScope(){return L(this.#s)}set modelPricingOverrideFormScope(e){j(this.#s,e,!0)}#c=A(M([]));get modelPricingOverrideFormScopeOptions(){return L(this.#c)}set modelPricingOverrideFormScopeOptions(e){j(this.#c,e,!0)}#l=A(null);get modelPricingOverrideFormRow(){return L(this.#l)}set modelPricingOverrideFormRow(e){j(this.#l,e,!0)}#u=A(null);get modelPricingOverrideFormBasePricing(){return L(this.#u)}set modelPricingOverrideFormBasePricing(e){j(this.#u,e,!0)}#d=A(null);get modelPricingOverrideFormBasePricingSources(){return L(this.#d)}set modelPricingOverrideFormBasePricingSources(e){j(this.#d,e,!0)}#f=A(M([]));get modelPricingOverrideFormPreservedTiers(){return L(this.#f)}set modelPricingOverrideFormPreservedTiers(e){j(this.#f,e,!0)}#p=A(M([]));get modelPricingOverrideRows(){return L(this.#p)}set modelPricingOverrideRows(e){j(this.#p,e,!0)}#m=A(M({selector:``}));get modelPricingOverrideForm(){return L(this.#m)}set modelPricingOverrideForm(e){j(this.#m,e,!0)}_modelPricingOverrideRowID=0;pricingFieldOptions(){return pk}pricingFieldLabel(e){return mk(e)}async fetchModelPricingOverrides(){this.modelPricingOverrideError=``;try{let e=await Ts(`/admin/model-pricing-overrides`,{label:`model pricing overrides`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideViews=[];return}if(e.stale)return;if(this.modelPricingOverridesAvailable=!0,!e.ok){this.modelPricingOverrideViews=[];return}this.modelPricingOverrideViews=Array.isArray(e.data)?e.data:[]}catch(e){console.error(`Failed to fetch model pricing overrides:`,e),this.modelPricingOverrideViews=[],this.modelPricingOverrideError=`Unable to load model pricing overrides.`}}findModelPricingOverrideView(e){return Tk(this.modelPricingOverrideViews,e)}hasGlobalPricingOverride(){return!!this.findModelPricingOverrideView(`/`)}hasProviderPricingOverride(e){return!!this.findModelPricingOverrideView(bk(e&&e.provider_name))}hasModelPricingOverride(e){return!!this.findModelPricingOverrideView(Sk(e))}modelPricingButtonClass(e){return e?`table-action-btn-active`:``}modelPricingButtonLabel(e,t){let n=`Edit `+String(e||`model pricing`);return t?n+` (override exists)`:n}modelRowPricing(e){return Dk(e,this.modelPricingOverrideViews).pricing}openGlobalPricingOverrideEdit(){this.openModelPricingOverrideForm({displayName:`All providers and models`,selector:`/`,scope:`global`,scopeOptions:[{value:`global`,label:`All providers and models`,selector:`/`}],row:null})}openProviderPricingOverrideEdit(e){let t=bk(e&&e.provider_name);t&&this.openModelPricingOverrideForm({displayName:`All models in `+(e.display_name||e.provider_name||t),selector:t,scope:`provider`,scopeOptions:[{value:`provider`,label:`Provider`,selector:t}],row:null})}openModelPricingOverrideEdit(e){if(!e||e.is_alias)return;let t=Sk(e),n=Ck(e),r=[{value:`exact`,label:`This provider and model`,selector:t}];n&&n!==t&&r.push({value:`model`,label:`This model across providers`,selector:n}),this.openModelPricingOverrideForm({displayName:e.display_name||t,selector:t,scope:`exact`,scopeOptions:r,row:e})}openModelPricingOverrideForm(e){let t=e||{};this.modelPricingOverrideFormOpen=!0,this.modelPricingOverrideError=``,this.modelPricingOverrideFormDisplayName=t.displayName||t.selector||`Pricing`,this.modelPricingOverrideFormScope=t.scope||``,this.modelPricingOverrideFormScopeOptions=Array.isArray(t.scopeOptions)?t.scopeOptions:[],this.modelPricingOverrideFormRow=t.row||null,this.modelPricingOverrideForm={selector:t.selector||``},this.loadModelPricingOverrideFormSelector(t.selector||``)}loadModelPricingOverrideFormSelector(e){e=String(e||``).trim();let t=this.findModelPricingOverrideView(e);this.modelPricingOverrideFormHasExistingOverride=!!t,this.modelPricingOverrideRows=Ok(t,()=>this.nextModelPricingOverrideRowID()),this.modelPricingOverrideFormPreservedTiers=t&&t.pricing&&Array.isArray(t.pricing.tiers)?hk(t.pricing.tiers):[],this.modelPricingOverrideRows.length===0&&this.modelPricingOverrideFormPreservedTiers.length===0&&this.addModelPricingOverrideRow();let n=this.modelPricingOverrideFormRow,r=n?Dk(n,this.modelPricingOverrideViews,e):{pricing:{},sources:{}};this.modelPricingOverrideFormBasePricing=r.pricing,this.modelPricingOverrideFormBasePricingSources=r.sources}setModelPricingOverrideScope(e){this.modelPricingOverrideFormScope=e;let t=this.modelPricingOverrideFormScopeOptions.find(t=>t.value===e);t&&(this.modelPricingOverrideForm.selector=t.selector,this.loadModelPricingOverrideFormSelector(t.selector))}nextModelPricingOverrideRowID(){return this._modelPricingOverrideRowID=(this._modelPricingOverrideRowID||0)+1,`pricing-row-`+this._modelPricingOverrideRowID}availablePricingFieldOptions(e){return Ak(this.modelPricingOverrideRows,e)}addModelPricingOverrideRow(){let e=kk(this.modelPricingOverrideRows),t=pk.find(t=>!e.has(t.value))||pk[0];t&&this.modelPricingOverrideRows.push({id:this.nextModelPricingOverrideRowID(),field:t.value,value:``})}removeModelPricingOverrideRow(e){this.modelPricingOverrideRows=this.modelPricingOverrideRows.filter(t=>t.id!==e.id),this.modelPricingOverrideRows.length===0&&this.modelPricingOverrideFormPreservedTiers.length===0&&this.addModelPricingOverrideRow()}modelPricingOverridePayload(){return jk(this.modelPricingOverrideRows,this.modelPricingOverrideFormPreservedTiers)}modelPricingOverrideDraftPricing(){let e=this.modelPricingOverridePayload();return e&&e.pricing?e.pricing:{}}modelPricingEffectivePreviewRows(){return Mk(this.modelPricingOverrideFormBasePricing,this.modelPricingOverrideFormBasePricingSources,this.modelPricingOverrideDraftPricing())}closeModelPricingOverrideForm(){this.modelPricingOverrideFormOpen=!1,this.modelPricingOverrideSubmitting=!1,this.modelPricingOverrideError=``,this.modelPricingOverrideFormHasExistingOverride=!1,this.modelPricingOverrideFormDisplayName=``,this.modelPricingOverrideFormScope=``,this.modelPricingOverrideFormScopeOptions=[],this.modelPricingOverrideFormRow=null,this.modelPricingOverrideFormBasePricing=null,this.modelPricingOverrideFormBasePricingSources=null,this.modelPricingOverrideFormPreservedTiers=[],this.modelPricingOverrideRows=[],this.modelPricingOverrideForm={selector:``}}async submitModelPricingOverrideForm(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!e){this.modelPricingOverrideError=`Model pricing selector is required.`;return}let t=this.modelPricingOverridePayload();if(t.error){this.modelPricingOverrideError=t.error;return}let n={selector:e,...t};this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let e=await Es(`/admin/model-pricing-overrides`,`PUT`,n,{label:`model pricing override`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=`Model pricing overrides feature is unavailable.`;return}if(e.stale)return;if(!e.ok){this.modelPricingOverrideError=e.status===401?`Authentication required.`:xs(e,`Failed to save model pricing.`);return}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),Y.success(`Model pricing saved.`),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to save model pricing override:`,e),this.modelPricingOverrideError=`Failed to save model pricing.`}finally{this.modelPricingOverrideSubmitting=!1}}async deleteModelPricingOverride(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!(!e||!this.modelPricingOverrideFormHasExistingOverride)&&window.confirm(`Remove the model pricing override for "`+e+`"?`)){this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let t=await Es(`/admin/model-pricing-overrides`,`DELETE`,{selector:e},{label:`model pricing override`});if(t.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=`Model pricing overrides feature is unavailable.`;return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.modelPricingOverrideError=t.status===401?`Authentication required.`:xs(t,`Failed to remove model pricing override.`);return}}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),Y.success(`Model pricing override removed.`),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to delete model pricing override:`,e),this.modelPricingOverrideError=`Failed to remove model pricing override.`}finally{this.modelPricingOverrideSubmitting=!1}}}},Pk=z(``);function Fk(e,t){D(t,!0);var n=Pk();let r;var i=F(N(n),2),a=N(i,!0);E(i),E(n),I((e,i,o)=>{r=W(n,1,`alias-toggle`,null,r,e),n.disabled=fk.rowTogglingKey===t.row.key||!fk.virtualModelsAvailable,G(n,`aria-label`,i),V(a,o)},[()=>({enabled:fk.rowToggleEnabled(t.row),restricted:fk.rowToggleRestricted(t.row)}),()=>fk.rowToggleAriaLabel(t.row),()=>fk.rowToggleLabel(t.row)]),R(`click`,n,()=>fk.toggleRowEnabled(t.row)),B(e,n),O()}Vr([`click`]);var Ik=z(`
`);function Lk(e,t){D(t,!0);var n=Ik(),r=N(n),i=e=>{Fk(e,{get row(){return fk.globalScopeRow}})};H(r,e=>{fk.virtualModelsAvailable&&e(i)});var a=F(r,2),o=e=>{{let t=k(()=>Nk.modelPricingButtonLabel(`global model pricing`,Nk.hasGlobalPricingOverride())),n=k(()=>Nk.modelPricingButtonClass(Nk.hasGlobalPricingOverride()));OT(e,{get label(){return L(t)},get class(){return`table-icon-btn ${L(n)??``}`},onclick:()=>Nk.openGlobalPricingOverrideEdit(),children:(e,t)=>{q(e,{get icon(){return qa},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(a,e=>{Nk.modelPricingOverridesAvailable&&e(o)});var s=F(a,2),c=e=>{{let t=k(()=>QO(`global model access`,fk.hasGlobalModelOverride())),n=k(()=>ZO(fk.hasGlobalModelOverride()));OT(e,{get label(){return L(t)},get class(){return`table-icon-btn ${L(n)??``}`},onclick:()=>fk.openGlobalModelOverrideEdit(),children:(e,t)=>{q(e,{get icon(){return fo},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(s,e=>{fk.virtualModelsAvailable&&e(c)}),E(n),B(e,n),O()}function Rk(e){return String(e&&(e.primary_model||e.source)||``).trim()}function zk(e){return Array.isArray(e&&e.fallback_models)?e.fallback_models:Array.isArray(e&&e.targets)?e.targets:[]}function Bk(e){return Array.isArray(e)?e.map(e=>({...e,source:Rk(e),targets:zk(e)})):[]}function Vk(e){let t=zk(e);return t.length===0?`-`:t.join(`, `)}function Hk(e){return e&&e.enabled===!1?`Off`:e&&e.managed?`Config`:`On`}function Uk(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>Rk(e)===n)||null}function Wk(e,t){if(!t||t.is_alias)return!1;let n=Uk(e,pO(t));return!!(n&&n.enabled!==!1&&zk(n).length>0)}function Gk(e,t){return Wk(e,t)?`table-action-btn-failover-active`:``}function Kk(e,t){let n=`Edit failover for `+(t&&t.display_name?t.display_name:`model`);return Wk(e,t)?n+` (active)`:n}function qk(e){let t=[e&&e.target_model];return(Array.isArray(e&&e.targets)?e.targets:[]).forEach(e=>t.push(e&&e.model)),t.map(e=>String(e||``).trim()).filter(Boolean)}function Jk(e){let t=Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(Boolean):[];return{target_model:t[0]||``,targets:t.slice(1).map(e=>({model:e}))}}function Yk(e){return{primary_model:String(e&&e.source||``).trim(),fallback_models:qk(e),enabled:!(e&&e.enabled===!1)}}function Xk(e){return Rk(e)}function Zk(e){let t={};return(Array.isArray(e)?e:[]).forEach(e=>{let n=Xk(e);n&&(t[n]=!0)}),t}function Qk(e,t){let n=Xk(t);return!!(n&&e&&e[n])}function $k(e,t){return(Array.isArray(e)?e:[]).filter(e=>Qk(t,e))}function eA(e,t){let n=Array.isArray(e)?e:[];return n.length>0&&$k(n,t).length===n.length}function tA(e){return[Rk(e),zk(e).join(` `)].join(` `).toLowerCase()}function nA(e,t){let n=Array.isArray(e)?e:[],r=String(t||``).trim().toLowerCase();return r?n.filter(e=>tA(e).includes(r)):n}function rA(e){return{primary_model:Rk(e),fallback_models:zk(e).map(e=>String(e||``).trim()).filter(Boolean),enabled:!!(e&&e.enabled!==!1)}}function iA(){return{source:``,target_model:``,targets:[],enabled:!0}}var Q=new class{#e=A(!0);get failoverAvailable(){return L(this.#e)}set failoverAvailable(e){j(this.#e,e,!0)}#t=A(M([]));get failoverRules(){return L(this.#t)}set failoverRules(e){j(this.#t,e,!0)}#n=A(!1);get failoverLoading(){return L(this.#n)}set failoverLoading(e){j(this.#n,e,!0)}#r=A(!1);get failoverSaving(){return L(this.#r)}set failoverSaving(e){j(this.#r,e,!0)}#i=A(!1);get failoverGenerating(){return L(this.#i)}set failoverGenerating(e){j(this.#i,e,!0)}#a=A(``);get failoverError(){return L(this.#a)}set failoverError(e){j(this.#a,e,!0)}#o=A(M([]));get failoverGeneratedRules(){return L(this.#o)}set failoverGeneratedRules(e){j(this.#o,e,!0)}#s=A(!1);get failoverDraftsOpen(){return L(this.#s)}set failoverDraftsOpen(e){j(this.#s,e,!0)}#c=A(M({}));get failoverDraftSelections(){return L(this.#c)}set failoverDraftSelections(e){j(this.#c,e,!0)}#l=A(``);get failoverDraftFilter(){return L(this.#l)}set failoverDraftFilter(e){j(this.#l,e,!0)}#u=A(!1);get failoverDraftSaving(){return L(this.#u)}set failoverDraftSaving(e){j(this.#u,e,!0)}#d=A(!1);get failoverFormOpen(){return L(this.#d)}set failoverFormOpen(e){j(this.#d,e,!0)}#f=A(`create`);get failoverFormMode(){return L(this.#f)}set failoverFormMode(e){j(this.#f,e,!0)}#p=A(!1);get failoverFormManaged(){return L(this.#p)}set failoverFormManaged(e){j(this.#p,e,!0)}#m=A(M(iA()));get failoverForm(){return L(this.#m)}set failoverForm(e){j(this.#m,e,!0)}failoverEnabled(){return As.booleanFlag(`FAILOVER_ENABLED`,!0)}async fetchFailoverRules(){if(!this.failoverEnabled()){this.failoverAvailable=!1,this.failoverRules=[],this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,this.failoverError=``,this.failoverLoading=!1;return}this.failoverLoading=!0,this.failoverError=``;try{let e=await Ts(`/admin/failover`,{label:`failover mappings`});if(e.status===503){this.failoverAvailable=!1,this.failoverRules=[];return}if(e.stale)return;if(this.failoverAvailable=!0,!e.ok){this.failoverRules=[];return}this.failoverRules=Bk(e.data)}catch(e){console.error(`Failed to fetch failover mappings:`,e),this.failoverRules=[],this.failoverError=`Unable to load failover mappings.`}finally{this.failoverLoading=!1}}resetFailoverForm(){this.failoverFormMode=`create`,this.failoverFormManaged=!1,this.failoverForm=iA()}openFailoverCreate(){this.resetFailoverForm(),this.failoverFormOpen=!0,this.focusFailoverEditor()}openFailoverEdit(e){if(!e)return;this.resetFailoverForm(),this.failoverFormMode=`edit`,this.failoverFormOpen=!0,this.failoverFormManaged=!!e.managed;let t=this.failoverPrimaryModel(e),n=this.failoverTargets(e);this.failoverForm={source:t,target_model:n[0]||``,targets:n.slice(1).map(e=>({model:e})),enabled:e.enabled!==!1},this.focusFailoverEditor()}openFailoverForModel(e){if(!e||e.is_alias)return;let t=this.qualifiedModelName(e),n=this.failoverRules.find(e=>this.failoverPrimaryModel(e)===t);if(n){this.openFailoverEdit(n);return}this.resetFailoverForm(),this.failoverFormMode=`create`,this.failoverFormOpen=!0,this.failoverForm.source=t,this.focusFailoverEditor()}closeFailoverForm(){this.failoverFormOpen=!1}closeFailoverDraftsModal(){this.failoverDraftSaving||(this.failoverDraftsOpen=!1)}failoverFormTargets(){return qk(this.failoverForm)}setFailoverFormTargets(e){let t=Jk(e);this.failoverForm.target_model=t.target_model,this.failoverForm.targets=t.targets}addFailoverTarget(){Array.isArray(this.failoverForm.targets)||(this.failoverForm.targets=[]),this.failoverForm.targets.push({model:``}),this.focusFailoverEditor()}removeFailoverTarget(e){if(!Array.isArray(this.failoverForm.targets)){this.failoverForm.targets=[];return}this.failoverForm.targets.splice(e,1)}removePrimaryFailoverTarget(){let e=Array.isArray(this.failoverForm.targets)?this.failoverForm.targets:[];if(e.length>0){let t=e.shift();this.failoverForm.target_model=t&&t.model?t.model:``,this.failoverForm.targets=e;return}this.failoverForm.target_model=``}failoverRulePayload(){return Yk(this.failoverForm)}async submitFailoverForm(){if(this.failoverSaving||this.failoverGenerating||this.failoverFormManaged)return;let e=this.failoverRulePayload();if(!e.primary_model){this.failoverError=`Primary model is required.`;return}if(e.enabled&&e.fallback_models.length===0){this.failoverError=`Add at least one failover target.`;return}this.failoverSaving=!0,this.failoverError=``;try{let t=await Es(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(t.stale)return;if(!t.ok){this.failoverError=`Failed to save failover mapping.`;return}Y.success(`Failover mapping saved.`),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to save failover mapping:`,e),this.failoverError=`Failed to save failover mapping.`}finally{this.failoverSaving=!1}}async deleteFailoverRule(e){let t=String(e&&this.failoverPrimaryModel(e)||this.failoverForm.source||``).trim();if(!(!t||this.failoverSaving||this.failoverGenerating)&&confirm(`Remove failover mapping for "`+t+`"?`)){this.failoverSaving=!0,this.failoverError=``;try{let e=await Es(`/admin/failover`,`DELETE`,{primary_model:t},{label:`failover mapping`});if(e.stale)return;if(!e.ok){this.failoverError=`Failed to remove failover mapping.`;return}Y.success(`Failover mapping removed.`),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to remove failover mapping:`,e),this.failoverError=`Failed to remove failover mapping.`}finally{this.failoverSaving=!1}}}async generateFailoverForForm(){if(this.failoverGenerating||this.failoverSaving||this.failoverFormManaged)return;let e=String(this.failoverForm.source||``).trim();if(!e){this.failoverError=`Primary model is required.`;return}this.failoverGenerating=!0,this.failoverError=``;try{let t=await Es(`/admin/failover/generate`,`POST`,{primary_model:e},{label:`failover generation`});if(t.stale)return;if(!t.ok){this.failoverError=`Failed to generate failover mapping.`;return}let n=Bk(t.data),r=n.find(t=>this.failoverPrimaryModel(t)===e)||n[0]||null,i=this.failoverTargets(r);if(i.length===0){this.failoverError=`No failover suggestions were generated for this model.`;return}this.setFailoverFormTargets(i),Y.success(`Generated `+i.length+` fallback model`+(i.length===1?`.`:`s.`)),this.focusFailoverEditor()}catch(e){console.error(`Failed to generate failover mapping:`,e),this.failoverError=`Failed to generate failover mapping.`}finally{this.failoverGenerating=!1}}openFailoverResetDialog(){Ys.open({title:`Remove failover models`,titleId:`failoverResetDialogTitle`,inputId:`failover-reset-confirmation`,message:`Remove every dashboard-managed failover mapping. Configuration-managed mappings remain active.`,requiredText:`remove`,confirmLabel:`Remove Failover`,icon:jo,dialogClass:`budget-reset-dialog`,onConfirm:async()=>{await this.resetFailoverRules(),this.failoverError&&(Ys.error=this.failoverError)}})}async resetFailoverRules(){if(!this.failoverSaving){this.failoverSaving=!0,this.failoverError=``;try{let e=await Es(`/admin/failover/reset`,`POST`,void 0,{label:`failover removal`});if(e.stale)return;if(!e.ok){this.failoverError=`Failed to remove failover mappings.`;return}this.failoverRules=Bk(e.data),this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,Y.success(`Dashboard-managed failover mappings removed.`),Ys.close()}catch(e){console.error(`Failed to remove failover mappings:`,e),this.failoverError=`Failed to remove failover mappings.`}finally{this.failoverSaving=!1}}}async generateFailoverRules(){if(!(this.failoverGenerating||this.failoverDraftSaving)){this.failoverGenerating=!0,this.failoverError=``,this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!0;try{let e=await Es(`/admin/failover/generate`,`POST`,void 0,{label:`failover generation`});if(e.stale)return;if(!e.ok){this.failoverError=`Failed to generate failover mappings.`;return}this.failoverGeneratedRules=Bk(e.data),this.selectAllFailoverDrafts(this.failoverGeneratedRules)}catch(e){console.error(`Failed to generate failover mappings:`,e),this.failoverError=`Failed to generate failover mappings.`}finally{this.failoverGenerating=!1}}}failoverDraftKey(e){return Xk(e)}selectAllFailoverDrafts(e){this.failoverDraftSelections=Zk(e)}failoverDraftSelected(e){return Qk(this.failoverDraftSelections,e)}setFailoverDraftSelected(e,t){let n=this.failoverDraftKey(e);n&&(this.failoverDraftSelections={...this.failoverDraftSelections,[n]:!!t})}selectedFailoverDrafts(){return $k(this.failoverGeneratedRules,this.failoverDraftSelections)}selectedFailoverDraftCount(){return this.selectedFailoverDrafts().length}failoverDraftCountLabel(){return this.selectedFailoverDraftCount()+` / `+this.failoverGeneratedRules.length+` selected`}allFailoverDraftsSelected(){return eA(this.failoverGeneratedRules,this.failoverDraftSelections)}toggleAllFailoverDrafts(){if(!(this.failoverDraftSaving||this.failoverGenerating||this.failoverGeneratedRules.length===0)){if(this.allFailoverDraftsSelected()){this.failoverDraftSelections={};return}this.selectAllFailoverDrafts(this.failoverGeneratedRules)}}failoverDraftSearchText(e){return tA(e)}filteredFailoverDrafts(){return nA(this.failoverGeneratedRules,this.failoverDraftFilter)}failoverDraftPayload(e){return rA(e)}async saveSelectedFailoverDrafts(){if(this.failoverDraftSaving||this.failoverGenerating)return;let e=this.selectedFailoverDrafts();if(e.length===0){this.failoverError=`Select at least one failover draft.`;return}this.failoverDraftSaving=!0,this.failoverError=``;try{for(let t of e){let e=this.failoverDraftPayload(t);if(!e.primary_model||e.fallback_models.length===0){this.failoverError=`Generated failover draft is missing model data.`;return}let n=await Es(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(n.stale)return;if(!n.ok){this.failoverError=`Failed to save failover mapping.`;return}}Y.success(`Saved `+e.length+` failover mapping`+(e.length===1?`.`:`s.`)),this.failoverDraftsOpen=!1,this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.fetchFailoverRules()}catch(e){console.error(`Failed to save generated failover mappings:`,e),this.failoverError=`Failed to save failover mappings.`}finally{this.failoverDraftSaving=!1}}focusFailoverEditor(){setTimeout(()=>{let e=document.querySelector(`[data-failover-editor]`),t=e&&e.querySelector?e.querySelector(`[data-modal-autofocus], input:not([disabled]), textarea:not([disabled]), button:not([disabled])`):null;t&&typeof t.focus==`function`&&t.focus({preventScroll:!0})},0)}failoverTargetLabel(e){return Vk(e)}failoverPrimaryModel(e){return Rk(e)}failoverTargets(e){return zk(e)}findFailoverMapping(e){return Uk(this.failoverRules,e)}hasActiveFailoverMapping(e){return Wk(this.failoverRules,e)}failoverButtonClass(e){return Gk(this.failoverRules,e)}failoverButtonLabel(e){return Kk(this.failoverRules,e)}normalizeFailoverRules(e){return Bk(e)}failoverRuleStatus(e){return Hk(e)}qualifiedModelName(e){return pO(e)}},aA=z(``),oA=z(``),sA=z(`Config`),cA=z(`
Targets
`),lA=z(``),uA=z(`
Redirects to
`),dA=z(` `),fA=z(`
`),pA=z(`
`),mA=z(`
`);function hA(e,t){D(t,!0);let n=k(()=>Nk.modelRowPricing(t.row));var r=mA(),i=N(r),a=N(i),o=N(a),s=N(o),c=N(s,!0);E(s);var l=F(s,2),u=e=>{B(e,aA())};H(l,e=>{t.row.is_alias&&e(u)});var d=F(l,2),f=e=>{B(e,oA())};H(d,e=>{!t.row.is_alias&&t.row.masking_alias&&e(f)});var p=F(d,2),m=e=>{B(e,sA())},h=k(()=>YO(t.row));H(p,e=>{L(h)&&e(m)}),E(o);var g=F(o,2),_=e=>{var n=cA(),r=F(N(n)),i=N(r,!0);E(r),E(n),I(()=>V(i,t.row.secondary_name)),B(e,n)};H(g,e=>{t.row.is_alias&&e(_)});var v=F(g,2),y=e=>{var n=uA(),r=F(N(n)),i=N(r,!0);E(r);var a=F(r,2),o=e=>{var n=lA();I(e=>{G(n,`aria-label`,fk.rowDeletingKey===t.row.key?`Removing redirect for `+t.row.display_name:`Remove redirect for `+t.row.display_name),G(n,`title`,fk.rowDeletingKey===t.row.key?`Removing redirect for `+t.row.display_name:`Remove redirect for `+t.row.display_name),n.disabled=e},[()=>!!fk.rowDeletingKey]),R(`click`,n,()=>fk.removeRedirectRow(t.row)),B(e,n)},s=k(()=>fk.virtualModelsAvailable&&qO(t.row));H(a,e=>{L(s)&&e(o)}),E(n),I(e=>V(i,e),[()=>EO(t.row.masking_alias)]),B(e,n)};H(v,e=>{!t.row.is_alias&&t.row.masking_alias&&e(y)}),E(a),E(i);var b=F(i);U(b,17,()=>t.columns,ai,(e,r)=>{var i=dA(),a=N(i,!0);E(i),I(e=>{W(i,1,Pi(L(r).class),`svelte-1iynym`),V(a,e)},[()=>L(r).value(t.row,L(n))]),B(e,i)});var x=F(b),S=N(x),C=e=>{var n=fA(),r=N(n);Fk(r,{get row(){return t.row}});var i=F(r,2),a=e=>{{let n=k(()=>fk.rowDeletingKey===t.row.key?`Removing alias `+t.row.alias.name:`Remove alias `+t.row.alias.name),r=k(()=>!!fk.rowDeletingKey);OT(e,{get label(){return L(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>fk.removeAliasRow(t.row),get disabled(){return L(r)},children:(e,t)=>{q(e,{get icon(){return jo},class:`table-icon-svg`})},$$slots:{default:!0}})}},o=k(()=>fk.virtualModelsAvailable&&KO(t.row));H(i,e=>{L(o)&&e(a)});var s=F(i,2),c=e=>{{let n=k(()=>`Edit alias `+t.row.alias.name);OT(e,{get label(){return L(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>fk.openVirtualModelEditAlias(t.row.alias),children:(e,t)=>{q(e,{get icon(){return fo},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(s,e=>{fk.virtualModelsAvailable&&e(c)}),E(n),B(e,n)},w=e=>{var n=pA(),r=N(n);Fk(r,{get row(){return t.row}});var i=F(r,2),a=e=>{{let n=k(()=>Nk.modelPricingButtonLabel(`model pricing for `+t.row.display_name,Nk.hasModelPricingOverride(t.row))),r=k(()=>Nk.modelPricingButtonClass(Nk.hasModelPricingOverride(t.row)));OT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Nk.openModelPricingOverrideEdit(t.row),children:(e,t)=>{q(e,{get icon(){return qa},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(i,e=>{Nk.modelPricingOverridesAvailable&&e(a)});var o=F(i,2),s=e=>{{let n=k(()=>Q.failoverButtonLabel(t.row)),r=k(()=>Q.failoverButtonClass(t.row));OT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Q.openFailoverForModel(t.row),children:(e,t)=>{q(e,{get icon(){return Do},class:`table-icon-svg`})},$$slots:{default:!0}})}},c=k(()=>Q.failoverAvailable&&Q.failoverEnabled());H(o,e=>{L(c)&&e(s)});var l=F(o,2),u=e=>{{let n=k(()=>Z.rateLimitGaugeTitle(t.row.display_name,Z.rateLimitGaugeClassForModel(t.row))),r=k(()=>Z.rateLimitGaugeClassForModel(t.row));OT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Z.openRateLimitInspectorForModel(t.row),children:(e,t)=>{q(e,{get icon(){return $a},class:`table-icon-svg`})},$$slots:{default:!0}})}},d=k(()=>Z.rateLimitsEnabled()&&Z.rateLimitInspectorModelID(t.row));H(l,e=>{L(d)&&e(u)});var f=F(l,2),p=e=>{{let n=k(()=>`Edit redirect for `+t.row.display_name);OT(e,{get label(){return L(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>fk.openVirtualModelEditAlias(t.row.masking_alias),children:(e,t)=>{q(e,{get icon(){return fo},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(f,e=>{fk.virtualModelsAvailable&&t.row.masking_alias&&t.row.masking_alias.name&&e(p)});var m=F(f,2),h=e=>{{let n=k(()=>QO(`model access for `+t.row.display_name,XO(t.row.access))),r=k(()=>ZO(XO(t.row.access)));OT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>fk.openVirtualModelEditModel(t.row),children:(e,t)=>{q(e,{get icon(){return fo},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(m,e=>{fk.virtualModelsAvailable&&!t.row.masking_alias&&e(h)}),E(n),B(e,n)};H(S,e=>{t.row.is_alias?e(C):e(w,-1)}),E(x),E(r),I((e,n)=>{G(r,`id`,e),W(r,1,n,`svelte-1iynym`),V(c,t.row.display_name)},[()=>JO(t.row)||void 0,()=>Pi(GO(t.row))]),B(e,r),O()}Vr([`click`]);var gA={headerLines:[`Modes`],value:e=>(e.model?.metadata?.modes??[]).join(`, `)||`-`};function _A(e,t){return{headerLines:e,class:`col-price`,value:t}}var vA=_A([`Input / Output ($/MTok)`],(e,t)=>yc(t?.input_per_mtok)+` / `+yc(t?.output_per_mtok)),yA={all:[vA],text_generation:[gA,vA,_A([`Cached $/MTok`],(e,t)=>yc(t?.cached_input_per_mtok))],embedding:[_A([`Input`,`$/MTok`],(e,t)=>yc(t?.input_per_mtok))],image:[_A([`$/Image`],(e,t)=>bc(t?.per_image))],audio:[_A([`$/Second`],(e,t)=>bc(t?.per_second_input)),_A([`$/Character`],(e,t)=>bc(t?.per_character_input))],video:[_A([`$/Second (In)`],(e,t)=>bc(t?.per_second_input)),_A([`$/Second (Out)`],(e,t)=>bc(t?.per_second_output))],utility:[_A([`$/Page`],(e,t)=>bc(t?.per_page)),_A([`$/Request`],(e,t)=>bc(t?.per_request))]};function bA(e){return yA[e]||yA.all}function xA(e){return bA(e).length+2}var SA=z(`
`),CA=z(` `,1),wA=z(``),TA=z(` `),EA=z(` `),DA=z(`
`),OA=z(`
`),kA=z(`
Model
`);function AA(e,t){D(t,!0);let n=k(()=>Wc.activeCategory||`all`),r=k(()=>bA(L(n))),i=k(()=>xA(L(n)));var a=kA(),o=N(a),s=N(o),c=N(s),l=F(N(c));U(l,17,()=>L(r),ai,(e,t)=>{var n=wA();U(n,21,()=>L(t).headerLines,ai,(e,t,n)=>{var r=CA(),i=P(r),a=e=>{B(e,SA())};H(i,e=>{n>0&&e(a)});var o=F(i,1,!0);I(()=>V(o,L(t))),B(e,r)}),E(n),I(()=>W(n,1,Pi(L(t).class),`svelte-1911hy6`)),B(e,n)});var u=F(l);Lk(N(u),{}),E(u),E(c),E(s),U(F(s),17,()=>fk.filteredDisplayModelGroups,e=>e.key,(e,t)=>{var n=OA(),a=N(n),o=N(a),s=N(o),c=N(s),l=N(c),u=N(l),d=N(u,!0);E(u);var f=F(u,2),p=e=>{var n=TA(),r=N(n,!0);E(n),I(()=>V(r,`(`+L(t).type_label+`)`)),B(e,n)};H(f,e=>{L(t).type_label&&e(p)});var m=F(f,2),h=e=>{var n=EA(),r=N(n,!0);E(n),I(()=>V(r,L(t).item_count_label)),B(e,n)};H(m,e=>{L(t).item_count_label&&e(h)}),E(l);var g=F(l,2),_=e=>{var n=DA(),r=N(n,!0);E(n),I(()=>V(r,L(t).access_summary)),B(e,n)};H(g,e=>{L(t).access_summary&&e(_)}),E(c);var v=F(c,2),y=N(v),b=e=>{Fk(e,{get row(){return L(t)}})};H(y,e=>{L(t).access.selector&&e(b)});var x=F(y,2),S=e=>{{let n=k(()=>Nk.modelPricingButtonLabel(`provider pricing for `+L(t).display_name,Nk.hasProviderPricingOverride(L(t)))),r=k(()=>Nk.modelPricingButtonClass(Nk.hasProviderPricingOverride(L(t))));OT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Nk.openProviderPricingOverrideEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return qa},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(x,e=>{Nk.modelPricingOverridesAvailable&&L(t).provider_name&&e(S)});var C=F(x,2),w=e=>{{let n=k(()=>Z.rateLimitGaugeTitle(`provider `+L(t).display_name,Z.rateLimitGaugeClassForProvider(L(t)))),r=k(()=>Z.rateLimitGaugeClassForProvider(L(t)));OT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Z.openRateLimitInspectorForProvider(L(t)),children:(e,t)=>{q(e,{get icon(){return $a},class:`table-icon-svg`})},$$slots:{default:!0}})}},T=k(()=>Z.rateLimitsEnabled()&&L(t).provider_name);H(C,e=>{L(T)&&e(w)});var ee=F(C,2),te=e=>{{let n=k(()=>QO(`provider access for `+L(t).display_name,XO(L(t).access))),r=k(()=>ZO(XO(L(t).access)));OT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>fk.openProviderOverrideEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return fo},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(ee,e=>{fk.virtualModelsAvailable&&L(t).access.selector&&e(te)}),E(v),E(s),E(o),E(a),U(F(a),17,()=>L(t).rows,e=>e.key,(e,t)=>{hA(e,{get row(){return L(t)},get columns(){return L(r)}})}),E(n),I(()=>{G(o,`colspan`,L(i)),V(d,L(t).display_name)}),B(e,n)}),E(o),E(a),B(e,a),O()}var jA=z(``);function MA(e,t){let n=K(t,`enabled`,3,!1),r=K(t,`label`,3,``),i=K(t,`disabled`,3,!1),a=K(t,`restricted`,3,!1);var o=jA();let s;var c=F(N(o),2),l=N(c,!0);E(c),E(o),I(()=>{s=W(o,1,`alias-toggle`,null,s,{enabled:n(),restricted:a()}),o.disabled=i(),G(o,`aria-label`,(n()?`Disable `:`Enable `)+r()),V(l,t.text??(n()?`Enabled`:`Disabled`))}),R(`click`,o,function(...e){t.onclick?.apply(this,e)}),B(e,o)}Vr([`click`]);var NA=z(``),PA=z(`
`);function FA(e,t){D(t,!0);let n=K(t,`model`,15,``),r=K(t,`weight`,15),i=K(t,`id`,3,void 0),a=K(t,`placeholder`,3,`openai/gpt-4o`),o=K(t,`showRemove`,3,!0);var s=PA(),c=N(s);ta(c);var l=F(c,2),u=e=>{var t=NA();ta(t),I(()=>t.disabled=fk.vmFormManaged),ua(t,r),B(e,t)},d=k(()=>fk.vmFormShowWeights());H(l,e=>{L(d)&&e(u)});var f=F(l,2),p=e=>{OT(e,{label:`Remove target`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,get onclick(){return t.onremove},get disabled(){return fk.vmFormManaged},children:(e,t)=>{q(e,{get icon(){return jo},class:`table-icon-svg`})},$$slots:{default:!0}})};H(f,e=>{o()&&e(p)}),E(s),I(()=>{G(c,`id`,i()),G(c,`placeholder`,a()),c.disabled=fk.vmFormManaged}),ua(c,n),B(e,s),O()}var IA=z(`

`),LA=z(`adaptive lets the registered routing extension pick the target per - request.`,1),RA=z(`Add one target to make this a redirect/alias, or two or more to load - balance across them, then pick a strategy: round_robin rotates across targets - (weight biases the share) and cost always routes to the cheapest available - target. Leave Targets empty to make it only an access policy on the Source selector. The selector uses / for all providers and - models, for one provider, or for one model. user_paths is - matched against the effective request user_path: the managed API key user_path when present, otherwise the configured user path request header.`,1),zA=z(``),BA=z(`

This virtual model is defined in configuration (config.yaml / VIRTUAL_MODELS) and is read-only here. Edit your configuration to change it.

`),VA=z(``),HA=z(``),UA=z(``),WA=z(`
`,1),GA=z(``),KA=z(`Use / to allow every user path. Use a team path to restrict to that - subtree, or an unused path to make the selector unavailable.`,1),qA=z(``),JA=z(` `),YA=z(`
Targets
`,1);function XA(e,t){D(t,!0);let n=fk;kn(()=>{n.vmFormOpen&&As.ensureLoaded()});{let t=e=>{iC(e,{copyId:`virtual-model-help-copy`,label:`virtual model help`,get open(){return n.vmFormHelpOpen},set open(e){n.vmFormHelpOpen=e},title:e=>{var t=IA(),r=N(t,!0);E(t),I(()=>V(r,n.vmFormDisplayName||n.vmForm.source||`Virtual model`)),B(e,t)},help:e=>{He();var t=RA(),n=F(P(t),7),r=e=>{var t=LA();He(),B(e,t)},i=k(()=>As.virtualModelStrategies().includes(`adaptive`));H(n,e=>{L(i)&&e(r)});var a=F(n,8);a.textContent=`{provider_name}/`;var o=F(a,2);o.textContent=`{provider_name}/{model}`,He(7),B(e,t)},$$slots:{title:!0,help:!0}})},r=e=>{var t=Zr(),r=P(t),i=e=>{var t=zA();I(()=>t.disabled=n.vmDeleting||n.vmSubmitting),R(`click`,t,()=>n.deleteVirtualModel()),B(e,t)};H(r,e=>{n.vmFormHasExisting&&!n.vmFormManaged&&e(i)}),B(e,t)},i=k(()=>n.vmDeleting||n.vmFormManaged),a=k(()=>n.vmFormMode===`edit`?`Save`:`Create`),o=k(()=>n.vmFormMode===`edit`?vo:mo);ME(e,{get open(){return n.vmFormOpen},ariaLabel:`Virtual model editor`,get error(){return n.vmFormError},get submitting(){return n.vmSubmitting},get submitDisabled(){return L(i)},get submitLabel(){return L(a)},get submitIcon(){return L(o)},onclose:()=>n.closeVirtualModelForm(),onsubmit:()=>n.submitVirtualModelForm(),header:t,extraActions:r,children:(e,t)=>{var r=YA(),i=P(r),a=e=>{B(e,BA())};H(i,e=>{n.vmFormManaged&&e(a)});var o=F(i,2);PE(o,{id:`virtual-model-source`,label:`Source`,children:(e,t)=>{var r=VA();ta(r),I(()=>r.disabled=n.vmFormSourceLocked||n.vmFormManaged),ua(r,()=>n.vmForm.source,e=>n.vmForm.source=e),B(e,r)},$$slots:{default:!0}});var s=F(o,2);U(s,21,()=>Wc.models,e=>pO(e),(e,t)=>{var n=HA(),r=N(n,!0);E(n);var i={};I((e,t)=>{V(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>pO(L(t)),()=>pO(L(t))]),B(e,n)}),E(s);var c=F(s,2),l=F(N(c),2);{let e=k(()=>n.vmFormHasPrimaryTarget());FA(l,{id:`virtual-model-target`,get showRemove(){return L(e)},onremove:()=>n.removePrimaryTarget(),get model(){return n.vmForm.target_model},set model(e){n.vmForm.target_model=e},get weight(){return n.vmForm.target_weight},set weight(e){n.vmForm.target_weight=e}})}var u=F(l,2);U(u,17,()=>n.vmForm.targets,ai,(e,t,r)=>{FA(e,{placeholder:`groq/llama`,onremove:()=>n.removeVmTarget(r),get model(){return L(t).model},set model(e){L(t).model=e},get weight(){return L(t).weight},set weight(e){L(t).weight=e}})});var d=F(u,2),f=N(d);q(N(f),{get icon(){return mo},class:`form-action-icon`}),He(2),E(f),E(d),E(c);var p=F(c,2),m=e=>{var t=WA(),r=P(t);PE(r,{id:`virtual-model-strategy`,label:`Load-balancing strategy`,children:(e,t)=>{var r=UA();U(r,21,()=>n.vmStrategyOptions(),e=>e.value,(e,t)=>{var n=HA(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(r),I(()=>r.disabled=n.vmFormManaged),Wi(r,()=>n.vmForm.strategy,e=>n.vmForm.strategy=e),B(e,r)},$$slots:{default:!0}});var i=F(r,2),a=N(i),o=N(a);ta(o),He(2),E(a),E(i),I(()=>o.disabled=n.vmFormManaged),da(o,()=>n.vmForm.session_affinity,e=>n.vmForm.session_affinity=e),B(e,t)},h=k(()=>n.vmFormShowStrategy());H(p,e=>{L(h)&&e(m)});var g=F(p,2),_=N(g);iC(_,{copyId:`virtual-model-user-paths-help`,label:`user paths help`,get open(){return n.vmFormUserPathsHelpOpen},set open(e){n.vmFormUserPathsHelpOpen=e},title:e=>{B(e,GA())},help:e=>{He();var t=KA();He(2),B(e,t)},$$slots:{title:!0,help:!0}});var v=F(_,2);dt(v),G(v,`placeholder`,`/ -/team/alpha -/non-existing`),E(g);var y=F(g,2);PE(y,{id:`virtual-model-description`,label:`Description`,children:(e,t)=>{var r=qA();dt(r),I(()=>r.disabled=n.vmFormManaged),ua(r,()=>n.vmForm.description,e=>n.vmForm.description=e),B(e,r)},$$slots:{default:!0}});var b=F(y,2),x=N(b),S=e=>{var t=JA(),r=N(t,!0);E(t),I(()=>V(r,`Default enabled: `+(n.vmFormDefaultEnabled?`yes`:`no`)+` · Effective now: `+(n.vmFormEffectiveEnabled?`yes`:`no`))),B(e,t)};H(x,e=>{n.vmFormMode===`edit`&&e(S)});var C=F(x,2),w=N(C);{let e=k(()=>n.vmFormToggleRestricted()),t=k(()=>n.vmFormToggleLabel());MA(w,{get enabled(){return n.vmForm.enabled},get restricted(){return L(e)},label:`virtual model`,get disabled(){return n.vmFormManaged},get text(){return L(t)},onclick:()=>{n.vmFormManaged||(n.vmForm.enabled=!n.vmForm.enabled)}})}E(C),E(b),I(()=>{f.disabled=n.vmFormManaged,v.disabled=n.vmFormManaged}),R(`click`,f,()=>n.addVmTarget()),ua(v,()=>n.vmForm.user_paths,e=>n.vmForm.user_paths=e),B(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}O()}Vr([`click`]);var ZA=z(`

Pricing override

`,1),QA=z(``),$A=z(``),ej=z(``),tj=z(``),nj=z(`
`),rj=z(`
Tiered pricing exists for this override and will be preserved. Tier editing can be added - without a database migration.
`),ij=z(`
No pricing fields set.
`),aj=z(`
`),oj=z(`

Currency is USD. Saved fields override model registry and config.yaml pricing for this - selector; unset fields continue to inherit.

Price Type USD Source
`,1);function sj(e,t){D(t,!0);let n=Nk;ME(e,{get open(){return n.modelPricingOverrideFormOpen},ariaLabel:`Model pricing editor`,dialogClass:`model-pricing-editor`,get error(){return n.modelPricingOverrideError},get submitting(){return n.modelPricingOverrideSubmitting},submitLabel:`Save Pricing`,onclose:()=>n.closeModelPricingOverrideForm(),onsubmit:()=>n.submitModelPricingOverrideForm(),header:e=>{var t=ZA(),r=F(P(t),2),i=N(r,!0);E(r),I(()=>V(i,n.modelPricingOverrideFormDisplayName||n.modelPricingOverrideForm.selector||`Pricing`)),B(e,t)},extraActions:e=>{var t=Zr(),r=P(t),i=e=>{var t=QA();I(()=>t.disabled=n.modelPricingOverrideSubmitting),R(`click`,t,()=>n.deleteModelPricingOverride()),B(e,t)};H(r,e=>{n.modelPricingOverrideFormHasExistingOverride&&e(i)}),B(e,t)},children:(e,t)=>{var r=oj(),i=P(r),a=N(i);PE(a,{id:`model-pricing-override-selector`,label:`Selector`,children:(e,t)=>{var r=$A();ta(r),ua(r,()=>n.modelPricingOverrideForm.selector,e=>n.modelPricingOverrideForm.selector=e),B(e,r)},$$slots:{default:!0}});var o=F(a,2),s=e=>{PE(e,{id:`model-pricing-override-scope`,label:`Scope`,children:(e,t)=>{var r=tj();U(r,21,()=>n.modelPricingOverrideFormScopeOptions,e=>e.value,(e,t)=>{var n=ej(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(r),R(`change`,r,()=>n.setModelPricingOverrideScope(n.modelPricingOverrideFormScope)),Wi(r,()=>n.modelPricingOverrideFormScope,e=>n.modelPricingOverrideFormScope=e),B(e,r)},$$slots:{default:!0}})};H(o,e=>{n.modelPricingOverrideFormScopeOptions.length>1&&e(s)}),E(i);var c=F(i,4);U(c,21,()=>n.modelPricingOverrideRows,e=>e.id,(e,t,r)=>{var i=nj(),a=N(i),o=N(a),s=F(o,2);U(s,21,()=>n.availablePricingFieldOptions(L(t)),e=>e.value,(e,t)=>{var n=ej(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).group+` - `+L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(s),E(a);var c=F(a,2),l=N(c),u=F(l,2);ta(u),E(c);var d=F(c,2);{let e=k(()=>`Remove `+n.pricingFieldLabel(L(t).field));OT(d,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn pricing-override-remove-row`,onclick:()=>n.removeModelPricingOverrideRow(L(t)),children:(e,t)=>{q(e,{get icon(){return Ro},class:`table-icon-svg`})},$$slots:{default:!0}})}E(i),I(()=>{G(o,`for`,`pricing-type-`+L(t).id),G(s,`id`,`pricing-type-`+L(t).id),G(l,`for`,`pricing-value-`+L(t).id),G(u,`id`,`pricing-value-`+L(t).id)}),Wi(s,()=>L(t).field,e=>L(t).field=e),ua(u,()=>L(t).value,e=>L(t).value=e),B(e,i)}),E(c);var l=F(c,2),u=N(l);q(N(u),{get icon(){return mo},class:`form-action-icon`}),He(2),E(u),E(l);var d=F(l,2),f=e=>{B(e,rj())};H(d,e=>{n.modelPricingOverrideFormPreservedTiers.length>0&&e(f)});var p=F(d,2),m=F(N(p),2),h=e=>{B(e,ij())},g=k(()=>n.modelPricingEffectivePreviewRows().length===0);H(m,e=>{L(g)&&e(h)}),U(F(m,2),17,()=>n.modelPricingEffectivePreviewRows(),e=>e.field,(e,t)=>{var n=aj(),r=N(n),i=N(r,!0);E(r);var a=F(r,2),o=N(a,!0);E(a);var s=F(a,2),c=N(s,!0);E(s),E(n),I(e=>{V(i,L(t).label),V(o,e),V(c,L(t).source)},[()=>L(t).value===null||L(t).value===void 0?`-`:bc(Number(L(t).value))]),B(e,n)}),E(p),R(`click`,u,()=>n.addModelPricingOverrideRow()),B(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}}),O()}Vr([`click`,`change`]);var cj=z(`

Failover mapping

`,1),lj=z(``),uj=z(`

This failover mapping is defined in configuration and is read-only here.

`),dj=z(``),fj=z(`
`),pj=z(`
`,1),mj=z(`
`);function hj(e,t){D(t,!0);{let t=e=>{var t=cj(),n=F(P(t),2),r=N(n,!0);E(n),I(()=>V(r,Q.failoverForm.source||`Failover`)),B(e,t)},n=e=>{var t=Zr(),n=P(t),r=e=>{var t=lj();I(()=>t.disabled=Q.failoverSaving||Q.failoverGenerating),R(`click`,t,()=>Q.deleteFailoverRule()),B(e,t)};H(n,e=>{Q.failoverFormMode===`edit`&&!Q.failoverFormManaged&&e(r)}),B(e,t)},r=k(()=>Q.failoverGenerating||Q.failoverFormManaged);ME(e,{get open(){return Q.failoverFormOpen},ariaLabel:`Failover editor`,get error(){return Q.failoverError},get submitting(){return Q.failoverSaving},get submitDisabled(){return L(r)},submitLabel:`Save`,onclose:()=>Q.closeFailoverForm(),onsubmit:()=>Q.submitFailoverForm(),header:t,extraActions:n,children:(e,t)=>{var n=mj(),r=N(n),i=e=>{B(e,uj())};H(r,e=>{Q.failoverFormManaged&&e(i)});var a=F(r,2);U(a,21,()=>Wc.models,ai,(e,t)=>{var n=dj(),r=N(n,!0);E(n);var i={};I((e,t)=>{V(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>pO(L(t)),()=>pO(L(t))]),B(e,n)}),E(a);var o=F(a,2);PE(o,{id:`failover-target`,label:`Fallback models`,children:(e,t)=>{var n=pj(),r=P(n),i=N(r),a=N(i);ta(a);var o=F(a,2),s=e=>{OT(e,{label:`Remove fallback model`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removePrimaryFailoverTarget(),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{q(e,{get icon(){return jo},class:`table-icon-svg`})},$$slots:{default:!0}})};H(o,e=>{Q.failoverForm.target_model&&e(s)}),E(i),U(F(i,2),17,()=>Q.failoverForm.targets,ai,(e,t,n)=>{var r=fj(),i=N(r);ta(i),OT(F(i,2),{label:`Remove fallback model`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removeFailoverTarget(n),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{q(e,{get icon(){return jo},class:`table-icon-svg`})},$$slots:{default:!0}}),E(r),I(()=>i.disabled=Q.failoverFormManaged),ua(i,()=>L(t).model,e=>L(t).model=e),B(e,r)}),E(r);var c=F(r,2),l=N(c);q(N(l),{get icon(){return mo},class:`form-action-icon`}),He(2),E(l);var u=F(l,2),d=N(u);q(d,{get icon(){return Io},class:`form-action-icon`});var f=F(d,2),p=N(f,!0);E(f),E(u),E(c),I(e=>{a.disabled=Q.failoverFormManaged,l.disabled=Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving,u.disabled=e,V(p,Q.failoverGenerating?`Generating...`:`Generate automatically`)},[()=>Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving||!Q.failoverEnabled()]),ua(a,()=>Q.failoverForm.target_model,e=>Q.failoverForm.target_model=e),R(`click`,l,()=>Q.addFailoverTarget()),R(`click`,u,()=>Q.generateFailoverForForm()),B(e,n)},$$slots:{default:!0}});var s=F(o,2),c=N(s);MA(N(c),{get enabled(){return Q.failoverForm.enabled},label:`failover mapping`,get disabled(){return Q.failoverFormManaged},onclick:()=>{Q.failoverFormManaged||(Q.failoverForm.enabled=!Q.failoverForm.enabled)}}),E(c),E(s),E(n),B(e,n)},$$slots:{header:!0,extraActions:!0,default:!0}})}O()}Vr([`click`]);var gj=z(` `),_j=z(`
`),vj=z(``),yj=z(`
`),bj=z(`

No failover suggestions were generated.

`),xj=z(`

No failover drafts match the filter.

`),Sj=z(``),Cj=z(``);function wj(e,t){D(t,!0),Us(e,{get open(){return Q.failoverDraftsOpen},variant:`editor`,onclose:()=>Q.closeFailoverDraftsModal(),children:(e,t)=>{var n=Cj(),r=N(n),i=F(N(r),2),a=N(i),o=e=>{var t=gj(),n=N(t,!0);E(t),I(e=>V(n,e),[()=>Q.failoverDraftCountLabel()]),B(e,t)};H(a,e=>{Q.failoverGeneratedRules.length>0&&e(o)}),zs(F(a,2),{label:`Close failover drafts`,onclick:()=>Q.closeFailoverDraftsModal(),get disabled(){return Q.failoverDraftSaving}}),E(i),E(r);var s=F(r,2),c=e=>{ET(e,{label:`Generating failover drafts...`,class:`failover-drafts-loading`})};H(s,e=>{Q.failoverGenerating&&e(c)});var l=F(s,2),u=e=>{var t=_j(),n=N(t);jw(n,{placeholder:`Filter failover drafts...`,label:`Filter failover drafts`,get value(){return Q.failoverDraftFilter},set value(e){Q.failoverDraftFilter=e}});var r=F(n,2),i=N(r);q(i,{get icon(){return Va},class:`form-action-icon`});var a=F(i,2),o=N(a,!0);E(a),E(r),E(t),I(e=>{r.disabled=Q.failoverDraftSaving,V(o,e)},[()=>Q.allFailoverDraftsSelected()?`Deselect all`:`Select all`]),R(`click`,r,()=>Q.toggleAllFailoverDrafts()),B(e,t)};H(l,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&e(u)});var d=F(l,2),f=e=>{var t=yj();U(t,21,()=>Q.filteredFailoverDrafts(),e=>`failover-draft:`+Q.failoverPrimaryModel(e),(e,t)=>{var n=vj(),r=N(n);ta(r);var i=F(r,2),a=N(i),o=N(a,!0);E(a);var s=F(a,2),c=N(s,!0);E(s),E(i),E(n),I((e,t,n,i)=>{ra(r,e),r.disabled=Q.failoverDraftSaving,G(r,`aria-label`,t),V(o,n),V(c,i)},[()=>Q.failoverDraftSelected(L(t)),()=>`Select failover draft for `+Q.failoverPrimaryModel(L(t)),()=>Q.failoverPrimaryModel(L(t)),()=>Q.failoverTargetLabel(L(t))]),R(`change`,r,e=>Q.setFailoverDraftSelected(L(t),e.currentTarget.checked)),B(e,n)}),E(t),B(e,t)},p=k(()=>!Q.failoverGenerating&&Q.filteredFailoverDrafts().length>0);H(d,e=>{L(p)&&e(f)});var m=F(d,2),h=e=>{B(e,bj())};H(m,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length===0&&!Q.failoverError&&e(h)});var g=F(m,2),_=e=>{B(e,xj())},v=k(()=>!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&Q.filteredFailoverDrafts().length===0);H(g,e=>{L(v)&&e(_)});var y=F(g,2),b=e=>{var t=Sj(),n=N(t,!0);E(t),I(()=>V(n,Q.failoverError)),B(e,t)};H(y,e=>{Q.failoverError&&e(b)});var x=F(y,2),S=N(x),C=F(S,2),w=N(C);q(w,{get icon(){return vo},class:`form-action-icon`});var T=F(w,2),ee=N(T,!0);E(T),E(C),E(x),E(n),I(e=>{S.disabled=Q.failoverDraftSaving,C.disabled=e,V(ee,Q.failoverDraftSaving?`Saving...`:`Save selected`)},[()=>Q.failoverGenerating||Q.failoverDraftSaving||Q.selectedFailoverDraftCount()===0]),R(`click`,S,()=>Q.closeFailoverDraftsModal()),R(`click`,C,()=>Q.saveSelectedFailoverDrafts()),B(e,n)},$$slots:{default:!0}}),O()}Vr([`click`,`change`]);var Tj=z(`
Rate limit management is unavailable.
`),Ej=z(` Add`,1),Dj=z(`

`),Oj=z(`

No rules.

`),kj=z(` Edit`,1),Aj=z(`
`),jj=z(`
`),Mj=z(`

`),Nj=z(``),Pj=z(``);function Fj(e,t){D(t,!0);function n(){J.dialogOpen||Z.closeRateLimitInspector()}Us(e,{get open(){return Z.rateLimitInspectorOpen},variant:`editor`,onclose:n,children:(e,t)=>{var n=Pj(),r=N(n),i=N(r),a=F(N(i),2),o=N(a),s=N(o,!0);E(o),E(a),E(i),zs(F(i,2),{label:`Close rate limits inspector`,onclick:()=>Z.closeRateLimitInspector()}),E(r);var c=F(r,2),l=e=>{ET(e,{label:`Loading rate limits...`})},u=e=>{B(e,Tj())},d=e=>{var t=Zr();U(P(t),17,()=>Z.rateLimitInspectorSections(),e=>e.key,(e,t)=>{var n=Mj(),r=N(n),i=N(r),a=N(i,!0);E(i);var o=F(i,2);{let e=k(()=>`Add `+L(t).title.toLowerCase());OT(o,{get label(){return L(e)},class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(L(t).scope,L(t).subject),children:(e,t)=>{var n=Ej();q(P(n),{get icon(){return mo},class:`table-icon-svg`}),He(2),B(e,n)},$$slots:{default:!0}})}E(r);var s=F(r,2),c=e=>{var n=Dj(),r=N(n,!0);E(n),I(()=>V(r,L(t).hint)),B(e,n)};H(s,e=>{L(t).hint&&e(c)});var l=F(s,2),u=e=>{B(e,Oj())},d=e=>{var n=jj();U(n,21,()=>L(t).items,e=>Z.rateLimitKey(e),(e,t)=>{var n=Aj(),r=N(n),i=N(r),a=N(i),o=N(a,!0);E(a);var s=F(a,2),c=N(s),l=N(c);{let e=k(()=>Z.rateLimitIsConcurrent(L(t))?Aa:Ao);q(l,{get icon(){return L(e)},class:`budget-period-icon`})}var u=F(l,2),d=N(u,!0);E(u),E(c),E(s);var f=F(s,2),p=N(f),m=N(p),h=N(m,!0);E(m);var g=F(m,2),_=N(g,!0);E(g),E(p);var v=F(p,2),y=N(v),b=e=>{OT(e,{label:`Edit rate limit`,class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(null,null,L(t)),children:(e,t)=>{var n=kj();q(P(n),{get icon(){return fo},class:`budget-action-icon`}),He(2),B(e,n)},$$slots:{default:!0}})},x=k(()=>!Z.rateLimitIsReadOnly(L(t)));H(y,e=>{L(x)&&e(b)}),E(v),E(f),E(i),E(r),E(n),I((e,t,r,i,a,s,c,l)=>{W(n,1,`budget-row ${e??``}`),Vi(n,t),G(n,`title`,r),V(o,i),V(d,a),V(h,s),G(g,`title`,c),V(_,l)},[()=>Z.rateLimitPressureClass(L(t)),()=>Z.rateLimitPressureStyle(L(t)),()=>Z.rateLimitPressurePercent(L(t))+`% of the most constrained cap used`,()=>Z.rateLimitSubject(L(t)),()=>Z.rateLimitPeriodLabel(L(t)),()=>Z.rateLimitInspectorSummary(L(t)),()=>Z.rateLimitIsReadOnly(L(t))?`Declared in configuration; read-only in the dashboard`:`Managed via dashboard or admin API`,()=>Z.rateLimitSourceLabel(L(t))]),B(e,n)}),E(n),B(e,n)};H(l,e=>{L(t).items.length===0?e(u):e(d,-1)}),E(n),I(()=>V(a,L(t).title)),B(e,n)}),B(e,t)};H(c,e=>{Z.rateLimitsLoading?e(l):Z.rateLimitsAvailable?e(d,-1):e(u,1)});var f=F(c,2),p=N(f),m=F(p,2),h=e=>{var t=Nj();R(`click`,t,()=>{Z.closeRateLimitInspector(),Xo.navigate(`rate-limits`)}),B(e,t)},g=k(()=>Z.rateLimitsEnabled());H(m,e=>{L(g)&&e(h)}),E(f),E(n),I(()=>V(s,Z.rateLimitInspector.title)),R(`click`,p,()=>Z.closeRateLimitInspector()),B(e,n)},$$slots:{default:!0}}),O()}Vr([`click`]);var Ij=z(`
models
`),Lj=z(`
Virtual models feature is unavailable.
`),Rj=z(`
`),zj=z(``),Bj=z(`
`),Vj=z(``),Hj=z(`
`),Uj=z(`

No models registered.

`),Wj=z(`

No models in this category.

`),Gj=z(`

No models match your filter.

`),Kj=z(`
`);function qj(e,t){D(t,!0),kn(()=>{J.refreshTick,Xo.page===`models`&&(fk.fetchVirtualModels(),Nk.fetchModelPricingOverrides(),Q.fetchFailoverRules(),Z.fetchRateLimitsPage())}),kn(()=>{let e=fk.filteredDisplayModels.length;return Tr(()=>fk.restartModelRendering(e)),()=>fk.stopModelRendering()});let n=k(()=>J.needsAuth);var r=Kj(),i=N(r),a=F(N(i),2),o=e=>{var t=Ij(),n=N(t),r=N(n,!0);E(n),He(),E(t),I(()=>V(r,Wc.filter?fk.filteredDisplayModels.length+` / `+fk.displayModels.length:fk.displayModels.length)),B(e,t)};H(a,e=>{fk.displayModels.length>0&&e(o)}),E(i);var s=F(i,2);Kc(s,{});var c=F(s,2),l=e=>{B(e,Lj())};H(c,e=>{!fk.virtualModelsAvailable&&!L(n)&&e(l)});var u=F(c,2),d=e=>{var t=Rj(),n=N(t,!0);E(t),I(()=>V(n,fk.aliasError)),B(e,t)};H(u,e=>{fk.aliasError&&!L(n)&&e(d)});var f=F(u,2),p=e=>{var t=Rj(),n=N(t,!0);E(t),I(()=>V(n,Nk.modelPricingOverrideError)),B(e,t)};H(f,e=>{Nk.modelPricingOverrideError&&!L(n)&&!Nk.modelPricingOverrideFormOpen&&e(p)});var m=F(f,2),h=e=>{var t=Bj();U(t,21,()=>Wc.categories,e=>e.category,(e,t)=>{var n=zj();let r;var i=N(n),a=N(i,!0);E(i);var o=F(i,2),s=N(o,!0);E(o),E(n),I(()=>{r=W(n,1,`category-tab svelte-scpjps`,null,r,{active:Wc.activeCategory===L(t).category}),V(a,L(t).display_name),V(s,L(t).count)}),R(`click`,n,()=>Wc.selectCategory(L(t).category)),B(e,n)}),E(t),B(e,t)};H(m,e=>{Wc.categories.length>0&&e(h)});var g=F(m,2),_=e=>{var t=Hj(),n=N(t);jw(N(n),{placeholder:`Filter by provider, provider/model, alias, or owner...`,label:`Filter models by provider, provider/model, alias, or owner`,get value(){return Wc.filter},set value(e){Wc.filter=e}}),E(n);var r=F(n,2),i=N(r),a=e=>{var t=Vj();q(N(t),{get icon(){return mo},class:`alias-create-icon`}),He(2),E(t),R(`click`,t,()=>fk.openVirtualModelCreate()),B(e,t)};H(i,e=>{fk.virtualModelsAvailable&&e(a)}),E(r),E(t),B(e,t)};H(g,e=>{(fk.displayModels.length>0||Wc.filter||fk.virtualModelsAvailable)&&e(_)});var v=F(g,2),y=e=>{{let t=k(()=>fk.modelLoadingText());ET(e,{get label(){return L(t)},class:`models-loading-state`})}},b=k(()=>fk.modelsBusy()&&!L(n));H(v,e=>{L(b)&&e(y)});var x=F(v,2);XA(x,{});var S=F(x,2);sj(S,{});var C=F(S,2),w=e=>{AA(e,{})};H(C,e=>{(fk.displayModels.length>0||Wc.filter)&&e(w)});var T=F(C,2),ee=e=>{B(e,Uj())};H(T,e=>{fk.displayModels.length===0&&!Wc.loading&&!L(n)&&!Wc.filter&&(Wc.activeCategory===`all`||!Wc.activeCategory)&&e(ee)});var te=F(T,2),ne=e=>{B(e,Wj())};H(te,e=>{fk.displayModels.length===0&&!Wc.loading&&!L(n)&&!Wc.filter&&Wc.activeCategory&&Wc.activeCategory!==`all`&&e(ne)});var re=F(te,2),ie=e=>{B(e,Gj())};H(re,e=>{fk.displayModels.length>0&&fk.filteredDisplayModels.length===0&&Wc.filter&&e(ie)});var ae=F(re,2);Fj(ae,{});var oe=F(ae,2);qD(oe,{});var se=F(oe,2);hj(se,{}),wj(F(se,2),{}),E(r),B(e,r),O()}Vr([`click`]);var Jj=`draft-workflow-preview`;function Yj(){return{scope_provider:``,scope_model:``,scope_user_path:``,name:``,description:``,features:{cache:!0,audit:!0,usage:!0,budget:!0,guardrails:!1,failover:!0},guardrails:[]}}function Xj(){return{scope_provider:``,scope_model:``,scope_user_path:``}}function Zj(e){return{ref:``,step:Number.isFinite(e)?e:10}}function Qj(e){let t=e==null?``:String(e).trim();if(t===``)return NaN;let n=Number(t);return Number.isFinite(n)?n:NaN}function $j(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return n;let r=t.charAt(0).toUpperCase()+t.slice(1);for(let n of[t,r])if(Object.prototype.hasOwnProperty.call(e,n)&&e[n]!==null&&e[n]!==void 0)return e[n];return n}function eM(e,t){return!e||typeof e!=`object`||Array.isArray(e)?!1:[t,t.charAt(0).toUpperCase()+t.slice(1)].some(t=>Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==null&&e[t]!==void 0)}function tM(e){return{cache:!!$j(e,`cache`,!1),audit:!!$j(e,`audit`,!1),usage:!!$j(e,`usage`,!1),budget:$j(e,`budget`,!0)!==!1,guardrails:!!$j(e,`guardrails`,!1),failover:$j(e,`failover`,!0)!==!1}}function nM(e,t){let n=tM(e),r=t||{},i=n.usage&&!!r.usage;return{cache:n.cache&&!!r.cache,audit:n.audit&&!!r.audit,usage:i,budget:i&&n.budget&&!!r.budget,guardrails:n.guardrails&&!!r.guardrails,failover:n.failover&&!!r.failover}}function rM(e,t){let n=e&&e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:e&&e.features?e.features:{};return{...nM((e&&e.effective_features&&typeof e.effective_features==`object`&&!Array.isArray(e.effective_features)?e.effective_features:null)||n,t),failover:tM(n).failover}}function iM(e,t){return rM(e,t).failover?`On`:`Off`}function aM(e){return(Array.isArray(e&&e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:Array.isArray(e&&e.guardrails)?e.guardrails:[]).map(e=>({ref:String(e&&e.ref||``).trim(),step:Qj(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0)}function oM(e,t){return rM(e,t).guardrails&&Array.isArray(e&&e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[]}function sM(e){return String(e&&(e.scope_provider_name||e.scope_provider)||``).trim()}function cM(e){return String(e&&(e.provider_name||e.provider_type)||``).trim()}function lM(e,t){let n=new Set,r=String(t&&t.scope_provider||``).trim();return r&&n.add(r),(Array.isArray(e)?e:[]).forEach(e=>{let t=cM(e);t&&n.add(t)}),[...n].sort()}function uM(e,t,n){let r=String(t||``).trim(),i=new Set,a=String(n&&n.scope_provider||``).trim(),o=String(n&&n.scope_model||``).trim();return r&&r===a&&o&&i.add(o),(Array.isArray(e)?e:[]).forEach(e=>{if(r&&cM(e)!==r)return;let t=String(e&&e.model&&e.model.id||``).trim();t&&i.add(t)}),[...i].sort()}function dM(e){let t=String(e&&e.scope_type||``).trim();return t===`provider_model`?`Provider Name + Model`:t===`provider_model_path`?`Provider Name + Model + Path`:t===`provider_path`?`Provider Name + Path`:t===`path`?`Path`:t===`provider`?`Provider Name`:`Global`}function fM(e){return String(e&&e.scope_display||`global`).trim()||`global`}function pM(e){let t=String(e&&e.name||``).trim();if(t)return t;let n=fM(e);return n===`global`?`All models`:n}function mM(e){let t=String(e||``).trim();if(!t)return``;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return`User path cannot contain "." or ".." segments.`;if(t.includes(`:`))return`User path cannot contain ":" segments.`}}return``}function hM(e){if(mM(e))return``;let t=String(e||``).trim();if(!t)return``;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`),r=[];for(let e of n){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function gM(e){let t=e||Yj(),n=String(t.scope_provider||``).trim(),r=hM(t.scope_user_path);return{scope_provider:n,scope_model:n?String(t.scope_model||``).trim():``,scope_user_path:r}}function _M(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=hM(e&&e.scope_user_path);return!t&&!r?`global`:!t&&r?`path`:!n&&!r?`provider`:!n&&r?`provider_path`:r?`provider_model_path`:`provider_model`}function vM(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=hM(e&&e.scope_user_path),i=_M({scope_provider:t,scope_model:n,scope_user_path:r});return i===`global`?`global`:i===`path`?r:i===`provider`?t:i===`provider_path`?t+` @ `+r:i===`provider_model_path`?t+`/`+n+` @ `+r:t+`/`+n}function yM(e,t){let n=t||Xj(),r=sM(e&&e.scope),i=r?String(e&&e.scope&&e.scope.scope_model||``).trim():``,a=hM(e&&e.scope&&e.scope.scope_user_path);return r===String(n.scope_provider||``).trim()&&i===String(n.scope_model||``).trim()&&a===hM(n.scope_user_path)}function bM(e,t,n){let r=gM(t);return!(r.scope_provider!==``||r.scope_model!==``||r.scope_user_path!==``)&&!n?null:(Array.isArray(e)?e:[]).find(e=>yM(e,r))||null}function xM(e){return String(e&&e.scope_type||``).trim()!==`global`}function SM(e){let t=String(e||``).trim();return t?t.length<=14?t:t.slice(0,12)+`…`:`—`}function CM(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.description,e.scope_display,e.scope_type,sM(e&&e.scope),e.scope&&e.scope.scope_model,e.scope&&e.scope.scope_user_path,e.workflow_hash,...Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails.map(e=>e.ref):[]].some(e=>String(e||``).toLowerCase().includes(r)))}function wM(e,t){let n=e||Yj(),r=gM(n),i=tM(n.features||{}),a=nM(i,t);a.failover=i.failover;let o=!!a.guardrails,s=o?aM(n):[];return{id:Jj,scope_type:_M(r),scope_display:vM(r),scope:{scope_provider_name:r.scope_provider,scope_model:r.scope_model,...r.scope_user_path?{scope_user_path:r.scope_user_path}:{}},name:String(n.name||``).trim(),description:String(n.description||``).trim(),workflow_payload:{schema_version:1,features:{cache:!!a.cache,audit:!!a.audit,usage:!!a.usage,budget:!!a.budget,guardrails:o,failover:!!a.failover},guardrails:s}}}function TM({form:e,caps:t,workflows:n=[],formHydrated:r=!1,hydratedScope:i=null}){let a=e||Yj(),o=String(a.scope_provider||``).trim(),s=o?String(a.scope_model||``).trim():``,c=hM(a.scope_user_path),l=tM(a.features||{}),u=nM(l,t),d=bM(n,a,r),f=d&&d.workflow_payload&&d.workflow_payload.features,p=eM(f,`failover`),m=p?$j(f,`failover`,!0)!==!1:null,h=i||Xj(),g=String(h.scope_provider||``).trim()===o&&String(h.scope_model||``).trim()===s&&hM(h.scope_user_path)===hM(c),_=!!(t&&t.failover),v=_||!!r&&g&&Object.prototype.hasOwnProperty.call(l,`failover`)||!r&&!!d&&p,y=u.guardrails?(Array.isArray(a.guardrails)?a.guardrails:[]).map(e=>({ref:String(e&&e.ref||``).trim(),step:Qj(e&&e.step)})):[],b={scope_provider_name:o,scope_model:s,...c?{scope_user_path:c}:{},name:String(a.name||``).trim(),description:String(a.description||``).trim(),workflow_payload:{schema_version:1,features:{cache:!!u.cache,audit:!!u.audit,usage:!!u.usage,budget:!!u.budget,guardrails:!!u.guardrails},guardrails:y}};return v&&(b.workflow_payload.features.failover=!_&&!r&&d&&p?m:!!l.failover),b}function EM(e,{models:t=[],hydratedScope:n=null}={}){let r=n||Xj(),i=String(r.scope_provider||``).trim(),a=String(r.scope_model||``).trim(),o=String(e&&(e.scope_provider_name||e.scope_provider)||``).trim(),s=String(e&&e.scope_model||``).trim();if(o&&!lM(t,r).includes(o)&&o!==i)return`Choose a registered provider name.`;if(s&&!o)return`Model selection requires a provider name.`;if(s){let e=uM(t,o,r),n=o===i&&s===a;if(!e.includes(s)&&!n)return`Choose a registered model for the selected provider name.`}let c=mM(e.scope_user_path);if(c)return c;let l=e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:{},u=Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[];if(!l.guardrails)return``;let d=new Set;for(let e of u){if(!e.ref)return`Each guardrail step needs a guardrail ref.`;if(!Number.isInteger(e.step)||e.step<0)return`Each guardrail step must use a non-negative integer step number.`;if(d.has(e.ref))return`Each guardrail ref may appear only once in a workflow.`;d.add(e.ref)}return``}var DM=new class{#e=A(M([]));get workflows(){return L(this.#e)}set workflows(e){j(this.#e,e,!0)}#t=A(!0);get available(){return L(this.#t)}set available(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=A(``);get error(){return L(this.#r)}set error(e){j(this.#r,e,!0)}#i=A(``);get filter(){return L(this.#i)}set filter(e){j(this.#i,e,!0)}#a=A(!1);get formOpen(){return L(this.#a)}set formOpen(e){j(this.#a,e,!0)}#o=A(!1);get submitting(){return L(this.#o)}set submitting(e){j(this.#o,e,!0)}#s=A(``);get deactivatingID(){return L(this.#s)}set deactivatingID(e){j(this.#s,e,!0)}#c=A(``);get formError(){return L(this.#c)}set formError(e){j(this.#c,e,!0)}#l=A(!1);get formHydrated(){return L(this.#l)}set formHydrated(e){j(this.#l,e,!0)}#u=A(M(Xj()));get hydratedScope(){return L(this.#u)}set hydratedScope(e){j(this.#u,e,!0)}#d=A(M([]));get guardrailRefs(){return L(this.#d)}set guardrailRefs(e){j(this.#d,e,!0)}#f=A(M(Yj()));get form(){return L(this.#f)}set form(e){j(this.#f,e,!0)}#p=null;failoverVisible(){return As.booleanFlag(`FAILOVER_ENABLED`,!0)}featureCaps(){return{cache:As.cacheVisible(),audit:As.auditVisible(),usage:As.usageVisible(),budget:As.budgetsVisible(),guardrails:As.guardrailsVisible(),failover:this.failoverVisible()}}get filteredWorkflows(){return CM(this.workflows,this.filter)}providerOptions(){return lM(Wc.models,this.hydratedScope)}modelOptions(e){return uM(Wc.models,e,this.hydratedScope)}activeScopeMatch(){return bM(this.workflows,this.form,this.formHydrated)}submitMode(){return this.activeScopeMatch()?`save`:`create`}submitLabel(){return this.submitMode()===`save`?`Save`:`Create`}submittingLabel(){return this.submitMode()===`save`?`Saving...`:`Creating...`}preview(){return wM(this.form,this.featureCaps())}openCreate(e){if(this.formOpen=!0,this.submitting=!1,this.formError=``,!e){this.formHydrated=!1,this.hydratedScope=Xj(),this.form=Yj();return}this.formHydrated=!0,this.hydratedScope={scope_provider:sM(e.scope),scope_model:String(e.scope&&e.scope.scope_model||``).trim(),scope_user_path:String(e.scope&&e.scope.scope_user_path||``).trim()};let t=e.workflow_payload&&e.workflow_payload.features?tM(e.workflow_payload.features):rM(e,this.featureCaps()),n=Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails.map(e=>({ref:String(e&&e.ref||``).trim(),step:Qj(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0):aM(e);this.form={scope_provider:sM(e.scope),scope_model:String(e.scope&&e.scope.scope_model||``),scope_user_path:String(e.scope&&e.scope.scope_user_path||``),name:String(e.name||``),description:String(e.description||``),features:{cache:!!t.cache,audit:!!t.audit,usage:!!t.usage,budget:!!t.budget,guardrails:!!t.guardrails,failover:!!t.failover},guardrails:n.map(e=>({ref:String(e&&e.ref||``),step:Number.isFinite(e&&e.step)?e.step:10}))}}closeForm(){this.formOpen=!1,this.submitting=!1,this.formError=``,this.formHydrated=!1,this.hydratedScope=Xj(),this.form=Yj()}setProvider(e){if(this.form.scope_provider=String(e||``).trim(),!this.form.scope_provider){this.form.scope_model=``;return}this.modelOptions(this.form.scope_provider).includes(String(this.form.scope_model||``).trim())||(this.form.scope_model=``)}addGuardrailStep(){let e=(Array.isArray(this.form.guardrails)?this.form.guardrails:[]).reduce((e,t)=>{let n=Number(t&&t.step);return Number.isFinite(n)?Math.max(e,n):e},0)+10;this.form.guardrails.push(Zj(e))}removeGuardrailStep(e){Array.isArray(this.form.guardrails)&&this.form.guardrails.splice(e,1)}buildRequest(){return TM({form:this.form,caps:this.featureCaps(),workflows:this.workflows,formHydrated:this.formHydrated,hydratedScope:this.hydratedScope})}async fetchWorkflows(){this.#p&&this.#p.abort();let e=new AbortController;this.#p=e,this.loading=!0,this.error=``;let t=setTimeout(()=>e.abort(),1e4),n=await kT(`/admin/workflows`,{label:`workflows`,options:{signal:e.signal}});if(clearTimeout(t),this.#p===e&&(this.#p=null,this.loading=!1,n.status!==`stale`)){if(n.status===`unavailable`){this.available=!1,this.workflows=[];return}if(n.result&&(this.available=!0),n.status===`error`){this.workflows=[],this.error=e.signal.aborted?`Loading workflows timed out.`:n.error;return}this.workflows=n.items}}async fetchGuardrailRefs(){let e=await kT(`/admin/workflows/guardrails`,{label:`workflow guardrails`});e.status!==`stale`&&(this.guardrailRefs=e.items)}async fetchPage(){await Promise.all([As.ensureLoaded(),this.fetchWorkflows(),this.fetchGuardrailRefs()])}async submitForm(){if(this.submitting)return;this.formError=``;let e=this.buildRequest(),t=EM(e,{models:Wc.models,hydratedScope:this.hydratedScope});if(t){this.formError=t;return}this.submitting=!0;try{let t=await AT(`/admin/workflows`,`POST`,e,{label:`create workflow`,unavailableStatuses:[]});if(t.status===`stale`||t.result&&t.result.status===401)return;if(t.status===`error`){this.formError=t.error;return}Y.success(`Workflow created and activated.`),this.closeForm(),this.fetchPage()}finally{this.submitting=!1}}async deactivate(e){let t=String(e&&e.id||``).trim();if(!t||this.deactivatingID||!xM(e))return;let n=pM(e);if(confirm(`Deactivate workflow "`+n+`"? Requests will fall back to the next active workflow for this scope.`)){this.deactivatingID=t;try{let e=await AT(`/admin/workflows/`+encodeURIComponent(t)+`/deactivate`,`POST`,void 0,{label:`deactivate workflow`,unavailableStatuses:[]});if(e.status===`stale`||e.result&&e.result.status===401)return;if(e.status===`error`){Y.error(e.error);return}Y.success(`Workflow deactivated.`),this.fetchPage()}finally{this.deactivatingID=``}}}};function OM(e){let t=String(e??``),n=typeof navigator<`u`?navigator.clipboard:null;if(n&&typeof n.writeText==`function`)return n.writeText(t);let r=typeof document<`u`?document:null;if(!r||!r.body||typeof r.execCommand!=`function`)return Promise.reject(Error(`Clipboard API unavailable`));let i=r.createElement(`textarea`);i.value=t,i.setAttribute(`readonly`,``),i.style.position=`fixed`,i.style.top=`0`,i.style.left=`0`,i.style.opacity=`0`;try{if(r.body.appendChild(i),i.focus(),i.select(),i.setSelectionRange(0,i.value.length),!r.execCommand(`copy`))throw Error(`execCommand copy returned false`)}finally{i.parentNode&&i.parentNode.removeChild(i)}return Promise.resolve()}function kM({resetDelayMs:e=2e3,logPrefix:t}={}){let n=M({copied:!1,error:!1}),r=null;function i(){r!==null&&clearTimeout(r),r=null}function a(){i(),r=setTimeout(()=>{n.copied=!1,n.error=!1,r=null},e)}return{get copied(){return n.copied},get error(){return n.error},reset(){i(),n.copied=!1,n.error=!1},async copy(e,r){if(!(e==null||e===``)){i(),n.copied=!1,n.error=!1;try{await OM(typeof r==`function`?r(e):String(e)),n.copied=!0,n.error=!1}catch(e){console.error(t||`Failed to copy text:`,e),n.copied=!1,n.error=!0}a()}}}}var AM=z(``);function jM(e,t){D(t,!0);let n=K(t,`workflowID`,3,``),r=kM({logPrefix:`Failed to copy workflow ID:`});kn(()=>{n(),r.reset()});let i=k(()=>r.error?`Unable to copy workflow ID`:r.copied?`Workflow ID copied`:`Copy workflow ID`),a=k(()=>n()?L(i)+` `+n():L(i));async function o(e){e.preventDefault(),n()&&await r.copy(n())}var s=AM();let c;var l=F(N(s),4),u=N(l,!0);E(l);var d=F(l,2);q(N(d),{get icon(){return Ya}}),E(d),E(s),I(()=>{c=W(s,1,`workflow-pipeline-meta mono svelte-1viff7o`,null,c,{"workflow-pipeline-meta-copied":r.copied,"workflow-pipeline-meta-error":r.error}),G(s,`title`,L(i)),G(s,`aria-label`,L(a)),V(u,n())}),R(`click`,s,o),B(e,s),O()}Vr([`click`]);var MM=(e,t)=>{let n=()=>(t?.()).icon,r=()=>(t?.()).label,i=Dt(()=>h((t?.()).variant,`workflow-node-feature`)),a=()=>(t?.()).state,o=()=>(t?.()).sub,s=()=>(t?.()).badge;var c=IM(),l=N(c),u=e=>{var t=NM();let r;q(N(t),{get icon(){return n()}}),E(t),I(()=>r=W(t,1,`workflow-node-icon svelte-nbptrg`,null,r,{"workflow-node-icon-endpoint":L(i)===`workflow-node-endpoint`})),B(e,t)};H(l,e=>{n()&&e(u)});var d=F(l,2),f=N(d,!0);E(d);var p=F(d,2),m=e=>{var t=PM(),n=N(t,!0);E(t),I(()=>V(n,s())),B(e,t)};H(p,e=>{s()&&e(m)});var g=F(p,2),_=e=>{var t=FM(),n=N(t,!0);E(t),I(()=>V(n,o())),B(e,t)};H(g,e=>{o()&&e(_)}),E(c),I(()=>{W(c,1,Pi([`workflow-node`,L(i),a()]),`svelte-nbptrg`),V(f,r())}),B(e,c)},NM=z(`
`),PM=z(` `),FM=z(` `),IM=z(`
`),LM=z(`
`,1),RM=z(`
`,1),zM=z(`
`),BM=z(`
Async
`),VM=z(`
`);function HM(e,t){D(t,!0);let n=K(t,`chart`,19,()=>({}));var r=VM();let i;var a=N(r),o=e=>{jM(e,{get workflowID(){return n().workflowID}})};H(a,e=>{n().workflowID&&e(o)});var s=F(a,2),c=N(s);MM(c,()=>({icon:Po,label:`Client`,variant:`workflow-node-endpoint`}));var l=F(c,4);MM(l,()=>({icon:Za,label:`Auth`,state:n().authNodeClass,sub:n().authNodeSublabel}));var u=F(l,2),d=e=>{var t=LM(),r=P(t);MM(F(r,2),()=>({icon:Za,label:`Cache`,state:n().cacheNodeClass,badge:n().cacheStatusLabel})),I(()=>W(r,1,Pi([`workflow-conn`,n().cacheConnClass]),`svelte-nbptrg`)),B(e,t)};H(u,e=>{n().showCache&&e(d)});var f=F(u,2),p=e=>{var t=RM();MM(F(P(t),2),()=>({icon:Fo,label:`Budget`,state:n().budgetNodeClass,badge:n().budgetStatusLabel})),B(e,t)};H(f,e=>{n().showBudget&&e(p)});var m=F(f,2),h=e=>{var t=RM();MM(F(P(t),2),()=>({icon:Eo,label:`Guardrails`,sub:n().guardrailLabel})),B(e,t)};H(m,e=>{n().showGuardrails&&e(h)});var g=F(m,2),_=F(g,2);MM(_,()=>({label:n().aiLabel,variant:`workflow-node-ai`,state:n().aiNodeClass,sub:n().aiSublabel}));var v=F(_,2),y=e=>{var t=LM(),r=P(t);MM(F(r,2),()=>({icon:so,label:`Failover`,state:n().failoverNodeClass,badge:n().failoverStatusLabel,sub:n().failoverTargetLabel})),I(()=>W(r,1,Pi([`workflow-conn`,n().failoverConnClass]),`svelte-nbptrg`)),B(e,t)};H(v,e=>{n().showFailover&&e(y)});var b=F(v,2);MM(F(b,2),()=>({icon:Ga,label:`Response`,variant:`workflow-node-endpoint`,state:n().responseNodeClass,sub:n().responseNodeSublabel})),E(s);var x=F(s,2),S=e=>{var t=BM(),r=N(t),i=N(r),a=e=>{MM(e,()=>({icon:za,label:`Usage`,variant:`workflow-node-feature workflow-node-async`,state:n().usageNodeClass}))};H(i,e=>{n().showUsage&&e(a)});var o=F(i,2),s=e=>{B(e,zM())};H(o,e=>{n().showUsage&&n().showAudit&&e(s)});var c=F(o,2),l=e=>{MM(e,()=>({icon:Qa,label:`Audit Log`,variant:`workflow-node-feature workflow-node-async`,state:n().auditNodeClass}))};H(c,e=>{n().showAudit&&e(l)}),E(r),He(4),E(t),B(e,t)};H(x,e=>{n().showAsync&&e(S)}),E(r),I(()=>{i=W(r,1,`workflow-pipeline svelte-nbptrg`,null,i,{"workflow-pipeline-has-meta":n().workflowID}),W(g,1,Pi([`workflow-conn`,n().aiConnClass]),`svelte-nbptrg`),W(b,1,Pi([`workflow-conn`,n().responseConnClass]),`svelte-nbptrg`)}),B(e,r),O()}function UM(e){let t=aM(e).length;return t===0?``:t===1?`1 step`:t+` steps`}function WM(e,t){return t&&t.provider?t.provider:sM(e&&e.scope)||`AI`}function GM(e,t){return t&&t.model?t.model:e&&e.scope&&e.scope.scope_model||null}function KM(e,t){let n=String(e&&e.id||``).trim();if(n&&n!==`draft-workflow-preview`)return n;let r=String(t&&t.workflow_version_id||``).trim();return r&&r!==`draft-workflow-preview`?r:null}function qM(e){let t=e&&e.data&&e.data.workflow_features;return!t||typeof t!=`object`||Array.isArray(t)?null:tM(t)}function JM(e){let t=e&&e.data&&e.data.failover;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=String(t.target_model||t.targetModel||``).trim()||null;return n?{targetModel:n}:null}function YM(e,t=0){if(t>4||e==null)return``;if(typeof e==`string`){let n=e.trim();if(!n||n[0]!==`{`&&n[0]!==`[`)return``;try{return YM(JSON.parse(n),t+1)}catch{return``}}if(Array.isArray(e)){for(let n of e){let e=YM(n,t+1);if(e)return e}return``}return typeof e==`object`?String(e.code||``).trim()||(e.error===void 0?``:YM(e.error,t+1)):``}function XM(e){let t=e&&e.data&&typeof e.data==`object`&&!Array.isArray(e.data)?e.data:{};return String(t.error_code||t.errorCode||``).trim()||YM(t.response_body)}function ZM(e){let t=String(e||``).trim();if(!t)return null;let n=t.indexOf(`/`);return n<=0||n>=t.length-1?null:{provider:t.slice(0,n),model:t.slice(n+1)}}function QM(e,t){let n=String(e&&(e.requested_model||e.model)||``).trim(),r=JM(e);if(!(r&&r.targetModel))return{provider:String(e&&e.provider||``).trim()||null,model:n||null};let i=ZM(n);if(i)return i;let a=sM(t&&t.scope),o=a?String(t&&t.scope&&t.scope.scope_model||``).trim():``;return a||o?{provider:a||null,model:o||n||null}:{provider:null,model:n||null}}function $M(e,t){if(!e)return null;let n=(()=>{let t=String(e.cache_type||``).trim().toLowerCase();return t===`exact`||t===`semantic`?t:null})(),r=(()=>{if(e.status_code===void 0||e.status_code===null)return null;let t=String(e.status_code).trim();if(!t)return null;let n=Number(t);return Number.isFinite(n)?n:null})(),i=n?!0:e.cache_hit!==void 0&&e.cache_hit!==null&&!!e.cache_hit,a=JM(e),o=QM(e,t),s=Number.isFinite(r)&&r>=200&&r<300,c=String(e.error_type||``).trim().toLowerCase()===`authentication_error`,l=String(e.auth_method||``).trim().toLowerCase()||null,u=XM(e).toLowerCase()===`budget_exceeded`;return{cacheHit:i,cacheType:n||null,failoverTarget:a&&a.targetModel?a.targetModel:null,provider:o.provider,model:o.model,statusCode:r,responseSuccess:s,aiSuccess:s&&!i,authError:c,authMethod:l,budgetExceeded:u}}function eN(e){return!!(e&&e.cacheHit)}function tN(e){return!!(e&&e.failoverTarget)}function nN(e){return!!(e&&e.budgetExceeded)}function rN(e,t){return t?`workflow-node-current`:e&&e.cacheHit?`workflow-node-success`:``}function iN(e){return e&&e.cacheHit?`workflow-conn-hit`:``}function aN(e){return!e||!e.cacheHit?null:e.cacheType===`semantic`?`Hit (Semantic)`:`Hit (Exact)`}function oN(e,t,n,r){return e?nN(t)?`workflow-node-error`:r?`workflow-node-current`:n?`workflow-node-success`:``:``}function sN(e){return nN(e)?`Exceeded`:null}function cN(e){return e&&e.cacheHit?`workflow-node-skipped`:e&&e.failoverTarget?`workflow-node-success`:``}function lN(e){return e&&e.cacheHit?`workflow-conn-dim`:e&&e.failoverTarget?`workflow-conn-hit`:``}function uN(e){return e&&e.failoverTarget?`Redirected`:null}function dN(e){return e&&e.failoverTarget?e.failoverTarget:null}function fN(e){return e&&e.cacheHit?`workflow-conn-dim`:``}function pN(e,t){return e?e.cacheHit?`workflow-node-skipped`:t?`workflow-node-current`:e.aiSuccess?`workflow-node-success`:``:``}function mN(e,t){if(!e)return``;let n=e.statusCode;return!Number.isFinite(n)&&t?`workflow-node-current`:Number.isFinite(n)?n>=500?`workflow-node-error`:n>=400?`workflow-node-warning`:n>=300?`workflow-node-neutral`:n>=200?`workflow-node-success`:``:``}function hN(e){return!e||!Number.isFinite(e.statusCode)?null:String(e.statusCode)}function gN(e,t){return e?e.authError?`workflow-node-error`:t?`workflow-node-current`:e.authMethod===`api_key`||e.authMethod===`master_key`?`workflow-node-success`:``:``}function _N(e){return!e||!e.authMethod?null:e.authMethod}function vN(e,t,n){return e?n?`workflow-node-current`:t?`workflow-node-success`:``:``}function yN(e,t){if(!e||!e._live)return!!t;let n=String(e._live_state||``).trim();return!!e._audit_flushed||n===`audit.flushed`||n===`audit.detail`}function bN(e,t){if(!e)return!!t;let n=e.usage||{},r=Number(n.entries||0)>0;if(!e._live)return r;let i=String(e._usage_live_state||``).trim();return e._usage_flushed||i===`usage.flushed`?!0:!e._usage_live_pending&&r&&!e._live_pending}function xN(e){return!!(e&&e._live&&e._usage_live_pending&&!e._usage_flushed)}function SN(e,t){return!e||!e._live||yN(e,!1)?!1:String(e._live_state||``).trim()===`audit.completed`||!!(t&&Number.isFinite(t.statusCode))}function CN(e,t,n){return!e||!e._live?``:xN(e)?`usage`:SN(e,t)?`audit`:yN(e,!1)&&!e._live_pending?``:t&&t.cacheHit?`cache`:t&&(t.provider||t.model)?`ai`:n&&n.budget&&(e.workflow_version_id||e.requested_model)?`budget`:t&&t.authMethod?``:`auth`}function wN(e,t,n,r){let i=n||{},a=i.features&&typeof i.features==`object`&&!Array.isArray(i.features)?tM(i.features):rM(e,r),o=!!i.forceAudit,s=!!i.highlightAsyncPresent,c=!!a.budget||nN(t),l=!!a.guardrails,u=!!a.usage,d=o||!!a.audit,f=!!i.forceAsync||!!(u||d),p=!!a.failover||tN(t),m=KM(e,i.entry),h=CN(i.entry,t,a),g=xN(i.entry),_=SN(i.entry,t),v=yN(i.entry,s),y=bN(i.entry,s);return{showBudget:c,budgetNodeClass:oN(c,t,s,h===`budget`),budgetStatusLabel:sN(t),showGuardrails:l,guardrailLabel:l?UM(e):``,showCache:!!i.forceCache||!!a.cache||eN(t),cacheNodeClass:rN(t,h===`cache`),cacheConnClass:iN(t),cacheStatusLabel:aN(t),showFailover:p,failoverNodeClass:p?cN(t):``,failoverConnClass:p?lN(t):``,failoverStatusLabel:p?uN(t):null,failoverTargetLabel:p?dN(t):null,aiLabel:WM(e,t),aiSublabel:GM(e,t),aiConnClass:fN(t),aiNodeClass:pN(t,h===`ai`),responseConnClass:fN(t),responseNodeClass:mN(t,h===`response`),responseNodeSublabel:hN(t),authNodeClass:gN(t,h===`auth`),authNodeSublabel:_N(t),usageNodeClass:vN(u,y,g),auditNodeClass:vN(d,v,_),showAsync:f,showUsage:u,showAudit:d,workflowID:m}}function TN(e,t){return wN(e,null,{forceCache:!1},t)}function EN(e,t,n){return wN(t,$M(e,t),{entry:e,features:qM(e)||(t?rM(t,n):{cache:!1,audit:!1,usage:!1,budget:!1,guardrails:!1,failover:!1}),forceAudit:!0,forceAsync:!0,highlightAsyncPresent:!0},n)}var DN=z(`

`),ON=z(`

`),kN=z(`
`),AN=z(`
`),jN=z(`

No guardrails configured for this workflow.

`),MN=z(`

Guardrails

`),NN=z(``),PN=z(`

`);function FN(e,t){D(t,!0);let n=K(t,`preview`,3,!1),r=k(()=>DM.featureCaps()),i=k(()=>pM(t.workflow)),a=k(()=>oM(t.workflow,L(r))),o=k(()=>TN(t.workflow,L(r))),s=k(()=>n()?`draft-workflow-preview-guardrail-`:t.workflow.id+`-guardrail-`);var c=PN();let l;var u=N(c),d=N(u),f=N(d),p=N(f,!0);E(f);var m=F(f,2),h=N(m,!0);E(m),E(d);var g=F(d,2),_=N(g),v=N(_,!0);E(_),E(g),E(u);var y=F(u,2),b=e=>{var n=DN(),r=N(n,!0);E(n),I(()=>V(r,t.workflow.description)),B(e,n)};H(y,e=>{t.workflow.description&&e(b)});var x=F(y,2),S=e=>{var n=ON(),i=N(n);E(n),I(e=>V(i,`Failover: ${e??``}`),[()=>iM(t.workflow,L(r))]),B(e,n)},C=k(()=>DM.failoverVisible());H(x,e=>{L(C)&&e(S)});var w=F(x,2);HM(w,{get chart(){return L(o)}});var T=F(w,2),ee=e=>{var t=MN(),n=N(t),r=F(N(n),2),i=N(r,!0);E(r),E(n);var o=F(n,2),c=e=>{var t=AN();U(t,23,()=>L(a),(e,t)=>L(s)+t,(e,t)=>{var n=kN(),r=N(n),i=N(r,!0);E(r);var a=F(r,2),o=N(a);E(a),E(n),I(()=>{V(i,L(t).ref),V(o,`step ${L(t).step??``}`)}),B(e,n)}),E(t),B(e,t)},l=e=>{B(e,jN())};H(o,e=>{L(a).length>0?e(c):e(l,-1)}),E(t),I(()=>V(i,L(a).length?L(a).length+` steps`:`None`)),B(e,t)},te=k(()=>As.guardrailsVisible());H(T,e=>{L(te)&&e(ee)});var ne=F(T,2),re=e=>{var n=NN(),r=N(n),a=N(r),o=N(a,!0);E(a);var s=F(a,2);{let e=k(()=>`Edit workflow `+L(i));OT(s,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>DM.openCreate(t.workflow),children:(e,t)=>{q(e,{get icon(){return fo},class:`table-icon-svg`})},$$slots:{default:!0}})}E(r);var c=F(r,2),l=N(c),u=N(l);E(l);var d=F(l,2),f=N(d);E(d);var p=F(d,2),m=N(p);E(p),E(c),E(n),I((e,n,r,s)=>{a.disabled=e,G(a,`aria-label`,`Deactivate workflow `+L(i)),G(a,`title`,n),V(o,DM.deactivatingID===t.workflow.id?`Deactivating...`:`Deactivate`),V(u,`version: v${t.workflow.version??``}`),V(f,`created: ${r??``}`),V(m,`hash: ${s??``}`)},[()=>DM.deactivatingID===t.workflow.id||!xM(t.workflow),()=>xM(t.workflow)?`Deactivate active workflow`:`The global workflow cannot be deactivated.`,()=>ys.formatTimestamp(t.workflow.created_at),()=>SM(t.workflow.workflow_hash)]),R(`click`,a,()=>DM.deactivate(t.workflow)),B(e,n)};H(ne,e=>{n()||e(re)}),E(c),I((e,t)=>{l=W(c,1,`workflow-card svelte-1fo9fvq`,null,l,{"workflow-preview-card":n()}),V(p,e),V(h,L(i)),V(v,t)},[()=>dM(t.workflow),()=>fM(t.workflow)]),B(e,c),O()}Vr([`click`]);var IN=z(`

`),LN=z(``),RN=z(``),zN=z(``),BN=z(``),VN=z(``),HN=z(``),UN=z(``),WN=z(``),GN=z(``),KN=z(``),qN=z(``),JN=z(``),YN=z(`
No named guardrails are currently registered on this deployment. You can still draft a workflow, but guardrail-backed creation may be rejected.
`),XN=z(`
`),ZN=z(`
`),QN=z(`

No guardrail steps configured yet.

`),$N=z(`

Guardrail Steps

Guardrails in the same numeric step run together. Later steps wait for earlier ones to finish.

`),eP=z(`

Leave provider name empty to target all providers and models. Select a provider name without a model to target all models for that configured provider.

Add a path to scope the workflow to that subtree. Leading slashes are optional and will be normalized; you can enter "team/alpha" or "/team/alpha". Matching checks the deepest user path first, then falls back toward the root.

If you leave the name empty, the workflow will display as the matched provider/model scope or “All models”.

Preview

Live
`,1);function tP(e,t){D(t,!0);{let t=e=>{iC(e,{copyId:`workflow-help-copy`,label:`workflow help`,text:`Create immutable version. Submitting activates it for the selected scope.`,title:e=>{var t=IN(),n=N(t,!0);E(t),I(e=>V(n,e),[()=>DM.submitMode()===`save`?`Edit Workflow`:`Create Workflow`]),B(e,t)},$$slots:{title:!0}})},n=k(()=>DM.submitLabel()),r=k(()=>DM.submittingLabel()),i=k(()=>DM.submitMode()===`create`?mo:vo);ME(e,{get open(){return DM.formOpen},ariaLabel:`Workflow editor`,get error(){return DM.formError},get submitting(){return DM.submitting},get submitLabel(){return L(n)},get submittingLabel(){return L(r)},get submitIcon(){return L(i)},dialogClass:`workflow-editor`,onclose:()=>DM.closeForm(),onsubmit:()=>DM.submitForm(),header:t,children:(e,t)=>{var n=eP(),r=P(n),i=N(r);PE(i,{id:`workflow-scope-provider`,label:`Provider Name`,children:(e,t)=>{var n=RN(),r=N(n);r.value=r.__value=``,U(F(r),16,()=>DM.providerOptions(),e=>e,(e,t)=>{var n=LN(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(n),R(`change`,n,e=>DM.setProvider(e.currentTarget.value)),Wi(n,()=>DM.form.scope_provider,e=>DM.form.scope_provider=e),B(e,n)},$$slots:{default:!0}});var a=F(i,2),o=e=>{PE(e,{id:`workflow-scope-model`,label:`Model`,children:(e,t)=>{var n=zN(),r=N(n);r.value=r.__value=``,U(F(r),17,()=>DM.modelOptions(DM.form.scope_provider),e=>DM.form.scope_provider+`-`+e,(e,t)=>{var n=LN(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t)),i!==(i=L(t))&&(n.value=(n.__value=L(t))??``)}),B(e,n)}),E(n),Wi(n,()=>DM.form.scope_model,e=>DM.form.scope_model=e),B(e,n)},$$slots:{default:!0}})};H(a,e=>{DM.form.scope_provider&&e(o)});var s=F(a,2);PE(s,{id:`workflow-name`,label:`Name`,children:(e,t)=>{var n=BN();ta(n),ua(n,()=>DM.form.name,e=>DM.form.name=e),B(e,n)},$$slots:{default:!0}}),PE(F(s,2),{id:`workflow-user-path`,label:`User Path`,children:(e,t)=>{var n=VN();ta(n),ua(n,()=>DM.form.scope_user_path,e=>DM.form.scope_user_path=e),B(e,n)},$$slots:{default:!0}}),E(r);var c=F(r,8);PE(c,{id:`workflow-description`,label:`Description`,children:(e,t)=>{var n=HN();dt(n),ua(n,()=>DM.form.description,e=>DM.form.description=e),B(e,n)},$$slots:{default:!0}});var l=F(c,2),u=N(l),d=e=>{var t=UN(),n=N(t);ta(n),He(2),E(t),da(n,()=>DM.form.features.cache,e=>DM.form.features.cache=e),B(e,t)},f=k(()=>As.cacheVisible());H(u,e=>{L(f)&&e(d)});var p=F(u,2),m=e=>{var t=WN(),n=N(t);ta(n),He(2),E(t),da(n,()=>DM.form.features.audit,e=>DM.form.features.audit=e),B(e,t)},h=k(()=>As.auditVisible());H(p,e=>{L(h)&&e(m)});var g=F(p,2),_=e=>{var t=GN(),n=N(t);ta(n),He(2),E(t),da(n,()=>DM.form.features.usage,e=>DM.form.features.usage=e),B(e,t)},v=k(()=>As.usageVisible());H(g,e=>{L(v)&&e(_)});var y=F(g,2),b=e=>{var t=KN(),n=N(t);ta(n),He(2),E(t),da(n,()=>DM.form.features.budget,e=>DM.form.features.budget=e),B(e,t)},x=k(()=>As.budgetsVisible());H(y,e=>{L(x)&&e(b)});var S=F(y,2),C=e=>{var t=qN(),n=N(t);ta(n),He(2),E(t),da(n,()=>DM.form.features.guardrails,e=>DM.form.features.guardrails=e),B(e,t)},w=k(()=>As.guardrailsVisible());H(S,e=>{L(w)&&e(C)});var T=F(S,2),ee=e=>{var t=JN(),n=N(t);ta(n),He(2),E(t),da(n,()=>DM.form.features.failover,e=>DM.form.features.failover=e),B(e,t)},te=k(()=>DM.failoverVisible());H(T,e=>{L(te)&&e(ee)}),E(l);var ne=F(l,2),re=F(N(ne),2);{let e=k(()=>DM.preview());FN(re,{get workflow(){return L(e)},preview:!0})}E(ne);var ie=F(ne,2),ae=e=>{var t=$N(),n=N(t),r=F(N(n),2);E(n);var i=F(n,2),a=e=>{var t=YN(),n=F(N(t),2);E(t),R(`click`,n,()=>Xo.navigate(`guardrails`)),B(e,t)};H(i,e=>{DM.guardrailRefs.length===0&&e(a)});var o=F(i,2),s=e=>{var t=ZN();U(t,21,()=>DM.form.guardrails,ai,(e,t,n)=>{var r=XN(),i=N(r),a=N(i);G(a,`for`,`workflow-guardrail-ref-`+n);var o=F(a,2);ta(o),G(o,`id`,`workflow-guardrail-ref-`+n),G(o,`aria-label`,`Guardrail reference `+(n+1)),E(i);var s=F(i,2),c=N(s);G(c,`for`,`workflow-guardrail-step-`+n);var l=F(c,2);ta(l),G(l,`id`,`workflow-guardrail-step-`+n),G(l,`aria-label`,`Guardrail step `+(n+1)),E(s);var u=F(s,2);E(r),ua(o,()=>L(t).ref,e=>L(t).ref=e),ua(l,()=>L(t).step,e=>L(t).step=e),R(`click`,u,()=>DM.removeGuardrailStep(n)),B(e,r)}),E(t),B(e,t)},c=e=>{B(e,QN())};H(o,e=>{DM.form.guardrails.length>0?e(s):e(c,-1)}),E(t),R(`click`,r,()=>DM.addGuardrailStep()),B(e,t)},oe=k(()=>DM.form.features.guardrails&&As.guardrailsVisible());H(ie,e=>{L(oe)&&e(ae)}),B(e,n)},$$slots:{header:!0,default:!0}})}O()}Vr([`change`,`click`]);var nP=z(`

Loading workflows...

`),rP=z(`
`),iP=z(`

No active workflows found.

`),aP=z(`

No workflows match your filter.

`),oP=z(`
`);function sP(e,t){D(t,!0);var n=oP(),r=N(n),i=e=>{var t=nP();NS(N(t),{size:16,label:`Loading workflows`}),He(),E(t),B(e,t)};H(r,e=>{DM.loading&&!J.authError&&e(i)});var a=F(r,2),o=e=>{var t=rP();U(t,21,()=>DM.filteredWorkflows,e=>e.id,(e,t)=>{FN(e,{get workflow(){return L(t)}})}),E(t),B(e,t)};H(a,e=>{DM.filteredWorkflows.length>0&&e(o)});var s=F(a,2),c=e=>{B(e,iP())};H(s,e=>{DM.workflows.length===0&&!DM.loading&&!J.authError&&DM.available&&e(c)});var l=F(s,2),u=e=>{B(e,aP())};H(l,e=>{DM.workflows.length>0&&DM.filteredWorkflows.length===0&&!DM.loading&&e(u)}),E(n),B(e,n),O()}var cP=z(``),lP=z(`
Workflows feature is unavailable.
`),uP=z(`
`),dP=z(`
`),fP=z(``),pP=z(`
`);function mP(e,t){D(t,!0),kn(()=>{J.refreshTick,DM.fetchPage()});var n=pP(),r=N(n),i=F(N(r),2),a=N(i),o=e=>{var t=cP();q(N(t),{get icon(){return mo},class:`form-action-icon`,"aria-hidden":`true`}),He(2),E(t),R(`click`,t,()=>DM.openCreate()),B(e,t)};H(a,e=>{DM.available&&e(o)}),E(i),E(r);var s=F(r,2),c=e=>{B(e,lP())};H(s,e=>{!DM.available&&!J.authError&&e(c)});var l=F(s,2),u=e=>{var t=uP(),n=N(t,!0);E(t),I(()=>V(n,DM.error)),B(e,t)};H(l,e=>{DM.error&&!J.authError&&e(u)});var d=F(l,2),f=e=>{var t=dP(),n=N(t);jw(N(n),{placeholder:`Filter by scope, name, hash, or guardrail...`,label:`Filter workflows by scope, name, hash, or guardrail`,get value(){return DM.filter},set value(e){DM.filter=e}}),E(n);var r=F(n,2),i=N(r),a=N(i,!0);E(i),E(r),E(t),I(()=>V(a,DM.filteredWorkflows.length+` active scopes`)),B(e,t)};H(d,e=>{DM.available&&e(f)});var p=F(d,2);tP(p,{});var m=F(p,2);sP(m,{});var h=F(m,2);U(h,20,()=>DM.guardrailRefs,e=>e,(e,t)=>{var n=fP(),r={};I(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(h),E(n),B(e,n),O()}Vr([`click`]);function hP(e,{from:t,to:n},r={}){var{delay:i=0,duration:a=e=>Math.sqrt(e)*120,easing:o=sc}=r,s=getComputedStyle(e),c=s.transform===`none`?``:s.transform,[l,u]=s.transformOrigin.split(` `).map(parseFloat);l/=e.clientWidth,u/=e.clientHeight;var d=gP(e),f=e.clientWidth/n.width/d,p=e.clientHeight/n.height/d,m=t.left+t.width*l,h=t.top+t.height*u,g=n.left+n.width*l,_=n.top+n.height*u,v=(m-g)*f,y=(h-_)*p,b=t.width/n.width,x=t.height/n.height;return{delay:i,duration:typeof a==`function`?a(Math.sqrt(v*v+y*y)):a,easing:o,css:(e,t)=>`transform: ${c} translate(${t*v}px, ${t*y}px) scale(${e+t*b}, ${e+t*x});`}}function gP(e){if(`currentCSSZoom`in e)return e.currentCSSZoom;for(var t=e,n=1;t!==null;)n*=+getComputedStyle(t).zoom,t=t.parentElement;return n}var _P=null;function vP(){return _P===null&&(_P=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`)),!!(_P&&_P.matches)}function yP(e){return vP()?0:e}function bP(e,t){return!t||!t.live?{duration:0}:ac(e,{duration:yP(150)})}var xP=new class{#e=A(M({}));get workflowVersionsByID(){return L(this.#e)}set workflowVersionsByID(e){j(this.#e,e,!0)}workflowVersionRequests={};workflowFeatureCaps(){return{cache:As.cacheVisible(),audit:As.auditVisible(),usage:As.usageVisible(),budget:As.budgetsVisible(),guardrails:As.guardrailsVisible(),failover:As.booleanFlag(`FAILOVER_ENABLED`,!0)}}cacheWorkflowVersion(e){let t=String(e&&e.id||``).trim();return t?(this.workflowVersionsByID={...this.workflowVersionsByID||{},[t]:e},e):null}cacheMissingWorkflowVersion(e){let t=String(e||``).trim();t&&(this.workflowVersionsByID={...this.workflowVersionsByID||{},[t]:null})}workflowVersionCacheHas(e){return Object.prototype.hasOwnProperty.call(this.workflowVersionsByID||{},String(e||``).trim())}workflowVersionByID(e){let t=String(e||``).trim();return t&&this.workflowVersionCacheHas(t)?this.workflowVersionsByID[t]:null}async fetchWorkflowVersion(e){let t=String(e||``).trim();if(!t)return null;if(this.workflowVersionCacheHas(t))return this.workflowVersionsByID[t];if(this.workflowVersionRequests[t])return this.workflowVersionRequests[t];let n=(async()=>{let e=typeof AbortController==`function`?new AbortController:null,n=e?setTimeout(()=>e.abort(),1e4):null;try{let n=await Ts(`/admin/workflows/`+encodeURIComponent(t),{label:`workflow`,signal:e?e.signal:void 0});if(n.stale)return null;if(n.status===404)return this.cacheMissingWorkflowVersion(t),null;if(!n.ok)return null;let r=n.data;return!r||typeof r!=`object`||Array.isArray(r)?(this.cacheMissingWorkflowVersion(t),null):this.cacheWorkflowVersion(r)}catch(e){return e&&e.name===`AbortError`||console.error(`Failed to fetch workflow version:`,e),null}finally{n!==null&&clearTimeout(n),delete this.workflowVersionRequests[t]}})();return this.workflowVersionRequests[t]=n,n}async prefetchAuditWorkflows(e){let t=[...new Set((Array.isArray(e)?e:[]).map(e=>String(e&&e.workflow_version_id||``).trim()).filter(Boolean))];t.length!==0&&await Promise.all(t.map(e=>this.fetchWorkflowVersion(e)))}auditEntryWorkflow(e){let t=String(e&&e.workflow_version_id||``).trim();return t?this.workflowVersionByID(t):null}},SP=6;function CP(e){if(typeof e!=`string`)return null;try{return JSON.parse(e)}catch{return null}}function wP(e,t=0,n=null){let r=String(e||``).trim();if(!r)return``;if(t>SP)return r;let i=CP(r);return i==null?r:TP(i,t+1,n)||n&&n(i)||r}function TP(e,t=0,n=null,r=null){if(e==null||t>SP)return``;if(typeof e==`string`){let i=CP(e.trim());return i==null?``:TP(i,t+1,n,r)}if(typeof e!=`object`)return``;let i=r||new Set;if(i.has(e))return``;if(i.add(e),Array.isArray(e)){for(let r=0;r=400||OP(t&&t.response_body)}function AP(e){let t=e&&e.data?e.data:null;return t?EP(t.error_message)||(kP(e,t)?TP(t.response_body,0):``):``}function jP(e){if(e==null||String(e).trim()===``)return null;let t=Number(e);return!Number.isInteger(t)||t<0?null:t}function MP(e){let t=jP(e);return t===null?``:t===0?`Audit logs are retained indefinitely.`:t===1?`Audit logs are retained for 1 day.`:`Audit logs are retained for `+t+` days.`}function NP(e){let t=jP(e);return t===null?``:t===0?`Audit logs are retained `:`Audit logs are retained for `}function PP(e){let t=jP(e);return t===null?``:t===0?`indefinitely`:t===1?`1 day`:t+` days`}function FP({dateQuery:e,limit:t,offset:n,search:r,method:i,statusCode:a,stream:o}){let s=e;return s+=`&limit=`+t+`&offset=`+n,r&&(s+=`&search=`+encodeURIComponent(r)),i&&(s+=`&method=`+encodeURIComponent(i)),a&&(s+=`&status_code=`+encodeURIComponent(a)),o&&(s+=`&stream=`+encodeURIComponent(o)),s}function IP({sessionId:e,limit:t}){return`session_id=`+encodeURIComponent(e)+`&limit=`+(t||100)+`&offset=0`}function LP(e){return String(e&&e.session_id||``).trim()}function RP(e){let t=Number(e&&e.session_count);return Number.isFinite(t)&&t>1?t:1}function zP(e){return!!LP(e)&&RP(e)>1}function BP(e){return{entries:(Array.isArray(e&&e.sessions)?e.sessions:[]).filter(e=>e&&e.latest).map(e=>({...e.latest,session_id:LP(e.latest)||String(e.session_id||``).trim(),session_count:Number(e.count||1)})),total:Number(e&&e.total||0),limit:Number(e&&e.limit||25),offset:Number(e&&e.offset||0)}}function VP(e,t,n){let r=new Set((Array.isArray(n)?n:[]).flatMap(e=>GP(e))),i=(Array.isArray(t)?t:[]).filter(e=>!GP(e).some(e=>r.has(e))),a=new Set([...r,...i.flatMap(e=>GP(e))]),o=(e&&Array.isArray(e.entries)?e.entries:[]).filter(e=>e&&e._live&&!GP(e).some(e=>a.has(e)));return{entries:[...o,...i],preservedCount:o.length}}function HP(e,t){let n=e||{};if(!t)return n;if(n[t]){let e={...n};return delete e[t],e}return{...n,[t]:!0}}function UP(e,t){let n=e||{},r=new Set((Array.isArray(t)?t:[]).map(e=>LP(e)).filter(Boolean)),i={},a=!1;return Object.keys(n).forEach(e=>{if(r.has(e)){i[e]=n[e];return}a=!0}),a?i:n}function WP(e){return String(e&&e.id||``).trim()}function GP(e){if(!e)return[];let t=[],n=String(e.id||``).trim(),r=String(e.request_id||``).trim();return n&&t.push(`id:`+n),r&&t.push(`request:`+r),t}function KP(e){return!!(e&&e._live&&e._live_pending&&!e._audit_flushed)}function qP(e){let t=e&&e.customStartDate,n=e&&e.customEndDate;if(!t&&!n)return!0;let r=new Date;if(t){let e=new Date(t);if(e.setHours(0,0,0,0),Number.isFinite(e.getTime())&&re)return!1}return!0}function JP(e,t){return e&&Number(e.offset||0)===0&&!(t&&t.search)&&!(t&&t.method)&&!(t&&t.statusCode)&&!(t&&t.stream)&&qP(t)}function YP(e,t,n){let r=e&&typeof e==`object`?{...e}:{entries:[],total:0,limit:25,offset:0},i=Array.isArray(r.entries)?r.entries:[];if(r.entries=i,!JP(r,n))return r;let a=(Array.isArray(t)?t:[]).filter(e=>KP(e));if(a.length===0)return r;let o=new Set(i.flatMap(e=>GP(e))),s=[];return a.forEach(e=>{let t=GP(e);t.length!==0&&(t.some(e=>o.has(e))||(t.forEach(e=>o.add(e)),s.push(e)))}),s.length===0?r:(r.entries=[...s,...i].slice(0,r.limit||25),r.total=Number(r.total||0)+s.length,r)}function XP(e,t,n){let r=e&&typeof e==`object`?{...e}:{entries:[],total:0,limit:25,offset:0},i=Array.isArray(r.entries)?r.entries:[];if(r.entries=i,!JP(r,n))return r;let a=(Array.isArray(t)?t:[]).filter(e=>KP(e));if(a.length===0)return r;let o=new Set(i.flatMap(e=>GP(e))),s=new Map;i.forEach((e,t)=>{let n=LP(e);n&&!s.has(n)&&s.set(n,t)});let c=[],l=i;return a.forEach(e=>{let t=GP(e);if(t.length===0||t.some(e=>o.has(e)))return;let n=LP(e);if(n&&s.has(n)){let r=s.get(n);l===i&&(l=[...i]),l[r]={...e,session_count:Math.max(RP(l[r]),RP(e))},t.forEach(e=>o.add(e));return}t.forEach(e=>o.add(e)),c.push(e)}),r.entries=[...c,...l].slice(0,r.limit||25),r.total=Number(r.total||0)+c.length,r}function ZP(e,t){let n=WP(t),r=e||{};return n?r[n]?{}:{[n]:!0}:r}function QP(e,t){let n=e||{},r=new Set((Array.isArray(t)?t:[]).map(e=>WP(e)).filter(Boolean)),i={},a=!1;return Object.keys(n).forEach(e=>{if(r.has(e)){i[e]=!0;return}a=!0}),a?i:n}function $P(e){if(e==null)return`-`;let t=Number(e);return Number.isFinite(t)?t<=0?`pending`:t<1e6?Math.round(t/1e3)+` µs`:t<1e9?(t/1e6).toFixed(2)+` ms`:(t/1e9).toFixed(2)+` s`:`-`}function eF(e){if(e==null||e===``)return`status-unknown`;let t=Number(e);return Number.isFinite(t)?t>=500?`status-error`:t>=400?`status-warning`:t>=300?`status-neutral`:`status-success`:`status-unknown`}function tF(e){if(!e||!e._live||!e._live_pending)return!1;let t=String(e._live_state||``).trim();if(t===`audit.completed`||t===`audit.flushed`||t===`audit.detail`)return!1;if(e._response_partial)return!0;if(e.status_code!==null&&e.status_code!==void 0&&e.status_code!==``||Number(e.duration_ns||0)>0||e.error_type||e.error_message)return!1;let n=e.data||{};return!(n.response_headers||n.response_body||n.error_message)}function nF(e){let t=e&&e.data&&e.data.failover;return!t||typeof t!=`object`||Array.isArray(t)?null:String(t.target_model||t.targetModel||``).trim()||null}function rF(e){return(e&&e.data&&Array.isArray(e.data.attempts)?e.data.attempts:[]).map((e,t)=>({...e,seq:Number(e&&e.seq||t+1)})).sort((e,t)=>e.seq-t.seq)}function iF(e){let t=rF(e);return t.length>1||t.some(e=>!(e&&e.success))}function aF(e){if(!e)return`-`;let t=e.status_code||e.status;return t?String(t):e.success?`ok`:`error`}function oF(e){return String(e&&e.kind||``).trim()||`attempt`}function sF(e){if(!e)return`-`;let t=String(e.provider_name||``).trim(),n=String(e.provider_type||e.provider||``).trim();return t&&n&&t!==n?t+` (`+n+`)`:t||n||`-`}function cF(e){return String(e&&e.model||``).trim()||`-`}function lF(e){let t=rF(e);return t.length>1||t.some(e=>!(e&&e.success))?t:[]}function uF(e){return rF(e).length+`×`}function dF(e){let t=rF(e),n=t.filter(e=>!(e&&e.success)).length,r=t.length===1?`attempt`:`attempts`,i=t.length+` provider `+r;return n>0?i+` · `+n+` failed`:i}function fF(e){if(!e)return``;let t=[`#`+Number(e.seq||0)],n=oF(e);n&&n!==`attempt`&&t.push(n),t.push(aF(e));let r=sF(e);r&&r!==`-`&&t.push(r);let i=cF(e);return i&&i!==`-`&&t.push(i),t.push(e.success?`succeeded`:`failed`),t.join(` · `)}function pF(e,t){if(!t)return null;if(t.success){let t=e&&e.data?e.data:null;return t&&t.response_body!=null?t.response_body:null}return t.response_body!=null&&t.response_body!==``?t.response_body:null}function mF(e){if(!e||e.success)return``;let t=String(e.error_message||``).trim(),n=String(e.error_code||``).trim(),r=String(e.error_type||``).trim();return t&&n?n+`: `+t:t||n||r||`Provider attempt failed`}function hF(e,t){if(!t)return null;if(t.success){let t=e&&e.data?e.data:null;return t?t.response_headers:null}return t.response_headers||null}function gF(e){let t=Number(e&&e.status_code);return Number.isFinite(t)&&t>0?t:null}function _F(e,t){let n=!!(t&&t.success),r=e&&e.data?e.data:null,i=pF(e,t),a=hF(e,t),o=mF(t),s=i!=null&&i!==``,c=oF(t),l=rF(e).length<=1;return{title:`Response`,direction:`response`,seq:l?0:Number(t&&t.seq||0),kind:l||c===`attempt`?``:c,statusCode:l?null:gF(t),layout:`split`,entry:e,copyHeaders:a,copyBody:i,showErrorMessage:!!o,errorMessage:o,showHeaders:!!a,headers:a,showBody:s,body:i,showEmpty:!o&&!s&&!a,emptyMessage:`No response was captured for this attempt.`,showTooLarge:!!(n&&r&&r.response_body_too_big_to_handle),tooLargeMessage:`Response body was too large to capture.`}}function vF(e){return e&&e.data&&Array.isArray(e.data.request_revisions)?e.data.request_revisions:[]}function yF(e){return vF(e).filter(e=>!(e&&e.no_change))}function bF(e){return vF(e).filter(e=>e&&e.no_change).map(e=>{let t=String(e.rewriter||`rewriter`);return{id:`step-`+Number(e.seq||0),rewriter:t,label:t+`: no change`,title:t+` ran and forwarded the request unchanged`}})}function xF(e){let t=Number(e&&e.bytes_before),n=Number(e&&e.bytes_after);if(!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n>=t)return``;let r=(1-n/t)*100;return`-`+(r>=10?String(Math.round(r)):r.toFixed(1))+`%`}function SF(e,t){let n=t&&t.body,r=n!=null&&n!==``,i=yF(e).length<=1,a={rewriter:t&&t.rewriter||``,bytes:Number(t&&t.bytes_before||0)+` → `+Number(t&&t.bytes_after||0)};return t&&t.detail!=null&&(a.detail=t.detail),{title:`Rewritten`,direction:`request`,seq:i?0:Number(t&&t.seq||0),kind:t&&t.rewriter?String(t.rewriter):``,savingsLabel:xF(t),layout:`split`,entry:e,copyHeaders:a,copyBody:n,showErrorMessage:!1,errorMessage:null,showHeaders:!0,headers:a,headersTitle:`What changed`,showBody:r,body:n,showEmpty:!1,emptyMessage:``,showTooLarge:!r,tooLargeMessage:`Rewritten body not captured (body logging disabled or body too large).`}}function CF(e){let t=e&&e.usage;return!t||typeof t!=`object`?null:t}function wF(e){let t=CF(e);return Number(t&&t.cached_input_tokens||0)>0}function TF(e){let t=CF(e),n=Number(t&&t.input_tokens||0),r=Number(t&&t.cached_input_tokens||0);return!Number.isFinite(n)||n<=0||!Number.isFinite(r)||r<=0?0:Math.max(0,Math.min(100,r/n*100))}function EF(e){let t=CF(e);if(!t)return``;let n=Number(t.input_tokens||0),r=Number(t.cached_input_tokens||0);return n<=0?_c(r)+` cached`:TF(e).toFixed(1)+`% cached`}function DF(e){return wF(e)?EF(e):``}function OF(e,t){let n=CF(e);if(!n||!e||!e.data||!e.data.request_body)return null;let r=Number(n.estimated_cached_characters||0);if(!Number.isFinite(r)||r<=0||typeof t!=`function`)return null;let i=t(e.data.request_body);return!Array.isArray(i)||i.length===0?null:{characters:r,segments:i}}function kF(e,t){let n=e&&e.data?e.data:null,r=!n||!n.request_headers&&!n.request_body,i=r&&tF(e);return{title:`Request`,direction:`request`,layout:`split`,entry:e,copyHeaders:n&&n.request_headers,copyBody:n&&n.request_body,showErrorMessage:!1,errorMessage:null,showHeaders:!!(n&&n.request_headers),headers:n&&n.request_headers,showBody:!!(n&&n.request_body),body:n&&n.request_body,bodyCacheRatioLabel:DF(e),promptCacheHighlight:OF(e,t),noChangeSteps:bF(e),showEmpty:r&&!i,emptyMessage:`Request details were not captured.`,showPending:i,pendingMessage:`Waiting for request data…`,showTooLarge:!!(n&&n.request_body_too_big_to_handle),tooLargeMessage:`Request body was too large to capture.`}}function AF(e){let t=e&&e.data?e.data:null,n=AP(e),r=!t||!n&&!t.response_headers&&!t.response_body,i=r&&tF(e);return{title:`Response`,direction:`response`,layout:`split`,entry:e,copyHeaders:t&&t.response_headers,copyBody:t&&t.response_body,showErrorMessage:!!n,errorMessage:n,showHeaders:!!(t&&t.response_headers),headers:t&&t.response_headers,showBody:!!(t&&t.response_body),body:t&&t.response_body,streaming:!!(e&&e._response_partial&&t&&t.response_body)&&tF(e),showEmpty:r&&!i,emptyMessage:`Response details were not captured.`,showPending:i,pendingMessage:`Response in progress…`,showTooLarge:!!(t&&t.response_body_too_big_to_handle),tooLargeMessage:`Response body was too large to capture.`}}function jF(e,t){let n=[{id:`request`,pane:kF(e,t)}];return yF(e).forEach(t=>{n.push({id:`revision-`+Number(t&&t.seq||0),pane:SF(e,t)})}),iF(e)?rF(e).forEach(t=>{n.push({id:`response-`+Number(t&&t.seq||0),pane:_F(e,t)})}):n.push({id:`response`,pane:AF(e)}),n}function MF(e){if(!iF(e))return`response`;let t=rF(e),n=null;return t.forEach(e=>{e&&e.success&&(n=e)}),n||=t[t.length-1],n?`response-`+Number(n.seq||0):`request`}function NF(e,t,n){return e&&(Array.isArray(n)?n:jF(t)).some(t=>t.id===e)?e:MF(t)}function PF(e,t,n){if(!t||!t.length)return null;let r=t.indexOf(n);r<0&&(r=0);let i;switch(e){case`ArrowRight`:case`ArrowDown`:i=(r+1)%t.length;break;case`ArrowLeft`:case`ArrowUp`:i=(r-1+t.length)%t.length;break;case`Home`:i=0;break;case`End`:i=t.length-1;break;default:return null}return t[i]}var FF=100;function IF(){return{entries:[],total:0,limit:25,offset:0}}var LF=new class{#e=A(M({}));get auditExpandedEntries(){return L(this.#e)}set auditExpandedEntries(e){j(this.#e,e,!0)}#t=A(M({}));get auditExpandedThreads(){return L(this.#t)}set auditExpandedThreads(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}auditFetchToken=0;get auditLog(){return UC.auditLog}set auditLog(e){UC.auditLog=e}get auditSearch(){return UC.auditSearch}set auditSearch(e){UC.auditSearch=e}get auditMethod(){return UC.auditMethod}set auditMethod(e){UC.auditMethod=e}get auditStatusCode(){return UC.auditStatusCode}set auditStatusCode(e){UC.auditStatusCode=e}get auditStream(){return UC.auditStream}set auditStream(e){UC.auditStream=e}get auditGroupSessions(){return UC.auditGroupSessions}liveFilters(){return{search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream,customStartDate:Uc.customStartDate,customEndDate:Uc.customEndDate}}toggleAuditGroupSessions(){UC.auditGroupSessions=!UC.auditGroupSessions,wa(`gomodel_audit_group_sessions`,UC.auditGroupSessions),this.auditExpandedThreads={},UC.auditThreadChildren={},this.fetchAuditLog(!0)}async fetchAuditLog(e){let t=++this.auditFetchToken;this.loading=!0;try{e&&(this.auditLog.offset=0);let n=this.auditGroupSessions,r=FP({dateQuery:Uc.queryStr(),limit:this.auditLog.limit,offset:this.auditLog.offset,search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream}),i=await Ts((n?`/admin/audit/sessions?`:`/admin/audit/log?`)+r,{label:`audit log`});if(i.stale||t!==this.auditFetchToken)return;if(!i.ok){this.auditLog=IF();return}let a=n?BP(i.data):i.data,o=(n?XP:YP)(a,this.auditLog&&this.auditLog.entries,this.liveFilters());Array.isArray(o.entries)||(o.entries=[]),o.entries=UC.upsertAuditRecords(o.entries,`audit.list`),this.auditLog=o,this.auditExpandedThreads=UP(this.auditExpandedThreads,o.entries),UC.auditThreadChildren=UP(UC.auditThreadChildren,o.entries);let s=[...o.entries,...this.loadedThreadChildren()];this.auditExpandedEntries=QP(this.auditExpandedEntries,s);try{await xP.prefetchAuditWorkflows(s)}catch(e){console.error(`Failed to prefetch audit workflows:`,e)}}catch(e){if(console.error(`Failed to fetch audit log:`,e),t!==this.auditFetchToken)return;this.auditLog=IF()}finally{t===this.auditFetchToken&&(this.loading=!1)}}loadedThreadChildren(){let e=UC.auditThreadChildren||{};return Object.keys(e).flatMap(t=>Array.isArray(e[t]&&e[t].entries)?e[t].entries:[])}isThreadExpanded(e){return!!(e&&this.auditExpandedThreads[e])}threadChildren(e){return e&&UC.auditThreadChildren[e]||null}async toggleThread(e){let t=LP(e);if(!t)return;let n=!this.isThreadExpanded(t);this.auditExpandedThreads=HP(this.auditExpandedThreads,t);let r=UC.auditThreadChildren[t];n&&!(r&&(r.loaded||r.loading))&&await this.fetchThreadEntries(e)}async fetchThreadEntries(e){let t=LP(e);if(!t)return;let n=UC.auditThreadChildren[t];UC.auditThreadChildren={...UC.auditThreadChildren,[t]:{loading:!0,loaded:!1,entries:n&&Array.isArray(n.entries)?n.entries:[],total:Number(n&&n.total||0)}};let r=()=>{let e={...UC.auditThreadChildren},n=e[t],r=n&&Array.isArray(n.entries)?n.entries:[];r.length>0?e[t]={loading:!1,loaded:!1,entries:r,total:r.length}:(delete e[t],this.auditExpandedThreads[t]&&(this.auditExpandedThreads=HP(this.auditExpandedThreads,t))),UC.auditThreadChildren=e};try{let n=await Ts(`/admin/audit/log?`+IP({sessionId:t,limit:FF}),{label:`audit session`});if(n.stale){r();return}if(!n.ok)throw Error(`audit session fetch failed`);let i=UC.auditThreadChildren[t],a=this.auditLog.entries.find(e=>LP(e)===t),o=VP(i,n.data.entries,a?[a]:[e]);o.entries=UC.upsertAuditRecords(o.entries,`audit.thread`),UC.auditThreadChildren={...UC.auditThreadChildren,[t]:{loading:!1,loaded:!0,entries:o.entries,total:Number(n.data.total||0)+o.preservedCount}}}catch(e){console.error(`Failed to fetch audit session entries:`,e),r()}}clearAuditFilters(){this.auditSearch=``,this.auditMethod=``,this.auditStatusCode=``,this.auditStream=``,this.fetchAuditLog(!0)}auditLogNextPage(){this.auditLog.offset+this.auditLog.limit0&&(this.auditLog.offset=Math.max(0,this.auditLog.offset-this.auditLog.limit),this.fetchAuditLog(!1))}isAuditEntryExpanded(e){let t=WP(e);return t?!!(this.auditExpandedEntries&&this.auditExpandedEntries[t]):!1}toggleAuditEntryExpanded(e){this.auditExpandedEntries=ZP(this.auditExpandedEntries,e);let t=this.isAuditEntryExpanded(e);return t&&typeof UC.fetchAuditEntryDetail==`function`&&UC.fetchAuditEntryDetail(e),t}expandAuditEntry(e){this.isAuditEntryExpanded(e)||this.toggleAuditEntryExpanded(e)}};UC.fetchAuditLog=e=>LF.fetchAuditLog(e),UC.isAuditEntryExpanded=e=>LF.isAuditEntryExpanded(e);var RF=z(`
`);function zF(e,t){D(t,!0);let n=Mw(()=>LF.fetchAuditLog(!0));kn(()=>n.cancel);var r=RF(),i=N(r);jw(N(i),{id:`audit-filter-search`,placeholder:`Search by request ID, model, provider, path, user path, or error...`,label:`Search by request ID, model, provider, path, user path, or error`,get oninput(){return n},get value(){return LF.auditSearch},set value(e){LF.auditSearch=e}}),E(i);var a=F(i,2),o=N(a),s=N(o);s.value=s.__value=``;var c=F(s);c.value=c.__value=`GET`;var l=F(c);l.value=l.__value=`POST`;var u=F(l);u.value=u.__value=`PUT`;var d=F(u);d.value=d.__value=`PATCH`;var f=F(d);f.value=f.__value=`DELETE`,E(o);var p=F(o,2),m=N(p);m.value=m.__value=``;var h=F(m);h.value=h.__value=`200`;var g=F(h);g.value=g.__value=`201`;var _=F(g);_.value=_.__value=`400`;var v=F(_);v.value=v.__value=`401`;var y=F(v);y.value=y.__value=`403`;var b=F(y);b.value=b.__value=`404`;var x=F(b);x.value=x.__value=`429`;var S=F(x);S.value=S.__value=`500`;var C=F(S);C.value=C.__value=`502`;var w=F(C);w.value=w.__value=`503`;var T=F(w);T.value=T.__value=`504`,E(p);var ee=F(p,2),te=N(ee);te.value=te.__value=``;var ne=F(te);ne.value=ne.__value=`true`;var re=F(ne);re.value=re.__value=`false`,E(ee);var ie=F(ee,2);q(N(ie),{get icon(){return Ro},class:`table-icon-svg`}),He(2),E(ie),E(a),E(r),R(`change`,o,()=>LF.fetchAuditLog(!0)),Wi(o,()=>LF.auditMethod,e=>LF.auditMethod=e),R(`change`,p,()=>LF.fetchAuditLog(!0)),Wi(p,()=>LF.auditStatusCode,e=>LF.auditStatusCode=e),R(`change`,ee,()=>LF.fetchAuditLog(!0)),Wi(ee,()=>LF.auditStream,e=>LF.auditStream=e),R(`click`,ie,()=>LF.clearAuditFilters()),B(e,r),O()}Vr([`change`,`click`]);var BF=z(`Live stream connecting…`),VF=z(` `),HF=z(`Live`),UF=z(` `);function WF(e,t){D(t,!0);let n=k(()=>UC.auditLivePauseReason()),r=k(()=>UC.liveLogsStreaming&&!L(n));var i=Zr(),a=P(i),o=e=>{var t=UF(),i=N(t);let a;var o=F(i,2),s=e=>{B(e,BF())},c=e=>{var t=VF(),r=N(t,!0);E(t),I(e=>V(r,e),[()=>jC(L(n))]),B(e,t)},l=e=>{B(e,HF())};H(o,e=>{UC.liveLogsStreaming?L(n)?e(c,1):e(l,-1):e(s)}),E(t),I(()=>a=W(i,1,`live-dot svelte-tve6yv`,null,a,{"is-streaming":L(r)})),B(e,t)},s=k(()=>As.liveLogsVisible());H(a,e=>{L(s)&&e(o)}),B(e,i),O()}var GF=z(` `),KF=z(``);function qF(e,t){D(t,!0);let n=k(()=>[{key:`provider`,text:Dc(t.entry)||`-`},{key:`model`,text:t.entry.requested_model||t.entry.model||`-`,mono:!0},{key:`user_path`,text:t.entry.user_path,mono:!0},{key:`request_id`,text:`request_id: `+(t.entry.request_id||`-`),mono:!0},{key:`ip`,text:t.entry.client_ip&&`ip: `+t.entry.client_ip,mono:!0},{key:`auth_key_id`,text:t.entry.auth_key_id&&`auth_key_id: `+t.entry.auth_key_id,mono:!0},{key:`alias`,text:t.entry.alias_used&&`alias`,class:`audit-alias-badge`},{key:`resolved`,text:t.entry.alias_used&&t.entry.resolved_model&&`resolved: `+Ac(t.entry),mono:!0},{key:`failover`,text:nF(t.entry)&&`failover: `+nF(t.entry),mono:!0},{key:`stream`,text:t.entry.stream&&`stream`},{key:`error_type`,text:t.entry.error_type}].filter(e=>!!e.text));var r=KF(),i=F(N(r),2);U(i,21,()=>L(n),e=>e.key,(e,t)=>{var n=GF(),r=N(n,!0);E(n),I(()=>{W(n,1,Pi([`provider-badge`,L(t).class,{mono:L(t).mono}]),`svelte-hyopt0`),V(r,L(t).text)}),B(e,n)}),E(i),E(r),B(e,r),O()}var JF=z(``),YF=z(` `);function XF(e,t){D(t,!0);let n=k(()=>lF(t.entry)),r=k(()=>L(n).length>0?dF(t.entry):``),i=k(()=>L(n).length>0?uF(t.entry):``);var a=Zr(),o=P(a),s=e=>{var a=YF(),o=N(a);U(o,21,()=>L(n),e=>t.entry.id+`-pip-`+e.seq,(e,t)=>{var n=JF();let r;I(e=>{r=W(n,1,`audit-attempt-pip svelte-1eu22xn`,null,r,{"audit-attempt-success":!!(L(t)&&L(t).success),"audit-attempt-error":!(L(t)&&L(t).success)}),G(n,`title`,e)},[()=>fF(L(t))]),B(e,n)}),E(o);var s=F(o,2),c=N(s,!0);E(s),E(a),I(()=>{G(a,`title`,L(r)),G(a,`aria-label`,L(r)),V(c,L(i))}),B(e,a)};H(o,e=>{L(n).length>0&&e(s)}),B(e,a),O()}var ZF=new Set([`instructions`,`messages`,`input`,`previous_response_id`,`choices`,`output`]);function QF(e){if(!e||typeof e!=`object`)return``;let t=String(e.type||``).toLowerCase();if(t===`image`||t===`image_url`||t===`input_image`||t===`output_image`)return`[Image]`;if(t===`audio`||t===`input_audio`||t===`output_audio`)return`[Audio]`;if(t===`file`||t===`input_file`||t===`output_file`){let t=String(e.filename||e.name||``).trim();return t?`[File: `+t+`]`:`[File]`}return typeof e.refusal==`string`?e.refusal:``}function $F(e){if(e==null)return``;if(typeof e==`string`)return e.trim();if(Array.isArray(e))return e.map(e=>typeof e==`string`?e:!e||typeof e!=`object`?``:typeof e.text==`string`?e.text:typeof e.output_text==`string`?e.output_text:QF(e)).filter(Boolean).join(` -`).trim();if(typeof e==`object`){if(typeof e.text==`string`)return e.text.trim();try{return JSON.stringify(e,null,2)}catch{return``}}return String(e).trim()}function eI(e){return!e||typeof e!=`object`?``:$F(e.content)||(typeof e.refusal==`string`?e.refusal.trim():``)}function tI(e){if(e==null)return[];if(typeof e==`string`)return e?[e]:[];if(Array.isArray(e))return e.flatMap(e=>typeof e==`string`?e?[e]:[]:!e||typeof e!=`object`?[]:typeof e.text==`string`?e.text?[e.text]:[]:typeof e.output_text==`string`&&e.output_text?[e.output_text]:[]);if(typeof e==`object`)return typeof e.text==`string`&&e.text?[e.text]:[];let t=String(e);return t?[t]:[]}function nI(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(nI);if(typeof e==`object`)return Object.entries(e).flatMap(([e,t])=>[e,...nI(t)]);let t=String(e);return t?[t]:[]}function rI(e){return $I(e).flatMap(e=>[...e.name?[String(e.name)]:[],...nI(e.arguments)])}function iI(e){return Array.isArray(e)?e.flatMap(e=>e&&typeof e==`object`&&e.type===`tool_use`?rI([e]):tI(e)):tI(e)}function aI(e){let t=e&&e.usage?e.usage.estimated_cached_characters:null;if(t==null)return null;let n=Number(t);return Number.isFinite(n)&&n>0?Math.floor(n):0}function oI(e,t){if(!e)return null;let n=(Array.isArray(t)?t:[]).reduce((e,t)=>e+String(t||``).length,0),r=Math.min(String(e).length,n);return r>0?{total:r}:null}function sI(e){let t=e&&e.arguments!==void 0?e.arguments:``,n=``;if(typeof t==`string`)n=t;else try{n=JSON.stringify(t)}catch{n=String(t)}return(String(e&&e.name||``)+`(`+n+`)`).length}function cI(e){return{characters:(Array.isArray(e)?e:[]).map(sI)}}function lI(e,t){let n=Math.max(0,Number(t||0));return e.map(e=>{if(!e||e.role===`error`)return e;let t=Math.max(0,Number(e._promptTextCharacters||0)),r=Math.min(n,t);n-=r;let i=0;(Array.isArray(e._toolPromptCharacters)?e._toolPromptCharacters:[]).forEach(e=>{let t=Math.max(0,Number(e||0)),r=Math.min(n,t);n-=r,i+=r});let a=t+(e._toolPromptCharacters||[]).reduce((e,t)=>e+Math.max(0,Number(t||0)),0);return{...e,promptCacheRatio:a>0?(r+i)/a:0}})}function uI(e){if(e==null)return[];if(typeof e==`string`){let t=e.trim();return t?[{role:`user`,text:t}]:[]}if(!Array.isArray(e)){let t=$F(e);return t?[{role:`user`,text:t}]:[]}return e.map(e=>{if(!e||typeof e!=`object`)return null;let t=String(e.role||`user`).toLowerCase(),n=$F(e.content);return n?{role:t,text:n}:null}).filter(Boolean)}function dI(e){return eI(e)}function fI(e){if(!e||typeof e!=`object`)return[];let t=[];return t.push(...tI(e.instructions)),Array.isArray(e.messages)&&e.messages.forEach(e=>{!e||typeof e!=`object`||(t.push(...iI(e.content)),t.push(...rI(e.tool_calls)))}),typeof e.input==`string`?t.push(e.input):Array.isArray(e.input)?e.input.forEach(e=>{if(!(!e||typeof e!=`object`)){if(e.type===`function_call`||e.type===`tool_use`){t.push(...rI([e]));return}t.push(...iI(e.content)),typeof e.text==`string`&&t.push(e.text)}}):e.input&&typeof e.input==`object`&&(t.push(...tI(e.input.content)),typeof e.input.text==`string`&&t.push(e.input.text)),t.map(e=>String(e||``)).filter(e=>e.length>0)}var pI=e=>$F(e);function mI(e){if(!e||!e.data)return``;let t=TP(e.data.response_body,0,pI);if(t)return t;let n=e.data.error_message;if(n==null)return``;if(typeof n==`string`){let e=n.trim();return e?TP(CP(e),0,pI)||e:``}return TP(n,0,pI)||$F(n)}function hI(e){return Array.isArray(e)?e.some(e=>!e||typeof e!=`object`?!1:e.type===`message`||e.role===`assistant`||e.role===`user`||e.role===`system`?!0:Array.isArray(e.content)?e.content.some(e=>!e||typeof e!=`object`?!1:typeof e.text==`string`||e.type===`output_text`||e.type===`input_text`):!1):!1}function gI(e){if(!e)return!1;let t=String(e).toLowerCase();return t===`/v1/embeddings`||t===`/v1/embeddings/`||t.startsWith(`/v1/embeddings?`)||t.startsWith(`/v1/embeddings/`)}function _I(e){return e?!!yI(e):!1}function vI(e){let t=String(e||``).trim().split(`?`)[0].replace(/\/+$/,``).toLowerCase();return t.startsWith(`/v1/`)?t.slice(3):t}function yI(e){switch(vI(e)){case`/chat/completions`:return`chat`;case`/responses`:return`responses`;case`/messages`:return`messages`;default:return``}}function bI(e){if(!e||typeof e!=`object`)return null;try{return JSON.parse(JSON.stringify(e))}catch{return null}}function xI(e,t){if(!t||typeof t!=`object`)return;let n=e[e.length-1];try{if(n&&JSON.stringify(n)===JSON.stringify(t))return}catch{}e.push(t)}function SI(e){let t=yI(e&&e.path),n=e&&e.data&&e.data.request_body;return!t||!n||typeof n!=`object`?!1:t!==`responses`||(e.data&&e.data.response_body&&typeof e.data.response_body.id==`string`?e.data.response_body.id.trim():``)!==``||oL(n)!==``}function CI(e,t){let n=String(t||``).trim(),r=yI(e&&e.path),i=bI(e&&e.data&&e.data.request_body);if(!n||!r||!i)return null;let a=e&&e.data?e.data.response_body:null;if(r===`responses`){let e=a&&typeof a.id==`string`?a.id.trim():``,t=oL(i);return!e&&!t?null:(i.input=n,e&&!t?i.previous_response_id=e:delete i.previous_response_id,i)}let o=Array.isArray(i.messages)?i.messages:[];if(r===`chat`){let e=a&&Array.isArray(a.choices)?a.choices[0]:null;e&&e.message&&xI(o,bI(e.message)),o.push({role:`user`,content:n})}else a&&a.content!==void 0&&xI(o,{role:String(a.role||`assistant`),content:bI(a.content)||a.content}),o.push({role:`user`,content:n});return i.messages=o,i}var wI=new Set(`authorization.proxy-authorization.cookie.content-type.content-length.host.accept.connection.accept-encoding.content-encoding.transfer-encoding.user-agent.date.expect.upgrade.via.te.trailer.keep-alive.origin.referer.forwarded.x-real-ip.traceparent.tracestate.x-request-id.idempotency-key.x-idempotency-key.x-gomodel-timezone.x-gomodel-interaction-parent`.split(`.`));function TI(e,t,n=``){let r=e&&e.data&&e.data.request_headers,i={};return r&&typeof r==`object`&&Object.keys(r).forEach(e=>{let t=String(e).toLowerCase(),n=String(r[e]==null?``:r[e]);!e||!n||n===`[REDACTED]`||wI.has(t)||t.startsWith(`sec-`)||t.startsWith(`cf-`)||t.startsWith(`x-forwarded-`)||(i[e]=n)}),i[`X-GoModel-Interaction-Parent`]=String(t||e&&e.id||``).trim(),String(n||``).trim()&&(i[`X-Request-ID`]=String(n).trim()),i}function EI(e,t){let n=String(t||``).trim();return!n||!Array.isArray(e)?null:e.find(e=>String(e&&e.request_id||``).trim()===n)||null}function DI(e,t,n,r,i){let a=Array.isArray(e)?e:[],o=String(i&&i.id||``).trim(),s=String(i&&i.request_id||``).trim(),c=String(i&&i.session_id||``).trim(),l=String(r||``).trim(),u=OI(i),d=a.some(e=>o&&String(e&&e.id||``).trim()===o||s&&String(e&&e.request_id||``).trim()===s),f=!!l&&s===l,p=!!n&&c===String(n).trim(),m=!!u&&(u===String(t||``).trim()||a.some(e=>String(e&&e.id||``).trim()===u)),h=d||f||!l&&(p||m);return{accepted:h,submittedChild:f,followUpRequestID:h&&f&&o?``:l}}function OI(e){let t=e&&e.data&&e.data.request_headers;if(!t||typeof t!=`object`)return``;let n=Object.keys(t).find(e=>e.toLowerCase()===`x-gomodel-interaction-parent`);return n?String(t[n]||``).trim():``}function kI(e,t){return!Array.isArray(e)||!t?null:e.find(e=>String(e&&e.id||``)===String(t))||null}function AI(e){return!Array.isArray(e)||e.length===0?null:e.reduce((e,t)=>e?sL(t,e)>=0?t:e:t,null)}function jI(e,t){let n=new Set(Array.isArray(t)?t.map(String):[]);return AI((Array.isArray(e)?e:[]).filter(e=>{let t=String(e&&e.id||``);return n.has(t)&&e&&e.data&&e.data.request_body!=null}))}function MI(e,t){let n=AI(e);return!!n&&String(n.id||``)===String(t||``)}function NI(e,t,n){return String(e||``).trim()===`audit.flushed`&&String(t||``).trim()!==``&&String(t||``).trim()===String(n||``).trim()}function PI(e,t){let n=Array.isArray(e)?e.filter(Boolean).map(String):[];return(Array.isArray(t)?t:[]).forEach(e=>{let t=String(e&&(e.id||e.request_id)||``).trim();t&&!n.includes(t)&&n.push(t)}),n}function FI(e){if(e&&e.conversation_payload)return!0;let t=e&&e.data?e.data.request_body:null,n=e&&e.data?e.data.response_body:null,r=t&&(Array.isArray(t.messages)||t.input!==void 0||typeof t.instructions==`string`||typeof t.previous_response_id==`string`),i=n&&(Array.isArray(n.choices)||hI(n.output));return!!(r||i)}function II(e){return!e||gI(e.path)?!1:_I(e.path)||FI(e)}function LI(e){let t=0,n=!1,r=!1,i=String(e||``);for(let e=0;e0&&a+1`,`>`).replaceAll(`"`,`"`).replaceAll(`'`,`'`)}function VI(e){return!!(e&&typeof e==`object`&&e.__audio__===!0)}function HI(e){let t=Number(e||0);if(!Number.isFinite(t)||t<=0)return`0 B`;let n=[`B`,`KB`,`MB`,`GB`],r=0,i=t;for(;i>=1024&&r`
`+BI(t)+``+BI(WI(e[t]))+`
`);return t.length?``:``}function KI(e){let t=UI(e.content_type),n=BI(t+` · `+HI(e.bytes)),r=GI(e.meta);if(e.stored&&e.encoding===`base64`&&e.data){let i=String(e.data).replace(/[^A-Za-z0-9+/=]/g,``);return`
`+n+`
`+r+`
`}let i=e.too_large?`Audio too large to store.`:`Audio not logged. Set LOGGING_LOG_AUDIO_BODIES=true to capture playable audio.`;return`
`+n+`
`+BI(i)+`
`+r+`
`}function qI(e){try{return JSON.stringify(String(e)).slice(1,-1)}catch{return``}}function JI(e){if(!e||typeof e!=`object`)return null;let t=Number(e.characters||0);if(!Number.isFinite(t)||t<=0)return null;let n=Array.isArray(e.segments)?e.segments.map(e=>String(e||``)).filter(Boolean):[];return n.length===0?null:{remaining:Math.floor(t),segments:n,segmentIndex:0}}function YI(e,t){if(!t||t.remaining<=0||t.segmentIndex>=t.segments.length)return BI(e);let n=``,r=0,i=0;for(;t.remaining>0&&t.segmentIndex`+BI(l)+``,r=s+l.length,i=s+o.length,t.remaining-=c,c>=a.length){t.segmentIndex++;continue}break}return n?n+BI(e.slice(r)):BI(e)}function XI(e,t,n){let r=n&&typeof n.formatJSON==`function`?n.formatJSON:e=>String(e),i=n&&typeof n.canShowConversation==`function`?n.canShowConversation:()=>!1,a=JI(n&&n.promptCacheHighlight),o=r(t);if(!o||o===`Not captured`)return BI(o);if(!i(e))return o.split(` -`).map(e=>YI(e,a)).join(` -`);let s=o.split(` -`),c=[],l=0;for(;lYI(e,a)).join(` -`);c.push(``+o+``),l=r+1;continue}c.push(YI(e,a)),l++}return c.join(` -`)}function ZI(e){let t=String(e||``).toLowerCase();return t===`system`||t===`developer`?{role:`system`,label:`System Prompt`,className:`role-system`}:t===`assistant`?{role:`assistant`,label:`Agent`,className:`role-assistant`}:t===`error`?{role:`error`,label:`Error`,className:`role-error`}:t===`function_call`?{role:`function_call`,label:`Function Call`,className:`role-function-call`}:t===`function_result`?{role:`function_result`,label:`Function Result`,className:`role-function-result`}:{role:`user`,label:`User`,className:`role-user`}}function QI(e,t,{timestamp:n,entryID:r,isAnchor:i,isAfterAnchor:a,index:o,toolCalls:s,functionName:c,functionCallID:l,promptCache:u,toolPromptCache:d}){let f=ZI(e),p=u&&Number.isFinite(Number(u.total))?Math.max(0,Number(u.total)):u===null?0:String(t||``).length,m=d&&Array.isArray(d.characters)?d.characters:cI(s).characters;return{uid:r+`-`+o,entryID:r,timestamp:n,text:t,role:f.role,roleLabel:f.label,roleClass:f.className,isAnchor:i,isAfterAnchor:a,toolCalls:Array.isArray(s)&&s.length>0?s:null,functionName:c||``,functionCallID:l||``,promptCacheRatio:0,_promptTextCharacters:p,_toolPromptCharacters:m}}function $I(e){return Array.isArray(e)?e.map(e=>{if(!e)return null;let t=e.function||e,n=``;return t.arguments===void 0?e.arguments===void 0?t.input===void 0?e.input!==void 0&&(n=e.input):n=t.input:n=e.arguments:n=t.arguments,{name:t.name||e.name||``,arguments:n,id:e.call_id||e.id||``}}).filter(Boolean):[]}function eL(e){return Array.isArray(e)?$I(e.filter(e=>e&&typeof e==`object`&&e.type===`tool_use`)):[]}function tL(e){return Array.isArray(e)?e.filter(e=>e&&typeof e==`object`&&e.type===`tool_result`).map(e=>({id:e.tool_use_id||e.call_id||``,text:$F(e.content)})):[]}function nL(e,t,n){!t||!n||[t.call_id,t.id].forEach(t=>{t&&(e[t]=n)})}function rL(e,t,n){if(t&&Array.isArray(t.messages)&&t.messages.forEach(t=>{t&&[...Array.isArray(t.tool_calls)?t.tool_calls:[],...Array.isArray(t.content)?t.content.filter(e=>e&&e.type===`tool_use`):[]].forEach(t=>{t&&nL(e,t,(t.function||t).name||t.name||``)})}),t&&Array.isArray(t.input)&&t.input.forEach(t=>{!t||typeof t!=`object`||t.type!==`function_call`&&t.type!==`tool_use`||nL(e,t,t.name||``)}),n&&Array.isArray(n.choices)){let t=n.choices[0];t&&t.message&&Array.isArray(t.message.tool_calls)&&t.message.tool_calls.forEach(t=>{t&&nL(e,t,(t.function||t).name||t.name||``)})}n&&Array.isArray(n.output)&&n.output.forEach(t=>{!t||t.type!==`function_call`&&t.type!==`tool_use`||nL(e,t,t.name||``)}),n&&Array.isArray(n.content)&&n.content.forEach(t=>{!t||t.type!==`tool_use`||nL(e,t,t.name||``)})}function iL(e){return Array.isArray(e)?`[`+e.map(iL).join(`,`)+`]`:e&&typeof e==`object`?`{`+Object.keys(e).sort().map(t=>JSON.stringify(t)+`:`+iL(e[t])).join(`,`)+`}`:JSON.stringify(e)}function aL(e){if(!e||typeof e!=`object`)return null;let t=[];if(e.system!==void 0&&t.push({system:e.system}),e.instructions!==void 0&&t.push({instructions:e.instructions}),Array.isArray(e.messages))t.push(...e.messages);else if(Array.isArray(e.input)&&e.previous_response_id==null&&e.conversation==null)t.push(...e.input);else return null;return t.map(iL)}function oL(e){let t=e&&e.conversation;return typeof t==`string`?t.trim():t&&typeof t.id==`string`?t.id.trim():``}function sL(e,t){let n=new Date(e&&e.timestamp).getTime(),r=new Date(t&&t.timestamp).getTime();if(Number.isFinite(n)&&Number.isFinite(r)&&n!==r)return n-r;let i=String(e&&e.timestamp||``).localeCompare(String(t&&t.timestamp||``));if(i!==0)return i;let a=String(e&&e.id||``),o=String(t&&t.id||``);return ao)}function cL(e,t){if(!Array.isArray(e)||e.length===0)return{messages:[],entryIDs:[]};let n=[...e].sort(sL),r={};n.forEach(e=>{let t=e.data&&e.data.request_body?e.data.request_body:null,n=e.data&&e.data.response_body?e.data.response_body:null;rL(r,t,n)});let i=[],a=new Set,o=new Set,s=new Set,c=[],l=null,u=0,d=n.findIndex(e=>e.id===t),f=e=>JSON.stringify({role:e.role,text:e.text,toolCalls:e.toolCalls,functionName:e.functionName,functionCallID:e.functionCallID});return n.forEach((e,n)=>{let p=e.id===t,m=d>=0&&n>d,h=e.timestamp,g=e.data&&e.data.request_body?e.data.request_body:null,_=e.data&&e.data.response_body?e.data.response_body:null,v=i.length,y=(e,t)=>oI(e,t),b=e=>cI(e),x=(t,n,{toolCalls:r,functionName:i,functionCallID:a,promptCache:o,toolPromptCache:s}={})=>QI(t,n,{timestamp:h,entryID:e.id,isAnchor:p,isAfterAnchor:m,index:++u,toolCalls:r,functionName:i,functionCallID:a,promptCache:o,toolPromptCache:s});if(g&&g.system!==void 0){let e=$F(g.system);e&&i.push(x(`system`,e,{promptCache:y(e,tI(g.system))}))}if(g&&g.instructions!==void 0){let e=$F(g.instructions);e&&i.push(x(`system`,e,{promptCache:y(e,tI(g.instructions))}))}g&&Array.isArray(g.messages)&&g.messages.forEach(e=>{if(!e)return;let t=(e.role||`user`).toLowerCase();if(t===`tool`){let t=$F(e.content),n=e.name||r[e.tool_call_id]||``;t&&i.push(x(`function_result`,t,{functionName:n,functionCallID:e.tool_call_id||``,promptCache:y(t,tI(e.content))}));return}if(t===`assistant`){let n=eI(e),r=[...$I(e.tool_calls),...eL(e.content)];if(n||r.length>0){let a=y(n,tI(e.content));i.push(x(t,n,{toolCalls:r,promptCache:a,toolPromptCache:b(r)}))}return}tL(e.content).forEach(e=>{e.text&&i.push(x(`function_result`,e.text,{functionName:r[e.id]||``,functionCallID:e.id,promptCache:y(e.text,[e.text])}))});let n=eI(e);n&&i.push(x(t,n,{promptCache:y(n,tI(e.content))}))}),g&&g.input!==void 0&&(Array.isArray(g.input)?g.input.forEach(e=>{if(!(!e||typeof e!=`object`)){if(e.type===`function_call_output`||e.type===`tool_result`){let t=e.type===`tool_result`,n=t?e.content:e.output,a=t?e.tool_use_id||e.call_id||``:e.call_id||``,o=typeof n==`string`?n:$F(n);o&&i.push(x(`function_result`,o,{functionName:r[a]||e.name||``,functionCallID:a,promptCache:y(o,t?tI(e.content):[o])}))}else if(e.type===`function_call`||e.type===`tool_use`){let t=$I([e]);i.push(x(`function_call`,``,{toolCalls:t,toolPromptCache:b(t)}))}else if(e.role){let t=String(e.role).toLowerCase(),n=$F(e.content);n&&i.push(x(t,n,{promptCache:y(n,tI(e.content))}))}}}):uI(g.input).forEach(e=>{if(!e.text)return;let t=[];typeof g.input==`string`?t=[g.input]:g.input&&typeof g.input==`object`&&(t=tI(g.input.content),typeof g.input.text==`string`&&t.push(g.input.text)),i.push(x(e.role,e.text,{promptCache:y(e.text,t)}))}));let S=i.splice(v),C=S.map(f),w=aL(g),T=w!==null,ee=OI(e),te=!!ee&&a.has(ee),ne=String(g&&g.previous_response_id||``).trim(),re=oL(g),ie=te||!!ne&&o.has(ne)||!!re&&s.has(re);if(m){let e=T&&l&&l.length>0&&l.every((e,t)=>w[t]===e);if(T&&!e&&!te||!T&&!ie)return}p&&T&&(l=[...w]);let ae=String(e.id||``).trim();p&&(a.clear(),o.clear(),s.clear()),ae&&(p||m)&&a.add(ae),re&&s.add(re);let oe=0;for(;oe0;){let t=c.slice(-e),n=C.slice(0,e);if(t.every((e,t)=>e===n[t]))break;e--}i.push(...S.slice(e)),c.push(...C.slice(e))}let se=aI(e);if(g&&se!==null&&i.splice(0,i.length,...lI(i,se)),_&&Array.isArray(_.choices)){let e=_.choices[0];if(e&&e.message){let t=(e.message.role||`assistant`).toLowerCase(),n=eI(e.message),r=$I(e.message.tool_calls);if(n||r.length>0){let e=x(t,n,{toolCalls:r});i.push(e),c.push(f(e))}}}if(_&&Array.isArray(_.output)&&_.output.forEach(e=>{if(!e)return;if(e.type===`function_call`||e.type===`tool_use`){let t=x(`function_call`,``,{toolCalls:$I([e])});i.push(t),c.push(f(t));return}let t=(e.role||`assistant`).toLowerCase(),n=dI(e);if(n){let e=x(t,n);i.push(e),c.push(f(e))}}),_&&_.content!==void 0&&!Array.isArray(_.choices)&&!Array.isArray(_.output)){let e=String(_.role||`assistant`).toLowerCase(),t=$F(_.content),n=eL(_.content);if(t||n.length>0){let r=x(e,t,{toolCalls:n});i.push(r),c.push(f(r))}}let ce=mI(e);ce&&i.push(x(`error`,ce));let le=String(_&&_.id||``).trim();le&&o.add(le)}),{messages:i,entryIDs:[...a]}}function lL(e){return e.role===`function_call`?(e.toolCalls||[]).map(function(e){return e.name+`(`+dL(e)+`)`}).join(` - -`):e.text||``}function uL(e){return e?[String(e.text||``),Array.isArray(e.toolCalls)&&e.toolCalls.length>0?lL({role:`function_call`,toolCalls:e.toolCalls}):``].filter(Boolean).join(` - -`):``}function dL(e){let t=e&&e.arguments!==void 0?e.arguments:``;if(typeof t!=`string`)try{return JSON.stringify(t,null,2)}catch{return String(t)}try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}var fL=600*1e3,pL=15*1e3,mL=250,hL=class{#e=A(!1);get conversationOpen(){return L(this.#e)}set conversationOpen(e){j(this.#e,e,!0)}#t=A(!1);get conversationLoading(){return L(this.#t)}set conversationLoading(e){j(this.#t,e,!0)}#n=A(``);get conversationError(){return L(this.#n)}set conversationError(e){j(this.#n,e,!0)}#r=A(``);get conversationAnchorID(){return L(this.#r)}set conversationAnchorID(e){j(this.#r,e,!0)}#i=A(M([]));get conversationEntryIDs(){return L(this.#i)}set conversationEntryIDs(e){j(this.#i,e,!0)}#a=A(``);get conversationSessionID(){return L(this.#a)}set conversationSessionID(e){j(this.#a,e,!0)}#o=A(!1);get conversationTruncated(){return L(this.#o)}set conversationTruncated(e){j(this.#o,e,!0)}#s=A(!1);get conversationFollowLatest(){return L(this.#s)}set conversationFollowLatest(e){j(this.#s,e,!0)}#c=A(``);get conversationOpenedFromID(){return L(this.#c)}set conversationOpenedFromID(e){j(this.#c,e,!0)}#l=A(``);get followUpText(){return L(this.#l)}set followUpText(e){j(this.#l,e,!0)}#u=A(!1);get followUpSending(){return L(this.#u)}set followUpSending(e){j(this.#u,e,!0)}#d=A(``);get followUpError(){return L(this.#d)}set followUpError(e){j(this.#d,e,!0)}followUpRequestID=``;followUpAbort=null;conversationRequestToken=0;conversationReturnFocusEl=null;bodyPointerStart=null;#f=A(null);get conversationDialogEl(){return L(this.#f)}set conversationDialogEl(e){j(this.#f,e,!0)}#p=A(null);get conversationCloseBtnEl(){return L(this.#p)}set conversationCloseBtnEl(e){j(this.#p,e,!0)}#m=A(null);get conversationThreadEl(){return L(this.#m)}set conversationThreadEl(e){j(this.#m,e,!0)}get conversationEntries(){return(this.conversationEntryIDs||[]).map(e=>UC.auditRecord(e)).filter(Boolean)}#h=k(()=>cL(this.conversationEntries,this.conversationAnchorID));get conversationView(){return L(this.#h)}set conversationView(e){j(this.#h,e)}get conversationMessages(){return this.conversationView.messages}get conversationBranchEntryIDs(){return this.conversationView.entryIDs}_setConversationEntryIDs(e){this.conversationEntryIDs=[...new Set((Array.isArray(e)?e:[]).filter(Boolean))],UC.pinAuditRecords(this.conversationEntryIDs)}canShowConversation(e){return II(e)}startBodyInteraction(e){this.bodyPointerStart={x:e.clientX,y:e.clientY}}_isBodyDrag(e){if(!this.bodyPointerStart)return!1;let t=Math.abs(e.clientX-this.bodyPointerStart.x),n=Math.abs(e.clientY-this.bodyPointerStart.y);return t>4||n>4}_hasActiveSelection(){let e=window.getSelection?window.getSelection():null;return!e||e.isCollapsed?!1:String(e.toString()||``).trim().length>0}handleBodyConversationClick(e,t){let n=this._isBodyDrag(e);if(this.bodyPointerStart=null,n||this._hasActiveSelection()||!this.canShowConversation(t))return;let r=e.target&&e.target.closest?e.target.closest(`[data-conversation-trigger="1"]`):null;r&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,r))}handleErrorConversationClick(e,t){let n=this._isBodyDrag(e);this.bodyPointerStart=null,!n&&(this._hasActiveSelection()||this.canShowConversation(t)&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,e.currentTarget)))}formatJSON(e){return gc(e)}renderBodyWithConversationHighlights(e,t,n){return XI(e,t,{formatJSON:e=>this.formatJSON(e),canShowConversation:e=>this.canShowConversation(e),promptCacheHighlight:n&&n.promptCacheHighlight})}async openConversation(e,t){if(!e||!e.id||!this.canShowConversation(e))return;let n=document.activeElement instanceof HTMLElement?document.activeElement:null;t instanceof HTMLElement?this.conversationReturnFocusEl=t:n&&n!==document.body&&(this.conversationReturnFocusEl=n);let r=++this.conversationRequestToken;if(this.conversationOpen=!0,this.conversationError=``,this.conversationAnchorID=e.id,this.conversationOpenedFromID=e.id,this.conversationSessionID=String(e.session_id||``).trim(),this._setConversationEntryIDs([]),this.conversationTruncated=!1,this.conversationFollowLatest=!1,this.followUpText=``,this.followUpError=``,this.followUpRequestID=``,requestAnimationFrame(()=>this._focusConversationDrawer()),this._conversationEntryLivePending(e)){this.conversationFollowLatest=!0,this.conversationLoading=!1,this._addConversationRecord(UC.upsertAuditRecord(e,`conversation.live`));return}this.conversationLoading=!0,await this.fetchConversation(e.id,r,!0,!0)}_conversationEntryLivePending(e){return typeof UC.auditEntryLiveDetailPending==`function`&&UC.auditEntryLiveDetailPending(e)}_applyConversationView(){let e=this.conversationEntries,t=cL(e,this.conversationAnchorID);if(this.conversationFollowLatest){let n=jI(e,t.entryIDs);n&&n.id&&String(n.id)!==this.conversationAnchorID&&(this.conversationAnchorID=String(n.id))}}handleAuditRecordChange(e,t){if(!this.conversationOpen||!e)return;let n=String(e.id||``).trim(),r=DI(this.conversationEntries,this.conversationAnchorID,this.conversationSessionID,this.followUpRequestID,e);if(r.accepted&&(this.followUpRequestID=r.followUpRequestID,n&&r.submittedChild&&(this.conversationAnchorID=n,this.conversationFollowLatest=!0),this._addConversationRecord(e),NI(String(t||e._live_state||``).trim(),n,this.conversationAnchorID))){this.conversationMessages.length===0&&(this.conversationLoading=!0);let e=++this.conversationRequestToken;this.fetchConversation(n,e,!1)}}_addConversationRecord(e){let t=IC(e);t&&!this.conversationEntryIDs.includes(t)&&this._setConversationEntryIDs([...this.conversationEntryIDs,t]),!this.conversationSessionID&&e.session_id&&(this.conversationSessionID=String(e.session_id).trim()),this._applyConversationView(),this.conversationFollowLatest&&this._scheduleLatestScroll()}conversationLiveWaiting(){if(!this.conversationOpen)return!1;let e=new Set(this.conversationBranchEntryIDs||[]);return(this.conversationEntries||[]).some(t=>e.has(String(t&&t.id||``))&&t._live&&(typeof UC.liveAuditStateSettled!=`function`||!UC.liveAuditStateSettled(t._live_state)))}conversationLiveStatusText(){return(this.conversationMessages||[]).length>0?`Model is responding…`:`Waiting for request data…`}closeConversation(){this.followUpAbort&&this.followUpAbort.abort(),this.conversationOpen=!1,this.conversationRequestToken++,this.conversationSessionID=``,this._setConversationEntryIDs([]),this.conversationFollowLatest=!1,this.conversationOpenedFromID=``,this.followUpRequestID=``,this.followUpSending=!1;let e=this.conversationReturnFocusEl;this.conversationReturnFocusEl=null,e&&typeof e.focus==`function`&&document.contains(e)&&requestAnimationFrame(()=>e.focus())}_focusConversationDrawer(){if(!this.conversationOpen)return;let e=this.conversationCloseBtnEl;if(e&&typeof e.focus==`function`){e.focus();return}let t=this.conversationDialogEl;t&&typeof t.focus==`function`&&t.focus()}async fetchConversation(e,t,n=!0,r=!1){try{let i=await Ts(`/admin/audit/conversation?`+(`log_id=`+encodeURIComponent(e)+`&limit=120`),{label:`audit conversation`});if(t!==this.conversationRequestToken||i.stale)return;if(!i.ok){this.conversationError=`Unable to load interactions.`;return}let a=i.data||{},o=a.anchor_id||e,s=Array.isArray(a.entries)?a.entries:[],c=UC.upsertAuditRecords(s,`conversation.hydrated`),l=PI(this.conversationEntryIDs,c);l.length>this.conversationEntryIDs.length&&this._setConversationEntryIDs(l),r&&(this.conversationFollowLatest=MI(c,o)),this.conversationAnchorID=o;let u=this.conversationEntries.find(e=>e.id===this.conversationAnchorID);u&&u.session_id&&(this.conversationSessionID=String(u.session_id).trim()),this.conversationTruncated=!!a.truncated,this._applyConversationView(),this.conversationFollowLatest?this._scheduleLatestScroll():n&&this._scheduleAnchorScroll()}catch(e){if(t!==this.conversationRequestToken)return;console.error(`Failed to fetch audit conversation:`,e),this.conversationError=`Failed to load interactions.`}finally{t===this.conversationRequestToken&&(this.conversationLoading=!1)}}selectedConversationEntry(){return kI(this.conversationEntries,this.conversationAnchorID)}followUpKind(){let e=this.selectedConversationEntry();return SI(e)?yI(e.path):``}canSendFollowUp(){return!!this.followUpKind()&&!!String(this.followUpText||``).trim()&&!this.followUpSending&&!this.conversationLiveWaiting()}async sendFollowUp(){if(!this.canSendFollowUp())return;let e=this.selectedConversationEntry(),t=CI(e,this.followUpText);if(!e||!t)return;let n=this.conversationAnchorID,r=_L(),i=new AbortController,a=!1,o=setTimeout(()=>{a=!0,i.abort()},fL);this.followUpSending=!0,this.followUpError=``,this.followUpRequestID=r,this.followUpAbort=i;try{let a=TI(e,n,r),o=await Cs(e.path,{method:`POST`,headers:a,body:JSON.stringify(t),signal:i.signal}),s=String(o.headers.get(`X-Request-ID`)||``).trim();if(s&&this.followUpRequestID&&(this.followUpRequestID=s),!o.ok){let e=`Unable to send message.`;try{let t=await o.json();e=t&&t.error&&t.error.message||e}catch{}this.followUpError=e,(this.followUpRequestID===r||this.followUpRequestID===s)&&(this.followUpRequestID=``);return}if(this.followUpText=``,await gL(o),!UC.liveLogsStreaming&&this.conversationOpen){let e=++this.conversationRequestToken;await this._selectPersistedFollowUp(n,this.followUpRequestID,e,i.signal)}}catch(e){Ds(e)||i.signal.aborted?a&&this.conversationOpen&&(this.followUpError=`The request timed out.`):(console.error(`Failed to send interaction follow-up:`,e),this.followUpError=`Failed to send message.`)}finally{clearTimeout(o),this.followUpAbort===i&&(this.followUpAbort=null,this.followUpSending=!1)}}async _selectPersistedFollowUp(e,t,n,r){let i=Date.now()+pL;for(;this.conversationOpen&&n===this.conversationRequestToken&&Date.now(){let e=this.conversationThreadEl;if(!e)return;let t=e.querySelectorAll(`[data-conversation-anchor="true"]`),n=t[t.length-1];n&&typeof n.scrollIntoView==`function`&&n.scrollIntoView({block:`center`})})}_scheduleLatestScroll(){requestAnimationFrame(()=>{let e=this.conversationThreadEl;if(!e)return;let t=e.lastElementChild;t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`end`})})}};async function gL(e){let t=e&&e.body&&typeof e.body.getReader==`function`?e.body.getReader():null;if(!t){await e.text();return}for(;!(await t.read()).done;);}function _L(){return globalThis.crypto&&typeof globalThis.crypto.randomUUID==`function`?globalThis.crypto.randomUUID():`dashboard-`+Date.now().toString(36)+`-`+Math.random().toString(36).slice(2)}function vL(e,t){return new Promise((n,r)=>{let i,a=()=>{clearTimeout(i),r(new DOMException(`Aborted`,`AbortError`))};if(i=setTimeout(()=>{t&&t.removeEventListener(`abort`,a),n()},e),t){if(t.aborted){a();return}t.addEventListener(`abort`,a,{once:!0})}})}var yL=new hL,bL=0;jn(()=>{kn(()=>{let e=RC(UC.auditRecordChanges,bL);e.length!==0&&(bL=Number(e[e.length-1].version||0),Tr(()=>{e.forEach(e=>{if(!zC(e))return;let t=UC.auditRecord(e.key);yL.handleAuditRecordChange(t,e.eventType)})}))})});var xL=z(``),SL=z(` `),CL=z(` `),wL=z(``),TL=z(`
`);function EL(e,t){D(t,!0);let n=K(t,`thread`,3,null),r=K(t,`expanded`,3,!1),i=K(t,`onactivate`,3,null),a=K(t,`hidePath`,3,!1),o=k(()=>ys.formatTimestamp(t.entry.timestamp)),s=k(()=>L(o)===`-`?L(o):L(o).slice(L(o).lastIndexOf(` `)+1)),c=k(()=>yL.conversationOpen&&String(yL.conversationAnchorID||``)===String(t.entry.id||``));function l(e){e.preventDefault(),i()&&i()()}function u(e){e.stopPropagation(),e.preventDefault(),n().ontoggle()}function d(e){if(e.stopPropagation(),e.preventDefault(),L(c)){yL.closeConversation();return}yL.openConversation(t.entry,e.currentTarget)}var f=TL();let p;var m=N(f),h=N(m),g=e=>{var t=xL(),r=N(t);{let e=k(()=>n().expanded?Ha:Wa);q(r,{get icon(){return L(e)},class:`audit-thread-expander-svg`})}var i=F(r,2),a=N(i,!0);E(i),E(t),I(()=>{G(t,`aria-expanded`,n().expanded),G(t,`title`,`Session with `+n().count+` requests`),G(t,`aria-label`,`Session with `+n().count+` requests, `+(n().expanded?`collapse`:`expand`)),V(a,n().count)}),R(`click`,t,u),B(e,t)};H(h,e=>{n()&&e(g)});var _=F(h,2),v=N(_),y=N(v,!0);E(v);var b=F(v,2),x=N(b,!0);E(b),E(_);var S=F(_,2),C=e=>{var n=SL(),r=N(n,!0);E(n),I(e=>V(r,e),[()=>jc(t.entry)]),B(e,n)};H(S,e=>{(t.entry.requested_model||t.entry.model)&&e(C)});var w=F(S,2),T=e=>{var n=CL(),r=N(n,!0);E(n),I(()=>V(r,t.entry.path||`-`)),B(e,n)};H(w,e=>{a()||e(T)}),E(m);var ee=F(m,2),te=N(ee);XF(te,{get entry(){return t.entry}});var ne=F(te,2),re=N(ne),ie=N(re,!0);E(re);var ae=F(re,2),oe=N(ae,!0);E(ae),E(ne);var se=F(ne,2),ce=N(se,!0);E(se);var le=F(se,2),ue=e=>{var t=wL();let n;var r=N(t);{let e=k(()=>L(c)?Ua:Wa);q(r,{get icon(){return L(e)},class:`audit-conversation-trigger-svg`})}E(t),I(()=>{n=W(t,1,`audit-conversation-trigger svelte-17mysgz`,null,n,{"audit-conversation-trigger-active":L(c)}),G(t,`title`,L(c)?`Close interactions`:`Open interactions`),G(t,`aria-label`,L(c)?`Close interactions`:`Open interactions`),G(t,`aria-pressed`,L(c))}),R(`click`,t,d),B(e,t)},de=k(()=>yL.canShowConversation(t.entry));H(le,e=>{L(de)&&e(ue)}),E(ee),E(f),I((e,n,i,a)=>{p=W(f,1,`audit-entry-summary svelte-17mysgz`,null,p,e),G(f,`aria-expanded`,r()),W(_,1,`audit-status-badge audit-request-badge ${n??``}`,`svelte-17mysgz`),G(_,`title`,`Status `+(t.entry.status_code||`-`)+` · `+(t.entry.method||`-`)),G(_,`aria-label`,(t.entry.status_code||`-`)+` `+(t.entry.method||`-`)),V(y,t.entry.status_code||`-`),V(x,t.entry.method||`-`),G(ne,`title`,i),G(ne,`aria-label`,L(o)),V(ie,L(o)),V(oe,L(s)),V(ce,a)},[()=>({"audit-entry-summary-live-in-progress":tF(t.entry),"audit-entry-summary-has-interactions":yL.canShowConversation(t.entry)}),()=>eF(t.entry.status_code),()=>Tc(t.entry.timestamp),()=>$P(t.entry.duration_ns)]),R(`click`,f,l),B(e,f),O()}Vr([`click`]);var DL=z(``);function OL(e,t){D(t,!0);let n=K(t,`label`,3,`Copy`),r=K(t,`copiedLabel`,3,`Copied`),i=K(t,`errorLabel`,3,``),a=K(t,`class`,3,`btn`),o=k(()=>t.state.error&&i()?i():t.state.copied?r():n());var s=DL();let c;var l=N(s),u=e=>{q(e,{get icon(){return Ka},width:`14`,height:`14`,"stroke-width":`2.5`})},d=e=>{q(e,{get icon(){return Ya},width:`14`,height:`14`})};H(l,e=>{t.state.copied?e(u):e(d,-1)});var f=F(l,2),p=N(f,!0);E(f),E(s),I(()=>{c=W(s,1,Pi([`copy-feedback-btn`,a()]),null,c,{"copy-feedback-btn-copied":t.state.copied}),V(p,L(o))}),R(`click`,s,e=>{e.preventDefault(),t.onclick?.(e)}),B(e,s),O()}Vr([`click`]);var kL=z(`
Error Message
 
`),AL=z(`
 
`),jL=z(` `),ML=z(` streaming`),NL=z(`
Body
`),PL=z(`

`),FL=z(`

`),IL=z(`

`),LL=z(`
`);function RL(e,t){D(t,!0);let n=kM({logPrefix:`Failed to copy audit payload:`}),r=kM({logPrefix:`Failed to copy audit payload:`}),i=k(()=>t.pane&&t.pane.showHeaders?gc(t.pane.headers):``),a=k(()=>!t.pane||!t.pane.showBody?``:VI(t.pane.body)?KI(t.pane.body):yL.renderBodyWithConversationHighlights(t.pane.entry,t.pane.body,{promptCacheHighlight:t.pane.promptCacheHighlight})),o=k(()=>!!(t.pane&&yL.canShowConversation(t.pane.entry)));function s(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),yL.handleErrorConversationClick(e,t.pane.entry))}var c=LL();let l;var u=N(c),d=e=>{var n=kL(),r=F(N(n),2);let i;var a=N(r,!0);E(r),E(n),I(()=>{i=W(r,1,`audit-json audit-pane-error-message svelte-1h5puht`,null,i,{"audit-pane-clickable-preview":L(o)}),G(r,`role`,L(o)?`button`:null),G(r,`tabindex`,L(o)?0:null),V(a,t.pane.errorMessage)}),R(`mousedown`,r,e=>yL.startBodyInteraction(e)),R(`keydown`,r,s),R(`click`,r,e=>yL.handleErrorConversationClick(e,t.pane.entry)),B(e,n)};H(u,e=>{t.pane.showErrorMessage&&e(d)});var f=F(u,2),p=e=>{var n=AL(),a=N(n),o=N(a),s=N(o,!0);E(o),OL(F(o,2),{get state(){return r},label:`Copy Headers`,errorLabel:`Copy failed`,class:`audit-copy-btn`,onclick:()=>r.copy(t.pane.copyHeaders,gc)}),E(a);var c=F(a,2),l=N(c,!0);E(c),E(n),I(()=>{V(s,t.pane.headersTitle||`Headers`),V(l,L(i))}),B(e,n)};H(f,e=>{t.pane.showHeaders&&e(p)});var m=F(f,2),h=e=>{var r=NL(),i=N(r),o=N(i),s=F(N(o),2),c=e=>{var n=jL(),r=N(n,!0);E(n),I(()=>V(r,t.pane.bodyCacheRatioLabel)),B(e,n)};H(s,e=>{t.pane.bodyCacheRatioLabel&&e(c)});var l=F(s,2),u=e=>{B(e,ML())};H(l,e=>{t.pane.streaming&&e(u)}),E(o),OL(F(o,2),{get state(){return n},label:`Copy Body`,errorLabel:`Copy failed`,class:`audit-copy-btn`,onclick:()=>n.copy(t.pane.copyBody,gc)}),E(i);var d=F(i,2);mi(d,()=>L(a),!0),E(d),E(r),R(`mousedown`,d,e=>yL.startBodyInteraction(e)),R(`click`,d,e=>yL.handleBodyConversationClick(e,t.pane.entry)),B(e,r)};H(m,e=>{t.pane.showBody&&e(h)});var g=F(m,2),_=e=>{var n=PL(),r=N(n,!0);E(n),I(()=>V(r,t.pane.emptyMessage)),B(e,n)};H(g,e=>{t.pane.showEmpty&&e(_)});var v=F(g,2),y=e=>{var n=FL(),r=F(N(n),2),i=N(r,!0);E(r),E(n),I(()=>V(i,t.pane.pendingMessage)),B(e,n)};H(v,e=>{t.pane.showPending&&e(y)});var b=F(v,2),x=e=>{var n=IL(),r=N(n,!0);E(n),I(()=>V(r,t.pane.tooLargeMessage)),B(e,n)};H(b,e=>{t.pane.showTooLarge&&e(x)}),E(c),I(()=>l=W(c,1,`audit-pane svelte-1h5puht`,null,l,{"audit-pane-split":t.pane&&t.pane.layout===`split`,"audit-pane-split-single":t.pane&&t.pane.layout===`split`&&!(t.pane.showHeaders&&t.pane.showBody)})),B(e,c),O()}Vr([`mousedown`,`keydown`,`click`]);var zL=z(` `),BL=z(` `),VL=z(` `),HL=z(` `),UL=z(``),WL=z(`
`),GL=z(`
`);function KL(e,t){D(t,!0);let n=K(t,`panes`,19,()=>[]),r=A(null),i=k(()=>NF(L(r),t.entry,n())),a=e=>`audit-tab-`+t.entry.id+`-`+e,o=e=>`audit-tabpanel-`+t.entry.id+`-`+e;function s(e,t){let i=n().map(e=>e.id),a=PF(e.key,i,t);a!=null&&(e.preventDefault(),((e.currentTarget?.closest?.(`.audit-pane-tablist`))?.querySelectorAll(`.audit-pane-tab`)[i.indexOf(a)])?.focus?.(),j(r,a,!0))}var c=GL(),l=N(c);U(l,21,n,e=>e.id,(e,t)=>{var n=UL();let c;var l=N(n),u=N(l),d=e=>{q(e,{get icon(){return Na}})},f=e=>{q(e,{get icon(){return Ma}})};H(u,e=>{L(t).pane.direction===`request`?e(d):L(t).pane.direction===`response`&&e(f,1)}),E(l);var p=F(l,2),m=N(p,!0);E(p);var h=F(p,2),g=e=>{var n=zL(),r=N(n);E(n),I(()=>V(r,`#${L(t).pane.seq??``}`)),B(e,n)};H(h,e=>{L(t).pane.seq&&e(g)});var _=F(h,2),v=e=>{var n=BL(),r=N(n,!0);E(n),I(()=>{W(n,1,`provider-badge audit-pane-kind audit-pane-kind-${L(t).pane.kind??``}`,`svelte-1bc5vi5`),V(r,L(t).pane.kind)}),B(e,n)};H(_,e=>{L(t).pane.kind&&e(v)});var y=F(_,2);U(y,17,()=>L(t).pane.noChangeSteps||[],e=>e.id,(e,t)=>{var n=VL(),r=N(n,!0);E(n),I(()=>{G(n,`title`,L(t).title),V(r,L(t).label)}),B(e,n)});var b=F(y,2),x=e=>{var n=HL(),r=N(n,!0);E(n),I(()=>V(r,L(t).pane.savingsLabel)),B(e,n)};H(b,e=>{L(t).pane.savingsLabel&&e(x)});var S=F(b,2),C=e=>{var n=BL(),r=N(n,!0);E(n),I(e=>{W(n,1,`audit-status-badge ${e??``}`,`svelte-1bc5vi5`),V(r,L(t).pane.statusCode)},[()=>eF(L(t).pane.statusCode)]),B(e,n)};H(S,e=>{L(t).pane.statusCode&&e(C)}),E(n),I((e,r)=>{c=W(n,1,`audit-pane-tab svelte-1bc5vi5`,null,c,{"audit-pane-tab-active":L(i)===L(t).id}),G(n,`aria-selected`,L(i)===L(t).id),G(n,`id`,e),G(n,`aria-controls`,r),G(n,`tabindex`,L(i)===L(t).id?0:-1),W(l,1,Pi([`audit-pane-icon`,L(t).pane.direction&&`audit-pane-icon-${L(t).pane.direction}`]),`svelte-1bc5vi5`),V(m,L(t).pane.title)},[()=>a(L(t).id),()=>o(L(t).id)]),R(`keydown`,n,e=>s(e,L(t).id)),R(`click`,n,()=>j(r,L(t).id,!0)),B(e,n)}),E(l),U(F(l,2),17,n,e=>e.id,(e,t)=>{var n=WL();let r;RL(N(n),{get pane(){return L(t).pane}}),E(n),I((e,a)=>{G(n,`id`,e),G(n,`aria-labelledby`,a),r=Vi(n,``,r,{display:L(i)===L(t).id?null:`none`})},[()=>o(L(t).id),()=>a(L(t).id)]),B(e,n)}),E(c),B(e,c),O()}Vr([`keydown`,`click`]);var qL=z(`
`),JL=z(`
`);function YL(e,t){D(t,!0);let n=K(t,`thread`,3,null),r=K(t,`hidePath`,3,!1),i=k(()=>LF.isAuditEntryExpanded(t.entry)),a=k(()=>yL.conversationOpen&&String(yL.conversationAnchorID||``)===String(t.entry.id||``)),o=k(()=>L(i)?jF(t.entry,fI):[]),s=k(()=>L(i)?EN(t.entry,xP.auditEntryWorkflow(t.entry),xP.workflowFeatureCaps()):null);function c(){LF.toggleAuditEntryExpanded(t.entry)}var l=JL();let u;var d=N(l);EL(d,{get entry(){return t.entry},get thread(){return n()},get expanded(){return L(i)},get hidePath(){return r()},onactivate:c});var f=F(d,2),p=e=>{var n=qL(),r=N(n),i=e=>{HM(e,{get chart(){return L(s)}})};H(r,e=>{L(s)&&e(i)});var a=F(r,2);KL(a,{get entry(){return t.entry},get panes(){return L(o)}}),qF(F(a,2),{get entry(){return t.entry}}),E(n),Oi(3,n,()=>ic,()=>({y:-6,duration:yP(150)})),B(e,n)};H(f,e=>{L(i)&&e(p)}),E(l),I(()=>u=W(l,1,`audit-entry svelte-cmjgwr`,null,u,{"audit-entry-interactions-open":L(a)})),B(e,l),O()}var XL=z(`
`),ZL=z(`
`),QL=z(`

`),$L=z(`
`),eR=z(`
`);function tR(e,t){D(t,!0);let n=k(()=>LP(t.entry)),r=k(()=>LF.isThreadExpanded(L(n))),i=k(()=>LF.threadChildren(L(n))),a=k(()=>L(i)&&!L(i).loading&&Number(L(i).total||0)>L(i).entries.length+1);var o=Zr(),s=P(o),c=e=>{YL(e,{get entry(){return t.entry}})},l=k(()=>!zP(t.entry)),u=e=>{var n=eR(),o=N(n);{let e=k(()=>({count:RP(t.entry),expanded:L(r),ontoggle:()=>LF.toggleThread(t.entry)}));YL(o,{get entry(){return t.entry},get thread(){return L(e)}})}var s=F(o,2),c=e=>{var n=$L(),r=N(n),o=e=>{var t=XL();NS(N(t),{size:14,label:`Loading session requests`}),E(t),B(e,t)};H(r,e=>{L(i)&&L(i).loading&&e(o)});var s=F(r,2);U(s,17,()=>L(i)&&L(i).entries||[],e=>e.id,(e,n)=>{var r=ZL(),i=N(r);{let e=k(()=>L(n).path===t.entry.path);YL(i,{get entry(){return L(n)},get hidePath(){return L(e)}})}E(r),B(e,r)});var c=F(s,2),l=e=>{var t=QL(),n=N(t);E(t),I(()=>V(n,`Showing the latest ${L(i).entries.length+1} of ${L(i).total??``} - requests in this session.`)),B(e,t)};H(c,e=>{L(a)&&e(l)}),E(n),Oi(3,n,()=>ac,()=>({duration:yP(150)})),B(e,n)};H(s,e=>{L(r)&&e(c)}),E(n),B(e,n)};H(s,e=>{L(l)?e(c):e(u,-1)}),B(e,o),O()}var nR=z(`

.

`),rR=z(`
Audit logging is off. Live entries are temporary and disappear after - refresh. Set LOGGING_ENABLED=true to persist them.
`),iR=z(`

`),aR=z(`
`),oR=z(`
`),sR=z(`
`),cR=z(`
`),lR=z(`
`);function uR(e,t){D(t,!0);let n=k(()=>As.config&&As.config.LOGGING_RETENTION_DAYS);kn(()=>{if(J.refreshTick,Xo.page===`audit-logs`)return Tr(()=>r())});function r(){let e=!1;return(async()=>{try{await As.ensureLoaded()}finally{await LF.fetchAuditLog(!0),!e&&As.liveLogsVisible()&&UC.ensureLiveLogs()}})(),()=>{e=!0,UC.stopLiveLogs()}}var i=lR(),a=N(i),o=N(a),s=F(N(o),2),c=e=>{iC(e,{copyId:`audit-retention-help-copy`,label:`retention help`,text:`If you want to change the retention period, set LOGGING_RETENTION_DAYS (env var) or logging.retention_days (config.yaml) and restart the gateway. Default is 30 days; 0 keeps audit logs forever.`,title:e=>{var t=nR(),r=N(t,!0),i=F(r),a=N(i,!0);E(i),He(),E(t),I((e,t)=>{V(r,e),V(a,t)},[()=>NP(L(n)),()=>PP(L(n))]),B(e,t)},$$slots:{title:!0}})},l=k(()=>MP(L(n)));H(s,e=>{L(l)&&e(c)}),E(o),E(a);var u=F(a,2);fl(N(u),{onchange:()=>LF.fetchAuditLog(!0)}),E(u);var d=F(u,2);Kc(d,{});var f=F(d,2),p=e=>{B(e,rR())},m=k(()=>As.loaded&&!As.auditVisible()&&!J.needsAuth);H(f,e=>{L(m)&&e(p)});var h=F(f,2),g=N(h);zF(g,{});var _=F(g,2),v=N(_),y=N(v),b=e=>{var t=iR(),n=N(t);E(t),I(e=>V(n,`Showing ${LF.auditLog.offset+1}-${e??``} of ${LF.auditLog.total??``} - ${LF.auditGroupSessions?`sessions`:`logs`}`),[()=>Math.min(LF.auditLog.offset+LF.auditLog.limit,LF.auditLog.total)]),B(e,t)};H(y,e=>{LF.auditLog.total>0&&e(b)});var x=F(y,2),S=N(x);ta(S),He(2),E(x),E(v),WF(F(v,2),{}),E(_);var C=F(_,2),w=e=>{var t=aR();NS(N(t),{size:18,label:`Loading audit logs`}),E(t),B(e,t)},T=e=>{var t=sR();U(t,29,()=>LF.auditLog.entries,e=>e.id,(e,t)=>{var n=oR(),r=N(n),i=e=>{tR(e,{get entry(){return L(t)}})},a=e=>{YL(e,{get entry(){return L(t)}})};H(r,e=>{LF.auditGroupSessions?e(i):e(a,-1)}),E(n),Di(n,()=>hP,()=>({duration:yP(150)})),Oi(1,n,()=>bP,()=>({live:L(t)._live})),B(e,n)}),E(t),B(e,t)};H(C,e=>{LF.loading&&LF.auditLog.entries.length===0?e(w):LF.auditLog.entries.length>0&&e(T,1)});var ee=F(C,2),te=e=>{var t=cR();IS(N(t),{}),E(t),B(e,t)};H(ee,e=>{LF.auditLog.entries.length===0&&!LF.loading&&!J.needsAuth&&e(te)}),oT(F(ee,2),{get total(){return LF.auditLog.total},get offset(){return LF.auditLog.offset},get limit(){return LF.auditLog.limit},onprev:()=>LF.auditLogPrevPage(),onnext:()=>LF.auditLogNextPage()}),E(h),E(i),I(()=>ra(S,LF.auditGroupSessions)),R(`change`,S,()=>LF.toggleAuditGroupSessions()),B(e,i),O()}Vr([`change`]);function dR(e){try{let t=JSON.parse(JSON.stringify(e||{}));return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}catch{return{}}}function fR(e){return Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(e=>e):e==null?[]:String(e).split(`,`).map(e=>e.trim()).filter(e=>e)}function pR(e,t){let n=String(t||``).trim();return(e||[]).find(e=>String(e&&e.type||``).trim()===n)||null}function mR(e){return Array.isArray(e)&&e.length>0&&String(e[0].type||``).trim()||`system_prompt`}function hR(e,t){let n=String(t||``).trim();return n&&pR(e,n)?n:mR(e)}function gR(e,t){let n=pR(e,t);return!n||!n.defaults?{}:dR(n.defaults)}function _R(e,t,n){return{...gR(e,n),...dR(t)}}function vR(e,t){let n=hR(e,t);return{name:``,type:n,description:``,user_path:``,config:gR(e,n)}}function yR(e,t){if(!t)return e||[];let n=String(t).toLowerCase();return(e||[]).filter(e=>[e.name,e.type,e.user_path,e.description,e.summary].some(e=>String(e||``).toLowerCase().includes(n)))}function bR(e,t){let n=pR(e,t);return n&&n.label?n.label:t||`Unknown`}function xR(e,t){let n=pR(e,t);return Array.isArray(n&&n.fields)?n.fields:[]}function SR(e,t){if(!t||!e)return t&&t.input===`checkboxes`?[]:``;let n=e[t.key];return n==null?t.input===`checkboxes`?[]:``:t.input===`checkboxes`?fR(n):n}function CR(e,t,n){if(!t)return e;let r=dR(e);if(t.input===`number`){let e=String(n||``).trim();if(e===``)delete r[t.key];else{let n=Number(e);r[t.key]=Number.isFinite(n)?n:e}}else t.input===`checkboxes`?r[t.key]=fR(n):r[t.key]=n;return r}function wR(e,t,n){return SR(e,t).includes(String(n||``).trim())}function TR(e,t,n,r){let i=fR(SR(e,t)),a=String(n||``).trim();return a?CR(e,t,r?Array.from(new Set([...i,a])):i.filter(e=>e!==a)):e}function ER(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),description:String(e&&e.description||``).trim()||void 0,user_path:String(e&&e.user_path||``).trim()||void 0,config:dR(e&&e.config)}}var DR=new class{#e=A(M([]));get guardrails(){return L(this.#e)}set guardrails(e){j(this.#e,e,!0)}#t=A(M([]));get types(){return L(this.#t)}set types(e){j(this.#t,e,!0)}#n=A(!0);get available(){return L(this.#n)}set available(e){j(this.#n,e,!0)}#r=A(!1);get loading(){return L(this.#r)}set loading(e){j(this.#r,e,!0)}#i=A(!1);get typesLoading(){return L(this.#i)}set typesLoading(e){j(this.#i,e,!0)}#a=A(``);get error(){return L(this.#a)}set error(e){j(this.#a,e,!0)}#o=A(``);get filter(){return L(this.#o)}set filter(e){j(this.#o,e,!0)}#s=A(!1);get formOpen(){return L(this.#s)}set formOpen(e){j(this.#s,e,!0)}#c=A(!1);get formSubmitting(){return L(this.#c)}set formSubmitting(e){j(this.#c,e,!0)}#l=A(``);get deletingName(){return L(this.#l)}set deletingName(e){j(this.#l,e,!0)}#u=A(`create`);get formMode(){return L(this.#u)}set formMode(e){j(this.#u,e,!0)}#d=A(``);get formOriginalName(){return L(this.#d)}set formOriginalName(e){j(this.#d,e,!0)}#f=A(M({name:``,type:``,description:``,user_path:``,config:{}}));get form(){return L(this.#f)}set form(e){j(this.#f,e,!0)}get filtered(){return yR(this.guardrails,this.filter)}typeLabel(e){return bR(this.types,e)}typeFields(e){return xR(this.types,e)}fieldValue(e){return SR(this.form&&this.form.config,e)}setFieldValue(e,t){this.form={...this.form,config:CR(this.form.config,e,t)}}arrayFieldSelected(e,t){return wR(this.form&&this.form.config,e,t)}toggleArrayFieldValue(e,t,n){this.form={...this.form,config:TR(this.form.config,e,t,n)}}openCreate(){this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=vR(this.types,mR(this.types)),this.formOpen=!0}openEdit(e){let t=hR(this.types,e&&e.type);this.formMode=`edit`,this.formOriginalName=String(e&&e.name||``).trim(),this.error=``,this.form={name:this.formOriginalName,type:t,description:String(e&&e.description||``).trim(),user_path:String(e&&e.user_path||``).trim(),config:_R(this.types,e&&e.config,t)},this.formOpen=!0}closeForm(){this.formOpen=!1,this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=vR(this.types,mR(this.types))}changeType(e){let t=hR(this.types,e);this.form={...this.form,type:t,config:gR(this.types,t)}}async fetchTypes(){this.typesLoading=!0;try{let e=await kT(`/admin/guardrails/types`,{label:`guardrail types`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.types=[];return}if(e.result&&(this.available=!0),this.types=e.items,e.status===`error`){this.error=e.error;return}let t=hR(this.types,this.form.type);this.form={...this.form,type:t,config:_R(this.types,this.form.config,t)}}finally{this.typesLoading=!1}}async fetchGuardrails(){this.loading=!0,this.error=``;try{let e=await kT(`/admin/guardrails`,{label:`guardrails`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.guardrails=[];return}e.result&&(this.available=!0),this.guardrails=e.items,this.error=e.error}finally{this.loading=!1}}async fetchPage(){await Promise.all([this.fetchTypes(),this.fetchGuardrails()])}async submitForm(){let e=String(this.form.name||``).trim(),t=String(this.form.type||``).trim();if(!e){this.error=`Name is required.`;return}if(!t){this.error=`Type is required.`;return}this.error=``,this.formSubmitting=!0;let n=ER(this.form);try{let t=await AT(`/admin/guardrails`,`PUT`,n,{label:`save guardrail`,errorFallback:`Failed to save guardrail.`,unavailableMessage:`Guardrails feature is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}Y.success(`Guardrail "`+e+`" saved.`),this.closeForm(),this.fetchGuardrails()}finally{this.formSubmitting=!1}}async deleteGuardrail(e){let t=String(e&&e.name||``).trim();if(!(!t||this.deletingName)&&window.confirm(`Delete guardrail "`+t+`"? Workflows that still reference it must be updated first.`)){this.deletingName=t;try{let e=await AT(`/admin/guardrails`,`DELETE`,{name:t},{label:`delete guardrail`,errorFallback:`Failed to delete guardrail.`,unavailableMessage:`Guardrails feature is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,Y.error(e.error);return}if(e.status===`error`){Y.error(e.error);return}Y.success(`Guardrail "`+t+`" deleted.`),this.formOpen&&this.formOriginalName===t&&this.closeForm(),this.fetchGuardrails()}finally{this.deletingName=``}}}},OR=z(`
`),kR=z(`

Loading guardrails...

`),AR=z(`
`),jR=z(`
`),MR=z(`
NameTypeUser PathSummaryActions
`),NR=z(`

No guardrails defined yet.

`),PR=z(`

Instances

Each instance has a reusable name, a type, an optional user path for - future UI visibility scoping, and a JSON-backed config payload for - that type.

`);function FR(e,t){D(t,!0);var n=PR(),r=N(n),i=F(N(r),2);q(N(i),{get icon(){return mo},class:`form-action-icon`}),He(2),E(i),E(r);var a=F(r,2),o=e=>{var t=OR(),n=N(t);jw(N(n),{id:`guardrail-filter`,placeholder:`Filter by name, type, user path, summary...`,label:`Guardrail filter`,get value(){return DR.filter},set value(e){DR.filter=e}}),E(n),E(t),B(e,t)};H(a,e=>{DR.available&&e(o)});var s=F(a,2),c=e=>{var t=kR();NS(N(t),{size:16,label:`Loading guardrails`}),He(),E(t),B(e,t)};H(s,e=>{DR.loading&&DR.filtered.length===0&&e(c)});var l=F(s,2),u=e=>{var t=MR(),n=N(t),r=F(N(n));U(r,21,()=>DR.filtered,e=>e.name,(e,t)=>{var n=jR(),r=N(n),i=N(r,!0);E(r);var a=F(r),o=N(a),s=N(o,!0);E(o),E(a);var c=F(a),l=N(c,!0);E(c);var u=F(c),d=N(u),f=N(d,!0);E(d);var p=F(d,2),m=e=>{var n=AR(),r=N(n,!0);E(n),I(()=>V(r,L(t).description)),B(e,n)};H(p,e=>{L(t).description&&e(m)}),E(u);var h=F(u),g=N(h),_=N(g);{let e=k(()=>`Edit guardrail `+L(t).name);OT(_,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>DR.openEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return fo},class:`table-icon-svg`})},$$slots:{default:!0}})}var v=F(_,2);{let e=k(()=>(DR.deletingName===L(t).name?`Deleting guardrail `:`Delete guardrail `)+L(t).name),n=k(()=>DR.deletingName===L(t).name);OT(v,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>DR.deleteGuardrail(L(t)),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return Ro},class:`table-icon-svg`})},$$slots:{default:!0}})}E(g),E(h),E(n),I(e=>{V(i,L(t).name),V(s,e),V(l,L(t).user_path||`—`),V(f,L(t).summary||L(t).description||`No summary yet.`)},[()=>DR.typeLabel(L(t).type)]),B(e,n)}),E(r),E(n),E(t),B(e,t)};H(l,e=>{DR.filtered.length>0&&e(u)});var d=F(l,2),f=e=>{B(e,NR())};H(d,e=>{DR.filtered.length===0&&!DR.loading&&DR.available&&!DR.error&&!J.authError&&e(f)}),E(n),I(()=>i.disabled=DR.typesLoading||DR.formSubmitting||!DR.available),R(`click`,i,()=>DR.openCreate()),B(e,n),O()}Vr([`click`]);var IR=z(`

Workflows reference these names directly, so renames are - intentionally avoided after creation.

`),LR=z(``),RR=z(``),zR=z(``),BR=z(``),VR=z(``),HR=z(``),UR=z(``),WR=z(``),GR=z(``),KR=z(`
`),qR=z(``),JR=z(` `),YR=z(`
`),XR=z(`
`);function ZR(e,t){D(t,!0);let n=k(()=>DR.formMode===`edit`);{let t=e=>{B(e,IR())},r=k(()=>L(n)?`Edit Guardrail`:`Create Guardrail`);ME(e,{get open(){return DR.formOpen},get title(){return L(r)},ariaLabel:`Guardrail editor`,get error(){return DR.error},get submitting(){return DR.formSubmitting},submitLabel:`Save Guardrail`,dialogClass:`settings-guardrails-editor guardrails-editor-wide`,onclose:()=>DR.closeForm(),onsubmit:()=>DR.submitForm(),headerHint:t,children:(e,t)=>{var r=XR(),i=N(r);PE(i,{id:`guardrail-name`,label:`Name`,children:(e,t)=>{var r=LR();ta(r),I(()=>{r.disabled=L(n),G(r,`data-modal-autofocus`,!L(n)||void 0)}),ua(r,()=>DR.form.name,e=>DR.form.name=e),B(e,r)},$$slots:{default:!0}});var a=F(i,2);PE(a,{id:`guardrail-type`,label:`Type`,children:(e,t)=>{var r=zR();U(r,21,()=>DR.types,e=>e.type,(e,t)=>{var n=RR(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).type)&&(n.value=(n.__value=L(t).type)??``)}),B(e,n)}),E(r);var i;Ui(r),I(()=>{r.disabled=L(n),i!==(i=DR.form.type)&&(r.value=(r.__value=DR.form.type)??``,Hi(r,DR.form.type))}),R(`change`,r,e=>DR.changeType(e.currentTarget.value)),B(e,r)},$$slots:{default:!0}});var o=F(a,2);PE(o,{id:`guardrail-description`,label:`Description`,children:(e,t)=>{var r=BR();ta(r),I(()=>G(r,`data-modal-autofocus`,L(n)?!0:void 0)),ua(r,()=>DR.form.description,e=>DR.form.description=e),B(e,r)},$$slots:{default:!0}});var s=F(o,2),c=N(s);iC(c,{copyId:`guardrail-user-path-help-copy`,label:`guardrail user path help`,text:`Only used for auxiliary rewrite (llm_based_altering) guardrails; ignored for other guardrail types.`,title:e=>{B(e,VR())},$$slots:{title:!0}});var l=F(c,2);ta(l),E(s),U(F(s,2),17,()=>DR.typeFields(DR.form.type),e=>e.key,(e,t)=>{var n=Zr(),r=P(n),i=e=>{var n=KR(),r=N(n);{let e=e=>{var n=HR(),r=N(n,!0);E(n),I(()=>{G(n,`for`,`guardrail-field-`+L(t).key),V(r,L(t).label)}),B(e,n)},n=k(()=>`guardrail-field-help-`+L(t).key),i=k(()=>L(t).label+` help`),a=k(()=>L(t).help||``);iC(r,{get copyId(){return L(n)},get label(){return L(i)},get text(){return L(a)},title:e,$$slots:{title:!0}})}var i=F(r,2),a=e=>{var n=UR();U(n,21,()=>L(t).options||[],e=>e.value,(e,t)=>{var n=RR(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(n);var r;Ui(n),I(e=>{G(n,`id`,`guardrail-field-`+L(t).key),G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0),r!==(r=e)&&(n.value=(n.__value=e)??``,Hi(n,e))},[()=>DR.fieldValue(L(t))]),R(`change`,n,e=>DR.setFieldValue(L(t),e.currentTarget.value)),B(e,n)},o=e=>{var n=WR();dt(n),I(e=>{G(n,`id`,`guardrail-field-`+L(t).key),G(n,`placeholder`,L(t).placeholder||``),na(n,e),G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0)},[()=>DR.fieldValue(L(t))]),R(`input`,n,e=>DR.setFieldValue(L(t),e.currentTarget.value)),B(e,n)},s=e=>{var n=GR();ta(n),I(e=>{G(n,`id`,`guardrail-field-`+L(t).key),G(n,`type`,L(t).input||`text`),G(n,`placeholder`,L(t).placeholder||``),na(n,e),G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0)},[()=>DR.fieldValue(L(t))]),R(`input`,n,e=>DR.setFieldValue(L(t),e.currentTarget.value)),B(e,n)};H(i,e=>{L(t).input===`select`?e(a):L(t).input===`textarea`?e(o,1):e(s,-1)}),E(n),B(e,n)},a=e=>{var n=YR(),r=N(n),i=N(r,!0);E(r);var a=F(r,2);U(a,21,()=>L(t).options||[],e=>L(t).key+`-`+e.value,(e,n)=>{var r=qR(),i=N(r);ta(i);var a=F(i,2),o=N(a,!0);E(a),E(r),I(e=>{ra(i,e),V(o,L(n).label)},[()=>DR.arrayFieldSelected(L(t),L(n).value)]),R(`change`,i,e=>DR.toggleArrayFieldValue(L(t),L(n).value,e.currentTarget.checked)),B(e,r)}),E(a);var o=F(a,2),s=e=>{var n=JR(),r=N(n,!0);E(n),I(()=>{G(n,`id`,`guardrail-field-help-`+L(t).key),V(r,L(t).help)}),B(e,n)};H(o,e=>{L(t).help&&e(s)}),E(n),I(()=>{G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0),V(i,L(t).label)}),B(e,n)};H(r,e=>{L(t).input===`checkboxes`?e(a,-1):e(i)}),B(e,n)}),E(r),ua(l,()=>DR.form.user_path,e=>DR.form.user_path=e),B(e,r)},$$slots:{headerHint:!0,default:!0}})}O()}Vr([`change`,`input`]);var QR=z(`

Guardrails

`),$R=z(`
Runtime guardrail execution is currently off because GUARDRAILS_ENABLED is disabled. You can still manage - definitions here.
`),ez=z(`
Guardrails feature is unavailable.
`),tz=z(`
`),nz=z(`

Reusable Policy Objects

Guardrail Library

Store guardrails in the database, keep them hot in memory, and attach - them to workflows by reference.

Instances
Types
`);function rz(e,t){D(t,!0),kn(()=>{J.refreshTick,Xo.page===`guardrails`&&(As.ensureLoaded(),DR.fetchPage())});var n=nz(),r=N(n),i=N(r);iC(N(i),{copyId:`guardrails-help-copy`,label:`guardrails help`,text:`Reusable policy objects stored in the database and kept hot in memory for workflow execution.`,title:e=>{B(e,QR())},$$slots:{title:!0}}),E(i),E(r);var a=F(r,2),o=F(N(a),2),s=N(o),c=F(N(s),2),l=N(c,!0);E(c),E(s);var u=F(s,2),d=F(N(u),2),f=N(d,!0);E(d),E(u),E(o),E(a);var p=F(a,2);Kc(p,{});var m=F(p,2),h=e=>{B(e,$R())},g=k(()=>!As.guardrailsVisible());H(m,e=>{L(g)&&e(h)});var _=F(m,2),v=e=>{B(e,ez())};H(_,e=>{!J.authError&&!DR.available&&e(v)});var y=F(_,2),b=e=>{var t=tz(),n=N(t,!0);E(t),I(()=>V(n,DR.error)),B(e,t)};H(y,e=>{!J.authError&&DR.error&&!DR.formOpen&&e(b)});var x=F(y,2);ZR(x,{}),FR(F(x,2),{}),E(n),I((e,t)=>{V(l,e),V(f,t)},[()=>_c(DR.guardrails.length),()=>_c(DR.types.length)]),B(e,n),O()}var $=new class{#e=A(M([]));get servers(){return L(this.#e)}set servers(e){j(this.#e,e,!0)}#t=A(!0);get available(){return L(this.#t)}set available(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=A(``);get error(){return L(this.#r)}set error(e){j(this.#r,e,!0)}#i=A(``);get filter(){return L(this.#i)}set filter(e){j(this.#i,e,!0)}#a=A(!1);get formOpen(){return L(this.#a)}set formOpen(e){j(this.#a,e,!0)}#o=A(!1);get formSubmitting(){return L(this.#o)}set formSubmitting(e){j(this.#o,e,!0)}#s=A(`create`);get formMode(){return L(this.#s)}set formMode(e){j(this.#s,e,!0)}#c=A(!1);get slugEdited(){return L(this.#c)}set slugEdited(e){j(this.#c,e,!0)}#l=A(!1);get advancedOpen(){return L(this.#l)}set advancedOpen(e){j(this.#l,e,!0)}#u=A(M(Sx()));get form(){return L(this.#u)}set form(e){j(this.#u,e,!0)}#d=A(``);get deletingName(){return L(this.#d)}set deletingName(e){j(this.#d,e,!0)}#f=A(``);get reconnectingName(){return L(this.#f)}set reconnectingName(e){j(this.#f,e,!0)}#p=A(!1);get catalogOpen(){return L(this.#p)}set catalogOpen(e){j(this.#p,e,!0)}#m=A(!1);get catalogLoading(){return L(this.#m)}set catalogLoading(e){j(this.#m,e,!0)}#h=A(``);get catalogError(){return L(this.#h)}set catalogError(e){j(this.#h,e,!0)}#g=A(M(Cx()));get catalog(){return L(this.#g)}set catalog(e){j(this.#g,e,!0)}#_=k(()=>Px(this.servers,this.filter));get filtered(){return L(this.#_)}set filtered(e){j(this.#_,e)}async fetchServers(){if(await As.ensureLoaded(),!As.mcpVisible()){this.available=!1,this.servers=[],this.error=``,this.loading=!1;return}this.loading=!0,this.error=``;try{let e=await kT(`/admin/mcp-servers`,{label:`mcp servers`,errorFallback:`Failed to load MCP servers.`,unavailableStatuses:[503,404]});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.servers=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.servers=[],this.error=e.error;return}this.available=!0,this.servers=e.items}finally{this.loading=!1}}openCreate(){this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=Sx(),this.formOpen=!0}openEdit(e){!e||e.managed||(this.formMode=`edit`,this.slugEdited=!0,this.advancedOpen=!1,this.error=``,this.form=Fx(e),this.formOpen=!0)}closeForm(){this.formOpen=!1,this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=Sx()}syncSlugFromName(){this.formMode===`create`&&!this.slugEdited&&(this.form.slug=Ax(this.form.name))}markSlugEdited(){this.formMode===`create`&&(this.slugEdited=!0)}addHeader(){this.form.headers.push({name:``,value:``})}removeHeader(e){this.form.headers.splice(e,1)}async submitForm(){let e=Ix(this.form,this.formMode,this.servers);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await AT(`/admin/mcp-servers`,`PUT`,e.payload,{label:`save mcp server`,errorFallback:`Failed to save MCP server.`,unavailableMessage:`MCP server management is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}Y.success(`MCP server "`+e.payload.name+`" saved.`),this.closeForm(),this.fetchServers()}finally{this.formSubmitting=!1}}async deleteServer(e){let t=String(e&&e.name||``).trim(),n=wx(e);if(!(!n||this.deletingName||e&&e.managed)&&confirm(`Delete MCP server "`+t+`"? Clients lose access to its tools immediately.`)){this.deletingName=n;try{let e=await AT(`/admin/mcp-servers/`+encodeURIComponent(n),`DELETE`,void 0,{label:`delete mcp server`,errorFallback:`Failed to delete MCP server.`,unavailableMessage:`MCP server management is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,Y.error(e.error);return}if(e.status===`error`){Y.error(e.error);return}Y.success(`MCP server "`+t+`" deleted.`),this.formOpen&&this.form.slug===n&&this.closeForm(),this.fetchServers()}finally{this.deletingName=``}}}async reconnectServer(e){let t=String(e&&e.name||``).trim(),n=wx(e);if(!(!n||this.reconnectingName)){this.reconnectingName=n;try{let e=await AT(`/admin/mcp-servers/`+encodeURIComponent(n)+`/reconnect`,`POST`,void 0,{label:`reconnect mcp server`,errorFallback:`Failed to reconnect MCP server.`,unavailableMessage:`MCP server management is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,Y.error(e.error);return}if(e.status===`error`){Y.error(e.error);return}let r=e.result.data,i=Tx(r);i===`connected`?Y.success(`MCP server "`+t+`" reconnected.`):i===`disabled`?Y.success(`MCP server "`+t+`" is disabled; no connection was attempted.`):Y.error(`Reconnect attempted, but MCP server "`+t+`" is still `+i+`.`),r&&r.name?this.servers=(this.servers||[]).map(e=>wx(e)===wx(r)?r:e):this.fetchServers()}finally{this.reconnectingName=``}}}async openCatalog(e){let t=String(e&&e.name||``).trim(),n=wx(e);if(n){this.catalogOpen=!0,this.catalogLoading=!0,this.catalogError=``,this.catalog={...Cx(),server:n,status:Tx(e)};try{let e=await Ts(`/admin/mcp-servers/`+encodeURIComponent(n)+`/catalog`,{label:`mcp server catalog`});if(e.stale)return;if(e.status===503){this.available=!1,this.catalogError=`MCP server management is unavailable.`;return}if(e.status===404){this.catalogError=`MCP server "`+t+`" was not found.`;return}if(!e.ok){this.catalogError=e.status===401?`Authentication required.`:bs(e.data,`Failed to load MCP server catalog.`);return}this.catalog=Lx(n,e.data)}catch(e){console.error(`Failed to load MCP server catalog:`,e),this.catalogError=`Failed to load MCP server catalog.`}finally{this.catalogLoading=!1}}}closeCatalog(){this.catalogOpen=!1,this.catalogLoading=!1,this.catalogError=``,this.catalog=Cx()}},iz=z(``),az=z(`

`),oz=z(`
`),sz=z(`

`),cz=z(`
  • `),lz=z(`

      `),uz=z(`

      No tools listed — the server may still be connecting or degraded.

      `),dz=z(` `,1),fz=z(``);function pz(e,t){D(t,!0);let n=k(()=>zx($.catalog));Us(e,{get open(){return $.catalogOpen},variant:`editor`,onclose:()=>$.closeCatalog(),children:(e,t)=>{var r=fz(),i=N(r),a=N(i),o=F(N(a),2),s=N(o),c=N(s,!0);E(s);var l=F(s,2),u=N(l,!0);E(l),E(o),E(a),zs(F(a,2),{label:`Close MCP server catalog`,onclick:()=>$.closeCatalog()}),E(i);var d=F(i,2),f=e=>{ET(e,{label:`Loading catalog...`})},p=e=>{var t=iz(),n=N(t,!0);E(t),I(()=>V(n,$.catalogError)),B(e,t)},m=e=>{var t=dz(),r=P(t),i=e=>{var t=az(),n=N(t,!0);E(t),I(()=>V(n,$.catalog.instructions)),B(e,t)};H(r,e=>{$.catalog.instructions&&e(i)});var a=F(r,2);U(a,17,()=>L(n),e=>e.key,(e,t)=>{var n=lz(),r=N(n),i=N(r,!0);E(r);var a=F(r,2);U(a,21,()=>L(t).items,e=>e.key,(e,t)=>{var n=cz(),r=N(n),i=N(r,!0);E(r);var a=F(r,2),o=e=>{var n=oz(),r=N(n,!0);E(n),I(()=>{G(n,`title`,`Exposed on the aggregated /mcp endpoint as `+L(t).aggregated),V(r,L(t).aggregated)}),B(e,n)};H(a,e=>{L(t).aggregated&&e(o)});var s=F(a,2),c=e=>{var n=sz(),r=N(n,!0);E(n),I(()=>V(r,L(t).description)),B(e,n)};H(s,e=>{L(t).description&&e(c)}),E(n),I(()=>{G(r,`title`,L(t).aggregated||L(t).name),V(i,L(t).name)}),B(e,n)}),E(a),E(n),I(()=>V(i,L(t).title)),B(e,n)});var o=F(a,2),s=e=>{B(e,uz())},c=k(()=>Bx($.catalog));H(o,e=>{L(c)&&e(s)}),B(e,t)};H(d,e=>{$.catalogLoading?e(f):$.catalogError?e(p,1):e(m,-1)});var h=F(d,2),g=N(h);E(h),E(r),I((e,t)=>{V(c,$.catalog.server),W(l,1,`audit-status-badge ${e??``}`,`svelte-1xqrzco`),V(u,t)},[()=>Ex($.catalog),()=>Tx($.catalog)]),R(`click`,g,()=>$.closeCatalog()),B(e,r)},$$slots:{default:!0}}),O()}Vr([`click`]);var mz=z(`

      The display name can change. The slug is the stable client-facing identity.

      `),hz=z(` Human-readable and Unicode-friendly. You can change it later.`,1),gz=z(`Derived from the name. You may edit it before saving.`),_z=z(`Immutable because it is used in URLs, scope headers, and aggregated tool names.`),vz=z(` `,1),yz=z(` stdio servers are config-only: declare them in config.yaml under mcp.servers.`,1),bz=z(``),xz=z(`
      `),Sz=z(`
      Headers
      Sent only to the configured server origin. Saved values are shown as ***; leave *** unchanged to keep the stored value.
      Advanced settings Description, access rules, and timeout
      `,1);function Cz(e,t){D(t,!0);{let t=e=>{B(e,mz())},n=k(()=>$.formMode===`edit`?`Edit MCP Server`:`Add MCP Server`);ME(e,{get open(){return $.formOpen},get title(){return L(n)},ariaLabel:`MCP server editor`,get error(){return $.error},get submitting(){return $.formSubmitting},onclose:()=>$.closeForm(),onsubmit:()=>$.submitForm(),headerHint:t,children:(e,t)=>{var n=Sz(),r=P(n);PE(r,{id:`mcp-server-name`,label:`Name`,children:(e,t)=>{var n=hz(),r=P(n);ta(r),He(2),R(`input`,r,()=>$.syncSlugFromName()),ua(r,()=>$.form.name,e=>$.form.name=e),B(e,n)},$$slots:{default:!0}});var i=F(r,2);PE(i,{id:`mcp-server-slug`,label:`Slug`,children:(e,t)=>{var n=vz(),r=P(n);ta(r);var i=F(r,2),a=e=>{B(e,gz())},o=e=>{B(e,_z())};H(i,e=>{$.formMode===`create`?e(a):e(o,-1)}),I(()=>r.disabled=$.formMode===`edit`),R(`input`,r,()=>$.markSlugEdited()),ua(r,()=>$.form.slug,e=>$.form.slug=e),B(e,n)},$$slots:{default:!0}});var a=F(i,2);PE(a,{id:`mcp-server-transport`,label:`Transport`,children:(e,t)=>{var n=yz(),r=P(n),i=N(r);i.value=i.__value=`http`;var a=F(i);a.value=a.__value=`sse`,E(r),He(2),Wi(r,()=>$.form.transport,e=>$.form.transport=e),B(e,n)},$$slots:{default:!0}});var o=F(a,2);PE(o,{id:`mcp-server-url`,label:`URL`,children:(e,t)=>{var n=bz();ta(n),ua(n,()=>$.form.url,e=>$.form.url=e),B(e,n)},$$slots:{default:!0}});var s=F(o,2),c=F(N(s),2);U(c,21,()=>$.form.headers,ai,(e,t,n)=>{var r=xz(),i=N(r);ta(i);var a=F(i,2);ta(a),OT(F(a,2),{label:`Remove header`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>$.removeHeader(n),children:(e,t)=>{q(e,{get icon(){return jo},class:`table-icon-svg`})},$$slots:{default:!0}}),E(r),ua(i,()=>L(t).name,e=>L(t).name=e),ua(a,()=>L(t).value,e=>L(t).value=e),B(e,r)}),E(c);var l=F(c,2),u=N(l);q(N(u),{get icon(){return mo},class:`form-action-icon`}),He(2),E(u),E(l),He(2),E(s);var d=F(s,2),f=N(d);MA(N(f),{get enabled(){return $.form.enabled},label:`MCP server`,onclick:()=>$.form.enabled=!$.form.enabled}),E(f),E(d);var p=F(d,2),m=F(N(p),2),h=N(m),g=F(N(h),2);ta(g),E(h);var _=F(h,2),v=F(N(_),2);ta(v),E(_);var y=F(_,2),b=F(N(y),2);ta(b),E(y);var x=F(y,2),S=F(N(x),2);dt(S),G(S,`placeholder`,`/ -/team/alpha`),E(x);var C=F(x,2),w=F(N(C),2);ta(w),E(C),E(m),E(p),I(()=>p.open=$.advancedOpen),R(`click`,u,()=>$.addHeader()),Br(`toggle`,p,e=>$.advancedOpen=e.currentTarget.open),ua(g,()=>$.form.description,e=>$.form.description=e),ua(v,()=>$.form.allowed_tools,e=>$.form.allowed_tools=e),ua(b,()=>$.form.disallowed_tools,e=>$.form.disallowed_tools=e),ua(S,()=>$.form.user_paths,e=>$.form.user_paths=e),ua(w,()=>$.form.tool_timeout_seconds,e=>$.form.tool_timeout_seconds=e),B(e,n)},$$slots:{headerHint:!0,default:!0}})}O()}Vr([`input`,`click`]);var wz=z(`Config`),Tz=z(`
      `),Ez=z(`
      `),Dz=z(`
      NameTransportEndpointStatusToolsEnabledActions
      `);function Oz(e,t){D(t,!0);function n(e){return Dx(e,e=>ys.formatTimestamp(e))}var r=Dz(),i=N(r),a=F(N(i));U(a,21,()=>$.filtered,e=>wx(e),(e,t)=>{var r=Ez(),i=N(r),a=N(i),o=N(a,!0);E(a);var s=F(a,2),c=e=>{B(e,wz())};H(s,e=>{L(t).managed&&e(c)});var l=F(s,2),u=N(l,!0);E(l),E(i);var d=F(i),f=N(d),p=N(f,!0);E(f),E(d);var m=F(d),h=N(m,!0);E(m);var g=F(m),_=N(g),v=N(_,!0);E(_);var y=F(_,2),b=e=>{var n=Tz(),r=N(n,!0);E(n),I(()=>V(r,L(t).last_error)),B(e,n)},x=k(()=>Tx(L(t))===`degraded`&&L(t).last_error);H(y,e=>{L(x)&&e(b)}),E(g);var S=F(g),C=N(S),w=N(C,!0);E(C);var T=F(C,2),ee=N(T,!0);E(T),E(S);var te=F(S),ne=N(te),re=N(ne,!0);E(ne),E(te);var ie=F(te),ae=N(ie),oe=N(ae),se=e=>{{let n=k(()=>`Edit MCP server `+L(t).name);OT(e,{get label(){return L(n)},class:`table-icon-btn`,onclick:()=>$.openEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return fo},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(oe,e=>{L(t).managed||e(se)});var ce=F(oe,2);{let e=k(()=>`Inspect catalog of MCP server `+L(t).name);OT(ce,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>$.openCatalog(L(t)),children:(e,t)=>{q(e,{get icon(){return io},class:`form-action-icon`})},$$slots:{default:!0}})}var le=F(ce,2);{let e=k(()=>($.reconnectingName===wx(L(t))?`Reconnecting MCP server `:`Reconnect MCP server `)+L(t).name),n=k(()=>$.reconnectingName===wx(L(t)));OT(le,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>$.reconnectServer(L(t)),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return go},class:`form-action-icon`})},$$slots:{default:!0}})}var ue=F(le,2),de=e=>{{let n=k(()=>($.deletingName===wx(L(t))?`Deleting MCP server `:`Delete MCP server `)+L(t).name),r=k(()=>$.deletingName===wx(L(t)));OT(e,{get label(){return L(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>$.deleteServer(L(t)),get disabled(){return L(r)},children:(e,t)=>{q(e,{get icon(){return Ro},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(ue,e=>{L(t).managed||e(de)}),E(ae),E(ie),E(r),I((e,n,r,i,a,s,c,l)=>{V(o,L(t).name),V(u,e),V(p,L(t).transport||`http`),G(m,`title`,n),V(h,r),W(_,1,`audit-status-badge ${i??``}`,`svelte-ah8nrt`),G(_,`title`,a),V(v,s),V(w,c),V(ee,l),W(ne,1,Pi([`auth-key-status-badge`,L(t).enabled?`auth-key-status-active`:`auth-key-status-inactive`])),V(re,L(t).enabled?`Enabled`:`Disabled`)},[()=>wx(L(t)),()=>Ox(L(t)),()=>Ox(L(t)),()=>Ex(L(t)),()=>n(L(t)),()=>Tx(L(t)),()=>_c(L(t).tool_count||0),()=>kx(L(t))]),B(e,r)}),E(a),E(i),E(r),B(e,r),O()}var kz=z(`

      MCP Servers

      `),Az=z(``),jz=z(`
      MCP server management is unavailable.
      `),Mz=z(``),Nz=z(`
      `),Pz=z(`

      No MCP servers yet. Add one here, or declare servers in config.yaml under mcp.servers.

      `),Fz=z(`

      No MCP servers match your filter.

      `),Iz=z(`
      `);function Lz(e,t){D(t,!0),kn(()=>{J.refreshTick,Xo.page===`mcp-servers`&&$.fetchServers()});var n=Iz(),r=N(n),i=N(r);iC(N(i),{copyId:`mcp-servers-help-copy`,label:`MCP servers help`,text:`Upstream Model Context Protocol servers whose tools, prompts, and resources the gateway exposes to clients. Servers added here connect over HTTP or SSE; stdio servers and rows marked Config are declared in config.yaml under mcp.servers and are read-only in the dashboard. Saved header values are masked in API and dashboard responses.`,title:e=>{B(e,kz())},$$slots:{title:!0}}),E(i);var a=F(i,2),o=N(a),s=e=>{var t=Az();q(N(t),{get icon(){return mo},class:`form-action-icon`}),He(2),E(t),I(()=>t.disabled=$.formSubmitting),R(`click`,t,()=>$.openCreate()),B(e,t)};H(o,e=>{$.available&&!J.authError&&e(s)}),E(a),E(r);var c=F(r,2),l=e=>{B(e,jz())};H(c,e=>{!$.available&&!J.authError&&e(l)});var u=F(c,2),d=e=>{var t=Mz(),n=N(t,!0);E(t),I(()=>V(n,$.error)),B(e,t)};H(u,e=>{$.error&&!J.authError&&!$.formOpen&&e(d)});var f=F(u,2),p=e=>{ET(e,{label:`Loading MCP servers...`})};H(f,e=>{$.loading&&!J.authError&&e(p)});var m=F(f,2),h=e=>{var t=Nz(),n=N(t);jw(N(n),{id:`mcp-server-filter`,placeholder:`Filter by name, slug, URL, transport, or status...`,label:`Filter MCP servers by name, slug, URL, transport, or status`,get value(){return $.filter},set value(e){$.filter=e}}),E(n),E(t),B(e,t)};H(m,e=>{($.servers.length>0||$.filter)&&$.available&&!J.authError&&e(h)});var g=F(m,2);Cz(g,{});var _=F(g,2);pz(_,{});var v=F(_,2),y=e=>{Oz(e,{})};H(v,e=>{$.filtered.length>0&&$.available&&!J.authError&&e(y)});var b=F(v,2),x=e=>{B(e,Pz())};H(b,e=>{$.servers.length===0&&!$.filter&&!$.loading&&!J.authError&&!$.error&&$.available&&e(x)});var S=F(b,2),C=e=>{B(e,Fz())};H(S,e=>{$.servers.length>0&&$.filtered.length===0&&$.filter&&!$.loading&&!J.authError&&$.available&&e(C)}),E(n),B(e,n),O()}Vr([`click`]);var Rz=`api_keys`,zz=`session_sticky_keys`,Bz=`base_url`,Vz=`service_account_json`,Hz=`models`,Uz={[Rz]:{label:`API Keys`,control:`keys`,hint:`Identified sessions stay on one key by default, improving provider prompt-cache hits. Saved values are shown as ***********; leave the asterisks unchanged to keep the stored key.`},[zz]:{label:`Session-sticky API keys`,control:`checkbox`,hint:`Keep each identified conversation on one API key to preserve provider prompt-cache affinity. Turn off to rotate keys round-robin on every request.`},[Bz]:{label:`Base URL`,control:`text`},api_version:{label:`API Version`,control:`text`,placeholder:`e.g. 2024-10-01-preview`,hint:`Leave empty for the provider default. Realtime endpoints may need a newer version.`},backend:{label:`Backend`,control:`select`,hint:`Which Google surface to call. Vertex authenticates with Google credentials instead of an API key.`},auth_type:{label:`Auth Type`,control:`select`,hint:`How to obtain Google credentials. Leave on the default to use Application Default Credentials.`},api_mode:{label:`API Mode`,control:`select`,hint:`Which request shape to send upstream.`},vertex_project:{label:`Vertex Project`,control:`text`,placeholder:`my-gcp-project`},vertex_location:{label:`Vertex Location`,control:`text`,placeholder:`us-central1`},service_account_file:{label:`Service Account File`,control:`text`,placeholder:`/path/to/service-account.json`,hint:`Path readable by the gateway process.`},[Vz]:{label:`Service Account JSON`,control:`textarea`,placeholder:`Paste service account JSON`,hint:`Saved values are shown as ***********; leave the asterisks unchanged to keep the stored value, or clear it to remove.`},service_account_json_base64:{label:`Service Account JSON (base64)`,control:`text`,hint:`Saved values are shown as ***********; leave the asterisks unchanged to keep the stored value.`},gcp_scope:{label:`GCP Scope`,control:`text`,placeholder:`https://www.googleapis.com/auth/cloud-platform`},[Hz]:{label:`Models (comma-separated)`,control:`text`,placeholder:`gpt-4o, gpt-4o-mini`,hint:`Leave empty to auto-discover models from the provider's /models endpoint where supported.`}};function Wz(e){return Uz[e]||{label:String(e||``).split(`_`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),control:`text`}}function Gz(){return{name:``,type:``,api_keys:[],session_sticky_keys:!0,base_url:``,api_version:``,backend:``,auth_type:``,api_mode:``,vertex_project:``,vertex_location:``,service_account_file:``,service_account_json:``,service_account_json_base64:``,gcp_scope:``,models:``,enabled:!0}}function Kz(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.type,e.base_url].some(e=>String(e||``).toLowerCase().includes(r)))}function qz(e,t){let n=(Array.isArray(e)?e:[]).map(e=>String(e&&e.type||``).trim()).filter(Boolean),r=String(t||``).trim();return r&&!n.includes(r)&&n.push(r),n}function Jz(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>String(e&&e.type||``).trim()===n)||null}function Yz(e,t){let n=e&&Array.isArray(e.fields)&&e.fields.length>0?e.fields:Object.keys(Uz).map(e=>({name:e,advanced:e!==Rz})),r=t||e&&e.default_base_url||``,i=[],a=[];for(let e of n){let t=String(e&&e.name||``).trim();if(!t)continue;let n={...Wz(t),name:t,required:!!(e&&e.required),options:Array.isArray(e&&e.options)?e.options:[]};t===`base_url`&&r&&(n.placeholder=r,n.hint=`Defaults to `+r),n.options.length>0&&(n.control=`select`),(e&&e.advanced?a:i).push(n)}return{primary:i,advanced:a}}var Xz=new Set([`name`,`type`,`enabled`]);function Zz(e,t){let n=new Set([...t.primary||[],...t.advanced||[]].map(e=>e.name)),r=Gz(),i={...e};for(let e of Object.keys(r))!Xz.has(e)&&!n.has(e)&&(i[e]=r[e]);return i}function Qz(e){let t=Array.isArray(e&&e.api_keys)?e.api_keys.length:0;return t>0?t+` key`+(t===1?``:`s`):String(e&&e.service_account_json||``).trim()||String(e&&e.service_account_json_base64||``).trim()||String(e&&e.service_account_file||``).trim()?`service account`:String(e&&e.vertex_project||``).trim()?`ADC`:`keyless`}function $z(e){let t=Array.isArray(e&&e.models)?e.models:[];return t.length===0?`auto-discovered`:t.length+` model`+(t.length===1?``:`s`)}function eB(e){return(Array.isArray(e)?e:[]).map(e=>({value:String(e||``)}))}function tB(e){return(Array.isArray(e)?e:[]).map(e=>String(e&&e.value||``))}function nB(e,t){let n=String(t||``).trim();if(!n)return``;let r=new Set((Array.isArray(e)?e:[]).map(e=>String(e&&e.name||``).trim()));if(!r.has(n))return n;let i=1;for(;r.has(n+`-`+i);)i+=1;return n+`-`+i}function rB(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),api_keys:eB(e&&e.api_keys),session_sticky_keys:!e||e.session_sticky_keys!==!1,base_url:String(e&&e.base_url||``),api_version:String(e&&e.api_version||``),backend:String(e&&e.backend||``),auth_type:String(e&&e.auth_type||``),api_mode:String(e&&e.api_mode||``),vertex_project:String(e&&e.vertex_project||``),vertex_location:String(e&&e.vertex_location||``),service_account_file:String(e&&e.service_account_file||``),service_account_json:String(e&&e.service_account_json||``),service_account_json_base64:String(e&&e.service_account_json_base64||``),gcp_scope:String(e&&e.gcp_scope||``),models:(Array.isArray(e&&e.models)?e.models:[]).join(`, `),enabled:!e||e.enabled!==!1}}function iB(e){let t=String(e||``).trim();return t.length>=3&&/^\*+$/.test(t)}function aB(e,t,n,r){let i={},a=String(e&&e.name||``).trim();String(e&&e.type||``).trim()||(i.type=`Select a provider type.`),a?a.includes(`/`)?i.name=`Name cannot contain '/' — it separates the provider from the model.`:t===`create`&&(Array.isArray(n)?n:[]).some(e=>String(e&&e.name||``).trim()===a)&&(i.name=`Provider "`+a+`" already exists.`):i.name=`Name is required.`;let{primary:o,advanced:s}=Yz(r);for(let t of[...o,...s]){let n=oB(e,t);n&&(i[t.name]=n)}return i}function oB(e,t){if(t.name===`api_keys`){let n=tB(e&&e.api_keys);return t.required&&!n.some(e=>e.trim())?`At least one API key is required for this provider type.`:n.some(e=>!e.trim())?`Remove the empty row instead of leaving a key blank.`:``}let n=String(e&&e[t.name]||``).trim();if(t.required&&!n)return t.label+` is required for this provider type.`;if(!n)return``;if(t.name===`base_url`&&!n.includes(`://`)&&/[./]/.test(n))return`Include the scheme, e.g. https://`+n;if(t.name===`service_account_json`&&!iB(n))try{JSON.parse(n)}catch{return`Paste the service account JSON file's contents — this is not valid JSON.`}return``}function sB(e,t){let n={name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),enabled:!!(e&&e.enabled)},{primary:r,advanced:i}=Yz(t),a=!!(t&&Array.isArray(t.fields)&&t.fields.length>0),o=new Set;for(let t of[...r,...i])!a&&t.name===`session_sticky_keys`||(o.add(t.name),n[t.name]=cB(e,t.name));for(let t of Object.keys(Uz)){if(o.has(t)||t===`session_sticky_keys`)continue;let r=cB(e,t);(Array.isArray(r)?r.length>0:String(r).trim()!==``)&&(n[t]=r)}return n}function cB(e,t){switch(t){case Rz:return tB(e&&e.api_keys);case Hz:return hc(e&&e.models);case zz:return!!(e&&e.session_sticky_keys);case Vz:return e&&e.service_account_json||``;default:return String(e&&e[t]||``).trim()}}var lB=new class{#e=A(M([]));get rows(){return L(this.#e)}set rows(e){j(this.#e,e,!0)}#t=A(!0);get available(){return L(this.#t)}set available(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=A(``);get error(){return L(this.#r)}set error(e){j(this.#r,e,!0)}#i=A(``);get filter(){return L(this.#i)}set filter(e){j(this.#i,e,!0)}#a=A(!1);get formOpen(){return L(this.#a)}set formOpen(e){j(this.#a,e,!0)}#o=A(!1);get formSubmitting(){return L(this.#o)}set formSubmitting(e){j(this.#o,e,!0)}#s=A(`create`);get formMode(){return L(this.#s)}set formMode(e){j(this.#s,e,!0)}#c=A(!1);get advancedOpen(){return L(this.#c)}set advancedOpen(e){j(this.#c,e,!0)}#l=A(M(Gz()));get form(){return L(this.#l)}set form(e){j(this.#l,e,!0)}#u=A(M({}));get fieldErrors(){return L(this.#u)}set fieldErrors(e){j(this.#u,e,!0)}#d=A(``);get focusField(){return L(this.#d)}set focusField(e){j(this.#d,e,!0)}#f=A(``);get deletingName(){return L(this.#f)}set deletingName(e){j(this.#f,e,!0)}#p=A(!1);get deleteSubmitting(){return L(this.#p)}set deleteSubmitting(e){j(this.#p,e,!0)}#m=A(M([]));get types(){return L(this.#m)}set types(e){j(this.#m,e,!0)}#h=A(!1);get typesLoaded(){return L(this.#h)}set typesLoaded(e){j(this.#h,e,!0)}#g=null;get filteredRows(){return Kz(this.rows,this.filter)}get schema(){return Jz(this.types,this.form.type)}get formFields(){if(!String(this.form.type||``).trim())return{primary:[],advanced:[]};let e=this.schema;return Yz(e,e&&e.default_base_url)}async fetchTypes(){let e=await kT(`/admin/provider-credentials/types`,{label:`provider credential types`});e.status===`ok`&&(this.types=e.items,this.typesLoaded=!0)}async fetchPage(){this.#g&&this.#g.abort();let e=new AbortController;this.#g=e,this.loading=!0,this.error=``;try{let t=await kT(`/admin/provider-credentials`,{label:`provider credentials`,errorFallback:`Failed to load provider credentials.`,unavailableStatuses:[503,404],options:{signal:e.signal}});if(t.status===`stale`||e.signal.aborted)return;if(t.status===`unavailable`){this.available=!1,this.rows=[];return}if(t.status===`error`){t.result&&(this.available=!0),this.rows=[],this.error=t.error;return}this.available=!0,this.rows=t.items,this.typesLoaded||await this.fetchTypes()}finally{this.#g===e&&(this.#g=null,this.loading=!1)}}#_(e,t){this.formMode=e,this.form=t,this.advancedOpen=!1,this.error=``,this.fieldErrors={},this.focusField=``}openCreate(){this.#_(`create`,Gz()),this.formOpen=!0,this.typesLoaded||this.fetchTypes()}openEdit(e){!e||e.managed||(this.#_(`edit`,rB(e)),this.formOpen=!0,this.typesLoaded||this.fetchTypes())}closeForm(){this.formOpen=!1,this.#_(`create`,Gz())}selectType(){this.fieldErrors={};let e=this.formFields;this.formMode===`create`&&(this.form=Zz(this.form,e));let t=e.primary.find(e=>e.name===`api_keys`);t&&t.required&&this.form.api_keys.length===0&&(this.form.api_keys=[{value:``}])}clearFieldError(e){if(this.fieldErrors[e]===void 0)return;let{[e]:t,...n}=this.fieldErrors;this.fieldErrors=n}addApiKeyRow(){this.form.api_keys.push({value:``}),this.clearFieldError(`api_keys`)}removeApiKeyRow(e){this.form.api_keys.splice(e,1),this.clearFieldError(`api_keys`)}#v(e){let t=bs(e,`Failed to save provider credential.`),n=String(e&&e.error&&typeof e.error==`object`&&e.error.param||``).trim();if(n&&this.#y(n)){this.fieldErrors={...this.fieldErrors,[n]:t},this.error=``,this.#b();return}this.error=t}#y(e){if(e===`name`||e===`type`)return!0;let{primary:t,advanced:n}=this.formFields;return[...t,...n].some(t=>t.name===e)}#b(){let e=Object.keys(this.fieldErrors);if(e.length===0)return;let{primary:t,advanced:n}=this.formFields;n.some(t=>e.includes(t.name))&&(this.advancedOpen=!0);let r=[`type`,`name`,...t.map(e=>e.name),...n.map(e=>e.name)];this.focusField=r.find(t=>e.includes(t))||e[0]}#x(){Wc.fetchModels(),Wc.fetchCategories()}async submitForm(){let e=this.schema,t=aB(this.form,this.formMode,this.rows,e);if(Object.keys(t).length>0){this.fieldErrors=t,this.error=``,this.#b();return}let n=sB(this.form,e);this.error=``,this.fieldErrors={},this.formSubmitting=!0;try{let e=await AT(`/admin/provider-credentials`,`PUT`,n,{label:`save provider credential`,errorFallback:`Failed to save provider credential.`,unavailableMessage:`Provider credential management is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.error=e.error;return}if(e.status===`error`){e.result&&e.result.status!==401?this.#v(e.result.data):this.error=e.error;return}Y.success(`Provider "`+n.name+`" saved.`),this.closeForm(),this.#x(),this.fetchPage()}finally{this.formSubmitting=!1}}async performDelete(e){this.deleteSubmitting=!0,this.deletingName=e;try{let t=await AT(`/admin/provider-credentials/`+encodeURIComponent(e),`DELETE`,void 0,{label:`delete provider credential`,errorFallback:`Failed to delete provider credential.`,unavailableMessage:`Provider credential management is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,Ys.error=t.error;return}if(t.status===`error`){Ys.error=t.error;return}Y.success(`Provider "`+e+`" deleted.`),Ys.close(),this.formOpen&&this.form.name===e&&this.closeForm(),this.#x(),this.fetchPage()}finally{this.deleteSubmitting=!1,this.deletingName=``}}requestDelete(e){let t=String(e||``).trim();if(!t||this.deleteSubmitting)return;let n=(this.rows||[]).find(e=>String(e&&e.name||``).trim()===t);n&&n.managed||Ys.open({title:`Delete Provider`,titleId:`providerCredentialDeleteDialogTitle`,inputId:`provider-credential-delete-confirmation`,message:`Type "`+t+`" to permanently delete this provider credential. Requests routed to it will fail until it is reconfigured.`,requiredText:t,confirmLabel:`Delete Provider`,icon:jo,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.performDelete(t)})}},uB=z(`Config`),dB=z(` `,1),fB=z(`
      `),pB=z(`
      NameTypeBase URLAuthModelsEnabledUpdatedActions
      `);function mB(e,t){D(t,!0);var n=pB(),r=N(n),i=F(N(r));U(i,21,()=>lB.filteredRows,e=>e.name,(e,t)=>{var n=fB(),r=N(n),i=N(r),a=N(i,!0);E(i);var o=F(i,2),s=e=>{B(e,uB())};H(o,e=>{L(t).managed&&e(s)}),E(r);var c=F(r),l=N(c),u=N(l,!0);E(l),E(c);var d=F(c),f=N(d,!0);E(d);var p=F(d),m=N(p,!0);E(p);var h=F(p),g=N(h,!0);E(h);var _=F(h),v=N(_);let y;var b=N(v,!0);E(v),E(_);var x=F(_),S=N(x,!0);E(x);var C=F(x),w=N(C),T=N(w),ee=e=>{var n=dB(),r=P(n);{let e=k(()=>`Edit provider `+L(t).name);OT(r,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>lB.openEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return fo},class:`table-icon-svg`})},$$slots:{default:!0}})}var i=F(r,2);{let e=k(()=>(lB.deletingName===L(t).name?`Deleting provider `:`Delete provider `)+L(t).name),n=k(()=>lB.deletingName===L(t).name);OT(i,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>lB.requestDelete(L(t).name),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return Ro},class:`table-icon-svg`})},$$slots:{default:!0}})}B(e,n)};H(T,e=>{L(t).managed||e(ee)}),E(w),E(C),E(n),I((e,n,r)=>{V(a,L(t).name),V(u,L(t).type),G(d,`title`,L(t).base_url||``),V(f,L(t).base_url||`—`),V(m,e),V(g,n),y=W(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":L(t).enabled,"auth-key-status-inactive":!L(t).enabled}),V(b,L(t).enabled?`Enabled`:`Disabled`),V(S,r)},[()=>Qz(L(t)),()=>$z(L(t)),()=>ys.formatTimestamp(L(t).updated_at)]),B(e,n)}),E(i),E(r),E(n),B(e,n),O()}var hB=z(``),gB=z(`
      `),_B=z(`
      `,1),vB=z(``),yB=z(``),bB=z(``),xB=z(``),SB=z(``),CB=z(` `),wB=z(` `),TB=z(`
      `);function EB(e,t){D(t,!0);let n=k(()=>`provider-credential-`+t.field.name),r=k(()=>lB.fieldErrors[t.field.name]||``),i=k(()=>L(r)?L(n)+`-error`:t.field.hint?L(n)+`-hint`:void 0),a=k(()=>{let e=String(lB.form[t.field.name]||``).trim();return!e||t.field.options.includes(e)?t.field.options:[...t.field.options,e]});function o(){lB.clearFieldError(t.field.name)}var s=TB(),c=N(s),l=N(c),u=F(l),d=e=>{B(e,hB())};H(u,e=>{t.field.required&&e(d)}),E(c);var f=F(c,2),p=e=>{var t=_B(),a=P(t);U(a,21,()=>lB.form.api_keys,ai,(e,t,a)=>{var s=gB(),c=N(s);ta(c),G(c,`aria-label`,`API key `+(a+1)),OT(F(c,2),{label:`Remove API key `+(a+1),class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>lB.removeApiKeyRow(a),children:(e,t)=>{q(e,{get icon(){return jo},class:`table-icon-svg`})},$$slots:{default:!0}}),E(s),I(()=>{G(c,`id`,a===0?L(n):L(n)+`-`+a),G(c,`aria-invalid`,L(r)?`true`:void 0),G(c,`aria-describedby`,a===0?L(i):void 0)}),R(`input`,c,o),ua(c,()=>L(t).value,e=>L(t).value=e),B(e,s)}),E(a);var s=F(a,2),c=N(s);q(N(c),{get icon(){return mo},class:`form-action-icon`}),He(2),E(c),E(s),I(()=>G(c,`id`,lB.form.api_keys.length===0?L(n):void 0)),R(`click`,c,()=>lB.addApiKeyRow()),B(e,t)},m=e=>{var s=yB(),c=N(s);c.value=c.__value=``,U(F(c),16,()=>L(a),e=>e,(e,t)=>{var n=vB(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(s),I(()=>{G(s,`id`,L(n)),G(s,`aria-invalid`,L(r)?`true`:void 0),G(s,`aria-describedby`,L(i))}),R(`change`,s,o),Wi(s,()=>lB.form[t.field.name],e=>lB.form[t.field.name]=e),B(e,s)},h=e=>{var a=bB();ta(a),I(()=>{G(a,`id`,L(n)),G(a,`aria-invalid`,L(r)?`true`:void 0),G(a,`aria-describedby`,L(i))}),R(`change`,a,o),da(a,()=>lB.form[t.field.name],e=>lB.form[t.field.name]=e),B(e,a)},g=e=>{var a=xB();dt(a),I(()=>{G(a,`id`,L(n)),G(a,`placeholder`,t.field.placeholder||``),G(a,`aria-invalid`,L(r)?`true`:void 0),G(a,`aria-describedby`,L(i))}),R(`input`,a,o),ua(a,()=>lB.form[t.field.name],e=>lB.form[t.field.name]=e),B(e,a)},_=e=>{var a=SB();ta(a),I(()=>{G(a,`id`,L(n)),G(a,`placeholder`,t.field.placeholder||``),G(a,`aria-invalid`,L(r)?`true`:void 0),G(a,`aria-describedby`,L(i))}),R(`input`,a,o),ua(a,()=>lB.form[t.field.name],e=>lB.form[t.field.name]=e),B(e,a)};H(f,e=>{t.field.control===`keys`?e(p):t.field.control===`select`?e(m,1):t.field.control===`checkbox`?e(h,2):t.field.control===`textarea`?e(g,3):e(_,-1)});var v=F(f,2),y=e=>{var t=CB(),i=N(t,!0);E(t),I(()=>{G(t,`id`,L(n)+`-error`),V(i,L(r))}),B(e,t)},b=e=>{var r=wB(),i=N(r,!0);E(r),I(()=>{G(r,`id`,L(n)+`-hint`),V(i,t.field.hint)}),B(e,r)};H(v,e=>{L(r)?e(y):t.field.hint&&e(b,1)}),E(s),I(()=>{G(c,`for`,L(n)),V(l,`${t.field.label??``} `)}),B(e,s),O()}Vr([`input`,`click`,`change`]);var DB=z(`

      The name is the stable identity used for routing and cannot change once created.

      `),OB=z(``),kB=z(` `),AB=z(`Determines which fields the gateway uses to build requests.`),jB=z(` `),MB=z(`Suggested from the selected type; used to route requests to this provider instance and editable before saving.`),NB=z(`Immutable once created.`),PB=z(`

      Pick a type to configure its credentials — each provider type asks for different settings.

      `),FB=z(`
      Advanced settings
      `),IB=z(`
      `,1);function LB(e,t){D(t,!0);let n=k(()=>qz(lB.types,lB.form.type)),r=k(()=>lB.formFields),i=k(()=>lB.fieldErrors.name||``),a=k(()=>lB.fieldErrors.type||``);function o(){lB.selectType(),lB.formMode===`create`&&(lB.form.name=nB(lB.rows,lB.form.type))}kn(()=>{let e=lB.focusField;if(!e)return;lB.focusField=``;let t=document.getElementById(`provider-credential-`+e);t&&(t.scrollIntoView({block:`center`}),t.focus({preventScroll:!0}))});{let t=e=>{B(e,DB())},s=k(()=>lB.formMode===`edit`?`Edit Provider`:`Add Provider`);ME(e,{get open(){return lB.formOpen},get title(){return L(s)},ariaLabel:`Provider credential editor`,get error(){return lB.error},get submitting(){return lB.formSubmitting},novalidate:!0,onclose:()=>lB.closeForm(),onsubmit:()=>lB.submitForm(),headerHint:t,children:(e,t)=>{var s=IB(),c=P(s),l=F(N(c),2),u=N(l);u.value=u.__value=``,U(F(u),16,()=>L(n),e=>e,(e,t)=>{var n=OB(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(l);var d=F(l,2),f=e=>{var t=kB(),n=N(t,!0);E(t),I(()=>V(n,L(a))),B(e,t)},p=e=>{B(e,AB())};H(d,e=>{L(a)?e(f):e(p,-1)}),E(c);var m=F(c,2),h=F(N(m),2);ta(h);var g=F(h,2),_=e=>{var t=jB(),n=N(t,!0);E(t),I(()=>V(n,L(i))),B(e,t)},v=e=>{B(e,MB())},y=e=>{B(e,NB())};H(g,e=>{L(i)?e(_):lB.formMode===`create`?e(v,1):e(y,-1)}),E(m);var b=F(m,2),x=e=>{B(e,PB())};H(b,e=>{lB.form.type||e(x)});var S=F(b,2);U(S,17,()=>L(r).primary,e=>e.name,(e,t)=>{EB(e,{get field(){return L(t)}})});var C=F(S,2),w=N(C);MA(N(w),{get enabled(){return lB.form.enabled},label:`provider`,onclick:()=>lB.form.enabled=!lB.form.enabled}),E(w),E(C);var T=F(C,2),ee=e=>{var t=FB(),n=N(t),i=N(n),a=F(N(i),2),o=N(a,!0);E(a),E(i),E(n);var s=F(n,2);U(s,21,()=>L(r).advanced,e=>e.name,(e,t)=>{EB(e,{get field(){return L(t)}})}),E(s),E(t),I(e=>{t.open=lB.advancedOpen,V(o,e)},[()=>L(r).advanced.map(e=>e.label).join(`, `)]),Br(`toggle`,t,e=>lB.advancedOpen=e.currentTarget.open),B(e,t)};H(T,e=>{L(r).advanced.length>0&&e(ee)}),I(()=>{l.disabled=lB.formMode===`edit`,G(l,`aria-invalid`,L(a)?`true`:void 0),G(l,`aria-describedby`,L(a)?`provider-credential-type-error`:`provider-credential-type-hint`),h.disabled=lB.formMode===`edit`,G(h,`aria-invalid`,L(i)?`true`:void 0),G(h,`aria-describedby`,L(i)?`provider-credential-name-error`:`provider-credential-name-hint`)}),R(`change`,l,o),Wi(l,()=>lB.form.type,e=>lB.form.type=e),R(`input`,h,()=>lB.clearFieldError(`name`)),ua(h,()=>lB.form.name,e=>lB.form.name=e),B(e,s)},$$slots:{headerHint:!0,default:!0}})}O()}Vr([`change`,`input`]);var RB=z(`

      Providers

      `),zB=z(``),BB=z(`
      Provider credential management is unavailable.
      `),VB=z(``),HB=z(`
      `),UB=z(`

      No dashboard-managed providers yet. Add one here, or declare providers in config.yaml / environment variables.

      `),WB=z(`

      No providers match your filter.

      `),GB=z(`
      `);function KB(e,t){D(t,!0),kn(()=>{J.refreshTick,Xo.page===`providers-config`&&lB.fetchPage()});var n=GB(),r=N(n),i=N(r);iC(N(i),{copyId:`providers-config-help-copy`,label:`model providers help`,title:e=>{B(e,RB())},help:e=>{He(),B(e,Xr(`Configure LLM provider credentials here instead of setting API keys as - environment variables. Providers declared in config.yaml or env vars - are read-only (Config badge) and cannot be edited or deleted from the - dashboard. Keys are masked after saving.`))},$$slots:{title:!0,help:!0}}),E(i);var a=F(i,2),o=N(a),s=e=>{var t=zB();q(N(t),{get icon(){return mo},class:`form-action-icon`}),He(2),E(t),I(()=>t.disabled=lB.formSubmitting),R(`click`,t,()=>lB.openCreate()),B(e,t)};H(o,e=>{lB.available&&!J.needsAuth&&e(s)}),E(a),E(r);var c=F(r,2),l=e=>{B(e,BB())};H(c,e=>{!lB.available&&!J.needsAuth&&e(l)});var u=F(c,2),d=e=>{var t=VB(),n=N(t,!0);E(t),I(()=>V(n,lB.error)),B(e,t)};H(u,e=>{lB.error&&!J.needsAuth&&!lB.formOpen&&e(d)});var f=F(u,2),p=e=>{ET(e,{label:`Loading providers...`})};H(f,e=>{lB.loading&&!J.needsAuth&&e(p)});var m=F(f,2),h=e=>{var t=HB(),n=N(t);jw(N(n),{id:`provider-credential-filter`,placeholder:`Filter by name, type, or base URL...`,label:`Filter providers by name, type, or base URL`,get value(){return lB.filter},set value(e){lB.filter=e}}),E(n),E(t),B(e,t)};H(m,e=>{(lB.rows.length>0||lB.filter)&&lB.available&&!J.needsAuth&&e(h)});var g=F(m,2);LB(g,{});var _=F(g,2),v=e=>{mB(e,{})};H(_,e=>{lB.filteredRows.length>0&&lB.available&&!J.needsAuth&&e(v)});var y=F(_,2),b=e=>{B(e,UB())};H(y,e=>{lB.rows.length===0&&!lB.filter&&!lB.loading&&!J.needsAuth&&!lB.error&&lB.available&&e(b)});var x=F(y,2),S=e=>{B(e,WB())};H(x,e=>{lB.rows.length>0&&lB.filteredRows.length===0&&lB.filter&&!lB.loading&&!J.needsAuth&&lB.available&&e(S)}),E(n),B(e,n),O()}Vr([`click`]);function qB(){return{name:``,description:``,user_path:``,labels:``,dashboard_access:!1,expires_at:``}}function JB(e){let t=[];for(let n of String(e||``).split(`,`)){let e=n.trim();e&&!t.includes(e)&&t.push(e)}return t}function YB(e){let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t;for(let e of n.split(`/`)){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return`User path cannot contain "." or ".." segments.`;if(t.includes(`:`))return`User path cannot contain ":" segments.`}}return``}function XB(e){if(YB(e))return``;let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t,r=[];for(let e of n.split(`/`)){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function ZB(e){let t=e||{},n=String(t.name||``).trim();if(!n)return{error:`Name is required.`};let r=YB(t.user_path);if(r)return{error:r};let i=XB(t.user_path),a=JB(t.labels),o={name:n,description:String(t.description||``).trim()||void 0,user_path:i||void 0,labels:a.length?a:void 0,dashboard_access:t.dashboard_access?!0:void 0};return t.expires_at&&(o.expires_at=t.expires_at+`T23:59:59Z`),{payload:o}}function QB(e,t=Date.now()){let n=e&&e.expires_at;if(!n)return!1;let r=Date.parse(n);return Number.isFinite(r)&&r<=t}function $B(e){return e?!!e.deactivated_at||e.enabled===!1:!1}function eV(e,t=Date.now()){return!e||e.active===!1||$B(e)?!1:!QB(e,t)}function tV(e){return[e.name,e.description,e.user_path,e.redacted_value,...e.labels||[]].filter(Boolean).join(` `).toLowerCase()}function nV(e,t={}){let{query:n=``,showInactive:r=!1,now:i=Date.now()}=t,a=String(n||``).trim().toLowerCase();return(Array.isArray(e)?e:[]).filter(e=>!r&&!eV(e,i)?!1:!a||tV(e).includes(a))}function rV(e,t){return $B(e)?2:+!eV(e,t)}function iV(e){let t=e&&e.expires_at;if(!t)return 1/0;let n=Date.parse(t);return Number.isFinite(n)?n:1/0}function aV(e){let t=Date.parse(e&&e.deactivated_at||``);return Number.isFinite(t)?t:-1/0}function oV(e,t=Date.now()){return(Array.isArray(e)?e.slice():[]).sort((e,n)=>{let r=rV(e,t),i=rV(n,t);if(r!==i)return r-i;let[a,o]=r===2?[aV(e),aV(n)]:[iV(e),iV(n)];return a===o?String(e.name||``).localeCompare(String(n.name||``)):a>o?-1:1})}function sV(e,t=Date.now()){return(Array.isArray(e)?e:[]).reduce((e,n)=>e+ +!eV(n,t),0)}function cV(){return{open:!1,id:``,name:``,value:``,submitting:!1,error:``}}var lV=new class{#e=A(M([]));get keys(){return L(this.#e)}set keys(e){j(this.#e,e,!0)}#t=A(!0);get available(){return L(this.#t)}set available(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=A(``);get error(){return L(this.#r)}set error(e){j(this.#r,e,!0)}#i=A(``);get filter(){return L(this.#i)}set filter(e){j(this.#i,e,!0)}#a=A(!1);get showInactive(){return L(this.#a)}set showInactive(e){j(this.#a,e,!0)}#o=k(()=>oV(nV(this.keys,{query:this.filter,showInactive:this.showInactive})));get visibleKeys(){return L(this.#o)}set visibleKeys(e){j(this.#o,e)}#s=k(()=>sV(this.keys));get inactiveCount(){return L(this.#s)}set inactiveCount(e){j(this.#s,e)}#c=A(!1);get formOpen(){return L(this.#c)}set formOpen(e){j(this.#c,e,!0)}#l=A(!1);get formSubmitting(){return L(this.#l)}set formSubmitting(e){j(this.#l,e,!0)}#u=A(``);get issuedValue(){return L(this.#u)}set issuedValue(e){j(this.#u,e,!0)}#d=A(``);get deactivatingID(){return L(this.#d)}set deactivatingID(e){j(this.#d,e,!0)}#f=A(``);get dashboardAccessID(){return L(this.#f)}set dashboardAccessID(e){j(this.#f,e,!0)}#p=A(M(qB()));get form(){return L(this.#p)}set form(e){j(this.#p,e,!0)}#m=A(M(cV()));get labelsEditor(){return L(this.#m)}set labelsEditor(e){j(this.#m,e,!0)}copyState=kM({logPrefix:`Failed to copy auth key:`});async fetchKeys(){this.loading=!0,this.error=``;try{let e=await kT(`/admin/auth-keys`,{label:`auth keys`,errorFallback:`Unable to load API keys.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.keys=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.error=e.error;return}this.available=!0,this.keys=e.items}finally{this.loading=!1}}openForm(){this.formSubmitting||this.formOpen||(this.formOpen=!0,this.error=``,this.issuedValue||(this.copyState.reset(),this.form=qB()))}closeForm(){this.formOpen&&(this.formOpen=!1,this.error=``,this.copyState.reset(),!this.formSubmitting&&!this.issuedValue&&(this.form=qB()))}copyIssuedValue(){return this.copyState.copy(this.issuedValue)}dismissIssuedKey(){this.issuedValue=``,this.copyState.reset(),this.form=qB()}async submitForm(){let e=ZB(this.form);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await AT(`/admin/auth-keys`,`POST`,e.payload,{label:`create API key`,errorFallback:`Failed to create API key.`,unavailableMessage:`Auth keys feature is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error,t.result&&t.result.status!==401&&console.error(`Failed to create API key:`,t.result.status,this.error);return}let n=t.result.data||{};this.issuedValue=n.value||``,this.formOpen=!0,this.copyState.reset(),this.form=qB(),this.fetchKeys()}finally{this.formSubmitting=!1}}openLabelsEditor(e){!e||this.labelsEditor.submitting||(this.labelsEditor={open:!0,id:e.id,name:e.name||``,value:(e.labels||[]).join(`, `),submitting:!1,error:``})}closeLabelsEditor(){!this.labelsEditor.open||this.labelsEditor.submitting||(this.labelsEditor=cV())}async submitLabelsEditor(){let e=this.labelsEditor;if(!e.open||e.submitting||!e.id)return;e.submitting=!0,e.error=``;let t={labels:JB(e.value)};try{let n=await AT(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/labels`,`PUT`,t,{label:`update API key labels`,errorFallback:`Failed to update labels.`,unavailableMessage:`Auth keys feature is unavailable.`});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,e.error=n.error;return}if(n.status===`error`){e.error=n.error,n.result&&n.result.status!==401&&console.error(`Failed to update auth key labels:`,n.result.status,e.error);return}Y.success(`Labels updated for key "`+e.name+`".`),e.submitting=!1,this.closeLabelsEditor(),this.fetchKeys()}finally{e.submitting=!1}}async toggleDashboardAccess(e){if(!e||!e.active||this.dashboardAccessID)return;let t=!e.dashboard_access;this.dashboardAccessID=e.id;try{let n=await AT(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/dashboard-access`,`PUT`,{dashboard_access:t},{label:`update API key dashboard access`,errorFallback:`Failed to update dashboard access.`,unavailableMessage:`Auth keys feature is unavailable.`});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,Y.error(n.error);return}if(n.status===`error`){n.result&&n.result.status!==401&&console.error(`Failed to update auth key dashboard access:`,n.result.status,n.error),Y.error(n.error);return}Y.success(`Dashboard access `+(t?`granted to`:`revoked for`)+` key "`+e.name+`".`),this.fetchKeys()}finally{this.dashboardAccessID=``}}async deactivateKey(e){if(!(!e||!e.active)&&window.confirm(`Deactivate key "`+e.name+`"? This cannot be undone.`)){this.deactivatingID=e.id;try{let t=await AT(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/deactivate`,`POST`,void 0,{label:`deactivate API key`,errorFallback:`Failed to deactivate key.`,unavailableMessage:`Auth keys feature is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,Y.error(t.error);return}if(t.status===`error`){t.result&&t.result.status!==401&&console.error(`Failed to deactivate auth key:`,t.result.status,t.error),Y.error(t.error);return}Y.success(`Key "`+e.name+`" deactivated.`),this.fetchKeys()}finally{this.deactivatingID=``}}}},uV=z(``),dV=z(`

      Store this key securely — it won’t be shown again.

      `),fV=z(``),pV=z(``),mV=z(``),hV=z(``),gV=z(`
      `);function _V(e,t){D(t,!0);{let t=k(()=>lV.issuedValue?``:lV.error),n=k(()=>lV.issuedValue?`Done, I’ve stored it`:`Create API Key`),r=k(()=>lV.issuedValue?Va:mo);ME(e,{get open(){return lV.formOpen},title:`Create API Key`,ariaLabel:`API key editor`,get error(){return L(t)},get submitting(){return lV.formSubmitting},get submitLabel(){return L(n)},submittingLabel:`Creating...`,get submitIcon(){return L(r)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>lV.closeForm(),onsubmit:()=>lV.issuedValue?lV.dismissIssuedKey():lV.submitForm(),children:(e,t)=>{var n=Zr(),r=P(n),i=e=>{var t=dV(),n=F(N(t),2),r=N(n),i=N(r,!0);E(r),OL(F(r,2),{get state(){return lV.copyState},onclick:()=>lV.copyIssuedValue()}),E(n);var a=F(n,2),o=e=>{B(e,uV())};H(a,e=>{lV.copyState.error&&e(o)}),E(t),I(()=>V(i,lV.issuedValue)),B(e,t)},a=e=>{var t=gV(),n=N(t),r=N(n),i=F(N(r),2);ta(i),E(r);var a=F(r,2),o=F(N(a),2);ta(o),E(a),E(n);var s=F(n,2),c=N(s);iC(c,{copyId:`auth-key-user-path-help-copy`,label:`API key user path help`,title:e=>{B(e,fV())},help:e=>{He(),B(e,Xr(`When set, this key overrides the configured user path request - header for audit logging and downstream request context.`))},$$slots:{title:!0,help:!0}});var l=F(c,2);ta(l),E(s);var u=F(s,2),d=N(u);iC(d,{copyId:`auth-key-labels-help-copy`,label:`API key labels help`,title:e=>{B(e,pV())},help:e=>{He(),B(e,Xr(`Every request authenticated with this key gets these labels, in - addition to any labels from tagging headers. Labels show up in - usage analytics, the request log, and audit logs.`))},$$slots:{title:!0,help:!0}});var f=F(d,2);ta(f),E(u);var p=F(u,2),m=N(p);iC(m,{copyId:`auth-key-dashboard-access-help-copy`,label:`API key dashboard access help`,title:e=>{B(e,mV())},help:e=>{He(),B(e,Xr(`When off, this key is denied the dashboard and every /admin API - endpoint. Model endpoints and GET /v1/usage stay available to - the key. The master key always has dashboard access.`))},$$slots:{title:!0,help:!0}});var h=F(m,2),g=N(h);ta(g),He(2),E(h),E(p),PE(F(p,2),{id:`auth-key-description`,label:`Description (optional)`,children:(e,t)=>{var n=hV();dt(n),ua(n,()=>lV.form.description,e=>lV.form.description=e),B(e,n)},$$slots:{default:!0}}),E(t),ua(i,()=>lV.form.name,e=>lV.form.name=e),ua(o,()=>lV.form.expires_at,e=>lV.form.expires_at=e),ua(l,()=>lV.form.user_path,e=>lV.form.user_path=e),ua(f,()=>lV.form.labels,e=>lV.form.labels=e),da(g,()=>lV.form.dashboard_access,e=>lV.form.dashboard_access=e),B(e,t)};H(r,e=>{lV.issuedValue?e(i):e(a,-1)}),B(e,n)},$$slots:{default:!0}})}O()}var vV=z(`

      `),yV=z(`

      Applies to new requests made with this key. Leave empty to remove all labels.

      `,1);function bV(e,t){D(t,!0),ME(e,{get open(){return lV.labelsEditor.open},title:`Edit Labels`,ariaLabel:`API key labels editor`,get error(){return lV.labelsEditor.error},get submitting(){return lV.labelsEditor.submitting},submitLabel:`Save Labels`,cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>lV.closeLabelsEditor(),onsubmit:()=>lV.submitLabelsEditor(),headerHint:e=>{var t=vV(),n=N(t,!0);E(t),I(()=>V(n,lV.labelsEditor.name)),B(e,t)},children:(e,t)=>{PE(e,{id:`auth-key-labels-edit`,label:`Labels (comma-separated)`,children:(e,t)=>{var n=yV(),r=P(n);ta(r),He(2),ua(r,()=>lV.labelsEditor.value,e=>lV.labelsEditor.value=e),B(e,n)},$$slots:{default:!0}})},$$slots:{headerHint:!0,default:!0}}),O()}var xV=z(` `),SV=z(`
      `),CV=z(``),wV=z(`Expired`),TV=z(` `),EV=z(` `,1),DV=z(`Deactivated`),OV=z(`
      `),kV=z(`
      NameDescriptionUser PathLabelsTokenDashboard Access ExpiresCreated
      `);function AV(e,t){D(t,!0);var n=kV(),r=N(n),i=N(r),a=N(i),o=F(N(a),5),s=N(o);q(F(N(s)),{get icon(){return to},width:`13`,height:`13`}),E(s),E(o),He(3),E(a),E(i);var c=F(i);U(c,21,()=>lV.visibleKeys,e=>e.id,(e,t)=>{var n=OV();let r;var i=N(n),a=N(i,!0);E(i);var o=F(i),s=N(o,!0);E(o);var c=F(o),l=N(c,!0);E(c);var u=F(c),d=N(u),f=e=>{var n=SV();U(n,20,()=>L(t).labels||[],e=>e,(e,t)=>{var n=xV(),r=N(n,!0);E(n),I(e=>{Vi(n,e),V(r,t)},[()=>eb(t)]),B(e,n)}),E(n),B(e,n)},p=e=>{B(e,CV())};H(d,e=>{(L(t).labels||[]).length>0?e(f):e(p,-1)}),E(u);var m=F(u),h=N(m),g=N(h,!0);E(h),E(m);var _=F(m),v=N(_);let y;var b=N(v,!0);E(v),E(_);var x=F(_),S=N(x),C=e=>{var n=TV(),r=N(n),i=N(r,!0);E(r);var a=F(r,2),o=e=>{B(e,wV())},s=k(()=>QB(L(t)));H(a,e=>{L(s)&&e(o)}),E(n),I(e=>V(i,e),[()=>wc(L(t).expires_at)]),B(e,n)},w=e=>{B(e,Xr(`—`))};H(S,e=>{L(t).expires_at?e(C):e(w,-1)}),E(x);var T=F(x),ee=N(T,!0);E(T);var te=F(T),ne=N(te),re=N(ne),ie=e=>{var n=EV(),r=P(n);{let e=k(()=>(L(t).dashboard_access?`Revoke dashboard access for API key `:`Grant dashboard access to API key `)+L(t).name),n=k(()=>!!lV.dashboardAccessID);OT(r,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>lV.toggleDashboardAccess(L(t)),get disabled(){return L(n)},children:(e,n)=>{{let n=k(()=>L(t).dashboard_access?To:wo);q(e,{get icon(){return L(n)},class:`table-icon-svg`})}},$$slots:{default:!0}})}var i=F(r,2);{let e=k(()=>`Edit labels for API key `+L(t).name);OT(i,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>lV.openLabelsEditor(L(t)),children:(e,t)=>{q(e,{get icon(){return fo},class:`table-icon-svg`})},$$slots:{default:!0}})}var a=F(i,2);{let e=k(()=>(lV.deactivatingID===L(t).id?`Deactivating API key `:`Deactivate API key `)+L(t).name),n=k(()=>lV.deactivatingID===L(t).id);OT(a,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>lV.deactivateKey(L(t)),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return ho},class:`table-icon-svg`})},$$slots:{default:!0}})}B(e,n)},ae=e=>{var n=DV();I(e=>G(n,`title`,e),[()=>L(t).deactivated_at?`Deactivated on `+Tc(L(t).deactivated_at):`Deactivated`]),B(e,n)},oe=k(()=>$B(L(t)));H(re,e=>{L(t).active?e(ie):L(oe)&&e(ae,1)}),E(ne),E(te),E(n),I((e,i,o)=>{r=W(n,1,`svelte-nf0ldb`,null,r,e),V(a,L(t).name),V(s,L(t).description||`—`),V(l,L(t).user_path||`—`),V(g,L(t).redacted_value),y=W(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":L(t).dashboard_access,"auth-key-status-inactive":!L(t).dashboard_access}),V(b,L(t).dashboard_access?`Allowed`:`Denied`),G(x,`title`,i),V(ee,o)},[()=>({"auth-key-row-deactivated":$B(L(t))}),()=>L(t).expires_at?Tc(L(t).expires_at):``,()=>ys.formatTimestamp(L(t).created_at)]),B(e,n)}),E(c),E(r),E(n),B(e,n),O()}var jV=z(``),MV=z(`
      API key management is unavailable.
      `),NV=z(``),PV=z(`

      Managed API keys authenticate requests to the gateway. Deactivation is - permanent — create a new key if access needs to be restored.

      `),FV=z(`
      `),IV=z(`
      `),LV=z(`

      `),RV=z(`

      No API keys yet. Issue a key to get started.

      `),zV=z(`
      `);function BV(e,t){D(t,!0),kn(()=>{J.refreshTick,Xo.page===`auth-keys`&&lV.fetchKeys()});var n=zV(),r=N(n),i=F(N(r),2),a=N(i),o=e=>{var t=jV();q(N(t),{get icon(){return mo},class:`table-icon-svg`}),He(2),E(t),I(()=>t.disabled=lV.formSubmitting),R(`click`,t,()=>{lV.formSubmitting||lV.openForm()}),B(e,t)};H(a,e=>{lV.available&&!J.authError&&e(o)}),E(i),E(r);var s=F(r,2),c=e=>{B(e,MV())};H(s,e=>{!lV.available&&!J.authError&&e(c)});var l=F(s,2),u=e=>{var t=NV(),n=N(t,!0);E(t),I(()=>V(n,lV.error)),B(e,t)};H(l,e=>{lV.error&&!J.authError&&!lV.formOpen&&e(u)});var d=F(l,2),f=e=>{B(e,PV())};H(d,e=>{lV.available&&!J.authError&&e(f)});var p=F(d,2);_V(p,{});var m=F(p,2);bV(m,{});var h=F(m,2),g=e=>{var t=FV();NS(N(t),{size:18,label:`Loading API keys`}),E(t),B(e,t)};H(h,e=>{lV.loading&&lV.keys.length===0&&e(g)});var _=F(h,2),v=e=>{var t=IV(),n=N(t);jw(N(n),{placeholder:`Filter by name, description, user path, label, or token...`,label:`Filter API keys by name, description, user path, label, or token`,get value(){return lV.filter},set value(e){lV.filter=e}}),E(n);var r=F(n,2),i=N(r),a=N(i);ta(a);var o=F(a,2),s=F(N(o)),c=e=>{var t=Xr();I(()=>V(t,`(${lV.inactiveCount??``})`)),B(e,t)};H(s,e=>{lV.inactiveCount>0&&e(c)}),E(o),E(i),E(r),E(t),da(a,()=>lV.showInactive,e=>lV.showInactive=e),B(e,t)};H(_,e=>{lV.keys.length>0&&lV.available&&e(v)});var y=F(_,2),b=e=>{AV(e,{})};H(y,e=>{lV.visibleKeys.length>0&&lV.available&&e(b)});var x=F(y,2),S=e=>{var t=LV(),n=N(t);E(t),I(()=>V(n,`No API keys match the current filter.${lV.inactiveCount>0&&!lV.showInactive?` `+lV.inactiveCount+` inactive `+(lV.inactiveCount===1?`key is`:`keys are`)+` hidden.`:``}`)),B(e,t)};H(x,e=>{lV.keys.length>0&&lV.visibleKeys.length===0&&lV.available&&e(S)});var C=F(x,2),w=e=>{B(e,RV())};H(C,e=>{lV.keys.length===0&&!lV.loading&&!J.authError&&!lV.error&&lV.available&&e(w)}),E(n),B(e,n),O()}Vr([`click`]);var VV=z(`

      Timezone

      `),HV=z(``),UV=z(``),WV=z(`
      `,1);function GV(e,t){D(t,!0);function n(){ys.saveOverride(),J.refresh()}function r(){ys.clearOverride(),J.refresh()}var i=WV(),a=P(i);iC(N(a),{copyId:`timezone-help-copy`,label:`timezone help`,text:`Day-based analytics, charts, and date filters use your effective timezone. Usage and audit logs keep UTC in the hover title while rendering row timestamps in your effective timezone.`,title:e=>{B(e,VV())},$$slots:{title:!0}}),E(a);var o=F(a,2),s=N(o),c=F(N(s),2),l=N(c),u=N(l);E(l),l.value=l.__value=``,U(F(l),17,()=>ys.options,e=>e.value,(e,t)=>{var n=HV(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(c),E(s),E(o);var d=F(o,2),f=N(d),p=e=>{var t=UV();R(`click`,t,r),B(e,t)};H(f,e=>{ys.override&&e(p)}),E(d),I(e=>V(u,`Automatic (${e??``})`),[()=>ys.detectedTimeZoneLabel()]),Br(`focus`,c,()=>ys.ensureOptions()),R(`change`,c,n),Wi(c,()=>ys.override,e=>ys.override=e),B(e,i),O()}Vr([`change`,`click`]);var KV=z(``),qV=z(`

      Failover

      `,1);function JV(e,t){D(t,!0);let n=k(()=>Q.failoverSaving||Q.failoverGenerating||Q.failoverDraftSaving||!Q.failoverAvailable||!Q.failoverEnabled());var r=qV(),i=P(r),a=F(N(i),2),o=N(a),s=N(o);q(s,{get icon(){return Io},class:`form-action-icon`});var c=F(s,2),l=N(c,!0);E(c),E(o);var u=F(o,2);q(N(u),{get icon(){return jo},class:`form-action-icon`}),He(2),E(u),E(a),E(i);var d=F(i,2),f=N(d),p=e=>{var t=KV(),n=N(t,!0);E(t),I(()=>V(n,Q.failoverError)),B(e,t)};H(f,e=>{Q.failoverError&&e(p)}),E(d),wj(F(d,2),{}),I(()=>{o.disabled=L(n),V(l,Q.failoverGenerating?`Generating...`:`Generate failover models automatically`),u.disabled=L(n)}),R(`click`,o,()=>Q.generateFailoverRules()),R(`click`,u,()=>Q.openFailoverResetDialog()),B(e,r),O()}Vr([`click`]);function YV(){return{daily_reset_hour:0,daily_reset_minute:0,weekly_reset_weekday:1,weekly_reset_hour:0,weekly_reset_minute:0,monthly_reset_day:1,monthly_reset_hour:0,monthly_reset_minute:0}}function XV(e,t){let n=t||{},r=(e,t)=>{if(e===``)return t;let n=Number(e);return Number.isFinite(n)&&Number.isInteger(n)?Math.trunc(n):t},i=(e,t)=>r(n[e],t),a=(t,n)=>e?r(e[t],n):n;return{daily_reset_hour:a(`daily_reset_hour`,i(`daily_reset_hour`,0)),daily_reset_minute:a(`daily_reset_minute`,i(`daily_reset_minute`,0)),weekly_reset_weekday:a(`weekly_reset_weekday`,i(`weekly_reset_weekday`,1)),weekly_reset_hour:a(`weekly_reset_hour`,i(`weekly_reset_hour`,0)),weekly_reset_minute:a(`weekly_reset_minute`,i(`weekly_reset_minute`,0)),monthly_reset_day:a(`monthly_reset_day`,i(`monthly_reset_day`,1)),monthly_reset_hour:a(`monthly_reset_hour`,i(`monthly_reset_hour`,0)),monthly_reset_minute:a(`monthly_reset_minute`,i(`monthly_reset_minute`,0))}}function ZV(){return[{value:0,label:`Sunday`},{value:1,label:`Monday`},{value:2,label:`Tuesday`},{value:3,label:`Wednesday`},{value:4,label:`Thursday`},{value:5,label:`Friday`},{value:6,label:`Saturday`}]}var QV=z(`

      Budget Resets

      `),$V=z(``),eH=z(`

      If the selected day does not exist in a month, the reset runs on - the last day of that month.

      `),tH=z(``),nH=z(``),rH=z(`
      Monthly
      Weekly
      Daily
      `,1);function iH(e,t){D(t,!0);let n=A(M(YV())),r=A(!1),i=A(!1),a=A(``),o=A(!1),s=k(()=>As.budgetsVisible());async function c(){if(await As.ensureLoaded(),!As.budgetsVisible()){j(a,``);return}j(r,!0),j(a,``);try{let e=await Ts(`/admin/budgets/settings`,{label:`budget settings`});if(e.stale)return;if(!e.ok){j(a,`Unable to load budget settings.`);return}j(n,XV(e.data,L(n)),!0)}catch(e){console.error(`Failed to fetch budget settings:`,e),j(a,`Unable to load budget settings.`)}finally{j(r,!1)}}async function l(){if(!L(i)){j(i,!0);try{let e=await Es(`/admin/budgets/settings`,`PUT`,XV(L(n),L(n)),{label:`budget settings`});if(e.stale)return;if(!e.ok){Y.error(`Unable to save budget settings.`);return}j(n,XV(e.data,L(n)),!0),j(a,``),Y.success(`Budget settings saved.`)}catch(e){console.error(`Failed to save budget settings:`,e),Y.error(`Unable to save budget settings.`)}finally{j(i,!1)}}}kn(()=>{J.refreshTick,c()});var u=Zr(),d=P(u),f=e=>{var t=rH(),s=P(t),c=N(s);iC(c,{copyId:`budget-settings-help-copy`,label:`budget help`,text:`Budget reset anchors are stored in the database and evaluated in UTC. Hourly budgets reset at the top of each hour.`,title:e=>{B(e,QV())},$$slots:{title:!0}});var u=F(c,2),d=N(u),f=F(N(d),2),p=N(f);iC(p,{copyId:`budget-monthly-day-help-copy`,label:`day of month help`,external:!0,get open(){return L(o)},set open(e){j(o,e,!0)},title:e=>{B(e,$V())},$$slots:{title:!0}});var m=F(p,2);ta(m),E(f);var h=F(f,2),g=F(N(h),2);ta(g),E(h);var _=F(h,2),v=F(N(_),2);ta(v),E(_);var y=F(_,2),b=N(y),x=e=>{B(e,eH())};H(b,e=>{L(o)&&e(x)}),E(y),E(d);var S=F(d,2),C=F(N(S),2),w=F(N(C),2);U(w,21,ZV,e=>e.value,(e,t)=>{var n=tH(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(w),E(C);var T=F(C,2),ee=F(N(T),2);ta(ee),E(T);var te=F(T,2),ne=F(N(te),2);ta(ne),E(te),He(2),E(S);var re=F(S,2),ie=F(N(re),4),ae=F(N(ie),2);ta(ae),E(ie);var oe=F(ie,2),se=F(N(oe),2);ta(se),E(oe),He(2),E(re),E(u);var ce=F(u,2),le=N(ce);q(N(le),{get icon(){return vo},class:`form-action-icon`}),He(2),E(le);var ue=F(le,2),de=e=>{NS(e,{size:16,label:`Loading budget settings`})};H(ue,e=>{L(r)&&e(de)}),E(ce),E(s);var fe=F(s,2),pe=N(fe),me=e=>{var t=nH(),n=N(t,!0);E(t),I(()=>V(n,L(a))),B(e,t)};H(pe,e=>{L(a)&&e(me)}),E(fe),I(()=>{le.disabled=L(i)||L(r),G(le,`aria-busy`,L(i)?`true`:`false`)}),ua(m,()=>L(n).monthly_reset_day,e=>L(n).monthly_reset_day=e),ua(g,()=>L(n).monthly_reset_hour,e=>L(n).monthly_reset_hour=e),ua(v,()=>L(n).monthly_reset_minute,e=>L(n).monthly_reset_minute=e),Wi(w,()=>L(n).weekly_reset_weekday,e=>L(n).weekly_reset_weekday=e),ua(ee,()=>L(n).weekly_reset_hour,e=>L(n).weekly_reset_hour=e),ua(ne,()=>L(n).weekly_reset_minute,e=>L(n).weekly_reset_minute=e),ua(ae,()=>L(n).daily_reset_hour,e=>L(n).daily_reset_hour=e),ua(se,()=>L(n).daily_reset_minute,e=>L(n).daily_reset_minute=e),R(`click`,le,l),B(e,t)};H(d,e=>{L(s)&&e(f)}),B(e,u),O()}Vr([`click`]);var aH=z(`

      Reset All Budgets

      Start new budget periods for every configured budget without changing - the limits.

      `);function oH(e,t){D(t,!0);var n=Zr(),r=P(n),i=e=>{var t=aH(),n=F(N(t),2),r=N(n);q(N(r),{get icon(){return _o},class:`form-action-icon`}),He(2),E(r),E(n),E(t),I(()=>r.disabled=X.resetAllLoading),R(`click`,r,()=>X.openResetDialog()),B(e,t)},a=k(()=>As.budgetsVisible());H(r,e=>{L(a)&&e(i)}),B(e,n),O()}Vr([`click`]);function sH(){return{header:``,prefix:``,do_not_pass:!1,delimiter:``,managed:!1}}function cH(e){return(e&&Array.isArray(e.headers)?e.headers:[]).map(e=>({header:typeof e.header==`string`?e.header:``,prefix:typeof e.prefix==`string`?e.prefix:``,do_not_pass:e.do_not_pass===!0,delimiter:typeof e.delimiter==`string`&&e.delimiter!==`,`?e.delimiter:``,managed:e.managed===!0}))}function lH(e){return{headers:(Array.isArray(e)?e:[]).filter(e=>!e.managed&&e.header.trim()!==``).map(e=>({header:e.header.trim(),prefix:e.prefix,do_not_pass:e.do_not_pass,delimiter:e.delimiter}))}}function uH(e){return e&&e.error&&e.error.message?e.error.message:``}var dH=z(`

      Tagging based on headers

      `),fH=z(`config`),pH=z(``),mH=z(`
      `),hH=z(`

      No tagging headers configured. Requests are not labelled.

      `),gH=z(``),_H=z(`
      `,1);function vH(e,t){D(t,!0);let n=A(M([])),r=A(!0),i=A(!1),a=A(!1),o=A(``);function s(){L(n).push(sH())}function c(e){let t=L(n)[e];!t||t.managed||L(n).splice(e,1)}async function l(){j(i,!0),j(o,``);try{let e=await Ts(`/admin/tagging/settings`,{label:`tagging settings`});if(e.stale)return;if(!e.ok){j(o,`Unable to load tagging settings.`);return}j(n,cH(e.data),!0),j(r,e.data&&e.data.editable!==!1,!0)}catch(e){console.error(`Failed to fetch tagging settings:`,e),j(o,`Unable to load tagging settings.`)}finally{j(i,!1)}}async function u(){if(!(L(a)||!L(r))){j(a,!0);try{let e=await Es(`/admin/tagging/settings`,`PUT`,lH(L(n)),{label:`tagging settings`});if(e.stale)return;if(!e.ok){Y.error(e.status!==401&&uH(e.data)||`Unable to save tagging settings.`);return}j(n,cH(e.data),!0),j(r,e.data&&e.data.editable!==!1,!0),j(o,``),Y.success(`Tagging settings saved.`)}catch(e){console.error(`Failed to save tagging settings:`,e),Y.error(`Unable to save tagging settings.`)}finally{j(a,!1)}}}kn(()=>{J.refreshTick,l()});var d=_H(),f=P(d),p=N(f);iC(p,{copyId:`tagging-settings-help-copy`,label:`tagging help`,text:`Each request is labelled from the listed headers; labels land in usage tracking and audit logs. A header value can carry several labels split by the delimiter (default: comma). The prefix is trimmed from each label only — the header itself is forwarded unchanged unless 'Do not pass' is checked. Rows marked CONFIG come from config.yaml or TAGGING_HEADER_* env vars and are read-only here.`,title:e=>{B(e,dH())},$$slots:{title:!0}});var m=F(p,2),h=N(m);U(h,17,()=>L(n),ai,(e,t,n)=>{var i=mH(),a=N(i),o=N(a);G(o,`for`,`tagging-header-`+n);var s=F(o,2);ta(s),G(s,`id`,`tagging-header-`+n),E(a);var l=F(a,2),u=N(l);G(u,`for`,`tagging-prefix-`+n);var d=F(u,2);ta(d),G(d,`id`,`tagging-prefix-`+n),E(l);var f=F(l,2),p=N(f);G(p,`for`,`tagging-delimiter-`+n);var m=F(p,2);ta(m),G(m,`id`,`tagging-delimiter-`+n),E(f);var h=F(f,2),g=N(h);ta(g),He(2),E(h);var _=F(h,2),v=N(_),y=e=>{B(e,fH())},b=e=>{var i=pH();I(()=>{i.disabled=!L(r),G(i,`aria-label`,`Remove tagging header `+(L(t).header||n+1))}),R(`click`,i,()=>c(n)),B(e,i)};H(v,e=>{L(t).managed?e(y):e(b,-1)}),E(_),E(i),I(()=>{s.disabled=L(t).managed||!L(r),d.disabled=L(t).managed||!L(r),m.disabled=L(t).managed||!L(r),g.disabled=L(t).managed||!L(r)}),ua(s,()=>L(t).header,e=>L(t).header=e),ua(d,()=>L(t).prefix,e=>L(t).prefix=e),ua(m,()=>L(t).delimiter,e=>L(t).delimiter=e),da(g,()=>L(t).do_not_pass,e=>L(t).do_not_pass=e),B(e,i)});var g=F(h,2),_=e=>{NS(e,{size:16,label:`Loading tagging settings`})};H(g,e=>{L(i)&&e(_)});var v=F(g,2),y=e=>{B(e,hH())};H(v,e=>{!L(i)&&L(n).length===0&&e(y)}),E(m);var b=F(m,2),x=N(b);q(N(x),{get icon(){return mo},class:`form-action-icon`}),He(2),E(x);var S=F(x,2);q(N(S),{get icon(){return vo},class:`form-action-icon`}),He(2),E(S),E(b),E(f);var C=F(f,2),w=N(C),T=e=>{var t=gH(),n=N(t,!0);E(t),I(()=>V(n,L(o))),B(e,t)};H(w,e=>{L(o)&&e(T)}),E(C),I(()=>{x.disabled=!L(r)||L(a)||L(i),S.disabled=!L(r)||L(a)||L(i),G(S,`aria-busy`,L(a)?`true`:`false`)}),R(`click`,x,s),R(`click`,S,u),B(e,d),O()}Vr([`click`]);function yH(e){let t=e||{};if(t.selectedPreset)return{days:parseInt(t.selectedPreset,10)||30};let n=t.customStartDate?Cc(t.customStartDate):``,r=t.customEndDate||t.today||null;return{start_date:n,end_date:r?Cc(r):``}}function bH(e,t,n,r){return{...yH(e),user_path:String(t||``).trim(),selector:String(n||``).trim(),confirmation:r}}function xH(e){let t=Number(e&&e.matched||0),n=Number(e&&e.recalculated||0),r=Number(e&&e.without_pricing||0),i=`Pricing recalculated for `+n+` of `+t+` usage record`+(t===1?``:`s`)+`.`;return r>0&&(i+=` `+r+` usage record`+(r===1?` still lacks`:`s still lack`)+` pricing metadata.`),i}var SH=z(`

      Usage Pricing Recalculation

      `),CH=z(`
      `);function wH(e,t){D(t,!0);let n=A(``),r=A(``),i=A(!1),a=k(()=>As.booleanFlag(`USAGE_PRICING_RECALCULATION_ENABLED`,!1));function o(){if(!L(a)){Y.error(`Usage pricing recalculation is unavailable.`);return}L(i)||Ys.open({title:`Recalculate Pricing`,titleId:`pricingRecalculateDialogTitle`,inputId:`pricing-recalculate-confirmation`,requiredText:`recalculate`,confirmLabel:`Recalculate Pricing`,icon:Ia,dialogClass:`pricing-recalculate-dialog`,message:`Stored usage cost fields matching the selected filters will be overwritten.`,onConfirm:()=>s()})}async function s(){if(!L(a)){Y.error(`Usage pricing recalculation is unavailable.`);return}if(!L(i)){j(i,!0);try{let e=await Es(`/admin/usage/recalculate-pricing`,`POST`,bH({selectedPreset:Uc.selectedPreset,customStartDate:Uc.customStartDate,customEndDate:Uc.customEndDate,today:ys.todayDate()},L(n),L(r),`recalculate`),{label:`pricing recalculation`});if(e.stale)return;if(!e.ok){Ys.error=`Unable to recalculate pricing.`;return}Ys.close(),Y.success(xH(e.data)),Yc.fetchUsage()}catch(e){console.error(`Failed to recalculate pricing:`,e),Ys.error=`Unable to recalculate pricing.`}finally{j(i,!1)}}}var c=Zr(),l=P(c),u=e=>{var t=CH(),s=N(t);iC(s,{copyId:`pricing-recalculate-help-copy`,label:`pricing recalculation help`,text:`Recalculate stored input, output, total, and Pro Saved costs from the current model pricing metadata. This overwrites matching historical cost fields. Filters are applied to the selected date range, user path subtree, and provider/model selector or alias.`,title:e=>{B(e,SH())},$$slots:{title:!0}});var c=F(s,2),l=N(c),u=F(N(l),2);fl(N(u),{}),E(u),E(l);var d=F(l,2),f=F(N(d),2);ta(f),E(d);var p=F(d,2),m=F(N(p),2);ta(m),E(p),E(c);var h=F(c,2),g=N(h);q(N(g),{get icon(){return Ia},class:`form-action-icon`}),He(2),E(g),E(h),E(t),I(()=>{g.disabled=L(i)||!L(a),G(g,`aria-busy`,L(i)?`true`:`false`)}),ua(f,()=>L(n),e=>j(n,e)),ua(m,()=>L(r),e=>j(r,e)),R(`click`,g,o),B(e,t)};H(l,e=>{L(a)&&e(u)}),B(e,c),O()}Vr([`click`]);function TH(e){return String(e&&e.status||`ok`).toLowerCase()}function EH(e){if(!e||typeof e!=`object`)return`Runtime refresh completed.`;let t=Number(e.model_count||0),n=Number(e.provider_count||0),r=TH(e);return(r===`ok`?`Runtime refreshed.`:r===`partial`?`Runtime refresh completed with warnings.`:`Runtime refresh failed.`)+` `+t+` model`+(t===1?``:`s`)+` across `+n+` provider`+(n===1?``:`s`)+`.`}function DH(e){return!!e&&TH(e)===`ok`}function OH(e){let t=e&&e.steps;return Array.isArray(t)?t:[]}function kH(e){let t=String(e&&e.name||``).replace(/_/g,` `),n=String(e&&e.status||``).trim(),r=String(e&&(e.error||e.message)||``).trim();return t?r?t+`: `+n+` - `+r:t+`: `+n:r||n||``}var AH=z(`

      Runtime Refresh

      `),jH=z(`
    • `),MH=z(`
        `),NH=z(`
        `,1);function PH(e,t){D(t,!0);let n=A(!1),r=A(null);async function i(){if(!L(n)){j(n,!0),j(r,null);try{let e=await Es(`/admin/runtime/refresh`,`POST`,void 0,{label:`runtime refresh`});if(e.stale)return;if(!e.ok){Y.error(`Runtime refresh failed.`);return}j(r,e.data&&typeof e.data==`object`?e.data:null,!0),DH(L(r))?Y.success(EH(L(r))):Y.error(EH(L(r))),J.refresh()}catch(e){console.error(`Failed to refresh runtime:`,e),Y.error(`Runtime refresh failed.`)}finally{j(n,!1)}}}var a=NH(),o=P(a),s=N(o);iC(s,{copyId:`runtime-refresh-help-copy`,label:`runtime refresh help`,text:`Pull the latest model metadata, provider inventory, API keys, aliases, model access rules, guardrails, and workflows.`,title:e=>{B(e,AH())},$$slots:{title:!0}});var c=F(s,2),l=N(c);let u;q(N(l),{get icon(){return go},class:`settings-refresh-icon`}),He(2),E(l),E(c),E(o);var d=F(o,2),f=N(d),p=e=>{var t=MH();U(t,21,()=>OH(L(r)),e=>e.name,(e,t)=>{var n=jH(),r=N(n,!0);E(n),I(e=>{W(n,1,`runtime-refresh-step is-${L(t).status??``}`,`svelte-yeq2mp`),V(r,e)},[()=>kH(L(t))]),B(e,n)}),E(t),B(e,t)},m=k(()=>OH(L(r)).length>0);H(f,e=>{L(m)&&e(p)}),E(d),I(()=>{u=W(l,1,`btn btn-primary btn-with-icon settings-refresh-btn`,null,u,{"is-refreshing":L(n)}),l.disabled=L(n),G(l,`aria-busy`,L(n)?`true`:`false`)}),R(`click`,l,i),B(e,a),O()}Vr([`click`]);var FH=z(``),IH=z(`

        `),LH=z(`

        `),RH=z(``),zH=z(`
        `),BH=z(`

        AI Processing

        `);function VH(e,t){D(t,!0);let n=A(M([])),r=A(!1),i=A(``),a=A(``);async function o(){j(r,!0),j(a,``);try{let e=await Ts(`/admin/runtime/settings`,{label:`runtime settings`});if(e.stale)return;if(!e.ok){j(a,`Unable to load runtime settings.`);return}j(n,Array.isArray(e.data?.settings)?e.data.settings:[],!0)}catch(e){console.error(`Failed to load runtime settings:`,e),j(a,`Unable to load runtime settings.`)}finally{j(r,!1)}}async function s(e,t,r){if(!(e.locked||L(i))){j(i,e.key,!0);try{let i=await Es(`/admin/runtime/settings/${encodeURIComponent(e.key)}`,`PUT`,{value:t},{label:`save ${e.label}`});if(i.stale){r.value=e.value;return}if(!i.ok){r.value=e.value,Y.error(`Unable to save ${e.label}.`);return}j(n,L(n).map(t=>t.key===e.key?i.data:t),!0),Y.success(`${e.label} saved.`)}catch(t){r.value=e.value,console.error(`Failed to save runtime setting:`,t),Y.error(`Unable to save ${e.label}.`)}finally{j(i,``)}}}kn(()=>{J.refreshTick,o()});var c=Zr(),l=P(c),u=e=>{var t=BH(),o=N(t),c=F(N(o),2),l=e=>{var t=FH(),n=N(t,!0);E(t),I(()=>V(n,L(a))),B(e,t)};H(c,e=>{L(a)&&e(l)}),E(o);var u=F(o,2);U(u,21,()=>L(n),e=>e.key,(e,t)=>{var n=zH(),r=N(n),a=N(r),o=N(a,!0);E(a);var c=F(a,2),l=e=>{var n=IH(),r=N(n,!0);E(n),I(()=>V(r,L(t).description)),B(e,n)};H(c,e=>{L(t).description&&e(l)});var u=F(c,2),d=e=>{var n=LH(),r=N(n);E(n),I(()=>V(r,`Managed by ${(L(t).managed_by||`environment`)??``}`)),B(e,n)};H(u,e=>{L(t).locked&&e(d)}),E(r);var f=F(r,2);U(f,21,()=>L(t).options||[],e=>e.value,(e,t)=>{var n=RH(),r=N(n,!0);E(n);var i={};I(()=>{G(n,`title`,L(t).description||``),V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(f);var p;Ui(f),E(n),I(()=>{G(a,`for`,`runtime-setting-${L(t).key}`),V(o,L(t).label),G(f,`id`,`runtime-setting-${L(t).key}`),f.disabled=L(t).locked||L(i)!==``,p!==(p=L(t).value)&&(f.value=(f.__value=L(t).value)??``,Hi(f,L(t).value))}),R(`change`,f,e=>s(L(t),e.currentTarget.value,e.currentTarget)),B(e,n)}),E(u),E(t),I(()=>G(u,`aria-busy`,L(r)?`true`:`false`)),B(e,t)};H(l,e=>{(L(n).length>0||L(a))&&e(u)}),B(e,c),O()}Vr([`change`]);var HH=z(`
        `);function UH(e,t){D(t,!0),kn(()=>{J.refreshTick,Xo.page===`settings`&&(ys.ensureOptions(),As.ensureLoaded())});var n=HH(),r=F(N(n),2),i=N(r);GV(i,{});var a=F(i,2);JV(a,{});var o=F(a,2);iH(o,{});var s=F(o,2);oH(s,{});var c=F(s,2);vH(c,{});var l=F(c,2);VH(l,{});var u=F(l,2);wH(u,{}),PH(F(u,2),{}),E(r);var d=F(r,2),f=N(d,!0);E(d),E(n),I(e=>V(f,e),[()=>Go()]),B(e,n),O()}var WH=z(`
        `),GH=z(`
         
        `),KH=z(`
         
        `),qH=z(`
         
        `),JH=z(`
        `),YH=z(`
        `,1),XH=z(`
        `);function ZH(e,t){D(t,!0);let n=K(t,`showPromptCache`,3,!0),r=kM({logPrefix:`Failed to copy interaction message:`}),i=k(()=>t.msg.role===`function_call`||t.msg.role===`function_result`);function a(e){return(Math.max(0,Math.min(1,Number(e||0)))*100).toFixed(1)+`%`}function o(e){let t=Math.max(0,Math.min(1,Number(e||0)));return t>0?Math.round(t*100)+`% of this visible prompt item is estimated provider-cached`:void 0}function s(e){return e.role===`function_call`?(e.toolCalls||[]).map(e=>e.name+`()`).join(`, `):(e.functionName?e.functionName+`: `:``)+e.text}var c=XH();let l;var u=N(c),d=e=>{var r=GH(),i=N(r),a=N(i),c=N(a,!0);E(a);var l=F(a,2),u=N(l,!0);E(l);var d=F(l,2),f=N(d,!0);E(d),E(i);var p=F(i,2),m=e=>{var n=WH(),r=N(n);E(n),I(()=>V(r,`Call ID: ${t.msg.functionCallID??``}`)),B(e,n)};H(p,e=>{t.msg.functionCallID&&e(m)});var h=F(p,2),g=e=>{var n=Zr();U(P(n),17,()=>t.msg.toolCalls,ai,(e,n)=>{var r=Zr(),i=P(r),a=e=>{var r=WH(),i=N(r);E(r),I(()=>V(i,`Call ID${t.msg.toolCalls.length>1?` (`+L(n).name+`)`:``}: ${L(n).id??``}`)),B(e,r)};H(i,e=>{L(n).id&&e(a)}),B(e,r)}),B(e,n)};H(h,e=>{t.msg.role===`function_call`&&t.msg.toolCalls&&e(g)});var _=F(h,2),v=N(_,!0);E(_),E(r),I((e,n,i,a)=>{G(r,`title`,e),V(c,t.msg.roleLabel),V(u,n),V(f,i),V(v,a)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>s(t.msg),()=>ys.formatTimestamp(t.msg.timestamp),()=>lL(t.msg)]),B(e,r)},f=e=>{var r=YH(),i=P(r),a=N(i),s=N(a,!0);E(a);var c=F(a,2),l=N(c,!0);E(c),E(i);var u=F(i,2),d=e=>{var r=KH(),i=N(r,!0);E(r),I(e=>{G(r,`title`,e),V(i,t.msg.text)},[()=>n()?o(t.msg.promptCacheRatio):void 0]),B(e,r)};H(u,e=>{t.msg.text&&e(d)});var f=F(u,2),p=e=>{var n=JH();U(n,23,()=>t.msg.toolCalls,(e,t)=>e.name+`-`+t,(e,t)=>{var n=qH(),r=N(n),i=N(r),a=N(i,!0);E(i);var o=F(i,2),s=N(o,!0);E(o),E(r);var c=F(r,2),l=e=>{var n=WH(),r=N(n);E(n),I(()=>V(r,`Call ID: ${L(t).id??``}`)),B(e,n)};H(c,e=>{L(t).id&&e(l)});var u=F(c,2),d=N(u,!0);E(u),E(n),I((e,n)=>{V(a,L(t).name+`()`),V(s,e),V(d,n)},[()=>dL(L(t))||`No arguments`,()=>dL(L(t))||`No arguments`]),B(e,n)}),E(n),B(e,n)};H(f,e=>{t.msg.toolCalls&&e(p)}),I((e,n)=>{G(i,`title`,e),V(s,t.msg.roleLabel),V(l,n)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>ys.formatTimestamp(t.msg.timestamp)]),B(e,r)};H(u,e=>{L(i)?e(d):e(f,-1)});var p=F(u,2);let m;var h=N(p);{let e=k(()=>r.copied?Ka:Ya);q(h,{get icon(){return L(e)},width:`14`,height:`14`})}E(p),E(c),I(e=>{W(c,1,Pi([L(i)?`chat-function-note`:`chat-message`,t.msg.roleClass,{"is-anchor":t.msg.isAnchor,"is-after-anchor":t.msg.isAfterAnchor}]),`svelte-12s99s5`),G(c,`data-conversation-anchor`,t.msg.isAnchor?`true`:void 0),G(c,`data-entry-id`,t.msg.entryID),l=Vi(c,``,l,e),m=W(p,1,`chat-message-copy svelte-12s99s5`,null,m,{"is-copied":r.copied}),G(p,`aria-label`,r.copied?`Message copied`:`Copy message`),G(p,`title`,r.copied?`Copied`:`Copy message`)},[()=>({"--prompt-cache-fill":a(t.msg.promptCacheRatio),"--prompt-cache-visibility":n()&&t.msg.promptCacheRatio>0?`1`:`0`})]),R(`click`,p,e=>{e.stopPropagation(),r.copy(uL(t.msg))}),B(e,c),O()}Vr([`click`]);function QH(e,t=0){let n=Math.max(0,nU(e)-Math.max(0,nU(t))),r=Math.min(320,Math.max(180,Math.floor(n*.58))),i=Math.min(360,Math.max(128,Math.floor(n*.35)));return{min:r,max:Math.max(r,n-i)}}function $H(e,t,n=0){let r=QH(t,n),i=nU(e)||520;return Math.min(r.max,Math.max(r.min,Math.round(i)))}function eU(e,t,n=0){return $H(nU(t)-nU(e),t,n)}function tU(e,t,n,r){if(!Array.isArray(e)||e.length===0)return{index:-1,align:`start`};let i=nU(t),a=0;e.forEach((e,t)=>{nU(e)<=i+1&&(a=t)});let o=Number(r)<0?-1:1,s=Math.min(e.length-1,Math.max(0,a+o)),c=e.length-1,l=nU(e[c])0&&s===c&&l?`end`:`start`}}function nU(e){let t=Number(e);return Number.isFinite(t)?t:0}var rU=z(`
        `),iU=z(`
        `),aU=z(`

        Loading interactions...

        `),oU=z(`

        No interaction data available for this entry.

        `),sU=z(``),cU=z(`
        `,1),lU=z(`

        Showing the newest part of this session and the selected log.

        `),uU=z(`
        `),dU=z(``),fU=z(``),pU=z(``);function mU(e,t){D(t,!0);let n=yL,r=Number(Ca(`gomodel_interactions_panel_width`)),i=`gomodel_interactions_prompt_cache_fill`,a=Number.isFinite(r)&&r>0?r:520,o=A(M(a)),s=A(320),c=A(760),l=A(!1),u=A(!1),d=A(Ca(i,`true`)!==`false`),f=null;function p(e,{fullscreen:t,revealWithoutSlide:n=!1}){let r=yP(180);return t?ic(e,{x:L(o),duration:r,easing:sc}):n?{duration:0}:ac(e,{axis:`x`,duration:r,easing:sc})}async function m(e){if(e===L(l))return;let t=L(l)&&!e;j(u,t,!0),j(l,e,!0),t&&(await Sr(),j(u,!1))}function h(){j(d,!L(d)),wa(i,L(d))}function g(){return(document.querySelector(`.sidebar`)?.getBoundingClientRect().width||0)+(document.querySelector(`.sidebar-toggle`)?.getBoundingClientRect().width||0)}function _(){let e=g(),t=QH(window.innerWidth,e);j(s,t.min,!0),j(c,t.max,!0),j(o,$H(a,window.innerWidth,e),!0)}function v(e){j(o,eU(e,window.innerWidth,g()),!0),a=L(o)}function y(e){e.button===0&&(e.preventDefault(),f=e.pointerId,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`conversation-panel-resizing`),v(e.clientX))}function b(e){e.pointerId===f&&v(e.clientX)}function x(e){f===null||e.pointerId!==void 0&&e.pointerId!==f||(f=null,document.body.classList.remove(`conversation-panel-resizing`),wa(`gomodel_interactions_panel_width`,a))}function S(e){e.key!==`ArrowLeft`&&e.key!==`ArrowRight`||(e.preventDefault(),a=L(o)+(e.key===`ArrowLeft`?24:-24),_(),a=L(o),wa(`gomodel_interactions_panel_width`,a))}function C(e){let t=document.getElementById(`interactions-drawer-content`),r=n.conversationThreadEl;if(!t||!r)return;let i=[...r.querySelectorAll(`[data-conversation-message="true"]`)],a=t.getBoundingClientRect(),o=a.top+14,s=tU(i.map(e=>e.getBoundingClientRect().top),o,a.bottom,e),c=i[s.index];if(!c)return;let l=s.align===`end`?t.scrollHeight:t.scrollTop+c.getBoundingClientRect().top-a.top-14;t.scrollTo({top:l,behavior:yP(1)>0?`smooth`:`auto`})}function w(){return[document.querySelector(`.sidebar`),document.querySelector(`.sidebar-toggle`),document.getElementById(`dashboard-content`)].filter(Boolean)}kn(()=>{if(!n.conversationOpen)return;_();let e=document.querySelector(`.sidebar`),t=new ResizeObserver(_);e&&t.observe(e);let r=e=>{e.key===`Escape`&&!ka.anyOpen&&(L(l)?m(!1):n.closeConversation())};return window.addEventListener(`keydown`,r),window.addEventListener(`resize`,_),()=>{x({}),t.disconnect(),window.removeEventListener(`keydown`,r),window.removeEventListener(`resize`,_)}}),kn(()=>{n.conversationOpen||j(l,!1)}),kn(()=>{if(!L(l))return;let e=w().map(e=>({element:e,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}));return e.forEach(({element:e})=>{e.inert=!0,e.setAttribute(`aria-hidden`,`true`)}),()=>{e.forEach(({element:e,inert:t,ariaHidden:n})=>{e.inert=t,n===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,n)})}}),kn(()=>{Xo.page!==`audit-logs`&&n.conversationOpen&&n.closeConversation()});var T=Zr(),ee=P(T),te=e=>{var t=Zr();U(P(t),16,()=>[L(l)],e=>e,(e,t)=>{var r=pU();let i,a;var l=N(r),f=F(l,2),g=N(f),_=F(N(g),2),v=N(_);let w;E(_),E(g);var T=F(g,2),ee=N(T),te=N(ee);{let e=k(()=>t?co:so);q(te,{get icon(){return L(e)},class:`table-icon-svg`})}E(ee),zs(F(ee,2),{label:`Close interactions`,onclick:()=>n.closeConversation(),get el(){return n.conversationCloseBtnEl},set el(e){n.conversationCloseBtnEl=e}}),E(T),E(f);var ne=F(f,2),re=N(ne),ie=e=>{var t=rU(),n=N(t);q(N(n),{get icon(){return Pa},width:`14`,height:`14`}),E(n);var r=F(n,2);q(N(r),{get icon(){return ja},width:`14`,height:`14`}),E(r),E(t),R(`click`,n,()=>C(-1)),R(`click`,r,()=>C(1)),B(e,t)};H(re,e=>{n.conversationMessages.length>1&&e(ie)});var ae=F(re,2),oe=e=>{var t=iU(),r=N(t,!0);E(t),I(()=>V(r,n.conversationError)),B(e,t)};H(ae,e=>{n.conversationError&&e(oe)});var se=F(ae,2),ce=e=>{B(e,aU())};H(se,e=>{n.conversationLoading&&e(ce)});var le=F(se,2),ue=e=>{B(e,oU())},de=k(()=>!n.conversationLoading&&!n.followUpSending&&!n.conversationError&&n.conversationMessages.length===0&&!n.conversationLiveWaiting());H(le,e=>{L(de)&&e(ue)});var fe=F(le,2),pe=e=>{var t=cU(),r=P(t),i=e=>{var t=sU(),n=N(t);let r;He(2),E(t),I(()=>{G(t,`aria-checked`,L(d)),G(t,`title`,(L(d)?`Hide`:`Show`)+` estimated provider prompt-cache fill`),r=W(n,1,`conversation-cache-switch svelte-ssrzja`,null,r,{"is-active":L(d)})}),R(`click`,t,h),B(e,t)},a=k(()=>n.conversationMessages.some(e=>Number(e.promptCacheRatio||0)>0));H(r,e=>{L(a)&&e(i)});var o=F(r,2);U(o,21,()=>n.conversationMessages,e=>e.uid,(e,t)=>{ZH(e,{get msg(){return L(t)},get showPromptCache(){return L(d)}})}),E(o),ha(o,e=>n.conversationThreadEl=e,()=>n?.conversationThreadEl),B(e,t)};H(fe,e=>{n.conversationMessages.length>0&&e(pe)});var me=F(fe,2),he=e=>{B(e,lU())};H(me,e=>{n.conversationTruncated&&e(he)});var ge=F(me,2),_e=e=>{var t=uU(),r=F(N(t),2),i=N(r,!0);E(r),E(t),I(e=>V(i,e),[()=>n.conversationLiveStatusText()]),B(e,t)},ve=k(()=>n.conversationLiveWaiting());H(ge,e=>{L(ve)&&e(_e)}),E(ne);var ye=F(ne,2),be=e=>{var t=fU(),r=N(t),i=N(r);dt(i);var a=F(i,2),o=e=>{var t=dU(),r=N(t,!0);E(t),I(()=>V(r,n.followUpError)),B(e,t)};H(a,e=>{n.followUpError&&e(o)});var s=F(a,2),c=N(s),l=N(c,!0);E(c);var u=F(c,2),d=N(u,!0);E(u),E(s),E(r),E(t),I((e,t,r)=>{i.disabled=e,V(l,t),u.disabled=r,V(d,n.followUpSending?`Sending…`:`Send`)},[()=>n.followUpSending||n.conversationLiveWaiting(),()=>n.selectedConversationEntry()?.path||``,()=>!n.canSendFollowUp()]),Br(`submit`,r,e=>{e.preventDefault(),n.sendFollowUp()}),ua(i,()=>n.followUpText,e=>n.followUpText=e),B(e,t)},xe=k(()=>n.conversationAnchorID&&n.followUpKind());H(ye,e=>{L(xe)&&e(be)}),E(r),ha(r,e=>n.conversationDialogEl=e,()=>n?.conversationDialogEl),I(()=>{i=W(r,1,`conversation-drawer svelte-ssrzja`,null,i,{"conversation-drawer-fullscreen":t}),G(r,`role`,t?`dialog`:void 0),G(r,`aria-modal`,t?`true`:void 0),a=Vi(r,``,a,{"--conversation-panel-width":L(o)+`px`}),G(l,`aria-valuemin`,L(s)),G(l,`aria-valuemax`,L(c)),G(l,`aria-valuenow`,L(o)),G(_,`aria-label`,n.conversationFollowLatest?`Following the latest interaction`:`Viewing a historical interaction`),G(_,`title`,n.conversationFollowLatest?`Following the latest interaction as new events arrive`:`Viewing a historical interaction; live updates are not followed`),w=W(v,1,`live-dot`,null,w,{"is-streaming":n.conversationFollowLatest}),G(ee,`aria-label`,t?`Exit fullscreen interactions`:`Show interactions fullscreen`),G(ee,`title`,t?`Exit fullscreen`:`Fullscreen`),G(ee,`aria-pressed`,t)}),R(`pointerdown`,l,y),R(`pointermove`,l,b),R(`pointerup`,l,x),Br(`pointercancel`,l,x),Br(`lostpointercapture`,l,x),R(`keydown`,l,S),R(`click`,ee,()=>m(!t)),Oi(7,r,()=>p,()=>({fullscreen:t,revealWithoutSlide:!t&&L(u)})),B(e,r)}),B(e,t)};H(ee,e=>{n.conversationOpen&&e(te)}),B(e,T),O()}Vr([`pointerdown`,`pointermove`,`pointerup`,`keydown`,`click`]);var hU=z(`
        `,1);function gU(e,t){D(t,!0);let n={overview:OC,usage:wT,budgets:eD,"rate-limits":dO,models:qj,workflows:mP,"audit-logs":uR,guardrails:rz,"mcp-servers":Lz,"providers-config":KB,"auth-keys":BV,settings:UH};ys.init(),Uc.init(),J.init(),Da.init(),Oa.init(),Xo.init(),kn(()=>{J.refreshTick,As.fetch(),Wc.fetchModels(),Wc.fetchCategories()}),kn(()=>{document.body.classList.toggle(`dashboard-modal-open`,ka.anyOpen)});let r=k(()=>n[Xo.page]||OC);var i=hU(),a=P(i);Ls(a,{});var o=F(a,2);let s;var c=N(o);mc(c,{}),gi(F(c,2),()=>L(r),(e,t)=>{t(e,{})}),E(o);var l=F(o,2);mU(l,{});var u=F(l,2);qs(u,{});var d=F(u,2);$s(d,{}),fc(F(d,2),{}),I(()=>s=W(o,1,`content`,null,s,{"interactions-open":yL.conversationOpen})),B(e,i),O()}ei(gU,{target:document.getElementById(`app`)}); \ No newline at end of file diff --git a/internal/admin/dashboard/static/dist/assets/index-gjjSu70a.js b/internal/admin/dashboard/static/dist/assets/index-gjjSu70a.js new file mode 100644 index 000000000..cf7bf6b6f --- /dev/null +++ b/internal/admin/dashboard/static/dist/assets/index-gjjSu70a.js @@ -0,0 +1,68 @@ +(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible;function d(e){return typeof e==`function`}var f=()=>{};function p(e){for(var t=0;t{e=n,t=r}),resolve:e,reject:t}}function h(e,t,n=!1){return e===void 0?n?t():t:e}function g(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var _=1<<24,v=1024,y=2048,b=4096,x=8192,S=16384,C=32768,w=1<<25,T=65536,ee=1<<19,te=1<<20,ne=1<<25,re=65536,ie=1<<21,ae=1<<22,oe=1<<23,se=Symbol(`$state`),ce=Symbol(`legacy props`),le=Symbol(``),ue=Symbol(`attributes`),de=Symbol(`class`),fe=Symbol(`style`),pe=Symbol(`text`),me=Symbol(`form reset`),he=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ge=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function _e(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function ve(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function ye(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function be(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function xe(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function Se(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Ce(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function we(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Te(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Ee(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function De(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Oe={},ke=Symbol(`uninitialized`),Ae=`http://www.w3.org/1999/xhtml`,je=`http://www.w3.org/2000/svg`,Me=`http://www.w3.org/1998/Math/MathML`;function Ne(){console.warn(`https://svelte.dev/e/derived_inert`)}function Pe(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Fe(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Ie(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var Le=!1;function Re(e){Le=e}var ze;function Be(e){if(e===null)throw Pe(),Oe;return ze=e}function Ve(){return Be(yn(ze))}function E(e){if(Le){if(yn(ze)!==null)throw Pe(),Oe;ze=e}}function He(e=1){if(Le){for(var t=e,n=ze;t--;)n=yn(n);ze=n}}function Ue(e=!0){for(var t=0,n=ze;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=yn(n);e&&n.remove(),n=i}}function We(e){if(!e||e.nodeType!==8)throw Pe(),Oe;return e.data}function Ge(e){return e===this.v}function Ke(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function qe(e){return!Ke(e,this.v)}var Je=null;function Ye(e){Je=e}function D(e,t=!1,n){Je={p:Je,i:!1,c:null,e:null,s:e,x:null,r:rr,l:null}}function O(e){var t=Je,n=t.e;if(n!==null){t.e=null;for(var r of n)An(r)}return e!==void 0&&(t.x=e),t.i=!0,Je=t.p,e??{}}function Xe(){return!0}var Ze=[];function Qe(){var e=Ze;Ze=[],p(e)}function $e(e){if(Ze.length===0&&!Rt){var t=Ze;queueMicrotask(()=>{t===Ze&&Qe()})}Ze.push(e)}function et(){for(;Ze.length>0;)Qe()}function tt(e){var t=rr;if(t===null)return er.f|=oe,e;if(!(t.f&32768)&&!(t.f&4))throw e;nt(e,t)}function nt(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}var rt=~(y|b|v);function it(e,t){e.f=e.f&rt|t}function at(e){e.f&512||e.deps===null?it(e,v):it(e,b)}function ot(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=re,ot(t.deps))}function st(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),ot(e.deps),it(e,v)}var ct=!1;function lt(e){var t=ct;try{return ct=!1,[e(),ct]}finally{ct=t}}function ut(e,t){if(t){let t=document.body;e.autofocus=!0,$e(()=>{document.activeElement===t&&e.focus()})}}function dt(e){Le&&vn(e)!==null&&bn(e)}var ft=!1;function pt(){ft||(ft=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[me]?.()})},{capture:!0}))}function mt(e){var t=er,n=rr;nr(null),ir(null);try{return e()}finally{nr(t),ir(n)}}function ht(e,t,n,r=n){e.addEventListener(t,()=>mt(n));let i=e[me];i?e[me]=()=>{i(),r(!0)}:e[me]=()=>r(!0),pt()}function gt(e){let t=0,n=rn(0),r;return()=>{Dn()&&(L(n),Fn(()=>(t===0&&(r=Tr(()=>e(()=>cn(n)))),t+=1,()=>{$e(()=>{--t,t===0&&(r?.(),r=void 0,cn(n))})})))}}var _t=T|ee;function vt(e,t,n,r){new yt(e,t,n,r)}var yt=class{parent;is_pending=!1;transform_error;#e;#t=Le?ze:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=gt(()=>(this.#m=rn(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=rr;t.b=this,t.f|=128,n(e)},this.parent=rr.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=In(()=>{if(Le){let e=this.#t;Ve();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},_t),Le&&(this.#e=ze)}#g(){try{this.#a=Rn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Rn(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Rn(()=>e(this.#e)),$e(()=>{var e=this.#c=document.createDocumentFragment(),t=_n();e.append(t),this.#a=this.#x(()=>Rn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Gn(this.#o,()=>{this.#o=null}),this.#b(Pt))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Rn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Yn(this.#a,e);let t=this.#n.pending;this.#o=Rn(()=>t(this.#e))}else this.#b(Pt)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){st(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=rr,n=er,r=Je;ir(this.#i),nr(this.#i),Ye(this.#i.ctx);try{return Wt.ensure(),e()}catch(e){return tt(e),null}finally{ir(t),nr(n),Ye(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&Gn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,$e(()=>{this.#d=!1,this.#m&&on(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),L(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;Pt?.is_fork?(this.#a&&Pt.skip_effect(this.#a),this.#o&&Pt.skip_effect(this.#o),this.#s&&Pt.skip_effect(this.#s),Pt.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(Hn(this.#a),null),this.#o&&=(Hn(this.#o),null),this.#s&&=(Hn(this.#s),null),Le&&(Be(this.#t),He(),Be(Ue()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Ie();return}r=!0,i&&De(),this.#s!==null&&Gn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){nt(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Rn(()=>{var t=rr;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return nt(e,this.#i.parent),null}}))};$e(()=>{var t;try{t=this.transform_error(e)}catch(e){nt(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>nt(e,this.#i&&this.#i.parent)):o(t)})}};function bt(e,t,n,r){let i=Xe()?wt:Dt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=rr,c=xt(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){nt(e,s)}St()}}var d=Ct();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>Et(e))).then(u).catch(e=>nt(e,s)).finally(d)}l?l.then(()=>{c(),f(),St()}):f()}function xt(){var e=rr,t=er,n=Je,r=Pt;return function(i=!0){ir(e),nr(t),Ye(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function St(e=!0){ir(null),nr(null),Ye(null),e&&Pt?.deactivate()}function Ct(){var e=rr,t=e.b,n=Pt,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function wt(e){var t=2|y;return rr!==null&&(rr.f|=ee),{ctx:Je,deps:null,effects:null,equals:Ge,f:t,fn:e,reactions:null,rv:0,v:ke,wv:0,parent:rr,ac:null}}var Tt=Symbol(`obsolete`);function Et(e,t,n){let r=rr;r===null&&_e();var i=void 0,a=rn(ke),o=!er,s=new Set;return Pn(()=>{var t=rr,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==he&&n.reject(e)}).finally(St)}catch(e){n.reject(e),St()}var c=Pt;if(o){if(t.f&32768)var l=Ct();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(Tt);else for(let e of s.values())e.reject(Tt);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==Tt&&(c.activate(),t?(a.f|=oe,on(a,t)):(a.f&8388608&&(a.f^=oe),on(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),On(()=>{for(let e of s)e.reject(Tt)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function k(e){let t=wt(e);return or(t),t}function Dt(e){let t=wt(e);return t.equals=qe,t}function Ot(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n{t.ac.abort(he),t.ac=null}),t.fn!==null&&(t.teardown=f),br(t,0),Bn(t))}function Mt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&xr(t)}var Nt=null,Pt=null,Ft=null,It=null,Lt=null,Rt=!1,zt=!1,Bt=null,Vt=null,Ht=0,Ut=1,Wt=class e{id=Ut++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){Nt===null?Nt=this:(Nt.#n=this,this.#t=Nt),Nt=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)it(r,y),t(r);for(r of n.m)it(r,b),t(r)}this.#p.add(e)}#g(){this.#e=!0,Ht++>1e3&&(this.#x(),Kt());for(let e of this.#u)this.#d.delete(e),it(e,y),this.schedule(e);for(let e of this.#d)it(e,b),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=Bt=[],r=[],i=Vt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw $t(e),this.#h()||this.discard(),t}if(Pt=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(Bt=null,Vt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Qt(e,t);i.length>0&&Pt.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),Ft=this,Jt(r),Jt(n),Ft=null,this.#s?.resolve();var s=Pt;if(this.#a===0&&(this.#c.length===0||s!==null)&&this.#x(),this.#c.length>0)if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this;s!==null&&s.#g()}#_(e,t,n){e.f^=v;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=v:i&4?t.push(r):gr(r)&&(i&16&&this.#d.add(r),xr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),it(i,y),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),Pt=this,this.#g()}#b(e){for(var t=0;t{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=m()).promise}static ensure(){if(Pt===null){let t=Pt=new e;!zt&&!Rt&&$e(()=>{t.#e||t.flush()})}return Pt}apply(){It=null}schedule(e){if(Lt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(Bt!==null&&t===rr&&(er===null||!(er.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=v}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?Nt=e:t.#t=e,this.linked=!1}}};function Gt(e){var t=Rt;Rt=!0;try{var n;for(e&&(Pt!==null&&!Pt.is_fork&&Pt.flush(),n=e());;){if(et(),Pt===null)return n;Pt.flush()}}finally{Rt=t}}function Kt(){try{Se()}catch(e){nt(e,Lt)}}var qt=null;function Jt(e){var t=e.length;if(t!==0){for(var n=0;n0)){tn.clear();for(let e of qt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)qt.has(n)&&(qt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||xr(n)}}qt.clear()}}qt=null}}function Yt(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Yt(i,t,n,r):e&4194320&&!(e&2048)&&Xt(i,t,r)&&(it(i,y),Zt(i))}}function Xt(e,t,r){let i=r.get(e);if(i!==void 0)return i;if(e.deps!==null)for(let i of e.deps){if(n.call(t,i))return!0;if(i.f&2&&Xt(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Zt(e){Pt.schedule(e)}function Qt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),it(e,v);for(var n=e.first;n!==null;)Qt(n,t),n=n.next}}function $t(e){it(e,v);for(var t=e.first;t!==null;)$t(t),t=t.next}var en=new Set,tn=new Map,nn=!1;function rn(e,t){return{f:0,v:e,reactions:null,equals:Ge,rv:0,wv:0}}function A(e,t){let n=rn(e,t);return or(n),n}function an(e,t=!1,n=!0){let r=rn(e);return t||(r.equals=qe),r}function j(e,t,n=!1){return er!==null&&(!tr||er.f&131072)&&Xe()&&er.f&4325394&&(ar===null||!ar.has(e))&&Ee(),on(e,n?M(t):t,Vt)}function on(e,t,n=null){if(!e.equals(t)){tn.set(e,Qn?t:e.v);var r=Wt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&kt(t),It===null&&at(t)}e.wv=hr(),ln(e,y,n),Xe()&&rr!==null&&rr.f&1024&&!(rr.f&96)&&(lr===null?ur([e]):lr.push(e)),!r.is_fork&&en.size>0&&!nn&&sn()}return t}function sn(){nn=!1;for(let e of en){e.f&1024&&it(e,b);let t;try{t=gr(e)}catch{t=!0}t&&xr(e)}en.clear()}function cn(e){j(e,e.v+1)}function ln(e,t,n){var r=e.reactions;if(r!==null)for(var i=Xe(),a=r.length,o=0;o{if(pr===d)return e();var t=er,n=pr;nr(null),mr(d);var r=e();return nr(t),mr(n),r};return i&&r.set(`length`,A(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&we();var i=r.get(t);return i===void 0?f(()=>{var e=A(n.value,u);return r.set(t,e),e}):j(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>A(ke,u));r.set(t,e),cn(o)}}else j(n,ke),cn(o);return!0},get(e,n,i){if(n===se)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>A(M(s?e[n]:ke),u)),r.set(n,o)),o!==void 0){var c=L(o);return c===ke?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=L(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==ke)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===se)return!0;var n=r.get(t),i=n!==void 0&&n.v!==ke||Reflect.has(e,t);return(n!==void 0||rr!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>A(i?M(e[t]):ke,u)),r.set(t,n)),L(n)===ke)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;dA(ke,u)),r.set(d+``,p)):j(p,ke)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>A(void 0,u)),j(c,M(n)),r.set(t,c));else{l=c.v!==ke;var m=f(()=>M(n));j(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&j(g,_+1)}cn(o)}return!0},ownKeys(e){L(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==ke});for(var[n,i]of r)i.v!==ke&&!(n in e)&&t.push(n);return t},setPrototypeOf(){Te()}})}function un(e){try{if(typeof e==`object`&&e&&se in e)return e[se]}catch{}return e}function dn(e,t){return Object.is(un(e),un(t))}var fn,pn,mn,hn;function gn(){if(fn===void 0){fn=window,pn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;mn=a(t,`firstChild`).get,hn=a(t,`nextSibling`).get,u(e)&&(e[de]=void 0,e[ue]=null,e[fe]=void 0,e.__e=void 0),u(n)&&(n[pe]=void 0)}}function _n(e=``){return document.createTextNode(e)}function vn(e){return mn.call(e)}function yn(e){return hn.call(e)}function N(e,t){if(!Le)return vn(e);var n=vn(ze);if(n===null)n=ze.appendChild(_n());else if(t&&n.nodeType!==3){var r=_n();return n?.before(r),Be(r),r}return t&&Cn(n),Be(n),n}function P(e,t=!1){if(!Le){var n=vn(e);return n instanceof Comment&&n.data===``?yn(n):n}if(t){if(ze?.nodeType!==3){var r=_n();return ze?.before(r),Be(r),r}Cn(ze)}return ze}function F(e,t=1,n=!1){let r=Le?ze:e;for(var i;t--;)i=r,r=yn(r);if(!Le)return r;if(n){if(r?.nodeType!==3){var a=_n();return r===null?i?.after(a):r.before(a),Be(a),a}Cn(r)}return Be(r),r}function bn(e){e.textContent=``}function xn(){return!1}function Sn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function Cn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function wn(e){rr===null&&(er===null&&xe(e),be()),Qn&&ye(e)}function Tn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function En(e,t){var n=rr;n!==null&&n.f&8192&&(e|=x);var r={ctx:Je,deps:null,nodes:null,f:e|y|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};Pt?.register_created_effect(r);var i=r;if(e&4)Bt===null?Wt.ensure().schedule(r):Bt.push(r);else if(t!==null){try{xr(r)}catch(e){throw Hn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=T))}if(i!==null&&(i.parent=n,n!==null&&Tn(i,n),er!==null&&er.f&2&&!(e&64))){var a=er;(a.effects??=[]).push(i)}return r}function Dn(){return er!==null&&!tr}function On(e){let t=En(8,null);return it(t,v),t.teardown=e,t}function kn(e){wn(`$effect`);var t=rr.f;if(!er&&t&32&&Je!==null&&!Je.i){var n=Je;(n.e??=[]).push(e)}else return An(e)}function An(e){return En(4|te,e)}function jn(e){Wt.ensure();let t=En(64|ee,e);return()=>{Hn(t)}}function Mn(e){Wt.ensure();let t=En(64|ee,e);return(e={})=>new Promise(n=>{e.outro?Gn(t,()=>{Hn(t),n(void 0)}):(Hn(t),n(void 0))})}function Nn(e){return En(4,e)}function Pn(e){return En(ae|ee,e)}function Fn(e,t=0){return En(8|t,e)}function I(e,t=[],n=[],r=[]){bt(r,t,n,t=>{En(8,()=>{e(...t.map(L))})})}function In(e,t=0){return En(16|t,e)}function Ln(e,t=0){return En(_|t,e)}function Rn(e){return En(32|ee,e)}function zn(e){var t=e.teardown;if(t!==null){let e=Qn,n=er;$n(!0),nr(null);try{t.call(null)}finally{$n(e),nr(n)}}}function Bn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&mt(()=>{e.abort(he)});var r=n.next;n.f&64?n.parent=null:Hn(n,t),n=r}}function Vn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Hn(t),t=n}}function Hn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Un(e.nodes.start,e.nodes.end),n=!0),e.f|=w,Bn(e,t&&!n),br(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();zn(e),e.f^=w,e.f|=S;var i=e.parent;i!==null&&i.first!==null&&Wn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Un(e,t){for(;e!==null;){var n=e===t?null:yn(e);e.remove(),e=n}}function Wn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Gn(e,t,n=!0){var r=[];Kn(e,r,!0);var i=()=>{n&&Hn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Kn(e,t,n){if(!(e.f&8192)){e.f^=x;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;Kn(i,t,o?n:!1)}i=a}}}function qn(e){Jn(e,!0)}function Jn(e,t){if(e.f&8192){e.f^=x,e.f&1024||(it(e,y),Wt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;Jn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Yn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:yn(n);t.append(n),n=i}}var Xn=null,Zn=!1,Qn=!1;function $n(e){Qn=e}var er=null,tr=!1;function nr(e){er=e}var rr=null;function ir(e){rr=e}var ar=null;function or(e){er!==null&&(ar??=new Set).add(e)}var sr=null,cr=0,lr=null;function ur(e){lr=e}var dr=1,fr=0,pr=fr;function mr(e){pr=e}function hr(){return++dr}function gr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~re),t&4096){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}t&512&&It===null&&it(e,v)}return!1}function _r(e,t,n=!0){var r=e.reactions;if(r!==null&&!(ar!==null&&ar.has(e)))for(var i=0;i{e.ac.abort(he)}),e.ac=null);try{e.f|=ie;var u=e.fn,d=u();e.f|=C;var f=e.deps,p=Pt?.is_fork;if(sr!==null){var m;if(p||br(e,cr),f!==null&&cr>0)for(f.length=cr+sr.length,m=0;m{s.ac.abort(he),s.ac=null,it(s,y)}),jt(s),br(s,0)}}function br(e,t){var n=e.deps;if(n!==null)for(var r=t;rn?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?$e(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Br(e,t,n,r,i){var a={capture:r,passive:i},o=zr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&On(()=>{t.removeEventListener(e,o,a)})}function R(e,t,n){(t[Ir]??={})[e]=n}function Vr(e){for(var t=0;t{throw e});throw p}}finally{e[Ir]=t,delete e.currentTarget,nr(d),ir(f)}}}var Wr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Gr(e){return Wr?.createHTML(e)??e}function Kr(e){var t=Sn(`template`);return t.innerHTML=Gr(e.replaceAll(``,``)),t.content}function qr(e,t){var n=rr;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function z(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(``);return()=>{if(Le)return qr(ze,null),ze;i===void 0&&(i=Kr(a?e:``+e),n||(i=vn(i)));var t=r||pn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=vn(t),s=t.lastChild;qr(o,s)}else qr(t,t);return t}}function Jr(e,t,n=`svg`){var r=!e.startsWith(``),i=(t&1)!=0,a=`<${n}>${r?e:``+e}`,o;return()=>{if(Le)return qr(ze,null),ze;if(!o){var e=vn(Kr(a));if(i)for(o=document.createDocumentFragment();vn(e);)o.appendChild(vn(e));else o=vn(e)}var t=o.cloneNode(!0);if(i){var n=vn(t),r=t.lastChild;qr(n,r)}else qr(t,t);return t}}function Yr(e,t){return Jr(e,t,`svg`)}function Xr(e=``){if(!Le){var t=_n(e+``);return qr(t,t),t}var n=ze;return n.nodeType===3?Cn(n):(n.before(n=_n()),Be(n)),qr(n,n),n}function Zr(){if(Le)return qr(ze,null),ze;var e=document.createDocumentFragment(),t=document.createComment(``),n=_n();return e.append(t,n),qr(t,n),e}function B(e,t){if(Le){var n=rr;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=ze),Ve();return}e!==null&&e.before(t)}var Qr=!0;function $r(e){Qr=e}function V(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[pe]??=e.nodeValue)&&(e[pe]=n,e.nodeValue=`${n}`)}function ei(e,t){return ni(e,t)}var ti=new Map;function ni(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){gn();var l=void 0,u=Mn(()=>{var u=n??t.appendChild(_n());vt(u,{pending:()=>{}},t=>{D({});var n=Je;if(o&&(n.c=o),a&&(i.$$events=a),Le&&qr(t,null),Qr=s,l=e(t,i)||{},Qr=!0,Le&&(rr.nodes.end=ze,ze===null||ze.nodeType!==8||ze.data!==`]`))throw Pe(),Oe;O()},c);var d=new Set,f=e=>{for(var n=0;n{for(var e of d)for(let n of[t,document]){var r=ti.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Ur),r.delete(e),r.size===0&&ti.delete(n)):r.set(e,i)}Rr.delete(f),u!==n&&u.parentNode?.removeChild(u)}});return ri.set(l,u),l}var ri=new WeakMap,ii=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)qn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(qn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Hn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Yn(r,t),t.append(_n()),this.#n.set(e,{effect:r,fragment:t})}else Hn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Gn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Hn(n.effect),this.#n.delete(e))};ensure(e,t){var n=Pt,r=xn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=_n();i.append(a),this.#n.set(e,{effect:Rn(()=>t(a)),fragment:i})}else this.#t.set(e,Rn(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else Le&&(this.anchor=ze),this.#a(n)}};function H(e,t,n=!1){var r;Le&&(r=ze,Ve());var i=new ii(e),a=n?T:0;function o(e,t){if(Le){var n=We(r);if(e!==parseInt(n.substring(1))){var a=Ue();Be(a),i.anchor=a,Re(!1),i.ensure(e,t),Re(!0);return}}i.ensure(e,t)}In(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function ai(e,t){return t}function oi(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;si(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=i.length===0&&n!==null;if(l){var u=n,d=u.parentNode;bn(d),d.append(u),e.items.clear()}si(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function si(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,ui(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=ne,fi(d,null,c)):qn(d):Gn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:In(()=>{p=L(f);var e=p.length;let t=!1;Le&&We(c)===`[!`!=(e===0)&&(c=Ue(),Be(c),Re(!1),t=!0);for(var r=new Set,u=Pt,v=xn(),y=0;ys(c)):(d=Rn(()=>s(ci??=_n())),d.f|=ne)),e>r.size&&ve(``,``,``),Le&&e>0&&Be(Ue()),!h)if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&Re(!0),L(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,Le&&(c=ze)}function li(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function ui(e,t,n,i,a){var o=(i&8)!=0,s=t.length,c=e.items,l=li(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v0){var ee=i&4&&s===0?n:null;if(o){for(v=0;v{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function di(e,t,n,r,i,a,o,s){var c=o&1?o&16?rn(n):an(n,!1,!1):null,l=o&2?rn(i):null;return{v:c,i:l,e:Rn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function fi(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=yn(r);if(a.before(r),r===i)return;r=o}}function pi(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function mi(e,t,n=!1,r=!1,i=!1,a=!1){var o=e,s=``;if(n){var c=e;Le&&(o=Be(vn(c)))}I(()=>{var e=rr;if(s===(s=t()??``)){Le&&Ve();return}if(n&&!Le){e.nodes=null,c.innerHTML=s,s!==``&&qr(vn(c),c.lastChild);return}if(e.nodes!==null&&(Un(e.nodes.start,e.nodes.end),e.nodes=null),s!==``){if(Le){for(var a=ze.data,l=Ve(),u=l;l!==null&&(l.nodeType!==8||l.data!==``);)u=l,l=yn(l);if(l===null)throw Pe(),Oe;qr(ze,u),o=Be(l);return}var d=Sn(r?`svg`:i?`math`:`template`,r?je:i?Me:void 0);d.innerHTML=s;var f=r||i?d:d.content;if(qr(vn(f),f.lastChild),r||i)for(;vn(f);)o.before(vn(f));else o.before(f)}})}function hi(e,t,...n){var r=new ii(e);In(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},T)}function gi(e,t,n){var r;Le&&(r=ze,Ve());var i=new ii(e);In(()=>{var e=t()??null;if(Le&&We(r)===`[`!=(e!==null)){var a=Ue();Be(a),i.anchor=a,Re(!1),i.ensure(e,e&&(t=>n(t,e))),Re(!0);return}i.ensure(e,e&&(t=>n(t,e)))},T)}var _i=()=>performance.now(),vi={tick:e=>requestAnimationFrame(e),now:()=>_i(),tasks:new Set};function yi(){let e=vi.now();vi.tasks.forEach(t=>{t.c(e)||(vi.tasks.delete(t),t.f())}),vi.tasks.size!==0&&vi.tick(yi)}function bi(e){let t;return vi.tasks.size===0&&vi.tick(yi),{promise:new Promise(n=>{vi.tasks.add(t={c:e,f:n})}),abort(){vi.tasks.delete(t)}}}function xi(e,t){mt(()=>{e.dispatchEvent(new CustomEvent(t))})}function Si(e){if(e===`float`)return`cssFloat`;if(e===`offset`)return`cssOffset`;if(e.startsWith(`--`))return e;let t=e.split(`-`);return t.length===1?t[0]:t[0]+t.slice(1).map(e=>e[0].toUpperCase()+e.slice(1)).join(``)}function Ci(e){let t={},n=e.split(`;`);for(let e of n){let[n,r]=e.split(`:`);if(!n||r===void 0)break;let i=Si(n.trim());t[i]=r.trim()}return t}var wi=e=>e,Ti=null;function Ei(e){Ti=e}function Di(e,t,n){var r=(Ti??rr).nodes,i,a,o,s=null;r.a??={element:e,measure(){i=this.element.getBoundingClientRect()},apply(){if(o?.abort(),a=this.element.getBoundingClientRect(),i.left!==a.left||i.right!==a.right||i.top!==a.top||i.bottom!==a.bottom){let e=t()(this.element,{from:i,to:a},n?.());o=ki(this.element,e,void 0,1,()=>{},()=>{o?.abort(),o=void 0})}},fix(){if(!e.getAnimations().length){var{position:t,width:n,height:r}=getComputedStyle(e);if(t!==`absolute`&&t!==`fixed`){var a=e.style;s={position:a.position,width:a.width,height:a.height,transform:a.transform},a.position=`absolute`,a.width=n,a.height=r;var o=e.getBoundingClientRect();if(i.left!==o.left||i.top!==o.top){var c=`translate(${i.left-o.left}px, ${i.top-o.top}px)`;a.transform=a.transform?`${a.transform} ${c}`:c}}}},unfix(){if(s){var t=e.style;t.position=s.position,t.width=s.width,t.height=s.height,t.transform=s.transform}}},r.a.element=e}function Oi(e,t,n,r){var i=(e&1)!=0,a=(e&2)!=0,o=i&&a,s=(e&4)!=0,c=o?`both`:i?`in`:`out`,l,u=t.inert,d=t.style.overflow,f,p;function m(){return mt(()=>l??=n()(t,r?.()??{},{direction:c}))}var h={is_global:s,in(){if(t.inert=u,!i){p?.abort(),p?.reset?.();return}a||f?.abort(),f=ki(t,m(),p,1,()=>{xi(t,`introstart`)},()=>{xi(t,`introend`),f?.abort(),f=l=void 0,t.style.overflow=d})},out(e){if(!a){e?.(),l=void 0;return}t.inert=!0,p=ki(t,m(),f,0,()=>{xi(t,`outrostart`)},()=>{xi(t,`outroend`),e?.()})},stop:()=>{f?.abort(),p?.abort()}},g=rr;if((g.nodes.t??=[]).push(h),i&&Qr){var _=s;if(!_){for(var v=g.parent;v&&v.f&65536;)for(;(v=v.parent)&&!(v.f&16););_=!v||(v.f&32768)!=0}_&&Nn(()=>{Tr(()=>h.in())})}}function ki(e,t,n,r,i,a){var o=r===1;if(d(t)){var s,c=!1;return $e(()=>{c||(s=ki(e,t({direction:o?`in`:`out`}),n,r,i,a))}),{abort:()=>{c=!0,s?.abort()},deactivate:()=>s.deactivate(),reset:()=>s.reset(),t:()=>s.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return i(),a(),{abort:f,deactivate:f,reset:f,t:()=>r};let{delay:l=0,css:u,tick:p,easing:m=wi}=t;var h=[];if(o&&n===void 0&&(p&&p(0,1),u)){var g=Ci(u(0,1));h.push(g,g)}var _=()=>1-r,v=e.animate(h,{duration:l,fill:`forwards`});return v.onfinish=()=>{v.cancel(),i();var o=n?.t()??1-r;n?.abort();var s=r-o,c=t.duration*Math.abs(s),l=[];if(c>0){var d=!1;if(u)for(var f=Math.ceil(c/(1e3/60)),h=0;h<=f;h+=1){var g=o+s*m(h/f),y=Ci(u(g,1-g));l.push(y),d||=y.overflow===`hidden`}d&&(e.style.overflow=`hidden`),_=()=>{var e=v.currentTime;return o+s*m(e/c)},p&&bi(()=>{if(v.playState!==`running`)return!1;var e=_();return p(e,1-e),!0})}v=e.animate(l,{duration:c,fill:`forwards`}),v.onfinish=()=>{_=()=>r,p?.(r,1-r),a()}},{abort:()=>{v&&(v.cancel(),v.effect=null,v.onfinish=f)},deactivate:()=>{a=f},reset:()=>{r===0&&p?.(1,0)},t:()=>_()}}function Ai(e,t,n,r,i,a){let o=Le;Le&&Ve();var s=null;Le&&ze.nodeType===1&&(s=ze,Ve());var c=Le?ze:e,l=rr,u=new ii(c,!1);In(()=>{let e=t()||null;var a=i?i():n||e===`svg`?je:void 0;if(e===null){u.ensure(null,null),$r(!0);return}return u.ensure(e,t=>{if(e){if(s=Le?s:Sn(e,a),qr(s,s),r){var n=null;Le&&Fr(e)&&s.append(n=document.createComment(``));var i=Le?vn(s):s.appendChild(_n());Le&&(i===null?Re(!1):Be(i)),Ei(l),r(s,i),n?.remove(),Ei(null)}rr.nodes.end=s,t.before(s)}Le&&Be(t)}),$r(!0),()=>{e&&$r(!1)}},T),On(()=>{$r(!0)}),o&&(Re(!0),Be(c))}function ji(e,t){var n=void 0,r;Ln(()=>{n!==(n=t())&&(r&&=(Hn(r),null),n&&(r=Rn(()=>{Nn(()=>n(e))})))})}function Mi(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t=0;){var s=o+a;(o===0||Fi.includes(r[o-1]))&&(s===r.length||Fi.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function Li(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function Ri(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function zi(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(Ri)),i&&c.push(...Object.keys(i).map(Ri));var l=0,u=-1;let t=e.length;for(var d=0;d{Hi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),On(()=>{t.disconnect()})}function Wi(e,t,n=t){var r=new WeakSet,i=!0;ht(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),Gi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&Gi(o)}n(a),e.__value=a,Pt!==null&&r.add(Pt)}),Nn(()=>{var a=t();if(e===document.activeElement){var o=Pt;if(r.has(o))return}if(Hi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=Gi(s),n(a))}e.__value=a,i=!1}),Ui(e)}function Gi(e){return`__value`in e?e.__value:e.value}var Ki=Symbol(`class`),qi=Symbol(`style`),Ji=Symbol(`is custom element`),Yi=Symbol(`is html`),Xi=ge?`link`:`LINK`,Zi=ge?`input`:`INPUT`,Qi=ge?`option`:`OPTION`,$i=ge?`select`:`SELECT`,ea=ge?`progress`:`PROGRESS`;function ta(e){if(Le){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;G(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;G(e,`checked`,null),e.checked=r}}};e[me]=n,$e(n),pt()}}function na(e,t){var n=sa(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==ea)||(e.value=t??``)}function ra(e,t){var n=sa(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function ia(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function G(e,t,n,r){var i=sa(e);Le&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Xi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[le]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&la(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function aa(e,t,n,r,i=!1,a=!1){if(Le&&i&&e.nodeName===Zi){var o=e;(o.type===`checkbox`?`defaultChecked`:`defaultValue`)in n||ta(o)}var s=sa(e),c=s[Ji],l=!s[Yi];let u=Le&&c;u&&Re(!1);var d=t||{},f=e.nodeName===Qi;for(var p in t)p in n||(n[p]=null);n.class?n.class=Pi(n.class):(r||n[Ki])&&(n.class=null),n[qi]&&(n.style??=null);var m=la(e);if(e.nodeName===Zi&&`type`in n&&(`value`in n||`__value`in n)){var h=n.type;(h!==d.type||h===void 0&&e.hasAttribute(`type`))&&(d.type=h,G(e,`type`,h,a))}for(let i in n){let o=n[i];if(f&&i===`value`&&o==null){e.value=e.__value=``,d[i]=o;continue}if(i===`class`){W(e,e.namespaceURI===`http://www.w3.org/1999/xhtml`,o,r,t?.[Ki],n[Ki]),d[i]=o,d[Ki]=n[Ki];continue}if(i===`style`){Vi(e,o,t?.[qi],n[qi]),d[i]=o,d[qi]=n[qi];continue}var g=d[i];if(!(o===g&&!(o===void 0&&e.hasAttribute(i)))){d[i]=o;var _=i[0]+i[1];if(_!==`$$`)if(_===`on`){let t={},n=`$$`+i,r=i.slice(2);var v=Or(r);if(Er(r)&&(r=r.slice(0,-7),t.capture=!0),!v&&g){if(o!=null)continue;e.removeEventListener(r,d[n],t),d[n]=null}if(v)R(r,e,o),Vr([r]);else if(o!=null){function a(e){d[i].call(this,e)}d[n]=zr(r,e,a,t)}}else if(i===`style`)G(e,i,o);else if(i===`autofocus`)ut(e,!!o);else if(!c&&(i===`__value`||i===`value`&&o!=null))e.value=e.__value=o;else if(i===`selected`&&f)ia(e,o);else{var y=i;l||(y=jr(y));var b=y===`defaultValue`||y===`defaultChecked`;if(o==null&&!c&&!b)if(s[i]=null,y===`value`||y===`checked`){let n=e,r=t===void 0;if(y===`value`){let e=n.defaultValue;n.removeAttribute(y),n.defaultValue=e,n.value=n.__value=r?e:null}else{let e=n.defaultChecked;n.removeAttribute(y),n.defaultChecked=e,n.checked=r?e:!1}}else e.removeAttribute(i);else b||m.includes(y)&&(c||typeof o!=`string`)?(e[y]=o,y in s&&(s[y]=ke)):typeof o!=`function`&&G(e,y,o,a)}}}return u&&Re(!0),d}function oa(e,t,n=[],r=[],i=[],a,o=!1,s=!1){bt(i,n,r,n=>{var r=void 0,i={},c=e.nodeName===$i,l=!1;if(Ln(()=>{var u=t(...n.map(L)),d=aa(e,r,u,a,o,s);l&&c&&`value`in u&&Hi(e,u.value);for(let e of Object.getOwnPropertySymbols(i))u[e]||Hn(i[e]);for(let t of Object.getOwnPropertySymbols(u)){var f=u[t];t.description===`@attach`&&(!r||f!==r[t])&&(i[t]&&Hn(i[t]),i[t]=Rn(()=>ji(e,()=>f))),d[t]=f}r=d}),c){var u=e;Nn(()=>{Hi(u,r.value,!0),Ui(u)})}l=!0})}function sa(e){return e[ue]??={[Ji]:e.nodeName.includes(`-`),[Yi]:e.namespaceURI===Ae}}var ca=new Map;function la(e){var t=e.getAttribute(`is`)||e.nodeName,n=ca.get(t);if(n)return n;ca.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&s!==`innerHTML`&&s!==`textContent`&&s!==`innerText`&&n.push(s);i=l(i)}return n}function ua(e,t,n=t){var r=new WeakSet;ht(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=fa(e)?pa(a):a,n(a),Pt!==null&&r.add(Pt),await Sr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(Le&&e.defaultValue!==e.value||Tr(t)==null&&e.value)&&(n(fa(e)?pa(e.value):e.value),Pt!==null&&r.add(Pt)),Fn(()=>{var n=t();if(e===document.activeElement){var i=Pt;if(r.has(i))return}fa(e)&&n===pa(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function da(e,t,n=t){ht(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(Le&&e.defaultChecked!==e.checked||Tr(t)==null)&&n(e.checked),Fn(()=>{e.checked=!!t()})}function fa(e){var t=e.type;return t===`number`||t===`range`}function pa(e){return e===``?null:+e}function ma(e,t){return e===t||e?.[se]===t}function ha(e={},t,n,r){var i=Je.r,a=rr;return Nn(()=>{var o,s;return Fn(()=>{o=s,s=r?.()||[],Tr(()=>{ma(n(...s),e)||(t(e,...s),o&&ma(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&ma(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}var ga={get(e,t){if(!e.exclude.has(t))return e.props[t]},set(e,t){return!1},getOwnPropertyDescriptor(e,t){if(!e.exclude.has(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},has(e,t){return!e.exclude.has(t)&&t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.has(t))}};function _a(e,t,n){return new Proxy({props:e,exclude:t},ga)}function K(e,t,n,r){var i=!0,o=(n&8)!=0,s=(n&16)!=0,c=r,l=!0,u=void 0,d=()=>s&&i?(u??=wt(r),L(u)):(l&&(l=!1,c=s?Tr(r):r),c);let f;if(o){var p=se in e||ce in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=lt(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Ce(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?wt:Dt)(()=>(v=!1,g()));o&&L(y);var b=rr;return(function(e,t){if(arguments.length>0){let n=t?L(y):i&&o?M(e):e;return j(y,n),v=!0,c!==void 0&&(c=n),e}return Qn&&v||b.f&16384?y.v:L(y)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var va=new Set([`$$slots`,`$$events`,`$$legacy`,`icon`,`class`]),ya=Yr(``);function q(e,t){let n=K(t,`icon`,19,()=>[]),r=K(t,`class`,3,``),i=_a(t,va);var a=ya();oa(a,()=>({xmlns:`http://www.w3.org/2000/svg`,width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,class:r(),"aria-hidden":`true`,focusable:`false`,...i}));{let e=(t,n=f)=>{var r=Zr();U(P(r),17,n,ai,(t,n)=>{var r=k(()=>g(L(n),3));let i=()=>L(r)[0],a=()=>L(r)[1],o=()=>L(r)[2];var s=Zr();Ai(P(s),i,!0,(t,n)=>{oa(t,()=>({xmlns:`http://www.w3.org/2000/svg`,...a()}));var r=Zr(),i=P(r),s=t=>{e(t,o)},c=k(()=>Array.isArray(o()));H(i,e=>{L(c)&&e(s)}),B(n,r)}),B(t,s)}),B(t,r)};e(N(a),n),E(a)}B(e,a)}var ba=Yr(``);function xa(e){B(e,ba())}function Sa(){try{return typeof localStorage>`u`?null:localStorage}catch{return null}}function Ca(e,t=null){let n=Sa();if(!n)return t;try{return n.getItem(e)??t}catch{return t}}function wa(e,t){let n=Sa();if(n)try{n.setItem(e,String(t))}catch{}}function Ta(e){let t=Number(e);return Number.isFinite(t)?Math.min(240,Math.max(60,Math.round(t))):240}function Ea(e,t,n){return Ta(Number(e)+Number(n)-Number(t))}var Da=new class{#e=A(`system`);get theme(){return L(this.#e)}set theme(e){j(this.#e,e,!0)}#t=A(0);get tick(){return L(this.#t)}set tick(e){j(this.#t,e,!0)}init(){this.theme=Ca(`gomodel_theme`,`system`),this.apply(),window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{this.theme===`system`&&this.tick++})}set(e){this.theme=e,wa(`gomodel_theme`,e),this.apply(),this.tick++}toggle(){let e=[`light`,`system`,`dark`];this.set(e[(e.indexOf(this.theme)+1)%e.length])}apply(){let e=document.documentElement;this.theme===`system`?e.removeAttribute(`data-theme`):e.setAttribute(`data-theme`,this.theme)}},Oa=new class{#e=A(M(240));get width(){return L(this.#e)}set width(e){j(this.#e,e,!0)}get collapsed(){return this.width===60}init(){let e=Ca(`gomodel_sidebar_width`),t=Ca(`gomodel_sidebar_collapsed`)===`true`;this.setWidth(e??(t?60:240))}toggle(){this.setWidth(this.collapsed?240:60,!0)}setWidth(e,t=!1){this.width=Ta(e),typeof document<`u`&&document.documentElement.style.setProperty(`--sidebar-width`,`${this.width}px`),t&&(wa(`gomodel_sidebar_width`,this.width),wa(`gomodel_sidebar_collapsed`,this.collapsed))}},ka=new class{#e=A(M([]));get stack(){return L(this.#e)}set stack(e){j(this.#e,e,!0)}#t=1;opened(){let e=this.#t++;return this.stack=[...this.stack,e],e}closed(e){this.stack=this.stack.filter(t=>t!==e)}isTop(e){return this.stack.length>0&&this.stack[this.stack.length-1]===e}get openCount(){return this.stack.length}get anyOpen(){return this.stack.length>0}},Aa=[[`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`}]],ja=[[`path`,{d:`M12 5v14`}],[`path`,{d:`m19 12-7 7-7-7`}]],Ma=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]],Na=[[`path`,{d:`M5 12h14`}],[`path`,{d:`m12 5 7 7-7 7`}]],Pa=[[`path`,{d:`m5 12 7-7 7 7`}],[`path`,{d:`M12 19V5`}]],Fa=[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`}],[`path`,{d:`M12 22V12`}]],Ia=[[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`}],[`line`,{x1:`8`,x2:`16`,y1:`6`,y2:`6`}],[`line`,{x1:`16`,x2:`16`,y1:`14`,y2:`18`}],[`path`,{d:`M16 10h.01`}],[`path`,{d:`M12 10h.01`}],[`path`,{d:`M8 10h.01`}],[`path`,{d:`M12 14h.01`}],[`path`,{d:`M8 14h.01`}],[`path`,{d:`M12 18h.01`}],[`path`,{d:`M8 18h.01`}]],La=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}],[`path`,{d:`M8 14h.01`}],[`path`,{d:`M12 14h.01`}],[`path`,{d:`M16 14h.01`}],[`path`,{d:`M8 18h.01`}],[`path`,{d:`M12 18h.01`}],[`path`,{d:`M16 18h.01`}]],Ra=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}]],za=[[`path`,{d:`M13 17V9`}],[`path`,{d:`M18 17V5`}],[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M8 17v-3`}]],Ba=[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M18 17V9`}],[`path`,{d:`M13 17V5`}],[`path`,{d:`M8 17v-3`}]],Va=[[`path`,{d:`M5 21v-6`}],[`path`,{d:`M12 21V9`}],[`path`,{d:`M19 21V3`}]],Ha=[[`path`,{d:`M20 6 9 17l-5-5`}]],Ua=[[`path`,{d:`m6 9 6 6 6-6`}]],Wa=[[`path`,{d:`m15 18-6-6 6-6`}]],Ga=[[`path`,{d:`m9 18 6-6-6-6`}]],Ka=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`}],[`path`,{d:`m9 11 3 3L22 4`}]],qa=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m9 12 2 2 4-4`}]],Ja=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8`}],[`path`,{d:`M12 18V6`}]],Ya=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 6v6l4 2`}]],Xa=[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`}]],Za=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 15 21.84`}],[`path`,{d:`M21 5V8`}],[`path`,{d:`M21 12L18 17H22L19 22`}],[`path`,{d:`M3 12A9 3 0 0 0 14.59 14.87`}]],Qa=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`}]],$a=[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`}],[`path`,{d:`M10 9H8`}],[`path`,{d:`M16 13H8`}],[`path`,{d:`M16 17H8`}]],eo=[[`path`,{d:`m12 14 4-4`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`}]],to=[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}],[`path`,{d:`M12 7v5l4 2`}]],no=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]],ro=[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]],io=[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`}]],ao=[[`path`,{d:`M3 5h.01`}],[`path`,{d:`M3 12h.01`}],[`path`,{d:`M3 19h.01`}],[`path`,{d:`M8 5h13`}],[`path`,{d:`M8 12h13`}],[`path`,{d:`M8 19h13`}]],oo=[[`circle`,{cx:`12`,cy:`16`,r:`1`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`}]],so=[[`path`,{d:`m16 17 5-5-5-5`}],[`path`,{d:`M21 12H9`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`}]],co=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`m21 3-7 7`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M9 21H3v-6`}]],lo=[[`path`,{d:`m14 10 7-7`}],[`path`,{d:`M20 10h-6V4`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M4 14h6v6`}]],uo=[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`}]],fo=[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`}]],po=[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`}],[`path`,{d:`m15 5 4 4`}]],mo=[[`path`,{d:`M12 22v-5`}],[`path`,{d:`M15 8V2`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`}],[`path`,{d:`M9 8V2`}]],ho=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]],go=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]],_o=[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`}],[`path`,{d:`M21 3v5h-5`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`}],[`path`,{d:`M8 16H3v5`}]],vo=[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}]],yo=[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`}]],bo=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]],xo=[[`path`,{d:`m10.852 14.772-.383.923`}],[`path`,{d:`M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923`}],[`path`,{d:`m13.148 9.228.383-.923`}],[`path`,{d:`m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544`}],[`path`,{d:`m14.772 10.852.923-.383`}],[`path`,{d:`m14.772 13.148.923.383`}],[`path`,{d:`M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5`}],[`path`,{d:`M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5`}],[`path`,{d:`M6 18h.01`}],[`path`,{d:`M6 6h.01`}],[`path`,{d:`m9.228 10.852-.923-.383`}],[`path`,{d:`m9.228 13.148-.923.383`}]],So=[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`}]],Co=[[`path`,{d:`M14 17H5`}],[`path`,{d:`M19 7h-9`}],[`circle`,{cx:`17`,cy:`17`,r:`3`}],[`circle`,{cx:`7`,cy:`7`,r:`3`}]],wo=[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]],To=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}],[`path`,{d:`m9 12 2 2 4-4`}]],Eo=[[`path`,{d:`m2 2 20 20`}],[`path`,{d:`M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71`}],[`path`,{d:`M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264`}]],Do=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}]],Oo=[[`path`,{d:`m18 14 4 4-4 4`}],[`path`,{d:`m18 2 4 4-4 4`}],[`path`,{d:`M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22`}],[`path`,{d:`M2 6h1.972a4 4 0 0 1 3.6 2.2`}],[`path`,{d:`M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45`}]],ko=[[`circle`,{cx:`12`,cy:`12`,r:`4`}],[`path`,{d:`M12 2v2`}],[`path`,{d:`M12 20v2`}],[`path`,{d:`m4.93 4.93 1.41 1.41`}],[`path`,{d:`m17.66 17.66 1.41 1.41`}],[`path`,{d:`M2 12h2`}],[`path`,{d:`M20 12h2`}],[`path`,{d:`m6.34 17.66-1.41 1.41`}],[`path`,{d:`m19.07 4.93-1.41 1.41`}]],Ao=[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]],jo=[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`}],[`circle`,{cx:`12`,cy:`14`,r:`8`}]],Mo=[[`path`,{d:`M10 11v6`}],[`path`,{d:`M14 11v6`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`}],[`path`,{d:`M3 6h18`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`}]],No=[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`}],[`path`,{d:`M12 9v4`}],[`path`,{d:`M12 17h.01`}]],Po=[[`circle`,{cx:`12`,cy:`8`,r:`5`}],[`path`,{d:`M20 21a8 8 0 0 0-16 0`}]],Fo=[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`}],[`circle`,{cx:`12`,cy:`7`,r:`4`}]],Io=[[`path`,{d:`M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1`}],[`path`,{d:`M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4`}]],Lo=[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`}],[`path`,{d:`m14 7 3 3`}],[`path`,{d:`M5 6v4`}],[`path`,{d:`M19 14v4`}],[`path`,{d:`M10 2v2`}],[`path`,{d:`M7 8H3`}],[`path`,{d:`M21 16h-4`}],[`path`,{d:`M11 3H9`}]],Ro=[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`}]],zo=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]],Bo=z(``),Vo=z(`
        `,1);function Ho(e,t){D(t,!0);let n=K(t,`compact`,3,!1),r=[{value:`light`,icon:ko,label:`Light theme`},{value:`system`,icon:uo,label:`System theme`},{value:`dark`,icon:fo,label:`Dark theme`}],i=k(()=>r.find(e=>e.value===Da.theme)||r[1]),a=k(()=>`Change theme (currently `+L(i).label+`)`);var o=Vo(),s=P(o);let c;U(s,21,()=>r,e=>e.value,(e,t)=>{var n=Bo();let r;q(N(n),{get icon(){return L(t).icon},class:`theme-icon`}),E(n),I(()=>{r=W(n,1,`theme-btn svelte-1keql7b`,null,r,{active:Da.theme===L(t).value}),G(n,`aria-pressed`,Da.theme===L(t).value),G(n,`title`,L(t).label),G(n,`aria-label`,L(t).label)}),R(`click`,n,()=>Da.set(L(t).value)),B(e,n)}),E(s);var l=F(s,2);let u;q(N(l),{get icon(){return L(i).icon},class:`theme-icon`}),E(l),I(()=>{c=W(s,1,`theme-toggle svelte-1keql7b`,null,c,{"is-compact":n()}),u=W(l,1,`theme-toggle-mobile svelte-1keql7b`,null,u,{"is-compact":n()}),G(l,`title`,L(a)),G(l,`aria-label`,L(a))}),R(`click`,l,()=>Da.toggle()),B(e,o),O()}Vr([`click`]);function Uo(){return typeof window>`u`?`/`:window.GOMODEL_BASE_PATH||`/`}function Wo(e){let t=Uo();return!e||e.charAt(0)!==`/`||e.indexOf(`//`)===0||t===`/`||e===t||e.indexOf(t+`/`)===0?e:t+e}function Go(e){let t=Uo();return t===`/`||!e?e:e===t?`/`:e.indexOf(t+`/`)===0?e.slice(t.length)||`/`:e}function Ko(){return typeof window>`u`?``:window.GOMODEL_VERSION||``}function qo(){return typeof window>`u`?!1:window.GOMODEL_DEMO_MODE===!0}var Jo=[`overview`,`usage`,`budgets`,`rate-limits`,`models`,`workflows`,`audit-logs`,`guardrails`,`mcp-servers`,`providers-config`,`auth-keys`,`settings`];function Yo(e){return e.startsWith(`/admin/static/`)?`/`+e.slice(14).replace(/^\/+/,``):e}function Xo(e){let t=Yo(Go(e)).replace(/\/$/,``).replace(`/admin/dashboard`,``).replace(/^\//,``).split(`/`),n=t[0];n===`audit`&&(n=`audit-logs`);let r=t[1]||null;return n===`settings`&&r===`guardrails`?{page:`guardrails`,sub:null}:(n=Jo.includes(n)?n:`overview`,{page:n,sub:r})}var Zo=new class{#e=A(`overview`);get page(){return L(this.#e)}set page(e){j(this.#e,e,!0)}#t=A(null);get sub(){return L(this.#t)}set sub(e){j(this.#t,e,!0)}init(){let{page:e,sub:t}=Xo(window.location.pathname);this.page=e,this.sub=t,window.addEventListener(`popstate`,()=>{let{page:e,sub:t}=Xo(window.location.pathname);this.page=e,this.sub=t})}navigate(e,t=null){let n=t?`/`+t:``;history.pushState(null,``,Wo(`/admin/dashboard/`+e+n)),this.page=e,this.sub=t}},Qo=`X-GoModel-Auth-Login`,$o=`X-GoModel-Auth-Logout`,es=`X-GoModel-Auth-User`;function ts(e){let t=String(e||``).trim();return!t.startsWith(`/`)||t.startsWith(`//`)||t.includes(`\\`)?``:t}function ns(e,t=globalThis.location){let n=ts(e),r=ts(t?.pathname);if(!n||!r)return n;let i=String(t?.search||``),a=r+(i.startsWith(`?`)?i:``),o=n.indexOf(`#`),s=o<0?n:n.slice(0,o),c=o<0?``:n.slice(o);return`${s}${s.includes(`?`)?`&`:`?`}return_to=${encodeURIComponent(a)}${c}`}function rs(e){let t=e?.headers;if(!t||typeof t.has!=`function`)return null;let n={};return t.has(Qo)&&(n.loginURL=ts(t.get(Qo))),t.has($o)&&(n.logoutURL=ts(t.get($o))),t.has(es)&&(n.user=String(t.get(es)||``).trim().slice(0,256)),n}var is=`gomodel_api_key`;function as(e){let t=String(e||``).trim();if(/^Bearer\s*$/i.test(t))return``;let n=t.match(/^Bearer\s+(.+)$/i);return n?n[1].trim():t}var J=new class{#e=A(``);get apiKey(){return L(this.#e)}set apiKey(e){j(this.#e,e,!0)}#t=A(!1);get needsAuth(){return L(this.#t)}set needsAuth(e){j(this.#t,e,!0)}#n=A(!1);get authError(){return L(this.#n)}set authError(e){j(this.#n,e,!0)}#r=A(``);get authErrorMessage(){return L(this.#r)}set authErrorMessage(e){j(this.#r,e,!0)}#i=A(!1);get dialogOpen(){return L(this.#i)}set dialogOpen(e){j(this.#i,e,!0)}#a=A(``);get externalLoginURL(){return L(this.#a)}set externalLoginURL(e){j(this.#a,e,!0)}#o=A(``);get externalLogoutURL(){return L(this.#o)}set externalLogoutURL(e){j(this.#o,e,!0)}#s=A(``);get externalUser(){return L(this.#s)}set externalUser(e){j(this.#s,e,!0)}#c=A(0);get generation(){return L(this.#c)}set generation(e){j(this.#c,e,!0)}#l=A(0);get refreshTick(){return L(this.#l)}set refreshTick(e){j(this.#l,e,!0)}init(){try{this.apiKey=as(localStorage.getItem(is)||``)}catch{this.apiKey=``}}hasApiKey(){return as(this.apiKey)!==``}save(){this.apiKey=as(this.apiKey);try{localStorage.setItem(is,this.apiKey)}catch{}}selectExternalAuthentication(){this.apiKey=``;try{localStorage.removeItem(is)}catch{}this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!0}openDialog(){this.dialogOpen=!0}closeDialog(){this.dialogOpen=!1}submit(){let e=as(this.apiKey);return e?(this.apiKey=e,this.save(),this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!1,this.closeDialog(),this.refresh(),!0):(this.apiKey=``,this.authError=!0,this.authErrorMessage=``,this.needsAuth=!0,this.openDialog(),!1)}refresh(){this.refreshTick++}observeResponse(e){let t=rs(e);t&&(Object.hasOwn(t,`loginURL`)&&(this.externalLoginURL=t.loginURL),Object.hasOwn(t,`logoutURL`)&&(this.externalLogoutURL=t.logoutURL),Object.hasOwn(t,`user`)&&(this.externalUser=t.user))}handleUnauthorized(e,t=``){return typeof e==`number`&&e{r[e.type]=e.value}),r.year+`-`+r.month+`-`+r.day}formatTimestampInTimeZone(e,t){if(e==null)return`-`;let n=new Date(e);if(Number.isNaN(n.getTime()))return`-`;let r=gs(`en-CA`,{timeZone:_s(t)?t:fs,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`}).formatToParts(n),i={};return r.forEach(e=>{i[e.type]=e.value}),i.year+`-`+i.month+`-`+i.day+` `+i.hour+`:`+i.minute+`:`+i.second}formatTimestamp(e){return this.formatTimestampInTimeZone(e,this.effectiveTimezone())}currentDateKey(e){return this.dateKeyInTimeZone(e||new Date,this.effectiveTimezone())}dateKeyToDate(e){return ss(e)}dateToDateKey(e){return cs(e)}addDaysToDateKey(e,t){return ls(e,t)}todayDate(){return this.dateKeyToDate(this.currentDateKey())}startOfMonthDate(e){let t=e instanceof Date?e:this.todayDate();return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1))}timeZoneOffsetLabel(e,t){let n=_s(e)?e:fs;try{let e=gs(`en-US`,{timeZone:n,hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`,timeZoneName:`longOffset`}).formatToParts(t||new Date).find(e=>e.type===`timeZoneName`);if(!e||!e.value)return`UTC+00:00`;let r=e.value.replace(`GMT`,`UTC`);return r===`UTC`?`UTC+00:00`:r}catch{return`UTC+00:00`}}timeZoneOffsetMinutes(e,t){let n=/^UTC([+-])(\d{2}):(\d{2})$/.exec(this.timeZoneOffsetLabel(e,t));if(!n)return 0;let r=Number(n[2])*60+Number(n[3]);return n[1]===`-`?-r:r}timeZoneOptionLabel(e,t){return e+` (`+this.timeZoneOffsetLabel(e,t)+`)`}detectedTimeZoneLabel(){return this.timeZoneOptionLabel(this.detectedTimezone)}effectiveTimeZoneLabel(){return this.timeZoneOptionLabel(this.effectiveTimezone())}ensureOptions(){if(this.optionsLoaded)return;let e=new Date,t=[];try{typeof Intl.supportedValuesOf==`function`&&(t=Intl.supportedValuesOf(`timeZone`))}catch{t=[]}[fs,this.detectedTimezone,this.override].forEach(e=>{e&&t.indexOf(e)===-1&&_s(e)&&t.push(e)}),t=t.filter(e=>_s(e)),t.sort((t,n)=>{let r=this.timeZoneOffsetMinutes(t,e)-this.timeZoneOffsetMinutes(n,e);return r===0?t.localeCompare(n):r}),this.options=t.map(t=>({value:t,label:this.timeZoneOptionLabel(t,e)})),this.optionsLoaded=!0}saveOverride(){let e=Sa();if(e)if(this.override&&_s(this.override))try{e.setItem(ps,this.override)}catch{}else{try{e.removeItem(ps)}catch{}this.override=``}this.optionsLoaded=!1,this.ensureOptions()}clearOverride(){let e=Sa();if(e)try{e.removeItem(ps)}catch{}this.override=``}calendarTimeZoneText(){let e=this.override?`manual override`:`auto-detected`;return`Activity grouped by `+this.effectiveTimeZoneLabel()+` (`+e+`)`}};function xs(e,t){let n=e&&typeof e==`object`&&e.error&&e.error.message;return(typeof n==`string`?n.trim():``)||t}function Ss(e,t){let n=e&&e.data;if(n&&typeof n==`object`){let e=[n.message,n.error,n.error&&typeof n.error==`object`?n.error.message:null];for(let t of e)if(typeof t==`string`&&t.trim())return t.trim()}return t}function Cs(){let e={"Content-Type":`application/json`},t=as(J.apiKey);return t&&(e.Authorization=`Bearer `+t),e[`X-GoModel-Timezone`]=bs.effectiveTimezone(),e}function ws(e,t={}){return fetch(Wo(e),{...t,headers:{...Cs(),...t.headers||{}}})}async function Ts(e,t,{label:n=e,parse:r=!0}={}){let i=J.generation,a=await ws(e,t),o=ie.trim()).filter(Boolean);return e.length>0?e:As}cacheVisible(){if(this.flag(`CACHE_ENABLED`)!==``)return this.booleanFlag(`CACHE_ENABLED`,!1);let e=this.flag(`REDIS_URL`),t=this.flag(`SEMANTIC_CACHE_ENABLED`);return e===``&&t===``||this.booleanFlag(`REDIS_URL`,!1)||this.booleanFlag(`SEMANTIC_CACHE_ENABLED`,!1)}auditVisible(){return this.booleanFlag(`LOGGING_ENABLED`,!0)}usageVisible(){return this.booleanFlag(`USAGE_ENABLED`,!0)}budgetsVisible(){return this.booleanFlag(`BUDGETS_ENABLED`,!0)}rateLimitsVisible(){return this.booleanFlag(`RATE_LIMITS_ENABLED`,!0)}guardrailsVisible(){return this.booleanFlag(`GUARDRAILS_ENABLED`,!0)}mcpVisible(){return this.booleanFlag(`MCP_ENABLED`,!0)}liveLogsVisible(){return this.booleanFlag(`DASHBOARD_LIVE_LOGS_ENABLED`,!0)}fetch(){return this.#n||=this.#r().finally(()=>{this.#n=null}),this.#n}async ensureLoaded(){if(this.#n){await this.#n;return}this.loaded||await this.fetch()}async#r(){let e=typeof AbortController==`function`?new AbortController:null,t=e?setTimeout(()=>e.abort(),1e4):null;try{let t=await Es(`/admin/runtime/config`,{label:`dashboard config`,signal:e?e.signal:void 0});if(t.stale)return;if(!t.ok){this.config={},this.loaded=!1;return}let n=t.data,r={};for(let e of ks)n&&typeof n==`object`&&!Array.isArray(n)&&n[e]!==void 0&&n[e]!==null&&(r[e]=String(n[e]).trim());this.config=r,this.loaded=!0}catch(e){console.error(`Failed to fetch dashboard config:`,e),this.config={},this.loaded=!1}finally{t!==null&&clearTimeout(t)}}},Ms=[{page:`overview`,label:`Overview`,icon:io},{page:`providers-config`,label:`Providers`,icon:xo},{page:`models`,label:`Models`,icon:Fa},{page:`audit-logs`,label:`Audit Logs`,icon:to},{page:`usage`,label:`Usage`,icon:Ba},{page:`budgets`,label:`Budgets`,icon:Io,visible:()=>js.budgetsVisible()},{page:`rate-limits`,label:`Rate Limits`,icon:eo,visible:()=>js.rateLimitsVisible()},{page:`auth-keys`,label:`API Keys`,icon:ro},{page:`workflows`,label:`Workflows`,icon:Ro},{page:`guardrails`,label:`Guardrails (experimental)`,icon:To,visible:()=>js.guardrailsVisible()},{page:`mcp-servers`,label:`MCP Servers`,icon:mo,visible:()=>js.mcpVisible()},{page:`settings`,label:`Settings`,icon:wo}],Ns=z(` `),Ps=z(`
        `),Fs=z(``),Is=z(`
        `),Ls=z(` `,1);function Rs(e,t){D(t,!0);let n=k(()=>Ms.filter(e=>!e.visible||e.visible())),r=A(null),i=0,a=0,o=!1;function s(e){e.button===0&&(e.preventDefault(),j(r,e.pointerId,!0),i=e.clientX,a=Oa.width,o=!1,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`sidebar-resizing`))}function c(e){e.pointerId===L(r)&&(!o&&Math.abs(e.clientX-i)<=4||(o=!0,Oa.setWidth(Ea(a,i,e.clientX))))}function l(e){L(r)===null||e.pointerId!==void 0&&e.pointerId!==L(r)||(j(r,null),document.body.classList.remove(`sidebar-resizing`),Oa.setWidth(Oa.width,!0))}function u(){if(o){o=!1;return}Oa.toggle()}function d(e){let t;if(e.key===`ArrowLeft`)t=Oa.width-12;else if(e.key===`ArrowRight`)t=Oa.width+12;else if(e.key===`Home`)t=60;else if(e.key===`End`)t=240;else if(e.key===`Enter`||e.key===` `){e.preventDefault(),Oa.toggle();return}else return;e.preventDefault(),Oa.setWidth(t,!0)}var f=Ls(),p=P(f);let m;var h=N(p),g=N(h);xa(N(g),{}),E(g),He(4),E(h);var _=F(h,2);U(_,21,()=>L(n),e=>e.page,(e,t)=>{var n=Ns();let r;var i=N(n);q(i,{get icon(){return L(t).icon},class:`nav-icon`});var a=F(i,2),o=N(a,!0);E(a),E(n),I(e=>{G(n,`href`,e),r=W(n,1,`nav-item svelte-1nwtzae`,null,r,{active:Zo.page===L(t).page}),G(n,`title`,L(t).label),V(o,L(t).label)},[()=>Wo(`/admin/dashboard/`+L(t).page)]),R(`click`,n,e=>{e.preventDefault(),Zo.navigate(L(t).page)}),B(e,n)}),E(_);var v=F(_,2),y=N(v);Ho(y,{get compact(){return Oa.collapsed}});var b=F(y,2),x=e=>{var t=Fs(),n=N(t),r=e=>{var t=Ps(),n=N(t);q(n,{get icon(){return Po},class:`api-key-open-icon`});var r=F(n,2),i=N(r,!0);E(r),E(t),I(()=>{G(t,`title`,J.externalUser),V(i,J.externalUser)}),B(e,t)};H(n,e=>{J.externalUser&&e(r)});var i=F(n,2);q(N(i),{get icon(){return so},class:`api-key-open-icon`}),He(2),E(i),E(t),I(e=>G(i,`href`,e),[()=>Wo(J.externalLogoutURL)]),B(e,t)};H(b,e=>{J.externalLogoutURL&&e(x)});var S=F(b,2),C=e=>{var t=Is(),n=N(t),r=N(n);q(r,{get icon(){return oo},class:`api-key-open-icon`});var i=F(r,2),a=N(i,!0);E(i),E(n),E(t),I(()=>{G(n,`aria-label`,J.needsAuth?`Enter API key`:`Change API key`),V(a,J.needsAuth?`Enter API key`:`Change API key`)}),R(`click`,n,()=>J.openDialog()),B(e,t)},w=k(()=>J.needsAuth||J.hasApiKey());H(S,e=>{L(w)&&e(C)}),E(v),E(p);var T=F(p,2);I(()=>{m=W(p,1,`sidebar svelte-1nwtzae`,null,m,{"sidebar-collapsed":Oa.collapsed,"sidebar-resizing":L(r)!==null}),G(T,`aria-valuemin`,60),G(T,`aria-valuemax`,240),G(T,`aria-valuenow`,Oa.width)}),R(`pointerdown`,T,s),R(`pointermove`,T,c),R(`pointerup`,T,l),Br(`pointercancel`,T,l),Br(`lostpointercapture`,T,l),R(`keydown`,T,d),R(`click`,T,u),B(e,f),O()}Vr([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var zs=z(``);function Bs(e,t){D(t,!0);let n=K(t,`label`,3,`Close`),r=K(t,`class`,3,``),i=K(t,`iconClass`,3,`table-icon-svg`),a=K(t,`disabled`,3,!1),o=K(t,`el`,15,null);var s=zs();q(N(s),{get icon(){return zo},get class(){return i()}}),E(s),ha(s,e=>o(e),()=>o()),I(()=>{W(s,1,Pi([`dialog-close-btn`,r()]),`svelte-11l1bb5`),G(s,`aria-label`,n()),s.disabled=a()}),R(`click`,s,function(...e){t.onclick?.apply(this,e)}),B(e,s),O()}Vr([`click`]);function Vs(e){return t=>{let n=n=>{t.contains(n.target)||e()},r=t=>{t.key===`Escape`&&e()};return document.addEventListener(`click`,n,!0),window.addEventListener(`keydown`,r),()=>{document.removeEventListener(`click`,n,!0),window.removeEventListener(`keydown`,r)}}}function Hs(e=`[data-modal-autofocus]`){return t=>{let n=t.querySelector(e);n&&typeof n.focus==`function`&&n.focus()}}var Us=z(`
        `,1);function Ws(e,t){D(t,!0);let n=K(t,`open`,3,!1),r=K(t,`variant`,3,`editor`),i=K(t,`closeOnBackdrop`,3,!0),a=k(()=>r()===`auth`?`auth-dialog-backdrop`:`editor-modal-backdrop`),o=k(()=>r()===`auth`?`auth-dialog-shell`:`editor-modal-shell`);kn(()=>{if(!n())return;let e=Tr(()=>ka.opened()),r=n=>{n.key===`Escape`&&ka.isTop(e)&&t.onclose?.()};return window.addEventListener(`keydown`,r),()=>{ka.closed(e),window.removeEventListener(`keydown`,r)}});function s(e){i()&&e.target===e.currentTarget&&t.onclose?.()}var c=Zr(),l=P(c),u=e=>{var n=Us(),r=P(n),i=F(r,2);hi(N(i),()=>t.children??f),E(i),ji(i,Hs),I(()=>{W(r,1,Pi(L(a)),`svelte-17e0w4c`),W(i,1,Pi(L(o)),`svelte-17e0w4c`)}),R(`click`,i,s),B(e,n)};H(l,e=>{n()&&e(u)}),B(e,c),O()}Vr([`click`]);var Gs=z(`
        or use an API key
        `,1),Ks=z(``),qs=z(``);function Js(e,t){D(t,!0),Ws(e,{get open(){return J.dialogOpen},variant:`auth`,onclose:()=>J.closeDialog(),children:(e,t)=>{var n=qs(),r=N(n),i=N(r),a=N(i),o=N(a,!0);E(a),E(i),Bs(F(i,2),{label:`Close authentication dialog`,onclick:()=>J.closeDialog(),class:`auth-dialog-close`,iconClass:``}),E(r);var s=F(r,2),c=N(s),l=e=>{var t=Gs(),n=P(t);q(N(n),{get icon(){return ro}}),He(2),E(n),He(2),I(e=>G(n,`href`,e),[()=>ns(Wo(J.externalLoginURL))]),R(`click`,n,()=>J.selectExternalAuthentication()),B(e,t)};H(c,e=>{J.externalLoginURL&&e(l)});var u=F(c,2),d=N(u);q(d,{get icon(){return oo},class:`auth-dialog-input-icon`});var f=F(d,2);ta(f),E(u);var p=F(u,2),m=e=>{var t=Ks(),n=N(t,!0);E(t),I(()=>V(n,J.authErrorMessage||`Enter a valid API key to continue.`)),B(e,t)};H(p,e=>{J.authError&&e(m)});var h=F(p,4),g=N(h),_=N(g);q(_,{get icon(){return Ha},class:`auth-dialog-submit-icon`});var v=F(_,2),y=N(v,!0);E(v),E(g),E(h),E(s),E(n),I(()=>{V(o,J.needsAuth?`Dashboard locked`:`Change API key`),V(y,J.needsAuth?`Unlock dashboard`:`Save API key`)}),Br(`submit`,s,e=>{e.preventDefault(),J.submit()}),ua(f,()=>J.apiKey,e=>J.apiKey=e),B(e,n)},$$slots:{default:!0}}),O()}Vr([`click`]);function Ys(){return{open:!1,title:``,titleId:`typedConfirmationDialogTitle`,inputId:`typed-confirmation-input`,message:``,requiredText:``,value:``,confirmLabel:`Confirm`,icon:No,dialogClass:``,loading:!1,onConfirm:null,onClose:null}}var Xs=new class{#e=A(M(Ys()));get state(){return L(this.#e)}set state(e){j(this.#e,e,!0)}#t=A(``);get error(){return L(this.#t)}set error(e){j(this.#t,e,!0)}open(e){this.error=``,this.state={...Ys(),open:!0,...e||{}}}close(){let e=this.state;typeof e.onClose==`function`&&e.onClose(),this.state=Ys(),this.error=``}ready(){return String(this.state.value||``).trim().toLowerCase()===String(this.state.requiredText||``).trim().toLowerCase()}inputLabel(){return`Type `+String(this.state.requiredText||``).trim()+` to confirm`}async submit(){if(!this.ready()){this.error=this.inputLabel()+`.`;return}if(typeof this.state.onConfirm==`function`){this.state.loading=!0;try{await this.state.onConfirm()}finally{this.state.loading=!1}}}},Zs=z(`

        `),Qs=z(``),$s=z(`

        `);function ec(e,t){D(t,!0);let n=k(()=>Xs.state);Ws(e,{get open(){return L(n).open},variant:`auth`,onclose:()=>Xs.close(),children:(e,t)=>{var r=$s(),i=N(r),a=N(i),o=N(a,!0);E(a),Bs(F(a,2),{label:`Close confirmation dialog`,onclick:()=>Xs.close(),class:`auth-dialog-close`,iconClass:``}),E(i);var s=F(i,2),c=N(s),l=e=>{var t=Zs(),r=N(t,!0);E(t),I(()=>V(r,L(n).message)),B(e,t)};H(c,e=>{L(n).message&&e(l)});var u=F(c,2),d=N(u),f=N(d,!0);E(d);var p=F(d,2);ta(p),E(u);var m=F(u,2),h=e=>{var t=Qs(),n=N(t,!0);E(t),I(()=>V(n,Xs.error)),B(e,t)};H(m,e=>{Xs.error&&e(h)});var g=F(m,2),_=N(g),v=F(_,2),y=N(v);q(y,{get icon(){return L(n).icon},class:`form-action-icon`});var b=F(y,2),x=N(b,!0);E(b),E(v),E(g),E(s),E(r),I((e,t)=>{W(r,1,`auth-dialog ${L(n).dialogClass??``}`),G(r,`aria-labelledby`,L(n).titleId),G(a,`id`,L(n).titleId),V(o,L(n).title),G(d,`for`,L(n).inputId),V(f,e),G(p,`id`,L(n).inputId),v.disabled=t,V(x,L(n).confirmLabel)},[()=>Xs.inputLabel(),()=>L(n).loading||!Xs.ready()]),Br(`submit`,s,e=>{e.preventDefault(),Xs.submit()}),ua(p,()=>Xs.state.value,e=>Xs.state.value=e),R(`click`,_,()=>Xs.close()),B(e,r)},$$slots:{default:!0}}),O()}Vr([`click`]);var tc=e=>e;function nc(e){let t=e-1;return t*t*t+1}function rc(e){let t=typeof e==`string`&&e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);return t?[parseFloat(t[1]),t[2]||`px`]:[e,`px`]}function ic(e,{delay:t=0,duration:n=400,easing:r=tc}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function ac(e,{delay:t=0,duration:n=400,easing:r=nc,x:i=0,y:a=0,opacity:o=0}={}){let s=getComputedStyle(e),c=+s.opacity,l=s.transform===`none`?``:s.transform,u=c*(1-o),[d,f]=rc(i),[p,m]=rc(a);return{delay:t,duration:n,easing:r,css:(e,t)=>` + transform: ${l} translate(${(1-e)*d}${f}, ${(1-e)*p}${m}); + opacity: ${c-u*t}`}}function oc(e,{delay:t=0,duration:n=400,easing:r=nc,axis:i=`y`}={}){let a=getComputedStyle(e),o=+a.opacity,s=i===`y`?`height`:`width`,c=parseFloat(a[s]),l=i===`y`?[`top`,`bottom`]:[`left`,`right`],u=l.map(e=>`${e[0].toUpperCase()}${e.slice(1)}`),d=parseFloat(a[`padding${u[0]}`]),f=parseFloat(a[`padding${u[1]}`]),p=parseFloat(a[`margin${u[0]}`]),m=parseFloat(a[`margin${u[1]}`]),h=parseFloat(a[`border${u[0]}Width`]),g=parseFloat(a[`border${u[1]}Width`]);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(e*20,1)*o};${s}: ${e*c}px;padding-${l[0]}: ${e*d}px;padding-${l[1]}: ${e*f}px;margin-${l[0]}: ${e*p}px;margin-${l[1]}: ${e*m}px;border-${l[0]}-width: ${e*h}px;border-${l[1]}-width: ${e*g}px;min-${s}: 0`}}function sc(e){return--e*e*(2.70158*e+1.70158)+1}function cc(e){let t=e-1;return t*t*t+1}var lc=5e3,uc=8e3,dc=new class{#e=A(M([]));get toasts(){return L(this.#e)}set toasts(e){j(this.#e,e,!0)}#t=0;#n=new Map;success(e){this.#r(`success`,e,lc)}error(e){this.#r(`error`,e,uc)}dismiss(e){let t=this.#n.get(e);t&&(clearTimeout(t),this.#n.delete(e)),this.toasts=this.toasts.filter(t=>t.id!==e)}#r(e,t,n){let r=String(t||``).trim();if(!r)return;let i=this.toasts.find(t=>t.kind===e&&t.text===r);i&&this.dismiss(i.id);let a=++this.#t;this.toasts=[...this.toasts,{id:a,kind:e,text:r}],this.#n.set(a,setTimeout(()=>this.dismiss(a),n))}},fc=z(`
        `),pc=z(`
        `);function mc(e,t){D(t,!0);var n=pc();U(n,21,()=>dc.toasts,e=>e.id,(e,t)=>{var n=fc();let r;var i=N(n),a=N(i,!0);E(i);var o=F(i,2);E(n),I(()=>{r=W(n,1,`flash-toast svelte-1i257xg`,null,r,{"flash-toast-success":L(t).kind===`success`,"flash-toast-error":L(t).kind===`error`}),G(n,`role`,L(t).kind===`error`?`alert`:`status`),G(n,`aria-live`,L(t).kind===`error`?`assertive`:`polite`),V(a,L(t).text)}),R(`click`,o,()=>dc.dismiss(L(t).id)),Oi(1,n,()=>ac,()=>({y:-24,duration:360,easing:sc})),Oi(2,n,()=>ic,()=>({duration:150})),B(e,n)}),E(n),B(e,n),O()}Vr([`click`]);var hc=z(``);function gc(e,t){D(t,!0);var n=Zr(),r=P(n),i=e=>{B(e,hc())},a=k(()=>qo());H(r,e=>{L(a)&&e(i)}),B(e,n),O()}function _c(e){return String(e||``).split(`,`).map(e=>e.trim()).filter(e=>e)}function vc(e){if(e==null||e===``)return`Not captured`;if(typeof e==`string`){let t=e.trim();if(t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`))try{return JSON.stringify(JSON.parse(t),null,2)}catch{return e}return e}try{return JSON.stringify(e,null,2)}catch{return String(e)}}function yc(e){return e==null||e===void 0?`-`:e.toLocaleString()}function bc(e){if(e==null)return`---`;let t=Number(e);return Number.isFinite(t)?t>0&&t<1e-4?`<$0.0001`:`$`+t.toFixed(4).replace(/(\.\d{2}\d*?)0+$/,`$1`):`---`}function xc(e){return e==null||e===void 0?`—`:`$`+e.toFixed(2)}function Sc(e){return e==null||e===void 0?`—`:e<.01?`$`+e.toFixed(6):`$`+e.toFixed(4)}function Cc(e){if(e==null||e===``)return`-`;let t=Number(e);if(!Number.isFinite(t))return`-`;let n=Math.abs(t),r=[{threshold:1e9,suffix:`B`},{threshold:1e6,suffix:`M`},{threshold:1e3,suffix:`K`}];for(let e=0;e=i.threshold){let n=t/i.threshold;return Math.abs(Number(n.toFixed(1)))>=1e3&&e>0&&(i=r[e-1],n=t/i.threshold),n.toFixed(1).replace(/\.0$/,``)+i.suffix}}return String(t)}function wc(e,t){let n=t==null||t===``?NaN:Number(t),r=Number.isFinite(n)?yc(n):`-`;return String(e||`Tokens`)+`: `+r}function Tc(e){return e?typeof e==`string`?e:e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`):``}function Ec(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.getUTCFullYear()+`-`+String(t.getUTCMonth()+1).padStart(2,`0`)+`-`+String(t.getUTCDate()).padStart(2,`0`)}function Dc(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.getUTCFullYear()+`-`+String(t.getUTCMonth()+1).padStart(2,`0`)+`-`+String(t.getUTCDate()).padStart(2,`0`)+` `+String(t.getUTCHours()).padStart(2,`0`)+`:`+String(t.getUTCMinutes()).padStart(2,`0`)+`:`+String(t.getUTCSeconds()).padStart(2,`0`)+` UTC`}function Oc(e){return String(e&&e.provider||``).trim()}function kc(e){return String(e&&e.provider_name||``).trim()||Oc(e)}function Ac(e,t){let n=String(t||``).trim();if(!n)return`-`;let r=kc(e);return!r||n===r||n.startsWith(r+`/`)?n:r+`/`+n}function jc(e){return Ac(e,e&&e.model)}function Mc(e){return Ac(e,e&&e.resolved_model)}function Nc(e){let t=String(e&&(e.requested_model||e.model)||``).trim();if(!e)return t;let n=String(e.data&&e.data.failover&&e.data.failover.target_model||``).trim();if(n&&n!==t)return t+` ⮕ `+n;if(e.alias_used&&e.resolved_model){let n=Mc(e);if(n&&n!==`-`&&n!==t)return t+` ⮕ `+n}return t}var Pc=`gomodel_date_range`,Fc=1;function Ic(e){return/^[1-9]\d*$/.test(String(e??``))}var Lc=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function Rc({selectedPreset:e,startKey:t,endKey:n,followsToday:r}){return e&&Ic(e)?{v:Fc,mode:`preset`,days:String(e)}:e?null:us(t)&&us(n)?{v:Fc,mode:`custom`,start:t,end:n,follow:r===!0}:null}function zc(e){let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return null}return!t||typeof t!=`object`?null:t.mode===`preset`?Ic(t.days)?{mode:`preset`,days:String(t.days)}:null:t.mode===`custom`&&us(t.start)&&us(t.end)&&t.start<=t.end?{mode:`custom`,start:t.start,end:t.end,follow:t.follow===!0}:null}function Bc(e,t,n){let r=ds(e,t);return r<1||!us(n)?{start:e,end:t}:{start:ls(n,-(r-1)),end:n}}function Vc(e,t){if(e===t)return`Today`;let[n,r,i]=e.split(`-`);return Lc[Number(r)-1]+` `+Number(i)+`, `+n}function Hc({selectedPreset:e,startKey:t,endKey:n,followsToday:r,todayKey:i}){if(e)return`Last `+e+` days`;if(!us(t)||!us(n))return``;let a=ds(t,n);return r||n===i?a===1?`Today`:`Last `+a+` days`:a===1?`1 day`:a+` days`}function Uc({selectedPreset:e,startKey:t,endKey:n,todayKey:r}){if(e)return`Last `+e+` days`;let i=e=>Vc(e,r);return us(t)&&us(n)?t===n?i(t):i(t)+` – `+i(n):us(t)?i(t)+` – ...`:`Last 30 days`}var Wc=6e4,Gc=new class{#e=A(M(`30`));get days(){return L(this.#e)}set days(e){j(this.#e,e,!0)}#t=A(M(`30`));get selectedPreset(){return L(this.#t)}set selectedPreset(e){j(this.#t,e,!0)}#n=A(null);get customStartDate(){return L(this.#n)}set customStartDate(e){j(this.#n,e,!0)}#r=A(null);get customEndDate(){return L(this.#r)}set customEndDate(e){j(this.#r,e,!0)}#i=A(!1);get followsToday(){return L(this.#i)}set followsToday(e){j(this.#i,e,!0)}#a=A(`daily`);get interval(){return L(this.#a)}set interval(e){j(this.#a,e,!0)}#o=A(0);get syncTick(){return L(this.#o)}set syncTick(e){j(this.#o,e,!0)}init(){this.restore(),this.syncToToday(),typeof setInterval==`function`&&setInterval(()=>this.syncToToday(),Wc)}queryStr(){return this.customStartDate&&this.customEndDate?`start_date=`+Tc(this.customStartDate)+`&end_date=`+Tc(this.customEndDate):`days=`+this.days}selectPreset(e){this.selectedPreset=e,this.customStartDate=null,this.customEndDate=null,this.followsToday=!1,this.days=e,this.persist()}selectStart(e){this.selectedPreset=null,this.customStartDate=e,this.customEndDate&&this.customEndDatet.category===e);return t?t.count:0}get filteredModels(){if(!this.filter)return this.models;let e=this.filter.toLowerCase();return this.models.filter(t=>(t.model?.id??``).toLowerCase().includes(e)||(t.provider_name??``).toLowerCase().includes(e)||(t.provider_type??``).toLowerCase().includes(e)||(t.selector??``).toLowerCase().includes(e)||(t.model?.owned_by??``).toLowerCase().includes(e)||(t.model?.metadata?.modes??[]).join(`,`).toLowerCase().includes(e)||(t.model?.metadata?.categories??[]).join(`,`).toLowerCase().includes(e))}},qc=z(``);function Jc(e,t){D(t,!0);var n=Zr(),r=P(n),i=e=>{var t=qc(),n=F(N(t),2);E(t),R(`click`,n,()=>J.openDialog()),B(e,t)};H(r,e=>{J.authError&&e(i)}),B(e,n),O()}Vr([`click`]);function Yc(){return{total_requests:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,total_input_cost:null,total_output_cost:null,total_cost:null}}function Xc(){return{summary:{total_hits:0,exact_hits:0,semantic_hits:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,total_saved_cost:null},daily:[]}}var Zc=new class{#e=A(M(Yc()));get summary(){return L(this.#e)}set summary(e){j(this.#e,e,!0)}#t=A(M([]));get daily(){return L(this.#t)}set daily(e){j(this.#t,e,!0)}#n=A(M(Xc()));get cacheOverview(){return L(this.#n)}set cacheOverview(e){j(this.#n,e,!0)}#r=A(!1);get loading(){return L(this.#r)}set loading(e){j(this.#r,e,!0)}#i=null;#a=null;cacheAnalyticsEnabled(){return js.cacheVisible()}async fetchUsage(){this.#i&&this.#i.abort();let e=new AbortController;this.#i=e,this.loading=!0;try{let t=Gc.queryStr()+`&interval=`+Gc.interval,[n,r]=await Promise.all([Es(`/admin/usage/summary?`+t,{label:`usage summary`,signal:e.signal}),Es(`/admin/usage/daily?`+t,{label:`usage daily`,signal:e.signal})]);if(n.stale||r.stale||e.signal.aborted)return;if(!n.ok||!r.ok){this.summary=Yc(),this.daily=[],this.cacheOverview=Xc();return}this.summary=n.data||Yc(),this.daily=Array.isArray(r.data)?r.data:[]}catch(e){if(Os(e))return;console.error(`Failed to fetch usage:`,e),this.summary=Yc(),this.daily=[]}finally{this.#i===e&&(this.#i=null,this.loading=!1)}}async fetchCacheOverview(e=``){if(await js.ensureLoaded(),!this.cacheAnalyticsEnabled()){this.cacheOverview=Xc();return}this.#a&&this.#a.abort();let t=new AbortController;this.#a=t;try{let n=await Es(`/admin/cache/overview?`+(Gc.queryStr()+`&interval=`+Gc.interval+e),{label:`cache overview`,signal:t.signal});if(n.stale||t.signal.aborted)return;if(!n.ok){this.cacheOverview=Xc();return}let r=n.data&&typeof n.data==`object`?n.data:Xc();r.summary||=Xc().summary,Array.isArray(r.daily)||(r.daily=[]),this.cacheOverview=r}catch(e){if(Os(e))return;console.error(`Failed to fetch cache overview:`,e),this.cacheOverview=Xc()}finally{this.#a===t&&(this.#a=null)}}},Qc=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`];function $c(e,t){let n=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1));return Qc[n.getUTCMonth()]+` `+n.getUTCFullYear()}function el(e,t,n){let r=e.getUTCFullYear(),i=e.getUTCMonth()+t,a=new Date(Date.UTC(r,i,1)),o=new Date(Date.UTC(r,i+1,0)),s=(a.getUTCDay()+6)%7,c=[],l=new Date(Date.UTC(r,i,0));for(let e=s-1;e>=0;e--){let t=l.getUTCDate()-e,a=new Date(Date.UTC(r,i-1,t));c.push({day:t,date:a,current:!1,key:`p-`+n(a)})}for(let e=1;e<=o.getUTCDate();e++){let t=new Date(Date.UTC(r,i,e));c.push({day:e,date:t,current:!0,key:`c-`+n(t)})}let u=42-c.length;for(let e=1;e<=u;e++){let t=new Date(Date.UTC(r,i+1,e));c.push({day:e,date:t,current:!1,key:`n-`+n(t)})}return c}function tl(e,t,n){let r=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1));return n&&r.getTime()>n.getTime()?e:r}function nl(e,t){return e.getUTCFullYear()===t.getUTCFullYear()&&e.getUTCMonth()===t.getUTCMonth()}var rl=z(``),il=z(``),al=z(``),ol=z(`
        MoTuWeThFrSaSu
        `);function sl(e,t){D(t,!0);let n=K(t,`offset`,3,0),r=k(()=>el(t.calendarMonth,n(),e=>bs.dateToDateKey(e))),i=k(()=>nl(t.calendarMonth,bs.todayDate())),a=e=>bs.dateToDateKey(e.date),o=e=>a(e)>bs.currentDateKey(),s=e=>e.current&&a(e)===bs.currentDateKey();function c(e,t){let n=t===`start`?Gc.rangeStart():Gc.rangeEnd();return e.current&&!!n&&a(e)===bs.dateToDateKey(n)}function l(e){let t=Gc.rangeStart(),n=Gc.rangeEnd();return!e.current||!t||!n?!1:a(e)>=bs.dateToDateKey(t)&&a(e)<=bs.dateToDateKey(n)}var u=ol(),d=N(u),f=N(d);let p;var m=F(f,2),h=N(m,!0);E(m);var g=F(m,2),_=e=>{B(e,rl())},v=e=>{var n=il();I(()=>n.disabled=L(i)),R(`click`,n,function(...e){t.onnext?.apply(this,e)}),B(e,n)};H(g,e=>{n()===-1?e(_):e(v,-1)}),E(d);var y=F(d,4);U(y,21,()=>L(r),e=>e.key,(e,n)=>{var r=al(),i=N(r,!0);E(r),I((e,t)=>{W(r,1,e,`svelte-g7ga4u`),r.disabled=t,V(i,L(n).day)},[()=>Pi([`dp-day`,{"other-month":!L(n).current,today:s(L(n)),"range-start":c(L(n),`start`),"range-end":c(L(n),`end`),"in-range":l(L(n)),disabled:o(L(n))}]),()=>o(L(n))||!L(n).current]),R(`click`,r,()=>t.onselect?.(L(n))),B(e,r)}),E(y),E(u),I(e=>{p=W(f,1,`dp-nav-btn svelte-g7ga4u`,null,p,{"dp-nav-prev-mobile":n()!==-1}),V(h,e)},[()=>$c(t.calendarMonth,n())]),R(`click`,f,function(...e){t.onprev?.apply(this,e)}),B(e,u),O()}Vr([`click`]);var cl=z(``),ll=z(`
        `),ul=Yr(``),dl=Yr(``),fl=z(`
        `),pl=z(`
        `);function ml(e,t){D(t,!0);let n=[`3`,`7`,`14`,`30`,`90`],r=A(!1),i=A(`start`),a=A(M(new Date)),o=A(M({show:!1,x:0,y:0}));function s(){j(r,!L(r)),L(r)&&(Gc.syncToToday(),j(a,bs.startOfMonthDate(Gc.customEndDate||bs.todayDate()),!0),j(i,`start`))}function c(){j(r,!1),j(o,{show:!1,x:0,y:0},!0)}let l=Gc.syncTick;kn(()=>{let e=Gc.syncTick;e!==l&&(l=e,t.onchange?.())});function u(e){Gc.selectPreset(e),j(i,`start`),t.onchange?.(),c()}let d=()=>j(a,tl(L(a),-1),!0),f=()=>j(a,tl(L(a),1,bs.startOfMonthDate(bs.todayDate())),!0);function p(e){let n=new Date(e.date);if(L(i)===`start`){Gc.selectStart(n),j(i,`end`),t.onchange?.();return}Gc.selectEnd(n),j(i,`start`),t.onchange?.(),c()}var m=pl(),h=N(m),g=F(N(h),2),_=N(g,!0);E(g);var v=F(g,2);let y;E(h);var b=F(h,2),x=e=>{var t=ll(),r=N(t);U(r,20,()=>n,e=>e,(e,t)=>{var n=cl();let r;var i=N(n);E(n),I(()=>{r=W(n,1,`preset-btn svelte-ax7ma4`,null,r,{active:Gc.selectedPreset===t}),V(i,`Last ${t??``} days`)}),R(`click`,n,()=>u(t)),B(e,n)}),E(r);var i=F(r,2);U(i,20,()=>[-1,0],e=>e,(e,t)=>{sl(e,{get calendarMonth(){return L(a)},get offset(){return t},onprev:d,onnext:f,onselect:p})}),E(i),E(t),R(`mousemove`,i,e=>j(o,{show:!0,x:e.clientX,y:e.clientY},!0)),Br(`mouseleave`,i,()=>j(o,{show:!1,x:0,y:0},!0)),B(e,t)};H(b,e=>{L(r)&&e(x)});var S=F(b,2),C=e=>{var t=fl(),n=N(t),r=e=>{B(e,ul())},a=e=>{B(e,dl())};H(n,e=>{L(i)===`start`?e(r):e(a,-1)});var s=F(n,2),c=N(s,!0);E(s),E(t),I(()=>{Vi(t,`left:${L(o).x??``}px;top:${L(o).y??``}px`),V(c,L(i)===`end`?`Select end date`:`Select start date`)}),B(e,t)};H(S,e=>{L(o).show&&e(C)}),E(m),ji(m,()=>L(r)?Vs(c):void 0),I((e,t)=>{G(h,`title`,e),V(_,t),y=W(v,0,`date-picker-chevron svelte-ax7ma4`,null,y,{open:L(r)})},[()=>Gc.dateRangeSpanLabel(),()=>Gc.dateRangeLabel()]),R(`click`,h,s),B(e,m),O()}Vr([`click`,`mousemove`]);function hl(e){return e+.5|0}var gl=(e,t,n)=>Math.max(Math.min(e,n),t);function _l(e){return gl(hl(e*2.55),0,255)}function vl(e){return gl(hl(e*255),0,255)}function yl(e){return gl(hl(e/2.55)/100,0,1)}function bl(e){return gl(hl(e*100),0,100)}var xl={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Sl=[...`0123456789ABCDEF`],Cl=e=>Sl[e&15],wl=e=>Sl[(e&240)>>4]+Sl[e&15],Tl=e=>(e&240)>>4==(e&15),El=e=>Tl(e.r)&&Tl(e.g)&&Tl(e.b)&&Tl(e.a);function Dl(e){var t=e.length,n;return e[0]===`#`&&(t===4||t===5?n={r:255&xl[e[1]]*17,g:255&xl[e[2]]*17,b:255&xl[e[3]]*17,a:t===5?xl[e[4]]*17:255}:(t===7||t===9)&&(n={r:xl[e[1]]<<4|xl[e[2]],g:xl[e[3]]<<4|xl[e[4]],b:xl[e[5]]<<4|xl[e[6]],a:t===9?xl[e[7]]<<4|xl[e[8]]:255})),n}var Ol=(e,t)=>e<255?t(e):``;function kl(e){var t=El(e)?Cl:wl;return e?`#`+t(e.r)+t(e.g)+t(e.b)+Ol(e.a,t):void 0}var Al=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function jl(e,t,n){let r=t*Math.min(n,1-n),i=(t,i=(t+e/30)%12)=>n-r*Math.max(Math.min(i-3,9-i,1),-1);return[i(0),i(8),i(4)]}function Ml(e,t,n){let r=(r,i=(r+e/60)%6)=>n-n*t*Math.max(Math.min(i,4-i,1),0);return[r(5),r(3),r(1)]}function Nl(e,t,n){let r=jl(e,1,.5),i;for(t+n>1&&(i=1/(t+n),t*=i,n*=i),i=0;i<3;i++)r[i]*=1-t-n,r[i]+=t;return r}function Pl(e,t,n,r,i){return e===i?(t-n)/r+(t.5?l/(2-i-a):l/(i+a),s=Pl(t,n,r,l,i),s=s*60+.5),[s|0,c||0,o]}function Il(e,t,n,r){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,r)).map(vl)}function Ll(e,t,n){return Il(jl,e,t,n)}function Rl(e,t,n){return Il(Nl,e,t,n)}function zl(e,t,n){return Il(Ml,e,t,n)}function Bl(e){return(e%360+360)%360}function Vl(e){let t=Al.exec(e),n=255,r;if(!t)return;t[5]!==r&&(n=t[6]?_l(+t[5]):vl(+t[5]));let i=Bl(+t[2]),a=t[3]/100,o=t[4]/100;return r=t[1]===`hwb`?Rl(i,a,o):t[1]===`hsv`?zl(i,a,o):Ll(i,a,o),{r:r[0],g:r[1],b:r[2],a:n}}function Hl(e,t){var n=Fl(e);n[0]=Bl(n[0]+t),n=Ll(n),e.r=n[0],e.g=n[1],e.b=n[2]}function Ul(e){if(!e)return;let t=Fl(e),n=t[0],r=bl(t[1]),i=bl(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${i}%, ${yl(e.a)})`:`hsl(${n}, ${r}%, ${i}%)`}var Wl={x:`dark`,Z:`light`,Y:`re`,X:`blu`,W:`gr`,V:`medium`,U:`slate`,A:`ee`,T:`ol`,S:`or`,B:`ra`,C:`lateg`,D:`ights`,R:`in`,Q:`turquois`,E:`hi`,P:`ro`,O:`al`,N:`le`,M:`de`,L:`yello`,F:`en`,K:`ch`,G:`arks`,H:`ea`,I:`ightg`,J:`wh`},Gl={OiceXe:`f0f8ff`,antiquewEte:`faebd7`,aqua:`ffff`,aquamarRe:`7fffd4`,azuY:`f0ffff`,beige:`f5f5dc`,bisque:`ffe4c4`,black:`0`,blanKedOmond:`ffebcd`,Xe:`ff`,XeviTet:`8a2be2`,bPwn:`a52a2a`,burlywood:`deb887`,caMtXe:`5f9ea0`,KartYuse:`7fff00`,KocTate:`d2691e`,cSO:`ff7f50`,cSnflowerXe:`6495ed`,cSnsilk:`fff8dc`,crimson:`dc143c`,cyan:`ffff`,xXe:`8b`,xcyan:`8b8b`,xgTMnPd:`b8860b`,xWay:`a9a9a9`,xgYF:`6400`,xgYy:`a9a9a9`,xkhaki:`bdb76b`,xmagFta:`8b008b`,xTivegYF:`556b2f`,xSange:`ff8c00`,xScEd:`9932cc`,xYd:`8b0000`,xsOmon:`e9967a`,xsHgYF:`8fbc8f`,xUXe:`483d8b`,xUWay:`2f4f4f`,xUgYy:`2f4f4f`,xQe:`ced1`,xviTet:`9400d3`,dAppRk:`ff1493`,dApskyXe:`bfff`,dimWay:`696969`,dimgYy:`696969`,dodgerXe:`1e90ff`,fiYbrick:`b22222`,flSOwEte:`fffaf0`,foYstWAn:`228b22`,fuKsia:`ff00ff`,gaRsbSo:`dcdcdc`,ghostwEte:`f8f8ff`,gTd:`ffd700`,gTMnPd:`daa520`,Way:`808080`,gYF:`8000`,gYFLw:`adff2f`,gYy:`808080`,honeyMw:`f0fff0`,hotpRk:`ff69b4`,RdianYd:`cd5c5c`,Rdigo:`4b0082`,ivSy:`fffff0`,khaki:`f0e68c`,lavFMr:`e6e6fa`,lavFMrXsh:`fff0f5`,lawngYF:`7cfc00`,NmoncEffon:`fffacd`,ZXe:`add8e6`,ZcSO:`f08080`,Zcyan:`e0ffff`,ZgTMnPdLw:`fafad2`,ZWay:`d3d3d3`,ZgYF:`90ee90`,ZgYy:`d3d3d3`,ZpRk:`ffb6c1`,ZsOmon:`ffa07a`,ZsHgYF:`20b2aa`,ZskyXe:`87cefa`,ZUWay:`778899`,ZUgYy:`778899`,ZstAlXe:`b0c4de`,ZLw:`ffffe0`,lime:`ff00`,limegYF:`32cd32`,lRF:`faf0e6`,magFta:`ff00ff`,maPon:`800000`,VaquamarRe:`66cdaa`,VXe:`cd`,VScEd:`ba55d3`,VpurpN:`9370db`,VsHgYF:`3cb371`,VUXe:`7b68ee`,VsprRggYF:`fa9a`,VQe:`48d1cc`,VviTetYd:`c71585`,midnightXe:`191970`,mRtcYam:`f5fffa`,mistyPse:`ffe4e1`,moccasR:`ffe4b5`,navajowEte:`ffdead`,navy:`80`,Tdlace:`fdf5e6`,Tive:`808000`,TivedBb:`6b8e23`,Sange:`ffa500`,SangeYd:`ff4500`,ScEd:`da70d6`,pOegTMnPd:`eee8aa`,pOegYF:`98fb98`,pOeQe:`afeeee`,pOeviTetYd:`db7093`,papayawEp:`ffefd5`,pHKpuff:`ffdab9`,peru:`cd853f`,pRk:`ffc0cb`,plum:`dda0dd`,powMrXe:`b0e0e6`,purpN:`800080`,YbeccapurpN:`663399`,Yd:`ff0000`,Psybrown:`bc8f8f`,PyOXe:`4169e1`,saddNbPwn:`8b4513`,sOmon:`fa8072`,sandybPwn:`f4a460`,sHgYF:`2e8b57`,sHshell:`fff5ee`,siFna:`a0522d`,silver:`c0c0c0`,skyXe:`87ceeb`,UXe:`6a5acd`,UWay:`708090`,UgYy:`708090`,snow:`fffafa`,sprRggYF:`ff7f`,stAlXe:`4682b4`,tan:`d2b48c`,teO:`8080`,tEstN:`d8bfd8`,tomato:`ff6347`,Qe:`40e0d0`,viTet:`ee82ee`,JHt:`f5deb3`,wEte:`ffffff`,wEtesmoke:`f5f5f5`,Lw:`ffff00`,LwgYF:`9acd32`};function Kl(){let e={},t=Object.keys(Gl),n=Object.keys(Wl),r,i,a,o,s;for(r=0;r>16&255,a>>8&255,a&255]}return e}var ql;function Jl(e){ql||(ql=Kl(),ql.transparent=[0,0,0,0]);let t=ql[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var Yl=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Xl(e){let t=Yl.exec(e),n=255,r,i,a;if(t){if(t[7]!==r){let e=+t[7];n=t[8]?_l(e):gl(e*255,0,255)}return r=+t[1],i=+t[3],a=+t[5],r=255&(t[2]?_l(r):gl(r,0,255)),i=255&(t[4]?_l(i):gl(i,0,255)),a=255&(t[6]?_l(a):gl(a,0,255)),{r,g:i,b:a,a:n}}}function Zl(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${yl(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}var Ql=e=>e<=.0031308?e*12.92:e**(1/2.4)*1.055-.055,$l=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function eu(e,t,n){let r=$l(yl(e.r)),i=$l(yl(e.g)),a=$l(yl(e.b));return{r:vl(Ql(r+n*($l(yl(t.r))-r))),g:vl(Ql(i+n*($l(yl(t.g))-i))),b:vl(Ql(a+n*($l(yl(t.b))-a))),a:e.a+n*(t.a-e.a)}}function tu(e,t,n){if(e){let r=Fl(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,t===0?360:1)),r=Ll(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function nu(e,t){return e&&Object.assign(t||{},e)}function ru(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=vl(e[3]))):(t=nu(e,{r:0,g:0,b:0,a:1}),t.a=vl(t.a)),t}function iu(e){return e.charAt(0)===`r`?Xl(e):Vl(e)}var au=class e{constructor(t){if(t instanceof e)return t;let n=typeof t,r;n===`object`?r=ru(t):n===`string`&&(r=Dl(t)||Jl(t)||iu(t)),this._rgb=r,this._valid=!!r}get valid(){return this._valid}get rgb(){var e=nu(this._rgb);return e&&(e.a=yl(e.a)),e}set rgb(e){this._rgb=ru(e)}rgbString(){return this._valid?Zl(this._rgb):void 0}hexString(){return this._valid?kl(this._rgb):void 0}hslString(){return this._valid?Ul(this._rgb):void 0}mix(e,t){if(e){let n=this.rgb,r=e.rgb,i,a=t===i?.5:t,o=2*a-1,s=n.a-r.a,c=((o*s===-1?o:(o+s)/(1+o*s))+1)/2;i=1-c,n.r=255&c*n.r+i*r.r+.5,n.g=255&c*n.g+i*r.g+.5,n.b=255&c*n.b+i*r.b+.5,n.a=a*n.a+(1-a)*r.a,this.rgb=n}return this}interpolate(e,t){return e&&(this._rgb=eu(this._rgb,e._rgb,t)),this}clone(){return new e(this.rgb)}alpha(e){return this._rgb.a=vl(e),this}clearer(e){let t=this._rgb;return t.a*=1-e,this}greyscale(){let e=this._rgb;return e.r=e.g=e.b=hl(e.r*.3+e.g*.59+e.b*.11),this}opaquer(e){let t=this._rgb;return t.a*=1+e,this}negate(){let e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return tu(this._rgb,2,e),this}darken(e){return tu(this._rgb,2,-e),this}saturate(e){return tu(this._rgb,1,e),this}desaturate(e){return tu(this._rgb,1,-e),this}rotate(e){return Hl(this._rgb,e),this}};function ou(){}var su=(()=>{let e=0;return()=>e++})();function cu(e){return e==null}function lu(e){if(Array.isArray&&Array.isArray(e))return!0;let t=Object.prototype.toString.call(e);return t.slice(0,7)===`[object`&&t.slice(-6)===`Array]`}function uu(e){return e!==null&&Object.prototype.toString.call(e)===`[object Object]`}function du(e){return(typeof e==`number`||e instanceof Number)&&isFinite(+e)}function fu(e,t){return du(e)?e:t}function pu(e,t){return e===void 0?t:e}var mu=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100:+e/t,hu=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100*t:+e;function gu(e,t,n){if(e&&typeof e.call==`function`)return e.apply(n,t)}function _u(e,t,n,r){let i,a,o;if(lu(e))if(a=e.length,r)for(i=a-1;i>=0;i--)t.call(n,e[i],i);else for(i=0;ie,x:e=>e.x,y:e=>e.y};function Eu(e){let t=e.split(`.`),n=[],r=``;for(let e of t)r+=e,r.endsWith(`\\`)?r=r.slice(0,-1)+`.`:(n.push(r),r=``);return n}function Du(e){let t=Eu(e);return e=>{for(let n of t){if(n===``)break;e&&=e[n]}return e}}function Ou(e,t){return(Tu[t]||(Tu[t]=Du(t)))(e)}function ku(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Au=e=>e!==void 0,ju=e=>typeof e==`function`,Mu=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0};function Nu(e){return e.type===`mouseup`||e.type===`click`||e.type===`contextmenu`}var Pu=Math.PI,Fu=2*Pu,Iu=Fu+Pu,Lu=1/0,Ru=Pu/180,zu=Pu/2,Bu=Pu/4,Vu=Pu*2/3,Hu=Math.log10,Uu=Math.sign;function Wu(e,t,n){return Math.abs(e-t)e-t).pop(),t}function qu(e){return typeof e==`symbol`||typeof e==`object`&&!!e&&!(Symbol.toPrimitive in e||`toString`in e||`valueOf`in e)}function Ju(e){return!qu(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function Yu(e,t){let n=Math.round(e);return n-t<=e&&n+t>=e}function Xu(e,t,n){let r,i,a;for(r=0,i=e.length;rc&&l=Math.min(t,n)-r&&e<=Math.max(t,n)+r}function cd(e,t,n){n||=(n=>e[n]1;)a=i+r>>1,n(a)?i=a:r=a;return{lo:i,hi:r}}var ld=(e,t,n,r)=>cd(e,n,r?r=>{let i=e[r][t];return ie[r][t]cd(e,n,r=>e[r][t]>=n);function dd(e,t,n){let r=0,i=e.length;for(;rr&&e[i-1]>n;)i--;return r>0||i{let n=`_onData`+ku(t),r=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value(...t){let i=r.apply(this,t);return e._chartjs.listeners.forEach(e=>{typeof e[n]==`function`&&e[n](...t)}),i}})})}function md(e,t){let n=e._chartjs;if(!n)return;let r=n.listeners,i=r.indexOf(t);i!==-1&&r.splice(i,1),!(r.length>0)&&(fd.forEach(t=>{delete e[t]}),delete e._chartjs)}function hd(e){let t=new Set(e);return t.size===e.length?e:Array.from(t)}var gd=function(){return typeof window>`u`?function(e){return e()}:window.requestAnimationFrame}();function _d(e,t){let n=[],r=!1;return function(...i){n=i,r||(r=!0,gd.call(window,()=>{r=!1,e.apply(t,n)}))}}function vd(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}var yd=e=>e===`start`?`left`:e===`end`?`right`:`center`,bd=(e,t,n)=>e===`start`?t:e===`end`?n:(t+n)/2,xd=(e,t,n,r)=>e===(r?`left`:`right`)?n:e===`center`?(t+n)/2:t;function Sd(e,t,n){let r=t.length,i=0,a=r;if(e._sorted){let{iScale:o,vScale:s,_parsed:c}=e,l=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null,u=o.axis,{min:d,max:f,minDefined:p,maxDefined:m}=o.getUserBounds();if(p){if(i=Math.min(ld(c,u,d).lo,n?r:ld(t,u,o.getPixelForValue(d)).lo),l){let e=c.slice(0,i+1).reverse().findIndex(e=>!cu(e[s.axis]));i-=Math.max(0,e)}i=ad(i,0,r-1)}if(m){let e=Math.max(ld(c,o.axis,f,!0).hi+1,n?0:ld(t,u,o.getPixelForValue(f),!0).hi+1);if(l){let t=c.slice(e-1).findIndex(e=>!cu(e[s.axis]));e+=Math.max(0,t)}a=ad(e,i,r)-i}else a=r-i}return{start:i,count:a}}function Cd(e){let{xScale:t,yScale:n,_scaleRanges:r}=e,i={xmin:t.min,xmax:t.max,ymin:n.min,ymax:n.max};if(!r)return e._scaleRanges=i,!0;let a=r.xmin!==t.min||r.xmax!==t.max||r.ymin!==n.min||r.ymax!==n.max;return Object.assign(r,i),a}var wd=e=>e===0||e===1,Td=(e,t,n)=>-(2**(10*--e)*Math.sin((e-t)*Fu/n)),Ed=(e,t,n)=>2**(-10*e)*Math.sin((e-t)*Fu/n)+1,Dd={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-(--e*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>--e*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>-Math.cos(e*zu)+1,easeOutSine:e=>Math.sin(e*zu),easeInOutSine:e=>-.5*(Math.cos(Pu*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:-(2**(-10*e))+1,easeInOutExpo:e=>wd(e)?e:e<.5?.5*2**(10*(e*2-1)):.5*(-(2**(-10*(e*2-1)))+2),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1- --e*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>wd(e)?e:Td(e,.075,.3),easeOutElastic:e=>wd(e)?e:Ed(e,.075,.3),easeInOutElastic(e){let t=.1125,n=.45;return wd(e)?e:e<.5?.5*Td(e*2,t,n):.5+.5*Ed(e*2-1,t,n)},easeInBack(e){return e*e*(2.70158*e-1.70158)},easeOutBack(e){return--e*e*(2.70158*e+1.70158)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)},easeInBounce:e=>1-Dd.easeOutBounce(1-e),easeOutBounce(e){let t=7.5625,n=2.75;return e<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375},easeInOutBounce:e=>e<.5?Dd.easeInBounce(e*2)*.5:Dd.easeOutBounce(e*2-1)*.5+.5};function Od(e){if(e&&typeof e==`object`){let t=e.toString();return t===`[object CanvasPattern]`||t===`[object CanvasGradient]`}return!1}function kd(e){return Od(e)?e:new au(e)}function Ad(e){return Od(e)?e:new au(e).saturate(.5).darken(.1).hexString()}var jd=[`x`,`y`,`borderWidth`,`radius`,`tension`],Md=[`color`,`borderColor`,`backgroundColor`];function Nd(e){e.set(`animation`,{delay:void 0,duration:1e3,easing:`easeOutQuart`,fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),e.describe(`animation`,{_fallback:!1,_indexable:!1,_scriptable:e=>e!==`onProgress`&&e!==`onComplete`&&e!==`fn`}),e.set(`animations`,{colors:{type:`color`,properties:Md},numbers:{type:`number`,properties:jd}}),e.describe(`animations`,{_fallback:`animation`}),e.set(`transitions`,{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:`transparent`},visible:{type:`boolean`,duration:0}}},hide:{animations:{colors:{to:`transparent`},visible:{type:`boolean`,easing:`linear`,fn:e=>e|0}}}})}function Pd(e){e.set(`layout`,{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}var Fd=new Map;function Id(e,t){t||={};let n=e+JSON.stringify(t),r=Fd.get(n);return r||(r=new Intl.NumberFormat(e,t),Fd.set(n,r)),r}function Ld(e,t,n){return Id(t,n).format(e)}var Rd={values(e){return lu(e)?e:``+e},numeric(e,t,n){if(e===0)return`0`;let r=this.chart.options.locale,i,a=e;if(n.length>1){let t=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(t<1e-4||t>0x38d7ea4c68000)&&(i=`scientific`),a=zd(e,n)}let o=Hu(Math.abs(a)),s=isNaN(o)?1:Math.max(Math.min(-1*Math.floor(o),20),0),c={notation:i,minimumFractionDigits:s,maximumFractionDigits:s};return Object.assign(c,this.options.ticks.format),Ld(e,r,c)},logarithmic(e,t,n){if(e===0)return`0`;let r=n[t].significand||e/10**Math.floor(Hu(e));return[1,2,3,5,10,15].includes(r)||t>.8*n.length?Rd.numeric.call(this,e,t,n):``}};function zd(e,t){let n=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(n)>=1&&e!==Math.floor(e)&&(n=e-Math.floor(e)),n}var Bd={formatters:Rd};function Vd(e){e.set(`scale`,{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:`ticks`,clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,t)=>t.lineWidth,tickColor:(e,t)=>t.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:``,padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:``,padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Bd.formatters.values,minor:{},major:{},align:`center`,crossAlign:`near`,showLabelBackdrop:!1,backdropColor:`rgba(255, 255, 255, 0.75)`,backdropPadding:2}}),e.route(`scale.ticks`,`color`,``,`color`),e.route(`scale.grid`,`color`,``,`borderColor`),e.route(`scale.border`,`color`,``,`borderColor`),e.route(`scale.title`,`color`,``,`color`),e.describe(`scale`,{_fallback:!1,_scriptable:e=>!e.startsWith(`before`)&&!e.startsWith(`after`)&&e!==`callback`&&e!==`parser`,_indexable:e=>e!==`borderDash`&&e!==`tickBorderDash`&&e!==`dash`}),e.describe(`scales`,{_fallback:`scale`}),e.describe(`scale.ticks`,{_scriptable:e=>e!==`backdropPadding`&&e!==`callback`,_indexable:e=>e!==`backdropPadding`})}var Hd=Object.create(null),Ud=Object.create(null);function Wd(e,t){if(!t)return e;let n=t.split(`.`);for(let t=0,r=n.length;te.chart.platform.getDevicePixelRatio(),this.elements={},this.events=[`mousemove`,`mouseout`,`click`,`touchstart`,`touchmove`],this.font={family:`'Helvetica Neue', 'Helvetica', 'Arial', sans-serif`,size:12,style:`normal`,lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,t)=>Ad(t.backgroundColor),this.hoverBorderColor=(e,t)=>Ad(t.borderColor),this.hoverColor=(e,t)=>Ad(t.color),this.indexAxis=`x`,this.interaction={mode:`nearest`,intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(t)}set(e,t){return Gd(this,e,t)}get(e){return Wd(this,e)}describe(e,t){return Gd(Ud,e,t)}override(e,t){return Gd(Hd,e,t)}route(e,t,n,r){let i=Wd(this,e),a=Wd(this,n),o=`_`+t;Object.defineProperties(i,{[o]:{value:i[t],writable:!0},[t]:{enumerable:!0,get(){let e=this[o],t=a[r];return uu(e)?Object.assign({},t,e):pu(e,t)},set(e){this[o]=e}}})}apply(e){e.forEach(e=>e(this))}}({_scriptable:e=>!e.startsWith(`on`),_indexable:e=>e!==`events`,hover:{_fallback:`interaction`},interaction:{_scriptable:!1,_indexable:!1}},[Nd,Pd,Vd]);function qd(e){return!e||cu(e.size)||cu(e.family)?null:(e.style?e.style+` `:``)+(e.weight?e.weight+` `:``)+e.size+`px `+e.family}function Jd(e,t,n,r,i){let a=t[i];return a||(a=t[i]=e.measureText(i).width,n.push(i)),a>r&&(r=a),r}function Yd(e,t,n,r){r||={};let i=r.data=r.data||{},a=r.garbageCollect=r.garbageCollect||[];r.font!==t&&(i=r.data={},a=r.garbageCollect=[],r.font=t),e.save(),e.font=t;let o=0,s=n.length,c,l,u,d,f;for(c=0;cn.length){for(c=0;c0&&e.stroke()}}function ef(e,t,n){return n||=.5,!t||e&&e.x>t.left-n&&e.xt.top-n&&e.y0&&a.strokeColor!==``,c,l;for(e.save(),e.font=i.string,of(e,a),c=0;c+e||0;function hf(e,t){let n={},r=uu(t),i=r?Object.keys(t):t,a=uu(e)?r?n=>pu(e[n],e[t[n]]):t=>e[t]:()=>e;for(let e of i)n[e]=mf(a(e));return n}function gf(e){return hf(e,{top:`y`,right:`x`,bottom:`y`,left:`x`})}function _f(e){return hf(e,[`topLeft`,`topRight`,`bottomLeft`,`bottomRight`])}function vf(e){let t=gf(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function yf(e,t){e||={},t||=Kd.font;let n=pu(e.size,t.size);typeof n==`string`&&(n=parseInt(n,10));let r=pu(e.style,t.style);r&&!(``+r).match(ff)&&(console.warn(`Invalid font style specified: "`+r+`"`),r=void 0);let i={family:pu(e.family,t.family),lineHeight:pf(pu(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:pu(e.weight,t.weight),string:``};return i.string=qd(i),i}function bf(e,t,n,r){let i=!0,a,o,s;for(a=0,o=e.length;an&&e===0?0:e+t;return{min:o(r,-Math.abs(a)),max:o(i,a)}}function Sf(e,t){return Object.assign(Object.create(e),t)}function Cf(e,t=[``],n,r,i=()=>e[0]){let a=n||e;return r===void 0&&(r=zf(`_fallback`,e)),new Proxy({[Symbol.toStringTag]:`Object`,_cacheable:!0,_scopes:e,_rootScopes:a,_fallback:r,_getTarget:i,override:n=>Cf([n,...e],t,a,r)},{deleteProperty(t,n){return delete t[n],delete t._keys,delete e[0][n],!0},get(n,r){return Of(n,r,()=>Rf(r,t,e,n))},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(e._scopes[0],t)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(e,t){return Bf(e).includes(t)},ownKeys(e){return Bf(e)},set(e,t,n){let r=e._storage||=i();return e[t]=r[t]=n,delete e._keys,!0}})}function wf(e,t,n,r){let i={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:Tf(e,r),setContext:t=>wf(e,t,n,r),override:i=>wf(e.override(i),t,n,r)};return new Proxy(i,{deleteProperty(t,n){return delete t[n],delete e[n],!0},get(e,t,n){return Of(e,t,()=>kf(e,t,n))},getOwnPropertyDescriptor(t,n){return t._descriptors.allKeys?Reflect.has(e,n)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,n)},getPrototypeOf(){return Reflect.getPrototypeOf(e)},has(t,n){return Reflect.has(e,n)},ownKeys(){return Reflect.ownKeys(e)},set(t,n,r){return e[n]=r,delete t[n],!0}})}function Tf(e,t={scriptable:!0,indexable:!0}){let{_scriptable:n=t.scriptable,_indexable:r=t.indexable,_allKeys:i=t.allKeys}=e;return{allKeys:i,scriptable:n,indexable:r,isScriptable:ju(n)?n:()=>n,isIndexable:ju(r)?r:()=>r}}var Ef=(e,t)=>e?e+ku(t):t,Df=(e,t)=>uu(t)&&e!==`adapters`&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function Of(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t===`constructor`)return e[t];let r=n();return e[t]=r,r}function kf(e,t,n){let{_proxy:r,_context:i,_subProxy:a,_descriptors:o}=e,s=r[t];return ju(s)&&o.isScriptable(t)&&(s=Af(t,s,e,n)),lu(s)&&s.length&&(s=jf(t,s,e,o.isIndexable)),Df(t,s)&&(s=wf(s,i,a&&a[t],o)),s}function Af(e,t,n,r){let{_proxy:i,_context:a,_subProxy:o,_stack:s}=n;if(s.has(e))throw Error(`Recursion detected: `+Array.from(s).join(`->`)+`->`+e);s.add(e);let c=t(a,o||r);return s.delete(e),Df(e,c)&&(c=Ff(i._scopes,i,e,c)),c}function jf(e,t,n,r){let{_proxy:i,_context:a,_subProxy:o,_descriptors:s}=n;if(a.index!==void 0&&r(e))return t[a.index%t.length];if(uu(t[0])){let n=t,r=i._scopes.filter(e=>e!==n);t=[];for(let c of n){let n=Ff(r,i,e,c);t.push(wf(n,a,o&&o[e],s))}}return t}function Mf(e,t,n){return ju(e)?e(t,n):e}var Nf=(e,t)=>e===!0?t:typeof e==`string`?Ou(t,e):void 0;function Pf(e,t,n,r,i){for(let a of t){let t=Nf(n,a);if(t){e.add(t);let a=Mf(t._fallback,n,i);if(a!==void 0&&a!==n&&a!==r)return a}else if(t===!1&&r!==void 0&&n!==r)return null}return!1}function Ff(e,t,n,r){let i=t._rootScopes,a=Mf(t._fallback,n,r),o=[...e,...i],s=new Set;s.add(r);let c=If(s,o,n,a||n,r);return c===null||a!==void 0&&a!==n&&(c=If(s,o,a,c,r),c===null)?!1:Cf(Array.from(s),[``],i,a,()=>Lf(t,n,r))}function If(e,t,n,r,i){for(;n;)n=Pf(e,t,n,r,i);return n}function Lf(e,t,n){let r=e._getTarget();t in r||(r[t]={});let i=r[t];return lu(i)&&uu(n)?n:i||{}}function Rf(e,t,n,r){let i;for(let a of t)if(i=zf(Ef(a,e),n),i!==void 0)return Df(e,i)?Ff(n,r,e,i):i}function zf(e,t){for(let n of t){if(!n)continue;let t=n[e];if(t!==void 0)return t}}function Bf(e){let t=e._keys;return t||=e._keys=Vf(e._scopes),t}function Vf(e){let t=new Set;for(let n of e)for(let e of Object.keys(n).filter(e=>!e.startsWith(`_`)))t.add(e);return Array.from(t)}function Hf(e,t,n,r){let{iScale:i}=e,{key:a=`r`}=this._parsing,o=Array(r),s,c,l,u;for(s=0,c=r;ste===`x`?`y`:`x`;function Kf(e,t,n,r){let i=e.skip?t:e,a=t,o=n.skip?t:n,s=td(a,i),c=td(o,a),l=s/(s+c),u=c/(s+c);l=isNaN(l)?0:l,u=isNaN(u)?0:u;let d=r*l,f=r*u;return{previous:{x:a.x-d*(o.x-i.x),y:a.y-d*(o.y-i.y)},next:{x:a.x+f*(o.x-i.x),y:a.y+f*(o.y-i.y)}}}function qf(e,t,n){let r=e.length,i,a,o,s,c,l=Wf(e,0);for(let u=0;u!e.skip)),t.cubicInterpolationMode===`monotone`)Yf(e,i);else{let n=r?e[e.length-1]:e[0];for(a=0,o=e.length;ae.ownerDocument.defaultView.getComputedStyle(e,null);function rp(e,t){return np(e).getPropertyValue(t)}var ip=[`top`,`right`,`bottom`,`left`];function ap(e,t,n){let r={};n=n?`-`+n:``;for(let i=0;i<4;i++){let a=ip[i];r[a]=parseFloat(e[t+`-`+a+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}var op=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function sp(e,t){let n=e.touches,r=n&&n.length?n[0]:e,{offsetX:i,offsetY:a}=r,o=!1,s,c;if(op(i,a,e.target))s=i,c=a;else{let e=t.getBoundingClientRect();s=r.clientX-e.left,c=r.clientY-e.top,o=!0}return{x:s,y:c,box:o}}function cp(e,t){if(`native`in e)return e;let{canvas:n,currentDevicePixelRatio:r}=t,i=np(n),a=i.boxSizing===`border-box`,o=ap(i,`padding`),s=ap(i,`border`,`width`),{x:c,y:l,box:u}=sp(e,n),d=o.left+(u&&s.left),f=o.top+(u&&s.top),{width:p,height:m}=t;return a&&(p-=o.width+s.width,m-=o.height+s.height),{x:Math.round((c-d)/p*n.width/r),y:Math.round((l-f)/m*n.height/r)}}function lp(e,t,n){let r,i;if(t===void 0||n===void 0){let a=e&&ep(e);if(!a)t=e.clientWidth,n=e.clientHeight;else{let e=a.getBoundingClientRect(),o=np(a),s=ap(o,`border`,`width`),c=ap(o,`padding`);t=e.width-c.width-s.width,n=e.height-c.height-s.height,r=tp(o.maxWidth,a,`clientWidth`),i=tp(o.maxHeight,a,`clientHeight`)}}return{width:t,height:n,maxWidth:r||Lu,maxHeight:i||Lu}}var up=e=>Math.round(e*10)/10;function dp(e,t,n,r){let i=np(e),a=ap(i,`margin`),o=tp(i.maxWidth,e,`clientWidth`)||Lu,s=tp(i.maxHeight,e,`clientHeight`)||Lu,c=lp(e,t,n),{width:l,height:u}=c;if(i.boxSizing===`content-box`){let e=ap(i,`border`,`width`),t=ap(i,`padding`);l-=t.width+e.width,u-=t.height+e.height}return l=Math.max(0,l-a.width),u=Math.max(0,r?l/r:u-a.height),l=up(Math.min(l,o,c.maxWidth)),u=up(Math.min(u,s,c.maxHeight)),l&&!u&&(u=up(l/2)),(t!==void 0||n!==void 0)&&r&&c.height&&u>c.height&&(u=c.height,l=up(Math.floor(u*r))),{width:l,height:u}}function fp(e,t,n){let r=t||1,i=up(e.height*r),a=up(e.width*r);e.height=up(e.height),e.width=up(e.width);let o=e.canvas;return o.style&&(n||!o.style.height&&!o.style.width)&&(o.style.height=`${e.height}px`,o.style.width=`${e.width}px`),e.currentDevicePixelRatio!==r||o.height!==i||o.width!==a?(e.currentDevicePixelRatio=r,o.height=i,o.width=a,e.ctx.setTransform(r,0,0,r,0,0),!0):!1}var pp=function(){let e=!1;try{let t={get passive(){return e=!0,!1}};$f()&&(window.addEventListener(`test`,null,t),window.removeEventListener(`test`,null,t))}catch{}return e}();function mp(e,t){let n=rp(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function hp(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function gp(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:r===`middle`?n<.5?e.y:t.y:r===`after`?n<1?e.y:t.y:n>0?t.y:e.y}}function _p(e,t,n,r){let i={x:e.cp2x,y:e.cp2y},a={x:t.cp1x,y:t.cp1y},o=hp(e,i,n),s=hp(i,a,n),c=hp(a,t,n);return hp(hp(o,s,n),hp(s,c,n),n)}var vp=function(e,t){return{x(n){return e+e+t-n},setWidth(e){t=e},textAlign(e){return e===`center`?e:e===`right`?`left`:`right`},xPlus(e,t){return e-t},leftForLtr(e,t){return e-t}}},yp=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function bp(e,t,n){return e?vp(t,n):yp()}function xp(e,t){let n,r;(t===`ltr`||t===`rtl`)&&(n=e.canvas.style,r=[n.getPropertyValue(`direction`),n.getPropertyPriority(`direction`)],n.setProperty(`direction`,t,`important`),e.prevTextDirection=r)}function Sp(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty(`direction`,t[0],t[1]))}function Cp(e){return e===`angle`?{between:id,compare:nd,normalize:rd}:{between:sd,compare:(e,t)=>e-t,normalize:e=>e}}function wp({start:e,end:t,count:n,loop:r,style:i}){return{start:e%n,end:t%n,loop:r&&(t-e+1)%n===0,style:i}}function Tp(e,t,n){let{property:r,start:i,end:a}=n,{between:o,normalize:s}=Cp(r),c=t.length,{start:l,end:u,loop:d}=e,f,p;if(d){for(l+=c,u+=c,f=0,p=c;fc(i,y,_)&&s(i,y)!==0,x=()=>s(a,_)===0||c(a,y,_),S=()=>h||b(),C=()=>!h||x();for(let e=u,n=u;e<=d;++e)v=t[e%o],!v.skip&&(_=l(v[r]),_!==y&&(h=c(_,i,a),g===null&&S()&&(g=s(_,i)===0?e:n),g!==null&&C()&&(m.push(wp({start:g,end:e,loop:f,count:o,style:p})),g=null),n=e,y=_));return g!==null&&m.push(wp({start:g,end:d,loop:f,count:o,style:p})),m}function Dp(e,t){let n=[],r=e.segments;for(let i=0;ii&&e[a%t].skip;)a--;return a%=t,{start:i,end:a}}function kp(e,t,n,r){let i=e.length,a=[],o=t,s=e[t],c;for(c=t+1;c<=n;++c){let n=e[c%i];n.skip||n.stop?s.skip||(r=!1,a.push({start:t%i,end:(c-1)%i,loop:r}),t=o=n.stop?c:null):(o=c,s.skip&&(t=c)),s=n}return o!==null&&a.push({start:t%i,end:o%i,loop:r}),a}function Ap(e,t){let n=e.points,r=e.options.spanGaps,i=n.length;if(!i)return[];let a=!!e._loop,{start:o,end:s}=Op(n,i,a,r);return r===!0?jp(e,[{start:o,end:s,loop:a}],n,t):jp(e,kp(n,o,sr({chart:e,initial:t.initial,numSteps:a,currentStep:Math.min(n-t.start,a)}))}_refresh(){this._request||=(this._running=!0,gd.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let t=0;this._charts.forEach((n,r)=>{if(!n.running||!n.items.length)return;let i=n.items,a=i.length-1,o=!1,s;for(;a>=0;--a)s=i[a],s._active?(s._total>n.duration&&(n.duration=s._total),s.tick(e),o=!0):(i[a]=i[i.length-1],i.pop());o&&(r.draw(),this._notify(r,n,e,`progress`)),i.length||(n.running=!1,this._notify(r,n,e,`complete`),n.initial=!1),t+=i.length}),this._lastDate=e,t===0&&(this._running=!1)}_getAnims(e){let t=this._charts,n=t.get(e);return n||(n={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(e,n)),n}listen(e,t,n){this._getAnims(e).listeners[t].push(n)}add(e,t){!t||!t.length||this._getAnims(e).items.push(...t)}has(e){return this._getAnims(e).items.length>0}start(e){let t=this._charts.get(e);t&&(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce((e,t)=>Math.max(e,t._duration),0),this._refresh())}running(e){if(!this._running)return!1;let t=this._charts.get(e);return!(!t||!t.running||!t.items.length)}stop(e){let t=this._charts.get(e);if(!t||!t.items.length)return;let n=t.items,r=n.length-1;for(;r>=0;--r)n[r].cancel();t.items=[],this._notify(e,t,Date.now(),`complete`)}remove(e){return this._charts.delete(e)}},zp=`transparent`,Bp={boolean(e,t,n){return n>.5?t:e},color(e,t,n){let r=kd(e||zp),i=r.valid&&kd(t||zp);return i&&i.valid?i.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}},Vp=class{constructor(e,t,n,r){let i=t[n];r=bf([e.to,r,i,e.from]);let a=bf([e.from,i,r]);this._active=!0,this._fn=e.fn||Bp[e.type||typeof a],this._easing=Dd[e.easing]||Dd.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=t,this._prop=n,this._from=a,this._to=r,this._promises=void 0}active(){return this._active}update(e,t,n){if(this._active){this._notify(!1);let r=this._target[this._prop],i=n-this._start,a=this._duration-i;this._start=n,this._duration=Math.floor(Math.max(a,e.duration)),this._total+=i,this._loop=!!e.loop,this._to=bf([e.to,t,r,e.from]),this._from=bf([e.from,r,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){let t=e-this._start,n=this._duration,r=this._prop,i=this._from,a=this._loop,o=this._to,s;if(this._active=i!==o&&(a||t1?2-s:s,s=this._easing(Math.min(1,Math.max(0,s))),this._target[r]=this._fn(i,o,s)}wait(){let e=this._promises||=[];return new Promise((t,n)=>{e.push({res:t,rej:n})})}_notify(e){let t=e?`res`:`rej`,n=this._promises||[];for(let e=0;e{let i=e[r];if(!uu(i))return;let a={};for(let e of t)a[e]=i[e];(lu(i.properties)&&i.properties||[r]).forEach(e=>{(e===r||!n.has(e))&&n.set(e,a)})})}_animateOptions(e,t){let n=t.options,r=Wp(e,n);if(!r)return[];let i=this._createAnimations(r,n);return n.$shared&&Up(e.options.$animations,n).then(()=>{e.options=n},()=>{}),i}_createAnimations(e,t){let n=this._properties,r=[],i=e.$animations||={},a=Object.keys(t),o=Date.now(),s;for(s=a.length-1;s>=0;--s){let c=a[s];if(c.charAt(0)===`$`)continue;if(c===`options`){r.push(...this._animateOptions(e,t));continue}let l=t[c],u=i[c],d=n.get(c);if(u)if(d&&u.active()){u.update(d,l,o);continue}else u.cancel();if(!d||!d.duration){e[c]=l;continue}i[c]=u=new Vp(d,e,c,l),r.push(u)}return r}update(e,t){if(this._properties.size===0){Object.assign(e,t);return}let n=this._createAnimations(e,t);if(n.length)return Rp.add(this._chart,n),!0}};function Up(e,t){let n=[],r=Object.keys(t);for(let t=0;t0||!n&&t<0)return i.index}return null}function nm(e,t){let{chart:n,_cachedMeta:r}=e,i=n._stacks||={},{iScale:a,vScale:o,index:s}=r,c=a.axis,l=o.axis,u=Qp(a,o,r),d=t.length,f;for(let e=0;en[e].axis===t).shift()}function im(e,t){return Sf(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:`default`,type:`dataset`})}function am(e,t,n){return Sf(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:`default`,type:`data`})}function om(e,t){let n=e.controller.index,r=e.vScale&&e.vScale.axis;if(r){t||=e._parsed;for(let e of t){let t=e._stacks;if(!t||t[r]===void 0||t[r][n]===void 0)return;delete t[r][n],t[r]._visualValues!==void 0&&t[r]._visualValues[n]!==void 0&&delete t[r]._visualValues[n]}}}var sm=e=>e===`reset`||e===`none`,cm=(e,t)=>t?e:Object.assign({},e),lm=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:Jp(n,!0),values:null},um=class{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,t){this.chart=e,this._ctx=e.ctx,this.index=t,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){let e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Zp(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled(`filler`)&&console.warn(`Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options`)}updateIndex(e){this.index!==e&&om(this._cachedMeta),this.index=e}linkScales(){let e=this.chart,t=this._cachedMeta,n=this.getDataset(),r=(e,t,n,r)=>e===`x`?t:e===`r`?r:n,i=t.xAxisID=pu(n.xAxisID,rm(e,`x`)),a=t.yAxisID=pu(n.yAxisID,rm(e,`y`)),o=t.rAxisID=pu(n.rAxisID,rm(e,`r`)),s=t.indexAxis,c=t.iAxisID=r(s,i,a,o),l=t.vAxisID=r(s,a,i,o);t.xScale=this.getScaleForId(i),t.yScale=this.getScaleForId(a),t.rScale=this.getScaleForId(o),t.iScale=this.getScaleForId(c),t.vScale=this.getScaleForId(l)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){let t=this._cachedMeta;return e===t.iScale?t.vScale:t.iScale}reset(){this._update(`reset`)}_destroy(){let e=this._cachedMeta;this._data&&md(this._data,this),e._stacked&&om(e)}_dataCheck(){let e=this.getDataset(),t=e.data||=[],n=this._data;if(uu(t)){let e=this._cachedMeta;this._data=Xp(t,e)}else if(n!==t){if(n){md(n,this);let e=this._cachedMeta;om(e),e._parsed=[]}t&&Object.isExtensible(t)&&pd(t,this),this._syncList=[],this._data=t}}addElements(){let e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){let t=this._cachedMeta,n=this.getDataset(),r=!1;this._dataCheck();let i=t._stacked;t._stacked=Zp(t.vScale,t),t.stack!==n.stack&&(r=!0,om(t),t.stack=n.stack),this._resyncElements(e),(r||i!==t._stacked)&&(nm(this,t._parsed),t._stacked=Zp(t.vScale,t))}configure(){let e=this.chart.config,t=e.datasetScopeKeys(this._type),n=e.getOptionScopes(this.getDataset(),t,!0);this.options=e.createResolver(n,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,t){let{_cachedMeta:n,_data:r}=this,{iScale:i,_stacked:a}=n,o=i.axis,s=e===0&&t===r.length||n._sorted,c=e>0&&n._parsed[e-1],l,u,d;if(this._parsing===!1)n._parsed=r,n._sorted=!0,d=r;else{d=lu(r[e])?this.parseArrayData(n,r,e,t):uu(r[e])?this.parseObjectData(n,r,e,t):this.parsePrimitiveData(n,r,e,t);let i=()=>u[o]===null||c&&u[o]t||u=0;--d)if(!p()){this.updateRangeFromParsed(c,e,f,s);break}}return c}getAllParsedValues(e){let t=this._cachedMeta._parsed,n=[],r,i,a;for(r=0,i=t.length;r=0&&ethis.getContext(n,r,t),u);return p.$shared&&(p.$shared=s,i[a]=Object.freeze(cm(p,s))),p}_resolveAnimations(e,t,n){let r=this.chart,i=this._cachedDataOpts,a=`animation-${t}`,o=i[a];if(o)return o;let s;if(r.options.animation!==!1){let r=this.chart.config,i=r.datasetAnimationScopeKeys(this._type,t),a=r.getOptionScopes(this.getDataset(),i);s=r.createResolver(a,this.getContext(e,n,t))}let c=new Hp(r,s&&s.animations);return s&&s._cacheable&&(i[a]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||=Object.assign({},e)}includeOptions(e,t){return!t||sm(e)||this.chart._animationsDisabled}_getSharedOptions(e,t){let n=this.resolveDataElementOptions(e,t),r=this._sharedOptions,i=this.getSharedOptions(n),a=this.includeOptions(t,i)||i!==r;return this.updateSharedOptions(i,t,n),{sharedOptions:i,includeOptions:a}}updateElement(e,t,n,r){sm(r)?Object.assign(e,n):this._resolveAnimations(t,r).update(e,n)}updateSharedOptions(e,t,n){e&&!sm(t)&&this._resolveAnimations(void 0,t).update(e,n)}_setStyle(e,t,n,r){e.active=r;let i=this.getStyle(t,r);this._resolveAnimations(t,n,r).update(e,{options:!r&&this.getSharedOptions(i)||i})}removeHoverStyle(e,t,n){this._setStyle(e,n,`active`,!1)}setHoverStyle(e,t,n){this._setStyle(e,n,`active`,!0)}_removeDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,`active`,!1)}_setDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,`active`,!0)}_resyncElements(e){let t=this._data,n=this._cachedMeta.data;for(let[e,t,n]of this._syncList)this[e](t,n);this._syncList=[];let r=n.length,i=t.length,a=Math.min(i,r);a&&this.parse(0,a),i>r?this._insertElements(r,i-r,e):i{for(e.length+=t,o=e.length-1;o>=a;o--)e[o]=e[o-t]};for(s(i),o=e;oe-t))}return e._cache.$bar}function fm(e){let t=e.iScale,n=dm(t,e.type),r=t._length,i,a,o,s,c=()=>{o===32767||o===-32768||(Au(s)&&(r=Math.min(r,Math.abs(o-s)||r)),s=o)};for(i=0,a=n.length;i0?i[e-1]:null,s=eMath.abs(s)&&(c=s,l=o),t[n.axis]=l,t._custom={barStart:c,barEnd:l,start:i,end:a,min:o,max:s}}function gm(e,t,n,r){return lu(e)?hm(e,t,n,r):t[n.axis]=n.parse(e,r),t}function _m(e,t,n,r){let i=e.iScale,a=e.vScale,o=i.getLabels(),s=i===a,c=[],l,u,d,f;for(l=n,u=n+r;l=n?1:-1):Uu(e)}function bm(e){let t,n,r,i,a;return e.horizontal?(t=e.base>e.x,n=`left`,r=`right`):(t=e.basee.controller.options.grouped),i=n.options.stacked,a=[],o=this._cachedMeta.controller.getParsed(t),s=o&&o[n.axis],c=e=>{let t=e._parsed.find(e=>e[n.axis]===s),r=t&&t[e.vScale.axis];if(cu(r)||isNaN(r))return!0};for(let n of r)if(!(t!==void 0&&c(n))&&((i===!1||a.indexOf(n.stack)===-1||i===void 0&&n.stack===void 0)&&a.push(n.stack),n.index===e))break;return a.length||a.push(void 0),a}_getStackCount(e){return this._getStacks(void 0,e).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){let e=this.chart.scales,t=this.chart.options.indexAxis;return Object.keys(e).filter(n=>e[n].axis===t).shift()}_getAxis(){let e={},t=this.getFirstScaleIdForIndexAxis();for(let n of this.chart.data.datasets)e[pu(this.chart.options.indexAxis===`x`?n.xAxisID:n.yAxisID,t)]=!0;return Object.keys(e)}_getStackIndex(e,t,n){let r=this._getStacks(e,n),i=t===void 0?-1:r.indexOf(t);return i===-1?r.length-1:i}_getRuler(){let e=this.options,t=this._cachedMeta,n=t.iScale,r=[],i,a;for(i=0,a=t.data.length;i=0;--n)t=Math.max(t,e[n].size(this.resolveDataElementOptions(n))/2);return t>0&&t}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart.data.labels||[],{xScale:r,yScale:i}=t,a=this.getParsed(e),o=r.getLabelForValue(a.x),s=i.getLabelForValue(a.y),c=a._custom;return{label:n[e]||``,value:`(`+o+`, `+s+(c?`, `+c:``)+`)`}}update(e){let t=this._cachedMeta.data;this.updateElements(t,0,t.length,e)}updateElements(e,t,n,r){let i=r===`reset`,{iScale:a,vScale:o}=this._cachedMeta,{sharedOptions:s,includeOptions:c}=this._getSharedOptions(t,r),l=a.axis,u=o.axis;for(let d=t;did(e,s,c,!0)?1:Math.max(t,t*n,r,r*n),m=(e,t,r)=>id(e,s,c,!0)?-1:Math.min(t,t*n,r,r*n),h=p(0,l,d),g=p(zu,u,f),_=m(Pu,l,d),v=m(Pu+zu,u,f);r=(h-_)/2,i=(g-v)/2,a=-(h+_)/2,o=-(g+v)/2}return{ratioX:r,ratioY:i,offsetX:a,offsetY:o}}var km=class extends um{static id=`doughnut`;static defaults={datasetElementType:!1,dataElementType:`arc`,animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:`number`,properties:[`circumference`,`endAngle`,`innerRadius`,`outerRadius`,`startAngle`,`x`,`y`,`offset`,`borderWidth`,`spacing`]}},cutout:`50%`,rotation:0,circumference:360,radius:`100%`,spacing:0,indexAxis:`r`};static descriptors={_scriptable:e=>e!==`spacing`,_indexable:e=>e!==`spacing`&&!e.startsWith(`borderDash`)&&!e.startsWith(`hoverBorderDash`)};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){let t=e.data,{labels:{pointStyle:n,textAlign:r,color:i,useBorderRadius:a,borderRadius:o}}=e.legend.options;return t.labels.length&&t.datasets.length?t.labels.map((t,s)=>{let c=e.getDatasetMeta(0).controller.getStyle(s);return{text:t,fillStyle:c.backgroundColor,fontColor:i,hidden:!e.getDataVisibility(s),lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:c.borderWidth,strokeStyle:c.borderColor,textAlign:r,pointStyle:n,borderRadius:a&&(o||c.borderRadius),index:s}}):[]}},onClick(e,t,n){n.chart.toggleDataVisibility(t.index),n.chart.update()}}}};constructor(e,t){super(e,t),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,t){let n=this.getDataset().data,r=this._cachedMeta;if(this._parsing===!1)r._parsed=n;else{let i=e=>+n[e];if(uu(n[e])){let{key:e=`value`}=this._parsing;i=t=>+Ou(n[t],e)}let a,o;for(a=e,o=e+t;a0&&!isNaN(e)?Math.abs(e)/t*Fu:0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=Ld(t._parsed[e],n.options.locale);return{label:r[e]||``,value:i}}getMaxBorderWidth(e){let t=0,n=this.chart,r,i,a,o,s;if(!e){for(r=0,i=n.data.datasets.length;r0&&this.getParsed(t-1);for(let n=0;n=_){v.skip=!0;continue}let b=this.getParsed(n),x=cu(b[f]),S=v[d]=a.getPixelForValue(b[d],n),C=v[f]=i||x?o.getBasePixel():o.getPixelForValue(s?this.applyStack(o,b,s):b[f],n);v.skip=isNaN(S)||isNaN(C)||x,v.stop=n>0&&Math.abs(b[d]-y[d])>h,m&&(v.parsed=b,v.raw=c.data[n]),u&&(v.options=l||this.resolveDataElementOptions(n,p.active?`active`:r)),g||this.updateElement(p,n,v,r),y=b}}getMaxOverflow(){let e=this._cachedMeta,t=e.dataset,n=t.options&&t.options.borderWidth||0,r=e.data||[];if(!r.length)return n;let i=r[0].size(this.resolveDataElementOptions(0)),a=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(n,i,a)/2}draw(){let e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}},jm=class extends um{static id=`polarArea`;static defaults={dataElementType:`arc`,animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:`number`,properties:[`x`,`y`,`startAngle`,`endAngle`,`innerRadius`,`outerRadius`]}},indexAxis:`r`,startAngle:0};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){let t=e.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:n,color:r}}=e.legend.options;return t.labels.map((t,i)=>{let a=e.getDatasetMeta(0).controller.getStyle(i);return{text:t,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,fontColor:r,lineWidth:a.borderWidth,pointStyle:n,hidden:!e.getDataVisibility(i),index:i}})}return[]}},onClick(e,t,n){n.chart.toggleDataVisibility(t.index),n.chart.update()}}},scales:{r:{type:`radialLinear`,angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(e,t){super(e,t),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=Ld(t._parsed[e].r,n.options.locale);return{label:r[e]||``,value:i}}parseObjectData(e,t,n,r){return Hf.bind(this)(e,t,n,r)}update(e){let t=this._cachedMeta.data;this._updateRadius(),this.updateElements(t,0,t.length,e)}getMinMax(){let e=this._cachedMeta,t={min:1/0,max:-1/0};return e.data.forEach((e,n)=>{let r=this.getParsed(n).r;!isNaN(r)&&this.chart.getDataVisibility(n)&&(rt.max&&(t.max=r))}),t}_updateRadius(){let e=this.chart,t=e.chartArea,n=e.options,r=Math.min(t.right-t.left,t.bottom-t.top),i=Math.max(r/2,0),a=(i-Math.max(n.cutoutPercentage?i/100*n.cutoutPercentage:1,0))/e.getVisibleDatasetCount();this.outerRadius=i-a*this.index,this.innerRadius=this.outerRadius-a}updateElements(e,t,n,r){let i=r===`reset`,a=this.chart,o=a.options.animation,s=this._cachedMeta.rScale,c=s.xCenter,l=s.yCenter,u=s.getIndexAngle(0)-.5*Pu,d=u,f,p=360/this.countVisibleElements();for(f=0;f{!isNaN(this.getParsed(n).r)&&this.chart.getDataVisibility(n)&&t++}),t}_computeAngle(e,t,n){return this.chart.getDataVisibility(e)?Zu(this.resolveDataElementOptions(e,t).angle||n):0}},Mm=Object.freeze({__proto__:null,BarController:Em,BubbleController:Dm,DoughnutController:km,LineController:Am,PieController:class extends km{static id=`pie`;static defaults={cutout:0,rotation:0,circumference:360,radius:`100%`}},PolarAreaController:jm,RadarController:class extends um{static id=`radar`;static defaults={datasetElementType:`line`,dataElementType:`point`,indexAxis:`r`,showLine:!0,elements:{line:{fill:`start`}}};static overrides={aspectRatio:1,scales:{r:{type:`radialLinear`}}};getLabelAndValue(e){let t=this._cachedMeta.vScale,n=this.getParsed(e);return{label:t.getLabels()[e],value:``+t.getLabelForValue(n[t.axis])}}parseObjectData(e,t,n,r){return Hf.bind(this)(e,t,n,r)}update(e){let t=this._cachedMeta,n=t.dataset,r=t.data||[],i=t.iScale.getLabels();if(n.points=r,e!==`resize`){let t=this.resolveDatasetElementOptions(e);this.options.showLine||(t.borderWidth=0);let a={_loop:!0,_fullLoop:i.length===r.length,options:t};this.updateElement(n,void 0,a,e)}this.updateElements(r,0,r.length,e)}updateElements(e,t,n,r){let i=this._cachedMeta.rScale,a=r===`reset`;for(let o=t;o0&&this.getParsed(t-1);for(let l=t;l0&&Math.abs(n[f]-v[f])>g,h&&(m.parsed=n,m.raw=c.data[l]),d&&(m.options=u||this.resolveDataElementOptions(l,t.active?`active`:r)),_||this.updateElement(t,l,m,r),v=n}this.updateSharedOptions(u,r,l)}getMaxOverflow(){let e=this._cachedMeta,t=e.data||[];if(!this.options.showLine){let e=0;for(let n=t.length-1;n>=0;--n)e=Math.max(e,t[n].size(this.resolveDataElementOptions(n))/2);return e>0&&e}let n=e.dataset,r=n.options&&n.options.borderWidth||0;if(!t.length)return r;let i=t[0].size(this.resolveDataElementOptions(0)),a=t[t.length-1].size(this.resolveDataElementOptions(t.length-1));return Math.max(r,i,a)/2}}});function Nm(){throw Error(`This method is not implemented: Check that a complete date adapter is provided.`)}var Pm={_date:class e{static override(t){Object.assign(e.prototype,t)}options;constructor(e){this.options=e||{}}init(){}formats(){return Nm()}parse(){return Nm()}format(){return Nm()}add(){return Nm()}diff(){return Nm()}startOf(){return Nm()}endOf(){return Nm()}}};function Fm(e,t,n,r){let{controller:i,data:a,_sorted:o}=e,s=i._cachedMeta.iScale,c=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null;if(s&&t===s.axis&&t!==`r`&&o&&a.length){let o=s._reversePixels?ud:ld;if(!r){let r=o(a,t,n);if(c){let{vScale:t}=i._cachedMeta,{_parsed:n}=e,a=n.slice(0,r.lo+1).reverse().findIndex(e=>!cu(e[t.axis]));r.lo-=Math.max(0,a);let o=n.slice(r.hi).findIndex(e=>!cu(e[t.axis]));r.hi+=Math.max(0,o)}return r}else if(i._sharedOptions){let e=a[0],r=typeof e.getRange==`function`&&e.getRange(t);if(r){let e=o(a,t,n-r),i=o(a,t,n+r);return{lo:e.lo,hi:i.hi}}}}return{lo:0,hi:a.length-1}}function Im(e,t,n,r,i){let a=e.getSortedVisibleDatasetMetas(),o=n[t];for(let e=0,n=a.length;e{e[o]&&e[o](t[n],i)&&(a.push({element:e,datasetIndex:r,index:c}),s||=e.inRange(t.x,t.y,i))}),r&&!s?[]:a}var Um={evaluateInteractionItems:Im,modes:{index(e,t,n,r){let i=cp(t,e),a=n.axis||`x`,o=n.includeInvisible||!1,s=n.intersect?Rm(e,i,a,r,o):Vm(e,i,a,!1,r,o),c=[];return s.length?(e.getSortedVisibleDatasetMetas().forEach(e=>{let t=s[0].index,n=e.data[t];n&&!n.skip&&c.push({element:n,datasetIndex:e.index,index:t})}),c):[]},dataset(e,t,n,r){let i=cp(t,e),a=n.axis||`xy`,o=n.includeInvisible||!1,s=n.intersect?Rm(e,i,a,r,o):Vm(e,i,a,!1,r,o);if(s.length>0){let t=s[0].datasetIndex,n=e.getDatasetMeta(t).data;s=[];for(let e=0;ee.pos===t)}function Km(e,t){return e.filter(e=>Wm.indexOf(e.pos)===-1&&e.box.axis===t)}function qm(e,t){return e.sort((e,n)=>{let r=t?n:e,i=t?e:n;return r.weight===i.weight?r.index-i.index:r.weight-i.weight})}function Jm(e){let t=[],n,r,i,a,o,s;for(n=0,r=(e||[]).length;ne.box.fullSize),!0),r=qm(Gm(t,`left`),!0),i=qm(Gm(t,`right`)),a=qm(Gm(t,`top`),!0),o=qm(Gm(t,`bottom`)),s=Km(t,`x`),c=Km(t,`y`);return{fullSize:n,leftAndTop:r.concat(a),rightAndBottom:i.concat(c).concat(o).concat(s),chartArea:Gm(t,`chartArea`),vertical:r.concat(i).concat(c),horizontal:a.concat(o).concat(s)}}function Qm(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function $m(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function eh(e,t,n,r){let{pos:i,box:a}=n,o=e.maxPadding;if(!uu(i)){n.size&&(e[i]-=n.size);let t=r[n.stack]||{size:0,count:1};t.size=Math.max(t.size,n.horizontal?a.height:a.width),n.size=t.size/t.count,e[i]+=n.size}a.getPadding&&$m(o,a.getPadding());let s=Math.max(0,t.outerWidth-Qm(o,e,`left`,`right`)),c=Math.max(0,t.outerHeight-Qm(o,e,`top`,`bottom`)),l=s!==e.w,u=c!==e.h;return e.w=s,e.h=c,n.horizontal?{same:l,other:u}:{same:u,other:l}}function th(e){let t=e.maxPadding;function n(n){let r=Math.max(t[n]-e[n],0);return e[n]+=r,r}e.y+=n(`top`),e.x+=n(`left`),n(`right`),n(`bottom`)}function nh(e,t){let n=t.maxPadding;function r(e){let r={left:0,top:0,right:0,bottom:0};return e.forEach(e=>{r[e]=Math.max(t[e],n[e])}),r}return r(e?[`left`,`right`]:[`top`,`bottom`])}function rh(e,t,n,r){let i=[],a,o,s,c,l,u;for(a=0,o=e.length,l=0;a{typeof e.beforeLayout==`function`&&e.beforeLayout()});let u=c.reduce((e,t)=>t.box.options&&t.box.options.display===!1?e:e+1,0)||1,d=Object.freeze({outerWidth:t,outerHeight:n,padding:i,availableWidth:a,availableHeight:o,vBoxMaxWidth:a/2/u,hBoxMaxHeight:o/2}),f=Object.assign({},i);$m(f,vf(r));let p=Object.assign({maxPadding:f,w:a,h:o,x:i.left,y:i.top},i),m=Xm(c.concat(l),d);rh(s.fullSize,p,d,m),rh(c,p,d,m),rh(l,p,d,m)&&rh(c,p,d,m),th(p),ah(s.leftAndTop,p,d,m),p.x+=p.w,p.y+=p.h,ah(s.rightAndBottom,p,d,m),e.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},_u(s.chartArea,t=>{let n=t.box;Object.assign(n,e.chartArea),n.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}},sh=class{acquireContext(e,t){}releaseContext(e){return!1}addEventListener(e,t,n){}removeEventListener(e,t,n){}getDevicePixelRatio(){return 1}getMaximumSize(e,t,n,r){return t=Math.max(0,t||e.width),n||=e.height,{width:t,height:Math.max(0,r?Math.floor(t/r):n)}}isAttached(e){return!0}updateConfig(e){}},ch=class extends sh{acquireContext(e){return e&&e.getContext&&e.getContext(`2d`)||null}updateConfig(e){e.options.animation=!1}},lh=`$chartjs`,uh={touchstart:`mousedown`,touchmove:`mousemove`,touchend:`mouseup`,pointerenter:`mouseenter`,pointerdown:`mousedown`,pointermove:`mousemove`,pointerup:`mouseup`,pointerleave:`mouseout`,pointerout:`mouseout`},dh=e=>e===null||e===``;function fh(e,t){let n=e.style,r=e.getAttribute(`height`),i=e.getAttribute(`width`);if(e[lh]={initial:{height:r,width:i,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||`block`,n.boxSizing=n.boxSizing||`border-box`,dh(i)){let t=mp(e,`width`);t!==void 0&&(e.width=t)}if(dh(r))if(e.style.height===``)e.height=e.width/(t||2);else{let t=mp(e,`height`);t!==void 0&&(e.height=t)}return e}var ph=pp?{passive:!0}:!1;function mh(e,t,n){e&&e.addEventListener(t,n,ph)}function hh(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,ph)}function gh(e,t){let n=uh[e.type]||e.type,{x:r,y:i}=cp(e,t);return{type:n,chart:t,native:e,x:r===void 0?null:r,y:i===void 0?null:i}}function _h(e,t){for(let n of e)if(n===t||n.contains(t))return!0}function vh(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=_h(n.addedNodes,r),t&&=!_h(n.removedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}function yh(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=_h(n.removedNodes,r),t&&=!_h(n.addedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}var bh=new Map,xh=0;function Sh(){let e=window.devicePixelRatio;e!==xh&&(xh=e,bh.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function Ch(e,t){bh.size||window.addEventListener(`resize`,Sh),bh.set(e,t)}function wh(e){bh.delete(e),bh.size||window.removeEventListener(`resize`,Sh)}function Th(e,t,n){let r=e.canvas,i=r&&ep(r);if(!i)return;let a=_d((e,t)=>{let r=i.clientWidth;n(e,t),r{let t=e[0],n=t.contentRect.width,r=t.contentRect.height;n===0&&r===0||a(n,r)});return o.observe(i),Ch(e,a),o}function Eh(e,t,n){n&&n.disconnect(),t===`resize`&&wh(e)}function Dh(e,t,n){let r=e.canvas,i=_d(t=>{e.ctx!==null&&n(gh(t,e))},e);return mh(r,t,i),i}var Oh=class extends sh{acquireContext(e,t){let n=e&&e.getContext&&e.getContext(`2d`);return n&&n.canvas===e?(fh(e,t),n):null}releaseContext(e){let t=e.canvas;if(!t[lh])return!1;let n=t[lh].initial;[`height`,`width`].forEach(e=>{let r=n[e];cu(r)?t.removeAttribute(e):t.setAttribute(e,r)});let r=n.style||{};return Object.keys(r).forEach(e=>{t.style[e]=r[e]}),t.width=t.width,delete t[lh],!0}addEventListener(e,t,n){this.removeEventListener(e,t);let r=e.$proxies||={};r[t]=({attach:vh,detach:yh,resize:Th}[t]||Dh)(e,t,n)}removeEventListener(e,t){let n=e.$proxies||={},r=n[t];r&&(({attach:Eh,detach:Eh,resize:Eh}[t]||hh)(e,t,r),n[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,n,r){return dp(e,t,n,r)}isAttached(e){let t=e&&ep(e);return!!(t&&t.isConnected)}};function kh(e){return!$f()||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas?ch:Oh}var Ah=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(e){let{x:t,y:n}=this.getProps([`x`,`y`],e);return{x:t,y:n}}hasValue(){return Ju(this.x)&&Ju(this.y)}getProps(e,t){let n=this.$animations;if(!t||!n)return this;let r={};return e.forEach(e=>{r[e]=n[e]&&n[e].active()?n[e]._to:this[e]}),r}};function jh(e,t){let n=e.options.ticks,r=Mh(e),i=Math.min(n.maxTicksLimit||r,r),a=n.major.enabled?Ph(t):[],o=a.length,s=a[0],c=a[o-1],l=[];if(o>i)return Fh(t,l,a,o/i),l;let u=Nh(a,t,i);if(o>0){let e,n,r=o>1?Math.round((c-s)/(o-1)):null;for(Ih(t,l,u,cu(r)?0:s-r,s),e=0,n=o-1;ei)return t}return Math.max(i,1)}function Ph(e){let t=[],n,r;for(n=0,r=e.length;ne===`left`?`right`:e===`right`?`left`:e,zh=(e,t,n)=>t===`top`||t===`left`?e[t]+n:e[t]-n,Bh=(e,t)=>Math.min(t||e,e);function Vh(e,t){let n=[],r=e.length/t,i=e.length,a=0;for(;ao+s)))return c}function Uh(e,t){_u(e,e=>{let n=e.gc,r=n.length/2,i;if(r>t){for(i=0;in?n:t,n=r&&t>n?t:n,{min:fu(t,fu(n,t)),max:fu(n,fu(t,n))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||=this._computeLabelItems(e)}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){gu(this.options.beforeUpdate,[this])}update(e,t,n){let{beginAtZero:r,grace:i,ticks:a}=this.options,o=a.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=t,this._margins=n=Object.assign({left:0,right:0,top:0,bottom:0},n),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+n.left+n.right:this.height+n.top+n.bottom,this._dataLimitsCached||=(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=xf(this,i,r),!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let s=o=i||n<=1||!this.isHorizontal()){this.labelRotation=r;return}let l=this._getLabelSizes(),u=l.widest.width,d=l.highest.height,f=ad(this.chart.width-u,0,this.maxWidth);o=e.offset?this.maxWidth/n:f/(n-1),u+6>o&&(o=f/(n-(e.offset?.5:1)),s=this.maxHeight-Wh(e.grid)-t.padding-Gh(e.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),a=Qu(Math.min(Math.asin(ad((l.highest.height+6)/o,-1,1)),Math.asin(ad(s/c,-1,1))-Math.asin(ad(d/c,-1,1)))),a=Math.max(r,Math.min(i,a))),this.labelRotation=a}afterCalculateLabelRotation(){gu(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){gu(this.options.beforeFit,[this])}fit(){let e={width:0,height:0},{chart:t,options:{ticks:n,title:r,grid:i}}=this,a=this._isVisible(),o=this.isHorizontal();if(a){let a=Gh(r,t.options.font);if(o?(e.width=this.maxWidth,e.height=Wh(i)+a):(e.height=this.maxHeight,e.width=Wh(i)+a),n.display&&this.ticks.length){let{first:t,last:r,widest:i,highest:a}=this._getLabelSizes(),s=n.padding*2,c=Zu(this.labelRotation),l=Math.cos(c),u=Math.sin(c);if(o){let t=n.mirror?0:u*i.width+l*a.height;e.height=Math.min(this.maxHeight,e.height+t+s)}else{let t=n.mirror?0:l*i.width+u*a.height;e.width=Math.min(this.maxWidth,e.width+t+s)}this._calculatePadding(t,r,u,l)}}this._handleMargins(),o?(this.width=this._length=t.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=t.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,t,n,r){let{ticks:{align:i,padding:a},position:o}=this.options,s=this.labelRotation!==0,c=o!==`top`&&this.axis===`x`;if(this.isHorizontal()){let o=this.getPixelForTick(0)-this.left,l=this.right-this.getPixelForTick(this.ticks.length-1),u=0,d=0;s?c?(u=r*e.width,d=n*t.height):(u=n*e.height,d=r*t.width):i===`start`?d=t.width:i===`end`?u=e.width:i!==`inner`&&(u=e.width/2,d=t.width/2),this.paddingLeft=Math.max((u-o+a)*this.width/(this.width-o),0),this.paddingRight=Math.max((d-l+a)*this.width/(this.width-l),0)}else{let n=t.height/2,r=e.height/2;i===`start`?(n=0,r=e.height):i===`end`&&(n=t.height,r=0),this.paddingTop=n+a,this.paddingBottom=r+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){gu(this.options.afterFit,[this])}isHorizontal(){let{axis:e,position:t}=this.options;return t===`top`||t===`bottom`||e===`x`}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let t,n;for(t=0,n=e.length;t({width:a[e]||0,height:o[e]||0});return{first:C(0),last:C(t-1),widest:C(x),highest:C(S),widths:a,heights:o}}getLabelForValue(e){return e}getPixelForValue(e,t){return NaN}getValueForPixel(e){}getPixelForTick(e){let t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);let t=this._startPixel+e*this._length;return od(this._alignToPixels?Xd(this.chart,t,0):t)}getDecimalForPixel(e){let t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:e,max:t}=this;return e<0&&t<0?t:e>0&&t>0?e:0}getContext(e){let t=this.ticks||[];if(e>=0&&eo*r?o/n:s/r:s*r0:!!e}_computeGridLineItems(e){let t=this.axis,n=this.chart,r=this.options,{grid:i,position:a,border:o}=r,s=i.offset,c=this.isHorizontal(),l=this.ticks.length+ +!!s,u=Wh(i),d=[],f=o.setContext(this.getContext()),p=f.display?f.width:0,m=p/2,h=function(e){return Xd(n,e,p)},g,_,v,y,b,x,S,C,w,T,ee,te;if(a===`top`)g=h(this.bottom),x=this.bottom-u,C=g-m,T=h(e.top)+m,te=e.bottom;else if(a===`bottom`)g=h(this.top),T=e.top,te=h(e.bottom)-m,x=g+m,C=this.top+u;else if(a===`left`)g=h(this.right),b=this.right-u,S=g-m,w=h(e.left)+m,ee=e.right;else if(a===`right`)g=h(this.left),w=e.left,ee=h(e.right)-m,b=g+m,S=this.left+u;else if(t===`x`){if(a===`center`)g=h((e.top+e.bottom)/2+.5);else if(uu(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}T=e.top,te=e.bottom,x=g+m,C=x+u}else if(t===`y`){if(a===`center`)g=h((e.left+e.right)/2);else if(uu(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}b=g-m,S=b-u,w=e.left,ee=e.right}let ne=pu(r.ticks.maxTicksLimit,l),re=Math.max(1,Math.ceil(l/ne));for(_=0;_0&&(a-=r/2);break}f={left:a,top:i,width:r+t.width,height:n+t.height,color:e.backdropColor}}h.push({label:y,font:w,textOffset:te,options:{rotation:m,color:n,strokeColor:s,strokeWidth:l,textAlign:d,textBaseline:ne,translation:[b,x],backdrop:f}})}return h}_getXAxisLabelAlignment(){let{position:e,ticks:t}=this.options;if(-Zu(this.labelRotation))return e===`top`?`left`:`right`;let n=`center`;return t.align===`start`?n=`left`:t.align===`end`?n=`right`:t.align===`inner`&&(n=`inner`),n}_getYAxisLabelAlignment(e){let{position:t,ticks:{crossAlign:n,mirror:r,padding:i}}=this.options,a=this._getLabelSizes(),o=e+i,s=a.widest.width,c,l;return t===`left`?r?(l=this.right+i,n===`near`?c=`left`:n===`center`?(c=`center`,l+=s/2):(c=`right`,l+=s)):(l=this.right-o,n===`near`?c=`right`:n===`center`?(c=`center`,l-=s/2):(c=`left`,l=this.left)):t===`right`?r?(l=this.left+i,n===`near`?c=`right`:n===`center`?(c=`center`,l-=s/2):(c=`left`,l-=s)):(l=this.left+o,n===`near`?c=`left`:n===`center`?(c=`center`,l+=s/2):(c=`right`,l=this.right)):c=`right`,{textAlign:c,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;let e=this.chart,t=this.options.position;if(t===`left`||t===`right`)return{top:0,left:this.left,bottom:e.height,right:this.right};if(t===`top`||t===`bottom`)return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){let{ctx:e,options:{backgroundColor:t},left:n,top:r,width:i,height:a}=this;t&&(e.save(),e.fillStyle=t,e.fillRect(n,r,i,a),e.restore())}getLineWidthForValue(e){let t=this.options.grid;if(!this._isVisible()||!t.display)return 0;let n=this.ticks.findIndex(t=>t.value===e);return n>=0?t.setContext(this.getContext(n)).lineWidth:0}drawGrid(e){let t=this.options.grid,n=this.ctx,r=this._gridLineItems||=this._computeGridLineItems(e),i,a,o=(e,t,r)=>{!r.width||!r.color||(n.save(),n.lineWidth=r.width,n.strokeStyle=r.color,n.setLineDash(r.borderDash||[]),n.lineDashOffset=r.borderDashOffset,n.beginPath(),n.moveTo(e.x,e.y),n.lineTo(t.x,t.y),n.stroke(),n.restore())};if(t.display)for(i=0,a=r.length;i{this.draw(e)}}]:[{z:r,draw:e=>{this.drawBackground(),this.drawGrid(e),this.drawTitle()}},{z:i,draw:()=>{this.drawBorder()}},{z:n,draw:e=>{this.drawLabels(e)}}]}getMatchingVisibleMetas(e){let t=this.chart.getSortedVisibleDatasetMetas(),n=this.axis+`AxisID`,r=[],i,a;for(i=0,a=t.length;i{let r=n.split(`.`),i=r.pop(),a=[e].concat(r).join(`.`),o=t[n].split(`.`),s=o.pop(),c=o.join(`.`);Kd.route(a,i,c,s)})}function eg(e){return`id`in e&&`defaults`in e}var tg=new class{constructor(){this.controllers=new Zh(um,`datasets`,!0),this.elements=new Zh(Ah,`elements`),this.plugins=new Zh(Object,`plugins`),this.scales=new Zh(Xh,`scales`),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each(`register`,e)}remove(...e){this._each(`unregister`,e)}addControllers(...e){this._each(`register`,e,this.controllers)}addElements(...e){this._each(`register`,e,this.elements)}addPlugins(...e){this._each(`register`,e,this.plugins)}addScales(...e){this._each(`register`,e,this.scales)}getController(e){return this._get(e,this.controllers,`controller`)}getElement(e){return this._get(e,this.elements,`element`)}getPlugin(e){return this._get(e,this.plugins,`plugin`)}getScale(e){return this._get(e,this.scales,`scale`)}removeControllers(...e){this._each(`unregister`,e,this.controllers)}removeElements(...e){this._each(`unregister`,e,this.elements)}removePlugins(...e){this._each(`unregister`,e,this.plugins)}removeScales(...e){this._each(`unregister`,e,this.scales)}_each(e,t,n){[...t].forEach(t=>{let r=n||this._getRegistryForType(t);n||r.isForType(t)||r===this.plugins&&t.id?this._exec(e,r,t):_u(t,t=>{let r=n||this._getRegistryForType(t);this._exec(e,r,t)})})}_exec(e,t,n){let r=ku(e);gu(n[`before`+r],[],n),t[e](n),gu(n[`after`+r],[],n)}_getRegistryForType(e){for(let t=0;te.filter(e=>!t.some(t=>e.plugin.id===t.plugin.id));this._notify(r(t,n),e,`stop`),this._notify(r(n,t),e,`start`)}};function rg(e){let t={},n=[],r=Object.keys(tg.plugins.items);for(let e=0;e1&&ug(e[0].toLowerCase());if(t)return t}throw Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function pg(e,t,n){if(n[t+`AxisID`]===e)return{axis:t}}function mg(e,t){if(t.data&&t.data.datasets){let n=t.data.datasets.filter(t=>t.xAxisID===e||t.yAxisID===e);if(n.length)return pg(e,`x`,n[0])||pg(e,`y`,n[0])}return{}}function hg(e,t){let n=Hd[e.type]||{scales:{}},r=t.scales||{},i=sg(e.type,t),a=Object.create(null);return Object.keys(r).forEach(t=>{let o=r[t];if(!uu(o))return console.error(`Invalid scale configuration for scale: ${t}`);if(o._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);let s=fg(t,o,mg(t,e),Kd.scales[o.type]),c=lg(s,i),l=n.scales||{};a[t]=Cu(Object.create(null),[{axis:s},o,l[s],l[c]])}),e.data.datasets.forEach(n=>{let i=n.type||e.type,o=n.indexAxis||sg(i,t),s=(Hd[i]||{}).scales||{};Object.keys(s).forEach(e=>{let t=cg(e,o),i=n[t+`AxisID`]||t;a[i]=a[i]||Object.create(null),Cu(a[i],[{axis:t},r[i],s[e]])})}),Object.keys(a).forEach(e=>{let t=a[e];Cu(t,[Kd.scales[t.type],Kd.scale])}),a}function gg(e){let t=e.options||={};t.plugins=pu(t.plugins,{}),t.scales=hg(e,t)}function _g(e){return e||={},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function vg(e){return e||={},e.data=_g(e.data),gg(e),e}var yg=new Map,bg=new Set;function xg(e,t){let n=yg.get(e);return n||(n=t(),yg.set(e,n),bg.add(n)),n}var Sg=(e,t,n)=>{let r=Ou(t,n);r!==void 0&&e.add(r)},Cg=class{constructor(e){this._config=vg(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=_g(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){let e=this._config;this.clearCache(),gg(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return xg(e,()=>[[`datasets.${e}`,``]])}datasetAnimationScopeKeys(e,t){return xg(`${e}.transition.${t}`,()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,``]])}datasetElementScopeKeys(e,t){return xg(`${e}-${t}`,()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,``]])}pluginScopeKeys(e){let t=e.id,n=this.type;return xg(`${n}-plugin-${t}`,()=>[[`plugins.${t}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,t){let n=this._scopeCache,r=n.get(e);return(!r||t)&&(r=new Map,n.set(e,r)),r}getOptionScopes(e,t,n){let{options:r,type:i}=this,a=this._cachedScopes(e,n),o=a.get(t);if(o)return o;let s=new Set;t.forEach(t=>{e&&(s.add(e),t.forEach(t=>Sg(s,e,t))),t.forEach(e=>Sg(s,r,e)),t.forEach(e=>Sg(s,Hd[i]||{},e)),t.forEach(e=>Sg(s,Kd,e)),t.forEach(e=>Sg(s,Ud,e))});let c=Array.from(s);return c.length===0&&c.push(Object.create(null)),bg.has(t)&&a.set(t,c),c}chartOptionScopes(){let{options:e,type:t}=this;return[e,Hd[t]||{},Kd.datasets[t]||{},{type:t},Kd,Ud]}resolveNamedOptions(e,t,n,r=[``]){let i={$shared:!0},{resolver:a,subPrefixes:o}=wg(this._resolverCache,e,r),s=a;if(Eg(a,t)){i.$shared=!1,n=ju(n)?n():n;let t=this.createResolver(e,n,o);s=wf(a,n,t)}for(let e of t)i[e]=s[e];return i}createResolver(e,t,n=[``],r){let{resolver:i}=wg(this._resolverCache,e,n);return uu(t)?wf(i,t,void 0,r):i}};function wg(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));let i=n.join(),a=r.get(i);return a||(a={resolver:Cf(t,n),subPrefixes:n.filter(e=>!e.toLowerCase().includes(`hover`))},r.set(i,a)),a}var Tg=e=>uu(e)&&Object.getOwnPropertyNames(e).some(t=>ju(e[t]));function Eg(e,t){let{isScriptable:n,isIndexable:r}=Tf(e);for(let i of t){let t=n(i),a=r(i),o=(a||t)&&e[i];if(t&&(ju(o)||Tg(o))||a&&lu(o))return!0}return!1}var Dg=`4.5.1`,Og=[`top`,`bottom`,`left`,`right`,`chartArea`];function kg(e,t){return e===`top`||e===`bottom`||Og.indexOf(e)===-1&&t===`x`}function Ag(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function jg(e){let t=e.chart,n=t.options.animation;t.notifyPlugins(`afterRender`),gu(n&&n.onComplete,[e],t)}function Mg(e){let t=e.chart,n=t.options.animation;gu(n&&n.onProgress,[e],t)}function Ng(e){return $f()&&typeof e==`string`?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}var Pg={},Fg=e=>{let t=Ng(e);return Object.values(Pg).filter(e=>e.canvas===t).pop()};function Ig(e,t,n){let r=Object.keys(e);for(let i of r){let r=+i;if(r>=t){let a=e[i];delete e[i],(n>0||r>t)&&(e[r+n]=a)}}}function Lg(e,t,n,r){return!n||e.type===`mouseout`?null:r?t:e}var Rg=class{static defaults=Kd;static instances=Pg;static overrides=Hd;static registry=tg;static version=Dg;static getChart=Fg;static register(...e){tg.add(...e),zg()}static unregister(...e){tg.remove(...e),zg()}constructor(e,t){let n=this.config=new Cg(t),r=Ng(e),i=Fg(r);if(i)throw Error(`Canvas is already in use. Chart with ID '`+i.id+`' must be destroyed before the canvas with ID '`+i.canvas.id+`' can be reused.`);let a=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||(kh(r))),this.platform.updateConfig(n);let o=this.platform.acquireContext(r,a.aspectRatio),s=o&&o.canvas,c=s&&s.height,l=s&&s.width;if(this.id=su(),this.ctx=o,this.canvas=s,this.width=l,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new ng,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=vd(e=>this.update(e),a.resizeDelay||0),this._dataChanges=[],Pg[this.id]=this,!o||!s){console.error(`Failed to create chart: can't acquire context from the given item`);return}Rp.listen(this,`complete`,jg),Rp.listen(this,`progress`,Mg),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:e,maintainAspectRatio:t},width:n,height:r,_aspectRatio:i}=this;return cu(e)?t&&i?i:r?n/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return tg}_initialize(){return this.notifyPlugins(`beforeInit`),this.options.responsive?this.resize():fp(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(`afterInit`),this}clear(){return Zd(this.canvas,this.ctx),this}stop(){return Rp.stop(this),this}resize(e,t){Rp.running(this)?this._resizeBeforeDraw={width:e,height:t}:this._resize(e,t)}_resize(e,t){let n=this.options,r=this.canvas,i=n.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(r,e,t,i),o=n.devicePixelRatio||this.platform.getDevicePixelRatio(),s=this.width?`resize`:`attach`;this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,fp(this,o,!0)&&(this.notifyPlugins(`resize`,{size:a}),gu(n.onResize,[this,a],this),this.attached&&this._doResize(s)&&this.render())}ensureScalesHaveIDs(){_u(this.options.scales||{},(e,t)=>{e.id=t})}buildOrUpdateScales(){let e=this.options,t=e.scales,n=this.scales,r=Object.keys(n).reduce((e,t)=>(e[t]=!1,e),{}),i=[];t&&(i=i.concat(Object.keys(t).map(e=>{let n=t[e],r=fg(e,n),i=r===`r`,a=r===`x`;return{options:n,dposition:i?`chartArea`:a?`bottom`:`left`,dtype:i?`radialLinear`:a?`category`:`linear`}}))),_u(i,t=>{let i=t.options,a=i.id,o=fg(a,i),s=pu(i.type,t.dtype);(i.position===void 0||kg(i.position,o)!==kg(t.dposition))&&(i.position=t.dposition),r[a]=!0;let c=null;a in n&&n[a].type===s?c=n[a]:(c=new(tg.getScale(s))({id:a,type:s,ctx:this.ctx,chart:this}),n[c.id]=c),c.init(i,e)}),_u(r,(e,t)=>{e||delete n[t]}),_u(n,e=>{oh.configure(this,e,e.options),oh.addBox(this,e)})}_updateMetasets(){let e=this._metasets,t=this.data.datasets.length,n=e.length;if(e.sort((e,t)=>e.index-t.index),n>t){for(let e=t;et.length&&delete this._stacks,e.forEach((e,n)=>{t.filter(t=>t===e._dataset).length===0&&this._destroyDatasetMeta(n)})}buildOrUpdateControllers(){let e=[],t=this.data.datasets,n,r;for(this._removeUnreferencedMetasets(),n=0,r=t.length;n{this.getDatasetMeta(t).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins(`reset`)}update(e){let t=this.config;t.update();let n=this._options=t.createResolver(t.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins(`beforeUpdate`,{mode:e,cancelable:!0})===!1)return;let i=this.buildOrUpdateControllers();this.notifyPlugins(`beforeElementsUpdate`);let a=0;for(let e=0,t=this.data.datasets.length;e{e.reset()}),this._updateDatasets(e),this.notifyPlugins(`afterUpdate`,{mode:e}),this._layers.sort(Ag(`z`,`_idx`));let{_active:o,_lastEvent:s}=this;s?this._eventHandler(s,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){_u(this.scales,e=>{oh.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let e=this.options;(!Mu(new Set(Object.keys(this._listeners)),new Set(e.events))||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:e}=this,t=this._getUniformDataChanges()||[];for(let{method:n,start:r,count:i}of t)Ig(e,r,n===`_removeElements`?-i:i)}_getUniformDataChanges(){let e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];let t=this.data.datasets.length,n=t=>new Set(e.filter(e=>e[0]===t).map((e,t)=>t+`,`+e.splice(1).join(`,`))),r=n(0);for(let e=1;ee.split(`,`)).map(e=>({method:e[1],start:+e[2],count:+e[3]}))}_updateLayout(e){if(this.notifyPlugins(`beforeLayout`,{cancelable:!0})===!1)return;oh.update(this,this.width,this.height,e);let t=this.chartArea,n=t.width<=0||t.height<=0;this._layers=[],_u(this.boxes,e=>{n&&e.position===`chartArea`||(e.configure&&e.configure(),this._layers.push(...e._layers()))},this),this._layers.forEach((e,t)=>{e._idx=t}),this.notifyPlugins(`afterLayout`)}_updateDatasets(e){if(this.notifyPlugins(`beforeDatasetsUpdate`,{mode:e,cancelable:!0})!==!1){for(let e=0,t=this.data.datasets.length;e=0;--t)this._drawDataset(e[t]);this.notifyPlugins(`afterDatasetsDraw`)}_drawDataset(e){let t=this.ctx,n={meta:e,index:e.index,cancelable:!0},r=Lp(this,e);this.notifyPlugins(`beforeDatasetDraw`,n)!==!1&&(r&&tf(t,r),e.controller.draw(),r&&nf(t),n.cancelable=!1,this.notifyPlugins(`afterDatasetDraw`,n))}isPointInArea(e){return ef(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,n,r){let i=Um.modes[t];return typeof i==`function`?i(this,e,n,r):[]}getDatasetMeta(e){let t=this.data.datasets[e],n=this._metasets,r=n.filter(e=>e&&e._dataset===t).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t&&t.order||0,index:e,_dataset:t,_parsed:[],_sorted:!1},n.push(r)),r}getContext(){return this.$context||=Sf(null,{chart:this,type:`chart`})}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){let t=this.data.datasets[e];if(!t)return!1;let n=this.getDatasetMeta(e);return typeof n.hidden==`boolean`?!n.hidden:!t.hidden}setDatasetVisibility(e,t){let n=this.getDatasetMeta(e);n.hidden=!t}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,t,n){let r=n?`show`:`hide`,i=this.getDatasetMeta(e),a=i.controller._resolveAnimations(void 0,r);Au(t)?(i.data[t].hidden=!n,this.update()):(this.setDatasetVisibility(e,n),a.update(i,{visible:n}),this.update(t=>t.datasetIndex===e?r:void 0))}hide(e,t){this._updateVisibility(e,t,!1)}show(e,t){this._updateVisibility(e,t,!0)}_destroyDatasetMeta(e){let t=this._metasets[e];t&&t.controller&&t.controller._destroy(),delete this._metasets[e]}_stop(){let e,t;for(this.stop(),Rp.remove(this),e=0,t=this.data.datasets.length;e{t.addEventListener(this,n,r),e[n]=r},r=(e,t,n)=>{e.offsetX=t,e.offsetY=n,this._eventHandler(e)};_u(this.options.events,e=>n(e,r))}bindResponsiveEvents(){this._responsiveListeners||={};let e=this._responsiveListeners,t=this.platform,n=(n,r)=>{t.addEventListener(this,n,r),e[n]=r},r=(n,r)=>{e[n]&&(t.removeEventListener(this,n,r),delete e[n])},i=(e,t)=>{this.canvas&&this.resize(e,t)},a,o=()=>{r(`attach`,o),this.attached=!0,this.resize(),n(`resize`,i),n(`detach`,a)};a=()=>{this.attached=!1,r(`resize`,i),this._stop(),this._resize(0,0),n(`attach`,o)},t.isAttached(this.canvas)?o():a()}unbindEvents(){_u(this._listeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._listeners={},_u(this._responsiveListeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,t,n){let r=n?`set`:`remove`,i,a,o,s;for(t===`dataset`&&(i=this.getDatasetMeta(e[0].datasetIndex),i.controller[`_`+r+`DatasetHoverStyle`]()),o=0,s=e.length;o{let n=this.getDatasetMeta(e);if(!n)throw Error(`No dataset found at index `+e);return{datasetIndex:e,element:n.data[t],index:t}});vu(n,t)||(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,t))}notifyPlugins(e,t,n){return this._plugins.notify(this,e,t,n)}isPluginEnabled(e){return this._plugins._cache.filter(t=>t.plugin.id===e).length===1}_updateHoverStyles(e,t,n){let r=this.options.hover,i=(e,t)=>e.filter(e=>!t.some(t=>e.datasetIndex===t.datasetIndex&&e.index===t.index)),a=i(t,e),o=n?e:i(e,t);a.length&&this.updateHoverStyle(a,r.mode,!1),o.length&&r.mode&&this.updateHoverStyle(o,r.mode,!0)}_eventHandler(e,t){let n={event:e,replay:t,cancelable:!0,inChartArea:this.isPointInArea(e)},r=t=>(t.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins(`beforeEvent`,n,r)===!1)return;let i=this._handleEvent(e,t,n.inChartArea);return n.cancelable=!1,this.notifyPlugins(`afterEvent`,n,r),(i||n.changed)&&this.render(),this}_handleEvent(e,t,n){let{_active:r=[],options:i}=this,a=t,o=this._getActiveElements(e,r,n,a),s=Nu(e),c=Lg(e,this._lastEvent,n,s);n&&(this._lastEvent=null,gu(i.onHover,[e,o,this],this),s&&gu(i.onClick,[e,o,this],this));let l=!vu(o,r);return(l||t)&&(this._active=o,this._updateHoverStyles(o,r,t)),this._lastEvent=c,l}_getActiveElements(e,t,n,r){if(e.type===`mouseout`)return[];if(!n)return t;let i=this.options.hover;return this.getElementsAtEventForMode(e,i.mode,i,r)}};function zg(){return _u(Rg.instances,e=>e._plugins.invalidate())}function Bg(e,t,n){let{startAngle:r,x:i,y:a,outerRadius:o,innerRadius:s,options:c}=t,{borderWidth:l,borderJoinStyle:u}=c,d=Math.min(l/o,rd(r-n));if(e.beginPath(),e.arc(i,a,o-l/2,r+d/2,n-d/2),s>0){let t=Math.min(l/s,rd(r-n));e.arc(i,a,s+l/2,n-t/2,r+t/2,!0)}else{let t=Math.min(l/2,o*rd(r-n));if(u===`round`)e.arc(i,a,t,n-Pu/2,r+Pu/2,!0);else if(u===`bevel`){let o=2*t*t,s=-o*Math.cos(n+Pu/2)+i,c=-o*Math.sin(n+Pu/2)+a,l=o*Math.cos(r+Pu/2)+i,u=o*Math.sin(r+Pu/2)+a;e.lineTo(s,c),e.lineTo(l,u)}}e.closePath(),e.moveTo(0,0),e.rect(0,0,e.canvas.width,e.canvas.height),e.clip(`evenodd`)}function Vg(e,t,n){let{startAngle:r,pixelMargin:i,x:a,y:o,outerRadius:s,innerRadius:c}=t,l=i/s;e.beginPath(),e.arc(a,o,s,r-l,n+l),c>i?(l=i/c,e.arc(a,o,c,n+l,r-l,!0)):e.arc(a,o,i,n+zu,r-zu),e.closePath(),e.clip()}function Hg(e){return hf(e,[`outerStart`,`outerEnd`,`innerStart`,`innerEnd`])}function Ug(e,t,n,r){let i=Hg(e.options.borderRadius),a=(n-t)/2,o=Math.min(a,r*t/2),s=e=>{let t=(n-Math.min(a,e))*r/2;return ad(e,0,Math.min(a,t))};return{outerStart:s(i.outerStart),outerEnd:s(i.outerEnd),innerStart:ad(i.innerStart,0,o),innerEnd:ad(i.innerEnd,0,o)}}function Wg(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function Gg(e,t,n,r,i,a){let{x:o,y:s,startAngle:c,pixelMargin:l,innerRadius:u}=t,d=Math.max(t.outerRadius+r+n-l,0),f=u>0?u+r+n+l:0,p=0,m=i-c;if(r){let e=((u>0?u-r:0)+(d>0?d-r:0))/2;p=(m-(e===0?m:m*e/(e+r)))/2}let h=(m-Math.max(.001,m*d-n/Pu)/d)/2,g=c+h+p,_=i-h-p,{outerStart:v,outerEnd:y,innerStart:b,innerEnd:x}=Ug(t,f,d,_-g),S=d-v,C=d-y,w=g+v/S,T=_-y/C,ee=f+b,te=f+x,ne=g+b/ee,re=_-x/te;if(e.beginPath(),a){let t=(w+T)/2;if(e.arc(o,s,d,w,t),e.arc(o,s,d,t,T),y>0){let t=Wg(C,T,o,s);e.arc(t.x,t.y,y,T,_+zu)}let n=Wg(te,_,o,s);if(e.lineTo(n.x,n.y),x>0){let t=Wg(te,re,o,s);e.arc(t.x,t.y,x,_+zu,re+Math.PI)}let r=(_-x/f+(g+b/f))/2;if(e.arc(o,s,f,_-x/f,r,!0),e.arc(o,s,f,r,g+b/f,!0),b>0){let t=Wg(ee,ne,o,s);e.arc(t.x,t.y,b,ne+Math.PI,g-zu)}let i=Wg(S,g,o,s);if(e.lineTo(i.x,i.y),v>0){let t=Wg(S,w,o,s);e.arc(t.x,t.y,v,g-zu,w)}}else{e.moveTo(o,s);let t=Math.cos(w)*d+o,n=Math.sin(w)*d+s;e.lineTo(t,n);let r=Math.cos(T)*d+o,i=Math.sin(T)*d+s;e.lineTo(r,i)}e.closePath()}function Kg(e,t,n,r,i){let{fullCircles:a,startAngle:o,circumference:s}=t,c=t.endAngle;if(a){Gg(e,t,n,r,c,i);for(let t=0;t=Pu&&p===0&&u!==`miter`&&Bg(e,t,h),a||(Gg(e,t,n,r,h,i),e.stroke())}var Jg=class extends Ah{static id=`arc`;static defaults={borderAlign:`center`,borderColor:`#fff`,borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:`backgroundColor`};static descriptors={_scriptable:!0,_indexable:e=>e!==`borderDash`};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,t,n){let{angle:r,distance:i}=ed(this.getProps([`x`,`y`],n),{x:e,y:t}),{startAngle:a,endAngle:o,innerRadius:s,outerRadius:c,circumference:l}=this.getProps([`startAngle`,`endAngle`,`innerRadius`,`outerRadius`,`circumference`],n),u=(this.options.spacing+this.options.borderWidth)/2,d=pu(l,o-a),f=id(r,a,o)&&a!==o,p=d>=Fu||f,m=sd(i,s+u,c+u);return p&&m}getCenterPoint(e){let{x:t,y:n,startAngle:r,endAngle:i,innerRadius:a,outerRadius:o}=this.getProps([`x`,`y`,`startAngle`,`endAngle`,`innerRadius`,`outerRadius`],e),{offset:s,spacing:c}=this.options,l=(r+i)/2,u=(a+o+c+s)/2;return{x:t+Math.cos(l)*u,y:n+Math.sin(l)*u}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){let{options:t,circumference:n}=this,r=(t.offset||0)/4,i=(t.spacing||0)/2,a=t.circular;if(this.pixelMargin=t.borderAlign===`inner`?.33:0,this.fullCircles=n>Fu?Math.floor(n/Fu):0,n===0||this.innerRadius<0||this.outerRadius<0)return;e.save();let o=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(o)*r,Math.sin(o)*r);let s=r*(1-Math.sin(Math.min(Pu,n||0)));e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor,Kg(e,this,s,i,a),qg(e,this,s,i,a),e.restore()}};function Yg(e,t,n=t){e.lineCap=pu(n.borderCapStyle,t.borderCapStyle),e.setLineDash(pu(n.borderDash,t.borderDash)),e.lineDashOffset=pu(n.borderDashOffset,t.borderDashOffset),e.lineJoin=pu(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=pu(n.borderWidth,t.borderWidth),e.strokeStyle=pu(n.borderColor,t.borderColor)}function Xg(e,t,n){e.lineTo(n.x,n.y)}function Zg(e){return e.stepped?rf:e.tension||e.cubicInterpolationMode===`monotone`?af:Xg}function Qg(e,t,n={}){let r=e.length,{start:i=0,end:a=r-1}=n,{start:o,end:s}=t,c=Math.max(i,o),l=Math.min(a,s),u=is&&a>s;return{count:r,start:c,loop:t.loop,ilen:l(o+(l?s-e:e))%a,y=()=>{h!==g&&(e.lineTo(u,g),e.lineTo(u,h),e.lineTo(u,_))};for(c&&(p=i[v(0)],e.moveTo(p.x,p.y)),f=0;f<=s;++f){if(p=i[v(f)],p.skip)continue;let t=p.x,n=p.y,r=t|0;r===m?(ng&&(g=n),u=(d*u+t)/++d):(y(),e.lineTo(t,n),m=r,d=0,h=g=n),_=n}y()}function t_(e){let t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!==`monotone`&&!t.stepped&&!n?e_:$g}function n_(e){return e.stepped?gp:e.tension||e.cubicInterpolationMode===`monotone`?_p:hp}function r_(e,t,n,r){let i=t._path;i||(i=t._path=new Path2D,t.path(i,n,r)&&i.closePath()),Yg(e,t.options),e.stroke(i)}function i_(e,t,n,r){let{segments:i,options:a}=t,o=t_(t);for(let s of i)Yg(e,a,s.style),e.beginPath(),o(e,t,s,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}var a_=typeof Path2D==`function`;function o_(e,t,n,r){a_&&!t.options.segment?r_(e,t,n,r):i_(e,t,n,r)}var s_=class extends Ah{static id=`line`;static defaults={borderCapStyle:`butt`,borderDash:[],borderDashOffset:0,borderJoinStyle:`miter`,borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:`default`,fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:`backgroundColor`,borderColor:`borderColor`};static descriptors={_scriptable:!0,_indexable:e=>e!==`borderDash`&&e!==`fill`};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,t){let n=this.options;if((n.tension||n.cubicInterpolationMode===`monotone`)&&!n.stepped&&!this._pointsUpdated){let r=n.spanGaps?this._loop:this._fullLoop;Qf(this._points,n,e,r,t),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||=Ap(this,this.options.segment)}first(){let e=this.segments,t=this.points;return e.length&&t[e[0].start]}last(){let e=this.segments,t=this.points,n=e.length;return n&&t[e[n-1].end]}interpolate(e,t){let n=this.options,r=e[t],i=this.points,a=Dp(this,{property:t,start:r,end:r});if(!a.length)return;let o=[],s=n_(n),c,l;for(c=0,l=a.length;ce.replace(`rgb(`,`rgba(`).replace(`)`,`, 0.5)`));function S_(e){return b_[e%b_.length]}function C_(e){return x_[e%x_.length]}function w_(e,t){return e.borderColor=S_(t),e.backgroundColor=C_(t),++t}function T_(e,t){return e.backgroundColor=e.data.map(()=>S_(t++)),t}function E_(e,t){return e.backgroundColor=e.data.map(()=>C_(t++)),t}function D_(e){let t=0;return(n,r)=>{let i=e.getDatasetMeta(r).controller;i instanceof km?t=T_(n,t):i instanceof jm?t=E_(n,t):i&&(t=w_(n,t))}}function O_(e){let t;for(t in e)if(e[t].borderColor||e[t].backgroundColor)return!0;return!1}function k_(e){return e&&(e.borderColor||e.backgroundColor)}function A_(){return Kd.borderColor!==`rgba(0,0,0,0.1)`||Kd.backgroundColor!==`rgba(0,0,0,0.1)`}var j_={id:`colors`,defaults:{enabled:!0,forceOverride:!1},beforeLayout(e,t,n){if(!n.enabled)return;let{data:{datasets:r},options:i}=e.config,{elements:a}=i,o=O_(r)||k_(i)||a&&O_(a)||A_();if(!n.forceOverride&&o)return;let s=D_(e);r.forEach(s)}};function M_(e,t,n,r,i){let a=i.samples||r;if(a>=n)return e.slice(t,t+n);let o=[],s=(n-2)/(a-2),c=0,l=t+n-1,u=t,d,f,p,m,h;for(o[c++]=e[u],d=0;dp&&(p=m,f=e[a],h=a);o[c++]=f,u=h}return o[c++]=e[l],o}function N_(e,t,n,r){let i=0,a=0,o,s,c,l,u,d,f,p,m,h,g=[],_=t+n-1,v=e[t].x,y=e[_].x-v;for(o=t;oh&&(h=l,f=o),i=(a*i+s.x)/++a;else{let n=o-1;if(!cu(d)&&!cu(f)){let t=Math.min(d,f),r=Math.max(d,f);t!==p&&t!==n&&g.push({...e[t],x:i}),r!==p&&r!==n&&g.push({...e[r],x:i})}o>0&&n!==p&&g.push(e[n]),g.push(s),u=t,a=0,m=h=l,d=f=p=o}}return g}function P_(e){if(e._decimated){let t=e._data;delete e._decimated,delete e._data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,writable:!0,value:t})}}function F_(e){e.data.datasets.forEach(e=>{P_(e)})}function I_(e,t){let n=t.length,r=0,i,{iScale:a}=e,{min:o,max:s,minDefined:c,maxDefined:l}=a.getUserBounds();return c&&(r=ad(ld(t,a.axis,o).lo,0,n-1)),i=l?ad(ld(t,a.axis,s).hi+1,r,n)-r:n-r,{start:r,count:i}}var L_={id:`decimation`,defaults:{algorithm:`min-max`,enabled:!1},beforeElementsUpdate:(e,t,n)=>{if(!n.enabled){F_(e);return}let r=e.width;e.data.datasets.forEach((t,i)=>{let{_data:a,indexAxis:o}=t,s=e.getDatasetMeta(i),c=a||t.data;if(bf([o,e.options.indexAxis])===`y`||!s.controller.supportsDecimation)return;let l=e.scales[s.xAxisID];if(l.type!==`linear`&&l.type!==`time`||e.options.parsing)return;let{start:u,count:d}=I_(s,c);if(d<=(n.threshold||4*r)){P_(t);return}cu(a)&&(t._data=c,delete t.data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(e){this._data=e}}));let f;switch(n.algorithm){case`lttb`:f=M_(c,u,d,r,n);break;case`min-max`:f=N_(c,u,d,r);break;default:throw Error(`Unsupported decimation algorithm '${n.algorithm}'`)}t._decimated=f})},destroy(e){F_(e)}};function R_(e,t,n){let r=e.segments,i=e.points,a=t.points,o=[];for(let e of r){let{start:r,end:s}=e;s=V_(r,s,i);let c=z_(n,i[r],i[s],e.loop);if(!t.segments){o.push({source:e,target:c,start:i[r],end:i[s]});continue}let l=Dp(t,c);for(let t of l){let r=z_(n,a[t.start],a[t.end],t.loop),s=Ep(e,i,r);for(let e of s)o.push({source:e,target:t,start:{[n]:H_(c,r,`start`,Math.max)},end:{[n]:H_(c,r,`end`,Math.min)}})}}return o}function z_(e,t,n,r){if(r)return;let i=t[e],a=n[e];return e===`angle`&&(i=rd(i),a=rd(a)),{property:e,start:i,end:a}}function B_(e,t){let{x:n=null,y:r=null}=e||{},i=t.points,a=[];return t.segments.forEach(({start:e,end:t})=>{t=V_(e,t,i);let o=i[e],s=i[t];r===null?n!==null&&(a.push({x:n,y:o.y}),a.push({x:n,y:s.y})):(a.push({x:o.x,y:r}),a.push({x:s.x,y:r}))}),a}function V_(e,t,n){for(;t>e;t--){let e=n[t];if(!isNaN(e.x)&&!isNaN(e.y))break}return t}function H_(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function U_(e,t){let n=[],r=!1;return lu(e)?(r=!0,n=e):n=B_(e,t),n.length?new s_({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function W_(e){return e&&e.fill!==!1}function G_(e,t,n){let r=e[t].fill,i=[t],a;if(!n)return r;for(;r!==!1&&i.indexOf(r)===-1;){if(!du(r))return r;if(a=e[r],!a)return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function K_(e,t,n){let r=X_(e);if(uu(r))return!isNaN(r.value)&&r;let i=parseFloat(r);return du(i)&&Math.floor(i)===i?q_(r[0],t,i,n):[`origin`,`start`,`end`,`stack`,`shape`].indexOf(r)>=0&&r}function q_(e,t,n,r){return(e===`-`||e===`+`)&&(n=t+n),n===t||n<0||n>=r?!1:n}function J_(e,t){let n=null;return e===`start`?n=t.bottom:e===`end`?n=t.top:uu(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function Y_(e,t,n){let r;return r=e===`start`?n:e===`end`?t.options.reverse?t.min:t.max:uu(e)?e.value:t.getBaseValue(),r}function X_(e){let t=e.options,n=t.fill,r=pu(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?`origin`:r}function Z_(e){let{scale:t,index:n,line:r}=e,i=[],a=r.segments,o=r.points,s=Q_(t,n);s.push(U_({x:null,y:t.bottom},r));for(let e=0;e=0;--t){let n=i[t].$filler;n&&(n.line.updateControlPoints(a,n.axis),r&&n.fill&&sv(e.ctx,n,a))}},beforeDatasetsDraw(e,t,n){if(n.drawTime!==`beforeDatasetsDraw`)return;let r=e.getSortedVisibleDatasetMetas();for(let t=r.length-1;t>=0;--t){let n=r[t].$filler;W_(n)&&sv(e.ctx,n,e.chartArea)}},beforeDatasetDraw(e,t,n){let r=t.meta.$filler;!W_(r)||n.drawTime!==`beforeDatasetDraw`||sv(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:`beforeDatasetDraw`}},hv=(e,t)=>{let{boxHeight:n=t,boxWidth:r=t}=e;return e.usePointStyle&&(n=Math.min(n,t),r=e.pointStyleWidth||Math.min(r,t)),{boxWidth:r,boxHeight:n,itemHeight:Math.max(t,n)}},gv=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index,_v=class extends Ah{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t,n){this.maxWidth=e,this.maxHeight=t,this._margins=n,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let e=this.options.labels||{},t=gu(e.generateLabels,[this.chart],this)||[];e.filter&&(t=t.filter(t=>e.filter(t,this.chart.data))),e.sort&&(t=t.sort((t,n)=>e.sort(t,n,this.chart.data))),this.options.reverse&&t.reverse(),this.legendItems=t}fit(){let{options:e,ctx:t}=this;if(!e.display){this.width=this.height=0;return}let n=e.labels,r=yf(n.font),i=r.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:s}=hv(n,i),c,l;t.font=r.string,this.isHorizontal()?(c=this.maxWidth,l=this._fitRows(a,i,o,s)+10):(l=this.maxHeight,c=this._fitCols(a,r,o,s)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(l,e.maxHeight||this.maxHeight)}_fitRows(e,t,n,r){let{ctx:i,maxWidth:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],c=this.lineWidths=[0],l=r+o,u=e;i.textAlign=`left`,i.textBaseline=`middle`;let d=-1,f=-l;return this.legendItems.forEach((e,p)=>{let m=n+t/2+i.measureText(e.text).width;(p===0||c[c.length-1]+m+2*o>a)&&(u+=l,c[c.length-(p>0?0:1)]=0,f+=l,d++),s[p]={left:0,top:f,row:d,width:m,height:r},c[c.length-1]+=m+o}),u}_fitCols(e,t,n,r){let{ctx:i,maxHeight:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],c=this.columnSizes=[],l=a-e,u=o,d=0,f=0,p=0,m=0;return this.legendItems.forEach((e,a)=>{let{itemWidth:h,itemHeight:g}=vv(n,t,i,e,r);a>0&&f+g+2*o>l&&(u+=d+o,c.push({width:d,height:f}),p+=d+o,m++,d=f=0),s[a]={left:p,top:f,col:m,width:h,height:g},d=Math.max(d,h),f+=g+o}),u+=d,c.push({width:d,height:f}),u}adjustHitBoxes(){if(!this.options.display)return;let e=this._computeTitleHeight(),{legendHitBoxes:t,options:{align:n,labels:{padding:r},rtl:i}}=this,a=bp(i,this.left,this.width);if(this.isHorizontal()){let i=0,o=bd(n,this.left+r,this.right-this.lineWidths[i]);for(let s of t)i!==s.row&&(i=s.row,o=bd(n,this.left+r,this.right-this.lineWidths[i])),s.top+=this.top+e+r,s.left=a.leftForLtr(a.x(o),s.width),o+=s.width+r}else{let i=0,o=bd(n,this.top+e+r,this.bottom-this.columnSizes[i].height);for(let s of t)s.col!==i&&(i=s.col,o=bd(n,this.top+e+r,this.bottom-this.columnSizes[i].height)),s.top=o,s.left+=this.left+r,s.left=a.leftForLtr(a.x(s.left),s.width),o+=s.height+r}}isHorizontal(){return this.options.position===`top`||this.options.position===`bottom`}draw(){if(this.options.display){let e=this.ctx;tf(e,this),this._draw(),nf(e)}}_draw(){let{options:e,columnSizes:t,lineWidths:n,ctx:r}=this,{align:i,labels:a}=e,o=Kd.color,s=bp(e.rtl,this.left,this.width),c=yf(a.font),{padding:l}=a,u=c.size,d=u/2,f;this.drawTitle(),r.textAlign=s.textAlign(`left`),r.textBaseline=`middle`,r.lineWidth=.5,r.font=c.string;let{boxWidth:p,boxHeight:m,itemHeight:h}=hv(a,u),g=function(e,t,n){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;r.save();let i=pu(n.lineWidth,1);if(r.fillStyle=pu(n.fillStyle,o),r.lineCap=pu(n.lineCap,`butt`),r.lineDashOffset=pu(n.lineDashOffset,0),r.lineJoin=pu(n.lineJoin,`miter`),r.lineWidth=i,r.strokeStyle=pu(n.strokeStyle,o),r.setLineDash(pu(n.lineDash,[])),a.usePointStyle){let o={radius:m*Math.SQRT2/2,pointStyle:n.pointStyle,rotation:n.rotation,borderWidth:i},c=s.xPlus(e,p/2),l=t+d;$d(r,o,c,l,a.pointStyleWidth&&p)}else{let a=t+Math.max((u-m)/2,0),o=s.leftForLtr(e,p),c=_f(n.borderRadius);r.beginPath(),Object.values(c).some(e=>e!==0)?uf(r,{x:o,y:a,w:p,h:m,radius:c}):r.rect(o,a,p,m),r.fill(),i!==0&&r.stroke()}r.restore()},_=function(e,t,n){lf(r,n.text,e,t+h/2,c,{strikethrough:n.hidden,textAlign:s.textAlign(n.textAlign)})},v=this.isHorizontal(),y=this._computeTitleHeight();f=v?{x:bd(i,this.left+l,this.right-n[0]),y:this.top+l+y,line:0}:{x:this.left+l,y:bd(i,this.top+y+l,this.bottom-t[0].height),line:0},xp(this.ctx,e.textDirection);let b=h+l;this.legendItems.forEach((o,u)=>{r.strokeStyle=o.fontColor,r.fillStyle=o.fontColor;let m=r.measureText(o.text).width,h=s.textAlign(o.textAlign||=a.textAlign),x=p+d+m,S=f.x,C=f.y;s.setWidth(this.width),v?u>0&&S+x+l>this.right&&(C=f.y+=b,f.line++,S=f.x=bd(i,this.left+l,this.right-n[f.line])):u>0&&C+b>this.bottom&&(S=f.x=S+t[f.line].width+l,f.line++,C=f.y=bd(i,this.top+y+l,this.bottom-t[f.line].height));let w=s.x(S);if(g(w,C,o),S=xd(h,S+p+d,v?S+x:this.right,e.rtl),_(s.x(S),C,o),v)f.x+=x+l;else if(typeof o.text!=`string`){let e=c.lineHeight;f.y+=xv(o,e)+l}else f.y+=b}),Sp(this.ctx,e.textDirection)}drawTitle(){let e=this.options,t=e.title,n=yf(t.font),r=vf(t.padding);if(!t.display)return;let i=bp(e.rtl,this.left,this.width),a=this.ctx,o=t.position,s=n.size/2,c=r.top+s,l,u=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),l=this.top+c,u=bd(e.align,u,this.right-d);else{let t=this.columnSizes.reduce((e,t)=>Math.max(e,t.height),0);l=c+bd(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}let f=bd(o,u,u+d);a.textAlign=i.textAlign(yd(o)),a.textBaseline=`middle`,a.strokeStyle=t.color,a.fillStyle=t.color,a.font=n.string,lf(a,t.text,f,l,n)}_computeTitleHeight(){let e=this.options.title,t=yf(e.font),n=vf(e.padding);return e.display?t.lineHeight+n.height:0}_getLegendItemAt(e,t){let n,r,i;if(sd(e,this.left,this.right)&&sd(t,this.top,this.bottom)){for(i=this.legendHitBoxes,n=0;ne.length>t.length?e:t)),t+n.size/2+r.measureText(i).width}function bv(e,t,n){let r=e;return typeof t.text!=`string`&&(r=xv(t,n)),r}function xv(e,t){return t*(e.text?e.text.length:0)}function Sv(e,t){return!!((e===`mousemove`||e===`mouseout`)&&(t.onHover||t.onLeave)||t.onClick&&(e===`click`||e===`mouseup`))}var Cv={id:`legend`,_element:_v,start(e,t,n){let r=e.legend=new _v({ctx:e.ctx,options:n,chart:e});oh.configure(e,r,n),oh.addBox(e,r)},stop(e){oh.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){let r=e.legend;oh.configure(e,r,n),r.options=n},afterUpdate(e){let t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:`top`,align:`center`,fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){let r=t.datasetIndex,i=n.chart;i.isDatasetVisible(r)?(i.hide(r),t.hidden=!0):(i.show(r),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){let t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:i,color:a,useBorderRadius:o,borderRadius:s}}=e.legend.options;return e._getSortedDatasetMetas().map(e=>{let c=e.controller.getStyle(n?0:void 0),l=vf(c.borderWidth);return{text:t[e.index].label,fillStyle:c.backgroundColor,fontColor:a,hidden:!e.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:c.borderColor,pointStyle:r||c.pointStyle,rotation:c.rotation,textAlign:i||c.textAlign,borderRadius:o&&(s||c.borderRadius),datasetIndex:e.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:`center`,text:``}},descriptors:{_scriptable:e=>!e.startsWith(`on`),labels:{_scriptable:e=>![`generateLabels`,`filter`,`sort`].includes(e)}}},wv=class extends Ah{constructor(e){super(),this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t){let n=this.options;if(this.left=0,this.top=0,!n.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=e,this.height=this.bottom=t;let r=lu(n.text)?n.text.length:1;this._padding=vf(n.padding);let i=r*yf(n.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=i:this.width=i}isHorizontal(){let e=this.options.position;return e===`top`||e===`bottom`}_drawArgs(e){let{top:t,left:n,bottom:r,right:i,options:a}=this,o=a.align,s=0,c,l,u;return this.isHorizontal()?(l=bd(o,n,i),u=t+e,c=i-n):(a.position===`left`?(l=n+e,u=bd(o,r,t),s=Pu*-.5):(l=i-e,u=bd(o,t,r),s=Pu*.5),c=r-t),{titleX:l,titleY:u,maxWidth:c,rotation:s}}draw(){let e=this.ctx,t=this.options;if(!t.display)return;let n=yf(t.font),r=n.lineHeight/2+this._padding.top,{titleX:i,titleY:a,maxWidth:o,rotation:s}=this._drawArgs(r);lf(e,t.text,0,0,n,{color:t.color,maxWidth:o,rotation:s,textAlign:yd(t.align),textBaseline:`middle`,translation:[i,a]})}};function Tv(e,t){let n=new wv({ctx:e.ctx,options:t,chart:e});oh.configure(e,n,t),oh.addBox(e,n),e.titleBlock=n}var Ev={id:`title`,_element:wv,start(e,t,n){Tv(e,n)},stop(e){let t=e.titleBlock;oh.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){let r=e.titleBlock;oh.configure(e,r,n),r.options=n},defaults:{align:`center`,display:!1,font:{weight:`bold`},fullSize:!0,padding:10,position:`top`,text:``,weight:2e3},defaultRoutes:{color:`color`},descriptors:{_scriptable:!0,_indexable:!1}},Dv=new WeakMap,Ov={id:`subtitle`,start(e,t,n){let r=new wv({ctx:e.ctx,options:n,chart:e});oh.configure(e,r,n),oh.addBox(e,r),Dv.set(e,r)},stop(e){oh.removeBox(e,Dv.get(e)),Dv.delete(e)},beforeUpdate(e,t,n){let r=Dv.get(e);oh.configure(e,r,n),r.options=n},defaults:{align:`center`,display:!1,font:{weight:`normal`},fullSize:!0,padding:0,position:`top`,text:``,weight:1500},defaultRoutes:{color:`color`},descriptors:{_scriptable:!0,_indexable:!1}},kv={average(e){if(!e.length)return!1;let t,n,r=new Set,i=0,a=0;for(t=0,n=e.length;te+t)/r.size,y:i/a}},nearest(e,t){if(!e.length)return!1;let n=t.x,r=t.y,i=1/0,a,o,s;for(a=0,o=e.length;a-1?e.split(` +`):e}function Mv(e,t){let{element:n,datasetIndex:r,index:i}=t,a=e.getDatasetMeta(r).controller,{label:o,value:s}=a.getLabelAndValue(i);return{chart:e,label:o,parsed:a.getParsed(i),raw:e.data.datasets[r].data[i],formattedValue:s,dataset:a.getDataset(),dataIndex:i,datasetIndex:r,element:n}}function Nv(e,t){let n=e.chart.ctx,{body:r,footer:i,title:a}=e,{boxWidth:o,boxHeight:s}=t,c=yf(t.bodyFont),l=yf(t.titleFont),u=yf(t.footerFont),d=a.length,f=i.length,p=r.length,m=vf(t.padding),h=m.height,g=0,_=r.reduce((e,t)=>e+t.before.length+t.lines.length+t.after.length,0);if(_+=e.beforeBody.length+e.afterBody.length,d&&(h+=d*l.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),_){let e=t.displayColors?Math.max(s,c.lineHeight):c.lineHeight;h+=p*e+(_-p)*c.lineHeight+(_-1)*t.bodySpacing}f&&(h+=t.footerMarginTop+f*u.lineHeight+(f-1)*t.footerSpacing);let v=0,y=function(e){g=Math.max(g,n.measureText(e).width+v)};return n.save(),n.font=l.string,_u(e.title,y),n.font=c.string,_u(e.beforeBody.concat(e.afterBody),y),v=t.displayColors?o+2+t.boxPadding:0,_u(r,e=>{_u(e.before,y),_u(e.lines,y),_u(e.after,y)}),v=0,n.font=u.string,_u(e.footer,y),n.restore(),g+=m.width,{width:g,height:h}}function Pv(e,t){let{y:n,height:r}=t;return ne.height-r/2?`bottom`:`center`}function Fv(e,t,n,r){let{x:i,width:a}=r,o=n.caretSize+n.caretPadding;if(e===`left`&&i+a+o>t.width||e===`right`&&i-a-o<0)return!0}function Iv(e,t,n,r){let{x:i,width:a}=n,{width:o,chartArea:{left:s,right:c}}=e,l=`center`;return r===`center`?l=i<=(s+c)/2?`left`:`right`:i<=a/2?l=`left`:i>=o-a/2&&(l=`right`),Fv(l,e,t,n)&&(l=`center`),l}function Lv(e,t,n){let r=n.yAlign||t.yAlign||Pv(e,n);return{xAlign:n.xAlign||t.xAlign||Iv(e,t,n,r),yAlign:r}}function Rv(e,t){let{x:n,width:r}=e;return t===`right`?n-=r:t===`center`&&(n-=r/2),n}function zv(e,t,n){let{y:r,height:i}=e;return t===`top`?r+=n:t===`bottom`?r-=i+n:r-=i/2,r}function Bv(e,t,n,r){let{caretSize:i,caretPadding:a,cornerRadius:o}=e,{xAlign:s,yAlign:c}=n,l=i+a,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:p}=_f(o),m=Rv(t,s),h=zv(t,c,l);return c===`center`?s===`left`?m+=l:s===`right`&&(m-=l):s===`left`?m-=Math.max(u,f)+i:s===`right`&&(m+=Math.max(d,p)+i),{x:ad(m,0,r.width-t.width),y:ad(h,0,r.height-t.height)}}function Vv(e,t,n){let r=vf(n.padding);return t===`center`?e.x+e.width/2:t===`right`?e.x+e.width-r.right:e.x+r.left}function Hv(e){return Av([],jv(e))}function Uv(e,t,n){return Sf(e,{tooltip:t,tooltipItems:n,type:`tooltip`})}function Wv(e,t){let n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}var Gv={beforeTitle:ou,title(e){if(e.length>0){let t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode===`dataset`)return t.dataset.label||``;if(t.label)return t.label;if(r>0&&t.dataIndex{let t={before:[],lines:[],after:[]},i=Wv(n,e);Av(t.before,jv(Kv(i,`beforeLabel`,this,e))),Av(t.lines,Kv(i,`label`,this,e)),Av(t.after,jv(Kv(i,`afterLabel`,this,e))),r.push(t)}),r}getAfterBody(e,t){return Hv(Kv(t.callbacks,`afterBody`,this,e))}getFooter(e,t){let{callbacks:n}=t,r=Kv(n,`beforeFooter`,this,e),i=Kv(n,`footer`,this,e),a=Kv(n,`afterFooter`,this,e),o=[];return o=Av(o,jv(r)),o=Av(o,jv(i)),o=Av(o,jv(a)),o}_createItems(e){let t=this._active,n=this.chart.data,r=[],i=[],a=[],o=[],s,c;for(s=0,c=t.length;se.filter(t,r,i,n))),e.itemSort&&(o=o.sort((t,r)=>e.itemSort(t,r,n))),_u(o,t=>{let n=Wv(e.callbacks,t);r.push(Kv(n,`labelColor`,this,t)),i.push(Kv(n,`labelPointStyle`,this,t)),a.push(Kv(n,`labelTextColor`,this,t))}),this.labelColors=r,this.labelPointStyles=i,this.labelTextColors=a,this.dataPoints=o,o}update(e,t){let n=this.options.setContext(this.getContext()),r=this._active,i,a=[];if(!r.length)this.opacity!==0&&(i={opacity:0});else{let e=kv[n.position].call(this,r,this._eventPosition);a=this._createItems(n),this.title=this.getTitle(a,n),this.beforeBody=this.getBeforeBody(a,n),this.body=this.getBody(a,n),this.afterBody=this.getAfterBody(a,n),this.footer=this.getFooter(a,n);let t=this._size=Nv(this,n),o=Object.assign({},e,t),s=Lv(this.chart,n,o),c=Bv(n,o,s,this.chart);this.xAlign=s.xAlign,this.yAlign=s.yAlign,i={opacity:1,x:c.x,y:c.y,width:t.width,height:t.height,caretX:e.x,caretY:e.y}}this._tooltipItems=a,this.$context=void 0,i&&this._resolveAnimations().update(this,i),e&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:t})}drawCaret(e,t,n,r){let i=this.getCaretPosition(e,n,r);t.lineTo(i.x1,i.y1),t.lineTo(i.x2,i.y2),t.lineTo(i.x3,i.y3)}getCaretPosition(e,t,n){let{xAlign:r,yAlign:i}=this,{caretSize:a,cornerRadius:o}=n,{topLeft:s,topRight:c,bottomLeft:l,bottomRight:u}=_f(o),{x:d,y:f}=e,{width:p,height:m}=t,h,g,_,v,y,b;return i===`center`?(y=f+m/2,r===`left`?(h=d,g=h-a,v=y+a,b=y-a):(h=d+p,g=h+a,v=y-a,b=y+a),_=h):(g=r===`left`?d+Math.max(s,l)+a:r===`right`?d+p-Math.max(c,u)-a:this.caretX,i===`top`?(v=f,y=v-a,h=g-a,_=g+a):(v=f+m,y=v+a,h=g+a,_=g-a),b=v),{x1:h,x2:g,x3:_,y1:v,y2:y,y3:b}}drawTitle(e,t,n){let r=this.title,i=r.length,a,o,s;if(i){let c=bp(n.rtl,this.x,this.width);for(e.x=Vv(this,n.titleAlign,n),t.textAlign=c.textAlign(n.titleAlign),t.textBaseline=`middle`,a=yf(n.titleFont),o=n.titleSpacing,t.fillStyle=n.titleColor,t.font=a.string,s=0;se!==0)?(e.beginPath(),e.fillStyle=i.multiKeyBackground,uf(e,{x:t,y:p,w:c,h:s,radius:o}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),uf(e,{x:n,y:p+1,w:c-2,h:s-2,radius:o}),e.fill()):(e.fillStyle=i.multiKeyBackground,e.fillRect(t,p,c,s),e.strokeRect(t,p,c,s),e.fillStyle=a.backgroundColor,e.fillRect(n,p+1,c-2,s-2))}e.fillStyle=this.labelTextColors[n]}drawBody(e,t,n){let{body:r}=this,{bodySpacing:i,bodyAlign:a,displayColors:o,boxHeight:s,boxWidth:c,boxPadding:l}=n,u=yf(n.bodyFont),d=u.lineHeight,f=0,p=bp(n.rtl,this.x,this.width),m=function(n){t.fillText(n,p.x(e.x+f),e.y+d/2),e.y+=d+i},h=p.textAlign(a),g,_,v,y,b,x,S;for(t.textAlign=a,t.textBaseline=`middle`,t.font=u.string,e.x=Vv(this,h,n),t.fillStyle=n.bodyColor,_u(this.beforeBody,m),f=o&&h!==`right`?a===`center`?c/2+l:c+2+l:0,y=0,x=r.length;y0&&t.stroke()}_updateAnimationTarget(e){let t=this.chart,n=this.$animations,r=n&&n.x,i=n&&n.y;if(r||i){let n=kv[e.position].call(this,this._active,this._eventPosition);if(!n)return;let a=this._size=Nv(this,e),o=Object.assign({},n,this._size),s=Lv(t,e,o),c=Bv(e,o,s,t);(r._to!==c.x||i._to!==c.y)&&(this.xAlign=s.xAlign,this.yAlign=s.yAlign,this.width=a.width,this.height=a.height,this.caretX=n.x,this.caretY=n.y,this._resolveAnimations().update(this,c))}}_willRender(){return!!this.opacity}draw(e){let t=this.options.setContext(this.getContext()),n=this.opacity;if(!n)return;this._updateAnimationTarget(t);let r={width:this.width,height:this.height},i={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;let a=vf(t.padding),o=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;t.enabled&&o&&(e.save(),e.globalAlpha=n,this.drawBackground(i,e,r,t),xp(e,t.textDirection),i.y+=a.top,this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),Sp(e,t.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,t){let n=this._active,r=e.map(({datasetIndex:e,index:t})=>{let n=this.chart.getDatasetMeta(e);if(!n)throw Error(`Cannot find a dataset at index `+e);return{datasetIndex:e,element:n.data[t],index:t}}),i=!vu(n,r),a=this._positionChanged(r,t);(i||a)&&(this._active=r,this._eventPosition=t,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,t,n=!0){if(t&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let r=this.options,i=this._active||[],a=this._getActiveElements(e,i,t,n),o=this._positionChanged(a,e),s=t||!vu(a,i)||o;return s&&(this._active=a,(r.enabled||r.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,t))),s}_getActiveElements(e,t,n,r){let i=this.options;if(e.type===`mouseout`)return[];if(!r)return t.filter(e=>this.chart.data.datasets[e.datasetIndex]&&this.chart.getDatasetMeta(e.datasetIndex).controller.getParsed(e.index)!==void 0);let a=this.chart.getElementsAtEventForMode(e,i.mode,i,n);return i.reverse&&a.reverse(),a}_positionChanged(e,t){let{caretX:n,caretY:r,options:i}=this,a=kv[i.position].call(this,e,t);return a!==!1&&(n!==a.x||r!==a.y)}},Jv=Object.freeze({__proto__:null,Colors:j_,Decimation:L_,Filler:mv,Legend:Cv,SubTitle:Ov,Title:Ev,Tooltip:{id:`tooltip`,_element:qv,positioners:kv,afterInit(e,t,n){n&&(e.tooltip=new qv({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){let t=e.tooltip;if(t&&t._willRender()){let n={tooltip:t};if(e.notifyPlugins(`beforeTooltipDraw`,{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins(`afterTooltipDraw`,n)}},afterEvent(e,t){if(e.tooltip){let n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:`average`,backgroundColor:`rgba(0,0,0,0.8)`,titleColor:`#fff`,titleFont:{weight:`bold`},titleSpacing:2,titleMarginBottom:6,titleAlign:`left`,bodyColor:`#fff`,bodySpacing:2,bodyFont:{},bodyAlign:`left`,footerColor:`#fff`,footerSpacing:2,footerMarginTop:6,footerFont:{weight:`bold`},footerAlign:`left`,padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:`#fff`,displayColors:!0,boxPadding:0,borderColor:`rgba(0,0,0,0)`,borderWidth:0,animation:{duration:400,easing:`easeOutQuart`},animations:{numbers:{type:`number`,properties:[`x`,`y`,`width`,`height`,`caretX`,`caretY`]},opacity:{easing:`linear`,duration:200}},callbacks:Gv},defaultRoutes:{bodyFont:`font`,footerFont:`font`,titleFont:`font`},descriptors:{_scriptable:e=>e!==`filter`&&e!==`itemSort`&&e!==`external`,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:`animation`}},additionalOptionScopes:[`interaction`]}}),Yv=(e,t,n,r)=>(typeof t==`string`?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function Xv(e,t,n,r){let i=e.indexOf(t);return i===-1?Yv(e,t,n,r):i===e.lastIndexOf(t)?i:n}var Zv=(e,t)=>e===null?null:ad(Math.round(e),0,t);function Qv(e){let t=this.getLabels();return e>=0&&et.length-1?null:this.getPixelForValue(t[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}};function ey(e,t){let n=[],{bounds:r,step:i,min:a,max:o,precision:s,count:c,maxTicks:l,maxDigits:u,includeBounds:d}=e,f=i||1,p=l-1,{min:m,max:h}=t,g=!cu(a),_=!cu(o),v=!cu(c),y=(h-m)/(u+1),b=Gu((h-m)/p/f)*f,x,S,C,w;if(b<1e-14&&!g&&!_)return[{value:m},{value:h}];w=Math.ceil(h/b)-Math.floor(m/b),w>p&&(b=Gu(w*b/p/f)*f),cu(s)||(x=10**s,b=Math.ceil(b*x)/x),r===`ticks`?(S=Math.floor(m/b)*b,C=Math.ceil(h/b)*b):(S=m,C=h),g&&_&&i&&Yu((o-a)/i,b/1e3)?(w=Math.round(Math.min((o-a)/b,l)),b=(o-a)/w,S=a,C=o):v?(S=g?a:S,C=_?o:C,w=c-1,b=(C-S)/w):(w=(C-S)/b,w=Wu(w,Math.round(w),b/1e3)?Math.round(w):Math.ceil(w));let T=Math.max($u(b),$u(S));x=10**(cu(s)?T:s),S=Math.round(S*x)/x,C=Math.round(C*x)/x;let ee=0;for(g&&(d&&S!==a?(n.push({value:a}),So)break;n.push({value:e})}return _&&d&&C!==o?n.length&&Wu(n[n.length-1].value,o,ty(o,y,e))?n[n.length-1].value=o:n.push({value:o}):(!_||C===o)&&n.push({value:C}),n}function ty(e,t,{horizontal:n,minRotation:r}){let i=Zu(r),a=(n?Math.sin(i):Math.cos(i))||.001,o=.75*t*(``+e).length;return Math.min(t/a,o)}var ny=class extends Xh{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,t){return cu(e)||(typeof e==`number`||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){let{beginAtZero:e}=this.options,{minDefined:t,maxDefined:n}=this.getUserBounds(),{min:r,max:i}=this,a=e=>r=t?r:e,o=e=>i=n?i:e;if(e){let e=Uu(r),t=Uu(i);e<0&&t<0?o(0):e>0&&t>0&&a(0)}if(r===i){let t=i===0?1:Math.abs(i*.05);o(i+t),e||a(r-t)}this.min=r,this.max=i}getTickLimit(){let{maxTicksLimit:e,stepSize:t}=this.options.ticks,n;return t?(n=Math.ceil(this.max/t)-Math.floor(this.min/t)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${t} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),e||=11),e&&(n=Math.min(e,n)),n}computeTickLimit(){return 1/0}buildTicks(){let e=this.options,t=e.ticks,n=this.getTickLimit();n=Math.max(2,n);let r=ey({maxTicks:n,bounds:e.bounds,min:e.min,max:e.max,precision:t.precision,step:t.stepSize,count:t.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:t.minRotation||0,includeBounds:t.includeBounds!==!1},this._range||this);return e.bounds===`ticks`&&Xu(r,this,`value`),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){let e=this.ticks,t=this.min,n=this.max;if(super.configure(),this.options.offset&&e.length){let r=(n-t)/Math.max(e.length-1,1)/2;t-=r,n+=r}this._startValue=t,this._endValue=n,this._valueRange=n-t}getLabelForValue(e){return Ld(e,this.chart.options.locale,this.options.ticks.format)}},ry=class extends ny{static id=`linear`;static defaults={ticks:{callback:Bd.formatters.numeric}};determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=du(e)?e:0,this.max=du(t)?t:1,this.handleTickRangeOptions()}computeTickLimit(){let e=this.isHorizontal(),t=e?this.width:this.height,n=Zu(this.options.ticks.minRotation),r=(e?Math.sin(n):Math.cos(n))||.001,i=this._resolveTickFontOptions(0);return Math.ceil(t/Math.min(40,i.lineHeight/r))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}},iy=e=>Math.floor(Hu(e)),ay=(e,t)=>10**(iy(e)+t);function oy(e){return e/10**iy(e)==1}function sy(e,t,n){let r=10**n,i=Math.floor(e/r);return Math.ceil(t/r)-i}function cy(e,t){let n=iy(t-e);for(;sy(e,t,n)>10;)n++;for(;sy(e,t,n)<10;)n--;return Math.min(n,iy(e))}function ly(e,{min:t,max:n}){t=fu(e.min,t);let r=[],i=iy(t),a=cy(t,n),o=a<0?10**Math.abs(a):1,s=10**a,c=i>a?10**i:0,l=Math.round((t-c)*o)/o,u=Math.floor((t-c)/s/10)*s*10,d=Math.floor((l-u)/10**a),f=fu(e.min,Math.round((c+u+d*10**a)*o)/o);for(;f=10?d=d<15?15:20:d++,d>=20&&(a++,d=2,o=a>=0?1:o),f=Math.round((c+u+d*10**a)*o)/o;let p=fu(e.max,f);return r.push({value:p,major:oy(p),significand:d}),r}var uy=class extends Xh{static id=`logarithmic`;static defaults={ticks:{callback:Bd.formatters.logarithmic,major:{enabled:!0}}};constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(e,t){let n=ny.prototype.parse.apply(this,[e,t]);if(n===0){this._zero=!0;return}return du(n)&&n>0?n:null}determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=du(e)?Math.max(0,e):null,this.max=du(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!du(this._userMin)&&(this.min=e===ay(this.min,0)?ay(this.min,-1):ay(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:e,maxDefined:t}=this.getUserBounds(),n=this.min,r=this.max,i=t=>n=e?n:t,a=e=>r=t?r:e;n===r&&(n<=0?(i(1),a(10)):(i(ay(n,-1)),a(ay(r,1)))),n<=0&&i(ay(r,-1)),r<=0&&a(ay(n,1)),this.min=n,this.max=r}buildTicks(){let e=this.options,t=ly({min:this._userMin,max:this._userMax},this);return e.bounds===`ticks`&&Xu(t,this,`value`),e.reverse?(t.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),t}getLabelForValue(e){return e===void 0?`0`:Ld(e,this.chart.options.locale,this.options.ticks.format)}configure(){let e=this.min;super.configure(),this._startValue=Hu(e),this._valueRange=Hu(this.max)-Hu(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(Hu(e)-this._startValue)/this._valueRange)}getValueForPixel(e){let t=this.getDecimalForPixel(e);return 10**(this._startValue+t*this._valueRange)}};function dy(e){let t=e.ticks;if(t.display&&e.display){let e=vf(t.backdropPadding);return pu(t.font&&t.font.size,Kd.font.size)+e.height}return 0}function fy(e,t,n){return n=lu(n)?n:[n],{w:Yd(e,t.string,n),h:n.length*t.lineHeight}}function py(e,t,n,r,i){return e===r||e===i?{start:t-n/2,end:t+n/2}:ei?{start:t-n,end:t}:{start:t,end:t+n}}function my(e){let t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},n=Object.assign({},t),r=[],i=[],a=e._pointLabels.length,o=e.options.pointLabels,s=o.centerPointLabels?Pu/a:0;for(let c=0;ct.r&&(s=(r.end-t.r)/a,e.r=Math.max(e.r,t.r+s)),i.startt.b&&(c=(i.end-t.b)/o,e.b=Math.max(e.b,t.b+c))}function gy(e,t,n){let r=e.drawingArea,{extra:i,additionalAngle:a,padding:o,size:s}=n,c=e.getPointPosition(t,r+i+o,a),l=Math.round(Qu(rd(c.angle+zu))),u=xy(c.y,s.h,l),d=yy(l),f=by(c.x,s.w,d);return{visible:!0,x:c.x,y:u,textAlign:d,left:f,top:u,right:f+s.w,bottom:u+s.h}}function _y(e,t){if(!t)return!0;let{left:n,top:r,right:i,bottom:a}=e;return!(ef({x:n,y:r},t)||ef({x:n,y:a},t)||ef({x:i,y:r},t)||ef({x:i,y:a},t))}function vy(e,t,n){let r=[],i=e._pointLabels.length,a=e.options,{centerPointLabels:o,display:s}=a.pointLabels,c={extra:dy(a)/2,additionalAngle:o?Pu/i:0},l;for(let a=0;a270||n<90)&&(e-=t),e}function Sy(e,t,n){let{left:r,top:i,right:a,bottom:o}=n,{backdropColor:s}=t;if(!cu(s)){let n=_f(t.borderRadius),c=vf(t.backdropPadding);e.fillStyle=s;let l=r-c.left,u=i-c.top,d=a-r+c.width,f=o-i+c.height;Object.values(n).some(e=>e!==0)?(e.beginPath(),uf(e,{x:l,y:u,w:d,h:f,radius:n}),e.fill()):e.fillRect(l,u,d,f)}}function Cy(e,t){let{ctx:n,options:{pointLabels:r}}=e;for(let i=t-1;i>=0;i--){let t=e._pointLabelItems[i];if(!t.visible)continue;let a=r.setContext(e.getPointLabelContext(i));Sy(n,a,t);let o=yf(a.font),{x:s,y:c,textAlign:l}=t;lf(n,e._pointLabels[i],s,c+o.lineHeight/2,o,{color:a.color,textAlign:l,textBaseline:`middle`})}}function wy(e,t,n,r){let{ctx:i}=e;if(n)i.arc(e.xCenter,e.yCenter,t,0,Fu);else{let n=e.getPointPosition(0,t);i.moveTo(n.x,n.y);for(let a=1;a{let n=gu(this.options.pointLabels.callback,[e,t],this);return n||n===0?n:``}).filter((e,t)=>this.chart.getDataVisibility(t))}fit(){let e=this.options;e.display&&e.pointLabels.display?my(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(e,t,n,r){this.xCenter+=Math.floor((e-t)/2),this.yCenter+=Math.floor((n-r)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(e,t,n,r))}getIndexAngle(e){let t=Fu/(this._pointLabels.length||1),n=this.options.startAngle||0;return rd(e*t+Zu(n))}getDistanceFromCenterForValue(e){if(cu(e))return NaN;let t=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-e)*t:(e-this.min)*t}getValueForDistanceFromCenter(e){if(cu(e))return NaN;let t=e/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-t:this.min+t}getPointLabelContext(e){let t=this._pointLabels||[];if(e>=0&&e{if(t!==0||t===0&&this.min<0){s=this.getDistanceFromCenterForValue(e.value);let n=this.getContext(t),o=r.setContext(n),c=i.setContext(n);Ty(this,o,s,a,c)}}),n.display){for(e.save(),o=a-1;o>=0;o--){let r=n.setContext(this.getPointLabelContext(o)),{color:i,lineWidth:a}=r;!a||!i||(e.lineWidth=a,e.strokeStyle=i,e.setLineDash(r.borderDash),e.lineDashOffset=r.borderDashOffset,s=this.getDistanceFromCenterForValue(t.reverse?this.min:this.max),c=this.getPointPosition(o,s),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(c.x,c.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){let e=this.ctx,t=this.options,n=t.ticks;if(!n.display)return;let r=this.getIndexAngle(0),i,a;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(r),e.textAlign=`center`,e.textBaseline=`middle`,this.ticks.forEach((r,o)=>{if(o===0&&this.min>=0&&!t.reverse)return;let s=n.setContext(this.getContext(o)),c=yf(s.font);if(i=this.getDistanceFromCenterForValue(this.ticks[o].value),s.showLabelBackdrop){e.font=c.string,a=e.measureText(r.label).width,e.fillStyle=s.backdropColor;let t=vf(s.backdropPadding);e.fillRect(-a/2-t.left,-i-c.size/2-t.top,a+t.width,c.size+t.height)}lf(e,r.label,0,-i,c,{color:s.color,strokeColor:s.textStrokeColor,strokeWidth:s.textStrokeWidth})}),e.restore()}drawTitle(){}},Oy={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ky=Object.keys(Oy);function Ay(e,t){return e-t}function jy(e,t){if(cu(t))return null;let n=e._adapter,{parser:r,round:i,isoWeekday:a}=e._parseOpts,o=t;return typeof r==`function`&&(o=r(o)),du(o)||(o=typeof r==`string`?n.parse(o,r):n.parse(o)),o===null?null:(i&&(o=i===`week`&&(Ju(a)||a===!0)?n.startOf(o,`isoWeek`,a):n.startOf(o,i)),+o)}function My(e,t,n,r){let i=ky.length;for(let a=ky.indexOf(e);a=ky.indexOf(n);a--){let n=ky[a];if(Oy[n].common&&e._adapter.diff(i,r,n)>=t-1)return n}return ky[n?ky.indexOf(n):0]}function Py(e){for(let t=ky.indexOf(e)+1,n=ky.length;t=t?n[r]:n[i];e[a]=!0}}function Iy(e,t,n,r){let i=e._adapter,a=+i.startOf(t[0].value,r),o=t[t.length-1].value,s,c;for(s=a;s<=o;s=+i.add(s,1,r))c=n[s],c>=0&&(t[c].major=!0);return t}function Ly(e,t,n){let r=[],i={},a=t.length,o,s;for(o=0;o+e.value))}initOffsets(e=[]){let t=0,n=0,r,i;this.options.offset&&e.length&&(r=this.getDecimalForValue(e[0]),t=e.length===1?1-r:(this.getDecimalForValue(e[1])-r)/2,i=this.getDecimalForValue(e[e.length-1]),n=e.length===1?i:(i-this.getDecimalForValue(e[e.length-2]))/2);let a=e.length<3?.5:.25;t=ad(t,0,a),n=ad(n,0,a),this._offsets={start:t,end:n,factor:1/(t+1+n)}}_generate(){let e=this._adapter,t=this.min,n=this.max,r=this.options,i=r.time,a=i.unit||My(i.minUnit,t,n,this._getLabelCapacity(t)),o=pu(r.ticks.stepSize,1),s=a===`week`&&i.isoWeekday,c=Ju(s)||s===!0,l={},u=t,d,f;if(c&&(u=+e.startOf(u,`isoWeek`,s)),u=+e.startOf(u,c?`day`:a),e.diff(n,t,a)>1e5*o)throw Error(t+` and `+n+` are too far apart with stepSize of `+o+` `+a);let p=r.ticks.source===`data`&&this.getDataTimestamps();for(d=u,f=0;d+e)}getLabelForValue(e){let t=this._adapter,n=this.options.time;return n.tooltipFormat?t.format(e,n.tooltipFormat):t.format(e,n.displayFormats.datetime)}format(e,t){let n=this.options.time.displayFormats,r=this._unit,i=t||n[r];return this._adapter.format(e,i)}_tickFormatFunction(e,t,n,r){let i=this.options,a=i.ticks.callback;if(a)return gu(a,[e,t,n],this);let o=i.time.displayFormats,s=this._unit,c=this._majorUnit,l=s&&o[s],u=c&&o[c],d=n[t],f=c&&u&&d&&d.major;return this._adapter.format(e,r||(f?u:l))}generateTickLabels(e){let t,n,r;for(t=0,n=e.length;t0?o:1}getDataTimestamps(){let e=this._cache.data||[],t,n;if(e.length)return e;let r=this.getMatchingVisibleMetas();if(this._normalized&&r.length)return this._cache.data=r[0].controller.getAllParsedValues(this);for(t=0,n=r.length;t=e[r].pos&&t<=e[i].pos&&({lo:r,hi:i}=ld(e,`pos`,t)),{pos:a,time:s}=e[r],{pos:o,time:c}=e[i]):(t>=e[r].time&&t<=e[i].time&&({lo:r,hi:i}=ld(e,`time`,t)),{time:a,pos:s}=e[r],{time:o,pos:c}=e[i]);let l=o-a;return l?s+(c-s)*(t-a)/l:s}var By=class extends Ry{static id=`timeseries`;static defaults=Ry.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let e=this._getTimestampsForTable(),t=this._table=this.buildLookupTable(e);this._minPos=zy(t,this.min),this._tableRange=zy(t,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){let{min:t,max:n}=this,r=[],i=[],a,o,s,c,l;for(a=0,o=e.length;a=t&&c<=n&&r.push(c);if(r.length<2)return[{time:t,pos:0},{time:n,pos:1}];for(a=0,o=r.length;ae-t)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;let t=this.getDataTimestamps(),n=this.getLabelTimestamps();return e=t.length&&n.length?this.normalize(t.concat(n)):t.length?t:n,e=this._cache.all=e,e}getDecimalForValue(e){return(zy(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){let t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end;return zy(this._table,n*this._tableRange+this._minPos,!0)}},Vy=[Mm,y_,Jv,Object.freeze({__proto__:null,CategoryScale:$v,LinearScale:ry,LogarithmicScale:uy,RadialLinearScale:Dy,TimeScale:Ry,TimeSeriesScale:By})];Rg.register(...Vy);var Hy=Rg,Uy=z(``);function Wy(e,t){D(t,!0);let n=K(t,`class`,3,``),r=K(t,`ariaLabel`,3,``);function i(e){if(Da.tick,typeof t.build!=`function`)return;let n=t.build();if(!n)return;let r=new Hy(e.getContext(`2d`),n);return()=>r.destroy()}var a=Uy();ji(a,()=>i),I(()=>{W(a,1,Pi(n())),G(a,`aria-label`,r())}),B(e,a),O()}var Gy=z(``),Ky=z(`
        `);function qy(e,t){D(t,!0);let n=K(t,`options`,19,()=>[]),r=K(t,`ariaLabel`,3,``),i=K(t,`class`,3,``);var a=Ky();U(a,21,n,e=>e.value,(e,n)=>{var r=Gy();let i;var a=N(r,!0);E(r),I(()=>{i=W(r,1,`segmented-btn svelte-92fh5i`,null,i,{active:t.value===L(n).value}),G(r,`aria-pressed`,t.value===L(n).value),V(a,L(n).label)}),R(`click`,r,()=>t.onchange?.(L(n).value)),B(e,r)}),E(a),I(()=>{W(a,1,Pi([`segmented-control`,i()]),`svelte-92fh5i`),G(a,`aria-label`,r())}),B(e,a),O()}Vr([`click`]);function Jy(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function Yy(){return{grid:Jy(`--chart-grid`),text:Jy(`--chart-text`),dayMarker:Jy(`--chart-day-marker`),tooltipBg:Jy(`--chart-tooltip-bg`),tooltipBorder:Jy(`--chart-tooltip-border`),tooltipText:Jy(`--chart-tooltip-text`)}}function Xy(){return{size:11,family:`'SF Mono', Menlo, Consolas, monospace`}}function Zy(e,t){return{backgroundColor:e.tooltipBg,borderColor:e.tooltipBorder,borderWidth:1,titleColor:e.tooltipText,bodyColor:e.tooltipText,callbacks:t}}function Qy(e){if(typeof document>`u`||!document.body)return e;let t=document.createElement(`span`);t.style.display=`none`,t.style.color=e,document.body.appendChild(t);let n=getComputedStyle(t).color;return document.body.removeChild(t),n||e}var $y=[`#c2845a`,`#7a9e7e`,`#d4a574`,`#b8a98e`,`#8b9e6b`,`#7d8a97`,`#c47a5a`,`#6b8e6b`,`#a09486`,`#9b7ea4`,`#c49a6c`];function eb(){return[...$y]}function tb(e){let t=5381,n=String(e||``);for(let e=0;eCc(e)}}var sb={seconds:{apiName:`second`,windowLabel:`Last 60 seconds`,refreshMs:2e3},minutes:{apiName:`minute`,windowLabel:`Last 60 minutes`,refreshMs:5e3},hours:{apiName:`hour`,windowLabel:`Last 24 hours`,refreshMs:2e4},days:{apiName:`day`,windowLabel:`Last 30 days`,refreshMs:6e4}},cb=[{value:`seconds`,label:`Seconds`},{value:`minutes`,label:`Minutes`},{value:`hours`,label:`Hours`},{value:`days`,label:`Days`}];function lb(){return{input:0,output:0,prompt:0,local:0}}function ub(e){return String(e).padStart(2,`0`)}function db(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:0}function fb(e,t){if(!Number.isFinite(t))return``;let n=new Date(t);switch(e){case`seconds`:return ub(n.getHours())+`:`+ub(n.getMinutes())+`:`+ub(n.getSeconds());case`minutes`:return ub(n.getHours())+`:`+ub(n.getMinutes());case`hours`:return ub(n.getHours())+`:00`;default:return ub(n.getMonth()+1)+`-`+ub(n.getDate())}}function pb(e,t){let n=[],r=[],i={input:[],output:[],prompt:[],local:[]},a=lb();for(let o of e||[]){let e=Date.parse(o&&o.start),s=db(o&&o.input_tokens),c=db(o&&o.output_tokens),l=db(o&&o.prompt_cached_tokens),u=db(o&&o.locally_cached_tokens);n.push(fb(t,e)),r.push(Number.isFinite(e)?e:null),i.input.push(s),i.output.push(c),i.prompt.push(l),i.local.push(u),a.input+=s,a.output+=c,a.prompt+=l,a.local+=u}return{labels:n,stamps:r,cols:i,totals:a}}function mb(e){let t=e||lb();return t.input+t.output+t.prompt+t.local>0}function hb(e,t){return Cc(Math.max(0,Math.round(e&&e[t]||0)))}function gb(e){return(sb[e]||sb.minutes).windowLabel}function _b(e,t){return`Live token throughput, `+gb(t).toLowerCase()+`. Input `+hb(e,`input`)+`, output `+hb(e,`output`)+`, prompt cached `+hb(e,`prompt`)+`, locally cached `+hb(e,`local`)+` tokens.`}function vb(e,t,n,r){let i=e=>Cc(Math.max(0,Math.round(e))),a=n.stamps,o=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderWidth:0,borderRadius:0,categoryPercentage:1,barPercentage:1,stack:`tokens`});return{type:`bar`,plugins:[{id:`liveTokensDayMarks`,afterDatasetsDraw:t=>{if(r===`days`)return;let n=t.getDatasetMeta(0),i=t.chartArea;if(!n||!n.data||!i)return;let o=t.ctx;o.save(),o.font=`10px 'SF Mono', Menlo, Consolas, monospace`;let s=null;for(let t=0;t{if(!e.length)return``;let t=a[e[0].dataIndex];if(!t)return e[0].label;let n=new Date(t);return r===`days`?n.toLocaleDateString():n.toLocaleString()},label:e=>e.dataset.label+`: `+i(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),`Total: `+i(t)}})}}}}var yb=900,bb=new class{#e=A(`minutes`);get granularity(){return L(this.#e)}set granularity(e){j(this.#e,e,!0)}#t=A(M([]));get buckets(){return L(this.#t)}set buckets(e){j(this.#t,e,!0)}#n=A(!1);get active(){return L(this.#n)}set active(e){j(this.#n,e,!0)}#r=null;#i=null;#a=null;#o=0;#s=null;#c=!1;start(){this.stop(),this.active=!0,this.fetch(),this.#l(),this.#u()}stop(){this.active=!1,this.#r&&=(clearInterval(this.#r),null),this.#i&&=(clearTimeout(this.#i),null),this.#a&&=(clearTimeout(this.#a),null),this.#o=0,this.#s&&=(this.#s.abort(),null),this.buckets=[]}setGranularity(e){!sb[e]||e===this.granularity||(this.granularity=e,this.buckets=[],this.#l(),this.fetch())}#l(){this.#r&&=(clearInterval(this.#r),null);let e=sb[this.granularity]||sb.minutes;this.#r=setInterval(()=>{this.active&&this.fetch()},e.refreshMs)}noteUsageEvent(e){!this.active||e!==`usage.flushed`||(this.#i||=setTimeout(()=>{this.#i=null,this.fetch()},yb))}async fetch(){if(!this.active||this.#c)return;this.#c=!0;let e=this.granularity;try{let t=await Es(`/admin/usage/throughput?granularity=`+(sb[e]||sb.minutes).apiName,{label:`token throughput`});if(t.stale||!t.ok||this.granularity!==e)return;this.buckets=t.data&&Array.isArray(t.data.buckets)?t.data.buckets:[]}catch(e){if(Os(e))return;console.error(`Failed to fetch token throughput:`,e)}finally{this.#c=!1,this.active&&this.granularity!==e&&this.fetch()}}async#u(){await js.ensureLoaded(),this.active&&js.liveLogsVisible()&&(typeof ReadableStream>`u`||(this.#s&&this.#s.abort(),this.#s=new AbortController,this.#d(this.#s)))}async#d(e){let t=()=>{e.signal.aborted||this.#s!==e||this.#p()};try{let n=await ws(`/admin/live/logs?types=usage`,{signal:e.signal});if(!n.ok||!n.body||typeof n.body.getReader!=`function`){t();return}this.#o=0,await rb(n.body.getReader(),e=>this.#f(e)),t()}catch(n){if(Os(n)||e.signal.aborted)return;console.error(`Live usage stream failed:`,n),t()}}#f(e){if(!e||typeof e!=`object`)return;let t=String(e.type||``).trim();t.indexOf(`usage.`)===0&&this.noteUsageEvent(t)}#p(){if(!this.active||this.#a)return;let{attempt:e,delay:t}=ab(this.#o);this.#o=e,this.#a=setTimeout(()=>{this.#a=null,this.#u()},t)}},xb=z(`
        `),Sb=z(`
        Waiting for live requests…
        `),Cb=z(`

        Live Token Throughput

        `);function wb(e,t){D(t,!0);let n=k(()=>pb(bb.buckets,bb.granularity)),r=k(()=>L(n).totals);function i(){return{input:Qy(`var(--token-input)`),output:Qy(`var(--token-output)`),prompt:Qy(`var(--token-prompt)`),local:Qy(`var(--token-local)`)}}let a=[{metric:`input`,label:`Input Tokens`,colorVar:`--token-input`},{metric:`output`,label:`Output Tokens`,colorVar:`--token-output`},{metric:`prompt`,label:`Prompt (Input) Cached`,colorVar:`--token-prompt`},{metric:`local`,label:`Locally Cached`,colorVar:`--token-local`}];var o=Cb(),s=N(o),c=N(s),l=F(N(c),2),u=N(l);let d;var f=F(u,2),p=N(f,!0);E(f),E(l),E(c),qy(F(c,2),{ariaLabel:`Live token throughput granularity`,get options(){return cb},get value(){return bb.granularity},onchange:e=>bb.setGranularity(e)}),E(s);var m=F(s,2);U(m,21,()=>a,e=>e.metric,(e,t)=>{var n=xb(),i=N(n),a=F(i,2),o=N(a,!0);E(a);var s=F(a,2),c=N(s,!0);E(s),E(n),I(e=>{Vi(i,`background: var(${L(t).colorVar??``})`),V(o,L(t).label),V(c,e)},[()=>hb(L(r),L(t).metric)]),B(e,n)}),E(m);var h=F(m,2),g=N(h);{let e=k(()=>_b(L(r),bb.granularity));Wy(g,{get ariaLabel(){return L(e)},build:()=>vb(Yy(),i(),L(n),bb.granularity)})}var _=F(g,2),v=e=>{B(e,Sb())},y=k(()=>!mb(L(r)));H(_,e=>{L(y)&&e(v)}),E(h),E(o),I(e=>{d=W(u,1,`live-dot`,null,d,{"is-streaming":bb.active}),V(p,e)},[()=>gb(bb.granularity)]),B(e,o),O()}function Tb(e){let t=e||{};if(t.total_tokens!==null&&t.total_tokens!==void 0){let e=Number(t.total_tokens);if(Number.isFinite(e))return e}let n=Number(t.total_input_tokens||0),r=Number(t.total_output_tokens||0);return(Number.isFinite(n)?n:0)+(Number.isFinite(r)?r:0)}function Eb(e,t){if(!t)return 0;let n=e&&e.summary?e.summary:{},r=Number(n.total_hits||0);return Number.isFinite(r)&&r>0?r:0}function Db(e,t,n){let r=Number(e&&e.total_requests||0);return(Number.isFinite(r)?r:0)+Eb(t,n)}function Ob(e,t,n){let r=Eb(t,n);return r<=0?``:yc(Db(e,t,n)-r)+` to providers + `+yc(r)+` from cache`}function kb(e){let t=e&&e.summary?e.summary:{},n=Number(t.total_input_tokens||0),r=Number(t.total_output_tokens||0);return(Number.isFinite(n)?n:0)+(Number.isFinite(r)?r:0)}function Ab(e,t,n){let r=e=>{let t=Number(e||0);return Number.isFinite(t)&&t>0?t:0},i=e||{},a=r(i.uncached_input_tokens),o=r(i.cached_input_tokens),s=r(i.cache_write_input_tokens),c=t&&t.summary?t.summary:{},l=n?r(c.total_input_tokens):0;return[{key:`uncached`,label:`Regular`,tokens:a+s,colorVar:`--cache-meter-uncached`,note:s>0?`Includes `+yc(s)+` cache-write tokens`:``},{key:`prompt`,label:`Prompt cached`,tokens:o,colorVar:`--cache-meter-prompt`,note:`Provider prompt-cache reads`},{key:`local`,label:`Locally cached`,tokens:l,colorVar:`--cache-meter-local`,note:`Served from GoModel response cache`}]}function jb(e,t,n){return Ab(e,t,n).reduce((e,t)=>e+t.tokens,0)}function Mb(e,t,n){return jb(e,t,n)>0}function Nb(e,t,n){let r=Ab(e,t,n),i=r.reduce((e,t)=>e+t.tokens,0);if(i<=0)return r.map(e=>Object.assign({},e,{pct:0}));let a=r.map(e=>{let t=e.tokens/i*100,n=Math.floor(t);return Object.assign({},e,{pct:n,remainder:t-n})}),o=100-a.reduce((e,t)=>e+t.pct,0);return a.map((e,t)=>({index:t,remainder:e.remainder,tokens:e.tokens})).filter(e=>e.tokens>0).sort((e,t)=>t.remainder-e.remainder).forEach(e=>{o>0&&(a[e.index].pct+=1,--o)}),a}function Pb(e,t,n){return Nb(e,t,n).filter(e=>e.tokens>0)}function Fb(e){let t=[e.label+`: `+yc(e.tokens)+` input tokens (`+e.pct+`%)`];return e.note&&t.push(e.note),t.join(` +`)}function Ib(e){let t=(e||[]).map(e=>e.label+` `+e.pct+`%`);return`Cache breakdown of input tokens — `+(t.length?t.join(`, `):`no data`)}function Lb(e){return e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`)}function Rb(e,t,n,r){if(t!==`daily`||!n||!r)return e;let i={};(e||[]).forEach(e=>{i[e.date]=e});let a=[];for(let e=new Date(n);e<=r;e.setUTCDate(e.getUTCDate()+1)){let t=Lb(e);a.push(i[t]||{date:t,input_tokens:0,output_tokens:0,total_tokens:0,requests:0,input_cost:null,output_cost:null,total_cost:null})}return a}function zb(e,t){let n=e=>Number(e)||0,r=e.map(e=>e.date),i=e.map(e=>n(e.uncached_input_tokens)+n(e.cache_write_input_tokens)+n(e.cached_input_tokens)>0?n(e.uncached_input_tokens)+n(e.cache_write_input_tokens):n(e.input_tokens)),a=e.map(e=>n(e.output_tokens)),o=e.map(e=>n(e.cached_input_tokens)),s={};return(t||[]).forEach(e=>{s[e.date]=e}),{labels:r,inputPaid:i,output:a,prompt:o,local:r.map(e=>{let t=s[e];return t?n(t.input_tokens)+n(t.output_tokens):0})}}function Bb(e){let t=e||{},n=Math.max(0,Number(t.uncached_input_tokens)||0),r=Math.max(0,Number(t.cached_input_tokens)||0),i=Math.max(0,Number(t.cache_write_input_tokens)||0),a=n+r+i;return a>0?r/a*100:0}function Vb(e){let t=e||{};return(Number(t.uncached_input_tokens)||0)+(Number(t.cached_input_tokens)||0)+(Number(t.cache_write_input_tokens)||0)>0}function Hb(e){return Vb(e)?Math.round(Bb(e))+`%`:`—`}function Ub(e,t,n={}){let r=!!n.cacheEnabled,i=n.resolve||(e=>e),a=(e,t)=>i(`color-mix(in srgb, `+e+` `+t+`%, transparent)`),o=(e,t,n,r)=>Object.assign({label:e,data:t,borderColor:n,backgroundColor:n,fill:!1,tension:.3,borderWidth:2,pointRadius:0,pointHoverRadius:4},r||{}),s=[o(`Input Tokens`,t.inputPaid,i(`var(--token-input)`),{fill:`origin`}),o(`Output Tokens`,t.output,i(`var(--token-output)`),{fill:`-1`}),o(`Prompt (Input) Cached`,t.prompt,i(`var(--token-prompt)`),{fill:`-1`,borderDash:[6,4]})];return r&&s.push(o(`Locally Cached`,t.local,a(`var(--info)`,35),{fill:`-1`,borderDash:[2,3]})),{type:`line`,data:{labels:t.labels,datasets:s},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:Zy(e,{label:e=>e.dataset.label+`: `+e.parsed.y.toLocaleString(),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),`Total: `+t.toLocaleString()}})},scales:{x:{stacked:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:Xy(),maxRotation:0,autoSkip:!0,maxTicksLimit:10}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:ob(e)}}}}}function Wb(e,t,n){let r=Math.max(0,Math.min(100,e));return{type:`doughnut`,data:{datasets:[{data:[r,100-r],backgroundColor:[t,n],borderWidth:0,spacing:0}]},options:{rotation:-90,circumference:180,cutout:`84%`,responsive:!0,maintainAspectRatio:!1,animation:{duration:0},layout:{padding:1},events:[],plugins:{legend:{display:!1},tooltip:{enabled:!1}}}}}var Gb=`gomodel_provider_status_details_expanded`,Kb=`gomodel_provider_card_expanded_overrides`,qb=3e3,Jb=`https://gomodel.enterpilot.io/docs/providers/`,Yb={anthropic:`anthropic`,azure:`azure`,bailian:`bailian`,bedrock:`bedrock`,"bedrock-mantle":`bedrock-mantle`,cohere:`cohere`,deepseek:`deepseek`,elevenlabs:`elevenlabs`,gemini:`gemini`,llmd:`llmd`,opencode_go:`opencode-go`,oracle:`oracle`,sglang:`sglang`,vertex:`vertex`,vllm:`vllm`,xiaomi:`xiaomi`};function Xb(){return{summary:{total:0,healthy:0,degraded:0,unhealthy:0,overall_status:`degraded`},providers:[]}}function Zb(e){let t={detailsExpanded:!1,cardOverrides:{}};try{if(e){let n=e.getItem(Gb);n===`true`||n===`false`?t.detailsExpanded=n===`true`:e.setItem(Gb,`false`);let r=JSON.parse(e.getItem(Kb)||`{}`);r&&typeof r==`object`&&!Array.isArray(r)&&(t.cardOverrides=r)}}catch{}return t}function Qb(e,t){if(e)try{e.setItem(Gb,t?`true`:`false`)}catch{}}function $b(e,t){if(e)try{e.setItem(Kb,JSON.stringify(t))}catch{}}function ex(e,t,n){let r=n&&n.name?String(n.name):``;return r&&Object.prototype.hasOwnProperty.call(e,r)?e[r]===!0:t}function tx(e){return`is-`+(String(e&&e.overall_status||`degraded`).trim()||`degraded`)}function nx(e){return`is-`+(String(e||`degraded`).trim()||`degraded`)}function rx(e){let t=e||{};return String(t.healthy||0)+`/`+String(t.total||0)}function ix(e){let t=e||{},n=Number(t.total||0),r=Number(t.healthy||0);return n>0&&rString(e&&e.status_label||``).trim().toLowerCase()===`starting`)}function sx(e){if(!e||!e.runtime)return``;let t=e.runtime.last_model_fetch_at||``,n=e.runtime.last_availability_check_at||``;return t?n&&Date.parse(n)>Date.parse(t)?n:t:n}function cx(e,t){let n=sx(e);if(!n||typeof t!=`function`)return`-`;let r=t(n);if(!r||r===`-`)return`-`;let i=String(r).split(` `);return i.length>1?i.slice(1).join(` `):r}function lx(e,t){let n=sx(e);return n?typeof t==`function`?t(n):String(n):``}function ux(e){if(!e)return``;let t=String(e.name||``).trim(),n=String(e.type||e.config&&e.config.type||``).trim();return!n||n===t?``:n}function dx(e){let t=String(e&&(e.type||e.config&&e.config.type)||``).trim().toLowerCase(),n=t?Yb[t]:``;return n?Jb+n+`?utm_source=gomodel_dashboard`:``}function fx(e){let t=e&&e.config&&e.config.resilience?e.config.resilience.retry:null;return t?String(t.max_retries)+` retries, `+t.initial_backoff+` initial, `+t.max_backoff+` max, factor `+t.backoff_factor+`, jitter `+t.jitter_factor:`-`}function px(e){let t=e&&e.config&&e.config.resilience?e.config.resilience.circuit_breaker:null;return t?String(t.failure_threshold)+` fail, `+String(t.success_threshold)+` success, `+t.timeout+` timeout`:`-`}function mx(e){let t=e&&e.config&&Array.isArray(e.config.models)?e.config.models.filter(Boolean):[];return t.length===0?`Automatic`:t.join(`, `)}function hx(e){if(!e)return``;let t=[];return e.status_reason&&t.push(String(e.status_reason)),e.last_error&&t.push(`Last error: `+String(e.last_error)),t.join(` + +`)}function gx(e){let t=e&&e.request_health;return t&&typeof t==`object`?t:null}function _x(e){let t=gx(e);return t?String(t.circuit_state||``).trim():``}function vx(e){let t=_x(e);return t?t.charAt(0).toUpperCase()+t.slice(1):``}function yx(e){let t=_x(e);return t===`open`?`is-unhealthy`:t===`half-open`?`is-degraded`:`is-healthy`}function bx(e){let t=gx(e);if(!t)return``;let n=Number(t.requests||0),r=Number(t.errors||0),i=Math.round(Number(t.window_seconds||0)/60),a=i>0?`last `+i+` min`:`recent`;return String(n)+` request`+(n===1?``:`s`)+` · `+String(r)+` error`+(r===1?``:`s`)+` (`+a+`)`}function xx(e){let t=gx(e);return t&&Array.isArray(t.models)?t.models:[]}function Sx(e){return e?String(Number(e.errors||0))+`/`+String(Number(e.requests||0))+` failed`:``}function Cx(e){let t=e&&e.last_error;return!t||!t.message?``:(t.status_code?`HTTP `+String(t.status_code)+`: `:``)+t.message}function wx(){return{name:``,slug:``,url:``,transport:`http`,description:``,enabled:!0,headers:[],allowed_tools:``,disallowed_tools:``,user_paths:``,tool_timeout_seconds:``}}function Tx(){return{server:``,status:``,instructions:``,tools:[],prompts:[],resources:[],templates:[]}}function Ex(e){return String(e&&(e.slug||e.name)||``).trim()}function Dx(e){return String(e&&e.status||``).trim()||`connecting`}function Ox(e){switch(Dx(e)){case`connected`:return`status-success`;case`degraded`:return String(e&&e.last_error||``).trim()?`status-error`:`status-warning`;case`connecting`:return`status-neutral`;default:return`status-unknown`}}function kx(e,t){let n=Dx(e),r=String(e&&e.last_error||``).trim();return r&&n!==`connected`?r:n===`connected`&&e&&e.connected_at?`Connected since `+(typeof t==`function`?t:String)(e.connected_at):``}function Ax(e){return String(e&&e.transport||``)===`stdio`?`local command`:String(e&&e.url||``).trim()||`—`}function jx(e){let t=Number(e&&e.prompt_count||0),n=Number(e&&e.resource_count||0);return t+` prompts · `+n+` resources`}function Mx(e){let t=String(e||``).normalize(`NFKD`).toLowerCase(),n=t.replace(/[\u0300-\u036f]/g,``).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,64).replace(/-+$/g,``);if(n)return n;let r=2166136261;for(let e of t)r=Math.imul((r^e.codePointAt(0))>>>0,16777619)>>>0;return`mcp-`+r.toString(16).padStart(8,`0`)}function Nx(e){return String(e||``).split(` +`).map(e=>e.trim()).filter(e=>e)}function Px(e){return!e||typeof e!=`object`||Array.isArray(e)?[]:Object.keys(e).sort().map(t=>({name:t,value:String(e[t]||``)}))}function Fx(e){let t={};return(Array.isArray(e)?e:[]).forEach(e=>{let n=String(e&&e.name||``).trim();n&&(t[n]=String(e&&e.value||``))}),t}function Ix(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.slug,e.url,e.transport,e.description,e.status].some(e=>String(e||``).toLowerCase().includes(r)))}function Lx(e){return{name:String(e.name||``).trim(),slug:Ex(e),url:String(e.url||``).trim(),transport:e.transport===`sse`?`sse`:`http`,description:String(e.description||``).trim(),enabled:e.enabled!==!1,headers:Px(e.headers),allowed_tools:(Array.isArray(e.allowed_tools)?e.allowed_tools:[]).join(`, `),disallowed_tools:(Array.isArray(e.disallowed_tools)?e.disallowed_tools:[]).join(`, `),user_paths:(Array.isArray(e.user_paths)?e.user_paths:[]).join(` +`),tool_timeout_seconds:e.tool_timeout_seconds?String(e.tool_timeout_seconds):``}}function Rx(e,t,n){let r=String(e.name||``).trim(),i=String(e.slug||Mx(r)).trim().toLowerCase(),a=String(e.url||``).trim(),o=e.transport===`sse`?`sse`:`http`;if(!r)return{error:`Name is required.`};if(!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(i))return{error:`Slug must use 1–64 lowercase ASCII letters, numbers, hyphens, or underscores.`};if(t===`create`&&(n||[]).some(e=>Ex(e)===i))return{error:`Slug "`+i+`" is already in use.`};if(!a)return{error:`URL is required.`};let s,c=String(e.tool_timeout_seconds||``).trim();if(c!==``){let e=Number(c);if(!Number.isSafeInteger(e)||e<0)return{error:`Tool timeout must be a non-negative whole number of seconds.`};s=e}return{payload:{name:r,slug:i,url:a,transport:o,headers:Fx(e.headers),description:String(e.description||``).trim(),enabled:!!e.enabled,allowed_tools:_c(e.allowed_tools),disallowed_tools:_c(e.disallowed_tools),user_paths:Nx(e.user_paths),tool_timeout_seconds:s}}}function zx(e,t){let n=t&&typeof t==`object`&&!Array.isArray(t)?t:{},r=e=>(Array.isArray(e)?e:[]).filter(e=>e&&typeof e==`object`);return{server:String(n.server||e||``).trim(),status:String(n.status||``).trim(),instructions:String(n.instructions||``).trim(),tools:r(n.tools),prompts:r(n.prompts),resources:r(n.resources),templates:r(n.templates)}}function Bx(e,t){return String(e&&e.server||``)+`_`+String(t||``)}function Vx(e){let t=e||Tx(),n=(e,t)=>{let n=String(e||``).trim(),r=String(t||``).trim();return n&&r?n+` — `+r:r||n},r=e=>n=>({key:e+`:`+String(n.name||``),name:String(n.name||``),aggregated:Bx(t,n.name),description:String(n.description||``).trim()});return[{key:`tools`,title:`Tools`,items:(t.tools||[]).map(r(`tool`))},{key:`prompts`,title:`Prompts`,items:(t.prompts||[]).map(r(`prompt`))},{key:`resources`,title:`Resources`,items:(t.resources||[]).map(e=>({key:`resource:`+String(e.uri||``),name:String(e.uri||``),aggregated:``,description:n(e.name,e.description)}))},{key:`templates`,title:`Resource templates`,items:(t.templates||[]).map(e=>({key:`template:`+String(e.uri_template||``),name:String(e.uri_template||``),aggregated:``,description:n(e.name,e.description)}))}].filter(e=>e.items.length>0)}function Hx(e){return Vx(e).length===0}function Ux(e){return(e||[]).length}function Wx(e){return(e||[]).filter(e=>Dx(e)===`connected`).length}function Gx(e){return(e||[]).filter(e=>e&&e.enabled!==!1&&Dx(e)===`degraded`).length}function Kx(e,t){return!!e&&Ux(t)>0}function qx(e){return String(Wx(e))+`/`+String(Ux(e))}function Jx(e){return Gx(e)>0?`is-degraded`:`is-healthy`}function Yx(e){let t=Gx(e);if(t>0)return String(t)+` server`+(t===1?``:`s`)+` need`+(t===1?`s`:``)+` attention`;let n=Ux(e),r=Wx(e);return n>0&&r===n?`All MCP servers connected`:String(r)+` of `+String(n)+` server`+(n===1?``:`s`)+` connected`}function Xx(){return{interval:`day`,buckets:[],summary:{requests:0},provider_latency:[]}}function Zx(e){let t=e&&typeof e==`object`?e:{};return{interval:t.interval===`hour`?`hour`:`day`,buckets:Array.isArray(t.buckets)?t.buckets:[],summary:t.summary&&typeof t.summary==`object`?t.summary:{requests:0},provider_latency:Array.isArray(t.provider_latency)?t.provider_latency:[]}}function Qx(e){return Number(e&&e.summary&&e.summary.requests||0)>0}function $x(e){return(e&&Array.isArray(e.provider_latency)?e.provider_latency:[]).length>0}function eS(e){let t=e&&e.summary?e.summary.success_rate:null;return t==null?`—`:(Math.round(Number(t)*1e3)/10).toFixed(1)+`%`}function tS(e,t){return Number(e&&e.summary&&e.summary[t]||0)}function nS(e){let t=Number(e);return Number.isFinite(t)?t>=6e4?(t/6e4).toFixed(1)+` min`:t>=1e3?(t/1e3).toFixed(2)+` s`:Math.round(t)+` ms`:`-`}function rS(e){let t=e&&e.summary?e.summary.avg_duration_ms:null;return t==null?`—`:nS(Number(t))}function iS(e,t){try{let n={};return new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,hourCycle:`h23`}).formatToParts(e).forEach(e=>{n[e.type]=e.value}),{year:n.year,month:n.month,day:n.day,hour:Number(n.hour)}}catch{return{year:String(e.getFullYear()),month:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][e.getMonth()],day:String(e.getDate()),hour:e.getHours()}}}function aS(e,t,n){let r=new Date(e.start);if(Number.isNaN(r.getTime()))return String(e.start||``);let i=iS(r,n),a=i.month+` `+i.day;return t!==`hour`||i.hour===0?a:String(i.hour).padStart(2,`0`)+`:00`}function oS(e,t,n,r){let i=new Date(e.start);if(Number.isNaN(i.getTime()))return String(e.start||``);if(t===`hour`)return r(e.start);let a=iS(i,n);return a.month+` `+a.day+`, `+a.year}function sS(e){return{ok:e(`var(--success)`),clientError:e(`var(--warning)`),serverError:e(`var(--danger)`),other:e(`color-mix(in srgb, var(--text-muted) 55%, transparent)`)}}function cS(e,t,n={}){let r=n.interval===`hour`?`hour`:`day`,i=n.zone,a=n.resolve||(e=>e),o=n.formatTimestamp||(e=>String(e)),s=t.map(e=>aS(e,r,i)),c=sS(a),l=a(`var(--bg-surface)`),u=e=>Number(e)||0,d=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderColor:l,borderWidth:1,borderSkipped:!1,borderRadius:2,maxBarThickness:28}),f=[d(`2xx`,t.map(e=>u(e.status_2xx)),c.ok),d(`4xx`,t.map(e=>u(e.status_4xx)),c.clientError),d(`5xx`,t.map(e=>u(e.status_5xx)),c.serverError)];return t.some(e=>u(e.status_other)>0)&&f.push(d(`Other`,t.map(e=>u(e.status_other)),c.other)),{type:`bar`,data:{labels:s,datasets:f},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:Zy(e,{title:e=>e.length?oS(t[e[0].dataIndex],r,i,o):``,label:e=>e.dataset.label+`: `+e.parsed.y.toLocaleString(),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),`Total: `+t.toLocaleString()}})},scales:{x:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:Xy(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:Xy(),precision:0,callback:e=>Cc(e)}}}}}}function lS(e=eb()){let t={};return function(n){return n in t||(t[n]=e[Object.keys(t).length%e.length]),t[n]}}function uS(e,t,n,r={}){let i=r.interval===`hour`?`hour`:`day`,a=r.zone,o=r.formatTimestamp||(e=>String(e)),s=r.providerColor||lS();return{type:`line`,data:{labels:t.map(e=>aS(e,i,a)),datasets:n.map(e=>({label:e.provider,data:(e.avg_duration_ms||[]).map(e=>e==null?null:Number(e)),borderColor:s(e.provider),backgroundColor:s(e.provider),fill:!1,tension:.3,borderWidth:2,pointRadius:0,pointHoverRadius:4,spanGaps:i===`hour`&&2}))},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:Zy(e,{title:e=>e.length?oS(t[e[0].dataIndex],i,a,o):``,label:e=>{let t=(n[e.datasetIndex]&&n[e.datasetIndex].requests||[])[e.dataIndex],r=Number(t)||0;return e.dataset.label+`: `+nS(e.parsed.y)+(r>0?` (`+r.toLocaleString()+` req)`:``)}})},scales:{x:{grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:Xy(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:Xy(),callback:e=>nS(e)}}}}}}var dS=class{#e=A(M(Xb()));get status(){return L(this.#e)}set status(e){j(this.#e,e,!0)}#t=A(!1);get loading(){return L(this.#t)}set loading(e){j(this.#t,e,!0)}#n=A(!1);get loadedOnce(){return L(this.#n)}set loadedOnce(e){j(this.#n,e,!0)}#r=A(!1);get detailsExpanded(){return L(this.#r)}set detailsExpanded(e){j(this.#r,e,!0)}#i=A(M({}));get cardOverrides(){return L(this.#i)}set cardOverrides(e){j(this.#i,e,!0)}#a=null;#o=null;#s=!1;initPreferences(){if(this.#s)return;this.#s=!0;let e=Zb(Sa());this.detailsExpanded=e.detailsExpanded,this.cardOverrides=e.cardOverrides}cardExpanded(e){return ex(this.cardOverrides,this.detailsExpanded,e)}toggleCard(e){let t=e&&e.name?String(e.name):``;if(!t)return;let n={...this.cardOverrides};n[t]=!this.cardExpanded(e),this.cardOverrides=n,$b(Sa(),this.cardOverrides)}toggleDetails(){this.detailsExpanded=!this.detailsExpanded,this.cardOverrides={},Qb(Sa(),this.detailsExpanded),$b(Sa(),this.cardOverrides)}detailsToggleLabel(){return this.detailsExpanded?`Show Details`:`Hide Details`}async fetch(){this.initPreferences(),this.#a&&this.#a.abort();let e=new AbortController;this.#a=e,this.loading=!0;try{let t=await Es(`/admin/providers/status`,{label:`provider status`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.status=Xb(),this.#l();return}let n=t.data&&typeof t.data==`object`?t.data:Xb();n.summary||=Xb().summary,Array.isArray(n.providers)||(n.providers=[]),this.status=n,this.#c()}catch(e){if(Os(e))return;console.error(`Failed to fetch provider status:`,e),this.status=Xb(),this.#l()}finally{this.#a===e&&(this.#a=null,this.loading=!1,this.loadedOnce=!0)}}#c(){this.#l(),ox(this.status.providers)&&(this.#o=setTimeout(()=>{this.#o=null,this.fetch()},qb))}#l(){this.#o&&=(clearTimeout(this.#o),null)}stopPolling(){this.#l()}},fS=class{#e=A(M(Xx()));get stats(){return L(this.#e)}set stats(e){j(this.#e,e,!0)}#t=A(!1);get loading(){return L(this.#t)}set loading(e){j(this.#t,e,!0)}#n=0;async fetch(){let e=++this.#n;this.loading=!0;try{let t=await Es(`/admin/audit/stats?`+Gc.queryStr(),{label:`audit stats`});if(t.stale||e!==this.#n)return;if(!t.ok){this.stats=Xx();return}this.stats=Zx(t.data)}catch(t){if(console.error(`Failed to fetch audit stats:`,t),e!==this.#n)return;this.stats=Xx()}finally{e===this.#n&&(this.loading=!1)}}},pS=class{#e=A(M([]));get servers(){return L(this.#e)}set servers(e){j(this.#e,e,!0)}#t=A(!1);get available(){return L(this.#t)}set available(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}async fetch(){if(await js.ensureLoaded(),!js.mcpVisible()){this.available=!1,this.servers=[];return}this.loading=!0;try{let e=await Es(`/admin/mcp-servers`,{label:`mcp servers`});if(e.stale)return;if(e.status===503||e.status===404){this.available=!1,this.servers=[];return}if(this.available=!0,!e.ok){this.servers=[];return}this.servers=Array.isArray(e.data)?e.data:[]}catch(e){console.error(`Failed to fetch MCP servers:`,e),this.servers=[]}finally{this.loading=!1}}},mS=class{#e=A(M([]));get data(){return L(this.#e)}set data(e){j(this.#e,e,!0)}#t=A(`tokens`);get mode(){return L(this.#t)}set mode(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=null;async fetch(){this.#r&&this.#r.abort();let e=new AbortController;this.#r=e,this.loading=!0;try{let t=await Es(`/admin/usage/daily?days=365&interval=daily`,{label:`calendar`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.data=[];return}this.data=Array.isArray(t.data)?t.data:[]}catch(e){if(Os(e))return;console.error(`Failed to fetch calendar data:`,e),this.data=[]}finally{this.#r===e&&(this.#r=null,this.loading=!1)}}},hS=new dS,gS=new fS,_S=new pS,vS=new mS,yS=(e,t=f,n=f,r=f,i=f)=>{var a=xS(),o=N(a),s=N(o,!0);E(o);var c=F(o,2),l=N(c),u=N(l),d=N(u,!0);E(u),He(),E(l);var p=F(l,4),m=N(p),h=N(m,!0);E(m),He(),E(p);var g=F(p,4),_=N(g,!0);E(g),E(c),E(a),I((e,n,r,i,a,o)=>{V(s,t()),G(l,`title`,e),V(d,n),G(p,`title`,r),V(h,i),G(g,`title`,a),V(_,o)},[()=>wc(`Input tokens`,n()),()=>Cc(n()),()=>wc(`Output tokens`,r()),()=>Cc(r()),()=>wc(`Total tokens`,i()),()=>Cc(i())]),B(e,a)},bS=(e,t=f,n=f,r=f,i=f,a=f,o=f)=>{var s=wS(),c=N(s),l=N(c,!0);E(c);var u=F(c,2),d=N(u,!0);E(u);var p=F(u,2),m=e=>{var t=SS(),n=N(t,!0);E(t),I(()=>{G(t,`aria-label`,o().title),G(t,`title`,o().title),V(n,a())}),R(`click`,t,function(...e){o().onclick?.apply(this,e)}),B(e,t)},h=e=>{var t=CS(),n=N(t,!0);E(t),I(()=>V(n,a())),B(e,t)};H(p,e=>{o()?e(m):e(h,-1)}),E(s),I(()=>{W(s,1,`card provider-status-flag ${t()??``} ${n()??``}`,`svelte-6tr9cf`),V(l,r()),V(d,i())}),B(e,s)},xS=z(`
        i + o =
        `),SS=z(``),CS=z(` `),wS=z(`
        `),TS=z(`
        Cache Hits
        `),ES=z(`
        Total Requests
        Estimated Cost
        Prompt Cache Rate
        `);function DS(e,t){D(t,!0);let n=k(()=>Zc.summary),r=k(()=>Zc.cacheOverview),i=k(()=>Zc.cacheAnalyticsEnabled()),a=k(()=>hS.status.summary);function o(){let e=document.getElementById(`provider-status-section`);e&&(e.scrollIntoView({behavior:`smooth`,block:`start`}),e.focus({preventScroll:!0}))}var s=ES(),c=N(s);{let e=k(()=>Tb(L(n)));yS(c,()=>`Tokens`,()=>L(n).total_input_tokens,()=>L(n).total_output_tokens,()=>L(e))}var l=F(c,2),u=F(N(l),2),d=N(u,!0);E(u),E(l);var f=F(l,2),p=e=>{var t=TS(),n=F(N(t),2),i=N(n,!0);E(n),E(t),I(e=>V(i,e),[()=>yc(L(r).summary.total_hits)]),B(e,t)};H(f,e=>{L(i)&&e(p)});var m=F(f,2),h=F(N(m),2),g=N(h,!0);E(h),E(m);var _=F(m,2),v=e=>{{let t=k(()=>kb(L(r)));yS(e,()=>`Local Cache`,()=>L(r).summary.total_input_tokens,()=>L(r).summary.total_output_tokens,()=>L(t))}};H(_,e=>{L(i)&&e(v)});var y=F(_,2),b=F(N(y),2),x=N(b);Wy(x,{build:()=>Wb(Bb(L(n)),Qy(`var(--token-prompt)`),Qy(`var(--bg-surface-hover)`))});var S=F(x,2),C=N(S,!0);E(S),E(b),E(y);var w=F(y,2),T=e=>{{let t=k(()=>tx(L(a))),n=k(()=>rx(L(a))),r=k(()=>ax(L(a))),i=k(()=>ix(L(a))?{title:`View providers overview`,onclick:o}:null);bS(e,()=>`provider-status-overview-card`,()=>L(t),()=>`Provider Status`,()=>L(n),()=>L(r),()=>L(i))}};H(w,e=>{L(a).total>0&&e(T)});var ee=F(w,2),te=e=>{{let t=k(()=>Jx(_S.servers)),n=k(()=>qx(_S.servers)),r=k(()=>Yx(_S.servers));bS(e,()=>`mcp-servers-flag`,()=>L(t),()=>`MCP Servers`,()=>L(n),()=>L(r),()=>({title:`View MCP servers`,onclick:()=>Zo.navigate(`mcp-servers`)}))}},ne=k(()=>Kx(_S.available,_S.servers));H(ee,e=>{L(ne)&&e(te)}),E(s),I((e,t,n,r,i)=>{G(u,`title`,e),V(d,t),V(g,n),G(b,`aria-label`,r),V(C,i)},[()=>Ob(L(n),L(r),L(i)),()=>yc(Db(L(n),L(r),L(i))),()=>bc(L(n).total_cost),()=>`Prompt cache rate `+Hb(L(n)),()=>Hb(L(n))]),B(e,s),O()}Vr([`click`]);var OS=z(` `),kS=z(`
        `),AS=z(`No usage in the selected period yet`),jS=z(`
        `),MS=z(`

        Tokens

        Share of input tokens over the selected period
        `);function NS(e,t){D(t,!0);let n=k(()=>Zc.cacheAnalyticsEnabled()),r=k(()=>Nb(Zc.summary,Zc.cacheOverview,L(n))),i=k(()=>Pb(Zc.summary,Zc.cacheOverview,L(n))),a=k(()=>Mb(Zc.summary,Zc.cacheOverview,L(n)));var o=MS(),s=F(N(o),2);let c;var l=N(s);U(l,17,()=>L(i),e=>e.key,(e,t)=>{var n=kS(),r=N(n),i=e=>{var n=OS(),r=N(n);E(n),I(()=>V(r,`${L(t).pct??``}%`)),B(e,n)};H(r,e=>{L(t).pct>=8&&e(i)}),E(n),I(e=>{Vi(n,`width: ${L(t).pct??``}%; background: var(${L(t).colorVar??``})`),G(n,`title`,e)},[()=>Fb(L(t))]),B(e,n)});var u=F(l,2),d=e=>{B(e,AS())};H(u,e=>{L(a)||e(d)}),E(s);var f=F(s,2);U(f,21,()=>L(r),e=>e.key,(e,t)=>{var n=jS(),r=N(n),i=F(r,2),a=N(i,!0);E(i);var o=F(i,2),s=N(o);E(o);var c=F(o,2),l=N(c,!0);E(c),E(n),I((e,i)=>{G(n,`title`,e),Vi(r,`background: var(${L(t).colorVar??``})`),V(a,L(t).label),V(s,`${L(t).pct??``}%`),V(l,i)},[()=>Fb(L(t)),()=>yc(L(t).tokens)]),B(e,n)}),E(f),E(o),I(e=>{c=W(s,1,`cache-meter-bar svelte-1yzecxj`,null,c,{"is-empty":!L(a)}),G(s,`aria-label`,e)},[()=>Ib(L(i))]),B(e,o),O()}var PS=z(``);function FS(e,t){let n=K(t,`size`,3,16),r=K(t,`label`,3,`Loading`),i=K(t,`class`,3,``);var a=PS();I(()=>{W(a,1,Pi([`spinner`,i()]),`svelte-b54l9o`),Vi(a,`--spinner-size: ${n()??``}px`),G(a,`aria-label`,r())}),B(e,a)}var IS=Yr(` `),LS=Yr(``);function RS(e,t){let n=K(t,`label`,3,`No data`);var r=LS(),i=F(N(r),9),a=e=>{var t=IS(),r=N(t,!0);E(t),I(()=>V(r,n())),B(e,t)};H(i,e=>{n()&&e(a)}),E(r),I(()=>{G(r,`role`,n()?`img`:void 0),G(r,`aria-label`,n()||void 0),G(r,`aria-hidden`,n()?void 0:`true`)}),B(e,r)}var zS=z(`
        `),BS=z(`

        `);function VS(e,t){D(t,!0);let n=[`daily`,`weekly`,`monthly`,`yearly`];function r(e){Gc.interval=e,t.onintervalchange?.()}function i(){let e=Zc.daily;if(e.length===0)return null;let t=Gc.rangeStart(),n=Gc.rangeEnd(),r=zb(Rb(e,Gc.interval,t,n),Rb(Array.isArray(Zc.cacheOverview.daily)?Zc.cacheOverview.daily:[],Gc.interval,t,n));return Ub(Yy(),r,{cacheEnabled:Zc.cacheAnalyticsEnabled(),resolve:Qy})}var a=BS(),o=N(a),s=N(o),c=N(s,!0);E(s);var l=F(s,2);{let e=k(()=>n.map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})));qy(l,{ariaLabel:`Usage chart interval`,get options(){return L(e)},get value(){return Gc.interval},onchange:r})}E(o);var u=F(o,2),d=N(u);Wy(d,{build:i});var f=F(d,2),p=e=>{var t=zS();FS(N(t),{size:24,label:`Loading usage`}),E(t),B(e,t)},m=e=>{var t=zS();RS(N(t),{}),E(t),B(e,t)};H(f,e=>{Zc.daily.length===0&&Zc.loading?e(p):Zc.daily.length===0&&!J.authError&&e(m,1)}),E(u),E(a),I(e=>V(c,e),[()=>Gc.chartTitle()]),B(e,a),O()}var HS=10,US=.7;function WS(e,t){if(e<=0||t<=0)return 0;let n=(e/t)**+US,r=Math.ceil(n*HS);return r<1?1:r>HS?HS:r}function GS(){let e=[];for(let t=0;t<=HS;t++)e.push(t);return e}function KS(e,t,n){let r={};(e||[]).forEach(e=>{r[e.date]=e});let i=ss(ls(n,-364)),a=i.getUTCDay();i.setUTCDate(i.getUTCDate()-a);let o=[];for(let e=new Date(i);cs(e)<=n;e.setUTCDate(e.getUTCDate()+1)){let n=cs(e),i=r[n],a=0;i&&(a=t===`costs`?i.total_cost==null?0:i.total_cost:i.total_tokens||0),o.push({dateStr:n,value:a,level:0,empty:!1})}let s=0;for(let e=0;es&&(s=o[e].value);for(let e=0;e0){for(;l.length<7;)l.push({dateStr:``,value:0,level:0,empty:!0});c.push(l)}return c}function qS(e){let t=ss(ls(e,-364)),n=t.getUTCDay();t.setUTCDate(t.getUTCDate()-n);let r=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],i=[],a={},o=0;for(let n=new Date(t);cs(n)<=e;n.setUTCDate(n.getUTCDate()+7),o++){let t=null;if(o===0)t=new Date(n);else for(let r=0;r<7;r++){let i=new Date(n);if(i.setUTCDate(n.getUTCDate()+r),cs(i)>e)break;if(i.getUTCDate()===1){t=i;break}}if(!t)continue;let s=t.getUTCFullYear()+`-`+t.getUTCMonth();a[s]||(i.push({label:r[t.getUTCMonth()],col:o,key:s}),a[s]=!0)}for(let e=0;e `),ZS=z(`
        `),QS=z(`
        `),$S=z(`
        `),eC=z(`
        `),tC=z(`

        Activity

        Mon Wed Fri
        `,1);function nC(e,t){D(t,!0);let n=A(M({show:!1,x:0,y:0,text:``})),r=k(()=>bs.currentDateKey()),i=k(()=>KS(vS.data,vS.mode,L(r))),a=k(()=>qS(L(r)));function o(e,t){t.empty||j(n,{show:!0,x:e.clientX,y:e.clientY,text:YS(t,vS.mode)},!0)}function s(){j(n,{show:!1,x:0,y:0,text:``},!0)}var c=tC(),l=P(c),u=N(l),d=F(N(u),2),f=e=>{FS(e,{size:14,label:`Loading activity`})};H(d,e=>{vS.loading&&vS.data.length===0&&e(f)}),qy(F(d,2),{ariaLabel:`Activity calendar mode`,options:[{value:`tokens`,label:`Tokens`},{value:`costs`,label:`Costs`}],get value(){return vS.mode},onchange:e=>vS.mode=e}),E(u);var p=F(u,2),m=F(N(p),2),h=N(m);U(h,21,()=>L(a),e=>e.key,(e,t)=>{var n=XS(),r=N(n,!0);E(n),I(()=>{Vi(n,`grid-column: ${L(t).col+1} / span ${L(t).span??``}`),V(r,L(t).label)}),B(e,n)}),E(h);var g=F(h,2);U(g,21,()=>L(i),ai,(e,t,n)=>{var r=QS();U(r,23,()=>L(t),(e,t)=>n+`-`+t,(e,t)=>{var n=ZS();I(()=>W(n,1,Pi([`contribution-calendar-cell`,L(t).empty?`empty`:`level-${L(t).level}`]),`svelte-3hfxuq`)),Br(`mouseenter`,n,e=>o(e,L(t))),Br(`mouseleave`,n,s),B(e,n)}),E(r),B(e,r)}),E(g),E(m),E(p);var _=F(p,2),v=N(_),y=N(v),b=N(y,!0);E(y),E(v);var x=F(v,2);U(F(N(x),2),16,GS,e=>e,(e,t)=>{var n=$S();I(()=>W(n,1,`contribution-calendar-cell level-${t??``}`,`svelte-3hfxuq`)),B(e,n)}),He(2),E(x),E(_),E(l);var S=F(l,2),C=e=>{var t=eC(),r=N(t,!0);E(t),I(()=>{Vi(t,`left: ${L(n).x??``}px; top: ${L(n).y-40}px`),V(r,L(n).text)}),B(e,t)};H(S,e=>{L(n).show&&e(C)}),I(e=>V(b,e),[()=>JS(vS.data,vS.mode)]),B(e,c),O()}var rC=z(``),iC=z(`

        `),aC=z(`
        `);function oC(e,t){D(t,!0);let n=K(t,`label`,3,`help`),r=K(t,`text`,3,``),i=K(t,`open`,15,!1),a=K(t,`external`,3,!1),o=k(()=>!!r()||!!t.help||a());var s=aC(),c=N(s),l=N(c);hi(l,()=>t.title??f);var u=F(l,2),d=e=>{var r=rC();let a;I(()=>{a=W(r,1,`inline-help-toggle svelte-y40or3`,null,a,{"is-open":i()}),G(r,`aria-label`,(i()?`Hide `:`Show `)+n()),G(r,`aria-expanded`,i()),G(r,`aria-controls`,t.copyId)}),R(`click`,r,()=>i(!i())),B(e,r)};H(u,e=>{L(o)&&e(d)}),hi(F(u,2),()=>t.extra??f),E(c);var p=F(c,2),m=e=>{var n=iC(),i=N(n),a=e=>{var n=Zr();hi(P(n),()=>t.help),B(e,n)},o=e=>{var t=Xr();I(()=>V(t,r())),B(e,t)};H(i,e=>{t.help?e(a):e(o,-1)}),E(n),I(()=>G(n,`id`,t.copyId)),B(e,n)};H(p,e=>{i()&&L(o)&&!a()&&e(m)}),E(s),B(e,s),O()}Vr([`click`]);var sC=z(`

        Provider Latency

        `),cC=z(`
        Avg
        `),lC=z(`

        Requests by Status

        Success 2xx 4xx 5xx
        `,1);function uC(e,t){D(t,!0);let n=lS(),r=k(()=>gS.stats);function i(){return{interval:L(r).interval,zone:bs.effectiveTimezone(),resolve:Qy,formatTimestamp:e=>bs.formatTimestamp(e)}}var a=Zr(),o=P(a),s=e=>{var t=lC(),a=P(t),o=N(a),s=F(N(o),2),c=N(s),l=F(N(c),2),u=N(l,!0);E(l),E(c);var d=F(c,2),f=F(N(d),4),p=N(f,!0);E(f),E(d);var m=F(d,2),h=F(N(m),4),g=N(h,!0);E(h),E(m);var _=F(m,2),v=F(N(_),4),y=N(v,!0);E(v),E(_),E(s),E(o);var b=F(o,2);Wy(N(b),{build:()=>cS(Yy(),L(r).buckets,i())}),E(b),E(a);var x=F(a,2),S=e=>{var t=cC(),a=N(t),o=N(a);oC(o,{copyId:`audit-latency-help-copy`,label:`provider latency help`,text:`Average duration of successful requests as measured at the gateway, per provider. Local cache hits and failed requests are excluded; streamed responses count until the stream completes.`,title:e=>{B(e,sC())},$$slots:{title:!0}});var s=F(o,2),c=N(s),l=F(N(c),2),u=N(l,!0);E(l),E(c),E(s),E(a);var d=F(a,2);Wy(N(d),{build:()=>uS(Yy(),L(r).buckets,L(r).provider_latency,{...i(),providerColor:n})}),E(d),E(t),I(e=>V(u,e),[()=>rS(L(r))]),B(e,t)},C=k(()=>$x(L(r)));H(x,e=>{L(C)&&e(S)}),I((e,t,n,r)=>{V(u,e),V(p,t),V(g,n),V(y,r)},[()=>eS(L(r)),()=>yc(tS(L(r),`status_2xx`)),()=>yc(tS(L(r),`status_4xx`)),()=>yc(tS(L(r),`status_5xx`))]),B(e,t)},c=k(()=>Qx(L(r)));H(o,e=>{L(c)&&e(s)}),B(e,a),O()}var dC=(e,t=f,n=f,r)=>{let i=Dt(()=>h(r?.(),!1));var a=mC(),o=N(a),s=N(o,!0);E(o);var c=F(o,2),l=e=>{var t=fC(),r=N(t,!0);E(t),I(()=>V(r,n())),B(e,t)},u=e=>{var t=pC(),r=N(t,!0);E(t),I(()=>V(r,n())),B(e,t)};H(c,e=>{L(i)?e(l):e(u,-1)}),E(a),I(()=>V(s,t())),B(e,a)},fC=z(` `),pC=z(` `),mC=z(`
        `),hC=z(`

        `),gC=z(`
        Breaker State
        `),_C=z(`
        `),vC=z(`
        Models (Recent Traffic)
        `),yC=z(`
        `),bC=z(`

        `);function xC(e,t){D(t,!0);let n=k(()=>yx(t.provider)),r=k(()=>[[`Base URL`,t.provider.config?.base_url],[`API Version`,t.provider.config?.api_version]].filter(([,e])=>!!e));var i=bC();let a;var o=N(i),s=N(o),c=N(s,!0);E(s);var l=F(s,2),u=e=>{var n=hC(),r=N(n,!0);E(n),I(()=>V(r,t.provider.last_error)),B(e,n)};H(l,e=>{t.provider.last_error&&e(u)});var d=F(l,2),f=e=>{var r=yC(),i=N(r);{let e=k(()=>bx(t.provider));dC(i,()=>`Recent Requests`,()=>L(e))}var a=F(i,2),o=e=>{var r=gC(),i=F(N(r),2),a=N(i),o=N(a,!0);E(a),E(i),E(r),I(e=>{W(a,1,Pi([`provider-status-health-state`,L(n)]),`svelte-6y9wjv`),V(o,e)},[()=>vx(t.provider)]),B(e,r)},s=k(()=>_x(t.provider));H(a,e=>{L(s)&&e(o)});var c=F(a,2),l=e=>{var n=vC(),r=F(N(n),2);U(r,21,()=>xx(t.provider),e=>e.model,(e,t)=>{var n=_C();let r;var i=N(n),a=N(i,!0);E(i);var o=F(i,2),s=N(o,!0);E(o),E(n),I((e,i)=>{r=W(n,1,`provider-status-health-model svelte-6y9wjv`,null,r,{"is-flagged":L(t).flagged}),G(n,`title`,e),V(a,L(t).model),V(s,i)},[()=>Cx(L(t)),()=>Sx(L(t))]),B(e,n)}),E(r),E(n),B(e,n)},u=k(()=>xx(t.provider).length>0);H(c,e=>{L(u)&&e(l)}),E(r),B(e,r)},p=k(()=>gx(t.provider));H(d,e=>{L(p)&&e(f)});var m=F(d,2),h=N(m);U(h,17,()=>L(r),([e,t])=>e,(e,t)=>{var n=k(()=>g(L(t),2));dC(e,()=>L(n)[0],()=>L(n)[1],()=>!0)});var _=F(h,2);{let e=k(()=>mx(t.provider));dC(_,()=>`Configured Models`,()=>L(e))}var v=F(_,2);{let e=k(()=>fx(t.provider));dC(v,()=>`Retry`,()=>L(e))}var y=F(v,2);{let e=k(()=>px(t.provider));dC(y,()=>`Circuit Breaker`,()=>L(e))}E(m),E(o),E(i),I(()=>{a=W(i,1,`provider-status-details svelte-6y9wjv`,null,a,{"is-expanded":t.expanded,"is-collapsed":!t.expanded}),G(i,`aria-hidden`,!t.expanded),V(c,t.provider.status_reason)}),B(e,i),O()}var SC=z(` `),CC=z(``),wC=z(`

        Models Available
        Last Checked
        `);function TC(e,t){D(t,!0);let n=k(()=>hS.cardExpanded(t.provider)),r=e=>bs.formatTimestamp(e);var i=wC(),a=N(i),o=N(a),s=N(o),c=N(s),l=N(c,!0);E(c);var u=F(c,2),d=e=>{var n=SC(),r=N(n);E(n),I(e=>V(r,`(${e??``})`),[()=>ux(t.provider)]),B(e,n)},f=k(()=>ux(t.provider));H(u,e=>{L(f)&&e(d)});var p=F(u,2),m=e=>{var n=CC();I((e,t,r)=>{G(n,`href`,e),G(n,`aria-label`,t),G(n,`title`,r)},[()=>dx(t.provider),()=>`View `+(ux(t.provider)||t.provider.name)+` provider docs`,()=>`View `+(ux(t.provider)||t.provider.name)+` provider docs`]),B(e,n)},h=k(()=>dx(t.provider));H(p,e=>{L(h)&&e(m)}),E(s),E(o);var g=F(o,2),_=N(g,!0);E(g),E(a);var v=F(a,2),y=N(v),b=F(N(y),2),x=N(b,!0);E(b),E(y);var S=F(y,2),C=F(N(S),2),w=N(C,!0);E(C),E(S),E(v);var T=F(v,2);xC(T,{get provider(){return t.provider},get expanded(){return L(n)}});var ee=F(T,2);let te;q(N(ee),{get icon(){return Ua},class:`provider-status-card-toggle-icon`}),E(ee),E(i),I((e,r,i,a,o)=>{V(l,t.provider.name),W(g,1,`provider-status-pill ${e??``}`,`svelte-nopjmh`),G(g,`title`,r),V(_,t.provider.status_label),V(x,i),G(C,`title`,a),V(w,o),te=W(ee,1,`provider-status-card-toggle svelte-nopjmh`,null,te,{"is-expanded":L(n)}),G(ee,`aria-expanded`,L(n)),G(ee,`aria-label`,(L(n)?`Collapse `:`Expand `)+t.provider.name+` details`),G(ee,`title`,L(n)?`Collapse details`:`Expand details`)},[()=>nx(t.provider.status),()=>hx(t.provider),()=>yc(t.provider.runtime?.discovered_model_count),()=>lx(t.provider,r),()=>cx(t.provider,r)]),R(`click`,ee,()=>hS.toggleCard(t.provider)),B(e,i),O()}Vr([`click`]);var EC=z(`

        Providers Overview

        `),DC=z(`
        `);function OC(e,t){D(t,!0);let n=k(()=>hS.status.providers);var r=Zr(),i=P(r),a=e=>{var t=EC(),r=N(t),i=F(N(r),2),a=N(i),o=N(a,!0);E(a);var s=F(a,2);let c;E(i),E(r);var l=F(r,2);U(l,21,()=>L(n),e=>e.name,(e,t)=>{TC(e,{get provider(){return L(t)}})}),E(l),E(t),I((e,t)=>{G(i,`aria-checked`,hS.detailsExpanded),G(i,`title`,e),V(o,t),c=W(s,1,`provider-status-toggle-track svelte-1kx3uw4`,null,c,{"is-active":hS.detailsExpanded})},[()=>hS.detailsToggleLabel(),()=>hS.detailsToggleLabel()]),R(`click`,i,()=>hS.toggleDetails()),B(e,t)},o=e=>{var t=DC();FS(N(t),{size:18,label:`Loading provider status`}),E(t),B(e,t)};H(i,e=>{L(n).length>0?e(a):hS.loading&&!hS.loadedOnce&&e(o,1)}),B(e,r),O()}Vr([`click`]);var kC=z(`
        `);function AC(e,t){D(t,!0);function n(){Zc.fetchUsage(),Zc.fetchCacheOverview(``),gS.fetch(),hS.fetch(),_S.fetch(),vS.fetch()}function r(){Zc.fetchUsage(),Zc.fetchCacheOverview(``),gS.fetch()}function i(){r(),vS.fetch()}kn(()=>{if(J.refreshTick,Zo.page===`overview`)return Tr(()=>{n(),bb.start()}),()=>{bb.stop(),hS.stopPolling()}});var a=kC(),o=N(a);wb(o,{});var s=F(o,4);ml(N(s),{onchange:i}),E(s);var c=F(s,2);Jc(c,{});var l=F(c,2);DS(l,{});var u=F(l,2);NS(u,{});var d=F(u,2);VS(d,{onintervalchange:r});var f=F(d,2);nC(f,{});var p=F(f,2);uC(p,{}),OC(F(p,2),{}),E(a),B(e,a),O()}var jC=`/admin/live/logs?types=audit,usage`;function MC(e,t,n){return!!t&&String(e&&e.id||``).trim()===t||!!n&&String(e&&e.request_id||``).trim()===n}function NC(e){switch(e){case`date_range`:return`Live paused — the selected date range does not include today. Set it to today to resume.`;case`filters`:return`Live paused while filters are active. Clear them to resume.`;case`pagination`:return`Live paused on later pages. Go to the first page to resume.`;default:return``}}function PC(e){let t=jC,n=Number(e||0);return Number.isFinite(n)&&n>0&&(t+=`&cursor=`+encodeURIComponent(String(n))),t}function FC(){return{async consumeLiveLogsBody(e){await rb(e,e=>this.applyLiveLogEvent(e))},applyLiveLogEvent(e){if(!e||typeof e!=`object`)return;let t=Number(e.seq||0);Number.isFinite(t)&&t>this.liveLogsLastSeq&&(this.liveLogsLastSeq=t);let n=String(e.type||``).trim();if(n!==`heartbeat`){if(n===`reset`){this.reloadLiveLogSources();return}if(n===`audit.removed`){this.removeLiveAuditEntry(e.data);return}if(n.indexOf(`audit.`)===0){this.mergeLiveAuditEntry(e.data||{},n);return}n.indexOf(`usage.`)===0&&(this.mergeLiveUsageEntry(e.data||{},n),typeof this.noteLiveTokenUsage==`function`&&this.noteLiveTokenUsage(n))}},reloadLiveLogSources(){typeof this.fetchUsage==`function`&&this.fetchUsage(),this.page===`audit-logs`&&typeof this.fetchAuditLog==`function`&&this.fetchAuditLog(!0)},auditLivePauseReason(){return!this.auditLog||this.auditLog.offset!==0?`pagination`:this.auditSearch||this.auditMethod||this.auditStatusCode||this.auditStream?`filters`:!this.followsToday&&(this.customStartDate||this.customEndDate)?`date_range`:null},auditLiveInsertAllowed(){return!this.auditLivePauseReason()},usageLiveInsertAllowed(){return this.usageLog&&this.usageLog.offset===0&&!this.usageLogSearch&&!this.usageFilterModel&&!this.usageFilterProvider&&!this.usageFilterLabel&&!this.usageFilterUserPath&&!this.usageFilterSession},mergeLiveAuditEntry(e,t){if(!e||typeof e!=`object`)return;let n=String(e.id||e.request_id||``).trim();if(!n)return;let r=String(e.request_id||``).trim(),i=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],a=i.findIndex(e=>MC(e,n,r)),o=a>=0&&i[a]||{},s=t===`audit.detail`,c=s?{...e,_detail_loaded:!0,_response_partial:!1,bodies_omitted:!1}:this.liveAuditPatch(o,e,t);if(a>=0){let e=this.mergeLiveAuditPatch(o,c);return i.splice(a,1,e),this.auditLog.entries=[...i],this.regroupLiveAuditHead(e),s||this.fetchExpandedAuditDetailIfReady(e),this.cacheMergedAuditRecord(e,t),e}let l=this.mergeLiveAuditChild(e,c);if(l)return s||this.fetchExpandedAuditDetailIfReady(l),this.cacheMergedAuditRecord(l,t),l;if(!this.auditLiveInsertAllowed()){this.cacheMergedAuditRecord(c,t);return}if(!s&&this.auditGroupSessions){let e=this.foldLiveAuditIntoThread(c);if(e)return this.fetchExpandedAuditDetailIfReady(e),this.cacheMergedAuditRecord(e,t),e}this.auditLog.entries=[this.mergeLiveAuditUsagePatch(c),...i].slice(0,this.auditLog.limit||25),this.auditLog.total=Number(this.auditLog.total||0)+1;let u=this.auditLog.entries[0];return s||this.fetchExpandedAuditDetailIfReady(u),this.cacheMergedAuditRecord(u,t),u},liveAuditPatch(e,t,n){let r=this.liveAuditStateAfter(e._live_state,n),i=this.liveAuditEventFlushed(e._live_state)||this.liveAuditEventFlushed(r),a={...t,_live:!0,_live_state:r,_audit_flushed:i,_live_pending:!i};return n===`audit.stream`?a._response_partial=!0:this.liveAuditStateSettled(n)&&(a._response_partial=!1),a},mergeLiveAuditChild(e,t){let n=this.auditThreadChildren;if(!n||typeof n!=`object`)return null;let r=String(e.id||``).trim(),i=String(e.request_id||``).trim(),a=Object.keys(n);for(let e=0;eMC(e,r,i));if(c<0)continue;let l=this.mergeLiveAuditPatch(s[c]||{},t),u=[...s];return u.splice(c,1,l),this.auditThreadChildren={...n,[a[e]]:{...o,entries:u}},l}return null},regroupLiveAuditHead(e){if(!this.auditGroupSessions)return null;let t=String(e&&e.session_id||``).trim();if(!t)return null;let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=String(e.id||``).trim(),i=n.findIndex(e=>String(e.id||``).trim()===r);if(i<0)return null;let a=n.findIndex((e,n)=>n!==i&&String(e.session_id||``).trim()===t);if(a<0)return null;let o=n[a],s=Date.parse(o&&o.timestamp),c=Date.parse(e&&e.timestamp),l=Number.isFinite(s)&&Number.isFinite(c)&&s>c,u=l?o:e,d=l?e:o,f={...u,session_count:Math.max(1,Number(o.session_count||1))+Math.max(1,Number(e.session_count||1))},p=n.filter((e,t)=>t!==i&&t!==a);return p.unshift(f),this.auditLog.entries=p,this.auditLog.total=Math.max(0,Number(this.auditLog.total||0)-1),this.prependLiveAuditThreadChild(t,d),f},foldLiveAuditIntoThread(e){let t=String(e&&e.session_id||``).trim();if(!t)return null;let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=n.findIndex(e=>String(e.session_id||``).trim()===t);if(r<0)return null;let i=n[r],a=Number(i.session_count),o=this.mergeLiveAuditUsagePatch({...e,session_count:(Number.isFinite(a)&&a>0?a:1)+1}),s=[...n];return s.splice(r,1),s.unshift(o),this.auditLog.entries=s,this.prependLiveAuditThreadChild(t,i),o},prependLiveAuditThreadChild(e,t){let n=this.auditThreadChildren||{},r=n[e],i={...t};delete i.session_count;let a=r&&Array.isArray(r.entries)?{...r,entries:[i,...r.entries],total:Number(r.total||r.entries.length)+1}:{loading:!1,loaded:!1,entries:[i],total:1};this.auditThreadChildren={...n,[e]:a}},removeLiveAuditThreadChild(e,t){let n=this.auditThreadChildren;!n||typeof n!=`object`||Object.keys(n).forEach(r=>{let i=n[r],a=i&&Array.isArray(i.entries)?i.entries:[],o=a.filter(n=>!MC(n,e,t)),s=a.length-o.length;s!==0&&(this.auditThreadChildren={...this.auditThreadChildren,[r]:{...i,entries:o,total:Math.max(0,Number(i.total||a.length)-s)}},this.decrementLiveAuditThreadCount(r,s))})},decrementLiveAuditThreadCount(e,t){let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=n.findIndex(t=>String(t.session_id||``).trim()===e);if(r<0)return;let i=n[r],a=[...n];a.splice(r,1,{...i,session_count:Math.max(1,Number(i.session_count||1)-t)}),this.auditLog.entries=a},mergeLiveAuditPatch(e,t){let n={...e,...t};return t.data===void 0&&e.data!==void 0?n.data=e.data:e.data&&t.data&&typeof e.data==`object`&&typeof t.data==`object`&&!Array.isArray(e.data)&&!Array.isArray(t.data)&&(n.data={...e.data,...t.data}),this.mergeLiveAuditUsagePatch(n)},mergeLiveAuditUsagePatch(e){let t=this.liveUsageEntryForAudit(e);if(!t)return e;let n=this.auditEntryWithLiveUsage(e,t);return this.removeSkippedLiveUsage(t),n},liveUsageEntryForAudit(e){let t=String(e&&e.request_id||``).trim();return t&&((this.usageLog&&Array.isArray(this.usageLog.entries)?this.usageLog.entries:[]).find(e=>String(e&&e.request_id||``).trim()===t)||this.skippedLiveUsageByRequestId&&this.skippedLiveUsageByRequestId[t])||null},cacheMergedAuditRecord(e,t){return e&&typeof this.cacheAuditRecord==`function`?this.cacheAuditRecord(e,t):e},fetchExpandedAuditDetailIfReady(e){!e||!this.isAuditEntryExpanded||!this.isAuditEntryExpanded(e)||String(e._live_state||``).trim()!==`audit.flushed`&&!e._audit_flushed||typeof this.fetchAuditEntryDetail==`function`&&this.fetchAuditEntryDetail(e)},liveAuditStateRank(e){switch(String(e||``).trim()){case`audit.started`:return 10;case`audit.updated`:case`audit.stream`:return 20;case`audit.completed`:return 30;case`audit.failed`:case`audit.flushed`:case`audit.detail`:return 40;default:return 0}},liveAuditStateAfter(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return this.liveAuditStateRank(n)>this.liveAuditStateRank(r)?n:r},liveAuditStateSettled(e){return this.liveAuditStateRank(e)>=this.liveAuditStateRank(`audit.completed`)},liveAuditEventFlushed(e){let t=String(e||``).trim();return t===`audit.failed`||t===`audit.flushed`||t===`audit.detail`},removeLiveAuditEntry(e){if(!e||!this.auditLog||!Array.isArray(this.auditLog.entries))return;let t=String(e.id||``).trim(),n=String(e.request_id||``).trim();if(!t&&!n)return;let r=this.auditLog.entries,i=[],a=0,o=0,s=!1;r.forEach(e=>{if(!MC(e,t,n)){i.push(e);return}a++;let r=String(e.session_id||``).trim(),c=Math.max(1,Number(e.session_count||1));if(!this.auditGroupSessions||!r||c<=1)return;o++;let l=this.auditThreadChildren&&this.auditThreadChildren[r],u=l&&Array.isArray(l.entries)?l.entries.filter(e=>!MC(e,t,n)):[];if(u.length===0){s=!0;return}let d={...u[0],session_id:r,session_count:c-1};i.push(d),this.auditThreadChildren={...this.auditThreadChildren,[r]:{...l,entries:u.slice(1),total:Math.max(0,Number(l.total||c)-1)}}}),a>0&&(this.auditLog.entries=i,this.auditLog.total=Math.max(0,Number(this.auditLog.total||0)-a+o)),this.removeLiveAuditThreadChild(t,n),s&&typeof this.fetchAuditLog==`function`&&this.fetchAuditLog(!0)},mergeLiveUsageEntry(e,t){if(!e||typeof e!=`object`)return;e={...e,_live_state:t||e._live_state||`usage.completed`};let n=String(e.id||``).trim();if(!n)return;let r=this.usageLog&&Array.isArray(this.usageLog.entries)?this.usageLog.entries:[],i=r.findIndex(e=>String(e.id||``).trim()===n);if(i>=0){let t=r[i]||{},n=this.mergeLiveUsagePatch(t,e);if(this.applyLiveUsageToAudit(n),this.liveUsageShouldSkip(n)){r.splice(i,1),this.usageLog.entries=[...r],this.usageLog.total=Math.max(0,Number(this.usageLog.total||0)-1),this.storeSkippedLiveUsage(n);return}r.splice(i,1,n),this.usageLog.entries=[...r],this.removeSkippedLiveUsage(n);return}let a=this.mergeLiveUsagePatch(this.liveUsageSeedForEntry(e),e);if(this.applyLiveUsageToAudit(a),this.liveUsageShouldSkip(a)){this.storeSkippedLiveUsage(a);return}this.removeSkippedLiveUsage(a),this.usageLog.entries=[a,...r].slice(0,this.usageLog.limit||50),this.usageLog.total=Number(this.usageLog.total||0)+1},mergeLiveUsagePatch(e,t){e=e&&typeof e==`object`?e:{};let n=this.liveUsageStateAfter(e._live_state,t&&t._live_state),r=this.liveUsageEventFlushed(e)||this.liveUsageEventFlushed({...t,_live_state:n});return{...e,...t,_live:!0,_live_state:n||`usage.completed`,_live_pending:!r,_usage_flushed:r}},liveUsageShouldSkip(e){return!!(this.usageLogHideCached&&this.liveUsageEntryCached(e))||!this.usageLiveInsertAllowed()},liveUsageSeedForEntry(e){return this.skippedLiveUsageForEntry(e)||this.auditLiveUsageForEntry(e)},skippedLiveUsageForEntry(e){let t=String(e&&e.request_id||``).trim();return t&&this.skippedLiveUsageByRequestId?this.skippedLiveUsageByRequestId[t]:null},auditLiveUsageForEntry(e){let t=String(e&&e.request_id||``).trim();if(!t||!this.auditLog||!Array.isArray(this.auditLog.entries))return null;let n=this.auditLog.entries.find(e=>String(e&&e.request_id||``).trim()===t),r=n&&n.usage&&typeof n.usage==`object`&&!Array.isArray(n.usage)?n.usage:null;return r?{id:e&&e.id,request_id:t,entries:r.entries,input_tokens:r.input_tokens,uncached_input_tokens:r.uncached_input_tokens,cached_input_tokens:r.cached_input_tokens,cache_write_input_tokens:r.cache_write_input_tokens,output_tokens:r.output_tokens,total_tokens:r.total_tokens,cached_input_ratio:r.cached_input_ratio,estimated_cached_characters:r.estimated_cached_characters,_live_state:n._usage_live_state,_live_pending:n._usage_live_pending,_usage_flushed:n._usage_flushed}:null},storeSkippedLiveUsage(e){let t=String(e&&e.request_id||``).trim();t&&((!this.skippedLiveUsageByRequestId||typeof this.skippedLiveUsageByRequestId!=`object`||Array.isArray(this.skippedLiveUsageByRequestId))&&(this.skippedLiveUsageByRequestId={}),this.skippedLiveUsageByRequestId[t]=e)},removeSkippedLiveUsage(e){let t=String(e&&e.request_id||``).trim();t&&this.skippedLiveUsageByRequestId&&delete this.skippedLiveUsageByRequestId[t]},liveUsageEntryCached(e){let t=String(e&&e.cache_type||``).trim().toLowerCase();return t===`exact`||t===`semantic`||!!(e&&e.cache_hit)},liveUsageEventFlushed(e){let t=String(e&&e._live_state||``).trim();return!!(e&&e._usage_flushed)||t===`usage.failed`||t===`usage.flushed`},liveUsageStateRank(e){switch(String(e||``).trim()){case`usage.completed`:return 10;case`usage.failed`:case`usage.flushed`:return 20;default:return 0}},liveUsageStateAfter(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return this.liveUsageStateRank(n)>this.liveUsageStateRank(r)?n:r},applyLiveUsageToAudit(e){let t=String(e&&e.request_id||``).trim();if(!t||!this.auditLog||!Array.isArray(this.auditLog.entries))return;let n=this.auditLog.entries.findIndex(e=>String(e.request_id||``).trim()===t);if(n>=0){let t=this.auditLog.entries[n];this.auditLog.entries.splice(n,1,this.auditEntryWithLiveUsage(t,e)),this.auditLog.entries=[...this.auditLog.entries]}let r=this.auditThreadChildren;if(!r||typeof r!=`object`)return;let i=r,a=!1;Object.keys(r).forEach(n=>{let r=i[n],o=r&&Array.isArray(r.entries)?r.entries:[],s=o.findIndex(e=>String(e.request_id||``).trim()===t);if(s<0)return;let c=[...o];c.splice(s,1,this.auditEntryWithLiveUsage(o[s],e)),i={...i,[n]:{...r,entries:c}},a=!0}),a&&(this.auditThreadChildren=i)},auditEntryWithLiveUsage(e,t){let n=this.liveUsageStateAfter(e._usage_live_state,t._live_state||`usage.completed`),r=this.liveUsageEventFlushed({_live_state:n,_usage_flushed:e._usage_flushed||t._usage_flushed});return{...e,usage:this.liveUsageSummary(t,e.usage),_usage_live_state:n||`usage.completed`,_usage_live_pending:!r,_usage_flushed:r}},liveUsageSummary(e,t){let n=t&&typeof t==`object`&&!Array.isArray(t)?t:{},r=this.liveNumber(e.input_tokens,this.liveNumber(n.input_tokens,0)),i=this.liveNumber(e.output_tokens,this.liveNumber(n.output_tokens,0)),a=this.liveNumber(e.uncached_input_tokens,this.liveNumber(n.uncached_input_tokens,0)),o=this.liveNumber(e.cached_input_tokens,this.liveNumber(n.cached_input_tokens,0)),s=this.liveNumber(e.cache_write_input_tokens,this.liveNumber(n.cache_write_input_tokens,0));r>0&&a+o+s===0&&(a=r);let c=a+o+s||r,l=c+i||this.liveNumber(e.total_tokens,this.liveNumber(n.total_tokens,0)),u=this.liveNumber(e.cached_input_ratio,this.liveNumber(n.cached_input_ratio,c>0?o/c:0));return{entries:Math.max(1,this.liveNumber(e.entries,this.liveNumber(n.entries,1))),input_tokens:c,uncached_input_tokens:a,cached_input_tokens:o,cache_write_input_tokens:s,output_tokens:i,total_tokens:l,cached_input_ratio:u,estimated_cached_characters:this.liveNumber(e.estimated_cached_characters,this.liveNumber(n.estimated_cached_characters,o*4))}},liveNumber(e,t){let n=Number(e);return Number.isFinite(n)?n:t},auditEntryShouldFetchDetail(e){return!e||e._detail_loading||e._detail_loaded||this.auditEntryLiveDetailPending(e)?!1:this.auditEntryNeedsPersistedLiveDetail(e)||e.bodies_omitted?!0:!this.auditEntryHasDetailData(e)},auditEntryLiveDetailPending(e){if(!e||!e._live)return!1;let t=String(e._live_state||``).trim();return t===`audit.failed`||!e._audit_flushed&&t!==`audit.flushed`&&t!==`audit.detail`},auditEntryNeedsPersistedLiveDetail(e){return!!(e&&e._live&&!e._detail_loaded)},auditEntryHasDetailData(e){let t=e&&e.data;return!t||typeof t!=`object`?!1:t.request_headers!==void 0||t.response_headers!==void 0||t.request_body!==void 0||t.response_body!==void 0||t.request_body_too_big_to_handle!==void 0||t.response_body_too_big_to_handle!==void 0||t.user_agent!==void 0||t.api_key_hash!==void 0||t.temperature!==void 0||t.max_tokens!==void 0||t.error_message!==void 0||t.error_code!==void 0},clearAuditDetailLoading(e){if(!e)return;let t=String(e.id||``).trim(),n=String(e.request_id||``).trim(),r=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],i=r.find(e=>t&&String(e.id||``).trim()===t?!0:!!(n&&String(e.request_id||``).trim()===n)),a=i||e;a._detail_loading=!1,i&&(this.auditLog.entries=[...r])}}}var IC={"audit.started":10,"audit.updated":20,"audit.stream":20,"audit.completed":30,"audit.failed":40,"audit.flushed":40,"audit.detail":40},LC=new Set(Object.keys(IC));function RC(e){return String(e&&(e.id||e.request_id)||``).trim()}function zC(e,t){let n=e&&typeof e==`object`?e:{},r=t&&typeof t==`object`?t:{},i={...n,...r};r.data==null&&n.data!=null?i.data=n.data:HC(n.data)&&HC(r.data)&&(i.data={...n.data,...r.data});let a=String(n._live_state||``).trim(),o=String(r._live_state||``).trim();return(IC[a]||0)>(IC[o]||0)&&(i._live_state=a),n._audit_flushed&&(i._audit_flushed=!0),i._audit_flushed&&(i._live_pending=!1),n._detail_loaded&&!r._detail_loaded&&(i._detail_loaded=!0,i.bodies_omitted=!1),i.bodies_omitted&&HC(i.data)&&(i.data.request_body!==void 0||i.data.response_body!==void 0)&&(i.bodies_omitted=!1),i}function BC(e,t){let n=Number(t||0);return(Array.isArray(e)?e:[]).filter(e=>Number(e&&e.version||0)>n)}function VC(e){return LC.has(String(e&&e.eventType||``).trim())}function HC(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}var UC=200,WC=class{#e=A(M({entries:[],total:0,limit:25,offset:0}));get auditLog(){return L(this.#e)}set auditLog(e){j(this.#e,e,!0)}#t=A(M({entries:[],total:0,limit:50,offset:0}));get usageLog(){return L(this.#t)}set usageLog(e){j(this.#t,e,!0)}#n=A(M({}));get auditRecords(){return L(this.#n)}set auditRecords(e){j(this.#n,e,!0)}#r=A(M([]));get auditRecordChanges(){return L(this.#r)}set auditRecordChanges(e){j(this.#r,e,!0)}auditRecordVersion=0;auditRecordPins=new Set;#i=A(``);get auditSearch(){return L(this.#i)}set auditSearch(e){j(this.#i,e,!0)}#a=A(``);get auditMethod(){return L(this.#a)}set auditMethod(e){j(this.#a,e,!0)}#o=A(``);get auditStatusCode(){return L(this.#o)}set auditStatusCode(e){j(this.#o,e,!0)}#s=A(``);get auditStream(){return L(this.#s)}set auditStream(e){j(this.#s,e,!0)}#c=A(Ca(`gomodel_audit_group_sessions`,`true`)!==`false`);get auditGroupSessions(){return L(this.#c)}set auditGroupSessions(e){j(this.#c,e,!0)}#l=A(M({}));get auditThreadChildren(){return L(this.#l)}set auditThreadChildren(e){j(this.#l,e,!0)}#u=A(``);get usageLogSearch(){return L(this.#u)}set usageLogSearch(e){j(this.#u,e,!0)}#d=A(``);get usageFilterModel(){return L(this.#d)}set usageFilterModel(e){j(this.#d,e,!0)}#f=A(``);get usageFilterProvider(){return L(this.#f)}set usageFilterProvider(e){j(this.#f,e,!0)}#p=A(``);get usageFilterLabel(){return L(this.#p)}set usageFilterLabel(e){j(this.#p,e,!0)}#m=A(``);get usageFilterUserPath(){return L(this.#m)}set usageFilterUserPath(e){j(this.#m,e,!0)}#h=A(``);get usageFilterSession(){return L(this.#h)}set usageFilterSession(e){j(this.#h,e,!0)}#g=A(!1);get usageLogHideCached(){return L(this.#g)}set usageLogHideCached(e){j(this.#g,e,!0)}#_=A(!1);get liveLogsStreaming(){return L(this.#_)}set liveLogsStreaming(e){j(this.#_,e,!0)}liveLogsLastSeq=0;liveLogsReconnectAttempts=0;liveLogsReconnectTimer=null;liveLogsController=null;skippedLiveUsageByRequestId=null;fetchUsage=null;fetchAuditLog=null;isAuditEntryExpanded=null;noteLiveTokenUsage=null;upsertAuditRecord(e,t=``){let n=RC(e);if(!n)return e;let r=zC(this.auditRecords[n],e);return this.auditRecords={...this.auditRecords,[n]:r},this.pruneAuditRecords(),this.auditRecordVersion++,this.auditRecordChanges=[...this.auditRecordChanges,{version:this.auditRecordVersion,key:n,eventType:t}].slice(-512),r}upsertAuditRecords(e,t=``){return(Array.isArray(e)?e:[]).map(e=>this.upsertAuditRecord(e,t))}auditRecord(e){let t=typeof e==`string`?String(e).trim():RC(e);return t&&this.auditRecords[t]||null}cacheAuditRecord(e,t){return this.upsertAuditRecord(e,t)}pinAuditRecords(e){this.auditRecordPins=new Set((Array.isArray(e)?e:[]).map(String))}pruneAuditRecords(){let e=Object.keys(this.auditRecords);if(e.length<=UC)return;let t={...this.auditRecords},n=e.length-UC;for(let r of e){if(n<=0)break;this.auditRecordPins.has(r)||(delete t[r],n--)}this.auditRecords=t}get page(){return Zo.page}get customStartDate(){return Gc.customStartDate}get customEndDate(){return Gc.customEndDate}get followsToday(){return Gc.followsToday}liveLogsEnabled(){return js.liveLogsVisible()}async startLiveLogs(){typeof fetch!=`function`||typeof ReadableStream>`u`||(await js.ensureLoaded(),this.liveLogsEnabled()&&(this.stopLiveLogs(),this.liveLogsController=typeof AbortController==`function`?new AbortController:null,this.readLiveLogsStream(this.liveLogsController)))}stopLiveLogs(){this.liveLogsStreaming=!1,this.liveLogsReconnectTimer&&=(clearTimeout(this.liveLogsReconnectTimer),null),this.liveLogsController&&typeof this.liveLogsController.abort==`function`&&this.liveLogsController.abort(),this.liveLogsController=null}ensureLiveLogs(){this.liveLogsController||this.liveLogsReconnectTimer||this.startLiveLogs()}async readLiveLogsStream(e){let t={};e&&(t.signal=e.signal);let n=PC(this.liveLogsLastSeq),r=J.generation;try{let i=await ws(n,t);if(i.status===401){if(J.handleUnauthorized(r),r{this.liveLogsReconnectTimer=null,this.startLiveLogs()},t)}async fetchAuditEntryDetail(e){if(!this.auditEntryShouldFetchDetail(e))return;let t=String(e.id||``).trim();if(!t)return;e._detail_loading=!0;let n=e;try{let e=await Es(`/admin/audit/detail?log_id=`+encodeURIComponent(t),{label:`audit detail`});if(e.stale||!e.ok)return;n=this.mergeLiveAuditEntry(e.data,`audit.detail`)||n}catch(e){console.error(`Failed to fetch audit detail:`,e)}finally{this.clearAuditDetailLoading(n)}}};Object.assign(WC.prototype,FC());var GC=new WC;if(typeof window<`u`){let e=!1;window.addEventListener(`pagehide`,()=>{e=!!GC.liveLogsController,GC.stopLiveLogs()}),window.addEventListener(`pageshow`,t=>{t.persisted&&e&&GC.ensureLiveLogs()})}var KC=null;jn(()=>{kn(()=>{let e=J.refreshTick;if(KC===null){KC=e;return}e!==KC&&(KC=e,Tr(()=>{GC.stopLiveLogs(),GC.startLiveLogs()}))})});function qC(){return{total_requests:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,uncached_input_tokens:0,cached_input_tokens:0,cache_write_input_tokens:0,total_input_cost:null,total_output_cost:null,total_cost:null,rewrite_tokens_saved:0,rewrite_cost_saved:null}}function JC(){return{entries:[],total:0,limit:50,offset:0}}function YC(){return{entries:[],total:0,limit:50,offset:0}}function XC(e){let t=String(e||``).trim();return t.length<=26?t||`-`:t.slice(0,15)+`…`+t.slice(-8)}function ZC(e,t){let n=[[`model`,e&&e.model],[`provider`,e&&e.provider],[`label`,e&&e.label],[`user_path`,e&&e.user_path],[`session_id`,e&&e.session_id]],r=``;for(let[e,i]of n)!i||e===t||(r+=`&`+e+`=`+encodeURIComponent(i));return r}function QC({limit:e,offset:t,hideCached:n,search:r}){let i=`&limit=`+e+`&offset=`+t;return i+=`&cache_mode=`+(n?`uncached`:`all`),r&&(i+=`&search=`+encodeURIComponent(r)),i}function $C({limit:e,offset:t}){return`&limit=`+e+`&offset=`+t}function ew(e,t){let n=new Set(e||[]);return t&&n.add(t),[...n].sort()}function tw(e,t){let n=Number(t&&t.total_requests||0)-Number(e&&e.total_requests||0);return Number.isFinite(n)&&n>0?n:0}function nw(e,t,n){let r=n?e:t,i=Number(r&&r.total_requests||0);return Number.isFinite(i)?i:0}function rw(e,t,n){let r=tw(e,t);return r<=0?``:n?yc(r)+` cached requests hidden`:yc(Number(e&&e.total_requests||0))+` to providers + `+yc(r)+` from cache`}function iw(e){let t=e||{};return t.total_input_cost===null||t.total_input_cost===void 0?``:bc(t.total_input_cost)+` input + `+bc(t.total_output_cost)+` output`}function aw(e){let t=Number(e&&e.rewrite_tokens_saved||0);return Number.isFinite(t)&&t>0?t:0}function ow(e){return aw(e)>0}function sw(e){let t=e||{};return t.rewrite_cost_saved===void 0?null:t.rewrite_cost_saved}function cw(){return`Estimated at 4 net characters removed per token`}function lw(e,t){return t===`costs`?bc(sw(e)):Cc(aw(e))}function uw(e,t){let n=t===`costs`,r=n?Number(sw(e)):aw(e);if(!Number.isFinite(r)||r<=0)return null;let i=e&&(n?e.total_cost:e.total_input_tokens);if(i==null)return null;let a=Number(i);return!Number.isFinite(a)||a<0?null:r/(a+r)*100}function dw(e,t){let n=uw(e,t);return n===null?``:(n<.1?`<0.1`:n.toFixed(1))+`% less`}function fw(e,t){let n=aw(e);if(n<=0)return``;let r=[yc(n)+` estimated prompt token-transmissions removed across provider requests`,cw(),`Savings are summed per provider request; resent conversation history is counted again`],i=sw(e);i!=null&&(r.push(bc(i)+` estimated gross input cost avoided`),r.push(`Prompt-cache changes caused by rewriting are not included`));let a=dw(e,t);return a&&r.push(a+` than the same traffic without rewriting (`+(t===`costs`?`cost`:`tokens`)+`)`),r.join(` +`)}function pw(e){return String(e&&e.cost_source||``).trim()}function mw(e){let t=pw(e);return t===`openrouter_credits`||t===`xai_cost_in_usd_ticks`}function hw(e){switch(pw(e)){case`openrouter_credits`:return`Costs from OpenRouter USD-based credits.`;case`xai_cost_in_usd_ticks`:return`Costs from xAI usage.cost_in_usd_ticks.`;default:return``}}function gw(e){return String(e&&e.cache_type||``).trim().toLowerCase()}function _w(e){let t=gw(e);return t===`exact`||t===`semantic`}function vw(e){let t=gw(e);return t===`exact`?`Exact`:t===`semantic`?`Semantic`:`-`}function yw(e,t){let n=t?String(t):``;return _w(e)?n?`Saved by cache — not charged +`+n:`Saved by cache — not charged`:n}function bw(e){let t=Number(e&&e.cached_input_ratio);return!Number.isFinite(t)||t<=0?0:Math.min(1,t)}function xw(e){return Number(e&&e.cached_input_tokens||0)>0}function Sw(e){return xw(e)?(bw(e)*100).toFixed(1)+`%`:``}function Cw(e){if(!xw(e))return``;let t=Number(e.cached_input_tokens||0),n=Number(e.uncached_input_tokens||0),r=Number(e.cache_write_input_tokens||0),i=t+n+r,a=[yc(t)+` cached / `+yc(i)+` input tokens`];return r>0&&a.push(yc(r)+` cache write`),a.join(` +`)}function ww(e){let t=[];if(hw(e)&&(t.push(hw(e)),t.push(``)),t.push(`Input: `+bc(e.input_cost)),t.push(`Output: `+bc(e.output_cost)),e.raw_data){t.push(``);for(let[n,r]of Object.entries(e.raw_data)){let e=n.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase()),i=r&&typeof r==`object`?JSON.stringify(r):yc(r);t.push(e+`: `+i)}}return t.join(` +`)}function Tw(e){return Array.isArray(e&&e.labels)?e.labels:[]}function Ew(e,t,n){return(e||[]).length>0||t?!0:(n||[]).some(e=>Tw(e).length>0)}function Dw(e){return e&&typeof e.total_tokens==`number`?e.total_tokens:(e&&e.input_tokens||0)+(e&&e.output_tokens||0)}function Ow(e,t){return t?e.total_cost||0:Dw(e)}function kw(e,t){return[...e||[]].sort((e,n)=>t?(n.total_cost||0)-(e.total_cost||0):Ow(n,t)-Ow(e,t))}function Aw(e){let t=Array.isArray(e)?e:[];if(t.length===0)return!1;if(t.length!==1)return!0;let n=String(t[0]&&t[0].user_path||``).trim();return n!==``&&n!==`/`}function jw(e){return(e||`chart`)===`chart`||e===`stacked`}function Mw(e,t,n){let r=kw(e,n),i=e=>Number(e)||0,a=e=>n?Math.min(i(e.cached_input_cost),i(e.input_cost)):i(e.cached_input_tokens),o=e=>n?i(e.input_cost)-a(e):i(e.uncached_input_tokens)+i(e.cached_input_tokens)+i(e.cache_write_input_tokens)>0?i(e.uncached_input_tokens)+i(e.cache_write_input_tokens):i(e.input_tokens),s=e=>i(n?e.output_cost:e.output_tokens),c=e=>n?0:i(e.local_cached_input_tokens),l=e=>n?0:i(e.local_cached_output_tokens),u=r.slice(0,10),d=r.slice(10),f=u.map(t),p=u.map(o),m=u.map(s),h=u.map(a),g=u.map(c),_=u.map(l);if(d.length>0){f.push(`Other`);let e=e=>d.reduce((t,n)=>t+e(n),0);p.push(e(o)),m.push(e(s)),h.push(e(a)),g.push(e(c)),_.push(e(l))}return{labels:f,inputs:p,outputs:m,prompts:h,localIns:g,localOuts:_}}function Nw(e){return Math.max(200,e*32+72)}var Y=new class{#e=A(`tokens`);get usageMode(){return L(this.#e)}set usageMode(e){j(this.#e,e,!0)}get usageFilterModel(){return GC.usageFilterModel}set usageFilterModel(e){GC.usageFilterModel=e}get usageFilterProvider(){return GC.usageFilterProvider}set usageFilterProvider(e){GC.usageFilterProvider=e}get usageFilterLabel(){return GC.usageFilterLabel}set usageFilterLabel(e){GC.usageFilterLabel=e}get usageFilterUserPath(){return GC.usageFilterUserPath}set usageFilterUserPath(e){GC.usageFilterUserPath=e}get usageFilterSession(){return GC.usageFilterSession}set usageFilterSession(e){GC.usageFilterSession=e}#t=A(M({models:[],providers:[],labels:[]}));get usageFacetOptions(){return L(this.#t)}set usageFacetOptions(e){j(this.#t,e,!0)}#n=A(M(qC()));get usageSummary(){return L(this.#n)}set usageSummary(e){j(this.#n,e,!0)}#r=A(M(qC()));get usageSummaryAll(){return L(this.#r)}set usageSummaryAll(e){j(this.#r,e,!0)}#i=A(M([]));get modelUsage(){return L(this.#i)}set modelUsage(e){j(this.#i,e,!0)}#a=A(M([]));get userPathUsage(){return L(this.#a)}set userPathUsage(e){j(this.#a,e,!0)}#o=A(M([]));get labelUsage(){return L(this.#o)}set labelUsage(e){j(this.#o,e,!0)}#s=A(M(YC()));get sessionUsage(){return L(this.#s)}set sessionUsage(e){j(this.#s,e,!0)}get usageLog(){return GC.usageLog}set usageLog(e){GC.usageLog=e}get usageLogSearch(){return GC.usageLogSearch}set usageLogSearch(e){GC.usageLogSearch=e}get usageLogHideCached(){return GC.usageLogHideCached}set usageLogHideCached(e){GC.usageLogHideCached=e}#c=A(`chart`);get modelUsageView(){return L(this.#c)}set modelUsageView(e){j(this.#c,e,!0)}#l=A(`chart`);get userPathUsageView(){return L(this.#l)}set userPathUsageView(e){j(this.#l,e,!0)}#u=A(`chart`);get labelUsageView(){return L(this.#u)}set labelUsageView(e){j(this.#u,e,!0)}#d=A(`table`);get sessionUsageView(){return L(this.#d)}set sessionUsageView(e){j(this.#d,e,!0)}#f=A(!1);get summaryLoading(){return L(this.#f)}set summaryLoading(e){j(this.#f,e,!0)}#p=A(!1);get modelUsageLoading(){return L(this.#p)}set modelUsageLoading(e){j(this.#p,e,!0)}#m=A(!1);get userPathUsageLoading(){return L(this.#m)}set userPathUsageLoading(e){j(this.#m,e,!0)}#h=A(!1);get labelUsageLoading(){return L(this.#h)}set labelUsageLoading(e){j(this.#h,e,!0)}#g=A(!1);get sessionUsageLoading(){return L(this.#g)}set sessionUsageLoading(e){j(this.#g,e,!0)}#_=A(!1);get usageLogLoading(){return L(this.#_)}set usageLogLoading(e){j(this.#_,e,!0)}#v={};#y(e){this.#v[e]&&this.#v[e].abort();let t=new AbortController;return this.#v[e]=t,t}#b(e,t){this.#v[e]===t&&(this.#v[e]=null)}filterQueryStr(e){return ZC({model:this.usageFilterModel,provider:this.usageFilterProvider,label:this.usageFilterLabel,user_path:this.usageFilterUserPath,session_id:this.usageFilterSession},e)}onUsageFilterChanged(){this.fetchUsagePage()}toggleUsageLabelFilter(e){this.usageFilterLabel=this.usageFilterLabel===e?``:e,this.onUsageFilterChanged()}filterBySession(e){if(this.usageFilterModel=``,this.usageFilterProvider=``,this.usageFilterLabel=``,this.usageFilterUserPath=``,this.usageFilterSession=String(e||``).trim(),this.usageLogSearch=``,this.usageLog.offset=0,this.sessionUsage.offset=0,Zo.page===`usage`){this.fetchUsagePage();return}Zo.navigate(`usage`)}usageLabelChipTitle(e){return this.usageFilterLabel===e?`Clear label filter`:`Filter usage by "`+e+`"`}toggleUsageMode(e){this.usageMode=e,Zo.navigate(`usage`,e===`costs`?`costs`:null)}toggleUsageChartView(e,t){e===`model`&&(this.modelUsageView=t),e===`userPath`&&(this.userPathUsageView=t),e===`label`&&(this.labelUsageView=t),e===`session`&&(this.sessionUsageView=t)}usageFilterModelOptions(){return ew(this.usageFacetOptions.models,this.usageFilterModel)}usageFilterProviderOptions(){return ew(this.usageFacetOptions.providers,this.usageFilterProvider)}usageFilterLabelOptions(){return ew(this.usageFacetOptions.labels,this.usageFilterLabel)}async fetchUsagePage(){await js.ensureLoaded();let e=[this.fetchUsagePageSummary(),this.fetchUsageFacetOptions(),this.fetchModelUsage(),this.fetchUserPathUsage(),this.fetchLabelUsage(),this.fetchSessionUsage(!0),this.fetchUsageLog(!0)];Zc.cacheAnalyticsEnabled()&&e.push(Zc.fetchCacheOverview(this.filterQueryStr())),await Promise.all(e)}async fetchUsagePageSummary(){let e=this.#y(`summary`);this.summaryLoading=!0;try{let t=Gc.queryStr()+this.filterQueryStr(),[n,r]=await Promise.all([Es(`/admin/usage/summary?`+t+`&cache_mode=uncached`,{label:`usage page summary`,signal:e.signal}),Es(`/admin/usage/summary?`+t+`&cache_mode=all`,{label:`usage page summary (all)`,signal:e.signal})]);if(n.stale||r.stale||e.signal.aborted)return;if(!n.ok||!r.ok){this.usageSummary=qC(),this.usageSummaryAll=qC();return}this.usageSummary=n.data&&typeof n.data==`object`?n.data:qC(),this.usageSummaryAll=r.data&&typeof r.data==`object`?r.data:qC()}catch(e){if(Os(e))return;console.error(`Failed to fetch usage page summary:`,e),this.usageSummary=qC(),this.usageSummaryAll=qC()}finally{this.#b(`summary`,e),this.#v.summary===null&&(this.summaryLoading=!1)}}async fetchUsageFacetOptions(){let e=this.#y(`facets`);try{let t=async(t,n)=>{let r=await Es(t+`?`+Gc.queryStr()+this.filterQueryStr(n),{label:`usage facet options`,signal:e.signal});return r.stale?null:r.ok&&Array.isArray(r.data)?r.data:[]},n=t(`/admin/usage/models`,`model`),r=!this.usageFilterModel&&!this.usageFilterProvider,[i,a,o]=await Promise.all([n,r?n:t(`/admin/usage/models`,`provider`),t(`/admin/usage/labels`,`label`)]);if(e.signal.aborted||i===null||a===null||o===null)return;this.usageFacetOptions={models:i.map(e=>e&&e.model).filter(Boolean),providers:a.map(e=>kc(e)).filter(Boolean),labels:o.map(e=>e&&e.label).filter(Boolean)}}catch(e){if(Os(e))return;console.error(`Failed to fetch usage facet options:`,e),this.usageFacetOptions={models:[],providers:[],labels:[]}}finally{this.#b(`facets`,e)}}async#x(e,t,n,r,i){let a=this.#y(e);i(!0);try{let e=await Es(t+`?`+Gc.queryStr()+this.filterQueryStr(),{label:n,signal:a.signal});if(e.stale||a.signal.aborted)return;if(!e.ok){r([]);return}r(Array.isArray(e.data)?e.data:[])}catch(e){if(Os(e))return;console.error(`Failed to fetch `+n+`:`,e),r([])}finally{this.#b(e,a),this.#v[e]===null&&i(!1)}}fetchModelUsage(){return this.#x(`modelUsage`,`/admin/usage/models`,`usage models`,e=>this.modelUsage=e,e=>this.modelUsageLoading=e)}fetchUserPathUsage(){return this.#x(`userPathUsage`,`/admin/usage/user-paths`,`usage user paths`,e=>this.userPathUsage=e,e=>this.userPathUsageLoading=e)}fetchLabelUsage(){return this.#x(`labelUsage`,`/admin/usage/labels`,`usage labels`,e=>this.labelUsage=e,e=>this.labelUsageLoading=e)}async fetchSessionUsage(e){let t=this.#y(`sessionUsage`);this.sessionUsageLoading=!0;try{e&&(this.sessionUsage.offset=0);let n=Gc.queryStr()+this.filterQueryStr();n+=$C(this.sessionUsage);let r=await Es(`/admin/usage/sessions?`+n,{label:`usage sessions`,signal:t.signal});if(r.stale||t.signal.aborted)return;if(!r.ok||!r.data||typeof r.data!=`object`){this.sessionUsage=YC();return}let i=r.data;i.entries=Array.isArray(i.entries)?i.entries:[],this.sessionUsage=i}catch(e){if(Os(e))return;console.error(`Failed to fetch usage sessions:`,e),this.sessionUsage=YC()}finally{this.#b(`sessionUsage`,t),this.#v.sessionUsage===null&&(this.sessionUsageLoading=!1)}}sessionUsageNextPage(){this.sessionUsage.offset+this.sessionUsage.limit>=this.sessionUsage.total||(this.sessionUsage.offset+=this.sessionUsage.limit,this.fetchSessionUsage(!1))}sessionUsagePrevPage(){this.sessionUsage.offset<=0||(this.sessionUsage.offset=Math.max(0,this.sessionUsage.offset-this.sessionUsage.limit),this.fetchSessionUsage(!1))}async fetchUsageLog(e){let t=this.#y(`usageLog`);this.usageLogLoading=!0;try{e&&(this.usageLog.offset=0);let n=Gc.queryStr()+this.filterQueryStr();n+=QC({limit:this.usageLog.limit,offset:this.usageLog.offset,hideCached:this.usageLogHideCached,search:this.usageLogSearch});let r=await Es(`/admin/usage/log?`+n,{label:`usage log`,signal:t.signal});if(r.stale||t.signal.aborted)return;if(!r.ok){this.usageLog=JC();return}let i=r.data&&typeof r.data==`object`?r.data:JC();i.entries||=[],this.usageLog=i}catch(e){if(Os(e))return;console.error(`Failed to fetch usage log:`,e),this.usageLog=JC()}finally{this.#b(`usageLog`,t),this.#v.usageLog===null&&(this.usageLogLoading=!1)}}usageLogNextPage(){this.usageLog.offset+this.usageLog.limit0&&(this.usageLog.offset=Math.max(0,this.usageLog.offset-this.usageLog.limit),this.fetchUsageLog(!1))}};GC.fetchUsage=()=>{Zo.page===`usage`&&Y.fetchUsagePage()};var Pw=z(`
        `);function Fw(e,t){D(t,!0);let n=K(t,`value`,15,``),r=K(t,`placeholder`,3,``),i=K(t,`label`,3,``),a=K(t,`id`,3,void 0),o=K(t,`oninput`,3,void 0),s=K(t,`class`,3,``);var c=Pw(),l=N(c);q(l,{get icon(){return bo},class:`filter-input-icon`});var u=F(l,2);ta(u),E(c),I(()=>{W(c,1,Pi([`filter-input-wrap`,s()]),`svelte-30xz1k`),G(u,`id`,a()),G(u,`placeholder`,r()),G(u,`aria-label`,i())}),R(`input`,u,function(...e){o()?.apply(this,e)}),ua(u,n),B(e,c),O()}Vr([`input`]);function Iw(e,t=300){let n=null,r=(...r)=>{clearTimeout(n),n=setTimeout(()=>{n=null,e(...r)},t)};return r.cancel=()=>{clearTimeout(n),n=null},r}var Lw=z(``),Rw=z(``),zw=z(``),Bw=z(`
        `);function Vw(e,t){D(t,!0);let n=Iw(()=>Y.onUsageFilterChanged()),r=Iw(()=>Y.onUsageFilterChanged());kn(()=>()=>{n.cancel(),r.cancel()});var i=Bw(),a=N(i),o=N(a);o.value=o.__value=``,U(F(o),16,()=>Y.usageFilterModelOptions(),e=>e,(e,t)=>{var n=Lw(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(a);var s=F(a,2),c=N(s);c.value=c.__value=``,U(F(c),16,()=>Y.usageFilterProviderOptions(),e=>e,(e,t)=>{var n=Lw(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(s);var l=F(s,2),u=e=>{var t=Rw(),n=N(t);n.value=n.__value=``,U(F(n),16,()=>Y.usageFilterLabelOptions(),e=>e,(e,t)=>{var n=Lw(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(t),R(`change`,t,()=>Y.onUsageFilterChanged()),Wi(t,()=>Y.usageFilterLabel,e=>Y.usageFilterLabel=e),B(e,t)},d=k(()=>Y.usageFilterLabelOptions().length>0);H(l,e=>{L(d)&&e(u)});var f=F(l,2);Fw(f,{class:`usage-page-filters-user-path`,placeholder:`User path /team/alpha`,label:`Filter by user path`,get oninput(){return n},get value(){return Y.usageFilterUserPath},set value(e){Y.usageFilterUserPath=e}});var p=F(f,2);Fw(p,{class:`usage-page-filters-session`,placeholder:`Session ID`,label:`Filter by session ID`,get oninput(){return r},get value(){return Y.usageFilterSession},set value(e){Y.usageFilterSession=e}});var m=F(p,2),h=e=>{var t=zw(),n=N(t);E(t),I(e=>{G(t,`title`,`Clear session filter ${Y.usageFilterSession??``}`),V(n,`Session: ${e??``} ×`)},[()=>XC(Y.usageFilterSession)]),R(`click`,t,()=>{Y.usageFilterSession=``,Y.onUsageFilterChanged()}),B(e,t)};H(m,e=>{Y.usageFilterSession&&e(h)}),E(i),R(`change`,a,()=>Y.onUsageFilterChanged()),Wi(a,()=>Y.usageFilterModel,e=>Y.usageFilterModel=e),R(`change`,s,()=>Y.onUsageFilterChanged()),Wi(s,()=>Y.usageFilterProvider,e=>Y.usageFilterProvider=e),B(e,i),O()}Vr([`change`,`click`]);var Hw=z(`
        Cache Saved
        Cache Hits
        `,1);function Uw(e,t){D(t,!0);var n=Zr(),r=P(n),i=e=>{var t=Hw(),n=P(t),r=F(N(n),2),i=N(r,!0);E(r),E(n);var a=F(n,2),o=F(N(a),2),s=N(o,!0);E(o),E(a),I((e,t)=>{V(i,e),V(s,t)},[()=>bc(Zc.cacheOverview.summary.total_saved_cost),()=>yc(Zc.cacheOverview.summary.total_hits)]),B(e,t)},a=k(()=>Zc.cacheAnalyticsEnabled());H(r,e=>{L(a)&&e(i)}),B(e,n),O()}var Ww=z(` `),Gw=z(`
        Pro Saved
        `),Kw=z(`
        Total Requests
        Estimated Cost
        `);function qw(e,t){D(t,!0);let n=k(()=>ow(Y.usageSummary)),r=k(()=>lw(Y.usageSummary,Y.usageMode)),i=k(()=>dw(Y.usageSummary,Y.usageMode));var a=Kw(),o=N(a),s=F(N(o),2),c=N(s),l=e=>{FS(e,{size:18,label:`Loading usage summary`})},u=e=>{var t=Xr();I(e=>V(t,e),[()=>yc(nw(Y.usageSummary,Y.usageSummaryAll,Y.usageLogHideCached))]),B(e,t)};H(c,e=>{Y.summaryLoading?e(l):e(u,-1)}),E(s),E(o);var d=F(o,2),f=F(N(d),2),p=N(f),m=e=>{FS(e,{size:18,label:`Loading usage summary`})},h=e=>{var t=Xr();I(e=>V(t,e),[()=>bc(Y.usageSummary.total_cost)]),B(e,t)};H(p,e=>{Y.summaryLoading?e(m):e(h,-1)}),E(f),E(d);var g=F(d,2),_=e=>{var t=Gw(),n=F(N(t),2),a=N(n),o=N(a,!0);E(a);var s=F(a,2),c=e=>{var t=Ww(),n=N(t,!0);E(t),I(()=>V(n,L(i))),B(e,t)};H(s,e=>{L(i)&&e(c)}),E(n),E(t),I(e=>{G(n,`title`,e),V(o,L(r))},[()=>fw(Y.usageSummary,Y.usageMode)]),B(e,t)};H(g,e=>{L(n)&&e(_)}),Uw(F(g,2),{}),E(a),I((e,t)=>{G(s,`title`,e),G(f,`title`,t)},[()=>rw(Y.usageSummary,Y.usageSummaryAll,Y.usageLogHideCached),()=>iw(Y.usageSummary)]),B(e,a),O()}var Jw=z(``);function Yw(e,t){D(t,!0);let n=K(t,`total`,3,0),r=K(t,`offset`,3,0),i=K(t,`limit`,3,25);var a=Zr(),o=P(a),s=e=>{var a=Jw(),o=N(a),s=N(o);E(o);var c=F(o,2),l=N(c),u=F(l,2);E(c),E(a),I(e=>{V(s,`Showing ${r()+1}-${e??``} of ${n()??``}`),l.disabled=r()===0,u.disabled=r()+i()>=n()},[()=>Math.min(r()+i(),n())]),R(`click`,l,()=>t.onprev?.()),R(`click`,u,()=>t.onnext?.()),B(e,a)};H(o,e=>{n()>0&&e(s)}),B(e,a),O()}Vr([`click`]);function Xw(e){let t=String(e??``),n=typeof navigator<`u`?navigator.clipboard:null;if(n&&typeof n.writeText==`function`)return n.writeText(t);let r=typeof document<`u`?document:null;if(!r||!r.body||typeof r.execCommand!=`function`)return Promise.reject(Error(`Clipboard API unavailable`));let i=r.createElement(`textarea`);i.value=t,i.setAttribute(`readonly`,``),i.style.position=`fixed`,i.style.top=`0`,i.style.left=`0`,i.style.opacity=`0`;try{if(r.body.appendChild(i),i.focus(),i.select(),i.setSelectionRange(0,i.value.length),!r.execCommand(`copy`))throw Error(`execCommand copy returned false`)}finally{i.parentNode&&i.parentNode.removeChild(i)}return Promise.resolve()}function Zw({resetDelayMs:e=2e3,logPrefix:t}={}){let n=M({copied:!1,error:!1}),r=null;function i(){r!==null&&clearTimeout(r),r=null}function a(){i(),r=setTimeout(()=>{n.copied=!1,n.error=!1,r=null},e)}return{get copied(){return n.copied},get error(){return n.error},reset(){i(),n.copied=!1,n.error=!1},async copy(e,r){if(!(e==null||e===``)){i(),n.copied=!1,n.error=!1;try{await Xw(typeof r==`function`?r(e):String(e)),n.copied=!0,n.error=!1}catch(e){console.error(t||`Failed to copy text:`,e),n.copied=!1,n.error=!0}a()}}}}var Qw=z(` `);function $w(e,t){D(t,!0);let n=K(t,`active`,3,!1),r=K(t,`onfilter`,3,null),i=K(t,`compact`,3,!1),a=Zw({logPrefix:`Failed to copy session ID:`});kn(()=>{t.sessionID,a.reset()});var o=Qw();let s;var c=N(o),l=N(c,!0);E(c);var u=F(c,2);let d;var f=N(u);{let e=k(()=>a.copied?qa:Xa);q(f,{get icon(){return L(e)}})}E(u),E(o),I(e=>{s=W(o,1,`session-id-chip svelte-1pkjhcn`,null,s,{active:n(),compact:i()}),G(c,`title`,`Filter by session ${t.sessionID??``}`),V(l,e),d=W(u,1,`session-id-copy svelte-1pkjhcn`,null,d,{copied:a.copied}),G(u,`title`,a.error?`Unable to copy session ID`:a.copied?`Session ID copied`:`Copy session ID`),G(u,`aria-label`,`Copy session ID ${t.sessionID??``}`)},[()=>XC(t.sessionID)]),R(`click`,c,()=>r()?.(t.sessionID)),R(`click`,u,()=>a.copy(t.sessionID)),B(e,o),O()}Vr([`click`]);function eT(e,t,n,r){let{stacked:i=!1,costs:a=!1,resolve:o=e=>e}=r||{},s=e=>a?`$`+Math.abs(e).toFixed(2):Cc(Math.abs(e)),c=e=>a?`$`+Math.abs(e).toFixed(4):Math.abs(e).toLocaleString(),l=e=>e.map(e=>i?Math.abs(e):-Math.abs(e)),u=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderColor:`transparent`,borderWidth:0,borderRadius:4,maxBarThickness:22}),d=e=>(e||[]).some(e=>Math.abs(e)>0),f=[u(a?`Input Cost`:`Input Tokens`,l(n.inputs),o(`var(--token-input)`)),u(a?`Output Cost`:`Output Tokens`,n.outputs,o(`var(--token-output)`))];return d(n.prompts)&&f.push(u(a?`Prompt Cached Cost`:`Prompt Cached`,l(n.prompts),o(`var(--token-prompt)`))),!a&&d(n.localIns)&&f.push(u(`Locally Cached (Input)`,l(n.localIns),o(`var(--token-local)`))),!a&&d(n.localOuts)&&f.push(u(`Locally Cached (Output)`,n.localOuts,o(`var(--token-local)`))),{type:`bar`,data:{labels:t,datasets:f},options:{indexAxis:`y`,responsive:!0,maintainAspectRatio:!1,animation:{duration:0},layout:{padding:{top:8}},scales:{x:{stacked:!0,beginAtZero:!0,grid:i?{color:e.grid}:{color:t=>t.tick&&t.tick.value===0?e.text:e.grid},border:{display:!1},ticks:{color:e.text,font:Xy(),callback:e=>s(e)}},y:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:Xy(),autoSkip:!1}}},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:Zy(e,{label:e=>e.dataset.label+`: `+c(e.parsed.x),footer:e=>{let t=0;return e.forEach(e=>{t+=Math.abs(Number(e.parsed.x))||0}),`Total: `+c(t)}})}}}}var tT=z(`
        `),nT=z(`

        `),rT=z(`

        `,1),iT=z(`
        `),aT=z(`Model Provider`,1),oT=z(`User Path`),sT=z(`Label Requests`,1),cT=z(`Session ID User Path Requests`,1),lT=z(`Prompt Cached Local Cached`,1),uT=z(` `,1),dT=z(` `),fT=z(` `,1),pT=z(` `,1),mT=z(` `,1),hT=z(` `),gT=z(`
        Input TokensOutput TokensTotal TokensInput CostOutput CostTotal Cost
        `),_T=z(`
        `),vT=z(`
        `);function yT(e,t){D(t,!0);let n=e=>{var n=tT(),r=N(n);let a;var o=F(r,2);let s;var l=F(o,2);let u;E(n),I(()=>{G(n,`aria-label`,L(i).group),a=W(r,1,`chart-view-btn svelte-1kee4g8`,null,a,{active:L(c)===`chart`}),G(r,`aria-pressed`,L(c)===`chart`),G(r,`aria-label`,`Show ${L(i).noun??``} chart`),s=W(o,1,`chart-view-btn svelte-1kee4g8`,null,s,{active:L(c)===`stacked`}),G(o,`aria-pressed`,L(c)===`stacked`),G(o,`aria-label`,`Show ${L(i).noun??``} stacked chart`),u=W(l,1,`chart-view-btn svelte-1kee4g8`,null,u,{active:L(c)===`table`}),G(l,`aria-pressed`,L(c)===`table`),G(l,`aria-label`,`Show ${L(i).noun??``} table`)}),R(`click`,r,()=>Y.toggleUsageChartView(t.kind,`chart`)),R(`click`,o,()=>Y.toggleUsageChartView(t.kind,`stacked`)),R(`click`,l,()=>Y.toggleUsageChartView(t.kind,`table`)),B(e,n)},r={model:{group:`Model usage view`,noun:`model usage`,tokensTitle:`Token Usage by Model`,costsTitle:`Cost by Model`},userPath:{group:`User path usage view`,noun:`user path usage`,tokensTitle:`Usage by User Path`,costsTitle:`Cost by User Path`},label:{group:`Label usage view`,noun:`label usage`,tokensTitle:`Usage by Label`,costsTitle:`Cost by Label`},session:{group:`Session usage view`,noun:`session usage`,tokensTitle:`Usage by Recent Session`,costsTitle:`Cost by Recent Session`}},i=k(()=>r[t.kind]),a=k(()=>t.kind===`model`?e=>jc(e):t.kind===`userPath`?e=>e.user_path||`/`:t.kind===`label`?e=>e.label:e=>e.session_id);function o(e){return t.kind===`model`?(e.provider_name||e.provider||`-`)+`/`+e.model:t.kind===`userPath`?e.user_path||`/`:t.kind===`label`?e.label:e.session_id+`/`+(e.user_path||`/`)}let s=k(()=>t.kind===`model`?Y.modelUsage:t.kind===`userPath`?Y.userPathUsage:t.kind===`label`?Y.labelUsage:Y.sessionUsage.entries),c=k(()=>t.kind===`model`?Y.modelUsageView:t.kind===`userPath`?Y.userPathUsageView:t.kind===`label`?Y.labelUsageView:Y.sessionUsageView),l=k(()=>t.kind===`model`?Y.modelUsageLoading:t.kind===`userPath`?Y.userPathUsageLoading:t.kind===`label`?Y.labelUsageLoading:Y.sessionUsageLoading),u=k(()=>Y.usageMode===`costs`),d=k(()=>t.kind===`userPath`?Aw(L(s)):L(s).length>0),f=k(()=>L(u)?L(i).costsTitle:L(i).tokensTitle),p=k(()=>Mw(L(s),L(a),L(u))),m=k(()=>t.kind===`session`?L(s):kw(L(s),L(u)));function h(){return jw(L(c))?eT(Yy(),L(p).labels,L(p),{stacked:L(c)===`stacked`,costs:L(u),resolve:Qy}):null}let g=k(()=>t.kind+`-usage-help-copy`),_=k(()=>t.kind===`session`?`Sessions are ordered by latest activity. Request and token totals include local-cache hits; cost fields include provider spend only.`:`One request can have multiple labels. Such a request counts once under each of its labels, so label rows can overlap and add up to more than the period totals.`);var v=Zr(),y=P(v),b=e=>{var r=_T();let a;var s=N(r),u=N(s),d=e=>{oC(e,{get copyId(){return L(g)},get label(){return`${t.kind??``} usage help`},get text(){return L(_)},title:e=>{var t=nT(),n=N(t,!0);E(t),I(()=>V(n,L(f))),B(e,t)},extra:e=>{var t=Zr(),n=P(t),r=e=>{FS(e,{size:14,get label(){return`Loading ${L(i).noun??``}`}})};H(n,e=>{L(l)&&e(r)}),B(e,t)},$$slots:{title:!0,extra:!0}})},v=e=>{var t=rT(),n=P(t),r=N(n,!0);E(n);var a=F(n,2),o=e=>{FS(e,{size:14,get label(){return`Loading ${L(i).noun??``}`}})};H(a,e=>{L(l)&&e(o)}),I(()=>V(r,L(f))),B(e,t)};H(u,e=>{t.kind===`label`||t.kind===`session`?e(d):e(v,-1)});var y=F(u,2);n(y),E(s);var b=F(s,2),x=e=>{var t=iT();let n;Wy(N(t),{build:h}),E(t),I(e=>n=Vi(t,``,n,e),[()=>({height:`${Nw(L(p).labels.length)??``}px`})]),B(e,t)},S=k(()=>jw(L(c))),C=e=>{var n=gT(),r=N(n),i=N(r),a=N(i),s=N(a),c=e=>{var t=aT();He(2),B(e,t)},l=e=>{B(e,oT())},u=e=>{var t=sT();He(2),B(e,t)},d=e=>{var t=cT();He(4),B(e,t)};H(s,e=>{t.kind===`model`?e(c):t.kind===`userPath`?e(l,1):t.kind===`label`?e(u,2):e(d,-1)});var f=F(s,3),p=e=>{var t=lT();He(2),B(e,t)};H(f,e=>{t.kind!==`session`&&e(p)}),He(4),E(a),E(i);var h=F(i);U(h,21,()=>L(m),e=>o(e),(e,n)=>{var r=hT(),i=N(r),a=e=>{var t=uT(),r=P(t),i=N(r,!0);E(r);var a=F(r,2),o=N(a),s=N(o,!0);E(o),E(a),I(e=>{V(i,L(n).model||`-`),V(s,e)},[()=>kc(L(n))||`-`]),B(e,t)},o=e=>{var t=dT(),r=N(t,!0);E(t),I(()=>V(r,L(n).user_path||`/`)),B(e,t)},s=e=>{var t=fT(),r=P(t),i=N(r);let a;var o=N(i,!0);E(i),E(r);var s=F(r,2),c=N(s,!0);E(s),I((e,t,r)=>{a=W(i,1,`usage-label-chip`,null,a,{active:Y.usageFilterLabel===L(n).label}),Vi(i,`--label-color: ${e??``}`),G(i,`title`,t),V(o,L(n).label),V(c,r)},[()=>tb(L(n).label),()=>Y.usageLabelChipTitle(L(n).label),()=>yc(L(n).requests)]),R(`click`,i,()=>Y.toggleUsageLabelFilter(L(n).label)),B(e,t)},c=e=>{var t=pT(),r=P(t),i=N(r);{let e=k(()=>Y.usageFilterSession===L(n).session_id);$w(i,{get sessionID(){return L(n).session_id},get active(){return L(e)},onfilter:e=>Y.filterBySession(e)})}E(r);var a=F(r,2),o=N(a,!0);E(a);var s=F(a,2),c=N(s,!0);E(s),I(e=>{V(o,L(n).user_path||`/`),V(c,e)},[()=>yc(L(n).requests)]),B(e,t)};H(i,e=>{t.kind===`model`?e(a):t.kind===`userPath`?e(o,1):t.kind===`label`?e(s,2):e(c,-1)});var l=F(i),u=N(l,!0);E(l);var d=F(l),f=N(d,!0);E(d);var p=F(d),m=e=>{var t=mT(),r=P(t),i=N(r,!0);E(r);var a=F(r,2),o=N(a,!0);E(a),I((e,t,n,s,c)=>{G(r,`title`,e),V(i,t),G(a,`title`,`${n??``} input + ${s??``} output`),V(o,c)},[()=>L(n).cached_input_cost==null?``:`~`+bc(L(n).cached_input_cost)+` at current cached-input pricing`,()=>yc(L(n).cached_input_tokens||0),()=>yc(L(n).local_cached_input_tokens||0),()=>yc(L(n).local_cached_output_tokens||0),()=>yc((L(n).local_cached_input_tokens||0)+(L(n).local_cached_output_tokens||0))]),B(e,t)};H(p,e=>{t.kind!==`session`&&e(m)});var h=F(p),g=N(h,!0);E(h);var _=F(h),v=N(_,!0);E(_);var y=F(_),b=N(y,!0);E(y);var x=F(y),S=N(x,!0);E(x),E(r),I((e,t,n,r,i,a)=>{V(u,e),V(f,t),V(g,n),V(v,r),V(b,i),V(S,a)},[()=>yc(L(n).input_tokens),()=>yc(L(n).output_tokens),()=>yc(Dw(L(n))),()=>bc(L(n).input_cost),()=>bc(L(n).output_cost),()=>bc(L(n).total_cost)]),B(e,r)}),E(h),E(r),E(n),B(e,n)};H(b,e=>{L(S)?e(x):e(C,-1)});var w=F(b,2),T=e=>{Yw(e,{get total(){return Y.sessionUsage.total},get offset(){return Y.sessionUsage.offset},get limit(){return Y.sessionUsage.limit},onprev:()=>Y.sessionUsagePrevPage(),onnext:()=>Y.sessionUsageNextPage()})};H(w,e=>{t.kind===`session`&&e(T)}),E(r),I(()=>a=W(r,1,`model-chart-section`,null,a,{"session-usage-breakdown":t.kind===`session`})),B(e,r)},x=e=>{var t=vT();FS(N(t),{size:20,get label(){return`Loading ${L(i).noun??``}`}}),E(t),B(e,t)};H(y,e=>{L(d)?e(b):L(l)&&e(x,1)}),B(e,v),O()}Vr([`click`]);var bT=(e,t=f)=>{var n=Zr(),r=P(n),i=e=>{var n=ST();U(n,20,()=>Tw(t()),e=>e,(e,t)=>{var n=xT();let r;var i=N(n,!0);E(n),I((e,a)=>{r=W(n,1,`usage-label-chip`,null,r,{active:Y.usageFilterLabel===t}),Vi(n,`--label-color: ${e??``}`),G(n,`title`,a),V(i,t)},[()=>tb(t),()=>Y.usageLabelChipTitle(t)]),R(`click`,n,()=>Y.toggleUsageLabelFilter(t)),B(e,n)}),E(n),B(e,n)},a=k(()=>Tw(t()).length>0),o=e=>{B(e,CT())};H(r,e=>{L(a)?e(i):e(o,-1)}),B(e,n)},xT=z(``),ST=z(`
        `),CT=z(`-`),wT=z(`Labels`),TT=z(`Cost`),ET=z(``),DT=z(` `),OT=z(``),kT=z(` `),AT=z(` `),jT=z(`
        TimestampProviderModelUser PathSessionCacheProvider Cache
        `),MT=z(`
        `),NT=z(`
        `),PT=z(`

        Request Log

        `);function FT(e,t){D(t,!0);let n=k(()=>Y.usageMode===`costs`),r=k(()=>Ew(Y.labelUsage,Y.usageFilterLabel,Y.usageLog.entries)),i=Iw(()=>Y.fetchUsageLog(!0));kn(()=>i.cancel);var a=PT(),o=F(N(a),2),s=N(o);Fw(N(s),{placeholder:`Search by request ID, session, model, provider...`,label:`Search by request ID, session, model, provider`,get oninput(){return i},get value(){return Y.usageLogSearch},set value(e){Y.usageLogSearch=e}}),E(s);var c=F(s,2),l=N(c),u=N(l);ta(u),He(2),E(l),E(c),E(o);var d=F(o,2),f=e=>{var t=jT(),i=N(t),a=N(i),o=N(a),s=F(N(o),5),c=e=>{B(e,wT())};H(s,e=>{L(r)&&e(c)});var l=F(s,3),u=N(l,!0);E(l);var d=F(l),f=N(d,!0);E(d);var p=F(d),m=N(p,!0);E(p);var h=F(p),g=e=>{B(e,TT())};H(h,e=>{L(n)||e(g)}),E(o),E(a);var _=F(a);U(_,21,()=>Y.usageLog.entries,e=>e.id,(e,t)=>{var i=AT();let a;var o=N(i),s=N(o,!0);E(o);var c=F(o),l=N(c),u=N(l,!0);E(l),E(c);var d=F(c),f=N(d,!0);E(d);var p=F(d),m=N(p,!0);E(p);var h=F(p),g=N(h),_=e=>{{let n=k(()=>Y.usageFilterSession===L(t).session_id);$w(e,{get sessionID(){return L(t).session_id},get active(){return L(n)},compact:!0,onfilter:e=>Y.filterBySession(e)})}},v=e=>{B(e,CT())};H(g,e=>{L(t).session_id?e(_):e(v,-1)}),E(h);var y=F(h),b=e=>{var n=ET();bT(N(n),()=>L(t)),E(n),B(e,n)};H(y,e=>{L(r)&&e(b)});var x=F(y),S=N(x,!0);E(x);var C=F(x),w=N(C),T=e=>{var n=DT(),r=N(n,!0);E(n),I(e=>V(r,e),[()=>Sw(L(t))]),B(e,n)},ee=k(()=>xw(L(t))),te=e=>{B(e,CT())};H(w,e=>{L(ee)?e(T):e(te,-1)}),E(C);var ne=F(C),re=N(ne,!0);E(ne);var ie=F(ne),ae=N(ie,!0);E(ie);var oe=F(ie),se=N(oe),ce=N(se,!0);E(se);var le=F(se,2),ue=e=>{{let n=k(()=>hw(L(t)));q(e,{get icon(){return Ja},class:`cost-source-icon`,get title(){return L(n)}})}},de=k(()=>L(n)&&mw(L(t)));H(le,e=>{L(de)&&e(ue)});var fe=F(le,2),pe=e=>{q(e,{get icon(){return Za},class:`cache-savings-icon`})},me=k(()=>L(n)&&_w(L(t)));H(fe,e=>{L(me)&&e(pe)});var he=F(fe,2),ge=e=>{var n=OT();I(()=>G(n,`title`,L(t).costs_calculation_caveat)),B(e,n)};H(he,e=>{L(n)&&L(t).costs_calculation_caveat&&e(ge)}),E(oe);var _e=F(oe),ve=e=>{var n=kT(),r=N(n),i=N(r,!0);E(r);var a=F(r,2),o=e=>{{let n=k(()=>hw(L(t)));q(e,{get icon(){return Ja},class:`cost-source-icon`,get title(){return L(n)}})}},s=k(()=>mw(L(t)));H(a,e=>{L(s)&&e(o)});var c=F(a,2),l=e=>{q(e,{get icon(){return Za},class:`cache-savings-icon`})},u=k(()=>_w(L(t)));H(c,e=>{L(u)&&e(l)});var d=F(c,2),f=e=>{var n=OT();I(()=>G(n,`title`,L(t).costs_calculation_caveat)),B(e,n)};H(d,e=>{L(t).costs_calculation_caveat&&e(f)}),E(n),I((e,t)=>{G(n,`title`,e),V(i,t)},[()=>yw(L(t),ww(L(t))),()=>bc(L(t).total_cost)]),B(e,n)};H(_e,e=>{L(n)||e(ve)}),E(i),I((e,n,r,c,l,d,p,h,g,_,v,y,b)=>{a=W(i,1,`svelte-hg4ill`,null,a,e),G(o,`title`,n),V(s,r),V(u,c),V(f,L(t).model),V(m,L(t).user_path||`-`),V(S,l),G(C,`title`,d),G(ne,`title`,p),V(re,h),G(ie,`title`,g),V(ae,_),G(oe,`title`,v),G(se,`title`,y),V(ce,b)},[()=>({"usage-log-row-cached":_w(L(t))}),()=>Dc(L(t).timestamp),()=>bs.formatTimestamp(L(t).timestamp),()=>kc(L(t))||`-`,()=>vw(L(t)),()=>Cw(L(t)),()=>L(n)?yc(L(t).input_tokens)+` tokens`:``,()=>L(n)?bc(L(t).input_cost):yc(L(t).input_tokens),()=>L(n)?yc(L(t).output_tokens)+` tokens`:``,()=>L(n)?bc(L(t).output_cost):yc(L(t).output_tokens),()=>L(n)?yw(L(t),``):``,()=>L(n)?yw(L(t),yc(L(t).total_tokens)+` tokens +`+ww(L(t))):``,()=>L(n)?bc(L(t).total_cost):yc(L(t).total_tokens)]),B(e,i)}),E(_),E(i),E(t),I(()=>{V(u,L(n)?`Input Cost`:`Input`),V(f,L(n)?`Output Cost`:`Output`),V(m,L(n)?`Total Cost`:`Total`)}),B(e,t)},p=e=>{var t=MT();FS(N(t),{size:20,label:`Loading request log`}),E(t),B(e,t)},m=e=>{var t=NT();RS(N(t),{}),E(t),B(e,t)};H(d,e=>{Y.usageLog.entries.length>0?e(f):Y.usageLogLoading?e(p,1):e(m,-1)}),Yw(F(d,2),{get total(){return Y.usageLog.total},get offset(){return Y.usageLog.offset},get limit(){return Y.usageLog.limit},onprev:()=>Y.usageLogPrevPage(),onnext:()=>Y.usageLogNextPage()}),E(a),R(`change`,u,()=>Y.fetchUsageLog(!0)),da(u,()=>Y.usageLogHideCached,e=>Y.usageLogHideCached=e),B(e,a),O()}Vr([`click`,`change`]);var IT=z(`
        `);function LT(e,t){D(t,!0);let n=`usage`;kn(()=>{J.refreshTick,Zo.page===n&&(Y.fetchUsagePage(),GC.ensureLiveLogs())}),kn(()=>{Zo.page===n&&(Y.usageMode=Zo.sub===`costs`?`costs`:`tokens`)});var r=IT(),i=F(N(r),2),a=N(i);qy(a,{ariaLabel:`Usage mode`,options:[{value:`tokens`,label:`Tokens`},{value:`costs`,label:`Costs`}],get value(){return Y.usageMode},onchange:e=>Y.toggleUsageMode(e)}),ml(F(a,2),{onchange:()=>Y.fetchUsagePage()}),E(i);var o=F(i,2);Vw(o,{});var s=F(o,2);qw(s,{});var c=F(s,2),l=N(c);yT(l,{kind:`model`});var u=F(l,2);yT(u,{kind:`userPath`}),yT(F(u,2),{kind:`label`}),E(c);var d=F(c,2);yT(N(d),{kind:`session`}),E(d),FT(F(d,2),{}),E(r),B(e,r),O()}var RT=z(`
        `);function zT(e,t){let n=K(t,`label`,3,`Loading...`),r=K(t,`class`,3,``);var i=RT(),a=F(N(i),2),o=N(a,!0);E(a),E(i),I(()=>{W(i,1,Pi([`loading-state`,r()]),`svelte-hzxv1d`),V(o,n())}),B(e,i)}var BT=z(``);function VT(e,t){let n=K(t,`label`,3,``),r=K(t,`class`,3,``),i=K(t,`disabled`,3,!1);var a=BT();hi(N(a),()=>t.children??f),E(a),I(()=>{W(a,1,Pi([`table-action-btn`,r()])),G(a,`aria-label`,n()),G(a,`title`,n()),a.disabled=i()}),R(`click`,a,function(...e){t.onclick?.apply(this,e)}),B(e,a)}Vr([`click`]);async function HT(e,{label:t,errorFallback:n=`Unable to load ${t}.`,unavailableStatuses:r=[503],normalize:i=e=>Array.isArray(e)?e:[],options:a}){let o;try{o=await Es(e,{...a||{},label:t})}catch(e){return Os(e)||console.error(`Failed to fetch ${t}:`,e),{status:`error`,items:[],error:n,result:null}}return o.stale?{status:`stale`,items:[],error:``,result:o}:r.includes(o.status)?{status:`unavailable`,items:[],error:``,result:o}:o.ok?{status:`ok`,items:i(o.data),error:``,result:o}:{status:`error`,items:[],error:o.status===401?``:xs(o.data,n),result:o}}async function UT(e,t,n,{label:r,errorFallback:i=`Unable to ${r}.`,unavailableStatuses:a=[503],unavailableMessage:o=`This feature is unavailable on the gateway.`,options:s}){let c;try{c=await Ds(e,t,n,{...s||{},label:r})}catch(e){return Os(e)||console.error(`Failed to ${r}:`,e),{status:`error`,error:i,result:null}}return c.stale?{status:`stale`,error:``,result:c}:a.includes(c.status)?{status:`unavailable`,error:o,result:c}:c.ok?{status:`ok`,error:``,result:c}:{status:`error`,error:c.status===401?`Authentication required.`:xs(c.data,i),result:c}}function WT(){return{scope:`user_path`,subject:`/`,period:`daily`,period_seconds:86400,amount:``,source:`manual`}}function GT(e){let t={user_path:{label:`User path`,chip:`user path`,fieldLabel:`User Path`,placeholder:`/team/alpha`},label:{label:`Label`,chip:`label`,fieldLabel:`Label`,placeholder:`Mobile-App-iOS`}};return t[e]||t.user_path}function KT(){return[`user_path`,`label`].map(e=>({value:e,label:GT(e).label}))}function qT(e){return String(e&&e.scope||``).trim()||`user_path`}function JT(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function YT(e){return GT(qT(e)).chip}function XT(e){return qT(e)===`label`?`budget-label`:`budget-user-path`}function ZT(e){return GT(String(e&&e.scope||``)).fieldLabel}function QT(e){return GT(String(e&&e.scope||``)).placeholder}function $T(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function eE(){return[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`},{value:`custom`,label:`Custom seconds`}]}function tE(e){switch(String(e||``).trim().toLowerCase()){case`hourly`:return 3600;case`daily`:return 86400;case`weekly`:return 604800;case`monthly`:return 2592e3;default:return 0}}function nE(e){switch(Number(e||0)){case 3600:return`hourly`;case 86400:return`daily`;case 604800:return`weekly`;case 2592e3:return`monthly`;default:return`custom`}}function rE(e){return qT(e)+`:`+JT(e)+`:`+String(e&&e.period_seconds||``)}function iE(e,t){if(!t||!Array.isArray(e))return null;let n=rE(t);return e.find(e=>rE(e)===n)||null}function aE(e){let t=String(e||``).trim();if(!t)return`User path is required.`;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return`User path cannot contain "." or ".." segments.`;if(t.includes(`:`))return`User path cannot contain ":" segments.`}}return``}function oE(e){if(aE(e))return``;let t=String(e||``).trim(),n=(t.startsWith(`/`)?t:`/`+t).split(`/`),r=[];for(let e of n){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function sE(e){return`/`+String(e||``).trimStart().replace(/^\/+/,``)}function cE(e){return Array.isArray(e)?e:e&&Array.isArray(e.budgets)?e.budgets:[]}function lE(e){let t=Number(e&&e.period_seconds||0);return[JT(e),YT(e),EE(e),nE(t),t?String(t)+`s`:``,t?String(t)+` seconds`:``].join(` `).toLowerCase()}var uE={user_path:0,label:1};function dE(e,t){let n=Array.isArray(e)?e.slice():[],r=String(t||`subject`);return n.sort((e,t)=>{let n=(uE[qT(e)]||0)-(uE[qT(t)]||0),i=JT(e).localeCompare(JT(t)),a=Number(t&&t.period_seconds||0)-Number(e&&e.period_seconds||0);return r===`period`?a||n||i:n||i||a}),n}function fE(e,t,n){let r=Array.isArray(e)?e:[],i=String(t||``).trim().toLowerCase();return dE(i?r.filter(e=>lE(e).includes(i)):r.slice(),n)}function pE(e){let t=e||{},n=qT(t),r=String(t.subject||``).trim();if(n===`user_path`){let e=aE(r);if(e)return{payload:null,error:e}}else if(!r)return{payload:null,error:`Label is required.`};let i=Number(t.amount);if(!Number.isFinite(i)||i<=0)return{payload:null,error:`Amount must be greater than 0.`};let a=String(t.period||``).trim(),o=tE(a);return a===`custom`&&(o=Number(t.period_seconds)),!Number.isFinite(o)||o<=0?{payload:null,error:`Period seconds must be greater than 0.`}:{payload:{scope:n,subject:n===`user_path`?oE(r):r,period_seconds:Math.trunc(o),amount:i,source:String(t.source||`manual`).trim()||`manual`},error:``}}function mE(e){return{scope:qT(e),subject:JT(e),budget_key:{period_seconds:e.period_seconds},amount:e.amount}}function hE(e){return{scope:qT(e),subject:JT(e),budget_key:{period_seconds:e.period_seconds}}}function gE(e){return{scope:qT(e),subject:JT(e),period_seconds:e.period_seconds}}function _E(e){return bc(e)}function vE(e,t){let n=e||{},r=t||{};return`A budget for "`+((JT(n)||JT(r))+` `+EE({period_seconds:n.period_seconds||r.period_seconds,period_label:r.period_label}))+`" already exists. Saving will override the current `+_E(r.amount)+` limit with `+_E(n.amount)+`.`}function yE(e){let t=Number(e);return!Number.isFinite(t)||t<0?0:t}function bE(e,t){let n=yE(e);return Math.round((t?Math.min(n,1):n)*1e3)/10}function xE(e){return yE(e&&e.usage_ratio)}function SE(e){return bE(xE(e),!0)}function CE(e){return bE(e&&e.period_ratio,!0)}function wE(e){return bE(xE(e),!1).toFixed(1).replace(/\.0$/,``)+`%`}function TE(e){return CE(e).toFixed(1).replace(/\.0$/,``)+`%`}function EE(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return`Hourly`;case 86400:return`Daily`;case 604800:return`Weekly`;case 2592e3:return`Monthly`;default:{let n=String(e&&e.period_label||``).trim();return n?`Custom `+n:`Custom `+String(t||``)+`s`}}}function DE(e){switch(Number(e&&e.period_seconds||0)){case 3600:return`budget-period-label-hourly`;case 86400:return`budget-period-label-daily`;case 604800:return`budget-period-label-weekly`;case 2592e3:return`budget-period-label-monthly`;default:return`budget-period-label-custom`}}function OE(e){return DE(e).replace(`budget-period-label-`,`budget-bar-fill-period-`)}function kE(e){return DE(e).replace(`budget-period-label-`,`budget-bar-track-period-`)}function AE(e){switch(Number(e&&e.period_seconds||0)){case 3600:return Ya;case 86400:return ko;case 604800:return La;case 2592e3:return Ra;default:return Co}}function jE(e){let t=Math.max(0,Math.trunc(Number(e||0)));return t+` `+(t===1?`second`:`seconds`)}function ME(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return`1 hour`;case 86400:return`1 day`;case 604800:return`1 week`;case 2592e3:return`1 month`;default:return jE(t)}}function NE(e){return String(e&&e.source||``).trim()||`manual`}function PE(e){let t=NE(e).toLowerCase();return t===`manual`?`Created from the dashboard.`:t===`config`?`Loaded from configuration.`:`Budget source: `+t}function FE(e){let t=Number(e&&e.remaining);return Number.isFinite(t)?t<0?bc(Math.abs(t))+` over`:bc(t)+` remaining`:``}var X=new class{#e=A(M([]));get budgets(){return L(this.#e)}set budgets(e){j(this.#e,e,!0)}#t=A(!0);get budgetsAvailable(){return L(this.#t)}set budgetsAvailable(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=A(``);get filter(){return L(this.#r)}set filter(e){j(this.#r,e,!0)}#i=A(`subject`);get sortBy(){return L(this.#i)}set sortBy(e){j(this.#i,e,!0)}#a=A(``);get error(){return L(this.#a)}set error(e){j(this.#a,e,!0)}#o=A(!1);get formOpen(){return L(this.#o)}set formOpen(e){j(this.#o,e,!0)}#s=A(!1);get formSubmitting(){return L(this.#s)}set formSubmitting(e){j(this.#s,e,!0)}#c=A(``);get formError(){return L(this.#c)}set formError(e){j(this.#c,e,!0)}#l=A(!1);get editing(){return L(this.#l)}set editing(e){j(this.#l,e,!0)}#u=A(M(WT()));get form(){return L(this.#u)}set form(e){j(this.#u,e,!0)}#d=A(!1);get overrideDialogOpen(){return L(this.#d)}set overrideDialogOpen(e){j(this.#d,e,!0)}#f=A(null);get overridePendingPayload(){return L(this.#f)}set overridePendingPayload(e){j(this.#f,e,!0)}#p=A(null);get overrideExistingBudget(){return L(this.#p)}set overrideExistingBudget(e){j(this.#p,e,!0)}#m=A(``);get resettingKey(){return L(this.#m)}set resettingKey(e){j(this.#m,e,!0)}#h=A(``);get deletingKey(){return L(this.#h)}set deletingKey(e){j(this.#h,e,!0)}#g=A(!1);get resetAllLoading(){return L(this.#g)}set resetAllLoading(e){j(this.#g,e,!0)}#_=null;managementEnabled(){return js.budgetsVisible()}filteredBudgets(){return fE(this.budgets,this.filter,this.sortBy)}async fetchBudgetsPage(){if(await js.ensureLoaded(),!this.managementEnabled()){this.budgets=[],this.budgetsAvailable=!1,this.error=``;return}return this.#_||=this.fetchBudgets().finally(()=>{this.#_=null}),this.#_}async fetchBudgets(){this.loading=!0,this.error=``;let e=await HT(`/admin/budgets`,{label:`budgets`,errorFallback:`Unable to load budgets.`,normalize:cE});if(this.loading=!1,e.status!==`stale`){if(e.status===`unavailable`){this.budgetsAvailable=!1,this.budgets=[];return}if(!e.result){this.budgets=[],this.error=e.error;return}if(this.budgetsAvailable=!0,e.status===`error`){this.error=e.error;return}this.budgets=e.items}}openForm(e){if(this.editing=!!e,this.formError=``,e){let t=Number(e.period_seconds||0);this.form={scope:qT(e),subject:JT(e),period:nE(t),period_seconds:t,amount:String(e.amount||``),source:String(e.source||`manual`)}}else this.form=WT();this.formOpen=!0}syncPeriodSeconds(){let e=tE(String(this.form.period||``).trim());e>0&&(this.form.period_seconds=e)}setFormSubject(e){this.form.subject=this.form.scope===`label`?String(e??``):sE(e)}syncScope(){$T(this.form)}closeForm(){this.closeOverrideDialog(),this.formOpen=!1,this.formSubmitting=!1,this.formError=``,this.editing=!1,this.form=WT()}async submitForm(){if(this.formSubmitting)return;let{payload:e,error:t}=pE(this.form);if(!e){this.formError=t;return}if(!this.editing){let t=iE(this.budgets,e);if(t){this.openOverrideDialog(t,e);return}}await this.saveBudgetPayload(e)}async saveBudgetPayload(e){if(this.formSubmitting||!e)return;this.formSubmitting=!0,this.formError=``;let t=await UT(`/admin/budgets`,`PUT`,mE(e),{label:`save budget`,errorFallback:`Unable to save budget.`,unavailableMessage:`Budget management is unavailable.`});if(this.formSubmitting=!1,t.status!==`stale`){if(t.status===`unavailable`){this.budgetsAvailable=!1,this.formError=t.error;return}if(t.status===`error`){this.formError=t.error;return}this.closeForm(),dc.success(`Budget saved.`),this.fetchBudgets()}}openOverrideDialog(e,t){this.overrideExistingBudget=e||null,this.overridePendingPayload=t||null,this.overrideDialogOpen=!0}closeOverrideDialog(){this.overrideDialogOpen=!1,this.overridePendingPayload=null,this.overrideExistingBudget=null}async confirmOverride(){if(!this.overridePendingPayload){this.closeOverrideDialog();return}let e=this.overridePendingPayload;this.closeOverrideDialog(),await this.saveBudgetPayload(e)}async resetBudget(e){if(!e)return;let t=rE(e);if(this.resettingKey===t)return;let n=JT(e)+` `+EE(e);if(!confirm(`Reset budget "`+n+`"?`))return;this.resettingKey=t;let r=await UT(`/admin/budgets/reset-one`,`POST`,gE(e),{label:`reset budget`,errorFallback:`Unable to reset budget.`,unavailableMessage:`Budget management is unavailable.`});if(this.resettingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,dc.error(r.error);return}if(r.status===`error`){dc.error(r.error);return}dc.success(`Budget reset.`),this.fetchBudgets()}}async deleteBudget(e){if(!e)return;let t=rE(e);if(this.deletingKey===t)return;let n=JT(e)+` `+EE(e);if(!confirm(`Delete budget "`+n+`"? This cannot be undone.`))return;this.deletingKey=t;let r=await UT(`/admin/budgets`,`DELETE`,hE(e),{label:`delete budget`,errorFallback:`Unable to delete budget.`,unavailableMessage:`Budget management is unavailable.`});if(this.deletingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,dc.error(r.error);return}if(r.status===`error`){dc.error(r.error);return}this.budgets=cE(r.result.data),dc.success(`Budget deleted.`)}}openResetDialog(){Xs.open({title:`Reset Budgets`,titleId:`budgetResetDialogTitle`,inputId:`budget-reset-confirmation`,requiredText:`reset`,confirmLabel:`Reset All Budgets`,icon:vo,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.resetAllBudgets()})}async resetAllBudgets(){if(this.resetAllLoading)return;this.resetAllLoading=!0;let e=await UT(`/admin/budgets/reset`,`POST`,{confirmation:`reset`},{label:`reset budgets`,errorFallback:`Unable to reset budgets.`,unavailableStatuses:[]});if(this.resetAllLoading=!1,e.status!==`stale`){if(e.status!==`ok`){Xs.error=e.error;return}Xs.close(),dc.success(`Budgets reset.`),Zo.page===`budgets`&&this.fetchBudgets()}}},IE=z(` Edit`,1),LE=z(` `,1),RE=z(`
        Usage
        Period
        `),zE=z(`
        `);function BE(e,t){D(t,!0);let n=K(t,`budgets`,19,()=>[]);function r(e){if(!e)return``;let t=bs.formatTimestamp(e);return!t||t===`-`?``:t+` `+bs.effectiveTimeZoneLabel()}var i=zE();U(i,21,n,e=>rE(e),(e,t)=>{var n=RE(),i=N(n),a=N(i),o=N(a),s=N(o),c=e=>{q(e,{get icon(){return Ao},class:`budget-scope-icon`})},l=k(()=>qT(L(t))===`label`);H(s,e=>{L(l)&&e(c)});var u=F(s);E(o);var d=F(o,2),f=N(d),p=N(f);{let e=k(()=>AE(L(t)));q(p,{get icon(){return L(e)},class:`budget-period-icon`})}var m=F(p,2),h=N(m,!0);E(m),E(f),E(d);var g=F(d,2),_=N(g),v=N(_),y=N(v,!0);E(v),E(_);var b=F(_,2),x=N(b);VT(x,{label:`Edit budget`,class:`budget-action-btn`,onclick:()=>X.openForm(L(t)),children:(e,t)=>{var n=IE();q(P(n),{get icon(){return po},class:`budget-action-icon`}),He(2),B(e,n)},$$slots:{default:!0}});var S=F(x,2);{let e=k(()=>X.resettingKey===rE(L(t))?`Resetting budget`:`Reset budget`),n=k(()=>X.resettingKey===rE(L(t)));VT(S,{get label(){return L(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>X.resetBudget(L(t)),get disabled(){return L(n)},children:(e,n)=>{var r=LE(),i=P(r);q(i,{get icon(){return vo},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);E(a),I(e=>V(o,e),[()=>X.resettingKey===rE(L(t))?`Resetting`:`Reset`]),B(e,r)},$$slots:{default:!0}})}var C=F(S,2);{let e=k(()=>X.deletingKey===rE(L(t))?`Deleting budget`:`Delete budget`),n=k(()=>X.deletingKey===rE(L(t)));VT(C,{get label(){return L(e)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>X.deleteBudget(L(t)),get disabled(){return L(n)},children:(e,n)=>{var r=LE(),i=P(r);q(i,{get icon(){return Mo},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);E(a),I(e=>V(o,e),[()=>X.deletingKey===rE(L(t))?`Deleting`:`Delete`]),B(e,r)},$$slots:{default:!0}})}E(b),E(g),E(a);var w=F(a,2),T=N(w),ee=N(T),te=F(N(ee),2),ne=N(te,!0);E(te),E(ee);var re=F(ee,2),ie=N(re);let ae;var oe=F(ie,2),se=N(oe),ce=N(se,!0);E(se);var le=F(se,2),ue=N(le,!0);E(le),E(oe);var de=F(oe,2),fe=N(de),pe=N(fe,!0);E(fe);var me=F(fe,2),he=N(me,!0);E(me),E(de),E(re),E(T);var ge=F(T,2),_e=N(ge),ve=F(N(_e),2),ye=N(ve,!0);E(ve),E(_e);var be=F(_e,2),xe=N(be),Se=F(xe,2),Ce=N(Se),we=N(Ce,!0);E(Ce);var Te=F(Ce,2),Ee=N(Te,!0);E(Te);var De=F(Te,2),Oe=N(De,!0);E(De),E(Se);var ke=F(Se,2),Ae=N(ke),je=N(Ae,!0);E(Ae);var Me=F(Ae,2),Ne=N(Me,!0);E(Me);var Pe=F(Me,2),Fe=N(Pe,!0);E(Pe),E(ke),E(be),E(ge),E(w),E(i),E(n),I((e,t,n,r,i,a,s,c,l,d,p,m,g,_,b,x,S,C,w,T,ee,te,oe,se,le,de,fe,me,ge,_e)=>{W(o,1,`budget-scope-value ${e??``}`,`svelte-1jm56wo`),Vi(o,t),G(o,`title`,n),V(u,` ${r??``}`),W(f,1,`budget-period-label ${i??``}`,`svelte-1jm56wo`),V(h,a),G(v,`title`,s),V(y,c),V(ne,l),G(re,`aria-valuenow`,d),G(re,`aria-label`,p),Vi(re,`--budget-progress: ${m??``}%`),ae=W(ie,1,`budget-bar-fill budget-bar-fill-usage`,null,ae,g),V(ce,_),V(ue,b),V(pe,x),V(he,S),V(ye,C),W(be,1,`budget-bar-track ${w??``}`,`svelte-1jm56wo`),G(be,`aria-valuenow`,T),Vi(be,`--budget-progress: ${ee??``}%`),W(xe,1,`budget-bar-fill budget-bar-fill-period ${te??``}`,`svelte-1jm56wo`),G(Ce,`title`,oe),V(we,se),V(Ee,le),G(De,`title`,de),V(Oe,fe),V(je,me),V(Ne,ge),V(Fe,_e)},[()=>XT(L(t)),()=>qT(L(t))===`label`?`--label-color: `+tb(JT(L(t))):void 0,()=>YT(L(t))+`: `+JT(L(t)),()=>JT(L(t)),()=>DE(L(t)),()=>EE(L(t)),()=>PE(L(t)),()=>NE(L(t)),()=>wE(L(t)),()=>SE(L(t)),()=>`Budget usage: `+bc(L(t).spent)+` of `+bc(L(t).amount)+`, `+FE(L(t)),()=>SE(L(t)),()=>({"budget-bar-fill-danger":xE(L(t))>=1}),()=>bc(L(t).spent)+` of `+bc(L(t).amount),()=>FE(L(t)),()=>bc(L(t).spent)+` of `+bc(L(t).amount),()=>FE(L(t)),()=>TE(L(t)),()=>kE(L(t)),()=>CE(L(t)),()=>CE(L(t)),()=>OE(L(t)),()=>r(L(t).period_start),()=>bs.formatTimestamp(L(t).period_start),()=>ME(L(t)),()=>r(L(t).period_end),()=>bs.formatTimestamp(L(t).period_end),()=>bs.formatTimestamp(L(t).period_start),()=>ME(L(t)),()=>bs.formatTimestamp(L(t).period_end)]),B(e,n)}),E(i),B(e,i),O()}var VE=z(`

        `,1),HE=z(``),UE=z(``),WE=z(`
        `);function GE(e,t){D(t,!0);let n=K(t,`open`,3,!1),r=K(t,`title`,3,``),i=K(t,`ariaLabel`,3,``),a=K(t,`error`,3,``),o=K(t,`submitting`,3,!1),s=K(t,`submitDisabled`,3,!1),c=K(t,`submitLabel`,3,`Save`),l=K(t,`submittingLabel`,3,`Saving...`),u=K(t,`submitIcon`,3,yo),d=K(t,`cancel`,3,!0),p=K(t,`dialogClass`,3,``),m=K(t,`novalidate`,3,!1),h=K(t,`canClose`,3,()=>!0);function g(){J.dialogOpen||h()()&&t.onclose?.()}Ws(e,{get open(){return n()},variant:`editor`,onclose:g,children:(e,n)=>{var h=WE(),g=N(h),_=N(g),v=N(_),y=N(v),b=e=>{var n=Zr();hi(P(n),()=>t.header),B(e,n)},x=e=>{var n=VE(),i=P(n),a=N(i,!0);E(i);var o=F(i,2),s=e=>{var n=Zr();hi(P(n),()=>t.headerHint),B(e,n)};H(o,e=>{t.headerHint&&e(s)}),I(()=>V(a,r())),B(e,n)};H(y,e=>{t.header?e(b):e(x,-1)}),E(v);var S=F(v,2);{let e=k(()=>`Close `+(i()||r()).toLowerCase());Bs(S,{get label(){return L(e)},onclick:()=>t.onclose?.()})}E(_);var C=F(_,2);hi(C,()=>t.children??f);var w=F(C,2),T=e=>{var t=HE(),n=N(t,!0);E(t),I(()=>V(n,a())),B(e,t)};H(w,e=>{a()&&e(T)});var ee=F(w,2),te=N(ee),ne=e=>{var n=UE();R(`click`,n,()=>t.onclose?.()),B(e,n)};H(te,e=>{d()&&e(ne)});var re=F(te,2),ie=e=>{var n=Zr();hi(P(n),()=>t.extraActions),B(e,n)};H(re,e=>{t.extraActions&&e(ie)});var ae=F(re,2),oe=N(ae);q(oe,{get icon(){return u()},class:`form-action-icon`});var se=F(oe,2),ce=N(se,!0);E(se),E(ae),E(ee),E(g),E(h),I(()=>{W(h,1,Pi([`model-editor`,p()])),G(h,`aria-label`,i()||r()),g.noValidate=m(),ae.disabled=o()||s(),V(ce,o()?l():c())}),Br(`submit`,g,e=>{e.preventDefault(),t.onsubmit?.()}),B(e,h)},$$slots:{default:!0}}),O()}Vr([`click`]);var KE=z(`
        `);function qE(e,t){let n=K(t,`label`,3,``);var r=KE(),i=N(r),a=N(i,!0);E(i),hi(F(i,2),()=>t.children??f),E(r),I(()=>{G(i,`for`,t.id),V(a,n())}),B(e,r)}var JE=z(``),YE=z(``),XE=z(``),ZE=z(``),QE=z(``),$E=z(``),eD=z(`

        Editing a budget updates its limit only. Use Reset to start a new + budget period.

        `),tD=z(`
        `,1),nD=z(``),rD=z(` `,1);function iD(e,t){D(t,!0);function n(e){X.setFormSubject(e.target.value),e.target.value=X.form.subject}var r=rD(),i=P(r);{let e=k(()=>X.editing?`Edit Budget`:`Create Budget`);GE(i,{get open(){return X.formOpen},get title(){return L(e)},ariaLabel:`Budget editor`,get error(){return X.formError},get submitting(){return X.formSubmitting},submitLabel:`Save Budget`,dialogClass:`budget-editor`,canClose:()=>!X.overrideDialogOpen,onclose:()=>X.closeForm(),onsubmit:()=>X.submitForm(),children:(e,t)=>{var r=tD(),i=P(r),a=N(i);qE(a,{id:`budget-scope`,label:`Scope`,children:(e,t)=>{var n=YE();U(n,21,KT,e=>e.value,(e,t)=>{var n=JE(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(n),I(()=>n.disabled=X.editing),R(`change`,n,()=>X.syncScope()),Wi(n,()=>X.form.scope,e=>X.form.scope=e),B(e,n)},$$slots:{default:!0}});var o=F(a,2);{let e=k(()=>ZT(X.form));qE(o,{id:`budget-subject`,get label(){return L(e)},children:(e,t)=>{var r=XE();ta(r),I(e=>{G(r,`placeholder`,e),na(r,X.form.subject),r.disabled=X.editing,G(r,`data-modal-autofocus`,!X.editing||void 0)},[()=>QT(X.form)]),R(`input`,r,n),B(e,r)},$$slots:{default:!0}})}var s=F(o,2);qE(s,{id:`budget-period`,label:`Period`,children:(e,t)=>{var n=ZE();U(n,21,eE,e=>e.value,(e,t)=>{var n=JE(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(n),I(()=>n.disabled=X.editing),R(`change`,n,()=>X.syncPeriodSeconds()),Wi(n,()=>X.form.period,e=>X.form.period=e),B(e,n)},$$slots:{default:!0}});var c=F(s,2),l=e=>{qE(e,{id:`budget-period-seconds`,label:`Period Seconds`,children:(e,t)=>{var n=QE();ta(n),I(()=>n.disabled=X.editing),ua(n,()=>X.form.period_seconds,e=>X.form.period_seconds=e),B(e,n)},$$slots:{default:!0}})};H(c,e=>{X.form.period===`custom`&&e(l)}),qE(F(c,2),{id:`budget-amount`,label:`Amount`,children:(e,t)=>{var n=$E();ta(n),I(()=>G(n,`data-modal-autofocus`,X.editing||void 0)),ua(n,()=>X.form.amount,e=>X.form.amount=e),B(e,n)},$$slots:{default:!0}}),E(i);var u=F(i,2),d=e=>{B(e,eD())};H(u,e=>{X.editing&&e(d)}),B(e,r)},$$slots:{default:!0}})}Ws(F(i,2),{get open(){return X.overrideDialogOpen},variant:`auth`,onclose:()=>X.closeOverrideDialog(),children:(e,t)=>{var n=nD(),r=N(n);Bs(F(N(r),2),{label:`Close budget override dialog`,onclick:()=>X.closeOverrideDialog(),class:`auth-dialog-close`,iconClass:``}),E(r);var i=F(r,2),a=N(i),o=N(a,!0);E(a);var s=F(a,2),c=N(s),l=F(c,2),u=N(l);q(u,{get icon(){return yo},class:`form-action-icon`});var d=F(u,2),f=N(d,!0);E(d),E(l),E(s),E(i),E(n),I(e=>{V(o,e),l.disabled=X.formSubmitting,V(f,X.formSubmitting?`Saving...`:`Override Budget`)},[()=>vE(X.overridePendingPayload,X.overrideExistingBudget)]),Br(`submit`,i,e=>{e.preventDefault(),X.confirmOverride()}),R(`click`,c,()=>X.closeOverrideDialog()),B(e,n)},$$slots:{default:!0}}),B(e,r),O()}Vr([`change`,`input`,`click`]);var aD=z(`

        Budgets

        `),oD=z(``),sD=z(`
        Budget management is unavailable.
        `),cD=z(``),lD=z(`
        `),uD=z(`

        No budgets configured yet.

        `),dD=z(`

        No budgets match your filter.

        `),fD=z(`
        `);function pD(e,t){D(t,!0),kn(()=>{J.refreshTick,Zo.page===`budgets`&&X.fetchBudgetsPage()});let n=k(()=>X.filteredBudgets());var r=fD(),i=N(r),a=N(i);oC(N(a),{copyId:`budgets-help-copy`,label:`budgets help`,title:e=>{B(e,aD())},help:e=>{He(),B(e,Xr(`Budgets are evaluated from tracked usage cost records for each user + path subtree. Enforcement runs only when Budget is enabled for the + active workflow.`))},$$slots:{title:!0,help:!0}}),E(a);var o=F(a,2),s=N(o),c=e=>{var t=oD();q(N(t),{get icon(){return ho},class:`form-action-icon`}),He(2),E(t),I(()=>t.disabled=X.formSubmitting),R(`click`,t,()=>X.openForm()),B(e,t)},l=k(()=>X.managementEnabled()&&X.budgetsAvailable&&!J.authError);H(s,e=>{L(l)&&e(c)}),E(o),E(i);var u=F(i,2);Jc(u,{});var d=F(u,2),f=e=>{B(e,sD())},p=k(()=>(!X.managementEnabled()||!X.budgetsAvailable)&&!J.authError);H(d,e=>{L(p)&&e(f)});var m=F(d,2),h=e=>{var t=cD(),n=N(t,!0);E(t),I(()=>V(n,X.error)),B(e,t)};H(m,e=>{X.error&&!J.authError&&e(h)});var g=F(m,2),_=e=>{zT(e,{label:`Loading budgets...`})};H(g,e=>{X.loading&&!J.authError&&e(_)});var v=F(g,2),y=e=>{var t=lD(),n=N(t);Fw(N(n),{id:`budget-filter`,placeholder:`Filter by user path, label, or period...`,label:`Filter budgets by user path or period`,get value(){return X.filter},set value(e){X.filter=e}}),E(n);var r=F(n,2),i=F(N(r),2),a=N(i);a.value=a.__value=`subject`;var o=F(a);o.value=o.__value=`period`,E(i),E(r),E(t),Wi(i,()=>X.sortBy,e=>X.sortBy=e),B(e,t)};H(v,e=>{(X.budgets.length>0||X.filter)&&X.budgetsAvailable&&!J.authError&&!X.formOpen&&e(y)});var b=F(v,2);iD(b,{});var x=F(b,2),S=e=>{BE(e,{get budgets(){return L(n)}})};H(x,e=>{L(n).length>0&&X.budgetsAvailable&&!J.authError&&e(S)});var C=F(x,2),w=e=>{B(e,uD())},T=k(()=>X.budgets.length===0&&!X.filter&&!X.loading&&!J.authError&&!X.error&&X.budgetsAvailable&&X.managementEnabled());H(C,e=>{L(T)&&e(w)});var ee=F(C,2),te=e=>{B(e,dD())},ne=k(()=>X.budgets.length>0&&L(n).length===0&&X.filter&&!X.loading&&!J.authError&&!X.error&&X.budgetsAvailable&&X.managementEnabled());H(ee,e=>{L(ne)&&e(te)}),E(r),B(e,r),O()}Vr([`click`]);function mD(){return{scope:`user_path`,subject:`/`,period:`minute`,period_seconds:60,max_requests:``,max_tokens:``,source:`manual`}}function hD(e){let t={user_path:{label:`User path`,chip:`user path`,fieldLabel:`User Path`,placeholder:`/team/alpha`},provider:{label:`Provider`,chip:`provider`,fieldLabel:`Provider Name`,placeholder:`openai`},model:{label:`Model`,chip:`model`,fieldLabel:`Model`,placeholder:`openai/gpt-4o`}};return t[e]||t.user_path}function gD(){return[`user_path`,`provider`,`model`].map(e=>({value:e,label:hD(e).label}))}function _D(e){return String(e&&e.scope||``).trim()||`user_path`}function vD(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function yD(e){return hD(_D(e)).chip}function bD(e){return hD(String(e&&e.scope||``)).fieldLabel}function xD(e){return hD(String(e&&e.scope||``)).placeholder}function SD(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function CD(){return[{value:`minute`,label:`Per minute`},{value:`hour`,label:`Per hour`},{value:`day`,label:`Per day`},{value:`concurrent`,label:`Concurrent (in-flight)`},{value:`custom`,label:`Custom seconds`}]}function wD(e){switch(String(e||``).trim().toLowerCase()){case`minute`:return 60;case`hour`:return 3600;case`day`:return 86400;case`concurrent`:return 0;default:return-1}}function TD(e){switch(Number(e||0)){case 60:return`minute`;case 3600:return`hour`;case 86400:return`day`;case 0:return`concurrent`;default:return`custom`}}function ED(e){let t=String(e&&e.period||``).trim(),n=wD(t);n>=0&&(e.period_seconds=n),t===`concurrent`&&(e.max_tokens=``)}function DD(e){return _D(e)+`:`+vD(e)+`:`+String(e&&e.period_seconds||`0`)}function OD(e){return Number(e&&e.period_seconds||0)===0}function kD(e){return String(e&&e.period_label||``).trim()||TD(Number(e&&e.period_seconds||0))}function AD(e){return String(e&&e.source||``)===`config`?`config`:`manual`}function jD(e){return String(e&&e.source||``)===`config`}function MD(e){let t=Number(e);return Number.isFinite(t)?t.toLocaleString():`0`}function ND(e,t){let n=Number(e),r=Number(t);if(!Number.isFinite(n)||!Number.isFinite(r)||r<=0)return 0;let i=Math.round(n/r*100);return Math.min(Math.max(i,0),100)}function PD(e,t){let n=String(t||``).trim().toLowerCase(),r=Array.isArray(e)?e.slice():[],i={user_path:0,provider:1,model:2};return r.sort((e,t)=>{let n=(i[_D(e)]||0)-(i[_D(t)]||0);if(n!==0)return n;let r=vD(e).localeCompare(vD(t));return r===0?Number(e.period_seconds||0)-Number(t.period_seconds||0):r}),n?r.filter(e=>{let t=vD(e).toLowerCase(),r=yD(e).toLowerCase(),i=kD(e).toLowerCase();return t.includes(n)||r.includes(n)||i.includes(n)}):r}function FD(e){return!e||!Array.isArray(e.rate_limits)?[]:e.rate_limits}function ID(e,t,n){let r=String(t||``).trim();return r=e===`provider`||e===`model`?r.toLowerCase():`/`+r.split(`/`).map(e=>e.trim()).filter(Boolean).join(`/`),e+`:`+r+`:`+Number(n||0)}function LD(e,t){return e?ID(t.scope,t.subject,t.limit_key.period_seconds)!==ID(e.scope,e.subject,e.period_seconds):!1}function RD(e){let t=e||{},n=String(t.scope||`user_path`),r=String(t.subject||``).trim();if(n!==`user_path`&&!r)return{error:bD(t)+` is required.`};let i=String(t.period||``)===`concurrent`,a=t.period_seconds;if(a===``||a==null)return{error:`Period seconds is required.`};let o=Number(a);if(!Number.isInteger(o)||o<0||o===0&&!i)return{error:`Period seconds must be a positive integer (0 only for the concurrent period).`};let s=String(t.max_requests===void 0||t.max_requests===null?``:t.max_requests).trim(),c=String(t.max_tokens===void 0||t.max_tokens===null?``:t.max_tokens).trim();if(!s&&!c)return{error:`Set max requests, max tokens, or both.`};if(i&&c)return{error:`Token limits are not valid for the concurrent period.`};let l={scope:n,subject:r||`/`,limit_key:{period_seconds:o}};if(s){let e=Number(s);if(!Number.isInteger(e)||e<=0)return{error:`Max requests must be a positive integer.`};l.max_requests=e}if(c){let e=Number(c);if(!Number.isInteger(e)||e<=0)return{error:`Max tokens must be a positive integer.`};l.max_tokens=e}return{payload:l}}function zD(e,t,n){if(_D(e)!==`model`)return!1;let r=String(vD(e)).toLowerCase(),i=String(n||``).trim().toLowerCase();if(!i)return!1;if(r===i)return!0;let a=String(t||``).trim().toLowerCase();return a?r===a+`/`+i||i.startsWith(a+`/`)&&r===i.slice(a.length+1):!1}function BD(e,t){return _D(e)===`provider`&&String(vD(e)).toLowerCase()===String(t||``).trim().toLowerCase()}function VD(e){let t=e||{},n=String(t.model||``),r=String(t.provider||``);return!r||n.toLowerCase().startsWith(r+`/`)?n:r+`/`+n}function HD(e,t){let n=e||{},r=Array.isArray(t)?t:[],i=[];return n.kind===`model`&&i.push({key:`model`,title:`Model limits`,scope:`model`,subject:VD(n),hint:``,items:r.filter(e=>zD(e,n.provider,n.model))}),i.push({key:`provider`,title:`Provider limits (`+n.provider+`)`,scope:`provider`,subject:n.provider,hint:n.kind===`model`?`Shared by every model routed to this provider.`:``,items:r.filter(e=>BD(e,n.provider))}),i.push({key:`global`,title:`Global limits`,scope:`user_path`,subject:`/`,hint:`Root user-path rules throttle all traffic. Narrower user-path rules also apply, per consumer.`,items:r.filter(e=>_D(e)===`user_path`&&vD(e)===`/`)}),i}function UD(e){return OD(e)?ND(e.in_flight,e.max_requests):Math.max(ND(e.requests_used,e.max_requests),ND(e.tokens_used,e.max_tokens))}function WD(e){return`--rate-limit-pressure: `+UD(e)+`%`}function GD(e){let t=UD(e);return t>=100?`rate-limit-pressure-row rate-limit-pressure-full`:t>=75?`rate-limit-pressure-row rate-limit-pressure-high`:`rate-limit-pressure-row`}function KD(e){return(Array.isArray(e)?e:[]).some(e=>_D(e)===`user_path`&&vD(e)===`/`)}function qD(e,t,n){let r=Array.isArray(e)?e:[];return r.some(e=>zD(e,t,n))?`table-action-btn-active`:r.some(e=>BD(e,t))||KD(r)?`rate-limit-gauge-inherited`:``}function JD(e,t){let n=Array.isArray(e)?e:[];return n.some(e=>BD(e,t))?`table-action-btn-active`:KD(n)?`rate-limit-gauge-inherited`:``}function YD(e,t){let n=`Rate limits for `+e;return t===`table-action-btn-active`?n+` (direct limits configured)`:t?n+` (inherited limits apply)`:n}function XD(e){if(OD(e))return MD(e.in_flight)+` of `+MD(e.max_requests)+` in flight`;let t=[];return e.max_requests!==null&&e.max_requests!==void 0&&t.push(MD(e.requests_used)+`/`+MD(e.max_requests)+` req`),e.max_tokens!==null&&e.max_tokens!==void 0&&t.push(MD(e.tokens_used)+`/`+MD(e.max_tokens)+` tok`),t.join(` · `)}var Z=new class{#e=A(M([]));get rateLimits(){return L(this.#e)}set rateLimits(e){j(this.#e,e,!0)}#t=A(!0);get rateLimitsAvailable(){return L(this.#t)}set rateLimitsAvailable(e){j(this.#t,e,!0)}#n=A(!1);get rateLimitsLoading(){return L(this.#n)}set rateLimitsLoading(e){j(this.#n,e,!0)}rateLimitFetchPromise=null;#r=A(``);get rateLimitFilter(){return L(this.#r)}set rateLimitFilter(e){j(this.#r,e,!0)}#i=A(``);get rateLimitError(){return L(this.#i)}set rateLimitError(e){j(this.#i,e,!0)}#a=A(!1);get rateLimitFormOpen(){return L(this.#a)}set rateLimitFormOpen(e){j(this.#a,e,!0)}#o=A(!1);get rateLimitFormSubmitting(){return L(this.#o)}set rateLimitFormSubmitting(e){j(this.#o,e,!0)}#s=A(``);get rateLimitFormError(){return L(this.#s)}set rateLimitFormError(e){j(this.#s,e,!0)}#c=A(!1);get rateLimitEditing(){return L(this.#c)}set rateLimitEditing(e){j(this.#c,e,!0)}rateLimitEditingOriginal=null;rateLimitFormReturnToInspector=!1;#l=A(``);get rateLimitResettingKey(){return L(this.#l)}set rateLimitResettingKey(e){j(this.#l,e,!0)}#u=A(``);get rateLimitDeletingKey(){return L(this.#u)}set rateLimitDeletingKey(e){j(this.#u,e,!0)}#d=A(!1);get rateLimitInspectorOpen(){return L(this.#d)}set rateLimitInspectorOpen(e){j(this.#d,e,!0)}#f=A(M({kind:``,provider:``,model:``,title:``}));get rateLimitInspector(){return L(this.#f)}set rateLimitInspector(e){j(this.#f,e,!0)}#p=A(M(mD()));get rateLimitForm(){return L(this.#p)}set rateLimitForm(e){j(this.#p,e,!0)}rateLimitsEnabled(){return js.rateLimitsVisible()}defaultRateLimitForm(){return mD()}rateLimitScopeMeta(e){return hD(e)}rateLimitScopeOptions(){return gD()}rateLimitScope(e){return _D(e)}rateLimitSubject(e){return vD(e)}rateLimitScopeLabel(e){return yD(e)}rateLimitSubjectFieldLabel(){return bD(this.rateLimitForm)}rateLimitSubjectPlaceholder(){return xD(this.rateLimitForm)}syncRateLimitScope(){SD(this.rateLimitForm)}rateLimitPeriodOptions(){return CD()}rateLimitPeriodSeconds(e){return wD(e)}rateLimitPeriodFromSeconds(e){return TD(e)}syncRateLimitPeriodSeconds(){ED(this.rateLimitForm)}rateLimitKey(e){return DD(e)}rateLimitIsConcurrent(e){return OD(e)}rateLimitPeriodLabel(e){return kD(e)}rateLimitSourceLabel(e){return AD(e)}rateLimitIsReadOnly(e){return jD(e)}formatRateLimitNumber(e){return MD(e)}rateLimitUsagePercent(e,t){return ND(e,t)}filteredRateLimits(){return PD(this.rateLimits,this.rateLimitFilter)}normalizeRateLimitListPayload(e){return FD(e)}async fetchRateLimitsPage(){if(await js.ensureLoaded(),!this.rateLimitsEnabled()){this.rateLimits=[],this.rateLimitsAvailable=!1,this.rateLimitError=``;return}return this.rateLimitFetchPromise||=this.fetchRateLimits().finally(()=>{this.rateLimitFetchPromise=null}),this.rateLimitFetchPromise}async fetchRateLimits(){this.rateLimitsLoading=!0,this.rateLimitError=``;let e=await HT(`/admin/rate-limits`,{label:`rate limits`,errorFallback:`Unable to load rate limits.`,normalize:FD});if(this.rateLimitsLoading=!1,e.status!==`stale`){if(e.status===`unavailable`){this.rateLimitsAvailable=!1,this.rateLimits=[];return}if(!e.result){this.rateLimits=[],this.rateLimitError=e.error;return}if(this.rateLimitsAvailable=!0,e.status===`error`){this.rateLimitError=e.error;return}this.rateLimits=e.items}}openRateLimitForm(e){if(this.rateLimitEditing=!!e,this.rateLimitFormError=``,e){let t=Number(e.period_seconds||0);this.rateLimitEditingOriginal={scope:_D(e),subject:vD(e),period_seconds:t},this.rateLimitForm={scope:_D(e),subject:vD(e),period:TD(t),period_seconds:t,max_requests:e.max_requests===null||e.max_requests===void 0?``:String(e.max_requests),max_tokens:e.max_tokens===null||e.max_tokens===void 0?``:String(e.max_tokens),source:String(e.source||`manual`)}}else this.rateLimitEditingOriginal=null,this.rateLimitForm=mD();this.rateLimitFormOpen=!0}closeRateLimitForm(){this.rateLimitFormOpen=!1,this.rateLimitFormSubmitting=!1,this.rateLimitFormError=``,this.rateLimitEditing=!1,this.rateLimitEditingOriginal=null,this.rateLimitForm=mD(),this.rateLimitFormReturnToInspector&&(this.rateLimitFormReturnToInspector=!1,this.rateLimitInspectorOpen=!0)}rateLimitNormalizedIdentity(e,t,n){return ID(e,t,n)}rateLimitIdentityMoved(e){return LD(this.rateLimitEditingOriginal,e)}setRateLimitFormSubject(e){this.rateLimitForm.subject=String(e||``)}rateLimitFormPayload(){return RD(this.rateLimitForm)}async submitRateLimitForm(){if(this.rateLimitFormSubmitting)return;let{payload:e,error:t}=this.rateLimitFormPayload();if(t){this.rateLimitFormError=t;return}let n=this.rateLimitIdentityMoved(e),r=this.rateLimitEditingOriginal;this.rateLimitFormSubmitting=!0,this.rateLimitFormError=``;try{let t=await UT(`/admin/rate-limits`,`PUT`,e,{label:`save rate limit`,errorFallback:`Unable to save rate limit.`,unavailableStatuses:[]});if(t.status===`stale`)return;if(t.status!==`ok`){this.rateLimitFormError=t.error;return}if(this.rateLimits=FD(t.result.data),n&&!await this.deleteMovedRateLimitOriginal(r))return;this.closeRateLimitForm(),dc.success(n?`Rate limit moved; live counters restarted.`:`Rate limit saved.`)}finally{this.rateLimitFormSubmitting=!1}}async deleteMovedRateLimitOriginal(e){let t=await UT(`/admin/rate-limits`,`DELETE`,{scope:e.scope,subject:e.subject,limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`remove the moved rate limit`,errorFallback:`The new rule was saved, but the previous one could not be removed. Delete it manually.`,unavailableStatuses:[]});return t.status===`stale`?!1:t.status===`ok`?(this.rateLimits=FD(t.result.data),!0):(this.rateLimitFormError=t.error,!1)}async deleteRateLimit(e){let t=DD(e);if(this.rateLimitDeletingKey===t)return;this.rateLimitDeletingKey=t;let n=await UT(`/admin/rate-limits`,`DELETE`,{scope:_D(e),subject:vD(e),limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`delete rate limit`,errorFallback:`Unable to delete rate limit.`,unavailableStatuses:[]});if(this.rateLimitDeletingKey=``,n.status!==`stale`){if(n.status!==`ok`){dc.error(n.error);return}this.rateLimits=FD(n.result.data),dc.success(`Rate limit deleted.`)}}async resetRateLimit(e){let t=DD(e);if(this.rateLimitResettingKey===t)return;this.rateLimitResettingKey=t;let n=await UT(`/admin/rate-limits/reset-one`,`POST`,{scope:_D(e),subject:vD(e),period_seconds:Number(e.period_seconds||0)},{label:`reset rate limit`,errorFallback:`Unable to reset rate limit.`,unavailableStatuses:[]});if(this.rateLimitResettingKey=``,n.status!==`stale`){if(n.status!==`ok`){dc.error(n.error);return}this.rateLimits=FD(n.result.data),dc.success(`Rate limit counters reset.`)}}rateLimitInspectorModelID(e){return String(e&&e.model&&e.model.id||``).trim()}openRateLimitInspectorForModel(e){let t=this.rateLimitInspectorModelID(e),n=String(e&&e.provider_name||``).trim().toLowerCase();this.rateLimitInspector={kind:`model`,provider:n,model:t,title:String(e&&e.display_name||t)},this.showRateLimitInspector()}openRateLimitInspectorForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase();this.rateLimitInspector={kind:`provider`,provider:t,model:``,title:String(e&&e.display_name||t)},this.showRateLimitInspector()}showRateLimitInspector(){this.rateLimitInspectorOpen=!0,this.fetchRateLimitsPage()}closeRateLimitInspector(){this.rateLimitInspectorOpen=!1}rateLimitRuleMatchesModel(e,t,n){return zD(e,t,n)}rateLimitRuleMatchesProvider(e,t){return BD(e,t)}rateLimitInspectorQualifiedModel(){return VD(this.rateLimitInspector)}rateLimitInspectorSections(){return HD(this.rateLimitInspector,this.rateLimits)}rateLimitPressurePercent(e){return UD(e)}rateLimitPressureStyle(e){return WD(e)}rateLimitPressureClass(e){return GD(e)}rateLimitGaugeCache={rules:null,states:{}};rateLimitGaugeMemo(e,t){this.rateLimitGaugeCache.rules!==this.rateLimits&&(this.rateLimitGaugeCache={rules:this.rateLimits,states:{}});let n=this.rateLimitGaugeCache.states;return e in n||(n[e]=t()),n[e]}rateLimitGaugeClassForModel(e){let t=this.rateLimitInspectorModelID(e),n=String(e&&e.provider_name||``).trim().toLowerCase(),r=this.rateLimits;return this.rateLimitGaugeMemo(`model:`+n+`/`+t,()=>qD(r,n,t))}rateLimitGaugeClassForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase(),n=this.rateLimits;return this.rateLimitGaugeMemo(`provider:`+t,()=>JD(n,t))}hasGlobalRateLimits(){let e=this.rateLimits;return this.rateLimitGaugeMemo(`global`,()=>KD(e))}rateLimitGaugeTitle(e,t){return YD(e,t)}rateLimitInspectorSummary(e){return XD(e)}openRateLimitFormFromInspector(e,t,n){this.rateLimitInspectorOpen=!1,this.rateLimitFormReturnToInspector=!0,this.openRateLimitForm(n||void 0),n||(this.rateLimitForm.scope=e,this.rateLimitForm.subject=t)}},ZD=z(``),QD=z(``),$D=z(``),eO=z(``),tO=z(``),nO=z(``),rO=z(``),iO=z(`

        Scope, subject, and period identify the rule: changing any of them + moves the rule to a new key and restarts its live counters.

        `),aO=z(`

        A user path rule limits the whole subtree; provider and model rules cap + all traffic routed there and make load balancing skip the target while + it is saturated. One shared counter per rule. Leave a field empty to + skip that limit. Token limits require usage tracking.

        `,1);function oO(e,t){D(t,!0);{let t=k(()=>Z.rateLimitEditing?`Edit Rate Limit`:`Create Rate Limit`);GE(e,{get open(){return Z.rateLimitFormOpen},get title(){return L(t)},ariaLabel:`Rate limit editor`,get error(){return Z.rateLimitFormError},get submitting(){return Z.rateLimitFormSubmitting},submitLabel:`Save Rate Limit`,dialogClass:`budget-editor`,novalidate:!0,onclose:()=>Z.closeRateLimitForm(),onsubmit:()=>Z.submitRateLimitForm(),children:(e,t)=>{var n=aO(),r=P(n),i=N(r);qE(i,{id:`rate-limit-scope`,label:`Scope`,children:(e,t)=>{var n=QD();U(n,21,()=>Z.rateLimitScopeOptions(),e=>e.value,(e,t)=>{var n=ZD(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(n),R(`change`,n,()=>Z.syncRateLimitScope()),Wi(n,()=>Z.rateLimitForm.scope,e=>Z.rateLimitForm.scope=e),B(e,n)},$$slots:{default:!0}});var a=F(i,2);{let e=k(()=>Z.rateLimitSubjectFieldLabel());qE(a,{id:`rate-limit-subject`,get label(){return L(e)},children:(e,t)=>{var n=$D();ta(n),I(e=>{G(n,`placeholder`,e),G(n,`data-modal-autofocus`,!Z.rateLimitEditing||void 0),na(n,Z.rateLimitForm.subject)},[()=>Z.rateLimitSubjectPlaceholder()]),R(`input`,n,e=>Z.setRateLimitFormSubject(e.currentTarget.value)),B(e,n)},$$slots:{default:!0}})}var o=F(a,2);qE(o,{id:`rate-limit-period`,label:`Period`,children:(e,t)=>{var n=eO();U(n,21,()=>Z.rateLimitPeriodOptions(),e=>e.value,(e,t)=>{var n=ZD(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(n),R(`change`,n,()=>Z.syncRateLimitPeriodSeconds()),Wi(n,()=>Z.rateLimitForm.period,e=>Z.rateLimitForm.period=e),B(e,n)},$$slots:{default:!0}});var s=F(o,2),c=e=>{qE(e,{id:`rate-limit-period-seconds`,label:`Period Seconds`,children:(e,t)=>{var n=tO();ta(n),ua(n,()=>Z.rateLimitForm.period_seconds,e=>Z.rateLimitForm.period_seconds=e),B(e,n)},$$slots:{default:!0}})};H(s,e=>{Z.rateLimitForm.period===`custom`&&e(c)});var l=F(s,2);{let e=k(()=>Z.rateLimitForm.period===`concurrent`?`Max In-Flight Requests`:`Max Requests`);qE(l,{id:`rate-limit-max-requests`,get label(){return L(e)},children:(e,t)=>{var n=nO();ta(n),I(()=>G(n,`data-modal-autofocus`,Z.rateLimitEditing?!0:void 0)),ua(n,()=>Z.rateLimitForm.max_requests,e=>Z.rateLimitForm.max_requests=e),B(e,n)},$$slots:{default:!0}})}var u=F(l,2),d=e=>{qE(e,{id:`rate-limit-max-tokens`,label:`Max Tokens`,children:(e,t)=>{var n=rO();ta(n),ua(n,()=>Z.rateLimitForm.max_tokens,e=>Z.rateLimitForm.max_tokens=e),B(e,n)},$$slots:{default:!0}})};H(u,e=>{Z.rateLimitForm.period!==`concurrent`&&e(d)}),E(r);var f=F(r,4),p=e=>{B(e,iO())};H(f,e=>{Z.rateLimitEditing&&e(p)}),B(e,n)},$$slots:{default:!0}})}O()}Vr([`change`,`input`]);var sO=z(` `),cO=z(` Edit`,1),lO=z(` `,1),uO=z(`
        In-flight
        `),dO=z(`
        Requests
        `),fO=z(`
        Tokens
        `),pO=z(`
        `),mO=z(`
        `);function hO(e,t){D(t,!0);var n=mO();U(n,21,()=>t.rules,e=>Z.rateLimitKey(e),(e,t)=>{var n=pO(),r=N(n),i=N(r),a=N(i),o=N(a,!0);E(a);var s=F(a,2),c=N(s),l=e=>{var n=sO(),r=N(n);{let e=k(()=>Z.rateLimitScope(L(t))===`provider`?So:Fa);q(r,{get icon(){return L(e)},class:`budget-period-icon`})}var i=F(r,2),a=N(i,!0);E(i),E(n),I((e,t)=>{G(n,`title`,e),V(a,t)},[()=>`Rule scope: `+Z.rateLimitScopeLabel(L(t)),()=>Z.rateLimitScopeLabel(L(t))]),B(e,n)},u=k(()=>Z.rateLimitScope(L(t))!==`user_path`);H(c,e=>{L(u)&&e(l)});var d=F(c,2),f=N(d);{let e=k(()=>Z.rateLimitIsConcurrent(L(t))?Aa:jo);q(f,{get icon(){return L(e)},class:`budget-period-icon`})}var p=F(f,2),m=N(p,!0);E(p),E(d),E(s);var h=F(s,2),g=N(h),_=N(g),v=N(_,!0);E(_),E(g);var y=F(g,2),b=N(y),x=e=>{VT(e,{label:`Edit rate limit`,class:`budget-action-btn`,onclick:()=>Z.openRateLimitForm(L(t)),children:(e,t)=>{var n=cO();q(P(n),{get icon(){return po},class:`budget-action-icon`}),He(2),B(e,n)},$$slots:{default:!0}})},S=k(()=>!Z.rateLimitIsReadOnly(L(t)));H(b,e=>{L(S)&&e(x)});var C=F(b,2);{let e=k(()=>Z.rateLimitResettingKey===Z.rateLimitKey(L(t))?`Resetting counters`:`Reset counters`),n=k(()=>Z.rateLimitResettingKey===Z.rateLimitKey(L(t)));VT(C,{get label(){return L(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>Z.resetRateLimit(L(t)),get disabled(){return L(n)},children:(e,n)=>{var r=lO(),i=P(r);q(i,{get icon(){return vo},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);E(a),I(e=>V(o,e),[()=>Z.rateLimitResettingKey===Z.rateLimitKey(L(t))?`Resetting`:`Reset`]),B(e,r)},$$slots:{default:!0}})}var w=F(C,2),T=e=>{{let n=k(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(L(t))?`Deleting rate limit`:`Delete rate limit`),r=k(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(L(t)));VT(e,{get label(){return L(n)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>Z.deleteRateLimit(L(t)),get disabled(){return L(r)},children:(e,n)=>{var r=lO(),i=P(r);q(i,{get icon(){return Mo},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);E(a),I(e=>V(o,e),[()=>Z.rateLimitDeletingKey===Z.rateLimitKey(L(t))?`Deleting`:`Delete`]),B(e,r)},$$slots:{default:!0}})}},ee=k(()=>!Z.rateLimitIsReadOnly(L(t)));H(w,e=>{L(ee)&&e(T)}),E(y),E(h),E(i);var te=F(i,2),ne=N(te),re=e=>{var n=uO(),r=N(n),i=F(N(r),2),a=N(i,!0);E(i),E(r);var o=F(r,2),s=N(o);let c;var l=F(s,2),u=N(l),d=N(u,!0);E(u),E(l),E(o),E(n),I((e,t,n,r,i,l)=>{V(a,e),G(o,`aria-valuenow`,t),G(o,`aria-label`,n),Vi(o,r),c=W(s,1,`budget-bar-fill budget-bar-fill-usage`,null,c,i),V(d,l)},[()=>Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests),()=>`In-flight requests: `+Z.formatRateLimitNumber(L(t).in_flight)+` of `+Z.formatRateLimitNumber(L(t).max_requests),()=>`--budget-progress: `+Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests)>=100}),()=>Z.formatRateLimitNumber(L(t).in_flight)+` of `+Z.formatRateLimitNumber(L(t).max_requests)+` in flight`]),B(e,n)},ie=k(()=>Z.rateLimitIsConcurrent(L(t)));H(ne,e=>{L(ie)&&e(re)});var ae=F(ne,2),oe=e=>{var n=dO(),r=N(n),i=F(N(r),2),a=N(i,!0);E(i),E(r);var o=F(r,2),s=N(o);let c;var l=F(s,2),u=N(l),d=N(u,!0);E(u);var f=F(u,2),p=N(f,!0);E(f),E(l),E(o),E(n),I((e,t,n,r,i,l,u)=>{V(a,e),G(o,`aria-valuenow`,t),G(o,`aria-label`,n),Vi(o,r),c=W(s,1,`budget-bar-fill budget-bar-fill-usage`,null,c,i),V(d,l),V(p,u)},[()=>Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests),()=>`Requests used: `+Z.formatRateLimitNumber(L(t).requests_used)+` of `+Z.formatRateLimitNumber(L(t).max_requests),()=>`--budget-progress: `+Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests)>=100}),()=>Z.formatRateLimitNumber(L(t).requests_used)+` of `+Z.formatRateLimitNumber(L(t).max_requests)+` requests`,()=>Z.formatRateLimitNumber(L(t).requests_remaining)+` left`]),B(e,n)},se=k(()=>!Z.rateLimitIsConcurrent(L(t))&&L(t).max_requests);H(ae,e=>{L(se)&&e(oe)});var ce=F(ae,2),le=e=>{var n=fO(),r=N(n),i=F(N(r),2),a=N(i,!0);E(i),E(r);var o=F(r,2),s=N(o);let c;var l=F(s,2),u=N(l),d=N(u,!0);E(u);var f=F(u,2),p=N(f,!0);E(f),E(l),E(o),E(n),I((e,t,n,r,i,l,u)=>{V(a,e),G(o,`aria-valuenow`,t),G(o,`aria-label`,n),Vi(o,r),c=W(s,1,`budget-bar-fill budget-bar-fill-usage`,null,c,i),V(d,l),V(p,u)},[()=>Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens)+`%`,()=>Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens),()=>`Tokens used: `+Z.formatRateLimitNumber(L(t).tokens_used)+` of `+Z.formatRateLimitNumber(L(t).max_tokens),()=>`--budget-progress: `+Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens)>=100}),()=>Z.formatRateLimitNumber(L(t).tokens_used)+` of `+Z.formatRateLimitNumber(L(t).max_tokens)+` tokens`,()=>Z.formatRateLimitNumber(L(t).tokens_remaining)+` left`]),B(e,n)},ue=k(()=>!Z.rateLimitIsConcurrent(L(t))&&L(t).max_tokens);H(ce,e=>{L(ue)&&e(le)}),E(te),E(r),E(n),I((e,t,n,r,i)=>{G(a,`title`,e),V(o,t),V(m,n),G(_,`title`,r),V(v,i)},[()=>Z.rateLimitScopeLabel(L(t))+`: `+Z.rateLimitSubject(L(t)),()=>Z.rateLimitSubject(L(t)),()=>Z.rateLimitPeriodLabel(L(t)),()=>Z.rateLimitIsReadOnly(L(t))?`Declared in configuration; read-only in the dashboard`:`Managed via dashboard or admin API`,()=>Z.rateLimitSourceLabel(L(t))]),B(e,n)}),E(n),B(e,n),O()}var gO=z(`

        Rate Limits

        `),_O=z(``),vO=z(`
        Rate limit management is unavailable.
        `),yO=z(``),bO=z(`
        `),xO=z(`

        No rate limits configured yet.

        `),SO=z(`

        No rate limits match your filter.

        `),CO=z(`
        `);function wO(e,t){D(t,!0),kn(()=>{J.refreshTick,Zo.page===`rate-limits`&&Z.fetchRateLimitsPage()});let n=k(()=>Z.filteredRateLimits());var r=CO(),i=N(r),a=N(i);oC(N(a),{copyId:`rate-limits-help-copy`,label:`rate limits help`,text:`Rate limits cap requests, tokens, and in-flight concurrency for a user path subtree, a provider, or a model. Consumer (user path) breaches return 429 with Retry-After and x-ratelimit-* headers; saturated providers and models are skipped by load balancing and failover while capacity exists elsewhere. Counters are per gateway instance and reset on restart; token limits need usage tracking.`,title:e=>{B(e,gO())},$$slots:{title:!0}}),E(a);var o=F(a,2),s=N(o),c=e=>{var t=_O();q(N(t),{get icon(){return ho},class:`form-action-icon`}),He(2),E(t),I(()=>t.disabled=Z.rateLimitFormSubmitting),R(`click`,t,()=>Z.openRateLimitForm()),B(e,t)},l=k(()=>Z.rateLimitsEnabled()&&Z.rateLimitsAvailable&&!J.authError);H(s,e=>{L(l)&&e(c)}),E(o),E(i);var u=F(i,2);Jc(u,{});var d=F(u,2),f=e=>{B(e,vO())},p=k(()=>(!Z.rateLimitsEnabled()||!Z.rateLimitsAvailable)&&!J.authError);H(d,e=>{L(p)&&e(f)});var m=F(d,2),h=e=>{var t=yO(),n=N(t,!0);E(t),I(()=>V(n,Z.rateLimitError)),B(e,t)};H(m,e=>{Z.rateLimitError&&!J.authError&&e(h)});var g=F(m,2),_=e=>{zT(e,{label:`Loading rate limits...`})};H(g,e=>{Z.rateLimitsLoading&&!J.authError&&e(_)});var v=F(g,2),y=e=>{var t=bO(),n=N(t);Fw(N(n),{id:`rate-limit-filter`,placeholder:`Filter by subject, scope, or period...`,label:`Filter rate limits by subject, scope, or period`,get value(){return Z.rateLimitFilter},set value(e){Z.rateLimitFilter=e}}),E(n),E(t),B(e,t)};H(v,e=>{(Z.rateLimits.length>0||Z.rateLimitFilter)&&Z.rateLimitsAvailable&&!J.authError&&!Z.rateLimitFormOpen&&e(y)});var b=F(v,2);oO(b,{});var x=F(b,2),S=e=>{hO(e,{get rules(){return L(n)}})};H(x,e=>{L(n).length>0&&Z.rateLimitsAvailable&&!J.authError&&e(S)});var C=F(x,2),w=e=>{B(e,xO())},T=k(()=>Z.rateLimits.length===0&&!Z.rateLimitFilter&&!Z.rateLimitsLoading&&!J.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());H(C,e=>{L(T)&&e(w)});var ee=F(C,2),te=e=>{B(e,SO())},ne=k(()=>Z.rateLimits.length>0&&L(n).length===0&&Z.rateLimitFilter&&!Z.rateLimitsLoading&&!J.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());H(ee,e=>{L(ne)&&e(te)}),E(r),B(e,r),O()}Vr([`click`]);function TO(e){return String(e||``).trim().toLowerCase()}function EO(e){if(!e)return``;let t=String(e.selector||``).trim();if(t)return t;if(!e.model||!e.model.id)return``;let n=String(e.model.id||``).trim(),r=String(e.provider_name||``).trim();if(r)return r+`/`+n;let i=String(e.provider_type||``).trim();return!i||n.includes(`/`)?n:i+`/`+n}function DO(e,t,n,r){let i=new Set,a=String(e||``).trim().toLowerCase(),o=String(t||``).trim().toLowerCase(),s=String(n||``).trim().toLowerCase(),c=String(r||``).trim().toLowerCase();if(c&&i.add(c),!a)return i;i.add(a),s&&i.add(s+`/`+a),o&&!a.includes(`/`)&&i.add(o+`/`+a);let l=a.split(`/`);return l.length===2&&l[1]&&i.add(l[1]),i}function OO(e){return DO(e&&e.model?e.model.id:``,e?e.provider_type:``,e?e.provider_name:``,e?e.selector:``)}function kO(e){let t=new Set,n=String(e.resolved_model||``).trim().toLowerCase(),r=String(e.target_model||``).trim().toLowerCase(),i=String(e.target_provider||``).trim().toLowerCase();if(n){t.add(n);let e=n.split(`/`);e.length===2&&e[1]&&t.add(e[1])}if(r){t.add(r);let e=r.split(`/`);e.length===2&&e[1]&&t.add(e[1])}return r&&i&&t.add(i+`/`+r),t}function AO(e){if(!e)return``;let t=String(e.provider||``).trim(),n=String(e.model||``).trim();return!t||!n||n===t||n.startsWith(t+`/`)?n:t+`/`+n}function jO(e){if(e===``||e==null)return null;let t=Number(e);return!Number.isFinite(t)||t<=0?null:t}function MO(e,t){let n={model:e},r=jO(t);return r!==null&&(n.weight=r),n}function NO(e){let t=Array.isArray(e)?e:[],n=[];for(let e of t){let t=String(e&&e.model||``).trim();t&&n.push(MO(t,e&&e.weight))}return n}function PO(e){switch(String(e||``).toLowerCase()){case`cost`:return`lowest cost`;case`round_robin`:case``:return`round robin`;default:return e}}var FO={round_robin:`Round-robin (rotate across targets; honors weights)`,cost:`Lowest cost (cheapest target per request)`,adaptive:`Adaptive (target chosen by the registered routing extension)`};function IO(e,t){let n=Array.isArray(e)?[...e]:[],r=String(t||``).trim().toLowerCase();return r&&!n.includes(r)&&n.push(r),n.map(e=>({value:e,label:FO[e]||e}))}function LO(e){let t=Array.isArray(e.targets)?e.targets:[],n=t.length>0?t[0]:{},r=t.map(e=>{let t={provider:e.provider||``,model:e.model||``};return e.weight&&(t.weight=e.weight),t});return{name:e.source,target_provider:n.provider||``,target_model:n.model||``,targets:r,strategy:e.strategy||``,session_affinity:e.session_affinity!==!1,description:e.description||``,enabled:e.enabled!==!1,managed:!!e.managed,valid:!!e.valid,resolved_model:e.resolved_model||``,provider_type:e.provider_type||``,user_paths:Array.isArray(e.user_paths)?e.user_paths:[]}}function RO(e){let t=Array.isArray(e)?e:[],n=[],r=[];for(let e of t)!e||typeof e!=`object`||(e.kind===`redirect`?n.push(LO(e)):e.kind===`policy`&&r.push({selector:e.source,provider_name:e.provider_name||``,model:e.model||``,user_paths:Array.isArray(e.user_paths)?e.user_paths:[],description:e.description||``,enabled:e.enabled!==!1,managed:!!e.managed,scope_kind:e.scope_kind||``}));return{aliases:n,policies:r}}function zO(e){if(!e)return`—`;let t=Array.isArray(e.targets)?e.targets:[];return t.length>1?t.length+` targets · `+PO(e.strategy):e.resolved_model?e.resolved_model:e.target_provider?e.target_provider+`/`+e.target_model:e.target_model||`—`}function BO(e){return e?e.enabled===!1?`is-disabled`:e.valid?`is-valid`:`is-invalid`:`is-invalid`}function VO(e){return e?e.enabled===!1?`Disabled`:e.valid?`Active`:`Invalid`:`Invalid`}function HO(e){return Array.isArray(e)&&e.length>0&&e.indexOf(`/`)===-1}function UO(e,t){return!t||!e?``:e.effective_enabled===!1?`is-disabled`:HO(e.user_paths)?`is-restricted`:`is-enabled`}function WO(e){if(!e)return``;let t=[];e.effective_enabled===!1&&t.push(e.default_enabled===!1?`Disabled by default`:`Disabled`);let n=Array.isArray(e.user_paths)?e.user_paths:[];return n.length>0&&t.push(`Allowed for `+n.join(`, `)),t.join(` · `)}function GO({models:e,aliases:t,virtualModelsAvailable:n,activeCategory:r}){let i=Array.isArray(e)?e:[],a=Array.isArray(t)?t:[],o=new Map;if(n)for(let e of a){let t=TO(e&&e.name);!t||e.enabled===!1||!e.valid||o.set(t,e)}let s=new Map,c=i.map(e=>{let t=EO(e),n=null;for(let t of OO(e))s.has(t)||s.set(t,e),!n&&o.has(t)&&(n=o.get(t));let r=e&&e.access?e.access:null;return{key:`model:`+t,display_name:t,secondary_name:``,provider_name:e.provider_name||``,provider_type:e.provider_type||``,model:e.model,selector:e.selector||``,is_alias:!1,alias:null,access:r,masking_alias:n,has_virtual_model:!!(n||r&&r.override),alias_state_class:``,alias_state_text:``}});if(!n)return c;for(let e of a){let t=s.get(TO(e&&e.name));if(e&&e.enabled!==!1&&e.valid&&t)continue;let n=null;for(let t of kO(e))if(n=s.get(t)||null,n)break;!n&&r&&r!==`all`||c.push({key:`alias:`+e.name,display_name:e.name,secondary_name:zO(e),provider_name:n&&n.provider_name||``,provider_type:n?n.provider_type||e.provider_type||``:e.provider_type||``,model:n?n.model:{id:e.name,object:`model`},selector:``,is_alias:!0,alias:e,access:null,masking_alias:null,source_model_exists:!!t,has_virtual_model:!0,alias_state_class:BO(e),alias_state_text:VO(e)})}return c.sort((e,t)=>e.is_alias===t.is_alias?String(e.display_name||``).localeCompare(String(t.display_name||``)):e.is_alias?-1:1)}function KO(e,t){if(!t)return e;let n=String(t).toLowerCase();return e.filter(e=>[e.display_name,e.secondary_name,e.provider_name,e.provider_type,e.model&&e.model.owned_by,e.alias&&e.alias.description,e.alias&&e.alias_state_text,e.model&&e.model.metadata&&e.model.metadata.modes?e.model.metadata.modes.join(`,`):``,e.model&&e.model.metadata&&e.model.metadata.categories?e.model.metadata.categories.join(`,`):``].some(e=>String(e||``).toLowerCase().includes(n)))}function qO(e,t){return String(e||``).trim()||String(t||``).trim()||`Unassigned`}function JO(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return!r||r===n?``:r}function YO(e){let t=String(e||``).trim();return t?t+`/`:``}function XO(e){let t=Array.isArray(e)?e:[],n=t.filter(e=>e&&!e.is_alias).length,r=t.filter(e=>e&&e.is_alias).length,i=[];return n>0&&i.push(n+(n===1?` model`:` models`)),r>0&&i.push(r+(r===1?` alias`:` aliases`)),i.join(` · `)}function ZO(e,t,n){let r=String(t||``).trim(),i=String(n||``).trim();for(let t of Array.isArray(e)?e:[]){let e=String(t&&t.provider_name||``).trim(),n=String(t&&t.provider_type||``).trim();if(!(r&&e!==r)&&!(!r&&i&&n!==i)&&t&&t.access)return t.access.default_enabled!==!1}return!0}function QO(e){for(let t of Array.isArray(e)?e:[])if(t&&t.access)return t.access.default_enabled!==!1;return!0}function $O(e,t){let n=String(t||``).trim();if(!n)return null;for(let t of Array.isArray(e)?e:[])if(String(t&&t.selector||``).trim()===n)return t;return null}function ek(e,t,n,r){let i=YO(t),a=r&&r.get(`/`)||null,o=i&&r&&r.get(i)||null,s=ZO(e,t,n),c=o||a,l=c&&Array.isArray(c.user_paths)?Array.from(new Set(c.user_paths)).sort():[];return{selector:i,default_enabled:s,effective_enabled:c?c.enabled!==!1:s,user_paths:l,override:o}}function tk(e,t,n){if(!Array.isArray(e)||e.length===0)return[];let r=new Map;for(let e of Array.isArray(n)?n:[]){let t=String(e&&e.selector||``).trim();t&&r.set(t,e)}let i=[],a=new Map;for(let t of e){if(t&&t.is_alias){i.push(t);continue}let e=String(t&&t.provider_name||``).trim(),n=String(t&&t.provider_type||``).trim(),r=`provider-group:`+(e||n||`unassigned`);a.has(r)||a.set(r,{key:r,provider_name:e,provider_type:n,display_name:qO(e,n),type_label:JO(e,n),rows:[]});let o=a.get(r);!o.provider_name&&e&&(o.provider_name=e),!o.provider_type&&n&&(o.provider_type=n),o.display_name=qO(o.provider_name,o.provider_type),o.type_label=JO(o.provider_name,o.provider_type),o.rows.push(t)}let o=Array.from(a.values()).map(e=>{let n=ek(t,e.provider_name,e.provider_type,r);return{...e,access:n,access_summary:WO(n),item_count_label:XO(e.rows)}}).sort((e,t)=>String(e.display_name||``).localeCompare(String(t.display_name||``)));return i.length>0&&o.unshift({key:`virtual-model-group`,is_virtual_models:!0,provider_name:``,provider_type:``,display_name:`Virtual models`,type_label:``,rows:i,access:{selector:``},access_summary:``,item_count_label:XO(i)}),o}function nk(e,t){let n=$O(t,`/`),r=QO(e),i=n&&Array.isArray(n.user_paths)?n.user_paths:[];return{key:`scope-global`,is_alias:!1,display_name:`all providers and models`,access:{selector:`/`,default_enabled:r,effective_enabled:n?n.enabled!==!1:r,user_paths:i,override:n}}}function rk(e){return e?String(e.access&&e.access.selector||``).trim()||String(e.override_selector||``).trim()||EO(e):``}function ik(e){if(!e)return[];let t=[];return e.is_alias?t.push(`alias-row`,BO(e.alias)):e.has_virtual_model&&t.push(`alias-row`,`is-valid`),!e.is_alias&&e.masking_alias&&t.push(`masked-model-row`),!e.is_alias&&e.access&&e.access.effective_enabled===!1&&t.push(`model-access-disabled-row`),t}function ak(e){return!!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)}function ok(e){return!!(e&&!e.is_alias&&e.masking_alias&&e.masking_alias.name&&!e.masking_alias.managed)}function sk(e){return e&&e.is_alias&&e.alias&&e.alias.name?`alias-row-`+String(e.alias.name).replace(/[^a-zA-Z0-9_-]+/g,`-`):``}function ck(e){return e?e.is_alias?!!(e.alias&&e.alias.managed):!!(e.access&&e.access.override&&e.access.override.managed||e.masking_alias&&e.masking_alias.managed):!1}function lk(e){return!!(e&&e.override)}function uk(e){return e?`table-action-btn-active`:``}function dk(e,t){let n=`Edit `+String(e||`model access`);return t?n+` (virtual model exists)`:n}function fk(){return{source:``,target_model:``,target_weight:1,targets:[],strategy:`round_robin`,session_affinity:!0,user_paths:``,description:``,enabled:!0}}function pk(e){return String(e&&e.target_model||``).trim()!==``}function mk(e){return String(e&&e.target_model||``).trim()?!0:NO(e&&e.targets).length>0}function hk(e){return!!e&&Array.isArray(e.targets)&&e.targets.length>0}function gk(e){return hk(e)&&String(e&&e.strategy||``).toLowerCase()!==`cost`}function _k(e){let t=Array.isArray(e.targets)?e.targets:[];if(t.length>0){let n=t.shift();e.target_model=n.model||``,e.target_weight=n.weight||1;return}e.target_model=``,e.target_weight=1}function vk(e){let t=Array.isArray(e&&e.targets)?e.targets:[];return t.length>0?{primaryModel:AO(t[0]),primaryWeight:t[0].weight||1,extraTargets:t.slice(1).map(e=>({model:AO(e),weight:e.weight||1}))}:{primaryModel:e&&e.target_provider?e.target_provider+`/`+e.target_model:e&&e.target_model||``,primaryWeight:1,extraTargets:[]}}function yk(e){return String(e||``).split(/\r?\n|,/).map(e=>String(e||``).trim()).filter(Boolean)}function bk(e,t,n){let r=String(e&&e.source||``).trim(),i=String(e&&e.target_model||``).trim(),a=NO(e&&e.targets),o=mk(e),s=String(t||``).trim(),c=n===`edit`&&!!s&&r!==s,l={source:r,user_paths:yk(e&&e.user_paths),description:String(e&&e.description||``).trim(),enabled:!!(e&&e.enabled)};if(c&&(l.old_source=s),o){let t=[];if(i&&t.push(MO(i,e.target_weight)),t.push(...a),t.length>1){let n=e.strategy||`round_robin`;l.targets=n===`cost`?t.map(e=>({model:e.model})):t,l.strategy=n,e&&e.session_affinity===!1&&(l.session_affinity=!1)}else l.target_model=t[0].model}return{payload:l,source:r,isRedirect:o,isRename:c}}function xk(e){let t={source:e.name,description:String(e.description||``).trim(),user_paths:Array.isArray(e.user_paths)?e.user_paths:[],enabled:e.enabled===!1},n=Array.isArray(e.targets)?e.targets:[];return n.length>1?(t.strategy=e.strategy||`round_robin`,e.session_affinity===!1&&(t.session_affinity=!1),t.targets=t.strategy===`cost`?n.map(e=>({model:AO(e)})):n.map(e=>MO(AO(e),e.weight))):n.length===1?t.target_model=AO(n[0]):t.target_model=e.target_provider?e.target_provider+`/`+e.target_model:e.target_model,t}function Sk(e,t,n){let r=n||{},i=r.effective_enabled===!1,a=t&&Array.isArray(t.user_paths)?t.user_paths:[],o=`PUT`,s;return i===!1?s={source:e,enabled:!1,user_paths:a}:t&&a.length===0&&r.default_enabled!==!1?(o=`DELETE`,s={source:e}):s={source:e,enabled:!0,user_paths:a},{method:o,payload:s,desired:i}}function Ck(e,t,n){let r=Math.max(1,Number(t||75)),i=Math.min(n,e+r);return{limit:i,rendering:iGO({models:Kc.models,aliases:this.aliases,virtualModelsAvailable:this.virtualModelsAvailable,activeCategory:Kc.activeCategory}));get displayModels(){return L(this.#T)}set displayModels(e){j(this.#T,e)}#E=k(()=>tk(this.displayModels,Kc.models,this.modelOverrideViews));get displayModelGroups(){return L(this.#E)}set displayModelGroups(e){j(this.#E,e)}#D=k(()=>KO(this.displayModels,Kc.filter));get filteredDisplayModels(){return L(this.#D)}set filteredDisplayModels(e){j(this.#D,e)}#O=k(()=>{let e=this.filteredDisplayModels,t=Math.max(0,Math.min(Number(this.modelRenderLimit||0),e.length));return!Kc.filter&&t>=this.displayModels.length?this.displayModelGroups:tk(e.slice(0,t),Kc.models,this.modelOverrideViews)});get filteredDisplayModelGroups(){return L(this.#O)}set filteredDisplayModelGroups(e){j(this.#O,e)}#k=k(()=>nk(Kc.models,this.modelOverrideViews));get globalScopeRow(){return L(this.#k)}set globalScopeRow(e){j(this.#k,e)}modelsBusy(){return!!(Kc.loading||this.modelsRendering)}modelLoadingText(){if(Kc.loading)return this.displayModels.length>0?`Refreshing models...`:`Loading models...`;let e=this.filteredDisplayModels.length;return`Rendering models... `+Math.min(Number(this.modelRenderLimit||0),e)+` / `+e}restartModelRendering(e){let t=++this.#a,n=wk(this.modelRenderBatchSize,e);this.modelRenderLimit=n.limit,this.modelsRendering=n.rendering,n.rendering&&this.#A(t)}stopModelRendering(){this.#a++,this.modelsRendering=!1}#A(e){let t=()=>{if(e!==this.#a)return;let t=Ck(this.modelRenderLimit,this.modelRenderBatchSize,this.filteredDisplayModels.length);this.modelRenderLimit=t.limit,this.modelsRendering=t.rendering,t.rendering&&this.#A(e)};typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>setTimeout(t,0)):setTimeout(t,0)}async fetchVirtualModels(){this.aliasLoading=!0,this.aliasError=``;try{let e=await Es(`/admin/virtual-models`,{label:`virtual models`});if(e.status===503){this.virtualModelsAvailable=!1,this.aliases=[],this.modelOverrideViews=[];return}if(e.stale)return;if(this.virtualModelsAvailable=!0,!e.ok){this.aliases=[],this.modelOverrideViews=[];return}let{aliases:t,policies:n}=RO(e.data);this.aliases=t,this.modelOverrideViews=n}catch(e){console.error(`Failed to fetch virtual models:`,e),this.aliases=[],this.modelOverrideViews=[],this.aliasError=`Unable to load virtual models.`}finally{this.aliasLoading=!1}}qualifiedModelName(e){return EO(e)}findModelOverrideView(e){return $O(this.modelOverrideViews,e)}hasGlobalModelOverride(){return!!this.findModelOverrideView(`/`)}findExistingAliasByName(e){let t=TO(e);if(!t)return null;for(let e of this.aliases)if(TO(e&&e.name)===t)return e;return null}findConcreteModelByName(e){let t=TO(e);if(!t)return null;for(let e of Kc.models)if(OO(e).has(t))return e;return null}rowToggleEnabled(e){return e?e.is_alias?e.alias&&e.alias.enabled!==!1:!!(e.access&&e.access.effective_enabled!==!1):!1}rowToggleLabel(e){return this.rowTogglingKey&&this.rowTogglingKey===e.key?`Updating...`:this.rowToggleRestricted(e)?`Restricted`:this.rowToggleEnabled(e)?`Enabled`:`Disabled`}rowToggleRestricted(e){return!!e&&!e.is_alias&&UO(e.access,this.virtualModelsAvailable)===`is-restricted`}rowToggleAriaLabel(e){if(!e)return``;let t=this.rowToggleEnabled(e)?`Disable `:`Enable `,n;return n=e.is_alias?`alias `+String(e.alias&&e.alias.name||``):String(e.display_name||e.access&&e.access.selector||`model`),t+n.trim()}async toggleRowEnabled(e){if(this.virtualModelsAvailable&&!(!e||this.rowTogglingKey===e.key)){if(ck(e)){dc.success(`This virtual model is managed by configuration and is read-only.`);return}if(e.is_alias){await this.toggleAliasRow(e);return}await this.toggleModelRow(e)}}async toggleAliasRow(e){let t=e.alias;if(!t||!t.name)return;this.rowTogglingKey=e.key;let n=xk(t);try{let e=await Ds(`/admin/virtual-models`,`PUT`,n,{label:`alias state`});if(e.status===503){this.virtualModelsAvailable=!1,dc.error(`Virtual models feature is unavailable.`);return}if(e.stale)return;if(!e.ok){dc.error(e.status===401?`Authentication required.`:Ss(e,`Failed to update alias state.`));return}dc.success(n.enabled?`Alias enabled.`:`Alias disabled.`),this.fetchVirtualModels()}catch(e){console.error(`Failed to toggle alias state:`,e),dc.error(`Failed to update alias state.`)}finally{this.rowTogglingKey=``}}async toggleModelRow(e){let t=rk(e);if(!t)return;let{method:n,payload:r,desired:i}=Sk(t,this.findModelOverrideView(t),e.access||{});this.rowTogglingKey=e.key;try{let e=await Ds(`/admin/virtual-models`,n,r,{label:`model access`});if(e.status===503){this.virtualModelsAvailable=!1,dc.error(`Virtual models feature is unavailable.`);return}if(!(n===`DELETE`&&e.status===404)){if(e.stale)return;if(!e.ok){dc.error(e.status===401?`Authentication required.`:Ss(e,`Failed to update model access.`));return}}dc.success(i?`Model enabled.`:`Model disabled.`),Promise.all([Kc.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to toggle model access:`,e),dc.error(`Failed to update model access.`)}finally{this.rowTogglingKey=``}}async removeAliasRow(e){if(!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)||this.rowDeletingKey)return;let t=String(e.alias.name||``).trim();t&&await this.mutateVirtualModelRow({rowKey:e.key,confirmMessage:`Remove the virtual model alias "`+t+`"?`,method:`DELETE`,payload:{source:t},operation:`virtual model`,failureMessage:`Failed to remove virtual model.`,notice:`Virtual model removed.`,ignoreNotFound:!0})}async removeRedirectRow(e){let t=e&&e.masking_alias;if(!(e&&!e.is_alias&&t&&t.name&&!t.managed)||this.rowDeletingKey)return;let n=String(t.name||``).trim();n&&await this.mutateVirtualModelRow({rowKey:e.key,confirmMessage:`Remove the redirect for "`+n+`"? Other virtual model settings will be preserved.`,method:`PUT`,payload:{source:n,user_paths:Array.isArray(t.user_paths)?t.user_paths:[],description:String(t.description||``).trim(),enabled:t.enabled!==!1},operation:`virtual model redirect`,failureMessage:`Failed to remove redirect.`,notice:`Redirect removed. Other virtual model settings were preserved.`})}async mutateVirtualModelRow(e){if(!this.rowDeletingKey&&window.confirm(e.confirmMessage)){this.rowDeletingKey=e.rowKey;try{let t=await Ds(`/admin/virtual-models`,e.method,e.payload,{label:e.operation});if(t.status===503){this.virtualModelsAvailable=!1,dc.error(`Virtual models feature is unavailable.`);return}if(!(e.ignoreNotFound&&t.status===404)){if(t.stale)return;if(!t.ok){dc.error(t.status===401?`Authentication required.`:Ss(t,e.failureMessage));return}}this.virtualModelsAvailable=!0,dc.success(e.notice),Promise.all([Kc.fetchModels(),this.fetchVirtualModels()])}catch(t){console.error(e.failureMessage,t),dc.error(e.failureMessage)}finally{this.rowDeletingKey=``}}}addVmTarget(){Array.isArray(this.vmForm.targets)||(this.vmForm.targets=[]),this.vmForm.targets.push({model:``,weight:1})}removeVmTarget(e){Array.isArray(this.vmForm.targets)&&this.vmForm.targets.splice(e,1)}removePrimaryTarget(){_k(this.vmForm)}vmFormHasPrimaryTarget(){return pk(this.vmForm)}vmFormShowStrategy(){return hk(this.vmForm)}vmStrategyOptions(){return IO(js.virtualModelStrategies(),this.vmForm.strategy)}vmFormShowWeights(){return gk(this.vmForm)}vmFormToggleRestricted(){return!!(this.vmForm&&this.vmForm.enabled)&&HO(yk(this.vmForm.user_paths))}vmFormToggleLabel(){return!this.vmForm||!this.vmForm.enabled?`Disabled`:this.vmFormToggleRestricted()?`Restricted`:`Enabled`}resetVirtualModelForm(){this.vmFormError=``,this.vmFormHelpOpen=!1,this.vmFormUserPathsHelpOpen=!1,this.vmSubmitting=!1,this.vmDeleting=!1,this.vmFormHasExisting=!1,this.vmFormDefaultEnabled=!0,this.vmFormEffectiveEnabled=!0,this.vmFormDisplayName=``,this.vmFormSourceLocked=!1,this.vmFormOriginalSource=``,this.vmFormManaged=!1,this.vmForm=fk()}closeVirtualModelForm(){this.vmFormOpen=!1,this.resetVirtualModelForm()}openVirtualModelCreate(e){this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`create`,this.vmFormSourceLocked=!1,this.vmFormDisplayName=`New virtual model`,e&&e.model&&e.model.id&&(this.vmForm.target_model=EO(e))}openVirtualModelEditAlias(e){if(!e)return;this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!1,this.vmFormHasExisting=!0,this.vmFormManaged=!!e.managed,this.vmFormOriginalSource=e.name||``,this.vmFormDisplayName=e.name||``,this.vmFormDefaultEnabled=QO(Kc.models),this.vmFormEffectiveEnabled=e.enabled!==!1;let{primaryModel:t,primaryWeight:n,extraTargets:r}=vk(e);this.vmForm={source:e.name||``,target_model:t,target_weight:n,targets:r,strategy:e.strategy||`round_robin`,session_affinity:e.session_affinity!==!1,user_paths:(Array.isArray(e.user_paths)?e.user_paths:[]).join(` +`),description:e.description||``,enabled:e.enabled!==!1}}openVirtualModelEditModel(e){if(!e||e.is_alias)return;let t=e.access||{},n=t.override||null,r=n&&Array.isArray(n.user_paths)?n.user_paths:Array.isArray(t.user_paths)?t.user_paths:[],i=rk(e);this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!0,this.vmFormHasExisting=!!n,this.vmFormOriginalSource=i;let a=n?n.enabled!==!1:t.effective_enabled!==!1;this.vmFormDefaultEnabled=t.default_enabled!==!1,this.vmFormEffectiveEnabled=a,this.vmFormManaged=!!(n&&n.managed),this.vmFormDisplayName=e.access_display_name||e.display_name||i||``,this.vmForm={source:i,target_model:``,target_weight:``,targets:[],strategy:`round_robin`,user_paths:r.join(` +`),description:n&&n.description?n.description:``,enabled:a}}openGlobalModelOverrideEdit(){let e=this.findModelOverrideView(`/`),t=e&&Array.isArray(e.user_paths)?e.user_paths:[],n=QO(Kc.models);this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!0,this.vmFormHasExisting=!!e,this.vmFormOriginalSource=`/`,this.vmFormDefaultEnabled=n,this.vmFormEffectiveEnabled=e?e.enabled!==!1:n,this.vmFormManaged=!!(e&&e.managed),this.vmFormDisplayName=`All providers and models`,this.vmForm={source:`/`,target_model:``,target_weight:``,targets:[],strategy:`round_robin`,user_paths:t.join(` +`),description:e&&e.description?e.description:``,enabled:e?e.enabled!==!1:n}}openProviderOverrideEdit(e){!e||!e.access||!e.access.selector||this.openVirtualModelEditModel({display_name:e.display_name,access_display_name:`All models in `+e.display_name,provider_name:e.provider_name,provider_type:e.provider_type,access:e.access,override_selector:e.access.selector,is_alias:!1})}async submitVirtualModelForm(){if(this.vmFormManaged){this.vmFormError=`This virtual model is managed by configuration and cannot be edited here.`;return}let{payload:e,source:t,isRedirect:n,isRename:r}=bk(this.vmForm,this.vmFormOriginalSource,this.vmFormMode);if(!t){this.vmFormError=`Source is required.`;return}if(this.vmFormError=``,this.vmFormMode!==`edit`){let e=this.findExistingAliasByName(t),r=e?null:this.findModelOverrideView(t);if(e||r){let n=e?`A virtual model named "`+e.name+`" already exists. Saving will update that virtual model. Continue?`:`An access policy for "`+t+`" already exists. Saving will update that virtual model. Continue?`;if(!window.confirm(n)){this.vmFormError=`Choose a different source or edit the existing virtual model.`;return}}else if(n){let e=this.findConcreteModelByName(t);if(e){let t=EO(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(`A model named "`+t+`" already exists. Creating this alias will mask that model in the list. Continue?`)){this.vmFormError=`Choose a different source to avoid masking an existing model.`;return}}}}else if(r){let e=(this.aliases||[]).find(e=>e&&e.name===t)||null,r=e?null:this.findModelOverrideView(t);if(e||r){this.vmFormError=`A virtual model for "`+t+`" already exists. Choose a different source.`;return}if(n){let e=this.findConcreteModelByName(t);if(e){let t=EO(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(`A model named "`+t+`" already exists. Renaming to that name will mask the model in the list. Continue?`)){this.vmFormError=`Choose a different source to avoid masking an existing model.`;return}}}}this.vmSubmitting=!0;try{let t=await Ds(`/admin/virtual-models`,`PUT`,e,{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=`Virtual models feature is unavailable.`;return}if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?`Authentication required.`:Ss(t,`Failed to save virtual model.`);return}let r=!n&&t.status===204;this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),dc.success(n?`Alias saved.`:r?`Model access reset to inherited/default.`:`Model access saved.`),Promise.all([Kc.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to save virtual model:`,e),this.vmFormError=`Failed to save virtual model.`}finally{this.vmSubmitting=!1}}async deleteVirtualModel(){if(this.vmFormManaged){this.vmFormError=`This virtual model is managed by configuration and cannot be removed here.`;return}let e=String(this.vmForm.source||this.vmFormOriginalSource||``).trim();if(!(!e||!this.vmFormHasExisting)&&window.confirm(`Remove the virtual model for "`+e+`"? This reverts to inherited/default behavior.`)){this.vmDeleting=!0,this.vmFormError=``;try{let t=await Ds(`/admin/virtual-models`,`DELETE`,{source:e},{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=`Virtual models feature is unavailable.`;return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?`Authentication required.`:Ss(t,`Failed to remove virtual model.`);return}}this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),dc.success(`Virtual model removed.`),Promise.all([Kc.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to delete virtual model:`,e),this.vmFormError=`Failed to remove virtual model.`}finally{this.vmDeleting=!1}}}},Ek=[{value:`input_per_mtok`,label:`Input $/MTok`,group:`Tokens`},{value:`output_per_mtok`,label:`Output $/MTok`,group:`Tokens`},{value:`cached_input_per_mtok`,label:`Cached input $/MTok`,group:`Tokens`},{value:`cache_write_per_mtok`,label:`Cache write $/MTok`,group:`Tokens`},{value:`reasoning_output_per_mtok`,label:`Reasoning output $/MTok`,group:`Tokens`},{value:`batch_input_per_mtok`,label:`Batch input $/MTok`,group:`Batch`},{value:`batch_output_per_mtok`,label:`Batch output $/MTok`,group:`Batch`},{value:`audio_input_per_mtok`,label:`Audio input $/MTok`,group:`Audio`},{value:`audio_output_per_mtok`,label:`Audio output $/MTok`,group:`Audio`},{value:`per_image`,label:`$/Image`,group:`Image`},{value:`input_per_image`,label:`Input $/Image`,group:`Image`},{value:`per_second_input`,label:`Input $/Second`,group:`Audio/Video`},{value:`per_second_output`,label:`Output $/Second`,group:`Video`},{value:`per_character_input`,label:`$/Character`,group:`Audio`},{value:`per_page`,label:`$/Page`,group:`Utility`},{value:`per_request`,label:`$/Request`,group:`Utility`}];function Dk(e){let t=Ek.find(t=>t.value===e);return t?t.label:String(e||``).replace(/_/g,` `)}function Ok(e){return e&&typeof e==`object`?JSON.parse(JSON.stringify(e)):{}}function kk(e,t){let n=Ok(e),r=t&&t.pricing?t.pricing:t;if(!r||typeof r!=`object`)return n;for(let e of Ek)r[e.value]!==null&&r[e.value]!==void 0&&(n[e.value]=Number(r[e.value]));return Array.isArray(r.tiers)&&r.tiers.length>0&&(n.tiers=Ok(r.tiers)),n}function Ak(e){switch(String(e||``).trim()){case`config_yaml`:return`config.yaml`;case`model_registry`:return`Model registry`;default:return e?String(e):`Unknown`}}function jk(e){let t=e&&e.pricing?e.pricing:{},n=e&&e.pricing_sources&&typeof e.pricing_sources==`object`?e.pricing_sources:{},r={};for(let e of Ek)t[e.value]!==null&&t[e.value]!==void 0&&(r[e.value]=Ak(n[e.value]||`model_registry`));return r}function Mk(e){let t=String(e&&e.selector||``).trim();return t?`Dashboard/API override (`+t+`)`:`Dashboard/API override`}function Nk(e){let t=String(e||``).trim();return t?t+`/`:``}function Pk(e){return String(e&&e.model&&e.model.id||``).trim()}function Fk(e){let t=String(e&&e.provider_name||``).trim(),n=Pk(e);return t&&n?t+`/`+n:n}function Ik(e){return Pk(e)}function Lk(e){let t=new Map;for(let n of Array.isArray(e)?e:[]){let e=String(n&&n.selector||``).trim();e&&t.set(e,n)}return t}function Rk(e,t){let n=String(t||``).trim();return n&&Lk(e).get(n)||null}function zk(e,t,n){let r=Lk(e),i=Fk(t),a=Ik(t),o=Nk(t&&t.provider_name),s=String(n||``).trim();for(let e of[i,a,o,`/`]){if(!e||e===s)continue;let t=r.get(e);if(t)return t}return null}function Bk(e,t,n){let r=e&&e.model&&e.model.metadata?e.model.metadata:null,i=Ok(r&&r.pricing),a=jk(r),o=zk(t,e,n),s=o&&o.pricing?o.pricing:null;if(s){let e=Mk(o);for(let t of Ek)s[t.value]!==null&&s[t.value]!==void 0&&(i[t.value]=Number(s[t.value]),a[t.value]=e);Array.isArray(s.tiers)&&s.tiers.length>0&&(i.tiers=Ok(s.tiers),a.tiers=e)}return{pricing:i,sources:a}}function Vk(e,t){let n=e&&e.pricing?e.pricing:{},r=[];for(let e of Ek)n[e.value]!==null&&n[e.value]!==void 0&&r.push({id:t(),field:e.value,value:String(n[e.value])});return r}function Hk(e,t){let n=new Set;for(let r of Array.isArray(e)?e:[]){if(t&&r.id===t)continue;let e=String(r.field||``).trim();e&&n.add(e)}return n}function Uk(e,t){let n=Hk(e,t&&t.id);return Ek.filter(e=>e.value===(t&&t.field)||!n.has(e.value))}function Wk(e,t){let n={},r=new Set;for(let t of Array.isArray(e)?e:[]){let e=String(t.field||``).trim();if(!e)return{error:`Choose a price type for every row.`};if(r.has(e))return{error:`Each price type can only be used once.`};r.add(e);let i=String(t.value||``).trim();if(i===``)return{error:`Enter a value for `+Dk(e)+`.`};let a=Number(i);if(!Number.isFinite(a)||a<0)return{error:`Pricing values must be numbers greater than or equal to 0.`};n[e]=a}let i=Array.isArray(t)?t:[];return i.length>0&&(n.tiers=Ok(i)),Object.keys(n).length===0?{error:`Add at least one pricing field before saving.`}:{pricing:n}}function Gk(e,t,n){let r=e||{},i=t||{},a=n||{},o=kk(r,a);return Ek.map(e=>{let t=a[e.value]!==null&&a[e.value]!==void 0,n=r[e.value]!==null&&r[e.value]!==void 0;return{field:e.value,label:e.label,value:o[e.value],source:t?`Form/API value`:n?i[e.value]||`Model registry`:`Unset`}}).filter(e=>e.source!==`Unset`||e.value!==void 0)}var Kk=new class{#e=A(!0);get modelPricingOverridesAvailable(){return L(this.#e)}set modelPricingOverridesAvailable(e){j(this.#e,e,!0)}#t=A(M([]));get modelPricingOverrideViews(){return L(this.#t)}set modelPricingOverrideViews(e){j(this.#t,e,!0)}#n=A(``);get modelPricingOverrideError(){return L(this.#n)}set modelPricingOverrideError(e){j(this.#n,e,!0)}#r=A(!1);get modelPricingOverrideFormOpen(){return L(this.#r)}set modelPricingOverrideFormOpen(e){j(this.#r,e,!0)}#i=A(!1);get modelPricingOverrideSubmitting(){return L(this.#i)}set modelPricingOverrideSubmitting(e){j(this.#i,e,!0)}#a=A(!1);get modelPricingOverrideFormHasExistingOverride(){return L(this.#a)}set modelPricingOverrideFormHasExistingOverride(e){j(this.#a,e,!0)}#o=A(``);get modelPricingOverrideFormDisplayName(){return L(this.#o)}set modelPricingOverrideFormDisplayName(e){j(this.#o,e,!0)}#s=A(``);get modelPricingOverrideFormScope(){return L(this.#s)}set modelPricingOverrideFormScope(e){j(this.#s,e,!0)}#c=A(M([]));get modelPricingOverrideFormScopeOptions(){return L(this.#c)}set modelPricingOverrideFormScopeOptions(e){j(this.#c,e,!0)}#l=A(null);get modelPricingOverrideFormRow(){return L(this.#l)}set modelPricingOverrideFormRow(e){j(this.#l,e,!0)}#u=A(null);get modelPricingOverrideFormBasePricing(){return L(this.#u)}set modelPricingOverrideFormBasePricing(e){j(this.#u,e,!0)}#d=A(null);get modelPricingOverrideFormBasePricingSources(){return L(this.#d)}set modelPricingOverrideFormBasePricingSources(e){j(this.#d,e,!0)}#f=A(M([]));get modelPricingOverrideFormPreservedTiers(){return L(this.#f)}set modelPricingOverrideFormPreservedTiers(e){j(this.#f,e,!0)}#p=A(M([]));get modelPricingOverrideRows(){return L(this.#p)}set modelPricingOverrideRows(e){j(this.#p,e,!0)}#m=A(M({selector:``}));get modelPricingOverrideForm(){return L(this.#m)}set modelPricingOverrideForm(e){j(this.#m,e,!0)}_modelPricingOverrideRowID=0;pricingFieldOptions(){return Ek}pricingFieldLabel(e){return Dk(e)}async fetchModelPricingOverrides(){this.modelPricingOverrideError=``;try{let e=await Es(`/admin/model-pricing-overrides`,{label:`model pricing overrides`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideViews=[];return}if(e.stale)return;if(this.modelPricingOverridesAvailable=!0,!e.ok){this.modelPricingOverrideViews=[];return}this.modelPricingOverrideViews=Array.isArray(e.data)?e.data:[]}catch(e){console.error(`Failed to fetch model pricing overrides:`,e),this.modelPricingOverrideViews=[],this.modelPricingOverrideError=`Unable to load model pricing overrides.`}}findModelPricingOverrideView(e){return Rk(this.modelPricingOverrideViews,e)}hasGlobalPricingOverride(){return!!this.findModelPricingOverrideView(`/`)}hasProviderPricingOverride(e){return!!this.findModelPricingOverrideView(Nk(e&&e.provider_name))}hasModelPricingOverride(e){return!!this.findModelPricingOverrideView(Fk(e))}modelPricingButtonClass(e){return e?`table-action-btn-active`:``}modelPricingButtonLabel(e,t){let n=`Edit `+String(e||`model pricing`);return t?n+` (override exists)`:n}modelRowPricing(e){return Bk(e,this.modelPricingOverrideViews).pricing}openGlobalPricingOverrideEdit(){this.openModelPricingOverrideForm({displayName:`All providers and models`,selector:`/`,scope:`global`,scopeOptions:[{value:`global`,label:`All providers and models`,selector:`/`}],row:null})}openProviderPricingOverrideEdit(e){let t=Nk(e&&e.provider_name);t&&this.openModelPricingOverrideForm({displayName:`All models in `+(e.display_name||e.provider_name||t),selector:t,scope:`provider`,scopeOptions:[{value:`provider`,label:`Provider`,selector:t}],row:null})}openModelPricingOverrideEdit(e){if(!e||e.is_alias)return;let t=Fk(e),n=Ik(e),r=[{value:`exact`,label:`This provider and model`,selector:t}];n&&n!==t&&r.push({value:`model`,label:`This model across providers`,selector:n}),this.openModelPricingOverrideForm({displayName:e.display_name||t,selector:t,scope:`exact`,scopeOptions:r,row:e})}openModelPricingOverrideForm(e){let t=e||{};this.modelPricingOverrideFormOpen=!0,this.modelPricingOverrideError=``,this.modelPricingOverrideFormDisplayName=t.displayName||t.selector||`Pricing`,this.modelPricingOverrideFormScope=t.scope||``,this.modelPricingOverrideFormScopeOptions=Array.isArray(t.scopeOptions)?t.scopeOptions:[],this.modelPricingOverrideFormRow=t.row||null,this.modelPricingOverrideForm={selector:t.selector||``},this.loadModelPricingOverrideFormSelector(t.selector||``)}loadModelPricingOverrideFormSelector(e){e=String(e||``).trim();let t=this.findModelPricingOverrideView(e);this.modelPricingOverrideFormHasExistingOverride=!!t,this.modelPricingOverrideRows=Vk(t,()=>this.nextModelPricingOverrideRowID()),this.modelPricingOverrideFormPreservedTiers=t&&t.pricing&&Array.isArray(t.pricing.tiers)?Ok(t.pricing.tiers):[],this.modelPricingOverrideRows.length===0&&this.modelPricingOverrideFormPreservedTiers.length===0&&this.addModelPricingOverrideRow();let n=this.modelPricingOverrideFormRow,r=n?Bk(n,this.modelPricingOverrideViews,e):{pricing:{},sources:{}};this.modelPricingOverrideFormBasePricing=r.pricing,this.modelPricingOverrideFormBasePricingSources=r.sources}setModelPricingOverrideScope(e){this.modelPricingOverrideFormScope=e;let t=this.modelPricingOverrideFormScopeOptions.find(t=>t.value===e);t&&(this.modelPricingOverrideForm.selector=t.selector,this.loadModelPricingOverrideFormSelector(t.selector))}nextModelPricingOverrideRowID(){return this._modelPricingOverrideRowID=(this._modelPricingOverrideRowID||0)+1,`pricing-row-`+this._modelPricingOverrideRowID}availablePricingFieldOptions(e){return Uk(this.modelPricingOverrideRows,e)}addModelPricingOverrideRow(){let e=Hk(this.modelPricingOverrideRows),t=Ek.find(t=>!e.has(t.value))||Ek[0];t&&this.modelPricingOverrideRows.push({id:this.nextModelPricingOverrideRowID(),field:t.value,value:``})}removeModelPricingOverrideRow(e){this.modelPricingOverrideRows=this.modelPricingOverrideRows.filter(t=>t.id!==e.id),this.modelPricingOverrideRows.length===0&&this.modelPricingOverrideFormPreservedTiers.length===0&&this.addModelPricingOverrideRow()}modelPricingOverridePayload(){return Wk(this.modelPricingOverrideRows,this.modelPricingOverrideFormPreservedTiers)}modelPricingOverrideDraftPricing(){let e=this.modelPricingOverridePayload();return e&&e.pricing?e.pricing:{}}modelPricingEffectivePreviewRows(){return Gk(this.modelPricingOverrideFormBasePricing,this.modelPricingOverrideFormBasePricingSources,this.modelPricingOverrideDraftPricing())}closeModelPricingOverrideForm(){this.modelPricingOverrideFormOpen=!1,this.modelPricingOverrideSubmitting=!1,this.modelPricingOverrideError=``,this.modelPricingOverrideFormHasExistingOverride=!1,this.modelPricingOverrideFormDisplayName=``,this.modelPricingOverrideFormScope=``,this.modelPricingOverrideFormScopeOptions=[],this.modelPricingOverrideFormRow=null,this.modelPricingOverrideFormBasePricing=null,this.modelPricingOverrideFormBasePricingSources=null,this.modelPricingOverrideFormPreservedTiers=[],this.modelPricingOverrideRows=[],this.modelPricingOverrideForm={selector:``}}async submitModelPricingOverrideForm(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!e){this.modelPricingOverrideError=`Model pricing selector is required.`;return}let t=this.modelPricingOverridePayload();if(t.error){this.modelPricingOverrideError=t.error;return}let n={selector:e,...t};this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let e=await Ds(`/admin/model-pricing-overrides`,`PUT`,n,{label:`model pricing override`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=`Model pricing overrides feature is unavailable.`;return}if(e.stale)return;if(!e.ok){this.modelPricingOverrideError=e.status===401?`Authentication required.`:Ss(e,`Failed to save model pricing.`);return}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),dc.success(`Model pricing saved.`),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to save model pricing override:`,e),this.modelPricingOverrideError=`Failed to save model pricing.`}finally{this.modelPricingOverrideSubmitting=!1}}async deleteModelPricingOverride(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!(!e||!this.modelPricingOverrideFormHasExistingOverride)&&window.confirm(`Remove the model pricing override for "`+e+`"?`)){this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let t=await Ds(`/admin/model-pricing-overrides`,`DELETE`,{selector:e},{label:`model pricing override`});if(t.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=`Model pricing overrides feature is unavailable.`;return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.modelPricingOverrideError=t.status===401?`Authentication required.`:Ss(t,`Failed to remove model pricing override.`);return}}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),dc.success(`Model pricing override removed.`),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to delete model pricing override:`,e),this.modelPricingOverrideError=`Failed to remove model pricing override.`}finally{this.modelPricingOverrideSubmitting=!1}}}},qk=z(``);function Jk(e,t){D(t,!0);var n=qk();let r;var i=F(N(n),2),a=N(i,!0);E(i),E(n),I((e,i,o)=>{r=W(n,1,`alias-toggle`,null,r,e),n.disabled=Tk.rowTogglingKey===t.row.key||!Tk.virtualModelsAvailable,G(n,`aria-label`,i),V(a,o)},[()=>({enabled:Tk.rowToggleEnabled(t.row),restricted:Tk.rowToggleRestricted(t.row)}),()=>Tk.rowToggleAriaLabel(t.row),()=>Tk.rowToggleLabel(t.row)]),R(`click`,n,()=>Tk.toggleRowEnabled(t.row)),B(e,n),O()}Vr([`click`]);var Yk=z(`
        `);function Xk(e,t){D(t,!0);var n=Yk(),r=N(n),i=e=>{Jk(e,{get row(){return Tk.globalScopeRow}})};H(r,e=>{Tk.virtualModelsAvailable&&e(i)});var a=F(r,2),o=e=>{{let t=k(()=>Kk.modelPricingButtonLabel(`global model pricing`,Kk.hasGlobalPricingOverride())),n=k(()=>Kk.modelPricingButtonClass(Kk.hasGlobalPricingOverride()));VT(e,{get label(){return L(t)},get class(){return`table-icon-btn ${L(n)??``}`},onclick:()=>Kk.openGlobalPricingOverrideEdit(),children:(e,t)=>{q(e,{get icon(){return Ja},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(a,e=>{Kk.modelPricingOverridesAvailable&&e(o)});var s=F(a,2),c=e=>{{let t=k(()=>dk(`global model access`,Tk.hasGlobalModelOverride())),n=k(()=>uk(Tk.hasGlobalModelOverride()));VT(e,{get label(){return L(t)},get class(){return`table-icon-btn ${L(n)??``}`},onclick:()=>Tk.openGlobalModelOverrideEdit(),children:(e,t)=>{q(e,{get icon(){return po},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(s,e=>{Tk.virtualModelsAvailable&&e(c)}),E(n),B(e,n),O()}function Zk(e){return String(e&&(e.primary_model||e.source)||``).trim()}function Qk(e){return Array.isArray(e&&e.fallback_models)?e.fallback_models:Array.isArray(e&&e.targets)?e.targets:[]}function $k(e){return Array.isArray(e)?e.map(e=>({...e,source:Zk(e),targets:Qk(e)})):[]}function eA(e){let t=Qk(e);return t.length===0?`-`:t.join(`, `)}function tA(e){return e&&e.enabled===!1?`Off`:e&&e.managed?`Config`:`On`}function nA(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>Zk(e)===n)||null}function rA(e,t){if(!t||t.is_alias)return!1;let n=nA(e,EO(t));return!!(n&&n.enabled!==!1&&Qk(n).length>0)}function iA(e,t){return rA(e,t)?`table-action-btn-failover-active`:``}function aA(e,t){let n=`Edit failover for `+(t&&t.display_name?t.display_name:`model`);return rA(e,t)?n+` (active)`:n}function oA(e){let t=[e&&e.target_model];return(Array.isArray(e&&e.targets)?e.targets:[]).forEach(e=>t.push(e&&e.model)),t.map(e=>String(e||``).trim()).filter(Boolean)}function sA(e){let t=Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(Boolean):[];return{target_model:t[0]||``,targets:t.slice(1).map(e=>({model:e}))}}function cA(e){return{primary_model:String(e&&e.source||``).trim(),fallback_models:oA(e),enabled:!(e&&e.enabled===!1)}}function lA(e){return Zk(e)}function uA(e){let t={};return(Array.isArray(e)?e:[]).forEach(e=>{let n=lA(e);n&&(t[n]=!0)}),t}function dA(e,t){let n=lA(t);return!!(n&&e&&e[n])}function fA(e,t){return(Array.isArray(e)?e:[]).filter(e=>dA(t,e))}function pA(e,t){let n=Array.isArray(e)?e:[];return n.length>0&&fA(n,t).length===n.length}function mA(e){return[Zk(e),Qk(e).join(` `)].join(` `).toLowerCase()}function hA(e,t){let n=Array.isArray(e)?e:[],r=String(t||``).trim().toLowerCase();return r?n.filter(e=>mA(e).includes(r)):n}function gA(e){return{primary_model:Zk(e),fallback_models:Qk(e).map(e=>String(e||``).trim()).filter(Boolean),enabled:!!(e&&e.enabled!==!1)}}function _A(){return{source:``,target_model:``,targets:[],enabled:!0}}var Q=new class{#e=A(!0);get failoverAvailable(){return L(this.#e)}set failoverAvailable(e){j(this.#e,e,!0)}#t=A(M([]));get failoverRules(){return L(this.#t)}set failoverRules(e){j(this.#t,e,!0)}#n=A(!1);get failoverLoading(){return L(this.#n)}set failoverLoading(e){j(this.#n,e,!0)}#r=A(!1);get failoverSaving(){return L(this.#r)}set failoverSaving(e){j(this.#r,e,!0)}#i=A(!1);get failoverGenerating(){return L(this.#i)}set failoverGenerating(e){j(this.#i,e,!0)}#a=A(``);get failoverError(){return L(this.#a)}set failoverError(e){j(this.#a,e,!0)}#o=A(M([]));get failoverGeneratedRules(){return L(this.#o)}set failoverGeneratedRules(e){j(this.#o,e,!0)}#s=A(!1);get failoverDraftsOpen(){return L(this.#s)}set failoverDraftsOpen(e){j(this.#s,e,!0)}#c=A(M({}));get failoverDraftSelections(){return L(this.#c)}set failoverDraftSelections(e){j(this.#c,e,!0)}#l=A(``);get failoverDraftFilter(){return L(this.#l)}set failoverDraftFilter(e){j(this.#l,e,!0)}#u=A(!1);get failoverDraftSaving(){return L(this.#u)}set failoverDraftSaving(e){j(this.#u,e,!0)}#d=A(!1);get failoverFormOpen(){return L(this.#d)}set failoverFormOpen(e){j(this.#d,e,!0)}#f=A(`create`);get failoverFormMode(){return L(this.#f)}set failoverFormMode(e){j(this.#f,e,!0)}#p=A(!1);get failoverFormManaged(){return L(this.#p)}set failoverFormManaged(e){j(this.#p,e,!0)}#m=A(M(_A()));get failoverForm(){return L(this.#m)}set failoverForm(e){j(this.#m,e,!0)}failoverEnabled(){return js.booleanFlag(`FAILOVER_ENABLED`,!0)}async fetchFailoverRules(){if(!this.failoverEnabled()){this.failoverAvailable=!1,this.failoverRules=[],this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,this.failoverError=``,this.failoverLoading=!1;return}this.failoverLoading=!0,this.failoverError=``;try{let e=await Es(`/admin/failover`,{label:`failover mappings`});if(e.status===503){this.failoverAvailable=!1,this.failoverRules=[];return}if(e.stale)return;if(this.failoverAvailable=!0,!e.ok){this.failoverRules=[];return}this.failoverRules=$k(e.data)}catch(e){console.error(`Failed to fetch failover mappings:`,e),this.failoverRules=[],this.failoverError=`Unable to load failover mappings.`}finally{this.failoverLoading=!1}}resetFailoverForm(){this.failoverFormMode=`create`,this.failoverFormManaged=!1,this.failoverForm=_A()}openFailoverCreate(){this.resetFailoverForm(),this.failoverFormOpen=!0,this.focusFailoverEditor()}openFailoverEdit(e){if(!e)return;this.resetFailoverForm(),this.failoverFormMode=`edit`,this.failoverFormOpen=!0,this.failoverFormManaged=!!e.managed;let t=this.failoverPrimaryModel(e),n=this.failoverTargets(e);this.failoverForm={source:t,target_model:n[0]||``,targets:n.slice(1).map(e=>({model:e})),enabled:e.enabled!==!1},this.focusFailoverEditor()}openFailoverForModel(e){if(!e||e.is_alias)return;let t=this.qualifiedModelName(e),n=this.failoverRules.find(e=>this.failoverPrimaryModel(e)===t);if(n){this.openFailoverEdit(n);return}this.resetFailoverForm(),this.failoverFormMode=`create`,this.failoverFormOpen=!0,this.failoverForm.source=t,this.focusFailoverEditor()}closeFailoverForm(){this.failoverFormOpen=!1}closeFailoverDraftsModal(){this.failoverDraftSaving||(this.failoverDraftsOpen=!1)}failoverFormTargets(){return oA(this.failoverForm)}setFailoverFormTargets(e){let t=sA(e);this.failoverForm.target_model=t.target_model,this.failoverForm.targets=t.targets}addFailoverTarget(){Array.isArray(this.failoverForm.targets)||(this.failoverForm.targets=[]),this.failoverForm.targets.push({model:``}),this.focusFailoverEditor()}removeFailoverTarget(e){if(!Array.isArray(this.failoverForm.targets)){this.failoverForm.targets=[];return}this.failoverForm.targets.splice(e,1)}removePrimaryFailoverTarget(){let e=Array.isArray(this.failoverForm.targets)?this.failoverForm.targets:[];if(e.length>0){let t=e.shift();this.failoverForm.target_model=t&&t.model?t.model:``,this.failoverForm.targets=e;return}this.failoverForm.target_model=``}failoverRulePayload(){return cA(this.failoverForm)}async submitFailoverForm(){if(this.failoverSaving||this.failoverGenerating||this.failoverFormManaged)return;let e=this.failoverRulePayload();if(!e.primary_model){this.failoverError=`Primary model is required.`;return}if(e.enabled&&e.fallback_models.length===0){this.failoverError=`Add at least one failover target.`;return}this.failoverSaving=!0,this.failoverError=``;try{let t=await Ds(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(t.stale)return;if(!t.ok){this.failoverError=`Failed to save failover mapping.`;return}dc.success(`Failover mapping saved.`),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to save failover mapping:`,e),this.failoverError=`Failed to save failover mapping.`}finally{this.failoverSaving=!1}}async deleteFailoverRule(e){let t=String(e&&this.failoverPrimaryModel(e)||this.failoverForm.source||``).trim();if(!(!t||this.failoverSaving||this.failoverGenerating)&&confirm(`Remove failover mapping for "`+t+`"?`)){this.failoverSaving=!0,this.failoverError=``;try{let e=await Ds(`/admin/failover`,`DELETE`,{primary_model:t},{label:`failover mapping`});if(e.stale)return;if(!e.ok){this.failoverError=`Failed to remove failover mapping.`;return}dc.success(`Failover mapping removed.`),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to remove failover mapping:`,e),this.failoverError=`Failed to remove failover mapping.`}finally{this.failoverSaving=!1}}}async generateFailoverForForm(){if(this.failoverGenerating||this.failoverSaving||this.failoverFormManaged)return;let e=String(this.failoverForm.source||``).trim();if(!e){this.failoverError=`Primary model is required.`;return}this.failoverGenerating=!0,this.failoverError=``;try{let t=await Ds(`/admin/failover/generate`,`POST`,{primary_model:e},{label:`failover generation`});if(t.stale)return;if(!t.ok){this.failoverError=`Failed to generate failover mapping.`;return}let n=$k(t.data),r=n.find(t=>this.failoverPrimaryModel(t)===e)||n[0]||null,i=this.failoverTargets(r);if(i.length===0){this.failoverError=`No failover suggestions were generated for this model.`;return}this.setFailoverFormTargets(i),dc.success(`Generated `+i.length+` fallback model`+(i.length===1?`.`:`s.`)),this.focusFailoverEditor()}catch(e){console.error(`Failed to generate failover mapping:`,e),this.failoverError=`Failed to generate failover mapping.`}finally{this.failoverGenerating=!1}}openFailoverResetDialog(){Xs.open({title:`Remove failover models`,titleId:`failoverResetDialogTitle`,inputId:`failover-reset-confirmation`,message:`Remove every dashboard-managed failover mapping. Configuration-managed mappings remain active.`,requiredText:`remove`,confirmLabel:`Remove Failover`,icon:Mo,dialogClass:`budget-reset-dialog`,onConfirm:async()=>{await this.resetFailoverRules(),this.failoverError&&(Xs.error=this.failoverError)}})}async resetFailoverRules(){if(!this.failoverSaving){this.failoverSaving=!0,this.failoverError=``;try{let e=await Ds(`/admin/failover/reset`,`POST`,void 0,{label:`failover removal`});if(e.stale)return;if(!e.ok){this.failoverError=`Failed to remove failover mappings.`;return}this.failoverRules=$k(e.data),this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,dc.success(`Dashboard-managed failover mappings removed.`),Xs.close()}catch(e){console.error(`Failed to remove failover mappings:`,e),this.failoverError=`Failed to remove failover mappings.`}finally{this.failoverSaving=!1}}}async generateFailoverRules(){if(!(this.failoverGenerating||this.failoverDraftSaving)){this.failoverGenerating=!0,this.failoverError=``,this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!0;try{let e=await Ds(`/admin/failover/generate`,`POST`,void 0,{label:`failover generation`});if(e.stale)return;if(!e.ok){this.failoverError=`Failed to generate failover mappings.`;return}this.failoverGeneratedRules=$k(e.data),this.selectAllFailoverDrafts(this.failoverGeneratedRules)}catch(e){console.error(`Failed to generate failover mappings:`,e),this.failoverError=`Failed to generate failover mappings.`}finally{this.failoverGenerating=!1}}}failoverDraftKey(e){return lA(e)}selectAllFailoverDrafts(e){this.failoverDraftSelections=uA(e)}failoverDraftSelected(e){return dA(this.failoverDraftSelections,e)}setFailoverDraftSelected(e,t){let n=this.failoverDraftKey(e);n&&(this.failoverDraftSelections={...this.failoverDraftSelections,[n]:!!t})}selectedFailoverDrafts(){return fA(this.failoverGeneratedRules,this.failoverDraftSelections)}selectedFailoverDraftCount(){return this.selectedFailoverDrafts().length}failoverDraftCountLabel(){return this.selectedFailoverDraftCount()+` / `+this.failoverGeneratedRules.length+` selected`}allFailoverDraftsSelected(){return pA(this.failoverGeneratedRules,this.failoverDraftSelections)}toggleAllFailoverDrafts(){if(!(this.failoverDraftSaving||this.failoverGenerating||this.failoverGeneratedRules.length===0)){if(this.allFailoverDraftsSelected()){this.failoverDraftSelections={};return}this.selectAllFailoverDrafts(this.failoverGeneratedRules)}}failoverDraftSearchText(e){return mA(e)}filteredFailoverDrafts(){return hA(this.failoverGeneratedRules,this.failoverDraftFilter)}failoverDraftPayload(e){return gA(e)}async saveSelectedFailoverDrafts(){if(this.failoverDraftSaving||this.failoverGenerating)return;let e=this.selectedFailoverDrafts();if(e.length===0){this.failoverError=`Select at least one failover draft.`;return}this.failoverDraftSaving=!0,this.failoverError=``;try{for(let t of e){let e=this.failoverDraftPayload(t);if(!e.primary_model||e.fallback_models.length===0){this.failoverError=`Generated failover draft is missing model data.`;return}let n=await Ds(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(n.stale)return;if(!n.ok){this.failoverError=`Failed to save failover mapping.`;return}}dc.success(`Saved `+e.length+` failover mapping`+(e.length===1?`.`:`s.`)),this.failoverDraftsOpen=!1,this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.fetchFailoverRules()}catch(e){console.error(`Failed to save generated failover mappings:`,e),this.failoverError=`Failed to save failover mappings.`}finally{this.failoverDraftSaving=!1}}focusFailoverEditor(){setTimeout(()=>{let e=document.querySelector(`[data-failover-editor]`),t=e&&e.querySelector?e.querySelector(`[data-modal-autofocus], input:not([disabled]), textarea:not([disabled]), button:not([disabled])`):null;t&&typeof t.focus==`function`&&t.focus({preventScroll:!0})},0)}failoverTargetLabel(e){return eA(e)}failoverPrimaryModel(e){return Zk(e)}failoverTargets(e){return Qk(e)}findFailoverMapping(e){return nA(this.failoverRules,e)}hasActiveFailoverMapping(e){return rA(this.failoverRules,e)}failoverButtonClass(e){return iA(this.failoverRules,e)}failoverButtonLabel(e){return aA(this.failoverRules,e)}normalizeFailoverRules(e){return $k(e)}failoverRuleStatus(e){return tA(e)}qualifiedModelName(e){return EO(e)}},vA=z(``),yA=z(``),bA=z(`Config`),xA=z(`
        Targets
        `),SA=z(``),CA=z(`
        Redirects to
        `),wA=z(` `),TA=z(`
        `),EA=z(`
        `),DA=z(`
        `);function OA(e,t){D(t,!0);let n=k(()=>Kk.modelRowPricing(t.row));var r=DA(),i=N(r),a=N(i),o=N(a),s=N(o),c=N(s,!0);E(s);var l=F(s,2),u=e=>{B(e,vA())};H(l,e=>{t.row.is_alias&&e(u)});var d=F(l,2),f=e=>{B(e,yA())};H(d,e=>{!t.row.is_alias&&t.row.masking_alias&&e(f)});var p=F(d,2),m=e=>{B(e,bA())},h=k(()=>ck(t.row));H(p,e=>{L(h)&&e(m)}),E(o);var g=F(o,2),_=e=>{var n=xA(),r=F(N(n)),i=N(r,!0);E(r),E(n),I(()=>V(i,t.row.secondary_name)),B(e,n)};H(g,e=>{t.row.is_alias&&e(_)});var v=F(g,2),y=e=>{var n=CA(),r=F(N(n)),i=N(r,!0);E(r);var a=F(r,2),o=e=>{var n=SA();I(e=>{G(n,`aria-label`,Tk.rowDeletingKey===t.row.key?`Removing redirect for `+t.row.display_name:`Remove redirect for `+t.row.display_name),G(n,`title`,Tk.rowDeletingKey===t.row.key?`Removing redirect for `+t.row.display_name:`Remove redirect for `+t.row.display_name),n.disabled=e},[()=>!!Tk.rowDeletingKey]),R(`click`,n,()=>Tk.removeRedirectRow(t.row)),B(e,n)},s=k(()=>Tk.virtualModelsAvailable&&ok(t.row));H(a,e=>{L(s)&&e(o)}),E(n),I(e=>V(i,e),[()=>zO(t.row.masking_alias)]),B(e,n)};H(v,e=>{!t.row.is_alias&&t.row.masking_alias&&e(y)}),E(a),E(i);var b=F(i);U(b,17,()=>t.columns,ai,(e,r)=>{var i=wA(),a=N(i,!0);E(i),I(e=>{W(i,1,Pi(L(r).class),`svelte-1iynym`),V(a,e)},[()=>L(r).value(t.row,L(n))]),B(e,i)});var x=F(b),S=N(x),C=e=>{var n=TA(),r=N(n);Jk(r,{get row(){return t.row}});var i=F(r,2),a=e=>{{let n=k(()=>Tk.rowDeletingKey===t.row.key?`Removing alias `+t.row.alias.name:`Remove alias `+t.row.alias.name),r=k(()=>!!Tk.rowDeletingKey);VT(e,{get label(){return L(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>Tk.removeAliasRow(t.row),get disabled(){return L(r)},children:(e,t)=>{q(e,{get icon(){return Mo},class:`table-icon-svg`})},$$slots:{default:!0}})}},o=k(()=>Tk.virtualModelsAvailable&&ak(t.row));H(i,e=>{L(o)&&e(a)});var s=F(i,2),c=e=>{{let n=k(()=>`Edit alias `+t.row.alias.name);VT(e,{get label(){return L(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>Tk.openVirtualModelEditAlias(t.row.alias),children:(e,t)=>{q(e,{get icon(){return po},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(s,e=>{Tk.virtualModelsAvailable&&e(c)}),E(n),B(e,n)},w=e=>{var n=EA(),r=N(n);Jk(r,{get row(){return t.row}});var i=F(r,2),a=e=>{{let n=k(()=>Kk.modelPricingButtonLabel(`model pricing for `+t.row.display_name,Kk.hasModelPricingOverride(t.row))),r=k(()=>Kk.modelPricingButtonClass(Kk.hasModelPricingOverride(t.row)));VT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Kk.openModelPricingOverrideEdit(t.row),children:(e,t)=>{q(e,{get icon(){return Ja},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(i,e=>{Kk.modelPricingOverridesAvailable&&e(a)});var o=F(i,2),s=e=>{{let n=k(()=>Q.failoverButtonLabel(t.row)),r=k(()=>Q.failoverButtonClass(t.row));VT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Q.openFailoverForModel(t.row),children:(e,t)=>{q(e,{get icon(){return Oo},class:`table-icon-svg`})},$$slots:{default:!0}})}},c=k(()=>Q.failoverAvailable&&Q.failoverEnabled());H(o,e=>{L(c)&&e(s)});var l=F(o,2),u=e=>{{let n=k(()=>Z.rateLimitGaugeTitle(t.row.display_name,Z.rateLimitGaugeClassForModel(t.row))),r=k(()=>Z.rateLimitGaugeClassForModel(t.row));VT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Z.openRateLimitInspectorForModel(t.row),children:(e,t)=>{q(e,{get icon(){return eo},class:`table-icon-svg`})},$$slots:{default:!0}})}},d=k(()=>Z.rateLimitsEnabled()&&Z.rateLimitInspectorModelID(t.row));H(l,e=>{L(d)&&e(u)});var f=F(l,2),p=e=>{{let n=k(()=>`Edit redirect for `+t.row.display_name);VT(e,{get label(){return L(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>Tk.openVirtualModelEditAlias(t.row.masking_alias),children:(e,t)=>{q(e,{get icon(){return po},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(f,e=>{Tk.virtualModelsAvailable&&t.row.masking_alias&&t.row.masking_alias.name&&e(p)});var m=F(f,2),h=e=>{{let n=k(()=>dk(`model access for `+t.row.display_name,lk(t.row.access))),r=k(()=>uk(lk(t.row.access)));VT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Tk.openVirtualModelEditModel(t.row),children:(e,t)=>{q(e,{get icon(){return po},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(m,e=>{Tk.virtualModelsAvailable&&!t.row.masking_alias&&e(h)}),E(n),B(e,n)};H(S,e=>{t.row.is_alias?e(C):e(w,-1)}),E(x),E(r),I((e,n)=>{G(r,`id`,e),W(r,1,n,`svelte-1iynym`),V(c,t.row.display_name)},[()=>sk(t.row)||void 0,()=>Pi(ik(t.row))]),B(e,r),O()}Vr([`click`]);var kA={headerLines:[`Modes`],value:e=>(e.model?.metadata?.modes??[]).join(`, `)||`-`};function AA(e,t){return{headerLines:e,class:`col-price`,value:t}}var jA=AA([`Input / Output ($/MTok)`],(e,t)=>xc(t?.input_per_mtok)+` / `+xc(t?.output_per_mtok)),MA={all:[jA],text_generation:[kA,jA,AA([`Cached $/MTok`],(e,t)=>xc(t?.cached_input_per_mtok))],embedding:[AA([`Input`,`$/MTok`],(e,t)=>xc(t?.input_per_mtok))],image:[AA([`$/Image`],(e,t)=>Sc(t?.per_image))],audio:[AA([`$/Second`],(e,t)=>Sc(t?.per_second_input)),AA([`$/Character`],(e,t)=>Sc(t?.per_character_input))],video:[AA([`$/Second (In)`],(e,t)=>Sc(t?.per_second_input)),AA([`$/Second (Out)`],(e,t)=>Sc(t?.per_second_output))],utility:[AA([`$/Page`],(e,t)=>Sc(t?.per_page)),AA([`$/Request`],(e,t)=>Sc(t?.per_request))]};function NA(e){return MA[e]||MA.all}function PA(e){return NA(e).length+2}var FA=z(`
        `),IA=z(` `,1),LA=z(``),RA=z(` `),zA=z(` `),BA=z(`
        `),VA=z(`
        `),HA=z(`
        Model
        `);function UA(e,t){D(t,!0);let n=k(()=>Kc.activeCategory||`all`),r=k(()=>NA(L(n))),i=k(()=>PA(L(n)));var a=HA(),o=N(a),s=N(o),c=N(s),l=F(N(c));U(l,17,()=>L(r),ai,(e,t)=>{var n=LA();U(n,21,()=>L(t).headerLines,ai,(e,t,n)=>{var r=IA(),i=P(r),a=e=>{B(e,FA())};H(i,e=>{n>0&&e(a)});var o=F(i,1,!0);I(()=>V(o,L(t))),B(e,r)}),E(n),I(()=>W(n,1,Pi(L(t).class),`svelte-1911hy6`)),B(e,n)});var u=F(l);Xk(N(u),{}),E(u),E(c),E(s),U(F(s),17,()=>Tk.filteredDisplayModelGroups,e=>e.key,(e,t)=>{var n=VA(),a=N(n),o=N(a),s=N(o),c=N(s),l=N(c),u=N(l),d=N(u,!0);E(u);var f=F(u,2),p=e=>{var n=RA(),r=N(n,!0);E(n),I(()=>V(r,`(`+L(t).type_label+`)`)),B(e,n)};H(f,e=>{L(t).type_label&&e(p)});var m=F(f,2),h=e=>{var n=zA(),r=N(n,!0);E(n),I(()=>V(r,L(t).item_count_label)),B(e,n)};H(m,e=>{L(t).item_count_label&&e(h)}),E(l);var g=F(l,2),_=e=>{var n=BA(),r=N(n,!0);E(n),I(()=>V(r,L(t).access_summary)),B(e,n)};H(g,e=>{L(t).access_summary&&e(_)}),E(c);var v=F(c,2),y=N(v),b=e=>{Jk(e,{get row(){return L(t)}})};H(y,e=>{L(t).access.selector&&e(b)});var x=F(y,2),S=e=>{{let n=k(()=>Kk.modelPricingButtonLabel(`provider pricing for `+L(t).display_name,Kk.hasProviderPricingOverride(L(t)))),r=k(()=>Kk.modelPricingButtonClass(Kk.hasProviderPricingOverride(L(t))));VT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Kk.openProviderPricingOverrideEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return Ja},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(x,e=>{Kk.modelPricingOverridesAvailable&&L(t).provider_name&&e(S)});var C=F(x,2),w=e=>{{let n=k(()=>Z.rateLimitGaugeTitle(`provider `+L(t).display_name,Z.rateLimitGaugeClassForProvider(L(t)))),r=k(()=>Z.rateLimitGaugeClassForProvider(L(t)));VT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Z.openRateLimitInspectorForProvider(L(t)),children:(e,t)=>{q(e,{get icon(){return eo},class:`table-icon-svg`})},$$slots:{default:!0}})}},T=k(()=>Z.rateLimitsEnabled()&&L(t).provider_name);H(C,e=>{L(T)&&e(w)});var ee=F(C,2),te=e=>{{let n=k(()=>dk(`provider access for `+L(t).display_name,lk(L(t).access))),r=k(()=>uk(lk(L(t).access)));VT(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Tk.openProviderOverrideEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return po},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(ee,e=>{Tk.virtualModelsAvailable&&L(t).access.selector&&e(te)}),E(v),E(s),E(o),E(a),U(F(a),17,()=>L(t).rows,e=>e.key,(e,t)=>{OA(e,{get row(){return L(t)},get columns(){return L(r)}})}),E(n),I(()=>{G(o,`colspan`,L(i)),V(d,L(t).display_name)}),B(e,n)}),E(o),E(a),B(e,a),O()}var WA=z(``);function GA(e,t){let n=K(t,`enabled`,3,!1),r=K(t,`label`,3,``),i=K(t,`disabled`,3,!1),a=K(t,`restricted`,3,!1);var o=WA();let s;var c=F(N(o),2),l=N(c,!0);E(c),E(o),I(()=>{s=W(o,1,`alias-toggle`,null,s,{enabled:n(),restricted:a()}),o.disabled=i(),G(o,`aria-label`,(n()?`Disable `:`Enable `)+r()),V(l,t.text??(n()?`Enabled`:`Disabled`))}),R(`click`,o,function(...e){t.onclick?.apply(this,e)}),B(e,o)}Vr([`click`]);var KA=z(``),qA=z(`
        `);function JA(e,t){D(t,!0);let n=K(t,`model`,15,``),r=K(t,`weight`,15),i=K(t,`id`,3,void 0),a=K(t,`placeholder`,3,`openai/gpt-4o`),o=K(t,`showRemove`,3,!0);var s=qA(),c=N(s);ta(c);var l=F(c,2),u=e=>{var t=KA();ta(t),I(()=>t.disabled=Tk.vmFormManaged),ua(t,r),B(e,t)},d=k(()=>Tk.vmFormShowWeights());H(l,e=>{L(d)&&e(u)});var f=F(l,2),p=e=>{VT(e,{label:`Remove target`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,get onclick(){return t.onremove},get disabled(){return Tk.vmFormManaged},children:(e,t)=>{q(e,{get icon(){return Mo},class:`table-icon-svg`})},$$slots:{default:!0}})};H(f,e=>{o()&&e(p)}),E(s),I(()=>{G(c,`id`,i()),G(c,`placeholder`,a()),c.disabled=Tk.vmFormManaged}),ua(c,n),B(e,s),O()}var YA=z(`

        `),XA=z(`adaptive lets the registered routing extension pick the target per + request.`,1),ZA=z(`Add one target to make this a redirect/alias, or two or more to load + balance across them, then pick a strategy: round_robin rotates across targets + (weight biases the share) and cost always routes to the cheapest available + target. Leave Targets empty to make it only an access policy on the Source selector. The selector uses / for all providers and + models, for one provider, or for one model. user_paths is + matched against the effective request user_path: the managed API key user_path when present, otherwise the configured user path request header.`,1),QA=z(``),$A=z(`

        This virtual model is defined in configuration (config.yaml / VIRTUAL_MODELS) and is read-only here. Edit your configuration to change it.

        `),ej=z(``),tj=z(``),nj=z(``),rj=z(`
        `,1),ij=z(``),aj=z(`Use / to allow every user path. Use a team path to restrict to that + subtree, or an unused path to make the selector unavailable.`,1),oj=z(``),sj=z(` `),cj=z(`
        Targets
        `,1);function lj(e,t){D(t,!0);let n=Tk;kn(()=>{n.vmFormOpen&&js.ensureLoaded()});{let t=e=>{oC(e,{copyId:`virtual-model-help-copy`,label:`virtual model help`,get open(){return n.vmFormHelpOpen},set open(e){n.vmFormHelpOpen=e},title:e=>{var t=YA(),r=N(t,!0);E(t),I(()=>V(r,n.vmFormDisplayName||n.vmForm.source||`Virtual model`)),B(e,t)},help:e=>{He();var t=ZA(),n=F(P(t),7),r=e=>{var t=XA();He(),B(e,t)},i=k(()=>js.virtualModelStrategies().includes(`adaptive`));H(n,e=>{L(i)&&e(r)});var a=F(n,8);a.textContent=`{provider_name}/`;var o=F(a,2);o.textContent=`{provider_name}/{model}`,He(7),B(e,t)},$$slots:{title:!0,help:!0}})},r=e=>{var t=Zr(),r=P(t),i=e=>{var t=QA();I(()=>t.disabled=n.vmDeleting||n.vmSubmitting),R(`click`,t,()=>n.deleteVirtualModel()),B(e,t)};H(r,e=>{n.vmFormHasExisting&&!n.vmFormManaged&&e(i)}),B(e,t)},i=k(()=>n.vmDeleting||n.vmFormManaged),a=k(()=>n.vmFormMode===`edit`?`Save`:`Create`),o=k(()=>n.vmFormMode===`edit`?yo:ho);GE(e,{get open(){return n.vmFormOpen},ariaLabel:`Virtual model editor`,get error(){return n.vmFormError},get submitting(){return n.vmSubmitting},get submitDisabled(){return L(i)},get submitLabel(){return L(a)},get submitIcon(){return L(o)},onclose:()=>n.closeVirtualModelForm(),onsubmit:()=>n.submitVirtualModelForm(),header:t,extraActions:r,children:(e,t)=>{var r=cj(),i=P(r),a=e=>{B(e,$A())};H(i,e=>{n.vmFormManaged&&e(a)});var o=F(i,2);qE(o,{id:`virtual-model-source`,label:`Source`,children:(e,t)=>{var r=ej();ta(r),I(()=>r.disabled=n.vmFormSourceLocked||n.vmFormManaged),ua(r,()=>n.vmForm.source,e=>n.vmForm.source=e),B(e,r)},$$slots:{default:!0}});var s=F(o,2);U(s,21,()=>Kc.models,e=>EO(e),(e,t)=>{var n=tj(),r=N(n,!0);E(n);var i={};I((e,t)=>{V(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>EO(L(t)),()=>EO(L(t))]),B(e,n)}),E(s);var c=F(s,2),l=F(N(c),2);{let e=k(()=>n.vmFormHasPrimaryTarget());JA(l,{id:`virtual-model-target`,get showRemove(){return L(e)},onremove:()=>n.removePrimaryTarget(),get model(){return n.vmForm.target_model},set model(e){n.vmForm.target_model=e},get weight(){return n.vmForm.target_weight},set weight(e){n.vmForm.target_weight=e}})}var u=F(l,2);U(u,17,()=>n.vmForm.targets,ai,(e,t,r)=>{JA(e,{placeholder:`groq/llama`,onremove:()=>n.removeVmTarget(r),get model(){return L(t).model},set model(e){L(t).model=e},get weight(){return L(t).weight},set weight(e){L(t).weight=e}})});var d=F(u,2),f=N(d);q(N(f),{get icon(){return ho},class:`form-action-icon`}),He(2),E(f),E(d),E(c);var p=F(c,2),m=e=>{var t=rj(),r=P(t);qE(r,{id:`virtual-model-strategy`,label:`Load-balancing strategy`,children:(e,t)=>{var r=nj();U(r,21,()=>n.vmStrategyOptions(),e=>e.value,(e,t)=>{var n=tj(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(r),I(()=>r.disabled=n.vmFormManaged),Wi(r,()=>n.vmForm.strategy,e=>n.vmForm.strategy=e),B(e,r)},$$slots:{default:!0}});var i=F(r,2),a=N(i),o=N(a);ta(o),He(2),E(a),E(i),I(()=>o.disabled=n.vmFormManaged),da(o,()=>n.vmForm.session_affinity,e=>n.vmForm.session_affinity=e),B(e,t)},h=k(()=>n.vmFormShowStrategy());H(p,e=>{L(h)&&e(m)});var g=F(p,2),_=N(g);oC(_,{copyId:`virtual-model-user-paths-help`,label:`user paths help`,get open(){return n.vmFormUserPathsHelpOpen},set open(e){n.vmFormUserPathsHelpOpen=e},title:e=>{B(e,ij())},help:e=>{He();var t=aj();He(2),B(e,t)},$$slots:{title:!0,help:!0}});var v=F(_,2);dt(v),G(v,`placeholder`,`/ +/team/alpha +/non-existing`),E(g);var y=F(g,2);qE(y,{id:`virtual-model-description`,label:`Description`,children:(e,t)=>{var r=oj();dt(r),I(()=>r.disabled=n.vmFormManaged),ua(r,()=>n.vmForm.description,e=>n.vmForm.description=e),B(e,r)},$$slots:{default:!0}});var b=F(y,2),x=N(b),S=e=>{var t=sj(),r=N(t,!0);E(t),I(()=>V(r,`Default enabled: `+(n.vmFormDefaultEnabled?`yes`:`no`)+` · Effective now: `+(n.vmFormEffectiveEnabled?`yes`:`no`))),B(e,t)};H(x,e=>{n.vmFormMode===`edit`&&e(S)});var C=F(x,2),w=N(C);{let e=k(()=>n.vmFormToggleRestricted()),t=k(()=>n.vmFormToggleLabel());GA(w,{get enabled(){return n.vmForm.enabled},get restricted(){return L(e)},label:`virtual model`,get disabled(){return n.vmFormManaged},get text(){return L(t)},onclick:()=>{n.vmFormManaged||(n.vmForm.enabled=!n.vmForm.enabled)}})}E(C),E(b),I(()=>{f.disabled=n.vmFormManaged,v.disabled=n.vmFormManaged}),R(`click`,f,()=>n.addVmTarget()),ua(v,()=>n.vmForm.user_paths,e=>n.vmForm.user_paths=e),B(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}O()}Vr([`click`]);var uj=z(`

        Pricing override

        `,1),dj=z(``),fj=z(``),pj=z(``),mj=z(``),hj=z(`
        `),gj=z(`
        Tiered pricing exists for this override and will be preserved. Tier editing can be added + without a database migration.
        `),_j=z(`
        No pricing fields set.
        `),vj=z(`
        `),yj=z(`

        Currency is USD. Saved fields override model registry and config.yaml pricing for this + selector; unset fields continue to inherit.

        Price Type USD Source
        `,1);function bj(e,t){D(t,!0);let n=Kk;GE(e,{get open(){return n.modelPricingOverrideFormOpen},ariaLabel:`Model pricing editor`,dialogClass:`model-pricing-editor`,get error(){return n.modelPricingOverrideError},get submitting(){return n.modelPricingOverrideSubmitting},submitLabel:`Save Pricing`,onclose:()=>n.closeModelPricingOverrideForm(),onsubmit:()=>n.submitModelPricingOverrideForm(),header:e=>{var t=uj(),r=F(P(t),2),i=N(r,!0);E(r),I(()=>V(i,n.modelPricingOverrideFormDisplayName||n.modelPricingOverrideForm.selector||`Pricing`)),B(e,t)},extraActions:e=>{var t=Zr(),r=P(t),i=e=>{var t=dj();I(()=>t.disabled=n.modelPricingOverrideSubmitting),R(`click`,t,()=>n.deleteModelPricingOverride()),B(e,t)};H(r,e=>{n.modelPricingOverrideFormHasExistingOverride&&e(i)}),B(e,t)},children:(e,t)=>{var r=yj(),i=P(r),a=N(i);qE(a,{id:`model-pricing-override-selector`,label:`Selector`,children:(e,t)=>{var r=fj();ta(r),ua(r,()=>n.modelPricingOverrideForm.selector,e=>n.modelPricingOverrideForm.selector=e),B(e,r)},$$slots:{default:!0}});var o=F(a,2),s=e=>{qE(e,{id:`model-pricing-override-scope`,label:`Scope`,children:(e,t)=>{var r=mj();U(r,21,()=>n.modelPricingOverrideFormScopeOptions,e=>e.value,(e,t)=>{var n=pj(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(r),R(`change`,r,()=>n.setModelPricingOverrideScope(n.modelPricingOverrideFormScope)),Wi(r,()=>n.modelPricingOverrideFormScope,e=>n.modelPricingOverrideFormScope=e),B(e,r)},$$slots:{default:!0}})};H(o,e=>{n.modelPricingOverrideFormScopeOptions.length>1&&e(s)}),E(i);var c=F(i,4);U(c,21,()=>n.modelPricingOverrideRows,e=>e.id,(e,t,r)=>{var i=hj(),a=N(i),o=N(a),s=F(o,2);U(s,21,()=>n.availablePricingFieldOptions(L(t)),e=>e.value,(e,t)=>{var n=pj(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).group+` - `+L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(s),E(a);var c=F(a,2),l=N(c),u=F(l,2);ta(u),E(c);var d=F(c,2);{let e=k(()=>`Remove `+n.pricingFieldLabel(L(t).field));VT(d,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn pricing-override-remove-row`,onclick:()=>n.removeModelPricingOverrideRow(L(t)),children:(e,t)=>{q(e,{get icon(){return zo},class:`table-icon-svg`})},$$slots:{default:!0}})}E(i),I(()=>{G(o,`for`,`pricing-type-`+L(t).id),G(s,`id`,`pricing-type-`+L(t).id),G(l,`for`,`pricing-value-`+L(t).id),G(u,`id`,`pricing-value-`+L(t).id)}),Wi(s,()=>L(t).field,e=>L(t).field=e),ua(u,()=>L(t).value,e=>L(t).value=e),B(e,i)}),E(c);var l=F(c,2),u=N(l);q(N(u),{get icon(){return ho},class:`form-action-icon`}),He(2),E(u),E(l);var d=F(l,2),f=e=>{B(e,gj())};H(d,e=>{n.modelPricingOverrideFormPreservedTiers.length>0&&e(f)});var p=F(d,2),m=F(N(p),2),h=e=>{B(e,_j())},g=k(()=>n.modelPricingEffectivePreviewRows().length===0);H(m,e=>{L(g)&&e(h)}),U(F(m,2),17,()=>n.modelPricingEffectivePreviewRows(),e=>e.field,(e,t)=>{var n=vj(),r=N(n),i=N(r,!0);E(r);var a=F(r,2),o=N(a,!0);E(a);var s=F(a,2),c=N(s,!0);E(s),E(n),I(e=>{V(i,L(t).label),V(o,e),V(c,L(t).source)},[()=>L(t).value===null||L(t).value===void 0?`-`:Sc(Number(L(t).value))]),B(e,n)}),E(p),R(`click`,u,()=>n.addModelPricingOverrideRow()),B(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}}),O()}Vr([`click`,`change`]);var xj=z(`

        Failover mapping

        `,1),Sj=z(``),Cj=z(`

        This failover mapping is defined in configuration and is read-only here.

        `),wj=z(``),Tj=z(`
        `),Ej=z(`
        `,1),Dj=z(`
        `);function Oj(e,t){D(t,!0);{let t=e=>{var t=xj(),n=F(P(t),2),r=N(n,!0);E(n),I(()=>V(r,Q.failoverForm.source||`Failover`)),B(e,t)},n=e=>{var t=Zr(),n=P(t),r=e=>{var t=Sj();I(()=>t.disabled=Q.failoverSaving||Q.failoverGenerating),R(`click`,t,()=>Q.deleteFailoverRule()),B(e,t)};H(n,e=>{Q.failoverFormMode===`edit`&&!Q.failoverFormManaged&&e(r)}),B(e,t)},r=k(()=>Q.failoverGenerating||Q.failoverFormManaged);GE(e,{get open(){return Q.failoverFormOpen},ariaLabel:`Failover editor`,get error(){return Q.failoverError},get submitting(){return Q.failoverSaving},get submitDisabled(){return L(r)},submitLabel:`Save`,onclose:()=>Q.closeFailoverForm(),onsubmit:()=>Q.submitFailoverForm(),header:t,extraActions:n,children:(e,t)=>{var n=Dj(),r=N(n),i=e=>{B(e,Cj())};H(r,e=>{Q.failoverFormManaged&&e(i)});var a=F(r,2);U(a,21,()=>Kc.models,ai,(e,t)=>{var n=wj(),r=N(n,!0);E(n);var i={};I((e,t)=>{V(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>EO(L(t)),()=>EO(L(t))]),B(e,n)}),E(a);var o=F(a,2);qE(o,{id:`failover-target`,label:`Fallback models`,children:(e,t)=>{var n=Ej(),r=P(n),i=N(r),a=N(i);ta(a);var o=F(a,2),s=e=>{VT(e,{label:`Remove fallback model`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removePrimaryFailoverTarget(),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{q(e,{get icon(){return Mo},class:`table-icon-svg`})},$$slots:{default:!0}})};H(o,e=>{Q.failoverForm.target_model&&e(s)}),E(i),U(F(i,2),17,()=>Q.failoverForm.targets,ai,(e,t,n)=>{var r=Tj(),i=N(r);ta(i),VT(F(i,2),{label:`Remove fallback model`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removeFailoverTarget(n),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{q(e,{get icon(){return Mo},class:`table-icon-svg`})},$$slots:{default:!0}}),E(r),I(()=>i.disabled=Q.failoverFormManaged),ua(i,()=>L(t).model,e=>L(t).model=e),B(e,r)}),E(r);var c=F(r,2),l=N(c);q(N(l),{get icon(){return ho},class:`form-action-icon`}),He(2),E(l);var u=F(l,2),d=N(u);q(d,{get icon(){return Lo},class:`form-action-icon`});var f=F(d,2),p=N(f,!0);E(f),E(u),E(c),I(e=>{a.disabled=Q.failoverFormManaged,l.disabled=Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving,u.disabled=e,V(p,Q.failoverGenerating?`Generating...`:`Generate automatically`)},[()=>Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving||!Q.failoverEnabled()]),ua(a,()=>Q.failoverForm.target_model,e=>Q.failoverForm.target_model=e),R(`click`,l,()=>Q.addFailoverTarget()),R(`click`,u,()=>Q.generateFailoverForForm()),B(e,n)},$$slots:{default:!0}});var s=F(o,2),c=N(s);GA(N(c),{get enabled(){return Q.failoverForm.enabled},label:`failover mapping`,get disabled(){return Q.failoverFormManaged},onclick:()=>{Q.failoverFormManaged||(Q.failoverForm.enabled=!Q.failoverForm.enabled)}}),E(c),E(s),E(n),B(e,n)},$$slots:{header:!0,extraActions:!0,default:!0}})}O()}Vr([`click`]);var kj=z(` `),Aj=z(`
        `),jj=z(``),Mj=z(`
        `),Nj=z(`

        No failover suggestions were generated.

        `),Pj=z(`

        No failover drafts match the filter.

        `),Fj=z(``),Ij=z(``);function Lj(e,t){D(t,!0),Ws(e,{get open(){return Q.failoverDraftsOpen},variant:`editor`,onclose:()=>Q.closeFailoverDraftsModal(),children:(e,t)=>{var n=Ij(),r=N(n),i=F(N(r),2),a=N(i),o=e=>{var t=kj(),n=N(t,!0);E(t),I(e=>V(n,e),[()=>Q.failoverDraftCountLabel()]),B(e,t)};H(a,e=>{Q.failoverGeneratedRules.length>0&&e(o)}),Bs(F(a,2),{label:`Close failover drafts`,onclick:()=>Q.closeFailoverDraftsModal(),get disabled(){return Q.failoverDraftSaving}}),E(i),E(r);var s=F(r,2),c=e=>{zT(e,{label:`Generating failover drafts...`,class:`failover-drafts-loading`})};H(s,e=>{Q.failoverGenerating&&e(c)});var l=F(s,2),u=e=>{var t=Aj(),n=N(t);Fw(n,{placeholder:`Filter failover drafts...`,label:`Filter failover drafts`,get value(){return Q.failoverDraftFilter},set value(e){Q.failoverDraftFilter=e}});var r=F(n,2),i=N(r);q(i,{get icon(){return Ha},class:`form-action-icon`});var a=F(i,2),o=N(a,!0);E(a),E(r),E(t),I(e=>{r.disabled=Q.failoverDraftSaving,V(o,e)},[()=>Q.allFailoverDraftsSelected()?`Deselect all`:`Select all`]),R(`click`,r,()=>Q.toggleAllFailoverDrafts()),B(e,t)};H(l,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&e(u)});var d=F(l,2),f=e=>{var t=Mj();U(t,21,()=>Q.filteredFailoverDrafts(),e=>`failover-draft:`+Q.failoverPrimaryModel(e),(e,t)=>{var n=jj(),r=N(n);ta(r);var i=F(r,2),a=N(i),o=N(a,!0);E(a);var s=F(a,2),c=N(s,!0);E(s),E(i),E(n),I((e,t,n,i)=>{ra(r,e),r.disabled=Q.failoverDraftSaving,G(r,`aria-label`,t),V(o,n),V(c,i)},[()=>Q.failoverDraftSelected(L(t)),()=>`Select failover draft for `+Q.failoverPrimaryModel(L(t)),()=>Q.failoverPrimaryModel(L(t)),()=>Q.failoverTargetLabel(L(t))]),R(`change`,r,e=>Q.setFailoverDraftSelected(L(t),e.currentTarget.checked)),B(e,n)}),E(t),B(e,t)},p=k(()=>!Q.failoverGenerating&&Q.filteredFailoverDrafts().length>0);H(d,e=>{L(p)&&e(f)});var m=F(d,2),h=e=>{B(e,Nj())};H(m,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length===0&&!Q.failoverError&&e(h)});var g=F(m,2),_=e=>{B(e,Pj())},v=k(()=>!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&Q.filteredFailoverDrafts().length===0);H(g,e=>{L(v)&&e(_)});var y=F(g,2),b=e=>{var t=Fj(),n=N(t,!0);E(t),I(()=>V(n,Q.failoverError)),B(e,t)};H(y,e=>{Q.failoverError&&e(b)});var x=F(y,2),S=N(x),C=F(S,2),w=N(C);q(w,{get icon(){return yo},class:`form-action-icon`});var T=F(w,2),ee=N(T,!0);E(T),E(C),E(x),E(n),I(e=>{S.disabled=Q.failoverDraftSaving,C.disabled=e,V(ee,Q.failoverDraftSaving?`Saving...`:`Save selected`)},[()=>Q.failoverGenerating||Q.failoverDraftSaving||Q.selectedFailoverDraftCount()===0]),R(`click`,S,()=>Q.closeFailoverDraftsModal()),R(`click`,C,()=>Q.saveSelectedFailoverDrafts()),B(e,n)},$$slots:{default:!0}}),O()}Vr([`click`,`change`]);var Rj=z(`
        Rate limit management is unavailable.
        `),zj=z(` Add`,1),Bj=z(`

        `),Vj=z(`

        No rules.

        `),Hj=z(` Edit`,1),Uj=z(`
        `),Wj=z(`
        `),Gj=z(`

        `),Kj=z(``),qj=z(``);function Jj(e,t){D(t,!0);function n(){J.dialogOpen||Z.closeRateLimitInspector()}Ws(e,{get open(){return Z.rateLimitInspectorOpen},variant:`editor`,onclose:n,children:(e,t)=>{var n=qj(),r=N(n),i=N(r),a=F(N(i),2),o=N(a),s=N(o,!0);E(o),E(a),E(i),Bs(F(i,2),{label:`Close rate limits inspector`,onclick:()=>Z.closeRateLimitInspector()}),E(r);var c=F(r,2),l=e=>{zT(e,{label:`Loading rate limits...`})},u=e=>{B(e,Rj())},d=e=>{var t=Zr();U(P(t),17,()=>Z.rateLimitInspectorSections(),e=>e.key,(e,t)=>{var n=Gj(),r=N(n),i=N(r),a=N(i,!0);E(i);var o=F(i,2);{let e=k(()=>`Add `+L(t).title.toLowerCase());VT(o,{get label(){return L(e)},class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(L(t).scope,L(t).subject),children:(e,t)=>{var n=zj();q(P(n),{get icon(){return ho},class:`table-icon-svg`}),He(2),B(e,n)},$$slots:{default:!0}})}E(r);var s=F(r,2),c=e=>{var n=Bj(),r=N(n,!0);E(n),I(()=>V(r,L(t).hint)),B(e,n)};H(s,e=>{L(t).hint&&e(c)});var l=F(s,2),u=e=>{B(e,Vj())},d=e=>{var n=Wj();U(n,21,()=>L(t).items,e=>Z.rateLimitKey(e),(e,t)=>{var n=Uj(),r=N(n),i=N(r),a=N(i),o=N(a,!0);E(a);var s=F(a,2),c=N(s),l=N(c);{let e=k(()=>Z.rateLimitIsConcurrent(L(t))?Aa:jo);q(l,{get icon(){return L(e)},class:`budget-period-icon`})}var u=F(l,2),d=N(u,!0);E(u),E(c),E(s);var f=F(s,2),p=N(f),m=N(p),h=N(m,!0);E(m);var g=F(m,2),_=N(g,!0);E(g),E(p);var v=F(p,2),y=N(v),b=e=>{VT(e,{label:`Edit rate limit`,class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(null,null,L(t)),children:(e,t)=>{var n=Hj();q(P(n),{get icon(){return po},class:`budget-action-icon`}),He(2),B(e,n)},$$slots:{default:!0}})},x=k(()=>!Z.rateLimitIsReadOnly(L(t)));H(y,e=>{L(x)&&e(b)}),E(v),E(f),E(i),E(r),E(n),I((e,t,r,i,a,s,c,l)=>{W(n,1,`budget-row ${e??``}`),Vi(n,t),G(n,`title`,r),V(o,i),V(d,a),V(h,s),G(g,`title`,c),V(_,l)},[()=>Z.rateLimitPressureClass(L(t)),()=>Z.rateLimitPressureStyle(L(t)),()=>Z.rateLimitPressurePercent(L(t))+`% of the most constrained cap used`,()=>Z.rateLimitSubject(L(t)),()=>Z.rateLimitPeriodLabel(L(t)),()=>Z.rateLimitInspectorSummary(L(t)),()=>Z.rateLimitIsReadOnly(L(t))?`Declared in configuration; read-only in the dashboard`:`Managed via dashboard or admin API`,()=>Z.rateLimitSourceLabel(L(t))]),B(e,n)}),E(n),B(e,n)};H(l,e=>{L(t).items.length===0?e(u):e(d,-1)}),E(n),I(()=>V(a,L(t).title)),B(e,n)}),B(e,t)};H(c,e=>{Z.rateLimitsLoading?e(l):Z.rateLimitsAvailable?e(d,-1):e(u,1)});var f=F(c,2),p=N(f),m=F(p,2),h=e=>{var t=Kj();R(`click`,t,()=>{Z.closeRateLimitInspector(),Zo.navigate(`rate-limits`)}),B(e,t)},g=k(()=>Z.rateLimitsEnabled());H(m,e=>{L(g)&&e(h)}),E(f),E(n),I(()=>V(s,Z.rateLimitInspector.title)),R(`click`,p,()=>Z.closeRateLimitInspector()),B(e,n)},$$slots:{default:!0}}),O()}Vr([`click`]);var Yj=z(`
        models
        `),Xj=z(`
        Virtual models feature is unavailable.
        `),Zj=z(`
        `),Qj=z(``),$j=z(`
        `),eM=z(``),tM=z(`
        `),nM=z(`

        No models registered.

        `),rM=z(`

        No models in this category.

        `),iM=z(`

        No models match your filter.

        `),aM=z(`
        `);function oM(e,t){D(t,!0),kn(()=>{J.refreshTick,Zo.page===`models`&&(Tk.fetchVirtualModels(),Kk.fetchModelPricingOverrides(),Q.fetchFailoverRules(),Z.fetchRateLimitsPage())}),kn(()=>{let e=Tk.filteredDisplayModels.length;return Tr(()=>Tk.restartModelRendering(e)),()=>Tk.stopModelRendering()});let n=k(()=>J.needsAuth);var r=aM(),i=N(r),a=F(N(i),2),o=e=>{var t=Yj(),n=N(t),r=N(n,!0);E(n),He(),E(t),I(()=>V(r,Kc.filter?Tk.filteredDisplayModels.length+` / `+Tk.displayModels.length:Tk.displayModels.length)),B(e,t)};H(a,e=>{Tk.displayModels.length>0&&e(o)}),E(i);var s=F(i,2);Jc(s,{});var c=F(s,2),l=e=>{B(e,Xj())};H(c,e=>{!Tk.virtualModelsAvailable&&!L(n)&&e(l)});var u=F(c,2),d=e=>{var t=Zj(),n=N(t,!0);E(t),I(()=>V(n,Tk.aliasError)),B(e,t)};H(u,e=>{Tk.aliasError&&!L(n)&&e(d)});var f=F(u,2),p=e=>{var t=Zj(),n=N(t,!0);E(t),I(()=>V(n,Kk.modelPricingOverrideError)),B(e,t)};H(f,e=>{Kk.modelPricingOverrideError&&!L(n)&&!Kk.modelPricingOverrideFormOpen&&e(p)});var m=F(f,2),h=e=>{var t=$j();U(t,21,()=>Kc.categories,e=>e.category,(e,t)=>{var n=Qj();let r;var i=N(n),a=N(i,!0);E(i);var o=F(i,2),s=N(o,!0);E(o),E(n),I(()=>{r=W(n,1,`category-tab svelte-scpjps`,null,r,{active:Kc.activeCategory===L(t).category}),V(a,L(t).display_name),V(s,L(t).count)}),R(`click`,n,()=>Kc.selectCategory(L(t).category)),B(e,n)}),E(t),B(e,t)};H(m,e=>{Kc.categories.length>0&&e(h)});var g=F(m,2),_=e=>{var t=tM(),n=N(t);Fw(N(n),{placeholder:`Filter by provider, provider/model, alias, or owner...`,label:`Filter models by provider, provider/model, alias, or owner`,get value(){return Kc.filter},set value(e){Kc.filter=e}}),E(n);var r=F(n,2),i=N(r),a=e=>{var t=eM();q(N(t),{get icon(){return ho},class:`alias-create-icon`}),He(2),E(t),R(`click`,t,()=>Tk.openVirtualModelCreate()),B(e,t)};H(i,e=>{Tk.virtualModelsAvailable&&e(a)}),E(r),E(t),B(e,t)};H(g,e=>{(Tk.displayModels.length>0||Kc.filter||Tk.virtualModelsAvailable)&&e(_)});var v=F(g,2),y=e=>{{let t=k(()=>Tk.modelLoadingText());zT(e,{get label(){return L(t)},class:`models-loading-state`})}},b=k(()=>Tk.modelsBusy()&&!L(n));H(v,e=>{L(b)&&e(y)});var x=F(v,2);lj(x,{});var S=F(x,2);bj(S,{});var C=F(S,2),w=e=>{UA(e,{})};H(C,e=>{(Tk.displayModels.length>0||Kc.filter)&&e(w)});var T=F(C,2),ee=e=>{B(e,nM())};H(T,e=>{Tk.displayModels.length===0&&!Kc.loading&&!L(n)&&!Kc.filter&&(Kc.activeCategory===`all`||!Kc.activeCategory)&&e(ee)});var te=F(T,2),ne=e=>{B(e,rM())};H(te,e=>{Tk.displayModels.length===0&&!Kc.loading&&!L(n)&&!Kc.filter&&Kc.activeCategory&&Kc.activeCategory!==`all`&&e(ne)});var re=F(te,2),ie=e=>{B(e,iM())};H(re,e=>{Tk.displayModels.length>0&&Tk.filteredDisplayModels.length===0&&Kc.filter&&e(ie)});var ae=F(re,2);Jj(ae,{});var oe=F(ae,2);oO(oe,{});var se=F(oe,2);Oj(se,{}),Lj(F(se,2),{}),E(r),B(e,r),O()}Vr([`click`]);var sM=`draft-workflow-preview`;function cM(){return{scope_provider:``,scope_model:``,scope_user_path:``,name:``,description:``,features:{cache:!0,audit:!0,usage:!0,budget:!0,guardrails:!1,failover:!0},guardrails:[]}}function lM(){return{scope_provider:``,scope_model:``,scope_user_path:``}}function uM(e){return{ref:``,step:Number.isFinite(e)?e:10}}function dM(e){let t=e==null?``:String(e).trim();if(t===``)return NaN;let n=Number(t);return Number.isFinite(n)?n:NaN}function fM(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return n;let r=t.charAt(0).toUpperCase()+t.slice(1);for(let n of[t,r])if(Object.prototype.hasOwnProperty.call(e,n)&&e[n]!==null&&e[n]!==void 0)return e[n];return n}function pM(e,t){return!e||typeof e!=`object`||Array.isArray(e)?!1:[t,t.charAt(0).toUpperCase()+t.slice(1)].some(t=>Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==null&&e[t]!==void 0)}function mM(e){return{cache:!!fM(e,`cache`,!1),audit:!!fM(e,`audit`,!1),usage:!!fM(e,`usage`,!1),budget:fM(e,`budget`,!0)!==!1,guardrails:!!fM(e,`guardrails`,!1),failover:fM(e,`failover`,!0)!==!1}}function hM(e,t){let n=mM(e),r=t||{},i=n.usage&&!!r.usage;return{cache:n.cache&&!!r.cache,audit:n.audit&&!!r.audit,usage:i,budget:i&&n.budget&&!!r.budget,guardrails:n.guardrails&&!!r.guardrails,failover:n.failover&&!!r.failover}}function gM(e,t){let n=e&&e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:e&&e.features?e.features:{};return{...hM((e&&e.effective_features&&typeof e.effective_features==`object`&&!Array.isArray(e.effective_features)?e.effective_features:null)||n,t),failover:mM(n).failover}}function _M(e,t){return gM(e,t).failover?`On`:`Off`}function vM(e){return(Array.isArray(e&&e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:Array.isArray(e&&e.guardrails)?e.guardrails:[]).map(e=>({ref:String(e&&e.ref||``).trim(),step:dM(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0)}function yM(e,t){return gM(e,t).guardrails&&Array.isArray(e&&e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[]}function bM(e){return String(e&&(e.scope_provider_name||e.scope_provider)||``).trim()}function xM(e){return String(e&&(e.provider_name||e.provider_type)||``).trim()}function SM(e,t){let n=new Set,r=String(t&&t.scope_provider||``).trim();return r&&n.add(r),(Array.isArray(e)?e:[]).forEach(e=>{let t=xM(e);t&&n.add(t)}),[...n].sort()}function CM(e,t,n){let r=String(t||``).trim(),i=new Set,a=String(n&&n.scope_provider||``).trim(),o=String(n&&n.scope_model||``).trim();return r&&r===a&&o&&i.add(o),(Array.isArray(e)?e:[]).forEach(e=>{if(r&&xM(e)!==r)return;let t=String(e&&e.model&&e.model.id||``).trim();t&&i.add(t)}),[...i].sort()}function wM(e){let t=String(e&&e.scope_type||``).trim();return t===`provider_model`?`Provider Name + Model`:t===`provider_model_path`?`Provider Name + Model + Path`:t===`provider_path`?`Provider Name + Path`:t===`path`?`Path`:t===`provider`?`Provider Name`:`Global`}function TM(e){return String(e&&e.scope_display||`global`).trim()||`global`}function EM(e){let t=String(e&&e.name||``).trim();if(t)return t;let n=TM(e);return n===`global`?`All models`:n}function DM(e){let t=String(e||``).trim();if(!t)return``;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return`User path cannot contain "." or ".." segments.`;if(t.includes(`:`))return`User path cannot contain ":" segments.`}}return``}function OM(e){if(DM(e))return``;let t=String(e||``).trim();if(!t)return``;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`),r=[];for(let e of n){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function kM(e){let t=e||cM(),n=String(t.scope_provider||``).trim(),r=OM(t.scope_user_path);return{scope_provider:n,scope_model:n?String(t.scope_model||``).trim():``,scope_user_path:r}}function AM(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=OM(e&&e.scope_user_path);return!t&&!r?`global`:!t&&r?`path`:!n&&!r?`provider`:!n&&r?`provider_path`:r?`provider_model_path`:`provider_model`}function jM(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=OM(e&&e.scope_user_path),i=AM({scope_provider:t,scope_model:n,scope_user_path:r});return i===`global`?`global`:i===`path`?r:i===`provider`?t:i===`provider_path`?t+` @ `+r:i===`provider_model_path`?t+`/`+n+` @ `+r:t+`/`+n}function MM(e,t){let n=t||lM(),r=bM(e&&e.scope),i=r?String(e&&e.scope&&e.scope.scope_model||``).trim():``,a=OM(e&&e.scope&&e.scope.scope_user_path);return r===String(n.scope_provider||``).trim()&&i===String(n.scope_model||``).trim()&&a===OM(n.scope_user_path)}function NM(e,t,n){let r=kM(t);return!(r.scope_provider!==``||r.scope_model!==``||r.scope_user_path!==``)&&!n?null:(Array.isArray(e)?e:[]).find(e=>MM(e,r))||null}function PM(e){return String(e&&e.scope_type||``).trim()!==`global`}function FM(e){let t=String(e||``).trim();return t?t.length<=14?t:t.slice(0,12)+`…`:`—`}function IM(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.description,e.scope_display,e.scope_type,bM(e&&e.scope),e.scope&&e.scope.scope_model,e.scope&&e.scope.scope_user_path,e.workflow_hash,...Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails.map(e=>e.ref):[]].some(e=>String(e||``).toLowerCase().includes(r)))}function LM(e,t){let n=e||cM(),r=kM(n),i=mM(n.features||{}),a=hM(i,t);a.failover=i.failover;let o=!!a.guardrails,s=o?vM(n):[];return{id:sM,scope_type:AM(r),scope_display:jM(r),scope:{scope_provider_name:r.scope_provider,scope_model:r.scope_model,...r.scope_user_path?{scope_user_path:r.scope_user_path}:{}},name:String(n.name||``).trim(),description:String(n.description||``).trim(),workflow_payload:{schema_version:1,features:{cache:!!a.cache,audit:!!a.audit,usage:!!a.usage,budget:!!a.budget,guardrails:o,failover:!!a.failover},guardrails:s}}}function RM({form:e,caps:t,workflows:n=[],formHydrated:r=!1,hydratedScope:i=null}){let a=e||cM(),o=String(a.scope_provider||``).trim(),s=o?String(a.scope_model||``).trim():``,c=OM(a.scope_user_path),l=mM(a.features||{}),u=hM(l,t),d=NM(n,a,r),f=d&&d.workflow_payload&&d.workflow_payload.features,p=pM(f,`failover`),m=p?fM(f,`failover`,!0)!==!1:null,h=i||lM(),g=String(h.scope_provider||``).trim()===o&&String(h.scope_model||``).trim()===s&&OM(h.scope_user_path)===OM(c),_=!!(t&&t.failover),v=_||!!r&&g&&Object.prototype.hasOwnProperty.call(l,`failover`)||!r&&!!d&&p,y=u.guardrails?(Array.isArray(a.guardrails)?a.guardrails:[]).map(e=>({ref:String(e&&e.ref||``).trim(),step:dM(e&&e.step)})):[],b={scope_provider_name:o,scope_model:s,...c?{scope_user_path:c}:{},name:String(a.name||``).trim(),description:String(a.description||``).trim(),workflow_payload:{schema_version:1,features:{cache:!!u.cache,audit:!!u.audit,usage:!!u.usage,budget:!!u.budget,guardrails:!!u.guardrails},guardrails:y}};return v&&(b.workflow_payload.features.failover=!_&&!r&&d&&p?m:!!l.failover),b}function zM(e,{models:t=[],hydratedScope:n=null}={}){let r=n||lM(),i=String(r.scope_provider||``).trim(),a=String(r.scope_model||``).trim(),o=String(e&&(e.scope_provider_name||e.scope_provider)||``).trim(),s=String(e&&e.scope_model||``).trim();if(o&&!SM(t,r).includes(o)&&o!==i)return`Choose a registered provider name.`;if(s&&!o)return`Model selection requires a provider name.`;if(s){let e=CM(t,o,r),n=o===i&&s===a;if(!e.includes(s)&&!n)return`Choose a registered model for the selected provider name.`}let c=DM(e.scope_user_path);if(c)return c;let l=e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:{},u=Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[];if(!l.guardrails)return``;let d=new Set;for(let e of u){if(!e.ref)return`Each guardrail step needs a guardrail ref.`;if(!Number.isInteger(e.step)||e.step<0)return`Each guardrail step must use a non-negative integer step number.`;if(d.has(e.ref))return`Each guardrail ref may appear only once in a workflow.`;d.add(e.ref)}return``}var BM=new class{#e=A(M([]));get workflows(){return L(this.#e)}set workflows(e){j(this.#e,e,!0)}#t=A(!0);get available(){return L(this.#t)}set available(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=A(``);get error(){return L(this.#r)}set error(e){j(this.#r,e,!0)}#i=A(``);get filter(){return L(this.#i)}set filter(e){j(this.#i,e,!0)}#a=A(!1);get formOpen(){return L(this.#a)}set formOpen(e){j(this.#a,e,!0)}#o=A(!1);get submitting(){return L(this.#o)}set submitting(e){j(this.#o,e,!0)}#s=A(``);get deactivatingID(){return L(this.#s)}set deactivatingID(e){j(this.#s,e,!0)}#c=A(``);get formError(){return L(this.#c)}set formError(e){j(this.#c,e,!0)}#l=A(!1);get formHydrated(){return L(this.#l)}set formHydrated(e){j(this.#l,e,!0)}#u=A(M(lM()));get hydratedScope(){return L(this.#u)}set hydratedScope(e){j(this.#u,e,!0)}#d=A(M([]));get guardrailRefs(){return L(this.#d)}set guardrailRefs(e){j(this.#d,e,!0)}#f=A(M(cM()));get form(){return L(this.#f)}set form(e){j(this.#f,e,!0)}#p=null;failoverVisible(){return js.booleanFlag(`FAILOVER_ENABLED`,!0)}featureCaps(){return{cache:js.cacheVisible(),audit:js.auditVisible(),usage:js.usageVisible(),budget:js.budgetsVisible(),guardrails:js.guardrailsVisible(),failover:this.failoverVisible()}}get filteredWorkflows(){return IM(this.workflows,this.filter)}providerOptions(){return SM(Kc.models,this.hydratedScope)}modelOptions(e){return CM(Kc.models,e,this.hydratedScope)}activeScopeMatch(){return NM(this.workflows,this.form,this.formHydrated)}submitMode(){return this.activeScopeMatch()?`save`:`create`}submitLabel(){return this.submitMode()===`save`?`Save`:`Create`}submittingLabel(){return this.submitMode()===`save`?`Saving...`:`Creating...`}preview(){return LM(this.form,this.featureCaps())}openCreate(e){if(this.formOpen=!0,this.submitting=!1,this.formError=``,!e){this.formHydrated=!1,this.hydratedScope=lM(),this.form=cM();return}this.formHydrated=!0,this.hydratedScope={scope_provider:bM(e.scope),scope_model:String(e.scope&&e.scope.scope_model||``).trim(),scope_user_path:String(e.scope&&e.scope.scope_user_path||``).trim()};let t=e.workflow_payload&&e.workflow_payload.features?mM(e.workflow_payload.features):gM(e,this.featureCaps()),n=Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails.map(e=>({ref:String(e&&e.ref||``).trim(),step:dM(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0):vM(e);this.form={scope_provider:bM(e.scope),scope_model:String(e.scope&&e.scope.scope_model||``),scope_user_path:String(e.scope&&e.scope.scope_user_path||``),name:String(e.name||``),description:String(e.description||``),features:{cache:!!t.cache,audit:!!t.audit,usage:!!t.usage,budget:!!t.budget,guardrails:!!t.guardrails,failover:!!t.failover},guardrails:n.map(e=>({ref:String(e&&e.ref||``),step:Number.isFinite(e&&e.step)?e.step:10}))}}closeForm(){this.formOpen=!1,this.submitting=!1,this.formError=``,this.formHydrated=!1,this.hydratedScope=lM(),this.form=cM()}setProvider(e){if(this.form.scope_provider=String(e||``).trim(),!this.form.scope_provider){this.form.scope_model=``;return}this.modelOptions(this.form.scope_provider).includes(String(this.form.scope_model||``).trim())||(this.form.scope_model=``)}addGuardrailStep(){let e=(Array.isArray(this.form.guardrails)?this.form.guardrails:[]).reduce((e,t)=>{let n=Number(t&&t.step);return Number.isFinite(n)?Math.max(e,n):e},0)+10;this.form.guardrails.push(uM(e))}removeGuardrailStep(e){Array.isArray(this.form.guardrails)&&this.form.guardrails.splice(e,1)}buildRequest(){return RM({form:this.form,caps:this.featureCaps(),workflows:this.workflows,formHydrated:this.formHydrated,hydratedScope:this.hydratedScope})}async fetchWorkflows(){this.#p&&this.#p.abort();let e=new AbortController;this.#p=e,this.loading=!0,this.error=``;let t=setTimeout(()=>e.abort(),1e4),n=await HT(`/admin/workflows`,{label:`workflows`,options:{signal:e.signal}});if(clearTimeout(t),this.#p===e&&(this.#p=null,this.loading=!1,n.status!==`stale`)){if(n.status===`unavailable`){this.available=!1,this.workflows=[];return}if(n.result&&(this.available=!0),n.status===`error`){this.workflows=[],this.error=e.signal.aborted?`Loading workflows timed out.`:n.error;return}this.workflows=n.items}}async fetchGuardrailRefs(){let e=await HT(`/admin/workflows/guardrails`,{label:`workflow guardrails`});e.status!==`stale`&&(this.guardrailRefs=e.items)}async fetchPage(){await Promise.all([js.ensureLoaded(),this.fetchWorkflows(),this.fetchGuardrailRefs()])}async submitForm(){if(this.submitting)return;this.formError=``;let e=this.buildRequest(),t=zM(e,{models:Kc.models,hydratedScope:this.hydratedScope});if(t){this.formError=t;return}this.submitting=!0;try{let t=await UT(`/admin/workflows`,`POST`,e,{label:`create workflow`,unavailableStatuses:[]});if(t.status===`stale`||t.result&&t.result.status===401)return;if(t.status===`error`){this.formError=t.error;return}dc.success(`Workflow created and activated.`),this.closeForm(),this.fetchPage()}finally{this.submitting=!1}}async deactivate(e){let t=String(e&&e.id||``).trim();if(!t||this.deactivatingID||!PM(e))return;let n=EM(e);if(confirm(`Deactivate workflow "`+n+`"? Requests will fall back to the next active workflow for this scope.`)){this.deactivatingID=t;try{let e=await UT(`/admin/workflows/`+encodeURIComponent(t)+`/deactivate`,`POST`,void 0,{label:`deactivate workflow`,unavailableStatuses:[]});if(e.status===`stale`||e.result&&e.result.status===401)return;if(e.status===`error`){dc.error(e.error);return}dc.success(`Workflow deactivated.`),this.fetchPage()}finally{this.deactivatingID=``}}}},VM=z(``);function HM(e,t){D(t,!0);let n=K(t,`workflowID`,3,``),r=Zw({logPrefix:`Failed to copy workflow ID:`});kn(()=>{n(),r.reset()});let i=k(()=>r.error?`Unable to copy workflow ID`:r.copied?`Workflow ID copied`:`Copy workflow ID`),a=k(()=>n()?L(i)+` `+n():L(i));async function o(e){e.preventDefault(),n()&&await r.copy(n())}var s=VM();let c;var l=F(N(s),4),u=N(l,!0);E(l);var d=F(l,2);q(N(d),{get icon(){return Xa}}),E(d),E(s),I(()=>{c=W(s,1,`workflow-pipeline-meta mono svelte-1viff7o`,null,c,{"workflow-pipeline-meta-copied":r.copied,"workflow-pipeline-meta-error":r.error}),G(s,`title`,L(i)),G(s,`aria-label`,L(a)),V(u,n())}),R(`click`,s,o),B(e,s),O()}Vr([`click`]);var UM=(e,t)=>{let n=()=>(t?.()).icon,r=()=>(t?.()).label,i=Dt(()=>h((t?.()).variant,`workflow-node-feature`)),a=()=>(t?.()).state,o=()=>(t?.()).sub,s=()=>(t?.()).badge;var c=qM(),l=N(c),u=e=>{var t=WM();let r;q(N(t),{get icon(){return n()}}),E(t),I(()=>r=W(t,1,`workflow-node-icon svelte-nbptrg`,null,r,{"workflow-node-icon-endpoint":L(i)===`workflow-node-endpoint`})),B(e,t)};H(l,e=>{n()&&e(u)});var d=F(l,2),f=N(d,!0);E(d);var p=F(d,2),m=e=>{var t=GM(),n=N(t,!0);E(t),I(()=>V(n,s())),B(e,t)};H(p,e=>{s()&&e(m)});var g=F(p,2),_=e=>{var t=KM(),n=N(t,!0);E(t),I(()=>V(n,o())),B(e,t)};H(g,e=>{o()&&e(_)}),E(c),I(()=>{W(c,1,Pi([`workflow-node`,L(i),a()]),`svelte-nbptrg`),V(f,r())}),B(e,c)},WM=z(`
        `),GM=z(` `),KM=z(` `),qM=z(`
        `),JM=z(`
        `,1),YM=z(`
        `,1),XM=z(`
        `),ZM=z(`
        Async
        `),QM=z(`
        `);function $M(e,t){D(t,!0);let n=K(t,`chart`,19,()=>({}));var r=QM();let i;var a=N(r),o=e=>{HM(e,{get workflowID(){return n().workflowID}})};H(a,e=>{n().workflowID&&e(o)});var s=F(a,2),c=N(s);UM(c,()=>({icon:Fo,label:`Client`,variant:`workflow-node-endpoint`}));var l=F(c,4);UM(l,()=>({icon:Qa,label:`Auth`,state:n().authNodeClass,sub:n().authNodeSublabel}));var u=F(l,2),d=e=>{var t=JM(),r=P(t);UM(F(r,2),()=>({icon:Qa,label:`Cache`,state:n().cacheNodeClass,badge:n().cacheStatusLabel})),I(()=>W(r,1,Pi([`workflow-conn`,n().cacheConnClass]),`svelte-nbptrg`)),B(e,t)};H(u,e=>{n().showCache&&e(d)});var f=F(u,2),p=e=>{var t=YM();UM(F(P(t),2),()=>({icon:Io,label:`Budget`,state:n().budgetNodeClass,badge:n().budgetStatusLabel})),B(e,t)};H(f,e=>{n().showBudget&&e(p)});var m=F(f,2),h=e=>{var t=YM();UM(F(P(t),2),()=>({icon:Do,label:`Guardrails`,sub:n().guardrailLabel})),B(e,t)};H(m,e=>{n().showGuardrails&&e(h)});var g=F(m,2),_=F(g,2);UM(_,()=>({label:n().aiLabel,variant:`workflow-node-ai`,state:n().aiNodeClass,sub:n().aiSublabel}));var v=F(_,2),y=e=>{var t=JM(),r=P(t);UM(F(r,2),()=>({icon:co,label:`Failover`,state:n().failoverNodeClass,badge:n().failoverStatusLabel,sub:n().failoverTargetLabel})),I(()=>W(r,1,Pi([`workflow-conn`,n().failoverConnClass]),`svelte-nbptrg`)),B(e,t)};H(v,e=>{n().showFailover&&e(y)});var b=F(v,2);UM(F(b,2),()=>({icon:Ka,label:`Response`,variant:`workflow-node-endpoint`,state:n().responseNodeClass,sub:n().responseNodeSublabel})),E(s);var x=F(s,2),S=e=>{var t=ZM(),r=N(t),i=N(r),a=e=>{UM(e,()=>({icon:za,label:`Usage`,variant:`workflow-node-feature workflow-node-async`,state:n().usageNodeClass}))};H(i,e=>{n().showUsage&&e(a)});var o=F(i,2),s=e=>{B(e,XM())};H(o,e=>{n().showUsage&&n().showAudit&&e(s)});var c=F(o,2),l=e=>{UM(e,()=>({icon:$a,label:`Audit Log`,variant:`workflow-node-feature workflow-node-async`,state:n().auditNodeClass}))};H(c,e=>{n().showAudit&&e(l)}),E(r),He(4),E(t),B(e,t)};H(x,e=>{n().showAsync&&e(S)}),E(r),I(()=>{i=W(r,1,`workflow-pipeline svelte-nbptrg`,null,i,{"workflow-pipeline-has-meta":n().workflowID}),W(g,1,Pi([`workflow-conn`,n().aiConnClass]),`svelte-nbptrg`),W(b,1,Pi([`workflow-conn`,n().responseConnClass]),`svelte-nbptrg`)}),B(e,r),O()}function eN(e){let t=vM(e).length;return t===0?``:t===1?`1 step`:t+` steps`}function tN(e,t){return t&&t.provider?t.provider:bM(e&&e.scope)||`AI`}function nN(e,t){return t&&t.model?t.model:e&&e.scope&&e.scope.scope_model||null}function rN(e,t){let n=String(e&&e.id||``).trim();if(n&&n!==`draft-workflow-preview`)return n;let r=String(t&&t.workflow_version_id||``).trim();return r&&r!==`draft-workflow-preview`?r:null}function iN(e){let t=e&&e.data&&e.data.workflow_features;return!t||typeof t!=`object`||Array.isArray(t)?null:mM(t)}function aN(e){let t=e&&e.data&&e.data.failover;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=String(t.target_model||t.targetModel||``).trim()||null;return n?{targetModel:n}:null}function oN(e,t=0){if(t>4||e==null)return``;if(typeof e==`string`){let n=e.trim();if(!n||n[0]!==`{`&&n[0]!==`[`)return``;try{return oN(JSON.parse(n),t+1)}catch{return``}}if(Array.isArray(e)){for(let n of e){let e=oN(n,t+1);if(e)return e}return``}return typeof e==`object`?String(e.code||``).trim()||(e.error===void 0?``:oN(e.error,t+1)):``}function sN(e){let t=e&&e.data&&typeof e.data==`object`&&!Array.isArray(e.data)?e.data:{};return String(t.error_code||t.errorCode||``).trim()||oN(t.response_body)}function cN(e){let t=String(e||``).trim();if(!t)return null;let n=t.indexOf(`/`);return n<=0||n>=t.length-1?null:{provider:t.slice(0,n),model:t.slice(n+1)}}function lN(e,t){let n=String(e&&(e.requested_model||e.model)||``).trim(),r=aN(e);if(!(r&&r.targetModel))return{provider:String(e&&e.provider||``).trim()||null,model:n||null};let i=cN(n);if(i)return i;let a=bM(t&&t.scope),o=a?String(t&&t.scope&&t.scope.scope_model||``).trim():``;return a||o?{provider:a||null,model:o||n||null}:{provider:null,model:n||null}}function uN(e,t){if(!e)return null;let n=(()=>{let t=String(e.cache_type||``).trim().toLowerCase();return t===`exact`||t===`semantic`?t:null})(),r=(()=>{if(e.status_code===void 0||e.status_code===null)return null;let t=String(e.status_code).trim();if(!t)return null;let n=Number(t);return Number.isFinite(n)?n:null})(),i=n?!0:e.cache_hit!==void 0&&e.cache_hit!==null&&!!e.cache_hit,a=aN(e),o=lN(e,t),s=Number.isFinite(r)&&r>=200&&r<300,c=String(e.error_type||``).trim().toLowerCase()===`authentication_error`,l=String(e.auth_method||``).trim().toLowerCase()||null,u=sN(e).toLowerCase()===`budget_exceeded`;return{cacheHit:i,cacheType:n||null,failoverTarget:a&&a.targetModel?a.targetModel:null,provider:o.provider,model:o.model,statusCode:r,responseSuccess:s,aiSuccess:s&&!i,authError:c,authMethod:l,budgetExceeded:u}}function dN(e){return!!(e&&e.cacheHit)}function fN(e){return!!(e&&e.failoverTarget)}function pN(e){return!!(e&&e.budgetExceeded)}function mN(e,t){return t?`workflow-node-current`:e&&e.cacheHit?`workflow-node-success`:``}function hN(e){return e&&e.cacheHit?`workflow-conn-hit`:``}function gN(e){return!e||!e.cacheHit?null:e.cacheType===`semantic`?`Hit (Semantic)`:`Hit (Exact)`}function _N(e,t,n,r){return e?pN(t)?`workflow-node-error`:r?`workflow-node-current`:n?`workflow-node-success`:``:``}function vN(e){return pN(e)?`Exceeded`:null}function yN(e){return e&&e.cacheHit?`workflow-node-skipped`:e&&e.failoverTarget?`workflow-node-success`:``}function bN(e){return e&&e.cacheHit?`workflow-conn-dim`:e&&e.failoverTarget?`workflow-conn-hit`:``}function xN(e){return e&&e.failoverTarget?`Redirected`:null}function SN(e){return e&&e.failoverTarget?e.failoverTarget:null}function CN(e){return e&&e.cacheHit?`workflow-conn-dim`:``}function wN(e,t){return e?e.cacheHit?`workflow-node-skipped`:t?`workflow-node-current`:e.aiSuccess?`workflow-node-success`:``:``}function TN(e,t){if(!e)return``;let n=e.statusCode;return!Number.isFinite(n)&&t?`workflow-node-current`:Number.isFinite(n)?n>=500?`workflow-node-error`:n>=400?`workflow-node-warning`:n>=300?`workflow-node-neutral`:n>=200?`workflow-node-success`:``:``}function EN(e){return!e||!Number.isFinite(e.statusCode)?null:String(e.statusCode)}function DN(e,t){return e?e.authError?`workflow-node-error`:t?`workflow-node-current`:e.authMethod===`api_key`||e.authMethod===`master_key`?`workflow-node-success`:``:``}function ON(e){return!e||!e.authMethod?null:e.authMethod}function kN(e,t,n){return e?n?`workflow-node-current`:t?`workflow-node-success`:``:``}function AN(e,t){if(!e||!e._live)return!!t;let n=String(e._live_state||``).trim();return!!e._audit_flushed||n===`audit.flushed`||n===`audit.detail`}function jN(e,t){if(!e)return!!t;let n=e.usage||{},r=Number(n.entries||0)>0;if(!e._live)return r;let i=String(e._usage_live_state||``).trim();return e._usage_flushed||i===`usage.flushed`?!0:!e._usage_live_pending&&r&&!e._live_pending}function MN(e){return!!(e&&e._live&&e._usage_live_pending&&!e._usage_flushed)}function NN(e,t){return!e||!e._live||AN(e,!1)?!1:String(e._live_state||``).trim()===`audit.completed`||!!(t&&Number.isFinite(t.statusCode))}function PN(e,t,n){return!e||!e._live?``:MN(e)?`usage`:NN(e,t)?`audit`:AN(e,!1)&&!e._live_pending?``:t&&t.cacheHit?`cache`:t&&(t.provider||t.model)?`ai`:n&&n.budget&&(e.workflow_version_id||e.requested_model)?`budget`:t&&t.authMethod?``:`auth`}function FN(e,t,n,r){let i=n||{},a=i.features&&typeof i.features==`object`&&!Array.isArray(i.features)?mM(i.features):gM(e,r),o=!!i.forceAudit,s=!!i.highlightAsyncPresent,c=!!a.budget||pN(t),l=!!a.guardrails,u=!!a.usage,d=o||!!a.audit,f=!!i.forceAsync||!!(u||d),p=!!a.failover||fN(t),m=rN(e,i.entry),h=PN(i.entry,t,a),g=MN(i.entry),_=NN(i.entry,t),v=AN(i.entry,s),y=jN(i.entry,s);return{showBudget:c,budgetNodeClass:_N(c,t,s,h===`budget`),budgetStatusLabel:vN(t),showGuardrails:l,guardrailLabel:l?eN(e):``,showCache:!!i.forceCache||!!a.cache||dN(t),cacheNodeClass:mN(t,h===`cache`),cacheConnClass:hN(t),cacheStatusLabel:gN(t),showFailover:p,failoverNodeClass:p?yN(t):``,failoverConnClass:p?bN(t):``,failoverStatusLabel:p?xN(t):null,failoverTargetLabel:p?SN(t):null,aiLabel:tN(e,t),aiSublabel:nN(e,t),aiConnClass:CN(t),aiNodeClass:wN(t,h===`ai`),responseConnClass:CN(t),responseNodeClass:TN(t,h===`response`),responseNodeSublabel:EN(t),authNodeClass:DN(t,h===`auth`),authNodeSublabel:ON(t),usageNodeClass:kN(u,y,g),auditNodeClass:kN(d,v,_),showAsync:f,showUsage:u,showAudit:d,workflowID:m}}function IN(e,t){return FN(e,null,{forceCache:!1},t)}function LN(e,t,n){return FN(t,uN(e,t),{entry:e,features:iN(e)||(t?gM(t,n):{cache:!1,audit:!1,usage:!1,budget:!1,guardrails:!1,failover:!1}),forceAudit:!0,forceAsync:!0,highlightAsyncPresent:!0},n)}var RN=z(`

        `),zN=z(`

        `),BN=z(`
        `),VN=z(`
        `),HN=z(`

        No guardrails configured for this workflow.

        `),UN=z(`

        Guardrails

        `),WN=z(``),GN=z(`

        `);function KN(e,t){D(t,!0);let n=K(t,`preview`,3,!1),r=k(()=>BM.featureCaps()),i=k(()=>EM(t.workflow)),a=k(()=>yM(t.workflow,L(r))),o=k(()=>IN(t.workflow,L(r))),s=k(()=>n()?`draft-workflow-preview-guardrail-`:t.workflow.id+`-guardrail-`);var c=GN();let l;var u=N(c),d=N(u),f=N(d),p=N(f,!0);E(f);var m=F(f,2),h=N(m,!0);E(m),E(d);var g=F(d,2),_=N(g),v=N(_,!0);E(_),E(g),E(u);var y=F(u,2),b=e=>{var n=RN(),r=N(n,!0);E(n),I(()=>V(r,t.workflow.description)),B(e,n)};H(y,e=>{t.workflow.description&&e(b)});var x=F(y,2),S=e=>{var n=zN(),i=N(n);E(n),I(e=>V(i,`Failover: ${e??``}`),[()=>_M(t.workflow,L(r))]),B(e,n)},C=k(()=>BM.failoverVisible());H(x,e=>{L(C)&&e(S)});var w=F(x,2);$M(w,{get chart(){return L(o)}});var T=F(w,2),ee=e=>{var t=UN(),n=N(t),r=F(N(n),2),i=N(r,!0);E(r),E(n);var o=F(n,2),c=e=>{var t=VN();U(t,23,()=>L(a),(e,t)=>L(s)+t,(e,t)=>{var n=BN(),r=N(n),i=N(r,!0);E(r);var a=F(r,2),o=N(a);E(a),E(n),I(()=>{V(i,L(t).ref),V(o,`step ${L(t).step??``}`)}),B(e,n)}),E(t),B(e,t)},l=e=>{B(e,HN())};H(o,e=>{L(a).length>0?e(c):e(l,-1)}),E(t),I(()=>V(i,L(a).length?L(a).length+` steps`:`None`)),B(e,t)},te=k(()=>js.guardrailsVisible());H(T,e=>{L(te)&&e(ee)});var ne=F(T,2),re=e=>{var n=WN(),r=N(n),a=N(r),o=N(a,!0);E(a);var s=F(a,2);{let e=k(()=>`Edit workflow `+L(i));VT(s,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>BM.openCreate(t.workflow),children:(e,t)=>{q(e,{get icon(){return po},class:`table-icon-svg`})},$$slots:{default:!0}})}E(r);var c=F(r,2),l=N(c),u=N(l);E(l);var d=F(l,2),f=N(d);E(d);var p=F(d,2),m=N(p);E(p),E(c),E(n),I((e,n,r,s)=>{a.disabled=e,G(a,`aria-label`,`Deactivate workflow `+L(i)),G(a,`title`,n),V(o,BM.deactivatingID===t.workflow.id?`Deactivating...`:`Deactivate`),V(u,`version: v${t.workflow.version??``}`),V(f,`created: ${r??``}`),V(m,`hash: ${s??``}`)},[()=>BM.deactivatingID===t.workflow.id||!PM(t.workflow),()=>PM(t.workflow)?`Deactivate active workflow`:`The global workflow cannot be deactivated.`,()=>bs.formatTimestamp(t.workflow.created_at),()=>FM(t.workflow.workflow_hash)]),R(`click`,a,()=>BM.deactivate(t.workflow)),B(e,n)};H(ne,e=>{n()||e(re)}),E(c),I((e,t)=>{l=W(c,1,`workflow-card svelte-1fo9fvq`,null,l,{"workflow-preview-card":n()}),V(p,e),V(h,L(i)),V(v,t)},[()=>wM(t.workflow),()=>TM(t.workflow)]),B(e,c),O()}Vr([`click`]);var qN=z(`

        `),JN=z(``),YN=z(``),XN=z(``),ZN=z(``),QN=z(``),$N=z(``),eP=z(``),tP=z(``),nP=z(``),rP=z(``),iP=z(``),aP=z(``),oP=z(`
        No named guardrails are currently registered on this deployment. You can still draft a workflow, but guardrail-backed creation may be rejected.
        `),sP=z(`
        `),cP=z(`
        `),lP=z(`

        No guardrail steps configured yet.

        `),uP=z(`

        Guardrail Steps

        Guardrails in the same numeric step run together. Later steps wait for earlier ones to finish.

        `),dP=z(`

        Leave provider name empty to target all providers and models. Select a provider name without a model to target all models for that configured provider.

        Add a path to scope the workflow to that subtree. Leading slashes are optional and will be normalized; you can enter "team/alpha" or "/team/alpha". Matching checks the deepest user path first, then falls back toward the root.

        If you leave the name empty, the workflow will display as the matched provider/model scope or “All models”.

        Preview

        Live
        `,1);function fP(e,t){D(t,!0);{let t=e=>{oC(e,{copyId:`workflow-help-copy`,label:`workflow help`,text:`Create immutable version. Submitting activates it for the selected scope.`,title:e=>{var t=qN(),n=N(t,!0);E(t),I(e=>V(n,e),[()=>BM.submitMode()===`save`?`Edit Workflow`:`Create Workflow`]),B(e,t)},$$slots:{title:!0}})},n=k(()=>BM.submitLabel()),r=k(()=>BM.submittingLabel()),i=k(()=>BM.submitMode()===`create`?ho:yo);GE(e,{get open(){return BM.formOpen},ariaLabel:`Workflow editor`,get error(){return BM.formError},get submitting(){return BM.submitting},get submitLabel(){return L(n)},get submittingLabel(){return L(r)},get submitIcon(){return L(i)},dialogClass:`workflow-editor`,onclose:()=>BM.closeForm(),onsubmit:()=>BM.submitForm(),header:t,children:(e,t)=>{var n=dP(),r=P(n),i=N(r);qE(i,{id:`workflow-scope-provider`,label:`Provider Name`,children:(e,t)=>{var n=YN(),r=N(n);r.value=r.__value=``,U(F(r),16,()=>BM.providerOptions(),e=>e,(e,t)=>{var n=JN(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(n),R(`change`,n,e=>BM.setProvider(e.currentTarget.value)),Wi(n,()=>BM.form.scope_provider,e=>BM.form.scope_provider=e),B(e,n)},$$slots:{default:!0}});var a=F(i,2),o=e=>{qE(e,{id:`workflow-scope-model`,label:`Model`,children:(e,t)=>{var n=XN(),r=N(n);r.value=r.__value=``,U(F(r),17,()=>BM.modelOptions(BM.form.scope_provider),e=>BM.form.scope_provider+`-`+e,(e,t)=>{var n=JN(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t)),i!==(i=L(t))&&(n.value=(n.__value=L(t))??``)}),B(e,n)}),E(n),Wi(n,()=>BM.form.scope_model,e=>BM.form.scope_model=e),B(e,n)},$$slots:{default:!0}})};H(a,e=>{BM.form.scope_provider&&e(o)});var s=F(a,2);qE(s,{id:`workflow-name`,label:`Name`,children:(e,t)=>{var n=ZN();ta(n),ua(n,()=>BM.form.name,e=>BM.form.name=e),B(e,n)},$$slots:{default:!0}}),qE(F(s,2),{id:`workflow-user-path`,label:`User Path`,children:(e,t)=>{var n=QN();ta(n),ua(n,()=>BM.form.scope_user_path,e=>BM.form.scope_user_path=e),B(e,n)},$$slots:{default:!0}}),E(r);var c=F(r,8);qE(c,{id:`workflow-description`,label:`Description`,children:(e,t)=>{var n=$N();dt(n),ua(n,()=>BM.form.description,e=>BM.form.description=e),B(e,n)},$$slots:{default:!0}});var l=F(c,2),u=N(l),d=e=>{var t=eP(),n=N(t);ta(n),He(2),E(t),da(n,()=>BM.form.features.cache,e=>BM.form.features.cache=e),B(e,t)},f=k(()=>js.cacheVisible());H(u,e=>{L(f)&&e(d)});var p=F(u,2),m=e=>{var t=tP(),n=N(t);ta(n),He(2),E(t),da(n,()=>BM.form.features.audit,e=>BM.form.features.audit=e),B(e,t)},h=k(()=>js.auditVisible());H(p,e=>{L(h)&&e(m)});var g=F(p,2),_=e=>{var t=nP(),n=N(t);ta(n),He(2),E(t),da(n,()=>BM.form.features.usage,e=>BM.form.features.usage=e),B(e,t)},v=k(()=>js.usageVisible());H(g,e=>{L(v)&&e(_)});var y=F(g,2),b=e=>{var t=rP(),n=N(t);ta(n),He(2),E(t),da(n,()=>BM.form.features.budget,e=>BM.form.features.budget=e),B(e,t)},x=k(()=>js.budgetsVisible());H(y,e=>{L(x)&&e(b)});var S=F(y,2),C=e=>{var t=iP(),n=N(t);ta(n),He(2),E(t),da(n,()=>BM.form.features.guardrails,e=>BM.form.features.guardrails=e),B(e,t)},w=k(()=>js.guardrailsVisible());H(S,e=>{L(w)&&e(C)});var T=F(S,2),ee=e=>{var t=aP(),n=N(t);ta(n),He(2),E(t),da(n,()=>BM.form.features.failover,e=>BM.form.features.failover=e),B(e,t)},te=k(()=>BM.failoverVisible());H(T,e=>{L(te)&&e(ee)}),E(l);var ne=F(l,2),re=F(N(ne),2);{let e=k(()=>BM.preview());KN(re,{get workflow(){return L(e)},preview:!0})}E(ne);var ie=F(ne,2),ae=e=>{var t=uP(),n=N(t),r=F(N(n),2);E(n);var i=F(n,2),a=e=>{var t=oP(),n=F(N(t),2);E(t),R(`click`,n,()=>Zo.navigate(`guardrails`)),B(e,t)};H(i,e=>{BM.guardrailRefs.length===0&&e(a)});var o=F(i,2),s=e=>{var t=cP();U(t,21,()=>BM.form.guardrails,ai,(e,t,n)=>{var r=sP(),i=N(r),a=N(i);G(a,`for`,`workflow-guardrail-ref-`+n);var o=F(a,2);ta(o),G(o,`id`,`workflow-guardrail-ref-`+n),G(o,`aria-label`,`Guardrail reference `+(n+1)),E(i);var s=F(i,2),c=N(s);G(c,`for`,`workflow-guardrail-step-`+n);var l=F(c,2);ta(l),G(l,`id`,`workflow-guardrail-step-`+n),G(l,`aria-label`,`Guardrail step `+(n+1)),E(s);var u=F(s,2);E(r),ua(o,()=>L(t).ref,e=>L(t).ref=e),ua(l,()=>L(t).step,e=>L(t).step=e),R(`click`,u,()=>BM.removeGuardrailStep(n)),B(e,r)}),E(t),B(e,t)},c=e=>{B(e,lP())};H(o,e=>{BM.form.guardrails.length>0?e(s):e(c,-1)}),E(t),R(`click`,r,()=>BM.addGuardrailStep()),B(e,t)},oe=k(()=>BM.form.features.guardrails&&js.guardrailsVisible());H(ie,e=>{L(oe)&&e(ae)}),B(e,n)},$$slots:{header:!0,default:!0}})}O()}Vr([`change`,`click`]);var pP=z(`

        Loading workflows...

        `),mP=z(`
        `),hP=z(`

        No active workflows found.

        `),gP=z(`

        No workflows match your filter.

        `),_P=z(`
        `);function vP(e,t){D(t,!0);var n=_P(),r=N(n),i=e=>{var t=pP();FS(N(t),{size:16,label:`Loading workflows`}),He(),E(t),B(e,t)};H(r,e=>{BM.loading&&!J.authError&&e(i)});var a=F(r,2),o=e=>{var t=mP();U(t,21,()=>BM.filteredWorkflows,e=>e.id,(e,t)=>{KN(e,{get workflow(){return L(t)}})}),E(t),B(e,t)};H(a,e=>{BM.filteredWorkflows.length>0&&e(o)});var s=F(a,2),c=e=>{B(e,hP())};H(s,e=>{BM.workflows.length===0&&!BM.loading&&!J.authError&&BM.available&&e(c)});var l=F(s,2),u=e=>{B(e,gP())};H(l,e=>{BM.workflows.length>0&&BM.filteredWorkflows.length===0&&!BM.loading&&e(u)}),E(n),B(e,n),O()}var yP=z(``),bP=z(`
        Workflows feature is unavailable.
        `),xP=z(`
        `),SP=z(`
        `),CP=z(``),wP=z(`
        `);function TP(e,t){D(t,!0),kn(()=>{J.refreshTick,BM.fetchPage()});var n=wP(),r=N(n),i=F(N(r),2),a=N(i),o=e=>{var t=yP();q(N(t),{get icon(){return ho},class:`form-action-icon`,"aria-hidden":`true`}),He(2),E(t),R(`click`,t,()=>BM.openCreate()),B(e,t)};H(a,e=>{BM.available&&e(o)}),E(i),E(r);var s=F(r,2),c=e=>{B(e,bP())};H(s,e=>{!BM.available&&!J.authError&&e(c)});var l=F(s,2),u=e=>{var t=xP(),n=N(t,!0);E(t),I(()=>V(n,BM.error)),B(e,t)};H(l,e=>{BM.error&&!J.authError&&e(u)});var d=F(l,2),f=e=>{var t=SP(),n=N(t);Fw(N(n),{placeholder:`Filter by scope, name, hash, or guardrail...`,label:`Filter workflows by scope, name, hash, or guardrail`,get value(){return BM.filter},set value(e){BM.filter=e}}),E(n);var r=F(n,2),i=N(r),a=N(i,!0);E(i),E(r),E(t),I(()=>V(a,BM.filteredWorkflows.length+` active scopes`)),B(e,t)};H(d,e=>{BM.available&&e(f)});var p=F(d,2);fP(p,{});var m=F(p,2);vP(m,{});var h=F(m,2);U(h,20,()=>BM.guardrailRefs,e=>e,(e,t)=>{var n=CP(),r={};I(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(h),E(n),B(e,n),O()}Vr([`click`]);function EP(e,{from:t,to:n},r={}){var{delay:i=0,duration:a=e=>Math.sqrt(e)*120,easing:o=cc}=r,s=getComputedStyle(e),c=s.transform===`none`?``:s.transform,[l,u]=s.transformOrigin.split(` `).map(parseFloat);l/=e.clientWidth,u/=e.clientHeight;var d=DP(e),f=e.clientWidth/n.width/d,p=e.clientHeight/n.height/d,m=t.left+t.width*l,h=t.top+t.height*u,g=n.left+n.width*l,_=n.top+n.height*u,v=(m-g)*f,y=(h-_)*p,b=t.width/n.width,x=t.height/n.height;return{delay:i,duration:typeof a==`function`?a(Math.sqrt(v*v+y*y)):a,easing:o,css:(e,t)=>`transform: ${c} translate(${t*v}px, ${t*y}px) scale(${e+t*b}, ${e+t*x});`}}function DP(e){if(`currentCSSZoom`in e)return e.currentCSSZoom;for(var t=e,n=1;t!==null;)n*=+getComputedStyle(t).zoom,t=t.parentElement;return n}var OP=null;function kP(){return OP===null&&(OP=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`)),!!(OP&&OP.matches)}function AP(e){return kP()?0:e}function jP(e,t){return!t||!t.live?{duration:0}:oc(e,{duration:AP(150)})}var MP=new class{#e=A(M({}));get workflowVersionsByID(){return L(this.#e)}set workflowVersionsByID(e){j(this.#e,e,!0)}workflowVersionRequests={};workflowFeatureCaps(){return{cache:js.cacheVisible(),audit:js.auditVisible(),usage:js.usageVisible(),budget:js.budgetsVisible(),guardrails:js.guardrailsVisible(),failover:js.booleanFlag(`FAILOVER_ENABLED`,!0)}}cacheWorkflowVersion(e){let t=String(e&&e.id||``).trim();return t?(this.workflowVersionsByID={...this.workflowVersionsByID||{},[t]:e},e):null}cacheMissingWorkflowVersion(e){let t=String(e||``).trim();t&&(this.workflowVersionsByID={...this.workflowVersionsByID||{},[t]:null})}workflowVersionCacheHas(e){return Object.prototype.hasOwnProperty.call(this.workflowVersionsByID||{},String(e||``).trim())}workflowVersionByID(e){let t=String(e||``).trim();return t&&this.workflowVersionCacheHas(t)?this.workflowVersionsByID[t]:null}async fetchWorkflowVersion(e){let t=String(e||``).trim();if(!t)return null;if(this.workflowVersionCacheHas(t))return this.workflowVersionsByID[t];if(this.workflowVersionRequests[t])return this.workflowVersionRequests[t];let n=(async()=>{let e=typeof AbortController==`function`?new AbortController:null,n=e?setTimeout(()=>e.abort(),1e4):null;try{let n=await Es(`/admin/workflows/`+encodeURIComponent(t),{label:`workflow`,signal:e?e.signal:void 0});if(n.stale)return null;if(n.status===404)return this.cacheMissingWorkflowVersion(t),null;if(!n.ok)return null;let r=n.data;return!r||typeof r!=`object`||Array.isArray(r)?(this.cacheMissingWorkflowVersion(t),null):this.cacheWorkflowVersion(r)}catch(e){return e&&e.name===`AbortError`||console.error(`Failed to fetch workflow version:`,e),null}finally{n!==null&&clearTimeout(n),delete this.workflowVersionRequests[t]}})();return this.workflowVersionRequests[t]=n,n}async prefetchAuditWorkflows(e){let t=[...new Set((Array.isArray(e)?e:[]).map(e=>String(e&&e.workflow_version_id||``).trim()).filter(Boolean))];t.length!==0&&await Promise.all(t.map(e=>this.fetchWorkflowVersion(e)))}auditEntryWorkflow(e){let t=String(e&&e.workflow_version_id||``).trim();return t?this.workflowVersionByID(t):null}},NP=6;function PP(e){if(typeof e!=`string`)return null;try{return JSON.parse(e)}catch{return null}}function FP(e,t=0,n=null){let r=String(e||``).trim();if(!r)return``;if(t>NP)return r;let i=PP(r);return i==null?r:IP(i,t+1,n)||n&&n(i)||r}function IP(e,t=0,n=null,r=null){if(e==null||t>NP)return``;if(typeof e==`string`){let i=PP(e.trim());return i==null?``:IP(i,t+1,n,r)}if(typeof e!=`object`)return``;let i=r||new Set;if(i.has(e))return``;if(i.add(e),Array.isArray(e)){for(let r=0;r=400||zP(t&&t.response_body)}function VP(e){let t=e&&e.data?e.data:null;return t?LP(t.error_message)||(BP(e,t)?IP(t.response_body,0):``):``}function HP(e){if(e==null||String(e).trim()===``)return null;let t=Number(e);return!Number.isInteger(t)||t<0?null:t}function UP(e){let t=HP(e);return t===null?``:t===0?`Audit logs are retained indefinitely.`:t===1?`Audit logs are retained for 1 day.`:`Audit logs are retained for `+t+` days.`}function WP(e){let t=HP(e);return t===null?``:t===0?`Audit logs are retained `:`Audit logs are retained for `}function GP(e){let t=HP(e);return t===null?``:t===0?`indefinitely`:t===1?`1 day`:t+` days`}function KP({dateQuery:e,limit:t,offset:n,search:r,method:i,statusCode:a,stream:o}){let s=e;return s+=`&limit=`+t+`&offset=`+n,r&&(s+=`&search=`+encodeURIComponent(r)),i&&(s+=`&method=`+encodeURIComponent(i)),a&&(s+=`&status_code=`+encodeURIComponent(a)),o&&(s+=`&stream=`+encodeURIComponent(o)),s}function qP({sessionId:e,limit:t}){return`session_id=`+encodeURIComponent(e)+`&limit=`+(t||100)+`&offset=0`}function JP(e){return String(e&&e.session_id||``).trim()}function YP(e){let t=Number(e&&e.session_count);return Number.isFinite(t)&&t>1?t:1}function XP(e){return!!JP(e)&&YP(e)>1}function ZP(e){return{entries:(Array.isArray(e&&e.sessions)?e.sessions:[]).filter(e=>e&&e.latest).map(e=>({...e.latest,session_id:JP(e.latest)||String(e.session_id||``).trim(),session_count:Number(e.count||1)})),total:Number(e&&e.total||0),limit:Number(e&&e.limit||25),offset:Number(e&&e.offset||0)}}function QP(e,t,n){let r=new Set((Array.isArray(n)?n:[]).flatMap(e=>nF(e))),i=(Array.isArray(t)?t:[]).filter(e=>!nF(e).some(e=>r.has(e))),a=new Set([...r,...i.flatMap(e=>nF(e))]),o=(e&&Array.isArray(e.entries)?e.entries:[]).filter(e=>e&&e._live&&!nF(e).some(e=>a.has(e)));return{entries:[...o,...i],preservedCount:o.length}}function $P(e,t){let n=e||{};if(!t)return n;if(n[t]){let e={...n};return delete e[t],e}return{...n,[t]:!0}}function eF(e,t){let n=e||{},r=new Set((Array.isArray(t)?t:[]).map(e=>JP(e)).filter(Boolean)),i={},a=!1;return Object.keys(n).forEach(e=>{if(r.has(e)){i[e]=n[e];return}a=!0}),a?i:n}function tF(e){return String(e&&e.id||``).trim()}function nF(e){if(!e)return[];let t=[],n=String(e.id||``).trim(),r=String(e.request_id||``).trim();return n&&t.push(`id:`+n),r&&t.push(`request:`+r),t}function rF(e){return!!(e&&e._live&&e._live_pending&&!e._audit_flushed)}function iF(e){let t=e&&e.customStartDate,n=e&&e.customEndDate;if(!t&&!n)return!0;let r=new Date;if(t){let e=new Date(t);if(e.setHours(0,0,0,0),Number.isFinite(e.getTime())&&re)return!1}return!0}function aF(e,t){return e&&Number(e.offset||0)===0&&!(t&&t.search)&&!(t&&t.method)&&!(t&&t.statusCode)&&!(t&&t.stream)&&iF(t)}function oF(e,t,n){let r=e&&typeof e==`object`?{...e}:{entries:[],total:0,limit:25,offset:0},i=Array.isArray(r.entries)?r.entries:[];if(r.entries=i,!aF(r,n))return r;let a=(Array.isArray(t)?t:[]).filter(e=>rF(e));if(a.length===0)return r;let o=new Set(i.flatMap(e=>nF(e))),s=[];return a.forEach(e=>{let t=nF(e);t.length!==0&&(t.some(e=>o.has(e))||(t.forEach(e=>o.add(e)),s.push(e)))}),s.length===0?r:(r.entries=[...s,...i].slice(0,r.limit||25),r.total=Number(r.total||0)+s.length,r)}function sF(e,t,n){let r=e&&typeof e==`object`?{...e}:{entries:[],total:0,limit:25,offset:0},i=Array.isArray(r.entries)?r.entries:[];if(r.entries=i,!aF(r,n))return r;let a=(Array.isArray(t)?t:[]).filter(e=>rF(e));if(a.length===0)return r;let o=new Set(i.flatMap(e=>nF(e))),s=new Map;i.forEach((e,t)=>{let n=JP(e);n&&!s.has(n)&&s.set(n,t)});let c=[],l=i;return a.forEach(e=>{let t=nF(e);if(t.length===0||t.some(e=>o.has(e)))return;let n=JP(e);if(n&&s.has(n)){let r=s.get(n);l===i&&(l=[...i]),l[r]={...e,session_count:Math.max(YP(l[r]),YP(e))},t.forEach(e=>o.add(e));return}t.forEach(e=>o.add(e)),c.push(e)}),r.entries=[...c,...l].slice(0,r.limit||25),r.total=Number(r.total||0)+c.length,r}function cF(e,t){let n=tF(t),r=e||{};return n?r[n]?{}:{[n]:!0}:r}function lF(e,t){let n=e||{},r=new Set((Array.isArray(t)?t:[]).map(e=>tF(e)).filter(Boolean)),i={},a=!1;return Object.keys(n).forEach(e=>{if(r.has(e)){i[e]=!0;return}a=!0}),a?i:n}function uF(e){if(e==null)return`-`;let t=Number(e);return Number.isFinite(t)?t<=0?`pending`:t<1e6?Math.round(t/1e3)+` µs`:t<1e9?(t/1e6).toFixed(2)+` ms`:(t/1e9).toFixed(2)+` s`:`-`}function dF(e){if(e==null||e===``)return`status-unknown`;let t=Number(e);return Number.isFinite(t)?t>=500?`status-error`:t>=400?`status-warning`:t>=300?`status-neutral`:`status-success`:`status-unknown`}function fF(e){if(!e||!e._live||!e._live_pending)return!1;let t=String(e._live_state||``).trim();if(t===`audit.completed`||t===`audit.flushed`||t===`audit.detail`)return!1;if(e._response_partial)return!0;if(e.status_code!==null&&e.status_code!==void 0&&e.status_code!==``||Number(e.duration_ns||0)>0||e.error_type||e.error_message)return!1;let n=e.data||{};return!(n.response_headers||n.response_body||n.error_message)}function pF(e){let t=e&&e.data&&e.data.failover;return!t||typeof t!=`object`||Array.isArray(t)?null:String(t.target_model||t.targetModel||``).trim()||null}function mF(e){return(e&&e.data&&Array.isArray(e.data.attempts)?e.data.attempts:[]).map((e,t)=>({...e,seq:Number(e&&e.seq||t+1)})).sort((e,t)=>e.seq-t.seq)}function hF(e){let t=mF(e);return t.length>1||t.some(e=>!(e&&e.success))}function gF(e){if(!e)return`-`;let t=e.status_code||e.status;return t?String(t):e.success?`ok`:`error`}function _F(e){return String(e&&e.kind||``).trim()||`attempt`}function vF(e){if(!e)return`-`;let t=String(e.provider_name||``).trim(),n=String(e.provider_type||e.provider||``).trim();return t&&n&&t!==n?t+` (`+n+`)`:t||n||`-`}function yF(e){return String(e&&e.model||``).trim()||`-`}function bF(e){let t=mF(e);return t.length>1||t.some(e=>!(e&&e.success))?t:[]}function xF(e){return mF(e).length+`×`}function SF(e){let t=mF(e),n=t.filter(e=>!(e&&e.success)).length,r=t.length===1?`attempt`:`attempts`,i=t.length+` provider `+r;return n>0?i+` · `+n+` failed`:i}function CF(e){if(!e)return``;let t=[`#`+Number(e.seq||0)],n=_F(e);n&&n!==`attempt`&&t.push(n),t.push(gF(e));let r=vF(e);r&&r!==`-`&&t.push(r);let i=yF(e);return i&&i!==`-`&&t.push(i),t.push(e.success?`succeeded`:`failed`),t.join(` · `)}function wF(e,t){if(!t)return null;if(t.success){let t=e&&e.data?e.data:null;return t&&t.response_body!=null?t.response_body:null}return t.response_body!=null&&t.response_body!==``?t.response_body:null}function TF(e){if(!e||e.success)return``;let t=String(e.error_message||``).trim(),n=String(e.error_code||``).trim(),r=String(e.error_type||``).trim();return t&&n?n+`: `+t:t||n||r||`Provider attempt failed`}function EF(e,t){if(!t)return null;if(t.success){let t=e&&e.data?e.data:null;return t?t.response_headers:null}return t.response_headers||null}function DF(e){let t=Number(e&&e.status_code);return Number.isFinite(t)&&t>0?t:null}function OF(e,t){let n=!!(t&&t.success),r=e&&e.data?e.data:null,i=wF(e,t),a=EF(e,t),o=TF(t),s=i!=null&&i!==``,c=_F(t),l=mF(e).length<=1;return{title:`Response`,direction:`response`,seq:l?0:Number(t&&t.seq||0),kind:l||c===`attempt`?``:c,statusCode:l?null:DF(t),layout:`split`,entry:e,copyHeaders:a,copyBody:i,showErrorMessage:!!o,errorMessage:o,showHeaders:!!a,headers:a,showBody:s,body:i,showEmpty:!o&&!s&&!a,emptyMessage:`No response was captured for this attempt.`,showTooLarge:!!(n&&r&&r.response_body_too_big_to_handle),tooLargeMessage:`Response body was too large to capture.`}}function kF(e){return e&&e.data&&Array.isArray(e.data.request_revisions)?e.data.request_revisions:[]}function AF(e){return kF(e).filter(e=>!(e&&e.no_change))}function jF(e){return kF(e).filter(e=>e&&e.no_change).map(e=>{let t=String(e.rewriter||`rewriter`);return{id:`step-`+Number(e.seq||0),rewriter:t,label:t+`: no change`,title:t+` ran and forwarded the request unchanged`}})}function MF(e){let t=Number(e&&e.bytes_before),n=Number(e&&e.bytes_after);if(!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n>=t)return``;let r=(1-n/t)*100;return`-`+(r>=10?String(Math.round(r)):r.toFixed(1))+`%`}function NF(e,t){let n=t&&t.body,r=n!=null&&n!==``,i=AF(e).length<=1,a={rewriter:t&&t.rewriter||``,bytes:Number(t&&t.bytes_before||0)+` → `+Number(t&&t.bytes_after||0)};return t&&t.detail!=null&&(a.detail=t.detail),{title:`Rewritten`,direction:`request`,seq:i?0:Number(t&&t.seq||0),kind:t&&t.rewriter?String(t.rewriter):``,savingsLabel:MF(t),layout:`split`,entry:e,copyHeaders:a,copyBody:n,showErrorMessage:!1,errorMessage:null,showHeaders:!0,headers:a,headersTitle:`What changed`,showBody:r,body:n,showEmpty:!1,emptyMessage:``,showTooLarge:!r,tooLargeMessage:`Rewritten body not captured (body logging disabled or body too large).`}}function PF(e){let t=e&&e.usage;return!t||typeof t!=`object`?null:t}function FF(e){let t=PF(e);return Number(t&&t.cached_input_tokens||0)>0}function IF(e){let t=PF(e),n=Number(t&&t.input_tokens||0),r=Number(t&&t.cached_input_tokens||0);return!Number.isFinite(n)||n<=0||!Number.isFinite(r)||r<=0?0:Math.max(0,Math.min(100,r/n*100))}function LF(e){let t=PF(e);if(!t)return``;let n=Number(t.input_tokens||0),r=Number(t.cached_input_tokens||0);return n<=0?yc(r)+` cached`:IF(e).toFixed(1)+`% cached`}function RF(e){return FF(e)?LF(e):``}function zF(e,t){let n=PF(e);if(!n||!e||!e.data||!e.data.request_body)return null;let r=Number(n.estimated_cached_characters||0);if(!Number.isFinite(r)||r<=0||typeof t!=`function`)return null;let i=t(e.data.request_body);return!Array.isArray(i)||i.length===0?null:{characters:r,segments:i}}function BF(e,t){let n=e&&e.data?e.data:null,r=!n||!n.request_headers&&!n.request_body,i=r&&fF(e);return{title:`Request`,direction:`request`,layout:`split`,entry:e,copyHeaders:n&&n.request_headers,copyBody:n&&n.request_body,showErrorMessage:!1,errorMessage:null,showHeaders:!!(n&&n.request_headers),headers:n&&n.request_headers,showBody:!!(n&&n.request_body),body:n&&n.request_body,bodyCacheRatioLabel:RF(e),promptCacheHighlight:zF(e,t),noChangeSteps:jF(e),showEmpty:r&&!i,emptyMessage:`Request details were not captured.`,showPending:i,pendingMessage:`Waiting for request data…`,showTooLarge:!!(n&&n.request_body_too_big_to_handle),tooLargeMessage:`Request body was too large to capture.`}}function VF(e){let t=e&&e.data?e.data:null,n=VP(e),r=!t||!n&&!t.response_headers&&!t.response_body,i=r&&fF(e);return{title:`Response`,direction:`response`,layout:`split`,entry:e,copyHeaders:t&&t.response_headers,copyBody:t&&t.response_body,showErrorMessage:!!n,errorMessage:n,showHeaders:!!(t&&t.response_headers),headers:t&&t.response_headers,showBody:!!(t&&t.response_body),body:t&&t.response_body,streaming:!!(e&&e._response_partial&&t&&t.response_body)&&fF(e),showEmpty:r&&!i,emptyMessage:`Response details were not captured.`,showPending:i,pendingMessage:`Response in progress…`,showTooLarge:!!(t&&t.response_body_too_big_to_handle),tooLargeMessage:`Response body was too large to capture.`}}function HF(e,t){let n=[{id:`request`,pane:BF(e,t)}];return AF(e).forEach(t=>{n.push({id:`revision-`+Number(t&&t.seq||0),pane:NF(e,t)})}),hF(e)?mF(e).forEach(t=>{n.push({id:`response-`+Number(t&&t.seq||0),pane:OF(e,t)})}):n.push({id:`response`,pane:VF(e)}),n}function UF(e){if(!hF(e))return`response`;let t=mF(e),n=null;return t.forEach(e=>{e&&e.success&&(n=e)}),n||=t[t.length-1],n?`response-`+Number(n.seq||0):`request`}function WF(e,t,n){return e&&(Array.isArray(n)?n:HF(t)).some(t=>t.id===e)?e:UF(t)}function GF(e,t,n){if(!t||!t.length)return null;let r=t.indexOf(n);r<0&&(r=0);let i;switch(e){case`ArrowRight`:case`ArrowDown`:i=(r+1)%t.length;break;case`ArrowLeft`:case`ArrowUp`:i=(r-1+t.length)%t.length;break;case`Home`:i=0;break;case`End`:i=t.length-1;break;default:return null}return t[i]}var KF=100;function qF(){return{entries:[],total:0,limit:25,offset:0}}var JF=new class{#e=A(M({}));get auditExpandedEntries(){return L(this.#e)}set auditExpandedEntries(e){j(this.#e,e,!0)}#t=A(M({}));get auditExpandedThreads(){return L(this.#t)}set auditExpandedThreads(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}auditFetchToken=0;get auditLog(){return GC.auditLog}set auditLog(e){GC.auditLog=e}get auditSearch(){return GC.auditSearch}set auditSearch(e){GC.auditSearch=e}get auditMethod(){return GC.auditMethod}set auditMethod(e){GC.auditMethod=e}get auditStatusCode(){return GC.auditStatusCode}set auditStatusCode(e){GC.auditStatusCode=e}get auditStream(){return GC.auditStream}set auditStream(e){GC.auditStream=e}get auditGroupSessions(){return GC.auditGroupSessions}liveFilters(){return{search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream,customStartDate:Gc.customStartDate,customEndDate:Gc.customEndDate}}toggleAuditGroupSessions(){GC.auditGroupSessions=!GC.auditGroupSessions,wa(`gomodel_audit_group_sessions`,GC.auditGroupSessions),this.auditExpandedThreads={},GC.auditThreadChildren={},this.fetchAuditLog(!0)}async fetchAuditLog(e){let t=++this.auditFetchToken;this.loading=!0;try{e&&(this.auditLog.offset=0);let n=this.auditGroupSessions,r=KP({dateQuery:Gc.queryStr(),limit:this.auditLog.limit,offset:this.auditLog.offset,search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream}),i=await Es((n?`/admin/audit/sessions?`:`/admin/audit/log?`)+r,{label:`audit log`});if(i.stale||t!==this.auditFetchToken)return;if(!i.ok){this.auditLog=qF();return}let a=n?ZP(i.data):i.data,o=(n?sF:oF)(a,this.auditLog&&this.auditLog.entries,this.liveFilters());Array.isArray(o.entries)||(o.entries=[]),o.entries=GC.upsertAuditRecords(o.entries,`audit.list`),this.auditLog=o,this.auditExpandedThreads=eF(this.auditExpandedThreads,o.entries),GC.auditThreadChildren=eF(GC.auditThreadChildren,o.entries);let s=[...o.entries,...this.loadedThreadChildren()];this.auditExpandedEntries=lF(this.auditExpandedEntries,s);try{await MP.prefetchAuditWorkflows(s)}catch(e){console.error(`Failed to prefetch audit workflows:`,e)}}catch(e){if(console.error(`Failed to fetch audit log:`,e),t!==this.auditFetchToken)return;this.auditLog=qF()}finally{t===this.auditFetchToken&&(this.loading=!1)}}loadedThreadChildren(){let e=GC.auditThreadChildren||{};return Object.keys(e).flatMap(t=>Array.isArray(e[t]&&e[t].entries)?e[t].entries:[])}isThreadExpanded(e){return!!(e&&this.auditExpandedThreads[e])}threadChildren(e){return e&&GC.auditThreadChildren[e]||null}async toggleThread(e){let t=JP(e);if(!t)return;let n=!this.isThreadExpanded(t);this.auditExpandedThreads=$P(this.auditExpandedThreads,t);let r=GC.auditThreadChildren[t];n&&!(r&&(r.loaded||r.loading))&&await this.fetchThreadEntries(e)}async fetchThreadEntries(e){let t=JP(e);if(!t)return;let n=GC.auditThreadChildren[t];GC.auditThreadChildren={...GC.auditThreadChildren,[t]:{loading:!0,loaded:!1,entries:n&&Array.isArray(n.entries)?n.entries:[],total:Number(n&&n.total||0)}};let r=()=>{let e={...GC.auditThreadChildren},n=e[t],r=n&&Array.isArray(n.entries)?n.entries:[];r.length>0?e[t]={loading:!1,loaded:!1,entries:r,total:r.length}:(delete e[t],this.auditExpandedThreads[t]&&(this.auditExpandedThreads=$P(this.auditExpandedThreads,t))),GC.auditThreadChildren=e};try{let n=await Es(`/admin/audit/log?`+qP({sessionId:t,limit:KF}),{label:`audit session`});if(n.stale){r();return}if(!n.ok)throw Error(`audit session fetch failed`);let i=GC.auditThreadChildren[t],a=this.auditLog.entries.find(e=>JP(e)===t),o=QP(i,n.data.entries,a?[a]:[e]);o.entries=GC.upsertAuditRecords(o.entries,`audit.thread`),GC.auditThreadChildren={...GC.auditThreadChildren,[t]:{loading:!1,loaded:!0,entries:o.entries,total:Number(n.data.total||0)+o.preservedCount}}}catch(e){console.error(`Failed to fetch audit session entries:`,e),r()}}clearAuditFilters(){this.auditSearch=``,this.auditMethod=``,this.auditStatusCode=``,this.auditStream=``,this.fetchAuditLog(!0)}auditLogNextPage(){this.auditLog.offset+this.auditLog.limit0&&(this.auditLog.offset=Math.max(0,this.auditLog.offset-this.auditLog.limit),this.fetchAuditLog(!1))}isAuditEntryExpanded(e){let t=tF(e);return t?!!(this.auditExpandedEntries&&this.auditExpandedEntries[t]):!1}toggleAuditEntryExpanded(e){this.auditExpandedEntries=cF(this.auditExpandedEntries,e);let t=this.isAuditEntryExpanded(e);return t&&typeof GC.fetchAuditEntryDetail==`function`&&GC.fetchAuditEntryDetail(e),t}expandAuditEntry(e){this.isAuditEntryExpanded(e)||this.toggleAuditEntryExpanded(e)}};GC.fetchAuditLog=e=>JF.fetchAuditLog(e),GC.isAuditEntryExpanded=e=>JF.isAuditEntryExpanded(e);var YF=z(`
        `);function XF(e,t){D(t,!0);let n=Iw(()=>JF.fetchAuditLog(!0));kn(()=>n.cancel);var r=YF(),i=N(r);Fw(N(i),{id:`audit-filter-search`,placeholder:`Search by request ID, model, provider, path, user path, or error...`,label:`Search by request ID, model, provider, path, user path, or error`,get oninput(){return n},get value(){return JF.auditSearch},set value(e){JF.auditSearch=e}}),E(i);var a=F(i,2),o=N(a),s=N(o);s.value=s.__value=``;var c=F(s);c.value=c.__value=`GET`;var l=F(c);l.value=l.__value=`POST`;var u=F(l);u.value=u.__value=`PUT`;var d=F(u);d.value=d.__value=`PATCH`;var f=F(d);f.value=f.__value=`DELETE`,E(o);var p=F(o,2),m=N(p);m.value=m.__value=``;var h=F(m);h.value=h.__value=`200`;var g=F(h);g.value=g.__value=`201`;var _=F(g);_.value=_.__value=`400`;var v=F(_);v.value=v.__value=`401`;var y=F(v);y.value=y.__value=`403`;var b=F(y);b.value=b.__value=`404`;var x=F(b);x.value=x.__value=`429`;var S=F(x);S.value=S.__value=`500`;var C=F(S);C.value=C.__value=`502`;var w=F(C);w.value=w.__value=`503`;var T=F(w);T.value=T.__value=`504`,E(p);var ee=F(p,2),te=N(ee);te.value=te.__value=``;var ne=F(te);ne.value=ne.__value=`true`;var re=F(ne);re.value=re.__value=`false`,E(ee);var ie=F(ee,2);q(N(ie),{get icon(){return zo},class:`table-icon-svg`}),He(2),E(ie),E(a),E(r),R(`change`,o,()=>JF.fetchAuditLog(!0)),Wi(o,()=>JF.auditMethod,e=>JF.auditMethod=e),R(`change`,p,()=>JF.fetchAuditLog(!0)),Wi(p,()=>JF.auditStatusCode,e=>JF.auditStatusCode=e),R(`change`,ee,()=>JF.fetchAuditLog(!0)),Wi(ee,()=>JF.auditStream,e=>JF.auditStream=e),R(`click`,ie,()=>JF.clearAuditFilters()),B(e,r),O()}Vr([`change`,`click`]);var ZF=z(`Live stream connecting…`),QF=z(` `),$F=z(`Live`),eI=z(` `);function tI(e,t){D(t,!0);let n=k(()=>GC.auditLivePauseReason()),r=k(()=>GC.liveLogsStreaming&&!L(n));var i=Zr(),a=P(i),o=e=>{var t=eI(),i=N(t);let a;var o=F(i,2),s=e=>{B(e,ZF())},c=e=>{var t=QF(),r=N(t,!0);E(t),I(e=>V(r,e),[()=>NC(L(n))]),B(e,t)},l=e=>{B(e,$F())};H(o,e=>{GC.liveLogsStreaming?L(n)?e(c,1):e(l,-1):e(s)}),E(t),I(()=>a=W(i,1,`live-dot svelte-tve6yv`,null,a,{"is-streaming":L(r)})),B(e,t)},s=k(()=>js.liveLogsVisible());H(a,e=>{L(s)&&e(o)}),B(e,i),O()}var nI=z(``),rI=z(` `),iI=z(``);function aI(e,t){D(t,!0);let n=k(()=>[{key:`provider`,text:kc(t.entry)||`-`},{key:`model`,text:t.entry.requested_model||t.entry.model||`-`,mono:!0},{key:`user_path`,text:t.entry.user_path,mono:!0},{key:`session_id`,text:t.entry.session_id&&`session: `+t.entry.session_id,mono:!0},{key:`request_id`,text:`request_id: `+(t.entry.request_id||`-`),mono:!0},{key:`ip`,text:t.entry.client_ip&&`ip: `+t.entry.client_ip,mono:!0},{key:`auth_key_id`,text:t.entry.auth_key_id&&`auth_key_id: `+t.entry.auth_key_id,mono:!0},{key:`alias`,text:t.entry.alias_used&&`alias`,class:`audit-alias-badge`},{key:`resolved`,text:t.entry.alias_used&&t.entry.resolved_model&&`resolved: `+Mc(t.entry),mono:!0},{key:`failover`,text:pF(t.entry)&&`failover: `+pF(t.entry),mono:!0},{key:`stream`,text:t.entry.stream&&`stream`},{key:`error_type`,text:t.entry.error_type}].filter(e=>!!e.text));var r=iI(),i=F(N(r),2);U(i,21,()=>L(n),e=>e.key,(e,n)=>{var r=Zr(),i=P(r),a=e=>{var r=nI(),i=N(r,!0);E(r),I(()=>V(i,L(n).text)),R(`click`,r,()=>Y.filterBySession(t.entry.session_id)),B(e,r)},o=e=>{var t=rI(),r=N(t,!0);E(t),I(()=>{W(t,1,Pi([`provider-badge`,L(n).class,{mono:L(n).mono}]),`svelte-hyopt0`),V(r,L(n).text)}),B(e,t)};H(i,e=>{L(n).key===`session_id`?e(a):e(o,-1)}),B(e,r)}),E(i),E(r),B(e,r),O()}Vr([`click`]);var oI=z(``),sI=z(` `);function cI(e,t){D(t,!0);let n=k(()=>bF(t.entry)),r=k(()=>L(n).length>0?SF(t.entry):``),i=k(()=>L(n).length>0?xF(t.entry):``);var a=Zr(),o=P(a),s=e=>{var a=sI(),o=N(a);U(o,21,()=>L(n),e=>t.entry.id+`-pip-`+e.seq,(e,t)=>{var n=oI();let r;I(e=>{r=W(n,1,`audit-attempt-pip svelte-1eu22xn`,null,r,{"audit-attempt-success":!!(L(t)&&L(t).success),"audit-attempt-error":!(L(t)&&L(t).success)}),G(n,`title`,e)},[()=>CF(L(t))]),B(e,n)}),E(o);var s=F(o,2),c=N(s,!0);E(s),E(a),I(()=>{G(a,`title`,L(r)),G(a,`aria-label`,L(r)),V(c,L(i))}),B(e,a)};H(o,e=>{L(n).length>0&&e(s)}),B(e,a),O()}var lI=new Set([`instructions`,`messages`,`input`,`previous_response_id`,`choices`,`output`]);function uI(e){if(!e||typeof e!=`object`)return``;let t=String(e.type||``).toLowerCase();if(t===`image`||t===`image_url`||t===`input_image`||t===`output_image`)return`[Image]`;if(t===`audio`||t===`input_audio`||t===`output_audio`)return`[Audio]`;if(t===`file`||t===`input_file`||t===`output_file`){let t=String(e.filename||e.name||``).trim();return t?`[File: `+t+`]`:`[File]`}return typeof e.refusal==`string`?e.refusal:``}function dI(e){if(e==null)return``;if(typeof e==`string`)return e.trim();if(Array.isArray(e))return e.map(e=>typeof e==`string`?e:!e||typeof e!=`object`?``:typeof e.text==`string`?e.text:typeof e.output_text==`string`?e.output_text:uI(e)).filter(Boolean).join(` +`).trim();if(typeof e==`object`){if(typeof e.text==`string`)return e.text.trim();try{return JSON.stringify(e,null,2)}catch{return``}}return String(e).trim()}function fI(e){return!e||typeof e!=`object`?``:dI(e.content)||(typeof e.refusal==`string`?e.refusal.trim():``)}function pI(e){if(e==null)return[];if(typeof e==`string`)return e?[e]:[];if(Array.isArray(e))return e.flatMap(e=>typeof e==`string`?e?[e]:[]:!e||typeof e!=`object`?[]:typeof e.text==`string`?e.text?[e.text]:[]:typeof e.output_text==`string`&&e.output_text?[e.output_text]:[]);if(typeof e==`object`)return typeof e.text==`string`&&e.text?[e.text]:[];let t=String(e);return t?[t]:[]}function mI(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(mI);if(typeof e==`object`)return Object.entries(e).flatMap(([e,t])=>[e,...mI(t)]);let t=String(e);return t?[t]:[]}function hI(e){return dL(e).flatMap(e=>[...e.name?[String(e.name)]:[],...mI(e.arguments)])}function gI(e){return Array.isArray(e)?e.flatMap(e=>e&&typeof e==`object`&&e.type===`tool_use`?hI([e]):pI(e)):pI(e)}function _I(e){let t=e&&e.usage?e.usage.estimated_cached_characters:null;if(t==null)return null;let n=Number(t);return Number.isFinite(n)&&n>0?Math.floor(n):0}function vI(e,t){if(!e)return null;let n=(Array.isArray(t)?t:[]).reduce((e,t)=>e+String(t||``).length,0),r=Math.min(String(e).length,n);return r>0?{total:r}:null}function yI(e){let t=e&&e.arguments!==void 0?e.arguments:``,n=``;if(typeof t==`string`)n=t;else try{n=JSON.stringify(t)}catch{n=String(t)}return(String(e&&e.name||``)+`(`+n+`)`).length}function bI(e){return{characters:(Array.isArray(e)?e:[]).map(yI)}}function xI(e,t){let n=Math.max(0,Number(t||0));return e.map(e=>{if(!e||e.role===`error`)return e;let t=Math.max(0,Number(e._promptTextCharacters||0)),r=Math.min(n,t);n-=r;let i=0;(Array.isArray(e._toolPromptCharacters)?e._toolPromptCharacters:[]).forEach(e=>{let t=Math.max(0,Number(e||0)),r=Math.min(n,t);n-=r,i+=r});let a=t+(e._toolPromptCharacters||[]).reduce((e,t)=>e+Math.max(0,Number(t||0)),0);return{...e,promptCacheRatio:a>0?(r+i)/a:0}})}function SI(e){if(e==null)return[];if(typeof e==`string`){let t=e.trim();return t?[{role:`user`,text:t}]:[]}if(!Array.isArray(e)){let t=dI(e);return t?[{role:`user`,text:t}]:[]}return e.map(e=>{if(!e||typeof e!=`object`)return null;let t=String(e.role||`user`).toLowerCase(),n=dI(e.content);return n?{role:t,text:n}:null}).filter(Boolean)}function CI(e){return fI(e)}function wI(e){if(!e||typeof e!=`object`)return[];let t=[];return t.push(...pI(e.instructions)),Array.isArray(e.messages)&&e.messages.forEach(e=>{!e||typeof e!=`object`||(t.push(...gI(e.content)),t.push(...hI(e.tool_calls)))}),typeof e.input==`string`?t.push(e.input):Array.isArray(e.input)?e.input.forEach(e=>{if(!(!e||typeof e!=`object`)){if(e.type===`function_call`||e.type===`tool_use`){t.push(...hI([e]));return}t.push(...gI(e.content)),typeof e.text==`string`&&t.push(e.text)}}):e.input&&typeof e.input==`object`&&(t.push(...pI(e.input.content)),typeof e.input.text==`string`&&t.push(e.input.text)),t.map(e=>String(e||``)).filter(e=>e.length>0)}var TI=e=>dI(e);function EI(e){if(!e||!e.data)return``;let t=IP(e.data.response_body,0,TI);if(t)return t;let n=e.data.error_message;if(n==null)return``;if(typeof n==`string`){let e=n.trim();return e?IP(PP(e),0,TI)||e:``}return IP(n,0,TI)||dI(n)}function DI(e){return Array.isArray(e)?e.some(e=>!e||typeof e!=`object`?!1:e.type===`message`||e.role===`assistant`||e.role===`user`||e.role===`system`?!0:Array.isArray(e.content)?e.content.some(e=>!e||typeof e!=`object`?!1:typeof e.text==`string`||e.type===`output_text`||e.type===`input_text`):!1):!1}function OI(e){if(!e)return!1;let t=String(e).toLowerCase();return t===`/v1/embeddings`||t===`/v1/embeddings/`||t.startsWith(`/v1/embeddings?`)||t.startsWith(`/v1/embeddings/`)}function kI(e){return e?!!jI(e):!1}function AI(e){let t=String(e||``).trim().split(`?`)[0].replace(/\/+$/,``).toLowerCase();return t.startsWith(`/v1/`)?t.slice(3):t}function jI(e){switch(AI(e)){case`/chat/completions`:return`chat`;case`/responses`:return`responses`;case`/messages`:return`messages`;default:return``}}function MI(e){if(!e||typeof e!=`object`)return null;try{return JSON.parse(JSON.stringify(e))}catch{return null}}function NI(e,t){if(!t||typeof t!=`object`)return;let n=e[e.length-1];try{if(n&&JSON.stringify(n)===JSON.stringify(t))return}catch{}e.push(t)}function PI(e){let t=jI(e&&e.path),n=e&&e.data&&e.data.request_body;return!t||!n||typeof n!=`object`?!1:t!==`responses`||(e.data&&e.data.response_body&&typeof e.data.response_body.id==`string`?e.data.response_body.id.trim():``)!==``||vL(n)!==``}function FI(e,t){let n=String(t||``).trim(),r=jI(e&&e.path),i=MI(e&&e.data&&e.data.request_body);if(!n||!r||!i)return null;let a=e&&e.data?e.data.response_body:null;if(r===`responses`){let e=a&&typeof a.id==`string`?a.id.trim():``,t=vL(i);return!e&&!t?null:(i.input=n,e&&!t?i.previous_response_id=e:delete i.previous_response_id,i)}let o=Array.isArray(i.messages)?i.messages:[];if(r===`chat`){let e=a&&Array.isArray(a.choices)?a.choices[0]:null;e&&e.message&&NI(o,MI(e.message)),o.push({role:`user`,content:n})}else a&&a.content!==void 0&&NI(o,{role:String(a.role||`assistant`),content:MI(a.content)||a.content}),o.push({role:`user`,content:n});return i.messages=o,i}var II=new Set(`authorization.proxy-authorization.cookie.content-type.content-length.host.accept.connection.accept-encoding.content-encoding.transfer-encoding.user-agent.date.expect.upgrade.via.te.trailer.keep-alive.origin.referer.forwarded.x-real-ip.traceparent.tracestate.x-request-id.idempotency-key.x-idempotency-key.x-gomodel-timezone.x-gomodel-interaction-parent`.split(`.`));function LI(e,t,n=``){let r=e&&e.data&&e.data.request_headers,i={};return r&&typeof r==`object`&&Object.keys(r).forEach(e=>{let t=String(e).toLowerCase(),n=String(r[e]==null?``:r[e]);!e||!n||n===`[REDACTED]`||II.has(t)||t.startsWith(`sec-`)||t.startsWith(`cf-`)||t.startsWith(`x-forwarded-`)||(i[e]=n)}),i[`X-GoModel-Interaction-Parent`]=String(t||e&&e.id||``).trim(),String(n||``).trim()&&(i[`X-Request-ID`]=String(n).trim()),i}function RI(e,t){let n=String(t||``).trim();return!n||!Array.isArray(e)?null:e.find(e=>String(e&&e.request_id||``).trim()===n)||null}function zI(e,t,n,r,i){let a=Array.isArray(e)?e:[],o=String(i&&i.id||``).trim(),s=String(i&&i.request_id||``).trim(),c=String(i&&i.session_id||``).trim(),l=String(r||``).trim(),u=BI(i),d=a.some(e=>o&&String(e&&e.id||``).trim()===o||s&&String(e&&e.request_id||``).trim()===s),f=!!l&&s===l,p=!!n&&c===String(n).trim(),m=!!u&&(u===String(t||``).trim()||a.some(e=>String(e&&e.id||``).trim()===u)),h=d||f||!l&&(p||m);return{accepted:h,submittedChild:f,followUpRequestID:h&&f&&o?``:l}}function BI(e){let t=e&&e.data&&e.data.request_headers;if(!t||typeof t!=`object`)return``;let n=Object.keys(t).find(e=>e.toLowerCase()===`x-gomodel-interaction-parent`);return n?String(t[n]||``).trim():``}function VI(e,t){return!Array.isArray(e)||!t?null:e.find(e=>String(e&&e.id||``)===String(t))||null}function HI(e){return!Array.isArray(e)||e.length===0?null:e.reduce((e,t)=>e?yL(t,e)>=0?t:e:t,null)}function UI(e,t){let n=new Set(Array.isArray(t)?t.map(String):[]);return HI((Array.isArray(e)?e:[]).filter(e=>{let t=String(e&&e.id||``);return n.has(t)&&e&&e.data&&e.data.request_body!=null}))}function WI(e,t){let n=HI(e);return!!n&&String(n.id||``)===String(t||``)}function GI(e,t,n){return String(e||``).trim()===`audit.flushed`&&String(t||``).trim()!==``&&String(t||``).trim()===String(n||``).trim()}function KI(e,t){let n=Array.isArray(e)?e.filter(Boolean).map(String):[];return(Array.isArray(t)?t:[]).forEach(e=>{let t=String(e&&(e.id||e.request_id)||``).trim();t&&!n.includes(t)&&n.push(t)}),n}function qI(e){if(e&&e.conversation_payload)return!0;let t=e&&e.data?e.data.request_body:null,n=e&&e.data?e.data.response_body:null,r=t&&(Array.isArray(t.messages)||t.input!==void 0||typeof t.instructions==`string`||typeof t.previous_response_id==`string`),i=n&&(Array.isArray(n.choices)||DI(n.output));return!!(r||i)}function JI(e){return!e||OI(e.path)?!1:kI(e.path)||qI(e)}function YI(e){let t=0,n=!1,r=!1,i=String(e||``);for(let e=0;e0&&a+1`,`>`).replaceAll(`"`,`"`).replaceAll(`'`,`'`)}function $I(e){return!!(e&&typeof e==`object`&&e.__audio__===!0)}function eL(e){let t=Number(e||0);if(!Number.isFinite(t)||t<=0)return`0 B`;let n=[`B`,`KB`,`MB`,`GB`],r=0,i=t;for(;i>=1024&&r`
        `+QI(t)+``+QI(nL(e[t]))+`
        `);return t.length?``:``}function iL(e){let t=tL(e.content_type),n=QI(t+` · `+eL(e.bytes)),r=rL(e.meta);if(e.stored&&e.encoding===`base64`&&e.data){let i=String(e.data).replace(/[^A-Za-z0-9+/=]/g,``);return`
        `+n+`
        `+r+`
        `}let i=e.too_large?`Audio too large to store.`:`Audio not logged. Set LOGGING_LOG_AUDIO_BODIES=true to capture playable audio.`;return`
        `+n+`
        `+QI(i)+`
        `+r+`
        `}function aL(e){try{return JSON.stringify(String(e)).slice(1,-1)}catch{return``}}function oL(e){if(!e||typeof e!=`object`)return null;let t=Number(e.characters||0);if(!Number.isFinite(t)||t<=0)return null;let n=Array.isArray(e.segments)?e.segments.map(e=>String(e||``)).filter(Boolean):[];return n.length===0?null:{remaining:Math.floor(t),segments:n,segmentIndex:0}}function sL(e,t){if(!t||t.remaining<=0||t.segmentIndex>=t.segments.length)return QI(e);let n=``,r=0,i=0;for(;t.remaining>0&&t.segmentIndex`+QI(l)+``,r=s+l.length,i=s+o.length,t.remaining-=c,c>=a.length){t.segmentIndex++;continue}break}return n?n+QI(e.slice(r)):QI(e)}function cL(e,t,n){let r=n&&typeof n.formatJSON==`function`?n.formatJSON:e=>String(e),i=n&&typeof n.canShowConversation==`function`?n.canShowConversation:()=>!1,a=oL(n&&n.promptCacheHighlight),o=r(t);if(!o||o===`Not captured`)return QI(o);if(!i(e))return o.split(` +`).map(e=>sL(e,a)).join(` +`);let s=o.split(` +`),c=[],l=0;for(;lsL(e,a)).join(` +`);c.push(``+o+``),l=r+1;continue}c.push(sL(e,a)),l++}return c.join(` +`)}function lL(e){let t=String(e||``).toLowerCase();return t===`system`||t===`developer`?{role:`system`,label:`System Prompt`,className:`role-system`}:t===`assistant`?{role:`assistant`,label:`Agent`,className:`role-assistant`}:t===`error`?{role:`error`,label:`Error`,className:`role-error`}:t===`function_call`?{role:`function_call`,label:`Function Call`,className:`role-function-call`}:t===`function_result`?{role:`function_result`,label:`Function Result`,className:`role-function-result`}:{role:`user`,label:`User`,className:`role-user`}}function uL(e,t,{timestamp:n,entryID:r,isAnchor:i,isAfterAnchor:a,index:o,toolCalls:s,functionName:c,functionCallID:l,promptCache:u,toolPromptCache:d}){let f=lL(e),p=u&&Number.isFinite(Number(u.total))?Math.max(0,Number(u.total)):u===null?0:String(t||``).length,m=d&&Array.isArray(d.characters)?d.characters:bI(s).characters;return{uid:r+`-`+o,entryID:r,timestamp:n,text:t,role:f.role,roleLabel:f.label,roleClass:f.className,isAnchor:i,isAfterAnchor:a,toolCalls:Array.isArray(s)&&s.length>0?s:null,functionName:c||``,functionCallID:l||``,promptCacheRatio:0,_promptTextCharacters:p,_toolPromptCharacters:m}}function dL(e){return Array.isArray(e)?e.map(e=>{if(!e)return null;let t=e.function||e,n=``;return t.arguments===void 0?e.arguments===void 0?t.input===void 0?e.input!==void 0&&(n=e.input):n=t.input:n=e.arguments:n=t.arguments,{name:t.name||e.name||``,arguments:n,id:e.call_id||e.id||``}}).filter(Boolean):[]}function fL(e){return Array.isArray(e)?dL(e.filter(e=>e&&typeof e==`object`&&e.type===`tool_use`)):[]}function pL(e){return Array.isArray(e)?e.filter(e=>e&&typeof e==`object`&&e.type===`tool_result`).map(e=>({id:e.tool_use_id||e.call_id||``,text:dI(e.content)})):[]}function mL(e,t,n){!t||!n||[t.call_id,t.id].forEach(t=>{t&&(e[t]=n)})}function hL(e,t,n){if(t&&Array.isArray(t.messages)&&t.messages.forEach(t=>{t&&[...Array.isArray(t.tool_calls)?t.tool_calls:[],...Array.isArray(t.content)?t.content.filter(e=>e&&e.type===`tool_use`):[]].forEach(t=>{t&&mL(e,t,(t.function||t).name||t.name||``)})}),t&&Array.isArray(t.input)&&t.input.forEach(t=>{!t||typeof t!=`object`||t.type!==`function_call`&&t.type!==`tool_use`||mL(e,t,t.name||``)}),n&&Array.isArray(n.choices)){let t=n.choices[0];t&&t.message&&Array.isArray(t.message.tool_calls)&&t.message.tool_calls.forEach(t=>{t&&mL(e,t,(t.function||t).name||t.name||``)})}n&&Array.isArray(n.output)&&n.output.forEach(t=>{!t||t.type!==`function_call`&&t.type!==`tool_use`||mL(e,t,t.name||``)}),n&&Array.isArray(n.content)&&n.content.forEach(t=>{!t||t.type!==`tool_use`||mL(e,t,t.name||``)})}function gL(e){return Array.isArray(e)?`[`+e.map(gL).join(`,`)+`]`:e&&typeof e==`object`?`{`+Object.keys(e).sort().map(t=>JSON.stringify(t)+`:`+gL(e[t])).join(`,`)+`}`:JSON.stringify(e)}function _L(e){if(!e||typeof e!=`object`)return null;let t=[];if(e.system!==void 0&&t.push({system:e.system}),e.instructions!==void 0&&t.push({instructions:e.instructions}),Array.isArray(e.messages))t.push(...e.messages);else if(Array.isArray(e.input)&&e.previous_response_id==null&&e.conversation==null)t.push(...e.input);else return null;return t.map(gL)}function vL(e){let t=e&&e.conversation;return typeof t==`string`?t.trim():t&&typeof t.id==`string`?t.id.trim():``}function yL(e,t){let n=new Date(e&&e.timestamp).getTime(),r=new Date(t&&t.timestamp).getTime();if(Number.isFinite(n)&&Number.isFinite(r)&&n!==r)return n-r;let i=String(e&&e.timestamp||``).localeCompare(String(t&&t.timestamp||``));if(i!==0)return i;let a=String(e&&e.id||``),o=String(t&&t.id||``);return ao)}function bL(e,t){if(!Array.isArray(e)||e.length===0)return{messages:[],entryIDs:[]};let n=[...e].sort(yL),r={};n.forEach(e=>{let t=e.data&&e.data.request_body?e.data.request_body:null,n=e.data&&e.data.response_body?e.data.response_body:null;hL(r,t,n)});let i=[],a=new Set,o=new Set,s=new Set,c=[],l=null,u=0,d=n.findIndex(e=>e.id===t),f=e=>JSON.stringify({role:e.role,text:e.text,toolCalls:e.toolCalls,functionName:e.functionName,functionCallID:e.functionCallID});return n.forEach((e,n)=>{let p=e.id===t,m=d>=0&&n>d,h=e.timestamp,g=e.data&&e.data.request_body?e.data.request_body:null,_=e.data&&e.data.response_body?e.data.response_body:null,v=i.length,y=(e,t)=>vI(e,t),b=e=>bI(e),x=(t,n,{toolCalls:r,functionName:i,functionCallID:a,promptCache:o,toolPromptCache:s}={})=>uL(t,n,{timestamp:h,entryID:e.id,isAnchor:p,isAfterAnchor:m,index:++u,toolCalls:r,functionName:i,functionCallID:a,promptCache:o,toolPromptCache:s});if(g&&g.system!==void 0){let e=dI(g.system);e&&i.push(x(`system`,e,{promptCache:y(e,pI(g.system))}))}if(g&&g.instructions!==void 0){let e=dI(g.instructions);e&&i.push(x(`system`,e,{promptCache:y(e,pI(g.instructions))}))}g&&Array.isArray(g.messages)&&g.messages.forEach(e=>{if(!e)return;let t=(e.role||`user`).toLowerCase();if(t===`tool`){let t=dI(e.content),n=e.name||r[e.tool_call_id]||``;t&&i.push(x(`function_result`,t,{functionName:n,functionCallID:e.tool_call_id||``,promptCache:y(t,pI(e.content))}));return}if(t===`assistant`){let n=fI(e),r=[...dL(e.tool_calls),...fL(e.content)];if(n||r.length>0){let a=y(n,pI(e.content));i.push(x(t,n,{toolCalls:r,promptCache:a,toolPromptCache:b(r)}))}return}pL(e.content).forEach(e=>{e.text&&i.push(x(`function_result`,e.text,{functionName:r[e.id]||``,functionCallID:e.id,promptCache:y(e.text,[e.text])}))});let n=fI(e);n&&i.push(x(t,n,{promptCache:y(n,pI(e.content))}))}),g&&g.input!==void 0&&(Array.isArray(g.input)?g.input.forEach(e=>{if(!(!e||typeof e!=`object`)){if(e.type===`function_call_output`||e.type===`tool_result`){let t=e.type===`tool_result`,n=t?e.content:e.output,a=t?e.tool_use_id||e.call_id||``:e.call_id||``,o=typeof n==`string`?n:dI(n);o&&i.push(x(`function_result`,o,{functionName:r[a]||e.name||``,functionCallID:a,promptCache:y(o,t?pI(e.content):[o])}))}else if(e.type===`function_call`||e.type===`tool_use`){let t=dL([e]);i.push(x(`function_call`,``,{toolCalls:t,toolPromptCache:b(t)}))}else if(e.role){let t=String(e.role).toLowerCase(),n=dI(e.content);n&&i.push(x(t,n,{promptCache:y(n,pI(e.content))}))}}}):SI(g.input).forEach(e=>{if(!e.text)return;let t=[];typeof g.input==`string`?t=[g.input]:g.input&&typeof g.input==`object`&&(t=pI(g.input.content),typeof g.input.text==`string`&&t.push(g.input.text)),i.push(x(e.role,e.text,{promptCache:y(e.text,t)}))}));let S=i.splice(v),C=S.map(f),w=_L(g),T=w!==null,ee=BI(e),te=!!ee&&a.has(ee),ne=String(g&&g.previous_response_id||``).trim(),re=vL(g),ie=te||!!ne&&o.has(ne)||!!re&&s.has(re);if(m){let e=T&&l&&l.length>0&&l.every((e,t)=>w[t]===e);if(T&&!e&&!te||!T&&!ie)return}p&&T&&(l=[...w]);let ae=String(e.id||``).trim();p&&(a.clear(),o.clear(),s.clear()),ae&&(p||m)&&a.add(ae),re&&s.add(re);let oe=0;for(;oe0;){let t=c.slice(-e),n=C.slice(0,e);if(t.every((e,t)=>e===n[t]))break;e--}i.push(...S.slice(e)),c.push(...C.slice(e))}let se=_I(e);if(g&&se!==null&&i.splice(0,i.length,...xI(i,se)),_&&Array.isArray(_.choices)){let e=_.choices[0];if(e&&e.message){let t=(e.message.role||`assistant`).toLowerCase(),n=fI(e.message),r=dL(e.message.tool_calls);if(n||r.length>0){let e=x(t,n,{toolCalls:r});i.push(e),c.push(f(e))}}}if(_&&Array.isArray(_.output)&&_.output.forEach(e=>{if(!e)return;if(e.type===`function_call`||e.type===`tool_use`){let t=x(`function_call`,``,{toolCalls:dL([e])});i.push(t),c.push(f(t));return}let t=(e.role||`assistant`).toLowerCase(),n=CI(e);if(n){let e=x(t,n);i.push(e),c.push(f(e))}}),_&&_.content!==void 0&&!Array.isArray(_.choices)&&!Array.isArray(_.output)){let e=String(_.role||`assistant`).toLowerCase(),t=dI(_.content),n=fL(_.content);if(t||n.length>0){let r=x(e,t,{toolCalls:n});i.push(r),c.push(f(r))}}let ce=EI(e);ce&&i.push(x(`error`,ce));let le=String(_&&_.id||``).trim();le&&o.add(le)}),{messages:i,entryIDs:[...a]}}function xL(e){return e.role===`function_call`?(e.toolCalls||[]).map(function(e){return e.name+`(`+CL(e)+`)`}).join(` + +`):e.text||``}function SL(e){return e?[String(e.text||``),Array.isArray(e.toolCalls)&&e.toolCalls.length>0?xL({role:`function_call`,toolCalls:e.toolCalls}):``].filter(Boolean).join(` + +`):``}function CL(e){let t=e&&e.arguments!==void 0?e.arguments:``;if(typeof t!=`string`)try{return JSON.stringify(t,null,2)}catch{return String(t)}try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}var wL=600*1e3,TL=15*1e3,EL=250,DL=class{#e=A(!1);get conversationOpen(){return L(this.#e)}set conversationOpen(e){j(this.#e,e,!0)}#t=A(!1);get conversationLoading(){return L(this.#t)}set conversationLoading(e){j(this.#t,e,!0)}#n=A(``);get conversationError(){return L(this.#n)}set conversationError(e){j(this.#n,e,!0)}#r=A(``);get conversationAnchorID(){return L(this.#r)}set conversationAnchorID(e){j(this.#r,e,!0)}#i=A(M([]));get conversationEntryIDs(){return L(this.#i)}set conversationEntryIDs(e){j(this.#i,e,!0)}#a=A(``);get conversationSessionID(){return L(this.#a)}set conversationSessionID(e){j(this.#a,e,!0)}#o=A(!1);get conversationTruncated(){return L(this.#o)}set conversationTruncated(e){j(this.#o,e,!0)}#s=A(!1);get conversationFollowLatest(){return L(this.#s)}set conversationFollowLatest(e){j(this.#s,e,!0)}#c=A(``);get conversationOpenedFromID(){return L(this.#c)}set conversationOpenedFromID(e){j(this.#c,e,!0)}#l=A(``);get followUpText(){return L(this.#l)}set followUpText(e){j(this.#l,e,!0)}#u=A(!1);get followUpSending(){return L(this.#u)}set followUpSending(e){j(this.#u,e,!0)}#d=A(``);get followUpError(){return L(this.#d)}set followUpError(e){j(this.#d,e,!0)}followUpRequestID=``;followUpAbort=null;conversationRequestToken=0;conversationReturnFocusEl=null;bodyPointerStart=null;#f=A(null);get conversationDialogEl(){return L(this.#f)}set conversationDialogEl(e){j(this.#f,e,!0)}#p=A(null);get conversationCloseBtnEl(){return L(this.#p)}set conversationCloseBtnEl(e){j(this.#p,e,!0)}#m=A(null);get conversationThreadEl(){return L(this.#m)}set conversationThreadEl(e){j(this.#m,e,!0)}get conversationEntries(){return(this.conversationEntryIDs||[]).map(e=>GC.auditRecord(e)).filter(Boolean)}#h=k(()=>bL(this.conversationEntries,this.conversationAnchorID));get conversationView(){return L(this.#h)}set conversationView(e){j(this.#h,e)}get conversationMessages(){return this.conversationView.messages}get conversationBranchEntryIDs(){return this.conversationView.entryIDs}_setConversationEntryIDs(e){this.conversationEntryIDs=[...new Set((Array.isArray(e)?e:[]).filter(Boolean))],GC.pinAuditRecords(this.conversationEntryIDs)}canShowConversation(e){return JI(e)}startBodyInteraction(e){this.bodyPointerStart={x:e.clientX,y:e.clientY}}_isBodyDrag(e){if(!this.bodyPointerStart)return!1;let t=Math.abs(e.clientX-this.bodyPointerStart.x),n=Math.abs(e.clientY-this.bodyPointerStart.y);return t>4||n>4}_hasActiveSelection(){let e=window.getSelection?window.getSelection():null;return!e||e.isCollapsed?!1:String(e.toString()||``).trim().length>0}handleBodyConversationClick(e,t){let n=this._isBodyDrag(e);if(this.bodyPointerStart=null,n||this._hasActiveSelection()||!this.canShowConversation(t))return;let r=e.target&&e.target.closest?e.target.closest(`[data-conversation-trigger="1"]`):null;r&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,r))}handleErrorConversationClick(e,t){let n=this._isBodyDrag(e);this.bodyPointerStart=null,!n&&(this._hasActiveSelection()||this.canShowConversation(t)&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,e.currentTarget)))}formatJSON(e){return vc(e)}renderBodyWithConversationHighlights(e,t,n){return cL(e,t,{formatJSON:e=>this.formatJSON(e),canShowConversation:e=>this.canShowConversation(e),promptCacheHighlight:n&&n.promptCacheHighlight})}async openConversation(e,t){if(!e||!e.id||!this.canShowConversation(e))return;let n=document.activeElement instanceof HTMLElement?document.activeElement:null;t instanceof HTMLElement?this.conversationReturnFocusEl=t:n&&n!==document.body&&(this.conversationReturnFocusEl=n);let r=++this.conversationRequestToken;if(this.conversationOpen=!0,this.conversationError=``,this.conversationAnchorID=e.id,this.conversationOpenedFromID=e.id,this.conversationSessionID=String(e.session_id||``).trim(),this._setConversationEntryIDs([]),this.conversationTruncated=!1,this.conversationFollowLatest=!1,this.followUpText=``,this.followUpError=``,this.followUpRequestID=``,requestAnimationFrame(()=>this._focusConversationDrawer()),this._conversationEntryLivePending(e)){this.conversationFollowLatest=!0,this.conversationLoading=!1,this._addConversationRecord(GC.upsertAuditRecord(e,`conversation.live`));return}this.conversationLoading=!0,await this.fetchConversation(e.id,r,!0,!0)}_conversationEntryLivePending(e){return typeof GC.auditEntryLiveDetailPending==`function`&&GC.auditEntryLiveDetailPending(e)}_applyConversationView(){let e=this.conversationEntries,t=bL(e,this.conversationAnchorID);if(this.conversationFollowLatest){let n=UI(e,t.entryIDs);n&&n.id&&String(n.id)!==this.conversationAnchorID&&(this.conversationAnchorID=String(n.id))}}handleAuditRecordChange(e,t){if(!this.conversationOpen||!e)return;let n=String(e.id||``).trim(),r=zI(this.conversationEntries,this.conversationAnchorID,this.conversationSessionID,this.followUpRequestID,e);if(r.accepted&&(this.followUpRequestID=r.followUpRequestID,n&&r.submittedChild&&(this.conversationAnchorID=n,this.conversationFollowLatest=!0),this._addConversationRecord(e),GI(String(t||e._live_state||``).trim(),n,this.conversationAnchorID))){this.conversationMessages.length===0&&(this.conversationLoading=!0);let e=++this.conversationRequestToken;this.fetchConversation(n,e,!1)}}_addConversationRecord(e){let t=RC(e);t&&!this.conversationEntryIDs.includes(t)&&this._setConversationEntryIDs([...this.conversationEntryIDs,t]),!this.conversationSessionID&&e.session_id&&(this.conversationSessionID=String(e.session_id).trim()),this._applyConversationView(),this.conversationFollowLatest&&this._scheduleLatestScroll()}conversationLiveWaiting(){if(!this.conversationOpen)return!1;let e=new Set(this.conversationBranchEntryIDs||[]);return(this.conversationEntries||[]).some(t=>e.has(String(t&&t.id||``))&&t._live&&(typeof GC.liveAuditStateSettled!=`function`||!GC.liveAuditStateSettled(t._live_state)))}conversationLiveStatusText(){return(this.conversationMessages||[]).length>0?`Model is responding…`:`Waiting for request data…`}closeConversation(){this.followUpAbort&&this.followUpAbort.abort(),this.conversationOpen=!1,this.conversationRequestToken++,this.conversationSessionID=``,this._setConversationEntryIDs([]),this.conversationFollowLatest=!1,this.conversationOpenedFromID=``,this.followUpRequestID=``,this.followUpSending=!1;let e=this.conversationReturnFocusEl;this.conversationReturnFocusEl=null,e&&typeof e.focus==`function`&&document.contains(e)&&requestAnimationFrame(()=>e.focus())}_focusConversationDrawer(){if(!this.conversationOpen)return;let e=this.conversationCloseBtnEl;if(e&&typeof e.focus==`function`){e.focus();return}let t=this.conversationDialogEl;t&&typeof t.focus==`function`&&t.focus()}async fetchConversation(e,t,n=!0,r=!1){try{let i=await Es(`/admin/audit/conversation?`+(`log_id=`+encodeURIComponent(e)+`&limit=120`),{label:`audit conversation`});if(t!==this.conversationRequestToken||i.stale)return;if(!i.ok){this.conversationError=`Unable to load interactions.`;return}let a=i.data||{},o=a.anchor_id||e,s=Array.isArray(a.entries)?a.entries:[],c=GC.upsertAuditRecords(s,`conversation.hydrated`),l=KI(this.conversationEntryIDs,c);l.length>this.conversationEntryIDs.length&&this._setConversationEntryIDs(l),r&&(this.conversationFollowLatest=WI(c,o)),this.conversationAnchorID=o;let u=this.conversationEntries.find(e=>e.id===this.conversationAnchorID);u&&u.session_id&&(this.conversationSessionID=String(u.session_id).trim()),this.conversationTruncated=!!a.truncated,this._applyConversationView(),this.conversationFollowLatest?this._scheduleLatestScroll():n&&this._scheduleAnchorScroll()}catch(e){if(t!==this.conversationRequestToken)return;console.error(`Failed to fetch audit conversation:`,e),this.conversationError=`Failed to load interactions.`}finally{t===this.conversationRequestToken&&(this.conversationLoading=!1)}}selectedConversationEntry(){return VI(this.conversationEntries,this.conversationAnchorID)}followUpKind(){let e=this.selectedConversationEntry();return PI(e)?jI(e.path):``}canSendFollowUp(){return!!this.followUpKind()&&!!String(this.followUpText||``).trim()&&!this.followUpSending&&!this.conversationLiveWaiting()}async sendFollowUp(){if(!this.canSendFollowUp())return;let e=this.selectedConversationEntry(),t=FI(e,this.followUpText);if(!e||!t)return;let n=this.conversationAnchorID,r=kL(),i=new AbortController,a=!1,o=setTimeout(()=>{a=!0,i.abort()},wL);this.followUpSending=!0,this.followUpError=``,this.followUpRequestID=r,this.followUpAbort=i;try{let a=LI(e,n,r),o=await ws(e.path,{method:`POST`,headers:a,body:JSON.stringify(t),signal:i.signal}),s=String(o.headers.get(`X-Request-ID`)||``).trim();if(s&&this.followUpRequestID&&(this.followUpRequestID=s),!o.ok){let e=`Unable to send message.`;try{let t=await o.json();e=t&&t.error&&t.error.message||e}catch{}this.followUpError=e,(this.followUpRequestID===r||this.followUpRequestID===s)&&(this.followUpRequestID=``);return}if(this.followUpText=``,await OL(o),!GC.liveLogsStreaming&&this.conversationOpen){let e=++this.conversationRequestToken;await this._selectPersistedFollowUp(n,this.followUpRequestID,e,i.signal)}}catch(e){Os(e)||i.signal.aborted?a&&this.conversationOpen&&(this.followUpError=`The request timed out.`):(console.error(`Failed to send interaction follow-up:`,e),this.followUpError=`Failed to send message.`)}finally{clearTimeout(o),this.followUpAbort===i&&(this.followUpAbort=null,this.followUpSending=!1)}}async _selectPersistedFollowUp(e,t,n,r){let i=Date.now()+TL;for(;this.conversationOpen&&n===this.conversationRequestToken&&Date.now(){let e=this.conversationThreadEl;if(!e)return;let t=e.querySelectorAll(`[data-conversation-anchor="true"]`),n=t[t.length-1];n&&typeof n.scrollIntoView==`function`&&n.scrollIntoView({block:`center`})})}_scheduleLatestScroll(){requestAnimationFrame(()=>{let e=this.conversationThreadEl;if(!e)return;let t=e.lastElementChild;t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`end`})})}};async function OL(e){let t=e&&e.body&&typeof e.body.getReader==`function`?e.body.getReader():null;if(!t){await e.text();return}for(;!(await t.read()).done;);}function kL(){return globalThis.crypto&&typeof globalThis.crypto.randomUUID==`function`?globalThis.crypto.randomUUID():`dashboard-`+Date.now().toString(36)+`-`+Math.random().toString(36).slice(2)}function AL(e,t){return new Promise((n,r)=>{let i,a=()=>{clearTimeout(i),r(new DOMException(`Aborted`,`AbortError`))};if(i=setTimeout(()=>{t&&t.removeEventListener(`abort`,a),n()},e),t){if(t.aborted){a();return}t.addEventListener(`abort`,a,{once:!0})}})}var jL=new DL,ML=0;jn(()=>{kn(()=>{let e=BC(GC.auditRecordChanges,ML);e.length!==0&&(ML=Number(e[e.length-1].version||0),Tr(()=>{e.forEach(e=>{if(!VC(e))return;let t=GC.auditRecord(e.key);jL.handleAuditRecordChange(t,e.eventType)})}))})});var NL=z(` `,1),PL=z(` `),FL=z(` `),IL=z(``),LL=z(`
        `);function RL(e,t){D(t,!0);let n=K(t,`thread`,3,null),r=K(t,`expanded`,3,!1),i=K(t,`onactivate`,3,null),a=K(t,`hidePath`,3,!1),o=k(()=>bs.formatTimestamp(t.entry.timestamp)),s=k(()=>L(o)===`-`?L(o):L(o).slice(L(o).lastIndexOf(` `)+1)),c=k(()=>jL.conversationOpen&&String(jL.conversationAnchorID||``)===String(t.entry.id||``));function l(e){e.preventDefault(),i()&&i()()}function u(e){e.stopPropagation(),e.preventDefault(),n().ontoggle()}function d(e){e.stopPropagation(),e.preventDefault(),n().onusage?.()}function f(e){if(e.stopPropagation(),e.preventDefault(),L(c)){jL.closeConversation();return}jL.openConversation(t.entry,e.currentTarget)}var p=LL();let m;var h=N(p),g=N(h),_=e=>{var t=NL(),r=P(t),i=N(r);{let e=k(()=>n().expanded?Ua:Ga);q(i,{get icon(){return L(e)},class:`audit-thread-expander-svg`})}var a=F(i,2),o=N(a,!0);E(a),E(r);var s=F(r,2);q(N(s),{get icon(){return Va},class:`audit-thread-usage-svg`}),E(s),I(()=>{G(r,`aria-expanded`,n().expanded),G(r,`title`,`Session with `+n().count+` requests`),G(r,`aria-label`,`Session with `+n().count+` requests, `+(n().expanded?`collapse`:`expand`)),V(o,n().count)}),R(`click`,r,u),R(`click`,s,d),B(e,t)};H(g,e=>{n()&&e(_)});var v=F(g,2),y=N(v),b=N(y,!0);E(y);var x=F(y,2),S=N(x,!0);E(x),E(v);var C=F(v,2),w=e=>{var n=PL(),r=N(n,!0);E(n),I(e=>V(r,e),[()=>Nc(t.entry)]),B(e,n)};H(C,e=>{(t.entry.requested_model||t.entry.model)&&e(w)});var T=F(C,2),ee=e=>{var n=FL(),r=N(n,!0);E(n),I(()=>V(r,t.entry.path||`-`)),B(e,n)};H(T,e=>{a()||e(ee)}),E(h);var te=F(h,2),ne=N(te);cI(ne,{get entry(){return t.entry}});var re=F(ne,2),ie=N(re),ae=N(ie,!0);E(ie);var oe=F(ie,2),se=N(oe,!0);E(oe),E(re);var ce=F(re,2),le=N(ce,!0);E(ce);var ue=F(ce,2),de=e=>{var t=IL();let n;var r=N(t);{let e=k(()=>L(c)?Wa:Ga);q(r,{get icon(){return L(e)},class:`audit-conversation-trigger-svg`})}E(t),I(()=>{n=W(t,1,`audit-conversation-trigger svelte-17mysgz`,null,n,{"audit-conversation-trigger-active":L(c)}),G(t,`title`,L(c)?`Close interactions`:`Open interactions`),G(t,`aria-label`,L(c)?`Close interactions`:`Open interactions`),G(t,`aria-pressed`,L(c))}),R(`click`,t,f),B(e,t)},fe=k(()=>jL.canShowConversation(t.entry));H(ue,e=>{L(fe)&&e(de)}),E(te),E(p),I((e,n,i,a)=>{m=W(p,1,`audit-entry-summary svelte-17mysgz`,null,m,e),G(p,`aria-expanded`,r()),W(v,1,`audit-status-badge audit-request-badge ${n??``}`,`svelte-17mysgz`),G(v,`title`,`Status `+(t.entry.status_code||`-`)+` · `+(t.entry.method||`-`)),G(v,`aria-label`,(t.entry.status_code||`-`)+` `+(t.entry.method||`-`)),V(b,t.entry.status_code||`-`),V(S,t.entry.method||`-`),G(re,`title`,i),G(re,`aria-label`,L(o)),V(ae,L(o)),V(se,L(s)),V(le,a)},[()=>({"audit-entry-summary-live-in-progress":fF(t.entry),"audit-entry-summary-has-interactions":jL.canShowConversation(t.entry)}),()=>dF(t.entry.status_code),()=>Dc(t.entry.timestamp),()=>uF(t.entry.duration_ns)]),R(`click`,p,l),B(e,p),O()}Vr([`click`]);var zL=z(``);function BL(e,t){D(t,!0);let n=K(t,`label`,3,`Copy`),r=K(t,`copiedLabel`,3,`Copied`),i=K(t,`errorLabel`,3,``),a=K(t,`class`,3,`btn`),o=k(()=>t.state.error&&i()?i():t.state.copied?r():n());var s=zL();let c;var l=N(s),u=e=>{q(e,{get icon(){return qa},width:`14`,height:`14`,"stroke-width":`2.5`})},d=e=>{q(e,{get icon(){return Xa},width:`14`,height:`14`})};H(l,e=>{t.state.copied?e(u):e(d,-1)});var f=F(l,2),p=N(f,!0);E(f),E(s),I(()=>{c=W(s,1,Pi([`copy-feedback-btn`,a()]),null,c,{"copy-feedback-btn-copied":t.state.copied}),V(p,L(o))}),R(`click`,s,e=>{e.preventDefault(),t.onclick?.(e)}),B(e,s),O()}Vr([`click`]);var VL=z(`
        Error Message
         
        `),HL=z(`
         
        `),UL=z(` `),WL=z(` streaming`),GL=z(`
        Body
        `),KL=z(`

        `),qL=z(`

        `),JL=z(`

        `),YL=z(`
        `);function XL(e,t){D(t,!0);let n=Zw({logPrefix:`Failed to copy audit payload:`}),r=Zw({logPrefix:`Failed to copy audit payload:`}),i=k(()=>t.pane&&t.pane.showHeaders?vc(t.pane.headers):``),a=k(()=>!t.pane||!t.pane.showBody?``:$I(t.pane.body)?iL(t.pane.body):jL.renderBodyWithConversationHighlights(t.pane.entry,t.pane.body,{promptCacheHighlight:t.pane.promptCacheHighlight})),o=k(()=>!!(t.pane&&jL.canShowConversation(t.pane.entry)));function s(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),jL.handleErrorConversationClick(e,t.pane.entry))}var c=YL();let l;var u=N(c),d=e=>{var n=VL(),r=F(N(n),2);let i;var a=N(r,!0);E(r),E(n),I(()=>{i=W(r,1,`audit-json audit-pane-error-message svelte-1h5puht`,null,i,{"audit-pane-clickable-preview":L(o)}),G(r,`role`,L(o)?`button`:null),G(r,`tabindex`,L(o)?0:null),V(a,t.pane.errorMessage)}),R(`mousedown`,r,e=>jL.startBodyInteraction(e)),R(`keydown`,r,s),R(`click`,r,e=>jL.handleErrorConversationClick(e,t.pane.entry)),B(e,n)};H(u,e=>{t.pane.showErrorMessage&&e(d)});var f=F(u,2),p=e=>{var n=HL(),a=N(n),o=N(a),s=N(o,!0);E(o),BL(F(o,2),{get state(){return r},label:`Copy Headers`,errorLabel:`Copy failed`,class:`audit-copy-btn`,onclick:()=>r.copy(t.pane.copyHeaders,vc)}),E(a);var c=F(a,2),l=N(c,!0);E(c),E(n),I(()=>{V(s,t.pane.headersTitle||`Headers`),V(l,L(i))}),B(e,n)};H(f,e=>{t.pane.showHeaders&&e(p)});var m=F(f,2),h=e=>{var r=GL(),i=N(r),o=N(i),s=F(N(o),2),c=e=>{var n=UL(),r=N(n,!0);E(n),I(()=>V(r,t.pane.bodyCacheRatioLabel)),B(e,n)};H(s,e=>{t.pane.bodyCacheRatioLabel&&e(c)});var l=F(s,2),u=e=>{B(e,WL())};H(l,e=>{t.pane.streaming&&e(u)}),E(o),BL(F(o,2),{get state(){return n},label:`Copy Body`,errorLabel:`Copy failed`,class:`audit-copy-btn`,onclick:()=>n.copy(t.pane.copyBody,vc)}),E(i);var d=F(i,2);mi(d,()=>L(a),!0),E(d),E(r),R(`mousedown`,d,e=>jL.startBodyInteraction(e)),R(`click`,d,e=>jL.handleBodyConversationClick(e,t.pane.entry)),B(e,r)};H(m,e=>{t.pane.showBody&&e(h)});var g=F(m,2),_=e=>{var n=KL(),r=N(n,!0);E(n),I(()=>V(r,t.pane.emptyMessage)),B(e,n)};H(g,e=>{t.pane.showEmpty&&e(_)});var v=F(g,2),y=e=>{var n=qL(),r=F(N(n),2),i=N(r,!0);E(r),E(n),I(()=>V(i,t.pane.pendingMessage)),B(e,n)};H(v,e=>{t.pane.showPending&&e(y)});var b=F(v,2),x=e=>{var n=JL(),r=N(n,!0);E(n),I(()=>V(r,t.pane.tooLargeMessage)),B(e,n)};H(b,e=>{t.pane.showTooLarge&&e(x)}),E(c),I(()=>l=W(c,1,`audit-pane svelte-1h5puht`,null,l,{"audit-pane-split":t.pane&&t.pane.layout===`split`,"audit-pane-split-single":t.pane&&t.pane.layout===`split`&&!(t.pane.showHeaders&&t.pane.showBody)})),B(e,c),O()}Vr([`mousedown`,`keydown`,`click`]);var ZL=z(` `),QL=z(` `),$L=z(` `),eR=z(` `),tR=z(``),nR=z(`
        `),rR=z(`
        `);function iR(e,t){D(t,!0);let n=K(t,`panes`,19,()=>[]),r=A(null),i=k(()=>WF(L(r),t.entry,n())),a=e=>`audit-tab-`+t.entry.id+`-`+e,o=e=>`audit-tabpanel-`+t.entry.id+`-`+e;function s(e,t){let i=n().map(e=>e.id),a=GF(e.key,i,t);a!=null&&(e.preventDefault(),((e.currentTarget?.closest?.(`.audit-pane-tablist`))?.querySelectorAll(`.audit-pane-tab`)[i.indexOf(a)])?.focus?.(),j(r,a,!0))}var c=rR(),l=N(c);U(l,21,n,e=>e.id,(e,t)=>{var n=tR();let c;var l=N(n),u=N(l),d=e=>{q(e,{get icon(){return Na}})},f=e=>{q(e,{get icon(){return Ma}})};H(u,e=>{L(t).pane.direction===`request`?e(d):L(t).pane.direction===`response`&&e(f,1)}),E(l);var p=F(l,2),m=N(p,!0);E(p);var h=F(p,2),g=e=>{var n=ZL(),r=N(n);E(n),I(()=>V(r,`#${L(t).pane.seq??``}`)),B(e,n)};H(h,e=>{L(t).pane.seq&&e(g)});var _=F(h,2),v=e=>{var n=QL(),r=N(n,!0);E(n),I(()=>{W(n,1,`provider-badge audit-pane-kind audit-pane-kind-${L(t).pane.kind??``}`,`svelte-1bc5vi5`),V(r,L(t).pane.kind)}),B(e,n)};H(_,e=>{L(t).pane.kind&&e(v)});var y=F(_,2);U(y,17,()=>L(t).pane.noChangeSteps||[],e=>e.id,(e,t)=>{var n=$L(),r=N(n,!0);E(n),I(()=>{G(n,`title`,L(t).title),V(r,L(t).label)}),B(e,n)});var b=F(y,2),x=e=>{var n=eR(),r=N(n,!0);E(n),I(()=>V(r,L(t).pane.savingsLabel)),B(e,n)};H(b,e=>{L(t).pane.savingsLabel&&e(x)});var S=F(b,2),C=e=>{var n=QL(),r=N(n,!0);E(n),I(e=>{W(n,1,`audit-status-badge ${e??``}`,`svelte-1bc5vi5`),V(r,L(t).pane.statusCode)},[()=>dF(L(t).pane.statusCode)]),B(e,n)};H(S,e=>{L(t).pane.statusCode&&e(C)}),E(n),I((e,r)=>{c=W(n,1,`audit-pane-tab svelte-1bc5vi5`,null,c,{"audit-pane-tab-active":L(i)===L(t).id}),G(n,`aria-selected`,L(i)===L(t).id),G(n,`id`,e),G(n,`aria-controls`,r),G(n,`tabindex`,L(i)===L(t).id?0:-1),W(l,1,Pi([`audit-pane-icon`,L(t).pane.direction&&`audit-pane-icon-${L(t).pane.direction}`]),`svelte-1bc5vi5`),V(m,L(t).pane.title)},[()=>a(L(t).id),()=>o(L(t).id)]),R(`keydown`,n,e=>s(e,L(t).id)),R(`click`,n,()=>j(r,L(t).id,!0)),B(e,n)}),E(l),U(F(l,2),17,n,e=>e.id,(e,t)=>{var n=nR();let r;XL(N(n),{get pane(){return L(t).pane}}),E(n),I((e,a)=>{G(n,`id`,e),G(n,`aria-labelledby`,a),r=Vi(n,``,r,{display:L(i)===L(t).id?null:`none`})},[()=>o(L(t).id),()=>a(L(t).id)]),B(e,n)}),E(c),B(e,c),O()}Vr([`keydown`,`click`]);var aR=z(`
        `),oR=z(`
        `);function sR(e,t){D(t,!0);let n=K(t,`thread`,3,null),r=K(t,`hidePath`,3,!1),i=k(()=>JF.isAuditEntryExpanded(t.entry)),a=k(()=>jL.conversationOpen&&String(jL.conversationAnchorID||``)===String(t.entry.id||``)),o=k(()=>L(i)?HF(t.entry,wI):[]),s=k(()=>L(i)?LN(t.entry,MP.auditEntryWorkflow(t.entry),MP.workflowFeatureCaps()):null);function c(){JF.toggleAuditEntryExpanded(t.entry)}var l=oR();let u;var d=N(l);RL(d,{get entry(){return t.entry},get thread(){return n()},get expanded(){return L(i)},get hidePath(){return r()},onactivate:c});var f=F(d,2),p=e=>{var n=aR(),r=N(n),i=e=>{$M(e,{get chart(){return L(s)}})};H(r,e=>{L(s)&&e(i)});var a=F(r,2);iR(a,{get entry(){return t.entry},get panes(){return L(o)}}),aI(F(a,2),{get entry(){return t.entry}}),E(n),Oi(3,n,()=>ac,()=>({y:-6,duration:AP(150)})),B(e,n)};H(f,e=>{L(i)&&e(p)}),E(l),I(()=>u=W(l,1,`audit-entry svelte-cmjgwr`,null,u,{"audit-entry-interactions-open":L(a)})),B(e,l),O()}var cR=z(`
        `),lR=z(`
        `),uR=z(`

        `),dR=z(`
        `),fR=z(`
        `);function pR(e,t){D(t,!0);let n=k(()=>JP(t.entry)),r=k(()=>JF.isThreadExpanded(L(n))),i=k(()=>JF.threadChildren(L(n))),a=k(()=>L(i)&&!L(i).loading&&Number(L(i).total||0)>L(i).entries.length+1);var o=Zr(),s=P(o),c=e=>{sR(e,{get entry(){return t.entry}})},l=k(()=>!XP(t.entry)),u=e=>{var o=fR(),s=N(o);{let e=k(()=>({count:YP(t.entry),expanded:L(r),ontoggle:()=>JF.toggleThread(t.entry),onusage:()=>Y.filterBySession(L(n))}));sR(s,{get entry(){return t.entry},get thread(){return L(e)}})}var c=F(s,2),l=e=>{var n=dR(),r=N(n),o=e=>{var t=cR();FS(N(t),{size:14,label:`Loading session requests`}),E(t),B(e,t)};H(r,e=>{L(i)&&L(i).loading&&e(o)});var s=F(r,2);U(s,17,()=>L(i)&&L(i).entries||[],e=>e.id,(e,n)=>{var r=lR(),i=N(r);{let e=k(()=>L(n).path===t.entry.path);sR(i,{get entry(){return L(n)},get hidePath(){return L(e)}})}E(r),B(e,r)});var c=F(s,2),l=e=>{var t=uR(),n=N(t);E(t),I(()=>V(n,`Showing the latest ${L(i).entries.length+1} of ${L(i).total??``} + requests in this session.`)),B(e,t)};H(c,e=>{L(a)&&e(l)}),E(n),Oi(3,n,()=>oc,()=>({duration:AP(150)})),B(e,n)};H(c,e=>{L(r)&&e(l)}),E(o),B(e,o)};H(s,e=>{L(l)?e(c):e(u,-1)}),B(e,o),O()}var mR=z(`

        .

        `),hR=z(`
        Audit logging is off. Live entries are temporary and disappear after + refresh. Set LOGGING_ENABLED=true to persist them.
        `),gR=z(`

        `),_R=z(`
        `),vR=z(`
        `),yR=z(`
        `),bR=z(`
        `),xR=z(`
        `);function SR(e,t){D(t,!0);let n=k(()=>js.config&&js.config.LOGGING_RETENTION_DAYS);kn(()=>{if(J.refreshTick,Zo.page===`audit-logs`)return Tr(()=>r())});function r(){let e=!1;return(async()=>{try{await js.ensureLoaded()}finally{await JF.fetchAuditLog(!0),!e&&js.liveLogsVisible()&&GC.ensureLiveLogs()}})(),()=>{e=!0,GC.stopLiveLogs()}}var i=xR(),a=N(i),o=N(a),s=F(N(o),2),c=e=>{oC(e,{copyId:`audit-retention-help-copy`,label:`retention help`,text:`If you want to change the retention period, set LOGGING_RETENTION_DAYS (env var) or logging.retention_days (config.yaml) and restart the gateway. Default is 30 days; 0 keeps audit logs forever.`,title:e=>{var t=mR(),r=N(t,!0),i=F(r),a=N(i,!0);E(i),He(),E(t),I((e,t)=>{V(r,e),V(a,t)},[()=>WP(L(n)),()=>GP(L(n))]),B(e,t)},$$slots:{title:!0}})},l=k(()=>UP(L(n)));H(s,e=>{L(l)&&e(c)}),E(o),E(a);var u=F(a,2);ml(N(u),{onchange:()=>JF.fetchAuditLog(!0)}),E(u);var d=F(u,2);Jc(d,{});var f=F(d,2),p=e=>{B(e,hR())},m=k(()=>js.loaded&&!js.auditVisible()&&!J.needsAuth);H(f,e=>{L(m)&&e(p)});var h=F(f,2),g=N(h);XF(g,{});var _=F(g,2),v=N(_),y=N(v),b=e=>{var t=gR(),n=N(t);E(t),I(e=>V(n,`Showing ${JF.auditLog.offset+1}-${e??``} of ${JF.auditLog.total??``} + ${JF.auditGroupSessions?`sessions`:`logs`}`),[()=>Math.min(JF.auditLog.offset+JF.auditLog.limit,JF.auditLog.total)]),B(e,t)};H(y,e=>{JF.auditLog.total>0&&e(b)});var x=F(y,2),S=N(x);ta(S),He(2),E(x),E(v),tI(F(v,2),{}),E(_);var C=F(_,2),w=e=>{var t=_R();FS(N(t),{size:18,label:`Loading audit logs`}),E(t),B(e,t)},T=e=>{var t=yR();U(t,29,()=>JF.auditLog.entries,e=>e.id,(e,t)=>{var n=vR(),r=N(n),i=e=>{pR(e,{get entry(){return L(t)}})},a=e=>{sR(e,{get entry(){return L(t)}})};H(r,e=>{JF.auditGroupSessions?e(i):e(a,-1)}),E(n),Di(n,()=>EP,()=>({duration:AP(150)})),Oi(1,n,()=>jP,()=>({live:L(t)._live})),B(e,n)}),E(t),B(e,t)};H(C,e=>{JF.loading&&JF.auditLog.entries.length===0?e(w):JF.auditLog.entries.length>0&&e(T,1)});var ee=F(C,2),te=e=>{var t=bR();RS(N(t),{}),E(t),B(e,t)};H(ee,e=>{JF.auditLog.entries.length===0&&!JF.loading&&!J.needsAuth&&e(te)}),Yw(F(ee,2),{get total(){return JF.auditLog.total},get offset(){return JF.auditLog.offset},get limit(){return JF.auditLog.limit},onprev:()=>JF.auditLogPrevPage(),onnext:()=>JF.auditLogNextPage()}),E(h),E(i),I(()=>ra(S,JF.auditGroupSessions)),R(`change`,S,()=>JF.toggleAuditGroupSessions()),B(e,i),O()}Vr([`change`]);function CR(e){try{let t=JSON.parse(JSON.stringify(e||{}));return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}catch{return{}}}function wR(e){return Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(e=>e):e==null?[]:String(e).split(`,`).map(e=>e.trim()).filter(e=>e)}function TR(e,t){let n=String(t||``).trim();return(e||[]).find(e=>String(e&&e.type||``).trim()===n)||null}function ER(e){return Array.isArray(e)&&e.length>0&&String(e[0].type||``).trim()||`system_prompt`}function DR(e,t){let n=String(t||``).trim();return n&&TR(e,n)?n:ER(e)}function OR(e,t){let n=TR(e,t);return!n||!n.defaults?{}:CR(n.defaults)}function kR(e,t,n){return{...OR(e,n),...CR(t)}}function AR(e,t){let n=DR(e,t);return{name:``,type:n,description:``,user_path:``,config:OR(e,n)}}function jR(e,t){if(!t)return e||[];let n=String(t).toLowerCase();return(e||[]).filter(e=>[e.name,e.type,e.user_path,e.description,e.summary].some(e=>String(e||``).toLowerCase().includes(n)))}function MR(e,t){let n=TR(e,t);return n&&n.label?n.label:t||`Unknown`}function NR(e,t){let n=TR(e,t);return Array.isArray(n&&n.fields)?n.fields:[]}function PR(e,t){if(!t||!e)return t&&t.input===`checkboxes`?[]:``;let n=e[t.key];return n==null?t.input===`checkboxes`?[]:``:t.input===`checkboxes`?wR(n):n}function FR(e,t,n){if(!t)return e;let r=CR(e);if(t.input===`number`){let e=String(n||``).trim();if(e===``)delete r[t.key];else{let n=Number(e);r[t.key]=Number.isFinite(n)?n:e}}else t.input===`checkboxes`?r[t.key]=wR(n):r[t.key]=n;return r}function IR(e,t,n){return PR(e,t).includes(String(n||``).trim())}function LR(e,t,n,r){let i=wR(PR(e,t)),a=String(n||``).trim();return a?FR(e,t,r?Array.from(new Set([...i,a])):i.filter(e=>e!==a)):e}function RR(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),description:String(e&&e.description||``).trim()||void 0,user_path:String(e&&e.user_path||``).trim()||void 0,config:CR(e&&e.config)}}var zR=new class{#e=A(M([]));get guardrails(){return L(this.#e)}set guardrails(e){j(this.#e,e,!0)}#t=A(M([]));get types(){return L(this.#t)}set types(e){j(this.#t,e,!0)}#n=A(!0);get available(){return L(this.#n)}set available(e){j(this.#n,e,!0)}#r=A(!1);get loading(){return L(this.#r)}set loading(e){j(this.#r,e,!0)}#i=A(!1);get typesLoading(){return L(this.#i)}set typesLoading(e){j(this.#i,e,!0)}#a=A(``);get error(){return L(this.#a)}set error(e){j(this.#a,e,!0)}#o=A(``);get filter(){return L(this.#o)}set filter(e){j(this.#o,e,!0)}#s=A(!1);get formOpen(){return L(this.#s)}set formOpen(e){j(this.#s,e,!0)}#c=A(!1);get formSubmitting(){return L(this.#c)}set formSubmitting(e){j(this.#c,e,!0)}#l=A(``);get deletingName(){return L(this.#l)}set deletingName(e){j(this.#l,e,!0)}#u=A(`create`);get formMode(){return L(this.#u)}set formMode(e){j(this.#u,e,!0)}#d=A(``);get formOriginalName(){return L(this.#d)}set formOriginalName(e){j(this.#d,e,!0)}#f=A(M({name:``,type:``,description:``,user_path:``,config:{}}));get form(){return L(this.#f)}set form(e){j(this.#f,e,!0)}get filtered(){return jR(this.guardrails,this.filter)}typeLabel(e){return MR(this.types,e)}typeFields(e){return NR(this.types,e)}fieldValue(e){return PR(this.form&&this.form.config,e)}setFieldValue(e,t){this.form={...this.form,config:FR(this.form.config,e,t)}}arrayFieldSelected(e,t){return IR(this.form&&this.form.config,e,t)}toggleArrayFieldValue(e,t,n){this.form={...this.form,config:LR(this.form.config,e,t,n)}}openCreate(){this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=AR(this.types,ER(this.types)),this.formOpen=!0}openEdit(e){let t=DR(this.types,e&&e.type);this.formMode=`edit`,this.formOriginalName=String(e&&e.name||``).trim(),this.error=``,this.form={name:this.formOriginalName,type:t,description:String(e&&e.description||``).trim(),user_path:String(e&&e.user_path||``).trim(),config:kR(this.types,e&&e.config,t)},this.formOpen=!0}closeForm(){this.formOpen=!1,this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=AR(this.types,ER(this.types))}changeType(e){let t=DR(this.types,e);this.form={...this.form,type:t,config:OR(this.types,t)}}async fetchTypes(){this.typesLoading=!0;try{let e=await HT(`/admin/guardrails/types`,{label:`guardrail types`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.types=[];return}if(e.result&&(this.available=!0),this.types=e.items,e.status===`error`){this.error=e.error;return}let t=DR(this.types,this.form.type);this.form={...this.form,type:t,config:kR(this.types,this.form.config,t)}}finally{this.typesLoading=!1}}async fetchGuardrails(){this.loading=!0,this.error=``;try{let e=await HT(`/admin/guardrails`,{label:`guardrails`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.guardrails=[];return}e.result&&(this.available=!0),this.guardrails=e.items,this.error=e.error}finally{this.loading=!1}}async fetchPage(){await Promise.all([this.fetchTypes(),this.fetchGuardrails()])}async submitForm(){let e=String(this.form.name||``).trim(),t=String(this.form.type||``).trim();if(!e){this.error=`Name is required.`;return}if(!t){this.error=`Type is required.`;return}this.error=``,this.formSubmitting=!0;let n=RR(this.form);try{let t=await UT(`/admin/guardrails`,`PUT`,n,{label:`save guardrail`,errorFallback:`Failed to save guardrail.`,unavailableMessage:`Guardrails feature is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}dc.success(`Guardrail "`+e+`" saved.`),this.closeForm(),this.fetchGuardrails()}finally{this.formSubmitting=!1}}async deleteGuardrail(e){let t=String(e&&e.name||``).trim();if(!(!t||this.deletingName)&&window.confirm(`Delete guardrail "`+t+`"? Workflows that still reference it must be updated first.`)){this.deletingName=t;try{let e=await UT(`/admin/guardrails`,`DELETE`,{name:t},{label:`delete guardrail`,errorFallback:`Failed to delete guardrail.`,unavailableMessage:`Guardrails feature is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,dc.error(e.error);return}if(e.status===`error`){dc.error(e.error);return}dc.success(`Guardrail "`+t+`" deleted.`),this.formOpen&&this.formOriginalName===t&&this.closeForm(),this.fetchGuardrails()}finally{this.deletingName=``}}}},BR=z(`
        `),VR=z(`

        Loading guardrails...

        `),HR=z(`
        `),UR=z(`
        `),WR=z(`
        NameTypeUser PathSummaryActions
        `),GR=z(`

        No guardrails defined yet.

        `),KR=z(`

        Instances

        Each instance has a reusable name, a type, an optional user path for + future UI visibility scoping, and a JSON-backed config payload for + that type.

        `);function qR(e,t){D(t,!0);var n=KR(),r=N(n),i=F(N(r),2);q(N(i),{get icon(){return ho},class:`form-action-icon`}),He(2),E(i),E(r);var a=F(r,2),o=e=>{var t=BR(),n=N(t);Fw(N(n),{id:`guardrail-filter`,placeholder:`Filter by name, type, user path, summary...`,label:`Guardrail filter`,get value(){return zR.filter},set value(e){zR.filter=e}}),E(n),E(t),B(e,t)};H(a,e=>{zR.available&&e(o)});var s=F(a,2),c=e=>{var t=VR();FS(N(t),{size:16,label:`Loading guardrails`}),He(),E(t),B(e,t)};H(s,e=>{zR.loading&&zR.filtered.length===0&&e(c)});var l=F(s,2),u=e=>{var t=WR(),n=N(t),r=F(N(n));U(r,21,()=>zR.filtered,e=>e.name,(e,t)=>{var n=UR(),r=N(n),i=N(r,!0);E(r);var a=F(r),o=N(a),s=N(o,!0);E(o),E(a);var c=F(a),l=N(c,!0);E(c);var u=F(c),d=N(u),f=N(d,!0);E(d);var p=F(d,2),m=e=>{var n=HR(),r=N(n,!0);E(n),I(()=>V(r,L(t).description)),B(e,n)};H(p,e=>{L(t).description&&e(m)}),E(u);var h=F(u),g=N(h),_=N(g);{let e=k(()=>`Edit guardrail `+L(t).name);VT(_,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>zR.openEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return po},class:`table-icon-svg`})},$$slots:{default:!0}})}var v=F(_,2);{let e=k(()=>(zR.deletingName===L(t).name?`Deleting guardrail `:`Delete guardrail `)+L(t).name),n=k(()=>zR.deletingName===L(t).name);VT(v,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>zR.deleteGuardrail(L(t)),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return zo},class:`table-icon-svg`})},$$slots:{default:!0}})}E(g),E(h),E(n),I(e=>{V(i,L(t).name),V(s,e),V(l,L(t).user_path||`—`),V(f,L(t).summary||L(t).description||`No summary yet.`)},[()=>zR.typeLabel(L(t).type)]),B(e,n)}),E(r),E(n),E(t),B(e,t)};H(l,e=>{zR.filtered.length>0&&e(u)});var d=F(l,2),f=e=>{B(e,GR())};H(d,e=>{zR.filtered.length===0&&!zR.loading&&zR.available&&!zR.error&&!J.authError&&e(f)}),E(n),I(()=>i.disabled=zR.typesLoading||zR.formSubmitting||!zR.available),R(`click`,i,()=>zR.openCreate()),B(e,n),O()}Vr([`click`]);var JR=z(`

        Workflows reference these names directly, so renames are + intentionally avoided after creation.

        `),YR=z(``),XR=z(``),ZR=z(``),QR=z(``),$R=z(``),ez=z(``),tz=z(``),nz=z(``),rz=z(``),iz=z(`
        `),az=z(``),oz=z(` `),sz=z(`
        `),cz=z(`
        `);function lz(e,t){D(t,!0);let n=k(()=>zR.formMode===`edit`);{let t=e=>{B(e,JR())},r=k(()=>L(n)?`Edit Guardrail`:`Create Guardrail`);GE(e,{get open(){return zR.formOpen},get title(){return L(r)},ariaLabel:`Guardrail editor`,get error(){return zR.error},get submitting(){return zR.formSubmitting},submitLabel:`Save Guardrail`,dialogClass:`settings-guardrails-editor guardrails-editor-wide`,onclose:()=>zR.closeForm(),onsubmit:()=>zR.submitForm(),headerHint:t,children:(e,t)=>{var r=cz(),i=N(r);qE(i,{id:`guardrail-name`,label:`Name`,children:(e,t)=>{var r=YR();ta(r),I(()=>{r.disabled=L(n),G(r,`data-modal-autofocus`,!L(n)||void 0)}),ua(r,()=>zR.form.name,e=>zR.form.name=e),B(e,r)},$$slots:{default:!0}});var a=F(i,2);qE(a,{id:`guardrail-type`,label:`Type`,children:(e,t)=>{var r=ZR();U(r,21,()=>zR.types,e=>e.type,(e,t)=>{var n=XR(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).type)&&(n.value=(n.__value=L(t).type)??``)}),B(e,n)}),E(r);var i;Ui(r),I(()=>{r.disabled=L(n),i!==(i=zR.form.type)&&(r.value=(r.__value=zR.form.type)??``,Hi(r,zR.form.type))}),R(`change`,r,e=>zR.changeType(e.currentTarget.value)),B(e,r)},$$slots:{default:!0}});var o=F(a,2);qE(o,{id:`guardrail-description`,label:`Description`,children:(e,t)=>{var r=QR();ta(r),I(()=>G(r,`data-modal-autofocus`,L(n)?!0:void 0)),ua(r,()=>zR.form.description,e=>zR.form.description=e),B(e,r)},$$slots:{default:!0}});var s=F(o,2),c=N(s);oC(c,{copyId:`guardrail-user-path-help-copy`,label:`guardrail user path help`,text:`Only used for auxiliary rewrite (llm_based_altering) guardrails; ignored for other guardrail types.`,title:e=>{B(e,$R())},$$slots:{title:!0}});var l=F(c,2);ta(l),E(s),U(F(s,2),17,()=>zR.typeFields(zR.form.type),e=>e.key,(e,t)=>{var n=Zr(),r=P(n),i=e=>{var n=iz(),r=N(n);{let e=e=>{var n=ez(),r=N(n,!0);E(n),I(()=>{G(n,`for`,`guardrail-field-`+L(t).key),V(r,L(t).label)}),B(e,n)},n=k(()=>`guardrail-field-help-`+L(t).key),i=k(()=>L(t).label+` help`),a=k(()=>L(t).help||``);oC(r,{get copyId(){return L(n)},get label(){return L(i)},get text(){return L(a)},title:e,$$slots:{title:!0}})}var i=F(r,2),a=e=>{var n=tz();U(n,21,()=>L(t).options||[],e=>e.value,(e,t)=>{var n=XR(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(n);var r;Ui(n),I(e=>{G(n,`id`,`guardrail-field-`+L(t).key),G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0),r!==(r=e)&&(n.value=(n.__value=e)??``,Hi(n,e))},[()=>zR.fieldValue(L(t))]),R(`change`,n,e=>zR.setFieldValue(L(t),e.currentTarget.value)),B(e,n)},o=e=>{var n=nz();dt(n),I(e=>{G(n,`id`,`guardrail-field-`+L(t).key),G(n,`placeholder`,L(t).placeholder||``),na(n,e),G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0)},[()=>zR.fieldValue(L(t))]),R(`input`,n,e=>zR.setFieldValue(L(t),e.currentTarget.value)),B(e,n)},s=e=>{var n=rz();ta(n),I(e=>{G(n,`id`,`guardrail-field-`+L(t).key),G(n,`type`,L(t).input||`text`),G(n,`placeholder`,L(t).placeholder||``),na(n,e),G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0)},[()=>zR.fieldValue(L(t))]),R(`input`,n,e=>zR.setFieldValue(L(t),e.currentTarget.value)),B(e,n)};H(i,e=>{L(t).input===`select`?e(a):L(t).input===`textarea`?e(o,1):e(s,-1)}),E(n),B(e,n)},a=e=>{var n=sz(),r=N(n),i=N(r,!0);E(r);var a=F(r,2);U(a,21,()=>L(t).options||[],e=>L(t).key+`-`+e.value,(e,n)=>{var r=az(),i=N(r);ta(i);var a=F(i,2),o=N(a,!0);E(a),E(r),I(e=>{ra(i,e),V(o,L(n).label)},[()=>zR.arrayFieldSelected(L(t),L(n).value)]),R(`change`,i,e=>zR.toggleArrayFieldValue(L(t),L(n).value,e.currentTarget.checked)),B(e,r)}),E(a);var o=F(a,2),s=e=>{var n=oz(),r=N(n,!0);E(n),I(()=>{G(n,`id`,`guardrail-field-help-`+L(t).key),V(r,L(t).help)}),B(e,n)};H(o,e=>{L(t).help&&e(s)}),E(n),I(()=>{G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0),V(i,L(t).label)}),B(e,n)};H(r,e=>{L(t).input===`checkboxes`?e(a,-1):e(i)}),B(e,n)}),E(r),ua(l,()=>zR.form.user_path,e=>zR.form.user_path=e),B(e,r)},$$slots:{headerHint:!0,default:!0}})}O()}Vr([`change`,`input`]);var uz=z(`

        Guardrails

        `),dz=z(`
        Runtime guardrail execution is currently off because GUARDRAILS_ENABLED is disabled. You can still manage + definitions here.
        `),fz=z(`
        Guardrails feature is unavailable.
        `),pz=z(`
        `),mz=z(`

        Reusable Policy Objects

        Guardrail Library

        Store guardrails in the database, keep them hot in memory, and attach + them to workflows by reference.

        Instances
        Types
        `);function hz(e,t){D(t,!0),kn(()=>{J.refreshTick,Zo.page===`guardrails`&&(js.ensureLoaded(),zR.fetchPage())});var n=mz(),r=N(n),i=N(r);oC(N(i),{copyId:`guardrails-help-copy`,label:`guardrails help`,text:`Reusable policy objects stored in the database and kept hot in memory for workflow execution.`,title:e=>{B(e,uz())},$$slots:{title:!0}}),E(i),E(r);var a=F(r,2),o=F(N(a),2),s=N(o),c=F(N(s),2),l=N(c,!0);E(c),E(s);var u=F(s,2),d=F(N(u),2),f=N(d,!0);E(d),E(u),E(o),E(a);var p=F(a,2);Jc(p,{});var m=F(p,2),h=e=>{B(e,dz())},g=k(()=>!js.guardrailsVisible());H(m,e=>{L(g)&&e(h)});var _=F(m,2),v=e=>{B(e,fz())};H(_,e=>{!J.authError&&!zR.available&&e(v)});var y=F(_,2),b=e=>{var t=pz(),n=N(t,!0);E(t),I(()=>V(n,zR.error)),B(e,t)};H(y,e=>{!J.authError&&zR.error&&!zR.formOpen&&e(b)});var x=F(y,2);lz(x,{}),qR(F(x,2),{}),E(n),I((e,t)=>{V(l,e),V(f,t)},[()=>yc(zR.guardrails.length),()=>yc(zR.types.length)]),B(e,n),O()}var $=new class{#e=A(M([]));get servers(){return L(this.#e)}set servers(e){j(this.#e,e,!0)}#t=A(!0);get available(){return L(this.#t)}set available(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=A(``);get error(){return L(this.#r)}set error(e){j(this.#r,e,!0)}#i=A(``);get filter(){return L(this.#i)}set filter(e){j(this.#i,e,!0)}#a=A(!1);get formOpen(){return L(this.#a)}set formOpen(e){j(this.#a,e,!0)}#o=A(!1);get formSubmitting(){return L(this.#o)}set formSubmitting(e){j(this.#o,e,!0)}#s=A(`create`);get formMode(){return L(this.#s)}set formMode(e){j(this.#s,e,!0)}#c=A(!1);get slugEdited(){return L(this.#c)}set slugEdited(e){j(this.#c,e,!0)}#l=A(!1);get advancedOpen(){return L(this.#l)}set advancedOpen(e){j(this.#l,e,!0)}#u=A(M(wx()));get form(){return L(this.#u)}set form(e){j(this.#u,e,!0)}#d=A(``);get deletingName(){return L(this.#d)}set deletingName(e){j(this.#d,e,!0)}#f=A(``);get reconnectingName(){return L(this.#f)}set reconnectingName(e){j(this.#f,e,!0)}#p=A(!1);get catalogOpen(){return L(this.#p)}set catalogOpen(e){j(this.#p,e,!0)}#m=A(!1);get catalogLoading(){return L(this.#m)}set catalogLoading(e){j(this.#m,e,!0)}#h=A(``);get catalogError(){return L(this.#h)}set catalogError(e){j(this.#h,e,!0)}#g=A(M(Tx()));get catalog(){return L(this.#g)}set catalog(e){j(this.#g,e,!0)}#_=k(()=>Ix(this.servers,this.filter));get filtered(){return L(this.#_)}set filtered(e){j(this.#_,e)}async fetchServers(){if(await js.ensureLoaded(),!js.mcpVisible()){this.available=!1,this.servers=[],this.error=``,this.loading=!1;return}this.loading=!0,this.error=``;try{let e=await HT(`/admin/mcp-servers`,{label:`mcp servers`,errorFallback:`Failed to load MCP servers.`,unavailableStatuses:[503,404]});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.servers=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.servers=[],this.error=e.error;return}this.available=!0,this.servers=e.items}finally{this.loading=!1}}openCreate(){this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=wx(),this.formOpen=!0}openEdit(e){!e||e.managed||(this.formMode=`edit`,this.slugEdited=!0,this.advancedOpen=!1,this.error=``,this.form=Lx(e),this.formOpen=!0)}closeForm(){this.formOpen=!1,this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=wx()}syncSlugFromName(){this.formMode===`create`&&!this.slugEdited&&(this.form.slug=Mx(this.form.name))}markSlugEdited(){this.formMode===`create`&&(this.slugEdited=!0)}addHeader(){this.form.headers.push({name:``,value:``})}removeHeader(e){this.form.headers.splice(e,1)}async submitForm(){let e=Rx(this.form,this.formMode,this.servers);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await UT(`/admin/mcp-servers`,`PUT`,e.payload,{label:`save mcp server`,errorFallback:`Failed to save MCP server.`,unavailableMessage:`MCP server management is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}dc.success(`MCP server "`+e.payload.name+`" saved.`),this.closeForm(),this.fetchServers()}finally{this.formSubmitting=!1}}async deleteServer(e){let t=String(e&&e.name||``).trim(),n=Ex(e);if(!(!n||this.deletingName||e&&e.managed)&&confirm(`Delete MCP server "`+t+`"? Clients lose access to its tools immediately.`)){this.deletingName=n;try{let e=await UT(`/admin/mcp-servers/`+encodeURIComponent(n),`DELETE`,void 0,{label:`delete mcp server`,errorFallback:`Failed to delete MCP server.`,unavailableMessage:`MCP server management is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,dc.error(e.error);return}if(e.status===`error`){dc.error(e.error);return}dc.success(`MCP server "`+t+`" deleted.`),this.formOpen&&this.form.slug===n&&this.closeForm(),this.fetchServers()}finally{this.deletingName=``}}}async reconnectServer(e){let t=String(e&&e.name||``).trim(),n=Ex(e);if(!(!n||this.reconnectingName)){this.reconnectingName=n;try{let e=await UT(`/admin/mcp-servers/`+encodeURIComponent(n)+`/reconnect`,`POST`,void 0,{label:`reconnect mcp server`,errorFallback:`Failed to reconnect MCP server.`,unavailableMessage:`MCP server management is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,dc.error(e.error);return}if(e.status===`error`){dc.error(e.error);return}let r=e.result.data,i=Dx(r);i===`connected`?dc.success(`MCP server "`+t+`" reconnected.`):i===`disabled`?dc.success(`MCP server "`+t+`" is disabled; no connection was attempted.`):dc.error(`Reconnect attempted, but MCP server "`+t+`" is still `+i+`.`),r&&r.name?this.servers=(this.servers||[]).map(e=>Ex(e)===Ex(r)?r:e):this.fetchServers()}finally{this.reconnectingName=``}}}async openCatalog(e){let t=String(e&&e.name||``).trim(),n=Ex(e);if(n){this.catalogOpen=!0,this.catalogLoading=!0,this.catalogError=``,this.catalog={...Tx(),server:n,status:Dx(e)};try{let e=await Es(`/admin/mcp-servers/`+encodeURIComponent(n)+`/catalog`,{label:`mcp server catalog`});if(e.stale)return;if(e.status===503){this.available=!1,this.catalogError=`MCP server management is unavailable.`;return}if(e.status===404){this.catalogError=`MCP server "`+t+`" was not found.`;return}if(!e.ok){this.catalogError=e.status===401?`Authentication required.`:xs(e.data,`Failed to load MCP server catalog.`);return}this.catalog=zx(n,e.data)}catch(e){console.error(`Failed to load MCP server catalog:`,e),this.catalogError=`Failed to load MCP server catalog.`}finally{this.catalogLoading=!1}}}closeCatalog(){this.catalogOpen=!1,this.catalogLoading=!1,this.catalogError=``,this.catalog=Tx()}},gz=z(``),_z=z(`

        `),vz=z(`
        `),yz=z(`

        `),bz=z(`
      • `),xz=z(`

          `),Sz=z(`

          No tools listed — the server may still be connecting or degraded.

          `),Cz=z(` `,1),wz=z(``);function Tz(e,t){D(t,!0);let n=k(()=>Vx($.catalog));Ws(e,{get open(){return $.catalogOpen},variant:`editor`,onclose:()=>$.closeCatalog(),children:(e,t)=>{var r=wz(),i=N(r),a=N(i),o=F(N(a),2),s=N(o),c=N(s,!0);E(s);var l=F(s,2),u=N(l,!0);E(l),E(o),E(a),Bs(F(a,2),{label:`Close MCP server catalog`,onclick:()=>$.closeCatalog()}),E(i);var d=F(i,2),f=e=>{zT(e,{label:`Loading catalog...`})},p=e=>{var t=gz(),n=N(t,!0);E(t),I(()=>V(n,$.catalogError)),B(e,t)},m=e=>{var t=Cz(),r=P(t),i=e=>{var t=_z(),n=N(t,!0);E(t),I(()=>V(n,$.catalog.instructions)),B(e,t)};H(r,e=>{$.catalog.instructions&&e(i)});var a=F(r,2);U(a,17,()=>L(n),e=>e.key,(e,t)=>{var n=xz(),r=N(n),i=N(r,!0);E(r);var a=F(r,2);U(a,21,()=>L(t).items,e=>e.key,(e,t)=>{var n=bz(),r=N(n),i=N(r,!0);E(r);var a=F(r,2),o=e=>{var n=vz(),r=N(n,!0);E(n),I(()=>{G(n,`title`,`Exposed on the aggregated /mcp endpoint as `+L(t).aggregated),V(r,L(t).aggregated)}),B(e,n)};H(a,e=>{L(t).aggregated&&e(o)});var s=F(a,2),c=e=>{var n=yz(),r=N(n,!0);E(n),I(()=>V(r,L(t).description)),B(e,n)};H(s,e=>{L(t).description&&e(c)}),E(n),I(()=>{G(r,`title`,L(t).aggregated||L(t).name),V(i,L(t).name)}),B(e,n)}),E(a),E(n),I(()=>V(i,L(t).title)),B(e,n)});var o=F(a,2),s=e=>{B(e,Sz())},c=k(()=>Hx($.catalog));H(o,e=>{L(c)&&e(s)}),B(e,t)};H(d,e=>{$.catalogLoading?e(f):$.catalogError?e(p,1):e(m,-1)});var h=F(d,2),g=N(h);E(h),E(r),I((e,t)=>{V(c,$.catalog.server),W(l,1,`audit-status-badge ${e??``}`,`svelte-1xqrzco`),V(u,t)},[()=>Ox($.catalog),()=>Dx($.catalog)]),R(`click`,g,()=>$.closeCatalog()),B(e,r)},$$slots:{default:!0}}),O()}Vr([`click`]);var Ez=z(`

          The display name can change. The slug is the stable client-facing identity.

          `),Dz=z(` Human-readable and Unicode-friendly. You can change it later.`,1),Oz=z(`Derived from the name. You may edit it before saving.`),kz=z(`Immutable because it is used in URLs, scope headers, and aggregated tool names.`),Az=z(` `,1),jz=z(` stdio servers are config-only: declare them in config.yaml under mcp.servers.`,1),Mz=z(``),Nz=z(`
          `),Pz=z(`
          Headers
          Sent only to the configured server origin. Saved values are shown as ***; leave *** unchanged to keep the stored value.
          Advanced settings Description, access rules, and timeout
          `,1);function Fz(e,t){D(t,!0);{let t=e=>{B(e,Ez())},n=k(()=>$.formMode===`edit`?`Edit MCP Server`:`Add MCP Server`);GE(e,{get open(){return $.formOpen},get title(){return L(n)},ariaLabel:`MCP server editor`,get error(){return $.error},get submitting(){return $.formSubmitting},onclose:()=>$.closeForm(),onsubmit:()=>$.submitForm(),headerHint:t,children:(e,t)=>{var n=Pz(),r=P(n);qE(r,{id:`mcp-server-name`,label:`Name`,children:(e,t)=>{var n=Dz(),r=P(n);ta(r),He(2),R(`input`,r,()=>$.syncSlugFromName()),ua(r,()=>$.form.name,e=>$.form.name=e),B(e,n)},$$slots:{default:!0}});var i=F(r,2);qE(i,{id:`mcp-server-slug`,label:`Slug`,children:(e,t)=>{var n=Az(),r=P(n);ta(r);var i=F(r,2),a=e=>{B(e,Oz())},o=e=>{B(e,kz())};H(i,e=>{$.formMode===`create`?e(a):e(o,-1)}),I(()=>r.disabled=$.formMode===`edit`),R(`input`,r,()=>$.markSlugEdited()),ua(r,()=>$.form.slug,e=>$.form.slug=e),B(e,n)},$$slots:{default:!0}});var a=F(i,2);qE(a,{id:`mcp-server-transport`,label:`Transport`,children:(e,t)=>{var n=jz(),r=P(n),i=N(r);i.value=i.__value=`http`;var a=F(i);a.value=a.__value=`sse`,E(r),He(2),Wi(r,()=>$.form.transport,e=>$.form.transport=e),B(e,n)},$$slots:{default:!0}});var o=F(a,2);qE(o,{id:`mcp-server-url`,label:`URL`,children:(e,t)=>{var n=Mz();ta(n),ua(n,()=>$.form.url,e=>$.form.url=e),B(e,n)},$$slots:{default:!0}});var s=F(o,2),c=F(N(s),2);U(c,21,()=>$.form.headers,ai,(e,t,n)=>{var r=Nz(),i=N(r);ta(i);var a=F(i,2);ta(a),VT(F(a,2),{label:`Remove header`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>$.removeHeader(n),children:(e,t)=>{q(e,{get icon(){return Mo},class:`table-icon-svg`})},$$slots:{default:!0}}),E(r),ua(i,()=>L(t).name,e=>L(t).name=e),ua(a,()=>L(t).value,e=>L(t).value=e),B(e,r)}),E(c);var l=F(c,2),u=N(l);q(N(u),{get icon(){return ho},class:`form-action-icon`}),He(2),E(u),E(l),He(2),E(s);var d=F(s,2),f=N(d);GA(N(f),{get enabled(){return $.form.enabled},label:`MCP server`,onclick:()=>$.form.enabled=!$.form.enabled}),E(f),E(d);var p=F(d,2),m=F(N(p),2),h=N(m),g=F(N(h),2);ta(g),E(h);var _=F(h,2),v=F(N(_),2);ta(v),E(_);var y=F(_,2),b=F(N(y),2);ta(b),E(y);var x=F(y,2),S=F(N(x),2);dt(S),G(S,`placeholder`,`/ +/team/alpha`),E(x);var C=F(x,2),w=F(N(C),2);ta(w),E(C),E(m),E(p),I(()=>p.open=$.advancedOpen),R(`click`,u,()=>$.addHeader()),Br(`toggle`,p,e=>$.advancedOpen=e.currentTarget.open),ua(g,()=>$.form.description,e=>$.form.description=e),ua(v,()=>$.form.allowed_tools,e=>$.form.allowed_tools=e),ua(b,()=>$.form.disallowed_tools,e=>$.form.disallowed_tools=e),ua(S,()=>$.form.user_paths,e=>$.form.user_paths=e),ua(w,()=>$.form.tool_timeout_seconds,e=>$.form.tool_timeout_seconds=e),B(e,n)},$$slots:{headerHint:!0,default:!0}})}O()}Vr([`input`,`click`]);var Iz=z(`Config`),Lz=z(`
          `),Rz=z(`
          `),zz=z(`
          NameTransportEndpointStatusToolsEnabledActions
          `);function Bz(e,t){D(t,!0);function n(e){return kx(e,e=>bs.formatTimestamp(e))}var r=zz(),i=N(r),a=F(N(i));U(a,21,()=>$.filtered,e=>Ex(e),(e,t)=>{var r=Rz(),i=N(r),a=N(i),o=N(a,!0);E(a);var s=F(a,2),c=e=>{B(e,Iz())};H(s,e=>{L(t).managed&&e(c)});var l=F(s,2),u=N(l,!0);E(l),E(i);var d=F(i),f=N(d),p=N(f,!0);E(f),E(d);var m=F(d),h=N(m,!0);E(m);var g=F(m),_=N(g),v=N(_,!0);E(_);var y=F(_,2),b=e=>{var n=Lz(),r=N(n,!0);E(n),I(()=>V(r,L(t).last_error)),B(e,n)},x=k(()=>Dx(L(t))===`degraded`&&L(t).last_error);H(y,e=>{L(x)&&e(b)}),E(g);var S=F(g),C=N(S),w=N(C,!0);E(C);var T=F(C,2),ee=N(T,!0);E(T),E(S);var te=F(S),ne=N(te),re=N(ne,!0);E(ne),E(te);var ie=F(te),ae=N(ie),oe=N(ae),se=e=>{{let n=k(()=>`Edit MCP server `+L(t).name);VT(e,{get label(){return L(n)},class:`table-icon-btn`,onclick:()=>$.openEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return po},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(oe,e=>{L(t).managed||e(se)});var ce=F(oe,2);{let e=k(()=>`Inspect catalog of MCP server `+L(t).name);VT(ce,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>$.openCatalog(L(t)),children:(e,t)=>{q(e,{get icon(){return ao},class:`form-action-icon`})},$$slots:{default:!0}})}var le=F(ce,2);{let e=k(()=>($.reconnectingName===Ex(L(t))?`Reconnecting MCP server `:`Reconnect MCP server `)+L(t).name),n=k(()=>$.reconnectingName===Ex(L(t)));VT(le,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>$.reconnectServer(L(t)),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return _o},class:`form-action-icon`})},$$slots:{default:!0}})}var ue=F(le,2),de=e=>{{let n=k(()=>($.deletingName===Ex(L(t))?`Deleting MCP server `:`Delete MCP server `)+L(t).name),r=k(()=>$.deletingName===Ex(L(t)));VT(e,{get label(){return L(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>$.deleteServer(L(t)),get disabled(){return L(r)},children:(e,t)=>{q(e,{get icon(){return zo},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(ue,e=>{L(t).managed||e(de)}),E(ae),E(ie),E(r),I((e,n,r,i,a,s,c,l)=>{V(o,L(t).name),V(u,e),V(p,L(t).transport||`http`),G(m,`title`,n),V(h,r),W(_,1,`audit-status-badge ${i??``}`,`svelte-ah8nrt`),G(_,`title`,a),V(v,s),V(w,c),V(ee,l),W(ne,1,Pi([`auth-key-status-badge`,L(t).enabled?`auth-key-status-active`:`auth-key-status-inactive`])),V(re,L(t).enabled?`Enabled`:`Disabled`)},[()=>Ex(L(t)),()=>Ax(L(t)),()=>Ax(L(t)),()=>Ox(L(t)),()=>n(L(t)),()=>Dx(L(t)),()=>yc(L(t).tool_count||0),()=>jx(L(t))]),B(e,r)}),E(a),E(i),E(r),B(e,r),O()}var Vz=z(`

          MCP Servers

          `),Hz=z(``),Uz=z(`
          MCP server management is unavailable.
          `),Wz=z(``),Gz=z(`
          `),Kz=z(`

          No MCP servers yet. Add one here, or declare servers in config.yaml under mcp.servers.

          `),qz=z(`

          No MCP servers match your filter.

          `),Jz=z(`
          `);function Yz(e,t){D(t,!0),kn(()=>{J.refreshTick,Zo.page===`mcp-servers`&&$.fetchServers()});var n=Jz(),r=N(n),i=N(r);oC(N(i),{copyId:`mcp-servers-help-copy`,label:`MCP servers help`,text:`Upstream Model Context Protocol servers whose tools, prompts, and resources the gateway exposes to clients. Servers added here connect over HTTP or SSE; stdio servers and rows marked Config are declared in config.yaml under mcp.servers and are read-only in the dashboard. Saved header values are masked in API and dashboard responses.`,title:e=>{B(e,Vz())},$$slots:{title:!0}}),E(i);var a=F(i,2),o=N(a),s=e=>{var t=Hz();q(N(t),{get icon(){return ho},class:`form-action-icon`}),He(2),E(t),I(()=>t.disabled=$.formSubmitting),R(`click`,t,()=>$.openCreate()),B(e,t)};H(o,e=>{$.available&&!J.authError&&e(s)}),E(a),E(r);var c=F(r,2),l=e=>{B(e,Uz())};H(c,e=>{!$.available&&!J.authError&&e(l)});var u=F(c,2),d=e=>{var t=Wz(),n=N(t,!0);E(t),I(()=>V(n,$.error)),B(e,t)};H(u,e=>{$.error&&!J.authError&&!$.formOpen&&e(d)});var f=F(u,2),p=e=>{zT(e,{label:`Loading MCP servers...`})};H(f,e=>{$.loading&&!J.authError&&e(p)});var m=F(f,2),h=e=>{var t=Gz(),n=N(t);Fw(N(n),{id:`mcp-server-filter`,placeholder:`Filter by name, slug, URL, transport, or status...`,label:`Filter MCP servers by name, slug, URL, transport, or status`,get value(){return $.filter},set value(e){$.filter=e}}),E(n),E(t),B(e,t)};H(m,e=>{($.servers.length>0||$.filter)&&$.available&&!J.authError&&e(h)});var g=F(m,2);Fz(g,{});var _=F(g,2);Tz(_,{});var v=F(_,2),y=e=>{Bz(e,{})};H(v,e=>{$.filtered.length>0&&$.available&&!J.authError&&e(y)});var b=F(v,2),x=e=>{B(e,Kz())};H(b,e=>{$.servers.length===0&&!$.filter&&!$.loading&&!J.authError&&!$.error&&$.available&&e(x)});var S=F(b,2),C=e=>{B(e,qz())};H(S,e=>{$.servers.length>0&&$.filtered.length===0&&$.filter&&!$.loading&&!J.authError&&$.available&&e(C)}),E(n),B(e,n),O()}Vr([`click`]);var Xz=`api_keys`,Zz=`session_sticky_keys`,Qz=`base_url`,$z=`service_account_json`,eB=`models`,tB={[Xz]:{label:`API Keys`,control:`keys`,hint:`Identified sessions stay on one key by default, improving provider prompt-cache hits. Saved values are shown as ***********; leave the asterisks unchanged to keep the stored key.`},[Zz]:{label:`Session-sticky API keys`,control:`checkbox`,hint:`Keep each identified conversation on one API key to preserve provider prompt-cache affinity. Turn off to rotate keys round-robin on every request.`},[Qz]:{label:`Base URL`,control:`text`},api_version:{label:`API Version`,control:`text`,placeholder:`e.g. 2024-10-01-preview`,hint:`Leave empty for the provider default. Realtime endpoints may need a newer version.`},backend:{label:`Backend`,control:`select`,hint:`Which Google surface to call. Vertex authenticates with Google credentials instead of an API key.`},auth_type:{label:`Auth Type`,control:`select`,hint:`How to obtain Google credentials. Leave on the default to use Application Default Credentials.`},api_mode:{label:`API Mode`,control:`select`,hint:`Which request shape to send upstream.`},vertex_project:{label:`Vertex Project`,control:`text`,placeholder:`my-gcp-project`},vertex_location:{label:`Vertex Location`,control:`text`,placeholder:`us-central1`},service_account_file:{label:`Service Account File`,control:`text`,placeholder:`/path/to/service-account.json`,hint:`Path readable by the gateway process.`},[$z]:{label:`Service Account JSON`,control:`textarea`,placeholder:`Paste service account JSON`,hint:`Saved values are shown as ***********; leave the asterisks unchanged to keep the stored value, or clear it to remove.`},service_account_json_base64:{label:`Service Account JSON (base64)`,control:`text`,hint:`Saved values are shown as ***********; leave the asterisks unchanged to keep the stored value.`},gcp_scope:{label:`GCP Scope`,control:`text`,placeholder:`https://www.googleapis.com/auth/cloud-platform`},[eB]:{label:`Models (comma-separated)`,control:`text`,placeholder:`gpt-4o, gpt-4o-mini`,hint:`Leave empty to auto-discover models from the provider's /models endpoint where supported.`}};function nB(e){return tB[e]||{label:String(e||``).split(`_`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),control:`text`}}function rB(){return{name:``,type:``,api_keys:[],session_sticky_keys:!0,base_url:``,api_version:``,backend:``,auth_type:``,api_mode:``,vertex_project:``,vertex_location:``,service_account_file:``,service_account_json:``,service_account_json_base64:``,gcp_scope:``,models:``,enabled:!0}}function iB(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.type,e.base_url].some(e=>String(e||``).toLowerCase().includes(r)))}function aB(e,t){let n=(Array.isArray(e)?e:[]).map(e=>String(e&&e.type||``).trim()).filter(Boolean),r=String(t||``).trim();return r&&!n.includes(r)&&n.push(r),n}function oB(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>String(e&&e.type||``).trim()===n)||null}function sB(e,t){let n=e&&Array.isArray(e.fields)&&e.fields.length>0?e.fields:Object.keys(tB).map(e=>({name:e,advanced:e!==Xz})),r=t||e&&e.default_base_url||``,i=[],a=[];for(let e of n){let t=String(e&&e.name||``).trim();if(!t)continue;let n={...nB(t),name:t,required:!!(e&&e.required),options:Array.isArray(e&&e.options)?e.options:[]};t===`base_url`&&r&&(n.placeholder=r,n.hint=`Defaults to `+r),n.options.length>0&&(n.control=`select`),(e&&e.advanced?a:i).push(n)}return{primary:i,advanced:a}}var cB=new Set([`name`,`type`,`enabled`]);function lB(e,t){let n=new Set([...t.primary||[],...t.advanced||[]].map(e=>e.name)),r=rB(),i={...e};for(let e of Object.keys(r))!cB.has(e)&&!n.has(e)&&(i[e]=r[e]);return i}function uB(e){let t=Array.isArray(e&&e.api_keys)?e.api_keys.length:0;return t>0?t+` key`+(t===1?``:`s`):String(e&&e.service_account_json||``).trim()||String(e&&e.service_account_json_base64||``).trim()||String(e&&e.service_account_file||``).trim()?`service account`:String(e&&e.vertex_project||``).trim()?`ADC`:`keyless`}function dB(e){let t=Array.isArray(e&&e.models)?e.models:[];return t.length===0?`auto-discovered`:t.length+` model`+(t.length===1?``:`s`)}function fB(e){return(Array.isArray(e)?e:[]).map(e=>({value:String(e||``)}))}function pB(e){return(Array.isArray(e)?e:[]).map(e=>String(e&&e.value||``))}function mB(e,t){let n=String(t||``).trim();if(!n)return``;let r=new Set((Array.isArray(e)?e:[]).map(e=>String(e&&e.name||``).trim()));if(!r.has(n))return n;let i=1;for(;r.has(n+`-`+i);)i+=1;return n+`-`+i}function hB(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),api_keys:fB(e&&e.api_keys),session_sticky_keys:!e||e.session_sticky_keys!==!1,base_url:String(e&&e.base_url||``),api_version:String(e&&e.api_version||``),backend:String(e&&e.backend||``),auth_type:String(e&&e.auth_type||``),api_mode:String(e&&e.api_mode||``),vertex_project:String(e&&e.vertex_project||``),vertex_location:String(e&&e.vertex_location||``),service_account_file:String(e&&e.service_account_file||``),service_account_json:String(e&&e.service_account_json||``),service_account_json_base64:String(e&&e.service_account_json_base64||``),gcp_scope:String(e&&e.gcp_scope||``),models:(Array.isArray(e&&e.models)?e.models:[]).join(`, `),enabled:!e||e.enabled!==!1}}function gB(e){let t=String(e||``).trim();return t.length>=3&&/^\*+$/.test(t)}function _B(e,t,n,r){let i={},a=String(e&&e.name||``).trim();String(e&&e.type||``).trim()||(i.type=`Select a provider type.`),a?a.includes(`/`)?i.name=`Name cannot contain '/' — it separates the provider from the model.`:t===`create`&&(Array.isArray(n)?n:[]).some(e=>String(e&&e.name||``).trim()===a)&&(i.name=`Provider "`+a+`" already exists.`):i.name=`Name is required.`;let{primary:o,advanced:s}=sB(r);for(let t of[...o,...s]){let n=vB(e,t);n&&(i[t.name]=n)}return i}function vB(e,t){if(t.name===`api_keys`){let n=pB(e&&e.api_keys);return t.required&&!n.some(e=>e.trim())?`At least one API key is required for this provider type.`:n.some(e=>!e.trim())?`Remove the empty row instead of leaving a key blank.`:``}let n=String(e&&e[t.name]||``).trim();if(t.required&&!n)return t.label+` is required for this provider type.`;if(!n)return``;if(t.name===`base_url`&&!n.includes(`://`)&&/[./]/.test(n))return`Include the scheme, e.g. https://`+n;if(t.name===`service_account_json`&&!gB(n))try{JSON.parse(n)}catch{return`Paste the service account JSON file's contents — this is not valid JSON.`}return``}function yB(e,t){let n={name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),enabled:!!(e&&e.enabled)},{primary:r,advanced:i}=sB(t),a=!!(t&&Array.isArray(t.fields)&&t.fields.length>0),o=new Set;for(let t of[...r,...i])!a&&t.name===`session_sticky_keys`||(o.add(t.name),n[t.name]=bB(e,t.name));for(let t of Object.keys(tB)){if(o.has(t)||t===`session_sticky_keys`)continue;let r=bB(e,t);(Array.isArray(r)?r.length>0:String(r).trim()!==``)&&(n[t]=r)}return n}function bB(e,t){switch(t){case Xz:return pB(e&&e.api_keys);case eB:return _c(e&&e.models);case Zz:return!!(e&&e.session_sticky_keys);case $z:return e&&e.service_account_json||``;default:return String(e&&e[t]||``).trim()}}var xB=new class{#e=A(M([]));get rows(){return L(this.#e)}set rows(e){j(this.#e,e,!0)}#t=A(!0);get available(){return L(this.#t)}set available(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=A(``);get error(){return L(this.#r)}set error(e){j(this.#r,e,!0)}#i=A(``);get filter(){return L(this.#i)}set filter(e){j(this.#i,e,!0)}#a=A(!1);get formOpen(){return L(this.#a)}set formOpen(e){j(this.#a,e,!0)}#o=A(!1);get formSubmitting(){return L(this.#o)}set formSubmitting(e){j(this.#o,e,!0)}#s=A(`create`);get formMode(){return L(this.#s)}set formMode(e){j(this.#s,e,!0)}#c=A(!1);get advancedOpen(){return L(this.#c)}set advancedOpen(e){j(this.#c,e,!0)}#l=A(M(rB()));get form(){return L(this.#l)}set form(e){j(this.#l,e,!0)}#u=A(M({}));get fieldErrors(){return L(this.#u)}set fieldErrors(e){j(this.#u,e,!0)}#d=A(``);get focusField(){return L(this.#d)}set focusField(e){j(this.#d,e,!0)}#f=A(``);get deletingName(){return L(this.#f)}set deletingName(e){j(this.#f,e,!0)}#p=A(!1);get deleteSubmitting(){return L(this.#p)}set deleteSubmitting(e){j(this.#p,e,!0)}#m=A(M([]));get types(){return L(this.#m)}set types(e){j(this.#m,e,!0)}#h=A(!1);get typesLoaded(){return L(this.#h)}set typesLoaded(e){j(this.#h,e,!0)}#g=null;get filteredRows(){return iB(this.rows,this.filter)}get schema(){return oB(this.types,this.form.type)}get formFields(){if(!String(this.form.type||``).trim())return{primary:[],advanced:[]};let e=this.schema;return sB(e,e&&e.default_base_url)}async fetchTypes(){let e=await HT(`/admin/provider-credentials/types`,{label:`provider credential types`});e.status===`ok`&&(this.types=e.items,this.typesLoaded=!0)}async fetchPage(){this.#g&&this.#g.abort();let e=new AbortController;this.#g=e,this.loading=!0,this.error=``;try{let t=await HT(`/admin/provider-credentials`,{label:`provider credentials`,errorFallback:`Failed to load provider credentials.`,unavailableStatuses:[503,404],options:{signal:e.signal}});if(t.status===`stale`||e.signal.aborted)return;if(t.status===`unavailable`){this.available=!1,this.rows=[];return}if(t.status===`error`){t.result&&(this.available=!0),this.rows=[],this.error=t.error;return}this.available=!0,this.rows=t.items,this.typesLoaded||await this.fetchTypes()}finally{this.#g===e&&(this.#g=null,this.loading=!1)}}#_(e,t){this.formMode=e,this.form=t,this.advancedOpen=!1,this.error=``,this.fieldErrors={},this.focusField=``}openCreate(){this.#_(`create`,rB()),this.formOpen=!0,this.typesLoaded||this.fetchTypes()}openEdit(e){!e||e.managed||(this.#_(`edit`,hB(e)),this.formOpen=!0,this.typesLoaded||this.fetchTypes())}closeForm(){this.formOpen=!1,this.#_(`create`,rB())}selectType(){this.fieldErrors={};let e=this.formFields;this.formMode===`create`&&(this.form=lB(this.form,e));let t=e.primary.find(e=>e.name===`api_keys`);t&&t.required&&this.form.api_keys.length===0&&(this.form.api_keys=[{value:``}])}clearFieldError(e){if(this.fieldErrors[e]===void 0)return;let{[e]:t,...n}=this.fieldErrors;this.fieldErrors=n}addApiKeyRow(){this.form.api_keys.push({value:``}),this.clearFieldError(`api_keys`)}removeApiKeyRow(e){this.form.api_keys.splice(e,1),this.clearFieldError(`api_keys`)}#v(e){let t=xs(e,`Failed to save provider credential.`),n=String(e&&e.error&&typeof e.error==`object`&&e.error.param||``).trim();if(n&&this.#y(n)){this.fieldErrors={...this.fieldErrors,[n]:t},this.error=``,this.#b();return}this.error=t}#y(e){if(e===`name`||e===`type`)return!0;let{primary:t,advanced:n}=this.formFields;return[...t,...n].some(t=>t.name===e)}#b(){let e=Object.keys(this.fieldErrors);if(e.length===0)return;let{primary:t,advanced:n}=this.formFields;n.some(t=>e.includes(t.name))&&(this.advancedOpen=!0);let r=[`type`,`name`,...t.map(e=>e.name),...n.map(e=>e.name)];this.focusField=r.find(t=>e.includes(t))||e[0]}#x(){Kc.fetchModels(),Kc.fetchCategories()}async submitForm(){let e=this.schema,t=_B(this.form,this.formMode,this.rows,e);if(Object.keys(t).length>0){this.fieldErrors=t,this.error=``,this.#b();return}let n=yB(this.form,e);this.error=``,this.fieldErrors={},this.formSubmitting=!0;try{let e=await UT(`/admin/provider-credentials`,`PUT`,n,{label:`save provider credential`,errorFallback:`Failed to save provider credential.`,unavailableMessage:`Provider credential management is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.error=e.error;return}if(e.status===`error`){e.result&&e.result.status!==401?this.#v(e.result.data):this.error=e.error;return}dc.success(`Provider "`+n.name+`" saved.`),this.closeForm(),this.#x(),this.fetchPage()}finally{this.formSubmitting=!1}}async performDelete(e){this.deleteSubmitting=!0,this.deletingName=e;try{let t=await UT(`/admin/provider-credentials/`+encodeURIComponent(e),`DELETE`,void 0,{label:`delete provider credential`,errorFallback:`Failed to delete provider credential.`,unavailableMessage:`Provider credential management is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,Xs.error=t.error;return}if(t.status===`error`){Xs.error=t.error;return}dc.success(`Provider "`+e+`" deleted.`),Xs.close(),this.formOpen&&this.form.name===e&&this.closeForm(),this.#x(),this.fetchPage()}finally{this.deleteSubmitting=!1,this.deletingName=``}}requestDelete(e){let t=String(e||``).trim();if(!t||this.deleteSubmitting)return;let n=(this.rows||[]).find(e=>String(e&&e.name||``).trim()===t);n&&n.managed||Xs.open({title:`Delete Provider`,titleId:`providerCredentialDeleteDialogTitle`,inputId:`provider-credential-delete-confirmation`,message:`Type "`+t+`" to permanently delete this provider credential. Requests routed to it will fail until it is reconfigured.`,requiredText:t,confirmLabel:`Delete Provider`,icon:Mo,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.performDelete(t)})}},SB=z(`Config`),CB=z(` `,1),wB=z(`
          `),TB=z(`
          NameTypeBase URLAuthModelsEnabledUpdatedActions
          `);function EB(e,t){D(t,!0);var n=TB(),r=N(n),i=F(N(r));U(i,21,()=>xB.filteredRows,e=>e.name,(e,t)=>{var n=wB(),r=N(n),i=N(r),a=N(i,!0);E(i);var o=F(i,2),s=e=>{B(e,SB())};H(o,e=>{L(t).managed&&e(s)}),E(r);var c=F(r),l=N(c),u=N(l,!0);E(l),E(c);var d=F(c),f=N(d,!0);E(d);var p=F(d),m=N(p,!0);E(p);var h=F(p),g=N(h,!0);E(h);var _=F(h),v=N(_);let y;var b=N(v,!0);E(v),E(_);var x=F(_),S=N(x,!0);E(x);var C=F(x),w=N(C),T=N(w),ee=e=>{var n=CB(),r=P(n);{let e=k(()=>`Edit provider `+L(t).name);VT(r,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>xB.openEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return po},class:`table-icon-svg`})},$$slots:{default:!0}})}var i=F(r,2);{let e=k(()=>(xB.deletingName===L(t).name?`Deleting provider `:`Delete provider `)+L(t).name),n=k(()=>xB.deletingName===L(t).name);VT(i,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>xB.requestDelete(L(t).name),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return zo},class:`table-icon-svg`})},$$slots:{default:!0}})}B(e,n)};H(T,e=>{L(t).managed||e(ee)}),E(w),E(C),E(n),I((e,n,r)=>{V(a,L(t).name),V(u,L(t).type),G(d,`title`,L(t).base_url||``),V(f,L(t).base_url||`—`),V(m,e),V(g,n),y=W(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":L(t).enabled,"auth-key-status-inactive":!L(t).enabled}),V(b,L(t).enabled?`Enabled`:`Disabled`),V(S,r)},[()=>uB(L(t)),()=>dB(L(t)),()=>bs.formatTimestamp(L(t).updated_at)]),B(e,n)}),E(i),E(r),E(n),B(e,n),O()}var DB=z(``),OB=z(`
          `),kB=z(`
          `,1),AB=z(``),jB=z(``),MB=z(``),NB=z(``),PB=z(``),FB=z(` `),IB=z(` `),LB=z(`
          `);function RB(e,t){D(t,!0);let n=k(()=>`provider-credential-`+t.field.name),r=k(()=>xB.fieldErrors[t.field.name]||``),i=k(()=>L(r)?L(n)+`-error`:t.field.hint?L(n)+`-hint`:void 0),a=k(()=>{let e=String(xB.form[t.field.name]||``).trim();return!e||t.field.options.includes(e)?t.field.options:[...t.field.options,e]});function o(){xB.clearFieldError(t.field.name)}var s=LB(),c=N(s),l=N(c),u=F(l),d=e=>{B(e,DB())};H(u,e=>{t.field.required&&e(d)}),E(c);var f=F(c,2),p=e=>{var t=kB(),a=P(t);U(a,21,()=>xB.form.api_keys,ai,(e,t,a)=>{var s=OB(),c=N(s);ta(c),G(c,`aria-label`,`API key `+(a+1)),VT(F(c,2),{label:`Remove API key `+(a+1),class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>xB.removeApiKeyRow(a),children:(e,t)=>{q(e,{get icon(){return Mo},class:`table-icon-svg`})},$$slots:{default:!0}}),E(s),I(()=>{G(c,`id`,a===0?L(n):L(n)+`-`+a),G(c,`aria-invalid`,L(r)?`true`:void 0),G(c,`aria-describedby`,a===0?L(i):void 0)}),R(`input`,c,o),ua(c,()=>L(t).value,e=>L(t).value=e),B(e,s)}),E(a);var s=F(a,2),c=N(s);q(N(c),{get icon(){return ho},class:`form-action-icon`}),He(2),E(c),E(s),I(()=>G(c,`id`,xB.form.api_keys.length===0?L(n):void 0)),R(`click`,c,()=>xB.addApiKeyRow()),B(e,t)},m=e=>{var s=jB(),c=N(s);c.value=c.__value=``,U(F(c),16,()=>L(a),e=>e,(e,t)=>{var n=AB(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(s),I(()=>{G(s,`id`,L(n)),G(s,`aria-invalid`,L(r)?`true`:void 0),G(s,`aria-describedby`,L(i))}),R(`change`,s,o),Wi(s,()=>xB.form[t.field.name],e=>xB.form[t.field.name]=e),B(e,s)},h=e=>{var a=MB();ta(a),I(()=>{G(a,`id`,L(n)),G(a,`aria-invalid`,L(r)?`true`:void 0),G(a,`aria-describedby`,L(i))}),R(`change`,a,o),da(a,()=>xB.form[t.field.name],e=>xB.form[t.field.name]=e),B(e,a)},g=e=>{var a=NB();dt(a),I(()=>{G(a,`id`,L(n)),G(a,`placeholder`,t.field.placeholder||``),G(a,`aria-invalid`,L(r)?`true`:void 0),G(a,`aria-describedby`,L(i))}),R(`input`,a,o),ua(a,()=>xB.form[t.field.name],e=>xB.form[t.field.name]=e),B(e,a)},_=e=>{var a=PB();ta(a),I(()=>{G(a,`id`,L(n)),G(a,`placeholder`,t.field.placeholder||``),G(a,`aria-invalid`,L(r)?`true`:void 0),G(a,`aria-describedby`,L(i))}),R(`input`,a,o),ua(a,()=>xB.form[t.field.name],e=>xB.form[t.field.name]=e),B(e,a)};H(f,e=>{t.field.control===`keys`?e(p):t.field.control===`select`?e(m,1):t.field.control===`checkbox`?e(h,2):t.field.control===`textarea`?e(g,3):e(_,-1)});var v=F(f,2),y=e=>{var t=FB(),i=N(t,!0);E(t),I(()=>{G(t,`id`,L(n)+`-error`),V(i,L(r))}),B(e,t)},b=e=>{var r=IB(),i=N(r,!0);E(r),I(()=>{G(r,`id`,L(n)+`-hint`),V(i,t.field.hint)}),B(e,r)};H(v,e=>{L(r)?e(y):t.field.hint&&e(b,1)}),E(s),I(()=>{G(c,`for`,L(n)),V(l,`${t.field.label??``} `)}),B(e,s),O()}Vr([`input`,`click`,`change`]);var zB=z(`

          The name is the stable identity used for routing and cannot change once created.

          `),BB=z(``),VB=z(` `),HB=z(`Determines which fields the gateway uses to build requests.`),UB=z(` `),WB=z(`Suggested from the selected type; used to route requests to this provider instance and editable before saving.`),GB=z(`Immutable once created.`),KB=z(`

          Pick a type to configure its credentials — each provider type asks for different settings.

          `),qB=z(`
          Advanced settings
          `),JB=z(`
          `,1);function YB(e,t){D(t,!0);let n=k(()=>aB(xB.types,xB.form.type)),r=k(()=>xB.formFields),i=k(()=>xB.fieldErrors.name||``),a=k(()=>xB.fieldErrors.type||``);function o(){xB.selectType(),xB.formMode===`create`&&(xB.form.name=mB(xB.rows,xB.form.type))}kn(()=>{let e=xB.focusField;if(!e)return;xB.focusField=``;let t=document.getElementById(`provider-credential-`+e);t&&(t.scrollIntoView({block:`center`}),t.focus({preventScroll:!0}))});{let t=e=>{B(e,zB())},s=k(()=>xB.formMode===`edit`?`Edit Provider`:`Add Provider`);GE(e,{get open(){return xB.formOpen},get title(){return L(s)},ariaLabel:`Provider credential editor`,get error(){return xB.error},get submitting(){return xB.formSubmitting},novalidate:!0,onclose:()=>xB.closeForm(),onsubmit:()=>xB.submitForm(),headerHint:t,children:(e,t)=>{var s=JB(),c=P(s),l=F(N(c),2),u=N(l);u.value=u.__value=``,U(F(u),16,()=>L(n),e=>e,(e,t)=>{var n=BB(),r=N(n,!0);E(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),E(l);var d=F(l,2),f=e=>{var t=VB(),n=N(t,!0);E(t),I(()=>V(n,L(a))),B(e,t)},p=e=>{B(e,HB())};H(d,e=>{L(a)?e(f):e(p,-1)}),E(c);var m=F(c,2),h=F(N(m),2);ta(h);var g=F(h,2),_=e=>{var t=UB(),n=N(t,!0);E(t),I(()=>V(n,L(i))),B(e,t)},v=e=>{B(e,WB())},y=e=>{B(e,GB())};H(g,e=>{L(i)?e(_):xB.formMode===`create`?e(v,1):e(y,-1)}),E(m);var b=F(m,2),x=e=>{B(e,KB())};H(b,e=>{xB.form.type||e(x)});var S=F(b,2);U(S,17,()=>L(r).primary,e=>e.name,(e,t)=>{RB(e,{get field(){return L(t)}})});var C=F(S,2),w=N(C);GA(N(w),{get enabled(){return xB.form.enabled},label:`provider`,onclick:()=>xB.form.enabled=!xB.form.enabled}),E(w),E(C);var T=F(C,2),ee=e=>{var t=qB(),n=N(t),i=N(n),a=F(N(i),2),o=N(a,!0);E(a),E(i),E(n);var s=F(n,2);U(s,21,()=>L(r).advanced,e=>e.name,(e,t)=>{RB(e,{get field(){return L(t)}})}),E(s),E(t),I(e=>{t.open=xB.advancedOpen,V(o,e)},[()=>L(r).advanced.map(e=>e.label).join(`, `)]),Br(`toggle`,t,e=>xB.advancedOpen=e.currentTarget.open),B(e,t)};H(T,e=>{L(r).advanced.length>0&&e(ee)}),I(()=>{l.disabled=xB.formMode===`edit`,G(l,`aria-invalid`,L(a)?`true`:void 0),G(l,`aria-describedby`,L(a)?`provider-credential-type-error`:`provider-credential-type-hint`),h.disabled=xB.formMode===`edit`,G(h,`aria-invalid`,L(i)?`true`:void 0),G(h,`aria-describedby`,L(i)?`provider-credential-name-error`:`provider-credential-name-hint`)}),R(`change`,l,o),Wi(l,()=>xB.form.type,e=>xB.form.type=e),R(`input`,h,()=>xB.clearFieldError(`name`)),ua(h,()=>xB.form.name,e=>xB.form.name=e),B(e,s)},$$slots:{headerHint:!0,default:!0}})}O()}Vr([`change`,`input`]);var XB=z(`

          Providers

          `),ZB=z(``),QB=z(`
          Provider credential management is unavailable.
          `),$B=z(``),eV=z(`
          `),tV=z(`

          No dashboard-managed providers yet. Add one here, or declare providers in config.yaml / environment variables.

          `),nV=z(`

          No providers match your filter.

          `),rV=z(`
          `);function iV(e,t){D(t,!0),kn(()=>{J.refreshTick,Zo.page===`providers-config`&&xB.fetchPage()});var n=rV(),r=N(n),i=N(r);oC(N(i),{copyId:`providers-config-help-copy`,label:`model providers help`,title:e=>{B(e,XB())},help:e=>{He(),B(e,Xr(`Configure LLM provider credentials here instead of setting API keys as + environment variables. Providers declared in config.yaml or env vars + are read-only (Config badge) and cannot be edited or deleted from the + dashboard. Keys are masked after saving.`))},$$slots:{title:!0,help:!0}}),E(i);var a=F(i,2),o=N(a),s=e=>{var t=ZB();q(N(t),{get icon(){return ho},class:`form-action-icon`}),He(2),E(t),I(()=>t.disabled=xB.formSubmitting),R(`click`,t,()=>xB.openCreate()),B(e,t)};H(o,e=>{xB.available&&!J.needsAuth&&e(s)}),E(a),E(r);var c=F(r,2),l=e=>{B(e,QB())};H(c,e=>{!xB.available&&!J.needsAuth&&e(l)});var u=F(c,2),d=e=>{var t=$B(),n=N(t,!0);E(t),I(()=>V(n,xB.error)),B(e,t)};H(u,e=>{xB.error&&!J.needsAuth&&!xB.formOpen&&e(d)});var f=F(u,2),p=e=>{zT(e,{label:`Loading providers...`})};H(f,e=>{xB.loading&&!J.needsAuth&&e(p)});var m=F(f,2),h=e=>{var t=eV(),n=N(t);Fw(N(n),{id:`provider-credential-filter`,placeholder:`Filter by name, type, or base URL...`,label:`Filter providers by name, type, or base URL`,get value(){return xB.filter},set value(e){xB.filter=e}}),E(n),E(t),B(e,t)};H(m,e=>{(xB.rows.length>0||xB.filter)&&xB.available&&!J.needsAuth&&e(h)});var g=F(m,2);YB(g,{});var _=F(g,2),v=e=>{EB(e,{})};H(_,e=>{xB.filteredRows.length>0&&xB.available&&!J.needsAuth&&e(v)});var y=F(_,2),b=e=>{B(e,tV())};H(y,e=>{xB.rows.length===0&&!xB.filter&&!xB.loading&&!J.needsAuth&&!xB.error&&xB.available&&e(b)});var x=F(y,2),S=e=>{B(e,nV())};H(x,e=>{xB.rows.length>0&&xB.filteredRows.length===0&&xB.filter&&!xB.loading&&!J.needsAuth&&xB.available&&e(S)}),E(n),B(e,n),O()}Vr([`click`]);function aV(){return{name:``,description:``,user_path:``,labels:``,dashboard_access:!1,expires_at:``}}function oV(e){let t=[];for(let n of String(e||``).split(`,`)){let e=n.trim();e&&!t.includes(e)&&t.push(e)}return t}function sV(e){let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t;for(let e of n.split(`/`)){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return`User path cannot contain "." or ".." segments.`;if(t.includes(`:`))return`User path cannot contain ":" segments.`}}return``}function cV(e){if(sV(e))return``;let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t,r=[];for(let e of n.split(`/`)){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function lV(e){let t=e||{},n=String(t.name||``).trim();if(!n)return{error:`Name is required.`};let r=sV(t.user_path);if(r)return{error:r};let i=cV(t.user_path),a=oV(t.labels),o={name:n,description:String(t.description||``).trim()||void 0,user_path:i||void 0,labels:a.length?a:void 0,dashboard_access:t.dashboard_access?!0:void 0};return t.expires_at&&(o.expires_at=t.expires_at+`T23:59:59Z`),{payload:o}}function uV(e,t=Date.now()){let n=e&&e.expires_at;if(!n)return!1;let r=Date.parse(n);return Number.isFinite(r)&&r<=t}function dV(e){return e?!!e.deactivated_at||e.enabled===!1:!1}function fV(e,t=Date.now()){return!e||e.active===!1||dV(e)?!1:!uV(e,t)}function pV(e){return[e.name,e.description,e.user_path,e.redacted_value,...e.labels||[]].filter(Boolean).join(` `).toLowerCase()}function mV(e,t={}){let{query:n=``,showInactive:r=!1,now:i=Date.now()}=t,a=String(n||``).trim().toLowerCase();return(Array.isArray(e)?e:[]).filter(e=>!r&&!fV(e,i)?!1:!a||pV(e).includes(a))}function hV(e,t){return dV(e)?2:+!fV(e,t)}function gV(e){let t=e&&e.expires_at;if(!t)return 1/0;let n=Date.parse(t);return Number.isFinite(n)?n:1/0}function _V(e){let t=Date.parse(e&&e.deactivated_at||``);return Number.isFinite(t)?t:-1/0}function vV(e,t=Date.now()){return(Array.isArray(e)?e.slice():[]).sort((e,n)=>{let r=hV(e,t),i=hV(n,t);if(r!==i)return r-i;let[a,o]=r===2?[_V(e),_V(n)]:[gV(e),gV(n)];return a===o?String(e.name||``).localeCompare(String(n.name||``)):a>o?-1:1})}function yV(e,t=Date.now()){return(Array.isArray(e)?e:[]).reduce((e,n)=>e+ +!fV(n,t),0)}function bV(){return{open:!1,id:``,name:``,value:``,submitting:!1,error:``}}var xV=new class{#e=A(M([]));get keys(){return L(this.#e)}set keys(e){j(this.#e,e,!0)}#t=A(!0);get available(){return L(this.#t)}set available(e){j(this.#t,e,!0)}#n=A(!1);get loading(){return L(this.#n)}set loading(e){j(this.#n,e,!0)}#r=A(``);get error(){return L(this.#r)}set error(e){j(this.#r,e,!0)}#i=A(``);get filter(){return L(this.#i)}set filter(e){j(this.#i,e,!0)}#a=A(!1);get showInactive(){return L(this.#a)}set showInactive(e){j(this.#a,e,!0)}#o=k(()=>vV(mV(this.keys,{query:this.filter,showInactive:this.showInactive})));get visibleKeys(){return L(this.#o)}set visibleKeys(e){j(this.#o,e)}#s=k(()=>yV(this.keys));get inactiveCount(){return L(this.#s)}set inactiveCount(e){j(this.#s,e)}#c=A(!1);get formOpen(){return L(this.#c)}set formOpen(e){j(this.#c,e,!0)}#l=A(!1);get formSubmitting(){return L(this.#l)}set formSubmitting(e){j(this.#l,e,!0)}#u=A(``);get issuedValue(){return L(this.#u)}set issuedValue(e){j(this.#u,e,!0)}#d=A(``);get deactivatingID(){return L(this.#d)}set deactivatingID(e){j(this.#d,e,!0)}#f=A(``);get dashboardAccessID(){return L(this.#f)}set dashboardAccessID(e){j(this.#f,e,!0)}#p=A(M(aV()));get form(){return L(this.#p)}set form(e){j(this.#p,e,!0)}#m=A(M(bV()));get labelsEditor(){return L(this.#m)}set labelsEditor(e){j(this.#m,e,!0)}copyState=Zw({logPrefix:`Failed to copy auth key:`});async fetchKeys(){this.loading=!0,this.error=``;try{let e=await HT(`/admin/auth-keys`,{label:`auth keys`,errorFallback:`Unable to load API keys.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.keys=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.error=e.error;return}this.available=!0,this.keys=e.items}finally{this.loading=!1}}openForm(){this.formSubmitting||this.formOpen||(this.formOpen=!0,this.error=``,this.issuedValue||(this.copyState.reset(),this.form=aV()))}closeForm(){this.formOpen&&(this.formOpen=!1,this.error=``,this.copyState.reset(),!this.formSubmitting&&!this.issuedValue&&(this.form=aV()))}copyIssuedValue(){return this.copyState.copy(this.issuedValue)}dismissIssuedKey(){this.issuedValue=``,this.copyState.reset(),this.form=aV()}async submitForm(){let e=lV(this.form);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await UT(`/admin/auth-keys`,`POST`,e.payload,{label:`create API key`,errorFallback:`Failed to create API key.`,unavailableMessage:`Auth keys feature is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error,t.result&&t.result.status!==401&&console.error(`Failed to create API key:`,t.result.status,this.error);return}let n=t.result.data||{};this.issuedValue=n.value||``,this.formOpen=!0,this.copyState.reset(),this.form=aV(),this.fetchKeys()}finally{this.formSubmitting=!1}}openLabelsEditor(e){!e||this.labelsEditor.submitting||(this.labelsEditor={open:!0,id:e.id,name:e.name||``,value:(e.labels||[]).join(`, `),submitting:!1,error:``})}closeLabelsEditor(){!this.labelsEditor.open||this.labelsEditor.submitting||(this.labelsEditor=bV())}async submitLabelsEditor(){let e=this.labelsEditor;if(!e.open||e.submitting||!e.id)return;e.submitting=!0,e.error=``;let t={labels:oV(e.value)};try{let n=await UT(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/labels`,`PUT`,t,{label:`update API key labels`,errorFallback:`Failed to update labels.`,unavailableMessage:`Auth keys feature is unavailable.`});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,e.error=n.error;return}if(n.status===`error`){e.error=n.error,n.result&&n.result.status!==401&&console.error(`Failed to update auth key labels:`,n.result.status,e.error);return}dc.success(`Labels updated for key "`+e.name+`".`),e.submitting=!1,this.closeLabelsEditor(),this.fetchKeys()}finally{e.submitting=!1}}async toggleDashboardAccess(e){if(!e||!e.active||this.dashboardAccessID)return;let t=!e.dashboard_access;this.dashboardAccessID=e.id;try{let n=await UT(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/dashboard-access`,`PUT`,{dashboard_access:t},{label:`update API key dashboard access`,errorFallback:`Failed to update dashboard access.`,unavailableMessage:`Auth keys feature is unavailable.`});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,dc.error(n.error);return}if(n.status===`error`){n.result&&n.result.status!==401&&console.error(`Failed to update auth key dashboard access:`,n.result.status,n.error),dc.error(n.error);return}dc.success(`Dashboard access `+(t?`granted to`:`revoked for`)+` key "`+e.name+`".`),this.fetchKeys()}finally{this.dashboardAccessID=``}}async deactivateKey(e){if(!(!e||!e.active)&&window.confirm(`Deactivate key "`+e.name+`"? This cannot be undone.`)){this.deactivatingID=e.id;try{let t=await UT(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/deactivate`,`POST`,void 0,{label:`deactivate API key`,errorFallback:`Failed to deactivate key.`,unavailableMessage:`Auth keys feature is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,dc.error(t.error);return}if(t.status===`error`){t.result&&t.result.status!==401&&console.error(`Failed to deactivate auth key:`,t.result.status,t.error),dc.error(t.error);return}dc.success(`Key "`+e.name+`" deactivated.`),this.fetchKeys()}finally{this.deactivatingID=``}}}},SV=z(``),CV=z(`

          Store this key securely — it won’t be shown again.

          `),wV=z(``),TV=z(``),EV=z(``),DV=z(``),OV=z(`
          `);function kV(e,t){D(t,!0);{let t=k(()=>xV.issuedValue?``:xV.error),n=k(()=>xV.issuedValue?`Done, I’ve stored it`:`Create API Key`),r=k(()=>xV.issuedValue?Ha:ho);GE(e,{get open(){return xV.formOpen},title:`Create API Key`,ariaLabel:`API key editor`,get error(){return L(t)},get submitting(){return xV.formSubmitting},get submitLabel(){return L(n)},submittingLabel:`Creating...`,get submitIcon(){return L(r)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>xV.closeForm(),onsubmit:()=>xV.issuedValue?xV.dismissIssuedKey():xV.submitForm(),children:(e,t)=>{var n=Zr(),r=P(n),i=e=>{var t=CV(),n=F(N(t),2),r=N(n),i=N(r,!0);E(r),BL(F(r,2),{get state(){return xV.copyState},onclick:()=>xV.copyIssuedValue()}),E(n);var a=F(n,2),o=e=>{B(e,SV())};H(a,e=>{xV.copyState.error&&e(o)}),E(t),I(()=>V(i,xV.issuedValue)),B(e,t)},a=e=>{var t=OV(),n=N(t),r=N(n),i=F(N(r),2);ta(i),E(r);var a=F(r,2),o=F(N(a),2);ta(o),E(a),E(n);var s=F(n,2),c=N(s);oC(c,{copyId:`auth-key-user-path-help-copy`,label:`API key user path help`,title:e=>{B(e,wV())},help:e=>{He(),B(e,Xr(`When set, this key overrides the configured user path request + header for audit logging and downstream request context.`))},$$slots:{title:!0,help:!0}});var l=F(c,2);ta(l),E(s);var u=F(s,2),d=N(u);oC(d,{copyId:`auth-key-labels-help-copy`,label:`API key labels help`,title:e=>{B(e,TV())},help:e=>{He(),B(e,Xr(`Every request authenticated with this key gets these labels, in + addition to any labels from tagging headers. Labels show up in + usage analytics, the request log, and audit logs.`))},$$slots:{title:!0,help:!0}});var f=F(d,2);ta(f),E(u);var p=F(u,2),m=N(p);oC(m,{copyId:`auth-key-dashboard-access-help-copy`,label:`API key dashboard access help`,title:e=>{B(e,EV())},help:e=>{He(),B(e,Xr(`When off, this key is denied the dashboard and every /admin API + endpoint. Model endpoints and GET /v1/usage stay available to + the key. The master key always has dashboard access.`))},$$slots:{title:!0,help:!0}});var h=F(m,2),g=N(h);ta(g),He(2),E(h),E(p),qE(F(p,2),{id:`auth-key-description`,label:`Description (optional)`,children:(e,t)=>{var n=DV();dt(n),ua(n,()=>xV.form.description,e=>xV.form.description=e),B(e,n)},$$slots:{default:!0}}),E(t),ua(i,()=>xV.form.name,e=>xV.form.name=e),ua(o,()=>xV.form.expires_at,e=>xV.form.expires_at=e),ua(l,()=>xV.form.user_path,e=>xV.form.user_path=e),ua(f,()=>xV.form.labels,e=>xV.form.labels=e),da(g,()=>xV.form.dashboard_access,e=>xV.form.dashboard_access=e),B(e,t)};H(r,e=>{xV.issuedValue?e(i):e(a,-1)}),B(e,n)},$$slots:{default:!0}})}O()}var AV=z(`

          `),jV=z(`

          Applies to new requests made with this key. Leave empty to remove all labels.

          `,1);function MV(e,t){D(t,!0),GE(e,{get open(){return xV.labelsEditor.open},title:`Edit Labels`,ariaLabel:`API key labels editor`,get error(){return xV.labelsEditor.error},get submitting(){return xV.labelsEditor.submitting},submitLabel:`Save Labels`,cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>xV.closeLabelsEditor(),onsubmit:()=>xV.submitLabelsEditor(),headerHint:e=>{var t=AV(),n=N(t,!0);E(t),I(()=>V(n,xV.labelsEditor.name)),B(e,t)},children:(e,t)=>{qE(e,{id:`auth-key-labels-edit`,label:`Labels (comma-separated)`,children:(e,t)=>{var n=jV(),r=P(n);ta(r),He(2),ua(r,()=>xV.labelsEditor.value,e=>xV.labelsEditor.value=e),B(e,n)},$$slots:{default:!0}})},$$slots:{headerHint:!0,default:!0}}),O()}var NV=z(` `),PV=z(`
          `),FV=z(``),IV=z(`Expired`),LV=z(` `),RV=z(` `,1),zV=z(`Deactivated`),BV=z(`
          `),VV=z(`
          NameDescriptionUser PathLabelsTokenDashboard Access ExpiresCreated
          `);function HV(e,t){D(t,!0);var n=VV(),r=N(n),i=N(r),a=N(i),o=F(N(a),5),s=N(o);q(F(N(s)),{get icon(){return no},width:`13`,height:`13`}),E(s),E(o),He(3),E(a),E(i);var c=F(i);U(c,21,()=>xV.visibleKeys,e=>e.id,(e,t)=>{var n=BV();let r;var i=N(n),a=N(i,!0);E(i);var o=F(i),s=N(o,!0);E(o);var c=F(o),l=N(c,!0);E(c);var u=F(c),d=N(u),f=e=>{var n=PV();U(n,20,()=>L(t).labels||[],e=>e,(e,t)=>{var n=NV(),r=N(n,!0);E(n),I(e=>{Vi(n,e),V(r,t)},[()=>nb(t)]),B(e,n)}),E(n),B(e,n)},p=e=>{B(e,FV())};H(d,e=>{(L(t).labels||[]).length>0?e(f):e(p,-1)}),E(u);var m=F(u),h=N(m),g=N(h,!0);E(h),E(m);var _=F(m),v=N(_);let y;var b=N(v,!0);E(v),E(_);var x=F(_),S=N(x),C=e=>{var n=LV(),r=N(n),i=N(r,!0);E(r);var a=F(r,2),o=e=>{B(e,IV())},s=k(()=>uV(L(t)));H(a,e=>{L(s)&&e(o)}),E(n),I(e=>V(i,e),[()=>Ec(L(t).expires_at)]),B(e,n)},w=e=>{B(e,Xr(`—`))};H(S,e=>{L(t).expires_at?e(C):e(w,-1)}),E(x);var T=F(x),ee=N(T,!0);E(T);var te=F(T),ne=N(te),re=N(ne),ie=e=>{var n=RV(),r=P(n);{let e=k(()=>(L(t).dashboard_access?`Revoke dashboard access for API key `:`Grant dashboard access to API key `)+L(t).name),n=k(()=>!!xV.dashboardAccessID);VT(r,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>xV.toggleDashboardAccess(L(t)),get disabled(){return L(n)},children:(e,n)=>{{let n=k(()=>L(t).dashboard_access?Eo:To);q(e,{get icon(){return L(n)},class:`table-icon-svg`})}},$$slots:{default:!0}})}var i=F(r,2);{let e=k(()=>`Edit labels for API key `+L(t).name);VT(i,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>xV.openLabelsEditor(L(t)),children:(e,t)=>{q(e,{get icon(){return po},class:`table-icon-svg`})},$$slots:{default:!0}})}var a=F(i,2);{let e=k(()=>(xV.deactivatingID===L(t).id?`Deactivating API key `:`Deactivate API key `)+L(t).name),n=k(()=>xV.deactivatingID===L(t).id);VT(a,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>xV.deactivateKey(L(t)),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return go},class:`table-icon-svg`})},$$slots:{default:!0}})}B(e,n)},ae=e=>{var n=zV();I(e=>G(n,`title`,e),[()=>L(t).deactivated_at?`Deactivated on `+Dc(L(t).deactivated_at):`Deactivated`]),B(e,n)},oe=k(()=>dV(L(t)));H(re,e=>{L(t).active?e(ie):L(oe)&&e(ae,1)}),E(ne),E(te),E(n),I((e,i,o)=>{r=W(n,1,`svelte-nf0ldb`,null,r,e),V(a,L(t).name),V(s,L(t).description||`—`),V(l,L(t).user_path||`—`),V(g,L(t).redacted_value),y=W(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":L(t).dashboard_access,"auth-key-status-inactive":!L(t).dashboard_access}),V(b,L(t).dashboard_access?`Allowed`:`Denied`),G(x,`title`,i),V(ee,o)},[()=>({"auth-key-row-deactivated":dV(L(t))}),()=>L(t).expires_at?Dc(L(t).expires_at):``,()=>bs.formatTimestamp(L(t).created_at)]),B(e,n)}),E(c),E(r),E(n),B(e,n),O()}var UV=z(``),WV=z(`
          API key management is unavailable.
          `),GV=z(``),KV=z(`

          Managed API keys authenticate requests to the gateway. Deactivation is + permanent — create a new key if access needs to be restored.

          `),qV=z(`
          `),JV=z(`
          `),YV=z(`

          `),XV=z(`

          No API keys yet. Issue a key to get started.

          `),ZV=z(`
          `);function QV(e,t){D(t,!0),kn(()=>{J.refreshTick,Zo.page===`auth-keys`&&xV.fetchKeys()});var n=ZV(),r=N(n),i=F(N(r),2),a=N(i),o=e=>{var t=UV();q(N(t),{get icon(){return ho},class:`table-icon-svg`}),He(2),E(t),I(()=>t.disabled=xV.formSubmitting),R(`click`,t,()=>{xV.formSubmitting||xV.openForm()}),B(e,t)};H(a,e=>{xV.available&&!J.authError&&e(o)}),E(i),E(r);var s=F(r,2),c=e=>{B(e,WV())};H(s,e=>{!xV.available&&!J.authError&&e(c)});var l=F(s,2),u=e=>{var t=GV(),n=N(t,!0);E(t),I(()=>V(n,xV.error)),B(e,t)};H(l,e=>{xV.error&&!J.authError&&!xV.formOpen&&e(u)});var d=F(l,2),f=e=>{B(e,KV())};H(d,e=>{xV.available&&!J.authError&&e(f)});var p=F(d,2);kV(p,{});var m=F(p,2);MV(m,{});var h=F(m,2),g=e=>{var t=qV();FS(N(t),{size:18,label:`Loading API keys`}),E(t),B(e,t)};H(h,e=>{xV.loading&&xV.keys.length===0&&e(g)});var _=F(h,2),v=e=>{var t=JV(),n=N(t);Fw(N(n),{placeholder:`Filter by name, description, user path, label, or token...`,label:`Filter API keys by name, description, user path, label, or token`,get value(){return xV.filter},set value(e){xV.filter=e}}),E(n);var r=F(n,2),i=N(r),a=N(i);ta(a);var o=F(a,2),s=F(N(o)),c=e=>{var t=Xr();I(()=>V(t,`(${xV.inactiveCount??``})`)),B(e,t)};H(s,e=>{xV.inactiveCount>0&&e(c)}),E(o),E(i),E(r),E(t),da(a,()=>xV.showInactive,e=>xV.showInactive=e),B(e,t)};H(_,e=>{xV.keys.length>0&&xV.available&&e(v)});var y=F(_,2),b=e=>{HV(e,{})};H(y,e=>{xV.visibleKeys.length>0&&xV.available&&e(b)});var x=F(y,2),S=e=>{var t=YV(),n=N(t);E(t),I(()=>V(n,`No API keys match the current filter.${xV.inactiveCount>0&&!xV.showInactive?` `+xV.inactiveCount+` inactive `+(xV.inactiveCount===1?`key is`:`keys are`)+` hidden.`:``}`)),B(e,t)};H(x,e=>{xV.keys.length>0&&xV.visibleKeys.length===0&&xV.available&&e(S)});var C=F(x,2),w=e=>{B(e,XV())};H(C,e=>{xV.keys.length===0&&!xV.loading&&!J.authError&&!xV.error&&xV.available&&e(w)}),E(n),B(e,n),O()}Vr([`click`]);var $V=z(`

          Timezone

          `),eH=z(``),tH=z(``),nH=z(`
          `,1);function rH(e,t){D(t,!0);function n(){bs.saveOverride(),J.refresh()}function r(){bs.clearOverride(),J.refresh()}var i=nH(),a=P(i);oC(N(a),{copyId:`timezone-help-copy`,label:`timezone help`,text:`Day-based analytics, charts, and date filters use your effective timezone. Usage and audit logs keep UTC in the hover title while rendering row timestamps in your effective timezone.`,title:e=>{B(e,$V())},$$slots:{title:!0}}),E(a);var o=F(a,2),s=N(o),c=F(N(s),2),l=N(c),u=N(l);E(l),l.value=l.__value=``,U(F(l),17,()=>bs.options,e=>e.value,(e,t)=>{var n=eH(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(c),E(s),E(o);var d=F(o,2),f=N(d),p=e=>{var t=tH();R(`click`,t,r),B(e,t)};H(f,e=>{bs.override&&e(p)}),E(d),I(e=>V(u,`Automatic (${e??``})`),[()=>bs.detectedTimeZoneLabel()]),Br(`focus`,c,()=>bs.ensureOptions()),R(`change`,c,n),Wi(c,()=>bs.override,e=>bs.override=e),B(e,i),O()}Vr([`change`,`click`]);var iH=z(``),aH=z(`

          Failover

          `,1);function oH(e,t){D(t,!0);let n=k(()=>Q.failoverSaving||Q.failoverGenerating||Q.failoverDraftSaving||!Q.failoverAvailable||!Q.failoverEnabled());var r=aH(),i=P(r),a=F(N(i),2),o=N(a),s=N(o);q(s,{get icon(){return Lo},class:`form-action-icon`});var c=F(s,2),l=N(c,!0);E(c),E(o);var u=F(o,2);q(N(u),{get icon(){return Mo},class:`form-action-icon`}),He(2),E(u),E(a),E(i);var d=F(i,2),f=N(d),p=e=>{var t=iH(),n=N(t,!0);E(t),I(()=>V(n,Q.failoverError)),B(e,t)};H(f,e=>{Q.failoverError&&e(p)}),E(d),Lj(F(d,2),{}),I(()=>{o.disabled=L(n),V(l,Q.failoverGenerating?`Generating...`:`Generate failover models automatically`),u.disabled=L(n)}),R(`click`,o,()=>Q.generateFailoverRules()),R(`click`,u,()=>Q.openFailoverResetDialog()),B(e,r),O()}Vr([`click`]);function sH(){return{daily_reset_hour:0,daily_reset_minute:0,weekly_reset_weekday:1,weekly_reset_hour:0,weekly_reset_minute:0,monthly_reset_day:1,monthly_reset_hour:0,monthly_reset_minute:0}}function cH(e,t){let n=t||{},r=(e,t)=>{if(e===``)return t;let n=Number(e);return Number.isFinite(n)&&Number.isInteger(n)?Math.trunc(n):t},i=(e,t)=>r(n[e],t),a=(t,n)=>e?r(e[t],n):n;return{daily_reset_hour:a(`daily_reset_hour`,i(`daily_reset_hour`,0)),daily_reset_minute:a(`daily_reset_minute`,i(`daily_reset_minute`,0)),weekly_reset_weekday:a(`weekly_reset_weekday`,i(`weekly_reset_weekday`,1)),weekly_reset_hour:a(`weekly_reset_hour`,i(`weekly_reset_hour`,0)),weekly_reset_minute:a(`weekly_reset_minute`,i(`weekly_reset_minute`,0)),monthly_reset_day:a(`monthly_reset_day`,i(`monthly_reset_day`,1)),monthly_reset_hour:a(`monthly_reset_hour`,i(`monthly_reset_hour`,0)),monthly_reset_minute:a(`monthly_reset_minute`,i(`monthly_reset_minute`,0))}}function lH(){return[{value:0,label:`Sunday`},{value:1,label:`Monday`},{value:2,label:`Tuesday`},{value:3,label:`Wednesday`},{value:4,label:`Thursday`},{value:5,label:`Friday`},{value:6,label:`Saturday`}]}var uH=z(`

          Budget Resets

          `),dH=z(``),fH=z(`

          If the selected day does not exist in a month, the reset runs on + the last day of that month.

          `),pH=z(``),mH=z(``),hH=z(`
          Monthly
          Weekly
          Daily
          `,1);function gH(e,t){D(t,!0);let n=A(M(sH())),r=A(!1),i=A(!1),a=A(``),o=A(!1),s=k(()=>js.budgetsVisible());async function c(){if(await js.ensureLoaded(),!js.budgetsVisible()){j(a,``);return}j(r,!0),j(a,``);try{let e=await Es(`/admin/budgets/settings`,{label:`budget settings`});if(e.stale)return;if(!e.ok){j(a,`Unable to load budget settings.`);return}j(n,cH(e.data,L(n)),!0)}catch(e){console.error(`Failed to fetch budget settings:`,e),j(a,`Unable to load budget settings.`)}finally{j(r,!1)}}async function l(){if(!L(i)){j(i,!0);try{let e=await Ds(`/admin/budgets/settings`,`PUT`,cH(L(n),L(n)),{label:`budget settings`});if(e.stale)return;if(!e.ok){dc.error(`Unable to save budget settings.`);return}j(n,cH(e.data,L(n)),!0),j(a,``),dc.success(`Budget settings saved.`)}catch(e){console.error(`Failed to save budget settings:`,e),dc.error(`Unable to save budget settings.`)}finally{j(i,!1)}}}kn(()=>{J.refreshTick,c()});var u=Zr(),d=P(u),f=e=>{var t=hH(),s=P(t),c=N(s);oC(c,{copyId:`budget-settings-help-copy`,label:`budget help`,text:`Budget reset anchors are stored in the database and evaluated in UTC. Hourly budgets reset at the top of each hour.`,title:e=>{B(e,uH())},$$slots:{title:!0}});var u=F(c,2),d=N(u),f=F(N(d),2),p=N(f);oC(p,{copyId:`budget-monthly-day-help-copy`,label:`day of month help`,external:!0,get open(){return L(o)},set open(e){j(o,e,!0)},title:e=>{B(e,dH())},$$slots:{title:!0}});var m=F(p,2);ta(m),E(f);var h=F(f,2),g=F(N(h),2);ta(g),E(h);var _=F(h,2),v=F(N(_),2);ta(v),E(_);var y=F(_,2),b=N(y),x=e=>{B(e,fH())};H(b,e=>{L(o)&&e(x)}),E(y),E(d);var S=F(d,2),C=F(N(S),2),w=F(N(C),2);U(w,21,lH,e=>e.value,(e,t)=>{var n=pH(),r=N(n,!0);E(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(w),E(C);var T=F(C,2),ee=F(N(T),2);ta(ee),E(T);var te=F(T,2),ne=F(N(te),2);ta(ne),E(te),He(2),E(S);var re=F(S,2),ie=F(N(re),4),ae=F(N(ie),2);ta(ae),E(ie);var oe=F(ie,2),se=F(N(oe),2);ta(se),E(oe),He(2),E(re),E(u);var ce=F(u,2),le=N(ce);q(N(le),{get icon(){return yo},class:`form-action-icon`}),He(2),E(le);var ue=F(le,2),de=e=>{FS(e,{size:16,label:`Loading budget settings`})};H(ue,e=>{L(r)&&e(de)}),E(ce),E(s);var fe=F(s,2),pe=N(fe),me=e=>{var t=mH(),n=N(t,!0);E(t),I(()=>V(n,L(a))),B(e,t)};H(pe,e=>{L(a)&&e(me)}),E(fe),I(()=>{le.disabled=L(i)||L(r),G(le,`aria-busy`,L(i)?`true`:`false`)}),ua(m,()=>L(n).monthly_reset_day,e=>L(n).monthly_reset_day=e),ua(g,()=>L(n).monthly_reset_hour,e=>L(n).monthly_reset_hour=e),ua(v,()=>L(n).monthly_reset_minute,e=>L(n).monthly_reset_minute=e),Wi(w,()=>L(n).weekly_reset_weekday,e=>L(n).weekly_reset_weekday=e),ua(ee,()=>L(n).weekly_reset_hour,e=>L(n).weekly_reset_hour=e),ua(ne,()=>L(n).weekly_reset_minute,e=>L(n).weekly_reset_minute=e),ua(ae,()=>L(n).daily_reset_hour,e=>L(n).daily_reset_hour=e),ua(se,()=>L(n).daily_reset_minute,e=>L(n).daily_reset_minute=e),R(`click`,le,l),B(e,t)};H(d,e=>{L(s)&&e(f)}),B(e,u),O()}Vr([`click`]);var _H=z(`

          Reset All Budgets

          Start new budget periods for every configured budget without changing + the limits.

          `);function vH(e,t){D(t,!0);var n=Zr(),r=P(n),i=e=>{var t=_H(),n=F(N(t),2),r=N(n);q(N(r),{get icon(){return vo},class:`form-action-icon`}),He(2),E(r),E(n),E(t),I(()=>r.disabled=X.resetAllLoading),R(`click`,r,()=>X.openResetDialog()),B(e,t)},a=k(()=>js.budgetsVisible());H(r,e=>{L(a)&&e(i)}),B(e,n),O()}Vr([`click`]);function yH(){return{header:``,prefix:``,do_not_pass:!1,delimiter:``,managed:!1}}function bH(e){return(e&&Array.isArray(e.headers)?e.headers:[]).map(e=>({header:typeof e.header==`string`?e.header:``,prefix:typeof e.prefix==`string`?e.prefix:``,do_not_pass:e.do_not_pass===!0,delimiter:typeof e.delimiter==`string`&&e.delimiter!==`,`?e.delimiter:``,managed:e.managed===!0}))}function xH(e){return{headers:(Array.isArray(e)?e:[]).filter(e=>!e.managed&&e.header.trim()!==``).map(e=>({header:e.header.trim(),prefix:e.prefix,do_not_pass:e.do_not_pass,delimiter:e.delimiter}))}}function SH(e){return e&&e.error&&e.error.message?e.error.message:``}var CH=z(`

          Tagging based on headers

          `),wH=z(`config`),TH=z(``),EH=z(`
          `),DH=z(`

          No tagging headers configured. Requests are not labelled.

          `),OH=z(``),kH=z(`
          `,1);function AH(e,t){D(t,!0);let n=A(M([])),r=A(!0),i=A(!1),a=A(!1),o=A(``);function s(){L(n).push(yH())}function c(e){let t=L(n)[e];!t||t.managed||L(n).splice(e,1)}async function l(){j(i,!0),j(o,``);try{let e=await Es(`/admin/tagging/settings`,{label:`tagging settings`});if(e.stale)return;if(!e.ok){j(o,`Unable to load tagging settings.`);return}j(n,bH(e.data),!0),j(r,e.data&&e.data.editable!==!1,!0)}catch(e){console.error(`Failed to fetch tagging settings:`,e),j(o,`Unable to load tagging settings.`)}finally{j(i,!1)}}async function u(){if(!(L(a)||!L(r))){j(a,!0);try{let e=await Ds(`/admin/tagging/settings`,`PUT`,xH(L(n)),{label:`tagging settings`});if(e.stale)return;if(!e.ok){dc.error(e.status!==401&&SH(e.data)||`Unable to save tagging settings.`);return}j(n,bH(e.data),!0),j(r,e.data&&e.data.editable!==!1,!0),j(o,``),dc.success(`Tagging settings saved.`)}catch(e){console.error(`Failed to save tagging settings:`,e),dc.error(`Unable to save tagging settings.`)}finally{j(a,!1)}}}kn(()=>{J.refreshTick,l()});var d=kH(),f=P(d),p=N(f);oC(p,{copyId:`tagging-settings-help-copy`,label:`tagging help`,text:`Each request is labelled from the listed headers; labels land in usage tracking and audit logs. A header value can carry several labels split by the delimiter (default: comma). The prefix is trimmed from each label only — the header itself is forwarded unchanged unless 'Do not pass' is checked. Rows marked CONFIG come from config.yaml or TAGGING_HEADER_* env vars and are read-only here.`,title:e=>{B(e,CH())},$$slots:{title:!0}});var m=F(p,2),h=N(m);U(h,17,()=>L(n),ai,(e,t,n)=>{var i=EH(),a=N(i),o=N(a);G(o,`for`,`tagging-header-`+n);var s=F(o,2);ta(s),G(s,`id`,`tagging-header-`+n),E(a);var l=F(a,2),u=N(l);G(u,`for`,`tagging-prefix-`+n);var d=F(u,2);ta(d),G(d,`id`,`tagging-prefix-`+n),E(l);var f=F(l,2),p=N(f);G(p,`for`,`tagging-delimiter-`+n);var m=F(p,2);ta(m),G(m,`id`,`tagging-delimiter-`+n),E(f);var h=F(f,2),g=N(h);ta(g),He(2),E(h);var _=F(h,2),v=N(_),y=e=>{B(e,wH())},b=e=>{var i=TH();I(()=>{i.disabled=!L(r),G(i,`aria-label`,`Remove tagging header `+(L(t).header||n+1))}),R(`click`,i,()=>c(n)),B(e,i)};H(v,e=>{L(t).managed?e(y):e(b,-1)}),E(_),E(i),I(()=>{s.disabled=L(t).managed||!L(r),d.disabled=L(t).managed||!L(r),m.disabled=L(t).managed||!L(r),g.disabled=L(t).managed||!L(r)}),ua(s,()=>L(t).header,e=>L(t).header=e),ua(d,()=>L(t).prefix,e=>L(t).prefix=e),ua(m,()=>L(t).delimiter,e=>L(t).delimiter=e),da(g,()=>L(t).do_not_pass,e=>L(t).do_not_pass=e),B(e,i)});var g=F(h,2),_=e=>{FS(e,{size:16,label:`Loading tagging settings`})};H(g,e=>{L(i)&&e(_)});var v=F(g,2),y=e=>{B(e,DH())};H(v,e=>{!L(i)&&L(n).length===0&&e(y)}),E(m);var b=F(m,2),x=N(b);q(N(x),{get icon(){return ho},class:`form-action-icon`}),He(2),E(x);var S=F(x,2);q(N(S),{get icon(){return yo},class:`form-action-icon`}),He(2),E(S),E(b),E(f);var C=F(f,2),w=N(C),T=e=>{var t=OH(),n=N(t,!0);E(t),I(()=>V(n,L(o))),B(e,t)};H(w,e=>{L(o)&&e(T)}),E(C),I(()=>{x.disabled=!L(r)||L(a)||L(i),S.disabled=!L(r)||L(a)||L(i),G(S,`aria-busy`,L(a)?`true`:`false`)}),R(`click`,x,s),R(`click`,S,u),B(e,d),O()}Vr([`click`]);function jH(e){let t=e||{};if(t.selectedPreset)return{days:parseInt(t.selectedPreset,10)||30};let n=t.customStartDate?Tc(t.customStartDate):``,r=t.customEndDate||t.today||null;return{start_date:n,end_date:r?Tc(r):``}}function MH(e,t,n,r){return{...jH(e),user_path:String(t||``).trim(),selector:String(n||``).trim(),confirmation:r}}function NH(e){let t=Number(e&&e.matched||0),n=Number(e&&e.recalculated||0),r=Number(e&&e.without_pricing||0),i=`Pricing recalculated for `+n+` of `+t+` usage record`+(t===1?``:`s`)+`.`;return r>0&&(i+=` `+r+` usage record`+(r===1?` still lacks`:`s still lack`)+` pricing metadata.`),i}var PH=z(`

          Usage Pricing Recalculation

          `),FH=z(`
          `);function IH(e,t){D(t,!0);let n=A(``),r=A(``),i=A(!1),a=k(()=>js.booleanFlag(`USAGE_PRICING_RECALCULATION_ENABLED`,!1));function o(){if(!L(a)){dc.error(`Usage pricing recalculation is unavailable.`);return}L(i)||Xs.open({title:`Recalculate Pricing`,titleId:`pricingRecalculateDialogTitle`,inputId:`pricing-recalculate-confirmation`,requiredText:`recalculate`,confirmLabel:`Recalculate Pricing`,icon:Ia,dialogClass:`pricing-recalculate-dialog`,message:`Stored usage cost fields matching the selected filters will be overwritten.`,onConfirm:()=>s()})}async function s(){if(!L(a)){dc.error(`Usage pricing recalculation is unavailable.`);return}if(!L(i)){j(i,!0);try{let e=await Ds(`/admin/usage/recalculate-pricing`,`POST`,MH({selectedPreset:Gc.selectedPreset,customStartDate:Gc.customStartDate,customEndDate:Gc.customEndDate,today:bs.todayDate()},L(n),L(r),`recalculate`),{label:`pricing recalculation`});if(e.stale)return;if(!e.ok){Xs.error=`Unable to recalculate pricing.`;return}Xs.close(),dc.success(NH(e.data)),Zc.fetchUsage()}catch(e){console.error(`Failed to recalculate pricing:`,e),Xs.error=`Unable to recalculate pricing.`}finally{j(i,!1)}}}var c=Zr(),l=P(c),u=e=>{var t=FH(),s=N(t);oC(s,{copyId:`pricing-recalculate-help-copy`,label:`pricing recalculation help`,text:`Recalculate stored input, output, total, and Pro Saved costs from the current model pricing metadata. This overwrites matching historical cost fields. Filters are applied to the selected date range, user path subtree, and provider/model selector or alias.`,title:e=>{B(e,PH())},$$slots:{title:!0}});var c=F(s,2),l=N(c),u=F(N(l),2);ml(N(u),{}),E(u),E(l);var d=F(l,2),f=F(N(d),2);ta(f),E(d);var p=F(d,2),m=F(N(p),2);ta(m),E(p),E(c);var h=F(c,2),g=N(h);q(N(g),{get icon(){return Ia},class:`form-action-icon`}),He(2),E(g),E(h),E(t),I(()=>{g.disabled=L(i)||!L(a),G(g,`aria-busy`,L(i)?`true`:`false`)}),ua(f,()=>L(n),e=>j(n,e)),ua(m,()=>L(r),e=>j(r,e)),R(`click`,g,o),B(e,t)};H(l,e=>{L(a)&&e(u)}),B(e,c),O()}Vr([`click`]);function LH(e){return String(e&&e.status||`ok`).toLowerCase()}function RH(e){if(!e||typeof e!=`object`)return`Runtime refresh completed.`;let t=Number(e.model_count||0),n=Number(e.provider_count||0),r=LH(e);return(r===`ok`?`Runtime refreshed.`:r===`partial`?`Runtime refresh completed with warnings.`:`Runtime refresh failed.`)+` `+t+` model`+(t===1?``:`s`)+` across `+n+` provider`+(n===1?``:`s`)+`.`}function zH(e){return!!e&&LH(e)===`ok`}function BH(e){let t=e&&e.steps;return Array.isArray(t)?t:[]}function VH(e){let t=String(e&&e.name||``).replace(/_/g,` `),n=String(e&&e.status||``).trim(),r=String(e&&(e.error||e.message)||``).trim();return t?r?t+`: `+n+` - `+r:t+`: `+n:r||n||``}var HH=z(`

          Runtime Refresh

          `),UH=z(`
        • `),WH=z(`
            `),GH=z(`
            `,1);function KH(e,t){D(t,!0);let n=A(!1),r=A(null);async function i(){if(!L(n)){j(n,!0),j(r,null);try{let e=await Ds(`/admin/runtime/refresh`,`POST`,void 0,{label:`runtime refresh`});if(e.stale)return;if(!e.ok){dc.error(`Runtime refresh failed.`);return}j(r,e.data&&typeof e.data==`object`?e.data:null,!0),zH(L(r))?dc.success(RH(L(r))):dc.error(RH(L(r))),J.refresh()}catch(e){console.error(`Failed to refresh runtime:`,e),dc.error(`Runtime refresh failed.`)}finally{j(n,!1)}}}var a=GH(),o=P(a),s=N(o);oC(s,{copyId:`runtime-refresh-help-copy`,label:`runtime refresh help`,text:`Pull the latest model metadata, provider inventory, API keys, aliases, model access rules, guardrails, and workflows.`,title:e=>{B(e,HH())},$$slots:{title:!0}});var c=F(s,2),l=N(c);let u;q(N(l),{get icon(){return _o},class:`settings-refresh-icon`}),He(2),E(l),E(c),E(o);var d=F(o,2),f=N(d),p=e=>{var t=WH();U(t,21,()=>BH(L(r)),e=>e.name,(e,t)=>{var n=UH(),r=N(n,!0);E(n),I(e=>{W(n,1,`runtime-refresh-step is-${L(t).status??``}`,`svelte-yeq2mp`),V(r,e)},[()=>VH(L(t))]),B(e,n)}),E(t),B(e,t)},m=k(()=>BH(L(r)).length>0);H(f,e=>{L(m)&&e(p)}),E(d),I(()=>{u=W(l,1,`btn btn-primary btn-with-icon settings-refresh-btn`,null,u,{"is-refreshing":L(n)}),l.disabled=L(n),G(l,`aria-busy`,L(n)?`true`:`false`)}),R(`click`,l,i),B(e,a),O()}Vr([`click`]);var qH=z(``),JH=z(`

            `),YH=z(`

            `),XH=z(``),ZH=z(`
            `),QH=z(`

            AI Processing

            `);function $H(e,t){D(t,!0);let n=A(M([])),r=A(!1),i=A(``),a=A(``);async function o(){j(r,!0),j(a,``);try{let e=await Es(`/admin/runtime/settings`,{label:`runtime settings`});if(e.stale)return;if(!e.ok){j(a,`Unable to load runtime settings.`);return}j(n,Array.isArray(e.data?.settings)?e.data.settings:[],!0)}catch(e){console.error(`Failed to load runtime settings:`,e),j(a,`Unable to load runtime settings.`)}finally{j(r,!1)}}async function s(e,t,r){if(!(e.locked||L(i))){j(i,e.key,!0);try{let i=await Ds(`/admin/runtime/settings/${encodeURIComponent(e.key)}`,`PUT`,{value:t},{label:`save ${e.label}`});if(i.stale){r.value=e.value;return}if(!i.ok){r.value=e.value,dc.error(`Unable to save ${e.label}.`);return}j(n,L(n).map(t=>t.key===e.key?i.data:t),!0),dc.success(`${e.label} saved.`)}catch(t){r.value=e.value,console.error(`Failed to save runtime setting:`,t),dc.error(`Unable to save ${e.label}.`)}finally{j(i,``)}}}kn(()=>{J.refreshTick,o()});var c=Zr(),l=P(c),u=e=>{var t=QH(),o=N(t),c=F(N(o),2),l=e=>{var t=qH(),n=N(t,!0);E(t),I(()=>V(n,L(a))),B(e,t)};H(c,e=>{L(a)&&e(l)}),E(o);var u=F(o,2);U(u,21,()=>L(n),e=>e.key,(e,t)=>{var n=ZH(),r=N(n),a=N(r),o=N(a,!0);E(a);var c=F(a,2),l=e=>{var n=JH(),r=N(n,!0);E(n),I(()=>V(r,L(t).description)),B(e,n)};H(c,e=>{L(t).description&&e(l)});var u=F(c,2),d=e=>{var n=YH(),r=N(n);E(n),I(()=>V(r,`Managed by ${(L(t).managed_by||`environment`)??``}`)),B(e,n)};H(u,e=>{L(t).locked&&e(d)}),E(r);var f=F(r,2);U(f,21,()=>L(t).options||[],e=>e.value,(e,t)=>{var n=XH(),r=N(n,!0);E(n);var i={};I(()=>{G(n,`title`,L(t).description||``),V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),E(f);var p;Ui(f),E(n),I(()=>{G(a,`for`,`runtime-setting-${L(t).key}`),V(o,L(t).label),G(f,`id`,`runtime-setting-${L(t).key}`),f.disabled=L(t).locked||L(i)!==``,p!==(p=L(t).value)&&(f.value=(f.__value=L(t).value)??``,Hi(f,L(t).value))}),R(`change`,f,e=>s(L(t),e.currentTarget.value,e.currentTarget)),B(e,n)}),E(u),E(t),I(()=>G(u,`aria-busy`,L(r)?`true`:`false`)),B(e,t)};H(l,e=>{(L(n).length>0||L(a))&&e(u)}),B(e,c),O()}Vr([`change`]);var eU=z(`
            `);function tU(e,t){D(t,!0),kn(()=>{J.refreshTick,Zo.page===`settings`&&(bs.ensureOptions(),js.ensureLoaded())});var n=eU(),r=F(N(n),2),i=N(r);rH(i,{});var a=F(i,2);oH(a,{});var o=F(a,2);gH(o,{});var s=F(o,2);vH(s,{});var c=F(s,2);AH(c,{});var l=F(c,2);$H(l,{});var u=F(l,2);IH(u,{}),KH(F(u,2),{}),E(r);var d=F(r,2),f=N(d,!0);E(d),E(n),I(e=>V(f,e),[()=>Ko()]),B(e,n),O()}var nU=z(`
            `),rU=z(`
             
            `),iU=z(`
             
            `),aU=z(`
             
            `),oU=z(`
            `),sU=z(`
            `,1),cU=z(`
            `);function lU(e,t){D(t,!0);let n=K(t,`showPromptCache`,3,!0),r=Zw({logPrefix:`Failed to copy interaction message:`}),i=k(()=>t.msg.role===`function_call`||t.msg.role===`function_result`);function a(e){return(Math.max(0,Math.min(1,Number(e||0)))*100).toFixed(1)+`%`}function o(e){let t=Math.max(0,Math.min(1,Number(e||0)));return t>0?Math.round(t*100)+`% of this visible prompt item is estimated provider-cached`:void 0}function s(e){return e.role===`function_call`?(e.toolCalls||[]).map(e=>e.name+`()`).join(`, `):(e.functionName?e.functionName+`: `:``)+e.text}var c=cU();let l;var u=N(c),d=e=>{var r=rU(),i=N(r),a=N(i),c=N(a,!0);E(a);var l=F(a,2),u=N(l,!0);E(l);var d=F(l,2),f=N(d,!0);E(d),E(i);var p=F(i,2),m=e=>{var n=nU(),r=N(n);E(n),I(()=>V(r,`Call ID: ${t.msg.functionCallID??``}`)),B(e,n)};H(p,e=>{t.msg.functionCallID&&e(m)});var h=F(p,2),g=e=>{var n=Zr();U(P(n),17,()=>t.msg.toolCalls,ai,(e,n)=>{var r=Zr(),i=P(r),a=e=>{var r=nU(),i=N(r);E(r),I(()=>V(i,`Call ID${t.msg.toolCalls.length>1?` (`+L(n).name+`)`:``}: ${L(n).id??``}`)),B(e,r)};H(i,e=>{L(n).id&&e(a)}),B(e,r)}),B(e,n)};H(h,e=>{t.msg.role===`function_call`&&t.msg.toolCalls&&e(g)});var _=F(h,2),v=N(_,!0);E(_),E(r),I((e,n,i,a)=>{G(r,`title`,e),V(c,t.msg.roleLabel),V(u,n),V(f,i),V(v,a)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>s(t.msg),()=>bs.formatTimestamp(t.msg.timestamp),()=>xL(t.msg)]),B(e,r)},f=e=>{var r=sU(),i=P(r),a=N(i),s=N(a,!0);E(a);var c=F(a,2),l=N(c,!0);E(c),E(i);var u=F(i,2),d=e=>{var r=iU(),i=N(r,!0);E(r),I(e=>{G(r,`title`,e),V(i,t.msg.text)},[()=>n()?o(t.msg.promptCacheRatio):void 0]),B(e,r)};H(u,e=>{t.msg.text&&e(d)});var f=F(u,2),p=e=>{var n=oU();U(n,23,()=>t.msg.toolCalls,(e,t)=>e.name+`-`+t,(e,t)=>{var n=aU(),r=N(n),i=N(r),a=N(i,!0);E(i);var o=F(i,2),s=N(o,!0);E(o),E(r);var c=F(r,2),l=e=>{var n=nU(),r=N(n);E(n),I(()=>V(r,`Call ID: ${L(t).id??``}`)),B(e,n)};H(c,e=>{L(t).id&&e(l)});var u=F(c,2),d=N(u,!0);E(u),E(n),I((e,n)=>{V(a,L(t).name+`()`),V(s,e),V(d,n)},[()=>CL(L(t))||`No arguments`,()=>CL(L(t))||`No arguments`]),B(e,n)}),E(n),B(e,n)};H(f,e=>{t.msg.toolCalls&&e(p)}),I((e,n)=>{G(i,`title`,e),V(s,t.msg.roleLabel),V(l,n)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>bs.formatTimestamp(t.msg.timestamp)]),B(e,r)};H(u,e=>{L(i)?e(d):e(f,-1)});var p=F(u,2);let m;var h=N(p);{let e=k(()=>r.copied?qa:Xa);q(h,{get icon(){return L(e)},width:`14`,height:`14`})}E(p),E(c),I(e=>{W(c,1,Pi([L(i)?`chat-function-note`:`chat-message`,t.msg.roleClass,{"is-anchor":t.msg.isAnchor,"is-after-anchor":t.msg.isAfterAnchor}]),`svelte-12s99s5`),G(c,`data-conversation-anchor`,t.msg.isAnchor?`true`:void 0),G(c,`data-entry-id`,t.msg.entryID),l=Vi(c,``,l,e),m=W(p,1,`chat-message-copy svelte-12s99s5`,null,m,{"is-copied":r.copied}),G(p,`aria-label`,r.copied?`Message copied`:`Copy message`),G(p,`title`,r.copied?`Copied`:`Copy message`)},[()=>({"--prompt-cache-fill":a(t.msg.promptCacheRatio),"--prompt-cache-visibility":n()&&t.msg.promptCacheRatio>0?`1`:`0`})]),R(`click`,p,e=>{e.stopPropagation(),r.copy(SL(t.msg))}),B(e,c),O()}Vr([`click`]);function uU(e,t=0){let n=Math.max(0,mU(e)-Math.max(0,mU(t))),r=Math.min(320,Math.max(180,Math.floor(n*.58))),i=Math.min(360,Math.max(128,Math.floor(n*.35)));return{min:r,max:Math.max(r,n-i)}}function dU(e,t,n=0){let r=uU(t,n),i=mU(e)||520;return Math.min(r.max,Math.max(r.min,Math.round(i)))}function fU(e,t,n=0){return dU(mU(t)-mU(e),t,n)}function pU(e,t,n,r){if(!Array.isArray(e)||e.length===0)return{index:-1,align:`start`};let i=mU(t),a=0;e.forEach((e,t)=>{mU(e)<=i+1&&(a=t)});let o=Number(r)<0?-1:1,s=Math.min(e.length-1,Math.max(0,a+o)),c=e.length-1,l=mU(e[c])0&&s===c&&l?`end`:`start`}}function mU(e){let t=Number(e);return Number.isFinite(t)?t:0}var hU=z(`
            `),gU=z(`
            `),_U=z(`

            Loading interactions...

            `),vU=z(`

            No interaction data available for this entry.

            `),yU=z(``),bU=z(`
            `,1),xU=z(`

            Showing the newest part of this session and the selected log.

            `),SU=z(`
            `),CU=z(``),wU=z(``),TU=z(``);function EU(e,t){D(t,!0);let n=jL,r=Number(Ca(`gomodel_interactions_panel_width`)),i=`gomodel_interactions_prompt_cache_fill`,a=Number.isFinite(r)&&r>0?r:520,o=A(M(a)),s=A(320),c=A(760),l=A(!1),u=A(!1),d=A(Ca(i,`true`)!==`false`),f=null;function p(e,{fullscreen:t,revealWithoutSlide:n=!1}){let r=AP(180);return t?ac(e,{x:L(o),duration:r,easing:cc}):n?{duration:0}:oc(e,{axis:`x`,duration:r,easing:cc})}async function m(e){if(e===L(l))return;let t=L(l)&&!e;j(u,t,!0),j(l,e,!0),t&&(await Sr(),j(u,!1))}function h(){j(d,!L(d)),wa(i,L(d))}function g(){return(document.querySelector(`.sidebar`)?.getBoundingClientRect().width||0)+(document.querySelector(`.sidebar-toggle`)?.getBoundingClientRect().width||0)}function _(){let e=g(),t=uU(window.innerWidth,e);j(s,t.min,!0),j(c,t.max,!0),j(o,dU(a,window.innerWidth,e),!0)}function v(e){j(o,fU(e,window.innerWidth,g()),!0),a=L(o)}function y(e){e.button===0&&(e.preventDefault(),f=e.pointerId,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`conversation-panel-resizing`),v(e.clientX))}function b(e){e.pointerId===f&&v(e.clientX)}function x(e){f===null||e.pointerId!==void 0&&e.pointerId!==f||(f=null,document.body.classList.remove(`conversation-panel-resizing`),wa(`gomodel_interactions_panel_width`,a))}function S(e){e.key!==`ArrowLeft`&&e.key!==`ArrowRight`||(e.preventDefault(),a=L(o)+(e.key===`ArrowLeft`?24:-24),_(),a=L(o),wa(`gomodel_interactions_panel_width`,a))}function C(e){let t=document.getElementById(`interactions-drawer-content`),r=n.conversationThreadEl;if(!t||!r)return;let i=[...r.querySelectorAll(`[data-conversation-message="true"]`)],a=t.getBoundingClientRect(),o=a.top+14,s=pU(i.map(e=>e.getBoundingClientRect().top),o,a.bottom,e),c=i[s.index];if(!c)return;let l=s.align===`end`?t.scrollHeight:t.scrollTop+c.getBoundingClientRect().top-a.top-14;t.scrollTo({top:l,behavior:AP(1)>0?`smooth`:`auto`})}function w(){return[document.querySelector(`.sidebar`),document.querySelector(`.sidebar-toggle`),document.getElementById(`dashboard-content`)].filter(Boolean)}kn(()=>{if(!n.conversationOpen)return;_();let e=document.querySelector(`.sidebar`),t=new ResizeObserver(_);e&&t.observe(e);let r=e=>{e.key===`Escape`&&!ka.anyOpen&&(L(l)?m(!1):n.closeConversation())};return window.addEventListener(`keydown`,r),window.addEventListener(`resize`,_),()=>{x({}),t.disconnect(),window.removeEventListener(`keydown`,r),window.removeEventListener(`resize`,_)}}),kn(()=>{n.conversationOpen||j(l,!1)}),kn(()=>{if(!L(l))return;let e=w().map(e=>({element:e,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}));return e.forEach(({element:e})=>{e.inert=!0,e.setAttribute(`aria-hidden`,`true`)}),()=>{e.forEach(({element:e,inert:t,ariaHidden:n})=>{e.inert=t,n===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,n)})}}),kn(()=>{Zo.page!==`audit-logs`&&n.conversationOpen&&n.closeConversation()});var T=Zr(),ee=P(T),te=e=>{var t=Zr();U(P(t),16,()=>[L(l)],e=>e,(e,t)=>{var r=TU();let i,a;var l=N(r),f=F(l,2),g=N(f),_=F(N(g),2),v=N(_);let w;E(_),E(g);var T=F(g,2),ee=N(T),te=N(ee);{let e=k(()=>t?lo:co);q(te,{get icon(){return L(e)},class:`table-icon-svg`})}E(ee),Bs(F(ee,2),{label:`Close interactions`,onclick:()=>n.closeConversation(),get el(){return n.conversationCloseBtnEl},set el(e){n.conversationCloseBtnEl=e}}),E(T),E(f);var ne=F(f,2),re=N(ne),ie=e=>{var t=hU(),n=N(t);q(N(n),{get icon(){return Pa},width:`14`,height:`14`}),E(n);var r=F(n,2);q(N(r),{get icon(){return ja},width:`14`,height:`14`}),E(r),E(t),R(`click`,n,()=>C(-1)),R(`click`,r,()=>C(1)),B(e,t)};H(re,e=>{n.conversationMessages.length>1&&e(ie)});var ae=F(re,2),oe=e=>{var t=gU(),r=N(t,!0);E(t),I(()=>V(r,n.conversationError)),B(e,t)};H(ae,e=>{n.conversationError&&e(oe)});var se=F(ae,2),ce=e=>{B(e,_U())};H(se,e=>{n.conversationLoading&&e(ce)});var le=F(se,2),ue=e=>{B(e,vU())},de=k(()=>!n.conversationLoading&&!n.followUpSending&&!n.conversationError&&n.conversationMessages.length===0&&!n.conversationLiveWaiting());H(le,e=>{L(de)&&e(ue)});var fe=F(le,2),pe=e=>{var t=bU(),r=P(t),i=e=>{var t=yU(),n=N(t);let r;He(2),E(t),I(()=>{G(t,`aria-checked`,L(d)),G(t,`title`,(L(d)?`Hide`:`Show`)+` estimated provider prompt-cache fill`),r=W(n,1,`conversation-cache-switch svelte-ssrzja`,null,r,{"is-active":L(d)})}),R(`click`,t,h),B(e,t)},a=k(()=>n.conversationMessages.some(e=>Number(e.promptCacheRatio||0)>0));H(r,e=>{L(a)&&e(i)});var o=F(r,2);U(o,21,()=>n.conversationMessages,e=>e.uid,(e,t)=>{lU(e,{get msg(){return L(t)},get showPromptCache(){return L(d)}})}),E(o),ha(o,e=>n.conversationThreadEl=e,()=>n?.conversationThreadEl),B(e,t)};H(fe,e=>{n.conversationMessages.length>0&&e(pe)});var me=F(fe,2),he=e=>{B(e,xU())};H(me,e=>{n.conversationTruncated&&e(he)});var ge=F(me,2),_e=e=>{var t=SU(),r=F(N(t),2),i=N(r,!0);E(r),E(t),I(e=>V(i,e),[()=>n.conversationLiveStatusText()]),B(e,t)},ve=k(()=>n.conversationLiveWaiting());H(ge,e=>{L(ve)&&e(_e)}),E(ne);var ye=F(ne,2),be=e=>{var t=wU(),r=N(t),i=N(r);dt(i);var a=F(i,2),o=e=>{var t=CU(),r=N(t,!0);E(t),I(()=>V(r,n.followUpError)),B(e,t)};H(a,e=>{n.followUpError&&e(o)});var s=F(a,2),c=N(s),l=N(c,!0);E(c);var u=F(c,2),d=N(u,!0);E(u),E(s),E(r),E(t),I((e,t,r)=>{i.disabled=e,V(l,t),u.disabled=r,V(d,n.followUpSending?`Sending…`:`Send`)},[()=>n.followUpSending||n.conversationLiveWaiting(),()=>n.selectedConversationEntry()?.path||``,()=>!n.canSendFollowUp()]),Br(`submit`,r,e=>{e.preventDefault(),n.sendFollowUp()}),ua(i,()=>n.followUpText,e=>n.followUpText=e),B(e,t)},xe=k(()=>n.conversationAnchorID&&n.followUpKind());H(ye,e=>{L(xe)&&e(be)}),E(r),ha(r,e=>n.conversationDialogEl=e,()=>n?.conversationDialogEl),I(()=>{i=W(r,1,`conversation-drawer svelte-ssrzja`,null,i,{"conversation-drawer-fullscreen":t}),G(r,`role`,t?`dialog`:void 0),G(r,`aria-modal`,t?`true`:void 0),a=Vi(r,``,a,{"--conversation-panel-width":L(o)+`px`}),G(l,`aria-valuemin`,L(s)),G(l,`aria-valuemax`,L(c)),G(l,`aria-valuenow`,L(o)),G(_,`aria-label`,n.conversationFollowLatest?`Following the latest interaction`:`Viewing a historical interaction`),G(_,`title`,n.conversationFollowLatest?`Following the latest interaction as new events arrive`:`Viewing a historical interaction; live updates are not followed`),w=W(v,1,`live-dot`,null,w,{"is-streaming":n.conversationFollowLatest}),G(ee,`aria-label`,t?`Exit fullscreen interactions`:`Show interactions fullscreen`),G(ee,`title`,t?`Exit fullscreen`:`Fullscreen`),G(ee,`aria-pressed`,t)}),R(`pointerdown`,l,y),R(`pointermove`,l,b),R(`pointerup`,l,x),Br(`pointercancel`,l,x),Br(`lostpointercapture`,l,x),R(`keydown`,l,S),R(`click`,ee,()=>m(!t)),Oi(7,r,()=>p,()=>({fullscreen:t,revealWithoutSlide:!t&&L(u)})),B(e,r)}),B(e,t)};H(ee,e=>{n.conversationOpen&&e(te)}),B(e,T),O()}Vr([`pointerdown`,`pointermove`,`pointerup`,`keydown`,`click`]);var DU=z(`
            `,1);function OU(e,t){D(t,!0);let n={overview:AC,usage:LT,budgets:pD,"rate-limits":wO,models:oM,workflows:TP,"audit-logs":SR,guardrails:hz,"mcp-servers":Yz,"providers-config":iV,"auth-keys":QV,settings:tU};bs.init(),Gc.init(),J.init(),Da.init(),Oa.init(),Zo.init(),kn(()=>{J.refreshTick,js.fetch(),Kc.fetchModels(),Kc.fetchCategories()}),kn(()=>{document.body.classList.toggle(`dashboard-modal-open`,ka.anyOpen)});let r=k(()=>n[Zo.page]||AC);var i=DU(),a=P(i);Rs(a,{});var o=F(a,2);let s;var c=N(o);gc(c,{}),gi(F(c,2),()=>L(r),(e,t)=>{t(e,{})}),E(o);var l=F(o,2);EU(l,{});var u=F(l,2);Js(u,{});var d=F(u,2);ec(d,{}),mc(F(d,2),{}),I(()=>s=W(o,1,`content`,null,s,{"interactions-open":jL.conversationOpen})),B(e,i),O()}ei(OU,{target:document.getElementById(`app`)}); \ No newline at end of file diff --git a/internal/admin/dashboard/static/dist/index.html b/internal/admin/dashboard/static/dist/index.html index ef7760f15..091b408ef 100644 --- a/internal/admin/dashboard/static/dist/index.html +++ b/internal/admin/dashboard/static/dist/index.html @@ -7,8 +7,8 @@ GoModel Dashboard - - + +
            diff --git a/internal/admin/handler.go b/internal/admin/handler.go index 1bf85443c..a3bd0aeed 100644 --- a/internal/admin/handler.go +++ b/internal/admin/handler.go @@ -460,6 +460,7 @@ func parseUsageParams(c *echo.Context) (usage.UsageQueryParams, error) { params.Model = strings.TrimSpace(c.QueryParam("model")) params.Provider = strings.TrimSpace(c.QueryParam("provider")) params.Label = strings.TrimSpace(c.QueryParam("label")) + params.SessionID = strings.TrimSpace(c.QueryParam("session_id")) userPath, err := normalizeUserPathQueryParam("user_path", c.QueryParam("user_path")) if err != nil { diff --git a/internal/admin/handler_test.go b/internal/admin/handler_test.go index d86e70cb3..0f9546d58 100644 --- a/internal/admin/handler_test.go +++ b/internal/admin/handler_test.go @@ -28,11 +28,13 @@ type mockUsageReader struct { modelUsage []usage.ModelUsage userPathUsage []usage.UserPathUsage labelUsage []usage.LabelUsage + sessionUsage *usage.SessionUsageResult usageLog *usage.UsageLogResult usageByRequestID map[string][]usage.UsageLogEntry cacheOverview *usage.CacheOverview throughput *usage.TokenThroughput lastUsageLog usage.UsageLogParams + lastSessionUsage usage.SessionUsageParams lastRequestIDs []string lastCacheOverview usage.UsageQueryParams lastThroughputGran usage.ThroughputGranularity @@ -43,6 +45,7 @@ type mockUsageReader struct { modelUsageErr error userPathUsageErr error labelUsageErr error + sessionUsageErr error usageLogErr error usageByRequestErr error cacheErr error @@ -112,6 +115,14 @@ func (m *mockUsageReader) GetUsageByLabel(_ context.Context, _ usage.UsageQueryP return m.labelUsage, nil } +func (m *mockUsageReader) GetUsageBySession(_ context.Context, params usage.SessionUsageParams) (*usage.SessionUsageResult, error) { + m.lastSessionUsage = params + if m.sessionUsageErr != nil { + return nil, m.sessionUsageErr + } + return m.sessionUsage, nil +} + func (m *mockUsageReader) GetUsageLog(_ context.Context, params usage.UsageLogParams) (*usage.UsageLogResult, error) { m.lastUsageLog = params if m.usageLogErr != nil { @@ -927,7 +938,7 @@ func TestUsageLog_WithFilters(t *testing.T) { }, } h := NewHandler(reader, nil) - c, rec := newHandlerContext("/admin/usage/log?model=gpt-4&provider=openai&user_path=/team&label=team-alpha&search=test&limit=10&offset=5") + c, rec := newHandlerContext("/admin/usage/log?model=gpt-4&provider=openai&user_path=/team&label=team-alpha&session_id=scoped-session&search=test&limit=10&offset=5") if err := h.UsageLog(c); err != nil { t.Fatalf("unexpected error: %v", err) @@ -941,6 +952,54 @@ func TestUsageLog_WithFilters(t *testing.T) { if reader.lastUsageLog.Label != "team-alpha" { t.Errorf("expected label team-alpha, got %q", reader.lastUsageLog.Label) } + if reader.lastUsageLog.SessionID != "scoped-session" { + t.Errorf("expected session_id scoped-session, got %q", reader.lastUsageLog.SessionID) + } +} + +func TestUsageBySession_Success(t *testing.T) { + reader := &mockUsageReader{sessionUsage: &usage.SessionUsageResult{ + Entries: []usage.SessionUsage{{ + SessionID: "scoped-session", UserPath: "/team", Requests: 2, TotalTokens: 42, + }}, + Total: 1, Limit: 25, Offset: 10, + }} + h := NewHandler(reader, nil) + c, rec := newHandlerContext("/admin/usage/sessions?limit=25&offset=10&session_id=scoped-session") + + if err := h.UsageBySession(c); err != nil { + t.Fatalf("unexpected error: %v", err) + } + if rec.Code != http.StatusOK { + t.Fatalf("status = %d, want 200", rec.Code) + } + var result usage.SessionUsageResult + if err := json.Unmarshal(rec.Body.Bytes(), &result); err != nil { + t.Fatalf("unmarshal response: %v", err) + } + if result.Total != 1 || result.Limit != 25 || result.Offset != 10 || len(result.Entries) != 1 || result.Entries[0].SessionID != "scoped-session" || result.Entries[0].Requests != 2 { + t.Fatalf("result = %+v", result) + } + if reader.lastSessionUsage.Limit != 25 || reader.lastSessionUsage.Offset != 10 || reader.lastSessionUsage.SessionID != "scoped-session" { + t.Fatalf("params = %+v", reader.lastSessionUsage) + } +} + +func TestUsageBySessionRejectsInvalidPagination(t *testing.T) { + for _, path := range []string{ + "/admin/usage/sessions?limit=0", + "/admin/usage/sessions?limit=201", + "/admin/usage/sessions?offset=-1", + } { + h := NewHandler(&mockUsageReader{}, nil) + c, rec := newHandlerContext(path) + if err := h.UsageBySession(c); err != nil { + t.Fatalf("%s: unexpected handler error: %v", path, err) + } + if rec.Code != http.StatusBadRequest { + t.Fatalf("%s: status = %d, want 400", path, rec.Code) + } + } } // --- AuditLog handler tests --- diff --git a/internal/admin/handler_usage.go b/internal/admin/handler_usage.go index 0b748eb5f..abe864dcd 100644 --- a/internal/admin/handler_usage.go +++ b/internal/admin/handler_usage.go @@ -23,6 +23,11 @@ const maxUsageLogLimit = 200 // reports the same limit an enabled reader would. const defaultUsageLogLimit = 50 +const ( + defaultSessionUsageLimit = 50 + maxSessionUsageLimit = 200 +) + // UsageSummary handles GET /admin/usage/summary // // @Summary Get usage summary @@ -35,6 +40,7 @@ const defaultUsageLogLimit = 50 // @Param model query string false "Filter by exact model name" // @Param provider query string false "Filter by provider name or provider type" // @Param label query string false "Filter by request label (exact match)" +// @Param session_id query string false "Filter by exact detected session ID" // @Param user_path query string false "Filter by tracked user path subtree" // @Param cache_mode query string false "Cache mode filter: uncached, cached, all (default uncached)" // @Success 200 {object} usage.UsageSummary @@ -103,6 +109,7 @@ func usageSliceResponse[T any]( // @Param model query string false "Filter by exact model name" // @Param provider query string false "Filter by provider name or provider type" // @Param label query string false "Filter by request label (exact match)" +// @Param session_id query string false "Filter by exact detected session ID" // @Param user_path query string false "Filter by tracked user path subtree" // @Param cache_mode query string false "Cache mode filter: uncached, cached, all (default uncached)" // @Success 200 {array} usage.DailyUsage @@ -127,6 +134,7 @@ func (h *Handler) DailyUsage(c *echo.Context) error { // @Param model query string false "Filter by exact model name" // @Param provider query string false "Filter by provider name or provider type" // @Param label query string false "Filter by request label (exact match)" +// @Param session_id query string false "Filter by exact detected session ID" // @Param user_path query string false "Filter by tracked user path subtree" // @Param cache_mode query string false "Cache mode filter: uncached, cached, all (default uncached)" // @Success 200 {array} usage.ModelUsage @@ -155,6 +163,7 @@ func (h *Handler) UsageByModel(c *echo.Context) error { // @Param model query string false "Filter by exact model name" // @Param provider query string false "Filter by provider name or provider type" // @Param label query string false "Filter by request label (exact match)" +// @Param session_id query string false "Filter by exact detected session ID" // @Param user_path query string false "Filter by tracked user path subtree" // @Param cache_mode query string false "Cache mode filter: uncached, cached, all (default uncached)" // @Success 200 {array} usage.UserPathUsage @@ -186,6 +195,7 @@ func (h *Handler) UsageByUserPath(c *echo.Context) error { // @Param model query string false "Filter by exact model name" // @Param provider query string false "Filter by provider name or provider type" // @Param label query string false "Filter by request label (exact match)" +// @Param session_id query string false "Filter by exact detected session ID" // @Param user_path query string false "Filter by tracked user path subtree" // @Param cache_mode query string false "Cache mode filter: uncached, cached, all (default uncached)" // @Success 200 {array} usage.LabelUsage @@ -202,6 +212,72 @@ func (h *Handler) UsageByLabel(c *echo.Context) error { }) } +// UsageBySession handles GET /admin/usage/sessions +// +// @Summary Get usage breakdown by detected session +// @Description Returns a bounded page of request, token, and cost aggregates +// @Description for detected, user-path-scoped sessions. Requests and tokens +// @Description include local-cache hits; costs represent provider spend only. +// @Description Usage without a detected session is omitted. +// @Tags admin +// @Produce json +// @Security BearerAuth +// @Param days query int false "Number of days (default 30)" +// @Param start_date query string false "Start date (YYYY-MM-DD)" +// @Param end_date query string false "End date (YYYY-MM-DD)" +// @Param model query string false "Filter by exact model name" +// @Param provider query string false "Filter by provider name or provider type" +// @Param label query string false "Filter by request label (exact match)" +// @Param session_id query string false "Filter by exact detected session ID" +// @Param user_path query string false "Filter by tracked user path subtree" +// @Param limit query int false "Page size (default 50, max 200)" +// @Param offset query int false "Offset for pagination" +// @Success 200 {object} usage.SessionUsageResult +// @Failure 400 {object} core.GatewayError +// @Failure 401 {object} core.GatewayError +// @Router /admin/usage/sessions [get] +func (h *Handler) UsageBySession(c *echo.Context) error { + baseParams, err := parseUsageParams(c) + if err != nil { + return handleError(c, err) + } + params := usage.SessionUsageParams{UsageQueryParams: baseParams} + if raw := c.QueryParam("limit"); raw != "" { + limit, err := strconv.Atoi(raw) + if err != nil || limit <= 0 || limit > maxSessionUsageLimit { + return handleError(c, core.NewInvalidRequestError("invalid limit parameter: limit must be between 1 and 200", nil)) + } + params.Limit = limit + } + if raw := c.QueryParam("offset"); raw != "" { + offset, err := strconv.Atoi(raw) + if err != nil || offset < 0 { + return handleError(c, core.NewInvalidRequestError("invalid offset, expected non-negative integer", nil)) + } + params.Offset = offset + } + if params.Limit == 0 { + params.Limit = defaultSessionUsageLimit + } + + if h.usageReader == nil { + return c.JSON(http.StatusOK, usage.SessionUsageResult{ + Entries: []usage.SessionUsage{}, Limit: params.Limit, Offset: params.Offset, + }) + } + result, err := h.usageReader.GetUsageBySession(c.Request().Context(), params) + if err != nil { + return handleError(c, err) + } + if result == nil { + result = &usage.SessionUsageResult{Limit: params.Limit, Offset: params.Offset} + } + if result.Entries == nil { + result.Entries = []usage.SessionUsage{} + } + return c.JSON(http.StatusOK, result) +} + // UsageLog handles GET /admin/usage/log // // @Summary Get paginated usage log entries @@ -216,7 +292,8 @@ func (h *Handler) UsageByLabel(c *echo.Context) error { // @Param label query string false "Filter by request label (exact match)" // @Param user_path query string false "Filter by tracked user path subtree" // @Param cache_mode query string false "Cache mode filter: uncached, cached, all (default uncached)" -// @Param search query string false "Search across model, provider, request_id, provider_id" +// @Param session_id query string false "Filter by exact detected session ID" +// @Param search query string false "Search across model, provider, request_id, provider_id, session_id" // @Param limit query int false "Page size (default 50, max 200)" // @Param offset query int false "Offset for pagination" // @Success 200 {object} usage.UsageLogResult @@ -350,6 +427,7 @@ func (h *Handler) RecalculateUsagePricing(c *echo.Context) error { // @Param model query string false "Filter by exact model name" // @Param provider query string false "Filter by provider name or provider type" // @Param label query string false "Filter by request label (exact match)" +// @Param session_id query string false "Filter by exact detected session ID" // @Param user_path query string false "Filter by tracked user path subtree" // @Param cache_mode query string false "Cache mode filter: uncached, cached, all (cache overview always uses cached mode)" // @Success 200 {object} usage.CacheOverview diff --git a/internal/admin/routes.go b/internal/admin/routes.go index 7aa7dde6a..a4e5dd618 100644 --- a/internal/admin/routes.go +++ b/internal/admin/routes.go @@ -27,6 +27,7 @@ func (h *Handler) RegisterRoutes(g RouteRegistrar) { g.GET("/usage/models", h.UsageByModel) g.GET("/usage/user-paths", h.UsageByUserPath) g.GET("/usage/labels", h.UsageByLabel) + g.GET("/usage/sessions", h.UsageBySession) g.GET("/usage/log", h.UsageLog) g.GET("/usage/throughput", h.TokenThroughput) g.POST("/usage/recalculate-pricing", h.RecalculateUsagePricing) diff --git a/internal/admin/routes_test.go b/internal/admin/routes_test.go index 02f27f958..48e8e0ca9 100644 --- a/internal/admin/routes_test.go +++ b/internal/admin/routes_test.go @@ -42,6 +42,7 @@ func TestRegisterRoutes_RegistersExpectedPaths(t *testing.T) { "GET /admin/usage/models", "GET /admin/usage/user-paths", "GET /admin/usage/labels", + "GET /admin/usage/sessions", "GET /admin/usage/log", "GET /admin/usage/throughput", "POST /admin/usage/recalculate-pricing", diff --git a/internal/batch/store.go b/internal/batch/store.go index 524f1e704..f1f3ee8fe 100644 --- a/internal/batch/store.go +++ b/internal/batch/store.go @@ -33,6 +33,7 @@ type StoredBatch struct { RewrittenInputFileID string `json:"rewritten_input_file_id,omitempty"` RequestID string `json:"request_id,omitempty"` UserPath string `json:"user_path,omitempty"` + SessionID string `json:"session_id,omitempty"` WorkflowVersionID string `json:"workflow_version_id,omitempty"` UsageEnabled *bool `json:"usage_enabled,omitempty"` UsageLoggedAt *time.Time `json:"usage_logged_at,omitempty"` diff --git a/internal/gateway/batch_orchestrator.go b/internal/gateway/batch_orchestrator.go index f96d2d97a..858d78d59 100644 --- a/internal/gateway/batch_orchestrator.go +++ b/internal/gateway/batch_orchestrator.go @@ -202,6 +202,7 @@ func (o *BatchOrchestrator) Create(ctx context.Context, req *core.BatchRequest, RewrittenInputFileID: batchPreparation.RewrittenInputFileID, RequestID: strings.TrimSpace(meta.RequestID), UserPath: core.UserPathFromContext(ctx), + SessionID: core.SessionIDFromContext(ctx), WorkflowVersionID: workflowVersionID(workflow), UsageEnabled: new(workflow == nil || workflow.UsageEnabled()), } diff --git a/internal/gateway/batch_usage.go b/internal/gateway/batch_usage.go index 506fddfaf..10c102947 100644 --- a/internal/gateway/batch_usage.go +++ b/internal/gateway/batch_usage.go @@ -118,6 +118,7 @@ func LogBatchUsageFromBatchResults( } entry.ID = deterministicBatchUsageID(stored.Batch, item, providerID) entry.UserPath = stored.UserPath + entry.SessionID = stored.SessionID usageLogger.Write(entry) loggedEntries++ diff --git a/internal/gateway/usage.go b/internal/gateway/usage.go index 5766ed59b..195ee8ab0 100644 --- a/internal/gateway/usage.go +++ b/internal/gateway/usage.go @@ -34,6 +34,7 @@ func (o *InferenceOrchestrator) logUsage( if entry := extractFn(pricing); entry != nil { entry.ProviderName = strings.TrimSpace(providerName) entry.UserPath = core.UserPathFromContext(ctx) + entry.SessionID = core.SessionIDFromContext(ctx) entry.Labels = core.RequestLabelsFromContext(ctx) usage.ApplyRewriteSavings(entry, core.RewriteTokensSavedFromContext(ctx), pricing) o.usageLogger.Write(entry) diff --git a/internal/live/broker.go b/internal/live/broker.go index fc292c4e5..5051b1a6f 100644 --- a/internal/live/broker.go +++ b/internal/live/broker.go @@ -779,6 +779,7 @@ func usagePreviewFromEntry(entry *usage.UsageEntry) usage.UsageLogEntry { ProviderName: entry.ProviderName, Endpoint: entry.Endpoint, UserPath: entry.UserPath, + SessionID: entry.SessionID, CacheType: entry.CacheType, Labels: append([]string(nil), entry.Labels...), InputTokens: entry.InputTokens, diff --git a/internal/responsecache/usage_hit.go b/internal/responsecache/usage_hit.go index 8be1ea2de..e2916ee5e 100644 --- a/internal/responsecache/usage_hit.go +++ b/internal/responsecache/usage_hit.go @@ -56,6 +56,7 @@ func newUsageHitRecorder(logger usage.LoggerInterface, pricingResolver usage.Pri } entry.ProviderName = providerName entry.UserPath = core.UserPathFromContext(ctx) + entry.SessionID = core.SessionIDFromContext(ctx) entry.Labels = core.RequestLabelsFromContext(ctx) logger.Write(entry) } diff --git a/internal/server/audio_service.go b/internal/server/audio_service.go index d70c971b6..2f7702c9e 100644 --- a/internal/server/audio_service.go +++ b/internal/server/audio_service.go @@ -262,6 +262,7 @@ func (s *audioService) logUsage(ctx context.Context, route audioRoute, extract f } entry.ProviderName = strings.TrimSpace(route.providerName) entry.UserPath = core.UserPathFromContext(ctx) + entry.SessionID = core.SessionIDFromContext(ctx) entry.Labels = core.RequestLabelsFromContext(ctx) s.usageLogger.Write(entry) } diff --git a/internal/server/passthrough_support.go b/internal/server/passthrough_support.go index 5bce2f747..21a87c4d4 100644 --- a/internal/server/passthrough_support.go +++ b/internal/server/passthrough_support.go @@ -304,6 +304,7 @@ func (s *passthroughService) proxyPassthroughResponse(c *echo.Context, providerT if s.usageLogger != nil && s.usageLogger.Config().Enabled && (workflow == nil || workflow.UsageEnabled()) { if observer := usage.NewStreamUsageObserver(s.usageLogger, model, providerType, requestID, usagePath, s.pricingResolver, core.UserPathFromContext(c.Request().Context())); observer != nil { observer.SetProviderName(providerName) + observer.SetSessionID(core.SessionIDFromContext(c.Request().Context())) observer.SetLabels(core.RequestLabelsFromContext(c.Request().Context())) observer.SetRewriteTokensSaved(core.RewriteTokensSavedFromContext(c.Request().Context())) observers = append(observers, observer) diff --git a/internal/server/realtime_service.go b/internal/server/realtime_service.go index 8933fabe5..e35ecd9f9 100644 --- a/internal/server/realtime_service.go +++ b/internal/server/realtime_service.go @@ -51,6 +51,7 @@ type realtimeRoute struct { providerName string requestID string userPath string + sessionID string labels []string endpoint string } @@ -156,6 +157,7 @@ func (s *realtimeService) prepare(c *echo.Context, model, providerHint string) ( providerName: selector.Provider, requestID: requestID, userPath: core.UserPathFromContext(ctx), + sessionID: core.SessionIDFromContext(ctx), labels: core.RequestLabelsFromContext(ctx), } if resolver, ok := s.provider.(core.ProviderNameResolver); ok { @@ -229,6 +231,7 @@ func (s *realtimeService) usageTap(ctx context.Context, route realtimeRoute) fun } entry.ProviderName = strings.TrimSpace(route.providerName) entry.UserPath = route.userPath + entry.SessionID = route.sessionID entry.Labels = route.labels s.usageLogger.Write(entry) } diff --git a/internal/server/translated_inference_service.go b/internal/server/translated_inference_service.go index eb4703712..4225e249f 100644 --- a/internal/server/translated_inference_service.go +++ b/internal/server/translated_inference_service.go @@ -591,6 +591,7 @@ func (s *translatedInferenceService) handleStreamingReadCloser( usageObserver := usage.NewStreamUsageObserver(s.usageLogger, model, provider, requestID, endpoint, s.pricingResolver, core.UserPathFromContext(c.Request().Context())) if usageObserver != nil { usageObserver.SetProviderName(providerName) + usageObserver.SetSessionID(core.SessionIDFromContext(c.Request().Context())) usageObserver.SetLabels(core.RequestLabelsFromContext(c.Request().Context())) usageObserver.SetRewriteTokensSaved(core.RewriteTokensSavedFromContext(c.Request().Context())) observers = append(observers, usageObserver) diff --git a/internal/usage/cache_type.go b/internal/usage/cache_type.go index 079aaeb84..32b3459c5 100644 --- a/internal/usage/cache_type.go +++ b/internal/usage/cache_type.go @@ -53,7 +53,8 @@ func normalizedUsageEntryForStorage(entry *UsageEntry) *UsageEntry { providerName := strings.TrimSpace(entry.ProviderName) costSource := strings.TrimSpace(entry.CostSource) userPath := normalizeUsageEntryUserPath(entry.UserPath) - if normalized == entry.CacheType && providerName == entry.ProviderName && costSource == entry.CostSource && userPath == entry.UserPath { + sessionID := strings.TrimSpace(entry.SessionID) + if normalized == entry.CacheType && providerName == entry.ProviderName && costSource == entry.CostSource && userPath == entry.UserPath && sessionID == entry.SessionID { return entry } @@ -62,6 +63,7 @@ func normalizedUsageEntryForStorage(entry *UsageEntry) *UsageEntry { cloned.ProviderName = providerName cloned.CostSource = costSource cloned.UserPath = userPath + cloned.SessionID = sessionID return &cloned } diff --git a/internal/usage/reader.go b/internal/usage/reader.go index d261bba1d..dc55b34da 100644 --- a/internal/usage/reader.go +++ b/internal/usage/reader.go @@ -11,7 +11,7 @@ import ( ) // UsageQueryParams specifies the query parameters for usage data retrieval. -// The optional filters (UserPath, Model, Provider, Label) apply uniformly to +// The optional filters (UserPath, SessionID, Model, Provider, Label) apply uniformly to // every reader method, so summaries, breakdowns, and the request log all // describe the same filtered slice of traffic. type UsageQueryParams struct { @@ -20,6 +20,7 @@ type UsageQueryParams struct { Interval string // "daily", "weekly", "monthly", "yearly" TimeZone string // IANA timezone used for day-boundary interpretation and grouping UserPath string // subtree filter on tracked user path + SessionID string // filter by exact detected session id (optional) Model string // filter by exact model name (optional) Provider string // filter by provider name or provider type (optional) Label string // filter by request label, exact match (optional) @@ -143,6 +144,37 @@ type LabelUsage struct { GroupCacheFields } +// SessionUsage holds aggregates for one detected, user-path-scoped session. +// Rows without a detected session are omitted from this breakdown. +type SessionUsage struct { + SessionID string `json:"session_id"` + UserPath string `json:"user_path,omitempty"` + Requests int `json:"requests"` + InputTokens int64 `json:"input_tokens"` + OutputTokens int64 `json:"output_tokens"` + TotalTokens int64 `json:"total_tokens"` + InputCost *float64 `json:"input_cost" extensions:"x-nullable"` + OutputCost *float64 `json:"output_cost" extensions:"x-nullable"` + TotalCost *float64 `json:"total_cost" extensions:"x-nullable"` +} + +// SessionUsageParams specifies filters and pagination for per-session usage. +// Session totals always include locally cached requests and tokens while cost +// fields represent provider spend only; CacheMode is therefore ignored. +type SessionUsageParams struct { + UsageQueryParams + Limit int + Offset int +} + +// SessionUsageResult is a bounded page of per-session usage aggregates. +type SessionUsageResult struct { + Entries []SessionUsage `json:"entries"` + Total int `json:"total"` + Limit int `json:"limit"` + Offset int `json:"offset"` +} + // GroupCacheFields carries the cache-related figures shared by the chart // aggregate rows (per model, user path, or label). // @@ -273,11 +305,11 @@ func applyDailyInputSplit(daily []DailyUsage, splits map[string]periodInputSplit } // UsageLogParams specifies query parameters for paginated usage log retrieval. -// Data filters (model, provider, label, user path) live on the embedded +// Data filters (model, provider, label, user path, session id) live on the embedded // UsageQueryParams; only the log-specific view options are declared here. type UsageLogParams struct { UsageQueryParams // embed date range and data filters - Search string // free-text search on model/provider/request_id + Search string // free-text search on model/provider/request/session ids Limit int // page size (default 50, max 200) Offset int // pagination offset } @@ -297,6 +329,7 @@ type UsageLogEntry struct { ProviderName string `json:"provider_name,omitempty"` Endpoint string `json:"endpoint"` UserPath string `json:"user_path,omitempty"` + SessionID string `json:"session_id,omitempty"` CacheType string `json:"cache_type,omitempty"` Labels []string `json:"labels,omitempty"` InputTokens int `json:"input_tokens"` @@ -411,6 +444,11 @@ type UsageReader interface { // count once per label. GetUsageByLabel(ctx context.Context, params UsageQueryParams) ([]LabelUsage, error) + // GetUsageBySession returns a bounded page of per-session aggregates. + // Usage rows without a detected session are omitted. Request and token + // totals include local-cache hits; costs include provider-bound rows only. + GetUsageBySession(ctx context.Context, params SessionUsageParams) (*SessionUsageResult, error) + // GetUsageLog returns a paginated list of individual usage entries with optional filtering. GetUsageLog(ctx context.Context, params UsageLogParams) (*UsageLogResult, error) diff --git a/internal/usage/reader_helpers.go b/internal/usage/reader_helpers.go index b53c2335d..c62b94555 100644 --- a/internal/usage/reader_helpers.go +++ b/internal/usage/reader_helpers.go @@ -21,3 +21,13 @@ func usageGroupedUserPathSQL(userPathColumn string) string { func clampLimitOffset(limit, offset int) (int, int) { return sqlutil.ClampLimitOffset(limit, offset, 50, 200) } + +// providerSessionCostSQL sums recorded provider spend while excluding local +// response-cache rows, whose stored cost represents avoided cost. A session +// served entirely from the local cache has known zero provider spend; sessions +// with provider requests but no pricing retain a NULL cost. +func providerSessionCostSQL(column string) string { + providerRow := "(cache_type IS NULL OR cache_type = '')" + return "CASE WHEN COUNT(CASE WHEN " + providerRow + " THEN 1 END) = 0 THEN 0 " + + "ELSE SUM(CASE WHEN " + providerRow + " THEN " + column + " END) END" +} diff --git a/internal/usage/reader_mongodb.go b/internal/usage/reader_mongodb.go index db3b03475..36ed05c70 100644 --- a/internal/usage/reader_mongodb.go +++ b/internal/usage/reader_mongodb.go @@ -26,6 +26,7 @@ type mongoUsageLogRow struct { ProviderName string `bson:"provider_name"` Endpoint string `bson:"endpoint"` UserPath string `bson:"user_path"` + SessionID string `bson:"session_id"` CacheType string `bson:"cache_type"` Labels []string `bson:"labels"` InputTokens int `bson:"input_tokens"` @@ -52,6 +53,7 @@ func (row mongoUsageLogRow) toUsageLogEntry() UsageLogEntry { ProviderName: displayUsageProviderName(row.ProviderName, row.Provider), Endpoint: row.Endpoint, UserPath: row.UserPath, + SessionID: row.SessionID, CacheType: normalizeCacheType(row.CacheType), Labels: row.Labels, InputTokens: row.InputTokens, @@ -89,6 +91,36 @@ func costPtr(present int, value float64) *float64 { return nil } +func mongoProviderUsageCondition() bson.D { + return bson.D{{Key: "$and", Value: bson.A{ + bson.D{{Key: "$ne", Value: bson.A{"$cache_type", CacheTypeExact}}}, + bson.D{{Key: "$ne", Value: bson.A{"$cache_type", CacheTypeSemantic}}}, + }}} +} + +func mongoProviderCostSum(field string) bson.D { + return bson.D{{Key: "$sum", Value: bson.D{{Key: "$cond", Value: bson.A{ + mongoProviderUsageCondition(), + bson.D{{Key: "$ifNull", Value: bson.A{field, 0}}}, + 0, + }}}}} +} + +func mongoProviderCostPresenceCount(field string) bson.D { + presentProviderCost := bson.D{{Key: "$and", Value: bson.A{ + mongoProviderUsageCondition(), + bson.D{{Key: "$gt", Value: bson.A{field, nil}}}, + }}} + return bson.D{{Key: "$sum", Value: bson.D{{Key: "$cond", Value: bson.A{presentProviderCost, 1, 0}}}}} +} + +func sessionCostPtr(providerRequests, present int, value float64) *float64 { + if providerRequests == 0 { + return new(float64) + } + return costPtr(present, value) +} + func NewMongoDBReader(database *mongo.Database) (*MongoDBReader, error) { if database == nil { return nil, fmt.Errorf("database is required") @@ -587,6 +619,123 @@ func (r *MongoDBReader) GetUsageByLabel(ctx context.Context, params UsageQueryPa return result, nil } +// GetUsageBySession returns request, token, and cost totals grouped by the +// detected session id and canonical tracked user path. +func (r *MongoDBReader) GetUsageBySession(ctx context.Context, params SessionUsageParams) (*SessionUsageResult, error) { + pipeline, limit, offset, err := mongoSessionUsagePipeline(params) + if err != nil { + return nil, err + } + + cursor, err := r.collection.Aggregate(ctx, pipeline) + if err != nil { + return nil, fmt.Errorf("failed to aggregate usage by session: %w", err) + } + defer cursor.Close(ctx) + + var facetResult struct { + Data []struct { + ID struct { + SessionID string `bson:"session_id"` + UserPath string `bson:"user_path"` + } `bson:"_id"` + Requests int `bson:"requests"` + InputTokens int64 `bson:"input_tokens"` + OutputTokens int64 `bson:"output_tokens"` + TotalTokens int64 `bson:"total_tokens"` + InputCost float64 `bson:"input_cost"` + OutputCost float64 `bson:"output_cost"` + TotalCost float64 `bson:"total_cost"` + HasInputCost int `bson:"has_input_cost"` + HasOutputCost int `bson:"has_output_cost"` + HasTotalCost int `bson:"has_total_cost"` + ProviderRequests int `bson:"provider_requests"` + } `bson:"data"` + Total []struct { + Count int `bson:"count"` + } `bson:"total"` + } + if cursor.Next(ctx) { + if err := cursor.Decode(&facetResult); err != nil { + return nil, fmt.Errorf("failed to decode usage by session result: %w", err) + } + } + if err := cursor.Err(); err != nil { + return nil, fmt.Errorf("error iterating usage by session cursor: %w", err) + } + + result := make([]SessionUsage, 0, len(facetResult.Data)) + for _, row := range facetResult.Data { + result = append(result, SessionUsage{ + SessionID: row.ID.SessionID, + UserPath: row.ID.UserPath, + Requests: row.Requests, + InputTokens: row.InputTokens, + OutputTokens: row.OutputTokens, + TotalTokens: row.TotalTokens, + InputCost: sessionCostPtr(row.ProviderRequests, row.HasInputCost, row.InputCost), + OutputCost: sessionCostPtr(row.ProviderRequests, row.HasOutputCost, row.OutputCost), + TotalCost: sessionCostPtr(row.ProviderRequests, row.HasTotalCost, row.TotalCost), + }) + } + total := 0 + if len(facetResult.Total) > 0 { + total = facetResult.Total[0].Count + } + return &SessionUsageResult{Entries: result, Total: total, Limit: limit, Offset: offset}, nil +} + +func mongoSessionUsagePipeline(params SessionUsageParams) (bson.A, int, int, error) { + limit, offset := clampLimitOffset(params.Limit, params.Offset) + queryParams := params.UsageQueryParams + queryParams.CacheMode = CacheModeAll + matchFilters, err := mongoUsageMatchFilters(queryParams) + if err != nil { + return nil, 0, 0, err + } + nonBlankSession := bson.D{{Key: "session_id", Value: bson.D{ + {Key: "$exists", Value: true}, + {Key: "$type", Value: "string"}, + {Key: "$ne", Value: ""}, + }}} + matchFilters = mongoAndFilters(matchFilters, nonBlankSession) + pipeline := bson.A{} + if len(matchFilters) > 0 { + pipeline = append(pipeline, bson.D{{Key: "$match", Value: matchFilters}}) + } + pipeline = append(pipeline, + mongoCanonicalUserPathAddFieldsStage(), + bson.D{{Key: "$group", Value: bson.D{ + {Key: "_id", Value: bson.D{ + {Key: "session_id", Value: "$session_id"}, + {Key: "user_path", Value: "$" + mongoCanonicalUserPathField}, + }}, + {Key: "requests", Value: bson.D{{Key: "$sum", Value: 1}}}, + {Key: "input_tokens", Value: bson.D{{Key: "$sum", Value: "$input_tokens"}}}, + {Key: "output_tokens", Value: bson.D{{Key: "$sum", Value: "$output_tokens"}}}, + {Key: "total_tokens", Value: bson.D{{Key: "$sum", Value: "$total_tokens"}}}, + {Key: "provider_requests", Value: bson.D{{Key: "$sum", Value: bson.D{{Key: "$cond", Value: bson.A{mongoProviderUsageCondition(), 1, 0}}}}}}, + {Key: "input_cost", Value: mongoProviderCostSum("$input_cost")}, + {Key: "output_cost", Value: mongoProviderCostSum("$output_cost")}, + {Key: "total_cost", Value: mongoProviderCostSum("$total_cost")}, + {Key: "has_input_cost", Value: mongoProviderCostPresenceCount("$input_cost")}, + {Key: "has_output_cost", Value: mongoProviderCostPresenceCount("$output_cost")}, + {Key: "has_total_cost", Value: mongoProviderCostPresenceCount("$total_cost")}, + {Key: "latest", Value: bson.D{{Key: "$max", Value: "$timestamp"}}}, + }}}, + bson.D{{Key: "$facet", Value: bson.D{ + {Key: "data", Value: bson.A{ + bson.D{{Key: "$sort", Value: bson.D{{Key: "latest", Value: -1}}}}, + bson.D{{Key: "$skip", Value: offset}}, + bson.D{{Key: "$limit", Value: limit}}, + }}, + {Key: "total", Value: bson.A{bson.D{{Key: "$count", Value: "count"}}}}, + }}}, + ) + + return pipeline, limit, offset, nil +} + // mongoUsageGroupedProviderNameExpr builds the MongoDB expression used to derive a grouped provider name, preferring a trimmed provider name and falling back to the trimmed provider value. func mongoUsageGroupedProviderNameExpr() bson.D { trimmedProviderName := bson.D{{Key: "$trim", Value: bson.D{ @@ -1043,6 +1192,9 @@ func mongoUsageMatchFilters(params UsageQueryParams) (bson.D, error) { if params.Model != "" { matchFilters = append(matchFilters, bson.E{Key: "model", Value: params.Model}) } + if params.SessionID != "" { + matchFilters = append(matchFilters, bson.E{Key: "session_id", Value: params.SessionID}) + } if params.Label != "" { // Matching a scalar against an array field matches documents whose // labels array contains the value. @@ -1074,6 +1226,7 @@ func mongoUsageLogMatchFilters(params UsageLogParams) (bson.D, error) { bson.D{{Key: "provider_name", Value: regex}}, bson.D{{Key: "request_id", Value: regex}}, bson.D{{Key: "provider_id", Value: regex}}, + bson.D{{Key: "session_id", Value: regex}}, }}} matchFilters = mongoAndFilters(matchFilters, searchFilter) } diff --git a/internal/usage/reader_mongodb_test.go b/internal/usage/reader_mongodb_test.go index 8ce42ab1d..6760a1984 100644 --- a/internal/usage/reader_mongodb_test.go +++ b/internal/usage/reader_mongodb_test.go @@ -1,12 +1,56 @@ package usage import ( + "fmt" "reflect" + "strings" "testing" "go.mongodb.org/mongo-driver/v2/bson" ) +func TestMongoSessionUsagePipelineIsPagedAndExcludesCachedCost(t *testing.T) { + pipeline, limit, offset, err := mongoSessionUsagePipeline(SessionUsageParams{ + UsageQueryParams: UsageQueryParams{SessionID: "scoped-session", CacheMode: CacheModeUncached}, + Limit: 12, + Offset: 7, + }) + if err != nil { + t.Fatalf("mongoSessionUsagePipeline: %v", err) + } + if limit != 12 || offset != 7 { + t.Fatalf("pagination = %d/%d, want 12/7", limit, offset) + } + if len(pipeline) != 4 { + t.Fatalf("pipeline stages = %d, want 4: %#v", len(pipeline), pipeline) + } + match := fmt.Sprint(pipeline[0]) + if !strings.Contains(match, "scoped-session") || strings.Contains(match, "cache_type") { + t.Fatalf("match stage has unexpected scope: %s", match) + } + group := fmt.Sprint(pipeline[2]) + for _, fragment := range []string{"provider_requests", CacheTypeExact, CacheTypeSemantic, "total_cost"} { + if !strings.Contains(group, fragment) { + t.Fatalf("group stage missing %q: %s", fragment, group) + } + } + facet := fmt.Sprint(pipeline[3]) + for _, fragment := range []string{"$facet", `"$skip":{"$numberInt":"7"}`, `"$limit":{"$numberInt":"12"}`, `"$count":"count"`} { + if !strings.Contains(facet, fragment) { + t.Fatalf("facet stage missing %q: %s", fragment, facet) + } + } +} + +func TestSessionCostPtrUsesZeroForCacheOnlySession(t *testing.T) { + if got := sessionCostPtr(0, 0, 123); got == nil || *got != 0 { + t.Fatalf("cache-only session cost = %v, want 0", got) + } + if got := sessionCostPtr(1, 0, 0); got != nil { + t.Fatalf("unpriced provider session cost = %v, want nil", got) + } +} + func TestMongoUsageLogMatchFiltersAndSearchWithCacheMode(t *testing.T) { got, err := mongoUsageLogMatchFilters(UsageLogParams{ UsageQueryParams: UsageQueryParams{ @@ -31,6 +75,7 @@ func TestMongoUsageLogMatchFiltersAndSearchWithCacheMode(t *testing.T) { bson.D{{Key: "provider_name", Value: regex}}, bson.D{{Key: "request_id", Value: regex}}, bson.D{{Key: "provider_id", Value: regex}}, + bson.D{{Key: "session_id", Value: regex}}, }}}, }}} @@ -103,6 +148,7 @@ func TestMongoUsageLogMatchFiltersEscapesSearchRegex(t *testing.T) { bson.D{{Key: "provider_name", Value: regex}}, bson.D{{Key: "request_id", Value: regex}}, bson.D{{Key: "provider_id", Value: regex}}, + bson.D{{Key: "session_id", Value: regex}}, }}} if !reflect.DeepEqual(got, want) { diff --git a/internal/usage/reader_postgresql.go b/internal/usage/reader_postgresql.go index a796675b7..961e2a5f9 100644 --- a/internal/usage/reader_postgresql.go +++ b/internal/usage/reader_postgresql.go @@ -232,6 +232,66 @@ func (r *PostgreSQLReader) GetUsageByLabel(ctx context.Context, params UsageQuer return result, nil } +// GetUsageBySession returns request, token, and cost totals grouped by the +// detected session id and its tracked user path. Legacy rows without a session +// id are omitted. +func (r *PostgreSQLReader) GetUsageBySession(ctx context.Context, params SessionUsageParams) (*SessionUsageResult, error) { + countQuery, query, args, dataArgs, limit, offset, err := postgresqlSessionUsageQueries(params) + if err != nil { + return nil, err + } + + var total int + if err := r.pool.QueryRow(ctx, countQuery, args...).Scan(&total); err != nil { + return nil, fmt.Errorf("failed to count usage sessions: %w", err) + } + + rows, err := r.pool.Query(ctx, query, dataArgs...) + if err != nil { + return nil, fmt.Errorf("failed to query usage by session: %w", err) + } + defer rows.Close() + + result := make([]SessionUsage, 0) + for rows.Next() { + var session SessionUsage + if err := rows.Scan(&session.SessionID, &session.UserPath, &session.Requests, + &session.InputTokens, &session.OutputTokens, &session.TotalTokens, + &session.InputCost, &session.OutputCost, &session.TotalCost); err != nil { + return nil, fmt.Errorf("failed to scan usage by session row: %w", err) + } + result = append(result, session) + } + if err := rows.Err(); err != nil { + return nil, fmt.Errorf("error iterating usage by session rows: %w", err) + } + return &SessionUsageResult{Entries: result, Total: total, Limit: limit, Offset: offset}, nil +} + +func postgresqlSessionUsageQueries(params SessionUsageParams) (countQuery, dataQuery string, args, dataArgs []any, limit, offset int, err error) { + limit, offset = clampLimitOffset(params.Limit, params.Offset) + queryParams := params.UsageQueryParams + queryParams.CacheMode = CacheModeAll + conditions, args, argIdx, err := pgUsageConditions(queryParams, 1) + if err != nil { + return "", "", nil, nil, 0, 0, err + } + conditions = append(conditions, "session_id IS NOT NULL", "BTRIM(session_id) <> ''") + where := sqlutil.BuildWhereClause(conditions) + userPathExpr := usageGroupedUserPathSQL("user_path") + groupBy := " GROUP BY session_id, " + userPathExpr + + countQuery = `SELECT COUNT(*) FROM (SELECT 1 FROM "usage"` + where + groupBy + `) AS sessions` + dataQuery = `SELECT session_id, ` + userPathExpr + ` AS user_path, COUNT(*), + COALESCE(SUM(input_tokens), 0), COALESCE(SUM(output_tokens), 0), COALESCE(SUM(total_tokens), 0), + ` + providerSessionCostSQL("input_cost") + `, + ` + providerSessionCostSQL("output_cost") + `, + ` + providerSessionCostSQL("total_cost") + ` + FROM "usage"` + where + groupBy + fmt.Sprintf(` ORDER BY MAX(timestamp) DESC LIMIT $%d OFFSET $%d`, argIdx, argIdx+1) + dataArgs = append(append([]any(nil), args...), limit, offset) + return countQuery, dataQuery, args, dataArgs, limit, offset, nil +} + // GetUsageLog returns a paginated list of individual usage log entries. func (r *PostgreSQLReader) GetUsageLog(ctx context.Context, params UsageLogParams) (*UsageLogResult, error) { limit, offset := clampLimitOffset(params.Limit, params.Offset) @@ -243,7 +303,7 @@ func (r *PostgreSQLReader) GetUsageLog(ctx context.Context, params UsageLogParam if params.Search != "" { s := "%" + sqlutil.EscapeLikeWildcards(params.Search) + "%" - conditions = append(conditions, fmt.Sprintf("(model ILIKE $%d ESCAPE '\\' OR provider ILIKE $%d ESCAPE '\\' OR provider_name ILIKE $%d ESCAPE '\\' OR request_id ILIKE $%d ESCAPE '\\' OR provider_id ILIKE $%d ESCAPE '\\')", argIdx, argIdx, argIdx, argIdx, argIdx)) + conditions = append(conditions, fmt.Sprintf("(model ILIKE $%d ESCAPE '\\' OR provider ILIKE $%d ESCAPE '\\' OR provider_name ILIKE $%d ESCAPE '\\' OR request_id ILIKE $%d ESCAPE '\\' OR provider_id ILIKE $%d ESCAPE '\\' OR session_id ILIKE $%d ESCAPE '\\')", argIdx, argIdx, argIdx, argIdx, argIdx, argIdx)) args = append(args, s) argIdx++ } @@ -258,7 +318,7 @@ func (r *PostgreSQLReader) GetUsageLog(ctx context.Context, params UsageLogParam } // Fetch page - dataQuery := fmt.Sprintf(`SELECT id, request_id, provider_id, timestamp, model, provider, provider_name, endpoint, user_path, cache_type, labels, + dataQuery := fmt.Sprintf(`SELECT id, request_id, provider_id, timestamp, model, provider, provider_name, endpoint, user_path, session_id, cache_type, labels, input_tokens, output_tokens, total_tokens, input_cost, output_cost, total_cost, COALESCE(cost_source, ''), raw_data, COALESCE(costs_calculation_caveat, ''), COALESCE(rewrite_tokens_saved, 0), rewrite_cost_saved FROM "usage"%s ORDER BY timestamp DESC LIMIT $%d OFFSET $%d`, where, argIdx, argIdx+1) @@ -301,7 +361,7 @@ func (r *PostgreSQLReader) GetUsageByRequestIDs(ctx context.Context, requestIDs placeholders = append(placeholders, fmt.Sprintf("$%d", idx+1)) } - query := fmt.Sprintf(`SELECT id, request_id, provider_id, timestamp, model, provider, provider_name, endpoint, user_path, cache_type, labels, + query := fmt.Sprintf(`SELECT id, request_id, provider_id, timestamp, model, provider, provider_name, endpoint, user_path, session_id, cache_type, labels, input_tokens, output_tokens, total_tokens, input_cost, output_cost, total_cost, COALESCE(cost_source, ''), raw_data, COALESCE(costs_calculation_caveat, ''), COALESCE(rewrite_tokens_saved, 0), rewrite_cost_saved FROM "usage" WHERE request_id IN (%s) ORDER BY timestamp DESC, id DESC`, strings.Join(placeholders, ", ")) @@ -334,9 +394,10 @@ func scanPostgreSQLUsageLogEntries(rows pgxRows) ([]UsageLogEntry, error) { var rawDataJSON *string var providerName *string var userPath *string + var sessionID *string var cacheType *string var labelsJSON *string - if err := rows.Scan(&e.ID, &e.RequestID, &e.ProviderID, &e.Timestamp, &e.Model, &e.Provider, &providerName, &e.Endpoint, &userPath, &cacheType, &labelsJSON, + if err := rows.Scan(&e.ID, &e.RequestID, &e.ProviderID, &e.Timestamp, &e.Model, &e.Provider, &providerName, &e.Endpoint, &userPath, &sessionID, &cacheType, &labelsJSON, &e.InputTokens, &e.OutputTokens, &e.TotalTokens, &e.InputCost, &e.OutputCost, &e.TotalCost, &e.CostSource, &rawDataJSON, &e.CostsCalculationCaveat, &e.RewriteTokensSaved, &e.RewriteCostSaved); err != nil { return nil, fmt.Errorf("failed to scan usage log row: %w", err) @@ -352,6 +413,9 @@ func scanPostgreSQLUsageLogEntries(rows pgxRows) ([]UsageLogEntry, error) { if userPath != nil { e.UserPath = *userPath } + if sessionID != nil { + e.SessionID = *sessionID + } if providerName != nil { e.ProviderName = displayUsageProviderName(*providerName, e.Provider) } else { @@ -572,6 +636,11 @@ func pgUsageConditionsWithUserPathExpr(params UsageQueryParams, userPathExpr str args = append(args, params.Model) nextIdx++ } + if params.SessionID != "" { + conditions = append(conditions, fmt.Sprintf("session_id = $%d", nextIdx)) + args = append(args, params.SessionID) + nextIdx++ + } if params.Provider != "" { conditions = append(conditions, fmt.Sprintf("(provider = $%d OR provider_name = $%d)", nextIdx, nextIdx+1)) args = append(args, params.Provider, params.Provider) diff --git a/internal/usage/reader_postgresql_test.go b/internal/usage/reader_postgresql_test.go index bc2581f2d..2e0787ca0 100644 --- a/internal/usage/reader_postgresql_test.go +++ b/internal/usage/reader_postgresql_test.go @@ -3,10 +3,40 @@ package usage import ( "fmt" "reflect" + "strings" "testing" "time" ) +func TestPostgreSQLSessionUsageQueriesArePagedAndExcludeCachedCost(t *testing.T) { + countQuery, dataQuery, args, dataArgs, limit, offset, err := postgresqlSessionUsageQueries(SessionUsageParams{ + UsageQueryParams: UsageQueryParams{SessionID: "scoped-session", CacheMode: CacheModeUncached}, + Limit: 25, + Offset: 10, + }) + if err != nil { + t.Fatalf("postgresqlSessionUsageQueries: %v", err) + } + if limit != 25 || offset != 10 { + t.Fatalf("pagination = %d/%d, want 25/10", limit, offset) + } + if !strings.Contains(countQuery, "GROUP BY session_id") || strings.Contains(countQuery, "cache_type") { + t.Fatalf("count query has unexpected scope: %s", countQuery) + } + for _, fragment := range []string{ + "session_id = $1", + "COUNT(CASE WHEN (cache_type IS NULL OR cache_type = '') THEN 1 END)", + "LIMIT $2 OFFSET $3", + } { + if !strings.Contains(dataQuery, fragment) { + t.Fatalf("data query missing %q: %s", fragment, dataQuery) + } + } + if !reflect.DeepEqual(args, []any{"scoped-session"}) || !reflect.DeepEqual(dataArgs, []any{"scoped-session", 25, 10}) { + t.Fatalf("args = %#v / %#v", args, dataArgs) + } +} + // fakePgxRows feeds scanPostgreSQLUsageLogEntries rows whose values are laid // out in the reader's SELECT column order. Scan assigns via reflection and // leaves the destination untouched for nil values, matching how pgx scans SQL @@ -42,16 +72,16 @@ func (f *fakePgxRows) Scan(dest ...any) error { // Covers the row-scanning half of the PostgreSQL usage log queries, pinning // the rewrite-savings columns appended to the SELECT list: id, request_id, // provider_id, timestamp, model, provider, provider_name, endpoint, user_path, -// cache_type, labels, input_tokens, output_tokens, total_tokens, input_cost, +// session_id, cache_type, labels, input_tokens, output_tokens, total_tokens, input_cost, // output_cost, total_cost, cost_source, raw_data, costs_calculation_caveat, // rewrite_tokens_saved, rewrite_cost_saved. func TestScanPostgreSQLUsageLogEntries_CarriesRewriteSavings(t *testing.T) { cost := 0.0375 ts := time.Date(2026, 1, 16, 12, 0, 0, 0, time.UTC) rows := &fakePgxRows{rows: [][]any{ - {"with-savings", "req-saved", "provider-1", ts, "gpt-5", "openai", nil, "/v1/chat/completions", nil, nil, nil, + {"with-savings", "req-saved", "provider-1", ts, "gpt-5", "openai", nil, "/v1/chat/completions", nil, nil, nil, nil, 100, 10, 110, nil, nil, nil, "", nil, "", int64(89), &cost}, - {"without-savings", "req-plain", "provider-2", ts, "gpt-5", "openai", nil, "/v1/chat/completions", nil, nil, nil, + {"without-savings", "req-plain", "provider-2", ts, "gpt-5", "openai", nil, "/v1/chat/completions", nil, nil, nil, nil, 50, 10, 60, nil, nil, nil, "", nil, "", int64(0), nil}, }} diff --git a/internal/usage/reader_sqlite.go b/internal/usage/reader_sqlite.go index f57d25d8d..641e43456 100644 --- a/internal/usage/reader_sqlite.go +++ b/internal/usage/reader_sqlite.go @@ -225,6 +225,57 @@ func (r *SQLiteReader) GetUsageByLabel(ctx context.Context, params UsageQueryPar return result, nil } +// GetUsageBySession returns request, token, and cost totals grouped by the +// detected session id and its tracked user path. Legacy rows without a session +// id are omitted. +func (r *SQLiteReader) GetUsageBySession(ctx context.Context, params SessionUsageParams) (*SessionUsageResult, error) { + limit, offset := clampLimitOffset(params.Limit, params.Offset) + queryParams := params.UsageQueryParams + queryParams.CacheMode = CacheModeAll + conditions, args, err := sqliteUsageConditions(queryParams) + if err != nil { + return nil, err + } + conditions = append(conditions, "session_id IS NOT NULL", "TRIM(session_id) <> ''") + where := sqlutil.BuildWhereClause(conditions) + userPathExpr := usageGroupedUserPathSQL("user_path") + groupBy := " GROUP BY session_id, " + userPathExpr + + var total int + countQuery := `SELECT COUNT(*) FROM (SELECT 1 FROM usage` + where + groupBy + `)` + if err := r.db.QueryRowContext(ctx, countQuery, args...).Scan(&total); err != nil { + return nil, fmt.Errorf("failed to count usage sessions: %w", err) + } + + query := `SELECT session_id, ` + userPathExpr + ` AS user_path, COUNT(*), + COALESCE(SUM(input_tokens), 0), COALESCE(SUM(output_tokens), 0), COALESCE(SUM(total_tokens), 0), + ` + providerSessionCostSQL("input_cost") + `, + ` + providerSessionCostSQL("output_cost") + `, + ` + providerSessionCostSQL("total_cost") + ` + FROM usage` + where + groupBy + ` ORDER BY MAX(` + sqliteTimestampEpochExpr() + `) DESC LIMIT ? OFFSET ?` + dataArgs := append(append([]any(nil), args...), limit, offset) + rows, err := r.db.QueryContext(ctx, query, dataArgs...) + if err != nil { + return nil, fmt.Errorf("failed to query usage by session: %w", err) + } + defer rows.Close() + + result := make([]SessionUsage, 0) + for rows.Next() { + var session SessionUsage + if err := rows.Scan(&session.SessionID, &session.UserPath, &session.Requests, + &session.InputTokens, &session.OutputTokens, &session.TotalTokens, + &session.InputCost, &session.OutputCost, &session.TotalCost); err != nil { + return nil, fmt.Errorf("failed to scan usage by session row: %w", err) + } + result = append(result, session) + } + if err := rows.Err(); err != nil { + return nil, fmt.Errorf("error iterating usage by session rows: %w", err) + } + return &SessionUsageResult{Entries: result, Total: total, Limit: limit, Offset: offset}, nil +} + // GetUsageLog returns a paginated list of individual usage log entries. func (r *SQLiteReader) GetUsageLog(ctx context.Context, params UsageLogParams) (*UsageLogResult, error) { limit, offset := clampLimitOffset(params.Limit, params.Offset) @@ -235,9 +286,9 @@ func (r *SQLiteReader) GetUsageLog(ctx context.Context, params UsageLogParams) ( } if params.Search != "" { - conditions = append(conditions, "(model LIKE ? ESCAPE '\\' OR provider LIKE ? ESCAPE '\\' OR provider_name LIKE ? ESCAPE '\\' OR request_id LIKE ? ESCAPE '\\' OR provider_id LIKE ? ESCAPE '\\')") + conditions = append(conditions, "(model LIKE ? ESCAPE '\\' OR provider LIKE ? ESCAPE '\\' OR provider_name LIKE ? ESCAPE '\\' OR request_id LIKE ? ESCAPE '\\' OR provider_id LIKE ? ESCAPE '\\' OR session_id LIKE ? ESCAPE '\\')") s := "%" + sqlutil.EscapeLikeWildcards(params.Search) + "%" - args = append(args, s, s, s, s, s) + args = append(args, s, s, s, s, s, s) } where := sqlutil.BuildWhereClause(conditions) @@ -250,7 +301,7 @@ func (r *SQLiteReader) GetUsageLog(ctx context.Context, params UsageLogParams) ( } // Fetch page - dataQuery := `SELECT id, request_id, provider_id, timestamp, model, provider, provider_name, endpoint, user_path, cache_type, labels, + dataQuery := `SELECT id, request_id, provider_id, timestamp, model, provider, provider_name, endpoint, user_path, session_id, cache_type, labels, input_tokens, output_tokens, total_tokens, input_cost, output_cost, total_cost, COALESCE(cost_source, ''), raw_data, COALESCE(costs_calculation_caveat, ''), COALESCE(rewrite_tokens_saved, 0), rewrite_cost_saved FROM usage` + where + ` ORDER BY ` + sqliteTimestampEpochExpr() + ` DESC, id DESC LIMIT ? OFFSET ?` @@ -292,7 +343,7 @@ func (r *SQLiteReader) GetUsageByRequestIDs(ctx context.Context, requestIDs []st args = append(args, requestID) } - query := `SELECT id, request_id, provider_id, timestamp, model, provider, provider_name, endpoint, user_path, cache_type, labels, + query := `SELECT id, request_id, provider_id, timestamp, model, provider, provider_name, endpoint, user_path, session_id, cache_type, labels, input_tokens, output_tokens, total_tokens, input_cost, output_cost, total_cost, COALESCE(cost_source, ''), raw_data, COALESCE(costs_calculation_caveat, ''), COALESCE(rewrite_tokens_saved, 0), rewrite_cost_saved FROM usage WHERE request_id IN (` + placeholders + `) ORDER BY ` + sqliteTimestampEpochExpr() + ` DESC, id DESC` @@ -327,9 +378,10 @@ func scanSQLiteUsageLogEntries(rows *sql.Rows) ([]UsageLogEntry, error) { var rawDataJSON *string var providerName sql.NullString var userPath sql.NullString + var sessionID sql.NullString var cacheType sql.NullString var labelsJSON *string - if err := rows.Scan(&e.ID, &e.RequestID, &e.ProviderID, &ts, &e.Model, &e.Provider, &providerName, &e.Endpoint, &userPath, &cacheType, &labelsJSON, + if err := rows.Scan(&e.ID, &e.RequestID, &e.ProviderID, &ts, &e.Model, &e.Provider, &providerName, &e.Endpoint, &userPath, &sessionID, &cacheType, &labelsJSON, &e.InputTokens, &e.OutputTokens, &e.TotalTokens, &e.InputCost, &e.OutputCost, &e.TotalCost, &e.CostSource, &rawDataJSON, &caveat, &e.RewriteTokensSaved, &e.RewriteCostSaved); err != nil { return nil, fmt.Errorf("failed to scan usage log row: %w", err) @@ -350,6 +402,9 @@ func scanSQLiteUsageLogEntries(rows *sql.Rows) ([]UsageLogEntry, error) { if userPath.Valid { e.UserPath = userPath.String } + if sessionID.Valid { + e.SessionID = sessionID.String + } if providerName.Valid { e.ProviderName = displayUsageProviderName(providerName.String, e.Provider) } else { @@ -608,6 +663,10 @@ func sqliteUsageConditionsWithUserPathExpr(params UsageQueryParams, userPathExpr conditions = append(conditions, "model = ?") args = append(args, params.Model) } + if params.SessionID != "" { + conditions = append(conditions, "session_id = ?") + args = append(args, params.SessionID) + } if params.Provider != "" { conditions = append(conditions, "(provider = ? OR provider_name = ?)") args = append(args, params.Provider, params.Provider) diff --git a/internal/usage/session_sqlite_test.go b/internal/usage/session_sqlite_test.go new file mode 100644 index 000000000..4a259a961 --- /dev/null +++ b/internal/usage/session_sqlite_test.go @@ -0,0 +1,119 @@ +package usage + +import ( + "context" + "database/sql" + "math" + "testing" + "time" + + _ "modernc.org/sqlite" +) + +func TestSQLiteSessionUsageRoundTripAggregationAndFilter(t *testing.T) { + db, err := sql.Open("sqlite", ":memory:") + if err != nil { + t.Fatalf("open sqlite: %v", err) + } + t.Cleanup(func() { _ = db.Close() }) + + store, err := NewSQLiteStore(db, 0) + if err != nil { + t.Fatalf("NewSQLiteStore: %v", err) + } + reader, err := NewSQLiteReader(db) + if err != nil { + t.Fatalf("NewSQLiteReader: %v", err) + } + + cost := func(value float64) *float64 { return &value } + now := time.Date(2026, 8, 8, 12, 0, 0, 0, time.UTC) + entries := []*UsageEntry{ + { + ID: "u1", RequestID: "r1", ProviderID: "p1", Timestamp: now, + Model: "gpt-5", Provider: "openai", Endpoint: "/v1/chat/completions", + UserPath: "/team/a", SessionID: "scoped-session-a", + InputTokens: 10, OutputTokens: 4, TotalTokens: 14, + InputCost: cost(0.10), OutputCost: cost(0.04), TotalCost: cost(0.14), + }, + { + ID: "u2", RequestID: "r2", ProviderID: "p2", Timestamp: now.Add(time.Minute), + Model: "gpt-5", Provider: "openai", Endpoint: "/v1/chat/completions", + UserPath: "/team/a", SessionID: "scoped-session-a", + InputTokens: 20, OutputTokens: 6, TotalTokens: 26, + InputCost: cost(0.20), OutputCost: cost(0.06), TotalCost: cost(0.26), + }, + { + ID: "u-cache", RequestID: "r-cache", ProviderID: "p-cache", Timestamp: now.Add(90 * time.Second), + Model: "gpt-5", Provider: "openai", Endpoint: "/v1/chat/completions", + UserPath: "/team/a", SessionID: "scoped-session-a", CacheType: CacheTypeExact, + InputTokens: 7, OutputTokens: 3, TotalTokens: 10, + InputCost: cost(0.07), OutputCost: cost(0.03), TotalCost: cost(0.10), + }, + { + ID: "u3", RequestID: "r3", ProviderID: "p3", Timestamp: now.Add(2 * time.Minute), + Model: "gpt-5", Provider: "openai", Endpoint: "/v1/chat/completions", + UserPath: "/team/b", SessionID: "scoped-session-b", + InputTokens: 5, OutputTokens: 1, TotalTokens: 6, + }, + { + ID: "u-cache-only", RequestID: "r-cache-only", ProviderID: "p-cache-only", Timestamp: now.Add(150 * time.Second), + Model: "gpt-5", Provider: "openai", Endpoint: "/v1/chat/completions", + UserPath: "/team/c", SessionID: "scoped-session-c", CacheType: CacheTypeSemantic, + InputTokens: 9, OutputTokens: 2, TotalTokens: 11, + InputCost: cost(0.09), OutputCost: cost(0.02), TotalCost: cost(0.11), + }, + { + ID: "legacy", RequestID: "r4", ProviderID: "p4", Timestamp: now.Add(3 * time.Minute), + Model: "gpt-5", Provider: "openai", Endpoint: "/v1/chat/completions", + UserPath: "/team/a", TotalTokens: 99, + }, + } + if err := store.WriteBatch(context.Background(), entries); err != nil { + t.Fatalf("WriteBatch: %v", err) + } + + result, err := reader.GetUsageBySession(context.Background(), SessionUsageParams{ + UsageQueryParams: UsageQueryParams{CacheMode: CacheModeUncached}, + }) + if err != nil { + t.Fatalf("GetUsageBySession: %v", err) + } + if result.Total != 3 || result.Limit != 50 || result.Offset != 0 || len(result.Entries) != 3 { + t.Fatalf("session result = %+v", result) + } + byID := make(map[string]SessionUsage, len(result.Entries)) + for _, row := range result.Entries { + byID[row.SessionID] = row + } + sessionA := byID["scoped-session-a"] + if sessionA.UserPath != "/team/a" || sessionA.Requests != 3 || sessionA.InputTokens != 37 || sessionA.OutputTokens != 13 || sessionA.TotalTokens != 50 { + t.Fatalf("session A = %+v", sessionA) + } + if sessionA.TotalCost == nil || math.Abs(*sessionA.TotalCost-0.40) > 1e-12 { + t.Fatalf("session A total cost = %v, want provider spend 0.40", sessionA.TotalCost) + } + sessionC := byID["scoped-session-c"] + if sessionC.Requests != 1 || sessionC.TotalCost == nil || *sessionC.TotalCost != 0 { + t.Fatalf("cache-only session C = %+v, want one request and zero provider spend", sessionC) + } + + page, err := reader.GetUsageBySession(context.Background(), SessionUsageParams{Limit: 1, Offset: 1}) + if err != nil { + t.Fatalf("GetUsageBySession page: %v", err) + } + if page.Total != 3 || page.Limit != 1 || page.Offset != 1 || len(page.Entries) != 1 { + t.Fatalf("session page = %+v", page) + } + + logResult, err := reader.GetUsageLog(context.Background(), UsageLogParams{UsageQueryParams: UsageQueryParams{ + SessionID: "scoped-session-b", + CacheMode: CacheModeAll, + }}) + if err != nil { + t.Fatalf("GetUsageLog session filter: %v", err) + } + if logResult.Total != 1 || len(logResult.Entries) != 1 || logResult.Entries[0].SessionID != "scoped-session-b" { + t.Fatalf("filtered log = %+v", logResult) + } +} diff --git a/internal/usage/store_mongodb.go b/internal/usage/store_mongodb.go index c70197004..5de98cee2 100644 --- a/internal/usage/store_mongodb.go +++ b/internal/usage/store_mongodb.go @@ -87,6 +87,9 @@ func NewMongoDBStore(database *mongo.Database, retentionDays int) (*MongoDBStore { Keys: bson.D{{Key: "user_path", Value: 1}}, }, + { + Keys: bson.D{{Key: "session_id", Value: 1}}, + }, { Keys: bson.D{{Key: "cache_type", Value: 1}, {Key: "timestamp", Value: 1}}, }, diff --git a/internal/usage/store_postgresql.go b/internal/usage/store_postgresql.go index 4efc3c38b..6bd294b97 100644 --- a/internal/usage/store_postgresql.go +++ b/internal/usage/store_postgresql.go @@ -17,14 +17,14 @@ import ( ) const ( - usageInsertColumnCount = 22 + usageInsertColumnCount = 23 postgresMaxBindParameters = 65535 usageInsertMaxRowsPerQuery = postgresMaxBindParameters / usageInsertColumnCount ) const usageInsertPrefix = ` INSERT INTO usage (id, request_id, provider_id, timestamp, model, provider, provider_name, - endpoint, user_path, cache_type, labels, input_tokens, output_tokens, total_tokens, + endpoint, user_path, session_id, cache_type, labels, input_tokens, output_tokens, total_tokens, rewrite_tokens_saved, rewrite_cost_saved, raw_data, input_cost, output_cost, total_cost, cost_source, costs_calculation_caveat) VALUES ` @@ -67,6 +67,7 @@ func NewPostgreSQLStore(pool *pgxpool.Pool, retentionDays int) (*PostgreSQLStore provider_name TEXT, endpoint TEXT NOT NULL, user_path TEXT, + session_id TEXT, cache_type TEXT, input_tokens INTEGER NOT NULL DEFAULT 0, output_tokens INTEGER NOT NULL DEFAULT 0, @@ -89,6 +90,7 @@ func NewPostgreSQLStore(pool *pgxpool.Pool, retentionDays int) (*PostgreSQLStore "ALTER TABLE usage ADD COLUMN IF NOT EXISTS costs_calculation_caveat TEXT DEFAULT ''", "ALTER TABLE usage ADD COLUMN IF NOT EXISTS provider_name TEXT", "ALTER TABLE usage ADD COLUMN IF NOT EXISTS user_path TEXT", + "ALTER TABLE usage ADD COLUMN IF NOT EXISTS session_id TEXT", "ALTER TABLE usage ADD COLUMN IF NOT EXISTS cache_type TEXT", "ALTER TABLE usage ADD COLUMN IF NOT EXISTS labels JSONB", "ALTER TABLE usage ADD COLUMN IF NOT EXISTS rewrite_tokens_saved INTEGER NOT NULL DEFAULT 0", @@ -109,6 +111,7 @@ func NewPostgreSQLStore(pool *pgxpool.Pool, retentionDays int) (*PostgreSQLStore "CREATE INDEX IF NOT EXISTS idx_usage_provider ON usage(provider)", "CREATE INDEX IF NOT EXISTS idx_usage_provider_name ON usage(provider_name)", "CREATE INDEX IF NOT EXISTS idx_usage_user_path ON usage(user_path)", + "CREATE INDEX IF NOT EXISTS idx_usage_session_id ON usage(session_id)", "CREATE INDEX IF NOT EXISTS idx_usage_user_path_normalized ON usage(COALESCE(NULLIF(TRIM(user_path), ''), '/'))", "CREATE INDEX IF NOT EXISTS idx_usage_cache_type ON usage(cache_type)", "CREATE INDEX IF NOT EXISTS idx_usage_raw_data_gin ON usage USING GIN (raw_data)", @@ -223,6 +226,7 @@ func buildUsageInsert(entries []*UsageEntry) (string, []any) { entry.ProviderName, entry.Endpoint, entry.UserPath, + entry.SessionID, cacheTypeValue(entry.CacheType), sqlutil.NullableJSONStrings(entry.Labels, entry.ID), entry.InputTokens, diff --git a/internal/usage/store_postgresql_test.go b/internal/usage/store_postgresql_test.go index 45df5706a..5169e60ea 100644 --- a/internal/usage/store_postgresql_test.go +++ b/internal/usage/store_postgresql_test.go @@ -23,6 +23,7 @@ func TestBuildUsageInsert(t *testing.T) { Provider: "openai", ProviderName: "primary-openai", Endpoint: "/v1/chat/completions", + SessionID: "session-1", CacheType: CacheTypeExact, Labels: []string{"alpha", "prod"}, InputTokens: 10, @@ -58,12 +59,12 @@ func TestBuildUsageInsert(t *testing.T) { }) normalized := strings.Join(strings.Fields(query), " ") - wantQuery := "INSERT INTO usage (id, request_id, provider_id, timestamp, model, provider, provider_name, endpoint, user_path, cache_type, labels, input_tokens, output_tokens, total_tokens, rewrite_tokens_saved, rewrite_cost_saved, raw_data, input_cost, output_cost, total_cost, cost_source, costs_calculation_caveat) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22), ($23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44) ON CONFLICT (id) DO NOTHING" + wantQuery := "INSERT INTO usage (id, request_id, provider_id, timestamp, model, provider, provider_name, endpoint, user_path, session_id, cache_type, labels, input_tokens, output_tokens, total_tokens, rewrite_tokens_saved, rewrite_cost_saved, raw_data, input_cost, output_cost, total_cost, cost_source, costs_calculation_caveat) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23), ($24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44, $45, $46) ON CONFLICT (id) DO NOTHING" if normalized != wantQuery { t.Fatalf("query = %q, want %q", normalized, wantQuery) } - if got, want := len(args), 44; got != want { + if got, want := len(args), 46; got != want { t.Fatalf("len(args) = %d, want %d", got, want) } if got := args[0]; got != "usage-1" { @@ -72,45 +73,48 @@ func TestBuildUsageInsert(t *testing.T) { if got := args[6]; got != "primary-openai" { t.Fatalf("args[6] = %v, want primary-openai", got) } - if got := args[20]; got != CostSourceModelPricing { - t.Fatalf("args[20] = %v, want %q", got, CostSourceModelPricing) + if got := args[21]; got != CostSourceModelPricing { + t.Fatalf("args[21] = %v, want %q", got, CostSourceModelPricing) } - if got := args[22]; got != "usage-2" { - t.Fatalf("args[22] = %v, want usage-2", got) + if got := args[23]; got != "usage-2" { + t.Fatalf("args[23] = %v, want usage-2", got) } - if got := args[9]; got != CacheTypeExact { - t.Fatalf("args[9] = %v, want %q", got, CacheTypeExact) + if got := args[9]; got != "session-1" { + t.Fatalf("args[9] = %v, want session-1", got) } - if got := args[10]; got != `["alpha","prod"]` { - t.Fatalf("args[10] = %v, want labels JSON", got) + if got := args[10]; got != CacheTypeExact { + t.Fatalf("args[10] = %v, want %q", got, CacheTypeExact) } - if got := args[14]; got != 42 { - t.Fatalf("args[14] = %v, want 42 rewrite_tokens_saved", got) + if got := args[11]; got != `["alpha","prod"]` { + t.Fatalf("args[11] = %v, want labels JSON", got) } - if got := args[15]; got != &rewriteCostSaved { - t.Fatalf("args[15] = %v, want rewrite_cost_saved pointer", got) + if got := args[15]; got != 42 { + t.Fatalf("args[15] = %v, want 42 rewrite_tokens_saved", got) } - if got := string(args[16].([]byte)); got != `{"cached_tokens":3}` { - t.Fatalf("args[16] = %q, want %q", got, `{"cached_tokens":3}`) + if got := args[16]; got != &rewriteCostSaved { + t.Fatalf("args[16] = %v, want rewrite_cost_saved pointer", got) } - if got := args[31]; got != nil { - t.Fatalf("args[31] = %v, want nil cache_type", got) + if got := string(args[17].([]byte)); got != `{"cached_tokens":3}` { + t.Fatalf("args[17] = %q, want %q", got, `{"cached_tokens":3}`) } - if got := args[32]; got != nil { - t.Fatalf("args[32] = %v, want nil labels", got) + if got := args[33]; got != nil { + t.Fatalf("args[33] = %v, want nil cache_type", got) } - if got := args[36]; got != 0 { - t.Fatalf("args[36] = %v, want 0 rewrite_tokens_saved", got) + if got := args[34]; got != nil { + t.Fatalf("args[34] = %v, want nil labels", got) } - if got := args[37].(*float64); got != nil { - t.Fatalf("args[37] = %v, want nil rewrite_cost_saved", got) + if got := args[38]; got != 0 { + t.Fatalf("args[38] = %v, want 0 rewrite_tokens_saved", got) } - rawData, ok := args[38].([]byte) + if got := args[39].(*float64); got != nil { + t.Fatalf("args[39] = %v, want nil rewrite_cost_saved", got) + } + rawData, ok := args[40].([]byte) if !ok { - t.Fatalf("args[38] has type %T, want []byte", args[38]) + t.Fatalf("args[40] has type %T, want []byte", args[40]) } if rawData != nil { - t.Fatalf("args[38] = %v, want nil raw_data", rawData) + t.Fatalf("args[40] = %v, want nil raw_data", rawData) } } diff --git a/internal/usage/store_sqlite.go b/internal/usage/store_sqlite.go index 051a400ac..25d4a6cbb 100644 --- a/internal/usage/store_sqlite.go +++ b/internal/usage/store_sqlite.go @@ -19,8 +19,8 @@ import ( // maxEntriesPerBatch derives from maxSQLiteParams / columnsPerUsageEntry. const ( maxSQLiteParams = 999 - columnsPerUsageEntry = 22 - maxEntriesPerBatch = maxSQLiteParams / columnsPerUsageEntry // 45 entries + columnsPerUsageEntry = 23 + maxEntriesPerBatch = maxSQLiteParams / columnsPerUsageEntry // 43 entries ) // SQLiteStore implements UsageStore for SQLite databases. @@ -52,6 +52,7 @@ func NewSQLiteStore(db *sql.DB, retentionDays int) (*SQLiteStore, error) { provider_name TEXT, endpoint TEXT NOT NULL, user_path TEXT, + session_id TEXT, cache_type TEXT, input_tokens INTEGER NOT NULL DEFAULT 0, output_tokens INTEGER NOT NULL DEFAULT 0, @@ -74,6 +75,7 @@ func NewSQLiteStore(db *sql.DB, retentionDays int) (*SQLiteStore, error) { "ALTER TABLE usage ADD COLUMN costs_calculation_caveat TEXT DEFAULT ''", "ALTER TABLE usage ADD COLUMN provider_name TEXT", "ALTER TABLE usage ADD COLUMN user_path TEXT", + "ALTER TABLE usage ADD COLUMN session_id TEXT", "ALTER TABLE usage ADD COLUMN cache_type TEXT", "ALTER TABLE usage ADD COLUMN labels JSON", "ALTER TABLE usage ADD COLUMN rewrite_tokens_saved INTEGER NOT NULL DEFAULT 0", @@ -98,6 +100,7 @@ func NewSQLiteStore(db *sql.DB, retentionDays int) (*SQLiteStore, error) { "CREATE INDEX IF NOT EXISTS idx_usage_provider ON usage(provider)", "CREATE INDEX IF NOT EXISTS idx_usage_provider_name ON usage(provider_name)", "CREATE INDEX IF NOT EXISTS idx_usage_user_path ON usage(user_path)", + "CREATE INDEX IF NOT EXISTS idx_usage_session_id ON usage(session_id)", "CREATE INDEX IF NOT EXISTS idx_usage_user_path_normalized ON usage(COALESCE(NULLIF(TRIM(user_path), ''), '/'))", "CREATE INDEX IF NOT EXISTS idx_usage_cache_type ON usage(cache_type)", } @@ -140,7 +143,7 @@ func (s *SQLiteStore) WriteBatch(ctx context.Context, entries []*UsageEntry) err for j, e := range chunk { e = normalizedUsageEntryForStorage(e) - placeholders[j] = "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" + placeholders[j] = "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" rawDataJSON := marshalRawData(e.RawData, e.ID) @@ -160,6 +163,7 @@ func (s *SQLiteStore) WriteBatch(ctx context.Context, entries []*UsageEntry) err e.ProviderName, e.Endpoint, e.UserPath, + e.SessionID, cacheTypeValue(e.CacheType), sqlutil.NullableJSONStrings(e.Labels, e.ID), e.InputTokens, @@ -177,7 +181,7 @@ func (s *SQLiteStore) WriteBatch(ctx context.Context, entries []*UsageEntry) err } query := `INSERT OR IGNORE INTO usage (id, request_id, provider_id, timestamp, model, provider, provider_name, - endpoint, user_path, cache_type, labels, input_tokens, output_tokens, total_tokens, rewrite_tokens_saved, rewrite_cost_saved, raw_data, + endpoint, user_path, session_id, cache_type, labels, input_tokens, output_tokens, total_tokens, rewrite_tokens_saved, rewrite_cost_saved, raw_data, input_cost, output_cost, total_cost, cost_source, costs_calculation_caveat) VALUES ` + strings.Join(placeholders, ",") diff --git a/internal/usage/stream_observer.go b/internal/usage/stream_observer.go index 9cb64599f..c8d8db110 100644 --- a/internal/usage/stream_observer.go +++ b/internal/usage/stream_observer.go @@ -19,6 +19,7 @@ type StreamUsageObserver struct { requestID string endpoint string userPath string + sessionID string labels []string rewriteSaved int closed bool @@ -57,6 +58,14 @@ func (o *StreamUsageObserver) SetProviderName(providerName string) { o.providerName = strings.TrimSpace(providerName) } +// SetSessionID attaches the detected, user-path-scoped client session. +func (o *StreamUsageObserver) SetSessionID(sessionID string) { + if o == nil { + return + } + o.sessionID = strings.TrimSpace(sessionID) +} + // SetLabels attaches the request labels extracted from tagging headers. func (o *StreamUsageObserver) SetLabels(labels []string) { if o == nil { @@ -186,6 +195,7 @@ func (o *StreamUsageObserver) extractUsageFromEvent(chunk map[string]any) *Usage if entry != nil { entry.ProviderName = o.providerName entry.UserPath = o.userPath + entry.SessionID = o.sessionID entry.Labels = o.labels var pricing *core.ModelPricing if len(pricingArgs) > 0 { diff --git a/internal/usage/stream_observer_test.go b/internal/usage/stream_observer_test.go index 5aa26aa8b..d3f006f87 100644 --- a/internal/usage/stream_observer_test.go +++ b/internal/usage/stream_observer_test.go @@ -284,6 +284,7 @@ data: [DONE] func TestStreamUsageObserverIncludesUserPath(t *testing.T) { logger := &trackingLogger{enabled: true} observer := NewStreamUsageObserver(logger, "gpt-4", "openai", "req-123", "/v1/chat/completions", nil, "/team/alpha") + observer.SetSessionID(" scoped-session ") observer.OnJSONEvent(map[string]any{ "id": "chatcmpl-123", "usage": map[string]any{ @@ -301,6 +302,9 @@ func TestStreamUsageObserverIncludesUserPath(t *testing.T) { if got := entries[0].UserPath; got != "/team/alpha" { t.Fatalf("UserPath = %q, want /team/alpha", got) } + if got := entries[0].SessionID; got != "scoped-session" { + t.Fatalf("SessionID = %q, want scoped-session", got) + } } func TestStreamUsageObserverNoUserPath(t *testing.T) { diff --git a/internal/usage/usage.go b/internal/usage/usage.go index b5e87bd92..33dc84596 100644 --- a/internal/usage/usage.go +++ b/internal/usage/usage.go @@ -54,6 +54,7 @@ type UsageEntry struct { ProviderName string `json:"provider_name,omitempty" bson:"provider_name,omitempty"` Endpoint string `json:"endpoint" bson:"endpoint"` UserPath string `json:"user_path,omitempty" bson:"user_path,omitempty"` + SessionID string `json:"session_id,omitempty" bson:"session_id,omitempty"` CacheType string `json:"cache_type,omitempty" bson:"cache_type,omitempty"` // Labels are request labels extracted from configured tagging headers. diff --git a/web/dashboard/src/pages/audit-logs/AuditEntryMetadata.svelte b/web/dashboard/src/pages/audit-logs/AuditEntryMetadata.svelte index c740e46fa..9a5dc7738 100644 --- a/web/dashboard/src/pages/audit-logs/AuditEntryMetadata.svelte +++ b/web/dashboard/src/pages/audit-logs/AuditEntryMetadata.svelte @@ -2,6 +2,7 @@ // Metadata badge strip under an expanded audit entry. import { providerDisplayValue, qualifiedResolvedModelDisplay } from "$lib/utils/format.js"; import { workflowFailoverTarget } from "./audit-logic.js"; + import { usagePage } from "../usage/usage.svelte.js"; let { entry } = $props(); @@ -12,6 +13,7 @@ { key: "provider", text: providerDisplayValue(entry) || "-" }, { key: "model", text: entry.requested_model || entry.model || "-", mono: true }, { key: "user_path", text: entry.user_path, mono: true }, + { key: "session_id", text: entry.session_id && "session: " + entry.session_id, mono: true }, { key: "request_id", text: "request_id: " + (entry.request_id || "-"), mono: true }, { key: "ip", text: entry.client_ip && "ip: " + entry.client_ip, mono: true }, { @@ -43,9 +45,18 @@
            {#each badges as badge (badge.key)} - {badge.text} + {#if badge.key === "session_id"} + + {:else} + {badge.text} + {/if} {/each}
            @@ -82,6 +93,18 @@ color: var(--accent-strong, var(--accent)); } + .audit-session-usage-link { + background: color-mix(in srgb, var(--accent) 12%, var(--bg)); + border-color: color-mix(in srgb, var(--accent) 35%, var(--border)); + color: var(--accent-strong, var(--accent)); + cursor: pointer; + } + + .audit-session-usage-link:hover { + background: color-mix(in srgb, var(--accent) 22%, var(--bg)); + border-color: var(--accent); + } + @media (max-width: 768px) { .audit-entry-metadata { flex-direction: column; diff --git a/web/dashboard/src/pages/audit-logs/AuditEntrySummary.svelte b/web/dashboard/src/pages/audit-logs/AuditEntrySummary.svelte index 214475584..3fa0cb0c7 100644 --- a/web/dashboard/src/pages/audit-logs/AuditEntrySummary.svelte +++ b/web/dashboard/src/pages/audit-logs/AuditEntrySummary.svelte @@ -11,10 +11,10 @@ formatDurationNs, statusCodeClass, } from "./audit-logic.js"; - import { ChevronDown, ChevronLeft, ChevronRight } from "lucide"; + import { ChartNoAxesColumnIncreasing, ChevronDown, ChevronLeft, ChevronRight } from "lucide"; // `thread` marks a session-thread head row (grouped mode): - // { count, expanded, ontoggle }. `expanded`/`onactivate` wire the + // { count, expanded, ontoggle, onusage }. `expanded`/`onactivate` wire the // Svelte-controlled row expansion: the click is intercepted (the parent //
            stays open so the close can animate) and the state lives in // auditList. @@ -49,6 +49,12 @@ thread.ontoggle(); } + function openThreadUsage(event) { + event.stopPropagation(); + event.preventDefault(); + thread.onusage?.(); + } + function openConversation(event) { event.stopPropagation(); event.preventDefault(); @@ -88,6 +94,15 @@ /> {thread.count} + {/if} auditList.toggleThread(entry), + onusage: () => usagePage.filterBySession(sessionId), }} /> {#if expanded} diff --git a/web/dashboard/src/pages/audit-logs/live-logs-logic.js b/web/dashboard/src/pages/audit-logs/live-logs-logic.js index 3a3845eb0..4e3439625 100644 --- a/web/dashboard/src/pages/audit-logs/live-logs-logic.js +++ b/web/dashboard/src/pages/audit-logs/live-logs-logic.js @@ -9,7 +9,7 @@ // - insert-gate fields: auditSearch, auditMethod, auditStatusCode, // auditStream, customStartDate, customEndDate, usageLogSearch, // usageFilterModel, usageFilterProvider, usageFilterLabel, -// usageFilterUserPath, usageLogHideCached, page +// usageFilterUserPath, usageFilterSession, usageLogHideCached, page // - optional cross-module hooks (guarded with typeof): // fetchUsage, fetchAuditLog, isAuditEntryExpanded, cacheAuditRecord, // noteLiveTokenUsage, fetchAuditEntryDetail @@ -120,7 +120,7 @@ export function liveLogsMethods() { usageLiveInsertAllowed() { return this.usageLog && this.usageLog.offset === 0 && !this.usageLogSearch && !this.usageFilterModel && !this.usageFilterProvider && - !this.usageFilterLabel && !this.usageFilterUserPath; + !this.usageFilterLabel && !this.usageFilterUserPath && !this.usageFilterSession; }, mergeLiveAuditEntry(incoming, eventType) { diff --git a/web/dashboard/src/pages/audit-logs/liveLogs.svelte.js b/web/dashboard/src/pages/audit-logs/liveLogs.svelte.js index 9c762e50f..f3b632500 100644 --- a/web/dashboard/src/pages/audit-logs/liveLogs.svelte.js +++ b/web/dashboard/src/pages/audit-logs/liveLogs.svelte.js @@ -71,6 +71,7 @@ class LiveLogsStore { usageFilterProvider = $state(""); usageFilterLabel = $state(""); usageFilterUserPath = $state(""); + usageFilterSession = $state(""); usageLogHideCached = $state(false); // True while the stream body is being consumed; drives the audit page's diff --git a/web/dashboard/src/pages/usage/FacetFilters.svelte b/web/dashboard/src/pages/usage/FacetFilters.svelte index 4d60c6aba..a03cf0363 100644 --- a/web/dashboard/src/pages/usage/FacetFilters.svelte +++ b/web/dashboard/src/pages/usage/FacetFilters.svelte @@ -4,9 +4,14 @@ import FilterInput from "$lib/components/molecules/FilterInput.svelte"; import { debounced } from "$lib/utils/debounce.js"; import { usagePage } from "./usage.svelte.js"; + import { shortSessionID } from "./usage-helpers.js"; const onUserPathInput = debounced(() => usagePage.onUsageFilterChanged()); - $effect(() => onUserPathInput.cancel); + const onSessionInput = debounced(() => usagePage.onUsageFilterChanged()); + $effect(() => () => { + onUserPathInput.cancel(); + onSessionInput.cancel(); + });
            @@ -52,6 +57,24 @@ bind:value={usagePage.usageFilterUserPath} oninput={onUserPathInput} /> + + {#if usagePage.usageFilterSession} + + {/if}
            diff --git a/web/dashboard/src/pages/usage/UsageBreakdownChart.svelte b/web/dashboard/src/pages/usage/UsageBreakdownChart.svelte index 80ca4db4f..795ef8065 100644 --- a/web/dashboard/src/pages/usage/UsageBreakdownChart.svelte +++ b/web/dashboard/src/pages/usage/UsageBreakdownChart.svelte @@ -1,8 +1,9 @@ {#snippet viewToggle()} @@ -148,10 +169,10 @@ {/snippet} {#if visible} -
            +
            - {#if kind === "label"} - + {#if kind === "label" || kind === "session"} + {#snippet title()}

            {heading}

            {/snippet} {#snippet extra()} {#if loading}{/if} @@ -177,14 +198,20 @@ Provider {:else if kind === "userPath"} User Path - {:else} + {:else if kind === "label"} Label Requests + {:else} + Session ID + User Path + Requests {/if} Input Tokens Output Tokens - Prompt Cached - Local Cached + {#if kind !== "session"} + Prompt Cached + Local Cached + {/if} Total Tokens Input Cost Output Cost @@ -199,7 +226,7 @@ {providerDisplayValue(row) || "-"} {:else if kind === "userPath"} {row.user_path || "/"} - {:else} + {:else if kind === "label"} {formatNumber(row.requests)} + {:else} + + usagePage.filterBySession(sessionID)} + /> + + {row.user_path || "/"} + {formatNumber(row.requests)} {/if} {formatNumber(row.input_tokens)} {formatNumber(row.output_tokens)} - {formatNumber(row.cached_input_tokens || 0)} - {formatNumber( - (row.local_cached_input_tokens || 0) + (row.local_cached_output_tokens || 0), - )} + {#if kind !== "session"} + {formatNumber(row.cached_input_tokens || 0)} + {formatNumber( + (row.local_cached_input_tokens || 0) + (row.local_cached_output_tokens || 0), + )} + {/if} {formatNumber(usageRowTotalTokens(row))} {formatCost(row.input_cost)} {formatCost(row.output_cost)} @@ -239,6 +278,15 @@
            {/if} + {#if kind === "session"} + usagePage.sessionUsagePrevPage()} + onnext={() => usagePage.sessionUsageNextPage()} + /> + {/if}
            {:else if loading} @@ -309,4 +357,5 @@ .usage-chart-data-table :global(th), .usage-chart-data-table :global(td) { white-space: nowrap; } + diff --git a/web/dashboard/src/pages/usage/UsageLog.svelte b/web/dashboard/src/pages/usage/UsageLog.svelte index fa8384856..601ed45e9 100644 --- a/web/dashboard/src/pages/usage/UsageLog.svelte +++ b/web/dashboard/src/pages/usage/UsageLog.svelte @@ -15,6 +15,7 @@ providerDisplayValue, } from "$lib/utils/format.js"; import { usagePage } from "./usage.svelte.js"; + import SessionIDChip from "./SessionIDChip.svelte"; import { cachedCostTitle, costSourceTooltip, @@ -68,8 +69,8 @@
            + +
            + +
            +
            @@ -95,6 +100,15 @@ margin-bottom: 0; } + .usage-session-breakdown-wrap { + margin-bottom: 24px; + } + + .usage-session-breakdown-wrap :global(.session-usage-breakdown) { + width: 100%; + margin-bottom: 0; + } + @media (max-width: 520px) { .usage-charts-grid :global(.model-chart-section) { min-width: 0; diff --git a/web/dashboard/src/pages/usage/usage-helpers.js b/web/dashboard/src/pages/usage/usage-helpers.js index 44792e0fc..ff1513599 100644 --- a/web/dashboard/src/pages/usage/usage-helpers.js +++ b/web/dashboard/src/pages/usage/usage-helpers.js @@ -26,6 +26,16 @@ export function emptyUsageLog() { return { entries: [], total: 0, limit: 50, offset: 0 }; } +export function emptySessionUsage() { + return { entries: [], total: 0, limit: 50, offset: 0 }; +} + +export function shortSessionID(value) { + const sessionID = String(value || "").trim(); + if (sessionID.length <= 26) return sessionID || "-"; + return sessionID.slice(0, 15) + "…" + sessionID.slice(-8); +} + // --- Query building --- // Page-level data filters, applied to every usage-page request so charts, @@ -38,6 +48,7 @@ export function usageFilterQueryStr(filters, excludeFacet) { ["provider", filters && filters.provider], ["label", filters && filters.label], ["user_path", filters && filters.user_path], + ["session_id", filters && filters.session_id], ]; let qs = ""; for (const [facet, value] of pairs) { @@ -55,6 +66,10 @@ export function usageLogQueryParams({ limit, offset, hideCached, search }) { return qs; } +export function sessionUsageQueryParams({ limit, offset }) { + return "&limit=" + limit + "&offset=" + offset; +} + // Sorted, deduplicated choices for one facet dropdown. The active selection // stays listed so the select never silently shows "All" while a filter is // applied. diff --git a/web/dashboard/src/pages/usage/usage.svelte.js b/web/dashboard/src/pages/usage/usage.svelte.js index 7a178309b..f6be9468f 100644 --- a/web/dashboard/src/pages/usage/usage.svelte.js +++ b/web/dashboard/src/pages/usage/usage.svelte.js @@ -1,5 +1,5 @@ // Usage page state: page-level facet filters, filtered summaries backing the -// stat cards, per-model / per-user-path / per-label breakdowns, and the +// stat cards, per-model / per-user-path / per-label / per-session breakdowns, and the // request log. The shared window comes from the dateRange store and the // shared cache overview lives in usageData (this page passes its filter // query through fetchCacheOverview). @@ -14,7 +14,9 @@ import { liveLogs } from "../audit-logs/liveLogs.svelte.js"; import { emptyUsageLog, emptyUsagePageSummary, + emptySessionUsage, facetOptionList, + sessionUsageQueryParams, usageFilterQueryStr, usageLogQueryParams, } from "./usage-helpers.js"; @@ -50,6 +52,12 @@ class UsagePageState { set usageFilterUserPath(value) { liveLogs.usageFilterUserPath = value; } + get usageFilterSession() { + return liveLogs.usageFilterSession; + } + set usageFilterSession(value) { + liveLogs.usageFilterSession = value; + } usageFacetOptions = $state({ models: [], providers: [], labels: [] }); // Filtered summaries backing the stat cards, fetched in both cache modes: @@ -62,6 +70,7 @@ class UsagePageState { modelUsage = $state([]); userPathUsage = $state([]); labelUsage = $state([]); + sessionUsage = $state(emptySessionUsage()); // The request log is backed by liveLogs.usageLog — the live-merge source of // truth. Fetched pages are written into it and usage.* stream events merge @@ -88,11 +97,13 @@ class UsagePageState { modelUsageView = $state("chart"); userPathUsageView = $state("chart"); labelUsageView = $state("chart"); + sessionUsageView = $state("table"); summaryLoading = $state(false); modelUsageLoading = $state(false); userPathUsageLoading = $state(false); labelUsageLoading = $state(false); + sessionUsageLoading = $state(false); usageLogLoading = $state(false); #controllers = {}; @@ -117,6 +128,7 @@ class UsagePageState { provider: this.usageFilterProvider, label: this.usageFilterLabel, user_path: this.usageFilterUserPath, + session_id: this.usageFilterSession, }, excludeFacet, ); @@ -133,6 +145,22 @@ class UsagePageState { this.onUsageFilterChanged(); } + filterBySession(sessionID) { + this.usageFilterModel = ""; + this.usageFilterProvider = ""; + this.usageFilterLabel = ""; + this.usageFilterUserPath = ""; + this.usageFilterSession = String(sessionID || "").trim(); + this.usageLogSearch = ""; + this.usageLog.offset = 0; + this.sessionUsage.offset = 0; + if (router.page === "usage") { + this.fetchUsagePage(); + return; + } + router.navigate("usage"); + } + usageLabelChipTitle(label) { if (this.usageFilterLabel === label) return "Clear label filter"; return 'Filter usage by "' + label + '"'; @@ -147,6 +175,7 @@ class UsagePageState { if (target === "model") this.modelUsageView = view; if (target === "userPath") this.userPathUsageView = view; if (target === "label") this.labelUsageView = view; + if (target === "session") this.sessionUsageView = view; } usageFilterModelOptions() { @@ -170,6 +199,7 @@ class UsagePageState { this.fetchModelUsage(), this.fetchUserPathUsage(), this.fetchLabelUsage(), + this.fetchSessionUsage(true), this.fetchUsageLog(true), ]; if (usageData.cacheAnalyticsEnabled()) { @@ -322,6 +352,47 @@ class UsagePageState { ); } + async fetchSessionUsage(resetOffset) { + const controller = this.#startRequest("sessionUsage"); + this.sessionUsageLoading = true; + try { + if (resetOffset) this.sessionUsage.offset = 0; + let qs = dateRange.queryStr() + this.filterQueryStr(); + qs += sessionUsageQueryParams(this.sessionUsage); + const result = await getJSON("/admin/usage/sessions?" + qs, { + label: "usage sessions", + signal: controller.signal, + }); + if (result.stale || controller.signal.aborted) return; + if (!result.ok || !result.data || typeof result.data !== "object") { + this.sessionUsage = emptySessionUsage(); + return; + } + const payload = result.data; + payload.entries = Array.isArray(payload.entries) ? payload.entries : []; + this.sessionUsage = payload; + } catch (e) { + if (isAbortError(e)) return; + console.error("Failed to fetch usage sessions:", e); + this.sessionUsage = emptySessionUsage(); + } finally { + this.#clearRequest("sessionUsage", controller); + if (this.#controllers["sessionUsage"] === null) this.sessionUsageLoading = false; + } + } + + sessionUsageNextPage() { + if (this.sessionUsage.offset + this.sessionUsage.limit >= this.sessionUsage.total) return; + this.sessionUsage.offset += this.sessionUsage.limit; + this.fetchSessionUsage(false); + } + + sessionUsagePrevPage() { + if (this.sessionUsage.offset <= 0) return; + this.sessionUsage.offset = Math.max(0, this.sessionUsage.offset - this.sessionUsage.limit); + this.fetchSessionUsage(false); + } + async fetchUsageLog(resetOffset) { const controller = this.#startRequest("usageLog"); this.usageLogLoading = true; diff --git a/web/dashboard/tests/live-logs.test.js b/web/dashboard/tests/live-logs.test.js index d58237271..3bee4048f 100644 --- a/web/dashboard/tests/live-logs.test.js +++ b/web/dashboard/tests/live-logs.test.js @@ -29,6 +29,7 @@ function createLiveLogsApp(overrides = {}) { usageFilterProvider: "", usageFilterLabel: "", usageFilterUserPath: "", + usageFilterSession: "", usageLogHideCached: false, auditGroupSessions: false, auditThreadChildren: {}, @@ -427,6 +428,19 @@ test("live usage event updates usage log and enriches matching audit row", () => assert.equal(app.auditLog.entries[0]._usage_flushed, true); }); +test("active session filtering pauses unscoped live usage inserts", () => { + const app = createLiveLogsApp({ usageFilterSession: "scoped-session" }); + + app.applyLiveLogEvent({ + seq: 1, + type: "usage.completed", + data: { id: "usage-1", request_id: "req-1", session_id: "scoped-session" }, + }); + + assert.equal(app.usageLog.entries.length, 0); + assert.equal(app.liveLogsLastSeq, 1); +}); + test("usage events forward the type to the live-token hook", () => { const app = createLiveLogsApp(); const noted = []; diff --git a/web/dashboard/tests/usage.test.js b/web/dashboard/tests/usage.test.js index 3ae38c44a..4ef074139 100644 --- a/web/dashboard/tests/usage.test.js +++ b/web/dashboard/tests/usage.test.js @@ -10,6 +10,7 @@ import { chartWrapHeight, costSourceTooltip, divergingDataFrom, + emptySessionUsage, emptyUsagePageSummary, facetOptionList, hasProviderCache, @@ -24,6 +25,8 @@ import { rewriteSavingsVisible, rewriteTokenEstimateMethodText, rewriteTokensSaved, + sessionUsageQueryParams, + shortSessionID, usageEntryCached, usageEntryCacheLabel, usageFilterQueryStr, @@ -46,6 +49,16 @@ test("usesResponseCostPricing detects provider-reported costs", () => { assert.equal(usesResponseCostPricing({}), false); }); +test("session usage helpers shape bounded pages and compact long ids", () => { + assert.deepEqual(emptySessionUsage(), { entries: [], total: 0, limit: 50, offset: 0 }); + assert.equal(sessionUsageQueryParams({ limit: 50, offset: 100 }), "&limit=50&offset=100"); + assert.equal(shortSessionID("short-session"), "short-session"); + assert.equal( + shortSessionID("scoped-0123456789abcdef0123456789abcdef"), + "scoped-01234567…89abcdef", + ); +}); + test("costSourceTooltip explains provider-reported costs", () => { assert.equal( costSourceTooltip({ cost_source: "openrouter_credits" }), @@ -116,12 +129,13 @@ test("usageFilterQueryStr includes every active filter, URL-encoded", () => { provider: "openai", label: "env:prod", user_path: "/team", + session_id: "session/a", }); - assert.equal(qs, "&model=gpt-5&provider=openai&label=env%3Aprod&user_path=%2Fteam"); + assert.equal(qs, "&model=gpt-5&provider=openai&label=env%3Aprod&user_path=%2Fteam&session_id=session%2Fa"); }); test("usageFilterQueryStr skips empty filters", () => { - assert.equal(usageFilterQueryStr({ model: "", provider: "", label: "", user_path: "" }), ""); + assert.equal(usageFilterQueryStr({ model: "", provider: "", label: "", user_path: "", session_id: "" }), ""); assert.equal(usageFilterQueryStr({ label: "team alpha" }), "&label=team%20alpha"); }); @@ -131,6 +145,7 @@ test("usageFilterQueryStr honors every filter except the excluded facet", () => provider: "openai", label: "env:prod", user_path: "/team", + session_id: "session-a", }; const withoutModel = usageFilterQueryStr(filters, "model"); assert.doesNotMatch(withoutModel, /model=/); From b2d40d8248c8fdc027aec7162738603ec4841c3b Mon Sep 17 00:00:00 2001 From: "Jakub A. W" Date: Sat, 15 Aug 2026 19:25:23 +0200 Subject: [PATCH 2/7] fix(dashboard): show session usage action for singleton audits --- ...{index-FlLxWT6d.css => index-BvA7IwHw.css} | 2 +- .../{index-C9mw5A5Z.js => index-CYbzNV3I.js} | 6 +++--- .../admin/dashboard/static/dist/index.html | 4 ++-- .../src/pages/audit-logs/AuditEntryRow.svelte | 12 ++++++++++- .../pages/audit-logs/AuditEntrySummary.svelte | 21 +++++++++++-------- .../pages/audit-logs/AuditThreadGroup.svelte | 2 -- 6 files changed, 29 insertions(+), 18 deletions(-) rename internal/admin/dashboard/static/dist/assets/{index-FlLxWT6d.css => index-BvA7IwHw.css} (76%) rename internal/admin/dashboard/static/dist/assets/{index-C9mw5A5Z.js => index-CYbzNV3I.js} (93%) diff --git a/internal/admin/dashboard/static/dist/assets/index-FlLxWT6d.css b/internal/admin/dashboard/static/dist/assets/index-BvA7IwHw.css similarity index 76% rename from internal/admin/dashboard/static/dist/assets/index-FlLxWT6d.css rename to internal/admin/dashboard/static/dist/assets/index-BvA7IwHw.css index 1906d7720..bb733fbb5 100644 --- a/internal/admin/dashboard/static/dist/assets/index-FlLxWT6d.css +++ b/internal/admin/dashboard/static/dist/assets/index-BvA7IwHw.css @@ -1 +1 @@ -:root{--bg:#111110;--bg-surface:#1e1d1c;--bg-surface-hover:#2a2420;--border:#2a2826;--text:#e8e0d6;--text-muted:#9a918a;--accent:#b8956e;--accent-hover:#d4b896;--success:#34d399;--info:#3b82f6;--warning:#f59e0b;--danger:#ef4444;--prompt-cache-color:color-mix(in srgb, var(--info) 72%, #fff);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 24%, var(--bg-surface));--cache-meter-uncached:var(--token-input);--cache-meter-local:var(--token-local);--cache-meter-prompt:var(--token-prompt);--token-input:#c0824a;--token-output:#ddb27a;--token-prompt:color-mix(in srgb, var(--info) 60%, transparent);--token-local:color-mix(in srgb, var(--info) 20%, transparent);--sidebar-width:240px;--radius:8px;--chart-grid:#2a2826;--chart-text:#9a918a;--chart-day-marker:var(--text);--chart-tooltip-bg:#1e1d1c;--chart-tooltip-border:#2a2826;--chart-tooltip-text:#e8e0d6;--cal-level-0:#161b22;--cal-level-1:color-mix(in srgb, var(--info) 15%, var(--bg-surface));--cal-level-2:color-mix(in srgb, var(--info) 25%, var(--bg-surface));--cal-level-3:color-mix(in srgb, var(--info) 36%, var(--bg-surface));--cal-level-4:color-mix(in srgb, var(--info) 48%, var(--bg-surface));--cal-level-5:color-mix(in srgb, var(--info) 60%, var(--bg-surface));--cal-level-6:color-mix(in srgb, var(--info) 73%, var(--bg-surface));--cal-level-7:color-mix(in srgb, var(--info) 87%, var(--bg-surface));--cal-level-8:var(--info);--cal-level-9:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-10:color-mix(in srgb, var(--info) 62%, #fff);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface-hover) 86%, #fff 14%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface-hover) 72%, #fff 28%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}body.dashboard-modal-open{overflow:hidden}.app{height:100vh;min-height:0;display:flex;overflow:hidden}.badge{background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.auth-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:min(440px,100%);padding:22px;box-shadow:0 24px 70px #00000061}.auth-dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.auth-dialog h2{margin-top:2px;font-size:22px;line-height:1.2}.auth-dialog-close{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.auth-dialog-close:hover{color:var(--text);background:var(--bg-surface-hover)}.auth-dialog-close:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-hint{color:var(--text-muted);font-size:13px}.auth-dialog-error{color:var(--danger);font-size:13px;font-weight:600}.auth-dialog-form{gap:10px;margin-top:18px;display:grid}.auth-dialog-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.content{-webkit-overflow-scrolling:touch;flex:1 1 0;width:100%;min-width:0;min-height:0;padding:32px;transition:width .2s;overflow-y:auto;container:dashboard-content/inline-size}.content>*{width:100%;max-width:1336px;margin-inline:auto}body.dashboard-modal-open .content{overflow-y:hidden}.content.interactions-open>*{max-width:none}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h2{letter-spacing:-.3px;font-size:22px;font-weight:700}.page-header-controls{align-items:center;gap:12px;display:flex}.page-with-sticky-date{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:12px;display:grid}.page-with-sticky-date>*{grid-column:1/-1}.page-with-sticky-date>.date-range-page-header{grid-column:1}.page-with-sticky-date>.sticky-date-range{z-index:8;grid-column:2;justify-self:end;position:sticky;top:16px}.model-count{color:var(--text-muted);font-size:14px}.provider-status-section{margin-top:28px;scroll-margin-top:24px}.cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px;display:grid}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:600}.card-value{letter-spacing:-.5px;font-size:28px;font-weight:700}.cache-meter{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:28px;padding:24px}.chart-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.chart-container h3{margin-bottom:16px;font-size:16px;font-weight:600}.chart-container-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.chart-container-header h3{margin-bottom:0}.chart-wrapper{height:210px;position:relative}.live-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.live-dot.is-streaming{background:var(--success);position:relative}.live-dot.is-streaming:after{content:"";z-index:-1;background:color-mix(in srgb, var(--success) 55%, transparent);border-radius:50%;animation:1.8s ease-out infinite live-dot-pulse;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.live-dot.is-streaming:after{opacity:0;animation:none}}@keyframes live-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(2.5)}to{opacity:0;transform:scale(2.5)}}.alert{border-radius:var(--radius);margin-bottom:20px;padding:12px 16px;font-size:14px}.alert-warning{color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b4d}.table-toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.table-toolbar-main{flex:1;min-width:0}.table-toolbar-actions{justify-content:flex-end;margin-left:auto;display:flex}input:is([type=text],[type=date],[type=number]){background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:8px 12px;font-family:inherit;font-size:13px}input:is([type=text],[type=date],[type=number]):focus{border-color:var(--accent)}input:is([type=text],[type=date],[type=number]):disabled,textarea:disabled,.form-input:disabled{opacity:.6;cursor:not-allowed}.table-wrapper{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;font-weight:600}.data-table th.model-actions-header{text-align:right;white-space:nowrap;width:1%;min-width:156px}.data-table td{border-bottom:1px solid var(--border);padding:10px 16px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-surface-hover)}.mono{font-family:SF Mono,Menlo,Consolas,monospace}.font-size-md{font-size:13px}.col-price,.data-table th.col-price{text-align:right}td.col-price{color:var(--text-muted);white-space:nowrap;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.provider-badge{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.empty-state{text-align:center;color:var(--text-muted);padding:48px 0;font-size:14px}.empty-state-icon{width:auto;height:auto;max-height:160px;color:var(--text-muted);margin:0 auto;display:block}.empty-state-icon text{fill:var(--text-muted);font-family:inherit;font-weight:600}.chart-empty-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chart-empty-overlay .empty-state-icon{width:auto;max-width:90%;height:auto;max-height:195px}.loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.table-action-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.table-action-btn:hover:not(:disabled){background:var(--bg-surface-hover)}.table-action-btn:disabled{opacity:.45;cursor:default}.table-action-btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.table-action-btn-active{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 38%, var(--border))}.table-action-btn-active:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, var(--bg-surface-hover))}.table-action-btn-failover-active{color:var(--info);background:color-mix(in srgb, var(--cache-meter-prompt) 35%, var(--bg));border-color:color-mix(in srgb, var(--info) 45%, var(--border));position:relative}.table-action-btn-failover-active:hover:not(:disabled){background:color-mix(in srgb, var(--cache-meter-prompt) 45%, var(--bg-surface-hover))}.table-icon-btn{border-radius:6px;gap:0;width:32px;min-width:32px;height:32px;padding:0}.table-icon-btn.table-action-btn-active{position:relative}.table-icon-btn.table-action-btn-active:after{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-btn.table-action-btn-failover-active:after{content:"";background:var(--info);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-svg{flex-shrink:0;width:14px;height:14px}.model-editor{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:24px}.alias-kind-badge{border:1px solid var(--border);background:var(--bg);min-height:24px;color:var(--accent);letter-spacing:.2px;text-transform:uppercase;border-color:color-mix(in srgb, var(--accent) 55%, var(--border));border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.form h3{font-size:20px;font-weight:700}.form-kicker,.form-hint{color:var(--text-muted);font-size:13px}.alias-actions-cell{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.model-list-actions{white-space:nowrap;flex-wrap:nowrap}.model-list-actions .table-icon-btn{flex:0 0 32px}.model-list-actions .alias-toggle{flex:none}.alias-toggle{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-family:inherit;font-size:12px;transition:all .15s;display:inline-flex}.alias-toggle:hover:not(:disabled){background:var(--bg-surface-hover)}.alias-toggle:disabled{opacity:.45;cursor:default}.alias-toggle-track{background:color-mix(in srgb, var(--border) 80%, var(--bg));border-radius:6px;width:34px;height:18px;transition:background .15s;position:relative}.alias-toggle-thumb{background:var(--text-muted);border-radius:6px;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:1px;left:2px}.alias-toggle.enabled{border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.alias-toggle.enabled .alias-toggle-track{background:color-mix(in srgb, var(--success) 55%, var(--bg))}.alias-toggle.enabled .alias-toggle-thumb{background:#fff;transform:translate(14px)}.alias-toggle.restricted{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:color-mix(in srgb, var(--accent) 70%, var(--text))}.alias-toggle.restricted .alias-toggle-track{background:color-mix(in srgb, var(--accent) 55%, var(--bg))}.editor-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.form{flex-direction:column;gap:16px;display:flex}.auth-key-editor{background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg) 18%)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-field{flex-direction:column;gap:8px;display:flex}.form-field-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:12px;font-weight:600;display:inline-block}.vm-target-row{align-items:center;gap:8px;display:flex}.vm-target-row .vm-target-model{flex:auto;min-width:0}.vm-target-row .vm-target-weight{flex:0 0 88px;width:88px}.vm-status-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.vm-status-row .vm-status-toggle{margin-left:auto}.form-error{border:1px solid color-mix(in srgb, var(--danger) 42%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface));color:var(--danger);overflow-wrap:anywhere;margin:0;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.4}.form-error:empty{display:none}.form-field-error{color:var(--danger);overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:1.4}.form-field-required{color:var(--danger);margin-left:3px}:is(input,textarea,select)[aria-invalid=true]{border-color:color-mix(in srgb, var(--danger) 60%, var(--border))}:is(input,textarea,select)[aria-invalid=true]:focus{border-color:var(--danger)}textarea{resize:vertical;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:60px;color:var(--text);outline:none;padding:10px 12px;font-family:inherit;font-size:13px}textarea:focus{border-color:var(--accent)}.form-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:38px;color:var(--text);outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.form-input:focus{border-color:var(--accent)}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.failover-target-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.data-table tr.alias-row.is-valid td{background:var(--alias-row-valid-bg)}.data-table tr.alias-row.is-valid:hover td{background:var(--alias-row-valid-bg-hover)}.data-table tr.alias-row:not(.is-valid) td{background:color-mix(in srgb, var(--accent) 10%, var(--bg-surface))}.data-table tr.alias-row:not(.is-valid):hover td{background:color-mix(in srgb, var(--accent) 16%, var(--bg-surface-hover))}.data-table tr.alias-row.is-disabled td{background:var(--bg-surface);opacity:.58}.data-table tr.alias-row.is-disabled:hover td{background:var(--bg-surface-hover);opacity:.72}.data-table tr.model-access-disabled-row td{background:color-mix(in srgb, var(--danger) 6%, var(--bg-surface))}.data-table tr.model-access-disabled-row:hover td{background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface-hover))}.workflow-section-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-section-head h4{font-size:14px;font-weight:700}.workflow-preview{flex-direction:column;gap:12px;display:flex}.workflow-feature-toggles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.workflow-feature-toggle{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.workflow-feature-toggle input{width:16px;height:16px}.model-chart-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;padding:24px}.model-chart-section h3{margin:0;font-size:16px;font-weight:600}.model-chart-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.bar-chart-wrap{width:100%;height:180px;position:relative}.form-select,.usage-log-select{appearance:none;background-color:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px;outline:none;min-width:140px;padding:8px 34px 8px 12px;font-family:inherit;font-size:13px}.form-select:disabled,.usage-log-select:disabled{cursor:not-allowed;opacity:.6}.form-select:focus,.usage-log-select:focus{border-color:var(--accent)}.form-select{width:100%;min-width:0}.usage-label-chips{flex-wrap:wrap;gap:4px;max-width:280px;display:inline-flex}.usage-label-chip{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg));min-height:20px;color:var(--text);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;padding:1px 9px;font-family:inherit;font-size:11px;font-style:normal;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s;display:inline-flex}.usage-label-chip:hover{background:color-mix(in srgb, var(--label-color,var(--accent)) 26%, var(--bg))}.usage-label-chip.active{background:color-mix(in srgb, var(--label-color,var(--accent)) 32%, var(--bg));border-color:var(--label-color,var(--accent));box-shadow:0 0 0 1px color-mix(in srgb, var(--label-color,var(--accent)) 55%, transparent)}@keyframes audit-live-summary-stripe-blink{0%,to{opacity:.9}50%{opacity:.28}}.audit-status-badge{border:1px solid var(--border);letter-spacing:.2px;background:var(--bg-surface);border-radius:999px;justify-content:center;align-items:center;min-width:46px;height:24px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.audit-status-badge.status-success{color:var(--success);border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.audit-status-badge.status-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.audit-status-badge.status-error{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.audit-status-badge.status-neutral{color:var(--text-muted)}.audit-status-badge.status-unknown{color:var(--text-muted);border-color:color-mix(in srgb, var(--border) 75%, transparent)}.audit-pane{border:1px solid var(--border);background:var(--bg);border-top:0;border-radius:0 0 8px 8px;min-width:0;padding:12px}.audit-pane h5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:11px;font-weight:600}.audit-prompt-cache-pill{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);min-height:20px;color:var(--prompt-cache-color);letter-spacing:.02em;text-transform:none;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.audit-prompt-cache-highlight{color:var(--prompt-cache-color);font-weight:700}.audit-audio{white-space:normal;flex-direction:column;gap:8px;display:flex}.audit-audio-player{width:100%;max-width:420px;height:36px}.audit-audio-meta{color:var(--text-muted);font-size:12px}.audit-audio-empty{align-items:flex-start;padding:4px 0}.audit-audio-icon{font-size:20px;line-height:1}.audit-audio-note{color:var(--text-muted);font-size:12px}.audit-audio-metadata{flex-direction:column;gap:2px;margin-top:4px;font-size:12px;display:flex}.audit-audio-meta-row{gap:8px;display:flex}.audit-audio-meta-key{color:var(--text-muted);min-width:120px}.conversation-body-highlight{border-left:2px solid color-mix(in srgb, var(--accent) 70%, var(--border));background:color-mix(in srgb, var(--accent) 10%, transparent);cursor:pointer;line-height:inherit;border-radius:2px;margin:0 0 0 -2px;padding:0 0 0 2px;display:inline}.conversation-body-highlight:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.conversation-body-highlight.conversation-system{border-left-color:color-mix(in srgb, var(--warning) 70%, var(--border));background:color-mix(in srgb, var(--warning) 10%, transparent)}.conversation-body-highlight.conversation-user{border-left-color:color-mix(in srgb, var(--accent) 75%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent)}.conversation-body-highlight.conversation-assistant{border-left-color:color-mix(in srgb, var(--success) 65%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}#interactions-drawer-content{flex:1;min-height:0;overflow-y:auto}.pagination{justify-content:space-between;align-items:center;padding:12px 0 0;display:flex}.btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 16px;font-family:inherit;font-size:13px;transition:all .15s}.btn:hover:not(:disabled){background:var(--bg-surface-hover)}.btn-primary{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 70%, #000 10%);color:#fff;font-weight:600;box-shadow:0 10px 22px #3b82f62e}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 90%, #fff 10%);border-color:color-mix(in srgb, var(--accent) 78%, #000 12%)}.btn-danger-outline{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:0 0;font-weight:600}.btn-danger-outline:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 75%, var(--border))}.btn-danger{color:#fff;border-color:color-mix(in srgb, var(--danger) 76%, #000 12%);background:var(--danger);box-shadow:0 10px 22px color-mix(in srgb, var(--danger) 20%, transparent);font-weight:600}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 90%, #fff 10%);border-color:color-mix(in srgb, var(--danger) 82%, #000 14%)}.btn-with-icon{justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn-with-icon .table-icon-svg{width:16px;height:16px}.btn:disabled{opacity:.4;cursor:default}.settings-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.inline-help-section{flex-direction:column;gap:2px;display:flex}.inline-help-title-row{align-items:center;gap:10px;display:inline-flex}.inline-help-title-row h2,.inline-help-title-row h3{margin-bottom:0}.inline-help-title-row h2:empty,.inline-help-title-row h3:empty{display:none}.inline-help-toggle{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));width:16px;height:16px;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:color .18s,border-color .18s;display:inline-flex;position:relative}.inline-help-toggle:before{content:"";pointer-events:auto;background:0 0;width:32px;height:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.inline-help-toggle:hover{border-color:color-mix(in srgb, var(--accent) 48%, var(--border));color:var(--text);background:0 0}.inline-help-toggle:active{background:0 0}.inline-help-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.inline-help-toggle-icon{justify-content:center;align-items:center;width:100%;height:100%;padding-bottom:1px;font-size:13px;font-weight:700;line-height:1;transition:transform .52s cubic-bezier(.22,.72,.12,1);display:inline-flex;transform:rotate(0)}.inline-help-copy{max-width:780px;color:var(--text-muted);margin-top:2px;font-size:14px}.settings-select{width:100%}.settings-refresh-section{border-top:1px solid var(--border);justify-items:start;gap:12px;margin-top:24px;padding-top:22px;display:grid}.settings-refresh-section h3{font-size:18px}.settings-refresh-section p{max-width:720px;color:var(--text-muted);font-size:14px;line-height:1.55}.budget-list{gap:10px;padding:10px 0;display:grid}.budget-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;display:grid}.budget-row-main{min-width:0}.budget-row-head{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.budget-scope-value{width:fit-content;max-width:100%;min-height:24px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;justify-self:start;align-items:center;gap:5px;padding:2px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;display:inline-flex;overflow:hidden}.budget-user-path{border:1px solid color-mix(in srgb, var(--accent) 32%, var(--border));background:color-mix(in srgb, var(--accent) 9%, var(--bg))}.budget-label{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.budget-scope-icon{stroke-width:2.2px;opacity:.85;flex:0 0 12px;width:12px;height:12px}.budget-row-meta{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.budget-source{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:999px;padding:2px 7px;font-size:11px}.budget-row-period{justify-content:center;min-width:0;display:flex}.budget-row-controls{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.budget-bars{gap:6px;margin-top:10px;display:grid}.budget-bar-line{grid-template-columns:118px minmax(0,1fr);align-items:center;gap:10px;display:grid}.budget-bar-label{color:var(--text-muted);justify-content:space-between;align-items:center;gap:6px;font-size:11px;line-height:1;display:flex}.budget-bar-percent{font-weight:700}.budget-bar-track{background:color-mix(in srgb, var(--border) 75%, var(--bg));border-radius:999px;height:16px;position:relative;overflow:hidden}.budget-bar-fill{border-radius:inherit;min-width:0;height:100%;transition:width .2s}.budget-bar-fill-usage{background:color-mix(in srgb, var(--success) 82%, var(--accent))}.budget-bar-fill-danger{background:var(--danger)}.budget-bar-text-row{z-index:1;pointer-events:none;color:var(--text);position:absolute;inset:0}.budget-bar-text{text-overflow:ellipsis;white-space:nowrap;max-width:min(44%,190px);font-size:11px;font-weight:700;line-height:12px;position:absolute;top:50%;overflow:hidden}.budget-bar-text-center{max-width:min(46%,240px);left:50%;transform:translate(-50%,-50%)}.budget-bar-text-end{text-align:right;max-width:min(34%,180px);right:8px;transform:translateY(-50%)}.budget-period-label{border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.budget-period-icon{stroke-width:2.2px;flex:0 0 12px;width:12px;height:12px}.budget-period-label-monthly{border-color:color-mix(in srgb, #30302c 62%, var(--border));background:color-mix(in srgb, #30302c 12%, var(--bg));color:color-mix(in srgb, #30302c 34%, var(--text) 66%)}.budget-period-label-weekly{border-color:color-mix(in srgb, #68765c 62%, var(--border));background:color-mix(in srgb, #68765c 12%, var(--bg));color:color-mix(in srgb, #68765c 34%, var(--text) 66%)}.budget-period-label-daily{border-color:color-mix(in srgb, #b5652d 62%, var(--border));background:color-mix(in srgb, #b5652d 12%, var(--bg));color:color-mix(in srgb, #b5652d 34%, var(--text) 66%)}.budget-period-label-hourly{border-color:color-mix(in srgb, #783f22 62%, var(--border));background:color-mix(in srgb, #783f22 12%, var(--bg));color:color-mix(in srgb, #783f22 34%, var(--text) 66%)}.budget-period-label-custom{border-style:dashed;border-color:color-mix(in srgb, #bfa584 68%, var(--border));background:color-mix(in srgb, #bfa584 16%, var(--bg));color:color-mix(in srgb, #8b6f4f 34%, var(--text) 66%)}[data-theme=light] .budget-period-label-monthly{color:#30302c}[data-theme=light] .budget-period-label-weekly{color:#68765c}[data-theme=light] .budget-period-label-daily{color:#b5652d}[data-theme=light] .budget-period-label-hourly{color:#783f22}[data-theme=light] .budget-period-label-custom{color:#8b6f4f}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .budget-period-label-monthly{color:#30302c}:root:not([data-theme=dark]) .budget-period-label-weekly{color:#68765c}:root:not([data-theme=dark]) .budget-period-label-daily{color:#b5652d}:root:not([data-theme=dark]) .budget-period-label-hourly{color:#783f22}:root:not([data-theme=dark]) .budget-period-label-custom{color:#8b6f4f}}.budget-row-actions{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.budget-action-btn{white-space:nowrap;justify-content:center;gap:0;width:28px;min-width:0;height:28px;padding:0;transition:width .18s,border-color .15s,background .15s,color .15s;overflow:hidden}.budget-action-btn:hover,.budget-action-btn:focus-visible{gap:6px;width:82px;padding:0 9px}.budget-action-label{opacity:0;max-width:0;transition:max-width .18s,opacity .12s;overflow:hidden}.budget-action-btn:hover .budget-action-label,.budget-action-btn:focus-visible .budget-action-label{opacity:1;max-width:58px}.budget-action-btn-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.budget-action-icon{flex:0 0 14px;width:14px;height:14px}.budget-editor{background:color-mix(in srgb, var(--bg-surface) 86%, var(--bg) 14%)}.budget-settings-actions{flex-wrap:wrap;gap:10px;display:flex}.budget-reset-dialog{max-width:460px}.form-action-icon{flex:0 0 16px;width:16px;height:16px}.settings-refresh-alert{margin-top:16px;margin-bottom:0}@media (width<=768px){.badge{display:none}.content{width:100%;margin:0 auto;padding:20px}.auth-dialog{padding:18px}.auth-dialog-actions{flex-direction:column-reverse}.auth-dialog-actions .btn{width:100%}.cards{grid-template-columns:repeat(2,1fr)}.page-header{flex-wrap:wrap;gap:12px}.page-header h2{width:100%}.page-header-controls{flex-wrap:wrap;justify-content:space-between;width:100%}.page-with-sticky-date{grid-template-columns:minmax(0,1fr)}.page-with-sticky-date>.date-range-page-header,.page-with-sticky-date>.sticky-date-range{grid-column:1}.page-with-sticky-date>.date-range-page-header{margin-bottom:12px}.page-with-sticky-date>.sticky-date-range{width:100%;margin-bottom:24px;top:10px}.sticky-date-range .date-picker-trigger{justify-content:space-between;width:100%}.usage-log-select{min-width:0}.budget-row{grid-template-columns:1fr}.budget-row-controls{flex-wrap:wrap}.budget-bar-line{grid-template-columns:1fr;gap:5px}.form-grid,.workflow-feature-toggles{grid-template-columns:1fr}.workflow-section-head{flex-direction:column;align-items:flex-start}.table-toolbar{flex-direction:column;align-items:stretch}.table-toolbar-actions{justify-content:stretch;margin-left:0}.table-toolbar-actions .btn{width:100%}.model-editor{padding:16px}.alias-actions-cell,.editor-header{flex-direction:column;align-items:flex-start}.alias-actions-cell .table-action-btn,.editor-header .table-action-btn{width:100%}.alias-actions-cell .table-icon-btn,.editor-header .table-icon-btn{width:36px}.model-list-actions{flex-flow:row;align-items:center}.model-list-actions .table-action-btn{width:auto}.model-list-actions .table-icon-btn{flex-basis:32px;width:32px}.model-editor .editor-header{flex-direction:row;align-items:flex-start}.model-editor .editor-header>:first-child{flex:1;min-width:0}.model-editor .editor-header .dialog-close-btn{flex:0 0 32px;align-self:flex-start;width:32px;min-width:32px}.settings-panel{padding:18px}.budget-settings-actions,.budget-settings-actions .btn{width:100%}}.workflow-conn{background:color-mix(in srgb, var(--accent) 44%, var(--border));flex:1 1 0;width:auto;min-width:13px;height:2px;position:relative}.workflow-conn:after{content:"";background:color-mix(in srgb, var(--accent) 44%, var(--border));clip-path:polygon(0 0,100% 50%,0 100%);width:7px;height:9px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)}.workflow-node{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-surface);text-align:center;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;min-width:72px;padding:8px 12px;display:flex}.auth-key-description{color:var(--text-muted);max-width:220px;font-size:13px}.auth-key-status-badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.auth-key-status-active{background:color-mix(in srgb, var(--success) 12%, var(--bg));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));color:var(--success)}.auth-key-status-inactive{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));color:var(--danger)}.mcp-server-advanced{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg-surface) 72%, var(--bg) 28%);overflow:hidden}.mcp-server-advanced>summary{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;list-style:none;display:flex}.mcp-server-advanced>summary::-webkit-details-marker{display:none}.mcp-server-advanced>summary:after{border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);content:"";flex:none;width:7px;height:7px;transition:transform .15s;transform:rotate(45deg)}.mcp-server-advanced[open]>summary:after{transform:rotate(225deg)}.mcp-server-advanced-summary-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.mcp-server-advanced-title{font-size:13px;font-weight:600}.mcp-server-advanced-fields{border-top:1px solid var(--border);flex-direction:column;gap:16px;padding:14px;display:flex}.copy-feedback-btn{align-items:center;gap:6px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.rate-limit-pressure-row{background-image:linear-gradient(to right, color-mix(in srgb, var(--success) 16%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-high{background-image:linear-gradient(to right, color-mix(in srgb, var(--warning) 20%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-full{background-image:linear-gradient(to right, color-mix(in srgb, var(--danger) 22%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.table-icon-btn.rate-limit-gauge-inherited{color:var(--accent-strong,var(--accent));background:linear-gradient(to right, color-mix(in srgb, var(--accent) 22%, var(--bg)) 50%, var(--bg) 50%);border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.auth-dialog-input-icon{width:16px;height:16px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.auth-dialog-input-shell:focus-within .auth-dialog-input-icon{color:var(--accent)}.auth-dialog-submit-icon{flex:0 0 16px;width:16px;height:16px}.nav-icon{flex:0 0 18px;width:18px;height:18px}.api-key-open-icon{flex:0 0 15px;width:15px;height:15px}.theme-icon{flex:0 0 14px;width:14px;height:14px}.theme-toggle-mobile .theme-icon{flex-basis:16px;width:16px;height:16px}@media (width<=768px){.sidebar-footer .api-key-open-icon{flex-basis:16px;width:16px;height:16px}}.failover-drafts-loading{min-height:96px}.models-loading-state{top:16px;left:var(--sidebar-width);z-index:110;pointer-events:none;--loading-state-min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);width:fit-content;box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);margin:0 auto;padding:10px 14px;position:fixed;right:0}@media (width<=768px){.models-loading-state{left:60px}}.sidebar.sidebar-collapsed~.content .models-loading-state{left:60px}.alias-create-icon{flex:0 0 16px;width:16px;height:16px}.pricing-override-remove-row{margin-bottom:1px}@media (width<=768px){.pricing-override-remove-row{margin-bottom:0}}.pricing-recalculate-dialog{max-width:480px}.settings-refresh-btn.is-refreshing .settings-refresh-icon{transform-origin:50%;animation:.8s linear infinite loading-spin}.cost-source-icon{width:14px;height:14px;color:var(--success);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.cache-savings-icon{width:14px;height:14px;color:var(--accent);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.theme-toggle.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;margin-bottom:10px;padding:2px;display:inline-flex}.theme-btn.svelte-1keql7b{width:28px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.theme-btn.svelte-1keql7b:hover{color:var(--text)}.theme-btn.active.svelte-1keql7b{background:var(--accent);color:#fff}.theme-btn.svelte-1keql7b:focus-visible,.theme-toggle-mobile.svelte-1keql7b:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.theme-toggle-mobile.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:none}.theme-toggle-mobile.svelte-1keql7b:hover{color:var(--text)}.theme-toggle.is-compact.svelte-1keql7b{display:none}.theme-toggle-mobile.is-compact.svelte-1keql7b{margin:0 auto;display:flex}@media (width<=768px){.theme-toggle.svelte-1keql7b{display:none}.theme-toggle-mobile.svelte-1keql7b{margin:0 auto;display:flex}}.sidebar.svelte-1nwtzae{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);-webkit-overflow-scrolling:touch;z-index:10;flex-direction:column;max-height:100vh;transition:flex-basis .2s,width .2s;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar.sidebar-resizing.svelte-1nwtzae{transition:none}.sidebar-header.svelte-1nwtzae{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:20px;display:flex}.sidebar-logo.svelte-1nwtzae{width:28px;height:28px;color:var(--accent);flex-shrink:0}.sidebar-logo.svelte-1nwtzae svg{width:100%;height:100%}.sidebar-header.svelte-1nwtzae h1{letter-spacing:-.3px;font-size:18px;font-weight:700}.sidebar-nav.svelte-1nwtzae{flex-direction:column;flex:1;gap:4px;padding:12px;display:flex}.nav-item.svelte-1nwtzae{border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item.svelte-1nwtzae:hover{background:var(--bg-surface-hover);color:var(--text)}.nav-item.active.svelte-1nwtzae{background:var(--accent);color:#fff}.nav-label.svelte-1nwtzae{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-footer.svelte-1nwtzae{border-top:1px solid var(--border);padding:16px}.api-key-section.svelte-1nwtzae{gap:8px;display:grid}.external-auth-section.svelte-1nwtzae{gap:8px;margin-top:8px;display:grid}.external-auth-user.svelte-1nwtzae{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.external-auth-user.svelte-1nwtzae span:where(.svelte-1nwtzae){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.api-key-open-btn.svelte-1nwtzae{border:1px solid var(--accent);border-radius:var(--radius);width:100%;color:var(--accent);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.api-key-open-btn.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 78%, var(--text));color:color-mix(in srgb, var(--accent) 78%, var(--text))}.api-key-open-btn.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.sidebar-toggle.svelte-1nwtzae{cursor:ew-resize;z-index:11;background:0 0;border:none;flex:0 0 6px;width:6px;height:100vh;padding:0;transition:background .15s;position:sticky;top:0}.sidebar-toggle.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 15%, transparent)}.sidebar-toggle.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}body.sidebar-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae){justify-content:center;padding:16px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae) h1,.sidebar.sidebar-collapsed.svelte-1nwtzae .badge{display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae){padding:8px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:none}@media (width<=768px){.sidebar.svelte-1nwtzae{flex-basis:60px;width:60px}.sidebar-header.svelte-1nwtzae{justify-content:center;padding:16px}.sidebar-header.svelte-1nwtzae h1{display:none}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar-footer.svelte-1nwtzae{gap:8px;padding:8px;display:grid}.sidebar-footer.svelte-1nwtzae .api-key-section:where(.svelte-1nwtzae),.sidebar-footer.svelte-1nwtzae .external-auth-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .external-auth-user:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae){justify-self:center;width:36px;height:36px;min-height:36px;padding:0}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae) span,.sidebar-toggle.svelte-1nwtzae{display:none}}.dialog-close-btn.svelte-11l1bb5{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.dialog-close-btn.svelte-11l1bb5:hover{color:var(--text);background:var(--bg-surface-hover)}.dialog-close-btn.svelte-11l1bb5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-backdrop.svelte-17e0w4c,.editor-modal-backdrop.svelte-17e0w4c{z-index:80;background:#0000007a;position:fixed;inset:0}.auth-dialog-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.editor-modal-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.editor-modal-shell.svelte-17e0w4c>*{overscroll-behavior:contain;width:min(760px,100%);max-height:min(100vh - 40px,960px);margin:0;overflow:auto;box-shadow:0 24px 70px #00000061}@media (width<=768px){.auth-dialog-shell.svelte-17e0w4c,.editor-modal-shell.svelte-17e0w4c{align-items:end;padding:12px}.editor-modal-shell.svelte-17e0w4c>*{max-height:calc(100vh - 24px)}}.external-login-btn.svelte-1dsu6u0{justify-content:center;width:100%;text-decoration:none}.auth-dialog-separator.svelte-1dsu6u0{color:var(--text-muted);align-items:center;gap:10px;font-size:12px;display:flex}.auth-dialog-separator.svelte-1dsu6u0:before,.auth-dialog-separator.svelte-1dsu6u0:after{content:"";border-top:1px solid var(--border);flex:1}.auth-dialog-input-shell.svelte-1dsu6u0{position:relative}.auth-dialog-input.svelte-1dsu6u0{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:11px 12px 11px 38px;font-family:inherit;font-size:14px}.auth-dialog-input.svelte-1dsu6u0:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.flash-region.svelte-1i257xg{top:16px;left:var(--sidebar-width);z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;right:0}.sidebar.sidebar-collapsed~.flash-region.svelte-1i257xg{left:60px}@media (width<=768px){.flash-region.svelte-1i257xg{left:60px}}.flash-toast.svelte-1i257xg{border-radius:var(--radius);pointer-events:auto;align-items:flex-start;gap:10px;width:max-content;max-width:min(480px,100% - 32px);padding:12px 12px 12px 16px;font-size:14px;animation:.9s ease-out svelte-1i257xg-flash-toast-glow;display:flex;box-shadow:0 10px 30px #00000059}@keyframes svelte-1i257xg-flash-toast-glow{0%{box-shadow:0 0 0 4px color-mix(in srgb, currentColor 45%, transparent), 0 10px 30px #00000059}to{box-shadow:0 0 0 4px #0000,0 10px 30px #00000059}}@media (prefers-reduced-motion:reduce){.flash-toast.svelte-1i257xg{animation:none}}.flash-toast-success.svelte-1i257xg{background:color-mix(in srgb, var(--success) 14%, var(--bg-surface));color:var(--success);border:1px solid #34d39959}.flash-toast-error.svelte-1i257xg{background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--warning);border:1px solid #f59e0b66}.flash-toast-text.svelte-1i257xg{overflow-wrap:anywhere;flex:1;min-width:0}.flash-toast-dismiss.svelte-1i257xg{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;flex-shrink:0;padding:0 2px;font-size:18px;line-height:1}.flash-toast-dismiss.svelte-1i257xg:hover{opacity:1}.demo-mode-banner.svelte-1s3mcn8{border:1px solid color-mix(in srgb, var(--warning) 55%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--text);box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:grid}.demo-mode-banner-icon.svelte-1s3mcn8{width:20px;height:20px;color:var(--warning);flex:0 0 20px}.demo-mode-banner-copy.svelte-1s3mcn8{align-items:baseline;gap:8px;min-width:0;font-size:13px;display:flex}.demo-mode-banner.svelte-1s3mcn8 strong{color:var(--warning);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;font-size:12px}.demo-mode-banner-links.svelte-1s3mcn8{justify-content:flex-end;align-items:center;gap:6px;display:flex}.demo-mode-banner-links.svelte-1s3mcn8 a{border:1px solid color-mix(in srgb, var(--warning) 42%, var(--border));border-radius:var(--radius);min-height:28px;color:var(--text);white-space:nowrap;align-items:center;padding:4px 8px;font-size:12px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.demo-mode-banner-links.svelte-1s3mcn8 a:hover{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 16%, transparent);color:var(--text)}.demo-mode-banner-links.svelte-1s3mcn8 a:focus-visible{outline:2px solid color-mix(in srgb, var(--warning) 42%, transparent);outline-offset:2px}@media (width<=768px){.demo-mode-banner.svelte-1s3mcn8{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.demo-mode-banner-copy.svelte-1s3mcn8{gap:2px;display:grid}.demo-mode-banner-links.svelte-1s3mcn8{flex-wrap:wrap;grid-column:2;justify-content:flex-start}}.auth-banner.svelte-1c5yh36{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dp-calendar.svelte-g7ga4u{flex-shrink:0;width:224px}.dp-cal-header.svelte-g7ga4u{justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px;display:flex}.dp-cal-title.svelte-g7ga4u{font-size:13px;font-weight:600}.dp-nav-btn.svelte-g7ga4u{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.dp-nav-btn.svelte-g7ga4u:hover{background:var(--bg-surface-hover);color:var(--text)}.dp-nav-btn.svelte-g7ga4u:disabled{opacity:.3;cursor:default;pointer-events:none}.dp-nav-prev-mobile.svelte-g7ga4u{display:none}.dp-weekdays.svelte-g7ga4u{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.dp-weekdays.svelte-g7ga4u span:where(.svelte-g7ga4u){color:var(--text-muted);padding:4px 0;font-size:11px;font-weight:600}.dp-days.svelte-g7ga4u{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.dp-day.svelte-g7ga4u{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-family:inherit;font-size:12px;transition:all .1s;display:flex}.dp-day.svelte-g7ga4u:hover:not(.disabled):not(.other-month){background:var(--bg-surface-hover)}.dp-day.other-month.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default}.dp-day.today.svelte-g7ga4u{color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}.dp-day.in-range.svelte-g7ga4u{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:0}.dp-day.range-start.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:6px 0 0 6px;font-weight:600}.dp-day.range-end.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:0 6px 6px 0;font-weight:600}.dp-day.range-start.range-end.svelte-g7ga4u{border-radius:6px}.dp-day.range-start.today.svelte-g7ga4u,.dp-day.range-end.today.svelte-g7ga4u{box-shadow:none}.dp-day.disabled.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default;pointer-events:none}@media (width<=768px){.dp-nav-prev-mobile.svelte-g7ga4u{display:flex}}.date-picker.svelte-ax7ma4{position:relative}.date-picker-trigger.svelte-ax7ma4{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s;display:inline-flex}.date-picker-trigger.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.date-picker-trigger.svelte-ax7ma4 svg:where(.svelte-ax7ma4){color:var(--text-muted);flex-shrink:0}.date-picker-chevron.svelte-ax7ma4{transition:transform .15s}.date-picker-chevron.open.svelte-ax7ma4{transform:rotate(180deg)}.date-picker-dropdown.svelte-ax7ma4{z-index:100;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000040}.date-picker-presets.svelte-ax7ma4{border-right:1px solid var(--border);flex-direction:column;gap:2px;min-width:140px;padding:8px;display:flex}.preset-btn.svelte-ax7ma4{color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s}.preset-btn.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.preset-btn.active.svelte-ax7ma4{background:var(--accent);color:#fff}.date-picker-calendars.svelte-ax7ma4{flex-wrap:nowrap;gap:16px;padding:12px;display:flex}.dp-cursor-hint.svelte-ax7ma4{pointer-events:none;z-index:101;background:var(--bg-surface);color:var(--text);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:500;display:flex;position:fixed;transform:translate(12px,-50%)}.dp-cursor-hint.svelte-ax7ma4 svg:where(.svelte-ax7ma4){width:12px;height:12px;color:var(--accent);flex-shrink:0}@media (width<=768px){.date-picker-dropdown.svelte-ax7ma4{border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto}.date-picker-presets.svelte-ax7ma4{-webkit-overflow-scrolling:touch;border-right:none;border-bottom:1px solid var(--border);flex-flow:row;min-width:0;overflow-x:auto}.date-picker-calendars.svelte-ax7ma4{justify-content:center}.date-picker-calendars.svelte-ax7ma4>.dp-calendar:first-child{display:none}}.segmented-control.svelte-92fh5i{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.segmented-btn.svelte-92fh5i{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.segmented-btn.svelte-92fh5i:hover{color:var(--text)}.segmented-btn.active.svelte-92fh5i{background:var(--accent);color:#fff}@media (width<=768px){.segmented-btn.svelte-92fh5i{padding:4px 8px;font-size:11px}}.live-tokens.svelte-17qr2ta{margin-bottom:28px}.live-tokens-heading.svelte-17qr2ta{flex-direction:column;gap:2px;display:flex}.live-tokens-subtitle.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.live-tokens-legend.svelte-17qr2ta{flex-wrap:wrap;gap:8px 18px;margin-bottom:16px;display:flex}.live-tokens-legend-item.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:7px;font-size:12px;display:inline-flex}.live-tokens-swatch.svelte-17qr2ta{border-radius:2px;flex-shrink:0;width:10px;height:10px}.live-tokens-legend-value.svelte-17qr2ta{color:var(--text);font-weight:600}.live-tokens-empty.svelte-17qr2ta .live-tokens-empty-text:where(.svelte-17qr2ta){color:var(--text-muted);font-size:13px}.provider-status-flag.svelte-6tr9cf{grid-column:span 2}.provider-status-overview-card.svelte-6tr9cf{grid-column:span 1}.provider-status-flag.is-healthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, var(--bg-surface))}.provider-status-flag.is-degraded.svelte-6tr9cf{border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-flag.is-unhealthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface))}.provider-status-value.svelte-6tr9cf{margin-bottom:8px}.provider-status-card-link.svelte-6tr9cf{color:var(--accent-strong,var(--accent));font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:13px;font-weight:600}.provider-status-card-link.svelte-6tr9cf:hover{color:var(--text);text-decoration:underline}.provider-status-card-link.svelte-6tr9cf:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:3px;border-radius:4px}.provider-status-card-note.svelte-6tr9cf{color:var(--text-muted);font-size:13px;display:block}@media (width>=720px){.card-wide.svelte-6tr9cf{grid-column:span 2}}.cache-token-value.svelte-6tr9cf{flex-wrap:wrap;align-items:center;gap:6px;line-height:1;display:flex}.cache-token-part.svelte-6tr9cf{align-items:center;display:inline-flex}.cache-token-operator.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;font-size:24px;font-weight:600;line-height:1}.cache-token-marker.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;margin-left:2px;font-size:14px;font-weight:700}.prompt-cache-gauge.svelte-6tr9cf{width:120px;height:60px;margin:8px auto 0;position:relative;overflow:hidden}.prompt-cache-gauge.svelte-6tr9cf canvas{display:block}.prompt-cache-gauge-value.svelte-6tr9cf{text-align:center;color:var(--text);font-size:18px;font-weight:700;line-height:1;position:absolute;bottom:4px;left:0;right:0}@media (width<=768px){.provider-status-flag.svelte-6tr9cf{grid-column:span 1}}.mcp-servers-flag.svelte-6tr9cf{grid-column:span 1}.cache-meter-header.svelte-1yzecxj{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:16px;display:flex}.cache-meter-header.svelte-1yzecxj h3{font-size:16px;font-weight:600}.cache-meter-subtitle.svelte-1yzecxj{color:var(--text-muted);font-size:13px}.cache-meter-bar.svelte-1yzecxj{background:var(--bg-surface-hover);border-radius:6px;width:100%;height:28px;display:flex;overflow:hidden}.cache-meter-segment.svelte-1yzecxj{justify-content:center;align-items:center;min-width:3px;height:100%;transition:width .3s;display:flex;overflow:hidden}.cache-meter-segment-label.svelte-1yzecxj{color:#fff;white-space:nowrap;text-shadow:0 1px 2px #00000073;font-size:12px;font-weight:600;line-height:1}.cache-meter-segment.svelte-1yzecxj+.cache-meter-segment:where(.svelte-1yzecxj){box-shadow:-1px 0 0 var(--bg-surface)}.cache-meter-bar.is-empty.svelte-1yzecxj{background:var(--bg-surface-hover);justify-content:center;align-items:center;height:auto;min-height:28px;padding:6px 12px}.cache-meter-legend.svelte-1yzecxj{flex-wrap:wrap;gap:10px 24px;margin-top:16px;display:flex}.cache-meter-legend-item.svelte-1yzecxj{align-items:center;gap:8px;font-size:13px;display:flex}.cache-meter-swatch.svelte-1yzecxj{border-radius:3px;flex-shrink:0;width:12px;height:12px}.cache-meter-legend-label.svelte-1yzecxj{color:var(--text)}.cache-meter-legend-pct.svelte-1yzecxj{color:var(--text);font-weight:600}.cache-meter-legend-tokens.svelte-1yzecxj{color:var(--text-muted)}.cache-meter-empty.svelte-1yzecxj{color:var(--text-muted);text-align:center;font-size:13px}.spinner.svelte-b54l9o{width:var(--spinner-size);height:var(--spinner-size);border:2px solid var(--border,#80808059);border-top-color:var(--accent,currentColor);border-radius:50%;flex:none;animation:.7s linear infinite svelte-b54l9o-spinner-rotate;display:inline-block}@keyframes svelte-b54l9o-spinner-rotate{to{transform:rotate(360deg)}}.contribution-calendar-section.svelte-3hfxuq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:24px;padding:24px}.contribution-calendar-header.svelte-3hfxuq{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.contribution-calendar-header.svelte-3hfxuq h3{font-size:16px;font-weight:600}.contribution-calendar-grid-wrapper.svelte-3hfxuq{gap:8px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq{flex-direction:column;gap:2px;padding-top:22px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq span{height:13px;color:var(--text-muted);text-align:right;min-width:28px;font-size:10px;line-height:13px}.contribution-calendar-scroll.svelte-3hfxuq{--contribution-week-size:13px;--contribution-week-gap:2px;flex:1;min-width:0;overflow-x:auto}.contribution-calendar-months.svelte-3hfxuq{grid-auto-columns:var(--contribution-week-size);gap:var(--contribution-week-gap);grid-auto-flow:column;height:16px;margin-bottom:6px;display:grid}.contribution-calendar-month-label.svelte-3hfxuq{color:var(--text-muted);white-space:nowrap;font-size:10px}.contribution-calendar-grid.svelte-3hfxuq{gap:var(--contribution-week-gap);display:flex}.contribution-calendar-week.svelte-3hfxuq{flex-direction:column;gap:2px;display:flex}.contribution-calendar-cell.svelte-3hfxuq{width:var(--contribution-week-size);height:var(--contribution-week-size);background:var(--cal-level-0);border-radius:2px}.contribution-calendar-cell.level-1.svelte-3hfxuq{background:var(--cal-level-1)}.contribution-calendar-cell.level-2.svelte-3hfxuq{background:var(--cal-level-2)}.contribution-calendar-cell.level-3.svelte-3hfxuq{background:var(--cal-level-3)}.contribution-calendar-cell.level-4.svelte-3hfxuq{background:var(--cal-level-4)}.contribution-calendar-cell.level-5.svelte-3hfxuq{background:var(--cal-level-5)}.contribution-calendar-cell.level-6.svelte-3hfxuq{background:var(--cal-level-6)}.contribution-calendar-cell.level-7.svelte-3hfxuq{background:var(--cal-level-7)}.contribution-calendar-cell.level-8.svelte-3hfxuq{background:var(--cal-level-8)}.contribution-calendar-cell.level-9.svelte-3hfxuq{background:var(--cal-level-9)}.contribution-calendar-cell.level-10.svelte-3hfxuq{background:var(--cal-level-10)}.contribution-calendar-cell.empty.svelte-3hfxuq{background:0 0}.contribution-calendar-footer.svelte-3hfxuq{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.contribution-calendar-meta.svelte-3hfxuq{flex-direction:column;gap:4px;display:flex}.contribution-calendar-summary.svelte-3hfxuq{color:var(--text-muted);font-size:12px}.contribution-calendar-legend.svelte-3hfxuq{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.contribution-calendar-legend.svelte-3hfxuq .contribution-calendar-cell:where(.svelte-3hfxuq){cursor:default;width:11px;height:11px}.contribution-calendar-tooltip.svelte-3hfxuq{z-index:200;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);white-space:nowrap;pointer-events:none;border-radius:4px;padding:4px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;position:fixed;transform:translate(-50%);box-shadow:0 4px 12px #0003}@media (width<=768px){.contribution-calendar-day-labels.svelte-3hfxuq{display:none}.contribution-calendar-section.svelte-3hfxuq{padding:16px}.contribution-calendar-footer.svelte-3hfxuq{flex-direction:column;align-items:flex-start}}.inline-help-toggle.is-open.svelte-y40or3{color:var(--text);background:0 0}.inline-help-toggle.is-open.svelte-y40or3 .inline-help-toggle-icon{transform:rotate(540deg)}.audit-stats-section.svelte-14e9yan{margin-top:24px}.audit-stats-header.svelte-14e9yan{align-items:flex-start}.audit-stats-kpis.svelte-14e9yan{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.audit-stats-kpi.svelte-14e9yan{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.audit-stats-kpi-value.svelte-14e9yan{color:var(--text);font-size:13px}.audit-stats-kpi-dot.svelte-14e9yan{border-radius:2px;flex-shrink:0;width:8px;height:8px}.audit-stats-dot-2xx.svelte-14e9yan{background:var(--success)}.audit-stats-dot-4xx.svelte-14e9yan{background:var(--warning)}.audit-stats-dot-5xx.svelte-14e9yan{background:var(--danger)}.provider-status-details.svelte-6y9wjv{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .28s,opacity .22s;display:grid}.provider-status-details.is-expanded.svelte-6y9wjv{opacity:1;grid-template-rows:1fr}.provider-status-details.is-collapsed.svelte-6y9wjv{pointer-events:none}.provider-status-details-inner.svelte-6y9wjv{flex-direction:column;gap:14px;min-height:0;display:flex;overflow:hidden}.provider-status-reason.svelte-6y9wjv{color:var(--text-muted);font-size:13px}.provider-status-error.svelte-6y9wjv{color:var(--danger);overflow-wrap:break-word;font-size:12px}.provider-status-config-label.svelte-6y9wjv{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-config.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}.provider-status-config-row.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-config-value.svelte-6y9wjv{color:var(--text);overflow-wrap:break-word;font-size:13px;display:block}.provider-status-health.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-bottom:12px;padding-top:12px;display:flex}.provider-status-health-state.svelte-6y9wjv{border:1px solid var(--border);border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.provider-status-health-state.is-healthy.svelte-6y9wjv{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-health-state.is-degraded.svelte-6y9wjv{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-health-state.is-unhealthy.svelte-6y9wjv{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-health-models.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-health-model.svelte-6y9wjv{color:var(--text);justify-content:space-between;gap:8px;font-size:13px;display:flex}.provider-status-health-model.is-flagged.svelte-6y9wjv{color:var(--danger)}.provider-status-health-model-name.svelte-6y9wjv{overflow-wrap:anywhere}.provider-status-health-model-stats.svelte-6y9wjv{white-space:nowrap;color:var(--text-muted)}.provider-status-health-model.is-flagged.svelte-6y9wjv .provider-status-health-model-stats:where(.svelte-6y9wjv){color:var(--danger);font-weight:700}.provider-status-card.svelte-nopjmh{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:18px;display:flex}.provider-status-card-toggle.svelte-nopjmh{border:0;border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin:auto -18px -18px;padding:7px 0;transition:background .15s,color .15s;display:flex}.provider-status-card-toggle.svelte-nopjmh:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text)}.provider-status-card-toggle.svelte-nopjmh:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:-2px}.provider-status-card-toggle.svelte-nopjmh .provider-status-card-toggle-icon{width:16px;height:16px;transition:transform .28s;display:block}.provider-status-card-toggle.is-expanded.svelte-nopjmh .provider-status-card-toggle-icon{transform:rotate(180deg)}.provider-status-card-head.svelte-nopjmh{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.provider-status-name.svelte-nopjmh{letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:16px;font-weight:700;display:flex}.provider-doc-help.svelte-nopjmh{align-self:center;text-decoration:none}.provider-status-name-type.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-pill.svelte-nopjmh{border:1px solid var(--border);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.provider-status-pill.is-healthy.svelte-nopjmh{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-pill.is-degraded.svelte-nopjmh{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-pill.is-unhealthy.svelte-nopjmh{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-meta.svelte-nopjmh{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.provider-status-meta-item.svelte-nopjmh{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.provider-status-meta-label.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-meta-value.svelte-nopjmh{color:var(--text);font-size:14px}@media (width<=768px){.provider-status-meta.svelte-nopjmh{grid-template-columns:1fr}}.provider-status-section-loading.svelte-1kx3uw4{justify-content:center;padding:24px 0;display:flex}.provider-status-section-header.svelte-1kx3uw4{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.provider-status-toggle.svelte-1kx3uw4{background:var(--bg-surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.provider-status-toggle.svelte-1kx3uw4:hover{background:var(--bg-surface-hover)}.provider-status-toggle.svelte-1kx3uw4:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.provider-status-toggle-copy.svelte-1kx3uw4{white-space:nowrap}.provider-status-toggle-track.svelte-1kx3uw4{background:color-mix(in srgb, var(--text-muted) 35%, var(--border));border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background-color .2s;position:relative}.provider-status-toggle-track.is-active.svelte-1kx3uw4{background:color-mix(in srgb, var(--accent) 82%, var(--bg-surface))}.provider-status-toggle-thumb.svelte-1kx3uw4{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000003d}.provider-status-toggle-track.is-active.svelte-1kx3uw4 .provider-status-toggle-thumb:where(.svelte-1kx3uw4){transform:translate(14px)}.provider-status-grid.svelte-1kx3uw4{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:16px;display:grid}@media (width<=768px){.provider-status-section-header.svelte-1kx3uw4{flex-direction:column;align-items:flex-start}.provider-status-toggle.svelte-1kx3uw4{justify-content:space-between;width:100%}}.filter-input-wrap.svelte-30xz1k{flex:1;width:100%;min-width:min(400px,100%);display:flex;position:relative}.filter-input.svelte-30xz1k{flex:1;width:100%;min-width:0;padding-left:34px}.filter-input-wrap.svelte-30xz1k .filter-input-icon{width:14px;height:14px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.usage-page-filters.svelte-1oi6ywk{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.usage-page-filters.svelte-1oi6ywk .usage-log-select{flex:0 auto}.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-session{flex:220px;min-width:180px;max-width:360px}.active-session-filter.svelte-1oi6ywk{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent-strong,var(--accent));cursor:pointer;white-space:nowrap;border-radius:999px;align-self:center;padding:6px 10px;font-size:12px}.active-session-filter.svelte-1oi6ywk:hover{background:color-mix(in srgb, var(--accent) 25%, var(--bg))}@media (width<=768px){.usage-page-filters.svelte-1oi6ywk .usage-log-select,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-session{flex:100%;max-width:none}}.pro-saved-value.svelte-1qiwzdu{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.pro-saved-delta.svelte-1qiwzdu{color:var(--success);letter-spacing:0;font-size:13px;font-weight:600}.pagination-info.svelte-1imew3q{color:var(--text-muted);font-size:13px}.pagination-buttons.svelte-1imew3q{gap:8px;display:flex}.session-id-chip.svelte-1pkjhcn{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg));max-width:290px;color:var(--accent-strong,var(--accent));vertical-align:middle;border-radius:999px;align-items:stretch;display:inline-flex;overflow:hidden}.session-id-chip.svelte-1pkjhcn:hover,.session-id-chip.active.svelte-1pkjhcn{background:color-mix(in srgb, var(--accent) 20%, var(--bg));border-color:var(--accent)}.session-id-filter.svelte-1pkjhcn,.session-id-copy.svelte-1pkjhcn{color:inherit;cursor:pointer;background:0 0;border:0}.session-id-filter.svelte-1pkjhcn{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:4px 8px;font-size:12px;overflow:hidden}.session-id-copy.svelte-1pkjhcn{border-left:1px solid color-mix(in srgb, var(--accent) 25%, var(--border));justify-content:center;align-items:center;width:28px;padding:0 7px;display:inline-flex}.session-id-copy.svelte-1pkjhcn:hover,.session-id-copy.copied.svelte-1pkjhcn{background:color-mix(in srgb, var(--accent) 18%, transparent)}.session-id-copy.svelte-1pkjhcn svg{width:13px;height:13px}.session-id-chip.compact.svelte-1pkjhcn{max-width:220px}.session-id-chip.compact.svelte-1pkjhcn .session-id-filter:where(.svelte-1pkjhcn){padding:3px 7px;font-size:11px}.session-id-chip.compact.svelte-1pkjhcn .session-id-copy:where(.svelte-1pkjhcn){width:25px;padding:0 6px}.usage-breakdown-loading.svelte-1kee4g8{justify-content:center;align-items:center;min-height:120px;display:flex}.chart-view-toggle.svelte-1kee4g8{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.chart-view-btn.svelte-1kee4g8{width:30px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.chart-view-btn.svelte-1kee4g8:hover{color:var(--text)}.chart-view-btn.active.svelte-1kee4g8{background:var(--accent);color:#fff}.chart-view-btn.svelte-1kee4g8 svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.usage-chart-table-wrapper.svelte-1kee4g8{-webkit-overflow-scrolling:touch;margin-top:0;overflow-x:auto}.usage-chart-data-table.svelte-1kee4g8{min-width:max-content}.usage-chart-data-table.svelte-1kee4g8 th,.usage-chart-data-table.svelte-1kee4g8 td{white-space:nowrap}.usage-log-loading.svelte-hg4ill{justify-content:center;align-items:center;min-height:120px;display:flex}.usage-log-section.svelte-hg4ill{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.usage-log-section.svelte-hg4ill h3{margin-bottom:16px;font-size:16px;font-weight:600}.usage-log-section.svelte-hg4ill .table-wrapper{overflow-x:auto}.usage-log-toolbar.svelte-hg4ill{gap:12px;margin-bottom:16px;display:grid}.usage-filter-row.svelte-hg4ill{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:12px;display:grid}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1/-1}.usage-filter-row-options.svelte-hg4ill{grid-template-columns:1fr}.usage-log-checkbox.svelte-hg4ill{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.usage-log-checkbox.svelte-hg4ill input{cursor:pointer;width:16px;height:16px}.usage-ts.svelte-hg4ill{white-space:nowrap;font-size:12px}.usage-log-row-cached.svelte-hg4ill td{opacity:.75;font-style:italic}.usage-log-row-cached.svelte-hg4ill .usage-log-cache-cell:where(.svelte-hg4ill){font-weight:700}.caveat-icon.svelte-hg4ill{color:var(--warning);cursor:help;margin-left:4px;font-size:14px}@media (width<=768px){.usage-log-toolbar.svelte-hg4ill{gap:10px}.usage-filter-row.svelte-hg4ill{grid-template-columns:1fr}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1}.usage-log-table.svelte-hg4ill{display:block;overflow-x:auto}}.usage-sticky-controls.svelte-spwie6{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.usage-charts-grid.svelte-spwie6{flex-wrap:wrap;gap:24px;margin-bottom:24px;display:flex}.usage-charts-grid.svelte-spwie6 .model-chart-section{flex:calc(50% - 24px);min-width:420px;margin-bottom:0}.usage-session-breakdown-wrap.svelte-spwie6{margin-bottom:24px}.usage-session-breakdown-wrap.svelte-spwie6 .session-usage-breakdown{width:100%;margin-bottom:0}@media (width<=520px){.usage-charts-grid.svelte-spwie6 .model-chart-section{min-width:0}}.loading-state.svelte-hzxv1d{min-height:var(--loading-state-min-height,64px);color:var(--text-muted);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.budget-bar-text-row-on-fill.svelte-1jm56wo{color:#fff;clip-path:inset(0 calc(100% - var(--budget-progress,0%)) 0 0)}.budget-bar-text-start.svelte-1jm56wo{left:8px;transform:translateY(-50%)}.budget-bar-track-period-custom.svelte-1jm56wo .budget-bar-text-row-on-fill:where(.svelte-1jm56wo){color:#3f332a}.budget-override-dialog.svelte-13ryo7h{max-width:460px}.budget-sort-control.svelte-1752fqe{align-items:center;gap:8px}.budget-sort-control.svelte-1752fqe label{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.budget-sort-select.svelte-1752fqe{background-color:var(--bg-surface);min-width:132px}.budget-sort-select.svelte-1752fqe:hover{background-color:var(--bg-surface-hover)}.model-name-cell.svelte-1iynym{flex-direction:column;gap:8px;display:flex}.model-name-primary.svelte-1iynym{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.model-name-secondary.svelte-1iynym{color:var(--text-muted);font-size:12px}.model-redirect-remove-btn.svelte-1iynym{appearance:none;color:var(--danger);cursor:pointer;background:0 0;border:0;margin-left:4px;padding:0;font-size:11px}.model-redirect-remove-btn.svelte-1iynym:hover:not(:disabled){text-decoration:underline}.model-redirect-remove-btn.svelte-1iynym:disabled{opacity:.45;cursor:default}.model-kind-icon.svelte-1iynym{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border));background:var(--bg);width:24px;height:24px;color:var(--accent);border-radius:999px;flex:0 0 24px;justify-content:center;align-items:center;display:inline-flex}.model-kind-icon-svg.svelte-1iynym{width:14px;height:14px}.model-row-actions.svelte-1iynym{text-align:right;width:170px}@media (width<=768px){.model-name-primary.svelte-1iynym{flex-direction:column;align-items:flex-start}}.provider-group-row.svelte-1911hy6 td{background:color-mix(in srgb, var(--accent) 6%, var(--bg));padding-top:12px;padding-bottom:12px}.provider-group-row.svelte-1911hy6:hover td{background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.provider-group-header.svelte-1911hy6{justify-content:space-between;align-items:center;gap:16px;display:flex}.provider-group-meta.svelte-1911hy6{flex-direction:column;gap:4px;min-width:0;display:flex}.provider-group-title.svelte-1911hy6{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.provider-group-type.svelte-1911hy6,.provider-group-count.svelte-1911hy6,.provider-group-summary.svelte-1911hy6{color:var(--text-muted);font-size:12px}@media (width<=768px){.provider-group-header.svelte-1911hy6{flex-direction:column;align-items:flex-start}}.vm-session-affinity-checkbox.svelte-d1j6xw{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.vm-session-affinity-checkbox.svelte-d1j6xw input:where(.svelte-d1j6xw){accent-color:var(--accent);cursor:pointer}.pricing-override-rows.svelte-u8snes{gap:12px;display:grid}.pricing-override-row.svelte-u8snes{grid-template-columns:minmax(220px,1fr) minmax(130px,180px) 32px;align-items:end;gap:12px;display:grid}.pricing-override-row-actions.svelte-u8snes{justify-content:flex-start;display:flex}.pricing-override-tier-note.svelte-u8snes{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:6px;padding:10px 12px;font-size:13px}.pricing-preview.svelte-u8snes{border:1px solid var(--border);border-radius:6px;overflow:hidden}.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:minmax(150px,1fr) minmax(90px,auto) minmax(130px,.8fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.pricing-preview-header.svelte-u8snes{background:var(--bg);color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.pricing-preview-row.svelte-u8snes{border-top:1px solid var(--border);font-size:13px}.pricing-preview-row-empty.svelte-u8snes{color:var(--text-muted);grid-template-columns:1fr}@media (width<=768px){.pricing-override-row.svelte-u8snes,.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:1fr}}.failover-drafts-editor.svelte-1n87bip{flex-direction:column;gap:16px;display:flex}.failover-draft-header-actions.svelte-1n87bip{flex:none;align-items:center;gap:10px;display:flex}.failover-draft-counter.svelte-1n87bip{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.failover-draft-toolbar.svelte-1n87bip{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.failover-draft-toolbar.svelte-1n87bip .filter-input-wrap,.failover-draft-toolbar.svelte-1n87bip .filter-input{min-width:0}.failover-draft-toggle-all.svelte-1n87bip{flex:none}.failover-draft-list.svelte-1n87bip{flex-direction:column;gap:8px;max-height:min(52vh,430px);padding-right:4px;display:flex;overflow-y:auto}.failover-draft-row.svelte-1n87bip{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:10px;display:grid}.failover-draft-row.svelte-1n87bip:hover{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));background:var(--bg-surface-hover)}.failover-draft-row.svelte-1n87bip input{width:16px;height:16px;margin-top:2px}.failover-draft-copy.svelte-1n87bip{gap:4px;min-width:0;display:grid}.failover-draft-source.svelte-1n87bip,.failover-draft-targets.svelte-1n87bip{overflow-wrap:anywhere}.failover-draft-targets.svelte-1n87bip{color:var(--text-muted);font-size:12px}.failover-drafts-empty.svelte-1n87bip{align-items:center;min-height:96px;display:flex}.failover-draft-actions.svelte-1n87bip{margin-top:0}.category-tabs.svelte-scpjps{-webkit-overflow-scrolling:touch;align-items:center;gap:4px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.category-tab.svelte-scpjps{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.category-tab.svelte-scpjps:hover{color:var(--text);background:var(--bg-surface-hover)}.category-tab.active.svelte-scpjps{background:var(--accent);color:#fff;border-color:var(--accent)}.category-tab.svelte-scpjps .tab-count:where(.svelte-scpjps){background:#ffffff26;border-radius:9px;justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 5px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.category-tab.svelte-scpjps:not(.active) .tab-count:where(.svelte-scpjps){background:var(--bg)}@media (width<=768px){.category-tabs.svelte-scpjps{gap:4px}.category-tab.svelte-scpjps{padding:5px 10px;font-size:12px}}.workflow-pipeline-meta.svelte-1viff7o{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 86%, transparent);min-width:0;max-width:calc(100% - 28px);color:var(--text-muted);white-space:nowrap;appearance:none;cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:0;padding:2px 10px;font-size:12px;font-weight:500;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex;position:absolute;top:12px;right:14px;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover,.workflow-pipeline-meta.svelte-1viff7o:focus-visible{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface));color:color-mix(in srgb, var(--accent) 74%, var(--text))}.workflow-pipeline-meta.svelte-1viff7o:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.workflow-pipeline-meta-label.svelte-1viff7o{flex:none;font-weight:700}.workflow-pipeline-meta-placeholder.svelte-1viff7o{opacity:1;flex:none;max-width:3ch;margin-left:4px;transition:max-width .18s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta-value.svelte-1viff7o{opacity:0;text-overflow:clip;flex:0 auto;max-width:0;margin-left:0;transition:max-width .22s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o){opacity:0;max-width:0;margin-left:0}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o){opacity:1;max-width:42ch;margin-left:4px}.workflow-pipeline-meta-icon.svelte-1viff7o{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:14px;margin-left:0;line-height:0;transition:width .18s,margin-left .18s,opacity .15s,transform .18s;display:inline-flex;overflow:hidden;transform:translate(4px)translateY(1px)scale(.84)}.workflow-pipeline-meta-icon.svelte-1viff7o svg{width:14px;height:14px}.workflow-pipeline-meta-copied.svelte-1viff7o,.workflow-pipeline-meta-copied.svelte-1viff7o:hover,.workflow-pipeline-meta-copied.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-icon:where(.svelte-1viff7o){opacity:1;width:14px;margin-left:6px;transform:translateY(1px)}.workflow-pipeline-meta-error.svelte-1viff7o,.workflow-pipeline-meta-error.svelte-1viff7o:hover,.workflow-pipeline-meta-error.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 34%, var(--border));color:var(--danger)}.workflow-pipeline.svelte-nbptrg{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);flex-direction:column;gap:0;margin-bottom:12px;padding:18px 20px 20px;display:flex;position:relative}.workflow-pipeline-has-meta.svelte-nbptrg{padding-top:42px}.workflow-pipeline-row.svelte-nbptrg{align-items:center;width:100%;min-width:0;display:flex;overflow-x:auto}.workflow-node-icon.svelte-nbptrg{border-radius:var(--radius);background:var(--bg);width:28px;height:28px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.workflow-node-icon.svelte-nbptrg svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.workflow-node-label.svelte-nbptrg{letter-spacing:.03em;color:var(--text);white-space:nowrap;font-size:11px;font-weight:700;line-height:1.2}.workflow-node-sub.svelte-nbptrg{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:120px;font-size:10px;font-weight:500;line-height:1.2;font-family:var(--font-mono,ui-monospace, monospace);overflow:hidden}.workflow-node-badge.svelte-nbptrg{border-radius:var(--radius);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);align-items:center;padding:2px 7px;font-size:9px;font-weight:800;line-height:1.5;display:inline-flex}.workflow-node-endpoint.svelte-nbptrg{border-radius:var(--radius);border-color:var(--border);background:var(--bg-surface);flex-direction:row;gap:7px;min-width:auto;padding:10px 14px}.workflow-node-icon-endpoint.svelte-nbptrg{border-radius:var(--radius);width:auto;height:auto;color:var(--text-muted);background:0 0;justify-content:flex-start;padding:0}.workflow-node-icon-endpoint.svelte-nbptrg svg{width:14px;height:14px}.workflow-node-endpoint.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted);font-size:11px;font-weight:600}.workflow-node-feature.svelte-nbptrg{border-color:color-mix(in srgb, var(--accent) 46%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface))}.workflow-node-feature.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--accent) 70%, var(--text-muted))}.workflow-node-ai.svelte-nbptrg{border-radius:var(--radius);gap:6px;min-width:96px;padding:12px 16px}.workflow-async-section.svelte-nbptrg{justify-content:flex-end;align-items:center;gap:0;width:100%;min-width:0;margin-top:10px;display:flex}.workflow-async-turn.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 60px;height:2px;position:relative}.workflow-async-turn.svelte-nbptrg:before{content:"";background:color-mix(in srgb, var(--text-muted) 40%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);width:7px;height:9px;position:absolute;top:50%;left:-7px;transform:translateY(-50%)}.workflow-async-turn.svelte-nbptrg:after{content:"";border-right:2px dashed color-mix(in srgb, var(--text-muted) 40%, var(--border));height:16px;position:absolute;bottom:1px;right:0}.workflow-async-row.svelte-nbptrg{align-items:center;min-width:0;margin-right:7px;display:flex}.workflow-conn-async.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 24px;width:24px}.workflow-conn-async.svelte-nbptrg:after{background:color-mix(in srgb, var(--text-muted) 45%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);left:-1px;right:auto}.workflow-node-async.svelte-nbptrg{border-radius:var(--radius);border-style:dashed;flex-direction:row;gap:7px;min-width:auto;padding:7px 12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){border-radius:var(--radius);width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg) svg{width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){font-size:10px;font-weight:700}.workflow-async-label.svelte-nbptrg{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);opacity:.55;white-space:nowrap;flex-shrink:0;align-items:center;margin-left:8px;font-size:9px;font-weight:800;display:inline-flex}.workflow-node-success.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 18%, var(--bg));color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 85%, var(--text))}.workflow-node-success.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 74%, var(--text-muted))}.workflow-node-success.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 14%, var(--bg));border-color:color-mix(in srgb, var(--success) 38%, var(--border));color:var(--success)}.workflow-node-current.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 16%, var(--bg));color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 85%, var(--text))}.workflow-node-current.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 72%, var(--text-muted))}.workflow-node-current.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 13%, var(--bg));border-color:color-mix(in srgb, var(--info) 36%, var(--border));color:var(--info)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 85%, var(--text))}.workflow-node-warning.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 72%, var(--text-muted))}.workflow-node-warning.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 38%, var(--border));color:var(--warning)}.workflow-node-error.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--danger) 14%, var(--bg));color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 85%, var(--text))}.workflow-node-error.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 72%, var(--text-muted))}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 12%, var(--bg));color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg),.workflow-node-neutral.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--text-muted) 84%, var(--border))}.workflow-node-neutral.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 10%, var(--bg));border-color:color-mix(in srgb, var(--text-muted) 28%, var(--border));color:var(--text-muted)}.workflow-conn-hit.svelte-nbptrg,.workflow-conn-hit.svelte-nbptrg:after{background:color-mix(in srgb, var(--success) 58%, var(--border))}.workflow-conn-dim.svelte-nbptrg,.workflow-conn-dim.svelte-nbptrg:after{background:color-mix(in srgb, var(--border) 75%, transparent)}.workflow-node-success.svelte-nbptrg{border-color:color-mix(in srgb, var(--success) 52%, var(--border));background:color-mix(in srgb, var(--success) 9%, var(--bg-surface))}.workflow-node-current.svelte-nbptrg{border-color:color-mix(in srgb, var(--info) 56%, var(--border));background:color-mix(in srgb, var(--info) 10%, var(--bg-surface))}.workflow-node-warning.svelte-nbptrg{border-color:color-mix(in srgb, var(--warning) 52%, var(--border));background:color-mix(in srgb, var(--warning) 9%, var(--bg-surface))}.workflow-node-error.svelte-nbptrg{border-color:color-mix(in srgb, var(--danger) 52%, var(--border));background:color-mix(in srgb, var(--danger) 9%, var(--bg-surface))}.workflow-node-neutral.svelte-nbptrg{border-color:color-mix(in srgb, var(--text-muted) 40%, var(--border));background:color-mix(in srgb, var(--text-muted) 8%, var(--bg-surface))}.workflow-node-skipped.svelte-nbptrg{opacity:.28;position:relative}.workflow-card.svelte-1fo9fvq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:20px;display:flex}.workflow-card-head.svelte-1fo9fvq{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-card-footer.svelte-1fo9fvq{flex-direction:column;align-items:stretch;gap:10px;display:flex}.workflow-card-head.svelte-1fo9fvq h3{font-size:18px;font-weight:700}.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.workflow-card-meta-footer.svelte-1fo9fvq{justify-content:flex-start}.workflow-card-footer.svelte-1fo9fvq .alias-actions-cell{align-self:flex-end}.workflow-card-description.svelte-1fo9fvq{color:var(--text-muted);font-size:14px}.workflow-guardrails.svelte-1fo9fvq{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list.svelte-1fo9fvq{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-item.svelte-1fo9fvq{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}@media (width<=768px){.workflow-card-head.svelte-1fo9fvq,.workflow-card-footer.svelte-1fo9fvq,.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq,.workflow-guardrail-item.svelte-1fo9fvq{flex-direction:column;align-items:flex-start}}.model-editor.workflow-editor{width:min(1080px,100%);margin-bottom:0}.alert-inline-actions.svelte-1bcpzh1{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.workflow-guardrail-editor.svelte-1bcpzh1{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list-editor.svelte-1bcpzh1{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-row.svelte-1bcpzh1{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:stretch;align-items:center;gap:12px;padding:10px 12px;display:flex}.workflow-guardrail-field.svelte-1bcpzh1{flex:auto;min-width:0}.workflow-guardrail-step-field.svelte-1bcpzh1{flex:0 0 120px}.workflow-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-step-input.svelte-1bcpzh1{max-width:120px}@media (width<=768px){.workflow-guardrail-row.svelte-1bcpzh1{flex-direction:column;align-items:flex-start}.workflow-step-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-guardrail-field.svelte-1bcpzh1,.workflow-guardrail-step-field.svelte-1bcpzh1{flex-basis:auto;width:100%}}.workflow-list-loading.svelte-ie2kfk{justify-content:center;align-items:center;gap:8px;display:flex}.workflows-list.svelte-ie2kfk{min-width:0}.workflow-card-grid.svelte-ie2kfk{grid-template-columns:1fr;gap:16px;display:grid}.workflow-page-note.svelte-l8kr26{color:var(--text-muted);margin-top:6px;font-size:14px}.audit-log-toolbar.svelte-1pwbpcm{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;display:grid}.audit-filter-select.svelte-1pwbpcm{grid-column:span 2;min-width:0}.audit-filter-row-search.svelte-1pwbpcm .filter-input-wrap{grid-column:1/-1;max-width:none}.audit-filter-row-controls.svelte-1pwbpcm .audit-filter-select:where(.svelte-1pwbpcm){grid-column:span 2}.audit-filter-row-controls.svelte-1pwbpcm .btn{grid-column:11/-1;justify-self:end;min-width:108px}.audit-clear-btn.svelte-1pwbpcm{justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.audit-clear-btn.svelte-1pwbpcm .table-icon-svg{width:12px;height:12px}@media (width<=768px){.audit-log-toolbar.svelte-1pwbpcm{gap:8px}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:1fr}.audit-filter-row.svelte-1pwbpcm .filter-input-wrap,.audit-filter-row.svelte-1pwbpcm .filter-input,.audit-filter-select.svelte-1pwbpcm,.audit-filter-row.svelte-1pwbpcm .btn{grid-column:auto}}.audit-live-status.svelte-tve6yv{color:var(--text-muted);align-items:center;gap:10px;margin-left:16px;padding-left:6px;font-size:12px;display:inline-flex}.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:1.8s ease-out infinite svelte-tve6yv-audit-live-dot-throb}@keyframes svelte-tve6yv-audit-live-dot-throb{0%{transform:scale(1)}35%{transform:scale(1.35)}70%{transform:scale(1)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:none}}.audit-live-status-text.is-live.svelte-tve6yv{color:var(--success);font-weight:600}.audit-entry-metadata.svelte-hyopt0{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.audit-entry-metadata-label.svelte-hyopt0{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:12px;font-weight:700}.audit-entry-context.svelte-hyopt0{flex-wrap:wrap;flex:auto;gap:8px;display:flex}.audit-alias-badge.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 28%, var(--border));color:var(--accent-strong,var(--accent))}.audit-session-usage-link.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 35%, var(--border));color:var(--accent-strong,var(--accent));cursor:pointer}.audit-session-usage-link.svelte-hyopt0:hover{background:color-mix(in srgb, var(--accent) 22%, var(--bg));border-color:var(--accent)}@media (width<=768px){.audit-entry-metadata.svelte-hyopt0{flex-direction:column;align-items:flex-start;gap:8px}}.audit-attempt-track.svelte-1eu22xn{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.audit-attempt-track-pips.svelte-1eu22xn{align-items:center;gap:3px;display:inline-flex}.audit-attempt-pip.svelte-1eu22xn{background:var(--text-muted);border-radius:2px;width:8px;height:8px}.audit-attempt-pip.audit-attempt-success.svelte-1eu22xn{background:var(--success)}.audit-attempt-pip.audit-attempt-error.svelte-1eu22xn{background:var(--danger)}.audit-attempt-track-count.svelte-1eu22xn{color:var(--text-muted);font-size:11px}.audit-entry-summary.svelte-17mysgz{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;list-style:none;display:flex;position:relative}.audit-entry-summary.svelte-17mysgz::-webkit-details-marker{display:none}.audit-entry-summary-live-in-progress.svelte-17mysgz{background:color-mix(in srgb, var(--info) 7%, var(--bg))}.audit-entry-summary-has-interactions.svelte-17mysgz{padding-right:44px}.audit-entry-summary-live-in-progress.svelte-17mysgz:before{content:"";background:var(--info);pointer-events:none;width:3px;animation:1.2s ease-in-out infinite audit-live-summary-stripe-blink;position:absolute;inset:0 auto 0 0}@media (prefers-reduced-motion:reduce){.audit-entry-summary-live-in-progress.svelte-17mysgz:before{opacity:.78;animation:none}}.audit-entry-left.svelte-17mysgz{align-items:center;gap:8px;min-width:0;display:flex}.audit-entry-right.svelte-17mysgz{color:var(--text-muted);flex-shrink:0;align-items:center;gap:10px;min-height:28px;display:inline-flex}.audit-thread-expander.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);min-width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:3px;padding:0 7px 0 4px;transition:background .1s ease-out,color .1s ease-out;display:inline-flex}.audit-thread-expander.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 12%, var(--bg));color:var(--accent)}.audit-thread-expander.svelte-17mysgz .audit-thread-expander-svg{width:14px;height:14px}.audit-thread-count.svelte-17mysgz{font-size:11px;font-weight:600}.audit-thread-usage.svelte-17mysgz{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg));width:28px;height:28px;color:var(--accent-strong,var(--accent));cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.audit-thread-usage.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg));border-color:var(--accent)}.audit-thread-usage.svelte-17mysgz .audit-thread-usage-svg{width:14px;height:14px}.audit-conversation-trigger.svelte-17mysgz{border:0;border-left:1px solid var(--border);background:color-mix(in srgb, var(--accent) 12%, var(--bg));width:32px;height:100%;color:var(--accent);cursor:pointer;border-radius:0;justify-content:center;align-items:center;margin:0;transition:background .1s ease-out,color .1s ease-out;display:inline-flex;position:absolute;inset:0 0 0 auto}.audit-conversation-trigger.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg))}.audit-conversation-trigger-active.svelte-17mysgz{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 28%, var(--bg));border-left:0}.audit-conversation-trigger-active.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 34%, var(--bg))}.audit-conversation-trigger.svelte-17mysgz .audit-conversation-trigger-svg{stroke-linecap:butt;stroke-linejoin:miter;width:18px;height:18px}.audit-path.svelte-17mysgz{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.audit-request-badge.svelte-17mysgz{white-space:nowrap;gap:6px;min-width:0}.audit-timestamp-time.svelte-17mysgz{display:none}.audit-provider-model.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);height:24px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:420px;padding:0 10px;font-size:12px;display:inline-flex;overflow:hidden}@container dashboard-content (width<=699px){.audit-entry-summary.svelte-17mysgz{flex-direction:column;align-items:flex-start}.audit-entry-right.svelte-17mysgz{justify-content:space-between;width:100%}.audit-request-status.svelte-17mysgz,.audit-timestamp-full.svelte-17mysgz{display:none}.audit-timestamp-time.svelte-17mysgz{display:inline}}.audit-pane-split.svelte-1h5puht{grid-template-columns:1fr 2fr;align-items:start;gap:10px 14px;display:grid}.audit-pane-split-single.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}@container dashboard-content (width<=699px){.audit-pane-split.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}}.audit-pane-split.svelte-1h5puht .audit-pane-block-error:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-pane-empty:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-size-warning:where(.svelte-1h5puht){grid-column:1/-1}.audit-pane-block.svelte-1h5puht{min-width:0}.audit-pane-block.svelte-1h5puht>h5{margin-bottom:6px}.audit-pane-block-head.svelte-1h5puht{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.audit-pane-block-title.svelte-1h5puht{align-items:center;gap:8px;min-width:0;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn{background-color:var(--bg-surface);border:1px solid color-mix(in srgb, var(--border) 70%, var(--text) 30%);color:var(--text);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:6px;padding:4px 8px;font-family:inherit;font-size:12px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn:hover:not(:disabled){background:color-mix(in srgb, var(--bg-surface) 80%, var(--text) 20%);border-color:color-mix(in srgb, var(--border) 45%, var(--text) 55%)}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 18%, var(--bg-surface))}.audit-json.svelte-1h5puht{background:var(--bg-surface);border:1px solid var(--border);box-sizing:border-box;white-space:pre;max-width:100%;max-height:220px;color:var(--text);border-radius:6px;padding:10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;overflow:auto}.audit-pane-error-message.svelte-1h5puht{color:var(--danger)}.audit-pane-clickable-preview.svelte-1h5puht{cursor:pointer}.audit-pane-clickable-preview.svelte-1h5puht:hover{background:color-mix(in srgb, var(--danger) 8%, transparent)}.audit-json-body.svelte-1h5puht{white-space:pre;overflow-wrap:normal}.audit-pane-empty.svelte-1h5puht{text-align:left;padding:8px 0 0}.audit-pane-pending.svelte-1h5puht{align-items:center;gap:8px;display:flex}.audit-pane-streaming.svelte-1h5puht{letter-spacing:.02em;color:var(--text-muted);align-items:center;gap:7px;padding-left:4px;font-size:11px;font-weight:600;display:inline-flex}.audit-size-warning.svelte-1h5puht{color:var(--warning);margin-top:8px;font-size:12px}.audit-request-response.svelte-1bc5vi5{margin-top:4px}.audit-pane-tablist.svelte-1bc5vi5{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;display:flex}.audit-pane-tab.svelte-1bc5vi5{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-bottom-color:#0000;border-radius:6px 6px 0 0;align-items:center;gap:8px;margin-bottom:-1px;margin-right:12px;padding:8px 12px;font-family:inherit;font-size:13px;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.audit-pane-tab.svelte-1bc5vi5:not(.audit-pane-tab-active):hover{color:var(--text);background:color-mix(in srgb, var(--text) 5%, transparent)}.audit-pane-tab-active.svelte-1bc5vi5{color:var(--text);border-color:var(--border);border-bottom-color:var(--bg);background:var(--bg)}.audit-pane-tab-label.svelte-1bc5vi5{font-weight:600}.audit-pane-tabpanel.svelte-1bc5vi5{min-width:0}.audit-pane-icon.svelte-1bc5vi5{color:var(--text-muted);flex:none;align-items:center;display:inline-flex}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-request{color:var(--accent)}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-response{color:var(--info)}.audit-pane-icon.svelte-1bc5vi5 svg{width:16px;height:16px}.audit-pane-seq.svelte-1bc5vi5{color:var(--text-muted);font-size:12px}.audit-pane-kind.svelte-1bc5vi5{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-primary{color:var(--text-muted)}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-failover{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-retry{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 30%, var(--border))}.audit-savings-pill.svelte-1bc5vi5{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);color:var(--prompt-cache-color);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;font-weight:700;display:inline-flex}.audit-step-pill.svelte-1bc5vi5{border:1px dashed var(--border);color:var(--text-muted);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;display:inline-flex}.audit-entry.svelte-cmjgwr{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);transition:background .12s ease-out,border-color .12s ease-out;overflow:hidden}.audit-entry-interactions-open.svelte-cmjgwr{border-width:2px;border-color:color-mix(in srgb, var(--prompt-cache-color) 38%, var(--border))}.audit-entry-details.svelte-cmjgwr{border-top:1px solid var(--border);background:var(--bg-surface);padding:12px;overflow:hidden}.audit-thread.svelte-pneivi{flex-direction:column;gap:10px;display:flex}.audit-thread-children.svelte-pneivi{flex-direction:column;gap:10px;margin-left:26px;display:flex}.audit-thread-child.svelte-pneivi,.audit-thread-loading.svelte-pneivi{position:relative}.audit-thread-child.svelte-pneivi:before,.audit-thread-loading.svelte-pneivi:before{content:"";border-left:1px solid var(--border);border-bottom:1px solid var(--border);pointer-events:none;border-bottom-left-radius:6px;width:12px;height:calc(50% + 10px);position:absolute;top:-10px;left:-14px}.audit-thread-child.svelte-pneivi:not(:last-child):after{content:"";border-left:1px solid var(--border);pointer-events:none;position:absolute;top:50%;bottom:-10px;left:-14px}.audit-thread-loading.svelte-pneivi{padding:6px 0 6px 4px;display:flex}.audit-thread-more.svelte-pneivi{color:var(--text-muted);padding-left:4px;font-size:12px}.audit-log-loading.svelte-1nhcbov{justify-content:center;padding:2rem 0;display:flex}.audit-list-toolbar.svelte-1nhcbov{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.audit-list-toolbar-left.svelte-1nhcbov{flex-wrap:wrap;align-items:center;gap:16px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov input:where(.svelte-1nhcbov){accent-color:var(--accent);cursor:pointer}.audit-retention-note.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-retention-highlight.svelte-1nhcbov{color:var(--text);font-weight:600}.audit-log-section.svelte-1nhcbov{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.audit-log-summary.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-log-list.svelte-1nhcbov{flex-direction:column;gap:10px;display:flex}.settings-guardrails-list.svelte-1bvx512{min-width:0}.settings-guardrail-type-pill.svelte-1bvx512{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.settings-guardrail-summary.svelte-1bvx512{color:var(--text);font-size:14px;line-height:1.45}.settings-guardrail-description.svelte-1bvx512{color:var(--text-muted);margin-top:6px;font-size:12px}.model-editor.guardrails-editor-wide{width:min(1080px,100%)}.form-field-fieldset.svelte-s964s3{border:0;min-inline-size:0;margin:0;padding:0}.form-field-legend.svelte-s964s3{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;padding:0;font-size:12px;font-weight:600}.model-editor.settings-guardrails-editor{min-width:0}.settings-guardrails-hero.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));border-radius:var(--radius);background:radial-gradient(circle at top right, color-mix(in srgb, var(--accent-hover) 18%, transparent), transparent 42%), radial-gradient(circle at bottom left, color-mix(in srgb, var(--accent) 16%, transparent), transparent 40%), var(--bg-surface);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding:24px;display:flex}.settings-kicker.svelte-5x874c{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.settings-guardrails-hero.svelte-5x874c h3{margin-bottom:8px}.settings-guardrails-hero.svelte-5x874c p:last-child{color:var(--text-muted);margin-bottom:0}.settings-guardrails-meta.svelte-5x874c{gap:12px;display:flex}.settings-guardrails-stat.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));background:color-mix(in srgb, var(--bg-surface-hover) 76%, transparent);border-radius:16px;min-width:110px;padding:14px 16px}.settings-guardrails-stat-label.svelte-5x874c{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.settings-guardrails-stat.svelte-5x874c strong{font-size:24px;font-weight:700}@media (width<=768px){.settings-guardrails-hero.svelte-5x874c{flex-direction:column}.settings-guardrails-meta.svelte-5x874c{width:100%}.settings-guardrails-stat.svelte-5x874c{flex:1 1 0}}.mcp-catalog-section.svelte-1xqrzco{margin-top:18px}.mcp-catalog-section.svelte-1xqrzco .form-field-label{margin-bottom:8px}.mcp-catalog-subtitle.svelte-1xqrzco{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mcp-catalog-list.svelte-1xqrzco{flex-direction:column;gap:12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.mcp-catalog-item-name.svelte-1xqrzco{overflow-wrap:anywhere;font-size:13px}.mcp-catalog-item-aggregated.svelte-1xqrzco{color:var(--text-muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px}.mcp-catalog-item-description.svelte-1xqrzco{color:var(--text-muted);margin:2px 0 0;font-size:13px;font-weight:400}.mcp-server-sub-counts.svelte-ah8nrt{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:280px;margin-top:4px;font-size:11px;overflow:hidden}.mcp-server-table-wrapper.svelte-ah8nrt{overflow-x:auto}.mcp-server-table-wrapper.svelte-ah8nrt .data-table{min-width:860px}.auth-key-form-fields.svelte-1gswxes>.form-field{margin-bottom:4px}.auth-key-dashboard-toggle.svelte-1gswxes{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-key-issued-banner.svelte-1gswxes{background:color-mix(in srgb, var(--success) 8%, var(--bg-surface));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));border-radius:var(--radius);margin-bottom:20px;padding:16px}.auth-key-issued-warning.svelte-1gswxes{color:color-mix(in srgb, var(--success) 80%, var(--text));margin-bottom:12px;font-size:13px;font-weight:600}.auth-key-issued-value-row.svelte-1gswxes{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.auth-key-issued-token.svelte-1gswxes{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;flex:1;min-width:0;padding:8px 12px;font-size:13px;overflow-x:auto}.usage-label-chip-static.svelte-nf0ldb,.usage-label-chip-static.svelte-nf0ldb:hover{cursor:default;background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.auth-key-redacted.svelte-nf0ldb{color:var(--text-muted);font-size:13px}.auth-key-actions-cell.svelte-nf0ldb{white-space:nowrap}.auth-key-row-deactivated.svelte-nf0ldb td:where(.svelte-nf0ldb):not(.auth-key-actions-cell){opacity:.55}.auth-key-expiry.svelte-nf0ldb{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.auth-key-th-help.svelte-nf0ldb{cursor:help;align-items:center;gap:4px;display:inline-flex}.auth-key-row-actions.svelte-nf0ldb{align-items:center;gap:6px;display:inline-flex}.auth-keys-loading.svelte-1xpdcqx{justify-content:center;align-items:center;padding:32px 0;display:flex}.auth-keys-help-notice.svelte-1xpdcqx{margin-bottom:20px}.auth-keys-inactive-toggle.svelte-1xpdcqx{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-keys-inactive-toggle.svelte-1xpdcqx input:where(.svelte-1xpdcqx){width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.locale-settings.svelte-hr6ahz{grid-template-columns:minmax(280px,420px)}.locale-selector-label.svelte-hr6ahz{color:var(--text);font-size:18px;font-weight:600}.settings-panel-header.svelte-15kyv2y{justify-content:space-between;gap:16px;margin-bottom:20px;display:flex}.settings-panel-header.svelte-15kyv2y h3{font-size:18px}.settings-form-grid.svelte-15kyv2y{grid-template-columns:minmax(280px,420px);gap:16px;display:grid}@media (width<=768px){.settings-form-grid.svelte-15kyv2y{grid-template-columns:1fr}}.budget-settings-section.svelte-a747ys{width:100%}.budget-settings-grid.svelte-a747ys{gap:12px;display:grid}.budget-settings-row.svelte-a747ys{grid-template-columns:96px minmax(170px,1fr) minmax(110px,140px) minmax(110px,140px) minmax(220px,280px);align-items:start;gap:12px;display:grid}.budget-settings-period.svelte-a747ys{color:var(--text);letter-spacing:0;text-transform:uppercase;align-self:end;min-height:35px;padding-bottom:9px;font-size:12px;font-weight:700}.budget-settings-spacer.svelte-a747ys{min-height:1px}.budget-settings-help-cell.svelte-a747ys{align-self:start;min-width:0;min-height:35px}.budget-settings-help-cell.svelte-a747ys .inline-help-copy{max-width:280px;margin:22px 0 0;font-size:12px;line-height:1.35}@media (width<=768px){.budget-settings-grid.svelte-a747ys,.budget-settings-row.svelte-a747ys{grid-template-columns:1fr}.budget-settings-spacer.svelte-a747ys{display:none}}.tagging-settings-grid.svelte-18e8yem{gap:12px;display:grid}.tagging-settings-row.svelte-18e8yem{grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) minmax(80px,110px) auto minmax(90px,auto);align-items:end;gap:12px;display:grid}.tagging-do-not-pass.svelte-18e8yem{color:var(--text);white-space:nowrap;align-items:center;gap:6px;min-height:35px;font-size:13px;display:flex}.tagging-row-trailer.svelte-18e8yem{align-items:center;gap:8px;min-height:35px;display:flex}.tagging-settings-empty.svelte-18e8yem{color:var(--text-muted);margin:0}.tagging-settings-actions.svelte-18e8yem{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.tagging-settings-row.svelte-18e8yem{grid-template-columns:1fr;align-items:stretch}.tagging-settings-actions.svelte-18e8yem,.tagging-settings-actions.svelte-18e8yem .btn{width:100%}}.pricing-recalculate-section.svelte-1cdxzyk{width:100%}.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:minmax(220px,320px) minmax(260px,360px);justify-content:start;align-items:end;gap:12px;width:100%;display:grid}.pricing-recalculate-date-field.svelte-1cdxzyk{grid-column:1/-1;width:100%;max-width:320px}.pricing-recalculate-filter-field.svelte-1cdxzyk{width:100%;max-width:360px}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker{width:100%}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-trigger{justify-content:space-between;width:100%}.pricing-recalculate-actions.svelte-1cdxzyk{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:1fr}.pricing-recalculate-actions.svelte-1cdxzyk,.pricing-recalculate-actions.svelte-1cdxzyk .btn{width:100%}}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-dropdown{inset:auto auto calc(100% + 6px) 0}.settings-refresh-icon.svelte-yeq2mp{flex:0 0 16px;width:16px;height:16px}.runtime-refresh-steps.svelte-yeq2mp{color:var(--text-muted);gap:8px;margin-top:14px;padding-left:18px;font-size:13px;display:grid}.runtime-refresh-step.is-ok.svelte-yeq2mp{color:var(--success)}.runtime-refresh-step.is-partial.svelte-yeq2mp{color:var(--warning)}.runtime-refresh-step.is-failed.svelte-yeq2mp{color:var(--danger)}.runtime-settings-copy.svelte-tldbe5{min-width:180px}.runtime-settings-fields.svelte-tldbe5{gap:16px;width:min(560px,100%);display:grid}.runtime-setting-row.svelte-tldbe5{grid-template-columns:minmax(220px,1fr) 180px;align-items:center;gap:20px;display:grid}.runtime-setting-description.svelte-tldbe5,.runtime-setting-managed.svelte-tldbe5{color:var(--text-muted);margin:4px 0 0;font-size:12px}.runtime-setting-managed.svelte-tldbe5{color:var(--warning)}@media (width<=720px){.runtime-setting-row.svelte-tldbe5{grid-template-columns:1fr;gap:8px}}.settings-version-footer.svelte-3naq7u{color:var(--text-muted);text-align:right;margin-top:24px;font-size:12px}.chat-message.svelte-12s99s5{border:1px solid var(--border);background:var(--bg);border-radius:10px;max-width:94%;padding:10px 42px 10px 12px;position:relative;overflow:hidden}.chat-message.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.chat-message.is-after-anchor.svelte-12s99s5,.chat-function-note.is-after-anchor.svelte-12s99s5{opacity:.46}.chat-message.role-user.svelte-12s99s5{align-self:flex-start}.chat-message.role-assistant.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 18%, var(--bg));align-self:flex-end}.chat-message.role-system.svelte-12s99s5{background:color-mix(in srgb, var(--warning) 10%, var(--bg));align-self:center;width:100%;max-width:100%}.chat-message.role-error.svelte-12s99s5{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg));align-self:flex-end}.chat-message.role-error.svelte-12s99s5 .chat-role:where(.svelte-12s99s5){color:color-mix(in srgb, var(--danger) 75%, var(--text-muted))}.chat-message-meta.svelte-12s99s5{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.chat-role.svelte-12s99s5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:12px;font-weight:700}.chat-time.svelte-12s99s5{color:var(--text-muted);white-space:nowrap;font-size:11px}.chat-content.svelte-12s99s5{white-space:pre-wrap;overflow-wrap:break-word;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.5}.chat-message.svelte-12s99s5:before,.chat-function-note.svelte-12s99s5:before{content:"";z-index:0;pointer-events:none;opacity:var(--prompt-cache-visibility);background:linear-gradient(90deg, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) 0, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) var(--prompt-cache-fill), transparent var(--prompt-cache-fill), transparent 100%);transition:opacity .15s;position:absolute;inset:0}.chat-message.svelte-12s99s5>:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5>:where(.svelte-12s99s5){z-index:1;position:relative}.chat-message-copy.svelte-12s99s5{z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 92%, transparent);width:26px;height:26px;color:var(--text-muted);opacity:0;pointer-events:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:opacity .12s,transform .12s,color .12s,background-color .12s,border-color .12s;display:inline-flex;position:absolute;bottom:6px;right:6px;transform:translateY(3px)}.chat-message.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-message.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-message-copy.is-copied.svelte-12s99s5{opacity:1;pointer-events:auto;transform:translateY(0)}.chat-message-copy.svelte-12s99s5:hover{color:var(--text);background:var(--bg-surface-hover)}.chat-message-copy.svelte-12s99s5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.chat-message-copy.is-copied.svelte-12s99s5{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border))}.chat-tool-calls.svelte-12s99s5{border-top:1px solid var(--border);flex-direction:column;gap:3px;margin-top:8px;padding-top:6px;display:flex}.chat-tool-call.svelte-12s99s5{color:var(--text-muted);border-radius:5px;min-width:0;padding:3px 5px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;position:relative;overflow:hidden}.chat-tool-call-summary.svelte-12s99s5{cursor:pointer;align-items:baseline;gap:6px;min-width:0;display:flex}.chat-tool-call-preview.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;opacity:.8;flex:1;min-width:0;overflow:hidden}.chat-tool-call-arguments.svelte-12s99s5{background:color-mix(in srgb, var(--border) 45%, transparent);color:var(--text);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;max-height:200px;margin-top:5px;padding:6px 8px;line-height:1.45;overflow:auto}.chat-tool-call-name.svelte-12s99s5:before{content:"⚡"}.chat-function-note.svelte-12s99s5{max-width:94%;color:var(--text-muted);background:color-mix(in srgb, var(--border) 40%, transparent);border:1px dashed var(--border);border-radius:12px;align-self:center;padding:4px 42px 4px 12px;font-size:12px;position:relative;overflow:hidden}.chat-function-note.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-inner.svelte-12s99s5{align-items:baseline;gap:6px;min-height:26px;display:flex;overflow:hidden}.chat-function-note-inner.svelte-12s99s5 .chat-time:where(.svelte-12s99s5){flex-shrink:0;margin-left:auto}.chat-function-call-id.svelte-12s99s5{color:var(--text-muted);overflow-wrap:anywhere;margin-top:6px;font-size:10px}.chat-function-label.svelte-12s99s5{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}.chat-function-label.svelte-12s99s5:before{content:"▸";margin-right:4px;transition:transform .12s;display:inline-block}.chat-function-note-details[open].svelte-12s99s5 .chat-function-label:where(.svelte-12s99s5):before{transform:rotate(90deg)}.chat-function-detail.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;overflow:hidden}.chat-function-note.role-function-call.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));align-self:flex-end}.chat-function-note.role-function-result.svelte-12s99s5{background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 30%, var(--border));align-self:flex-start}.chat-function-note.is-anchor.role-function-call.svelte-12s99s5,.chat-function-note.is-anchor.role-function-result.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-details.svelte-12s99s5{width:100%}.chat-function-note-details.svelte-12s99s5>summary{cursor:pointer;list-style:none}.chat-function-note-details.svelte-12s99s5>summary::-webkit-details-marker{display:none}.chat-function-expanded.svelte-12s99s5{border-top:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);max-height:200px;margin-top:6px;padding-top:6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;overflow:auto}@media (width<=768px){.chat-message.svelte-12s99s5{max-width:100%}}@media (hover:none){.chat-message-copy.svelte-12s99s5{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.chat-message-copy.svelte-12s99s5{transition:none}}.conversation-drawer.svelte-ssrzja{width:var(--conversation-panel-width);background:var(--bg-surface);border-left:1px solid var(--border);z-index:12;flex-direction:column;flex:none;min-width:0;height:100vh;display:flex;position:sticky;top:0}.conversation-drawer-fullscreen.svelte-ssrzja{z-index:70;border-left:0;flex-basis:auto;width:100vw;height:100dvh;position:fixed;inset:0}.conversation-drawer-fullscreen.svelte-ssrzja .conversation-resize-handle:where(.svelte-ssrzja){display:none}.conversation-resize-handle.svelte-ssrzja{z-index:2;cursor:col-resize;touch-action:none;background:0 0;border:0;border-radius:0;outline:none;width:10px;padding:0;position:absolute;top:0;bottom:0;left:-5px}.conversation-resize-handle.svelte-ssrzja:after{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:4px}.conversation-resize-handle.svelte-ssrzja:hover:after,.conversation-resize-handle.svelte-ssrzja:focus-visible:after{background:color-mix(in srgb, var(--accent) 70%, var(--border))}body.conversation-panel-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.conversation-drawer-header.svelte-ssrzja{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.conversation-drawer-header-actions.svelte-ssrzja{align-items:center;gap:6px;display:flex}.conversation-drawer-title.svelte-ssrzja{align-items:center;gap:9px;min-width:0;display:flex}.conversation-follow-status.svelte-ssrzja{justify-content:center;align-items:center;margin:-4px;padding:4px;display:inline-flex}.conversation-drawer-header.svelte-ssrzja h3{font-size:16px;font-weight:700}#interactions-drawer-content.svelte-ssrzja{position:relative}.conversation-message-navigation.svelte-ssrzja{z-index:4;opacity:0;pointer-events:none;flex-direction:column;gap:4px;width:max-content;height:0;margin-left:auto;margin-right:12px;transition:opacity .12s,transform .12s;display:flex;position:sticky;top:12px;transform:translateY(-3px)}#interactions-drawer-content.svelte-ssrzja:hover .conversation-message-navigation:where(.svelte-ssrzja),.conversation-message-navigation.svelte-ssrzja:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja){border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 94%, transparent);width:30px;height:30px;min-height:30px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 1px 3px #00000029}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):hover{color:var(--text);background:var(--bg-surface-hover)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.conversation-drawer-footer.svelte-ssrzja{border-top:1px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;gap:9px;padding:10px 16px;display:flex}.conversation-composer.svelte-ssrzja{flex-direction:column;gap:7px;display:flex}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja){resize:vertical;border:1px solid var(--border);background:var(--bg);width:100%;min-height:50px;color:var(--text);font:inherit;border-radius:7px;padding:9px 10px;line-height:1.45}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):focus{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:1px}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):disabled{opacity:.65}.conversation-composer-actions.svelte-ssrzja{justify-content:space-between;align-items:center;gap:10px;display:flex}.conversation-endpoint.svelte-ssrzja{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:11px;overflow:hidden}.conversation-send-error.svelte-ssrzja{color:var(--danger);font-size:12px}.conversation-truncated.svelte-ssrzja{color:var(--text-muted);padding:0 16px 14px;font-size:12px}.conversation-cache-legend.svelte-ssrzja{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin:12px 16px 0;padding:0;font-family:inherit;font-size:11px;display:flex}.conversation-cache-legend.svelte-ssrzja:hover{color:var(--text)}.conversation-cache-legend.svelte-ssrzja:focus-visible{outline:2px solid color-mix(in srgb, var(--prompt-cache-color) 35%, transparent);outline-offset:3px;border-radius:3px}.conversation-cache-switch.svelte-ssrzja{background:color-mix(in srgb, var(--text-muted) 30%, var(--border));border-radius:999px;flex:none;width:28px;height:16px;transition:background-color .15s;position:relative}.conversation-cache-switch.is-active.svelte-ssrzja{background:color-mix(in srgb, var(--prompt-cache-color) 80%, var(--bg))}.conversation-cache-switch-thumb.svelte-ssrzja{background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000003d}.conversation-cache-switch.is-active.svelte-ssrzja .conversation-cache-switch-thumb:where(.svelte-ssrzja){transform:translate(12px)}.conversation-cache-estimate.svelte-ssrzja{opacity:.75}.conversation-thread.svelte-ssrzja{flex-direction:column;gap:10px;padding:14px 16px 20px;display:flex}.conversation-live-status.svelte-ssrzja{color:var(--text-muted);align-items:center;gap:10px;padding:4px 16px 20px;font-size:13px;display:flex}@media (hover:none){.conversation-message-navigation.svelte-ssrzja{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.conversation-message-navigation.svelte-ssrzja{transition:none}} +:root{--bg:#111110;--bg-surface:#1e1d1c;--bg-surface-hover:#2a2420;--border:#2a2826;--text:#e8e0d6;--text-muted:#9a918a;--accent:#b8956e;--accent-hover:#d4b896;--success:#34d399;--info:#3b82f6;--warning:#f59e0b;--danger:#ef4444;--prompt-cache-color:color-mix(in srgb, var(--info) 72%, #fff);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 24%, var(--bg-surface));--cache-meter-uncached:var(--token-input);--cache-meter-local:var(--token-local);--cache-meter-prompt:var(--token-prompt);--token-input:#c0824a;--token-output:#ddb27a;--token-prompt:color-mix(in srgb, var(--info) 60%, transparent);--token-local:color-mix(in srgb, var(--info) 20%, transparent);--sidebar-width:240px;--radius:8px;--chart-grid:#2a2826;--chart-text:#9a918a;--chart-day-marker:var(--text);--chart-tooltip-bg:#1e1d1c;--chart-tooltip-border:#2a2826;--chart-tooltip-text:#e8e0d6;--cal-level-0:#161b22;--cal-level-1:color-mix(in srgb, var(--info) 15%, var(--bg-surface));--cal-level-2:color-mix(in srgb, var(--info) 25%, var(--bg-surface));--cal-level-3:color-mix(in srgb, var(--info) 36%, var(--bg-surface));--cal-level-4:color-mix(in srgb, var(--info) 48%, var(--bg-surface));--cal-level-5:color-mix(in srgb, var(--info) 60%, var(--bg-surface));--cal-level-6:color-mix(in srgb, var(--info) 73%, var(--bg-surface));--cal-level-7:color-mix(in srgb, var(--info) 87%, var(--bg-surface));--cal-level-8:var(--info);--cal-level-9:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-10:color-mix(in srgb, var(--info) 62%, #fff);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface-hover) 86%, #fff 14%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface-hover) 72%, #fff 28%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}body.dashboard-modal-open{overflow:hidden}.app{height:100vh;min-height:0;display:flex;overflow:hidden}.badge{background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.auth-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:min(440px,100%);padding:22px;box-shadow:0 24px 70px #00000061}.auth-dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.auth-dialog h2{margin-top:2px;font-size:22px;line-height:1.2}.auth-dialog-close{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.auth-dialog-close:hover{color:var(--text);background:var(--bg-surface-hover)}.auth-dialog-close:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-hint{color:var(--text-muted);font-size:13px}.auth-dialog-error{color:var(--danger);font-size:13px;font-weight:600}.auth-dialog-form{gap:10px;margin-top:18px;display:grid}.auth-dialog-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.content{-webkit-overflow-scrolling:touch;flex:1 1 0;width:100%;min-width:0;min-height:0;padding:32px;transition:width .2s;overflow-y:auto;container:dashboard-content/inline-size}.content>*{width:100%;max-width:1336px;margin-inline:auto}body.dashboard-modal-open .content{overflow-y:hidden}.content.interactions-open>*{max-width:none}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h2{letter-spacing:-.3px;font-size:22px;font-weight:700}.page-header-controls{align-items:center;gap:12px;display:flex}.page-with-sticky-date{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:12px;display:grid}.page-with-sticky-date>*{grid-column:1/-1}.page-with-sticky-date>.date-range-page-header{grid-column:1}.page-with-sticky-date>.sticky-date-range{z-index:8;grid-column:2;justify-self:end;position:sticky;top:16px}.model-count{color:var(--text-muted);font-size:14px}.provider-status-section{margin-top:28px;scroll-margin-top:24px}.cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px;display:grid}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:600}.card-value{letter-spacing:-.5px;font-size:28px;font-weight:700}.cache-meter{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:28px;padding:24px}.chart-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.chart-container h3{margin-bottom:16px;font-size:16px;font-weight:600}.chart-container-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.chart-container-header h3{margin-bottom:0}.chart-wrapper{height:210px;position:relative}.live-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.live-dot.is-streaming{background:var(--success);position:relative}.live-dot.is-streaming:after{content:"";z-index:-1;background:color-mix(in srgb, var(--success) 55%, transparent);border-radius:50%;animation:1.8s ease-out infinite live-dot-pulse;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.live-dot.is-streaming:after{opacity:0;animation:none}}@keyframes live-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(2.5)}to{opacity:0;transform:scale(2.5)}}.alert{border-radius:var(--radius);margin-bottom:20px;padding:12px 16px;font-size:14px}.alert-warning{color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b4d}.table-toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.table-toolbar-main{flex:1;min-width:0}.table-toolbar-actions{justify-content:flex-end;margin-left:auto;display:flex}input:is([type=text],[type=date],[type=number]){background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:8px 12px;font-family:inherit;font-size:13px}input:is([type=text],[type=date],[type=number]):focus{border-color:var(--accent)}input:is([type=text],[type=date],[type=number]):disabled,textarea:disabled,.form-input:disabled{opacity:.6;cursor:not-allowed}.table-wrapper{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;font-weight:600}.data-table th.model-actions-header{text-align:right;white-space:nowrap;width:1%;min-width:156px}.data-table td{border-bottom:1px solid var(--border);padding:10px 16px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-surface-hover)}.mono{font-family:SF Mono,Menlo,Consolas,monospace}.font-size-md{font-size:13px}.col-price,.data-table th.col-price{text-align:right}td.col-price{color:var(--text-muted);white-space:nowrap;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.provider-badge{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.empty-state{text-align:center;color:var(--text-muted);padding:48px 0;font-size:14px}.empty-state-icon{width:auto;height:auto;max-height:160px;color:var(--text-muted);margin:0 auto;display:block}.empty-state-icon text{fill:var(--text-muted);font-family:inherit;font-weight:600}.chart-empty-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chart-empty-overlay .empty-state-icon{width:auto;max-width:90%;height:auto;max-height:195px}.loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.table-action-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.table-action-btn:hover:not(:disabled){background:var(--bg-surface-hover)}.table-action-btn:disabled{opacity:.45;cursor:default}.table-action-btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.table-action-btn-active{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 38%, var(--border))}.table-action-btn-active:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, var(--bg-surface-hover))}.table-action-btn-failover-active{color:var(--info);background:color-mix(in srgb, var(--cache-meter-prompt) 35%, var(--bg));border-color:color-mix(in srgb, var(--info) 45%, var(--border));position:relative}.table-action-btn-failover-active:hover:not(:disabled){background:color-mix(in srgb, var(--cache-meter-prompt) 45%, var(--bg-surface-hover))}.table-icon-btn{border-radius:6px;gap:0;width:32px;min-width:32px;height:32px;padding:0}.table-icon-btn.table-action-btn-active{position:relative}.table-icon-btn.table-action-btn-active:after{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-btn.table-action-btn-failover-active:after{content:"";background:var(--info);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-svg{flex-shrink:0;width:14px;height:14px}.model-editor{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:24px}.alias-kind-badge{border:1px solid var(--border);background:var(--bg);min-height:24px;color:var(--accent);letter-spacing:.2px;text-transform:uppercase;border-color:color-mix(in srgb, var(--accent) 55%, var(--border));border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.form h3{font-size:20px;font-weight:700}.form-kicker,.form-hint{color:var(--text-muted);font-size:13px}.alias-actions-cell{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.model-list-actions{white-space:nowrap;flex-wrap:nowrap}.model-list-actions .table-icon-btn{flex:0 0 32px}.model-list-actions .alias-toggle{flex:none}.alias-toggle{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-family:inherit;font-size:12px;transition:all .15s;display:inline-flex}.alias-toggle:hover:not(:disabled){background:var(--bg-surface-hover)}.alias-toggle:disabled{opacity:.45;cursor:default}.alias-toggle-track{background:color-mix(in srgb, var(--border) 80%, var(--bg));border-radius:6px;width:34px;height:18px;transition:background .15s;position:relative}.alias-toggle-thumb{background:var(--text-muted);border-radius:6px;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:1px;left:2px}.alias-toggle.enabled{border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.alias-toggle.enabled .alias-toggle-track{background:color-mix(in srgb, var(--success) 55%, var(--bg))}.alias-toggle.enabled .alias-toggle-thumb{background:#fff;transform:translate(14px)}.alias-toggle.restricted{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:color-mix(in srgb, var(--accent) 70%, var(--text))}.alias-toggle.restricted .alias-toggle-track{background:color-mix(in srgb, var(--accent) 55%, var(--bg))}.editor-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.form{flex-direction:column;gap:16px;display:flex}.auth-key-editor{background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg) 18%)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-field{flex-direction:column;gap:8px;display:flex}.form-field-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:12px;font-weight:600;display:inline-block}.vm-target-row{align-items:center;gap:8px;display:flex}.vm-target-row .vm-target-model{flex:auto;min-width:0}.vm-target-row .vm-target-weight{flex:0 0 88px;width:88px}.vm-status-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.vm-status-row .vm-status-toggle{margin-left:auto}.form-error{border:1px solid color-mix(in srgb, var(--danger) 42%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface));color:var(--danger);overflow-wrap:anywhere;margin:0;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.4}.form-error:empty{display:none}.form-field-error{color:var(--danger);overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:1.4}.form-field-required{color:var(--danger);margin-left:3px}:is(input,textarea,select)[aria-invalid=true]{border-color:color-mix(in srgb, var(--danger) 60%, var(--border))}:is(input,textarea,select)[aria-invalid=true]:focus{border-color:var(--danger)}textarea{resize:vertical;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:60px;color:var(--text);outline:none;padding:10px 12px;font-family:inherit;font-size:13px}textarea:focus{border-color:var(--accent)}.form-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:38px;color:var(--text);outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.form-input:focus{border-color:var(--accent)}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.failover-target-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.data-table tr.alias-row.is-valid td{background:var(--alias-row-valid-bg)}.data-table tr.alias-row.is-valid:hover td{background:var(--alias-row-valid-bg-hover)}.data-table tr.alias-row:not(.is-valid) td{background:color-mix(in srgb, var(--accent) 10%, var(--bg-surface))}.data-table tr.alias-row:not(.is-valid):hover td{background:color-mix(in srgb, var(--accent) 16%, var(--bg-surface-hover))}.data-table tr.alias-row.is-disabled td{background:var(--bg-surface);opacity:.58}.data-table tr.alias-row.is-disabled:hover td{background:var(--bg-surface-hover);opacity:.72}.data-table tr.model-access-disabled-row td{background:color-mix(in srgb, var(--danger) 6%, var(--bg-surface))}.data-table tr.model-access-disabled-row:hover td{background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface-hover))}.workflow-section-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-section-head h4{font-size:14px;font-weight:700}.workflow-preview{flex-direction:column;gap:12px;display:flex}.workflow-feature-toggles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.workflow-feature-toggle{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.workflow-feature-toggle input{width:16px;height:16px}.model-chart-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;padding:24px}.model-chart-section h3{margin:0;font-size:16px;font-weight:600}.model-chart-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.bar-chart-wrap{width:100%;height:180px;position:relative}.form-select,.usage-log-select{appearance:none;background-color:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px;outline:none;min-width:140px;padding:8px 34px 8px 12px;font-family:inherit;font-size:13px}.form-select:disabled,.usage-log-select:disabled{cursor:not-allowed;opacity:.6}.form-select:focus,.usage-log-select:focus{border-color:var(--accent)}.form-select{width:100%;min-width:0}.usage-label-chips{flex-wrap:wrap;gap:4px;max-width:280px;display:inline-flex}.usage-label-chip{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg));min-height:20px;color:var(--text);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;padding:1px 9px;font-family:inherit;font-size:11px;font-style:normal;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s;display:inline-flex}.usage-label-chip:hover{background:color-mix(in srgb, var(--label-color,var(--accent)) 26%, var(--bg))}.usage-label-chip.active{background:color-mix(in srgb, var(--label-color,var(--accent)) 32%, var(--bg));border-color:var(--label-color,var(--accent));box-shadow:0 0 0 1px color-mix(in srgb, var(--label-color,var(--accent)) 55%, transparent)}@keyframes audit-live-summary-stripe-blink{0%,to{opacity:.9}50%{opacity:.28}}.audit-status-badge{border:1px solid var(--border);letter-spacing:.2px;background:var(--bg-surface);border-radius:999px;justify-content:center;align-items:center;min-width:46px;height:24px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.audit-status-badge.status-success{color:var(--success);border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.audit-status-badge.status-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.audit-status-badge.status-error{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.audit-status-badge.status-neutral{color:var(--text-muted)}.audit-status-badge.status-unknown{color:var(--text-muted);border-color:color-mix(in srgb, var(--border) 75%, transparent)}.audit-pane{border:1px solid var(--border);background:var(--bg);border-top:0;border-radius:0 0 8px 8px;min-width:0;padding:12px}.audit-pane h5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:11px;font-weight:600}.audit-prompt-cache-pill{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);min-height:20px;color:var(--prompt-cache-color);letter-spacing:.02em;text-transform:none;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.audit-prompt-cache-highlight{color:var(--prompt-cache-color);font-weight:700}.audit-audio{white-space:normal;flex-direction:column;gap:8px;display:flex}.audit-audio-player{width:100%;max-width:420px;height:36px}.audit-audio-meta{color:var(--text-muted);font-size:12px}.audit-audio-empty{align-items:flex-start;padding:4px 0}.audit-audio-icon{font-size:20px;line-height:1}.audit-audio-note{color:var(--text-muted);font-size:12px}.audit-audio-metadata{flex-direction:column;gap:2px;margin-top:4px;font-size:12px;display:flex}.audit-audio-meta-row{gap:8px;display:flex}.audit-audio-meta-key{color:var(--text-muted);min-width:120px}.conversation-body-highlight{border-left:2px solid color-mix(in srgb, var(--accent) 70%, var(--border));background:color-mix(in srgb, var(--accent) 10%, transparent);cursor:pointer;line-height:inherit;border-radius:2px;margin:0 0 0 -2px;padding:0 0 0 2px;display:inline}.conversation-body-highlight:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.conversation-body-highlight.conversation-system{border-left-color:color-mix(in srgb, var(--warning) 70%, var(--border));background:color-mix(in srgb, var(--warning) 10%, transparent)}.conversation-body-highlight.conversation-user{border-left-color:color-mix(in srgb, var(--accent) 75%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent)}.conversation-body-highlight.conversation-assistant{border-left-color:color-mix(in srgb, var(--success) 65%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}#interactions-drawer-content{flex:1;min-height:0;overflow-y:auto}.pagination{justify-content:space-between;align-items:center;padding:12px 0 0;display:flex}.btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 16px;font-family:inherit;font-size:13px;transition:all .15s}.btn:hover:not(:disabled){background:var(--bg-surface-hover)}.btn-primary{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 70%, #000 10%);color:#fff;font-weight:600;box-shadow:0 10px 22px #3b82f62e}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 90%, #fff 10%);border-color:color-mix(in srgb, var(--accent) 78%, #000 12%)}.btn-danger-outline{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:0 0;font-weight:600}.btn-danger-outline:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 75%, var(--border))}.btn-danger{color:#fff;border-color:color-mix(in srgb, var(--danger) 76%, #000 12%);background:var(--danger);box-shadow:0 10px 22px color-mix(in srgb, var(--danger) 20%, transparent);font-weight:600}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 90%, #fff 10%);border-color:color-mix(in srgb, var(--danger) 82%, #000 14%)}.btn-with-icon{justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn-with-icon .table-icon-svg{width:16px;height:16px}.btn:disabled{opacity:.4;cursor:default}.settings-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.inline-help-section{flex-direction:column;gap:2px;display:flex}.inline-help-title-row{align-items:center;gap:10px;display:inline-flex}.inline-help-title-row h2,.inline-help-title-row h3{margin-bottom:0}.inline-help-title-row h2:empty,.inline-help-title-row h3:empty{display:none}.inline-help-toggle{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));width:16px;height:16px;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:color .18s,border-color .18s;display:inline-flex;position:relative}.inline-help-toggle:before{content:"";pointer-events:auto;background:0 0;width:32px;height:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.inline-help-toggle:hover{border-color:color-mix(in srgb, var(--accent) 48%, var(--border));color:var(--text);background:0 0}.inline-help-toggle:active{background:0 0}.inline-help-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.inline-help-toggle-icon{justify-content:center;align-items:center;width:100%;height:100%;padding-bottom:1px;font-size:13px;font-weight:700;line-height:1;transition:transform .52s cubic-bezier(.22,.72,.12,1);display:inline-flex;transform:rotate(0)}.inline-help-copy{max-width:780px;color:var(--text-muted);margin-top:2px;font-size:14px}.settings-select{width:100%}.settings-refresh-section{border-top:1px solid var(--border);justify-items:start;gap:12px;margin-top:24px;padding-top:22px;display:grid}.settings-refresh-section h3{font-size:18px}.settings-refresh-section p{max-width:720px;color:var(--text-muted);font-size:14px;line-height:1.55}.budget-list{gap:10px;padding:10px 0;display:grid}.budget-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;display:grid}.budget-row-main{min-width:0}.budget-row-head{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.budget-scope-value{width:fit-content;max-width:100%;min-height:24px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;justify-self:start;align-items:center;gap:5px;padding:2px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;display:inline-flex;overflow:hidden}.budget-user-path{border:1px solid color-mix(in srgb, var(--accent) 32%, var(--border));background:color-mix(in srgb, var(--accent) 9%, var(--bg))}.budget-label{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.budget-scope-icon{stroke-width:2.2px;opacity:.85;flex:0 0 12px;width:12px;height:12px}.budget-row-meta{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.budget-source{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:999px;padding:2px 7px;font-size:11px}.budget-row-period{justify-content:center;min-width:0;display:flex}.budget-row-controls{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.budget-bars{gap:6px;margin-top:10px;display:grid}.budget-bar-line{grid-template-columns:118px minmax(0,1fr);align-items:center;gap:10px;display:grid}.budget-bar-label{color:var(--text-muted);justify-content:space-between;align-items:center;gap:6px;font-size:11px;line-height:1;display:flex}.budget-bar-percent{font-weight:700}.budget-bar-track{background:color-mix(in srgb, var(--border) 75%, var(--bg));border-radius:999px;height:16px;position:relative;overflow:hidden}.budget-bar-fill{border-radius:inherit;min-width:0;height:100%;transition:width .2s}.budget-bar-fill-usage{background:color-mix(in srgb, var(--success) 82%, var(--accent))}.budget-bar-fill-danger{background:var(--danger)}.budget-bar-text-row{z-index:1;pointer-events:none;color:var(--text);position:absolute;inset:0}.budget-bar-text{text-overflow:ellipsis;white-space:nowrap;max-width:min(44%,190px);font-size:11px;font-weight:700;line-height:12px;position:absolute;top:50%;overflow:hidden}.budget-bar-text-center{max-width:min(46%,240px);left:50%;transform:translate(-50%,-50%)}.budget-bar-text-end{text-align:right;max-width:min(34%,180px);right:8px;transform:translateY(-50%)}.budget-period-label{border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.budget-period-icon{stroke-width:2.2px;flex:0 0 12px;width:12px;height:12px}.budget-period-label-monthly{border-color:color-mix(in srgb, #30302c 62%, var(--border));background:color-mix(in srgb, #30302c 12%, var(--bg));color:color-mix(in srgb, #30302c 34%, var(--text) 66%)}.budget-period-label-weekly{border-color:color-mix(in srgb, #68765c 62%, var(--border));background:color-mix(in srgb, #68765c 12%, var(--bg));color:color-mix(in srgb, #68765c 34%, var(--text) 66%)}.budget-period-label-daily{border-color:color-mix(in srgb, #b5652d 62%, var(--border));background:color-mix(in srgb, #b5652d 12%, var(--bg));color:color-mix(in srgb, #b5652d 34%, var(--text) 66%)}.budget-period-label-hourly{border-color:color-mix(in srgb, #783f22 62%, var(--border));background:color-mix(in srgb, #783f22 12%, var(--bg));color:color-mix(in srgb, #783f22 34%, var(--text) 66%)}.budget-period-label-custom{border-style:dashed;border-color:color-mix(in srgb, #bfa584 68%, var(--border));background:color-mix(in srgb, #bfa584 16%, var(--bg));color:color-mix(in srgb, #8b6f4f 34%, var(--text) 66%)}[data-theme=light] .budget-period-label-monthly{color:#30302c}[data-theme=light] .budget-period-label-weekly{color:#68765c}[data-theme=light] .budget-period-label-daily{color:#b5652d}[data-theme=light] .budget-period-label-hourly{color:#783f22}[data-theme=light] .budget-period-label-custom{color:#8b6f4f}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .budget-period-label-monthly{color:#30302c}:root:not([data-theme=dark]) .budget-period-label-weekly{color:#68765c}:root:not([data-theme=dark]) .budget-period-label-daily{color:#b5652d}:root:not([data-theme=dark]) .budget-period-label-hourly{color:#783f22}:root:not([data-theme=dark]) .budget-period-label-custom{color:#8b6f4f}}.budget-row-actions{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.budget-action-btn{white-space:nowrap;justify-content:center;gap:0;width:28px;min-width:0;height:28px;padding:0;transition:width .18s,border-color .15s,background .15s,color .15s;overflow:hidden}.budget-action-btn:hover,.budget-action-btn:focus-visible{gap:6px;width:82px;padding:0 9px}.budget-action-label{opacity:0;max-width:0;transition:max-width .18s,opacity .12s;overflow:hidden}.budget-action-btn:hover .budget-action-label,.budget-action-btn:focus-visible .budget-action-label{opacity:1;max-width:58px}.budget-action-btn-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.budget-action-icon{flex:0 0 14px;width:14px;height:14px}.budget-editor{background:color-mix(in srgb, var(--bg-surface) 86%, var(--bg) 14%)}.budget-settings-actions{flex-wrap:wrap;gap:10px;display:flex}.budget-reset-dialog{max-width:460px}.form-action-icon{flex:0 0 16px;width:16px;height:16px}.settings-refresh-alert{margin-top:16px;margin-bottom:0}@media (width<=768px){.badge{display:none}.content{width:100%;margin:0 auto;padding:20px}.auth-dialog{padding:18px}.auth-dialog-actions{flex-direction:column-reverse}.auth-dialog-actions .btn{width:100%}.cards{grid-template-columns:repeat(2,1fr)}.page-header{flex-wrap:wrap;gap:12px}.page-header h2{width:100%}.page-header-controls{flex-wrap:wrap;justify-content:space-between;width:100%}.page-with-sticky-date{grid-template-columns:minmax(0,1fr)}.page-with-sticky-date>.date-range-page-header,.page-with-sticky-date>.sticky-date-range{grid-column:1}.page-with-sticky-date>.date-range-page-header{margin-bottom:12px}.page-with-sticky-date>.sticky-date-range{width:100%;margin-bottom:24px;top:10px}.sticky-date-range .date-picker-trigger{justify-content:space-between;width:100%}.usage-log-select{min-width:0}.budget-row{grid-template-columns:1fr}.budget-row-controls{flex-wrap:wrap}.budget-bar-line{grid-template-columns:1fr;gap:5px}.form-grid,.workflow-feature-toggles{grid-template-columns:1fr}.workflow-section-head{flex-direction:column;align-items:flex-start}.table-toolbar{flex-direction:column;align-items:stretch}.table-toolbar-actions{justify-content:stretch;margin-left:0}.table-toolbar-actions .btn{width:100%}.model-editor{padding:16px}.alias-actions-cell,.editor-header{flex-direction:column;align-items:flex-start}.alias-actions-cell .table-action-btn,.editor-header .table-action-btn{width:100%}.alias-actions-cell .table-icon-btn,.editor-header .table-icon-btn{width:36px}.model-list-actions{flex-flow:row;align-items:center}.model-list-actions .table-action-btn{width:auto}.model-list-actions .table-icon-btn{flex-basis:32px;width:32px}.model-editor .editor-header{flex-direction:row;align-items:flex-start}.model-editor .editor-header>:first-child{flex:1;min-width:0}.model-editor .editor-header .dialog-close-btn{flex:0 0 32px;align-self:flex-start;width:32px;min-width:32px}.settings-panel{padding:18px}.budget-settings-actions,.budget-settings-actions .btn{width:100%}}.workflow-conn{background:color-mix(in srgb, var(--accent) 44%, var(--border));flex:1 1 0;width:auto;min-width:13px;height:2px;position:relative}.workflow-conn:after{content:"";background:color-mix(in srgb, var(--accent) 44%, var(--border));clip-path:polygon(0 0,100% 50%,0 100%);width:7px;height:9px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)}.workflow-node{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-surface);text-align:center;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;min-width:72px;padding:8px 12px;display:flex}.auth-key-description{color:var(--text-muted);max-width:220px;font-size:13px}.auth-key-status-badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.auth-key-status-active{background:color-mix(in srgb, var(--success) 12%, var(--bg));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));color:var(--success)}.auth-key-status-inactive{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));color:var(--danger)}.mcp-server-advanced{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg-surface) 72%, var(--bg) 28%);overflow:hidden}.mcp-server-advanced>summary{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;list-style:none;display:flex}.mcp-server-advanced>summary::-webkit-details-marker{display:none}.mcp-server-advanced>summary:after{border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);content:"";flex:none;width:7px;height:7px;transition:transform .15s;transform:rotate(45deg)}.mcp-server-advanced[open]>summary:after{transform:rotate(225deg)}.mcp-server-advanced-summary-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.mcp-server-advanced-title{font-size:13px;font-weight:600}.mcp-server-advanced-fields{border-top:1px solid var(--border);flex-direction:column;gap:16px;padding:14px;display:flex}.copy-feedback-btn{align-items:center;gap:6px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.rate-limit-pressure-row{background-image:linear-gradient(to right, color-mix(in srgb, var(--success) 16%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-high{background-image:linear-gradient(to right, color-mix(in srgb, var(--warning) 20%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-full{background-image:linear-gradient(to right, color-mix(in srgb, var(--danger) 22%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.table-icon-btn.rate-limit-gauge-inherited{color:var(--accent-strong,var(--accent));background:linear-gradient(to right, color-mix(in srgb, var(--accent) 22%, var(--bg)) 50%, var(--bg) 50%);border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.auth-dialog-input-icon{width:16px;height:16px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.auth-dialog-input-shell:focus-within .auth-dialog-input-icon{color:var(--accent)}.auth-dialog-submit-icon{flex:0 0 16px;width:16px;height:16px}.nav-icon{flex:0 0 18px;width:18px;height:18px}.api-key-open-icon{flex:0 0 15px;width:15px;height:15px}.theme-icon{flex:0 0 14px;width:14px;height:14px}.theme-toggle-mobile .theme-icon{flex-basis:16px;width:16px;height:16px}@media (width<=768px){.sidebar-footer .api-key-open-icon{flex-basis:16px;width:16px;height:16px}}.failover-drafts-loading{min-height:96px}.models-loading-state{top:16px;left:var(--sidebar-width);z-index:110;pointer-events:none;--loading-state-min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);width:fit-content;box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);margin:0 auto;padding:10px 14px;position:fixed;right:0}@media (width<=768px){.models-loading-state{left:60px}}.sidebar.sidebar-collapsed~.content .models-loading-state{left:60px}.alias-create-icon{flex:0 0 16px;width:16px;height:16px}.pricing-override-remove-row{margin-bottom:1px}@media (width<=768px){.pricing-override-remove-row{margin-bottom:0}}.pricing-recalculate-dialog{max-width:480px}.settings-refresh-btn.is-refreshing .settings-refresh-icon{transform-origin:50%;animation:.8s linear infinite loading-spin}.cost-source-icon{width:14px;height:14px;color:var(--success);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.cache-savings-icon{width:14px;height:14px;color:var(--accent);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.theme-toggle.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;margin-bottom:10px;padding:2px;display:inline-flex}.theme-btn.svelte-1keql7b{width:28px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.theme-btn.svelte-1keql7b:hover{color:var(--text)}.theme-btn.active.svelte-1keql7b{background:var(--accent);color:#fff}.theme-btn.svelte-1keql7b:focus-visible,.theme-toggle-mobile.svelte-1keql7b:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.theme-toggle-mobile.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:none}.theme-toggle-mobile.svelte-1keql7b:hover{color:var(--text)}.theme-toggle.is-compact.svelte-1keql7b{display:none}.theme-toggle-mobile.is-compact.svelte-1keql7b{margin:0 auto;display:flex}@media (width<=768px){.theme-toggle.svelte-1keql7b{display:none}.theme-toggle-mobile.svelte-1keql7b{margin:0 auto;display:flex}}.sidebar.svelte-1nwtzae{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);-webkit-overflow-scrolling:touch;z-index:10;flex-direction:column;max-height:100vh;transition:flex-basis .2s,width .2s;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar.sidebar-resizing.svelte-1nwtzae{transition:none}.sidebar-header.svelte-1nwtzae{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:20px;display:flex}.sidebar-logo.svelte-1nwtzae{width:28px;height:28px;color:var(--accent);flex-shrink:0}.sidebar-logo.svelte-1nwtzae svg{width:100%;height:100%}.sidebar-header.svelte-1nwtzae h1{letter-spacing:-.3px;font-size:18px;font-weight:700}.sidebar-nav.svelte-1nwtzae{flex-direction:column;flex:1;gap:4px;padding:12px;display:flex}.nav-item.svelte-1nwtzae{border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item.svelte-1nwtzae:hover{background:var(--bg-surface-hover);color:var(--text)}.nav-item.active.svelte-1nwtzae{background:var(--accent);color:#fff}.nav-label.svelte-1nwtzae{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-footer.svelte-1nwtzae{border-top:1px solid var(--border);padding:16px}.api-key-section.svelte-1nwtzae{gap:8px;display:grid}.external-auth-section.svelte-1nwtzae{gap:8px;margin-top:8px;display:grid}.external-auth-user.svelte-1nwtzae{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.external-auth-user.svelte-1nwtzae span:where(.svelte-1nwtzae){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.api-key-open-btn.svelte-1nwtzae{border:1px solid var(--accent);border-radius:var(--radius);width:100%;color:var(--accent);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.api-key-open-btn.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 78%, var(--text));color:color-mix(in srgb, var(--accent) 78%, var(--text))}.api-key-open-btn.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.sidebar-toggle.svelte-1nwtzae{cursor:ew-resize;z-index:11;background:0 0;border:none;flex:0 0 6px;width:6px;height:100vh;padding:0;transition:background .15s;position:sticky;top:0}.sidebar-toggle.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 15%, transparent)}.sidebar-toggle.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}body.sidebar-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae){justify-content:center;padding:16px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae) h1,.sidebar.sidebar-collapsed.svelte-1nwtzae .badge{display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae){padding:8px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:none}@media (width<=768px){.sidebar.svelte-1nwtzae{flex-basis:60px;width:60px}.sidebar-header.svelte-1nwtzae{justify-content:center;padding:16px}.sidebar-header.svelte-1nwtzae h1{display:none}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar-footer.svelte-1nwtzae{gap:8px;padding:8px;display:grid}.sidebar-footer.svelte-1nwtzae .api-key-section:where(.svelte-1nwtzae),.sidebar-footer.svelte-1nwtzae .external-auth-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .external-auth-user:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae){justify-self:center;width:36px;height:36px;min-height:36px;padding:0}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae) span,.sidebar-toggle.svelte-1nwtzae{display:none}}.dialog-close-btn.svelte-11l1bb5{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.dialog-close-btn.svelte-11l1bb5:hover{color:var(--text);background:var(--bg-surface-hover)}.dialog-close-btn.svelte-11l1bb5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-backdrop.svelte-17e0w4c,.editor-modal-backdrop.svelte-17e0w4c{z-index:80;background:#0000007a;position:fixed;inset:0}.auth-dialog-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.editor-modal-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.editor-modal-shell.svelte-17e0w4c>*{overscroll-behavior:contain;width:min(760px,100%);max-height:min(100vh - 40px,960px);margin:0;overflow:auto;box-shadow:0 24px 70px #00000061}@media (width<=768px){.auth-dialog-shell.svelte-17e0w4c,.editor-modal-shell.svelte-17e0w4c{align-items:end;padding:12px}.editor-modal-shell.svelte-17e0w4c>*{max-height:calc(100vh - 24px)}}.external-login-btn.svelte-1dsu6u0{justify-content:center;width:100%;text-decoration:none}.auth-dialog-separator.svelte-1dsu6u0{color:var(--text-muted);align-items:center;gap:10px;font-size:12px;display:flex}.auth-dialog-separator.svelte-1dsu6u0:before,.auth-dialog-separator.svelte-1dsu6u0:after{content:"";border-top:1px solid var(--border);flex:1}.auth-dialog-input-shell.svelte-1dsu6u0{position:relative}.auth-dialog-input.svelte-1dsu6u0{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:11px 12px 11px 38px;font-family:inherit;font-size:14px}.auth-dialog-input.svelte-1dsu6u0:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.flash-region.svelte-1i257xg{top:16px;left:var(--sidebar-width);z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;right:0}.sidebar.sidebar-collapsed~.flash-region.svelte-1i257xg{left:60px}@media (width<=768px){.flash-region.svelte-1i257xg{left:60px}}.flash-toast.svelte-1i257xg{border-radius:var(--radius);pointer-events:auto;align-items:flex-start;gap:10px;width:max-content;max-width:min(480px,100% - 32px);padding:12px 12px 12px 16px;font-size:14px;animation:.9s ease-out svelte-1i257xg-flash-toast-glow;display:flex;box-shadow:0 10px 30px #00000059}@keyframes svelte-1i257xg-flash-toast-glow{0%{box-shadow:0 0 0 4px color-mix(in srgb, currentColor 45%, transparent), 0 10px 30px #00000059}to{box-shadow:0 0 0 4px #0000,0 10px 30px #00000059}}@media (prefers-reduced-motion:reduce){.flash-toast.svelte-1i257xg{animation:none}}.flash-toast-success.svelte-1i257xg{background:color-mix(in srgb, var(--success) 14%, var(--bg-surface));color:var(--success);border:1px solid #34d39959}.flash-toast-error.svelte-1i257xg{background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--warning);border:1px solid #f59e0b66}.flash-toast-text.svelte-1i257xg{overflow-wrap:anywhere;flex:1;min-width:0}.flash-toast-dismiss.svelte-1i257xg{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;flex-shrink:0;padding:0 2px;font-size:18px;line-height:1}.flash-toast-dismiss.svelte-1i257xg:hover{opacity:1}.demo-mode-banner.svelte-1s3mcn8{border:1px solid color-mix(in srgb, var(--warning) 55%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--text);box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:grid}.demo-mode-banner-icon.svelte-1s3mcn8{width:20px;height:20px;color:var(--warning);flex:0 0 20px}.demo-mode-banner-copy.svelte-1s3mcn8{align-items:baseline;gap:8px;min-width:0;font-size:13px;display:flex}.demo-mode-banner.svelte-1s3mcn8 strong{color:var(--warning);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;font-size:12px}.demo-mode-banner-links.svelte-1s3mcn8{justify-content:flex-end;align-items:center;gap:6px;display:flex}.demo-mode-banner-links.svelte-1s3mcn8 a{border:1px solid color-mix(in srgb, var(--warning) 42%, var(--border));border-radius:var(--radius);min-height:28px;color:var(--text);white-space:nowrap;align-items:center;padding:4px 8px;font-size:12px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.demo-mode-banner-links.svelte-1s3mcn8 a:hover{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 16%, transparent);color:var(--text)}.demo-mode-banner-links.svelte-1s3mcn8 a:focus-visible{outline:2px solid color-mix(in srgb, var(--warning) 42%, transparent);outline-offset:2px}@media (width<=768px){.demo-mode-banner.svelte-1s3mcn8{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.demo-mode-banner-copy.svelte-1s3mcn8{gap:2px;display:grid}.demo-mode-banner-links.svelte-1s3mcn8{flex-wrap:wrap;grid-column:2;justify-content:flex-start}}.auth-banner.svelte-1c5yh36{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dp-calendar.svelte-g7ga4u{flex-shrink:0;width:224px}.dp-cal-header.svelte-g7ga4u{justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px;display:flex}.dp-cal-title.svelte-g7ga4u{font-size:13px;font-weight:600}.dp-nav-btn.svelte-g7ga4u{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.dp-nav-btn.svelte-g7ga4u:hover{background:var(--bg-surface-hover);color:var(--text)}.dp-nav-btn.svelte-g7ga4u:disabled{opacity:.3;cursor:default;pointer-events:none}.dp-nav-prev-mobile.svelte-g7ga4u{display:none}.dp-weekdays.svelte-g7ga4u{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.dp-weekdays.svelte-g7ga4u span:where(.svelte-g7ga4u){color:var(--text-muted);padding:4px 0;font-size:11px;font-weight:600}.dp-days.svelte-g7ga4u{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.dp-day.svelte-g7ga4u{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-family:inherit;font-size:12px;transition:all .1s;display:flex}.dp-day.svelte-g7ga4u:hover:not(.disabled):not(.other-month){background:var(--bg-surface-hover)}.dp-day.other-month.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default}.dp-day.today.svelte-g7ga4u{color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}.dp-day.in-range.svelte-g7ga4u{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:0}.dp-day.range-start.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:6px 0 0 6px;font-weight:600}.dp-day.range-end.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:0 6px 6px 0;font-weight:600}.dp-day.range-start.range-end.svelte-g7ga4u{border-radius:6px}.dp-day.range-start.today.svelte-g7ga4u,.dp-day.range-end.today.svelte-g7ga4u{box-shadow:none}.dp-day.disabled.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default;pointer-events:none}@media (width<=768px){.dp-nav-prev-mobile.svelte-g7ga4u{display:flex}}.date-picker.svelte-ax7ma4{position:relative}.date-picker-trigger.svelte-ax7ma4{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s;display:inline-flex}.date-picker-trigger.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.date-picker-trigger.svelte-ax7ma4 svg:where(.svelte-ax7ma4){color:var(--text-muted);flex-shrink:0}.date-picker-chevron.svelte-ax7ma4{transition:transform .15s}.date-picker-chevron.open.svelte-ax7ma4{transform:rotate(180deg)}.date-picker-dropdown.svelte-ax7ma4{z-index:100;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000040}.date-picker-presets.svelte-ax7ma4{border-right:1px solid var(--border);flex-direction:column;gap:2px;min-width:140px;padding:8px;display:flex}.preset-btn.svelte-ax7ma4{color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s}.preset-btn.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.preset-btn.active.svelte-ax7ma4{background:var(--accent);color:#fff}.date-picker-calendars.svelte-ax7ma4{flex-wrap:nowrap;gap:16px;padding:12px;display:flex}.dp-cursor-hint.svelte-ax7ma4{pointer-events:none;z-index:101;background:var(--bg-surface);color:var(--text);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:500;display:flex;position:fixed;transform:translate(12px,-50%)}.dp-cursor-hint.svelte-ax7ma4 svg:where(.svelte-ax7ma4){width:12px;height:12px;color:var(--accent);flex-shrink:0}@media (width<=768px){.date-picker-dropdown.svelte-ax7ma4{border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto}.date-picker-presets.svelte-ax7ma4{-webkit-overflow-scrolling:touch;border-right:none;border-bottom:1px solid var(--border);flex-flow:row;min-width:0;overflow-x:auto}.date-picker-calendars.svelte-ax7ma4{justify-content:center}.date-picker-calendars.svelte-ax7ma4>.dp-calendar:first-child{display:none}}.segmented-control.svelte-92fh5i{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.segmented-btn.svelte-92fh5i{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.segmented-btn.svelte-92fh5i:hover{color:var(--text)}.segmented-btn.active.svelte-92fh5i{background:var(--accent);color:#fff}@media (width<=768px){.segmented-btn.svelte-92fh5i{padding:4px 8px;font-size:11px}}.live-tokens.svelte-17qr2ta{margin-bottom:28px}.live-tokens-heading.svelte-17qr2ta{flex-direction:column;gap:2px;display:flex}.live-tokens-subtitle.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.live-tokens-legend.svelte-17qr2ta{flex-wrap:wrap;gap:8px 18px;margin-bottom:16px;display:flex}.live-tokens-legend-item.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:7px;font-size:12px;display:inline-flex}.live-tokens-swatch.svelte-17qr2ta{border-radius:2px;flex-shrink:0;width:10px;height:10px}.live-tokens-legend-value.svelte-17qr2ta{color:var(--text);font-weight:600}.live-tokens-empty.svelte-17qr2ta .live-tokens-empty-text:where(.svelte-17qr2ta){color:var(--text-muted);font-size:13px}.provider-status-flag.svelte-6tr9cf{grid-column:span 2}.provider-status-overview-card.svelte-6tr9cf{grid-column:span 1}.provider-status-flag.is-healthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, var(--bg-surface))}.provider-status-flag.is-degraded.svelte-6tr9cf{border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-flag.is-unhealthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface))}.provider-status-value.svelte-6tr9cf{margin-bottom:8px}.provider-status-card-link.svelte-6tr9cf{color:var(--accent-strong,var(--accent));font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:13px;font-weight:600}.provider-status-card-link.svelte-6tr9cf:hover{color:var(--text);text-decoration:underline}.provider-status-card-link.svelte-6tr9cf:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:3px;border-radius:4px}.provider-status-card-note.svelte-6tr9cf{color:var(--text-muted);font-size:13px;display:block}@media (width>=720px){.card-wide.svelte-6tr9cf{grid-column:span 2}}.cache-token-value.svelte-6tr9cf{flex-wrap:wrap;align-items:center;gap:6px;line-height:1;display:flex}.cache-token-part.svelte-6tr9cf{align-items:center;display:inline-flex}.cache-token-operator.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;font-size:24px;font-weight:600;line-height:1}.cache-token-marker.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;margin-left:2px;font-size:14px;font-weight:700}.prompt-cache-gauge.svelte-6tr9cf{width:120px;height:60px;margin:8px auto 0;position:relative;overflow:hidden}.prompt-cache-gauge.svelte-6tr9cf canvas{display:block}.prompt-cache-gauge-value.svelte-6tr9cf{text-align:center;color:var(--text);font-size:18px;font-weight:700;line-height:1;position:absolute;bottom:4px;left:0;right:0}@media (width<=768px){.provider-status-flag.svelte-6tr9cf{grid-column:span 1}}.mcp-servers-flag.svelte-6tr9cf{grid-column:span 1}.cache-meter-header.svelte-1yzecxj{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:16px;display:flex}.cache-meter-header.svelte-1yzecxj h3{font-size:16px;font-weight:600}.cache-meter-subtitle.svelte-1yzecxj{color:var(--text-muted);font-size:13px}.cache-meter-bar.svelte-1yzecxj{background:var(--bg-surface-hover);border-radius:6px;width:100%;height:28px;display:flex;overflow:hidden}.cache-meter-segment.svelte-1yzecxj{justify-content:center;align-items:center;min-width:3px;height:100%;transition:width .3s;display:flex;overflow:hidden}.cache-meter-segment-label.svelte-1yzecxj{color:#fff;white-space:nowrap;text-shadow:0 1px 2px #00000073;font-size:12px;font-weight:600;line-height:1}.cache-meter-segment.svelte-1yzecxj+.cache-meter-segment:where(.svelte-1yzecxj){box-shadow:-1px 0 0 var(--bg-surface)}.cache-meter-bar.is-empty.svelte-1yzecxj{background:var(--bg-surface-hover);justify-content:center;align-items:center;height:auto;min-height:28px;padding:6px 12px}.cache-meter-legend.svelte-1yzecxj{flex-wrap:wrap;gap:10px 24px;margin-top:16px;display:flex}.cache-meter-legend-item.svelte-1yzecxj{align-items:center;gap:8px;font-size:13px;display:flex}.cache-meter-swatch.svelte-1yzecxj{border-radius:3px;flex-shrink:0;width:12px;height:12px}.cache-meter-legend-label.svelte-1yzecxj{color:var(--text)}.cache-meter-legend-pct.svelte-1yzecxj{color:var(--text);font-weight:600}.cache-meter-legend-tokens.svelte-1yzecxj{color:var(--text-muted)}.cache-meter-empty.svelte-1yzecxj{color:var(--text-muted);text-align:center;font-size:13px}.spinner.svelte-b54l9o{width:var(--spinner-size);height:var(--spinner-size);border:2px solid var(--border,#80808059);border-top-color:var(--accent,currentColor);border-radius:50%;flex:none;animation:.7s linear infinite svelte-b54l9o-spinner-rotate;display:inline-block}@keyframes svelte-b54l9o-spinner-rotate{to{transform:rotate(360deg)}}.contribution-calendar-section.svelte-3hfxuq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:24px;padding:24px}.contribution-calendar-header.svelte-3hfxuq{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.contribution-calendar-header.svelte-3hfxuq h3{font-size:16px;font-weight:600}.contribution-calendar-grid-wrapper.svelte-3hfxuq{gap:8px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq{flex-direction:column;gap:2px;padding-top:22px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq span{height:13px;color:var(--text-muted);text-align:right;min-width:28px;font-size:10px;line-height:13px}.contribution-calendar-scroll.svelte-3hfxuq{--contribution-week-size:13px;--contribution-week-gap:2px;flex:1;min-width:0;overflow-x:auto}.contribution-calendar-months.svelte-3hfxuq{grid-auto-columns:var(--contribution-week-size);gap:var(--contribution-week-gap);grid-auto-flow:column;height:16px;margin-bottom:6px;display:grid}.contribution-calendar-month-label.svelte-3hfxuq{color:var(--text-muted);white-space:nowrap;font-size:10px}.contribution-calendar-grid.svelte-3hfxuq{gap:var(--contribution-week-gap);display:flex}.contribution-calendar-week.svelte-3hfxuq{flex-direction:column;gap:2px;display:flex}.contribution-calendar-cell.svelte-3hfxuq{width:var(--contribution-week-size);height:var(--contribution-week-size);background:var(--cal-level-0);border-radius:2px}.contribution-calendar-cell.level-1.svelte-3hfxuq{background:var(--cal-level-1)}.contribution-calendar-cell.level-2.svelte-3hfxuq{background:var(--cal-level-2)}.contribution-calendar-cell.level-3.svelte-3hfxuq{background:var(--cal-level-3)}.contribution-calendar-cell.level-4.svelte-3hfxuq{background:var(--cal-level-4)}.contribution-calendar-cell.level-5.svelte-3hfxuq{background:var(--cal-level-5)}.contribution-calendar-cell.level-6.svelte-3hfxuq{background:var(--cal-level-6)}.contribution-calendar-cell.level-7.svelte-3hfxuq{background:var(--cal-level-7)}.contribution-calendar-cell.level-8.svelte-3hfxuq{background:var(--cal-level-8)}.contribution-calendar-cell.level-9.svelte-3hfxuq{background:var(--cal-level-9)}.contribution-calendar-cell.level-10.svelte-3hfxuq{background:var(--cal-level-10)}.contribution-calendar-cell.empty.svelte-3hfxuq{background:0 0}.contribution-calendar-footer.svelte-3hfxuq{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.contribution-calendar-meta.svelte-3hfxuq{flex-direction:column;gap:4px;display:flex}.contribution-calendar-summary.svelte-3hfxuq{color:var(--text-muted);font-size:12px}.contribution-calendar-legend.svelte-3hfxuq{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.contribution-calendar-legend.svelte-3hfxuq .contribution-calendar-cell:where(.svelte-3hfxuq){cursor:default;width:11px;height:11px}.contribution-calendar-tooltip.svelte-3hfxuq{z-index:200;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);white-space:nowrap;pointer-events:none;border-radius:4px;padding:4px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;position:fixed;transform:translate(-50%);box-shadow:0 4px 12px #0003}@media (width<=768px){.contribution-calendar-day-labels.svelte-3hfxuq{display:none}.contribution-calendar-section.svelte-3hfxuq{padding:16px}.contribution-calendar-footer.svelte-3hfxuq{flex-direction:column;align-items:flex-start}}.inline-help-toggle.is-open.svelte-y40or3{color:var(--text);background:0 0}.inline-help-toggle.is-open.svelte-y40or3 .inline-help-toggle-icon{transform:rotate(540deg)}.audit-stats-section.svelte-14e9yan{margin-top:24px}.audit-stats-header.svelte-14e9yan{align-items:flex-start}.audit-stats-kpis.svelte-14e9yan{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.audit-stats-kpi.svelte-14e9yan{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.audit-stats-kpi-value.svelte-14e9yan{color:var(--text);font-size:13px}.audit-stats-kpi-dot.svelte-14e9yan{border-radius:2px;flex-shrink:0;width:8px;height:8px}.audit-stats-dot-2xx.svelte-14e9yan{background:var(--success)}.audit-stats-dot-4xx.svelte-14e9yan{background:var(--warning)}.audit-stats-dot-5xx.svelte-14e9yan{background:var(--danger)}.provider-status-details.svelte-6y9wjv{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .28s,opacity .22s;display:grid}.provider-status-details.is-expanded.svelte-6y9wjv{opacity:1;grid-template-rows:1fr}.provider-status-details.is-collapsed.svelte-6y9wjv{pointer-events:none}.provider-status-details-inner.svelte-6y9wjv{flex-direction:column;gap:14px;min-height:0;display:flex;overflow:hidden}.provider-status-reason.svelte-6y9wjv{color:var(--text-muted);font-size:13px}.provider-status-error.svelte-6y9wjv{color:var(--danger);overflow-wrap:break-word;font-size:12px}.provider-status-config-label.svelte-6y9wjv{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-config.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}.provider-status-config-row.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-config-value.svelte-6y9wjv{color:var(--text);overflow-wrap:break-word;font-size:13px;display:block}.provider-status-health.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-bottom:12px;padding-top:12px;display:flex}.provider-status-health-state.svelte-6y9wjv{border:1px solid var(--border);border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.provider-status-health-state.is-healthy.svelte-6y9wjv{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-health-state.is-degraded.svelte-6y9wjv{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-health-state.is-unhealthy.svelte-6y9wjv{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-health-models.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-health-model.svelte-6y9wjv{color:var(--text);justify-content:space-between;gap:8px;font-size:13px;display:flex}.provider-status-health-model.is-flagged.svelte-6y9wjv{color:var(--danger)}.provider-status-health-model-name.svelte-6y9wjv{overflow-wrap:anywhere}.provider-status-health-model-stats.svelte-6y9wjv{white-space:nowrap;color:var(--text-muted)}.provider-status-health-model.is-flagged.svelte-6y9wjv .provider-status-health-model-stats:where(.svelte-6y9wjv){color:var(--danger);font-weight:700}.provider-status-card.svelte-nopjmh{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:18px;display:flex}.provider-status-card-toggle.svelte-nopjmh{border:0;border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin:auto -18px -18px;padding:7px 0;transition:background .15s,color .15s;display:flex}.provider-status-card-toggle.svelte-nopjmh:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text)}.provider-status-card-toggle.svelte-nopjmh:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:-2px}.provider-status-card-toggle.svelte-nopjmh .provider-status-card-toggle-icon{width:16px;height:16px;transition:transform .28s;display:block}.provider-status-card-toggle.is-expanded.svelte-nopjmh .provider-status-card-toggle-icon{transform:rotate(180deg)}.provider-status-card-head.svelte-nopjmh{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.provider-status-name.svelte-nopjmh{letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:16px;font-weight:700;display:flex}.provider-doc-help.svelte-nopjmh{align-self:center;text-decoration:none}.provider-status-name-type.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-pill.svelte-nopjmh{border:1px solid var(--border);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.provider-status-pill.is-healthy.svelte-nopjmh{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-pill.is-degraded.svelte-nopjmh{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-pill.is-unhealthy.svelte-nopjmh{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-meta.svelte-nopjmh{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.provider-status-meta-item.svelte-nopjmh{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.provider-status-meta-label.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-meta-value.svelte-nopjmh{color:var(--text);font-size:14px}@media (width<=768px){.provider-status-meta.svelte-nopjmh{grid-template-columns:1fr}}.provider-status-section-loading.svelte-1kx3uw4{justify-content:center;padding:24px 0;display:flex}.provider-status-section-header.svelte-1kx3uw4{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.provider-status-toggle.svelte-1kx3uw4{background:var(--bg-surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.provider-status-toggle.svelte-1kx3uw4:hover{background:var(--bg-surface-hover)}.provider-status-toggle.svelte-1kx3uw4:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.provider-status-toggle-copy.svelte-1kx3uw4{white-space:nowrap}.provider-status-toggle-track.svelte-1kx3uw4{background:color-mix(in srgb, var(--text-muted) 35%, var(--border));border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background-color .2s;position:relative}.provider-status-toggle-track.is-active.svelte-1kx3uw4{background:color-mix(in srgb, var(--accent) 82%, var(--bg-surface))}.provider-status-toggle-thumb.svelte-1kx3uw4{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000003d}.provider-status-toggle-track.is-active.svelte-1kx3uw4 .provider-status-toggle-thumb:where(.svelte-1kx3uw4){transform:translate(14px)}.provider-status-grid.svelte-1kx3uw4{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:16px;display:grid}@media (width<=768px){.provider-status-section-header.svelte-1kx3uw4{flex-direction:column;align-items:flex-start}.provider-status-toggle.svelte-1kx3uw4{justify-content:space-between;width:100%}}.filter-input-wrap.svelte-30xz1k{flex:1;width:100%;min-width:min(400px,100%);display:flex;position:relative}.filter-input.svelte-30xz1k{flex:1;width:100%;min-width:0;padding-left:34px}.filter-input-wrap.svelte-30xz1k .filter-input-icon{width:14px;height:14px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.usage-page-filters.svelte-1oi6ywk{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.usage-page-filters.svelte-1oi6ywk .usage-log-select{flex:0 auto}.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-session{flex:220px;min-width:180px;max-width:360px}.active-session-filter.svelte-1oi6ywk{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent-strong,var(--accent));cursor:pointer;white-space:nowrap;border-radius:999px;align-self:center;padding:6px 10px;font-size:12px}.active-session-filter.svelte-1oi6ywk:hover{background:color-mix(in srgb, var(--accent) 25%, var(--bg))}@media (width<=768px){.usage-page-filters.svelte-1oi6ywk .usage-log-select,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-session{flex:100%;max-width:none}}.pro-saved-value.svelte-1qiwzdu{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.pro-saved-delta.svelte-1qiwzdu{color:var(--success);letter-spacing:0;font-size:13px;font-weight:600}.pagination-info.svelte-1imew3q{color:var(--text-muted);font-size:13px}.pagination-buttons.svelte-1imew3q{gap:8px;display:flex}.session-id-chip.svelte-1pkjhcn{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg));max-width:290px;color:var(--accent-strong,var(--accent));vertical-align:middle;border-radius:999px;align-items:stretch;display:inline-flex;overflow:hidden}.session-id-chip.svelte-1pkjhcn:hover,.session-id-chip.active.svelte-1pkjhcn{background:color-mix(in srgb, var(--accent) 20%, var(--bg));border-color:var(--accent)}.session-id-filter.svelte-1pkjhcn,.session-id-copy.svelte-1pkjhcn{color:inherit;cursor:pointer;background:0 0;border:0}.session-id-filter.svelte-1pkjhcn{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:4px 8px;font-size:12px;overflow:hidden}.session-id-copy.svelte-1pkjhcn{border-left:1px solid color-mix(in srgb, var(--accent) 25%, var(--border));justify-content:center;align-items:center;width:28px;padding:0 7px;display:inline-flex}.session-id-copy.svelte-1pkjhcn:hover,.session-id-copy.copied.svelte-1pkjhcn{background:color-mix(in srgb, var(--accent) 18%, transparent)}.session-id-copy.svelte-1pkjhcn svg{width:13px;height:13px}.session-id-chip.compact.svelte-1pkjhcn{max-width:220px}.session-id-chip.compact.svelte-1pkjhcn .session-id-filter:where(.svelte-1pkjhcn){padding:3px 7px;font-size:11px}.session-id-chip.compact.svelte-1pkjhcn .session-id-copy:where(.svelte-1pkjhcn){width:25px;padding:0 6px}.usage-breakdown-loading.svelte-1kee4g8{justify-content:center;align-items:center;min-height:120px;display:flex}.chart-view-toggle.svelte-1kee4g8{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.chart-view-btn.svelte-1kee4g8{width:30px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.chart-view-btn.svelte-1kee4g8:hover{color:var(--text)}.chart-view-btn.active.svelte-1kee4g8{background:var(--accent);color:#fff}.chart-view-btn.svelte-1kee4g8 svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.usage-chart-table-wrapper.svelte-1kee4g8{-webkit-overflow-scrolling:touch;margin-top:0;overflow-x:auto}.usage-chart-data-table.svelte-1kee4g8{min-width:max-content}.usage-chart-data-table.svelte-1kee4g8 th,.usage-chart-data-table.svelte-1kee4g8 td{white-space:nowrap}.usage-log-loading.svelte-hg4ill{justify-content:center;align-items:center;min-height:120px;display:flex}.usage-log-section.svelte-hg4ill{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.usage-log-section.svelte-hg4ill h3{margin-bottom:16px;font-size:16px;font-weight:600}.usage-log-section.svelte-hg4ill .table-wrapper{overflow-x:auto}.usage-log-toolbar.svelte-hg4ill{gap:12px;margin-bottom:16px;display:grid}.usage-filter-row.svelte-hg4ill{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:12px;display:grid}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1/-1}.usage-filter-row-options.svelte-hg4ill{grid-template-columns:1fr}.usage-log-checkbox.svelte-hg4ill{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.usage-log-checkbox.svelte-hg4ill input{cursor:pointer;width:16px;height:16px}.usage-ts.svelte-hg4ill{white-space:nowrap;font-size:12px}.usage-log-row-cached.svelte-hg4ill td{opacity:.75;font-style:italic}.usage-log-row-cached.svelte-hg4ill .usage-log-cache-cell:where(.svelte-hg4ill){font-weight:700}.caveat-icon.svelte-hg4ill{color:var(--warning);cursor:help;margin-left:4px;font-size:14px}@media (width<=768px){.usage-log-toolbar.svelte-hg4ill{gap:10px}.usage-filter-row.svelte-hg4ill{grid-template-columns:1fr}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1}.usage-log-table.svelte-hg4ill{display:block;overflow-x:auto}}.usage-sticky-controls.svelte-spwie6{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.usage-charts-grid.svelte-spwie6{flex-wrap:wrap;gap:24px;margin-bottom:24px;display:flex}.usage-charts-grid.svelte-spwie6 .model-chart-section{flex:calc(50% - 24px);min-width:420px;margin-bottom:0}.usage-session-breakdown-wrap.svelte-spwie6{margin-bottom:24px}.usage-session-breakdown-wrap.svelte-spwie6 .session-usage-breakdown{width:100%;margin-bottom:0}@media (width<=520px){.usage-charts-grid.svelte-spwie6 .model-chart-section{min-width:0}}.loading-state.svelte-hzxv1d{min-height:var(--loading-state-min-height,64px);color:var(--text-muted);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.budget-bar-text-row-on-fill.svelte-1jm56wo{color:#fff;clip-path:inset(0 calc(100% - var(--budget-progress,0%)) 0 0)}.budget-bar-text-start.svelte-1jm56wo{left:8px;transform:translateY(-50%)}.budget-bar-track-period-custom.svelte-1jm56wo .budget-bar-text-row-on-fill:where(.svelte-1jm56wo){color:#3f332a}.budget-override-dialog.svelte-13ryo7h{max-width:460px}.budget-sort-control.svelte-1752fqe{align-items:center;gap:8px}.budget-sort-control.svelte-1752fqe label{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.budget-sort-select.svelte-1752fqe{background-color:var(--bg-surface);min-width:132px}.budget-sort-select.svelte-1752fqe:hover{background-color:var(--bg-surface-hover)}.model-name-cell.svelte-1iynym{flex-direction:column;gap:8px;display:flex}.model-name-primary.svelte-1iynym{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.model-name-secondary.svelte-1iynym{color:var(--text-muted);font-size:12px}.model-redirect-remove-btn.svelte-1iynym{appearance:none;color:var(--danger);cursor:pointer;background:0 0;border:0;margin-left:4px;padding:0;font-size:11px}.model-redirect-remove-btn.svelte-1iynym:hover:not(:disabled){text-decoration:underline}.model-redirect-remove-btn.svelte-1iynym:disabled{opacity:.45;cursor:default}.model-kind-icon.svelte-1iynym{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border));background:var(--bg);width:24px;height:24px;color:var(--accent);border-radius:999px;flex:0 0 24px;justify-content:center;align-items:center;display:inline-flex}.model-kind-icon-svg.svelte-1iynym{width:14px;height:14px}.model-row-actions.svelte-1iynym{text-align:right;width:170px}@media (width<=768px){.model-name-primary.svelte-1iynym{flex-direction:column;align-items:flex-start}}.provider-group-row.svelte-1911hy6 td{background:color-mix(in srgb, var(--accent) 6%, var(--bg));padding-top:12px;padding-bottom:12px}.provider-group-row.svelte-1911hy6:hover td{background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.provider-group-header.svelte-1911hy6{justify-content:space-between;align-items:center;gap:16px;display:flex}.provider-group-meta.svelte-1911hy6{flex-direction:column;gap:4px;min-width:0;display:flex}.provider-group-title.svelte-1911hy6{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.provider-group-type.svelte-1911hy6,.provider-group-count.svelte-1911hy6,.provider-group-summary.svelte-1911hy6{color:var(--text-muted);font-size:12px}@media (width<=768px){.provider-group-header.svelte-1911hy6{flex-direction:column;align-items:flex-start}}.vm-session-affinity-checkbox.svelte-d1j6xw{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.vm-session-affinity-checkbox.svelte-d1j6xw input:where(.svelte-d1j6xw){accent-color:var(--accent);cursor:pointer}.pricing-override-rows.svelte-u8snes{gap:12px;display:grid}.pricing-override-row.svelte-u8snes{grid-template-columns:minmax(220px,1fr) minmax(130px,180px) 32px;align-items:end;gap:12px;display:grid}.pricing-override-row-actions.svelte-u8snes{justify-content:flex-start;display:flex}.pricing-override-tier-note.svelte-u8snes{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:6px;padding:10px 12px;font-size:13px}.pricing-preview.svelte-u8snes{border:1px solid var(--border);border-radius:6px;overflow:hidden}.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:minmax(150px,1fr) minmax(90px,auto) minmax(130px,.8fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.pricing-preview-header.svelte-u8snes{background:var(--bg);color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.pricing-preview-row.svelte-u8snes{border-top:1px solid var(--border);font-size:13px}.pricing-preview-row-empty.svelte-u8snes{color:var(--text-muted);grid-template-columns:1fr}@media (width<=768px){.pricing-override-row.svelte-u8snes,.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:1fr}}.failover-drafts-editor.svelte-1n87bip{flex-direction:column;gap:16px;display:flex}.failover-draft-header-actions.svelte-1n87bip{flex:none;align-items:center;gap:10px;display:flex}.failover-draft-counter.svelte-1n87bip{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.failover-draft-toolbar.svelte-1n87bip{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.failover-draft-toolbar.svelte-1n87bip .filter-input-wrap,.failover-draft-toolbar.svelte-1n87bip .filter-input{min-width:0}.failover-draft-toggle-all.svelte-1n87bip{flex:none}.failover-draft-list.svelte-1n87bip{flex-direction:column;gap:8px;max-height:min(52vh,430px);padding-right:4px;display:flex;overflow-y:auto}.failover-draft-row.svelte-1n87bip{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:10px;display:grid}.failover-draft-row.svelte-1n87bip:hover{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));background:var(--bg-surface-hover)}.failover-draft-row.svelte-1n87bip input{width:16px;height:16px;margin-top:2px}.failover-draft-copy.svelte-1n87bip{gap:4px;min-width:0;display:grid}.failover-draft-source.svelte-1n87bip,.failover-draft-targets.svelte-1n87bip{overflow-wrap:anywhere}.failover-draft-targets.svelte-1n87bip{color:var(--text-muted);font-size:12px}.failover-drafts-empty.svelte-1n87bip{align-items:center;min-height:96px;display:flex}.failover-draft-actions.svelte-1n87bip{margin-top:0}.category-tabs.svelte-scpjps{-webkit-overflow-scrolling:touch;align-items:center;gap:4px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.category-tab.svelte-scpjps{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.category-tab.svelte-scpjps:hover{color:var(--text);background:var(--bg-surface-hover)}.category-tab.active.svelte-scpjps{background:var(--accent);color:#fff;border-color:var(--accent)}.category-tab.svelte-scpjps .tab-count:where(.svelte-scpjps){background:#ffffff26;border-radius:9px;justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 5px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.category-tab.svelte-scpjps:not(.active) .tab-count:where(.svelte-scpjps){background:var(--bg)}@media (width<=768px){.category-tabs.svelte-scpjps{gap:4px}.category-tab.svelte-scpjps{padding:5px 10px;font-size:12px}}.workflow-pipeline-meta.svelte-1viff7o{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 86%, transparent);min-width:0;max-width:calc(100% - 28px);color:var(--text-muted);white-space:nowrap;appearance:none;cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:0;padding:2px 10px;font-size:12px;font-weight:500;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex;position:absolute;top:12px;right:14px;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover,.workflow-pipeline-meta.svelte-1viff7o:focus-visible{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface));color:color-mix(in srgb, var(--accent) 74%, var(--text))}.workflow-pipeline-meta.svelte-1viff7o:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.workflow-pipeline-meta-label.svelte-1viff7o{flex:none;font-weight:700}.workflow-pipeline-meta-placeholder.svelte-1viff7o{opacity:1;flex:none;max-width:3ch;margin-left:4px;transition:max-width .18s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta-value.svelte-1viff7o{opacity:0;text-overflow:clip;flex:0 auto;max-width:0;margin-left:0;transition:max-width .22s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o){opacity:0;max-width:0;margin-left:0}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o){opacity:1;max-width:42ch;margin-left:4px}.workflow-pipeline-meta-icon.svelte-1viff7o{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:14px;margin-left:0;line-height:0;transition:width .18s,margin-left .18s,opacity .15s,transform .18s;display:inline-flex;overflow:hidden;transform:translate(4px)translateY(1px)scale(.84)}.workflow-pipeline-meta-icon.svelte-1viff7o svg{width:14px;height:14px}.workflow-pipeline-meta-copied.svelte-1viff7o,.workflow-pipeline-meta-copied.svelte-1viff7o:hover,.workflow-pipeline-meta-copied.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-icon:where(.svelte-1viff7o){opacity:1;width:14px;margin-left:6px;transform:translateY(1px)}.workflow-pipeline-meta-error.svelte-1viff7o,.workflow-pipeline-meta-error.svelte-1viff7o:hover,.workflow-pipeline-meta-error.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 34%, var(--border));color:var(--danger)}.workflow-pipeline.svelte-nbptrg{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);flex-direction:column;gap:0;margin-bottom:12px;padding:18px 20px 20px;display:flex;position:relative}.workflow-pipeline-has-meta.svelte-nbptrg{padding-top:42px}.workflow-pipeline-row.svelte-nbptrg{align-items:center;width:100%;min-width:0;display:flex;overflow-x:auto}.workflow-node-icon.svelte-nbptrg{border-radius:var(--radius);background:var(--bg);width:28px;height:28px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.workflow-node-icon.svelte-nbptrg svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.workflow-node-label.svelte-nbptrg{letter-spacing:.03em;color:var(--text);white-space:nowrap;font-size:11px;font-weight:700;line-height:1.2}.workflow-node-sub.svelte-nbptrg{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:120px;font-size:10px;font-weight:500;line-height:1.2;font-family:var(--font-mono,ui-monospace, monospace);overflow:hidden}.workflow-node-badge.svelte-nbptrg{border-radius:var(--radius);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);align-items:center;padding:2px 7px;font-size:9px;font-weight:800;line-height:1.5;display:inline-flex}.workflow-node-endpoint.svelte-nbptrg{border-radius:var(--radius);border-color:var(--border);background:var(--bg-surface);flex-direction:row;gap:7px;min-width:auto;padding:10px 14px}.workflow-node-icon-endpoint.svelte-nbptrg{border-radius:var(--radius);width:auto;height:auto;color:var(--text-muted);background:0 0;justify-content:flex-start;padding:0}.workflow-node-icon-endpoint.svelte-nbptrg svg{width:14px;height:14px}.workflow-node-endpoint.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted);font-size:11px;font-weight:600}.workflow-node-feature.svelte-nbptrg{border-color:color-mix(in srgb, var(--accent) 46%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface))}.workflow-node-feature.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--accent) 70%, var(--text-muted))}.workflow-node-ai.svelte-nbptrg{border-radius:var(--radius);gap:6px;min-width:96px;padding:12px 16px}.workflow-async-section.svelte-nbptrg{justify-content:flex-end;align-items:center;gap:0;width:100%;min-width:0;margin-top:10px;display:flex}.workflow-async-turn.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 60px;height:2px;position:relative}.workflow-async-turn.svelte-nbptrg:before{content:"";background:color-mix(in srgb, var(--text-muted) 40%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);width:7px;height:9px;position:absolute;top:50%;left:-7px;transform:translateY(-50%)}.workflow-async-turn.svelte-nbptrg:after{content:"";border-right:2px dashed color-mix(in srgb, var(--text-muted) 40%, var(--border));height:16px;position:absolute;bottom:1px;right:0}.workflow-async-row.svelte-nbptrg{align-items:center;min-width:0;margin-right:7px;display:flex}.workflow-conn-async.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 24px;width:24px}.workflow-conn-async.svelte-nbptrg:after{background:color-mix(in srgb, var(--text-muted) 45%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);left:-1px;right:auto}.workflow-node-async.svelte-nbptrg{border-radius:var(--radius);border-style:dashed;flex-direction:row;gap:7px;min-width:auto;padding:7px 12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){border-radius:var(--radius);width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg) svg{width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){font-size:10px;font-weight:700}.workflow-async-label.svelte-nbptrg{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);opacity:.55;white-space:nowrap;flex-shrink:0;align-items:center;margin-left:8px;font-size:9px;font-weight:800;display:inline-flex}.workflow-node-success.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 18%, var(--bg));color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 85%, var(--text))}.workflow-node-success.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 74%, var(--text-muted))}.workflow-node-success.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 14%, var(--bg));border-color:color-mix(in srgb, var(--success) 38%, var(--border));color:var(--success)}.workflow-node-current.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 16%, var(--bg));color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 85%, var(--text))}.workflow-node-current.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 72%, var(--text-muted))}.workflow-node-current.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 13%, var(--bg));border-color:color-mix(in srgb, var(--info) 36%, var(--border));color:var(--info)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 85%, var(--text))}.workflow-node-warning.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 72%, var(--text-muted))}.workflow-node-warning.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 38%, var(--border));color:var(--warning)}.workflow-node-error.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--danger) 14%, var(--bg));color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 85%, var(--text))}.workflow-node-error.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 72%, var(--text-muted))}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 12%, var(--bg));color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg),.workflow-node-neutral.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--text-muted) 84%, var(--border))}.workflow-node-neutral.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 10%, var(--bg));border-color:color-mix(in srgb, var(--text-muted) 28%, var(--border));color:var(--text-muted)}.workflow-conn-hit.svelte-nbptrg,.workflow-conn-hit.svelte-nbptrg:after{background:color-mix(in srgb, var(--success) 58%, var(--border))}.workflow-conn-dim.svelte-nbptrg,.workflow-conn-dim.svelte-nbptrg:after{background:color-mix(in srgb, var(--border) 75%, transparent)}.workflow-node-success.svelte-nbptrg{border-color:color-mix(in srgb, var(--success) 52%, var(--border));background:color-mix(in srgb, var(--success) 9%, var(--bg-surface))}.workflow-node-current.svelte-nbptrg{border-color:color-mix(in srgb, var(--info) 56%, var(--border));background:color-mix(in srgb, var(--info) 10%, var(--bg-surface))}.workflow-node-warning.svelte-nbptrg{border-color:color-mix(in srgb, var(--warning) 52%, var(--border));background:color-mix(in srgb, var(--warning) 9%, var(--bg-surface))}.workflow-node-error.svelte-nbptrg{border-color:color-mix(in srgb, var(--danger) 52%, var(--border));background:color-mix(in srgb, var(--danger) 9%, var(--bg-surface))}.workflow-node-neutral.svelte-nbptrg{border-color:color-mix(in srgb, var(--text-muted) 40%, var(--border));background:color-mix(in srgb, var(--text-muted) 8%, var(--bg-surface))}.workflow-node-skipped.svelte-nbptrg{opacity:.28;position:relative}.workflow-card.svelte-1fo9fvq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:20px;display:flex}.workflow-card-head.svelte-1fo9fvq{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-card-footer.svelte-1fo9fvq{flex-direction:column;align-items:stretch;gap:10px;display:flex}.workflow-card-head.svelte-1fo9fvq h3{font-size:18px;font-weight:700}.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.workflow-card-meta-footer.svelte-1fo9fvq{justify-content:flex-start}.workflow-card-footer.svelte-1fo9fvq .alias-actions-cell{align-self:flex-end}.workflow-card-description.svelte-1fo9fvq{color:var(--text-muted);font-size:14px}.workflow-guardrails.svelte-1fo9fvq{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list.svelte-1fo9fvq{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-item.svelte-1fo9fvq{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}@media (width<=768px){.workflow-card-head.svelte-1fo9fvq,.workflow-card-footer.svelte-1fo9fvq,.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq,.workflow-guardrail-item.svelte-1fo9fvq{flex-direction:column;align-items:flex-start}}.model-editor.workflow-editor{width:min(1080px,100%);margin-bottom:0}.alert-inline-actions.svelte-1bcpzh1{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.workflow-guardrail-editor.svelte-1bcpzh1{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list-editor.svelte-1bcpzh1{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-row.svelte-1bcpzh1{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:stretch;align-items:center;gap:12px;padding:10px 12px;display:flex}.workflow-guardrail-field.svelte-1bcpzh1{flex:auto;min-width:0}.workflow-guardrail-step-field.svelte-1bcpzh1{flex:0 0 120px}.workflow-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-step-input.svelte-1bcpzh1{max-width:120px}@media (width<=768px){.workflow-guardrail-row.svelte-1bcpzh1{flex-direction:column;align-items:flex-start}.workflow-step-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-guardrail-field.svelte-1bcpzh1,.workflow-guardrail-step-field.svelte-1bcpzh1{flex-basis:auto;width:100%}}.workflow-list-loading.svelte-ie2kfk{justify-content:center;align-items:center;gap:8px;display:flex}.workflows-list.svelte-ie2kfk{min-width:0}.workflow-card-grid.svelte-ie2kfk{grid-template-columns:1fr;gap:16px;display:grid}.workflow-page-note.svelte-l8kr26{color:var(--text-muted);margin-top:6px;font-size:14px}.audit-log-toolbar.svelte-1pwbpcm{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;display:grid}.audit-filter-select.svelte-1pwbpcm{grid-column:span 2;min-width:0}.audit-filter-row-search.svelte-1pwbpcm .filter-input-wrap{grid-column:1/-1;max-width:none}.audit-filter-row-controls.svelte-1pwbpcm .audit-filter-select:where(.svelte-1pwbpcm){grid-column:span 2}.audit-filter-row-controls.svelte-1pwbpcm .btn{grid-column:11/-1;justify-self:end;min-width:108px}.audit-clear-btn.svelte-1pwbpcm{justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.audit-clear-btn.svelte-1pwbpcm .table-icon-svg{width:12px;height:12px}@media (width<=768px){.audit-log-toolbar.svelte-1pwbpcm{gap:8px}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:1fr}.audit-filter-row.svelte-1pwbpcm .filter-input-wrap,.audit-filter-row.svelte-1pwbpcm .filter-input,.audit-filter-select.svelte-1pwbpcm,.audit-filter-row.svelte-1pwbpcm .btn{grid-column:auto}}.audit-live-status.svelte-tve6yv{color:var(--text-muted);align-items:center;gap:10px;margin-left:16px;padding-left:6px;font-size:12px;display:inline-flex}.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:1.8s ease-out infinite svelte-tve6yv-audit-live-dot-throb}@keyframes svelte-tve6yv-audit-live-dot-throb{0%{transform:scale(1)}35%{transform:scale(1.35)}70%{transform:scale(1)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:none}}.audit-live-status-text.is-live.svelte-tve6yv{color:var(--success);font-weight:600}.audit-entry-metadata.svelte-hyopt0{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.audit-entry-metadata-label.svelte-hyopt0{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:12px;font-weight:700}.audit-entry-context.svelte-hyopt0{flex-wrap:wrap;flex:auto;gap:8px;display:flex}.audit-alias-badge.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 28%, var(--border));color:var(--accent-strong,var(--accent))}.audit-session-usage-link.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 35%, var(--border));color:var(--accent-strong,var(--accent));cursor:pointer}.audit-session-usage-link.svelte-hyopt0:hover{background:color-mix(in srgb, var(--accent) 22%, var(--bg));border-color:var(--accent)}@media (width<=768px){.audit-entry-metadata.svelte-hyopt0{flex-direction:column;align-items:flex-start;gap:8px}}.audit-attempt-track.svelte-1eu22xn{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.audit-attempt-track-pips.svelte-1eu22xn{align-items:center;gap:3px;display:inline-flex}.audit-attempt-pip.svelte-1eu22xn{background:var(--text-muted);border-radius:2px;width:8px;height:8px}.audit-attempt-pip.audit-attempt-success.svelte-1eu22xn{background:var(--success)}.audit-attempt-pip.audit-attempt-error.svelte-1eu22xn{background:var(--danger)}.audit-attempt-track-count.svelte-1eu22xn{color:var(--text-muted);font-size:11px}.audit-entry-summary.svelte-17mysgz{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;list-style:none;display:flex;position:relative}.audit-entry-summary.svelte-17mysgz::-webkit-details-marker{display:none}.audit-entry-summary-live-in-progress.svelte-17mysgz{background:color-mix(in srgb, var(--info) 7%, var(--bg))}.audit-entry-summary-has-interactions.svelte-17mysgz{padding-right:44px}.audit-entry-summary-live-in-progress.svelte-17mysgz:before{content:"";background:var(--info);pointer-events:none;width:3px;animation:1.2s ease-in-out infinite audit-live-summary-stripe-blink;position:absolute;inset:0 auto 0 0}@media (prefers-reduced-motion:reduce){.audit-entry-summary-live-in-progress.svelte-17mysgz:before{opacity:.78;animation:none}}.audit-entry-left.svelte-17mysgz{align-items:center;gap:8px;min-width:0;display:flex}.audit-entry-right.svelte-17mysgz{color:var(--text-muted);flex-shrink:0;align-items:center;gap:10px;min-height:28px;display:inline-flex}.audit-thread-expander.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);min-width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:3px;padding:0 7px 0 4px;transition:background .1s ease-out,color .1s ease-out;display:inline-flex}.audit-thread-expander.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 12%, var(--bg));color:var(--accent)}.audit-thread-expander.svelte-17mysgz .audit-thread-expander-svg{width:14px;height:14px}.audit-thread-count.svelte-17mysgz{font-size:11px;font-weight:600}.audit-session-usage.svelte-17mysgz{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg));width:28px;height:28px;color:var(--accent-strong,var(--accent));cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.audit-session-usage.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg));border-color:var(--accent)}.audit-session-usage.svelte-17mysgz .audit-session-usage-svg{width:14px;height:14px}.audit-conversation-trigger.svelte-17mysgz{border:0;border-left:1px solid var(--border);background:color-mix(in srgb, var(--accent) 12%, var(--bg));width:32px;height:100%;color:var(--accent);cursor:pointer;border-radius:0;justify-content:center;align-items:center;margin:0;transition:background .1s ease-out,color .1s ease-out;display:inline-flex;position:absolute;inset:0 0 0 auto}.audit-conversation-trigger.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg))}.audit-conversation-trigger-active.svelte-17mysgz{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 28%, var(--bg));border-left:0}.audit-conversation-trigger-active.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 34%, var(--bg))}.audit-conversation-trigger.svelte-17mysgz .audit-conversation-trigger-svg{stroke-linecap:butt;stroke-linejoin:miter;width:18px;height:18px}.audit-path.svelte-17mysgz{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.audit-request-badge.svelte-17mysgz{white-space:nowrap;gap:6px;min-width:0}.audit-timestamp-time.svelte-17mysgz{display:none}.audit-provider-model.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);height:24px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:420px;padding:0 10px;font-size:12px;display:inline-flex;overflow:hidden}@container dashboard-content (width<=699px){.audit-entry-summary.svelte-17mysgz{flex-direction:column;align-items:flex-start}.audit-entry-right.svelte-17mysgz{justify-content:space-between;width:100%}.audit-request-status.svelte-17mysgz,.audit-timestamp-full.svelte-17mysgz{display:none}.audit-timestamp-time.svelte-17mysgz{display:inline}}.audit-pane-split.svelte-1h5puht{grid-template-columns:1fr 2fr;align-items:start;gap:10px 14px;display:grid}.audit-pane-split-single.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}@container dashboard-content (width<=699px){.audit-pane-split.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}}.audit-pane-split.svelte-1h5puht .audit-pane-block-error:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-pane-empty:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-size-warning:where(.svelte-1h5puht){grid-column:1/-1}.audit-pane-block.svelte-1h5puht{min-width:0}.audit-pane-block.svelte-1h5puht>h5{margin-bottom:6px}.audit-pane-block-head.svelte-1h5puht{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.audit-pane-block-title.svelte-1h5puht{align-items:center;gap:8px;min-width:0;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn{background-color:var(--bg-surface);border:1px solid color-mix(in srgb, var(--border) 70%, var(--text) 30%);color:var(--text);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:6px;padding:4px 8px;font-family:inherit;font-size:12px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn:hover:not(:disabled){background:color-mix(in srgb, var(--bg-surface) 80%, var(--text) 20%);border-color:color-mix(in srgb, var(--border) 45%, var(--text) 55%)}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 18%, var(--bg-surface))}.audit-json.svelte-1h5puht{background:var(--bg-surface);border:1px solid var(--border);box-sizing:border-box;white-space:pre;max-width:100%;max-height:220px;color:var(--text);border-radius:6px;padding:10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;overflow:auto}.audit-pane-error-message.svelte-1h5puht{color:var(--danger)}.audit-pane-clickable-preview.svelte-1h5puht{cursor:pointer}.audit-pane-clickable-preview.svelte-1h5puht:hover{background:color-mix(in srgb, var(--danger) 8%, transparent)}.audit-json-body.svelte-1h5puht{white-space:pre;overflow-wrap:normal}.audit-pane-empty.svelte-1h5puht{text-align:left;padding:8px 0 0}.audit-pane-pending.svelte-1h5puht{align-items:center;gap:8px;display:flex}.audit-pane-streaming.svelte-1h5puht{letter-spacing:.02em;color:var(--text-muted);align-items:center;gap:7px;padding-left:4px;font-size:11px;font-weight:600;display:inline-flex}.audit-size-warning.svelte-1h5puht{color:var(--warning);margin-top:8px;font-size:12px}.audit-request-response.svelte-1bc5vi5{margin-top:4px}.audit-pane-tablist.svelte-1bc5vi5{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;display:flex}.audit-pane-tab.svelte-1bc5vi5{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-bottom-color:#0000;border-radius:6px 6px 0 0;align-items:center;gap:8px;margin-bottom:-1px;margin-right:12px;padding:8px 12px;font-family:inherit;font-size:13px;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.audit-pane-tab.svelte-1bc5vi5:not(.audit-pane-tab-active):hover{color:var(--text);background:color-mix(in srgb, var(--text) 5%, transparent)}.audit-pane-tab-active.svelte-1bc5vi5{color:var(--text);border-color:var(--border);border-bottom-color:var(--bg);background:var(--bg)}.audit-pane-tab-label.svelte-1bc5vi5{font-weight:600}.audit-pane-tabpanel.svelte-1bc5vi5{min-width:0}.audit-pane-icon.svelte-1bc5vi5{color:var(--text-muted);flex:none;align-items:center;display:inline-flex}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-request{color:var(--accent)}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-response{color:var(--info)}.audit-pane-icon.svelte-1bc5vi5 svg{width:16px;height:16px}.audit-pane-seq.svelte-1bc5vi5{color:var(--text-muted);font-size:12px}.audit-pane-kind.svelte-1bc5vi5{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-primary{color:var(--text-muted)}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-failover{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-retry{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 30%, var(--border))}.audit-savings-pill.svelte-1bc5vi5{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);color:var(--prompt-cache-color);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;font-weight:700;display:inline-flex}.audit-step-pill.svelte-1bc5vi5{border:1px dashed var(--border);color:var(--text-muted);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;display:inline-flex}.audit-entry.svelte-cmjgwr{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);transition:background .12s ease-out,border-color .12s ease-out;overflow:hidden}.audit-entry-interactions-open.svelte-cmjgwr{border-width:2px;border-color:color-mix(in srgb, var(--prompt-cache-color) 38%, var(--border))}.audit-entry-details.svelte-cmjgwr{border-top:1px solid var(--border);background:var(--bg-surface);padding:12px;overflow:hidden}.audit-thread.svelte-pneivi{flex-direction:column;gap:10px;display:flex}.audit-thread-children.svelte-pneivi{flex-direction:column;gap:10px;margin-left:26px;display:flex}.audit-thread-child.svelte-pneivi,.audit-thread-loading.svelte-pneivi{position:relative}.audit-thread-child.svelte-pneivi:before,.audit-thread-loading.svelte-pneivi:before{content:"";border-left:1px solid var(--border);border-bottom:1px solid var(--border);pointer-events:none;border-bottom-left-radius:6px;width:12px;height:calc(50% + 10px);position:absolute;top:-10px;left:-14px}.audit-thread-child.svelte-pneivi:not(:last-child):after{content:"";border-left:1px solid var(--border);pointer-events:none;position:absolute;top:50%;bottom:-10px;left:-14px}.audit-thread-loading.svelte-pneivi{padding:6px 0 6px 4px;display:flex}.audit-thread-more.svelte-pneivi{color:var(--text-muted);padding-left:4px;font-size:12px}.audit-log-loading.svelte-1nhcbov{justify-content:center;padding:2rem 0;display:flex}.audit-list-toolbar.svelte-1nhcbov{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.audit-list-toolbar-left.svelte-1nhcbov{flex-wrap:wrap;align-items:center;gap:16px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov input:where(.svelte-1nhcbov){accent-color:var(--accent);cursor:pointer}.audit-retention-note.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-retention-highlight.svelte-1nhcbov{color:var(--text);font-weight:600}.audit-log-section.svelte-1nhcbov{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.audit-log-summary.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-log-list.svelte-1nhcbov{flex-direction:column;gap:10px;display:flex}.settings-guardrails-list.svelte-1bvx512{min-width:0}.settings-guardrail-type-pill.svelte-1bvx512{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.settings-guardrail-summary.svelte-1bvx512{color:var(--text);font-size:14px;line-height:1.45}.settings-guardrail-description.svelte-1bvx512{color:var(--text-muted);margin-top:6px;font-size:12px}.model-editor.guardrails-editor-wide{width:min(1080px,100%)}.form-field-fieldset.svelte-s964s3{border:0;min-inline-size:0;margin:0;padding:0}.form-field-legend.svelte-s964s3{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;padding:0;font-size:12px;font-weight:600}.model-editor.settings-guardrails-editor{min-width:0}.settings-guardrails-hero.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));border-radius:var(--radius);background:radial-gradient(circle at top right, color-mix(in srgb, var(--accent-hover) 18%, transparent), transparent 42%), radial-gradient(circle at bottom left, color-mix(in srgb, var(--accent) 16%, transparent), transparent 40%), var(--bg-surface);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding:24px;display:flex}.settings-kicker.svelte-5x874c{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.settings-guardrails-hero.svelte-5x874c h3{margin-bottom:8px}.settings-guardrails-hero.svelte-5x874c p:last-child{color:var(--text-muted);margin-bottom:0}.settings-guardrails-meta.svelte-5x874c{gap:12px;display:flex}.settings-guardrails-stat.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));background:color-mix(in srgb, var(--bg-surface-hover) 76%, transparent);border-radius:16px;min-width:110px;padding:14px 16px}.settings-guardrails-stat-label.svelte-5x874c{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.settings-guardrails-stat.svelte-5x874c strong{font-size:24px;font-weight:700}@media (width<=768px){.settings-guardrails-hero.svelte-5x874c{flex-direction:column}.settings-guardrails-meta.svelte-5x874c{width:100%}.settings-guardrails-stat.svelte-5x874c{flex:1 1 0}}.mcp-catalog-section.svelte-1xqrzco{margin-top:18px}.mcp-catalog-section.svelte-1xqrzco .form-field-label{margin-bottom:8px}.mcp-catalog-subtitle.svelte-1xqrzco{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mcp-catalog-list.svelte-1xqrzco{flex-direction:column;gap:12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.mcp-catalog-item-name.svelte-1xqrzco{overflow-wrap:anywhere;font-size:13px}.mcp-catalog-item-aggregated.svelte-1xqrzco{color:var(--text-muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px}.mcp-catalog-item-description.svelte-1xqrzco{color:var(--text-muted);margin:2px 0 0;font-size:13px;font-weight:400}.mcp-server-sub-counts.svelte-ah8nrt{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:280px;margin-top:4px;font-size:11px;overflow:hidden}.mcp-server-table-wrapper.svelte-ah8nrt{overflow-x:auto}.mcp-server-table-wrapper.svelte-ah8nrt .data-table{min-width:860px}.auth-key-form-fields.svelte-1gswxes>.form-field{margin-bottom:4px}.auth-key-dashboard-toggle.svelte-1gswxes{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-key-issued-banner.svelte-1gswxes{background:color-mix(in srgb, var(--success) 8%, var(--bg-surface));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));border-radius:var(--radius);margin-bottom:20px;padding:16px}.auth-key-issued-warning.svelte-1gswxes{color:color-mix(in srgb, var(--success) 80%, var(--text));margin-bottom:12px;font-size:13px;font-weight:600}.auth-key-issued-value-row.svelte-1gswxes{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.auth-key-issued-token.svelte-1gswxes{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;flex:1;min-width:0;padding:8px 12px;font-size:13px;overflow-x:auto}.usage-label-chip-static.svelte-nf0ldb,.usage-label-chip-static.svelte-nf0ldb:hover{cursor:default;background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.auth-key-redacted.svelte-nf0ldb{color:var(--text-muted);font-size:13px}.auth-key-actions-cell.svelte-nf0ldb{white-space:nowrap}.auth-key-row-deactivated.svelte-nf0ldb td:where(.svelte-nf0ldb):not(.auth-key-actions-cell){opacity:.55}.auth-key-expiry.svelte-nf0ldb{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.auth-key-th-help.svelte-nf0ldb{cursor:help;align-items:center;gap:4px;display:inline-flex}.auth-key-row-actions.svelte-nf0ldb{align-items:center;gap:6px;display:inline-flex}.auth-keys-loading.svelte-1xpdcqx{justify-content:center;align-items:center;padding:32px 0;display:flex}.auth-keys-help-notice.svelte-1xpdcqx{margin-bottom:20px}.auth-keys-inactive-toggle.svelte-1xpdcqx{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-keys-inactive-toggle.svelte-1xpdcqx input:where(.svelte-1xpdcqx){width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.locale-settings.svelte-hr6ahz{grid-template-columns:minmax(280px,420px)}.locale-selector-label.svelte-hr6ahz{color:var(--text);font-size:18px;font-weight:600}.settings-panel-header.svelte-15kyv2y{justify-content:space-between;gap:16px;margin-bottom:20px;display:flex}.settings-panel-header.svelte-15kyv2y h3{font-size:18px}.settings-form-grid.svelte-15kyv2y{grid-template-columns:minmax(280px,420px);gap:16px;display:grid}@media (width<=768px){.settings-form-grid.svelte-15kyv2y{grid-template-columns:1fr}}.budget-settings-section.svelte-a747ys{width:100%}.budget-settings-grid.svelte-a747ys{gap:12px;display:grid}.budget-settings-row.svelte-a747ys{grid-template-columns:96px minmax(170px,1fr) minmax(110px,140px) minmax(110px,140px) minmax(220px,280px);align-items:start;gap:12px;display:grid}.budget-settings-period.svelte-a747ys{color:var(--text);letter-spacing:0;text-transform:uppercase;align-self:end;min-height:35px;padding-bottom:9px;font-size:12px;font-weight:700}.budget-settings-spacer.svelte-a747ys{min-height:1px}.budget-settings-help-cell.svelte-a747ys{align-self:start;min-width:0;min-height:35px}.budget-settings-help-cell.svelte-a747ys .inline-help-copy{max-width:280px;margin:22px 0 0;font-size:12px;line-height:1.35}@media (width<=768px){.budget-settings-grid.svelte-a747ys,.budget-settings-row.svelte-a747ys{grid-template-columns:1fr}.budget-settings-spacer.svelte-a747ys{display:none}}.tagging-settings-grid.svelte-18e8yem{gap:12px;display:grid}.tagging-settings-row.svelte-18e8yem{grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) minmax(80px,110px) auto minmax(90px,auto);align-items:end;gap:12px;display:grid}.tagging-do-not-pass.svelte-18e8yem{color:var(--text);white-space:nowrap;align-items:center;gap:6px;min-height:35px;font-size:13px;display:flex}.tagging-row-trailer.svelte-18e8yem{align-items:center;gap:8px;min-height:35px;display:flex}.tagging-settings-empty.svelte-18e8yem{color:var(--text-muted);margin:0}.tagging-settings-actions.svelte-18e8yem{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.tagging-settings-row.svelte-18e8yem{grid-template-columns:1fr;align-items:stretch}.tagging-settings-actions.svelte-18e8yem,.tagging-settings-actions.svelte-18e8yem .btn{width:100%}}.pricing-recalculate-section.svelte-1cdxzyk{width:100%}.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:minmax(220px,320px) minmax(260px,360px);justify-content:start;align-items:end;gap:12px;width:100%;display:grid}.pricing-recalculate-date-field.svelte-1cdxzyk{grid-column:1/-1;width:100%;max-width:320px}.pricing-recalculate-filter-field.svelte-1cdxzyk{width:100%;max-width:360px}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker{width:100%}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-trigger{justify-content:space-between;width:100%}.pricing-recalculate-actions.svelte-1cdxzyk{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:1fr}.pricing-recalculate-actions.svelte-1cdxzyk,.pricing-recalculate-actions.svelte-1cdxzyk .btn{width:100%}}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-dropdown{inset:auto auto calc(100% + 6px) 0}.settings-refresh-icon.svelte-yeq2mp{flex:0 0 16px;width:16px;height:16px}.runtime-refresh-steps.svelte-yeq2mp{color:var(--text-muted);gap:8px;margin-top:14px;padding-left:18px;font-size:13px;display:grid}.runtime-refresh-step.is-ok.svelte-yeq2mp{color:var(--success)}.runtime-refresh-step.is-partial.svelte-yeq2mp{color:var(--warning)}.runtime-refresh-step.is-failed.svelte-yeq2mp{color:var(--danger)}.runtime-settings-copy.svelte-tldbe5{min-width:180px}.runtime-settings-fields.svelte-tldbe5{gap:16px;width:min(560px,100%);display:grid}.runtime-setting-row.svelte-tldbe5{grid-template-columns:minmax(220px,1fr) 180px;align-items:center;gap:20px;display:grid}.runtime-setting-description.svelte-tldbe5,.runtime-setting-managed.svelte-tldbe5{color:var(--text-muted);margin:4px 0 0;font-size:12px}.runtime-setting-managed.svelte-tldbe5{color:var(--warning)}@media (width<=720px){.runtime-setting-row.svelte-tldbe5{grid-template-columns:1fr;gap:8px}}.settings-version-footer.svelte-3naq7u{color:var(--text-muted);text-align:right;margin-top:24px;font-size:12px}.chat-message.svelte-12s99s5{border:1px solid var(--border);background:var(--bg);border-radius:10px;max-width:94%;padding:10px 42px 10px 12px;position:relative;overflow:hidden}.chat-message.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.chat-message.is-after-anchor.svelte-12s99s5,.chat-function-note.is-after-anchor.svelte-12s99s5{opacity:.46}.chat-message.role-user.svelte-12s99s5{align-self:flex-start}.chat-message.role-assistant.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 18%, var(--bg));align-self:flex-end}.chat-message.role-system.svelte-12s99s5{background:color-mix(in srgb, var(--warning) 10%, var(--bg));align-self:center;width:100%;max-width:100%}.chat-message.role-error.svelte-12s99s5{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg));align-self:flex-end}.chat-message.role-error.svelte-12s99s5 .chat-role:where(.svelte-12s99s5){color:color-mix(in srgb, var(--danger) 75%, var(--text-muted))}.chat-message-meta.svelte-12s99s5{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.chat-role.svelte-12s99s5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:12px;font-weight:700}.chat-time.svelte-12s99s5{color:var(--text-muted);white-space:nowrap;font-size:11px}.chat-content.svelte-12s99s5{white-space:pre-wrap;overflow-wrap:break-word;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.5}.chat-message.svelte-12s99s5:before,.chat-function-note.svelte-12s99s5:before{content:"";z-index:0;pointer-events:none;opacity:var(--prompt-cache-visibility);background:linear-gradient(90deg, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) 0, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) var(--prompt-cache-fill), transparent var(--prompt-cache-fill), transparent 100%);transition:opacity .15s;position:absolute;inset:0}.chat-message.svelte-12s99s5>:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5>:where(.svelte-12s99s5){z-index:1;position:relative}.chat-message-copy.svelte-12s99s5{z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 92%, transparent);width:26px;height:26px;color:var(--text-muted);opacity:0;pointer-events:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:opacity .12s,transform .12s,color .12s,background-color .12s,border-color .12s;display:inline-flex;position:absolute;bottom:6px;right:6px;transform:translateY(3px)}.chat-message.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-message.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-message-copy.is-copied.svelte-12s99s5{opacity:1;pointer-events:auto;transform:translateY(0)}.chat-message-copy.svelte-12s99s5:hover{color:var(--text);background:var(--bg-surface-hover)}.chat-message-copy.svelte-12s99s5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.chat-message-copy.is-copied.svelte-12s99s5{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border))}.chat-tool-calls.svelte-12s99s5{border-top:1px solid var(--border);flex-direction:column;gap:3px;margin-top:8px;padding-top:6px;display:flex}.chat-tool-call.svelte-12s99s5{color:var(--text-muted);border-radius:5px;min-width:0;padding:3px 5px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;position:relative;overflow:hidden}.chat-tool-call-summary.svelte-12s99s5{cursor:pointer;align-items:baseline;gap:6px;min-width:0;display:flex}.chat-tool-call-preview.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;opacity:.8;flex:1;min-width:0;overflow:hidden}.chat-tool-call-arguments.svelte-12s99s5{background:color-mix(in srgb, var(--border) 45%, transparent);color:var(--text);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;max-height:200px;margin-top:5px;padding:6px 8px;line-height:1.45;overflow:auto}.chat-tool-call-name.svelte-12s99s5:before{content:"⚡"}.chat-function-note.svelte-12s99s5{max-width:94%;color:var(--text-muted);background:color-mix(in srgb, var(--border) 40%, transparent);border:1px dashed var(--border);border-radius:12px;align-self:center;padding:4px 42px 4px 12px;font-size:12px;position:relative;overflow:hidden}.chat-function-note.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-inner.svelte-12s99s5{align-items:baseline;gap:6px;min-height:26px;display:flex;overflow:hidden}.chat-function-note-inner.svelte-12s99s5 .chat-time:where(.svelte-12s99s5){flex-shrink:0;margin-left:auto}.chat-function-call-id.svelte-12s99s5{color:var(--text-muted);overflow-wrap:anywhere;margin-top:6px;font-size:10px}.chat-function-label.svelte-12s99s5{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}.chat-function-label.svelte-12s99s5:before{content:"▸";margin-right:4px;transition:transform .12s;display:inline-block}.chat-function-note-details[open].svelte-12s99s5 .chat-function-label:where(.svelte-12s99s5):before{transform:rotate(90deg)}.chat-function-detail.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;overflow:hidden}.chat-function-note.role-function-call.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));align-self:flex-end}.chat-function-note.role-function-result.svelte-12s99s5{background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 30%, var(--border));align-self:flex-start}.chat-function-note.is-anchor.role-function-call.svelte-12s99s5,.chat-function-note.is-anchor.role-function-result.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-details.svelte-12s99s5{width:100%}.chat-function-note-details.svelte-12s99s5>summary{cursor:pointer;list-style:none}.chat-function-note-details.svelte-12s99s5>summary::-webkit-details-marker{display:none}.chat-function-expanded.svelte-12s99s5{border-top:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);max-height:200px;margin-top:6px;padding-top:6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;overflow:auto}@media (width<=768px){.chat-message.svelte-12s99s5{max-width:100%}}@media (hover:none){.chat-message-copy.svelte-12s99s5{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.chat-message-copy.svelte-12s99s5{transition:none}}.conversation-drawer.svelte-ssrzja{width:var(--conversation-panel-width);background:var(--bg-surface);border-left:1px solid var(--border);z-index:12;flex-direction:column;flex:none;min-width:0;height:100vh;display:flex;position:sticky;top:0}.conversation-drawer-fullscreen.svelte-ssrzja{z-index:70;border-left:0;flex-basis:auto;width:100vw;height:100dvh;position:fixed;inset:0}.conversation-drawer-fullscreen.svelte-ssrzja .conversation-resize-handle:where(.svelte-ssrzja){display:none}.conversation-resize-handle.svelte-ssrzja{z-index:2;cursor:col-resize;touch-action:none;background:0 0;border:0;border-radius:0;outline:none;width:10px;padding:0;position:absolute;top:0;bottom:0;left:-5px}.conversation-resize-handle.svelte-ssrzja:after{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:4px}.conversation-resize-handle.svelte-ssrzja:hover:after,.conversation-resize-handle.svelte-ssrzja:focus-visible:after{background:color-mix(in srgb, var(--accent) 70%, var(--border))}body.conversation-panel-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.conversation-drawer-header.svelte-ssrzja{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.conversation-drawer-header-actions.svelte-ssrzja{align-items:center;gap:6px;display:flex}.conversation-drawer-title.svelte-ssrzja{align-items:center;gap:9px;min-width:0;display:flex}.conversation-follow-status.svelte-ssrzja{justify-content:center;align-items:center;margin:-4px;padding:4px;display:inline-flex}.conversation-drawer-header.svelte-ssrzja h3{font-size:16px;font-weight:700}#interactions-drawer-content.svelte-ssrzja{position:relative}.conversation-message-navigation.svelte-ssrzja{z-index:4;opacity:0;pointer-events:none;flex-direction:column;gap:4px;width:max-content;height:0;margin-left:auto;margin-right:12px;transition:opacity .12s,transform .12s;display:flex;position:sticky;top:12px;transform:translateY(-3px)}#interactions-drawer-content.svelte-ssrzja:hover .conversation-message-navigation:where(.svelte-ssrzja),.conversation-message-navigation.svelte-ssrzja:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja){border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 94%, transparent);width:30px;height:30px;min-height:30px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 1px 3px #00000029}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):hover{color:var(--text);background:var(--bg-surface-hover)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.conversation-drawer-footer.svelte-ssrzja{border-top:1px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;gap:9px;padding:10px 16px;display:flex}.conversation-composer.svelte-ssrzja{flex-direction:column;gap:7px;display:flex}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja){resize:vertical;border:1px solid var(--border);background:var(--bg);width:100%;min-height:50px;color:var(--text);font:inherit;border-radius:7px;padding:9px 10px;line-height:1.45}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):focus{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:1px}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):disabled{opacity:.65}.conversation-composer-actions.svelte-ssrzja{justify-content:space-between;align-items:center;gap:10px;display:flex}.conversation-endpoint.svelte-ssrzja{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:11px;overflow:hidden}.conversation-send-error.svelte-ssrzja{color:var(--danger);font-size:12px}.conversation-truncated.svelte-ssrzja{color:var(--text-muted);padding:0 16px 14px;font-size:12px}.conversation-cache-legend.svelte-ssrzja{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin:12px 16px 0;padding:0;font-family:inherit;font-size:11px;display:flex}.conversation-cache-legend.svelte-ssrzja:hover{color:var(--text)}.conversation-cache-legend.svelte-ssrzja:focus-visible{outline:2px solid color-mix(in srgb, var(--prompt-cache-color) 35%, transparent);outline-offset:3px;border-radius:3px}.conversation-cache-switch.svelte-ssrzja{background:color-mix(in srgb, var(--text-muted) 30%, var(--border));border-radius:999px;flex:none;width:28px;height:16px;transition:background-color .15s;position:relative}.conversation-cache-switch.is-active.svelte-ssrzja{background:color-mix(in srgb, var(--prompt-cache-color) 80%, var(--bg))}.conversation-cache-switch-thumb.svelte-ssrzja{background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000003d}.conversation-cache-switch.is-active.svelte-ssrzja .conversation-cache-switch-thumb:where(.svelte-ssrzja){transform:translate(12px)}.conversation-cache-estimate.svelte-ssrzja{opacity:.75}.conversation-thread.svelte-ssrzja{flex-direction:column;gap:10px;padding:14px 16px 20px;display:flex}.conversation-live-status.svelte-ssrzja{color:var(--text-muted);align-items:center;gap:10px;padding:4px 16px 20px;font-size:13px;display:flex}@media (hover:none){.conversation-message-navigation.svelte-ssrzja{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.conversation-message-navigation.svelte-ssrzja{transition:none}} diff --git a/internal/admin/dashboard/static/dist/assets/index-C9mw5A5Z.js b/internal/admin/dashboard/static/dist/assets/index-CYbzNV3I.js similarity index 93% rename from internal/admin/dashboard/static/dist/assets/index-C9mw5A5Z.js rename to internal/admin/dashboard/static/dist/assets/index-CYbzNV3I.js index a2a7ea46f..10cab0327 100644 --- a/internal/admin/dashboard/static/dist/assets/index-C9mw5A5Z.js +++ b/internal/admin/dashboard/static/dist/assets/index-CYbzNV3I.js @@ -29,8 +29,8 @@ `):e.text||``}function $Ue(e){return e?[String(e.text||``),Array.isArray(e.toolCalls)&&e.toolCalls.length>0?J7({role:`function_call`,toolCalls:e.toolCalls}):``].filter(Boolean).join(` -`):``}function Y7(e){let t=e&&e.arguments!==void 0?e.arguments:``;if(typeof t!=`string`)try{return JSON.stringify(t,null,2)}catch{return String(t)}try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}var eWe=600*1e3,tWe=15*1e3,nWe=250,rWe=class{#e=j(!1);get conversationOpen(){return R(this.#e)}set conversationOpen(e){M(this.#e,e,!0)}#t=j(!1);get conversationLoading(){return R(this.#t)}set conversationLoading(e){M(this.#t,e,!0)}#n=j(``);get conversationError(){return R(this.#n)}set conversationError(e){M(this.#n,e,!0)}#r=j(``);get conversationAnchorID(){return R(this.#r)}set conversationAnchorID(e){M(this.#r,e,!0)}#i=j(N([]));get conversationEntryIDs(){return R(this.#i)}set conversationEntryIDs(e){M(this.#i,e,!0)}#a=j(``);get conversationSessionID(){return R(this.#a)}set conversationSessionID(e){M(this.#a,e,!0)}#o=j(!1);get conversationTruncated(){return R(this.#o)}set conversationTruncated(e){M(this.#o,e,!0)}#s=j(!1);get conversationFollowLatest(){return R(this.#s)}set conversationFollowLatest(e){M(this.#s,e,!0)}#c=j(``);get conversationOpenedFromID(){return R(this.#c)}set conversationOpenedFromID(e){M(this.#c,e,!0)}#l=j(``);get followUpText(){return R(this.#l)}set followUpText(e){M(this.#l,e,!0)}#u=j(!1);get followUpSending(){return R(this.#u)}set followUpSending(e){M(this.#u,e,!0)}#d=j(``);get followUpError(){return R(this.#d)}set followUpError(e){M(this.#d,e,!0)}followUpRequestID=``;followUpAbort=null;conversationRequestToken=0;conversationReturnFocusEl=null;bodyPointerStart=null;#f=j(null);get conversationDialogEl(){return R(this.#f)}set conversationDialogEl(e){M(this.#f,e,!0)}#p=j(null);get conversationCloseBtnEl(){return R(this.#p)}set conversationCloseBtnEl(e){M(this.#p,e,!0)}#m=j(null);get conversationThreadEl(){return R(this.#m)}set conversationThreadEl(e){M(this.#m,e,!0)}get conversationEntries(){return(this.conversationEntryIDs||[]).map(e=>g3.auditRecord(e)).filter(Boolean)}#h=A(()=>q7(this.conversationEntries,this.conversationAnchorID));get conversationView(){return R(this.#h)}set conversationView(e){M(this.#h,e)}get conversationMessages(){return this.conversationView.messages}get conversationBranchEntryIDs(){return this.conversationView.entryIDs}_setConversationEntryIDs(e){this.conversationEntryIDs=[...new Set((Array.isArray(e)?e:[]).filter(Boolean))],g3.pinAuditRecords(this.conversationEntryIDs)}canShowConversation(e){return LUe(e)}startBodyInteraction(e){this.bodyPointerStart={x:e.clientX,y:e.clientY}}_isBodyDrag(e){if(!this.bodyPointerStart)return!1;let t=Math.abs(e.clientX-this.bodyPointerStart.x),n=Math.abs(e.clientY-this.bodyPointerStart.y);return t>4||n>4}_hasActiveSelection(){let e=window.getSelection?window.getSelection():null;return!e||e.isCollapsed?!1:String(e.toString()||``).trim().length>0}handleBodyConversationClick(e,t){let n=this._isBodyDrag(e);if(this.bodyPointerStart=null,n||this._hasActiveSelection()||!this.canShowConversation(t))return;let r=e.target&&e.target.closest?e.target.closest(`[data-conversation-trigger="1"]`):null;r&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,r))}handleErrorConversationClick(e,t){let n=this._isBodyDrag(e);this.bodyPointerStart=null,!n&&(this._hasActiveSelection()||this.canShowConversation(t)&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,e.currentTarget)))}formatJSON(e){return cZ(e)}renderBodyWithConversationHighlights(e,t,n){return qUe(e,t,{formatJSON:e=>this.formatJSON(e),canShowConversation:e=>this.canShowConversation(e),promptCacheHighlight:n&&n.promptCacheHighlight})}async openConversation(e,t){if(!e||!e.id||!this.canShowConversation(e))return;let n=document.activeElement instanceof HTMLElement?document.activeElement:null;t instanceof HTMLElement?this.conversationReturnFocusEl=t:n&&n!==document.body&&(this.conversationReturnFocusEl=n);let r=++this.conversationRequestToken;if(this.conversationOpen=!0,this.conversationError=``,this.conversationAnchorID=e.id,this.conversationOpenedFromID=e.id,this.conversationSessionID=String(e.session_id||``).trim(),this._setConversationEntryIDs([]),this.conversationTruncated=!1,this.conversationFollowLatest=!1,this.followUpText=``,this.followUpError=``,this.followUpRequestID=``,requestAnimationFrame(()=>this._focusConversationDrawer()),this._conversationEntryLivePending(e)){this.conversationFollowLatest=!0,this.conversationLoading=!1,this._addConversationRecord(g3.upsertAuditRecord(e,`conversation.live`));return}this.conversationLoading=!0,await this.fetchConversation(e.id,r,!0,!0)}_conversationEntryLivePending(e){return typeof g3.auditEntryLiveDetailPending==`function`&&g3.auditEntryLiveDetailPending(e)}_applyConversationView(){let e=this.conversationEntries,t=q7(e,this.conversationAnchorID);if(this.conversationFollowLatest){let n=NUe(e,t.entryIDs);n&&n.id&&String(n.id)!==this.conversationAnchorID&&(this.conversationAnchorID=String(n.id))}}handleAuditRecordChange(e,t){if(!this.conversationOpen||!e)return;let n=String(e.id||``).trim(),r=jUe(this.conversationEntries,this.conversationAnchorID,this.conversationSessionID,this.followUpRequestID,e);if(r.accepted&&(this.followUpRequestID=r.followUpRequestID,n&&r.submittedChild&&(this.conversationAnchorID=n,this.conversationFollowLatest=!0),this._addConversationRecord(e),FUe(String(t||e._live_state||``).trim(),n,this.conversationAnchorID))){this.conversationMessages.length===0&&(this.conversationLoading=!0);let e=++this.conversationRequestToken;this.fetchConversation(n,e,!1)}}_addConversationRecord(e){let t=f3(e);t&&!this.conversationEntryIDs.includes(t)&&this._setConversationEntryIDs([...this.conversationEntryIDs,t]),!this.conversationSessionID&&e.session_id&&(this.conversationSessionID=String(e.session_id).trim()),this._applyConversationView(),this.conversationFollowLatest&&this._scheduleLatestScroll()}conversationLiveWaiting(){if(!this.conversationOpen)return!1;let e=new Set(this.conversationBranchEntryIDs||[]);return(this.conversationEntries||[]).some(t=>e.has(String(t&&t.id||``))&&t._live&&(typeof g3.liveAuditStateSettled!=`function`||!g3.liveAuditStateSettled(t._live_state)))}conversationLiveStatusText(){return(this.conversationMessages||[]).length>0?afe():Ro()}closeConversation(){this.followUpAbort&&this.followUpAbort.abort(),this.conversationOpen=!1,this.conversationRequestToken++,this.conversationSessionID=``,this._setConversationEntryIDs([]),this.conversationFollowLatest=!1,this.conversationOpenedFromID=``,this.followUpRequestID=``,this.followUpSending=!1;let e=this.conversationReturnFocusEl;this.conversationReturnFocusEl=null,e&&typeof e.focus==`function`&&document.contains(e)&&requestAnimationFrame(()=>e.focus())}_focusConversationDrawer(){if(!this.conversationOpen)return;let e=this.conversationCloseBtnEl;if(e&&typeof e.focus==`function`){e.focus();return}let t=this.conversationDialogEl;t&&typeof t.focus==`function`&&t.focus()}async fetchConversation(e,t,n=!0,r=!1){try{let i=await qX(`/admin/audit/conversation?`+(`log_id=`+encodeURIComponent(e)+`&limit=120`),{label:`audit conversation`});if(t!==this.conversationRequestToken||i.stale)return;if(!i.ok){this.conversationError=cfe();return}let a=i.data||{},o=a.anchor_id||e,s=Array.isArray(a.entries)?a.entries:[],c=g3.upsertAuditRecords(s,`conversation.hydrated`),l=I7(this.conversationEntryIDs,c);l.length>this.conversationEntryIDs.length&&this._setConversationEntryIDs(l),r&&(this.conversationFollowLatest=PUe(c,o)),this.conversationAnchorID=o;let u=this.conversationEntries.find(e=>e.id===this.conversationAnchorID);u&&u.session_id&&(this.conversationSessionID=String(u.session_id).trim()),this.conversationTruncated=!!a.truncated,this._applyConversationView(),this.conversationFollowLatest?this._scheduleLatestScroll():n&&this._scheduleAnchorScroll()}catch(e){if(t!==this.conversationRequestToken)return;console.error(`Failed to fetch audit conversation:`,e),this.conversationError=dfe()}finally{t===this.conversationRequestToken&&(this.conversationLoading=!1)}}selectedConversationEntry(){return MUe(this.conversationEntries,this.conversationAnchorID)}followUpKind(){let e=this.selectedConversationEntry();return EUe(e)?j7(e.path):``}canSendFollowUp(){return!!this.followUpKind()&&!!String(this.followUpText||``).trim()&&!this.followUpSending&&!this.conversationLiveWaiting()}async sendFollowUp(){if(!this.canSendFollowUp())return;let e=this.selectedConversationEntry(),t=DUe(e,this.followUpText);if(!e||!t)return;let n=this.conversationAnchorID,r=aWe(),i=new AbortController,a=!1,o=setTimeout(()=>{a=!0,i.abort()},eWe);this.followUpSending=!0,this.followUpError=``,this.followUpRequestID=r,this.followUpAbort=i;try{let a=kUe(e,n,r),o=await GX(e.path,{method:`POST`,headers:a,body:JSON.stringify(t),signal:i.signal}),s=String(o.headers.get(`X-Request-ID`)||``).trim();if(s&&this.followUpRequestID&&(this.followUpRequestID=s),!o.ok){let e=mfe();try{let t=await o.json();e=t&&t.error&&t.error.message||e}catch{}this.followUpError=e,(this.followUpRequestID===r||this.followUpRequestID===s)&&(this.followUpRequestID=``);return}if(this.followUpText=``,await iWe(o),!g3.liveLogsStreaming&&this.conversationOpen){let e=++this.conversationRequestToken;await this._selectPersistedFollowUp(n,this.followUpRequestID,e,i.signal)}}catch(e){YX(e)||i.signal.aborted?a&&this.conversationOpen&&(this.followUpError=_fe()):(console.error(`Failed to send interaction follow-up:`,e),this.followUpError=bfe())}finally{clearTimeout(o),this.followUpAbort===i&&(this.followUpAbort=null,this.followUpSending=!1)}}async _selectPersistedFollowUp(e,t,n,r){let i=Date.now()+tWe;for(;this.conversationOpen&&n===this.conversationRequestToken&&Date.now(){let e=this.conversationThreadEl;if(!e)return;let t=e.querySelectorAll(`[data-conversation-anchor="true"]`),n=t[t.length-1];n&&typeof n.scrollIntoView==`function`&&n.scrollIntoView({block:`center`})})}_scheduleLatestScroll(){requestAnimationFrame(()=>{let e=this.conversationThreadEl;if(!e)return;let t=e.lastElementChild;t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`end`})})}};async function iWe(e){let t=e&&e.body&&typeof e.body.getReader==`function`?e.body.getReader():null;if(!t){await e.text();return}for(;!(await t.read()).done;);}function aWe(){return globalThis.crypto&&typeof globalThis.crypto.randomUUID==`function`?globalThis.crypto.randomUUID():`dashboard-`+Date.now().toString(36)+`-`+Math.random().toString(36).slice(2)}function oWe(e,t){return new Promise((n,r)=>{let i,a=()=>{clearTimeout(i),r(new DOMException(`Aborted`,`AbortError`))};if(i=setTimeout(()=>{t&&t.removeEventListener(`abort`,a),n()},e),t){if(t.aborted){a();return}t.addEventListener(`abort`,a,{once:!0})}})}var X7=new rWe,Z7=0;gn(()=>{mn(()=>{let e=vFe(g3.auditRecordChanges,Z7);e.length!==0&&(Z7=Number(e[e.length-1].version||0),or(()=>{e.forEach(e=>{if(!yFe(e))return;let t=g3.auditRecord(e.key);X7.handleAuditRecordChange(t,e.eventType)})}))})});var sWe=B(` `,1),cWe=B(` `),lWe=B(` `),uWe=B(``),dWe=B(`
            `);function fWe(e,t){O(t,!0);let n=zi(t,`thread`,3,null),r=zi(t,`expanded`,3,!1),i=zi(t,`onactivate`,3,null),a=zi(t,`hidePath`,3,!1),o=A(()=>HX.formatTimestamp(t.entry.timestamp)),s=A(()=>R(o)===`-`?R(o):R(o).slice(R(o).lastIndexOf(` `)+1)),c=A(()=>X7.conversationOpen&&String(X7.conversationAnchorID||``)===String(t.entry.id||``));function l(e){e.preventDefault(),i()&&i()()}function u(e){e.stopPropagation(),e.preventDefault(),n().ontoggle()}function d(e){e.stopPropagation(),e.preventDefault(),n().onusage?.()}function f(){return Uce({count:Number(n().count||1)})}function p(e){if(e.stopPropagation(),e.preventDefault(),R(c)){X7.closeConversation();return}X7.openConversation(t.entry,e.currentTarget)}var m=dWe();let h;var g=P(m),_=P(g),v=e=>{var t=sWe(),r=F(t),i=P(r);{let e=A(()=>n().expanded?ZY:QY);q(i,{get icon(){return R(e)},class:`audit-thread-expander-svg`})}var a=I(i,2),o=P(a,!0);D(a),D(r);var s=I(r,2);q(P(s),{get icon(){return jTe},class:`audit-thread-usage-svg`}),D(s),L((e,t,i,a)=>{K(r,`aria-expanded`,n().expanded),K(r,`title`,e),K(r,`aria-label`,t),H(o,n().count),K(s,`title`,i),K(s,`aria-label`,a)},[()=>f(),()=>f()+`, `+(n().expanded?nse():$oe()),()=>Io(),()=>Io()]),z(`click`,r,u),z(`click`,s,d),V(e,t)};U(_,e=>{n()&&e(v)});var y=I(_,2),b=P(y),x=P(b,!0);D(b);var S=I(b,2),C=P(S,!0);D(S),D(y);var w=I(y,2),T=e=>{var n=cWe(),r=P(n,!0);D(n),L(e=>H(r,e),[()=>QEe(t.entry)]),V(e,n)};U(w,e=>{(t.entry.requested_model||t.entry.model)&&e(T)});var ee=I(w,2),E=e=>{var n=lWe(),r=P(n,!0);D(n),L(()=>H(r,t.entry.path||`-`)),V(e,n)};U(ee,e=>{a()||e(E)}),D(g);var te=I(g,2),ne=P(te);dUe(ne,{get entry(){return t.entry}});var re=I(ne,2),ie=P(re),ae=P(ie,!0);D(ie);var oe=I(ie,2),se=P(oe,!0);D(oe),D(re);var ce=I(re,2),le=P(ce,!0);D(ce);var ue=I(ce,2),de=e=>{var t=uWe();let n;var r=P(t);{let e=A(()=>R(c)?MTe:QY);q(r,{get icon(){return R(e)},class:`audit-conversation-trigger-svg`})}D(t),L((e,r)=>{n=G(t,1,`audit-conversation-trigger svelte-17mysgz`,null,n,{"audit-conversation-trigger-active":R(c)}),K(t,`title`,e),K(t,`aria-label`,r),K(t,`aria-pressed`,R(c))},[()=>R(c)?Fo():Po(),()=>R(c)?Fo():Po()]),z(`click`,t,p),V(e,t)},fe=A(()=>X7.canShowConversation(t.entry));U(ue,e=>{R(fe)&&e(de)}),D(te),D(m),L((e,n,i,a,c)=>{h=G(m,1,`audit-entry-summary svelte-17mysgz`,null,h,e),K(m,`aria-expanded`,r()),G(y,1,`audit-status-badge audit-request-badge ${n??``}`,`svelte-17mysgz`),K(y,`title`,i),K(y,`aria-label`,(t.entry.status_code||`-`)+` `+(t.entry.method||`-`)),H(x,t.entry.status_code||`-`),H(C,t.entry.method||`-`),K(re,`title`,a),K(re,`aria-label`,R(o)),H(ae,R(o)),H(se,R(s)),H(le,c)},[()=>({"audit-entry-summary-live-in-progress":d7(t.entry),"audit-entry-summary-has-interactions":X7.canShowConversation(t.entry)}),()=>u7(t.entry.status_code),()=>Kce({status:t.entry.status_code||`-`,method:t.entry.method||`-`}),()=>gZ(t.entry.timestamp),()=>DHe(t.entry.duration_ns)]),z(`click`,m,l),V(e,m),k()}xr([`click`]);var pWe=B(``);function Q7(e,t){O(t,!0);let n=zi(t,`label`,3,`Copy`),r=zi(t,`copiedLabel`,3,`Copied`),i=zi(t,`errorLabel`,3,``),a=zi(t,`class`,3,`btn`),o=A(()=>t.state.error&&i()?i():t.state.copied?r():n());var s=pWe();let c;var l=P(s),u=e=>{q(e,{get icon(){return $Y},width:`14`,height:`14`,"stroke-width":`2.5`})},d=e=>{q(e,{get icon(){return tX},width:`14`,height:`14`})};U(l,e=>{t.state.copied?e(u):e(d,-1)});var f=I(l,2),p=P(f,!0);D(f),D(s),L(()=>{c=G(s,1,li([`copy-feedback-btn`,a()]),null,c,{"copy-feedback-btn-copied":t.state.copied}),H(p,R(o))}),z(`click`,s,e=>{e.preventDefault(),t.onclick?.(e)}),V(e,s),k()}xr([`click`]);var mWe=B(`
             
            `),hWe=B(`
             
            `),gWe=B(` `),_We=B(` `),vWe=B(`
            `),yWe=B(`

            `),bWe=B(`

            `),xWe=B(`

            `),SWe=B(`
            `);function CWe(e,t){O(t,!0);let n=U3({logPrefix:`Failed to copy audit payload:`}),r=U3({logPrefix:`Failed to copy audit payload:`}),i=A(()=>t.pane&&t.pane.showHeaders?cZ(t.pane.headers):``),a=A(()=>!t.pane||!t.pane.showBody?``:BUe(t.pane.body)?GUe(t.pane.body):X7.renderBodyWithConversationHighlights(t.pane.entry,t.pane.body,{promptCacheHighlight:t.pane.promptCacheHighlight})),o=A(()=>!!(t.pane&&X7.canShowConversation(t.pane.entry)));function s(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),X7.handleErrorConversationClick(e,t.pane.entry))}var c=SWe();let l;var u=P(c),d=e=>{var n=mWe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);let c;var l=P(a,!0);D(a),D(n),L(e=>{H(i,e),c=G(a,1,`audit-json audit-pane-error-message svelte-1h5puht`,null,c,{"audit-pane-clickable-preview":R(o)}),K(a,`role`,R(o)?`button`:null),K(a,`tabindex`,R(o)?0:null),H(l,t.pane.errorMessage)},[()=>ule()]),z(`mousedown`,a,e=>X7.startBodyInteraction(e)),z(`keydown`,a,s),z(`click`,a,e=>X7.handleErrorConversationClick(e,t.pane.entry)),V(e,n)};U(u,e=>{t.pane.showErrorMessage&&e(d)});var f=I(u,2),p=e=>{var n=hWe(),a=P(n),o=P(a),s=P(o,!0);D(o);var c=I(o,2);{let e=A(()=>gle()),n=A(()=>Mo());Q7(c,{get state(){return r},get label(){return R(e)},get errorLabel(){return R(n)},class:`audit-copy-btn`,onclick:()=>r.copy(t.pane.copyHeaders,cZ)})}D(a);var l=I(a,2),u=P(l,!0);D(l),D(n),L(e=>{H(s,e),H(u,R(i))},[()=>t.pane.headersTitle||ple()]),V(e,n)};U(f,e=>{t.pane.showHeaders&&e(p)});var m=I(f,2),h=e=>{var r=vWe(),i=P(r),o=P(i),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=e=>{var n=gWe(),r=P(n,!0);D(n),L(()=>H(r,t.pane.bodyCacheRatioLabel)),V(e,n)};U(l,e=>{t.pane.bodyCacheRatioLabel&&e(u)});var d=I(l,2),f=e=>{var t=_We(),n=I(P(t),2),r=P(n,!0);D(n),D(t),L(e=>H(r,e),[()=>Sle()]),V(e,t)};U(d,e=>{t.pane.streaming&&e(f)}),D(o);var p=I(o,2);{let e=A(()=>Tle()),r=A(()=>Mo());Q7(p,{get state(){return n},get label(){return R(e)},get errorLabel(){return R(r)},class:`audit-copy-btn`,onclick:()=>n.copy(t.pane.copyBody,cZ)})}D(i);var m=I(i,2);Gr(m,()=>R(a),!0),D(m),D(r),L(e=>H(c,e),[()=>yle()]),z(`mousedown`,m,e=>X7.startBodyInteraction(e)),z(`click`,m,e=>X7.handleBodyConversationClick(e,t.pane.entry)),V(e,r)};U(m,e=>{t.pane.showBody&&e(h)});var g=I(m,2),_=e=>{var n=yWe(),r=P(n,!0);D(n),L(()=>H(r,t.pane.emptyMessage)),V(e,n)};U(g,e=>{t.pane.showEmpty&&e(_)});var v=I(g,2),y=e=>{var n=bWe(),r=I(P(n),2),i=P(r,!0);D(r),D(n),L(()=>H(i,t.pane.pendingMessage)),V(e,n)};U(v,e=>{t.pane.showPending&&e(y)});var b=I(v,2),x=e=>{var n=xWe(),r=P(n,!0);D(n),L(()=>H(r,t.pane.tooLargeMessage)),V(e,n)};U(b,e=>{t.pane.showTooLarge&&e(x)}),D(c),L(()=>l=G(c,1,`audit-pane svelte-1h5puht`,null,l,{"audit-pane-split":t.pane&&t.pane.layout===`split`,"audit-pane-split-single":t.pane&&t.pane.layout===`split`&&!(t.pane.showHeaders&&t.pane.showBody)})),V(e,c),k()}xr([`mousedown`,`keydown`,`click`]);var wWe=B(` `),$7=B(` `),TWe=B(` `),EWe=B(` `),DWe=B(``),OWe=B(`
            `),kWe=B(`
            `);function AWe(e,t){O(t,!0);let n=zi(t,`panes`,19,()=>[]),r=j(null),i=A(()=>ZHe(R(r),t.entry,n())),a=e=>`audit-tab-`+t.entry.id+`-`+e,o=e=>`audit-tabpanel-`+t.entry.id+`-`+e;function s(e,t){let i=n().map(e=>e.id),a=QHe(e.key,i,t);a!=null&&(e.preventDefault(),((e.currentTarget?.closest?.(`.audit-pane-tablist`))?.querySelectorAll(`.audit-pane-tab`)[i.indexOf(a)])?.focus?.(),M(r,a,!0))}var c=kWe(),l=P(c);W(l,21,n,e=>e.id,(e,t)=>{var n=DWe();let c;var l=P(n),u=P(l),d=e=>{q(e,{get icon(){return TTe}})},f=e=>{q(e,{get icon(){return wTe}})};U(u,e=>{R(t).pane.direction===`request`?e(d):R(t).pane.direction===`response`&&e(f,1)}),D(l);var p=I(l,2),m=P(p,!0);D(p);var h=I(p,2),g=e=>{var n=wWe(),r=P(n);D(n),L(()=>H(r,`#${R(t).pane.seq??``}`)),V(e,n)};U(h,e=>{R(t).pane.seq&&e(g)});var _=I(h,2),v=e=>{var n=$7(),r=P(n,!0);D(n),L(()=>{G(n,1,`provider-badge audit-pane-kind audit-pane-kind-${R(t).pane.kind??``}`,`svelte-1bc5vi5`),H(r,R(t).pane.kind)}),V(e,n)};U(_,e=>{R(t).pane.kind&&e(v)});var y=I(_,2);W(y,17,()=>R(t).pane.noChangeSteps||[],e=>e.id,(e,t)=>{var n=TWe(),r=P(n,!0);D(n),L(()=>{K(n,`title`,R(t).title),H(r,R(t).label)}),V(e,n)});var b=I(y,2),x=e=>{var n=EWe(),r=P(n,!0);D(n),L(e=>{K(n,`title`,e),H(r,R(t).pane.savingsLabel)},[()=>jle()]),V(e,n)};U(b,e=>{R(t).pane.savingsLabel&&e(x)});var S=I(b,2),C=e=>{var n=$7(),r=P(n,!0);D(n),L(e=>{G(n,1,`audit-status-badge ${e??``}`,`svelte-1bc5vi5`),H(r,R(t).pane.statusCode)},[()=>u7(R(t).pane.statusCode)]),V(e,n)};U(S,e=>{R(t).pane.statusCode&&e(C)}),D(n),L((e,r)=>{c=G(n,1,`audit-pane-tab svelte-1bc5vi5`,null,c,{"audit-pane-tab-active":R(i)===R(t).id}),K(n,`aria-selected`,R(i)===R(t).id),K(n,`id`,e),K(n,`aria-controls`,r),K(n,`tabindex`,R(i)===R(t).id?0:-1),G(l,1,li([`audit-pane-icon`,R(t).pane.direction&&`audit-pane-icon-${R(t).pane.direction}`]),`svelte-1bc5vi5`),H(m,R(t).pane.title)},[()=>a(R(t).id),()=>o(R(t).id)]),z(`keydown`,n,e=>s(e,R(t).id)),z(`click`,n,()=>M(r,R(t).id,!0)),V(e,n)}),D(l),W(I(l,2),17,n,e=>e.id,(e,t)=>{var n=OWe();let r;CWe(P(n),{get pane(){return R(t).pane}}),D(n),L((e,a)=>{K(n,`id`,e),K(n,`aria-labelledby`,a),r=mi(n,``,r,{display:R(i)===R(t).id?null:`none`})},[()=>o(R(t).id),()=>a(R(t).id)]),V(e,n)}),D(c),L(e=>K(l,`aria-label`,e),[()=>Ole()]),V(e,c),k()}xr([`keydown`,`click`]);var jWe=B(`
            `),MWe=B(`
            `);function e9(e,t){O(t,!0);let n=zi(t,`thread`,3,null),r=zi(t,`hidePath`,3,!1),i=A(()=>x7.isAuditEntryExpanded(t.entry)),a=A(()=>X7.conversationOpen&&String(X7.conversationAnchorID||``)===String(t.entry.id||``)),o=A(()=>R(i)?y7(t.entry,bUe):[]),s=A(()=>R(i)?MVe(t.entry,J5.auditEntryWorkflow(t.entry),J5.workflowFeatureCaps()):null);function c(){x7.toggleAuditEntryExpanded(t.entry)}var l=MWe();let u;var d=P(l);fWe(d,{get entry(){return t.entry},get thread(){return n()},get expanded(){return R(i)},get hidePath(){return r()},onactivate:c});var f=I(d,2),p=e=>{var n=jWe(),r=P(n),i=e=>{A5(e,{get chart(){return R(s)}})};U(r,e=>{R(s)&&e(i)});var a=I(r,2);AWe(a,{get entry(){return t.entry},get panes(){return R(o)}}),cUe(I(a,2),{get entry(){return t.entry}}),D(n),ai(3,n,()=>rZ,()=>({y:-6,duration:q5(150)})),V(e,n)};U(f,e=>{R(i)&&e(p)}),D(l),L(()=>u=G(l,1,`audit-entry svelte-cmjgwr`,null,u,{"audit-entry-interactions-open":R(a)})),V(e,l),k()}var NWe=B(`
            `),PWe=B(`
            `),FWe=B(`

            `),IWe=B(`
            `),LWe=B(`
            `);function RWe(e,t){O(t,!0);let n=A(()=>n7(t.entry)),r=A(()=>x7.isThreadExpanded(R(n))),i=A(()=>x7.threadChildren(R(n))),a=A(()=>R(i)&&!R(i).loading&&Number(R(i).total||0)>R(i).entries.length+1);var o=Or(),s=F(o),c=e=>{e9(e,{get entry(){return t.entry}})},l=A(()=>!yHe(t.entry)),u=e=>{var o=LWe(),s=P(o);{let e=A(()=>({count:r7(t.entry),expanded:R(r),ontoggle:()=>x7.toggleThread(t.entry),onusage:()=>X.filterBySession(R(n),t.entry.user_path)}));e9(s,{get entry(){return t.entry},get thread(){return R(e)}})}var c=I(s,2),l=e=>{var n=IWe(),r=P(n),o=e=>{var t=NWe(),n=P(t);{let e=A(()=>$ce());r3(n,{size:14,get label(){return R(e)}})}D(t),V(e,t)};U(r,e=>{R(i)&&R(i).loading&&e(o)});var s=I(r,2);W(s,17,()=>R(i)&&R(i).entries||[],e=>e.id,(e,n)=>{var r=PWe(),i=P(r);{let e=A(()=>R(n).path===t.entry.path);e9(i,{get entry(){return R(n)},get hidePath(){return R(e)}})}D(r),V(e,r)});var c=I(s,2),l=e=>{var t=FWe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>nle({shown:R(i).entries.length+1,total:R(i).total})]),V(e,t)};U(c,e=>{R(a)&&e(l)}),D(n),ai(3,n,()=>iZ,()=>({duration:q5(150)})),V(e,n)};U(c,e=>{R(r)&&e(l)}),D(o),V(e,o)};U(s,e=>{R(l)?e(c):e(u,-1)}),V(e,o),k()}var zWe=B(`

            .

            `),BWe=B(`
            LOGGING_ENABLED=true
            `),VWe=B(`

            `),HWe=B(`
            `),UWe=B(`
            `),WWe=B(`
            `),GWe=B(`
            `),KWe=B(`
            `);function qWe(e,t){O(t,!0);let n=A(()=>XX.config&&XX.config.LOGGING_RETENTION_DAYS);mn(()=>{if(Y.refreshTick,CX.page===`audit-logs`)return or(()=>r())});function r(){let e=!1;return(async()=>{try{await XX.ensureLoaded()}finally{await x7.fetchAuditLog(!0),!e&&XX.liveLogsVisible()&&g3.ensureLiveLogs()}})(),()=>{e=!0,g3.stopLiveLogs()}}var i=KWe(),a=P(i),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=e=>{{let t=e=>{var t=zWe(),r=P(t,!0),i=I(r),a=P(i,!0);D(i),Ve(),D(t),L((e,t)=>{H(r,e),H(a,t)},[()=>e7(R(n)),()=>t7(R(n))]),V(e,t)},r=A(()=>gse()),i=A(()=>yse());s3(e,{copyId:`audit-retention-help-copy`,get label(){return R(r)},get text(){return R(i)},title:t,$$slots:{title:!0}})}},d=A(()=>gHe(R(n)));U(l,e=>{R(d)&&e(u)}),D(o),D(a);var f=I(a,2);FZ(P(f),{onchange:()=>x7.fetchAuditLog(!0)}),D(f);var p=I(f,2);AZ(p,{});var m=I(p,2),h=e=>{var t=BWe(),n=P(t,!0),r=I(n,2,!0);D(t),L((e,t)=>{H(n,e),H(r,t)},[()=>Pse(),()=>Lse()]),V(e,t)},g=A(()=>XX.loaded&&!XX.auditVisible()&&!Y.needsAuth);U(m,e=>{R(g)&&e(h)});var _=I(m,2),v=P(_);tUe(v,{});var y=I(v,2),b=P(y),x=P(b),S=e=>{var t=VWe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>x7.auditGroupSessions?Bse({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total}):Use({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total})]),V(e,t)};U(x,e=>{x7.auditLog.total>0&&e(S)});var C=I(x,2),w=P(C);wi(w);var T=I(w,2),ee=P(T,!0);D(T),D(C),D(b),iUe(I(b,2),{}),D(y);var E=I(y,2),te=e=>{var t=HWe(),n=P(t);{let e=A(()=>Yse());r3(n,{size:18,get label(){return R(e)}})}D(t),V(e,t)},ne=e=>{var t=WWe();W(t,29,()=>x7.auditLog.entries,e=>e.id,(e,t)=>{var n=UWe(),r=P(n),i=e=>{RWe(e,{get entry(){return R(t)}})},a=e=>{e9(e,{get entry(){return R(t)}})};U(r,e=>{x7.auditGroupSessions?e(i):e(a,-1)}),D(n),ii(n,()=>sHe,()=>({duration:q5(150)})),ai(1,n,()=>uHe,()=>({live:R(t)._live})),V(e,n)}),D(t),V(e,t)};U(E,e=>{x7.loading&&x7.auditLog.entries.length===0?e(te):x7.auditLog.entries.length>0&&e(ne,1)});var re=I(E,2),ie=e=>{var t=GWe();i3(P(t),{}),D(t),V(e,t)};U(re,e=>{x7.auditLog.entries.length===0&&!x7.loading&&!Y.needsAuth&&e(ie)}),H3(I(re,2),{get total(){return x7.auditLog.total},get offset(){return x7.auditLog.offset},get limit(){return x7.auditLog.limit},onprev:()=>x7.auditLogPrevPage(),onnext:()=>x7.auditLogNextPage()}),D(_),D(i),L((e,t)=>{H(c,e),Ei(w,x7.auditGroupSessions),H(ee,t)},[()=>pse(),()=>Kse()]),z(`change`,w,()=>x7.toggleAuditGroupSessions()),V(e,i),k()}xr([`change`]);function t9(e){try{let t=JSON.parse(JSON.stringify(e||{}));return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}catch{return{}}}function n9(e){return Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(e=>e):e==null?[]:String(e).split(`,`).map(e=>e.trim()).filter(e=>e)}function r9(e,t){let n=String(t||``).trim();return(e||[]).find(e=>String(e&&e.type||``).trim()===n)||null}function i9(e){return Array.isArray(e)&&e.length>0&&String(e[0].type||``).trim()||`system_prompt`}function a9(e,t){let n=String(t||``).trim();return n&&r9(e,n)?n:i9(e)}function o9(e,t){let n=r9(e,t);return!n||!n.defaults?{}:t9(n.defaults)}function s9(e,t,n){return{...o9(e,n),...t9(t)}}function c9(e,t){let n=a9(e,t);return{name:``,type:n,description:``,user_path:``,config:o9(e,n)}}function JWe(e,t){if(!t)return e||[];let n=String(t).toLowerCase();return(e||[]).filter(e=>[e.name,e.type,e.user_path,e.description,e.summary].some(e=>String(e||``).toLowerCase().includes(n)))}function YWe(e,t){let n=r9(e,t);return n&&n.label?n.label:t||fhe()}function XWe(e,t){let n=r9(e,t);return Array.isArray(n&&n.fields)?n.fields:[]}function l9(e,t){if(!t||!e)return t&&t.input===`checkboxes`?[]:``;let n=e[t.key];return n==null?t.input===`checkboxes`?[]:``:t.input===`checkboxes`?n9(n):n}function u9(e,t,n){if(!t)return e;let r=t9(e);if(t.input===`number`){let e=String(n||``).trim();if(e===``)delete r[t.key];else{let n=Number(e);r[t.key]=Number.isFinite(n)?n:e}}else t.input===`checkboxes`?r[t.key]=n9(n):r[t.key]=n;return r}function ZWe(e,t,n){return l9(e,t).includes(String(n||``).trim())}function QWe(e,t,n,r){let i=n9(l9(e,t)),a=String(n||``).trim();return a?u9(e,t,r?Array.from(new Set([...i,a])):i.filter(e=>e!==a)):e}function $We(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),description:String(e&&e.description||``).trim()||void 0,user_path:String(e&&e.user_path||``).trim()||void 0,config:t9(e&&e.config)}}var d9=new class{#e=j(N([]));get guardrails(){return R(this.#e)}set guardrails(e){M(this.#e,e,!0)}#t=j(N([]));get types(){return R(this.#t)}set types(e){M(this.#t,e,!0)}#n=j(!0);get available(){return R(this.#n)}set available(e){M(this.#n,e,!0)}#r=j(!1);get loading(){return R(this.#r)}set loading(e){M(this.#r,e,!0)}#i=j(!1);get typesLoading(){return R(this.#i)}set typesLoading(e){M(this.#i,e,!0)}#a=j(``);get error(){return R(this.#a)}set error(e){M(this.#a,e,!0)}#o=j(``);get filter(){return R(this.#o)}set filter(e){M(this.#o,e,!0)}#s=j(!1);get formOpen(){return R(this.#s)}set formOpen(e){M(this.#s,e,!0)}#c=j(!1);get formSubmitting(){return R(this.#c)}set formSubmitting(e){M(this.#c,e,!0)}#l=j(``);get deletingName(){return R(this.#l)}set deletingName(e){M(this.#l,e,!0)}#u=j(`create`);get formMode(){return R(this.#u)}set formMode(e){M(this.#u,e,!0)}#d=j(``);get formOriginalName(){return R(this.#d)}set formOriginalName(e){M(this.#d,e,!0)}#f=j(N({name:``,type:``,description:``,user_path:``,config:{}}));get form(){return R(this.#f)}set form(e){M(this.#f,e,!0)}get filtered(){return JWe(this.guardrails,this.filter)}typeLabel(e){return YWe(this.types,e)}typeFields(e){return XWe(this.types,e)}fieldValue(e){return l9(this.form&&this.form.config,e)}setFieldValue(e,t){this.form={...this.form,config:u9(this.form.config,e,t)}}arrayFieldSelected(e,t){return ZWe(this.form&&this.form.config,e,t)}toggleArrayFieldValue(e,t,n){this.form={...this.form,config:QWe(this.form.config,e,t,n)}}openCreate(){this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=c9(this.types,i9(this.types)),this.formOpen=!0}openEdit(e){let t=a9(this.types,e&&e.type);this.formMode=`edit`,this.formOriginalName=String(e&&e.name||``).trim(),this.error=``,this.form={name:this.formOriginalName,type:t,description:String(e&&e.description||``).trim(),user_path:String(e&&e.user_path||``).trim(),config:s9(this.types,e&&e.config,t)},this.formOpen=!0}closeForm(){this.formOpen=!1,this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=c9(this.types,i9(this.types))}changeType(e){let t=a9(this.types,e);this.form={...this.form,type:t,config:o9(this.types,t)}}async fetchTypes(){this.typesLoading=!0;try{let e=await X3(`/admin/guardrails/types`,{label:`guardrail types`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.types=[];return}if(e.result&&(this.available=!0),this.types=e.items,e.status===`error`){this.error=e.error;return}let t=a9(this.types,this.form.type);this.form={...this.form,type:t,config:s9(this.types,this.form.config,t)}}finally{this.typesLoading=!1}}async fetchGuardrails(){this.loading=!0,this.error=``;try{let e=await X3(`/admin/guardrails`,{label:`guardrails`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.guardrails=[];return}e.result&&(this.available=!0),this.guardrails=e.items,this.error=e.error}finally{this.loading=!1}}async fetchPage(){await Promise.all([this.fetchTypes(),this.fetchGuardrails()])}async submitForm(){let e=String(this.form.name||``).trim(),t=String(this.form.type||``).trim();if(!e){this.error=hhe();return}if(!t){this.error=vhe();return}this.error=``,this.formSubmitting=!0;let n=$We(this.form);try{let t=await Z3(`/admin/guardrails`,`PUT`,n,{label:`save guardrail`,errorFallback:xhe(),unavailableMessage:XO()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}oZ.success(whe({name:e})),this.closeForm(),this.fetchGuardrails()}finally{this.formSubmitting=!1}}async deleteGuardrail(e){let t=String(e&&e.name||``).trim();if(!(!t||this.deletingName)&&window.confirm(Ihe({name:t}))){this.deletingName=t;try{let e=await Z3(`/admin/guardrails`,`DELETE`,{name:t},{label:`delete guardrail`,errorFallback:zhe(),unavailableMessage:XO()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,oZ.error(e.error);return}if(e.status===`error`){oZ.error(e.error);return}oZ.success(Hhe({name:t})),this.formOpen&&this.formOriginalName===t&&this.closeForm(),this.fetchGuardrails()}finally{this.deletingName=``}}}},eGe=B(`
            `),tGe=B(`

            `),nGe=B(`
            `),rGe=B(`
            `),iGe=B(`
            `),aGe=B(`

            `),oGe=B(`

            `);function sGe(e,t){O(t,!0);var n=oGe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(i);var l=I(i,2),u=P(l);q(u,{get icon(){return lX},class:`form-action-icon`});var d=I(u,2),f=P(d,!0);D(d),D(l),D(r);var p=I(r,2),m=e=>{var t=eGe(),n=P(t),r=P(n);{let e=A(()=>nk()),t=A(()=>ak());z3(r,{id:`guardrail-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return d9.filter},set value(e){d9.filter=e}})}D(n),D(t),V(e,t)};U(p,e=>{d9.available&&e(m)});var h=I(p,2),g=e=>{var t=tGe(),n=P(t);{let e=A(()=>Rk());r3(n,{size:16,get label(){return R(e)}})}var r=I(n);D(t),L(e=>H(r,` ${e??``}`),[()=>Rk()]),V(e,t)};U(h,e=>{d9.loading&&d9.filtered.length===0&&e(g)});var _=I(h,2),v=e=>{var t=iGe(),n=P(t),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a),c=P(s,!0);D(s);var l=I(s),u=P(l,!0);D(l);var d=I(l),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p),D(i),D(r);var h=I(r);W(h,21,()=>d9.filtered,e=>e.name,(e,t)=>{var n=rGe(),r=P(n),i=P(r,!0);D(r);var a=I(r),o=P(a),s=P(o,!0);D(o),D(a);var c=I(a),l=P(c,!0);D(c);var u=I(c),d=P(u),f=P(d,!0);D(d);var p=I(d,2),m=e=>{var n=nGe(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(p,e=>{R(t).description&&e(m)}),D(u);var h=I(u),g=P(h),_=P(g);{let e=A(()=>Dhe({name:R(t).name}));Y3(_,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>d9.openEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}var v=I(_,2);{let e=A(()=>d9.deletingName===R(t).name?Nhe({name:R(t).name}):Ahe({name:R(t).name})),n=A(()=>d9.deletingName===R(t).name);Y3(v,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>d9.deleteGuardrail(R(t)),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return yX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(g),D(h),D(n),L((e,n)=>{H(i,R(t).name),H(s,e),H(l,R(t).user_path||`—`),H(f,n)},[()=>d9.typeLabel(R(t).type),()=>R(t).summary||R(t).description||Vk()]),V(e,n)}),D(h),D(n),D(t),L((e,t,n,r,i)=>{H(o,e),H(c,t),H(u,n),H(f,r),H(m,i)},[()=>ck(),()=>dk(),()=>mk(),()=>_k(),()=>bk()]),V(e,t)};U(_,e=>{d9.filtered.length>0&&e(v)});var y=I(_,2),b=e=>{var t=aGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Ck()]),V(e,t)};U(y,e=>{d9.filtered.length===0&&!d9.loading&&d9.available&&!d9.error&&!Y.authError&&e(b)}),D(n),L((e,t,n)=>{H(o,e),H(c,t),l.disabled=d9.typesLoading||d9.formSubmitting||!d9.available,H(f,n)},[()=>VO(),()=>Fk(),()=>$O()]),z(`click`,l,()=>d9.openCreate()),V(e,n),k()}xr([`click`]);var cGe=B(`

            `),lGe=B(``),f9=B(``),uGe=B(``),dGe=B(``),fGe=B(``),pGe=B(``),mGe=B(``),hGe=B(``),gGe=B(``),_Ge=B(`
            `),vGe=B(``),yGe=B(` `),bGe=B(`
            `),xGe=B(`
            `);function SGe(e,t){O(t,!0);let n=A(()=>d9.formMode===`edit`);{let t=e=>{var t=cGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>CM()]),V(e,t)},r=A(()=>R(n)?mM():$O()),i=A(()=>_M()),a=A(()=>bM());S6(e,{get open(){return d9.formOpen},get title(){return R(r)},get ariaLabel(){return R(i)},get error(){return d9.error},get submitting(){return d9.formSubmitting},get submitLabel(){return R(a)},dialogClass:`settings-guardrails-editor guardrails-editor-wide`,onclose:()=>d9.closeForm(),onsubmit:()=>d9.submitForm(),headerHint:t,children:(e,t)=>{var r=xGe(),i=P(r);{let e=A(()=>ck());C6(i,{id:`guardrail-name`,get label(){return R(e)},children:(e,t)=>{var r=lGe();wi(r),L(()=>{r.disabled=R(n),K(r,`data-modal-autofocus`,!R(n)||void 0)}),ji(r,()=>d9.form.name,e=>d9.form.name=e),V(e,r)},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>dk());C6(a,{id:`guardrail-type`,get label(){return R(e)},children:(e,t)=>{var r=uGe();W(r,21,()=>d9.types,e=>e.type,(e,t)=>{var n=f9(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).type)&&(n.value=(n.__value=R(t).type)??``)}),V(e,n)}),D(r);var i;gi(r),L(()=>{r.disabled=R(n),i!==(i=d9.form.type)&&(r.value=(r.__value=d9.form.type)??``,hi(r,d9.form.type))}),z(`change`,r,e=>d9.changeType(e.currentTarget.value)),V(e,r)},$$slots:{default:!0}})}var o=I(a,2);{let e=A(()=>EM());C6(o,{id:`guardrail-description`,get label(){return R(e)},children:(e,t)=>{var r=dGe();wi(r),L(e=>{K(r,`placeholder`,e),K(r,`data-modal-autofocus`,R(n)?!0:void 0)},[()=>kM()]),ji(r,()=>d9.form.description,e=>d9.form.description=e),V(e,r)},$$slots:{default:!0}})}var s=I(o,2),c=P(s);{let e=e=>{var t=fGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>mk()]),V(e,t)},t=A(()=>MM()),n=A(()=>FM());s3(c,{copyId:`guardrail-user-path-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var l=I(c,2);wi(l),D(s),W(I(s,2),17,()=>d9.typeFields(d9.form.type),e=>e.key,(e,t)=>{var n=Or(),r=F(n),i=e=>{var n=_Ge(),r=P(n);{let e=e=>{var n=pGe(),r=P(n,!0);D(n),L(()=>{K(n,`for`,`guardrail-field-`+R(t).key),H(r,R(t).label)}),V(e,n)},n=A(()=>`guardrail-field-help-`+R(t).key),i=A(()=>R(t).label+` help`),a=A(()=>R(t).help||``);s3(r,{get copyId(){return R(n)},get label(){return R(i)},get text(){return R(a)},title:e,$$slots:{title:!0}})}var i=I(r,2),a=e=>{var n=mGe();W(n,21,()=>R(t).options||[],e=>e.value,(e,t)=>{var n=f9(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n);var r;gi(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0),r!==(r=e)&&(n.value=(n.__value=e)??``,hi(n,e))},[()=>d9.fieldValue(R(t))]),z(`change`,n,e=>d9.setFieldValue(R(t),e.currentTarget.value)),V(e,n)},o=e=>{var n=hGe();at(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`placeholder`,R(t).placeholder||``),Ti(n,e),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0)},[()=>d9.fieldValue(R(t))]),z(`input`,n,e=>d9.setFieldValue(R(t),e.currentTarget.value)),V(e,n)},s=e=>{var n=gGe();wi(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`type`,R(t).input||`text`),K(n,`placeholder`,R(t).placeholder||``),Ti(n,e),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0)},[()=>d9.fieldValue(R(t))]),z(`input`,n,e=>d9.setFieldValue(R(t),e.currentTarget.value)),V(e,n)};U(i,e=>{R(t).input===`select`?e(a):R(t).input===`textarea`?e(o,1):e(s,-1)}),D(n),V(e,n)},a=e=>{var n=bGe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>R(t).options||[],e=>R(t).key+`-`+e.value,(e,n)=>{var r=vGe(),i=P(r);wi(i);var a=I(i,2),o=P(a,!0);D(a),D(r),L(e=>{Ei(i,e),H(o,R(n).label)},[()=>d9.arrayFieldSelected(R(t),R(n).value)]),z(`change`,i,e=>d9.toggleArrayFieldValue(R(t),R(n).value,e.currentTarget.checked)),V(e,r)}),D(a);var o=I(a,2),s=e=>{var n=yGe(),r=P(n,!0);D(n),L(()=>{K(n,`id`,`guardrail-field-help-`+R(t).key),H(r,R(t).help)}),V(e,n)};U(o,e=>{R(t).help&&e(s)}),D(n),L(()=>{K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0),H(i,R(t).label)}),V(e,n)};U(r,e=>{R(t).input===`checkboxes`?e(a,-1):e(i)}),V(e,n)}),D(r),L(e=>K(l,`aria-label`,e),[()=>mk()]),ji(l,()=>d9.form.user_path,e=>d9.form.user_path=e),V(e,r)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`change`,`input`]);var CGe=B(`

            `),p9=B(`
            `),wGe=B(`

            `);function TGe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`guardrails`&&(XX.ensureLoaded(),d9.fetchPage())});var n=wGe(),r=P(n),i=P(r),a=P(i);{let e=e=>{var t=CGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>MO()]),V(e,t)},t=A(()=>Ek()),n=A(()=>kk());s3(a,{copyId:`guardrails-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}D(i),D(r);var o=I(r,2),s=P(o),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u);var f=I(u,2),p=P(f,!0);D(f),D(s);var m=I(s,2),h=P(m),g=P(h),_=P(g,!0);D(g);var v=I(g,2),y=P(v,!0);D(v),D(h);var b=I(h,2),x=P(b),S=P(x,!0);D(x);var C=I(x,2),w=P(C,!0);D(C),D(b),D(m),D(o);var T=I(o,2);AZ(T,{});var ee=I(T,2),E=e=>{var t=p9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>qO()]),V(e,t)},te=A(()=>!XX.guardrailsVisible());U(ee,e=>{R(te)&&e(E)});var ne=I(ee,2),re=e=>{var t=p9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XO()]),V(e,t)};U(ne,e=>{!Y.authError&&!d9.available&&e(re)});var ie=I(ne,2),ae=e=>{var t=p9(),n=P(t,!0);D(t),L(()=>H(n,d9.error)),V(e,t)};U(ie,e=>{!Y.authError&&d9.error&&!d9.formOpen&&e(ae)});var oe=I(ie,2);SGe(oe,{}),sGe(I(oe,2),{}),D(n),L((e,t,n,r,i,a,o)=>{H(l,e),H(d,t),H(p,n),H(_,r),H(y,i),H(S,a),H(w,o)},[()=>FO(),()=>RO(),()=>Mk(),()=>VO(),()=>lZ(d9.guardrails.length),()=>WO(),()=>lZ(d9.types.length)]),V(e,n),k()}var $=new class{#e=j(N([]));get servers(){return R(this.#e)}set servers(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return R(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get formSubmitting(){return R(this.#o)}set formSubmitting(e){M(this.#o,e,!0)}#s=j(`create`);get formMode(){return R(this.#s)}set formMode(e){M(this.#s,e,!0)}#c=j(!1);get slugEdited(){return R(this.#c)}set slugEdited(e){M(this.#c,e,!0)}#l=j(!1);get advancedOpen(){return R(this.#l)}set advancedOpen(e){M(this.#l,e,!0)}#u=j(N(N4()));get form(){return R(this.#u)}set form(e){M(this.#u,e,!0)}#d=j(``);get deletingName(){return R(this.#d)}set deletingName(e){M(this.#d,e,!0)}#f=j(``);get reconnectingName(){return R(this.#f)}set reconnectingName(e){M(this.#f,e,!0)}#p=j(!1);get catalogOpen(){return R(this.#p)}set catalogOpen(e){M(this.#p,e,!0)}#m=j(!1);get catalogLoading(){return R(this.#m)}set catalogLoading(e){M(this.#m,e,!0)}#h=j(``);get catalogError(){return R(this.#h)}set catalogError(e){M(this.#h,e,!0)}#g=j(N(P4()));get catalog(){return R(this.#g)}set catalog(e){M(this.#g,e,!0)}#_=A(()=>BNe(this.servers,this.filter));get filtered(){return R(this.#_)}set filtered(e){M(this.#_,e)}async fetchServers(){if(await XX.ensureLoaded(),!XX.mcpVisible()){this.available=!1,this.servers=[],this.error=``,this.loading=!1;return}this.loading=!0,this.error=``;try{let e=await X3(`/admin/mcp-servers`,{label:`mcp servers`,errorFallback:RV(),unavailableStatuses:[503,404]});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.servers=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.servers=[],this.error=e.error;return}this.available=!0,this.servers=e.items}finally{this.loading=!1}}openCreate(){this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=N4(),this.formOpen=!0}openEdit(e){!e||e.managed||(this.formMode=`edit`,this.slugEdited=!0,this.advancedOpen=!1,this.error=``,this.form=VNe(e),this.formOpen=!0)}closeForm(){this.formOpen=!1,this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=N4()}syncSlugFromName(){this.formMode===`create`&&!this.slugEdited&&(this.form.slug=z4(this.form.name))}markSlugEdited(){this.formMode===`create`&&(this.slugEdited=!0)}addHeader(){this.form.headers.push({name:``,value:``})}removeHeader(e){this.form.headers.splice(e,1)}async submitForm(){let e=HNe(this.form,this.formMode,this.servers);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await Z3(`/admin/mcp-servers`,`PUT`,e.payload,{label:`save mcp server`,errorFallback:VV(),unavailableMessage:_w()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}oZ.success(WV({name:e.payload.name})),this.closeForm(),this.fetchServers()}finally{this.formSubmitting=!1}}async deleteServer(e){let t=String(e&&e.name||``).trim(),n=F4(e);if(!(!n||this.deletingName||e&&e.managed)&&confirm(qV({name:t}))){this.deletingName=n;try{let e=await Z3(`/admin/mcp-servers/`+encodeURIComponent(n),`DELETE`,void 0,{label:`delete mcp server`,errorFallback:XV(),unavailableMessage:_w()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,oZ.error(e.error);return}if(e.status===`error`){oZ.error(e.error);return}oZ.success($V({name:t})),this.formOpen&&this.form.slug===n&&this.closeForm(),this.fetchServers()}finally{this.deletingName=``}}}async reconnectServer(e){let t=String(e&&e.name||``).trim(),n=F4(e);if(!(!n||this.reconnectingName)){this.reconnectingName=n;try{let e=await Z3(`/admin/mcp-servers/`+encodeURIComponent(n)+`/reconnect`,`POST`,void 0,{label:`reconnect mcp server`,errorFallback:nH(),unavailableMessage:_w()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,oZ.error(e.error);return}if(e.status===`error`){oZ.error(e.error);return}let r=e.result.data,i=I4(r);i===`connected`?oZ.success(aH({name:t})):i===`disabled`?oZ.success(cH({name:t})):oZ.error(dH({name:t,status:i})),r&&r.name?this.servers=(this.servers||[]).map(e=>F4(e)===F4(r)?r:e):this.fetchServers()}finally{this.reconnectingName=``}}}async openCatalog(e){let t=String(e&&e.name||``).trim(),n=F4(e);if(n){this.catalogOpen=!0,this.catalogLoading=!0,this.catalogError=``,this.catalog={...P4(),server:n,status:I4(e)};try{let e=await qX(`/admin/mcp-servers/`+encodeURIComponent(n)+`/catalog`,{label:`mcp server catalog`});if(e.stale)return;if(e.status===503){this.available=!1,this.catalogError=_w();return}if(e.status===404){this.catalogError=mH({name:t});return}if(!e.ok){this.catalogError=e.status===401?az():UX(e.data,_H());return}this.catalog=UNe(n,e.data)}catch(e){console.error(`Failed to load MCP server catalog:`,e),this.catalogError=_H()}finally{this.catalogLoading=!1}}}closeCatalog(){this.catalogOpen=!1,this.catalogLoading=!1,this.catalogError=``,this.catalog=P4()}},EGe=B(``),DGe=B(`

            `),OGe=B(`
            `),kGe=B(`

            `),AGe=B(`
          • `),jGe=B(`

              `),MGe=B(`

              `),NGe=B(` `,1),PGe=B(``);function FGe(e,t){O(t,!0);let n=A(()=>B4($.catalog));QX(e,{get open(){return $.catalogOpen},variant:`editor`,onclose:()=>$.closeCatalog(),children:(e,t)=>{var r=PGe(),i=P(r),a=P(i),o=P(a),s=P(o,!0);D(o);var c=I(o,2),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d),D(c),D(a);var p=I(a,2);{let e=A(()=>Vw());ZX(p,{get label(){return R(e)},onclick:()=>$.closeCatalog()})}D(i);var m=I(i,2),h=e=>{{let t=A(()=>Ww());J3(e,{get label(){return R(t)}})}},g=e=>{var t=EGe(),n=P(t,!0);D(t),L(()=>H(n,$.catalogError)),V(e,t)},_=e=>{var t=NGe(),r=F(t),i=e=>{var t=DGe(),n=P(t,!0);D(t),L(()=>H(n,$.catalog.instructions)),V(e,t)};U(r,e=>{$.catalog.instructions&&e(i)});var a=I(r,2);W(a,17,()=>R(n),e=>e.key,(e,t)=>{var n=jGe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>R(t).items,e=>e.key,(e,t)=>{var n=AGe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=e=>{var n=OGe(),r=P(n,!0);D(n),L(e=>{K(n,`title`,e),H(r,R(t).aggregated)},[()=>qw({name:R(t).aggregated})]),V(e,n)};U(a,e=>{R(t).aggregated&&e(o)});var s=I(a,2),c=e=>{var n=kGe(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(s,e=>{R(t).description&&e(c)}),D(n),L(()=>{K(r,`title`,R(t).aggregated||R(t).name),H(i,R(t).name)}),V(e,n)}),D(a),D(n),L(()=>H(i,R(t).title)),V(e,n)});var o=I(a,2),s=e=>{var t=MGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Xw()]),V(e,t)},c=A(()=>GNe($.catalog));U(o,e=>{R(c)&&e(s)}),V(e,t)};U(m,e=>{$.catalogLoading?e(h):$.catalogError?e(g,1):e(_,-1)});var v=I(m,2),y=P(v),b=P(y,!0);D(y),D(v),D(r),L((e,t,n,i,a)=>{K(r,`aria-label`,e),H(s,t),H(u,$.catalog.server),G(d,1,`audit-status-badge ${n??``}`,`svelte-1xqrzco`),H(f,i),H(b,a)},[()=>Fw(),()=>Rw(),()=>L4($.catalog),()=>I4($.catalog),()=>$w()]),z(`click`,y,()=>$.closeCatalog()),V(e,r)},$$slots:{default:!0}}),k()}xr([`click`]);var IGe=B(`

              `),LGe=B(` `,1),m9=B(` `),RGe=B(` `,1),zGe=B(` `,1),BGe=B(``),VGe=B(`
              `),HGe=B(`
              `,1);function UGe(e,t){O(t,!0);{let t=e=>{var t=IGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>cT()]),V(e,t)},n=A(()=>$.formMode===`edit`?nT():mw()),r=A(()=>aT());S6(e,{get open(){return $.formOpen},get title(){return R(n)},get ariaLabel(){return R(r)},get error(){return $.error},get submitting(){return $.formSubmitting},onclose:()=>$.closeForm(),onsubmit:()=>$.submitForm(),headerHint:t,children:(e,t)=>{var n=HGe(),r=F(n);{let e=A(()=>dT());C6(r,{id:`mcp-server-name`,get label(){return R(e)},children:(e,t)=>{var n=LGe(),r=F(n);wi(r);var i=I(r,2),a=P(i,!0);D(i),L(e=>H(a,e),[()=>mT()]),z(`input`,r,()=>$.syncSlugFromName()),ji(r,()=>$.form.name,e=>$.form.name=e),V(e,n)},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>_T());C6(i,{id:`mcp-server-slug`,get label(){return R(e)},children:(e,t)=>{var n=RGe(),r=F(n);wi(r);var i=I(r,2),a=e=>{var t=m9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>bT()]),V(e,t)},o=e=>{var t=m9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>CT()]),V(e,t)};U(i,e=>{$.formMode===`create`?e(a):e(o,-1)}),L(()=>r.disabled=$.formMode===`edit`),z(`input`,r,()=>$.markSlugEdited()),ji(r,()=>$.form.slug,e=>$.form.slug=e),V(e,n)},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>ET());C6(a,{id:`mcp-server-transport`,get label(){return R(e)},children:(e,t)=>{var n=zGe(),r=F(n),i=P(r);i.value=i.__value=`http`;var a=I(i);a.value=a.__value=`sse`,D(r);var o=I(r,2),s=P(o,!0);D(o),L(e=>H(s,e),[()=>kT()]),_i(r,()=>$.form.transport,e=>$.form.transport=e),V(e,n)},$$slots:{default:!0}})}var o=I(a,2);C6(o,{id:`mcp-server-url`,label:`URL`,children:(e,t)=>{var n=BGe();wi(n),ji(n,()=>$.form.url,e=>$.form.url=e),V(e,n)},$$slots:{default:!0}});var s=I(o,2),c=P(s),l=P(c,!0);D(c);var u=I(c,2);W(u,21,()=>$.form.headers,Ir,(e,t,n)=>{var r=VGe(),i=P(r);wi(i);var a=I(i,2);wi(a);var o=I(a,2);{let e=A(()=>VT());Y3(o,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>$.removeHeader(n),children:(e,t)=>{q(e,{get icon(){return gX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r),L((e,t)=>{K(i,`aria-label`,e),K(a,`aria-label`,t)},[()=>FT(),()=>RT()]),ji(i,()=>R(t).name,e=>R(t).name=e),ji(a,()=>R(t).value,e=>R(t).value=e),V(e,r)}),D(u);var d=I(u,2),f=P(d),p=P(f);q(p,{get icon(){return lX},class:`form-action-icon`});var m=I(p,2),h=P(m,!0);D(m),D(f),D(d);var g=I(d,2),_=P(g,!0);D(g),D(s);var v=I(s,2),y=P(v);Z8(P(y),{get enabled(){return $.form.enabled},label:`MCP server`,onclick:()=>$.form.enabled=!$.form.enabled}),D(y),D(v);var b=I(v,2),x=P(b),S=P(x),C=P(S),w=P(C,!0);D(C);var T=I(C,2),ee=P(T,!0);D(T),D(S),D(x);var E=I(x,2),te=P(E),ne=P(te),re=P(ne,!0);D(ne);var ie=I(ne,2);wi(ie),D(te);var ae=I(te,2),oe=P(ae),se=P(oe,!0);D(oe);var ce=I(oe,2);wi(ce),D(ae);var le=I(ae,2),ue=P(le),de=P(ue,!0);D(ue);var fe=I(ue,2);wi(fe),D(le);var pe=I(le,2),me=P(pe),he=P(me,!0);D(me);var ge=I(me,2);at(ge),K(ge,`placeholder`,`/ -/team/alpha`),D(pe);var _e=I(pe,2),ve=P(_e),ye=P(ve,!0);D(ve);var be=I(ve,2);wi(be),D(_e),D(E),D(b),L((e,t,n,r,i,a,o,s,c,u,d,f,p,m)=>{H(l,e),H(h,t),H(_,n),b.open=$.advancedOpen,H(w,r),H(ee,i),H(re,a),K(ie,`placeholder`,o),H(se,s),K(ce,`placeholder`,c),H(de,u),K(fe,`placeholder`,d),H(he,f),H(ye,p),K(be,`placeholder`,m)},[()=>MT(),()=>WT(),()=>qT(),()=>XT(),()=>$T(),()=>nE(),()=>ywe(),()=>aE(),()=>Swe(),()=>cE(),()=>Twe(),()=>dE(),()=>mE(),()=>_E()]),z(`click`,f,()=>$.addHeader()),br(`toggle`,b,e=>$.advancedOpen=e.currentTarget.open),ji(ie,()=>$.form.description,e=>$.form.description=e),ji(ce,()=>$.form.allowed_tools,e=>$.form.allowed_tools=e),ji(fe,()=>$.form.disallowed_tools,e=>$.form.disallowed_tools=e),ji(ge,()=>$.form.user_paths,e=>$.form.user_paths=e),ji(be,()=>$.form.tool_timeout_seconds,e=>$.form.tool_timeout_seconds=e),V(e,n)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`input`,`click`]);var WGe=B(` `),GGe=B(`
              `),KGe=B(`
              `),qGe=B(`
              `);function JGe(e,t){O(t,!0);function n(e){return FNe(e,e=>HX.formatTimestamp(e))}var r=qGe(),i=P(r),a=P(i),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s),u=P(l,!0);D(l);var d=I(l),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=P(h,!0);D(h);var _=I(h),v=P(_,!0);D(_);var y=I(_),b=P(y,!0);D(y),D(o),D(a);var x=I(a);W(x,21,()=>$.filtered,e=>F4(e),(e,t)=>{var r=KGe(),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=e=>{var t=WGe(),n=P(t,!0);D(t),L((e,r)=>{K(t,`title`,e),H(n,r)},[()=>FB(),()=>nz()]),V(e,t)};U(s,e=>{R(t).managed&&e(c)});var l=I(s,2),u=P(l,!0);D(l),D(i);var d=I(i),f=P(d),p=P(f,!0);D(f),D(d);var m=I(d),h=P(m,!0);D(m);var g=I(m),_=P(g),v=P(_,!0);D(_);var y=I(_,2),b=e=>{var n=GGe(),r=P(n,!0);D(n),L(()=>H(r,R(t).last_error)),V(e,n)},x=A(()=>I4(R(t))===`degraded`&&R(t).last_error);U(y,e=>{R(x)&&e(b)}),D(g);var S=I(g),C=P(S),w=P(C,!0);D(C);var T=I(C,2),ee=P(T,!0);D(T),D(S);var E=I(S),te=P(E),ne=P(te,!0);D(te),D(E);var re=I(E),ie=P(re),ae=P(ie),oe=e=>{{let n=A(()=>RB({name:R(t).name}));Y3(e,{get label(){return R(n)},class:`table-icon-btn`,onclick:()=>$.openEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(ae,e=>{R(t).managed||e(oe)});var se=I(ae,2);{let e=A(()=>VB({name:R(t).name}));Y3(se,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>$.openCatalog(R(t)),children:(e,t)=>{q(e,{get icon(){return zTe},class:`form-action-icon`})},$$slots:{default:!0}})}var ce=I(se,2);{let e=A(()=>$.reconnectingName===F4(R(t))?qB({name:R(t).name}):WB({name:R(t).name})),n=A(()=>$.reconnectingName===F4(R(t)));Y3(ce,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>$.reconnectServer(R(t)),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return uX},class:`form-action-icon`})},$$slots:{default:!0}})}var le=I(ce,2),ue=e=>{{let n=A(()=>$.deletingName===F4(R(t))?$B({name:R(t).name}):XB({name:R(t).name})),r=A(()=>$.deletingName===F4(R(t)));Y3(e,{get label(){return R(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>$.deleteServer(R(t)),get disabled(){return R(r)},children:(e,t)=>{q(e,{get icon(){return yX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(le,e=>{R(t).managed||e(ue)}),D(ie),D(re),D(r),L((e,n,r,i,a,s,c,l,d)=>{H(o,R(t).name),H(u,e),H(p,R(t).transport||`http`),K(m,`title`,n),H(h,r),G(_,1,`audit-status-badge ${i??``}`,`svelte-ah8nrt`),K(_,`title`,a),H(v,s),H(w,c),H(ee,l),G(te,1,li([`auth-key-status-badge`,R(t).enabled?`auth-key-status-active`:`auth-key-status-inactive`])),H(ne,d)},[()=>F4(R(t)),()=>R4(R(t)),()=>R4(R(t)),()=>L4(R(t)),()=>n(R(t)),()=>PNe(R(t)),()=>lZ(R(t).tool_count||0),()=>INe(R(t)),()=>R(t).enabled?XR():$R()]),V(e,r)}),D(x),D(i),D(r),L((e,t,n,r,i,a,o)=>{H(c,e),H(u,t),H(f,n),H(m,r),H(g,i),H(v,a),H(b,o)},[()=>dT(),()=>_B(),()=>bB(),()=>CB(),()=>EB(),()=>kB(),()=>MB()]),V(e,r),k()}var YGe=B(`

              `),XGe=B(``),ZGe=B(`
              `),QGe=B(``),$Ge=B(`
              `),h9=B(`

              `),eKe=B(`
              `);function tKe(e,t){O(t,!0);let n=dw();mn(()=>{Y.refreshTick,CX.page===`mcp-servers`&&$.fetchServers()});var r=eKe(),i=P(r),a=P(i),o=P(a);{let e=e=>{var t=YGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>aw()]),V(e,t)},t=A(()=>cw());s3(o,{copyId:`mcp-servers-help-copy`,get label(){return R(t)},get text(){return n},title:e,$$slots:{title:!0}})}D(a);var s=I(a,2),c=P(s),l=e=>{var t=XGe(),n=P(t);q(n,{get icon(){return lX},class:`form-action-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=$.formSubmitting,H(i,e)},[()=>mw()]),z(`click`,t,()=>$.openCreate()),V(e,t)};U(c,e=>{$.available&&!Y.authError&&e(l)}),D(s),D(i);var u=I(i,2),d=e=>{var t=ZGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_w()]),V(e,t)};U(u,e=>{!$.available&&!Y.authError&&e(d)});var f=I(u,2),p=e=>{var t=QGe(),n=P(t,!0);D(t),L(()=>H(n,$.error)),V(e,t)};U(f,e=>{$.error&&!Y.authError&&!$.formOpen&&e(p)});var m=I(f,2),h=e=>{{let t=A(()=>bw());J3(e,{get label(){return R(t)}})}};U(m,e=>{$.loading&&!Y.authError&&e(h)});var g=I(m,2),_=e=>{var t=$Ge(),n=P(t),r=P(n);{let e=A(()=>Cw()),t=A(()=>Ew());z3(r,{id:`mcp-server-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return $.filter},set value(e){$.filter=e}})}D(n),D(t),V(e,t)};U(g,e=>{($.servers.length>0||$.filter)&&$.available&&!Y.authError&&e(_)});var v=I(g,2);UGe(v,{});var y=I(v,2);FGe(y,{});var b=I(y,2),x=e=>{JGe(e,{})};U(b,e=>{$.filtered.length>0&&$.available&&!Y.authError&&e(x)});var S=I(b,2),C=e=>{var t=h9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>kw()]),V(e,t)};U(S,e=>{$.servers.length===0&&!$.filter&&!$.loading&&!Y.authError&&!$.error&&$.available&&e(C)});var w=I(S,2),T=e=>{var t=h9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mw()]),V(e,t)};U(w,e=>{$.servers.length>0&&$.filtered.length===0&&$.filter&&!$.loading&&!Y.authError&&$.available&&e(T)}),D(r),V(e,r),k()}xr([`click`]);var g9=`api_keys`,_9=`session_sticky_keys`,v9=`base_url`,y9=`service_account_json`,b9=`models`,x9=[g9,_9,v9,`api_version`,`backend`,`auth_type`,`api_mode`,`vertex_project`,`vertex_location`,`service_account_file`,y9,`service_account_json_base64`,`gcp_scope`,b9];function nKe(){return{[g9]:{label:RU(),control:`keys`,hint:EW()},[_9]:{label:VU(),control:`checkbox`,hint:kW()},[v9]:{label:WU(),control:`text`},api_version:{label:qU(),control:`text`,placeholder:`e.g. 2024-10-01-preview`,hint:MW()},backend:{label:XU(),control:`select`,hint:FW()},auth_type:{label:$U(),control:`select`,hint:RW()},api_mode:{label:nW(),control:`select`,hint:VW()},vertex_project:{label:aW(),control:`text`,placeholder:`my-gcp-project`},vertex_location:{label:cW(),control:`text`,placeholder:`us-central1`},service_account_file:{label:dW(),control:`text`,placeholder:`/path/to/service-account.json`,hint:WW()},[y9]:{label:mW(),control:`textarea`,placeholder:jCe(),hint:qW()},service_account_json_base64:{label:_W(),control:`text`,hint:XW()},gcp_scope:{label:bW(),control:`text`,placeholder:`https://www.googleapis.com/auth/cloud-platform`},[b9]:{label:CW(),control:`text`,placeholder:`gpt-4o, gpt-4o-mini`,hint:$W()}}}function rKe(e){return nKe()[e]||{label:String(e||``).split(`_`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),control:`text`}}function S9(){return{name:``,type:``,api_keys:[],session_sticky_keys:!0,base_url:``,api_version:``,backend:``,auth_type:``,api_mode:``,vertex_project:``,vertex_location:``,service_account_file:``,service_account_json:``,service_account_json_base64:``,gcp_scope:``,models:``,enabled:!0}}function iKe(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.type,e.base_url].some(e=>String(e||``).toLowerCase().includes(r)))}function aKe(e,t){let n=(Array.isArray(e)?e:[]).map(e=>String(e&&e.type||``).trim()).filter(Boolean),r=String(t||``).trim();return r&&!n.includes(r)&&n.push(r),n}function oKe(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>String(e&&e.type||``).trim()===n)||null}function C9(e,t){let n=e&&Array.isArray(e.fields)&&e.fields.length>0?e.fields:x9.map(e=>({name:e,advanced:e!==g9})),r=t||e&&e.default_base_url||``,i=[],a=[];for(let e of n){let t=String(e&&e.name||``).trim();if(!t)continue;let n={...rKe(t),name:t,required:!!(e&&e.required),options:Array.isArray(e&&e.options)?e.options:[]};t===`base_url`&&r&&(n.placeholder=r,n.hint=nG({value:r})),n.options.length>0&&(n.control=`select`),(e&&e.advanced?a:i).push(n)}return{primary:i,advanced:a}}var sKe=new Set([`name`,`type`,`enabled`]);function cKe(e,t){let n=new Set([...t.primary||[],...t.advanced||[]].map(e=>e.name)),r=S9(),i={...e};for(let e of Object.keys(r))!sKe.has(e)&&!n.has(e)&&(i[e]=r[e]);return i}function lKe(e){let t=Array.isArray(e&&e.api_keys)?e.api_keys.length:0;return t>0?aG({count:t}):String(e&&e.service_account_json||``).trim()||String(e&&e.service_account_json_base64||``).trim()||String(e&&e.service_account_file||``).trim()?cG():String(e&&e.vertex_project||``).trim()?`ADC`:dG()}function uKe(e){let t=Array.isArray(e&&e.models)?e.models:[];return t.length===0?mG():_G({count:t.length})}function dKe(e){return(Array.isArray(e)?e:[]).map(e=>({value:String(e||``)}))}function w9(e){return(Array.isArray(e)?e:[]).map(e=>String(e&&e.value||``))}function fKe(e,t){let n=String(t||``).trim();if(!n)return``;let r=new Set((Array.isArray(e)?e:[]).map(e=>String(e&&e.name||``).trim()));if(!r.has(n))return n;let i=1;for(;r.has(n+`-`+i);)i+=1;return n+`-`+i}function pKe(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),api_keys:dKe(e&&e.api_keys),session_sticky_keys:!e||e.session_sticky_keys!==!1,base_url:String(e&&e.base_url||``),api_version:String(e&&e.api_version||``),backend:String(e&&e.backend||``),auth_type:String(e&&e.auth_type||``),api_mode:String(e&&e.api_mode||``),vertex_project:String(e&&e.vertex_project||``),vertex_location:String(e&&e.vertex_location||``),service_account_file:String(e&&e.service_account_file||``),service_account_json:String(e&&e.service_account_json||``),service_account_json_base64:String(e&&e.service_account_json_base64||``),gcp_scope:String(e&&e.gcp_scope||``),models:(Array.isArray(e&&e.models)?e.models:[]).join(`, `),enabled:!e||e.enabled!==!1}}function mKe(e){let t=String(e||``).trim();return t.length>=3&&/^\*+$/.test(t)}function hKe(e,t,n,r){let i={},a=String(e&&e.name||``).trim();String(e&&e.type||``).trim()||(i.type=PCe()),a?a.includes(`/`)?i.name=BCe():t===`create`&&(Array.isArray(n)?n:[]).some(e=>String(e&&e.name||``).trim()===a)&&(i.name=twe({name:a})):i.name=LCe();let{primary:o,advanced:s}=C9(r);for(let t of[...o,...s]){let n=gKe(e,t);n&&(i[t.name]=n)}return i}function gKe(e,t){if(t.name===`api_keys`){let n=w9(e&&e.api_keys);return t.required&&!n.some(e=>e.trim())?UCe():n.some(e=>!e.trim())?KCe():``}let n=String(e&&e[t.name]||``).trim();if(t.required&&!n)return iwe({field:t.label});if(!n)return``;if(t.name===`base_url`&&!n.includes(`://`)&&/[./]/.test(n))return YCe({value:n});if(t.name===`service_account_json`&&!mKe(n))try{JSON.parse(n)}catch{return QCe()}return``}function _Ke(e,t){let n={name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),enabled:!!(e&&e.enabled)},{primary:r,advanced:i}=C9(t),a=!!(t&&Array.isArray(t.fields)&&t.fields.length>0),o=new Set;for(let t of[...r,...i])!a&&t.name===`session_sticky_keys`||(o.add(t.name),n[t.name]=T9(e,t.name));for(let t of x9){if(o.has(t)||t===`session_sticky_keys`)continue;let r=T9(e,t);(Array.isArray(r)?r.length>0:String(r).trim()!==``)&&(n[t]=r)}return n}function T9(e,t){switch(t){case g9:return w9(e&&e.api_keys);case b9:return sZ(e&&e.models);case _9:return!!(e&&e.session_sticky_keys);case y9:return e&&e.service_account_json||``;default:return String(e&&e[t]||``).trim()}}var E9=new class{#e=j(N([]));get rows(){return R(this.#e)}set rows(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return R(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get formSubmitting(){return R(this.#o)}set formSubmitting(e){M(this.#o,e,!0)}#s=j(`create`);get formMode(){return R(this.#s)}set formMode(e){M(this.#s,e,!0)}#c=j(!1);get advancedOpen(){return R(this.#c)}set advancedOpen(e){M(this.#c,e,!0)}#l=j(N(S9()));get form(){return R(this.#l)}set form(e){M(this.#l,e,!0)}#u=j(N({}));get fieldErrors(){return R(this.#u)}set fieldErrors(e){M(this.#u,e,!0)}#d=j(``);get focusField(){return R(this.#d)}set focusField(e){M(this.#d,e,!0)}#f=j(``);get deletingName(){return R(this.#f)}set deletingName(e){M(this.#f,e,!0)}#p=j(!1);get deleteSubmitting(){return R(this.#p)}set deleteSubmitting(e){M(this.#p,e,!0)}#m=j(N([]));get types(){return R(this.#m)}set types(e){M(this.#m,e,!0)}#h=j(!1);get typesLoaded(){return R(this.#h)}set typesLoaded(e){M(this.#h,e,!0)}#g=null;get filteredRows(){return iKe(this.rows,this.filter)}get schema(){return oKe(this.types,this.form.type)}get formFields(){if(!String(this.form.type||``).trim())return{primary:[],advanced:[]};let e=this.schema;return C9(e,e&&e.default_base_url)}async fetchTypes(){let e=await X3(`/admin/provider-credentials/types`,{label:`provider credential types`});e.status===`ok`&&(this.types=e.items,this.typesLoaded=!0)}async fetchPage(){this.#g&&this.#g.abort();let e=new AbortController;this.#g=e,this.loading=!0,this.error=``;try{let t=await X3(`/admin/provider-credentials`,{label:`provider credentials`,errorFallback:_U(),unavailableStatuses:[503,404],options:{signal:e.signal}});if(t.status===`stale`||e.signal.aborted)return;if(t.status===`unavailable`){this.available=!1,this.rows=[];return}if(t.status===`error`){t.result&&(this.available=!0),this.rows=[],this.error=t.error;return}this.available=!0,this.rows=t.items,this.typesLoaded||await this.fetchTypes()}finally{this.#g===e&&(this.#g=null,this.loading=!1)}}#_(e,t){this.formMode=e,this.form=t,this.advancedOpen=!1,this.error=``,this.fieldErrors={},this.focusField=``}openCreate(){this.#_(`create`,S9()),this.formOpen=!0,this.typesLoaded||this.fetchTypes()}openEdit(e){!e||e.managed||(this.#_(`edit`,pKe(e)),this.formOpen=!0,this.typesLoaded||this.fetchTypes())}closeForm(){this.formOpen=!1,this.#_(`create`,S9())}selectType(){this.fieldErrors={};let e=this.formFields;this.formMode===`create`&&(this.form=cKe(this.form,e));let t=e.primary.find(e=>e.name===`api_keys`);t&&t.required&&this.form.api_keys.length===0&&(this.form.api_keys=[{value:``}])}clearFieldError(e){if(this.fieldErrors[e]===void 0)return;let{[e]:t,...n}=this.fieldErrors;this.fieldErrors=n}addApiKeyRow(){this.form.api_keys.push({value:``}),this.clearFieldError(`api_keys`)}removeApiKeyRow(e){this.form.api_keys.splice(e,1),this.clearFieldError(`api_keys`)}#v(e){let t=UX(e,bU()),n=String(e&&e.error&&typeof e.error==`object`&&e.error.param||``).trim();if(n&&this.#y(n)){this.fieldErrors={...this.fieldErrors,[n]:t},this.error=``,this.#b();return}this.error=t}#y(e){if(e===`name`||e===`type`)return!0;let{primary:t,advanced:n}=this.formFields;return[...t,...n].some(t=>t.name===e)}#b(){let e=Object.keys(this.fieldErrors);if(e.length===0)return;let{primary:t,advanced:n}=this.formFields;n.some(t=>e.includes(t.name))&&(this.advancedOpen=!0);let r=[`type`,`name`,...t.map(e=>e.name),...n.map(e=>e.name)];this.focusField=r.find(t=>e.includes(t))||e[0]}#x(){kZ.fetchModels(),kZ.fetchCategories()}async submitForm(){let e=this.schema,t=hKe(this.form,this.formMode,this.rows,e);if(Object.keys(t).length>0){this.fieldErrors=t,this.error=``,this.#b();return}let n=_Ke(this.form,e);this.error=``,this.fieldErrors={},this.formSubmitting=!0;try{let e=await Z3(`/admin/provider-credentials`,`PUT`,n,{label:`save provider credential`,errorFallback:bU(),unavailableMessage:aD()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.error=e.error;return}if(e.status===`error`){e.result&&e.result.status!==401?this.#v(e.result.data):this.error=e.error;return}oZ.success(CU({name:n.name})),this.closeForm(),this.#x(),this.fetchPage()}finally{this.formSubmitting=!1}}async performDelete(e){this.deleteSubmitting=!0,this.deletingName=e;try{let t=await Z3(`/admin/provider-credentials/`+encodeURIComponent(e),`DELETE`,void 0,{label:`delete provider credential`,errorFallback:EU(),unavailableMessage:aD()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,eZ.error=t.error;return}if(t.status===`error`){eZ.error=t.error;return}oZ.success(kU({name:e})),eZ.close(),this.formOpen&&this.form.name===e&&this.closeForm(),this.#x(),this.fetchPage()}finally{this.deleteSubmitting=!1,this.deletingName=``}}requestDelete(e){let t=String(e||``).trim();if(!t||this.deleteSubmitting)return;let n=(this.rows||[]).find(e=>String(e&&e.name||``).trim()===t);n&&n.managed||eZ.open({title:MU(),titleId:`providerCredentialDeleteDialogTitle`,inputId:`provider-credential-delete-confirmation`,message:FU({name:t}),requiredText:t,confirmLabel:MU(),icon:gX,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.performDelete(t)})}},vKe=B(` `),yKe=B(` `,1),bKe=B(`
              `),xKe=B(`
              `);function SKe(e,t){O(t,!0);var n=xKe(),r=P(n),i=P(r),a=P(i),o=P(a),s=P(o,!0);D(o);var c=I(o),l=P(c,!0);D(c);var u=I(c),d=P(u,!0);D(u);var f=I(u),p=P(f,!0);D(f);var m=I(f),h=P(m,!0);D(m);var g=I(m),_=P(g,!0);D(g);var v=I(g),y=P(v,!0);D(v);var b=I(v),x=P(b,!0);D(b),D(a),D(i);var S=I(i);W(S,21,()=>E9.filteredRows,e=>e.name,(e,t)=>{var n=bKe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=e=>{var t=vKe(),n=P(t,!0);D(t),L((e,r)=>{K(t,`title`,e),H(n,r)},[()=>VD(),()=>nz()]),V(e,t)};U(o,e=>{R(t).managed&&e(s)}),D(r);var c=I(r),l=P(c),u=P(l,!0);D(l),D(c);var d=I(c),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=P(h,!0);D(h);var _=I(h),v=P(_);let y;var b=P(v,!0);D(v),D(_);var x=I(_),S=P(x,!0);D(x);var C=I(x),w=P(C),T=P(w),ee=e=>{var n=yKe(),r=F(n);{let e=A(()=>cU({name:R(t).name}));Y3(r,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>E9.openEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>E9.deletingName===R(t).name?mU({name:R(t).name}):dU({name:R(t).name})),n=A(()=>E9.deletingName===R(t).name);Y3(i,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>E9.requestDelete(R(t).name),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return yX},class:`table-icon-svg`})},$$slots:{default:!0}})}V(e,n)};U(T,e=>{R(t).managed||e(ee)}),D(w),D(C),D(n),L((e,n,r,i)=>{H(a,R(t).name),H(u,R(t).type),K(d,`title`,R(t).base_url||``),H(f,R(t).base_url||`—`),H(m,e),H(g,n),y=G(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":R(t).enabled,"auth-key-status-inactive":!R(t).enabled}),H(b,r),H(S,i)},[()=>lKe(R(t)),()=>uKe(R(t)),()=>R(t).enabled?XR():$R(),()=>HX.formatTimestamp(R(t).updated_at)]),V(e,n)}),D(S),D(r),D(n),L((e,t,n,r,i,a,o,c)=>{H(s,e),H(l,t),H(d,n),H(p,r),H(h,i),H(_,a),H(y,o),H(x,c)},[()=>bD(),()=>CD(),()=>Ss(),()=>ED(),()=>kD(),()=>MD(),()=>FD(),()=>RD()]),V(e,n),k()}var CKe=B(``),wKe=B(`
              `),TKe=B(`
              `,1),EKe=B(``),DKe=B(``),OKe=B(``),kKe=B(``),AKe=B(``),jKe=B(` `),MKe=B(` `),NKe=B(`
              `);function D9(e,t){O(t,!0);let n=A(()=>`provider-credential-`+t.field.name),r=A(()=>E9.fieldErrors[t.field.name]||``),i=A(()=>R(r)?R(n)+`-error`:t.field.hint?R(n)+`-hint`:void 0),a=A(()=>{let e=String(E9.form[t.field.name]||``).trim();return!e||t.field.options.includes(e)?t.field.options:[...t.field.options,e]});function o(){E9.clearFieldError(t.field.name)}var s=NKe(),c=P(s),l=P(c),u=I(l),d=e=>{V(e,CKe())};U(u,e=>{t.field.required&&e(d)}),D(c);var f=I(c,2),p=e=>{var t=TKe(),a=F(t);W(a,21,()=>E9.form.api_keys,Ir,(e,t,a)=>{var s=wKe(),c=P(s);wi(c);var l=I(c,2);{let e=A(()=>$H({number:a+1}));Y3(l,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>E9.removeApiKeyRow(a),children:(e,t)=>{q(e,{get icon(){return gX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(s),L(e=>{K(c,`id`,a===0?R(n):R(n)+`-`+a),K(c,`aria-label`,e),K(c,`aria-invalid`,R(r)?`true`:void 0),K(c,`aria-describedby`,a===0?R(i):void 0)},[()=>XH({number:a+1})]),z(`input`,c,o),ji(c,()=>R(t).value,e=>R(t).value=e),V(e,s)}),D(a);var s=I(a,2),c=P(s),l=P(c);q(l,{get icon(){return lX},class:`form-action-icon`});var u=I(l,2),d=P(u,!0);D(u),D(c),D(s),L(e=>{K(c,`id`,E9.form.api_keys.length===0?R(n):void 0),H(d,e)},[()=>nU()]),z(`click`,c,()=>E9.addApiKeyRow()),V(e,t)},m=e=>{var s=DKe(),c=P(s),l=P(c,!0);D(c),c.value=c.__value=``,W(I(c),16,()=>R(a),e=>e,(e,t)=>{var n=EKe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(s),L(e=>{K(s,`id`,R(n)),K(s,`aria-invalid`,R(r)?`true`:void 0),K(s,`aria-describedby`,R(i)),H(l,e)},[()=>aU()]),z(`change`,s,o),_i(s,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,s)},h=e=>{var a=OKe();wi(a),L(()=>{K(a,`id`,R(n)),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`change`,a,o),Mi(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,a)},g=e=>{var a=kKe();at(a),L(()=>{K(a,`id`,R(n)),K(a,`placeholder`,t.field.placeholder||``),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`input`,a,o),ji(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,a)},_=e=>{var a=AKe();wi(a),L(()=>{K(a,`id`,R(n)),K(a,`placeholder`,t.field.placeholder||``),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`input`,a,o),ji(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,a)};U(f,e=>{t.field.control===`keys`?e(p):t.field.control===`select`?e(m,1):t.field.control===`checkbox`?e(h,2):t.field.control===`textarea`?e(g,3):e(_,-1)});var v=I(f,2),y=e=>{var t=jKe(),i=P(t,!0);D(t),L(()=>{K(t,`id`,R(n)+`-error`),H(i,R(r))}),V(e,t)},b=e=>{var r=MKe(),i=P(r,!0);D(r),L(()=>{K(r,`id`,R(n)+`-hint`),H(i,t.field.hint)}),V(e,r)};U(v,e=>{R(r)?e(y):t.field.hint&&e(b,1)}),D(s),L(()=>{K(c,`for`,R(n)),H(l,`${t.field.label??``} `)}),V(e,s),k()}xr([`input`,`click`,`change`]);var O9=B(`

              `),PKe=B(``),FKe=B(` `),IKe=B(` `),LKe=B(` `),k9=B(` `),RKe=B(`
              `),zKe=B(`
              `,1);function BKe(e,t){O(t,!0);let n=A(()=>aKe(E9.types,E9.form.type)),r=A(()=>E9.formFields),i=A(()=>E9.fieldErrors.name||``),a=A(()=>E9.fieldErrors.type||``);function o(){E9.selectType(),E9.formMode===`create`&&(E9.form.name=fKe(E9.rows,E9.form.type))}mn(()=>{let e=E9.focusField;if(!e)return;E9.focusField=``;let t=document.getElementById(`provider-credential-`+e);t&&(t.scrollIntoView({block:`center`}),t.focus({preventScroll:!0}))});{let t=e=>{var t=O9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>EH()]),V(e,t)},s=A(()=>E9.formMode===`edit`?bH():nD()),c=A(()=>CH());S6(e,{get open(){return E9.formOpen},get title(){return R(s)},get ariaLabel(){return R(c)},get error(){return E9.error},get submitting(){return E9.formSubmitting},novalidate:!0,onclose:()=>E9.closeForm(),onsubmit:()=>E9.submitForm(),headerHint:t,children:(e,t)=>{var s=zKe(),c=F(s),l=P(c),u=P(l,!0);Ve(),D(l);var d=I(l,2),f=P(d),p=P(f,!0);D(f),f.value=f.__value=``,W(I(f),16,()=>R(n),e=>e,(e,t)=>{var n=PKe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(d);var m=I(d,2),h=e=>{var t=FKe(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)},g=e=>{var t=IKe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>MH()]),V(e,t)};U(m,e=>{R(a)?e(h):e(g,-1)}),D(c);var _=I(c,2),v=P(_),y=P(v,!0);Ve(),D(v);var b=I(v,2);wi(b);var x=I(b,2),S=e=>{var t=LKe(),n=P(t,!0);D(t),L(()=>H(n,R(i))),V(e,t)},C=e=>{var t=k9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>FH()]),V(e,t)},w=e=>{var t=k9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>RH()]),V(e,t)};U(x,e=>{R(i)?e(S):E9.formMode===`create`?e(C,1):e(w,-1)}),D(_);var T=I(_,2),ee=e=>{var t=O9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>VH()]),V(e,t)};U(T,e=>{E9.form.type||e(ee)});var E=I(T,2);W(E,17,()=>R(r).primary,e=>e.name,(e,t)=>{D9(e,{get field(){return R(t)}})});var te=I(E,2),ne=P(te),re=P(ne);{let e=A(()=>WH());Z8(re,{get enabled(){return E9.form.enabled},get label(){return R(e)},onclick:()=>E9.form.enabled=!E9.form.enabled})}D(ne),D(te);var ie=I(te,2),ae=e=>{var t=RKe(),n=P(t),i=P(n),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(i),D(n);var l=I(n,2);W(l,21,()=>R(r).advanced,e=>e.name,(e,t)=>{D9(e,{get field(){return R(t)}})}),D(l),D(t),L((e,n)=>{t.open=E9.advancedOpen,H(o,e),H(c,n)},[()=>qH(),()=>R(r).advanced.map(e=>e.label).join(`, `)]),br(`toggle`,t,e=>E9.advancedOpen=e.currentTarget.open),V(e,t)};U(ie,e=>{R(r).advanced.length>0&&e(ae)}),L((e,t,n)=>{H(u,e),d.disabled=E9.formMode===`edit`,K(d,`aria-invalid`,R(a)?`true`:void 0),K(d,`aria-describedby`,R(a)?`provider-credential-type-error`:`provider-credential-type-hint`),H(p,t),H(y,n),b.disabled=E9.formMode===`edit`,K(b,`aria-invalid`,R(i)?`true`:void 0),K(b,`aria-describedby`,R(i)?`provider-credential-name-error`:`provider-credential-name-hint`)},[()=>CD(),()=>kH(),()=>bD()]),z(`change`,d,o),_i(d,()=>E9.form.type,e=>E9.form.type=e),z(`input`,b,()=>E9.clearFieldError(`name`)),ji(b,()=>E9.form.name,e=>E9.form.name=e),V(e,s)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`change`,`input`]);var VKe=B(`

              `),HKe=B(``),UKe=B(`
              `),WKe=B(``),GKe=B(`
              `),A9=B(`

              `),KKe=B(`
              `);function qKe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`providers-config`&&E9.fetchPage()});var n=KKe(),r=P(n),i=P(r);s3(P(i),{copyId:`providers-config-help-copy`,label:`model providers help`,title:e=>{var t=VKe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>$E()]),V(e,t)},help:e=>{Ve(),V(e,Dr(`Configure LLM provider credentials here instead of setting API keys as +`):``}function Y7(e){let t=e&&e.arguments!==void 0?e.arguments:``;if(typeof t!=`string`)try{return JSON.stringify(t,null,2)}catch{return String(t)}try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}var eWe=600*1e3,tWe=15*1e3,nWe=250,rWe=class{#e=j(!1);get conversationOpen(){return R(this.#e)}set conversationOpen(e){M(this.#e,e,!0)}#t=j(!1);get conversationLoading(){return R(this.#t)}set conversationLoading(e){M(this.#t,e,!0)}#n=j(``);get conversationError(){return R(this.#n)}set conversationError(e){M(this.#n,e,!0)}#r=j(``);get conversationAnchorID(){return R(this.#r)}set conversationAnchorID(e){M(this.#r,e,!0)}#i=j(N([]));get conversationEntryIDs(){return R(this.#i)}set conversationEntryIDs(e){M(this.#i,e,!0)}#a=j(``);get conversationSessionID(){return R(this.#a)}set conversationSessionID(e){M(this.#a,e,!0)}#o=j(!1);get conversationTruncated(){return R(this.#o)}set conversationTruncated(e){M(this.#o,e,!0)}#s=j(!1);get conversationFollowLatest(){return R(this.#s)}set conversationFollowLatest(e){M(this.#s,e,!0)}#c=j(``);get conversationOpenedFromID(){return R(this.#c)}set conversationOpenedFromID(e){M(this.#c,e,!0)}#l=j(``);get followUpText(){return R(this.#l)}set followUpText(e){M(this.#l,e,!0)}#u=j(!1);get followUpSending(){return R(this.#u)}set followUpSending(e){M(this.#u,e,!0)}#d=j(``);get followUpError(){return R(this.#d)}set followUpError(e){M(this.#d,e,!0)}followUpRequestID=``;followUpAbort=null;conversationRequestToken=0;conversationReturnFocusEl=null;bodyPointerStart=null;#f=j(null);get conversationDialogEl(){return R(this.#f)}set conversationDialogEl(e){M(this.#f,e,!0)}#p=j(null);get conversationCloseBtnEl(){return R(this.#p)}set conversationCloseBtnEl(e){M(this.#p,e,!0)}#m=j(null);get conversationThreadEl(){return R(this.#m)}set conversationThreadEl(e){M(this.#m,e,!0)}get conversationEntries(){return(this.conversationEntryIDs||[]).map(e=>g3.auditRecord(e)).filter(Boolean)}#h=A(()=>q7(this.conversationEntries,this.conversationAnchorID));get conversationView(){return R(this.#h)}set conversationView(e){M(this.#h,e)}get conversationMessages(){return this.conversationView.messages}get conversationBranchEntryIDs(){return this.conversationView.entryIDs}_setConversationEntryIDs(e){this.conversationEntryIDs=[...new Set((Array.isArray(e)?e:[]).filter(Boolean))],g3.pinAuditRecords(this.conversationEntryIDs)}canShowConversation(e){return LUe(e)}startBodyInteraction(e){this.bodyPointerStart={x:e.clientX,y:e.clientY}}_isBodyDrag(e){if(!this.bodyPointerStart)return!1;let t=Math.abs(e.clientX-this.bodyPointerStart.x),n=Math.abs(e.clientY-this.bodyPointerStart.y);return t>4||n>4}_hasActiveSelection(){let e=window.getSelection?window.getSelection():null;return!e||e.isCollapsed?!1:String(e.toString()||``).trim().length>0}handleBodyConversationClick(e,t){let n=this._isBodyDrag(e);if(this.bodyPointerStart=null,n||this._hasActiveSelection()||!this.canShowConversation(t))return;let r=e.target&&e.target.closest?e.target.closest(`[data-conversation-trigger="1"]`):null;r&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,r))}handleErrorConversationClick(e,t){let n=this._isBodyDrag(e);this.bodyPointerStart=null,!n&&(this._hasActiveSelection()||this.canShowConversation(t)&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,e.currentTarget)))}formatJSON(e){return cZ(e)}renderBodyWithConversationHighlights(e,t,n){return qUe(e,t,{formatJSON:e=>this.formatJSON(e),canShowConversation:e=>this.canShowConversation(e),promptCacheHighlight:n&&n.promptCacheHighlight})}async openConversation(e,t){if(!e||!e.id||!this.canShowConversation(e))return;let n=document.activeElement instanceof HTMLElement?document.activeElement:null;t instanceof HTMLElement?this.conversationReturnFocusEl=t:n&&n!==document.body&&(this.conversationReturnFocusEl=n);let r=++this.conversationRequestToken;if(this.conversationOpen=!0,this.conversationError=``,this.conversationAnchorID=e.id,this.conversationOpenedFromID=e.id,this.conversationSessionID=String(e.session_id||``).trim(),this._setConversationEntryIDs([]),this.conversationTruncated=!1,this.conversationFollowLatest=!1,this.followUpText=``,this.followUpError=``,this.followUpRequestID=``,requestAnimationFrame(()=>this._focusConversationDrawer()),this._conversationEntryLivePending(e)){this.conversationFollowLatest=!0,this.conversationLoading=!1,this._addConversationRecord(g3.upsertAuditRecord(e,`conversation.live`));return}this.conversationLoading=!0,await this.fetchConversation(e.id,r,!0,!0)}_conversationEntryLivePending(e){return typeof g3.auditEntryLiveDetailPending==`function`&&g3.auditEntryLiveDetailPending(e)}_applyConversationView(){let e=this.conversationEntries,t=q7(e,this.conversationAnchorID);if(this.conversationFollowLatest){let n=NUe(e,t.entryIDs);n&&n.id&&String(n.id)!==this.conversationAnchorID&&(this.conversationAnchorID=String(n.id))}}handleAuditRecordChange(e,t){if(!this.conversationOpen||!e)return;let n=String(e.id||``).trim(),r=jUe(this.conversationEntries,this.conversationAnchorID,this.conversationSessionID,this.followUpRequestID,e);if(r.accepted&&(this.followUpRequestID=r.followUpRequestID,n&&r.submittedChild&&(this.conversationAnchorID=n,this.conversationFollowLatest=!0),this._addConversationRecord(e),FUe(String(t||e._live_state||``).trim(),n,this.conversationAnchorID))){this.conversationMessages.length===0&&(this.conversationLoading=!0);let e=++this.conversationRequestToken;this.fetchConversation(n,e,!1)}}_addConversationRecord(e){let t=f3(e);t&&!this.conversationEntryIDs.includes(t)&&this._setConversationEntryIDs([...this.conversationEntryIDs,t]),!this.conversationSessionID&&e.session_id&&(this.conversationSessionID=String(e.session_id).trim()),this._applyConversationView(),this.conversationFollowLatest&&this._scheduleLatestScroll()}conversationLiveWaiting(){if(!this.conversationOpen)return!1;let e=new Set(this.conversationBranchEntryIDs||[]);return(this.conversationEntries||[]).some(t=>e.has(String(t&&t.id||``))&&t._live&&(typeof g3.liveAuditStateSettled!=`function`||!g3.liveAuditStateSettled(t._live_state)))}conversationLiveStatusText(){return(this.conversationMessages||[]).length>0?afe():Ro()}closeConversation(){this.followUpAbort&&this.followUpAbort.abort(),this.conversationOpen=!1,this.conversationRequestToken++,this.conversationSessionID=``,this._setConversationEntryIDs([]),this.conversationFollowLatest=!1,this.conversationOpenedFromID=``,this.followUpRequestID=``,this.followUpSending=!1;let e=this.conversationReturnFocusEl;this.conversationReturnFocusEl=null,e&&typeof e.focus==`function`&&document.contains(e)&&requestAnimationFrame(()=>e.focus())}_focusConversationDrawer(){if(!this.conversationOpen)return;let e=this.conversationCloseBtnEl;if(e&&typeof e.focus==`function`){e.focus();return}let t=this.conversationDialogEl;t&&typeof t.focus==`function`&&t.focus()}async fetchConversation(e,t,n=!0,r=!1){try{let i=await qX(`/admin/audit/conversation?`+(`log_id=`+encodeURIComponent(e)+`&limit=120`),{label:`audit conversation`});if(t!==this.conversationRequestToken||i.stale)return;if(!i.ok){this.conversationError=cfe();return}let a=i.data||{},o=a.anchor_id||e,s=Array.isArray(a.entries)?a.entries:[],c=g3.upsertAuditRecords(s,`conversation.hydrated`),l=I7(this.conversationEntryIDs,c);l.length>this.conversationEntryIDs.length&&this._setConversationEntryIDs(l),r&&(this.conversationFollowLatest=PUe(c,o)),this.conversationAnchorID=o;let u=this.conversationEntries.find(e=>e.id===this.conversationAnchorID);u&&u.session_id&&(this.conversationSessionID=String(u.session_id).trim()),this.conversationTruncated=!!a.truncated,this._applyConversationView(),this.conversationFollowLatest?this._scheduleLatestScroll():n&&this._scheduleAnchorScroll()}catch(e){if(t!==this.conversationRequestToken)return;console.error(`Failed to fetch audit conversation:`,e),this.conversationError=dfe()}finally{t===this.conversationRequestToken&&(this.conversationLoading=!1)}}selectedConversationEntry(){return MUe(this.conversationEntries,this.conversationAnchorID)}followUpKind(){let e=this.selectedConversationEntry();return EUe(e)?j7(e.path):``}canSendFollowUp(){return!!this.followUpKind()&&!!String(this.followUpText||``).trim()&&!this.followUpSending&&!this.conversationLiveWaiting()}async sendFollowUp(){if(!this.canSendFollowUp())return;let e=this.selectedConversationEntry(),t=DUe(e,this.followUpText);if(!e||!t)return;let n=this.conversationAnchorID,r=aWe(),i=new AbortController,a=!1,o=setTimeout(()=>{a=!0,i.abort()},eWe);this.followUpSending=!0,this.followUpError=``,this.followUpRequestID=r,this.followUpAbort=i;try{let a=kUe(e,n,r),o=await GX(e.path,{method:`POST`,headers:a,body:JSON.stringify(t),signal:i.signal}),s=String(o.headers.get(`X-Request-ID`)||``).trim();if(s&&this.followUpRequestID&&(this.followUpRequestID=s),!o.ok){let e=mfe();try{let t=await o.json();e=t&&t.error&&t.error.message||e}catch{}this.followUpError=e,(this.followUpRequestID===r||this.followUpRequestID===s)&&(this.followUpRequestID=``);return}if(this.followUpText=``,await iWe(o),!g3.liveLogsStreaming&&this.conversationOpen){let e=++this.conversationRequestToken;await this._selectPersistedFollowUp(n,this.followUpRequestID,e,i.signal)}}catch(e){YX(e)||i.signal.aborted?a&&this.conversationOpen&&(this.followUpError=_fe()):(console.error(`Failed to send interaction follow-up:`,e),this.followUpError=bfe())}finally{clearTimeout(o),this.followUpAbort===i&&(this.followUpAbort=null,this.followUpSending=!1)}}async _selectPersistedFollowUp(e,t,n,r){let i=Date.now()+tWe;for(;this.conversationOpen&&n===this.conversationRequestToken&&Date.now(){let e=this.conversationThreadEl;if(!e)return;let t=e.querySelectorAll(`[data-conversation-anchor="true"]`),n=t[t.length-1];n&&typeof n.scrollIntoView==`function`&&n.scrollIntoView({block:`center`})})}_scheduleLatestScroll(){requestAnimationFrame(()=>{let e=this.conversationThreadEl;if(!e)return;let t=e.lastElementChild;t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`end`})})}};async function iWe(e){let t=e&&e.body&&typeof e.body.getReader==`function`?e.body.getReader():null;if(!t){await e.text();return}for(;!(await t.read()).done;);}function aWe(){return globalThis.crypto&&typeof globalThis.crypto.randomUUID==`function`?globalThis.crypto.randomUUID():`dashboard-`+Date.now().toString(36)+`-`+Math.random().toString(36).slice(2)}function oWe(e,t){return new Promise((n,r)=>{let i,a=()=>{clearTimeout(i),r(new DOMException(`Aborted`,`AbortError`))};if(i=setTimeout(()=>{t&&t.removeEventListener(`abort`,a),n()},e),t){if(t.aborted){a();return}t.addEventListener(`abort`,a,{once:!0})}})}var X7=new rWe,Z7=0;gn(()=>{mn(()=>{let e=vFe(g3.auditRecordChanges,Z7);e.length!==0&&(Z7=Number(e[e.length-1].version||0),or(()=>{e.forEach(e=>{if(!yFe(e))return;let t=g3.auditRecord(e.key);X7.handleAuditRecordChange(t,e.eventType)})}))})});var sWe=B(``),cWe=B(``),lWe=B(` `),uWe=B(` `),dWe=B(``),fWe=B(`
              `);function pWe(e,t){O(t,!0);let n=zi(t,`thread`,3,null),r=zi(t,`expanded`,3,!1),i=zi(t,`onactivate`,3,null),a=zi(t,`onusage`,3,null),o=zi(t,`hidePath`,3,!1),s=A(()=>HX.formatTimestamp(t.entry.timestamp)),c=A(()=>R(s)===`-`?R(s):R(s).slice(R(s).lastIndexOf(` `)+1)),l=A(()=>X7.conversationOpen&&String(X7.conversationAnchorID||``)===String(t.entry.id||``));function u(e){e.preventDefault(),i()&&i()()}function d(e){e.stopPropagation(),e.preventDefault(),n().ontoggle()}function f(e){e.stopPropagation(),e.preventDefault(),a()?.()}function p(){return Uce({count:Number(n().count||1)})}function m(e){if(e.stopPropagation(),e.preventDefault(),R(l)){X7.closeConversation();return}X7.openConversation(t.entry,e.currentTarget)}var h=fWe();let g;var _=P(h),v=P(_),y=e=>{var t=sWe(),r=P(t);{let e=A(()=>n().expanded?ZY:QY);q(r,{get icon(){return R(e)},class:`audit-thread-expander-svg`})}var i=I(r,2),a=P(i,!0);D(i),D(t),L((e,r)=>{K(t,`aria-expanded`,n().expanded),K(t,`title`,e),K(t,`aria-label`,r),H(a,n().count)},[()=>p(),()=>p()+`, `+(n().expanded?nse():$oe())]),z(`click`,t,d),V(e,t)};U(v,e=>{n()&&e(y)});var b=I(v,2),x=e=>{var t=cWe();q(P(t),{get icon(){return jTe},class:`audit-session-usage-svg`}),D(t),L((e,n)=>{K(t,`title`,e),K(t,`aria-label`,n)},[()=>Io(),()=>Io()]),z(`click`,t,f),V(e,t)};U(b,e=>{a()&&e(x)});var S=I(b,2),C=P(S),w=P(C,!0);D(C);var T=I(C,2),ee=P(T,!0);D(T),D(S);var E=I(S,2),te=e=>{var n=lWe(),r=P(n,!0);D(n),L(e=>H(r,e),[()=>QEe(t.entry)]),V(e,n)};U(E,e=>{(t.entry.requested_model||t.entry.model)&&e(te)});var ne=I(E,2),re=e=>{var n=uWe(),r=P(n,!0);D(n),L(()=>H(r,t.entry.path||`-`)),V(e,n)};U(ne,e=>{o()||e(re)}),D(_);var ie=I(_,2),ae=P(ie);dUe(ae,{get entry(){return t.entry}});var oe=I(ae,2),se=P(oe),ce=P(se,!0);D(se);var le=I(se,2),ue=P(le,!0);D(le),D(oe);var de=I(oe,2),fe=P(de,!0);D(de);var pe=I(de,2),me=e=>{var t=dWe();let n;var r=P(t);{let e=A(()=>R(l)?MTe:QY);q(r,{get icon(){return R(e)},class:`audit-conversation-trigger-svg`})}D(t),L((e,r)=>{n=G(t,1,`audit-conversation-trigger svelte-17mysgz`,null,n,{"audit-conversation-trigger-active":R(l)}),K(t,`title`,e),K(t,`aria-label`,r),K(t,`aria-pressed`,R(l))},[()=>R(l)?Fo():Po(),()=>R(l)?Fo():Po()]),z(`click`,t,m),V(e,t)},he=A(()=>X7.canShowConversation(t.entry));U(pe,e=>{R(he)&&e(me)}),D(ie),D(h),L((e,n,i,a,o)=>{g=G(h,1,`audit-entry-summary svelte-17mysgz`,null,g,e),K(h,`aria-expanded`,r()),G(S,1,`audit-status-badge audit-request-badge ${n??``}`,`svelte-17mysgz`),K(S,`title`,i),K(S,`aria-label`,(t.entry.status_code||`-`)+` `+(t.entry.method||`-`)),H(w,t.entry.status_code||`-`),H(ee,t.entry.method||`-`),K(oe,`title`,a),K(oe,`aria-label`,R(s)),H(ce,R(s)),H(ue,R(c)),H(fe,o)},[()=>({"audit-entry-summary-live-in-progress":d7(t.entry),"audit-entry-summary-has-interactions":X7.canShowConversation(t.entry)}),()=>u7(t.entry.status_code),()=>Kce({status:t.entry.status_code||`-`,method:t.entry.method||`-`}),()=>gZ(t.entry.timestamp),()=>DHe(t.entry.duration_ns)]),z(`click`,h,u),V(e,h),k()}xr([`click`]);var mWe=B(``);function Q7(e,t){O(t,!0);let n=zi(t,`label`,3,`Copy`),r=zi(t,`copiedLabel`,3,`Copied`),i=zi(t,`errorLabel`,3,``),a=zi(t,`class`,3,`btn`),o=A(()=>t.state.error&&i()?i():t.state.copied?r():n());var s=mWe();let c;var l=P(s),u=e=>{q(e,{get icon(){return $Y},width:`14`,height:`14`,"stroke-width":`2.5`})},d=e=>{q(e,{get icon(){return tX},width:`14`,height:`14`})};U(l,e=>{t.state.copied?e(u):e(d,-1)});var f=I(l,2),p=P(f,!0);D(f),D(s),L(()=>{c=G(s,1,li([`copy-feedback-btn`,a()]),null,c,{"copy-feedback-btn-copied":t.state.copied}),H(p,R(o))}),z(`click`,s,e=>{e.preventDefault(),t.onclick?.(e)}),V(e,s),k()}xr([`click`]);var hWe=B(`
               
              `),gWe=B(`
               
              `),_We=B(` `),vWe=B(` `),yWe=B(`
              `),bWe=B(`

              `),xWe=B(`

              `),SWe=B(`

              `),CWe=B(`
              `);function wWe(e,t){O(t,!0);let n=U3({logPrefix:`Failed to copy audit payload:`}),r=U3({logPrefix:`Failed to copy audit payload:`}),i=A(()=>t.pane&&t.pane.showHeaders?cZ(t.pane.headers):``),a=A(()=>!t.pane||!t.pane.showBody?``:BUe(t.pane.body)?GUe(t.pane.body):X7.renderBodyWithConversationHighlights(t.pane.entry,t.pane.body,{promptCacheHighlight:t.pane.promptCacheHighlight})),o=A(()=>!!(t.pane&&X7.canShowConversation(t.pane.entry)));function s(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),X7.handleErrorConversationClick(e,t.pane.entry))}var c=CWe();let l;var u=P(c),d=e=>{var n=hWe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);let c;var l=P(a,!0);D(a),D(n),L(e=>{H(i,e),c=G(a,1,`audit-json audit-pane-error-message svelte-1h5puht`,null,c,{"audit-pane-clickable-preview":R(o)}),K(a,`role`,R(o)?`button`:null),K(a,`tabindex`,R(o)?0:null),H(l,t.pane.errorMessage)},[()=>ule()]),z(`mousedown`,a,e=>X7.startBodyInteraction(e)),z(`keydown`,a,s),z(`click`,a,e=>X7.handleErrorConversationClick(e,t.pane.entry)),V(e,n)};U(u,e=>{t.pane.showErrorMessage&&e(d)});var f=I(u,2),p=e=>{var n=gWe(),a=P(n),o=P(a),s=P(o,!0);D(o);var c=I(o,2);{let e=A(()=>gle()),n=A(()=>Mo());Q7(c,{get state(){return r},get label(){return R(e)},get errorLabel(){return R(n)},class:`audit-copy-btn`,onclick:()=>r.copy(t.pane.copyHeaders,cZ)})}D(a);var l=I(a,2),u=P(l,!0);D(l),D(n),L(e=>{H(s,e),H(u,R(i))},[()=>t.pane.headersTitle||ple()]),V(e,n)};U(f,e=>{t.pane.showHeaders&&e(p)});var m=I(f,2),h=e=>{var r=yWe(),i=P(r),o=P(i),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=e=>{var n=_We(),r=P(n,!0);D(n),L(()=>H(r,t.pane.bodyCacheRatioLabel)),V(e,n)};U(l,e=>{t.pane.bodyCacheRatioLabel&&e(u)});var d=I(l,2),f=e=>{var t=vWe(),n=I(P(t),2),r=P(n,!0);D(n),D(t),L(e=>H(r,e),[()=>Sle()]),V(e,t)};U(d,e=>{t.pane.streaming&&e(f)}),D(o);var p=I(o,2);{let e=A(()=>Tle()),r=A(()=>Mo());Q7(p,{get state(){return n},get label(){return R(e)},get errorLabel(){return R(r)},class:`audit-copy-btn`,onclick:()=>n.copy(t.pane.copyBody,cZ)})}D(i);var m=I(i,2);Gr(m,()=>R(a),!0),D(m),D(r),L(e=>H(c,e),[()=>yle()]),z(`mousedown`,m,e=>X7.startBodyInteraction(e)),z(`click`,m,e=>X7.handleBodyConversationClick(e,t.pane.entry)),V(e,r)};U(m,e=>{t.pane.showBody&&e(h)});var g=I(m,2),_=e=>{var n=bWe(),r=P(n,!0);D(n),L(()=>H(r,t.pane.emptyMessage)),V(e,n)};U(g,e=>{t.pane.showEmpty&&e(_)});var v=I(g,2),y=e=>{var n=xWe(),r=I(P(n),2),i=P(r,!0);D(r),D(n),L(()=>H(i,t.pane.pendingMessage)),V(e,n)};U(v,e=>{t.pane.showPending&&e(y)});var b=I(v,2),x=e=>{var n=SWe(),r=P(n,!0);D(n),L(()=>H(r,t.pane.tooLargeMessage)),V(e,n)};U(b,e=>{t.pane.showTooLarge&&e(x)}),D(c),L(()=>l=G(c,1,`audit-pane svelte-1h5puht`,null,l,{"audit-pane-split":t.pane&&t.pane.layout===`split`,"audit-pane-split-single":t.pane&&t.pane.layout===`split`&&!(t.pane.showHeaders&&t.pane.showBody)})),V(e,c),k()}xr([`mousedown`,`keydown`,`click`]);var TWe=B(` `),$7=B(` `),EWe=B(` `),DWe=B(` `),OWe=B(``),kWe=B(`
              `),AWe=B(`
              `);function jWe(e,t){O(t,!0);let n=zi(t,`panes`,19,()=>[]),r=j(null),i=A(()=>ZHe(R(r),t.entry,n())),a=e=>`audit-tab-`+t.entry.id+`-`+e,o=e=>`audit-tabpanel-`+t.entry.id+`-`+e;function s(e,t){let i=n().map(e=>e.id),a=QHe(e.key,i,t);a!=null&&(e.preventDefault(),((e.currentTarget?.closest?.(`.audit-pane-tablist`))?.querySelectorAll(`.audit-pane-tab`)[i.indexOf(a)])?.focus?.(),M(r,a,!0))}var c=AWe(),l=P(c);W(l,21,n,e=>e.id,(e,t)=>{var n=OWe();let c;var l=P(n),u=P(l),d=e=>{q(e,{get icon(){return TTe}})},f=e=>{q(e,{get icon(){return wTe}})};U(u,e=>{R(t).pane.direction===`request`?e(d):R(t).pane.direction===`response`&&e(f,1)}),D(l);var p=I(l,2),m=P(p,!0);D(p);var h=I(p,2),g=e=>{var n=TWe(),r=P(n);D(n),L(()=>H(r,`#${R(t).pane.seq??``}`)),V(e,n)};U(h,e=>{R(t).pane.seq&&e(g)});var _=I(h,2),v=e=>{var n=$7(),r=P(n,!0);D(n),L(()=>{G(n,1,`provider-badge audit-pane-kind audit-pane-kind-${R(t).pane.kind??``}`,`svelte-1bc5vi5`),H(r,R(t).pane.kind)}),V(e,n)};U(_,e=>{R(t).pane.kind&&e(v)});var y=I(_,2);W(y,17,()=>R(t).pane.noChangeSteps||[],e=>e.id,(e,t)=>{var n=EWe(),r=P(n,!0);D(n),L(()=>{K(n,`title`,R(t).title),H(r,R(t).label)}),V(e,n)});var b=I(y,2),x=e=>{var n=DWe(),r=P(n,!0);D(n),L(e=>{K(n,`title`,e),H(r,R(t).pane.savingsLabel)},[()=>jle()]),V(e,n)};U(b,e=>{R(t).pane.savingsLabel&&e(x)});var S=I(b,2),C=e=>{var n=$7(),r=P(n,!0);D(n),L(e=>{G(n,1,`audit-status-badge ${e??``}`,`svelte-1bc5vi5`),H(r,R(t).pane.statusCode)},[()=>u7(R(t).pane.statusCode)]),V(e,n)};U(S,e=>{R(t).pane.statusCode&&e(C)}),D(n),L((e,r)=>{c=G(n,1,`audit-pane-tab svelte-1bc5vi5`,null,c,{"audit-pane-tab-active":R(i)===R(t).id}),K(n,`aria-selected`,R(i)===R(t).id),K(n,`id`,e),K(n,`aria-controls`,r),K(n,`tabindex`,R(i)===R(t).id?0:-1),G(l,1,li([`audit-pane-icon`,R(t).pane.direction&&`audit-pane-icon-${R(t).pane.direction}`]),`svelte-1bc5vi5`),H(m,R(t).pane.title)},[()=>a(R(t).id),()=>o(R(t).id)]),z(`keydown`,n,e=>s(e,R(t).id)),z(`click`,n,()=>M(r,R(t).id,!0)),V(e,n)}),D(l),W(I(l,2),17,n,e=>e.id,(e,t)=>{var n=kWe();let r;wWe(P(n),{get pane(){return R(t).pane}}),D(n),L((e,a)=>{K(n,`id`,e),K(n,`aria-labelledby`,a),r=mi(n,``,r,{display:R(i)===R(t).id?null:`none`})},[()=>o(R(t).id),()=>a(R(t).id)]),V(e,n)}),D(c),L(e=>K(l,`aria-label`,e),[()=>Ole()]),V(e,c),k()}xr([`keydown`,`click`]);var MWe=B(`
              `),NWe=B(`
              `);function e9(e,t){O(t,!0);let n=zi(t,`thread`,3,null),r=zi(t,`hidePath`,3,!1),i=A(()=>x7.isAuditEntryExpanded(t.entry)),a=A(()=>X7.conversationOpen&&String(X7.conversationAnchorID||``)===String(t.entry.id||``)),o=A(()=>R(i)?y7(t.entry,bUe):[]),s=A(()=>R(i)?MVe(t.entry,J5.auditEntryWorkflow(t.entry),J5.workflowFeatureCaps()):null);function c(){x7.toggleAuditEntryExpanded(t.entry)}var l=NWe();let u;var d=P(l);{let e=A(()=>t.entry.session_id?()=>X.filterBySession(t.entry.session_id,t.entry.user_path):null);pWe(d,{get entry(){return t.entry},get thread(){return n()},get expanded(){return R(i)},get hidePath(){return r()},onactivate:c,get onusage(){return R(e)}})}var f=I(d,2),p=e=>{var n=MWe(),r=P(n),i=e=>{A5(e,{get chart(){return R(s)}})};U(r,e=>{R(s)&&e(i)});var a=I(r,2);jWe(a,{get entry(){return t.entry},get panes(){return R(o)}}),cUe(I(a,2),{get entry(){return t.entry}}),D(n),ai(3,n,()=>rZ,()=>({y:-6,duration:q5(150)})),V(e,n)};U(f,e=>{R(i)&&e(p)}),D(l),L(()=>u=G(l,1,`audit-entry svelte-cmjgwr`,null,u,{"audit-entry-interactions-open":R(a)})),V(e,l),k()}var PWe=B(`
              `),FWe=B(`
              `),IWe=B(`

              `),LWe=B(`
              `),RWe=B(`
              `);function zWe(e,t){O(t,!0);let n=A(()=>n7(t.entry)),r=A(()=>x7.isThreadExpanded(R(n))),i=A(()=>x7.threadChildren(R(n))),a=A(()=>R(i)&&!R(i).loading&&Number(R(i).total||0)>R(i).entries.length+1);var o=Or(),s=F(o),c=e=>{e9(e,{get entry(){return t.entry}})},l=A(()=>!yHe(t.entry)),u=e=>{var n=RWe(),o=P(n);{let e=A(()=>({count:r7(t.entry),expanded:R(r),ontoggle:()=>x7.toggleThread(t.entry)}));e9(o,{get entry(){return t.entry},get thread(){return R(e)}})}var s=I(o,2),c=e=>{var n=LWe(),r=P(n),o=e=>{var t=PWe(),n=P(t);{let e=A(()=>$ce());r3(n,{size:14,get label(){return R(e)}})}D(t),V(e,t)};U(r,e=>{R(i)&&R(i).loading&&e(o)});var s=I(r,2);W(s,17,()=>R(i)&&R(i).entries||[],e=>e.id,(e,n)=>{var r=FWe(),i=P(r);{let e=A(()=>R(n).path===t.entry.path);e9(i,{get entry(){return R(n)},get hidePath(){return R(e)}})}D(r),V(e,r)});var c=I(s,2),l=e=>{var t=IWe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>nle({shown:R(i).entries.length+1,total:R(i).total})]),V(e,t)};U(c,e=>{R(a)&&e(l)}),D(n),ai(3,n,()=>iZ,()=>({duration:q5(150)})),V(e,n)};U(s,e=>{R(r)&&e(c)}),D(n),V(e,n)};U(s,e=>{R(l)?e(c):e(u,-1)}),V(e,o),k()}var BWe=B(`

              .

              `),VWe=B(`
              LOGGING_ENABLED=true
              `),HWe=B(`

              `),UWe=B(`
              `),WWe=B(`
              `),GWe=B(`
              `),KWe=B(`
              `),qWe=B(`
              `);function JWe(e,t){O(t,!0);let n=A(()=>XX.config&&XX.config.LOGGING_RETENTION_DAYS);mn(()=>{if(Y.refreshTick,CX.page===`audit-logs`)return or(()=>r())});function r(){let e=!1;return(async()=>{try{await XX.ensureLoaded()}finally{await x7.fetchAuditLog(!0),!e&&XX.liveLogsVisible()&&g3.ensureLiveLogs()}})(),()=>{e=!0,g3.stopLiveLogs()}}var i=qWe(),a=P(i),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=e=>{{let t=e=>{var t=BWe(),r=P(t,!0),i=I(r),a=P(i,!0);D(i),Ve(),D(t),L((e,t)=>{H(r,e),H(a,t)},[()=>e7(R(n)),()=>t7(R(n))]),V(e,t)},r=A(()=>gse()),i=A(()=>yse());s3(e,{copyId:`audit-retention-help-copy`,get label(){return R(r)},get text(){return R(i)},title:t,$$slots:{title:!0}})}},d=A(()=>gHe(R(n)));U(l,e=>{R(d)&&e(u)}),D(o),D(a);var f=I(a,2);FZ(P(f),{onchange:()=>x7.fetchAuditLog(!0)}),D(f);var p=I(f,2);AZ(p,{});var m=I(p,2),h=e=>{var t=VWe(),n=P(t,!0),r=I(n,2,!0);D(t),L((e,t)=>{H(n,e),H(r,t)},[()=>Pse(),()=>Lse()]),V(e,t)},g=A(()=>XX.loaded&&!XX.auditVisible()&&!Y.needsAuth);U(m,e=>{R(g)&&e(h)});var _=I(m,2),v=P(_);tUe(v,{});var y=I(v,2),b=P(y),x=P(b),S=e=>{var t=HWe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>x7.auditGroupSessions?Bse({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total}):Use({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total})]),V(e,t)};U(x,e=>{x7.auditLog.total>0&&e(S)});var C=I(x,2),w=P(C);wi(w);var T=I(w,2),ee=P(T,!0);D(T),D(C),D(b),iUe(I(b,2),{}),D(y);var E=I(y,2),te=e=>{var t=UWe(),n=P(t);{let e=A(()=>Yse());r3(n,{size:18,get label(){return R(e)}})}D(t),V(e,t)},ne=e=>{var t=GWe();W(t,29,()=>x7.auditLog.entries,e=>e.id,(e,t)=>{var n=WWe(),r=P(n),i=e=>{zWe(e,{get entry(){return R(t)}})},a=e=>{e9(e,{get entry(){return R(t)}})};U(r,e=>{x7.auditGroupSessions?e(i):e(a,-1)}),D(n),ii(n,()=>sHe,()=>({duration:q5(150)})),ai(1,n,()=>uHe,()=>({live:R(t)._live})),V(e,n)}),D(t),V(e,t)};U(E,e=>{x7.loading&&x7.auditLog.entries.length===0?e(te):x7.auditLog.entries.length>0&&e(ne,1)});var re=I(E,2),ie=e=>{var t=KWe();i3(P(t),{}),D(t),V(e,t)};U(re,e=>{x7.auditLog.entries.length===0&&!x7.loading&&!Y.needsAuth&&e(ie)}),H3(I(re,2),{get total(){return x7.auditLog.total},get offset(){return x7.auditLog.offset},get limit(){return x7.auditLog.limit},onprev:()=>x7.auditLogPrevPage(),onnext:()=>x7.auditLogNextPage()}),D(_),D(i),L((e,t)=>{H(c,e),Ei(w,x7.auditGroupSessions),H(ee,t)},[()=>pse(),()=>Kse()]),z(`change`,w,()=>x7.toggleAuditGroupSessions()),V(e,i),k()}xr([`change`]);function t9(e){try{let t=JSON.parse(JSON.stringify(e||{}));return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}catch{return{}}}function n9(e){return Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(e=>e):e==null?[]:String(e).split(`,`).map(e=>e.trim()).filter(e=>e)}function r9(e,t){let n=String(t||``).trim();return(e||[]).find(e=>String(e&&e.type||``).trim()===n)||null}function i9(e){return Array.isArray(e)&&e.length>0&&String(e[0].type||``).trim()||`system_prompt`}function a9(e,t){let n=String(t||``).trim();return n&&r9(e,n)?n:i9(e)}function o9(e,t){let n=r9(e,t);return!n||!n.defaults?{}:t9(n.defaults)}function s9(e,t,n){return{...o9(e,n),...t9(t)}}function c9(e,t){let n=a9(e,t);return{name:``,type:n,description:``,user_path:``,config:o9(e,n)}}function YWe(e,t){if(!t)return e||[];let n=String(t).toLowerCase();return(e||[]).filter(e=>[e.name,e.type,e.user_path,e.description,e.summary].some(e=>String(e||``).toLowerCase().includes(n)))}function XWe(e,t){let n=r9(e,t);return n&&n.label?n.label:t||fhe()}function ZWe(e,t){let n=r9(e,t);return Array.isArray(n&&n.fields)?n.fields:[]}function l9(e,t){if(!t||!e)return t&&t.input===`checkboxes`?[]:``;let n=e[t.key];return n==null?t.input===`checkboxes`?[]:``:t.input===`checkboxes`?n9(n):n}function u9(e,t,n){if(!t)return e;let r=t9(e);if(t.input===`number`){let e=String(n||``).trim();if(e===``)delete r[t.key];else{let n=Number(e);r[t.key]=Number.isFinite(n)?n:e}}else t.input===`checkboxes`?r[t.key]=n9(n):r[t.key]=n;return r}function QWe(e,t,n){return l9(e,t).includes(String(n||``).trim())}function $We(e,t,n,r){let i=n9(l9(e,t)),a=String(n||``).trim();return a?u9(e,t,r?Array.from(new Set([...i,a])):i.filter(e=>e!==a)):e}function eGe(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),description:String(e&&e.description||``).trim()||void 0,user_path:String(e&&e.user_path||``).trim()||void 0,config:t9(e&&e.config)}}var d9=new class{#e=j(N([]));get guardrails(){return R(this.#e)}set guardrails(e){M(this.#e,e,!0)}#t=j(N([]));get types(){return R(this.#t)}set types(e){M(this.#t,e,!0)}#n=j(!0);get available(){return R(this.#n)}set available(e){M(this.#n,e,!0)}#r=j(!1);get loading(){return R(this.#r)}set loading(e){M(this.#r,e,!0)}#i=j(!1);get typesLoading(){return R(this.#i)}set typesLoading(e){M(this.#i,e,!0)}#a=j(``);get error(){return R(this.#a)}set error(e){M(this.#a,e,!0)}#o=j(``);get filter(){return R(this.#o)}set filter(e){M(this.#o,e,!0)}#s=j(!1);get formOpen(){return R(this.#s)}set formOpen(e){M(this.#s,e,!0)}#c=j(!1);get formSubmitting(){return R(this.#c)}set formSubmitting(e){M(this.#c,e,!0)}#l=j(``);get deletingName(){return R(this.#l)}set deletingName(e){M(this.#l,e,!0)}#u=j(`create`);get formMode(){return R(this.#u)}set formMode(e){M(this.#u,e,!0)}#d=j(``);get formOriginalName(){return R(this.#d)}set formOriginalName(e){M(this.#d,e,!0)}#f=j(N({name:``,type:``,description:``,user_path:``,config:{}}));get form(){return R(this.#f)}set form(e){M(this.#f,e,!0)}get filtered(){return YWe(this.guardrails,this.filter)}typeLabel(e){return XWe(this.types,e)}typeFields(e){return ZWe(this.types,e)}fieldValue(e){return l9(this.form&&this.form.config,e)}setFieldValue(e,t){this.form={...this.form,config:u9(this.form.config,e,t)}}arrayFieldSelected(e,t){return QWe(this.form&&this.form.config,e,t)}toggleArrayFieldValue(e,t,n){this.form={...this.form,config:$We(this.form.config,e,t,n)}}openCreate(){this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=c9(this.types,i9(this.types)),this.formOpen=!0}openEdit(e){let t=a9(this.types,e&&e.type);this.formMode=`edit`,this.formOriginalName=String(e&&e.name||``).trim(),this.error=``,this.form={name:this.formOriginalName,type:t,description:String(e&&e.description||``).trim(),user_path:String(e&&e.user_path||``).trim(),config:s9(this.types,e&&e.config,t)},this.formOpen=!0}closeForm(){this.formOpen=!1,this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=c9(this.types,i9(this.types))}changeType(e){let t=a9(this.types,e);this.form={...this.form,type:t,config:o9(this.types,t)}}async fetchTypes(){this.typesLoading=!0;try{let e=await X3(`/admin/guardrails/types`,{label:`guardrail types`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.types=[];return}if(e.result&&(this.available=!0),this.types=e.items,e.status===`error`){this.error=e.error;return}let t=a9(this.types,this.form.type);this.form={...this.form,type:t,config:s9(this.types,this.form.config,t)}}finally{this.typesLoading=!1}}async fetchGuardrails(){this.loading=!0,this.error=``;try{let e=await X3(`/admin/guardrails`,{label:`guardrails`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.guardrails=[];return}e.result&&(this.available=!0),this.guardrails=e.items,this.error=e.error}finally{this.loading=!1}}async fetchPage(){await Promise.all([this.fetchTypes(),this.fetchGuardrails()])}async submitForm(){let e=String(this.form.name||``).trim(),t=String(this.form.type||``).trim();if(!e){this.error=hhe();return}if(!t){this.error=vhe();return}this.error=``,this.formSubmitting=!0;let n=eGe(this.form);try{let t=await Z3(`/admin/guardrails`,`PUT`,n,{label:`save guardrail`,errorFallback:xhe(),unavailableMessage:XO()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}oZ.success(whe({name:e})),this.closeForm(),this.fetchGuardrails()}finally{this.formSubmitting=!1}}async deleteGuardrail(e){let t=String(e&&e.name||``).trim();if(!(!t||this.deletingName)&&window.confirm(Ihe({name:t}))){this.deletingName=t;try{let e=await Z3(`/admin/guardrails`,`DELETE`,{name:t},{label:`delete guardrail`,errorFallback:zhe(),unavailableMessage:XO()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,oZ.error(e.error);return}if(e.status===`error`){oZ.error(e.error);return}oZ.success(Hhe({name:t})),this.formOpen&&this.formOriginalName===t&&this.closeForm(),this.fetchGuardrails()}finally{this.deletingName=``}}}},tGe=B(`
              `),nGe=B(`

              `),rGe=B(`
              `),iGe=B(`
              `),aGe=B(`
              `),oGe=B(`

              `),sGe=B(`

              `);function cGe(e,t){O(t,!0);var n=sGe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(i);var l=I(i,2),u=P(l);q(u,{get icon(){return lX},class:`form-action-icon`});var d=I(u,2),f=P(d,!0);D(d),D(l),D(r);var p=I(r,2),m=e=>{var t=tGe(),n=P(t),r=P(n);{let e=A(()=>nk()),t=A(()=>ak());z3(r,{id:`guardrail-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return d9.filter},set value(e){d9.filter=e}})}D(n),D(t),V(e,t)};U(p,e=>{d9.available&&e(m)});var h=I(p,2),g=e=>{var t=nGe(),n=P(t);{let e=A(()=>Rk());r3(n,{size:16,get label(){return R(e)}})}var r=I(n);D(t),L(e=>H(r,` ${e??``}`),[()=>Rk()]),V(e,t)};U(h,e=>{d9.loading&&d9.filtered.length===0&&e(g)});var _=I(h,2),v=e=>{var t=aGe(),n=P(t),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a),c=P(s,!0);D(s);var l=I(s),u=P(l,!0);D(l);var d=I(l),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p),D(i),D(r);var h=I(r);W(h,21,()=>d9.filtered,e=>e.name,(e,t)=>{var n=iGe(),r=P(n),i=P(r,!0);D(r);var a=I(r),o=P(a),s=P(o,!0);D(o),D(a);var c=I(a),l=P(c,!0);D(c);var u=I(c),d=P(u),f=P(d,!0);D(d);var p=I(d,2),m=e=>{var n=rGe(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(p,e=>{R(t).description&&e(m)}),D(u);var h=I(u),g=P(h),_=P(g);{let e=A(()=>Dhe({name:R(t).name}));Y3(_,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>d9.openEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}var v=I(_,2);{let e=A(()=>d9.deletingName===R(t).name?Nhe({name:R(t).name}):Ahe({name:R(t).name})),n=A(()=>d9.deletingName===R(t).name);Y3(v,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>d9.deleteGuardrail(R(t)),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return yX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(g),D(h),D(n),L((e,n)=>{H(i,R(t).name),H(s,e),H(l,R(t).user_path||`—`),H(f,n)},[()=>d9.typeLabel(R(t).type),()=>R(t).summary||R(t).description||Vk()]),V(e,n)}),D(h),D(n),D(t),L((e,t,n,r,i)=>{H(o,e),H(c,t),H(u,n),H(f,r),H(m,i)},[()=>ck(),()=>dk(),()=>mk(),()=>_k(),()=>bk()]),V(e,t)};U(_,e=>{d9.filtered.length>0&&e(v)});var y=I(_,2),b=e=>{var t=oGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Ck()]),V(e,t)};U(y,e=>{d9.filtered.length===0&&!d9.loading&&d9.available&&!d9.error&&!Y.authError&&e(b)}),D(n),L((e,t,n)=>{H(o,e),H(c,t),l.disabled=d9.typesLoading||d9.formSubmitting||!d9.available,H(f,n)},[()=>VO(),()=>Fk(),()=>$O()]),z(`click`,l,()=>d9.openCreate()),V(e,n),k()}xr([`click`]);var lGe=B(`

              `),uGe=B(``),f9=B(``),dGe=B(``),fGe=B(``),pGe=B(``),mGe=B(``),hGe=B(``),gGe=B(``),_Ge=B(``),vGe=B(`
              `),yGe=B(``),bGe=B(` `),xGe=B(`
              `),SGe=B(`
              `);function CGe(e,t){O(t,!0);let n=A(()=>d9.formMode===`edit`);{let t=e=>{var t=lGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>CM()]),V(e,t)},r=A(()=>R(n)?mM():$O()),i=A(()=>_M()),a=A(()=>bM());S6(e,{get open(){return d9.formOpen},get title(){return R(r)},get ariaLabel(){return R(i)},get error(){return d9.error},get submitting(){return d9.formSubmitting},get submitLabel(){return R(a)},dialogClass:`settings-guardrails-editor guardrails-editor-wide`,onclose:()=>d9.closeForm(),onsubmit:()=>d9.submitForm(),headerHint:t,children:(e,t)=>{var r=SGe(),i=P(r);{let e=A(()=>ck());C6(i,{id:`guardrail-name`,get label(){return R(e)},children:(e,t)=>{var r=uGe();wi(r),L(()=>{r.disabled=R(n),K(r,`data-modal-autofocus`,!R(n)||void 0)}),ji(r,()=>d9.form.name,e=>d9.form.name=e),V(e,r)},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>dk());C6(a,{id:`guardrail-type`,get label(){return R(e)},children:(e,t)=>{var r=dGe();W(r,21,()=>d9.types,e=>e.type,(e,t)=>{var n=f9(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).type)&&(n.value=(n.__value=R(t).type)??``)}),V(e,n)}),D(r);var i;gi(r),L(()=>{r.disabled=R(n),i!==(i=d9.form.type)&&(r.value=(r.__value=d9.form.type)??``,hi(r,d9.form.type))}),z(`change`,r,e=>d9.changeType(e.currentTarget.value)),V(e,r)},$$slots:{default:!0}})}var o=I(a,2);{let e=A(()=>EM());C6(o,{id:`guardrail-description`,get label(){return R(e)},children:(e,t)=>{var r=fGe();wi(r),L(e=>{K(r,`placeholder`,e),K(r,`data-modal-autofocus`,R(n)?!0:void 0)},[()=>kM()]),ji(r,()=>d9.form.description,e=>d9.form.description=e),V(e,r)},$$slots:{default:!0}})}var s=I(o,2),c=P(s);{let e=e=>{var t=pGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>mk()]),V(e,t)},t=A(()=>MM()),n=A(()=>FM());s3(c,{copyId:`guardrail-user-path-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var l=I(c,2);wi(l),D(s),W(I(s,2),17,()=>d9.typeFields(d9.form.type),e=>e.key,(e,t)=>{var n=Or(),r=F(n),i=e=>{var n=vGe(),r=P(n);{let e=e=>{var n=mGe(),r=P(n,!0);D(n),L(()=>{K(n,`for`,`guardrail-field-`+R(t).key),H(r,R(t).label)}),V(e,n)},n=A(()=>`guardrail-field-help-`+R(t).key),i=A(()=>R(t).label+` help`),a=A(()=>R(t).help||``);s3(r,{get copyId(){return R(n)},get label(){return R(i)},get text(){return R(a)},title:e,$$slots:{title:!0}})}var i=I(r,2),a=e=>{var n=hGe();W(n,21,()=>R(t).options||[],e=>e.value,(e,t)=>{var n=f9(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n);var r;gi(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0),r!==(r=e)&&(n.value=(n.__value=e)??``,hi(n,e))},[()=>d9.fieldValue(R(t))]),z(`change`,n,e=>d9.setFieldValue(R(t),e.currentTarget.value)),V(e,n)},o=e=>{var n=gGe();at(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`placeholder`,R(t).placeholder||``),Ti(n,e),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0)},[()=>d9.fieldValue(R(t))]),z(`input`,n,e=>d9.setFieldValue(R(t),e.currentTarget.value)),V(e,n)},s=e=>{var n=_Ge();wi(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`type`,R(t).input||`text`),K(n,`placeholder`,R(t).placeholder||``),Ti(n,e),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0)},[()=>d9.fieldValue(R(t))]),z(`input`,n,e=>d9.setFieldValue(R(t),e.currentTarget.value)),V(e,n)};U(i,e=>{R(t).input===`select`?e(a):R(t).input===`textarea`?e(o,1):e(s,-1)}),D(n),V(e,n)},a=e=>{var n=xGe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>R(t).options||[],e=>R(t).key+`-`+e.value,(e,n)=>{var r=yGe(),i=P(r);wi(i);var a=I(i,2),o=P(a,!0);D(a),D(r),L(e=>{Ei(i,e),H(o,R(n).label)},[()=>d9.arrayFieldSelected(R(t),R(n).value)]),z(`change`,i,e=>d9.toggleArrayFieldValue(R(t),R(n).value,e.currentTarget.checked)),V(e,r)}),D(a);var o=I(a,2),s=e=>{var n=bGe(),r=P(n,!0);D(n),L(()=>{K(n,`id`,`guardrail-field-help-`+R(t).key),H(r,R(t).help)}),V(e,n)};U(o,e=>{R(t).help&&e(s)}),D(n),L(()=>{K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0),H(i,R(t).label)}),V(e,n)};U(r,e=>{R(t).input===`checkboxes`?e(a,-1):e(i)}),V(e,n)}),D(r),L(e=>K(l,`aria-label`,e),[()=>mk()]),ji(l,()=>d9.form.user_path,e=>d9.form.user_path=e),V(e,r)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`change`,`input`]);var wGe=B(`

              `),p9=B(`
              `),TGe=B(`

              `);function EGe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`guardrails`&&(XX.ensureLoaded(),d9.fetchPage())});var n=TGe(),r=P(n),i=P(r),a=P(i);{let e=e=>{var t=wGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>MO()]),V(e,t)},t=A(()=>Ek()),n=A(()=>kk());s3(a,{copyId:`guardrails-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}D(i),D(r);var o=I(r,2),s=P(o),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u);var f=I(u,2),p=P(f,!0);D(f),D(s);var m=I(s,2),h=P(m),g=P(h),_=P(g,!0);D(g);var v=I(g,2),y=P(v,!0);D(v),D(h);var b=I(h,2),x=P(b),S=P(x,!0);D(x);var C=I(x,2),w=P(C,!0);D(C),D(b),D(m),D(o);var T=I(o,2);AZ(T,{});var ee=I(T,2),E=e=>{var t=p9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>qO()]),V(e,t)},te=A(()=>!XX.guardrailsVisible());U(ee,e=>{R(te)&&e(E)});var ne=I(ee,2),re=e=>{var t=p9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XO()]),V(e,t)};U(ne,e=>{!Y.authError&&!d9.available&&e(re)});var ie=I(ne,2),ae=e=>{var t=p9(),n=P(t,!0);D(t),L(()=>H(n,d9.error)),V(e,t)};U(ie,e=>{!Y.authError&&d9.error&&!d9.formOpen&&e(ae)});var oe=I(ie,2);CGe(oe,{}),cGe(I(oe,2),{}),D(n),L((e,t,n,r,i,a,o)=>{H(l,e),H(d,t),H(p,n),H(_,r),H(y,i),H(S,a),H(w,o)},[()=>FO(),()=>RO(),()=>Mk(),()=>VO(),()=>lZ(d9.guardrails.length),()=>WO(),()=>lZ(d9.types.length)]),V(e,n),k()}var $=new class{#e=j(N([]));get servers(){return R(this.#e)}set servers(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return R(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get formSubmitting(){return R(this.#o)}set formSubmitting(e){M(this.#o,e,!0)}#s=j(`create`);get formMode(){return R(this.#s)}set formMode(e){M(this.#s,e,!0)}#c=j(!1);get slugEdited(){return R(this.#c)}set slugEdited(e){M(this.#c,e,!0)}#l=j(!1);get advancedOpen(){return R(this.#l)}set advancedOpen(e){M(this.#l,e,!0)}#u=j(N(N4()));get form(){return R(this.#u)}set form(e){M(this.#u,e,!0)}#d=j(``);get deletingName(){return R(this.#d)}set deletingName(e){M(this.#d,e,!0)}#f=j(``);get reconnectingName(){return R(this.#f)}set reconnectingName(e){M(this.#f,e,!0)}#p=j(!1);get catalogOpen(){return R(this.#p)}set catalogOpen(e){M(this.#p,e,!0)}#m=j(!1);get catalogLoading(){return R(this.#m)}set catalogLoading(e){M(this.#m,e,!0)}#h=j(``);get catalogError(){return R(this.#h)}set catalogError(e){M(this.#h,e,!0)}#g=j(N(P4()));get catalog(){return R(this.#g)}set catalog(e){M(this.#g,e,!0)}#_=A(()=>BNe(this.servers,this.filter));get filtered(){return R(this.#_)}set filtered(e){M(this.#_,e)}async fetchServers(){if(await XX.ensureLoaded(),!XX.mcpVisible()){this.available=!1,this.servers=[],this.error=``,this.loading=!1;return}this.loading=!0,this.error=``;try{let e=await X3(`/admin/mcp-servers`,{label:`mcp servers`,errorFallback:RV(),unavailableStatuses:[503,404]});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.servers=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.servers=[],this.error=e.error;return}this.available=!0,this.servers=e.items}finally{this.loading=!1}}openCreate(){this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=N4(),this.formOpen=!0}openEdit(e){!e||e.managed||(this.formMode=`edit`,this.slugEdited=!0,this.advancedOpen=!1,this.error=``,this.form=VNe(e),this.formOpen=!0)}closeForm(){this.formOpen=!1,this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=N4()}syncSlugFromName(){this.formMode===`create`&&!this.slugEdited&&(this.form.slug=z4(this.form.name))}markSlugEdited(){this.formMode===`create`&&(this.slugEdited=!0)}addHeader(){this.form.headers.push({name:``,value:``})}removeHeader(e){this.form.headers.splice(e,1)}async submitForm(){let e=HNe(this.form,this.formMode,this.servers);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await Z3(`/admin/mcp-servers`,`PUT`,e.payload,{label:`save mcp server`,errorFallback:VV(),unavailableMessage:_w()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}oZ.success(WV({name:e.payload.name})),this.closeForm(),this.fetchServers()}finally{this.formSubmitting=!1}}async deleteServer(e){let t=String(e&&e.name||``).trim(),n=F4(e);if(!(!n||this.deletingName||e&&e.managed)&&confirm(qV({name:t}))){this.deletingName=n;try{let e=await Z3(`/admin/mcp-servers/`+encodeURIComponent(n),`DELETE`,void 0,{label:`delete mcp server`,errorFallback:XV(),unavailableMessage:_w()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,oZ.error(e.error);return}if(e.status===`error`){oZ.error(e.error);return}oZ.success($V({name:t})),this.formOpen&&this.form.slug===n&&this.closeForm(),this.fetchServers()}finally{this.deletingName=``}}}async reconnectServer(e){let t=String(e&&e.name||``).trim(),n=F4(e);if(!(!n||this.reconnectingName)){this.reconnectingName=n;try{let e=await Z3(`/admin/mcp-servers/`+encodeURIComponent(n)+`/reconnect`,`POST`,void 0,{label:`reconnect mcp server`,errorFallback:nH(),unavailableMessage:_w()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,oZ.error(e.error);return}if(e.status===`error`){oZ.error(e.error);return}let r=e.result.data,i=I4(r);i===`connected`?oZ.success(aH({name:t})):i===`disabled`?oZ.success(cH({name:t})):oZ.error(dH({name:t,status:i})),r&&r.name?this.servers=(this.servers||[]).map(e=>F4(e)===F4(r)?r:e):this.fetchServers()}finally{this.reconnectingName=``}}}async openCatalog(e){let t=String(e&&e.name||``).trim(),n=F4(e);if(n){this.catalogOpen=!0,this.catalogLoading=!0,this.catalogError=``,this.catalog={...P4(),server:n,status:I4(e)};try{let e=await qX(`/admin/mcp-servers/`+encodeURIComponent(n)+`/catalog`,{label:`mcp server catalog`});if(e.stale)return;if(e.status===503){this.available=!1,this.catalogError=_w();return}if(e.status===404){this.catalogError=mH({name:t});return}if(!e.ok){this.catalogError=e.status===401?az():UX(e.data,_H());return}this.catalog=UNe(n,e.data)}catch(e){console.error(`Failed to load MCP server catalog:`,e),this.catalogError=_H()}finally{this.catalogLoading=!1}}}closeCatalog(){this.catalogOpen=!1,this.catalogLoading=!1,this.catalogError=``,this.catalog=P4()}},DGe=B(``),OGe=B(`

              `),kGe=B(`
              `),AGe=B(`

              `),jGe=B(`
            • `),MGe=B(`

                `),NGe=B(`

                `),PGe=B(` `,1),FGe=B(``);function IGe(e,t){O(t,!0);let n=A(()=>B4($.catalog));QX(e,{get open(){return $.catalogOpen},variant:`editor`,onclose:()=>$.closeCatalog(),children:(e,t)=>{var r=FGe(),i=P(r),a=P(i),o=P(a),s=P(o,!0);D(o);var c=I(o,2),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d),D(c),D(a);var p=I(a,2);{let e=A(()=>Vw());ZX(p,{get label(){return R(e)},onclick:()=>$.closeCatalog()})}D(i);var m=I(i,2),h=e=>{{let t=A(()=>Ww());J3(e,{get label(){return R(t)}})}},g=e=>{var t=DGe(),n=P(t,!0);D(t),L(()=>H(n,$.catalogError)),V(e,t)},_=e=>{var t=PGe(),r=F(t),i=e=>{var t=OGe(),n=P(t,!0);D(t),L(()=>H(n,$.catalog.instructions)),V(e,t)};U(r,e=>{$.catalog.instructions&&e(i)});var a=I(r,2);W(a,17,()=>R(n),e=>e.key,(e,t)=>{var n=MGe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>R(t).items,e=>e.key,(e,t)=>{var n=jGe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=e=>{var n=kGe(),r=P(n,!0);D(n),L(e=>{K(n,`title`,e),H(r,R(t).aggregated)},[()=>qw({name:R(t).aggregated})]),V(e,n)};U(a,e=>{R(t).aggregated&&e(o)});var s=I(a,2),c=e=>{var n=AGe(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(s,e=>{R(t).description&&e(c)}),D(n),L(()=>{K(r,`title`,R(t).aggregated||R(t).name),H(i,R(t).name)}),V(e,n)}),D(a),D(n),L(()=>H(i,R(t).title)),V(e,n)});var o=I(a,2),s=e=>{var t=NGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Xw()]),V(e,t)},c=A(()=>GNe($.catalog));U(o,e=>{R(c)&&e(s)}),V(e,t)};U(m,e=>{$.catalogLoading?e(h):$.catalogError?e(g,1):e(_,-1)});var v=I(m,2),y=P(v),b=P(y,!0);D(y),D(v),D(r),L((e,t,n,i,a)=>{K(r,`aria-label`,e),H(s,t),H(u,$.catalog.server),G(d,1,`audit-status-badge ${n??``}`,`svelte-1xqrzco`),H(f,i),H(b,a)},[()=>Fw(),()=>Rw(),()=>L4($.catalog),()=>I4($.catalog),()=>$w()]),z(`click`,y,()=>$.closeCatalog()),V(e,r)},$$slots:{default:!0}}),k()}xr([`click`]);var LGe=B(`

                `),RGe=B(` `,1),m9=B(` `),zGe=B(` `,1),BGe=B(` `,1),VGe=B(``),HGe=B(`
                `),UGe=B(`
                `,1);function WGe(e,t){O(t,!0);{let t=e=>{var t=LGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>cT()]),V(e,t)},n=A(()=>$.formMode===`edit`?nT():mw()),r=A(()=>aT());S6(e,{get open(){return $.formOpen},get title(){return R(n)},get ariaLabel(){return R(r)},get error(){return $.error},get submitting(){return $.formSubmitting},onclose:()=>$.closeForm(),onsubmit:()=>$.submitForm(),headerHint:t,children:(e,t)=>{var n=UGe(),r=F(n);{let e=A(()=>dT());C6(r,{id:`mcp-server-name`,get label(){return R(e)},children:(e,t)=>{var n=RGe(),r=F(n);wi(r);var i=I(r,2),a=P(i,!0);D(i),L(e=>H(a,e),[()=>mT()]),z(`input`,r,()=>$.syncSlugFromName()),ji(r,()=>$.form.name,e=>$.form.name=e),V(e,n)},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>_T());C6(i,{id:`mcp-server-slug`,get label(){return R(e)},children:(e,t)=>{var n=zGe(),r=F(n);wi(r);var i=I(r,2),a=e=>{var t=m9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>bT()]),V(e,t)},o=e=>{var t=m9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>CT()]),V(e,t)};U(i,e=>{$.formMode===`create`?e(a):e(o,-1)}),L(()=>r.disabled=$.formMode===`edit`),z(`input`,r,()=>$.markSlugEdited()),ji(r,()=>$.form.slug,e=>$.form.slug=e),V(e,n)},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>ET());C6(a,{id:`mcp-server-transport`,get label(){return R(e)},children:(e,t)=>{var n=BGe(),r=F(n),i=P(r);i.value=i.__value=`http`;var a=I(i);a.value=a.__value=`sse`,D(r);var o=I(r,2),s=P(o,!0);D(o),L(e=>H(s,e),[()=>kT()]),_i(r,()=>$.form.transport,e=>$.form.transport=e),V(e,n)},$$slots:{default:!0}})}var o=I(a,2);C6(o,{id:`mcp-server-url`,label:`URL`,children:(e,t)=>{var n=VGe();wi(n),ji(n,()=>$.form.url,e=>$.form.url=e),V(e,n)},$$slots:{default:!0}});var s=I(o,2),c=P(s),l=P(c,!0);D(c);var u=I(c,2);W(u,21,()=>$.form.headers,Ir,(e,t,n)=>{var r=HGe(),i=P(r);wi(i);var a=I(i,2);wi(a);var o=I(a,2);{let e=A(()=>VT());Y3(o,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>$.removeHeader(n),children:(e,t)=>{q(e,{get icon(){return gX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r),L((e,t)=>{K(i,`aria-label`,e),K(a,`aria-label`,t)},[()=>FT(),()=>RT()]),ji(i,()=>R(t).name,e=>R(t).name=e),ji(a,()=>R(t).value,e=>R(t).value=e),V(e,r)}),D(u);var d=I(u,2),f=P(d),p=P(f);q(p,{get icon(){return lX},class:`form-action-icon`});var m=I(p,2),h=P(m,!0);D(m),D(f),D(d);var g=I(d,2),_=P(g,!0);D(g),D(s);var v=I(s,2),y=P(v);Z8(P(y),{get enabled(){return $.form.enabled},label:`MCP server`,onclick:()=>$.form.enabled=!$.form.enabled}),D(y),D(v);var b=I(v,2),x=P(b),S=P(x),C=P(S),w=P(C,!0);D(C);var T=I(C,2),ee=P(T,!0);D(T),D(S),D(x);var E=I(x,2),te=P(E),ne=P(te),re=P(ne,!0);D(ne);var ie=I(ne,2);wi(ie),D(te);var ae=I(te,2),oe=P(ae),se=P(oe,!0);D(oe);var ce=I(oe,2);wi(ce),D(ae);var le=I(ae,2),ue=P(le),de=P(ue,!0);D(ue);var fe=I(ue,2);wi(fe),D(le);var pe=I(le,2),me=P(pe),he=P(me,!0);D(me);var ge=I(me,2);at(ge),K(ge,`placeholder`,`/ +/team/alpha`),D(pe);var _e=I(pe,2),ve=P(_e),ye=P(ve,!0);D(ve);var be=I(ve,2);wi(be),D(_e),D(E),D(b),L((e,t,n,r,i,a,o,s,c,u,d,f,p,m)=>{H(l,e),H(h,t),H(_,n),b.open=$.advancedOpen,H(w,r),H(ee,i),H(re,a),K(ie,`placeholder`,o),H(se,s),K(ce,`placeholder`,c),H(de,u),K(fe,`placeholder`,d),H(he,f),H(ye,p),K(be,`placeholder`,m)},[()=>MT(),()=>WT(),()=>qT(),()=>XT(),()=>$T(),()=>nE(),()=>ywe(),()=>aE(),()=>Swe(),()=>cE(),()=>Twe(),()=>dE(),()=>mE(),()=>_E()]),z(`click`,f,()=>$.addHeader()),br(`toggle`,b,e=>$.advancedOpen=e.currentTarget.open),ji(ie,()=>$.form.description,e=>$.form.description=e),ji(ce,()=>$.form.allowed_tools,e=>$.form.allowed_tools=e),ji(fe,()=>$.form.disallowed_tools,e=>$.form.disallowed_tools=e),ji(ge,()=>$.form.user_paths,e=>$.form.user_paths=e),ji(be,()=>$.form.tool_timeout_seconds,e=>$.form.tool_timeout_seconds=e),V(e,n)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`input`,`click`]);var GGe=B(` `),KGe=B(`
                `),qGe=B(`
                `),JGe=B(`
                `);function YGe(e,t){O(t,!0);function n(e){return FNe(e,e=>HX.formatTimestamp(e))}var r=JGe(),i=P(r),a=P(i),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s),u=P(l,!0);D(l);var d=I(l),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=P(h,!0);D(h);var _=I(h),v=P(_,!0);D(_);var y=I(_),b=P(y,!0);D(y),D(o),D(a);var x=I(a);W(x,21,()=>$.filtered,e=>F4(e),(e,t)=>{var r=qGe(),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=e=>{var t=GGe(),n=P(t,!0);D(t),L((e,r)=>{K(t,`title`,e),H(n,r)},[()=>FB(),()=>nz()]),V(e,t)};U(s,e=>{R(t).managed&&e(c)});var l=I(s,2),u=P(l,!0);D(l),D(i);var d=I(i),f=P(d),p=P(f,!0);D(f),D(d);var m=I(d),h=P(m,!0);D(m);var g=I(m),_=P(g),v=P(_,!0);D(_);var y=I(_,2),b=e=>{var n=KGe(),r=P(n,!0);D(n),L(()=>H(r,R(t).last_error)),V(e,n)},x=A(()=>I4(R(t))===`degraded`&&R(t).last_error);U(y,e=>{R(x)&&e(b)}),D(g);var S=I(g),C=P(S),w=P(C,!0);D(C);var T=I(C,2),ee=P(T,!0);D(T),D(S);var E=I(S),te=P(E),ne=P(te,!0);D(te),D(E);var re=I(E),ie=P(re),ae=P(ie),oe=e=>{{let n=A(()=>RB({name:R(t).name}));Y3(e,{get label(){return R(n)},class:`table-icon-btn`,onclick:()=>$.openEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(ae,e=>{R(t).managed||e(oe)});var se=I(ae,2);{let e=A(()=>VB({name:R(t).name}));Y3(se,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>$.openCatalog(R(t)),children:(e,t)=>{q(e,{get icon(){return zTe},class:`form-action-icon`})},$$slots:{default:!0}})}var ce=I(se,2);{let e=A(()=>$.reconnectingName===F4(R(t))?qB({name:R(t).name}):WB({name:R(t).name})),n=A(()=>$.reconnectingName===F4(R(t)));Y3(ce,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>$.reconnectServer(R(t)),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return uX},class:`form-action-icon`})},$$slots:{default:!0}})}var le=I(ce,2),ue=e=>{{let n=A(()=>$.deletingName===F4(R(t))?$B({name:R(t).name}):XB({name:R(t).name})),r=A(()=>$.deletingName===F4(R(t)));Y3(e,{get label(){return R(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>$.deleteServer(R(t)),get disabled(){return R(r)},children:(e,t)=>{q(e,{get icon(){return yX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(le,e=>{R(t).managed||e(ue)}),D(ie),D(re),D(r),L((e,n,r,i,a,s,c,l,d)=>{H(o,R(t).name),H(u,e),H(p,R(t).transport||`http`),K(m,`title`,n),H(h,r),G(_,1,`audit-status-badge ${i??``}`,`svelte-ah8nrt`),K(_,`title`,a),H(v,s),H(w,c),H(ee,l),G(te,1,li([`auth-key-status-badge`,R(t).enabled?`auth-key-status-active`:`auth-key-status-inactive`])),H(ne,d)},[()=>F4(R(t)),()=>R4(R(t)),()=>R4(R(t)),()=>L4(R(t)),()=>n(R(t)),()=>PNe(R(t)),()=>lZ(R(t).tool_count||0),()=>INe(R(t)),()=>R(t).enabled?XR():$R()]),V(e,r)}),D(x),D(i),D(r),L((e,t,n,r,i,a,o)=>{H(c,e),H(u,t),H(f,n),H(m,r),H(g,i),H(v,a),H(b,o)},[()=>dT(),()=>_B(),()=>bB(),()=>CB(),()=>EB(),()=>kB(),()=>MB()]),V(e,r),k()}var XGe=B(`

                `),ZGe=B(``),QGe=B(`
                `),$Ge=B(``),eKe=B(`
                `),h9=B(`

                `),tKe=B(`
                `);function nKe(e,t){O(t,!0);let n=dw();mn(()=>{Y.refreshTick,CX.page===`mcp-servers`&&$.fetchServers()});var r=tKe(),i=P(r),a=P(i),o=P(a);{let e=e=>{var t=XGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>aw()]),V(e,t)},t=A(()=>cw());s3(o,{copyId:`mcp-servers-help-copy`,get label(){return R(t)},get text(){return n},title:e,$$slots:{title:!0}})}D(a);var s=I(a,2),c=P(s),l=e=>{var t=ZGe(),n=P(t);q(n,{get icon(){return lX},class:`form-action-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=$.formSubmitting,H(i,e)},[()=>mw()]),z(`click`,t,()=>$.openCreate()),V(e,t)};U(c,e=>{$.available&&!Y.authError&&e(l)}),D(s),D(i);var u=I(i,2),d=e=>{var t=QGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_w()]),V(e,t)};U(u,e=>{!$.available&&!Y.authError&&e(d)});var f=I(u,2),p=e=>{var t=$Ge(),n=P(t,!0);D(t),L(()=>H(n,$.error)),V(e,t)};U(f,e=>{$.error&&!Y.authError&&!$.formOpen&&e(p)});var m=I(f,2),h=e=>{{let t=A(()=>bw());J3(e,{get label(){return R(t)}})}};U(m,e=>{$.loading&&!Y.authError&&e(h)});var g=I(m,2),_=e=>{var t=eKe(),n=P(t),r=P(n);{let e=A(()=>Cw()),t=A(()=>Ew());z3(r,{id:`mcp-server-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return $.filter},set value(e){$.filter=e}})}D(n),D(t),V(e,t)};U(g,e=>{($.servers.length>0||$.filter)&&$.available&&!Y.authError&&e(_)});var v=I(g,2);WGe(v,{});var y=I(v,2);IGe(y,{});var b=I(y,2),x=e=>{YGe(e,{})};U(b,e=>{$.filtered.length>0&&$.available&&!Y.authError&&e(x)});var S=I(b,2),C=e=>{var t=h9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>kw()]),V(e,t)};U(S,e=>{$.servers.length===0&&!$.filter&&!$.loading&&!Y.authError&&!$.error&&$.available&&e(C)});var w=I(S,2),T=e=>{var t=h9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mw()]),V(e,t)};U(w,e=>{$.servers.length>0&&$.filtered.length===0&&$.filter&&!$.loading&&!Y.authError&&$.available&&e(T)}),D(r),V(e,r),k()}xr([`click`]);var g9=`api_keys`,_9=`session_sticky_keys`,v9=`base_url`,y9=`service_account_json`,b9=`models`,x9=[g9,_9,v9,`api_version`,`backend`,`auth_type`,`api_mode`,`vertex_project`,`vertex_location`,`service_account_file`,y9,`service_account_json_base64`,`gcp_scope`,b9];function rKe(){return{[g9]:{label:RU(),control:`keys`,hint:EW()},[_9]:{label:VU(),control:`checkbox`,hint:kW()},[v9]:{label:WU(),control:`text`},api_version:{label:qU(),control:`text`,placeholder:`e.g. 2024-10-01-preview`,hint:MW()},backend:{label:XU(),control:`select`,hint:FW()},auth_type:{label:$U(),control:`select`,hint:RW()},api_mode:{label:nW(),control:`select`,hint:VW()},vertex_project:{label:aW(),control:`text`,placeholder:`my-gcp-project`},vertex_location:{label:cW(),control:`text`,placeholder:`us-central1`},service_account_file:{label:dW(),control:`text`,placeholder:`/path/to/service-account.json`,hint:WW()},[y9]:{label:mW(),control:`textarea`,placeholder:jCe(),hint:qW()},service_account_json_base64:{label:_W(),control:`text`,hint:XW()},gcp_scope:{label:bW(),control:`text`,placeholder:`https://www.googleapis.com/auth/cloud-platform`},[b9]:{label:CW(),control:`text`,placeholder:`gpt-4o, gpt-4o-mini`,hint:$W()}}}function iKe(e){return rKe()[e]||{label:String(e||``).split(`_`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),control:`text`}}function S9(){return{name:``,type:``,api_keys:[],session_sticky_keys:!0,base_url:``,api_version:``,backend:``,auth_type:``,api_mode:``,vertex_project:``,vertex_location:``,service_account_file:``,service_account_json:``,service_account_json_base64:``,gcp_scope:``,models:``,enabled:!0}}function aKe(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.type,e.base_url].some(e=>String(e||``).toLowerCase().includes(r)))}function oKe(e,t){let n=(Array.isArray(e)?e:[]).map(e=>String(e&&e.type||``).trim()).filter(Boolean),r=String(t||``).trim();return r&&!n.includes(r)&&n.push(r),n}function sKe(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>String(e&&e.type||``).trim()===n)||null}function C9(e,t){let n=e&&Array.isArray(e.fields)&&e.fields.length>0?e.fields:x9.map(e=>({name:e,advanced:e!==g9})),r=t||e&&e.default_base_url||``,i=[],a=[];for(let e of n){let t=String(e&&e.name||``).trim();if(!t)continue;let n={...iKe(t),name:t,required:!!(e&&e.required),options:Array.isArray(e&&e.options)?e.options:[]};t===`base_url`&&r&&(n.placeholder=r,n.hint=nG({value:r})),n.options.length>0&&(n.control=`select`),(e&&e.advanced?a:i).push(n)}return{primary:i,advanced:a}}var cKe=new Set([`name`,`type`,`enabled`]);function lKe(e,t){let n=new Set([...t.primary||[],...t.advanced||[]].map(e=>e.name)),r=S9(),i={...e};for(let e of Object.keys(r))!cKe.has(e)&&!n.has(e)&&(i[e]=r[e]);return i}function uKe(e){let t=Array.isArray(e&&e.api_keys)?e.api_keys.length:0;return t>0?aG({count:t}):String(e&&e.service_account_json||``).trim()||String(e&&e.service_account_json_base64||``).trim()||String(e&&e.service_account_file||``).trim()?cG():String(e&&e.vertex_project||``).trim()?`ADC`:dG()}function dKe(e){let t=Array.isArray(e&&e.models)?e.models:[];return t.length===0?mG():_G({count:t.length})}function fKe(e){return(Array.isArray(e)?e:[]).map(e=>({value:String(e||``)}))}function w9(e){return(Array.isArray(e)?e:[]).map(e=>String(e&&e.value||``))}function pKe(e,t){let n=String(t||``).trim();if(!n)return``;let r=new Set((Array.isArray(e)?e:[]).map(e=>String(e&&e.name||``).trim()));if(!r.has(n))return n;let i=1;for(;r.has(n+`-`+i);)i+=1;return n+`-`+i}function mKe(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),api_keys:fKe(e&&e.api_keys),session_sticky_keys:!e||e.session_sticky_keys!==!1,base_url:String(e&&e.base_url||``),api_version:String(e&&e.api_version||``),backend:String(e&&e.backend||``),auth_type:String(e&&e.auth_type||``),api_mode:String(e&&e.api_mode||``),vertex_project:String(e&&e.vertex_project||``),vertex_location:String(e&&e.vertex_location||``),service_account_file:String(e&&e.service_account_file||``),service_account_json:String(e&&e.service_account_json||``),service_account_json_base64:String(e&&e.service_account_json_base64||``),gcp_scope:String(e&&e.gcp_scope||``),models:(Array.isArray(e&&e.models)?e.models:[]).join(`, `),enabled:!e||e.enabled!==!1}}function hKe(e){let t=String(e||``).trim();return t.length>=3&&/^\*+$/.test(t)}function gKe(e,t,n,r){let i={},a=String(e&&e.name||``).trim();String(e&&e.type||``).trim()||(i.type=PCe()),a?a.includes(`/`)?i.name=BCe():t===`create`&&(Array.isArray(n)?n:[]).some(e=>String(e&&e.name||``).trim()===a)&&(i.name=twe({name:a})):i.name=LCe();let{primary:o,advanced:s}=C9(r);for(let t of[...o,...s]){let n=_Ke(e,t);n&&(i[t.name]=n)}return i}function _Ke(e,t){if(t.name===`api_keys`){let n=w9(e&&e.api_keys);return t.required&&!n.some(e=>e.trim())?UCe():n.some(e=>!e.trim())?KCe():``}let n=String(e&&e[t.name]||``).trim();if(t.required&&!n)return iwe({field:t.label});if(!n)return``;if(t.name===`base_url`&&!n.includes(`://`)&&/[./]/.test(n))return YCe({value:n});if(t.name===`service_account_json`&&!hKe(n))try{JSON.parse(n)}catch{return QCe()}return``}function vKe(e,t){let n={name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),enabled:!!(e&&e.enabled)},{primary:r,advanced:i}=C9(t),a=!!(t&&Array.isArray(t.fields)&&t.fields.length>0),o=new Set;for(let t of[...r,...i])!a&&t.name===`session_sticky_keys`||(o.add(t.name),n[t.name]=T9(e,t.name));for(let t of x9){if(o.has(t)||t===`session_sticky_keys`)continue;let r=T9(e,t);(Array.isArray(r)?r.length>0:String(r).trim()!==``)&&(n[t]=r)}return n}function T9(e,t){switch(t){case g9:return w9(e&&e.api_keys);case b9:return sZ(e&&e.models);case _9:return!!(e&&e.session_sticky_keys);case y9:return e&&e.service_account_json||``;default:return String(e&&e[t]||``).trim()}}var E9=new class{#e=j(N([]));get rows(){return R(this.#e)}set rows(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return R(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get formSubmitting(){return R(this.#o)}set formSubmitting(e){M(this.#o,e,!0)}#s=j(`create`);get formMode(){return R(this.#s)}set formMode(e){M(this.#s,e,!0)}#c=j(!1);get advancedOpen(){return R(this.#c)}set advancedOpen(e){M(this.#c,e,!0)}#l=j(N(S9()));get form(){return R(this.#l)}set form(e){M(this.#l,e,!0)}#u=j(N({}));get fieldErrors(){return R(this.#u)}set fieldErrors(e){M(this.#u,e,!0)}#d=j(``);get focusField(){return R(this.#d)}set focusField(e){M(this.#d,e,!0)}#f=j(``);get deletingName(){return R(this.#f)}set deletingName(e){M(this.#f,e,!0)}#p=j(!1);get deleteSubmitting(){return R(this.#p)}set deleteSubmitting(e){M(this.#p,e,!0)}#m=j(N([]));get types(){return R(this.#m)}set types(e){M(this.#m,e,!0)}#h=j(!1);get typesLoaded(){return R(this.#h)}set typesLoaded(e){M(this.#h,e,!0)}#g=null;get filteredRows(){return aKe(this.rows,this.filter)}get schema(){return sKe(this.types,this.form.type)}get formFields(){if(!String(this.form.type||``).trim())return{primary:[],advanced:[]};let e=this.schema;return C9(e,e&&e.default_base_url)}async fetchTypes(){let e=await X3(`/admin/provider-credentials/types`,{label:`provider credential types`});e.status===`ok`&&(this.types=e.items,this.typesLoaded=!0)}async fetchPage(){this.#g&&this.#g.abort();let e=new AbortController;this.#g=e,this.loading=!0,this.error=``;try{let t=await X3(`/admin/provider-credentials`,{label:`provider credentials`,errorFallback:_U(),unavailableStatuses:[503,404],options:{signal:e.signal}});if(t.status===`stale`||e.signal.aborted)return;if(t.status===`unavailable`){this.available=!1,this.rows=[];return}if(t.status===`error`){t.result&&(this.available=!0),this.rows=[],this.error=t.error;return}this.available=!0,this.rows=t.items,this.typesLoaded||await this.fetchTypes()}finally{this.#g===e&&(this.#g=null,this.loading=!1)}}#_(e,t){this.formMode=e,this.form=t,this.advancedOpen=!1,this.error=``,this.fieldErrors={},this.focusField=``}openCreate(){this.#_(`create`,S9()),this.formOpen=!0,this.typesLoaded||this.fetchTypes()}openEdit(e){!e||e.managed||(this.#_(`edit`,mKe(e)),this.formOpen=!0,this.typesLoaded||this.fetchTypes())}closeForm(){this.formOpen=!1,this.#_(`create`,S9())}selectType(){this.fieldErrors={};let e=this.formFields;this.formMode===`create`&&(this.form=lKe(this.form,e));let t=e.primary.find(e=>e.name===`api_keys`);t&&t.required&&this.form.api_keys.length===0&&(this.form.api_keys=[{value:``}])}clearFieldError(e){if(this.fieldErrors[e]===void 0)return;let{[e]:t,...n}=this.fieldErrors;this.fieldErrors=n}addApiKeyRow(){this.form.api_keys.push({value:``}),this.clearFieldError(`api_keys`)}removeApiKeyRow(e){this.form.api_keys.splice(e,1),this.clearFieldError(`api_keys`)}#v(e){let t=UX(e,bU()),n=String(e&&e.error&&typeof e.error==`object`&&e.error.param||``).trim();if(n&&this.#y(n)){this.fieldErrors={...this.fieldErrors,[n]:t},this.error=``,this.#b();return}this.error=t}#y(e){if(e===`name`||e===`type`)return!0;let{primary:t,advanced:n}=this.formFields;return[...t,...n].some(t=>t.name===e)}#b(){let e=Object.keys(this.fieldErrors);if(e.length===0)return;let{primary:t,advanced:n}=this.formFields;n.some(t=>e.includes(t.name))&&(this.advancedOpen=!0);let r=[`type`,`name`,...t.map(e=>e.name),...n.map(e=>e.name)];this.focusField=r.find(t=>e.includes(t))||e[0]}#x(){kZ.fetchModels(),kZ.fetchCategories()}async submitForm(){let e=this.schema,t=gKe(this.form,this.formMode,this.rows,e);if(Object.keys(t).length>0){this.fieldErrors=t,this.error=``,this.#b();return}let n=vKe(this.form,e);this.error=``,this.fieldErrors={},this.formSubmitting=!0;try{let e=await Z3(`/admin/provider-credentials`,`PUT`,n,{label:`save provider credential`,errorFallback:bU(),unavailableMessage:aD()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.error=e.error;return}if(e.status===`error`){e.result&&e.result.status!==401?this.#v(e.result.data):this.error=e.error;return}oZ.success(CU({name:n.name})),this.closeForm(),this.#x(),this.fetchPage()}finally{this.formSubmitting=!1}}async performDelete(e){this.deleteSubmitting=!0,this.deletingName=e;try{let t=await Z3(`/admin/provider-credentials/`+encodeURIComponent(e),`DELETE`,void 0,{label:`delete provider credential`,errorFallback:EU(),unavailableMessage:aD()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,eZ.error=t.error;return}if(t.status===`error`){eZ.error=t.error;return}oZ.success(kU({name:e})),eZ.close(),this.formOpen&&this.form.name===e&&this.closeForm(),this.#x(),this.fetchPage()}finally{this.deleteSubmitting=!1,this.deletingName=``}}requestDelete(e){let t=String(e||``).trim();if(!t||this.deleteSubmitting)return;let n=(this.rows||[]).find(e=>String(e&&e.name||``).trim()===t);n&&n.managed||eZ.open({title:MU(),titleId:`providerCredentialDeleteDialogTitle`,inputId:`provider-credential-delete-confirmation`,message:FU({name:t}),requiredText:t,confirmLabel:MU(),icon:gX,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.performDelete(t)})}},yKe=B(` `),bKe=B(` `,1),xKe=B(`
                `),SKe=B(`
                `);function CKe(e,t){O(t,!0);var n=SKe(),r=P(n),i=P(r),a=P(i),o=P(a),s=P(o,!0);D(o);var c=I(o),l=P(c,!0);D(c);var u=I(c),d=P(u,!0);D(u);var f=I(u),p=P(f,!0);D(f);var m=I(f),h=P(m,!0);D(m);var g=I(m),_=P(g,!0);D(g);var v=I(g),y=P(v,!0);D(v);var b=I(v),x=P(b,!0);D(b),D(a),D(i);var S=I(i);W(S,21,()=>E9.filteredRows,e=>e.name,(e,t)=>{var n=xKe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=e=>{var t=yKe(),n=P(t,!0);D(t),L((e,r)=>{K(t,`title`,e),H(n,r)},[()=>VD(),()=>nz()]),V(e,t)};U(o,e=>{R(t).managed&&e(s)}),D(r);var c=I(r),l=P(c),u=P(l,!0);D(l),D(c);var d=I(c),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=P(h,!0);D(h);var _=I(h),v=P(_);let y;var b=P(v,!0);D(v),D(_);var x=I(_),S=P(x,!0);D(x);var C=I(x),w=P(C),T=P(w),ee=e=>{var n=bKe(),r=F(n);{let e=A(()=>cU({name:R(t).name}));Y3(r,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>E9.openEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>E9.deletingName===R(t).name?mU({name:R(t).name}):dU({name:R(t).name})),n=A(()=>E9.deletingName===R(t).name);Y3(i,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>E9.requestDelete(R(t).name),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return yX},class:`table-icon-svg`})},$$slots:{default:!0}})}V(e,n)};U(T,e=>{R(t).managed||e(ee)}),D(w),D(C),D(n),L((e,n,r,i)=>{H(a,R(t).name),H(u,R(t).type),K(d,`title`,R(t).base_url||``),H(f,R(t).base_url||`—`),H(m,e),H(g,n),y=G(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":R(t).enabled,"auth-key-status-inactive":!R(t).enabled}),H(b,r),H(S,i)},[()=>uKe(R(t)),()=>dKe(R(t)),()=>R(t).enabled?XR():$R(),()=>HX.formatTimestamp(R(t).updated_at)]),V(e,n)}),D(S),D(r),D(n),L((e,t,n,r,i,a,o,c)=>{H(s,e),H(l,t),H(d,n),H(p,r),H(h,i),H(_,a),H(y,o),H(x,c)},[()=>bD(),()=>CD(),()=>Ss(),()=>ED(),()=>kD(),()=>MD(),()=>FD(),()=>RD()]),V(e,n),k()}var wKe=B(``),TKe=B(`
                `),EKe=B(`
                `,1),DKe=B(``),OKe=B(``),kKe=B(``),AKe=B(``),jKe=B(``),MKe=B(` `),NKe=B(` `),PKe=B(`
                `);function D9(e,t){O(t,!0);let n=A(()=>`provider-credential-`+t.field.name),r=A(()=>E9.fieldErrors[t.field.name]||``),i=A(()=>R(r)?R(n)+`-error`:t.field.hint?R(n)+`-hint`:void 0),a=A(()=>{let e=String(E9.form[t.field.name]||``).trim();return!e||t.field.options.includes(e)?t.field.options:[...t.field.options,e]});function o(){E9.clearFieldError(t.field.name)}var s=PKe(),c=P(s),l=P(c),u=I(l),d=e=>{V(e,wKe())};U(u,e=>{t.field.required&&e(d)}),D(c);var f=I(c,2),p=e=>{var t=EKe(),a=F(t);W(a,21,()=>E9.form.api_keys,Ir,(e,t,a)=>{var s=TKe(),c=P(s);wi(c);var l=I(c,2);{let e=A(()=>$H({number:a+1}));Y3(l,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>E9.removeApiKeyRow(a),children:(e,t)=>{q(e,{get icon(){return gX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(s),L(e=>{K(c,`id`,a===0?R(n):R(n)+`-`+a),K(c,`aria-label`,e),K(c,`aria-invalid`,R(r)?`true`:void 0),K(c,`aria-describedby`,a===0?R(i):void 0)},[()=>XH({number:a+1})]),z(`input`,c,o),ji(c,()=>R(t).value,e=>R(t).value=e),V(e,s)}),D(a);var s=I(a,2),c=P(s),l=P(c);q(l,{get icon(){return lX},class:`form-action-icon`});var u=I(l,2),d=P(u,!0);D(u),D(c),D(s),L(e=>{K(c,`id`,E9.form.api_keys.length===0?R(n):void 0),H(d,e)},[()=>nU()]),z(`click`,c,()=>E9.addApiKeyRow()),V(e,t)},m=e=>{var s=OKe(),c=P(s),l=P(c,!0);D(c),c.value=c.__value=``,W(I(c),16,()=>R(a),e=>e,(e,t)=>{var n=DKe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(s),L(e=>{K(s,`id`,R(n)),K(s,`aria-invalid`,R(r)?`true`:void 0),K(s,`aria-describedby`,R(i)),H(l,e)},[()=>aU()]),z(`change`,s,o),_i(s,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,s)},h=e=>{var a=kKe();wi(a),L(()=>{K(a,`id`,R(n)),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`change`,a,o),Mi(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,a)},g=e=>{var a=AKe();at(a),L(()=>{K(a,`id`,R(n)),K(a,`placeholder`,t.field.placeholder||``),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`input`,a,o),ji(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,a)},_=e=>{var a=jKe();wi(a),L(()=>{K(a,`id`,R(n)),K(a,`placeholder`,t.field.placeholder||``),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`input`,a,o),ji(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,a)};U(f,e=>{t.field.control===`keys`?e(p):t.field.control===`select`?e(m,1):t.field.control===`checkbox`?e(h,2):t.field.control===`textarea`?e(g,3):e(_,-1)});var v=I(f,2),y=e=>{var t=MKe(),i=P(t,!0);D(t),L(()=>{K(t,`id`,R(n)+`-error`),H(i,R(r))}),V(e,t)},b=e=>{var r=NKe(),i=P(r,!0);D(r),L(()=>{K(r,`id`,R(n)+`-hint`),H(i,t.field.hint)}),V(e,r)};U(v,e=>{R(r)?e(y):t.field.hint&&e(b,1)}),D(s),L(()=>{K(c,`for`,R(n)),H(l,`${t.field.label??``} `)}),V(e,s),k()}xr([`input`,`click`,`change`]);var O9=B(`

                `),FKe=B(``),IKe=B(` `),LKe=B(` `),RKe=B(` `),k9=B(` `),zKe=B(`
                `),BKe=B(`
                `,1);function VKe(e,t){O(t,!0);let n=A(()=>oKe(E9.types,E9.form.type)),r=A(()=>E9.formFields),i=A(()=>E9.fieldErrors.name||``),a=A(()=>E9.fieldErrors.type||``);function o(){E9.selectType(),E9.formMode===`create`&&(E9.form.name=pKe(E9.rows,E9.form.type))}mn(()=>{let e=E9.focusField;if(!e)return;E9.focusField=``;let t=document.getElementById(`provider-credential-`+e);t&&(t.scrollIntoView({block:`center`}),t.focus({preventScroll:!0}))});{let t=e=>{var t=O9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>EH()]),V(e,t)},s=A(()=>E9.formMode===`edit`?bH():nD()),c=A(()=>CH());S6(e,{get open(){return E9.formOpen},get title(){return R(s)},get ariaLabel(){return R(c)},get error(){return E9.error},get submitting(){return E9.formSubmitting},novalidate:!0,onclose:()=>E9.closeForm(),onsubmit:()=>E9.submitForm(),headerHint:t,children:(e,t)=>{var s=BKe(),c=F(s),l=P(c),u=P(l,!0);Ve(),D(l);var d=I(l,2),f=P(d),p=P(f,!0);D(f),f.value=f.__value=``,W(I(f),16,()=>R(n),e=>e,(e,t)=>{var n=FKe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(d);var m=I(d,2),h=e=>{var t=IKe(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)},g=e=>{var t=LKe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>MH()]),V(e,t)};U(m,e=>{R(a)?e(h):e(g,-1)}),D(c);var _=I(c,2),v=P(_),y=P(v,!0);Ve(),D(v);var b=I(v,2);wi(b);var x=I(b,2),S=e=>{var t=RKe(),n=P(t,!0);D(t),L(()=>H(n,R(i))),V(e,t)},C=e=>{var t=k9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>FH()]),V(e,t)},w=e=>{var t=k9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>RH()]),V(e,t)};U(x,e=>{R(i)?e(S):E9.formMode===`create`?e(C,1):e(w,-1)}),D(_);var T=I(_,2),ee=e=>{var t=O9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>VH()]),V(e,t)};U(T,e=>{E9.form.type||e(ee)});var E=I(T,2);W(E,17,()=>R(r).primary,e=>e.name,(e,t)=>{D9(e,{get field(){return R(t)}})});var te=I(E,2),ne=P(te),re=P(ne);{let e=A(()=>WH());Z8(re,{get enabled(){return E9.form.enabled},get label(){return R(e)},onclick:()=>E9.form.enabled=!E9.form.enabled})}D(ne),D(te);var ie=I(te,2),ae=e=>{var t=zKe(),n=P(t),i=P(n),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(i),D(n);var l=I(n,2);W(l,21,()=>R(r).advanced,e=>e.name,(e,t)=>{D9(e,{get field(){return R(t)}})}),D(l),D(t),L((e,n)=>{t.open=E9.advancedOpen,H(o,e),H(c,n)},[()=>qH(),()=>R(r).advanced.map(e=>e.label).join(`, `)]),br(`toggle`,t,e=>E9.advancedOpen=e.currentTarget.open),V(e,t)};U(ie,e=>{R(r).advanced.length>0&&e(ae)}),L((e,t,n)=>{H(u,e),d.disabled=E9.formMode===`edit`,K(d,`aria-invalid`,R(a)?`true`:void 0),K(d,`aria-describedby`,R(a)?`provider-credential-type-error`:`provider-credential-type-hint`),H(p,t),H(y,n),b.disabled=E9.formMode===`edit`,K(b,`aria-invalid`,R(i)?`true`:void 0),K(b,`aria-describedby`,R(i)?`provider-credential-name-error`:`provider-credential-name-hint`)},[()=>CD(),()=>kH(),()=>bD()]),z(`change`,d,o),_i(d,()=>E9.form.type,e=>E9.form.type=e),z(`input`,b,()=>E9.clearFieldError(`name`)),ji(b,()=>E9.form.name,e=>E9.form.name=e),V(e,s)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`change`,`input`]);var HKe=B(`

                `),UKe=B(``),WKe=B(`
                `),GKe=B(``),KKe=B(`
                `),A9=B(`

                `),qKe=B(`
                `);function JKe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`providers-config`&&E9.fetchPage()});var n=qKe(),r=P(n),i=P(r);s3(P(i),{copyId:`providers-config-help-copy`,label:`model providers help`,title:e=>{var t=HKe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>$E()]),V(e,t)},help:e=>{Ve(),V(e,Dr(`Configure LLM provider credentials here instead of setting API keys as environment variables. Providers declared in config.yaml or env vars are read-only (Config badge) and cannot be edited or deleted from the - dashboard. Keys are masked after saving.`))},$$slots:{title:!0,help:!0}}),D(i);var a=I(i,2),o=P(a),s=e=>{var t=HKe(),n=P(t);q(n,{get icon(){return lX},class:`form-action-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=E9.formSubmitting,H(i,e)},[()=>nD()]),z(`click`,t,()=>E9.openCreate()),V(e,t)};U(o,e=>{E9.available&&!Y.needsAuth&&e(s)}),D(a),D(r);var c=I(r,2),l=e=>{var t=UKe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>aD()]),V(e,t)};U(c,e=>{!E9.available&&!Y.needsAuth&&e(l)});var u=I(c,2),d=e=>{var t=WKe(),n=P(t,!0);D(t),L(()=>H(n,E9.error)),V(e,t)};U(u,e=>{E9.error&&!Y.needsAuth&&!E9.formOpen&&e(d)});var f=I(u,2),p=e=>{J3(e,{label:`Loading providers...`})};U(f,e=>{E9.loading&&!Y.needsAuth&&e(p)});var m=I(f,2),h=e=>{var t=GKe(),n=P(t),r=P(n);{let e=A(()=>cD()),t=A(()=>dD());z3(r,{id:`provider-credential-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return E9.filter},set value(e){E9.filter=e}})}D(n),D(t),V(e,t)};U(m,e=>{(E9.rows.length>0||E9.filter)&&E9.available&&!Y.needsAuth&&e(h)});var g=I(m,2);BKe(g,{});var _=I(g,2),v=e=>{SKe(e,{})};U(_,e=>{E9.filteredRows.length>0&&E9.available&&!Y.needsAuth&&e(v)});var y=I(_,2),b=e=>{var t=A9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>mD()]),V(e,t)};U(y,e=>{E9.rows.length===0&&!E9.filter&&!E9.loading&&!Y.needsAuth&&!E9.error&&E9.available&&e(b)});var x=I(y,2),S=e=>{var t=A9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_D()]),V(e,t)};U(x,e=>{E9.rows.length>0&&E9.filteredRows.length===0&&E9.filter&&!E9.loading&&!Y.needsAuth&&E9.available&&e(S)}),D(n),V(e,n),k()}xr([`click`]);function j9(){return{name:``,description:``,user_path:``,labels:``,dashboard_access:!1,expires_at:``}}function M9(e){let t=[];for(let n of String(e||``).split(`,`)){let e=n.trim();e&&!t.includes(e)&&t.push(e)}return t}function N9(e){let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t;for(let e of n.split(`/`)){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return dB();if(t.includes(`:`))return mB()}}return``}function JKe(e){if(N9(e))return``;let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t,r=[];for(let e of n.split(`/`)){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function YKe(e){let t=e||{},n=String(t.name||``).trim();if(!n)return{error:cB()};let r=N9(t.user_path);if(r)return{error:r};let i=JKe(t.user_path),a=M9(t.labels),o={name:n,description:String(t.description||``).trim()||void 0,user_path:i||void 0,labels:a.length?a:void 0,dashboard_access:t.dashboard_access?!0:void 0};return t.expires_at&&(o.expires_at=t.expires_at+`T23:59:59Z`),{payload:o}}function P9(e,t=Date.now()){let n=e&&e.expires_at;if(!n)return!1;let r=Date.parse(n);return Number.isFinite(r)&&r<=t}function F9(e){return e?!!e.deactivated_at||e.enabled===!1:!1}function I9(e,t=Date.now()){return!e||e.active===!1||F9(e)?!1:!P9(e,t)}function XKe(e){return[e.name,e.description,e.user_path,e.redacted_value,...e.labels||[]].filter(Boolean).join(` `).toLowerCase()}function ZKe(e,t={}){let{query:n=``,showInactive:r=!1,now:i=Date.now()}=t,a=String(n||``).trim().toLowerCase();return(Array.isArray(e)?e:[]).filter(e=>!r&&!I9(e,i)?!1:!a||XKe(e).includes(a))}function L9(e,t){return F9(e)?2:+!I9(e,t)}function R9(e){let t=e&&e.expires_at;if(!t)return 1/0;let n=Date.parse(t);return Number.isFinite(n)?n:1/0}function z9(e){let t=Date.parse(e&&e.deactivated_at||``);return Number.isFinite(t)?t:-1/0}function QKe(e,t=Date.now()){return(Array.isArray(e)?e.slice():[]).sort((e,n)=>{let r=L9(e,t),i=L9(n,t);if(r!==i)return r-i;let[a,o]=r===2?[z9(e),z9(n)]:[R9(e),R9(n)];return a===o?String(e.name||``).localeCompare(String(n.name||``)):a>o?-1:1})}function $Ke(e,t=Date.now()){return(Array.isArray(e)?e:[]).reduce((e,n)=>e+ +!I9(n,t),0)}function B9(){return{open:!1,id:``,name:``,value:``,submitting:!1,error:``}}var V9=new class{#e=j(N([]));get keys(){return R(this.#e)}set keys(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get showInactive(){return R(this.#a)}set showInactive(e){M(this.#a,e,!0)}#o=A(()=>QKe(ZKe(this.keys,{query:this.filter,showInactive:this.showInactive})));get visibleKeys(){return R(this.#o)}set visibleKeys(e){M(this.#o,e)}#s=A(()=>$Ke(this.keys));get inactiveCount(){return R(this.#s)}set inactiveCount(e){M(this.#s,e)}#c=j(!1);get formOpen(){return R(this.#c)}set formOpen(e){M(this.#c,e,!0)}#l=j(!1);get formSubmitting(){return R(this.#l)}set formSubmitting(e){M(this.#l,e,!0)}#u=j(``);get issuedValue(){return R(this.#u)}set issuedValue(e){M(this.#u,e,!0)}#d=j(``);get deactivatingID(){return R(this.#d)}set deactivatingID(e){M(this.#d,e,!0)}#f=j(``);get dashboardAccessID(){return R(this.#f)}set dashboardAccessID(e){M(this.#f,e,!0)}#p=j(N(j9()));get form(){return R(this.#p)}set form(e){M(this.#p,e,!0)}#m=j(N(B9()));get labelsEditor(){return R(this.#m)}set labelsEditor(e){M(this.#m,e,!0)}copyState=U3({logPrefix:`Failed to copy auth key:`});async fetchKeys(){this.loading=!0,this.error=``;try{let e=await X3(`/admin/auth-keys`,{label:`auth keys`,errorFallback:kz()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.keys=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.error=e.error;return}this.available=!0,this.keys=e.items}finally{this.loading=!1}}openForm(){this.formSubmitting||this.formOpen||(this.formOpen=!0,this.error=``,this.issuedValue||(this.copyState.reset(),this.form=j9()))}closeForm(){this.formOpen&&(this.formOpen=!1,this.error=``,this.copyState.reset(),!this.formSubmitting&&!this.issuedValue&&(this.form=j9()))}copyIssuedValue(){return this.copyState.copy(this.issuedValue)}dismissIssuedKey(){this.issuedValue=``,this.copyState.reset(),this.form=j9()}async submitForm(){let e=YKe(this.form);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await Z3(`/admin/auth-keys`,`POST`,e.payload,{label:`create API key`,errorFallback:Mz(),unavailableMessage:Fz()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error,t.result&&t.result.status!==401&&console.error(`Failed to create API key:`,t.result.status,this.error);return}let n=t.result.data||{};this.issuedValue=n.value||``,this.formOpen=!0,this.copyState.reset(),this.form=j9(),this.fetchKeys()}finally{this.formSubmitting=!1}}openLabelsEditor(e){!e||this.labelsEditor.submitting||(this.labelsEditor={open:!0,id:e.id,name:e.name||``,value:(e.labels||[]).join(`, `),submitting:!1,error:``})}closeLabelsEditor(){!this.labelsEditor.open||this.labelsEditor.submitting||(this.labelsEditor=B9())}async submitLabelsEditor(){let e=this.labelsEditor;if(!e.open||e.submitting||!e.id)return;e.submitting=!0,e.error=``;let t={labels:M9(e.value)};try{let n=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/labels`,`PUT`,t,{label:`update API key labels`,errorFallback:Rz(),unavailableMessage:Fz()});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,e.error=n.error;return}if(n.status===`error`){e.error=n.error,n.result&&n.result.status!==401&&console.error(`Failed to update auth key labels:`,n.result.status,e.error);return}oZ.success(Vz({name:e.name})),e.submitting=!1,this.closeLabelsEditor(),this.fetchKeys()}finally{e.submitting=!1}}async toggleDashboardAccess(e){if(!e||!e.active||this.dashboardAccessID)return;let t=!e.dashboard_access;this.dashboardAccessID=e.id;try{let n=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/dashboard-access`,`PUT`,{dashboard_access:t},{label:`update API key dashboard access`,errorFallback:Wz(),unavailableMessage:Fz()});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,oZ.error(n.error);return}if(n.status===`error`){n.result&&n.result.status!==401&&console.error(`Failed to update auth key dashboard access:`,n.result.status,n.error),oZ.error(n.error);return}oZ.success(t?qz({name:e.name}):Xz({name:e.name})),this.fetchKeys()}finally{this.dashboardAccessID=``}}async deactivateKey(e){if(!(!e||!e.active)&&window.confirm($z({name:e.name}))){this.deactivatingID=e.id;try{let t=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/deactivate`,`POST`,void 0,{label:`deactivate API key`,errorFallback:nB(),unavailableMessage:Fz()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,oZ.error(t.error);return}if(t.status===`error`){t.result&&t.result.status!==401&&console.error(`Failed to deactivate auth key:`,t.result.status,t.error),oZ.error(t.error);return}oZ.success(aB({name:e.name})),this.fetchKeys()}finally{this.deactivatingID=``}}}},eqe=B(``),tqe=B(`

                `),nqe=B(``),rqe=B(``),iqe=B(``),aqe=B(``),oqe=B(`
                `);function sqe(e,t){O(t,!0);{let t=A(()=>kx()),n=A(()=>aS()),r=A(()=>V9.issuedValue?``:V9.error),i=A(()=>V9.issuedValue?cS():kx()),a=A(()=>dS()),o=A(()=>V9.issuedValue?XY:lX);S6(e,{get open(){return V9.formOpen},get title(){return R(t)},get ariaLabel(){return R(n)},get error(){return R(r)},get submitting(){return V9.formSubmitting},get submitLabel(){return R(i)},get submittingLabel(){return R(a)},get submitIcon(){return R(o)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>V9.closeForm(),onsubmit:()=>V9.issuedValue?V9.dismissIssuedKey():V9.submitForm(),children:(e,t)=>{var n=Or(),r=F(n),i=e=>{var t=tqe(),n=P(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i),o=P(a,!0);D(a),Q7(I(a,2),{get state(){return V9.copyState},onclick:()=>V9.copyIssuedValue()}),D(i);var s=I(i,2),c=e=>{var t=eqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_S()]),V(e,t)};U(s,e=>{V9.copyState.error&&e(c)}),D(t),L(e=>{H(r,e),H(o,V9.issuedValue)},[()=>mS()]),V(e,t)},a=e=>{var t=oqe(),n=P(t),r=P(n),i=P(r),a=P(i),o=I(a),s=P(o);D(o),D(i);var c=I(i,2);wi(c),D(r);var l=I(r,2),u=P(l),d=P(u),f=I(d),p=P(f);D(f),D(u);var m=I(u,2);wi(m),D(l),D(n);var h=I(n,2),g=P(h);{let e=e=>{var t=nqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>MS()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>RS()]),V(e,t)},n=A(()=>FS());s3(g,{copyId:`auth-key-user-path-help-copy`,get label(){return R(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var _=I(g,2);wi(_),D(h);var v=I(h,2),y=P(v);{let e=e=>{var t=rqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>VS()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>qS()]),V(e,t)},n=A(()=>WS());s3(y,{copyId:`auth-key-labels-help-copy`,get label(){return R(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var b=I(y,2);wi(b),D(v);var x=I(v,2),S=P(x);{let e=e=>{var t=iqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XS()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>nC()]),V(e,t)},n=A(()=>$S());s3(S,{copyId:`auth-key-dashboard-access-help-copy`,get label(){return R(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var C=I(S,2),w=P(C);wi(w);var T=I(w,2),ee=P(T,!0);D(T),D(C),D(x);var E=I(x,2);{let e=A(()=>cC());C6(E,{id:`auth-key-description`,get label(){return R(e)},children:(e,t)=>{var n=aqe();at(n),L(e=>K(n,`placeholder`,e),[()=>dC()]),ji(n,()=>V9.form.description,e=>V9.form.description=e),V(e,n)},$$slots:{default:!0}})}D(t),L((e,t,n,r,i)=>{H(a,`${e??``} `),H(s,`(${t??``})`),H(d,`${n??``} `),H(p,`(${r??``})`),H(ee,i)},[()=>bS(),()=>CS(),()=>ES(),()=>kS(),()=>aC()]),ji(c,()=>V9.form.name,e=>V9.form.name=e),ji(m,()=>V9.form.expires_at,e=>V9.form.expires_at=e),ji(_,()=>V9.form.user_path,e=>V9.form.user_path=e),ji(b,()=>V9.form.labels,e=>V9.form.labels=e),Mi(w,()=>V9.form.dashboard_access,e=>V9.form.dashboard_access=e),V(e,t)};U(r,e=>{V9.issuedValue?e(i):e(a,-1)}),V(e,n)},$$slots:{default:!0}})}k()}var cqe=B(`

                `),lqe=B(`

                `,1);function uqe(e,t){O(t,!0);{let t=e=>{var t=cqe(),n=P(t,!0);D(t),L(()=>H(n,V9.labelsEditor.name)),V(e,t)},n=A(()=>WC()),r=A(()=>qC()),i=A(()=>XC());S6(e,{get open(){return V9.labelsEditor.open},get title(){return R(n)},get ariaLabel(){return R(r)},get error(){return V9.labelsEditor.error},get submitting(){return V9.labelsEditor.submitting},get submitLabel(){return R(i)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>V9.closeLabelsEditor(),onsubmit:()=>V9.submitLabelsEditor(),headerHint:t,children:(e,t)=>{{let t=A(()=>$C());C6(e,{id:`auth-key-labels-edit`,get label(){return R(t)},children:(e,t)=>{var n=lqe(),r=F(n);wi(r);var i=I(r,2),a=P(i,!0);D(i),L(e=>H(a,e),[()=>nw()]),ji(r,()=>V9.labelsEditor.value,e=>V9.labelsEditor.value=e),V(e,n)},$$slots:{default:!0}})}},$$slots:{headerHint:!0,default:!0}})}k()}var dqe=B(` `),fqe=B(`
                `),pqe=B(``),H9=B(` `),mqe=B(` `),hqe=B(` `,1),gqe=B(`
                `),_qe=B(`
                `);function vqe(e,t){O(t,!0);var n=_qe(),r=P(n),i=P(r),a=P(i),o=P(a),s=P(o,!0);D(o);var c=I(o),l=P(c,!0);D(c);var u=I(c),d=P(u,!0);D(u);var f=I(u),p=P(f,!0);D(f);var m=I(f),h=P(m,!0);D(m);var g=I(m),_=P(g),v=P(_);q(I(v),{get icon(){return LTe},width:`13`,height:`13`}),D(_),D(g);var y=I(g),b=P(y,!0);D(y);var x=I(y),S=P(x,!0);D(x);var C=I(x);D(a),D(i);var w=I(i);W(w,21,()=>V9.visibleKeys,e=>e.id,(e,t)=>{var n=gqe();let r;var i=P(n),a=P(i,!0);D(i);var o=I(i),s=P(o,!0);D(o);var c=I(o),l=P(c,!0);D(c);var u=I(c),d=P(u),f=e=>{var n=fqe();W(n,20,()=>R(t).labels||[],e=>e,(e,t)=>{var n=dqe(),r=P(n,!0);D(n),L(e=>{mi(n,e),H(r,t)},[()=>VMe(t)]),V(e,n)}),D(n),V(e,n)},p=e=>{V(e,pqe())};U(d,e=>{(R(t).labels||[]).length>0?e(f):e(p,-1)}),D(u);var m=I(u),h=P(m),g=P(h,!0);D(h),D(m);var _=I(m),v=P(_);let y;var b=P(v,!0);D(v),D(_);var x=I(_),S=P(x),C=e=>{var n=mqe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=e=>{var t=H9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>RC()]),V(e,t)},s=A(()=>P9(R(t)));U(a,e=>{R(s)&&e(o)}),D(n),L(e=>H(i,e),[()=>YEe(R(t).expires_at)]),V(e,n)},w=e=>{V(e,Dr(`—`))};U(S,e=>{R(t).expires_at?e(C):e(w,-1)}),D(x);var T=I(x),ee=P(T,!0);D(T);var E=I(T),te=P(E),ne=P(te),re=e=>{var n=hqe(),r=F(n);{let e=A(()=>R(t).dashboard_access?mz({name:R(t).name}):dz({name:R(t).name})),n=A(()=>!!V9.dashboardAccessID);Y3(r,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>V9.toggleDashboardAccess(R(t)),get disabled(){return R(n)},children:(e,n)=>{{let n=A(()=>R(t).dashboard_access?ZTe:pX);q(e,{get icon(){return R(n)},class:`table-icon-svg`})}},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>_z({name:R(t).name}));Y3(i,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>V9.openLabelsEditor(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>V9.deactivatingID===R(t).id?Cz({name:R(t).name}):bz({name:R(t).name})),n=A(()=>V9.deactivatingID===R(t).id);Y3(a,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>V9.deactivateKey(R(t)),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return GTe},class:`table-icon-svg`})},$$slots:{default:!0}})}V(e,n)},ie=e=>{var n=H9(),r=P(n,!0);D(n),L((e,t)=>{K(n,`title`,e),H(r,t)},[()=>R(t).deactivated_at?Ez({date:gZ(R(t).deactivated_at)}):VC(),()=>VC()]),V(e,n)},ae=A(()=>F9(R(t)));U(ne,e=>{R(t).active?e(re):R(ae)&&e(ie,1)}),D(te),D(E),D(n),L((e,i,o,c)=>{r=G(n,1,`svelte-nf0ldb`,null,r,e),H(a,R(t).name),H(s,R(t).description||`—`),H(l,R(t).user_path||`—`),H(g,R(t).redacted_value),y=G(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":R(t).dashboard_access,"auth-key-status-inactive":!R(t).dashboard_access}),H(b,i),K(x,`title`,o),H(ee,c)},[()=>({"auth-key-row-deactivated":F9(R(t))}),()=>R(t).dashboard_access?MC():FC(),()=>R(t).expires_at?gZ(R(t).expires_at):``,()=>HX.formatTimestamp(R(t).created_at)]),V(e,n)}),D(w),D(r),D(n),L((e,t,n,r,i,a,o,c,u,f)=>{H(s,e),H(l,t),H(d,n),H(p,r),H(h,i),K(_,`title`,a),H(v,`${o??``} `),H(b,c),H(S,u),K(C,`aria-label`,f)},[()=>bS(),()=>mC(),()=>_C(),()=>bC(),()=>CC(),()=>cz(),()=>XS(),()=>ES(),()=>EC(),()=>kC()]),V(e,n),k()}var yqe=B(``),bqe=B(`
                `),xqe=B(``),Sqe=B(`

                `),Cqe=B(`
                `),wqe=B(`
                `),U9=B(`

                `),Tqe=B(`
                `);function Eqe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`auth-keys`&&V9.fetchKeys()});var n=Tqe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o),c=e=>{var t=yqe(),n=P(t);q(n,{get icon(){return lX},class:`table-icon-svg`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=V9.formSubmitting,H(i,e)},[()=>kx()]),z(`click`,t,()=>{V9.formSubmitting||V9.openForm()}),V(e,t)};U(s,e=>{V9.available&&!Y.authError&&e(c)}),D(o),D(r);var l=I(r,2),u=e=>{var t=bqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mx()]),V(e,t)};U(l,e=>{!V9.available&&!Y.authError&&e(u)});var d=I(l,2),f=e=>{var t=xqe(),n=P(t,!0);D(t),L(()=>H(n,V9.error)),V(e,t)};U(d,e=>{V9.error&&!Y.authError&&!V9.formOpen&&e(f)});var p=I(d,2),m=e=>{var t=Sqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Fx()]),V(e,t)};U(p,e=>{V9.available&&!Y.authError&&e(m)});var h=I(p,2);sqe(h,{});var g=I(h,2);uqe(g,{});var _=I(g,2),v=e=>{var t=Cqe(),n=P(t);{let e=A(()=>Rx());r3(n,{size:18,get label(){return R(e)}})}D(t),V(e,t)};U(_,e=>{V9.loading&&V9.keys.length===0&&e(v)});var y=I(_,2),b=e=>{var t=wqe(),n=P(t),r=P(n);{let e=A(()=>Vx()),t=A(()=>Wx());z3(r,{get placeholder(){return R(e)},get label(){return R(t)},get value(){return V9.filter},set value(e){V9.filter=e}})}D(n);var i=I(n,2),a=P(i),o=P(a);wi(o);var s=I(o,2),c=P(s),l=I(c),u=e=>{var t=Dr();L(()=>H(t,`(${V9.inactiveCount??``})`)),V(e,t)};U(l,e=>{V9.inactiveCount>0&&e(u)}),D(s),D(a),D(i),D(t),L(e=>H(c,`${e??``} `),[()=>qx()]),Mi(o,()=>V9.showInactive,e=>V9.showInactive=e),V(e,t)};U(y,e=>{V9.keys.length>0&&V9.available&&e(b)});var x=I(y,2),S=e=>{vqe(e,{})};U(x,e=>{V9.visibleKeys.length>0&&V9.available&&e(S)});var C=I(x,2),w=e=>{var t=U9(),n=P(t);D(t),L((e,t)=>H(n,`${e??``}${t??``}`),[()=>Xx(),()=>V9.inactiveCount>0&&!V9.showInactive?` `+$x({count:V9.inactiveCount}):``]),V(e,t)};U(C,e=>{V9.keys.length>0&&V9.visibleKeys.length===0&&V9.available&&e(w)});var T=I(C,2),ee=e=>{var t=U9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>nS()]),V(e,t)};U(T,e=>{V9.keys.length===0&&!V9.loading&&!Y.authError&&!V9.error&&V9.available&&e(ee)}),D(n),L(e=>H(a,e),[()=>Ex()]),V(e,n),k()}xr([`click`]);var Dqe=B(``),Oqe=B(`
                `);function kqe(e,t){O(t,!0);let n=$i.map(e=>({value:e,label:rDe(e)}));var r=Or(),i=F(r),a=e=>{var t=Oqe(),r=P(t),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>n,e=>e.value,(e,t)=>{var n=Dqe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(a);var o;gi(a),D(t),L((e,t,n)=>{H(i,e),K(a,`aria-label`,t),o!==(o=n)&&(a.value=(a.__value=n)??``,hi(a,n))},[()=>aL(),()=>aL(),()=>J()]),z(`change`,a,e=>ca(e.currentTarget.value)),V(e,t)};U(i,e=>{n.length>1&&e(a)}),V(e,r),k()}xr([`change`]);var Aqe=B(`

                `),jqe=B(``),Mqe=B(``),Nqe=B(`
                `,1);function Pqe(e,t){O(t,!0);function n(){HX.saveOverride(),Y.refresh()}function r(){HX.clearOverride(),Y.refresh()}var i=Nqe(),a=F(i),o=P(a);{let e=e=>{var t=Aqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Pu()]),V(e,t)},t=A(()=>Lu()),n=A(()=>Bu());s3(o,{copyId:`timezone-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}D(a);var s=I(a,2),c=P(s),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d),p=P(f,!0);D(f),f.value=f.__value=``,W(I(f),17,()=>HX.options,e=>e.value,(e,t)=>{var n=jqe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(d),D(c),D(s);var m=I(s,2),h=P(m),g=e=>{var t=Mqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Yu()]),z(`click`,t,r),V(e,t)};U(h,e=>{HX.override&&e(g)}),D(m),L((e,t)=>{H(u,e),H(p,t)},[()=>Uu(),()=>Ku({timezone:HX.detectedTimeZoneLabel()})]),br(`focus`,d,()=>HX.ensureOptions()),z(`change`,d,n),_i(d,()=>HX.override,e=>HX.override=e),V(e,i),k()}xr([`change`,`click`]);var Fqe=B(``),Iqe=B(`

                `,1);function Lqe(e,t){O(t,!0);let n=A(()=>Q.failoverSaving||Q.failoverGenerating||Q.failoverDraftSaving||!Q.failoverAvailable||!Q.failoverEnabled());var r=Iqe(),i=F(r),a=P(i),o=P(a),s=P(o,!0);D(o),D(a);var c=I(a,2),l=P(c),u=P(l);q(u,{get icon(){return vX},class:`form-action-icon`});var d=I(u,2),f=P(d,!0);D(d),D(l);var p=I(l,2),m=P(p);q(m,{get icon(){return gX},class:`form-action-icon`});var h=I(m,2),g=P(h,!0);D(h),D(p),D(c),D(i);var _=I(i,2),v=P(_),y=e=>{var t=Fqe(),n=P(t,!0);D(t),L(()=>H(n,Q.failoverError)),V(e,t)};U(v,e=>{Q.failoverError&&e(y)}),D(_),n5(I(_,2),{}),L((e,t,r)=>{H(s,e),l.disabled=R(n),H(f,t),p.disabled=R(n),H(g,r)},[()=>Qu(),()=>Q.failoverGenerating?td():id(),()=>sd()]),z(`click`,l,()=>Q.generateFailoverRules()),z(`click`,p,()=>Q.openFailoverResetDialog()),V(e,r),k()}xr([`click`]);function Rqe(){return{daily_reset_hour:0,daily_reset_minute:0,weekly_reset_weekday:1,weekly_reset_hour:0,weekly_reset_minute:0,monthly_reset_day:1,monthly_reset_hour:0,monthly_reset_minute:0}}function W9(e,t){let n=t||{},r=(e,t)=>{if(e===``)return t;let n=Number(e);return Number.isFinite(n)&&Number.isInteger(n)?Math.trunc(n):t},i=(e,t)=>r(n[e],t),a=(t,n)=>e?r(e[t],n):n;return{daily_reset_hour:a(`daily_reset_hour`,i(`daily_reset_hour`,0)),daily_reset_minute:a(`daily_reset_minute`,i(`daily_reset_minute`,0)),weekly_reset_weekday:a(`weekly_reset_weekday`,i(`weekly_reset_weekday`,1)),weekly_reset_hour:a(`weekly_reset_hour`,i(`weekly_reset_hour`,0)),weekly_reset_minute:a(`weekly_reset_minute`,i(`weekly_reset_minute`,0)),monthly_reset_day:a(`monthly_reset_day`,i(`monthly_reset_day`,1)),monthly_reset_hour:a(`monthly_reset_hour`,i(`monthly_reset_hour`,0)),monthly_reset_minute:a(`monthly_reset_minute`,i(`monthly_reset_minute`,0))}}function zqe(){return[{value:0,label:EN()},{value:1,label:kN()},{value:2,label:MN()},{value:3,label:FN()},{value:4,label:RN()},{value:5,label:VN()},{value:6,label:WN()}]}var Bqe=B(`

                `),Vqe=B(``),Hqe=B(`

                `),Uqe=B(``),Wqe=B(``),Gqe=B(`
                `,1);function Kqe(e,t){O(t,!0);let n=j(N(Rqe())),r=j(!1),i=j(!1),a=j(``),o=j(!1),s=A(()=>XX.budgetsVisible());async function c(){if(await XX.ensureLoaded(),!XX.budgetsVisible()){M(a,``);return}M(r,!0),M(a,``);try{let e=await qX(`/admin/budgets/settings`,{label:`budget settings`});if(e.stale)return;if(!e.ok){M(a,_N(),!0);return}M(n,W9(e.data,R(n)),!0)}catch(e){console.error(`Failed to fetch budget settings:`,e),M(a,_N(),!0)}finally{M(r,!1)}}async function l(){if(!R(i)){M(i,!0);try{let e=await JX(`/admin/budgets/settings`,`PUT`,W9(R(n),R(n)),{label:`budget settings`});if(e.stale)return;if(!e.ok){oZ.error(bN());return}M(n,W9(e.data,R(n)),!0),M(a,``),oZ.success(CN())}catch(e){console.error(`Failed to save budget settings:`,e),oZ.error(bN())}finally{M(i,!1)}}}mn(()=>{Y.refreshTick,c()});var u=Or(),d=F(u),f=e=>{var t=Gqe(),s=F(t),c=P(s);{let e=e=>{var t=Bqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Td()]),V(e,t)},t=A(()=>yd()),n=A(()=>Sd());s3(c,{copyId:`budget-settings-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var u=I(c,2),d=P(u),f=P(d),p=P(f,!0);D(f);var m=I(f,2),h=P(m);{let e=e=>{var t=Vqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XM()]),V(e,t)},t=A(()=>qM());s3(h,{copyId:`budget-monthly-day-help-copy`,get label(){return R(t)},external:!0,get open(){return R(o)},set open(e){M(o,e,!0)},title:e,$$slots:{title:!0}})}var g=I(h,2);wi(g),D(m);var _=I(m,2),v=P(_),y=P(v,!0);D(v);var b=I(v,2);wi(b),D(_);var x=I(_,2),S=P(x),C=P(S,!0);D(S);var w=I(S,2);wi(w),D(x);var T=I(x,2),ee=P(T),E=e=>{var t=Hqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>$M()]),V(e,t)};U(ee,e=>{R(o)&&e(E)}),D(T),D(d);var te=I(d,2),ne=P(te),re=P(ne,!0);D(ne);var ie=I(ne,2),ae=P(ie),oe=P(ae,!0);D(ae);var se=I(ae,2);W(se,21,zqe,e=>e.value,(e,t)=>{var n=Uqe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(se),D(ie);var ce=I(ie,2),le=P(ce),ue=P(le,!0);D(le);var de=I(le,2);wi(de),D(ce);var fe=I(ce,2),pe=P(fe),me=P(pe,!0);D(pe);var he=I(pe,2);wi(he),D(fe),Ve(2),D(te);var ge=I(te,2),_e=P(ge),ve=P(_e,!0);D(_e);var ye=I(_e,4),be=P(ye),xe=P(be,!0);D(be);var Se=I(be,2);wi(Se),D(ye);var Ce=I(ye,2),we=P(Ce),Te=P(we,!0);D(we);var Ee=I(we,2);wi(Ee),D(Ce),Ve(2),D(ge),D(u);var De=I(u,2),Oe=P(De),ke=P(Oe);q(ke,{get icon(){return fX},class:`form-action-icon`});var Ae=I(ke,2),je=P(Ae,!0);D(Ae),D(Oe);var Me=I(Oe,2),Ne=e=>{{let t=A(()=>mN());r3(e,{size:16,get label(){return R(t)}})}};U(Me,e=>{R(r)&&e(Ne)}),D(De),D(s);var Pe=I(s,2),Fe=P(Pe),Ie=e=>{var t=Wqe(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)};U(Fe,e=>{R(a)&&e(Ie)}),D(Pe),L((e,t,n,a,o,s,c,l,u,d,f)=>{H(p,e),H(y,t),H(C,n),H(re,a),H(oe,o),H(ue,s),H(me,c),H(ve,l),H(xe,u),H(Te,d),Oe.disabled=R(i)||R(r),K(Oe,`aria-busy`,R(i)?`true`:`false`),H(je,f)},[()=>RM(),()=>aN(),()=>cN(),()=>VM(),()=>nN(),()=>aN(),()=>cN(),()=>WM(),()=>aN(),()=>cN(),()=>dN()]),ji(g,()=>R(n).monthly_reset_day,e=>R(n).monthly_reset_day=e),ji(b,()=>R(n).monthly_reset_hour,e=>R(n).monthly_reset_hour=e),ji(w,()=>R(n).monthly_reset_minute,e=>R(n).monthly_reset_minute=e),_i(se,()=>R(n).weekly_reset_weekday,e=>R(n).weekly_reset_weekday=e),ji(de,()=>R(n).weekly_reset_hour,e=>R(n).weekly_reset_hour=e),ji(he,()=>R(n).weekly_reset_minute,e=>R(n).weekly_reset_minute=e),ji(Se,()=>R(n).daily_reset_hour,e=>R(n).daily_reset_hour=e),ji(Ee,()=>R(n).daily_reset_minute,e=>R(n).daily_reset_minute=e),z(`click`,Oe,l),V(e,t)};U(d,e=>{R(s)&&e(f)}),V(e,u),k()}xr([`click`]);var qqe=B(`

                `);function Jqe(e,t){O(t,!0);var n=Or(),r=F(n),i=e=>{var t=qqe(),n=P(t),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a),D(n);var s=I(n,2),c=P(s),l=P(c);q(l,{get icon(){return dX},class:`form-action-icon`});var u=I(l,2),d=P(u,!0);D(u),D(c),D(s),D(t),L((e,t,n)=>{H(i,e),H(o,t),c.disabled=b6.resetAllLoading,H(d,n)},[()=>ud(),()=>pd(),()=>gd()]),z(`click`,c,()=>b6.openResetDialog()),V(e,t)},a=A(()=>XX.budgetsVisible());U(r,e=>{R(a)&&e(i)}),V(e,n),k()}xr([`click`]);function Yqe(){return{header:``,prefix:``,do_not_pass:!1,delimiter:``,managed:!1}}function G9(e){return(e&&Array.isArray(e.headers)?e.headers:[]).map(e=>({header:typeof e.header==`string`?e.header:``,prefix:typeof e.prefix==`string`?e.prefix:``,do_not_pass:e.do_not_pass===!0,delimiter:typeof e.delimiter==`string`&&e.delimiter!==`,`?e.delimiter:``,managed:e.managed===!0}))}function Xqe(e){return{headers:(Array.isArray(e)?e:[]).filter(e=>!e.managed&&e.header.trim()!==``).map(e=>({header:e.header.trim(),prefix:e.prefix,do_not_pass:e.do_not_pass,delimiter:e.delimiter}))}}function Zqe(e){return e&&e.error&&e.error.message?e.error.message:``}var Qqe=B(`

                `),$qe=B(`config`),eJe=B(``),tJe=B(`
                `),nJe=B(`

                `),rJe=B(``),iJe=B(`
                `,1);function aJe(e,t){O(t,!0);let n=j(N([])),r=j(!0),i=j(!1),a=j(!1),o=j(``);function s(){R(n).push(Yqe())}function c(e){let t=R(n)[e];!t||t.managed||R(n).splice(e,1)}async function l(){M(i,!0),M(o,``);try{let e=await qX(`/admin/tagging/settings`,{label:`tagging settings`});if(e.stale)return;if(!e.ok){M(o,FP(),!0);return}M(n,G9(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0)}catch(e){console.error(`Failed to fetch tagging settings:`,e),M(o,FP(),!0)}finally{M(i,!1)}}async function u(){if(!(R(a)||!R(r))){M(a,!0);try{let e=await JX(`/admin/tagging/settings`,`PUT`,Xqe(R(n)),{label:`tagging settings`});if(e.stale)return;if(!e.ok){oZ.error(e.status!==401&&Zqe(e.data)||RP());return}M(n,G9(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0),M(o,``),oZ.success(VP())}catch(e){console.error(`Failed to save tagging settings:`,e),oZ.error(RP())}finally{M(a,!1)}}}mn(()=>{Y.refreshTick,l()});var d=iJe(),f=F(d),p=P(f);{let e=e=>{var t=Qqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>qN()]),V(e,t)},t=A(()=>XN()),n=A(()=>$N());s3(p,{copyId:`tagging-settings-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var m=I(p,2),h=P(m);W(h,17,()=>R(n),Ir,(e,t,n)=>{var i=tJe(),a=P(i),o=P(a);K(o,`for`,`tagging-header-`+n);var s=P(o,!0);D(o);var l=I(o,2);wi(l),K(l,`id`,`tagging-header-`+n),D(a);var u=I(a,2),d=P(u);K(d,`for`,`tagging-prefix-`+n);var f=P(d,!0);D(d);var p=I(d,2);wi(p),K(p,`id`,`tagging-prefix-`+n),D(u);var m=I(u,2),h=P(m);K(h,`for`,`tagging-delimiter-`+n);var g=P(h,!0);D(h);var _=I(h,2);wi(_),K(_,`id`,`tagging-delimiter-`+n),D(m);var v=I(m,2),y=P(v);wi(y);var b=I(y,2),x=P(b,!0);D(b),D(v);var S=I(v,2),C=P(S),w=e=>{var t=$qe();L(e=>K(t,`title`,e),[()=>mP()]),V(e,t)},T=e=>{var i=eJe(),a=P(i,!0);D(i),L((e,t)=>{i.disabled=!R(r),K(i,`aria-label`,e),H(a,t)},[()=>bP({header:R(t).header||n+1}),()=>_P()]),z(`click`,i,()=>c(n)),V(e,i)};U(C,e=>{R(t).managed?e(w):e(T,-1)}),D(S),D(i),L((e,n,i,a)=>{H(s,e),l.disabled=R(t).managed||!R(r),H(f,n),p.disabled=R(t).managed||!R(r),H(g,i),_.disabled=R(t).managed||!R(r),y.disabled=R(t).managed||!R(r),H(x,a)},[()=>nP(),()=>aP(),()=>cP(),()=>dP()]),ji(l,()=>R(t).header,e=>R(t).header=e),ji(p,()=>R(t).prefix,e=>R(t).prefix=e),ji(_,()=>R(t).delimiter,e=>R(t).delimiter=e),Mi(y,()=>R(t).do_not_pass,e=>R(t).do_not_pass=e),V(e,i)});var g=I(h,2),_=e=>{{let t=A(()=>CP());r3(e,{size:16,get label(){return R(t)}})}};U(g,e=>{R(i)&&e(_)});var v=I(g,2),y=e=>{var t=nJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>EP()]),V(e,t)};U(v,e=>{!R(i)&&R(n).length===0&&e(y)}),D(m);var b=I(m,2),x=P(b),S=P(x);q(S,{get icon(){return lX},class:`form-action-icon`});var C=I(S,2),w=P(C,!0);D(C),D(x);var T=I(x,2),ee=P(T);q(ee,{get icon(){return fX},class:`form-action-icon`});var E=I(ee,2),te=P(E,!0);D(E),D(T),D(b),D(f);var ne=I(f,2),re=P(ne),ie=e=>{var t=rJe(),n=P(t,!0);D(t),L(()=>H(n,R(o))),V(e,t)};U(re,e=>{R(o)&&e(ie)}),D(ne),L((e,t)=>{x.disabled=!R(r)||R(a)||R(i),H(w,e),T.disabled=!R(r)||R(a)||R(i),K(T,`aria-busy`,R(a)?`true`:`false`),H(te,t)},[()=>kP(),()=>MP()]),z(`click`,x,s),z(`click`,T,u),V(e,d),k()}xr([`click`]);function oJe(e){let t=e||{};if(t.selectedPreset)return{days:parseInt(t.selectedPreset,10)||30};let n=t.customStartDate?hZ(t.customStartDate):``,r=t.customEndDate||t.today||null;return{start_date:n,end_date:r?hZ(r):``}}function sJe(e,t,n,r){return{...oJe(e),user_path:String(t||``).trim(),selector:String(n||``).trim(),confirmation:r}}function cJe(e){let t=Number(e&&e.matched||0),n=Number(e&&e.recalculated||0),r=Number(e&&e.without_pricing||0),i=CI({matched:t,recalculated:n});return r>0&&(i+=` `+EI({count:r})),i}var lJe=B(`

                `),uJe=B(`
                `);function dJe(e,t){O(t,!0);let n=j(``),r=j(``),i=j(!1),a=A(()=>XX.booleanFlag(`USAGE_PRICING_RECALCULATION_ENABLED`,!1));function o(){if(!R(a)){oZ.error(dI());return}R(i)||eZ.open({title:cI(),titleId:`pricingRecalculateDialogTitle`,inputId:`pricing-recalculate-confirmation`,requiredText:mI(),confirmLabel:cI(),icon:YY,dialogClass:`pricing-recalculate-dialog`,message:_I(),onConfirm:()=>s()})}async function s(){if(!R(a)){oZ.error(dI());return}if(!R(i)){M(i,!0);try{let e=await JX(`/admin/usage/recalculate-pricing`,`POST`,sJe({selectedPreset:OZ.selectedPreset,customStartDate:OZ.customStartDate,customEndDate:OZ.customEndDate,today:HX.todayDate()},R(n),R(r),mI()),{label:`pricing recalculation`});if(e.stale)return;if(!e.ok){eZ.error=bI();return}eZ.close(),oZ.success(cJe(e.data)),NZ.fetchUsage()}catch(e){console.error(`Failed to recalculate pricing:`,e),eZ.error=bI()}finally{M(i,!1)}}}var c=Or(),l=F(c),u=e=>{var t=uJe(),s=P(t);{let e=e=>{var t=lJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>VF()]),V(e,t)},t=A(()=>WF()),n=A(()=>qF());s3(s,{copyId:`pricing-recalculate-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var c=I(s,2),l=P(c),u=P(l),d=P(u,!0);D(u);var f=I(u,2);FZ(P(f),{}),D(f),D(l);var p=I(l,2),m=P(p),h=P(m,!0);D(m);var g=I(m,2);wi(g),D(p);var _=I(p,2),v=P(_),y=P(v,!0);D(v);var b=I(v,2);wi(b),D(_),D(c);var x=I(c,2),S=P(x),C=P(S);q(C,{get icon(){return YY},class:`form-action-icon`});var w=I(C,2),T=P(w,!0);D(w),D(S),D(x),D(t),L((e,t,n,r,o)=>{H(d,e),H(h,t),H(y,n),K(b,`placeholder`,r),S.disabled=R(i)||!R(a),K(S,`aria-busy`,R(i)?`true`:`false`),H(T,o)},[()=>XF(),()=>$F(),()=>nI(),()=>aI(),()=>cI()]),ji(g,()=>R(n),e=>M(n,e)),ji(b,()=>R(r),e=>M(r,e)),z(`click`,S,o),V(e,t)};U(l,e=>{R(a)&&e(u)}),V(e,c),k()}xr([`click`]);function K9(e){return String(e&&e.status||`ok`).toLowerCase()}function q9(e){if(!e||typeof e!=`object`)return nF();let t=Number(e.model_count||0),n=Number(e.provider_count||0),r=K9(e);return mF({status:r===`ok`?aF():r===`partial`?cF():dF(),models:_F({count:t}),providers:bF({count:n})})}function fJe(e){return!!e&&K9(e)===`ok`}function J9(e){let t=e&&e.steps;return Array.isArray(t)?t:[]}function pJe(e){let t=String(e&&e.name||``).replace(/_/g,` `),n=String(e&&e.status||``).trim(),r=String(e&&(e.error||e.message)||``).trim();return t?r?t+`: `+n+` - `+r:t+`: `+n:r||n||``}var mJe=B(`

                `),hJe=B(`
              • `),gJe=B(`
                  `),_Je=B(`
                  `,1);function vJe(e,t){O(t,!0);let n=j(!1),r=j(null);async function i(){if(!R(n)){M(n,!0),M(r,null);try{let e=await JX(`/admin/runtime/refresh`,`POST`,void 0,{label:`runtime refresh`});if(e.stale)return;if(!e.ok){oZ.error(dF());return}M(r,e.data&&typeof e.data==`object`?e.data:null,!0),fJe(R(r))?oZ.success(q9(R(r))):oZ.error(q9(R(r))),Y.refresh()}catch(e){console.error(`Failed to refresh runtime:`,e),oZ.error(dF())}finally{M(n,!1)}}}var a=_Je(),o=F(a),s=P(o);{let e=e=>{var t=mJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>WP()]),V(e,t)},t=A(()=>qP()),n=A(()=>XP());s3(s,{copyId:`runtime-refresh-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var c=I(s,2),l=P(c);let u;var d=P(l);q(d,{get icon(){return uX},class:`settings-refresh-icon`});var f=I(d,2),p=P(f,!0);D(f),D(l),D(c),D(o);var m=I(o,2),h=P(m),g=e=>{var t=gJe();W(t,21,()=>J9(R(r)),e=>e.name,(e,t)=>{var n=hJe(),r=P(n,!0);D(n),L(e=>{G(n,1,`runtime-refresh-step is-${R(t).status??``}`,`svelte-yeq2mp`),H(r,e)},[()=>pJe(R(t))]),V(e,n)}),D(t),V(e,t)},_=A(()=>J9(R(r)).length>0);U(h,e=>{R(_)&&e(g)}),D(m),L(e=>{u=G(l,1,`btn btn-primary btn-with-icon settings-refresh-btn`,null,u,{"is-refreshing":R(n)}),l.disabled=R(n),K(l,`aria-busy`,R(n)?`true`:`false`),H(p,e)},[()=>$P()]),z(`click`,l,i),V(e,a),k()}xr([`click`]);var yJe=B(``),bJe=B(`

                  `),xJe=B(`

                  `),SJe=B(``),CJe=B(`
                  `),wJe=B(`

                  `);function TJe(e,t){O(t,!0);let n=j(N([])),r=j(!1),i=j(``),a=j(``);async function o(){M(r,!0),M(a,``);try{let e=await qX(`/admin/runtime/settings`,{label:`runtime settings`});if(e.stale)return;if(!e.ok){M(a,EF(),!0);return}M(n,Array.isArray(e.data?.settings)?e.data.settings:[],!0)}catch(e){console.error(`Failed to load runtime settings:`,e),M(a,EF(),!0)}finally{M(r,!1)}}async function s(e,t,r){if(!(e.locked||R(i))){M(i,e.key,!0);try{let i=await JX(`/admin/runtime/settings/${encodeURIComponent(e.key)}`,`PUT`,{value:t},{label:`save ${e.label}`});if(i.stale){r.value=e.value;return}if(!i.ok){r.value=e.value,oZ.error(kF({setting:e.label}));return}M(n,R(n).map(t=>t.key===e.key?i.data:t),!0),oZ.success(MF({setting:e.label}))}catch(t){r.value=e.value,console.error(`Failed to save runtime setting:`,t),oZ.error(kF({setting:e.label}))}finally{M(i,``)}}}mn(()=>{Y.refreshTick,o()});var c=Or(),l=F(c),u=e=>{var t=wJe(),o=P(t),c=P(o),l=P(c,!0);D(c);var u=I(c,2),d=e=>{var t=yJe(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)};U(u,e=>{R(a)&&e(d)}),D(o);var f=I(o,2);W(f,21,()=>R(n),e=>e.key,(e,t)=>{var n=CJe(),r=P(n),a=P(r),o=P(a,!0);D(a);var c=I(a,2),l=e=>{var n=bJe(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(c,e=>{R(t).description&&e(l)});var u=I(c,2),d=e=>{var n=xJe(),r=P(n,!0);D(n),L(e=>H(r,e),[()=>FF({source:R(t).managed_by||RF()})]),V(e,n)};U(u,e=>{R(t).locked&&e(d)}),D(r);var f=I(r,2);W(f,21,()=>R(t).options||[],e=>e.value,(e,t)=>{var n=SJe(),r=P(n,!0);D(n);var i={};L(()=>{K(n,`title`,R(t).description||``),H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(f);var p;gi(f),D(n),L(()=>{K(a,`for`,`runtime-setting-${R(t).key}`),H(o,R(t).label),K(f,`id`,`runtime-setting-${R(t).key}`),f.disabled=R(t).locked||R(i)!==``,p!==(p=R(t).value)&&(f.value=(f.__value=R(t).value)??``,hi(f,R(t).value))}),z(`change`,f,e=>s(R(t),e.currentTarget.value,e.currentTarget)),V(e,n)}),D(f),D(t),L(e=>{H(l,e),K(f,`aria-busy`,R(r)?`true`:`false`)},[()=>CF()]),V(e,t)};U(l,e=>{(R(n).length>0||R(a))&&e(u)}),V(e,c),k()}xr([`change`]);var EJe=B(`
                  `);function DJe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`settings`&&(HX.ensureOptions(),XX.ensureLoaded())});var n=EJe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a),D(i),D(r);var s=I(r,2),c=P(s);Pqe(c,{});var l=I(c,2);kqe(l,{});var u=I(l,2);Lqe(u,{});var d=I(u,2);Kqe(d,{});var f=I(d,2);Jqe(f,{});var p=I(f,2);aJe(p,{});var m=I(p,2);TJe(m,{});var h=I(m,2);dJe(h,{}),vJe(I(h,2),{}),D(s);var g=I(s,2),_=P(g,!0);D(g),D(n),L((e,t)=>{H(o,e),H(_,t)},[()=>qoe(),()=>lEe()]),V(e,n),k()}var Y9=B(`
                  `),OJe=B(`
                   
                  `),kJe=B(`
                   
                  `),AJe=B(`
                   
                  `),jJe=B(`
                  `),MJe=B(`
                  `,1),NJe=B(`
                  `);function PJe(e,t){O(t,!0);let n=zi(t,`showPromptCache`,3,!0),r=U3({logPrefix:`Failed to copy interaction message:`}),i=A(()=>t.msg.role===`function_call`||t.msg.role===`function_result`);function a(e){return(Math.max(0,Math.min(1,Number(e||0)))*100).toFixed(1)+`%`}function o(e){let t=Math.max(0,Math.min(1,Number(e||0)));return t>0?spe({percent:Math.round(t*100)}):void 0}function s(e){return e.role===`function_call`?(e.toolCalls||[]).map(e=>e.name+`()`).join(`, `):(e.functionName?e.functionName+`: `:``)+e.text}var c=NJe();let l;var u=P(c),d=e=>{var r=OJe(),i=P(r),a=P(i),c=P(a,!0);D(a);var l=I(a,2),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d),D(i);var p=I(i,2),m=e=>{var n=Y9(),r=P(n);D(n),L(e=>H(r,`${e??``}: ${t.msg.functionCallID??``}`),[()=>Uo()]),V(e,n)};U(p,e=>{t.msg.functionCallID&&e(m)});var h=I(p,2),g=e=>{var n=Or();W(F(n),17,()=>t.msg.toolCalls,Ir,(e,n)=>{var r=Or(),i=F(r),a=e=>{var r=Y9(),i=P(r);D(r),L(e=>H(i,`${e??``}: ${R(n).id??``}`),[()=>t.msg.toolCalls.length>1?fpe({name:R(n).name}):Uo()]),V(e,r)};U(i,e=>{R(n).id&&e(a)}),V(e,r)}),V(e,n)};U(h,e=>{t.msg.role===`function_call`&&t.msg.toolCalls&&e(g)});var _=I(h,2),v=P(_,!0);D(_),D(r),L((e,n,i,a)=>{K(r,`title`,e),H(c,t.msg.roleLabel),H(u,n),H(f,i),H(v,a)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>s(t.msg),()=>HX.formatTimestamp(t.msg.timestamp),()=>J7(t.msg)]),V(e,r)},f=e=>{var r=MJe(),i=F(r),a=P(i),s=P(a,!0);D(a);var c=I(a,2),l=P(c,!0);D(c),D(i);var u=I(i,2),d=e=>{var r=kJe(),i=P(r,!0);D(r),L(e=>{K(r,`title`,e),H(i,t.msg.text)},[()=>n()?o(t.msg.promptCacheRatio):void 0]),V(e,r)};U(u,e=>{t.msg.text&&e(d)});var f=I(u,2),p=e=>{var n=jJe();W(n,23,()=>t.msg.toolCalls,(e,t)=>e.name+`-`+t,(e,t)=>{var n=AJe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(r);var c=I(r,2),l=e=>{var n=Y9(),r=P(n);D(n),L(e=>H(r,`${e??``}: ${R(t).id??``}`),[()=>Uo()]),V(e,n)};U(c,e=>{R(t).id&&e(l)});var u=I(c,2),d=P(u,!0);D(u),D(n),L((e,n)=>{H(a,R(t).name+`()`),H(s,e),H(d,n)},[()=>Y7(R(t))||Wo(),()=>Y7(R(t))||Wo()]),V(e,n)}),D(n),V(e,n)};U(f,e=>{t.msg.toolCalls&&e(p)}),L((e,n)=>{K(i,`title`,e),H(s,t.msg.roleLabel),H(l,n)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>HX.formatTimestamp(t.msg.timestamp)]),V(e,r)};U(u,e=>{R(i)?e(d):e(f,-1)});var p=I(u,2);let m;var h=P(p);{let e=A(()=>r.copied?$Y:tX);q(h,{get icon(){return R(e)},width:`14`,height:`14`})}D(p),D(c),L((e,n,a)=>{G(c,1,li([R(i)?`chat-function-note`:`chat-message`,t.msg.roleClass,{"is-anchor":t.msg.isAnchor,"is-after-anchor":t.msg.isAfterAnchor}]),`svelte-12s99s5`),K(c,`data-conversation-anchor`,t.msg.isAnchor?`true`:void 0),K(c,`data-entry-id`,t.msg.entryID),l=mi(c,``,l,e),m=G(p,1,`chat-message-copy svelte-12s99s5`,null,m,{"is-copied":r.copied}),K(p,`aria-label`,n),K(p,`title`,a)},[()=>({"--prompt-cache-fill":a(t.msg.promptCacheRatio),"--prompt-cache-visibility":n()&&t.msg.promptCacheRatio>0?`1`:`0`}),()=>r.copied?npe():Ho(),()=>r.copied?_pe():Ho()]),z(`click`,p,e=>{e.stopPropagation(),r.copy($Ue(t.msg))}),V(e,c),k()}xr([`click`]);function X9(e,t=0){let n=Math.max(0,Q9(e)-Math.max(0,Q9(t))),r=Math.min(320,Math.max(180,Math.floor(n*.58))),i=Math.min(360,Math.max(128,Math.floor(n*.35)));return{min:r,max:Math.max(r,n-i)}}function Z9(e,t,n=0){let r=X9(t,n),i=Q9(e)||520;return Math.min(r.max,Math.max(r.min,Math.round(i)))}function FJe(e,t,n=0){return Z9(Q9(t)-Q9(e),t,n)}function IJe(e,t,n,r){if(!Array.isArray(e)||e.length===0)return{index:-1,align:`start`};let i=Q9(t),a=0;e.forEach((e,t)=>{Q9(e)<=i+1&&(a=t)});let o=Number(r)<0?-1:1,s=Math.min(e.length-1,Math.max(0,a+o)),c=e.length-1,l=Q9(e[c])0&&s===c&&l?`end`:`start`}}function Q9(e){let t=Number(e);return Number.isFinite(t)?t:0}var LJe=B(`
                  `),RJe=B(`
                  `),$9=B(`

                  `),zJe=B(``),BJe=B(`
                  `,1),VJe=B(`

                  `),HJe=B(`
                  `),UJe=B(``),WJe=B(``),GJe=B(``);function KJe(e,t){O(t,!0);let n=X7,r=Number(Gi(`gomodel_interactions_panel_width`)),i=`gomodel_interactions_prompt_cache_fill`,a=Number.isFinite(r)&&r>0?r:520,o=j(N(a)),s=j(320),c=j(760),l=j(!1),u=j(!1),d=j(Gi(i,`true`)!==`false`),f=null;function p(e,{fullscreen:t,revealWithoutSlide:n=!1}){let r=q5(180);return t?rZ(e,{x:R(o),duration:r,easing:aZ}):n?{duration:0}:iZ(e,{axis:`x`,duration:r,easing:aZ})}async function m(e){if(e===R(l))return;let t=R(l)&&!e;M(u,t,!0),M(l,e,!0),t&&(await rr(),M(u,!1))}function h(){M(d,!R(d)),Ki(i,R(d))}function g(){return(document.querySelector(`.sidebar`)?.getBoundingClientRect().width||0)+(document.querySelector(`.sidebar-toggle`)?.getBoundingClientRect().width||0)}function _(){let e=g(),t=X9(window.innerWidth,e);M(s,t.min,!0),M(c,t.max,!0),M(o,Z9(a,window.innerWidth,e),!0)}function v(e){M(o,FJe(e,window.innerWidth,g()),!0),a=R(o)}function y(e){e.button===0&&(e.preventDefault(),f=e.pointerId,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`conversation-panel-resizing`),v(e.clientX))}function b(e){e.pointerId===f&&v(e.clientX)}function x(e){f===null||e.pointerId!==void 0&&e.pointerId!==f||(f=null,document.body.classList.remove(`conversation-panel-resizing`),Ki(`gomodel_interactions_panel_width`,a))}function S(e){e.key!==`ArrowLeft`&&e.key!==`ArrowRight`||(e.preventDefault(),a=R(o)+(e.key===`ArrowLeft`?24:-24),_(),a=R(o),Ki(`gomodel_interactions_panel_width`,a))}function C(e){let t=document.getElementById(`interactions-drawer-content`),r=n.conversationThreadEl;if(!t||!r)return;let i=[...r.querySelectorAll(`[data-conversation-message="true"]`)],a=t.getBoundingClientRect(),o=a.top+14,s=IJe(i.map(e=>e.getBoundingClientRect().top),o,a.bottom,e),c=i[s.index];if(!c)return;let l=s.align===`end`?t.scrollHeight:t.scrollTop+c.getBoundingClientRect().top-a.top-14;t.scrollTo({top:l,behavior:q5(1)>0?`smooth`:`auto`})}function w(){return[document.querySelector(`.sidebar`),document.querySelector(`.sidebar-toggle`),document.getElementById(`dashboard-content`)].filter(Boolean)}mn(()=>{if(!n.conversationOpen)return;_();let e=document.querySelector(`.sidebar`),t=new ResizeObserver(_);e&&t.observe(e);let r=e=>{e.key===`Escape`&&!Zi.anyOpen&&(R(l)?m(!1):n.closeConversation())};return window.addEventListener(`keydown`,r),window.addEventListener(`resize`,_),()=>{x({}),t.disconnect(),window.removeEventListener(`keydown`,r),window.removeEventListener(`resize`,_)}}),mn(()=>{n.conversationOpen||M(l,!1)}),mn(()=>{if(!R(l))return;let e=w().map(e=>({element:e,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}));return e.forEach(({element:e})=>{e.inert=!0,e.setAttribute(`aria-hidden`,`true`)}),()=>{e.forEach(({element:e,inert:t,ariaHidden:n})=>{e.inert=t,n===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,n)})}}),mn(()=>{CX.page!==`audit-logs`&&n.conversationOpen&&n.closeConversation()});var T=Or(),ee=F(T),E=e=>{var t=Or();W(F(t),16,()=>[R(l)],e=>e,(e,t)=>{var r=GJe();let i,a;var l=P(r),f=I(l,2),g=P(f),_=P(g),v=P(_,!0);D(_);var w=I(_,2),T=P(w);let ee;D(w),D(g);var E=I(g,2),te=P(E),ne=P(te);{let e=A(()=>t?VTe:sX);q(ne,{get icon(){return R(e)},class:`table-icon-svg`})}D(te);var re=I(te,2);{let e=A(()=>Sde());ZX(re,{get label(){return R(e)},onclick:()=>n.closeConversation(),get el(){return n.conversationCloseBtnEl},set el(e){n.conversationCloseBtnEl=e}})}D(E),D(f);var ie=I(f,2),ae=P(ie),oe=e=>{var t=LJe(),n=P(t);q(P(n),{get icon(){return ETe},width:`14`,height:`14`}),D(n);var r=I(n,2);q(P(r),{get icon(){return CTe},width:`14`,height:`14`}),D(r),D(t),L((e,i,a,o,s)=>{K(t,`aria-label`,e),K(n,`aria-label`,i),K(n,`title`,a),K(r,`aria-label`,o),K(r,`title`,s)},[()=>Tde(),()=>Bo(),()=>Bo(),()=>Vo(),()=>Vo()]),z(`click`,n,()=>C(-1)),z(`click`,r,()=>C(1)),V(e,t)};U(ae,e=>{n.conversationMessages.length>1&&e(oe)});var se=I(ae,2),ce=e=>{var t=RJe(),r=P(t,!0);D(t),L(()=>H(r,n.conversationError)),V(e,t)};U(se,e=>{n.conversationError&&e(ce)});var le=I(se,2),ue=e=>{var t=$9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mde()]),V(e,t)};U(le,e=>{n.conversationLoading&&e(ue)});var de=I(le,2),fe=e=>{var t=$9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Fde()]),V(e,t)},pe=A(()=>!n.conversationLoading&&!n.followUpSending&&!n.conversationError&&n.conversationMessages.length===0&&!n.conversationLiveWaiting());U(de,e=>{R(pe)&&e(fe)});var me=I(de,2),he=e=>{var t=BJe(),r=F(t),i=e=>{var t=zJe(),n=P(t);let r;var i=I(n,2),a=P(i),o=I(a),s=P(o,!0);D(o),D(i),D(t),L((e,i,o)=>{K(t,`aria-checked`,R(d)),K(t,`title`,e),r=G(n,1,`conversation-cache-switch svelte-ssrzja`,null,r,{"is-active":R(d)}),H(a,`${i??``} `),H(s,o)},[()=>R(d)?Rde():Vde(),()=>Wde(),()=>qde()]),z(`click`,t,h),V(e,t)},a=A(()=>n.conversationMessages.some(e=>Number(e.promptCacheRatio||0)>0));U(r,e=>{R(a)&&e(i)});var o=I(r,2);W(o,21,()=>n.conversationMessages,e=>e.uid,(e,t)=>{PJe(e,{get msg(){return R(t)},get showPromptCache(){return R(d)}})}),D(o),Ii(o,e=>n.conversationThreadEl=e,()=>n?.conversationThreadEl),V(e,t)};U(me,e=>{n.conversationMessages.length>0&&e(he)});var ge=I(me,2),_e=e=>{var t=VJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Xde()]),V(e,t)};U(ge,e=>{n.conversationTruncated&&e(_e)});var ve=I(ge,2),ye=e=>{var t=HJe(),r=I(P(t),2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>n.conversationLiveStatusText()]),V(e,t)},be=A(()=>n.conversationLiveWaiting());U(ve,e=>{R(be)&&e(ye)}),D(ie);var xe=I(ie,2),Se=e=>{var t=WJe(),r=P(t),i=P(r);at(i);var a=I(i,2),o=e=>{var t=UJe(),r=P(t,!0);D(t),L(()=>H(r,n.followUpError)),V(e,t)};U(a,e=>{n.followUpError&&e(o)});var s=I(a,2),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u),D(s),D(r),D(t),L((e,t,n,r,a,o)=>{K(i,`aria-label`,e),K(i,`placeholder`,t),i.disabled=n,H(l,r),u.disabled=a,H(d,o)},[()=>$de(),()=>nfe(),()=>n.followUpSending||n.conversationLiveWaiting(),()=>n.selectedConversationEntry()?.path||``,()=>!n.canSendFollowUp(),()=>n.followUpSending?cse():ase()]),br(`submit`,r,e=>{e.preventDefault(),n.sendFollowUp()}),ji(i,()=>n.followUpText,e=>n.followUpText=e),V(e,t)},Ce=A(()=>n.conversationAnchorID&&n.followUpKind());U(xe,e=>{R(Ce)&&e(Se)}),D(r),Ii(r,e=>n.conversationDialogEl=e,()=>n?.conversationDialogEl),L((e,u,d,f,p,m)=>{i=G(r,1,`conversation-drawer svelte-ssrzja`,null,i,{"conversation-drawer-fullscreen":t}),K(r,`role`,t?`dialog`:void 0),K(r,`aria-modal`,t?`true`:void 0),a=mi(r,``,a,{"--conversation-panel-width":R(o)+`px`}),K(l,`aria-label`,e),K(l,`aria-valuemin`,R(s)),K(l,`aria-valuemax`,R(c)),K(l,`aria-valuenow`,R(o)),H(v,u),K(w,`aria-label`,d),K(w,`title`,f),ee=G(T,1,`live-dot`,null,ee,{"is-streaming":n.conversationFollowLatest}),K(te,`aria-label`,p),K(te,`title`,m),K(te,`aria-pressed`,t)},[()=>Kue(),()=>Yue(),()=>n.conversationFollowLatest?Que():tde(),()=>n.conversationFollowLatest?ide():sde(),()=>t?ude():pde(),()=>t?gde():yde()]),z(`pointerdown`,l,y),z(`pointermove`,l,b),z(`pointerup`,l,x),br(`pointercancel`,l,x),br(`lostpointercapture`,l,x),z(`keydown`,l,S),z(`click`,te,()=>m(!t)),ai(7,r,()=>p,()=>({fullscreen:t,revealWithoutSlide:!t&&R(u)})),V(e,r)}),V(e,t)};U(ee,e=>{n.conversationOpen&&e(E)}),V(e,T),k()}xr([`pointerdown`,`pointermove`,`pointerup`,`keydown`,`click`]);var qJe=B(`
                  `,1);function JJe(e,t){O(t,!0);let n={overview:l3,usage:PIe,budgets:jLe,"rate-limits":mRe,models:FBe,workflows:oHe,"audit-logs":qWe,guardrails:TGe,"mcp-servers":tKe,"providers-config":qKe,"auth-keys":Eqe,settings:DJe};nDe(),HX.init(),OZ.init(),Y.init(),Yi.init(),Xi.init(),CX.init(),mn(()=>{Y.refreshTick,XX.fetch(),kZ.fetchModels(),kZ.fetchCategories()}),mn(()=>{document.body.classList.toggle(`dashboard-modal-open`,Zi.anyOpen)});let r=A(()=>n[CX.page]||l3);var i=qJe(),a=F(i);EEe(a,{});var o=I(a,2);let s;var c=P(o);JEe(c,{}),qr(I(c,2),()=>R(r),(e,t)=>{t(e,{})}),D(o);var l=I(o,2);KJe(l,{});var u=I(l,2);PEe(u,{});var d=I(u,2);REe(d,{}),KEe(I(d,2),{}),L(()=>s=G(o,1,`content`,null,s,{"interactions-open":X7.conversationOpen})),V(e,i),k()}jr(JJe,{target:document.getElementById(`app`)}); \ No newline at end of file + dashboard. Keys are masked after saving.`))},$$slots:{title:!0,help:!0}}),D(i);var a=I(i,2),o=P(a),s=e=>{var t=UKe(),n=P(t);q(n,{get icon(){return lX},class:`form-action-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=E9.formSubmitting,H(i,e)},[()=>nD()]),z(`click`,t,()=>E9.openCreate()),V(e,t)};U(o,e=>{E9.available&&!Y.needsAuth&&e(s)}),D(a),D(r);var c=I(r,2),l=e=>{var t=WKe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>aD()]),V(e,t)};U(c,e=>{!E9.available&&!Y.needsAuth&&e(l)});var u=I(c,2),d=e=>{var t=GKe(),n=P(t,!0);D(t),L(()=>H(n,E9.error)),V(e,t)};U(u,e=>{E9.error&&!Y.needsAuth&&!E9.formOpen&&e(d)});var f=I(u,2),p=e=>{J3(e,{label:`Loading providers...`})};U(f,e=>{E9.loading&&!Y.needsAuth&&e(p)});var m=I(f,2),h=e=>{var t=KKe(),n=P(t),r=P(n);{let e=A(()=>cD()),t=A(()=>dD());z3(r,{id:`provider-credential-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return E9.filter},set value(e){E9.filter=e}})}D(n),D(t),V(e,t)};U(m,e=>{(E9.rows.length>0||E9.filter)&&E9.available&&!Y.needsAuth&&e(h)});var g=I(m,2);VKe(g,{});var _=I(g,2),v=e=>{CKe(e,{})};U(_,e=>{E9.filteredRows.length>0&&E9.available&&!Y.needsAuth&&e(v)});var y=I(_,2),b=e=>{var t=A9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>mD()]),V(e,t)};U(y,e=>{E9.rows.length===0&&!E9.filter&&!E9.loading&&!Y.needsAuth&&!E9.error&&E9.available&&e(b)});var x=I(y,2),S=e=>{var t=A9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_D()]),V(e,t)};U(x,e=>{E9.rows.length>0&&E9.filteredRows.length===0&&E9.filter&&!E9.loading&&!Y.needsAuth&&E9.available&&e(S)}),D(n),V(e,n),k()}xr([`click`]);function j9(){return{name:``,description:``,user_path:``,labels:``,dashboard_access:!1,expires_at:``}}function M9(e){let t=[];for(let n of String(e||``).split(`,`)){let e=n.trim();e&&!t.includes(e)&&t.push(e)}return t}function N9(e){let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t;for(let e of n.split(`/`)){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return dB();if(t.includes(`:`))return mB()}}return``}function YKe(e){if(N9(e))return``;let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t,r=[];for(let e of n.split(`/`)){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function XKe(e){let t=e||{},n=String(t.name||``).trim();if(!n)return{error:cB()};let r=N9(t.user_path);if(r)return{error:r};let i=YKe(t.user_path),a=M9(t.labels),o={name:n,description:String(t.description||``).trim()||void 0,user_path:i||void 0,labels:a.length?a:void 0,dashboard_access:t.dashboard_access?!0:void 0};return t.expires_at&&(o.expires_at=t.expires_at+`T23:59:59Z`),{payload:o}}function P9(e,t=Date.now()){let n=e&&e.expires_at;if(!n)return!1;let r=Date.parse(n);return Number.isFinite(r)&&r<=t}function F9(e){return e?!!e.deactivated_at||e.enabled===!1:!1}function I9(e,t=Date.now()){return!e||e.active===!1||F9(e)?!1:!P9(e,t)}function ZKe(e){return[e.name,e.description,e.user_path,e.redacted_value,...e.labels||[]].filter(Boolean).join(` `).toLowerCase()}function QKe(e,t={}){let{query:n=``,showInactive:r=!1,now:i=Date.now()}=t,a=String(n||``).trim().toLowerCase();return(Array.isArray(e)?e:[]).filter(e=>!r&&!I9(e,i)?!1:!a||ZKe(e).includes(a))}function L9(e,t){return F9(e)?2:+!I9(e,t)}function R9(e){let t=e&&e.expires_at;if(!t)return 1/0;let n=Date.parse(t);return Number.isFinite(n)?n:1/0}function z9(e){let t=Date.parse(e&&e.deactivated_at||``);return Number.isFinite(t)?t:-1/0}function $Ke(e,t=Date.now()){return(Array.isArray(e)?e.slice():[]).sort((e,n)=>{let r=L9(e,t),i=L9(n,t);if(r!==i)return r-i;let[a,o]=r===2?[z9(e),z9(n)]:[R9(e),R9(n)];return a===o?String(e.name||``).localeCompare(String(n.name||``)):a>o?-1:1})}function eqe(e,t=Date.now()){return(Array.isArray(e)?e:[]).reduce((e,n)=>e+ +!I9(n,t),0)}function B9(){return{open:!1,id:``,name:``,value:``,submitting:!1,error:``}}var V9=new class{#e=j(N([]));get keys(){return R(this.#e)}set keys(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get showInactive(){return R(this.#a)}set showInactive(e){M(this.#a,e,!0)}#o=A(()=>$Ke(QKe(this.keys,{query:this.filter,showInactive:this.showInactive})));get visibleKeys(){return R(this.#o)}set visibleKeys(e){M(this.#o,e)}#s=A(()=>eqe(this.keys));get inactiveCount(){return R(this.#s)}set inactiveCount(e){M(this.#s,e)}#c=j(!1);get formOpen(){return R(this.#c)}set formOpen(e){M(this.#c,e,!0)}#l=j(!1);get formSubmitting(){return R(this.#l)}set formSubmitting(e){M(this.#l,e,!0)}#u=j(``);get issuedValue(){return R(this.#u)}set issuedValue(e){M(this.#u,e,!0)}#d=j(``);get deactivatingID(){return R(this.#d)}set deactivatingID(e){M(this.#d,e,!0)}#f=j(``);get dashboardAccessID(){return R(this.#f)}set dashboardAccessID(e){M(this.#f,e,!0)}#p=j(N(j9()));get form(){return R(this.#p)}set form(e){M(this.#p,e,!0)}#m=j(N(B9()));get labelsEditor(){return R(this.#m)}set labelsEditor(e){M(this.#m,e,!0)}copyState=U3({logPrefix:`Failed to copy auth key:`});async fetchKeys(){this.loading=!0,this.error=``;try{let e=await X3(`/admin/auth-keys`,{label:`auth keys`,errorFallback:kz()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.keys=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.error=e.error;return}this.available=!0,this.keys=e.items}finally{this.loading=!1}}openForm(){this.formSubmitting||this.formOpen||(this.formOpen=!0,this.error=``,this.issuedValue||(this.copyState.reset(),this.form=j9()))}closeForm(){this.formOpen&&(this.formOpen=!1,this.error=``,this.copyState.reset(),!this.formSubmitting&&!this.issuedValue&&(this.form=j9()))}copyIssuedValue(){return this.copyState.copy(this.issuedValue)}dismissIssuedKey(){this.issuedValue=``,this.copyState.reset(),this.form=j9()}async submitForm(){let e=XKe(this.form);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await Z3(`/admin/auth-keys`,`POST`,e.payload,{label:`create API key`,errorFallback:Mz(),unavailableMessage:Fz()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error,t.result&&t.result.status!==401&&console.error(`Failed to create API key:`,t.result.status,this.error);return}let n=t.result.data||{};this.issuedValue=n.value||``,this.formOpen=!0,this.copyState.reset(),this.form=j9(),this.fetchKeys()}finally{this.formSubmitting=!1}}openLabelsEditor(e){!e||this.labelsEditor.submitting||(this.labelsEditor={open:!0,id:e.id,name:e.name||``,value:(e.labels||[]).join(`, `),submitting:!1,error:``})}closeLabelsEditor(){!this.labelsEditor.open||this.labelsEditor.submitting||(this.labelsEditor=B9())}async submitLabelsEditor(){let e=this.labelsEditor;if(!e.open||e.submitting||!e.id)return;e.submitting=!0,e.error=``;let t={labels:M9(e.value)};try{let n=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/labels`,`PUT`,t,{label:`update API key labels`,errorFallback:Rz(),unavailableMessage:Fz()});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,e.error=n.error;return}if(n.status===`error`){e.error=n.error,n.result&&n.result.status!==401&&console.error(`Failed to update auth key labels:`,n.result.status,e.error);return}oZ.success(Vz({name:e.name})),e.submitting=!1,this.closeLabelsEditor(),this.fetchKeys()}finally{e.submitting=!1}}async toggleDashboardAccess(e){if(!e||!e.active||this.dashboardAccessID)return;let t=!e.dashboard_access;this.dashboardAccessID=e.id;try{let n=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/dashboard-access`,`PUT`,{dashboard_access:t},{label:`update API key dashboard access`,errorFallback:Wz(),unavailableMessage:Fz()});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,oZ.error(n.error);return}if(n.status===`error`){n.result&&n.result.status!==401&&console.error(`Failed to update auth key dashboard access:`,n.result.status,n.error),oZ.error(n.error);return}oZ.success(t?qz({name:e.name}):Xz({name:e.name})),this.fetchKeys()}finally{this.dashboardAccessID=``}}async deactivateKey(e){if(!(!e||!e.active)&&window.confirm($z({name:e.name}))){this.deactivatingID=e.id;try{let t=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/deactivate`,`POST`,void 0,{label:`deactivate API key`,errorFallback:nB(),unavailableMessage:Fz()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,oZ.error(t.error);return}if(t.status===`error`){t.result&&t.result.status!==401&&console.error(`Failed to deactivate auth key:`,t.result.status,t.error),oZ.error(t.error);return}oZ.success(aB({name:e.name})),this.fetchKeys()}finally{this.deactivatingID=``}}}},tqe=B(``),nqe=B(`

                  `),rqe=B(``),iqe=B(``),aqe=B(``),oqe=B(``),sqe=B(`
                  `);function cqe(e,t){O(t,!0);{let t=A(()=>kx()),n=A(()=>aS()),r=A(()=>V9.issuedValue?``:V9.error),i=A(()=>V9.issuedValue?cS():kx()),a=A(()=>dS()),o=A(()=>V9.issuedValue?XY:lX);S6(e,{get open(){return V9.formOpen},get title(){return R(t)},get ariaLabel(){return R(n)},get error(){return R(r)},get submitting(){return V9.formSubmitting},get submitLabel(){return R(i)},get submittingLabel(){return R(a)},get submitIcon(){return R(o)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>V9.closeForm(),onsubmit:()=>V9.issuedValue?V9.dismissIssuedKey():V9.submitForm(),children:(e,t)=>{var n=Or(),r=F(n),i=e=>{var t=nqe(),n=P(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i),o=P(a,!0);D(a),Q7(I(a,2),{get state(){return V9.copyState},onclick:()=>V9.copyIssuedValue()}),D(i);var s=I(i,2),c=e=>{var t=tqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_S()]),V(e,t)};U(s,e=>{V9.copyState.error&&e(c)}),D(t),L(e=>{H(r,e),H(o,V9.issuedValue)},[()=>mS()]),V(e,t)},a=e=>{var t=sqe(),n=P(t),r=P(n),i=P(r),a=P(i),o=I(a),s=P(o);D(o),D(i);var c=I(i,2);wi(c),D(r);var l=I(r,2),u=P(l),d=P(u),f=I(d),p=P(f);D(f),D(u);var m=I(u,2);wi(m),D(l),D(n);var h=I(n,2),g=P(h);{let e=e=>{var t=rqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>MS()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>RS()]),V(e,t)},n=A(()=>FS());s3(g,{copyId:`auth-key-user-path-help-copy`,get label(){return R(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var _=I(g,2);wi(_),D(h);var v=I(h,2),y=P(v);{let e=e=>{var t=iqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>VS()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>qS()]),V(e,t)},n=A(()=>WS());s3(y,{copyId:`auth-key-labels-help-copy`,get label(){return R(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var b=I(y,2);wi(b),D(v);var x=I(v,2),S=P(x);{let e=e=>{var t=aqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XS()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>nC()]),V(e,t)},n=A(()=>$S());s3(S,{copyId:`auth-key-dashboard-access-help-copy`,get label(){return R(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var C=I(S,2),w=P(C);wi(w);var T=I(w,2),ee=P(T,!0);D(T),D(C),D(x);var E=I(x,2);{let e=A(()=>cC());C6(E,{id:`auth-key-description`,get label(){return R(e)},children:(e,t)=>{var n=oqe();at(n),L(e=>K(n,`placeholder`,e),[()=>dC()]),ji(n,()=>V9.form.description,e=>V9.form.description=e),V(e,n)},$$slots:{default:!0}})}D(t),L((e,t,n,r,i)=>{H(a,`${e??``} `),H(s,`(${t??``})`),H(d,`${n??``} `),H(p,`(${r??``})`),H(ee,i)},[()=>bS(),()=>CS(),()=>ES(),()=>kS(),()=>aC()]),ji(c,()=>V9.form.name,e=>V9.form.name=e),ji(m,()=>V9.form.expires_at,e=>V9.form.expires_at=e),ji(_,()=>V9.form.user_path,e=>V9.form.user_path=e),ji(b,()=>V9.form.labels,e=>V9.form.labels=e),Mi(w,()=>V9.form.dashboard_access,e=>V9.form.dashboard_access=e),V(e,t)};U(r,e=>{V9.issuedValue?e(i):e(a,-1)}),V(e,n)},$$slots:{default:!0}})}k()}var lqe=B(`

                  `),uqe=B(`

                  `,1);function dqe(e,t){O(t,!0);{let t=e=>{var t=lqe(),n=P(t,!0);D(t),L(()=>H(n,V9.labelsEditor.name)),V(e,t)},n=A(()=>WC()),r=A(()=>qC()),i=A(()=>XC());S6(e,{get open(){return V9.labelsEditor.open},get title(){return R(n)},get ariaLabel(){return R(r)},get error(){return V9.labelsEditor.error},get submitting(){return V9.labelsEditor.submitting},get submitLabel(){return R(i)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>V9.closeLabelsEditor(),onsubmit:()=>V9.submitLabelsEditor(),headerHint:t,children:(e,t)=>{{let t=A(()=>$C());C6(e,{id:`auth-key-labels-edit`,get label(){return R(t)},children:(e,t)=>{var n=uqe(),r=F(n);wi(r);var i=I(r,2),a=P(i,!0);D(i),L(e=>H(a,e),[()=>nw()]),ji(r,()=>V9.labelsEditor.value,e=>V9.labelsEditor.value=e),V(e,n)},$$slots:{default:!0}})}},$$slots:{headerHint:!0,default:!0}})}k()}var fqe=B(` `),pqe=B(`
                  `),mqe=B(``),H9=B(` `),hqe=B(` `),gqe=B(` `,1),_qe=B(`
                  `),vqe=B(`
                  `);function yqe(e,t){O(t,!0);var n=vqe(),r=P(n),i=P(r),a=P(i),o=P(a),s=P(o,!0);D(o);var c=I(o),l=P(c,!0);D(c);var u=I(c),d=P(u,!0);D(u);var f=I(u),p=P(f,!0);D(f);var m=I(f),h=P(m,!0);D(m);var g=I(m),_=P(g),v=P(_);q(I(v),{get icon(){return LTe},width:`13`,height:`13`}),D(_),D(g);var y=I(g),b=P(y,!0);D(y);var x=I(y),S=P(x,!0);D(x);var C=I(x);D(a),D(i);var w=I(i);W(w,21,()=>V9.visibleKeys,e=>e.id,(e,t)=>{var n=_qe();let r;var i=P(n),a=P(i,!0);D(i);var o=I(i),s=P(o,!0);D(o);var c=I(o),l=P(c,!0);D(c);var u=I(c),d=P(u),f=e=>{var n=pqe();W(n,20,()=>R(t).labels||[],e=>e,(e,t)=>{var n=fqe(),r=P(n,!0);D(n),L(e=>{mi(n,e),H(r,t)},[()=>VMe(t)]),V(e,n)}),D(n),V(e,n)},p=e=>{V(e,mqe())};U(d,e=>{(R(t).labels||[]).length>0?e(f):e(p,-1)}),D(u);var m=I(u),h=P(m),g=P(h,!0);D(h),D(m);var _=I(m),v=P(_);let y;var b=P(v,!0);D(v),D(_);var x=I(_),S=P(x),C=e=>{var n=hqe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=e=>{var t=H9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>RC()]),V(e,t)},s=A(()=>P9(R(t)));U(a,e=>{R(s)&&e(o)}),D(n),L(e=>H(i,e),[()=>YEe(R(t).expires_at)]),V(e,n)},w=e=>{V(e,Dr(`—`))};U(S,e=>{R(t).expires_at?e(C):e(w,-1)}),D(x);var T=I(x),ee=P(T,!0);D(T);var E=I(T),te=P(E),ne=P(te),re=e=>{var n=gqe(),r=F(n);{let e=A(()=>R(t).dashboard_access?mz({name:R(t).name}):dz({name:R(t).name})),n=A(()=>!!V9.dashboardAccessID);Y3(r,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>V9.toggleDashboardAccess(R(t)),get disabled(){return R(n)},children:(e,n)=>{{let n=A(()=>R(t).dashboard_access?ZTe:pX);q(e,{get icon(){return R(n)},class:`table-icon-svg`})}},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>_z({name:R(t).name}));Y3(i,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>V9.openLabelsEditor(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>V9.deactivatingID===R(t).id?Cz({name:R(t).name}):bz({name:R(t).name})),n=A(()=>V9.deactivatingID===R(t).id);Y3(a,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>V9.deactivateKey(R(t)),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return GTe},class:`table-icon-svg`})},$$slots:{default:!0}})}V(e,n)},ie=e=>{var n=H9(),r=P(n,!0);D(n),L((e,t)=>{K(n,`title`,e),H(r,t)},[()=>R(t).deactivated_at?Ez({date:gZ(R(t).deactivated_at)}):VC(),()=>VC()]),V(e,n)},ae=A(()=>F9(R(t)));U(ne,e=>{R(t).active?e(re):R(ae)&&e(ie,1)}),D(te),D(E),D(n),L((e,i,o,c)=>{r=G(n,1,`svelte-nf0ldb`,null,r,e),H(a,R(t).name),H(s,R(t).description||`—`),H(l,R(t).user_path||`—`),H(g,R(t).redacted_value),y=G(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":R(t).dashboard_access,"auth-key-status-inactive":!R(t).dashboard_access}),H(b,i),K(x,`title`,o),H(ee,c)},[()=>({"auth-key-row-deactivated":F9(R(t))}),()=>R(t).dashboard_access?MC():FC(),()=>R(t).expires_at?gZ(R(t).expires_at):``,()=>HX.formatTimestamp(R(t).created_at)]),V(e,n)}),D(w),D(r),D(n),L((e,t,n,r,i,a,o,c,u,f)=>{H(s,e),H(l,t),H(d,n),H(p,r),H(h,i),K(_,`title`,a),H(v,`${o??``} `),H(b,c),H(S,u),K(C,`aria-label`,f)},[()=>bS(),()=>mC(),()=>_C(),()=>bC(),()=>CC(),()=>cz(),()=>XS(),()=>ES(),()=>EC(),()=>kC()]),V(e,n),k()}var bqe=B(``),xqe=B(`
                  `),Sqe=B(``),Cqe=B(`

                  `),wqe=B(`
                  `),Tqe=B(`
                  `),U9=B(`

                  `),Eqe=B(`
                  `);function Dqe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`auth-keys`&&V9.fetchKeys()});var n=Eqe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o),c=e=>{var t=bqe(),n=P(t);q(n,{get icon(){return lX},class:`table-icon-svg`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=V9.formSubmitting,H(i,e)},[()=>kx()]),z(`click`,t,()=>{V9.formSubmitting||V9.openForm()}),V(e,t)};U(s,e=>{V9.available&&!Y.authError&&e(c)}),D(o),D(r);var l=I(r,2),u=e=>{var t=xqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mx()]),V(e,t)};U(l,e=>{!V9.available&&!Y.authError&&e(u)});var d=I(l,2),f=e=>{var t=Sqe(),n=P(t,!0);D(t),L(()=>H(n,V9.error)),V(e,t)};U(d,e=>{V9.error&&!Y.authError&&!V9.formOpen&&e(f)});var p=I(d,2),m=e=>{var t=Cqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Fx()]),V(e,t)};U(p,e=>{V9.available&&!Y.authError&&e(m)});var h=I(p,2);cqe(h,{});var g=I(h,2);dqe(g,{});var _=I(g,2),v=e=>{var t=wqe(),n=P(t);{let e=A(()=>Rx());r3(n,{size:18,get label(){return R(e)}})}D(t),V(e,t)};U(_,e=>{V9.loading&&V9.keys.length===0&&e(v)});var y=I(_,2),b=e=>{var t=Tqe(),n=P(t),r=P(n);{let e=A(()=>Vx()),t=A(()=>Wx());z3(r,{get placeholder(){return R(e)},get label(){return R(t)},get value(){return V9.filter},set value(e){V9.filter=e}})}D(n);var i=I(n,2),a=P(i),o=P(a);wi(o);var s=I(o,2),c=P(s),l=I(c),u=e=>{var t=Dr();L(()=>H(t,`(${V9.inactiveCount??``})`)),V(e,t)};U(l,e=>{V9.inactiveCount>0&&e(u)}),D(s),D(a),D(i),D(t),L(e=>H(c,`${e??``} `),[()=>qx()]),Mi(o,()=>V9.showInactive,e=>V9.showInactive=e),V(e,t)};U(y,e=>{V9.keys.length>0&&V9.available&&e(b)});var x=I(y,2),S=e=>{yqe(e,{})};U(x,e=>{V9.visibleKeys.length>0&&V9.available&&e(S)});var C=I(x,2),w=e=>{var t=U9(),n=P(t);D(t),L((e,t)=>H(n,`${e??``}${t??``}`),[()=>Xx(),()=>V9.inactiveCount>0&&!V9.showInactive?` `+$x({count:V9.inactiveCount}):``]),V(e,t)};U(C,e=>{V9.keys.length>0&&V9.visibleKeys.length===0&&V9.available&&e(w)});var T=I(C,2),ee=e=>{var t=U9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>nS()]),V(e,t)};U(T,e=>{V9.keys.length===0&&!V9.loading&&!Y.authError&&!V9.error&&V9.available&&e(ee)}),D(n),L(e=>H(a,e),[()=>Ex()]),V(e,n),k()}xr([`click`]);var Oqe=B(``),kqe=B(`
                  `);function Aqe(e,t){O(t,!0);let n=$i.map(e=>({value:e,label:rDe(e)}));var r=Or(),i=F(r),a=e=>{var t=kqe(),r=P(t),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>n,e=>e.value,(e,t)=>{var n=Oqe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(a);var o;gi(a),D(t),L((e,t,n)=>{H(i,e),K(a,`aria-label`,t),o!==(o=n)&&(a.value=(a.__value=n)??``,hi(a,n))},[()=>aL(),()=>aL(),()=>J()]),z(`change`,a,e=>ca(e.currentTarget.value)),V(e,t)};U(i,e=>{n.length>1&&e(a)}),V(e,r),k()}xr([`change`]);var jqe=B(`

                  `),Mqe=B(``),Nqe=B(``),Pqe=B(`
                  `,1);function Fqe(e,t){O(t,!0);function n(){HX.saveOverride(),Y.refresh()}function r(){HX.clearOverride(),Y.refresh()}var i=Pqe(),a=F(i),o=P(a);{let e=e=>{var t=jqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Pu()]),V(e,t)},t=A(()=>Lu()),n=A(()=>Bu());s3(o,{copyId:`timezone-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}D(a);var s=I(a,2),c=P(s),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d),p=P(f,!0);D(f),f.value=f.__value=``,W(I(f),17,()=>HX.options,e=>e.value,(e,t)=>{var n=Mqe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(d),D(c),D(s);var m=I(s,2),h=P(m),g=e=>{var t=Nqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Yu()]),z(`click`,t,r),V(e,t)};U(h,e=>{HX.override&&e(g)}),D(m),L((e,t)=>{H(u,e),H(p,t)},[()=>Uu(),()=>Ku({timezone:HX.detectedTimeZoneLabel()})]),br(`focus`,d,()=>HX.ensureOptions()),z(`change`,d,n),_i(d,()=>HX.override,e=>HX.override=e),V(e,i),k()}xr([`change`,`click`]);var Iqe=B(``),Lqe=B(`

                  `,1);function Rqe(e,t){O(t,!0);let n=A(()=>Q.failoverSaving||Q.failoverGenerating||Q.failoverDraftSaving||!Q.failoverAvailable||!Q.failoverEnabled());var r=Lqe(),i=F(r),a=P(i),o=P(a),s=P(o,!0);D(o),D(a);var c=I(a,2),l=P(c),u=P(l);q(u,{get icon(){return vX},class:`form-action-icon`});var d=I(u,2),f=P(d,!0);D(d),D(l);var p=I(l,2),m=P(p);q(m,{get icon(){return gX},class:`form-action-icon`});var h=I(m,2),g=P(h,!0);D(h),D(p),D(c),D(i);var _=I(i,2),v=P(_),y=e=>{var t=Iqe(),n=P(t,!0);D(t),L(()=>H(n,Q.failoverError)),V(e,t)};U(v,e=>{Q.failoverError&&e(y)}),D(_),n5(I(_,2),{}),L((e,t,r)=>{H(s,e),l.disabled=R(n),H(f,t),p.disabled=R(n),H(g,r)},[()=>Qu(),()=>Q.failoverGenerating?td():id(),()=>sd()]),z(`click`,l,()=>Q.generateFailoverRules()),z(`click`,p,()=>Q.openFailoverResetDialog()),V(e,r),k()}xr([`click`]);function zqe(){return{daily_reset_hour:0,daily_reset_minute:0,weekly_reset_weekday:1,weekly_reset_hour:0,weekly_reset_minute:0,monthly_reset_day:1,monthly_reset_hour:0,monthly_reset_minute:0}}function W9(e,t){let n=t||{},r=(e,t)=>{if(e===``)return t;let n=Number(e);return Number.isFinite(n)&&Number.isInteger(n)?Math.trunc(n):t},i=(e,t)=>r(n[e],t),a=(t,n)=>e?r(e[t],n):n;return{daily_reset_hour:a(`daily_reset_hour`,i(`daily_reset_hour`,0)),daily_reset_minute:a(`daily_reset_minute`,i(`daily_reset_minute`,0)),weekly_reset_weekday:a(`weekly_reset_weekday`,i(`weekly_reset_weekday`,1)),weekly_reset_hour:a(`weekly_reset_hour`,i(`weekly_reset_hour`,0)),weekly_reset_minute:a(`weekly_reset_minute`,i(`weekly_reset_minute`,0)),monthly_reset_day:a(`monthly_reset_day`,i(`monthly_reset_day`,1)),monthly_reset_hour:a(`monthly_reset_hour`,i(`monthly_reset_hour`,0)),monthly_reset_minute:a(`monthly_reset_minute`,i(`monthly_reset_minute`,0))}}function Bqe(){return[{value:0,label:EN()},{value:1,label:kN()},{value:2,label:MN()},{value:3,label:FN()},{value:4,label:RN()},{value:5,label:VN()},{value:6,label:WN()}]}var Vqe=B(`

                  `),Hqe=B(``),Uqe=B(`

                  `),Wqe=B(``),Gqe=B(``),Kqe=B(`
                  `,1);function qqe(e,t){O(t,!0);let n=j(N(zqe())),r=j(!1),i=j(!1),a=j(``),o=j(!1),s=A(()=>XX.budgetsVisible());async function c(){if(await XX.ensureLoaded(),!XX.budgetsVisible()){M(a,``);return}M(r,!0),M(a,``);try{let e=await qX(`/admin/budgets/settings`,{label:`budget settings`});if(e.stale)return;if(!e.ok){M(a,_N(),!0);return}M(n,W9(e.data,R(n)),!0)}catch(e){console.error(`Failed to fetch budget settings:`,e),M(a,_N(),!0)}finally{M(r,!1)}}async function l(){if(!R(i)){M(i,!0);try{let e=await JX(`/admin/budgets/settings`,`PUT`,W9(R(n),R(n)),{label:`budget settings`});if(e.stale)return;if(!e.ok){oZ.error(bN());return}M(n,W9(e.data,R(n)),!0),M(a,``),oZ.success(CN())}catch(e){console.error(`Failed to save budget settings:`,e),oZ.error(bN())}finally{M(i,!1)}}}mn(()=>{Y.refreshTick,c()});var u=Or(),d=F(u),f=e=>{var t=Kqe(),s=F(t),c=P(s);{let e=e=>{var t=Vqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Td()]),V(e,t)},t=A(()=>yd()),n=A(()=>Sd());s3(c,{copyId:`budget-settings-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var u=I(c,2),d=P(u),f=P(d),p=P(f,!0);D(f);var m=I(f,2),h=P(m);{let e=e=>{var t=Hqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XM()]),V(e,t)},t=A(()=>qM());s3(h,{copyId:`budget-monthly-day-help-copy`,get label(){return R(t)},external:!0,get open(){return R(o)},set open(e){M(o,e,!0)},title:e,$$slots:{title:!0}})}var g=I(h,2);wi(g),D(m);var _=I(m,2),v=P(_),y=P(v,!0);D(v);var b=I(v,2);wi(b),D(_);var x=I(_,2),S=P(x),C=P(S,!0);D(S);var w=I(S,2);wi(w),D(x);var T=I(x,2),ee=P(T),E=e=>{var t=Uqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>$M()]),V(e,t)};U(ee,e=>{R(o)&&e(E)}),D(T),D(d);var te=I(d,2),ne=P(te),re=P(ne,!0);D(ne);var ie=I(ne,2),ae=P(ie),oe=P(ae,!0);D(ae);var se=I(ae,2);W(se,21,Bqe,e=>e.value,(e,t)=>{var n=Wqe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(se),D(ie);var ce=I(ie,2),le=P(ce),ue=P(le,!0);D(le);var de=I(le,2);wi(de),D(ce);var fe=I(ce,2),pe=P(fe),me=P(pe,!0);D(pe);var he=I(pe,2);wi(he),D(fe),Ve(2),D(te);var ge=I(te,2),_e=P(ge),ve=P(_e,!0);D(_e);var ye=I(_e,4),be=P(ye),xe=P(be,!0);D(be);var Se=I(be,2);wi(Se),D(ye);var Ce=I(ye,2),we=P(Ce),Te=P(we,!0);D(we);var Ee=I(we,2);wi(Ee),D(Ce),Ve(2),D(ge),D(u);var De=I(u,2),Oe=P(De),ke=P(Oe);q(ke,{get icon(){return fX},class:`form-action-icon`});var Ae=I(ke,2),je=P(Ae,!0);D(Ae),D(Oe);var Me=I(Oe,2),Ne=e=>{{let t=A(()=>mN());r3(e,{size:16,get label(){return R(t)}})}};U(Me,e=>{R(r)&&e(Ne)}),D(De),D(s);var Pe=I(s,2),Fe=P(Pe),Ie=e=>{var t=Gqe(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)};U(Fe,e=>{R(a)&&e(Ie)}),D(Pe),L((e,t,n,a,o,s,c,l,u,d,f)=>{H(p,e),H(y,t),H(C,n),H(re,a),H(oe,o),H(ue,s),H(me,c),H(ve,l),H(xe,u),H(Te,d),Oe.disabled=R(i)||R(r),K(Oe,`aria-busy`,R(i)?`true`:`false`),H(je,f)},[()=>RM(),()=>aN(),()=>cN(),()=>VM(),()=>nN(),()=>aN(),()=>cN(),()=>WM(),()=>aN(),()=>cN(),()=>dN()]),ji(g,()=>R(n).monthly_reset_day,e=>R(n).monthly_reset_day=e),ji(b,()=>R(n).monthly_reset_hour,e=>R(n).monthly_reset_hour=e),ji(w,()=>R(n).monthly_reset_minute,e=>R(n).monthly_reset_minute=e),_i(se,()=>R(n).weekly_reset_weekday,e=>R(n).weekly_reset_weekday=e),ji(de,()=>R(n).weekly_reset_hour,e=>R(n).weekly_reset_hour=e),ji(he,()=>R(n).weekly_reset_minute,e=>R(n).weekly_reset_minute=e),ji(Se,()=>R(n).daily_reset_hour,e=>R(n).daily_reset_hour=e),ji(Ee,()=>R(n).daily_reset_minute,e=>R(n).daily_reset_minute=e),z(`click`,Oe,l),V(e,t)};U(d,e=>{R(s)&&e(f)}),V(e,u),k()}xr([`click`]);var Jqe=B(`

                  `);function Yqe(e,t){O(t,!0);var n=Or(),r=F(n),i=e=>{var t=Jqe(),n=P(t),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a),D(n);var s=I(n,2),c=P(s),l=P(c);q(l,{get icon(){return dX},class:`form-action-icon`});var u=I(l,2),d=P(u,!0);D(u),D(c),D(s),D(t),L((e,t,n)=>{H(i,e),H(o,t),c.disabled=b6.resetAllLoading,H(d,n)},[()=>ud(),()=>pd(),()=>gd()]),z(`click`,c,()=>b6.openResetDialog()),V(e,t)},a=A(()=>XX.budgetsVisible());U(r,e=>{R(a)&&e(i)}),V(e,n),k()}xr([`click`]);function Xqe(){return{header:``,prefix:``,do_not_pass:!1,delimiter:``,managed:!1}}function G9(e){return(e&&Array.isArray(e.headers)?e.headers:[]).map(e=>({header:typeof e.header==`string`?e.header:``,prefix:typeof e.prefix==`string`?e.prefix:``,do_not_pass:e.do_not_pass===!0,delimiter:typeof e.delimiter==`string`&&e.delimiter!==`,`?e.delimiter:``,managed:e.managed===!0}))}function Zqe(e){return{headers:(Array.isArray(e)?e:[]).filter(e=>!e.managed&&e.header.trim()!==``).map(e=>({header:e.header.trim(),prefix:e.prefix,do_not_pass:e.do_not_pass,delimiter:e.delimiter}))}}function Qqe(e){return e&&e.error&&e.error.message?e.error.message:``}var $qe=B(`

                  `),eJe=B(`config`),tJe=B(``),nJe=B(`
                  `),rJe=B(`

                  `),iJe=B(``),aJe=B(`
                  `,1);function oJe(e,t){O(t,!0);let n=j(N([])),r=j(!0),i=j(!1),a=j(!1),o=j(``);function s(){R(n).push(Xqe())}function c(e){let t=R(n)[e];!t||t.managed||R(n).splice(e,1)}async function l(){M(i,!0),M(o,``);try{let e=await qX(`/admin/tagging/settings`,{label:`tagging settings`});if(e.stale)return;if(!e.ok){M(o,FP(),!0);return}M(n,G9(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0)}catch(e){console.error(`Failed to fetch tagging settings:`,e),M(o,FP(),!0)}finally{M(i,!1)}}async function u(){if(!(R(a)||!R(r))){M(a,!0);try{let e=await JX(`/admin/tagging/settings`,`PUT`,Zqe(R(n)),{label:`tagging settings`});if(e.stale)return;if(!e.ok){oZ.error(e.status!==401&&Qqe(e.data)||RP());return}M(n,G9(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0),M(o,``),oZ.success(VP())}catch(e){console.error(`Failed to save tagging settings:`,e),oZ.error(RP())}finally{M(a,!1)}}}mn(()=>{Y.refreshTick,l()});var d=aJe(),f=F(d),p=P(f);{let e=e=>{var t=$qe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>qN()]),V(e,t)},t=A(()=>XN()),n=A(()=>$N());s3(p,{copyId:`tagging-settings-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var m=I(p,2),h=P(m);W(h,17,()=>R(n),Ir,(e,t,n)=>{var i=nJe(),a=P(i),o=P(a);K(o,`for`,`tagging-header-`+n);var s=P(o,!0);D(o);var l=I(o,2);wi(l),K(l,`id`,`tagging-header-`+n),D(a);var u=I(a,2),d=P(u);K(d,`for`,`tagging-prefix-`+n);var f=P(d,!0);D(d);var p=I(d,2);wi(p),K(p,`id`,`tagging-prefix-`+n),D(u);var m=I(u,2),h=P(m);K(h,`for`,`tagging-delimiter-`+n);var g=P(h,!0);D(h);var _=I(h,2);wi(_),K(_,`id`,`tagging-delimiter-`+n),D(m);var v=I(m,2),y=P(v);wi(y);var b=I(y,2),x=P(b,!0);D(b),D(v);var S=I(v,2),C=P(S),w=e=>{var t=eJe();L(e=>K(t,`title`,e),[()=>mP()]),V(e,t)},T=e=>{var i=tJe(),a=P(i,!0);D(i),L((e,t)=>{i.disabled=!R(r),K(i,`aria-label`,e),H(a,t)},[()=>bP({header:R(t).header||n+1}),()=>_P()]),z(`click`,i,()=>c(n)),V(e,i)};U(C,e=>{R(t).managed?e(w):e(T,-1)}),D(S),D(i),L((e,n,i,a)=>{H(s,e),l.disabled=R(t).managed||!R(r),H(f,n),p.disabled=R(t).managed||!R(r),H(g,i),_.disabled=R(t).managed||!R(r),y.disabled=R(t).managed||!R(r),H(x,a)},[()=>nP(),()=>aP(),()=>cP(),()=>dP()]),ji(l,()=>R(t).header,e=>R(t).header=e),ji(p,()=>R(t).prefix,e=>R(t).prefix=e),ji(_,()=>R(t).delimiter,e=>R(t).delimiter=e),Mi(y,()=>R(t).do_not_pass,e=>R(t).do_not_pass=e),V(e,i)});var g=I(h,2),_=e=>{{let t=A(()=>CP());r3(e,{size:16,get label(){return R(t)}})}};U(g,e=>{R(i)&&e(_)});var v=I(g,2),y=e=>{var t=rJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>EP()]),V(e,t)};U(v,e=>{!R(i)&&R(n).length===0&&e(y)}),D(m);var b=I(m,2),x=P(b),S=P(x);q(S,{get icon(){return lX},class:`form-action-icon`});var C=I(S,2),w=P(C,!0);D(C),D(x);var T=I(x,2),ee=P(T);q(ee,{get icon(){return fX},class:`form-action-icon`});var E=I(ee,2),te=P(E,!0);D(E),D(T),D(b),D(f);var ne=I(f,2),re=P(ne),ie=e=>{var t=iJe(),n=P(t,!0);D(t),L(()=>H(n,R(o))),V(e,t)};U(re,e=>{R(o)&&e(ie)}),D(ne),L((e,t)=>{x.disabled=!R(r)||R(a)||R(i),H(w,e),T.disabled=!R(r)||R(a)||R(i),K(T,`aria-busy`,R(a)?`true`:`false`),H(te,t)},[()=>kP(),()=>MP()]),z(`click`,x,s),z(`click`,T,u),V(e,d),k()}xr([`click`]);function sJe(e){let t=e||{};if(t.selectedPreset)return{days:parseInt(t.selectedPreset,10)||30};let n=t.customStartDate?hZ(t.customStartDate):``,r=t.customEndDate||t.today||null;return{start_date:n,end_date:r?hZ(r):``}}function cJe(e,t,n,r){return{...sJe(e),user_path:String(t||``).trim(),selector:String(n||``).trim(),confirmation:r}}function lJe(e){let t=Number(e&&e.matched||0),n=Number(e&&e.recalculated||0),r=Number(e&&e.without_pricing||0),i=CI({matched:t,recalculated:n});return r>0&&(i+=` `+EI({count:r})),i}var uJe=B(`

                  `),dJe=B(`
                  `);function fJe(e,t){O(t,!0);let n=j(``),r=j(``),i=j(!1),a=A(()=>XX.booleanFlag(`USAGE_PRICING_RECALCULATION_ENABLED`,!1));function o(){if(!R(a)){oZ.error(dI());return}R(i)||eZ.open({title:cI(),titleId:`pricingRecalculateDialogTitle`,inputId:`pricing-recalculate-confirmation`,requiredText:mI(),confirmLabel:cI(),icon:YY,dialogClass:`pricing-recalculate-dialog`,message:_I(),onConfirm:()=>s()})}async function s(){if(!R(a)){oZ.error(dI());return}if(!R(i)){M(i,!0);try{let e=await JX(`/admin/usage/recalculate-pricing`,`POST`,cJe({selectedPreset:OZ.selectedPreset,customStartDate:OZ.customStartDate,customEndDate:OZ.customEndDate,today:HX.todayDate()},R(n),R(r),mI()),{label:`pricing recalculation`});if(e.stale)return;if(!e.ok){eZ.error=bI();return}eZ.close(),oZ.success(lJe(e.data)),NZ.fetchUsage()}catch(e){console.error(`Failed to recalculate pricing:`,e),eZ.error=bI()}finally{M(i,!1)}}}var c=Or(),l=F(c),u=e=>{var t=dJe(),s=P(t);{let e=e=>{var t=uJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>VF()]),V(e,t)},t=A(()=>WF()),n=A(()=>qF());s3(s,{copyId:`pricing-recalculate-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var c=I(s,2),l=P(c),u=P(l),d=P(u,!0);D(u);var f=I(u,2);FZ(P(f),{}),D(f),D(l);var p=I(l,2),m=P(p),h=P(m,!0);D(m);var g=I(m,2);wi(g),D(p);var _=I(p,2),v=P(_),y=P(v,!0);D(v);var b=I(v,2);wi(b),D(_),D(c);var x=I(c,2),S=P(x),C=P(S);q(C,{get icon(){return YY},class:`form-action-icon`});var w=I(C,2),T=P(w,!0);D(w),D(S),D(x),D(t),L((e,t,n,r,o)=>{H(d,e),H(h,t),H(y,n),K(b,`placeholder`,r),S.disabled=R(i)||!R(a),K(S,`aria-busy`,R(i)?`true`:`false`),H(T,o)},[()=>XF(),()=>$F(),()=>nI(),()=>aI(),()=>cI()]),ji(g,()=>R(n),e=>M(n,e)),ji(b,()=>R(r),e=>M(r,e)),z(`click`,S,o),V(e,t)};U(l,e=>{R(a)&&e(u)}),V(e,c),k()}xr([`click`]);function K9(e){return String(e&&e.status||`ok`).toLowerCase()}function q9(e){if(!e||typeof e!=`object`)return nF();let t=Number(e.model_count||0),n=Number(e.provider_count||0),r=K9(e);return mF({status:r===`ok`?aF():r===`partial`?cF():dF(),models:_F({count:t}),providers:bF({count:n})})}function pJe(e){return!!e&&K9(e)===`ok`}function J9(e){let t=e&&e.steps;return Array.isArray(t)?t:[]}function mJe(e){let t=String(e&&e.name||``).replace(/_/g,` `),n=String(e&&e.status||``).trim(),r=String(e&&(e.error||e.message)||``).trim();return t?r?t+`: `+n+` - `+r:t+`: `+n:r||n||``}var hJe=B(`

                  `),gJe=B(`
                • `),_Je=B(`
                    `),vJe=B(`
                    `,1);function yJe(e,t){O(t,!0);let n=j(!1),r=j(null);async function i(){if(!R(n)){M(n,!0),M(r,null);try{let e=await JX(`/admin/runtime/refresh`,`POST`,void 0,{label:`runtime refresh`});if(e.stale)return;if(!e.ok){oZ.error(dF());return}M(r,e.data&&typeof e.data==`object`?e.data:null,!0),pJe(R(r))?oZ.success(q9(R(r))):oZ.error(q9(R(r))),Y.refresh()}catch(e){console.error(`Failed to refresh runtime:`,e),oZ.error(dF())}finally{M(n,!1)}}}var a=vJe(),o=F(a),s=P(o);{let e=e=>{var t=hJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>WP()]),V(e,t)},t=A(()=>qP()),n=A(()=>XP());s3(s,{copyId:`runtime-refresh-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var c=I(s,2),l=P(c);let u;var d=P(l);q(d,{get icon(){return uX},class:`settings-refresh-icon`});var f=I(d,2),p=P(f,!0);D(f),D(l),D(c),D(o);var m=I(o,2),h=P(m),g=e=>{var t=_Je();W(t,21,()=>J9(R(r)),e=>e.name,(e,t)=>{var n=gJe(),r=P(n,!0);D(n),L(e=>{G(n,1,`runtime-refresh-step is-${R(t).status??``}`,`svelte-yeq2mp`),H(r,e)},[()=>mJe(R(t))]),V(e,n)}),D(t),V(e,t)},_=A(()=>J9(R(r)).length>0);U(h,e=>{R(_)&&e(g)}),D(m),L(e=>{u=G(l,1,`btn btn-primary btn-with-icon settings-refresh-btn`,null,u,{"is-refreshing":R(n)}),l.disabled=R(n),K(l,`aria-busy`,R(n)?`true`:`false`),H(p,e)},[()=>$P()]),z(`click`,l,i),V(e,a),k()}xr([`click`]);var bJe=B(``),xJe=B(`

                    `),SJe=B(`

                    `),CJe=B(``),wJe=B(`
                    `),TJe=B(`

                    `);function EJe(e,t){O(t,!0);let n=j(N([])),r=j(!1),i=j(``),a=j(``);async function o(){M(r,!0),M(a,``);try{let e=await qX(`/admin/runtime/settings`,{label:`runtime settings`});if(e.stale)return;if(!e.ok){M(a,EF(),!0);return}M(n,Array.isArray(e.data?.settings)?e.data.settings:[],!0)}catch(e){console.error(`Failed to load runtime settings:`,e),M(a,EF(),!0)}finally{M(r,!1)}}async function s(e,t,r){if(!(e.locked||R(i))){M(i,e.key,!0);try{let i=await JX(`/admin/runtime/settings/${encodeURIComponent(e.key)}`,`PUT`,{value:t},{label:`save ${e.label}`});if(i.stale){r.value=e.value;return}if(!i.ok){r.value=e.value,oZ.error(kF({setting:e.label}));return}M(n,R(n).map(t=>t.key===e.key?i.data:t),!0),oZ.success(MF({setting:e.label}))}catch(t){r.value=e.value,console.error(`Failed to save runtime setting:`,t),oZ.error(kF({setting:e.label}))}finally{M(i,``)}}}mn(()=>{Y.refreshTick,o()});var c=Or(),l=F(c),u=e=>{var t=TJe(),o=P(t),c=P(o),l=P(c,!0);D(c);var u=I(c,2),d=e=>{var t=bJe(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)};U(u,e=>{R(a)&&e(d)}),D(o);var f=I(o,2);W(f,21,()=>R(n),e=>e.key,(e,t)=>{var n=wJe(),r=P(n),a=P(r),o=P(a,!0);D(a);var c=I(a,2),l=e=>{var n=xJe(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(c,e=>{R(t).description&&e(l)});var u=I(c,2),d=e=>{var n=SJe(),r=P(n,!0);D(n),L(e=>H(r,e),[()=>FF({source:R(t).managed_by||RF()})]),V(e,n)};U(u,e=>{R(t).locked&&e(d)}),D(r);var f=I(r,2);W(f,21,()=>R(t).options||[],e=>e.value,(e,t)=>{var n=CJe(),r=P(n,!0);D(n);var i={};L(()=>{K(n,`title`,R(t).description||``),H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(f);var p;gi(f),D(n),L(()=>{K(a,`for`,`runtime-setting-${R(t).key}`),H(o,R(t).label),K(f,`id`,`runtime-setting-${R(t).key}`),f.disabled=R(t).locked||R(i)!==``,p!==(p=R(t).value)&&(f.value=(f.__value=R(t).value)??``,hi(f,R(t).value))}),z(`change`,f,e=>s(R(t),e.currentTarget.value,e.currentTarget)),V(e,n)}),D(f),D(t),L(e=>{H(l,e),K(f,`aria-busy`,R(r)?`true`:`false`)},[()=>CF()]),V(e,t)};U(l,e=>{(R(n).length>0||R(a))&&e(u)}),V(e,c),k()}xr([`change`]);var DJe=B(`
                    `);function OJe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`settings`&&(HX.ensureOptions(),XX.ensureLoaded())});var n=DJe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a),D(i),D(r);var s=I(r,2),c=P(s);Fqe(c,{});var l=I(c,2);Aqe(l,{});var u=I(l,2);Rqe(u,{});var d=I(u,2);qqe(d,{});var f=I(d,2);Yqe(f,{});var p=I(f,2);oJe(p,{});var m=I(p,2);EJe(m,{});var h=I(m,2);fJe(h,{}),yJe(I(h,2),{}),D(s);var g=I(s,2),_=P(g,!0);D(g),D(n),L((e,t)=>{H(o,e),H(_,t)},[()=>qoe(),()=>lEe()]),V(e,n),k()}var Y9=B(`
                    `),kJe=B(`
                     
                    `),AJe=B(`
                     
                    `),jJe=B(`
                     
                    `),MJe=B(`
                    `),NJe=B(`
                    `,1),PJe=B(`
                    `);function FJe(e,t){O(t,!0);let n=zi(t,`showPromptCache`,3,!0),r=U3({logPrefix:`Failed to copy interaction message:`}),i=A(()=>t.msg.role===`function_call`||t.msg.role===`function_result`);function a(e){return(Math.max(0,Math.min(1,Number(e||0)))*100).toFixed(1)+`%`}function o(e){let t=Math.max(0,Math.min(1,Number(e||0)));return t>0?spe({percent:Math.round(t*100)}):void 0}function s(e){return e.role===`function_call`?(e.toolCalls||[]).map(e=>e.name+`()`).join(`, `):(e.functionName?e.functionName+`: `:``)+e.text}var c=PJe();let l;var u=P(c),d=e=>{var r=kJe(),i=P(r),a=P(i),c=P(a,!0);D(a);var l=I(a,2),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d),D(i);var p=I(i,2),m=e=>{var n=Y9(),r=P(n);D(n),L(e=>H(r,`${e??``}: ${t.msg.functionCallID??``}`),[()=>Uo()]),V(e,n)};U(p,e=>{t.msg.functionCallID&&e(m)});var h=I(p,2),g=e=>{var n=Or();W(F(n),17,()=>t.msg.toolCalls,Ir,(e,n)=>{var r=Or(),i=F(r),a=e=>{var r=Y9(),i=P(r);D(r),L(e=>H(i,`${e??``}: ${R(n).id??``}`),[()=>t.msg.toolCalls.length>1?fpe({name:R(n).name}):Uo()]),V(e,r)};U(i,e=>{R(n).id&&e(a)}),V(e,r)}),V(e,n)};U(h,e=>{t.msg.role===`function_call`&&t.msg.toolCalls&&e(g)});var _=I(h,2),v=P(_,!0);D(_),D(r),L((e,n,i,a)=>{K(r,`title`,e),H(c,t.msg.roleLabel),H(u,n),H(f,i),H(v,a)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>s(t.msg),()=>HX.formatTimestamp(t.msg.timestamp),()=>J7(t.msg)]),V(e,r)},f=e=>{var r=NJe(),i=F(r),a=P(i),s=P(a,!0);D(a);var c=I(a,2),l=P(c,!0);D(c),D(i);var u=I(i,2),d=e=>{var r=AJe(),i=P(r,!0);D(r),L(e=>{K(r,`title`,e),H(i,t.msg.text)},[()=>n()?o(t.msg.promptCacheRatio):void 0]),V(e,r)};U(u,e=>{t.msg.text&&e(d)});var f=I(u,2),p=e=>{var n=MJe();W(n,23,()=>t.msg.toolCalls,(e,t)=>e.name+`-`+t,(e,t)=>{var n=jJe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(r);var c=I(r,2),l=e=>{var n=Y9(),r=P(n);D(n),L(e=>H(r,`${e??``}: ${R(t).id??``}`),[()=>Uo()]),V(e,n)};U(c,e=>{R(t).id&&e(l)});var u=I(c,2),d=P(u,!0);D(u),D(n),L((e,n)=>{H(a,R(t).name+`()`),H(s,e),H(d,n)},[()=>Y7(R(t))||Wo(),()=>Y7(R(t))||Wo()]),V(e,n)}),D(n),V(e,n)};U(f,e=>{t.msg.toolCalls&&e(p)}),L((e,n)=>{K(i,`title`,e),H(s,t.msg.roleLabel),H(l,n)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>HX.formatTimestamp(t.msg.timestamp)]),V(e,r)};U(u,e=>{R(i)?e(d):e(f,-1)});var p=I(u,2);let m;var h=P(p);{let e=A(()=>r.copied?$Y:tX);q(h,{get icon(){return R(e)},width:`14`,height:`14`})}D(p),D(c),L((e,n,a)=>{G(c,1,li([R(i)?`chat-function-note`:`chat-message`,t.msg.roleClass,{"is-anchor":t.msg.isAnchor,"is-after-anchor":t.msg.isAfterAnchor}]),`svelte-12s99s5`),K(c,`data-conversation-anchor`,t.msg.isAnchor?`true`:void 0),K(c,`data-entry-id`,t.msg.entryID),l=mi(c,``,l,e),m=G(p,1,`chat-message-copy svelte-12s99s5`,null,m,{"is-copied":r.copied}),K(p,`aria-label`,n),K(p,`title`,a)},[()=>({"--prompt-cache-fill":a(t.msg.promptCacheRatio),"--prompt-cache-visibility":n()&&t.msg.promptCacheRatio>0?`1`:`0`}),()=>r.copied?npe():Ho(),()=>r.copied?_pe():Ho()]),z(`click`,p,e=>{e.stopPropagation(),r.copy($Ue(t.msg))}),V(e,c),k()}xr([`click`]);function X9(e,t=0){let n=Math.max(0,Q9(e)-Math.max(0,Q9(t))),r=Math.min(320,Math.max(180,Math.floor(n*.58))),i=Math.min(360,Math.max(128,Math.floor(n*.35)));return{min:r,max:Math.max(r,n-i)}}function Z9(e,t,n=0){let r=X9(t,n),i=Q9(e)||520;return Math.min(r.max,Math.max(r.min,Math.round(i)))}function IJe(e,t,n=0){return Z9(Q9(t)-Q9(e),t,n)}function LJe(e,t,n,r){if(!Array.isArray(e)||e.length===0)return{index:-1,align:`start`};let i=Q9(t),a=0;e.forEach((e,t)=>{Q9(e)<=i+1&&(a=t)});let o=Number(r)<0?-1:1,s=Math.min(e.length-1,Math.max(0,a+o)),c=e.length-1,l=Q9(e[c])0&&s===c&&l?`end`:`start`}}function Q9(e){let t=Number(e);return Number.isFinite(t)?t:0}var RJe=B(`
                    `),zJe=B(`
                    `),$9=B(`

                    `),BJe=B(``),VJe=B(`
                    `,1),HJe=B(`

                    `),UJe=B(`
                    `),WJe=B(``),GJe=B(``),KJe=B(``);function qJe(e,t){O(t,!0);let n=X7,r=Number(Gi(`gomodel_interactions_panel_width`)),i=`gomodel_interactions_prompt_cache_fill`,a=Number.isFinite(r)&&r>0?r:520,o=j(N(a)),s=j(320),c=j(760),l=j(!1),u=j(!1),d=j(Gi(i,`true`)!==`false`),f=null;function p(e,{fullscreen:t,revealWithoutSlide:n=!1}){let r=q5(180);return t?rZ(e,{x:R(o),duration:r,easing:aZ}):n?{duration:0}:iZ(e,{axis:`x`,duration:r,easing:aZ})}async function m(e){if(e===R(l))return;let t=R(l)&&!e;M(u,t,!0),M(l,e,!0),t&&(await rr(),M(u,!1))}function h(){M(d,!R(d)),Ki(i,R(d))}function g(){return(document.querySelector(`.sidebar`)?.getBoundingClientRect().width||0)+(document.querySelector(`.sidebar-toggle`)?.getBoundingClientRect().width||0)}function _(){let e=g(),t=X9(window.innerWidth,e);M(s,t.min,!0),M(c,t.max,!0),M(o,Z9(a,window.innerWidth,e),!0)}function v(e){M(o,IJe(e,window.innerWidth,g()),!0),a=R(o)}function y(e){e.button===0&&(e.preventDefault(),f=e.pointerId,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`conversation-panel-resizing`),v(e.clientX))}function b(e){e.pointerId===f&&v(e.clientX)}function x(e){f===null||e.pointerId!==void 0&&e.pointerId!==f||(f=null,document.body.classList.remove(`conversation-panel-resizing`),Ki(`gomodel_interactions_panel_width`,a))}function S(e){e.key!==`ArrowLeft`&&e.key!==`ArrowRight`||(e.preventDefault(),a=R(o)+(e.key===`ArrowLeft`?24:-24),_(),a=R(o),Ki(`gomodel_interactions_panel_width`,a))}function C(e){let t=document.getElementById(`interactions-drawer-content`),r=n.conversationThreadEl;if(!t||!r)return;let i=[...r.querySelectorAll(`[data-conversation-message="true"]`)],a=t.getBoundingClientRect(),o=a.top+14,s=LJe(i.map(e=>e.getBoundingClientRect().top),o,a.bottom,e),c=i[s.index];if(!c)return;let l=s.align===`end`?t.scrollHeight:t.scrollTop+c.getBoundingClientRect().top-a.top-14;t.scrollTo({top:l,behavior:q5(1)>0?`smooth`:`auto`})}function w(){return[document.querySelector(`.sidebar`),document.querySelector(`.sidebar-toggle`),document.getElementById(`dashboard-content`)].filter(Boolean)}mn(()=>{if(!n.conversationOpen)return;_();let e=document.querySelector(`.sidebar`),t=new ResizeObserver(_);e&&t.observe(e);let r=e=>{e.key===`Escape`&&!Zi.anyOpen&&(R(l)?m(!1):n.closeConversation())};return window.addEventListener(`keydown`,r),window.addEventListener(`resize`,_),()=>{x({}),t.disconnect(),window.removeEventListener(`keydown`,r),window.removeEventListener(`resize`,_)}}),mn(()=>{n.conversationOpen||M(l,!1)}),mn(()=>{if(!R(l))return;let e=w().map(e=>({element:e,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}));return e.forEach(({element:e})=>{e.inert=!0,e.setAttribute(`aria-hidden`,`true`)}),()=>{e.forEach(({element:e,inert:t,ariaHidden:n})=>{e.inert=t,n===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,n)})}}),mn(()=>{CX.page!==`audit-logs`&&n.conversationOpen&&n.closeConversation()});var T=Or(),ee=F(T),E=e=>{var t=Or();W(F(t),16,()=>[R(l)],e=>e,(e,t)=>{var r=KJe();let i,a;var l=P(r),f=I(l,2),g=P(f),_=P(g),v=P(_,!0);D(_);var w=I(_,2),T=P(w);let ee;D(w),D(g);var E=I(g,2),te=P(E),ne=P(te);{let e=A(()=>t?VTe:sX);q(ne,{get icon(){return R(e)},class:`table-icon-svg`})}D(te);var re=I(te,2);{let e=A(()=>Sde());ZX(re,{get label(){return R(e)},onclick:()=>n.closeConversation(),get el(){return n.conversationCloseBtnEl},set el(e){n.conversationCloseBtnEl=e}})}D(E),D(f);var ie=I(f,2),ae=P(ie),oe=e=>{var t=RJe(),n=P(t);q(P(n),{get icon(){return ETe},width:`14`,height:`14`}),D(n);var r=I(n,2);q(P(r),{get icon(){return CTe},width:`14`,height:`14`}),D(r),D(t),L((e,i,a,o,s)=>{K(t,`aria-label`,e),K(n,`aria-label`,i),K(n,`title`,a),K(r,`aria-label`,o),K(r,`title`,s)},[()=>Tde(),()=>Bo(),()=>Bo(),()=>Vo(),()=>Vo()]),z(`click`,n,()=>C(-1)),z(`click`,r,()=>C(1)),V(e,t)};U(ae,e=>{n.conversationMessages.length>1&&e(oe)});var se=I(ae,2),ce=e=>{var t=zJe(),r=P(t,!0);D(t),L(()=>H(r,n.conversationError)),V(e,t)};U(se,e=>{n.conversationError&&e(ce)});var le=I(se,2),ue=e=>{var t=$9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mde()]),V(e,t)};U(le,e=>{n.conversationLoading&&e(ue)});var de=I(le,2),fe=e=>{var t=$9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Fde()]),V(e,t)},pe=A(()=>!n.conversationLoading&&!n.followUpSending&&!n.conversationError&&n.conversationMessages.length===0&&!n.conversationLiveWaiting());U(de,e=>{R(pe)&&e(fe)});var me=I(de,2),he=e=>{var t=VJe(),r=F(t),i=e=>{var t=BJe(),n=P(t);let r;var i=I(n,2),a=P(i),o=I(a),s=P(o,!0);D(o),D(i),D(t),L((e,i,o)=>{K(t,`aria-checked`,R(d)),K(t,`title`,e),r=G(n,1,`conversation-cache-switch svelte-ssrzja`,null,r,{"is-active":R(d)}),H(a,`${i??``} `),H(s,o)},[()=>R(d)?Rde():Vde(),()=>Wde(),()=>qde()]),z(`click`,t,h),V(e,t)},a=A(()=>n.conversationMessages.some(e=>Number(e.promptCacheRatio||0)>0));U(r,e=>{R(a)&&e(i)});var o=I(r,2);W(o,21,()=>n.conversationMessages,e=>e.uid,(e,t)=>{FJe(e,{get msg(){return R(t)},get showPromptCache(){return R(d)}})}),D(o),Ii(o,e=>n.conversationThreadEl=e,()=>n?.conversationThreadEl),V(e,t)};U(me,e=>{n.conversationMessages.length>0&&e(he)});var ge=I(me,2),_e=e=>{var t=HJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Xde()]),V(e,t)};U(ge,e=>{n.conversationTruncated&&e(_e)});var ve=I(ge,2),ye=e=>{var t=UJe(),r=I(P(t),2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>n.conversationLiveStatusText()]),V(e,t)},be=A(()=>n.conversationLiveWaiting());U(ve,e=>{R(be)&&e(ye)}),D(ie);var xe=I(ie,2),Se=e=>{var t=GJe(),r=P(t),i=P(r);at(i);var a=I(i,2),o=e=>{var t=WJe(),r=P(t,!0);D(t),L(()=>H(r,n.followUpError)),V(e,t)};U(a,e=>{n.followUpError&&e(o)});var s=I(a,2),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u),D(s),D(r),D(t),L((e,t,n,r,a,o)=>{K(i,`aria-label`,e),K(i,`placeholder`,t),i.disabled=n,H(l,r),u.disabled=a,H(d,o)},[()=>$de(),()=>nfe(),()=>n.followUpSending||n.conversationLiveWaiting(),()=>n.selectedConversationEntry()?.path||``,()=>!n.canSendFollowUp(),()=>n.followUpSending?cse():ase()]),br(`submit`,r,e=>{e.preventDefault(),n.sendFollowUp()}),ji(i,()=>n.followUpText,e=>n.followUpText=e),V(e,t)},Ce=A(()=>n.conversationAnchorID&&n.followUpKind());U(xe,e=>{R(Ce)&&e(Se)}),D(r),Ii(r,e=>n.conversationDialogEl=e,()=>n?.conversationDialogEl),L((e,u,d,f,p,m)=>{i=G(r,1,`conversation-drawer svelte-ssrzja`,null,i,{"conversation-drawer-fullscreen":t}),K(r,`role`,t?`dialog`:void 0),K(r,`aria-modal`,t?`true`:void 0),a=mi(r,``,a,{"--conversation-panel-width":R(o)+`px`}),K(l,`aria-label`,e),K(l,`aria-valuemin`,R(s)),K(l,`aria-valuemax`,R(c)),K(l,`aria-valuenow`,R(o)),H(v,u),K(w,`aria-label`,d),K(w,`title`,f),ee=G(T,1,`live-dot`,null,ee,{"is-streaming":n.conversationFollowLatest}),K(te,`aria-label`,p),K(te,`title`,m),K(te,`aria-pressed`,t)},[()=>Kue(),()=>Yue(),()=>n.conversationFollowLatest?Que():tde(),()=>n.conversationFollowLatest?ide():sde(),()=>t?ude():pde(),()=>t?gde():yde()]),z(`pointerdown`,l,y),z(`pointermove`,l,b),z(`pointerup`,l,x),br(`pointercancel`,l,x),br(`lostpointercapture`,l,x),z(`keydown`,l,S),z(`click`,te,()=>m(!t)),ai(7,r,()=>p,()=>({fullscreen:t,revealWithoutSlide:!t&&R(u)})),V(e,r)}),V(e,t)};U(ee,e=>{n.conversationOpen&&e(E)}),V(e,T),k()}xr([`pointerdown`,`pointermove`,`pointerup`,`keydown`,`click`]);var JJe=B(`
                    `,1);function YJe(e,t){O(t,!0);let n={overview:l3,usage:PIe,budgets:jLe,"rate-limits":mRe,models:FBe,workflows:oHe,"audit-logs":JWe,guardrails:EGe,"mcp-servers":nKe,"providers-config":JKe,"auth-keys":Dqe,settings:OJe};nDe(),HX.init(),OZ.init(),Y.init(),Yi.init(),Xi.init(),CX.init(),mn(()=>{Y.refreshTick,XX.fetch(),kZ.fetchModels(),kZ.fetchCategories()}),mn(()=>{document.body.classList.toggle(`dashboard-modal-open`,Zi.anyOpen)});let r=A(()=>n[CX.page]||l3);var i=JJe(),a=F(i);EEe(a,{});var o=I(a,2);let s;var c=P(o);JEe(c,{}),qr(I(c,2),()=>R(r),(e,t)=>{t(e,{})}),D(o);var l=I(o,2);qJe(l,{});var u=I(l,2);PEe(u,{});var d=I(u,2);REe(d,{}),KEe(I(d,2),{}),L(()=>s=G(o,1,`content`,null,s,{"interactions-open":X7.conversationOpen})),V(e,i),k()}jr(YJe,{target:document.getElementById(`app`)}); \ No newline at end of file diff --git a/internal/admin/dashboard/static/dist/index.html b/internal/admin/dashboard/static/dist/index.html index fa1a5d1db..219229fed 100644 --- a/internal/admin/dashboard/static/dist/index.html +++ b/internal/admin/dashboard/static/dist/index.html @@ -7,8 +7,8 @@ GoModel Dashboard - - + +
                    diff --git a/web/dashboard/src/pages/audit-logs/AuditEntryRow.svelte b/web/dashboard/src/pages/audit-logs/AuditEntryRow.svelte index 1326463af..148cfef6f 100644 --- a/web/dashboard/src/pages/audit-logs/AuditEntryRow.svelte +++ b/web/dashboard/src/pages/audit-logs/AuditEntryRow.svelte @@ -23,6 +23,7 @@ import { auditList } from "./auditList.svelte.js"; import { auditWorkflows } from "./audit-workflows.svelte.js"; import { conversationDrawer } from "./conversationDrawer.svelte.js"; + import { usagePage } from "../usage/usage.svelte.js"; import { extractRequestPromptTextSegments } from "./conversation-helpers.js"; import { auditPanes } from "./audit-logic.js"; @@ -62,7 +63,16 @@ class:audit-entry-interactions-open={interactionsOpen} open > - + usagePage.filterBySession(entry.session_id, entry.user_path) + : null} + /> {#if expanded}
                    stays open so the close can animate) and the state lives in // auditList. @@ -24,6 +24,7 @@ thread = null, expanded = false, onactivate = null, + onusage = null, hidePath = false, } = $props(); @@ -50,10 +51,10 @@ thread.ontoggle(); } - function openThreadUsage(event) { + function openSessionUsage(event) { event.stopPropagation(); event.preventDefault(); - thread.onusage?.(); + onusage?.(); } function threadDescription() { @@ -100,14 +101,16 @@ /> {thread.count} + {/if} + {#if onusage} {/if} auditList.toggleThread(entry), - onusage: () => usagePage.filterBySession(sessionId, entry.user_path), }} /> {#if expanded} From a965c789bdd184dd0219f1ca7728f028c6aaee0d Mon Sep 17 00:00:00 2001 From: "Jakub A. W" Date: Sat, 15 Aug 2026 19:29:11 +0200 Subject: [PATCH 3/7] fix(dashboard): clear session filter from input --- .../static/dist/assets/index-CU2D6ITS.js | 36 ++++++++++++ .../static/dist/assets/index-CYbzNV3I.js | 36 ------------ ...{index-BvA7IwHw.css => index-ELPJycWb.css} | 2 +- .../admin/dashboard/static/dist/index.html | 4 +- web/dashboard/messages/en.json | 1 - web/dashboard/messages/pl.json | 1 - .../components/molecules/FilterInput.svelte | 57 ++++++++++++++++++- .../src/pages/usage/FacetFilters.svelte | 33 ++--------- 8 files changed, 98 insertions(+), 72 deletions(-) create mode 100644 internal/admin/dashboard/static/dist/assets/index-CU2D6ITS.js delete mode 100644 internal/admin/dashboard/static/dist/assets/index-CYbzNV3I.js rename internal/admin/dashboard/static/dist/assets/{index-BvA7IwHw.css => index-ELPJycWb.css} (53%) diff --git a/internal/admin/dashboard/static/dist/assets/index-CU2D6ITS.js b/internal/admin/dashboard/static/dist/assets/index-CU2D6ITS.js new file mode 100644 index 000000000..e98cd3367 --- /dev/null +++ b/internal/admin/dashboard/static/dist/assets/index-CU2D6ITS.js @@ -0,0 +1,36 @@ +(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible;function d(e){return typeof e==`function`}var f=()=>{};function p(e){for(var t=0;t{e=n,t=r}),resolve:e,reject:t}}function h(e,t,n=!1){return e===void 0?n?t():t:e}function g(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var _=1<<24,v=1024,y=2048,b=4096,x=8192,S=16384,C=32768,w=1<<25,T=65536,ee=1<<19,E=1<<20,te=1<<25,ne=65536,re=1<<21,ie=1<<22,ae=1<<23,oe=Symbol(`$state`),se=Symbol(`legacy props`),ce=Symbol(``),le=Symbol(`attributes`),ue=Symbol(`class`),de=Symbol(`style`),fe=Symbol(`text`),pe=Symbol(`form reset`),me=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},he=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function ge(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function _e(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function ve(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function ye(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function be(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function xe(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Se(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function Ce(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function we(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Te(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Ee(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var De={},Oe=Symbol(`uninitialized`),ke=`http://www.w3.org/1999/xhtml`,Ae=`http://www.w3.org/2000/svg`,je=`http://www.w3.org/1998/Math/MathML`;function Me(){console.warn(`https://svelte.dev/e/derived_inert`)}function Ne(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Pe(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Fe(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var Ie=!1;function Le(e){Ie=e}var Re;function ze(e){if(e===null)throw Ne(),De;return Re=e}function Be(){return ze(an(Re))}function D(e){if(Ie){if(an(Re)!==null)throw Ne(),De;Re=e}}function Ve(e=1){if(Ie){for(var t=e,n=Re;t--;)n=an(n);Re=n}}function He(e=!0){for(var t=0,n=Re;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=an(n);e&&n.remove(),n=i}}function Ue(e){if(!e||e.nodeType!==8)throw Ne(),De;return e.data}function We(e){return e===this.v}function eee(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ge(e){return!eee(e,this.v)}var Ke=null;function qe(e){Ke=e}function O(e,t=!1,n){Ke={p:Ke,i:!1,c:null,e:null,s:e,x:null,r:Bn,l:null}}function k(e){var t=Ke,n=t.e;if(n!==null){t.e=null;for(var r of n)gn(r)}return e!==void 0&&(t.x=e),t.i=!0,Ke=t.p,e??{}}function Je(){return!0}var Ye=[];function Xe(){var e=Ye;Ye=[],p(e)}function Ze(e){if(Ye.length===0&&!kt){var t=Ye;queueMicrotask(()=>{t===Ye&&Xe()})}Ye.push(e)}function tee(){for(;Ye.length>0;)Xe()}function Qe(e){var t=Bn;if(t===null)return Ln.f|=ae,e;if(!(t.f&32768)&&!(t.f&4))throw e;$e(e,t)}function $e(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}var nee=~(y|b|v);function et(e,t){e.f=e.f&nee|t}function tt(e){e.f&512||e.deps===null?et(e,v):et(e,b)}function nt(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=ne,nt(t.deps))}function rt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),nt(e.deps),et(e,v)}var it=!1;function ree(e){var t=it;try{return it=!1,[e(),it]}finally{it=t}}function iee(e,t){if(t){let t=document.body;e.autofocus=!0,Ze(()=>{document.activeElement===t&&e.focus()})}}function at(e){Ie&&rn(e)!==null&&on(e)}var ot=!1;function st(){ot||(ot=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[pe]?.()})},{capture:!0}))}function ct(e){var t=Ln,n=Bn;zn(null),Vn(null);try{return e()}finally{zn(t),Vn(n)}}function lt(e,t,n,r=n){e.addEventListener(t,()=>ct(n));let i=e[pe];i?e[pe]=()=>{i(),r(!0)}:e[pe]=()=>r(!0),st()}function ut(e){let t=0,n=Gt(0),r;return()=>{pn()&&(L(n),yn(()=>(t===0&&(r=sr(()=>e(()=>Jt(n)))),t+=1,()=>{Ze(()=>{--t,t===0&&(r?.(),r=void 0,Jt(n))})})))}}var dt=T|ee;function ft(e,t,n,r){new aee(e,t,n,r)}var aee=class{parent;is_pending=!1;transform_error;#e;#t=Ie?Re:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=ut(()=>(this.#m=Gt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=Bn;t.b=this,t.f|=128,n(e)},this.parent=Bn.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=bn(()=>{if(Ie){let e=this.#t;Be();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},dt),Ie&&(this.#e=Re)}#g(){try{this.#a=Sn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Sn(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Sn(()=>e(this.#e)),Ze(()=>{var e=this.#c=document.createDocumentFragment(),t=nn();e.append(t),this.#a=this.#x(()=>Sn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,On(this.#o,()=>{this.#o=null}),this.#b(Tt))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Sn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Mn(this.#a,e);let t=this.#n.pending;this.#o=Sn(()=>t(this.#e))}else this.#b(Tt)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){rt(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=Bn,n=Ln,r=Ke;Vn(this.#i),zn(this.#i),qe(this.#i.ctx);try{return Ft.ensure(),e()}catch(e){return Qe(e),null}finally{Vn(t),zn(n),qe(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&On(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,Ze(()=>{this.#d=!1,this.#m&&qt(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),L(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;Tt?.is_fork?(this.#a&&Tt.skip_effect(this.#a),this.#o&&Tt.skip_effect(this.#o),this.#s&&Tt.skip_effect(this.#s),Tt.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(Tn(this.#a),null),this.#o&&=(Tn(this.#o),null),this.#s&&=(Tn(this.#s),null),Ie&&(ze(this.#t),Ve(),ze(He()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Fe();return}r=!0,i&&Ee(),this.#s!==null&&On(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){$e(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Sn(()=>{var t=Bn;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return $e(e,this.#i.parent),null}}))};Ze(()=>{var t;try{t=this.transform_error(e)}catch(e){$e(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>$e(e,this.#i&&this.#i.parent)):o(t)})}};function pt(e,t,n,r){let i=Je()?gt:yt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=Bn,c=oee(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){$e(e,s)}mt()}}var d=ht();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>vt(e))).then(u).catch(e=>$e(e,s)).finally(d)}l?l.then(()=>{c(),f(),mt()}):f()}function oee(){var e=Bn,t=Ln,n=Ke,r=Tt;return function(i=!0){Vn(e),zn(t),qe(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function mt(e=!0){Vn(null),zn(null),qe(null),e&&Tt?.deactivate()}function ht(){var e=Bn,t=e.b,n=Tt,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function gt(e){var t=2|y;return Bn!==null&&(Bn.f|=ee),{ctx:Ke,deps:null,effects:null,equals:We,f:t,fn:e,reactions:null,rv:0,v:Oe,wv:0,parent:Bn,ac:null}}var _t=Symbol(`obsolete`);function vt(e,t,n){let r=Bn;r===null&&ge();var i=void 0,a=Gt(Oe),o=!Ln,s=new Set;return hee(()=>{var t=Bn,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==me&&n.reject(e)}).finally(mt)}catch(e){n.reject(e),mt()}var c=Tt;if(o){if(t.f&32768)var l=ht();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(_t);else for(let e of s.values())e.reject(_t);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==_t&&(c.activate(),t?(a.f|=ae,qt(a,t)):(a.f&8388608&&(a.f^=ae),qt(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),mn(()=>{for(let e of s)e.reject(_t)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function A(e){let t=gt(e);return Un(t),t}function yt(e){let t=gt(e);return t.equals=Ge,t}function bt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n{t.ac.abort(me),t.ac=null}),t.fn!==null&&(t.teardown=f),nr(t,0),wn(t))}function Ct(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&rr(t)}var wt=null,Tt=null,Et=null,Dt=null,Ot=null,kt=!1,At=!1,jt=null,Mt=null,Nt=0,Pt=1,Ft=class e{id=Pt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){wt===null?wt=this:(wt.#n=this,this.#t=wt),wt=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)et(r,y),t(r);for(r of n.m)et(r,b),t(r)}this.#p.add(e)}#g(){this.#e=!0,Nt++>1e3&&(this.#x(),lee());for(let e of this.#u)this.#d.delete(e),et(e,y),this.schedule(e);for(let e of this.#d)et(e,b),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=jt=[],r=[],i=Mt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw Vt(e),this.#h()||this.discard(),t}if(Tt=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(jt=null,Mt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Bt(e,t);i.length>0&&Tt.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),Et=this,Lt(r),Lt(n),Et=null,this.#s?.resolve();var s=Tt;if(this.#a===0&&(this.#c.length===0||s!==null)&&this.#x(),this.#c.length>0)if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this;s!==null&&s.#g()}#_(e,t,n){e.f^=v;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=v:i&4?t.push(r):Qn(r)&&(i&16&&this.#d.add(r),rr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),et(i,y),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),Tt=this,this.#g()}#b(e){for(var t=0;t{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=m()).promise}static ensure(){if(Tt===null){let t=Tt=new e;!At&&!kt&&Ze(()=>{t.#e||t.flush()})}return Tt}apply(){Dt=null}schedule(e){if(Ot=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(jt!==null&&t===Bn&&(Ln===null||!(Ln.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=v}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?wt=e:t.#t=e,this.linked=!1}}};function cee(e){var t=kt;kt=!0;try{var n;for(e&&(Tt!==null&&!Tt.is_fork&&Tt.flush(),n=e());;){if(tee(),Tt===null)return n;Tt.flush()}}finally{kt=t}}function lee(){try{xe()}catch(e){$e(e,Ot)}}var It=null;function Lt(e){var t=e.length;if(t!==0){for(var n=0;n0)){Ut.clear();for(let e of It){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)It.has(n)&&(It.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||rr(n)}}It.clear()}}It=null}}function uee(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?uee(i,t,n,r):e&4194320&&!(e&2048)&&Rt(i,t,r)&&(et(i,y),zt(i))}}function Rt(e,t,r){let i=r.get(e);if(i!==void 0)return i;if(e.deps!==null)for(let i of e.deps){if(n.call(t,i))return!0;if(i.f&2&&Rt(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function zt(e){Tt.schedule(e)}function Bt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),et(e,v);for(var n=e.first;n!==null;)Bt(n,t),n=n.next}}function Vt(e){et(e,v);for(var t=e.first;t!==null;)Vt(t),t=t.next}var Ht=new Set,Ut=new Map,Wt=!1;function Gt(e,t){return{f:0,v:e,reactions:null,equals:We,rv:0,wv:0}}function j(e,t){let n=Gt(e,t);return Un(n),n}function Kt(e,t=!1,n=!0){let r=Gt(e);return t||(r.equals=Ge),r}function M(e,t,n=!1){return Ln!==null&&(!Rn||Ln.f&131072)&&Je()&&Ln.f&4325394&&(Hn===null||!Hn.has(e))&&Te(),qt(e,n?Xt(t):t,Mt)}function qt(e,t,n=null){if(!e.equals(t)){Ut.set(e,Fn?t:e.v);var r=Ft.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&xt(t),Dt===null&&tt(t)}e.wv=Zn(),Yt(e,y,n),Je()&&Bn!==null&&Bn.f&1024&&!(Bn.f&96)&&(Kn===null?_ee([e]):Kn.push(e)),!r.is_fork&&Ht.size>0&&!Wt&&dee()}return t}function dee(){Wt=!1;for(let e of Ht){e.f&1024&&et(e,b);let t;try{t=Qn(e)}catch{t=!0}t&&rr(e)}Ht.clear()}function Jt(e){M(e,e.v+1)}function Yt(e,t,n){var r=e.reactions;if(r!==null)for(var i=Je(),a=r.length,o=0;o{if(Yn===d)return e();var t=Ln,n=Yn;zn(null),Xn(d);var r=e();return zn(t),Xn(n),r};return i&&r.set(`length`,j(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&Ce();var i=r.get(t);return i===void 0?f(()=>{var e=j(n.value,u);return r.set(t,e),e}):M(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>j(Oe,u));r.set(t,e),Jt(o)}}else M(n,Oe),Jt(o);return!0},get(e,n,i){if(n===oe)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>j(Xt(s?e[n]:Oe),u)),r.set(n,o)),o!==void 0){var c=L(o);return c===Oe?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=L(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==Oe)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===oe)return!0;var n=r.get(t),i=n!==void 0&&n.v!==Oe||Reflect.has(e,t);return(n!==void 0||Bn!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>j(i?Xt(e[t]):Oe,u)),r.set(t,n)),L(n)===Oe)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;dj(Oe,u)),r.set(d+``,p)):M(p,Oe)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>j(void 0,u)),M(c,Xt(n)),r.set(t,c));else{l=c.v!==Oe;var m=f(()=>Xt(n));M(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&M(g,_+1)}Jt(o)}return!0},ownKeys(e){L(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==Oe});for(var[n,i]of r)i.v!==Oe&&!(n in e)&&t.push(n);return t},setPrototypeOf(){we()}})}function Zt(e){try{if(typeof e==`object`&&e&&oe in e)return e[oe]}catch{}return e}function fee(e,t){return Object.is(Zt(e),Zt(t))}var Qt,$t,en,tn;function pee(){if(Qt===void 0){Qt=window,$t=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;en=a(t,`firstChild`).get,tn=a(t,`nextSibling`).get,u(e)&&(e[ue]=void 0,e[le]=null,e[de]=void 0,e.__e=void 0),u(n)&&(n[fe]=void 0)}}function nn(e=``){return document.createTextNode(e)}function rn(e){return en.call(e)}function an(e){return tn.call(e)}function N(e,t){if(!Ie)return rn(e);var n=rn(Re);if(n===null)n=Re.appendChild(nn());else if(t&&n.nodeType!==3){var r=nn();return n?.before(r),ze(r),r}return t&&ln(n),ze(n),n}function P(e,t=!1){if(!Ie){var n=rn(e);return n instanceof Comment&&n.data===``?an(n):n}if(t){if(Re?.nodeType!==3){var r=nn();return Re?.before(r),ze(r),r}ln(Re)}return Re}function F(e,t=1,n=!1){let r=Ie?Re:e;for(var i;t--;)i=r,r=an(r);if(!Ie)return r;if(n){if(r?.nodeType!==3){var a=nn();return r===null?i?.after(a):r.before(a),ze(a),a}ln(r)}return ze(r),r}function on(e){e.textContent=``}function sn(){return!1}function cn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function ln(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function un(e){Bn===null&&(Ln===null&&be(e),ye()),Fn&&ve(e)}function dn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function fn(e,t){var n=Bn;n!==null&&n.f&8192&&(e|=x);var r={ctx:Ke,deps:null,nodes:null,f:e|y|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};Tt?.register_created_effect(r);var i=r;if(e&4)jt===null?Ft.ensure().schedule(r):jt.push(r);else if(t!==null){try{rr(r)}catch(e){throw Tn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=T))}if(i!==null&&(i.parent=n,n!==null&&dn(i,n),Ln!==null&&Ln.f&2&&!(e&64))){var a=Ln;(a.effects??=[]).push(i)}return r}function pn(){return Ln!==null&&!Rn}function mn(e){let t=fn(8,null);return et(t,v),t.teardown=e,t}function hn(e){un(`$effect`);var t=Bn.f;if(!Ln&&t&32&&Ke!==null&&!Ke.i){var n=Ke;(n.e??=[]).push(e)}else return gn(e)}function gn(e){return fn(4|E,e)}function _n(e){Ft.ensure();let t=fn(64|ee,e);return()=>{Tn(t)}}function mee(e){Ft.ensure();let t=fn(64|ee,e);return(e={})=>new Promise(n=>{e.outro?On(t,()=>{Tn(t),n(void 0)}):(Tn(t),n(void 0))})}function vn(e){return fn(4,e)}function hee(e){return fn(ie|ee,e)}function yn(e,t=0){return fn(8|t,e)}function I(e,t=[],n=[],r=[]){pt(r,t,n,t=>{fn(8,()=>{e(...t.map(L))})})}function bn(e,t=0){return fn(16|t,e)}function xn(e,t=0){return fn(_|t,e)}function Sn(e){return fn(32|ee,e)}function Cn(e){var t=e.teardown;if(t!==null){let e=Fn,n=Ln;In(!0),zn(null);try{t.call(null)}finally{In(e),zn(n)}}}function wn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&ct(()=>{e.abort(me)});var r=n.next;n.f&64?n.parent=null:Tn(n,t),n=r}}function gee(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Tn(t),t=n}}function Tn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(En(e.nodes.start,e.nodes.end),n=!0),e.f|=w,wn(e,t&&!n),nr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Cn(e),e.f^=w,e.f|=S;var i=e.parent;i!==null&&i.first!==null&&Dn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function En(e,t){for(;e!==null;){var n=e===t?null:an(e);e.remove(),e=n}}function Dn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function On(e,t,n=!0){var r=[];kn(e,r,!0);var i=()=>{n&&Tn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function kn(e,t,n){if(!(e.f&8192)){e.f^=x;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;kn(i,t,o?n:!1)}i=a}}}function An(e){jn(e,!0)}function jn(e,t){if(e.f&8192){e.f^=x,e.f&1024||(et(e,y),Ft.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;jn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Mn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:an(n);t.append(n),n=i}}var Nn=null,Pn=!1,Fn=!1;function In(e){Fn=e}var Ln=null,Rn=!1;function zn(e){Ln=e}var Bn=null;function Vn(e){Bn=e}var Hn=null;function Un(e){Ln!==null&&(Hn??=new Set).add(e)}var Wn=null,Gn=0,Kn=null;function _ee(e){Kn=e}var qn=1,Jn=0,Yn=Jn;function Xn(e){Yn=e}function Zn(){return++qn}function Qn(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~ne),t&4096){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}t&512&&Dt===null&&et(e,v)}return!1}function $n(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Hn!==null&&Hn.has(e)))for(var i=0;i{e.ac.abort(me)}),e.ac=null);try{e.f|=re;var u=e.fn,d=u();e.f|=C;var f=e.deps,p=Tt?.is_fork;if(Wn!==null){var m;if(p||nr(e,Gn),f!==null&&Gn>0)for(f.length=Gn+Wn.length,m=0;m{s.ac.abort(me),s.ac=null,et(s,y)}),see(s),nr(s,0)}}function nr(e,t){var n=e.deps;if(n!==null)for(var r=t;rn?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?Ze(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function xr(e,t,n,r,i){var a={capture:r,passive:i},o=br(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&mn(()=>{t.removeEventListener(e,o,a)})}function R(e,t,n){(t[_r]??={})[e]=n}function Sr(e){for(var t=0;t{throw e});throw p}}finally{e[_r]=t,delete e.currentTarget,zn(d),Vn(f)}}}var yee=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function bee(e){return yee?.createHTML(e)??e}function Tr(e){var t=cn(`template`);return t.innerHTML=bee(e.replaceAll(``,``)),t.content}function Er(e,t){var n=Bn;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function z(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(``);return()=>{if(Ie)return Er(Re,null),Re;i===void 0&&(i=Tr(a?e:``+e),n||(i=rn(i)));var t=r||$t?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=rn(t),s=t.lastChild;Er(o,s)}else Er(t,t);return t}}function xee(e,t,n=`svg`){var r=!e.startsWith(``),i=(t&1)!=0,a=`<${n}>${r?e:``+e}`,o;return()=>{if(Ie)return Er(Re,null),Re;if(!o){var e=rn(Tr(a));if(i)for(o=document.createDocumentFragment();rn(e);)o.appendChild(rn(e));else o=rn(e)}var t=o.cloneNode(!0);if(i){var n=rn(t),r=t.lastChild;Er(n,r)}else Er(t,t);return t}}function Dr(e,t){return xee(e,t,`svg`)}function Or(e=``){if(!Ie){var t=nn(e+``);return Er(t,t),t}var n=Re;return n.nodeType===3?ln(n):(n.before(n=nn()),ze(n)),Er(n,n),n}function kr(){if(Ie)return Er(Re,null),Re;var e=document.createDocumentFragment(),t=document.createComment(``),n=nn();return e.append(t,n),Er(t,n),e}function B(e,t){if(Ie){var n=Bn;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=Re),Be();return}e!==null&&e.before(t)}var Ar=!0;function jr(e){Ar=e}function V(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[fe]??=e.nodeValue)&&(e[fe]=n,e.nodeValue=`${n}`)}function Mr(e,t){return Pr(e,t)}var Nr=new Map;function Pr(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){pee();var l=void 0,u=mee(()=>{var u=n??t.appendChild(nn());ft(u,{pending:()=>{}},t=>{O({});var n=Ke;if(o&&(n.c=o),a&&(i.$$events=a),Ie&&Er(t,null),Ar=s,l=e(t,i)||{},Ar=!0,Ie&&(Bn.nodes.end=Re,Re===null||Re.nodeType!==8||Re.data!==`]`))throw Ne(),De;k()},c);var d=new Set,f=e=>{for(var n=0;n{for(var e of d)for(let n of[t,document]){var r=Nr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,wr),r.delete(e),r.size===0&&Nr.delete(n)):r.set(e,i)}yr.delete(f),u!==n&&u.parentNode?.removeChild(u)}});return Fr.set(l,u),l}var Fr=new WeakMap,Ir=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)An(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(An(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Tn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Mn(r,t),t.append(nn()),this.#n.set(e,{effect:r,fragment:t})}else Tn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),On(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Tn(n.effect),this.#n.delete(e))};ensure(e,t){var n=Tt,r=sn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=nn();i.append(a),this.#n.set(e,{effect:Sn(()=>t(a)),fragment:i})}else this.#t.set(e,Sn(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else Ie&&(this.anchor=Re),this.#a(n)}};function H(e,t,n=!1){var r;Ie&&(r=Re,Be());var i=new Ir(e),a=n?T:0;function o(e,t){if(Ie){var n=Ue(r);if(e!==parseInt(n.substring(1))){var a=He();ze(a),i.anchor=a,Le(!1),i.ensure(e,t),Le(!0);return}}i.ensure(e,t)}bn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Lr(e,t){return t}function Rr(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;zr(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=i.length===0&&n!==null;if(l){var u=n,d=u.parentNode;on(d),d.append(u),e.items.clear()}zr(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function zr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,Hr(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=te,Wr(d,null,c)):An(d):On(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:bn(()=>{p=L(f);var e=p.length;let t=!1;Ie&&Ue(c)===`[!`!=(e===0)&&(c=He(),ze(c),Le(!1),t=!0);for(var r=new Set,u=Tt,v=sn(),y=0;ys(c)):(d=Sn(()=>s(Br??=nn())),d.f|=te)),e>r.size&&_e(``,``,``),Ie&&e>0&&ze(He()),!h)if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&Le(!0),L(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,Ie&&(c=Re)}function Vr(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function Hr(e,t,n,i,a){var o=(i&8)!=0,s=t.length,c=e.items,l=Vr(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v0){var ee=i&4&&s===0?n:null;if(o){for(v=0;v{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Ur(e,t,n,r,i,a,o,s){var c=o&1?o&16?Gt(n):Kt(n,!1,!1):null,l=o&2?Gt(i):null;return{v:c,i:l,e:Sn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function Wr(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=an(r);if(a.before(r),r===i)return;r=o}}function Gr(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Kr(e,t,n=!1,r=!1,i=!1,a=!1){var o=e,s=``;if(n){var c=e;Ie&&(o=ze(rn(c)))}I(()=>{var e=Bn;if(s===(s=t()??``)){Ie&&Be();return}if(n&&!Ie){e.nodes=null,c.innerHTML=s,s!==``&&Er(rn(c),c.lastChild);return}if(e.nodes!==null&&(En(e.nodes.start,e.nodes.end),e.nodes=null),s!==``){if(Ie){for(var a=Re.data,l=Be(),u=l;l!==null&&(l.nodeType!==8||l.data!==``);)u=l,l=an(l);if(l===null)throw Ne(),De;Er(Re,u),o=ze(l);return}var d=cn(r?`svg`:i?`math`:`template`,r?Ae:i?je:void 0);d.innerHTML=s;var f=r||i?d:d.content;if(Er(rn(f),f.lastChild),r||i)for(;rn(f);)o.before(rn(f));else o.before(f)}})}function qr(e,t,...n){var r=new Ir(e);bn(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},T)}function Jr(e,t,n){var r;Ie&&(r=Re,Be());var i=new Ir(e);bn(()=>{var e=t()??null;if(Ie&&Ue(r)===`[`!=(e!==null)){var a=He();ze(a),i.anchor=a,Le(!1),i.ensure(e,e&&(t=>n(t,e))),Le(!0);return}i.ensure(e,e&&(t=>n(t,e)))},T)}var Yr=()=>performance.now(),Xr={tick:e=>requestAnimationFrame(e),now:()=>Yr(),tasks:new Set};function Zr(){let e=Xr.now();Xr.tasks.forEach(t=>{t.c(e)||(Xr.tasks.delete(t),t.f())}),Xr.tasks.size!==0&&Xr.tick(Zr)}function Qr(e){let t;return Xr.tasks.size===0&&Xr.tick(Zr),{promise:new Promise(n=>{Xr.tasks.add(t={c:e,f:n})}),abort(){Xr.tasks.delete(t)}}}function $r(e,t){ct(()=>{e.dispatchEvent(new CustomEvent(t))})}function ei(e){if(e===`float`)return`cssFloat`;if(e===`offset`)return`cssOffset`;if(e.startsWith(`--`))return e;let t=e.split(`-`);return t.length===1?t[0]:t[0]+t.slice(1).map(e=>e[0].toUpperCase()+e.slice(1)).join(``)}function ti(e){let t={},n=e.split(`;`);for(let e of n){let[n,r]=e.split(`:`);if(!n||r===void 0)break;let i=ei(n.trim());t[i]=r.trim()}return t}var ni=e=>e,ri=null;function ii(e){ri=e}function ai(e,t,n){var r=(ri??Bn).nodes,i,a,o,s=null;r.a??={element:e,measure(){i=this.element.getBoundingClientRect()},apply(){if(o?.abort(),a=this.element.getBoundingClientRect(),i.left!==a.left||i.right!==a.right||i.top!==a.top||i.bottom!==a.bottom){let e=t()(this.element,{from:i,to:a},n?.());o=si(this.element,e,void 0,1,()=>{},()=>{o?.abort(),o=void 0})}},fix(){if(!e.getAnimations().length){var{position:t,width:n,height:r}=getComputedStyle(e);if(t!==`absolute`&&t!==`fixed`){var a=e.style;s={position:a.position,width:a.width,height:a.height,transform:a.transform},a.position=`absolute`,a.width=n,a.height=r;var o=e.getBoundingClientRect();if(i.left!==o.left||i.top!==o.top){var c=`translate(${i.left-o.left}px, ${i.top-o.top}px)`;a.transform=a.transform?`${a.transform} ${c}`:c}}}},unfix(){if(s){var t=e.style;t.position=s.position,t.width=s.width,t.height=s.height,t.transform=s.transform}}},r.a.element=e}function oi(e,t,n,r){var i=(e&1)!=0,a=(e&2)!=0,o=i&&a,s=(e&4)!=0,c=o?`both`:i?`in`:`out`,l,u=t.inert,d=t.style.overflow,f,p;function m(){return ct(()=>l??=n()(t,r?.()??{},{direction:c}))}var h={is_global:s,in(){if(t.inert=u,!i){p?.abort(),p?.reset?.();return}a||f?.abort(),f=si(t,m(),p,1,()=>{$r(t,`introstart`)},()=>{$r(t,`introend`),f?.abort(),f=l=void 0,t.style.overflow=d})},out(e){if(!a){e?.(),l=void 0;return}t.inert=!0,p=si(t,m(),f,0,()=>{$r(t,`outrostart`)},()=>{$r(t,`outroend`),e?.()})},stop:()=>{f?.abort(),p?.abort()}},g=Bn;if((g.nodes.t??=[]).push(h),i&&Ar){var _=s;if(!_){for(var v=g.parent;v&&v.f&65536;)for(;(v=v.parent)&&!(v.f&16););_=!v||(v.f&32768)!=0}_&&vn(()=>{sr(()=>h.in())})}}function si(e,t,n,r,i,a){var o=r===1;if(d(t)){var s,c=!1;return Ze(()=>{c||(s=si(e,t({direction:o?`in`:`out`}),n,r,i,a))}),{abort:()=>{c=!0,s?.abort()},deactivate:()=>s.deactivate(),reset:()=>s.reset(),t:()=>s.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return i(),a(),{abort:f,deactivate:f,reset:f,t:()=>r};let{delay:l=0,css:u,tick:p,easing:m=ni}=t;var h=[];if(o&&n===void 0&&(p&&p(0,1),u)){var g=ti(u(0,1));h.push(g,g)}var _=()=>1-r,v=e.animate(h,{duration:l,fill:`forwards`});return v.onfinish=()=>{v.cancel(),i();var o=n?.t()??1-r;n?.abort();var s=r-o,c=t.duration*Math.abs(s),l=[];if(c>0){var d=!1;if(u)for(var f=Math.ceil(c/(1e3/60)),h=0;h<=f;h+=1){var g=o+s*m(h/f),y=ti(u(g,1-g));l.push(y),d||=y.overflow===`hidden`}d&&(e.style.overflow=`hidden`),_=()=>{var e=v.currentTime;return o+s*m(e/c)},p&&Qr(()=>{if(v.playState!==`running`)return!1;var e=_();return p(e,1-e),!0})}v=e.animate(l,{duration:c,fill:`forwards`}),v.onfinish=()=>{_=()=>r,p?.(r,1-r),a()}},{abort:()=>{v&&(v.cancel(),v.effect=null,v.onfinish=f)},deactivate:()=>{a=f},reset:()=>{r===0&&p?.(1,0)},t:()=>_()}}function See(e,t,n,r,i,a){let o=Ie;Ie&&Be();var s=null;Ie&&Re.nodeType===1&&(s=Re,Be());var c=Ie?Re:e,l=Bn,u=new Ir(c,!1);bn(()=>{let e=t()||null;var a=i?i():n||e===`svg`?Ae:void 0;if(e===null){u.ensure(null,null),jr(!0);return}return u.ensure(e,t=>{if(e){if(s=Ie?s:cn(e,a),Er(s,s),r){var n=null;Ie&&vee(e)&&s.append(n=document.createComment(``));var i=Ie?rn(s):s.appendChild(nn());Ie&&(i===null?Le(!1):ze(i)),ii(l),r(s,i),n?.remove(),ii(null)}Bn.nodes.end=s,t.before(s)}Ie&&ze(t)}),jr(!0),()=>{e&&jr(!1)}},T),mn(()=>{jr(!0)}),o&&(Le(!0),ze(c))}function ci(e,t){var n=void 0,r;xn(()=>{n!==(n=t())&&(r&&=(Tn(r),null),n&&(r=Sn(()=>{vn(()=>n(e))})))})}function li(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t=0;){var s=o+a;(o===0||di.includes(r[o-1]))&&(s===r.length||di.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function fi(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function pi(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function Tee(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(pi)),i&&c.push(...Object.keys(i).map(pi));var l=0,u=-1;let t=e.length;for(var d=0;d{gi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),mn(()=>{t.disconnect()})}function vi(e,t,n=t){var r=new WeakSet,i=!0;lt(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),yi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&yi(o)}n(a),e.__value=a,Tt!==null&&r.add(Tt)}),vn(()=>{var a=t();if(e===document.activeElement){var o=Tt;if(r.has(o))return}if(gi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=yi(s),n(a))}e.__value=a,i=!1}),_i(e)}function yi(e){return`__value`in e?e.__value:e.value}var bi=Symbol(`class`),xi=Symbol(`style`),Si=Symbol(`is custom element`),Ci=Symbol(`is html`),Eee=he?`link`:`LINK`,wi=he?`input`:`INPUT`,Dee=he?`option`:`OPTION`,Oee=he?`select`:`SELECT`,kee=he?`progress`:`PROGRESS`;function Ti(e){if(Ie){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;G(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;G(e,`checked`,null),e.checked=r}}};e[pe]=n,Ze(n),st()}}function Ei(e,t){var n=ki(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==kee)||(e.value=t??``)}function Di(e,t){var n=ki(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Aee(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function G(e,t,n,r){var i=ki(e);Ie&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Eee)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ce]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&ji(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function jee(e,t,n,r,i=!1,a=!1){if(Ie&&i&&e.nodeName===wi){var o=e;(o.type===`checkbox`?`defaultChecked`:`defaultValue`)in n||Ti(o)}var s=ki(e),c=s[Si],l=!s[Ci];let u=Ie&&c;u&&Le(!1);var d=t||{},f=e.nodeName===Dee;for(var p in t)p in n||(n[p]=null);n.class?n.class=ui(n.class):(r||n[bi])&&(n.class=null),n[xi]&&(n.style??=null);var m=ji(e);if(e.nodeName===wi&&`type`in n&&(`value`in n||`__value`in n)){var h=n.type;(h!==d.type||h===void 0&&e.hasAttribute(`type`))&&(d.type=h,G(e,`type`,h,a))}for(let i in n){let o=n[i];if(f&&i===`value`&&o==null){e.value=e.__value=``,d[i]=o;continue}if(i===`class`){W(e,e.namespaceURI===`http://www.w3.org/1999/xhtml`,o,r,t?.[bi],n[bi]),d[i]=o,d[bi]=n[bi];continue}if(i===`style`){hi(e,o,t?.[xi],n[xi]),d[i]=o,d[xi]=n[xi];continue}var g=d[i];if(!(o===g&&!(o===void 0&&e.hasAttribute(i)))){d[i]=o;var _=i[0]+i[1];if(_!==`$$`)if(_===`on`){let t={},n=`$$`+i,r=i.slice(2);var v=ur(r);if(cr(r)&&(r=r.slice(0,-7),t.capture=!0),!v&&g){if(o!=null)continue;e.removeEventListener(r,d[n],t),d[n]=null}if(v)R(r,e,o),Sr([r]);else if(o!=null){function a(e){d[i].call(this,e)}d[n]=br(r,e,a,t)}}else if(i===`style`)G(e,i,o);else if(i===`autofocus`)iee(e,!!o);else if(!c&&(i===`__value`||i===`value`&&o!=null))e.value=e.__value=o;else if(i===`selected`&&f)Aee(e,o);else{var y=i;l||(y=pr(y));var b=y===`defaultValue`||y===`defaultChecked`;if(o==null&&!c&&!b)if(s[i]=null,y===`value`||y===`checked`){let n=e,r=t===void 0;if(y===`value`){let e=n.defaultValue;n.removeAttribute(y),n.defaultValue=e,n.value=n.__value=r?e:null}else{let e=n.defaultChecked;n.removeAttribute(y),n.defaultChecked=e,n.checked=r?e:!1}}else e.removeAttribute(i);else b||m.includes(y)&&(c||typeof o!=`string`)?(e[y]=o,y in s&&(s[y]=Oe)):typeof o!=`function`&&G(e,y,o,a)}}}return u&&Le(!0),d}function Oi(e,t,n=[],r=[],i=[],a,o=!1,s=!1){pt(i,n,r,n=>{var r=void 0,i={},c=e.nodeName===Oee,l=!1;if(xn(()=>{var u=t(...n.map(L)),d=jee(e,r,u,a,o,s);l&&c&&`value`in u&&gi(e,u.value);for(let e of Object.getOwnPropertySymbols(i))u[e]||Tn(i[e]);for(let t of Object.getOwnPropertySymbols(u)){var f=u[t];t.description===`@attach`&&(!r||f!==r[t])&&(i[t]&&Tn(i[t]),i[t]=Sn(()=>ci(e,()=>f))),d[t]=f}r=d}),c){var u=e;vn(()=>{gi(u,r.value,!0),_i(u)})}l=!0})}function ki(e){return e[le]??={[Si]:e.nodeName.includes(`-`),[Ci]:e.namespaceURI===ke}}var Ai=new Map;function ji(e){var t=e.getAttribute(`is`)||e.nodeName,n=Ai.get(t);if(n)return n;Ai.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&s!==`innerHTML`&&s!==`textContent`&&s!==`innerText`&&n.push(s);i=l(i)}return n}function Mi(e,t,n=t){var r=new WeakSet;lt(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Pi(e)?Fi(a):a,n(a),Tt!==null&&r.add(Tt),await ir(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(Ie&&e.defaultValue!==e.value||sr(t)==null&&e.value)&&(n(Pi(e)?Fi(e.value):e.value),Tt!==null&&r.add(Tt)),yn(()=>{var n=t();if(e===document.activeElement){var i=Tt;if(r.has(i))return}Pi(e)&&n===Fi(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function Ni(e,t,n=t){lt(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(Ie&&e.defaultChecked!==e.checked||sr(t)==null)&&n(e.checked),yn(()=>{e.checked=!!t()})}function Pi(e){var t=e.type;return t===`number`||t===`range`}function Fi(e){return e===``?null:+e}function Ii(e,t){return e===t||e?.[oe]===t}function Li(e={},t,n,r){var i=Ke.r,a=Bn;return vn(()=>{var o,s;return yn(()=>{o=s,s=r?.()||[],sr(()=>{Ii(n(...s),e)||(t(e,...s),o&&Ii(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Ii(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}var Ri={get(e,t){if(!e.exclude.has(t))return e.props[t]},set(e,t){return!1},getOwnPropertyDescriptor(e,t){if(!e.exclude.has(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},has(e,t){return!e.exclude.has(t)&&t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.has(t))}};function zi(e,t,n){return new Proxy({props:e,exclude:t},Ri)}function K(e,t,n,r){var i=!0,o=(n&8)!=0,s=(n&16)!=0,c=r,l=!0,u=void 0,d=()=>s&&i?(u??=gt(r),L(u)):(l&&(l=!1,c=s?sr(r):r),c);let f;if(o){var p=oe in e||se in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=ree(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Se(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?gt:yt)(()=>(v=!1,g()));o&&L(y);var b=Bn;return(function(e,t){if(arguments.length>0){let n=t?L(y):i&&o?Xt(e):e;return M(y,n),v=!0,c!==void 0&&(c=n),e}return Fn&&v||b.f&16384?y.v:L(y)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Bi=new Set([`$$slots`,`$$events`,`$$legacy`,`icon`,`class`]),Vi=Dr(``);function q(e,t){let n=K(t,`icon`,19,()=>[]),r=K(t,`class`,3,``),i=zi(t,Bi);var a=Vi();Oi(a,()=>({xmlns:`http://www.w3.org/2000/svg`,width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,class:r(),"aria-hidden":`true`,focusable:`false`,...i}));{let e=(t,n=f)=>{var r=kr();U(P(r),17,n,Lr,(t,n)=>{var r=A(()=>g(L(n),3));let i=()=>L(r)[0],a=()=>L(r)[1],o=()=>L(r)[2];var s=kr();See(P(s),i,!0,(t,n)=>{Oi(t,()=>({xmlns:`http://www.w3.org/2000/svg`,...a()}));var r=kr(),i=P(r),s=t=>{e(t,o)},c=A(()=>Array.isArray(o()));H(i,e=>{L(c)&&e(s)}),B(n,r)}),B(t,s)}),B(t,r)};e(N(a),n),D(a)}B(e,a)}var Hi=Dr(``);function Ui(e){B(e,Hi())}function Wi(){try{return typeof window>`u`?null:window.localStorage}catch{return null}}function Gi(e,t=null){let n=Wi();if(!n)return t;try{return n.getItem(e)??t}catch{return t}}function Ki(e,t){let n=Wi();if(n)try{n.setItem(e,String(t))}catch{}}function qi(e){let t=Number(e);return Number.isFinite(t)?Math.min(240,Math.max(60,Math.round(t))):240}function Ji(e,t,n){return qi(Number(e)+Number(n)-Number(t))}var Yi=new class{#e=j(`system`);get theme(){return L(this.#e)}set theme(e){M(this.#e,e,!0)}#t=j(0);get tick(){return L(this.#t)}set tick(e){M(this.#t,e,!0)}init(){this.theme=Gi(`gomodel_theme`,`system`),this.apply(),window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{this.theme===`system`&&this.tick++})}set(e){this.theme=e,Ki(`gomodel_theme`,e),this.apply(),this.tick++}toggle(){let e=[`light`,`system`,`dark`];this.set(e[(e.indexOf(this.theme)+1)%e.length])}apply(){let e=document.documentElement;this.theme===`system`?e.removeAttribute(`data-theme`):e.setAttribute(`data-theme`,this.theme)}},Xi=new class{#e=j(Xt(240));get width(){return L(this.#e)}set width(e){M(this.#e,e,!0)}get collapsed(){return this.width===60}init(){let e=Gi(`gomodel_sidebar_width`),t=Gi(`gomodel_sidebar_collapsed`)===`true`;this.setWidth(e??(t?60:240))}toggle(){this.setWidth(this.collapsed?240:60,!0)}setWidth(e,t=!1){this.width=qi(e),typeof document<`u`&&document.documentElement.style.setProperty(`--sidebar-width`,`${this.width}px`),t&&(Ki(`gomodel_sidebar_width`,this.width),Ki(`gomodel_sidebar_collapsed`,this.collapsed))}},Zi=new class{#e=j(Xt([]));get stack(){return L(this.#e)}set stack(e){M(this.#e,e,!0)}#t=1;opened(){let e=this.#t++;return this.stack=[...this.stack,e],e}closed(e){this.stack=this.stack.filter(t=>t!==e)}isTop(e){return this.stack.length>0&&this.stack[this.stack.length-1]===e}get openCount(){return this.stack.length}get anyOpen(){return this.stack.length>0}},Qi={},$i=[`en`,`pl`],ea=`PARAGLIDE_LOCALE`,ta=[`custom-dashboard`,`preferredLanguage`,`baseLocale`],na=[];globalThis.__paraglide=globalThis.__paraglide??{},globalThis.__paraglide.ssr=globalThis.__paraglide.ssr??{};var ra=!1,J=()=>{let e=ta;typeof window<`u`&&window.location?.href&&(e=ya(window.location.href));let t=ia(e,typeof window<`u`?window.location?.href:void 0);if(t)return ra||(ra=!0,ca(t,{reload:!1})),t;throw Error(`No locale found. Read the docs https://paraglidejs.com/errors#no-locale-found`)};function ia(e,t){let n;for(let t of e){if(t===`baseLocale`)n=`en`;else if(t===`preferredLanguage`)n=pa();else if(xa(t)&&ba.has(t)){let e=ba.get(t);if(e){let t=e.getLocale();if(t instanceof Promise)continue;if(t!==void 0)return da(t)}}let e=ua(n);if(e)return e}}var aa=new Set([`ar`,`dv`,`fa`,`he`,`ks`,`ku`,`ps`,`sd`,`ug`,`ur`,`yi`]);function oa(e=J()){try{let t=new Intl.Locale(e),n=t.getTextInfo?.().direction??t.textInfo?.direction;if(n===`ltr`||n===`rtl`)return n}catch{}let t=e.split(`-`)[0]?.toLowerCase();return aa.has(t??``)?`rtl`:`ltr`}var sa=e=>{e?window.location.href=e:window.location.reload()},ca=(e,t)=>{let n={reload:!0,...t},r;try{r=J()}catch{}let i=[],a=ta;typeof window<`u`&&window.location?.href&&(a=ya(window.location.href));for(let t of a)if(t===`baseLocale`)continue;else if(xa(t)&&ba.has(t)){let n=ba.get(t);if(n){let r=n.setLocale(e);r instanceof Promise&&(r=r.catch(e=>{throw Error(`Custom strategy "${t}" setLocale failed.`,{cause:e})}),i.push(r))}}let o=()=>{n.reload&&window.location&&e!==r&&sa(void 0)};if(i.length)return Promise.all(i).then(()=>{o()});o()},la=()=>typeof window<`u`?window.location.origin:`http://fallback.com`;function ua(e){if(typeof e!=`string`)return;let t=e.toLowerCase();for(let e of $i)if(e.toLowerCase()===t)return e}function da(e){let t=ua(e);if(t)return t;throw Error(`Invalid locale: ${e}. Expected one of: ${$i.join(`, `)}`)}var fa=ea.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);RegExp(`(?:^|;\\s*)${fa}=([^;]*)`);function pa(){if(!navigator?.languages?.length)return;let e=navigator.languages.map(e=>({fullTag:e,baseTag:e.split(`-`)[0]}));for(let t of e){let e=ua(t.fullTag);if(e)return e;let n=ua(t.baseTag);if(n)return n}}function ma(e){return ha(e)}function ha(e){let t=typeof e==`string`?new URL(e,la()):new URL(e),n=t.pathname.split(`/`).filter(Boolean);return n.length>0&&ua(n[0])&&(t.pathname=`/`+n.slice(1).join(`/`)),t}var ga,_a;function va(e){if(na.length===0)return;let t=typeof e==`string`?e:e.href;if(ga===t)return _a;let n=new URL(t,`http://example.com`),r=ma(n),i=r.href===n.href?[n]:[n,r],a;for(let e of i){for(let t of na)if(new Qi(t.match,e.href).exec(e.href)){a=t;break}if(a)break}return ga=t,_a=a,a}function ya(e){let t=va(e);return t&&t.exclude!==!0&&Array.isArray(t.strategy)?t.strategy:ta}var ba=new Map;function xa(e){return typeof e==`string`&&/^custom-[A-Za-z0-9_-]+$/.test(e)}function Sa(e,t){if(!xa(e))throw Error(`Invalid custom strategy: "${e}". Must be a custom strategy following the pattern custom-name.`);ba.set(e,t)}var Ca=()=>`Cancel`,wa=()=>`Anuluj`,Ta=((e={},t={})=>(t.locale??J())===`pl`?wa(e):Ca(e)),Ea=()=>`Next`,Da=()=>`Dalej`,Oa=((e={},t={})=>(t.locale??J())===`pl`?Da(e):Ea(e)),ka=()=>`Previous`,Aa=()=>`Wstecz`,ja=((e={},t={})=>(t.locale??J())===`pl`?Aa(e):ka(e)),Ma=()=>`Admin`,Na=()=>`Admin`,Pa=((e={},t={})=>(t.locale??J())===`pl`?Na(e):Ma(e)),Fa=()=>`Overview`,Ia=()=>`Przegląd`,La=((e={},t={})=>(t.locale??J())===`pl`?Ia(e):Fa(e)),Ra=()=>`Providers`,za=()=>`Dostawcy`,Ba=((e={},t={})=>(t.locale??J())===`pl`?za(e):Ra(e)),Va=()=>`Models`,Ha=()=>`Modele`,Ua=((e={},t={})=>(t.locale??J())===`pl`?Ha(e):Va(e)),Wa=()=>`Audit Logs`,Ga=()=>`Logi audytowe`,Ka=((e={},t={})=>(t.locale??J())===`pl`?Ga(e):Wa(e)),qa=()=>`Usage`,Ja=()=>`Zużycie`,Ya=((e={},t={})=>(t.locale??J())===`pl`?Ja(e):qa(e)),Xa=()=>`Budgets`,Za=()=>`Budżety`,Qa=((e={},t={})=>(t.locale??J())===`pl`?Za(e):Xa(e)),$a=()=>`Rate Limits`,eo=()=>`Limity zapytań`,to=((e={},t={})=>(t.locale??J())===`pl`?eo(e):$a(e)),no=()=>`API Keys`,ro=()=>`Klucze API`,io=((e={},t={})=>(t.locale??J())===`pl`?ro(e):no(e)),ao=()=>`Workflows`,oo=()=>`Workflows`,so=((e={},t={})=>(t.locale??J())===`pl`?oo(e):ao(e)),co=()=>`Guardrails (experimental)`,lo=()=>`Guardrails (eksperymentalne)`,uo=((e={},t={})=>(t.locale??J())===`pl`?lo(e):co(e)),fo=()=>`MCP Servers`,po=()=>`Serwery MCP`,mo=((e={},t={})=>(t.locale??J())===`pl`?po(e):fo(e)),ho=()=>`Settings`,go=()=>`Ustawienia`,_o=((e={},t={})=>(t.locale??J())===`pl`?go(e):ho(e)),vo=()=>`Usage Overview`,Mee=()=>`Przegląd zużycia`,Nee=((e={},t={})=>(t.locale??J())===`pl`?Mee(e):vo(e)),Pee=()=>`Usage chart interval`,Fee=()=>`Interwał wykresu zużycia`,Iee=((e={},t={})=>(t.locale??J())===`pl`?Fee(e):Pee(e)),Lee=()=>`Daily`,Ree=()=>`Dziennie`,zee=((e={},t={})=>(t.locale??J())===`pl`?Ree(e):Lee(e)),Bee=()=>`Weekly`,Vee=()=>`Tygodniowo`,Hee=((e={},t={})=>(t.locale??J())===`pl`?Vee(e):Bee(e)),Uee=()=>`Monthly`,Wee=()=>`Miesięcznie`,Gee=((e={},t={})=>(t.locale??J())===`pl`?Wee(e):Uee(e)),Kee=()=>`Yearly`,qee=()=>`Rocznie`,Jee=((e={},t={})=>(t.locale??J())===`pl`?qee(e):Kee(e)),Yee=()=>`Loading usage`,Xee=()=>`Wczytywanie danych o zużyciu`,Zee=((e={},t={})=>(t.locale??J())===`pl`?Xee(e):Yee(e)),Qee=()=>`Usage Analytics`,$ee=()=>`Analityka zużycia`,ete=((e={},t={})=>(t.locale??J())===`pl`?$ee(e):Qee(e)),tte=()=>`Usage mode`,nte=()=>`Tryb zużycia`,rte=((e={},t={})=>(t.locale??J())===`pl`?nte(e):tte(e)),ite=()=>`Usage data filters`,ate=()=>`Filtry danych o zużyciu`,ote=((e={},t={})=>(t.locale??J())===`pl`?ate(e):ite(e)),ste=()=>`Filter by model`,cte=()=>`Filtruj według modelu`,lte=((e={},t={})=>(t.locale??J())===`pl`?cte(e):ste(e)),ute=()=>`Filter by provider`,dte=()=>`Filtruj według dostawcy`,fte=((e={},t={})=>(t.locale??J())===`pl`?dte(e):ute(e)),pte=()=>`Filter by label`,mte=()=>`Filtruj według etykiety`,hte=((e={},t={})=>(t.locale??J())===`pl`?mte(e):pte(e)),gte=()=>`Filter by user path`,_te=()=>`Filtruj według User Path`,vte=((e={},t={})=>(t.locale??J())===`pl`?_te(e):gte(e)),yte=()=>`User path /team/alpha`,bte=()=>`User Path /team/alpha`,xte=((e={},t={})=>(t.locale??J())===`pl`?bte(e):yte(e)),Ste=()=>`Filter by session ID`,Cte=()=>`Filtruj według ID sesji`,wte=((e={},t={})=>(t.locale??J())===`pl`?Cte(e):Ste(e)),Tte=()=>`Session ID`,Ete=()=>`ID sesji`,Dte=((e={},t={})=>(t.locale??J())===`pl`?Ete(e):Tte(e)),Ote=e=>`Clear session filter ${e?.session}`,kte=e=>`Wyczyść filtr sesji ${e?.session}`,Ate=((e,t={})=>(t.locale??J())===`pl`?kte(e):Ote(e)),jte=()=>`All Models`,Mte=()=>`Wszystkie modele`,Nte=((e={},t={})=>(t.locale??J())===`pl`?Mte(e):jte(e)),Pte=()=>`All Providers`,Fte=()=>`Wszyscy dostawcy`,Ite=((e={},t={})=>(t.locale??J())===`pl`?Fte(e):Pte(e)),Lte=()=>`All Labels`,Rte=()=>`Wszystkie etykiety`,zte=((e={},t={})=>(t.locale??J())===`pl`?Rte(e):Lte(e)),Bte=()=>`Cache Saved`,Vte=()=>`Oszczędność z cache`,Hte=((e={},t={})=>(t.locale??J())===`pl`?Vte(e):Bte(e)),Ute=()=>`Pro Saved`,Wte=()=>`Oszczędność Pro`,Gte=((e={},t={})=>(t.locale??J())===`pl`?Wte(e):Ute(e)),Kte=()=>`Loading usage summary`,qte=()=>`Wczytywanie podsumowania zużycia`,yo=((e={},t={})=>(t.locale??J())===`pl`?qte(e):Kte(e)),Jte=()=>`Model usage view`,Yte=()=>`Widok zużycia według modelu`,Xte=((e={},t={})=>(t.locale??J())===`pl`?Yte(e):Jte(e)),Zte=()=>`User path usage view`,Qte=()=>`Widok zużycia według User Path`,$te=((e={},t={})=>(t.locale??J())===`pl`?Qte(e):Zte(e)),ene=()=>`Label usage view`,tne=()=>`Widok zużycia według etykiety`,nne=((e={},t={})=>(t.locale??J())===`pl`?tne(e):ene(e)),rne=()=>`Session usage view`,ine=()=>`Widok zużycia według sesji`,ane=((e={},t={})=>(t.locale??J())===`pl`?ine(e):rne(e)),one=()=>`model usage`,sne=()=>`zużycia według modelu`,cne=((e={},t={})=>(t.locale??J())===`pl`?sne(e):one(e)),lne=()=>`user path usage`,une=()=>`zużycia według User Path`,dne=((e={},t={})=>(t.locale??J())===`pl`?une(e):lne(e)),fne=()=>`label usage`,pne=()=>`zużycia według etykiety`,mne=((e={},t={})=>(t.locale??J())===`pl`?pne(e):fne(e)),hne=()=>`session usage`,gne=()=>`zużycia według sesji`,_ne=((e={},t={})=>(t.locale??J())===`pl`?gne(e):hne(e)),vne=()=>`Token Usage by Model`,yne=()=>`Zużycie tokenów według modelu`,bne=((e={},t={})=>(t.locale??J())===`pl`?yne(e):vne(e)),xne=()=>`Cost by Model`,Sne=()=>`Koszt według modelu`,Cne=((e={},t={})=>(t.locale??J())===`pl`?Sne(e):xne(e)),wne=()=>`Usage by User Path`,Tne=()=>`Zużycie według User Path`,Ene=((e={},t={})=>(t.locale??J())===`pl`?Tne(e):wne(e)),Dne=()=>`Cost by User Path`,One=()=>`Koszt według User Path`,kne=((e={},t={})=>(t.locale??J())===`pl`?One(e):Dne(e)),Ane=()=>`Usage by Label`,jne=()=>`Zużycie według etykiety`,Mne=((e={},t={})=>(t.locale??J())===`pl`?jne(e):Ane(e)),Nne=()=>`Cost by Label`,Pne=()=>`Koszt według etykiety`,Fne=((e={},t={})=>(t.locale??J())===`pl`?Pne(e):Nne(e)),Ine=()=>`Usage by Recent Session`,Lne=()=>`Zużycie według ostatnich sesji`,Rne=((e={},t={})=>(t.locale??J())===`pl`?Lne(e):Ine(e)),zne=()=>`Cost by Recent Session`,Bne=()=>`Koszt według ostatnich sesji`,Vne=((e={},t={})=>(t.locale??J())===`pl`?Bne(e):zne(e)),Hne=e=>`Show ${e?.noun} chart`,Une=e=>`Pokaż wykres ${e?.noun}`,Wne=((e,t={})=>(t.locale??J())===`pl`?Une(e):Hne(e)),Gne=e=>`Show ${e?.noun} stacked chart`,Kne=e=>`Pokaż skumulowany wykres ${e?.noun}`,qne=((e,t={})=>(t.locale??J())===`pl`?Kne(e):Gne(e)),Jne=e=>`Show ${e?.noun} table`,Yne=e=>`Pokaż tabelę ${e?.noun}`,Xne=((e,t={})=>(t.locale??J())===`pl`?Yne(e):Jne(e)),Zne=()=>`Chart`,Qne=()=>`Wykres`,$ne=((e={},t={})=>(t.locale??J())===`pl`?Qne(e):Zne(e)),ere=()=>`Stacked`,tre=()=>`Skumulowany`,nre=((e={},t={})=>(t.locale??J())===`pl`?tre(e):ere(e)),rre=()=>`Table`,ire=()=>`Tabela`,are=((e={},t={})=>(t.locale??J())===`pl`?ire(e):rre(e)),ore=e=>`Loading ${e?.noun}`,sre=e=>`Wczytywanie ${e?.noun}`,bo=((e,t={})=>(t.locale??J())===`pl`?sre(e):ore(e)),cre=()=>`Label usage help`,lre=()=>`Pomoc dotycząca zużycia według etykiet`,ure=((e={},t={})=>(t.locale??J())===`pl`?lre(e):cre(e)),dre=()=>`One request can have multiple labels. Such a request counts once under each of its labels, so label rows can overlap and add up to more than the period totals.`,fre=()=>`Jeden Request może mieć wiele etykiet. Jest liczony raz dla każdej z nich, dlatego wiersze etykiet mogą się nakładać i sumować do wartości większej niż łączne dane okresu.`,pre=((e={},t={})=>(t.locale??J())===`pl`?fre(e):dre(e)),mre=()=>`Session usage help`,hre=()=>`Pomoc dotycząca zużycia według sesji`,gre=((e={},t={})=>(t.locale??J())===`pl`?hre(e):mre(e)),_re=()=>`Sessions are ordered by latest activity. Request and token totals include local-cache hits; cost fields include provider spend only.`,vre=()=>`Sesje są uporządkowane według ostatniej aktywności. Sumy Request'ów i tokenów obejmują trafienia lokalnego cache, a koszty wyłącznie wydatki u dostawcy.`,yre=((e={},t={})=>(t.locale??J())===`pl`?vre(e):_re(e)),bre=()=>`Model`,xre=()=>`Model`,xo=((e={},t={})=>(t.locale??J())===`pl`?xre(e):bre(e)),Sre=()=>`Provider`,Cre=()=>`Dostawca`,So=((e={},t={})=>(t.locale??J())===`pl`?Cre(e):Sre(e)),wre=()=>`User Path`,Tre=()=>`User Path`,Co=((e={},t={})=>(t.locale??J())===`pl`?Tre(e):wre(e)),Ere=()=>`Session`,Dre=()=>`Sesja`,Ore=((e={},t={})=>(t.locale??J())===`pl`?Dre(e):Ere(e)),kre=()=>`Session ID`,Are=()=>`ID sesji`,jre=((e={},t={})=>(t.locale??J())===`pl`?Are(e):kre(e)),Mre=()=>`Label`,Nre=()=>`Etykieta`,Pre=((e={},t={})=>(t.locale??J())===`pl`?Nre(e):Mre(e)),Fre=()=>`Requests`,Ire=()=>`Requesty`,wo=((e={},t={})=>(t.locale??J())===`pl`?Ire(e):Fre(e)),Lre=()=>`Input Tokens`,Rre=()=>`Input Tokens`,To=((e={},t={})=>(t.locale??J())===`pl`?Rre(e):Lre(e)),zre=()=>`Output Tokens`,Bre=()=>`Output Tokens`,Eo=((e={},t={})=>(t.locale??J())===`pl`?Bre(e):zre(e)),Vre=()=>`Prompt Cached`,Hre=()=>`Prompt z cache`,Do=((e={},t={})=>(t.locale??J())===`pl`?Hre(e):Vre(e)),Ure=()=>`Local Cached`,Wre=()=>`Lokalny cache`,Gre=((e={},t={})=>(t.locale??J())===`pl`?Wre(e):Ure(e)),Kre=()=>`Total Tokens`,qre=()=>`Wszystkie tokeny`,Jre=((e={},t={})=>(t.locale??J())===`pl`?qre(e):Kre(e)),Yre=()=>`Input Cost`,Xre=()=>`Koszt wejścia`,Oo=((e={},t={})=>(t.locale??J())===`pl`?Xre(e):Yre(e)),Zre=()=>`Output Cost`,Qre=()=>`Koszt wyjścia`,ko=((e={},t={})=>(t.locale??J())===`pl`?Qre(e):Zre(e)),$re=()=>`Total Cost`,eie=()=>`Łączny koszt`,Ao=((e={},t={})=>(t.locale??J())===`pl`?eie(e):$re(e)),tie=()=>`Provider prompt-cache reads included in the input tokens`,nie=()=>`Odczyty z prompt cache dostawcy uwzględnione w input tokens`,rie=((e={},t={})=>(t.locale??J())===`pl`?nie(e):tie(e)),iie=()=>`Tokens served from GoModel's local response cache (excluded from the other columns)`,aie=()=>`Tokeny obsłużone przez lokalny response cache GoModel (wyłączone z pozostałych kolumn)`,oie=((e={},t={})=>(t.locale??J())===`pl`?aie(e):iie(e)),sie=e=>`~${e?.cost} at current cached-input pricing`,cie=e=>`~${e?.cost} według bieżącej ceny wejścia z cache`,lie=((e,t={})=>(t.locale??J())===`pl`?cie(e):sie(e)),uie=e=>`${e?.input} input + ${e?.output} output`,die=e=>`${e?.input} input tokens + ${e?.output} output tokens`,fie=((e,t={})=>(t.locale??J())===`pl`?die(e):uie(e)),pie=()=>`Request Log`,mie=()=>`Dziennik Request'ów`,hie=((e={},t={})=>(t.locale??J())===`pl`?mie(e):pie(e)),gie=()=>`Search by request ID, session, model, provider...`,_ie=()=>`Szukaj według ID Requestu, sesji, modelu lub dostawcy...`,vie=((e={},t={})=>(t.locale??J())===`pl`?_ie(e):gie(e)),yie=()=>`Search by request ID, session, model, provider`,bie=()=>`Szukaj według ID Requestu, sesji, modelu lub dostawcy`,xie=((e={},t={})=>(t.locale??J())===`pl`?bie(e):yie(e)),Sie=e=>`Filter by session ${e?.session}`,Cie=e=>`Filtruj według sesji ${e?.session}`,wie=((e,t={})=>(t.locale??J())===`pl`?Cie(e):Sie(e)),Tie=()=>`Copy session ID`,Eie=()=>`Kopiuj ID sesji`,Die=((e={},t={})=>(t.locale??J())===`pl`?Eie(e):Tie(e)),Oie=e=>`Copy session ID ${e?.session}`,kie=e=>`Kopiuj ID sesji ${e?.session}`,Aie=((e,t={})=>(t.locale??J())===`pl`?kie(e):Oie(e)),jie=()=>`Session ID copied`,Mie=()=>`Skopiowano ID sesji`,Nie=((e={},t={})=>(t.locale??J())===`pl`?Mie(e):jie(e)),Pie=()=>`Unable to copy session ID`,Fie=()=>`Nie można skopiować ID sesji`,Iie=((e={},t={})=>(t.locale??J())===`pl`?Fie(e):Pie(e)),Lie=()=>`Hide cached requests`,Rie=()=>`Ukryj Requesty z cache`,zie=((e={},t={})=>(t.locale??J())===`pl`?Rie(e):Lie(e)),Bie=()=>`Timestamp`,Vie=()=>`Znacznik czasu`,Hie=((e={},t={})=>(t.locale??J())===`pl`?Vie(e):Bie(e)),Uie=()=>`Labels`,Wie=()=>`Etykiety`,Gie=((e={},t={})=>(t.locale??J())===`pl`?Wie(e):Uie(e)),Kie=()=>`Cache`,qie=()=>`Cache`,Jie=((e={},t={})=>(t.locale??J())===`pl`?qie(e):Kie(e)),Yie=()=>`Provider Cache`,Xie=()=>`Cache dostawcy`,Zie=((e={},t={})=>(t.locale??J())===`pl`?Xie(e):Yie(e)),Qie=()=>`Share of input tokens served from the provider's prompt cache`,$ie=()=>`Część input tokens obsłużona przez prompt cache dostawcy`,eae=((e={},t={})=>(t.locale??J())===`pl`?$ie(e):Qie(e)),tae=()=>`Input`,nae=()=>`Wejście`,rae=((e={},t={})=>(t.locale??J())===`pl`?nae(e):tae(e)),iae=()=>`Output`,aae=()=>`Wyjście`,oae=((e={},t={})=>(t.locale??J())===`pl`?aae(e):iae(e)),sae=()=>`Total`,cae=()=>`Łącznie`,lae=((e={},t={})=>(t.locale??J())===`pl`?cae(e):sae(e)),uae=()=>`Cost`,dae=()=>`Koszt`,fae=((e={},t={})=>(t.locale??J())===`pl`?dae(e):uae(e)),pae=e=>`${e?.count} tokens`,mae=e=>`${e?.count} tokenów`,jo=((e,t={})=>(t.locale??J())===`pl`?mae(e):pae(e)),hae=()=>`Loading request log`,gae=()=>`Wczytywanie dziennika Request'ów`,_ae=((e={},t={})=>(t.locale??J())===`pl`?gae(e):hae(e)),vae=()=>`Clear label filter`,yae=()=>`Wyczyść filtr etykiety`,bae=((e={},t={})=>(t.locale??J())===`pl`?yae(e):vae(e)),xae=e=>`Filter usage by "${e?.label}"`,Sae=e=>`Filtruj zużycie według etykiety "${e?.label}"`,Cae=((e,t={})=>(t.locale??J())===`pl`?Sae(e):xae(e)),wae=e=>`${e?.count} cached requests hidden`,Tae=e=>`Ukryte Requesty z cache: ${e?.count}`,Eae=((e,t={})=>(t.locale??J())===`pl`?Tae(e):wae(e)),Dae=e=>`${e?.provider} to providers + ${e?.cache} from cache`,Oae=e=>`${e?.provider} do dostawców + ${e?.cache} z cache`,kae=((e,t={})=>(t.locale??J())===`pl`?Oae(e):Dae(e)),Aae=e=>`${e?.input} input + ${e?.output} output`,jae=e=>`${e?.input} wejście + ${e?.output} wyjście`,Mae=((e,t={})=>(t.locale??J())===`pl`?jae(e):Aae(e)),Nae=()=>`Estimated at 4 net characters removed per token`,Pae=()=>`Szacunek: 4 usunięte znaki netto na token`,Fae=((e={},t={})=>(t.locale??J())===`pl`?Pae(e):Nae(e)),Iae=e=>`${e?.percent}% less`,Lae=e=>`o ${e?.percent}% mniej`,Rae=((e,t={})=>(t.locale??J())===`pl`?Lae(e):Iae(e)),zae=e=>`${e?.count} estimated prompt token-transmissions removed across provider requests`,Bae=e=>`Szacowana liczba transmisji tokenów promptu usuniętych z Request'ów do dostawców: ${e?.count}`,Vae=((e,t={})=>(t.locale??J())===`pl`?Bae(e):zae(e)),Hae=()=>`Savings are summed per provider request; resent conversation history is counted again`,Uae=()=>`Oszczędności są sumowane dla każdego Requestu do dostawcy; ponownie wysłana historia rozmowy jest liczona ponownie`,Wae=((e={},t={})=>(t.locale??J())===`pl`?Uae(e):Hae(e)),Gae=e=>`${e?.cost} estimated gross input cost avoided`,Kae=e=>`Szacowany uniknięty koszt brutto wejścia: ${e?.cost}`,qae=((e,t={})=>(t.locale??J())===`pl`?Kae(e):Gae(e)),Jae=()=>`Prompt-cache changes caused by rewriting are not included`,Yae=()=>`Nie uwzględniono zmian prompt cache wynikających z przepisywania`,Xae=((e={},t={})=>(t.locale??J())===`pl`?Yae(e):Jae(e)),Zae=e=>`${e?.percent} than the same traffic without rewriting (${e?.mode})`,Qae=e=>`${e?.percent} niż dla tego samego ruchu bez przepisywania (${e?.mode})`,$ae=((e,t={})=>(t.locale??J())===`pl`?Qae(e):Zae(e)),eoe=()=>`cost`,toe=()=>`koszt`,noe=((e={},t={})=>(t.locale??J())===`pl`?toe(e):eoe(e)),roe=()=>`tokens`,ioe=()=>`tokeny`,aoe=((e={},t={})=>(t.locale??J())===`pl`?ioe(e):roe(e)),ooe=()=>`Costs from OpenRouter USD-based credits.`,soe=()=>`Koszty na podstawie kredytów OpenRouter w USD.`,coe=((e={},t={})=>(t.locale??J())===`pl`?soe(e):ooe(e)),loe=()=>`Costs from xAI usage.cost_in_usd_ticks.`,uoe=()=>`Koszty na podstawie xAI usage.cost_in_usd_ticks.`,doe=((e={},t={})=>(t.locale??J())===`pl`?uoe(e):loe(e)),foe=()=>`Exact`,poe=()=>`Dokładny`,moe=((e={},t={})=>(t.locale??J())===`pl`?poe(e):foe(e)),hoe=()=>`Semantic`,goe=()=>`Semantyczny`,_oe=((e={},t={})=>(t.locale??J())===`pl`?goe(e):hoe(e)),voe=()=>`Saved by cache — not charged`,yoe=()=>`Oszczędzone dzięki cache — bez opłaty`,boe=((e={},t={})=>(t.locale??J())===`pl`?yoe(e):voe(e)),xoe=e=>`${e?.cached} cached / ${e?.total} input tokens`,Soe=e=>`${e?.cached} z cache / ${e?.total} input tokens`,Coe=((e,t={})=>(t.locale??J())===`pl`?Soe(e):xoe(e)),woe=e=>`${e?.count} cache write`,Toe=e=>`Zapis do cache: ${e?.count}`,Eoe=((e,t={})=>(t.locale??J())===`pl`?Toe(e):woe(e)),Doe=e=>`Input: ${e?.cost}`,Ooe=e=>`Wejście: ${e?.cost}`,koe=((e,t={})=>(t.locale??J())===`pl`?Ooe(e):Doe(e)),Aoe=e=>`Output: ${e?.cost}`,joe=e=>`Wyjście: ${e?.cost}`,Moe=((e,t={})=>(t.locale??J())===`pl`?joe(e):Aoe(e)),Noe=()=>`Prompt Cached Cost`,Poe=()=>`Koszt promptu z cache`,Foe=((e={},t={})=>(t.locale??J())===`pl`?Poe(e):Noe(e)),Ioe=()=>`Locally Cached (Input)`,Loe=()=>`Lokalny cache (wejście)`,Roe=((e={},t={})=>(t.locale??J())===`pl`?Loe(e):Ioe(e)),zoe=()=>`Locally Cached (Output)`,Boe=()=>`Lokalny cache (wyjście)`,Voe=((e={},t={})=>(t.locale??J())===`pl`?Boe(e):zoe(e)),Hoe=()=>`Settings`,Uoe=()=>`Ustawienia`,Woe=((e={},t={})=>(t.locale??J())===`pl`?Uoe(e):Hoe(e)),Goe=()=>`Clear`,Koe=()=>`Wyczyść`,qoe=((e={},t={})=>(t.locale??J())===`pl`?Koe(e):Goe(e)),Joe=()=>`expand`,Yoe=()=>`rozwiń`,Xoe=((e={},t={})=>(t.locale??J())===`pl`?Yoe(e):Joe(e)),Zoe=()=>`collapse`,Qoe=()=>`zwiń`,$oe=((e={},t={})=>(t.locale??J())===`pl`?Qoe(e):Zoe(e)),ese=()=>`Send`,tse=()=>`Wyślij`,nse=((e={},t={})=>(t.locale??J())===`pl`?tse(e):ese(e)),rse=()=>`Sending…`,ise=()=>`Wysyłanie…`,ase=((e={},t={})=>(t.locale??J())===`pl`?ise(e):rse(e)),ose=()=>`Copy failed`,sse=()=>`Kopiowanie nie powiodło się`,Mo=((e={},t={})=>(t.locale??J())===`pl`?sse(e):ose(e)),cse=()=>`Audit Logs`,lse=()=>`Logi audytowe`,use=((e={},t={})=>(t.locale??J())===`pl`?lse(e):cse(e)),dse=()=>`Retention help`,fse=()=>`Pomoc dotycząca retencji`,pse=((e={},t={})=>(t.locale??J())===`pl`?fse(e):dse(e)),mse=()=>`To change the retention period, set LOGGING_RETENTION_DAYS (environment variable) or logging.retention_days (config.yaml) and restart the gateway. The default is 30 days; 0 keeps audit logs forever.`,hse=()=>`Aby zmienić okres retencji, ustaw LOGGING_RETENTION_DAYS (zmienna środowiskowa) lub logging.retention_days (config.yaml), a następnie uruchom gateway ponownie. Domyślna wartość to 30 dni; 0 przechowuje logi audytowe bezterminowo.`,gse=((e={},t={})=>(t.locale??J())===`pl`?hse(e):mse(e)),_se=()=>`Audit logs are retained `,vse=()=>`Logi audytowe są przechowywane `,yse=((e={},t={})=>(t.locale??J())===`pl`?vse(e):_se(e)),bse=()=>`Audit logs are retained for `,xse=()=>`Logi audytowe są przechowywane przez `,Sse=((e={},t={})=>(t.locale??J())===`pl`?xse(e):bse(e)),Cse=()=>`indefinitely`,wse=()=>`czas nieokreślony`,Tse=((e={},t={})=>(t.locale??J())===`pl`?wse(e):Cse(e));function No(e,t,n){return new Intl.PluralRules(e,n).select(Number(t))}var Ese=e=>No(`en`,e?.count,{})===`one`?`${e?.count} day`:`${e?.count} days`,Dse=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} dzień`:t===`few`||t===`many`?`${e?.count} dni`:`${e?.count} dnia`},Ose=((e,t={})=>(t.locale??J())===`pl`?Dse(e):Ese(e)),kse=()=>`Audit logging is off. Live entries are temporary and disappear after refresh. Set `,Ase=()=>`Rejestrowanie audytu jest wyłączone. Wpisy Live są tymczasowe i znikają po odświeżeniu. Ustaw `,jse=((e={},t={})=>(t.locale??J())===`pl`?Ase(e):kse(e)),Mse=()=>` to persist them.`,Nse=()=>`, aby je zachować.`,Pse=((e={},t={})=>(t.locale??J())===`pl`?Nse(e):Mse(e)),Fse=e=>`Showing ${e?.start}–${e?.end} of ${e?.total} sessions`,Ise=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total} sesji`,Lse=((e,t={})=>(t.locale??J())===`pl`?Ise(e):Fse(e)),Rse=e=>`Showing ${e?.start}–${e?.end} of ${e?.total} logs`,zse=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total} logów`,Bse=((e,t={})=>(t.locale??J())===`pl`?zse(e):Rse(e)),Vse=()=>`Group by session`,Hse=()=>`Grupuj według sesji`,Use=((e={},t={})=>(t.locale??J())===`pl`?Hse(e):Vse(e)),Wse=()=>`Loading audit logs`,Gse=()=>`Wczytywanie logów audytowych`,Kse=((e={},t={})=>(t.locale??J())===`pl`?Gse(e):Wse(e)),qse=()=>`Search by request ID, model, provider, path, user path, or error…`,Jse=()=>`Szukaj według ID Requestu, modelu, dostawcy, ścieżki, User Path lub błędu…`,Yse=((e={},t={})=>(t.locale??J())===`pl`?Jse(e):qse(e)),Xse=()=>`Search by request ID, model, provider, path, user path, or error`,Zse=()=>`Szukaj według ID Requestu, modelu, dostawcy, ścieżki, User Path lub błędu`,Qse=((e={},t={})=>(t.locale??J())===`pl`?Zse(e):Xse(e)),$se=()=>`HTTP method filter`,ece=()=>`Filtr metody HTTP`,tce=((e={},t={})=>(t.locale??J())===`pl`?ece(e):$se(e)),nce=()=>`All Methods`,rce=()=>`Wszystkie metody`,ice=((e={},t={})=>(t.locale??J())===`pl`?rce(e):nce(e)),ace=()=>`Status code filter`,oce=()=>`Filtr kodu statusu`,sce=((e={},t={})=>(t.locale??J())===`pl`?oce(e):ace(e)),cce=()=>`All Statuses`,lce=()=>`Wszystkie statusy`,uce=((e={},t={})=>(t.locale??J())===`pl`?lce(e):cce(e)),dce=()=>`Streaming mode filter`,fce=()=>`Filtr trybu streamingu`,pce=((e={},t={})=>(t.locale??J())===`pl`?fce(e):dce(e)),mce=()=>`All Modes`,hce=()=>`Wszystkie tryby`,gce=((e={},t={})=>(t.locale??J())===`pl`?hce(e):mce(e)),_ce=()=>`Streaming`,vce=()=>`Streaming`,yce=((e={},t={})=>(t.locale??J())===`pl`?vce(e):_ce(e)),bce=()=>`Non-streaming`,xce=()=>`Bez streamingu`,Sce=((e={},t={})=>(t.locale??J())===`pl`?xce(e):bce(e)),Cce=()=>`Live stream connecting…`,wce=()=>`Łączenie ze strumieniem Live…`,Tce=((e={},t={})=>(t.locale??J())===`pl`?wce(e):Cce(e)),Ece=()=>`Live`,Dce=()=>`Live`,Oce=((e={},t={})=>(t.locale??J())===`pl`?Dce(e):Ece(e)),kce=()=>`Live paused — the selected date range does not include today. Set it to today to resume.`,Ace=()=>`Live wstrzymany — wybrany zakres dat nie obejmuje dzisiaj. Ustaw datę dzisiejszą, aby wznowić.`,jce=((e={},t={})=>(t.locale??J())===`pl`?Ace(e):kce(e)),Mce=()=>`Live paused while filters are active. Clear them to resume.`,Nce=()=>`Live wstrzymany, gdy filtry są aktywne. Wyczyść je, aby wznowić.`,Pce=((e={},t={})=>(t.locale??J())===`pl`?Nce(e):Mce(e)),Fce=()=>`Live paused on later pages. Go to the first page to resume.`,Ice=()=>`Live wstrzymany na dalszych stronach. Przejdź do pierwszej strony, aby wznowić.`,Lce=((e={},t={})=>(t.locale??J())===`pl`?Ice(e):Fce(e)),Rce=e=>No(`en`,e?.count,{})===`one`?`Session with ${e?.count} request`:`Session with ${e?.count} requests`,zce=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`Sesja z ${e?.count} Requestem`:t===`few`||t===`many`?`Sesja z ${e?.count} Requestami`:`Sesja z ${e?.count} Requestu`},Bce=((e,t={})=>(t.locale??J())===`pl`?zce(e):Rce(e)),Vce=e=>`Status ${e?.status} · ${e?.method}`,Hce=e=>`Status ${e?.status} · ${e?.method}`,Uce=((e,t={})=>(t.locale??J())===`pl`?Hce(e):Vce(e)),Wce=()=>`Open interactions`,Gce=()=>`Otwórz interakcje`,Po=((e={},t={})=>(t.locale??J())===`pl`?Gce(e):Wce(e)),Kce=()=>`Close interactions`,qce=()=>`Zamknij interakcje`,Fo=((e={},t={})=>(t.locale??J())===`pl`?qce(e):Kce(e)),Jce=()=>`Loading session requests`,Yce=()=>`Wczytywanie Request'ów sesji`,Xce=((e={},t={})=>(t.locale??J())===`pl`?Yce(e):Jce(e)),Zce=e=>`Showing the latest ${e?.shown} of ${e?.total} requests in this session.`,Qce=e=>`Wyświetlanie najnowszych ${e?.shown} z ${e?.total} Request'ów w tej sesji.`,$ce=((e,t={})=>(t.locale??J())===`pl`?Qce(e):Zce(e)),ele=()=>`Metadata:`,tle=()=>`Metadane:`,nle=((e={},t={})=>(t.locale??J())===`pl`?tle(e):ele(e)),rle=()=>`View total usage for this session`,ile=()=>`Wyświetl całkowite zużycie dla tej sesji`,Io=((e={},t={})=>(t.locale??J())===`pl`?ile(e):rle(e)),ale=()=>`Error Message`,ole=()=>`Komunikat błędu`,sle=((e={},t={})=>(t.locale??J())===`pl`?ole(e):ale(e)),cle=()=>`Headers`,lle=()=>`Nagłówki`,ule=((e={},t={})=>(t.locale??J())===`pl`?lle(e):cle(e)),dle=()=>`Copy Headers`,fle=()=>`Kopiuj nagłówki`,ple=((e={},t={})=>(t.locale??J())===`pl`?fle(e):dle(e)),mle=()=>`Body`,hle=()=>`Treść`,gle=((e={},t={})=>(t.locale??J())===`pl`?hle(e):mle(e)),_le=()=>`streaming`,vle=()=>`streaming`,yle=((e={},t={})=>(t.locale??J())===`pl`?vle(e):_le(e)),ble=()=>`Copy Body`,xle=()=>`Kopiuj treść`,Sle=((e={},t={})=>(t.locale??J())===`pl`?xle(e):ble(e)),Cle=()=>`Request and response`,wle=()=>`Request i odpowiedź`,Tle=((e={},t={})=>(t.locale??J())===`pl`?wle(e):Cle(e)),Ele=()=>`Share of the request body removed by this rewrite`,Dle=()=>`Część treści Requestu usunięta podczas tego przetwarzania`,Ole=((e={},t={})=>(t.locale??J())===`pl`?Dle(e):Ele(e)),kle=()=>`Request`,Ale=()=>`Request`,jle=((e={},t={})=>(t.locale??J())===`pl`?Ale(e):kle(e)),Mle=()=>`Response`,Nle=()=>`Odpowiedź`,Lo=((e={},t={})=>(t.locale??J())===`pl`?Nle(e):Mle(e)),Ple=()=>`Rewritten`,Fle=()=>`Po przetworzeniu`,Ile=((e={},t={})=>(t.locale??J())===`pl`?Fle(e):Ple(e)),Lle=()=>`What changed`,Rle=()=>`Co się zmieniło`,zle=((e={},t={})=>(t.locale??J())===`pl`?Rle(e):Lle(e)),Ble=()=>`Provider attempt failed`,Vle=()=>`Próba dostawcy nie powiodła się`,Hle=((e={},t={})=>(t.locale??J())===`pl`?Vle(e):Ble(e)),Ule=e=>No(`en`,e?.count,{})===`one`?`${e?.count} provider attempt`:`${e?.count} provider attempts`,Wle=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} próba dostawcy`:t===`few`?`${e?.count} próby dostawców`:t===`many`?`${e?.count} prób dostawców`:`${e?.count} próby dostawcy`},Gle=((e,t={})=>(t.locale??J())===`pl`?Wle(e):Ule(e)),Kle=e=>`${e?.count} provider attempts · ${e?.failed} failed`,qle=e=>`Próby dostawców: ${e?.count} · nieudane: ${e?.failed}`,Jle=((e,t={})=>(t.locale??J())===`pl`?qle(e):Kle(e)),Yle=()=>`succeeded`,Xle=()=>`powodzenie`,Zle=((e={},t={})=>(t.locale??J())===`pl`?Xle(e):Yle(e)),Qle=()=>`failed`,$le=()=>`niepowodzenie`,eue=((e={},t={})=>(t.locale??J())===`pl`?$le(e):Qle(e)),tue=()=>`No response was captured for this attempt.`,nue=()=>`Nie zapisano odpowiedzi dla tej próby.`,rue=((e={},t={})=>(t.locale??J())===`pl`?nue(e):tue(e)),iue=()=>`Request details were not captured.`,aue=()=>`Nie zapisano szczegółów Requestu.`,oue=((e={},t={})=>(t.locale??J())===`pl`?aue(e):iue(e)),sue=()=>`Waiting for request data…`,cue=()=>`Oczekiwanie na dane Requestu…`,Ro=((e={},t={})=>(t.locale??J())===`pl`?cue(e):sue(e)),lue=()=>`Request body was too large to capture.`,uue=()=>`Treść Requestu była zbyt duża, aby ją zapisać.`,due=((e={},t={})=>(t.locale??J())===`pl`?uue(e):lue(e)),fue=()=>`Response details were not captured.`,pue=()=>`Nie zapisano szczegółów odpowiedzi.`,mue=((e={},t={})=>(t.locale??J())===`pl`?pue(e):fue(e)),hue=()=>`Response in progress…`,gue=()=>`Odpowiedź w toku…`,_ue=((e={},t={})=>(t.locale??J())===`pl`?gue(e):hue(e)),vue=()=>`Response body was too large to capture.`,yue=()=>`Treść odpowiedzi była zbyt duża, aby ją zapisać.`,zo=((e={},t={})=>(t.locale??J())===`pl`?yue(e):vue(e)),bue=()=>`Rewritten body not captured (body logging disabled or body too large).`,xue=()=>`Nie zapisano przetworzonej treści (rejestrowanie treści jest wyłączone lub treść jest zbyt duża).`,Sue=((e={},t={})=>(t.locale??J())===`pl`?xue(e):bue(e)),Cue=e=>`${e?.rewriter}: no change`,wue=e=>`${e?.rewriter}: bez zmian`,Tue=((e,t={})=>(t.locale??J())===`pl`?wue(e):Cue(e)),Eue=e=>`${e?.rewriter} ran and forwarded the request unchanged`,Due=e=>`${e?.rewriter} uruchomił się i przekazał Request bez zmian`,Oue=((e,t={})=>(t.locale??J())===`pl`?Due(e):Eue(e)),kue=e=>`${e?.count} cached`,Aue=e=>`${e?.count} z cache`,jue=((e,t={})=>(t.locale??J())===`pl`?Aue(e):kue(e)),Mue=e=>`${e?.percent}% cached`,Nue=e=>`${e?.percent}% z cache`,Pue=((e,t={})=>(t.locale??J())===`pl`?Nue(e):Mue(e)),Fue=()=>`Audio too large to store.`,Iue=()=>`Audio jest zbyt duże, aby je zapisać.`,Lue=((e={},t={})=>(t.locale??J())===`pl`?Iue(e):Fue(e)),Rue=()=>`Audio not logged. Set LOGGING_LOG_AUDIO_BODIES=true to capture playable audio.`,zue=()=>`Audio nie zostało zapisane. Ustaw LOGGING_LOG_AUDIO_BODIES=true, aby zapisywać audio możliwe do odtworzenia.`,Bue=((e={},t={})=>(t.locale??J())===`pl`?zue(e):Rue(e)),Vue=()=>`Resize interactions panel`,Hue=()=>`Zmień szerokość panelu interakcji`,Uue=((e={},t={})=>(t.locale??J())===`pl`?Hue(e):Vue(e)),Wue=()=>`Interactions`,Gue=()=>`Interakcje`,Kue=((e={},t={})=>(t.locale??J())===`pl`?Gue(e):Wue(e)),que=()=>`Following the latest interaction`,Jue=()=>`Śledzenie najnowszej interakcji`,Yue=((e={},t={})=>(t.locale??J())===`pl`?Jue(e):que(e)),Xue=()=>`Viewing a historical interaction`,Zue=()=>`Wyświetlanie historycznej interakcji`,Que=((e={},t={})=>(t.locale??J())===`pl`?Zue(e):Xue(e)),$ue=()=>`Following the latest interaction as new events arrive`,ede=()=>`Śledzenie najnowszej interakcji w miarę pojawiania się nowych zdarzeń`,tde=((e={},t={})=>(t.locale??J())===`pl`?ede(e):$ue(e)),nde=()=>`Viewing a historical interaction; live updates are not followed`,rde=()=>`Wyświetlanie historycznej interakcji; aktualizacje Live nie są śledzone`,ide=((e={},t={})=>(t.locale??J())===`pl`?rde(e):nde(e)),ade=()=>`Exit fullscreen interactions`,ode=()=>`Wyłącz pełny ekran interakcji`,sde=((e={},t={})=>(t.locale??J())===`pl`?ode(e):ade(e)),cde=()=>`Show interactions fullscreen`,lde=()=>`Wyświetl interakcje na pełnym ekranie`,ude=((e={},t={})=>(t.locale??J())===`pl`?lde(e):cde(e)),dde=()=>`Exit fullscreen`,fde=()=>`Wyłącz pełny ekran`,pde=((e={},t={})=>(t.locale??J())===`pl`?fde(e):dde(e)),mde=()=>`Fullscreen`,hde=()=>`Pełny ekran`,gde=((e={},t={})=>(t.locale??J())===`pl`?hde(e):mde(e)),_de=()=>`Close interactions`,vde=()=>`Zamknij interakcje`,yde=((e={},t={})=>(t.locale??J())===`pl`?vde(e):_de(e)),bde=()=>`Navigate interaction messages`,xde=()=>`Nawigacja między wiadomościami interakcji`,Sde=((e={},t={})=>(t.locale??J())===`pl`?xde(e):bde(e)),Cde=()=>`Previous message`,wde=()=>`Poprzednia wiadomość`,Bo=((e={},t={})=>(t.locale??J())===`pl`?wde(e):Cde(e)),Tde=()=>`Next message`,Ede=()=>`Następna wiadomość`,Vo=((e={},t={})=>(t.locale??J())===`pl`?Ede(e):Tde(e)),Dde=()=>`Loading interactions…`,Ode=()=>`Wczytywanie interakcji…`,kde=((e={},t={})=>(t.locale??J())===`pl`?Ode(e):Dde(e)),Ade=()=>`No interaction data available for this entry.`,jde=()=>`Brak danych interakcji dla tego wpisu.`,Mde=((e={},t={})=>(t.locale??J())===`pl`?jde(e):Ade(e)),Nde=()=>`Hide estimated provider prompt-cache fill`,Pde=()=>`Ukryj szacowane wykorzystanie prompt cache dostawcy`,Fde=((e={},t={})=>(t.locale??J())===`pl`?Pde(e):Nde(e)),Ide=()=>`Show estimated provider prompt-cache fill`,Lde=()=>`Pokaż szacowane wykorzystanie prompt cache dostawcy`,Rde=((e={},t={})=>(t.locale??J())===`pl`?Lde(e):Ide(e)),zde=()=>`Blue fill shows cached prompt share`,Bde=()=>`Niebieskie wypełnienie pokazuje część promptu z cache`,Vde=((e={},t={})=>(t.locale??J())===`pl`?Bde(e):zde(e)),Hde=()=>`(estimated)`,Ude=()=>`(szacunkowo)`,Wde=((e={},t={})=>(t.locale??J())===`pl`?Ude(e):Hde(e)),Gde=()=>`Showing the newest part of this session and the selected log.`,Kde=()=>`Wyświetlanie najnowszej części tej sesji i wybranego logu.`,qde=((e={},t={})=>(t.locale??J())===`pl`?Kde(e):Gde(e)),Jde=()=>`Send a message`,Yde=()=>`Wyślij wiadomość`,Xde=((e={},t={})=>(t.locale??J())===`pl`?Yde(e):Jde(e)),Zde=()=>`Continue this interaction…`,Qde=()=>`Kontynuuj tę interakcję…`,$de=((e={},t={})=>(t.locale??J())===`pl`?Qde(e):Zde(e)),efe=()=>`Model is responding…`,tfe=()=>`Model odpowiada…`,nfe=((e={},t={})=>(t.locale??J())===`pl`?tfe(e):efe(e)),rfe=()=>`Unable to load interactions.`,ife=()=>`Nie można wczytać interakcji.`,afe=((e={},t={})=>(t.locale??J())===`pl`?ife(e):rfe(e)),ofe=()=>`Failed to load interactions.`,sfe=()=>`Wczytywanie interakcji nie powiodło się.`,cfe=((e={},t={})=>(t.locale??J())===`pl`?sfe(e):ofe(e)),lfe=()=>`Unable to send message.`,ufe=()=>`Nie można wysłać wiadomości.`,dfe=((e={},t={})=>(t.locale??J())===`pl`?ufe(e):lfe(e)),ffe=()=>`The request timed out.`,pfe=()=>`Upłynął limit czasu Requestu.`,mfe=((e={},t={})=>(t.locale??J())===`pl`?pfe(e):ffe(e)),hfe=()=>`Failed to send message.`,gfe=()=>`Wysyłanie wiadomości nie powiodło się.`,_fe=((e={},t={})=>(t.locale??J())===`pl`?gfe(e):hfe(e)),vfe=()=>`Message sent, but its saved interaction is not available yet.`,yfe=()=>`Wiadomość została wysłana, ale jej zapisana interakcja nie jest jeszcze dostępna.`,bfe=((e={},t={})=>(t.locale??J())===`pl`?yfe(e):vfe(e)),xfe=()=>`System Prompt`,Sfe=()=>`Prompt systemowy`,Cfe=((e={},t={})=>(t.locale??J())===`pl`?Sfe(e):xfe(e)),wfe=()=>`Agent`,Tfe=()=>`Agent`,Efe=((e={},t={})=>(t.locale??J())===`pl`?Tfe(e):wfe(e)),Dfe=()=>`Error`,Ofe=()=>`Błąd`,kfe=((e={},t={})=>(t.locale??J())===`pl`?Ofe(e):Dfe(e)),Afe=()=>`Function Call`,jfe=()=>`Wywołanie funkcji`,Mfe=((e={},t={})=>(t.locale??J())===`pl`?jfe(e):Afe(e)),Nfe=()=>`Function Result`,Pfe=()=>`Wynik funkcji`,Ffe=((e={},t={})=>(t.locale??J())===`pl`?Pfe(e):Nfe(e)),Ife=()=>`User`,Lfe=()=>`Użytkownik`,Rfe=((e={},t={})=>(t.locale??J())===`pl`?Lfe(e):Ife(e)),zfe=()=>`[Image]`,Bfe=()=>`[Obraz]`,Vfe=((e={},t={})=>(t.locale??J())===`pl`?Bfe(e):zfe(e)),Hfe=()=>`[Audio]`,Ufe=()=>`[Audio]`,Wfe=((e={},t={})=>(t.locale??J())===`pl`?Ufe(e):Hfe(e)),Gfe=()=>`[File]`,Kfe=()=>`[Plik]`,qfe=((e={},t={})=>(t.locale??J())===`pl`?Kfe(e):Gfe(e)),Jfe=e=>`[File: ${e?.name}]`,Yfe=e=>`[Plik: ${e?.name}]`,Xfe=((e,t={})=>(t.locale??J())===`pl`?Yfe(e):Jfe(e)),Zfe=()=>`Message copied`,Qfe=()=>`Wiadomość skopiowana`,$fe=((e={},t={})=>(t.locale??J())===`pl`?Qfe(e):Zfe(e)),epe=()=>`Copy message`,tpe=()=>`Kopiuj wiadomość`,Ho=((e={},t={})=>(t.locale??J())===`pl`?tpe(e):epe(e)),npe=e=>`${e?.percent}% of this visible prompt item is estimated provider-cached`,rpe=e=>`Szacuje się, że ${e?.percent}% tego widocznego elementu promptu pochodzi z cache dostawcy`,ipe=((e,t={})=>(t.locale??J())===`pl`?rpe(e):npe(e)),ape=()=>`Call ID`,ope=()=>`ID wywołania`,Uo=((e={},t={})=>(t.locale??J())===`pl`?ope(e):ape(e)),spe=e=>`Call ID (${e?.name})`,cpe=e=>`ID wywołania (${e?.name})`,lpe=((e,t={})=>(t.locale??J())===`pl`?cpe(e):spe(e)),upe=()=>`No arguments`,dpe=()=>`Brak argumentów`,Wo=((e={},t={})=>(t.locale??J())===`pl`?dpe(e):upe(e)),fpe=()=>`Copied`,ppe=()=>`Skopiowano`,mpe=((e={},t={})=>(t.locale??J())===`pl`?ppe(e):fpe(e)),hpe=()=>`Tokens`,gpe=()=>`Tokeny`,Go=((e={},t={})=>(t.locale??J())===`pl`?gpe(e):hpe(e)),_pe=()=>`Input tokens`,vpe=()=>`Input Tokens`,ype=((e={},t={})=>(t.locale??J())===`pl`?vpe(e):_pe(e)),bpe=()=>`Output tokens`,xpe=()=>`Output Tokens`,Spe=((e={},t={})=>(t.locale??J())===`pl`?xpe(e):bpe(e)),Cpe=()=>`Input Tokens`,wpe=()=>`Input Tokens`,Ko=((e={},t={})=>(t.locale??J())===`pl`?wpe(e):Cpe(e)),Tpe=()=>`Output Tokens`,Epe=()=>`Output Tokens`,qo=((e={},t={})=>(t.locale??J())===`pl`?Epe(e):Tpe(e)),Dpe=()=>`Total tokens`,Ope=()=>`Wszystkie tokeny`,kpe=((e={},t={})=>(t.locale??J())===`pl`?Ope(e):Dpe(e)),Ape=()=>`Total Requests`,jpe=()=>`Łączna liczba Request'ów`,Jo=((e={},t={})=>(t.locale??J())===`pl`?jpe(e):Ape(e)),Mpe=()=>`Cache Hits`,Npe=()=>`Trafienia cache`,Yo=((e={},t={})=>(t.locale??J())===`pl`?Npe(e):Mpe(e)),Ppe=()=>`Estimated Cost`,Fpe=()=>`Szacowany koszt`,Xo=((e={},t={})=>(t.locale??J())===`pl`?Fpe(e):Ppe(e)),Ipe=()=>`Local Cache`,Lpe=()=>`Lokalny cache`,Rpe=((e={},t={})=>(t.locale??J())===`pl`?Lpe(e):Ipe(e)),zpe=()=>`Prompt Cache Rate`,Bpe=()=>`Wskaźnik prompt cache`,Vpe=((e={},t={})=>(t.locale??J())===`pl`?Bpe(e):zpe(e)),Hpe=()=>`Share of input tokens served from the provider prompt cache over the selected period`,Upe=()=>`Część input tokens obsłużona przez prompt cache dostawcy w wybranym okresie`,Wpe=((e={},t={})=>(t.locale??J())===`pl`?Upe(e):Hpe(e)),Gpe=e=>`Prompt cache rate ${e?.rate}`,Kpe=e=>`Wskaźnik prompt cache: ${e?.rate}`,qpe=((e,t={})=>(t.locale??J())===`pl`?Kpe(e):Gpe(e)),Jpe=()=>`Provider Status`,Ype=()=>`Status provider'ów`,Xpe=((e={},t={})=>(t.locale??J())===`pl`?Ype(e):Jpe(e)),Zpe=()=>`View providers overview`,Qpe=()=>`Zobacz przegląd dostawców`,$pe=((e={},t={})=>(t.locale??J())===`pl`?Qpe(e):Zpe(e)),eme=()=>`View MCP servers`,tme=()=>`Zobacz serwery MCP`,nme=((e={},t={})=>(t.locale??J())===`pl`?tme(e):eme(e)),rme=()=>`Requests by Status`,ime=()=>`Requesty według statusu`,ame=((e={},t={})=>(t.locale??J())===`pl`?ime(e):rme(e)),ome=()=>`Request status summary`,sme=()=>`Podsumowanie statusów Request'ów`,cme=((e={},t={})=>(t.locale??J())===`pl`?sme(e):ome(e)),lme=()=>`Share of requests answered with a 2xx status`,ume=()=>`Część Request'ów zakończonych statusem 2xx`,dme=((e={},t={})=>(t.locale??J())===`pl`?ume(e):lme(e)),fme=()=>`Success`,pme=()=>`Powodzenie`,mme=((e={},t={})=>(t.locale??J())===`pl`?pme(e):fme(e)),hme=()=>`Provider Latency`,gme=()=>`Opóźnienie dostawców`,_me=((e={},t={})=>(t.locale??J())===`pl`?gme(e):hme(e)),vme=()=>`Provider latency help`,yme=()=>`Pomoc dotycząca opóźnienia dostawców`,bme=((e={},t={})=>(t.locale??J())===`pl`?yme(e):vme(e)),xme=()=>`Average duration of successful requests measured at the gateway for each provider. Local cache hits and failed requests are excluded; streamed responses count until the stream completes.`,Sme=()=>`Średni czas trwania udanych Request'ów mierzony przez gateway dla każdego dostawcy. Trafienia lokalnego cache i nieudane Requesty są pomijane; w przypadku streamingu czas jest liczony do zakończenia strumienia.`,Cme=((e={},t={})=>(t.locale??J())===`pl`?Sme(e):xme(e)),wme=()=>`Average duration of successful, uncached requests across all providers`,Tme=()=>`Średni czas trwania udanych Request'ów bez cache dla wszystkich dostawców`,Eme=((e={},t={})=>(t.locale??J())===`pl`?Tme(e):wme(e)),Dme=()=>`Avg`,Ome=()=>`Śr.`,kme=((e={},t={})=>(t.locale??J())===`pl`?Ome(e):Dme(e)),Ame=()=>`Providers Overview`,jme=()=>`Przegląd dostawców`,Mme=((e={},t={})=>(t.locale??J())===`pl`?jme(e):Ame(e)),Nme=()=>`Loading provider status`,Pme=()=>`Wczytywanie statusu dostawców`,Fme=((e={},t={})=>(t.locale??J())===`pl`?Pme(e):Nme(e)),Ime=()=>`Show Details`,Lme=()=>`Pokaż szczegóły`,Rme=((e={},t={})=>(t.locale??J())===`pl`?Lme(e):Ime(e)),zme=()=>`Hide Details`,Bme=()=>`Ukryj szczegóły`,Vme=((e={},t={})=>(t.locale??J())===`pl`?Bme(e):zme(e)),Zo=e=>`View ${e?.provider} provider docs`,Qo=e=>`Zobacz dokumentację dostawcy ${e?.provider}`,$o=((e,t={})=>(t.locale??J())===`pl`?Qo(e):Zo(e)),es=()=>`Models Available`,ts=()=>`Dostępne modele`,ns=((e={},t={})=>(t.locale??J())===`pl`?ts(e):es(e)),rs=()=>`Last Checked`,is=()=>`Ostatnio sprawdzono`,as=((e={},t={})=>(t.locale??J())===`pl`?is(e):rs(e)),os=e=>`Expand ${e?.provider} details`,ss=e=>`Rozwiń szczegóły dostawcy ${e?.provider}`,cs=((e,t={})=>(t.locale??J())===`pl`?ss(e):os(e)),ls=e=>`Collapse ${e?.provider} details`,us=e=>`Zwiń szczegóły dostawcy ${e?.provider}`,ds=((e,t={})=>(t.locale??J())===`pl`?us(e):ls(e)),fs=()=>`Expand details`,ps=()=>`Rozwiń szczegóły`,ms=((e={},t={})=>(t.locale??J())===`pl`?ps(e):fs(e)),hs=()=>`Collapse details`,gs=()=>`Zwiń szczegóły`,_s=((e={},t={})=>(t.locale??J())===`pl`?gs(e):hs(e)),vs=()=>`Base URL`,ys=()=>`Bazowy URL`,bs=((e={},t={})=>(t.locale??J())===`pl`?ys(e):vs(e)),xs=()=>`API Version`,Ss=()=>`Wersja API`,Cs=((e={},t={})=>(t.locale??J())===`pl`?Ss(e):xs(e)),ws=()=>`Recent Requests`,Ts=()=>`Ostatnie Requesty`,Es=((e={},t={})=>(t.locale??J())===`pl`?Ts(e):ws(e)),Ds=()=>`Breaker State`,Os=()=>`Stan circuit breakera`,ks=((e={},t={})=>(t.locale??J())===`pl`?Os(e):Ds(e)),As=()=>`Models (Recent Traffic)`,js=()=>`Modele (ostatni ruch)`,Ms=((e={},t={})=>(t.locale??J())===`pl`?js(e):As(e)),Ns=()=>`Configured Models`,Ps=()=>`Skonfigurowane modele`,Fs=((e={},t={})=>(t.locale??J())===`pl`?Ps(e):Ns(e)),Is=()=>`Retry`,Ls=()=>`Retry`,Rs=((e={},t={})=>(t.locale??J())===`pl`?Ls(e):Is(e)),zs=()=>`Circuit Breaker`,Bs=()=>`Circuit Breaker`,Vs=((e={},t={})=>(t.locale??J())===`pl`?Bs(e):zs(e)),Hs=()=>`None configured`,Us=()=>`Brak konfiguracji`,Ws=((e={},t={})=>(t.locale??J())===`pl`?Us(e):Hs(e)),Gs=()=>`All healthy`,Ks=()=>`Wszystkie działają prawidłowo`,qs=((e={},t={})=>(t.locale??J())===`pl`?Ks(e):Gs(e)),Js=()=>`None healthy`,Ys=()=>`Żaden nie działa prawidłowo`,Xs=((e={},t={})=>(t.locale??J())===`pl`?Ys(e):Js(e)),Zs=()=>`Automatic`,Qs=()=>`Automatycznie`,$s=((e={},t={})=>(t.locale??J())===`pl`?Qs(e):Zs(e)),ec=e=>`Last error: ${e?.error}`,tc=e=>`Ostatni błąd: ${e?.error}`,nc=((e,t={})=>(t.locale??J())===`pl`?tc(e):ec(e)),rc=()=>`All MCP servers connected`,ic=()=>`Wszystkie serwery MCP są połączone`,ac=((e={},t={})=>(t.locale??J())===`pl`?ic(e):rc(e)),oc=()=>`Share of input tokens over the selected period`,sc=()=>`Udział input tokens w wybranym okresie`,cc=((e={},t={})=>(t.locale??J())===`pl`?sc(e):oc(e)),lc=()=>`No usage in the selected period yet`,uc=()=>`Brak danych o zużyciu w wybranym okresie`,dc=((e={},t={})=>(t.locale??J())===`pl`?uc(e):lc(e)),fc=()=>`Regular`,pc=()=>`Standardowe`,mc=((e={},t={})=>(t.locale??J())===`pl`?pc(e):fc(e)),hc=e=>`Includes ${e?.count} cache-write tokens`,gc=e=>`Obejmuje ${e?.count} tokenów zapisu do cache`,_c=((e,t={})=>(t.locale??J())===`pl`?gc(e):hc(e)),vc=()=>`Prompt cached`,yc=()=>`Prompt cache`,bc=((e={},t={})=>(t.locale??J())===`pl`?yc(e):vc(e)),xc=()=>`Provider prompt-cache reads`,Sc=()=>`Odczyty z prompt cache dostawcy`,Cc=((e={},t={})=>(t.locale??J())===`pl`?Sc(e):xc(e)),wc=()=>`Locally cached`,Tc=()=>`Lokalny cache`,Ec=((e={},t={})=>(t.locale??J())===`pl`?Tc(e):wc(e)),Dc=()=>`Served from GoModel response cache`,Oc=()=>`Obsłużone przez response cache GoModel`,kc=((e={},t={})=>(t.locale??J())===`pl`?Oc(e):Dc(e)),Ac=e=>`Cache breakdown of input tokens — ${e?.details}`,jc=e=>`Podział input tokens według cache — ${e?.details}`,Mc=((e,t={})=>(t.locale??J())===`pl`?jc(e):Ac(e)),Nc=()=>`Activity`,Pc=()=>`Aktywność`,Fc=((e={},t={})=>(t.locale??J())===`pl`?Pc(e):Nc(e)),Ic=()=>`Loading activity`,Lc=()=>`Wczytywanie aktywności`,Rc=((e={},t={})=>(t.locale??J())===`pl`?Lc(e):Ic(e)),zc=()=>`Activity calendar mode`,Bc=()=>`Tryb kalendarza aktywności`,Vc=((e={},t={})=>(t.locale??J())===`pl`?Bc(e):zc(e)),Hc=()=>`Costs`,Uc=()=>`Koszty`,Wc=((e={},t={})=>(t.locale??J())===`pl`?Uc(e):Hc(e)),Gc=()=>`Mon`,Kc=()=>`Pon`,qc=((e={},t={})=>(t.locale??J())===`pl`?Kc(e):Gc(e)),Jc=()=>`Wed`,Yc=()=>`Śr`,Xc=((e={},t={})=>(t.locale??J())===`pl`?Yc(e):Jc(e)),Zc=()=>`Fri`,Qc=()=>`Pt`,$c=((e={},t={})=>(t.locale??J())===`pl`?Qc(e):Zc(e)),el=()=>`Less`,tl=()=>`Mniej`,nl=((e={},t={})=>(t.locale??J())===`pl`?tl(e):el(e)),rl=()=>`More`,il=()=>`Więcej`,al=((e={},t={})=>(t.locale??J())===`pl`?il(e):rl(e)),ol=()=>`Live Token Throughput`,sl=()=>`Przepływ tokenów`,cl=((e={},t={})=>(t.locale??J())===`pl`?sl(e):ol(e)),ll=()=>`Live token throughput granularity`,ul=()=>`Ziarnistość przepływu tokenów`,dl=((e={},t={})=>(t.locale??J())===`pl`?ul(e):ll(e)),fl=()=>`Waiting for live requests…`,pl=()=>`Oczekiwanie na Requesty Live…`,ml=((e={},t={})=>(t.locale??J())===`pl`?pl(e):fl(e)),hl=()=>`Seconds`,gl=()=>`Sekundy`,_l=((e={},t={})=>(t.locale??J())===`pl`?gl(e):hl(e)),vl=()=>`Minutes`,yl=()=>`Minuty`,bl=((e={},t={})=>(t.locale??J())===`pl`?yl(e):vl(e)),xl=()=>`Hours`,Sl=()=>`Godziny`,Cl=((e={},t={})=>(t.locale??J())===`pl`?Sl(e):xl(e)),wl=()=>`Days`,Tl=()=>`Dni`,El=((e={},t={})=>(t.locale??J())===`pl`?Tl(e):wl(e)),Dl=()=>`Last 60 seconds`,Ol=()=>`Ostatnie 60 sekund`,kl=((e={},t={})=>(t.locale??J())===`pl`?Ol(e):Dl(e)),Al=()=>`Last 60 minutes`,jl=()=>`Ostatnie 60 minut`,Ml=((e={},t={})=>(t.locale??J())===`pl`?jl(e):Al(e)),Nl=()=>`Last 24 hours`,Pl=()=>`Ostatnie 24 godziny`,Fl=((e={},t={})=>(t.locale??J())===`pl`?Pl(e):Nl(e)),Il=()=>`Last 30 days`,Ll=()=>`Ostatnie 30 dni`,Rl=((e={},t={})=>(t.locale??J())===`pl`?Ll(e):Il(e)),zl=()=>`Prompt (Input) Cached`,Bl=()=>`Prompt (wejście) z cache`,Vl=((e={},t={})=>(t.locale??J())===`pl`?Bl(e):zl(e)),Hl=()=>`Locally Cached`,Ul=()=>`Lokalny cache`,Wl=((e={},t={})=>(t.locale??J())===`pl`?Ul(e):Hl(e)),Gl=e=>`Total: ${e?.total}`,Kl=e=>`Łącznie: ${e?.total}`,ql=((e,t={})=>(t.locale??J())===`pl`?Kl(e):Gl(e)),Jl=e=>`${e?.provider} to providers + ${e?.cache} from cache`,Yl=e=>`${e?.provider} do dostawców + ${e?.cache} z cache`,Xl=((e,t={})=>(t.locale??J())===`pl`?Yl(e):Jl(e)),Zl=e=>`${e?.label}: ${e?.tokens} input tokens (${e?.percent}%)`,Ql=e=>`${e?.label}: ${e?.tokens} input tokens (${e?.percent}%)`,$l=((e,t={})=>(t.locale??J())===`pl`?Ql(e):Zl(e)),eu=()=>`no data`,tu=()=>`brak danych`,nu=((e={},t={})=>(t.locale??J())===`pl`?tu(e):eu(e)),ru=e=>No(`en`,e?.count,{})===`one`?`${e?.count} needs attention`:`${e?.count} need attention`,iu=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} wymaga uwagi`:t===`few`?`${e?.count} wymagają uwagi`:`${e?.count} wymaga uwagi`},au=((e,t={})=>(t.locale??J())===`pl`?iu(e):ru(e)),ou=e=>`${e?.count} servers need attention`,su=e=>`Serwery wymagające uwagi: ${e?.count}`,cu=((e,t={})=>(t.locale??J())===`pl`?su(e):ou(e)),lu=e=>`${e?.connected} of ${e?.total} servers connected`,uu=e=>`Połączone serwery: ${e?.connected} z ${e?.total}`,du=((e,t={})=>(t.locale??J())===`pl`?uu(e):lu(e)),fu=e=>`$${e?.total} in the last year`,pu=e=>`$${e?.total} w ostatnim roku`,mu=((e,t={})=>(t.locale??J())===`pl`?pu(e):fu(e)),hu=e=>`${e?.total} tokens in the last year`,gu=e=>`${e?.total} tokenów w ostatnim roku`,_u=((e,t={})=>(t.locale??J())===`pl`?gu(e):hu(e)),vu=e=>`$${e?.total} on ${e?.date}`,yu=e=>`$${e?.total} dnia ${e?.date}`,bu=((e,t={})=>(t.locale??J())===`pl`?yu(e):vu(e)),xu=e=>`${e?.total} tokens on ${e?.date}`,Su=e=>`${e?.total} tokenów dnia ${e?.date}`,Cu=((e,t={})=>(t.locale??J())===`pl`?Su(e):xu(e)),wu=e=>`Live token throughput, ${e?.window}. Input ${e?.input}, output ${e?.output}, prompt cached ${e?.prompt}, locally cached ${e?.local} tokens.`,Tu=e=>`Przepływ tokenów, ${e?.window}. Input ${e?.input}, output ${e?.output}, prompt cache ${e?.prompt}, lokalny cache ${e?.local} tokenów.`,Eu=((e,t={})=>(t.locale??J())===`pl`?Tu(e):wu(e)),Du=()=>`Other`,Ou=()=>`Inne`,ku=((e={},t={})=>(t.locale??J())===`pl`?Ou(e):Du(e)),Au=()=>`Timezone`,ju=()=>`Strefa czasowa`,Mu=((e={},t={})=>(t.locale??J())===`pl`?ju(e):Au(e)),Nu=()=>`Timezone help`,Pu=()=>`Pomoc dotycząca strefy czasowej`,Fu=((e={},t={})=>(t.locale??J())===`pl`?Pu(e):Nu(e)),Iu=()=>`Day-based analytics, charts, and date filters use your effective timezone. Usage and audit logs keep UTC in the hover title while rendering row timestamps in your effective timezone.`,Lu=()=>`Analityka dzienna, wykresy i filtry dat korzystają z obowiązującej strefy czasowej. Logi zużycia i audytu zachowują UTC w podpowiedzi, a znaczniki czasu w wierszach wyświetlają w obowiązującej strefie czasowej.`,Ru=((e={},t={})=>(t.locale??J())===`pl`?Lu(e):Iu(e)),zu=()=>`Timezone Override`,Bu=()=>`Nadpisanie strefy czasowej`,Vu=((e={},t={})=>(t.locale??J())===`pl`?Bu(e):zu(e)),Hu=e=>`Automatic (${e?.timezone})`,Uu=e=>`Automatycznie (${e?.timezone})`,Wu=((e,t={})=>(t.locale??J())===`pl`?Uu(e):Hu(e)),Gu=()=>`Use Browser Timezone`,Ku=()=>`Użyj strefy czasowej przeglądarki`,qu=((e={},t={})=>(t.locale??J())===`pl`?Ku(e):Gu(e)),Ju=()=>`Failover`,Yu=()=>`Failover`,Xu=((e={},t={})=>(t.locale??J())===`pl`?Yu(e):Ju(e)),Zu=()=>`Generating…`,Qu=()=>`Generowanie…`,$u=((e={},t={})=>(t.locale??J())===`pl`?Qu(e):Zu(e)),ed=()=>`Generate failover models automatically`,td=()=>`Wygeneruj modele failover automatycznie`,nd=((e={},t={})=>(t.locale??J())===`pl`?td(e):ed(e)),rd=()=>`Remove all failover models`,id=()=>`Usuń wszystkie modele failover`,ad=((e={},t={})=>(t.locale??J())===`pl`?id(e):rd(e)),od=()=>`Reset All Budgets`,sd=()=>`Zresetuj wszystkie budżety`,cd=((e={},t={})=>(t.locale??J())===`pl`?sd(e):od(e)),ld=()=>`Start new budget periods for every configured budget without changing the limits.`,ud=()=>`Rozpocznij nowe okresy dla wszystkich skonfigurowanych budżetów bez zmiany limitów.`,dd=((e={},t={})=>(t.locale??J())===`pl`?ud(e):ld(e)),fd=()=>`Reset Budgets`,pd=()=>`Resetuj budżety`,md=((e={},t={})=>(t.locale??J())===`pl`?pd(e):fd(e)),hd=()=>`Budget help`,gd=()=>`Pomoc dotycząca budżetów`,_d=((e={},t={})=>(t.locale??J())===`pl`?gd(e):hd(e)),vd=()=>`Budget reset anchors are stored in the database and evaluated in UTC. Hourly budgets reset at the top of each hour.`,yd=()=>`Punkty resetowania budżetów są przechowywane w bazie danych i obliczane w UTC. Budżety godzinowe resetują się na początku każdej godziny.`,bd=((e={},t={})=>(t.locale??J())===`pl`?yd(e):vd(e)),xd=()=>`Budget Resets`,Sd=()=>`Resetowanie budżetów`,Cd=((e={},t={})=>(t.locale??J())===`pl`?Sd(e):xd(e)),wd=()=>`Budgets`,Td=()=>`Budżety`,Ed=((e={},t={})=>(t.locale??J())===`pl`?Td(e):wd(e)),Dd=()=>`Budgets help`,Od=()=>`Pomoc dotycząca budżetów`,kd=((e={},t={})=>(t.locale??J())===`pl`?Od(e):Dd(e)),Ad=()=>`Budgets are evaluated from tracked usage cost records for each user path subtree. Enforcement runs only when Budget is enabled for the active workflow.`,jd=()=>`Budżety są obliczane na podstawie zarejestrowanych kosztów zużycia dla każdego poddrzewa User Path. Egzekwowanie działa tylko wtedy, gdy Budget jest włączony w aktywnym Workflow.`,Md=((e={},t={})=>(t.locale??J())===`pl`?jd(e):Ad(e)),Nd=()=>`Create Budget`,Pd=()=>`Utwórz budżet`,Fd=((e={},t={})=>(t.locale??J())===`pl`?Pd(e):Nd(e)),Id=()=>`Budget management is unavailable.`,Ld=()=>`Zarządzanie budżetami jest niedostępne.`,Rd=((e={},t={})=>(t.locale??J())===`pl`?Ld(e):Id(e)),zd=()=>`Loading budgets...`,Bd=()=>`Wczytywanie budżetów...`,Vd=((e={},t={})=>(t.locale??J())===`pl`?Bd(e):zd(e)),Hd=()=>`Filter by user path, label, or period...`,Ud=()=>`Filtruj według User Path, etykiety lub okresu...`,Wd=((e={},t={})=>(t.locale??J())===`pl`?Ud(e):Hd(e)),Gd=()=>`Filter budgets by user path, label, or period`,Kd=()=>`Filtruj budżety według User Path, etykiety lub okresu`,qd=((e={},t={})=>(t.locale??J())===`pl`?Kd(e):Gd(e)),Jd=()=>`Sort by`,Yd=()=>`Sortuj według`,Xd=((e={},t={})=>(t.locale??J())===`pl`?Yd(e):Jd(e)),Zd=()=>`Sort budgets by`,Qd=()=>`Sortuj budżety według`,$d=((e={},t={})=>(t.locale??J())===`pl`?Qd(e):Zd(e)),ef=()=>`Scope & Subject`,tf=()=>`Zakres i podmiot`,nf=((e={},t={})=>(t.locale??J())===`pl`?tf(e):ef(e)),rf=()=>`Period`,af=()=>`Okres`,of=((e={},t={})=>(t.locale??J())===`pl`?af(e):rf(e)),sf=()=>`No budgets configured yet.`,cf=()=>`Nie skonfigurowano jeszcze budżetów.`,lf=((e={},t={})=>(t.locale??J())===`pl`?cf(e):sf(e)),uf=()=>`No budgets match your filter.`,df=()=>`Żaden budżet nie pasuje do filtra.`,ff=((e={},t={})=>(t.locale??J())===`pl`?df(e):uf(e)),pf=()=>`Edit Budget`,mf=()=>`Edytuj budżet`,hf=((e={},t={})=>(t.locale??J())===`pl`?mf(e):pf(e)),gf=()=>`Create Budget`,_f=()=>`Utwórz budżet`,vf=((e={},t={})=>(t.locale??J())===`pl`?_f(e):gf(e)),yf=()=>`Budget editor`,bf=()=>`Edytor budżetu`,xf=((e={},t={})=>(t.locale??J())===`pl`?bf(e):yf(e)),Sf=()=>`Save Budget`,Cf=()=>`Zapisz budżet`,wf=((e={},t={})=>(t.locale??J())===`pl`?Cf(e):Sf(e)),Tf=()=>`Scope`,Ef=()=>`Zakres`,Df=((e={},t={})=>(t.locale??J())===`pl`?Ef(e):Tf(e)),Of=()=>`Period Seconds`,kf=()=>`Okres w sekundach`,Af=((e={},t={})=>(t.locale??J())===`pl`?kf(e):Of(e)),jf=()=>`Amount`,Mf=()=>`Kwota`,Nf=((e={},t={})=>(t.locale??J())===`pl`?Mf(e):jf(e)),Pf=()=>`Editing a budget updates its limit only. Use Reset to start a new budget period.`,Ff=()=>`Edycja budżetu zmienia tylko jego limit. Użyj Reset, aby rozpocząć nowy okres budżetowy.`,If=((e={},t={})=>(t.locale??J())===`pl`?Ff(e):Pf(e)),Lf=()=>`Override Existing Budget`,Rf=()=>`Nadpisz istniejący budżet`,zf=((e={},t={})=>(t.locale??J())===`pl`?Rf(e):Lf(e)),Bf=()=>`Close budget override dialog`,Vf=()=>`Zamknij okno nadpisywania budżetu`,Hf=((e={},t={})=>(t.locale??J())===`pl`?Vf(e):Bf(e)),Uf=()=>`Saving...`,Wf=()=>`Zapisywanie...`,Gf=((e={},t={})=>(t.locale??J())===`pl`?Wf(e):Uf(e)),Kf=()=>`Override Budget`,qf=()=>`Nadpisz budżet`,Jf=((e={},t={})=>(t.locale??J())===`pl`?qf(e):Kf(e)),Yf=()=>`User path`,Xf=()=>`User Path`,Zf=((e={},t={})=>(t.locale??J())===`pl`?Xf(e):Yf(e)),Qf=()=>`user path`,$f=()=>`User Path`,ep=((e={},t={})=>(t.locale??J())===`pl`?$f(e):Qf(e)),tp=()=>`User Path`,np=()=>`User Path`,rp=((e={},t={})=>(t.locale??J())===`pl`?np(e):tp(e)),ip=()=>`Label`,ap=()=>`Etykieta`,op=((e={},t={})=>(t.locale??J())===`pl`?ap(e):ip(e)),sp=()=>`label`,cp=()=>`etykieta`,lp=((e={},t={})=>(t.locale??J())===`pl`?cp(e):sp(e)),up=()=>`Hourly`,dp=()=>`Co godzinę`,fp=((e={},t={})=>(t.locale??J())===`pl`?dp(e):up(e)),pp=()=>`Daily`,mp=()=>`Codziennie`,hp=((e={},t={})=>(t.locale??J())===`pl`?mp(e):pp(e)),gp=()=>`Weekly`,_p=()=>`Co tydzień`,vp=((e={},t={})=>(t.locale??J())===`pl`?_p(e):gp(e)),yp=()=>`Monthly`,bp=()=>`Co miesiąc`,xp=((e={},t={})=>(t.locale??J())===`pl`?bp(e):yp(e)),Sp=()=>`Custom seconds`,Cp=()=>`Niestandardowa liczba sekund`,wp=((e={},t={})=>(t.locale??J())===`pl`?Cp(e):Sp(e)),Tp=()=>`User path is required.`,Ep=()=>`User Path jest wymagany.`,Dp=((e={},t={})=>(t.locale??J())===`pl`?Ep(e):Tp(e)),Op=()=>`User path cannot contain "." or ".." segments.`,kp=()=>`User Path nie może zawierać segmentów "." ani "..".`,Ap=((e={},t={})=>(t.locale??J())===`pl`?kp(e):Op(e)),jp=()=>`User path cannot contain ":" segments.`,Mp=()=>`User Path nie może zawierać segmentów z ":".`,Np=((e={},t={})=>(t.locale??J())===`pl`?Mp(e):jp(e)),Pp=()=>`Label is required.`,Fp=()=>`Etykieta jest wymagana.`,Ip=((e={},t={})=>(t.locale??J())===`pl`?Fp(e):Pp(e)),Lp=()=>`Amount must be greater than 0.`,Rp=()=>`Kwota musi być większa od 0.`,zp=((e={},t={})=>(t.locale??J())===`pl`?Rp(e):Lp(e)),Bp=()=>`Period seconds must be greater than 0.`,Vp=()=>`Okres w sekundach musi być większy od 0.`,Hp=((e={},t={})=>(t.locale??J())===`pl`?Vp(e):Bp(e)),Up=e=>`Custom ${e?.period}`,Wp=e=>`Niestandardowy okres: ${e?.period}`,Gp=((e,t={})=>(t.locale??J())===`pl`?Wp(e):Up(e)),Kp=e=>`${e?.count} seconds`,qp=e=>`${e?.count} s`,Jp=((e,t={})=>(t.locale??J())===`pl`?qp(e):Kp(e)),Yp=()=>`1 second`,Xp=()=>`1 sekunda`,Zp=((e={},t={})=>(t.locale??J())===`pl`?Xp(e):Yp(e)),Qp=()=>`1 hour`,$p=()=>`1 godzina`,em=((e={},t={})=>(t.locale??J())===`pl`?$p(e):Qp(e)),tm=()=>`1 day`,nm=()=>`1 dzień`,rm=((e={},t={})=>(t.locale??J())===`pl`?nm(e):tm(e)),im=()=>`1 week`,am=()=>`1 tydzień`,om=((e={},t={})=>(t.locale??J())===`pl`?am(e):im(e)),sm=()=>`1 month`,cm=()=>`1 miesiąc`,lm=((e={},t={})=>(t.locale??J())===`pl`?cm(e):sm(e)),um=()=>`Created from the dashboard.`,dm=()=>`Utworzono w dashboardzie.`,fm=((e={},t={})=>(t.locale??J())===`pl`?dm(e):um(e)),pm=()=>`Loaded from configuration.`,mm=()=>`Wczytano z konfiguracji.`,hm=((e={},t={})=>(t.locale??J())===`pl`?mm(e):pm(e)),gm=e=>`Budget source: ${e?.source}`,_m=e=>`Źródło budżetu: ${e?.source}`,vm=((e,t={})=>(t.locale??J())===`pl`?_m(e):gm(e)),ym=e=>`${e?.amount} remaining`,bm=e=>`Pozostało ${e?.amount}`,xm=((e,t={})=>(t.locale??J())===`pl`?bm(e):ym(e)),Sm=e=>`${e?.amount} over`,Cm=e=>`Przekroczono o ${e?.amount}`,wm=((e,t={})=>(t.locale??J())===`pl`?Cm(e):Sm(e)),Tm=()=>`Edit`,Em=()=>`Edytuj`,Dm=((e={},t={})=>(t.locale??J())===`pl`?Em(e):Tm(e)),Om=()=>`Edit budget`,km=()=>`Edytuj budżet`,Am=((e={},t={})=>(t.locale??J())===`pl`?km(e):Om(e)),jm=()=>`Reset`,Mm=()=>`Reset`,Nm=((e={},t={})=>(t.locale??J())===`pl`?Mm(e):jm(e)),Pm=()=>`Resetting`,Fm=()=>`Resetowanie`,Im=((e={},t={})=>(t.locale??J())===`pl`?Fm(e):Pm(e)),Lm=()=>`Reset budget`,Rm=()=>`Zresetuj budżet`,zm=((e={},t={})=>(t.locale??J())===`pl`?Rm(e):Lm(e)),Bm=()=>`Resetting budget`,Vm=()=>`Resetowanie budżetu`,Hm=((e={},t={})=>(t.locale??J())===`pl`?Vm(e):Bm(e)),Um=()=>`Delete`,Wm=()=>`Usuń`,Gm=((e={},t={})=>(t.locale??J())===`pl`?Wm(e):Um(e)),Km=()=>`Deleting`,qm=()=>`Usuwanie`,Jm=((e={},t={})=>(t.locale??J())===`pl`?qm(e):Km(e)),Ym=()=>`Delete budget`,Xm=()=>`Usuń budżet`,Zm=((e={},t={})=>(t.locale??J())===`pl`?Xm(e):Ym(e)),Qm=()=>`Deleting budget`,$m=()=>`Usuwanie budżetu`,eh=((e={},t={})=>(t.locale??J())===`pl`?$m(e):Qm(e)),th=()=>`Usage`,nh=()=>`Zużycie`,rh=((e={},t={})=>(t.locale??J())===`pl`?nh(e):th(e)),ih=e=>`Budget usage: ${e?.spent} of ${e?.amount}, ${e?.remaining}`,ah=e=>`Zużycie budżetu: ${e?.spent} z ${e?.amount}, ${e?.remaining}`,oh=((e,t={})=>(t.locale??J())===`pl`?ah(e):ih(e)),sh=e=>`${e?.spent} of ${e?.amount}`,ch=e=>`${e?.spent} z ${e?.amount}`,lh=((e,t={})=>(t.locale??J())===`pl`?ch(e):sh(e)),uh=()=>`Budget period elapsed`,dh=()=>`Upływ okresu budżetowego`,fh=((e={},t={})=>(t.locale??J())===`pl`?dh(e):uh(e)),ph=e=>`A budget for "${e?.label}" already exists. Saving will override the current ${e?.current} limit with ${e?.next}.`,mh=e=>`Budżet dla "${e?.label}" już istnieje. Zapisanie nadpisze bieżący limit ${e?.current} wartością ${e?.next}.`,hh=((e,t={})=>(t.locale??J())===`pl`?mh(e):ph(e)),gh=()=>`Unable to load budgets.`,_h=()=>`Nie udało się wczytać budżetów.`,vh=((e={},t={})=>(t.locale??J())===`pl`?_h(e):gh(e)),yh=()=>`Unable to save budget.`,bh=()=>`Nie udało się zapisać budżetu.`,xh=((e={},t={})=>(t.locale??J())===`pl`?bh(e):yh(e)),Sh=()=>`Budget saved.`,Ch=()=>`Budżet zapisany.`,wh=((e={},t={})=>(t.locale??J())===`pl`?Ch(e):Sh(e)),Th=e=>`Reset budget "${e?.label}"?`,Eh=e=>`Zresetować budżet "${e?.label}"?`,Dh=((e,t={})=>(t.locale??J())===`pl`?Eh(e):Th(e)),Oh=()=>`Unable to reset budget.`,kh=()=>`Nie udało się zresetować budżetu.`,Ah=((e={},t={})=>(t.locale??J())===`pl`?kh(e):Oh(e)),jh=()=>`Budget reset.`,Mh=()=>`Budżet zresetowany.`,Nh=((e={},t={})=>(t.locale??J())===`pl`?Mh(e):jh(e)),Ph=e=>`Delete budget "${e?.label}"? This cannot be undone.`,Fh=e=>`Usunąć budżet "${e?.label}"? Tej operacji nie można cofnąć.`,Ih=((e,t={})=>(t.locale??J())===`pl`?Fh(e):Ph(e)),Lh=()=>`Unable to delete budget.`,Rh=()=>`Nie udało się usunąć budżetu.`,zh=((e={},t={})=>(t.locale??J())===`pl`?Rh(e):Lh(e)),Bh=()=>`Budget deleted.`,Vh=()=>`Budżet usunięty.`,Hh=((e={},t={})=>(t.locale??J())===`pl`?Vh(e):Bh(e)),Uh=()=>`Reset Budgets`,Wh=()=>`Resetowanie budżetów`,Gh=((e={},t={})=>(t.locale??J())===`pl`?Wh(e):Uh(e)),Kh=()=>`Reset All Budgets`,qh=()=>`Zresetuj wszystkie budżety`,Jh=((e={},t={})=>(t.locale??J())===`pl`?qh(e):Kh(e)),Yh=()=>`Unable to reset budgets.`,Xh=()=>`Nie udało się zresetować budżetów.`,Zh=((e={},t={})=>(t.locale??J())===`pl`?Xh(e):Yh(e)),Qh=()=>`Budgets reset.`,$h=()=>`Budżety zresetowane.`,eg=((e={},t={})=>(t.locale??J())===`pl`?$h(e):Qh(e)),tg=()=>`Models`,ng=()=>`Modele`,rg=((e={},t={})=>(t.locale??J())===`pl`?ng(e):tg(e)),ig=e=>`${e?.count} models`,ag=e=>`Modele: ${e?.count}`,og=((e,t={})=>(t.locale??J())===`pl`?ag(e):ig(e)),sg=()=>`Virtual models feature is unavailable.`,cg=()=>`Funkcja modeli wirtualnych jest niedostępna.`,lg=((e={},t={})=>(t.locale??J())===`pl`?cg(e):sg(e)),ug=()=>`Filter by provider, provider/model, alias, or owner...`,dg=()=>`Filtruj według dostawcy, dostawcy/modelu, aliasu lub właściciela...`,fg=((e={},t={})=>(t.locale??J())===`pl`?dg(e):ug(e)),pg=()=>`Filter models by provider, provider/model, alias, or owner`,mg=()=>`Filtruj modele według dostawcy, dostawcy/modelu, aliasu lub właściciela`,hg=((e={},t={})=>(t.locale??J())===`pl`?mg(e):pg(e)),gg=()=>`New virtual model`,_g=()=>`Nowy model wirtualny`,vg=((e={},t={})=>(t.locale??J())===`pl`?_g(e):gg(e)),yg=()=>`New virtual model alias`,bg=()=>`Nowy alias modelu wirtualnego`,xg=((e={},t={})=>(t.locale??J())===`pl`?bg(e):yg(e)),Sg=()=>`Alias`,Cg=()=>`Alias`,wg=((e={},t={})=>(t.locale??J())===`pl`?Cg(e):Sg(e)),Tg=()=>`No models registered.`,Eg=()=>`Nie zarejestrowano modeli.`,Dg=((e={},t={})=>(t.locale??J())===`pl`?Eg(e):Tg(e)),Og=()=>`No models in this category.`,kg=()=>`Brak modeli w tej kategorii.`,Ag=((e={},t={})=>(t.locale??J())===`pl`?kg(e):Og(e)),jg=()=>`No models match your filter.`,Mg=()=>`Żaden model nie pasuje do filtra.`,Ng=((e={},t={})=>(t.locale??J())===`pl`?Mg(e):jg(e)),Pg=()=>`Model`,Fg=()=>`Model`,Ig=((e={},t={})=>(t.locale??J())===`pl`?Fg(e):Pg(e)),Lg=()=>`Enabled`,Rg=()=>`Włączony`,zg=((e={},t={})=>(t.locale??J())===`pl`?Rg(e):Lg(e)),Bg=()=>`Disabled`,Vg=()=>`Wyłączony`,Hg=((e={},t={})=>(t.locale??J())===`pl`?Vg(e):Bg(e)),Ug=()=>`Restricted`,Wg=()=>`Ograniczony`,Gg=((e={},t={})=>(t.locale??J())===`pl`?Wg(e):Ug(e)),Kg=()=>`Updating...`,qg=()=>`Aktualizowanie...`,Jg=((e={},t={})=>(t.locale??J())===`pl`?qg(e):Kg(e)),Yg=()=>`Loading models...`,Xg=()=>`Wczytywanie modeli...`,Zg=((e={},t={})=>(t.locale??J())===`pl`?Xg(e):Yg(e)),Qg=()=>`Refreshing models...`,$g=()=>`Odświeżanie modeli...`,e_=((e={},t={})=>(t.locale??J())===`pl`?$g(e):Qg(e)),t_=e=>`Rendering models... ${e?.visible} / ${e?.total}`,n_=e=>`Renderowanie modeli... ${e?.visible} / ${e?.total}`,r_=((e,t={})=>(t.locale??J())===`pl`?n_(e):t_(e)),i_=()=>`All providers and models`,a_=()=>`Wszyscy dostawcy i modele`,o_=((e={},t={})=>(t.locale??J())===`pl`?a_(e):i_(e)),s_=e=>`All models in ${e?.provider}`,c_=e=>`Wszystkie modele dostawcy ${e?.provider}`,l_=((e,t={})=>(t.locale??J())===`pl`?c_(e):s_(e)),u_=()=>`Virtual model`,d_=()=>`Model wirtualny`,f_=((e={},t={})=>(t.locale??J())===`pl`?d_(e):u_(e)),p_=()=>`Redirect`,m_=()=>`Przekierowanie`,h_=((e={},t={})=>(t.locale??J())===`pl`?m_(e):p_(e)),g_=()=>`Managed by config.yaml / VIRTUAL_MODELS`,__=()=>`Zarządzane przez config.yaml / VIRTUAL_MODELS`,v_=((e={},t={})=>(t.locale??J())===`pl`?__(e):g_(e)),y_=()=>`Config`,b_=()=>`Config`,x_=((e={},t={})=>(t.locale??J())===`pl`?b_(e):y_(e)),S_=()=>`On`,C_=()=>`Włączone`,w_=((e={},t={})=>(t.locale??J())===`pl`?C_(e):S_(e)),T_=()=>`Targets`,E_=()=>`Cele`,D_=((e={},t={})=>(t.locale??J())===`pl`?E_(e):T_(e)),O_=()=>`Redirects to`,k_=()=>`Przekierowuje do`,A_=((e={},t={})=>(t.locale??J())===`pl`?k_(e):O_(e)),j_=()=>`remove`,M_=()=>`usuń`,N_=((e={},t={})=>(t.locale??J())===`pl`?M_(e):j_(e)),P_=e=>`Remove redirect for ${e?.model}`,F_=e=>`Usuń przekierowanie dla ${e?.model}`,I_=((e,t={})=>(t.locale??J())===`pl`?F_(e):P_(e)),L_=e=>`Removing redirect for ${e?.model}`,R_=e=>`Usuwanie przekierowania dla ${e?.model}`,z_=((e,t={})=>(t.locale??J())===`pl`?R_(e):L_(e)),B_=()=>`Slowdown`,V_=()=>`Spowolnienie`,H_=((e={},t={})=>(t.locale??J())===`pl`?V_(e):B_(e)),U_=e=>`+${e?.value}× inference time`,W_=e=>`+${e?.value}× czasu inferencji`,G_=((e,t={})=>(t.locale??J())===`pl`?W_(e):U_(e)),K_=()=>`Virtual model editor`,q_=()=>`Edytor modelu wirtualnego`,J_=((e={},t={})=>(t.locale??J())===`pl`?q_(e):K_(e)),Y_=()=>`Save`,X_=()=>`Zapisz`,Z_=((e={},t={})=>(t.locale??J())===`pl`?X_(e):Y_(e)),Q_=()=>`Create`,$_=()=>`Utwórz`,ev=((e={},t={})=>(t.locale??J())===`pl`?$_(e):Q_(e)),tv=()=>`Virtual model help`,nv=()=>`Pomoc dotycząca modeli wirtualnych`,rv=((e={},t={})=>(t.locale??J())===`pl`?nv(e):tv(e)),iv=()=>`Add one target to make this a redirect/alias, or two or more to load balance across them. Leave Targets empty to create only an access policy for the Source selector.`,av=()=>`Dodaj jeden cel, aby utworzyć przekierowanie/alias, albo co najmniej dwa, aby równoważyć obciążenie. Pozostaw Cele puste, aby utworzyć tylko politykę dostępu dla selektora Źródłowego.`,ov=((e={},t={})=>(t.locale??J())===`pl`?av(e):iv(e)),sv=()=>`This virtual model is defined in configuration and is read-only here. Edit your configuration to change it.`,cv=()=>`Ten model wirtualny jest zdefiniowany w konfiguracji i tutaj jest tylko do odczytu. Aby go zmienić, edytuj konfigurację.`,lv=((e={},t={})=>(t.locale??J())===`pl`?cv(e):sv(e)),uv=()=>`Source`,dv=()=>`Źródło`,fv=((e={},t={})=>(t.locale??J())===`pl`?dv(e):uv(e)),pv=()=>`Add target (load balancing)`,mv=()=>`Dodaj cel (równoważenie obciążenia)`,hv=((e={},t={})=>(t.locale??J())===`pl`?mv(e):pv(e)),gv=()=>`Load-balancing strategy`,_v=()=>`Strategia równoważenia obciążenia`,vv=((e={},t={})=>(t.locale??J())===`pl`?_v(e):gv(e)),yv=()=>`Session keeping (route a detected client session to the target that served it)`,bv=()=>`Utrzymywanie sesji (kieruj wykrytą sesję klienta do celu, który ją obsłużył)`,xv=((e={},t={})=>(t.locale??J())===`pl`?bv(e):yv(e)),Sv=()=>`User Paths`,Cv=()=>`User Paths`,wv=((e={},t={})=>(t.locale??J())===`pl`?Cv(e):Sv(e)),Tv=()=>`User paths help`,Ev=()=>`Pomoc dotycząca ścieżek użytkownika`,Dv=((e={},t={})=>(t.locale??J())===`pl`?Ev(e):Tv(e)),Ov=()=>`Use / to allow every user path. Use a team path to restrict to that subtree, or an unused path to make the selector unavailable.`,kv=()=>`Użyj /, aby zezwolić na każdy User Path. Użyj User Path zespołu, aby ograniczyć dostęp do jego poddrzewa, albo nieużywanego User Path, aby selektor był niedostępny.`,Av=((e={},t={})=>(t.locale??J())===`pl`?kv(e):Ov(e)),jv=()=>`Description`,Mv=()=>`Opis`,Nv=((e={},t={})=>(t.locale??J())===`pl`?Mv(e):jv(e)),Pv=()=>`Optional description`,Fv=()=>`Opcjonalny opis`,Iv=((e={},t={})=>(t.locale??J())===`pl`?Fv(e):Pv(e)),Lv=()=>`Slowdown (extra inference time)`,Rv=()=>`Spowolnienie (dodatkowy czas inferencji)`,zv=((e={},t={})=>(t.locale??J())===`pl`?Rv(e):Lv(e)),Bv=()=>`Off`,Vv=()=>`Wyłączone`,Hv=((e={},t={})=>(t.locale??J())===`pl`?Vv(e):Bv(e)),Uv=()=>`Adds a fraction of measured inference time: 0.5 adds 50%. Streaming chunks are buffered and released on the slowed timeline. Use 0 to override inherited slowdown, or leave empty to inherit it; active values are 0.1–10.`,Wv=()=>`Dodaje część zmierzonego czasu inferencji: 0,5 dodaje 50%. Fragmenty streamingu są buforowane i zwalniane według spowolnionej osi czasu. Użyj 0, aby nadpisać odziedziczone spowolnienie, albo pozostaw puste, aby je dziedziczyć; aktywne wartości to 0,1–10.`,Gv=((e={},t={})=>(t.locale??J())===`pl`?Wv(e):Uv(e)),Kv=e=>`Default enabled: ${e?.default} · Effective now: ${e?.effective}`,qv=e=>`Domyślnie włączony: ${e?.default} · Obecnie aktywny: ${e?.effective}`,Jv=((e,t={})=>(t.locale??J())===`pl`?qv(e):Kv(e)),Yv=()=>`yes`,Xv=()=>`tak`,Zv=((e={},t={})=>(t.locale??J())===`pl`?Xv(e):Yv(e)),Qv=()=>`no`,$v=()=>`nie`,ey=((e={},t={})=>(t.locale??J())===`pl`?$v(e):Qv(e)),ty=()=>`Target model`,ny=()=>`Model docelowy`,ry=((e={},t={})=>(t.locale??J())===`pl`?ny(e):ty(e)),iy=()=>`Target weight`,ay=()=>`Waga celu`,oy=((e={},t={})=>(t.locale??J())===`pl`?ay(e):iy(e)),sy=()=>`weight`,cy=()=>`waga`,ly=((e={},t={})=>(t.locale??J())===`pl`?cy(e):sy(e)),uy=()=>`Remove target`,dy=()=>`Usuń cel`,fy=((e={},t={})=>(t.locale??J())===`pl`?dy(e):uy(e)),py=()=>`Model pricing editor`,my=()=>`Edytor cen modelu`,hy=((e={},t={})=>(t.locale??J())===`pl`?my(e):py(e)),gy=()=>`Save Pricing`,_y=()=>`Zapisz ceny`,vy=((e={},t={})=>(t.locale??J())===`pl`?_y(e):gy(e)),yy=()=>`Pricing override`,by=()=>`Nadpisanie cen`,xy=((e={},t={})=>(t.locale??J())===`pl`?by(e):yy(e)),Sy=()=>`Pricing`,Cy=()=>`Ceny`,wy=((e={},t={})=>(t.locale??J())===`pl`?Cy(e):Sy(e)),Ty=()=>`Selector`,Ey=()=>`Selektor`,Dy=((e={},t={})=>(t.locale??J())===`pl`?Ey(e):Ty(e)),Oy=()=>`Scope`,ky=()=>`Zakres`,Ay=((e={},t={})=>(t.locale??J())===`pl`?ky(e):Oy(e)),jy=()=>`Currency is USD. Saved fields override model registry and config.yaml pricing for this selector; unset fields continue to inherit.`,My=()=>`Walutą jest USD. Zapisane pola nadpisują ceny z rejestru modeli i config.yaml dla tego selektora; nieustawione pola nadal są dziedziczone.`,Ny=((e={},t={})=>(t.locale??J())===`pl`?My(e):jy(e)),Py=()=>`Price Type`,Fy=()=>`Typ ceny`,Iy=((e={},t={})=>(t.locale??J())===`pl`?Fy(e):Py(e)),Ly=()=>`USD Value`,Ry=()=>`Wartość USD`,zy=((e={},t={})=>(t.locale??J())===`pl`?Ry(e):Ly(e)),By=e=>`Remove ${e?.price}`,Vy=e=>`Usuń ${e?.price}`,Hy=((e,t={})=>(t.locale??J())===`pl`?Vy(e):By(e)),Uy=()=>`Add Price`,Wy=()=>`Dodaj cenę`,Gy=((e={},t={})=>(t.locale??J())===`pl`?Wy(e):Uy(e)),Ky=()=>`Tiered pricing exists for this override and will be preserved. Tier editing can be added without a database migration.`,qy=()=>`Dla tego nadpisania istnieją ceny progowe i zostaną zachowane. Edycję progów można dodać bez migracji bazy danych.`,Jy=((e={},t={})=>(t.locale??J())===`pl`?qy(e):Ky(e)),Yy=()=>`Source`,Xy=()=>`Źródło`,Zy=((e={},t={})=>(t.locale??J())===`pl`?Xy(e):Yy(e)),Qy=()=>`No pricing fields set.`,$y=()=>`Nie ustawiono pól cenowych.`,eb=((e={},t={})=>(t.locale??J())===`pl`?$y(e):Qy(e)),tb=()=>`Remove Override`,nb=()=>`Usuń nadpisanie`,rb=((e={},t={})=>(t.locale??J())===`pl`?nb(e):tb(e)),ib=()=>`Failover editor`,ab=()=>`Edytor Failover`,ob=((e={},t={})=>(t.locale??J())===`pl`?ab(e):ib(e)),sb=()=>`Failover mapping`,cb=()=>`Mapowanie Failover`,lb=((e={},t={})=>(t.locale??J())===`pl`?cb(e):sb(e)),ub=()=>`This failover mapping is defined in configuration and is read-only here.`,db=()=>`To mapowanie Failover jest zdefiniowane w konfiguracji i tutaj jest tylko do odczytu.`,fb=((e={},t={})=>(t.locale??J())===`pl`?db(e):ub(e)),pb=()=>`Fallback models`,mb=()=>`Modele Fallback`,hb=((e={},t={})=>(t.locale??J())===`pl`?mb(e):pb(e)),gb=()=>`Fallback model`,_b=()=>`Model Fallback`,vb=((e={},t={})=>(t.locale??J())===`pl`?_b(e):gb(e)),yb=()=>`Remove fallback model`,bb=()=>`Usuń model Fallback`,xb=((e={},t={})=>(t.locale??J())===`pl`?bb(e):yb(e)),Sb=()=>`Add fallback model`,Cb=()=>`Dodaj model Fallback`,wb=((e={},t={})=>(t.locale??J())===`pl`?Cb(e):Sb(e)),Tb=()=>`Generating...`,Eb=()=>`Generowanie...`,Db=((e={},t={})=>(t.locale??J())===`pl`?Eb(e):Tb(e)),Ob=()=>`Generate automatically`,kb=()=>`Generuj automatycznie`,Ab=((e={},t={})=>(t.locale??J())===`pl`?kb(e):Ob(e)),jb=()=>`Remove`,Mb=()=>`Usuń`,Nb=((e={},t={})=>(t.locale??J())===`pl`?Mb(e):jb(e)),Pb=()=>`Generated failover drafts`,Fb=()=>`Wygenerowane propozycje Failover`,Ib=((e={},t={})=>(t.locale??J())===`pl`?Fb(e):Pb(e)),Lb=()=>`Generated drafts`,Rb=()=>`Wygenerowane propozycje`,zb=((e={},t={})=>(t.locale??J())===`pl`?Rb(e):Lb(e)),Bb=()=>`Failover models`,Vb=()=>`Modele Failover`,Hb=((e={},t={})=>(t.locale??J())===`pl`?Vb(e):Bb(e)),Ub=()=>`Close failover drafts`,Wb=()=>`Zamknij propozycje Failover`,Gb=((e={},t={})=>(t.locale??J())===`pl`?Wb(e):Ub(e)),Kb=()=>`Generating failover drafts...`,qb=()=>`Generowanie propozycji Failover...`,Jb=((e={},t={})=>(t.locale??J())===`pl`?qb(e):Kb(e)),Yb=()=>`Filter failover drafts...`,Xb=()=>`Filtruj propozycje Failover...`,Zb=((e={},t={})=>(t.locale??J())===`pl`?Xb(e):Yb(e)),Qb=()=>`Filter failover drafts`,$b=()=>`Filtruj propozycje Failover`,ex=((e={},t={})=>(t.locale??J())===`pl`?$b(e):Qb(e)),tx=()=>`Select all`,nx=()=>`Zaznacz wszystkie`,rx=((e={},t={})=>(t.locale??J())===`pl`?nx(e):tx(e)),ix=()=>`Deselect all`,ax=()=>`Odznacz wszystkie`,ox=((e={},t={})=>(t.locale??J())===`pl`?ax(e):ix(e)),sx=e=>`Select failover draft for ${e?.model}`,cx=e=>`Zaznacz propozycję Failover dla ${e?.model}`,lx=((e,t={})=>(t.locale??J())===`pl`?cx(e):sx(e)),ux=()=>`No failover suggestions were generated.`,dx=()=>`Nie wygenerowano propozycji Failover.`,fx=((e={},t={})=>(t.locale??J())===`pl`?dx(e):ux(e)),px=()=>`No failover drafts match the filter.`,mx=()=>`Żadna propozycja Failover nie pasuje do filtra.`,hx=((e={},t={})=>(t.locale??J())===`pl`?mx(e):px(e)),gx=()=>`Saving...`,_x=()=>`Zapisywanie...`,vx=((e={},t={})=>(t.locale??J())===`pl`?_x(e):gx(e)),yx=()=>`Save selected`,bx=()=>`Zapisz zaznaczone`,xx=((e={},t={})=>(t.locale??J())===`pl`?bx(e):yx(e)),Sx=()=>`API Keys`,Cx=()=>`Klucze API`,wx=((e={},t={})=>(t.locale??J())===`pl`?Cx(e):Sx(e)),Tx=()=>`Create API Key`,Ex=()=>`Utwórz klucz API`,Dx=((e={},t={})=>(t.locale??J())===`pl`?Ex(e):Tx(e)),Ox=()=>`API key management is unavailable.`,kx=()=>`Zarządzanie kluczami API jest niedostępne.`,Ax=((e={},t={})=>(t.locale??J())===`pl`?kx(e):Ox(e)),jx=()=>`Managed API keys authenticate requests to the gateway. Deactivation is permanent — create a new key if access needs to be restored.`,Mx=()=>`Zarządzane klucze API uwierzytelniają Requesty do gatewaya. Dezaktywacja jest trwała — aby przywrócić dostęp, utwórz nowy klucz.`,Nx=((e={},t={})=>(t.locale??J())===`pl`?Mx(e):jx(e)),Px=()=>`Loading API keys`,Fx=()=>`Wczytywanie kluczy API`,Ix=((e={},t={})=>(t.locale??J())===`pl`?Fx(e):Px(e)),Lx=()=>`Filter by name, description, user path, label, or token...`,Rx=()=>`Filtruj według nazwy, opisu, User Path, etykiety lub tokenu...`,zx=((e={},t={})=>(t.locale??J())===`pl`?Rx(e):Lx(e)),Bx=()=>`Filter API keys by name, description, user path, label, or token`,Vx=()=>`Filtruj klucze API według nazwy, opisu, User Path, etykiety lub tokenu`,Hx=((e={},t={})=>(t.locale??J())===`pl`?Vx(e):Bx(e)),Ux=()=>`Show inactive`,Wx=()=>`Pokaż nieaktywne`,Gx=((e={},t={})=>(t.locale??J())===`pl`?Wx(e):Ux(e)),Kx=()=>`No API keys match the current filter.`,qx=()=>`Żaden klucz API nie pasuje do bieżącego filtra.`,Jx=((e={},t={})=>(t.locale??J())===`pl`?qx(e):Kx(e)),Yx=e=>`${e?.count} inactive keys are hidden.`,Xx=e=>`Ukryte nieaktywne klucze: ${e?.count}.`,Zx=((e,t={})=>(t.locale??J())===`pl`?Xx(e):Yx(e)),Qx=()=>`No API keys yet. Issue a key to get started.`,$x=()=>`Nie ma jeszcze kluczy API. Utwórz klucz, aby rozpocząć.`,eS=((e={},t={})=>(t.locale??J())===`pl`?$x(e):Qx(e)),tS=()=>`API key editor`,nS=()=>`Edytor klucza API`,rS=((e={},t={})=>(t.locale??J())===`pl`?nS(e):tS(e)),iS=()=>`Done, I’ve stored it`,aS=()=>`Gotowe, klucz został zapisany`,oS=((e={},t={})=>(t.locale??J())===`pl`?aS(e):iS(e)),sS=()=>`Creating...`,cS=()=>`Tworzenie...`,lS=((e={},t={})=>(t.locale??J())===`pl`?cS(e):sS(e)),uS=()=>`Store this key securely — it won’t be shown again.`,dS=()=>`Przechowuj ten klucz bezpiecznie — nie zostanie pokazany ponownie.`,fS=((e={},t={})=>(t.locale??J())===`pl`?dS(e):uS(e)),pS=()=>`Unable to copy the key automatically. Copy it manually.`,mS=()=>`Nie udało się automatycznie skopiować klucza. Skopiuj go ręcznie.`,hS=((e={},t={})=>(t.locale??J())===`pl`?mS(e):pS(e)),gS=()=>`Name`,_S=()=>`Nazwa`,vS=((e={},t={})=>(t.locale??J())===`pl`?_S(e):gS(e)),yS=()=>`required`,bS=()=>`wymagane`,xS=((e={},t={})=>(t.locale??J())===`pl`?bS(e):yS(e)),SS=()=>`Expires`,CS=()=>`Wygasa`,wS=((e={},t={})=>(t.locale??J())===`pl`?CS(e):SS(e)),TS=()=>`optional, valid through the selected date`,ES=()=>`opcjonalne, ważne do końca wybranego dnia`,DS=((e={},t={})=>(t.locale??J())===`pl`?ES(e):TS(e)),OS=()=>`User Path (optional)`,kS=()=>`User Path (opcjonalny)`,AS=((e={},t={})=>(t.locale??J())===`pl`?kS(e):OS(e)),jS=()=>`API key user path help`,MS=()=>`Pomoc dotycząca User Path klucza API`,NS=((e={},t={})=>(t.locale??J())===`pl`?MS(e):jS(e)),PS=()=>`When set, this key overrides the configured user path request header for audit logging and downstream request context.`,FS=()=>`Po ustawieniu klucz nadpisuje skonfigurowany nagłówek User Path na potrzeby logów audytowych i kontekstu dalszych Request'ów.`,IS=((e={},t={})=>(t.locale??J())===`pl`?FS(e):PS(e)),LS=()=>`Labels (optional, comma-separated)`,RS=()=>`Etykiety (opcjonalne, rozdzielone przecinkami)`,zS=((e={},t={})=>(t.locale??J())===`pl`?RS(e):LS(e)),BS=()=>`API key labels help`,VS=()=>`Pomoc dotycząca etykiet klucza API`,HS=((e={},t={})=>(t.locale??J())===`pl`?VS(e):BS(e)),US=()=>`Every request authenticated with this key gets these labels, in addition to any labels from tagging headers. Labels show up in usage analytics, the request log, and audit logs.`,WS=()=>`Każdy Request uwierzytelniony tym kluczem otrzymuje te etykiety oprócz etykiet z nagłówków tagowania. Etykiety pojawiają się w analityce zużycia, dzienniku Request'ów i logach audytowych.`,GS=((e={},t={})=>(t.locale??J())===`pl`?WS(e):US(e)),KS=()=>`Dashboard Access`,qS=()=>`Dostęp do dashboardu`,JS=((e={},t={})=>(t.locale??J())===`pl`?qS(e):KS(e)),YS=()=>`API key dashboard access help`,XS=()=>`Pomoc dotycząca dostępu klucza API do dashboardu`,ZS=((e={},t={})=>(t.locale??J())===`pl`?XS(e):YS(e)),QS=()=>`When off, this key is denied the dashboard and every /admin API endpoint. Model endpoints and GET /v1/usage stay available to the key. The master key always has dashboard access.`,$S=()=>`Po wyłączeniu klucz nie ma dostępu do dashboardu ani endpointów /admin API. Endpointy modeli i GET /v1/usage pozostają dostępne. Klucz główny zawsze ma dostęp do dashboardu.`,eC=((e={},t={})=>(t.locale??J())===`pl`?$S(e):QS(e)),tC=()=>`Allow this key to use the dashboard and /admin API`,nC=()=>`Zezwól temu kluczowi na korzystanie z dashboardu i /admin API`,rC=((e={},t={})=>(t.locale??J())===`pl`?nC(e):tC(e)),iC=()=>`Description (optional)`,aC=()=>`Opis (opcjonalny)`,oC=((e={},t={})=>(t.locale??J())===`pl`?aC(e):iC(e)),sC=()=>`What is this key used for?`,cC=()=>`Do czego służy ten klucz?`,lC=((e={},t={})=>(t.locale??J())===`pl`?cC(e):sC(e)),uC=()=>`Description`,dC=()=>`Opis`,fC=((e={},t={})=>(t.locale??J())===`pl`?dC(e):uC(e)),pC=()=>`User Path`,mC=()=>`User Path`,hC=((e={},t={})=>(t.locale??J())===`pl`?mC(e):pC(e)),gC=()=>`Labels`,_C=()=>`Etykiety`,vC=((e={},t={})=>(t.locale??J())===`pl`?_C(e):gC(e)),yC=()=>`Token`,bC=()=>`Token`,xC=((e={},t={})=>(t.locale??J())===`pl`?bC(e):yC(e)),SC=()=>`Created`,CC=()=>`Utworzono`,wC=((e={},t={})=>(t.locale??J())===`pl`?CC(e):SC(e)),TC=()=>`Actions`,EC=()=>`Akcje`,DC=((e={},t={})=>(t.locale??J())===`pl`?EC(e):TC(e)),OC=()=>`Allowed`,kC=()=>`Dozwolony`,AC=((e={},t={})=>(t.locale??J())===`pl`?kC(e):OC(e)),jC=()=>`Denied`,MC=()=>`Zablokowany`,NC=((e={},t={})=>(t.locale??J())===`pl`?MC(e):jC(e)),PC=()=>`Expired`,FC=()=>`Wygasł`,IC=((e={},t={})=>(t.locale??J())===`pl`?FC(e):PC(e)),LC=()=>`Deactivated`,RC=()=>`Dezaktywowany`,zC=((e={},t={})=>(t.locale??J())===`pl`?RC(e):LC(e)),BC=()=>`Edit Labels`,VC=()=>`Edytuj etykiety`,HC=((e={},t={})=>(t.locale??J())===`pl`?VC(e):BC(e)),UC=()=>`API key labels editor`,WC=()=>`Edytor etykiet klucza API`,GC=((e={},t={})=>(t.locale??J())===`pl`?WC(e):UC(e)),KC=()=>`Save Labels`,qC=()=>`Zapisz etykiety`,JC=((e={},t={})=>(t.locale??J())===`pl`?qC(e):KC(e)),YC=()=>`Labels (comma-separated)`,XC=()=>`Etykiety (rozdzielone przecinkami)`,ZC=((e={},t={})=>(t.locale??J())===`pl`?XC(e):YC(e)),QC=()=>`Applies to new requests made with this key. Leave empty to remove all labels.`,$C=()=>`Dotyczy nowych Request'ów wykonywanych tym kluczem. Pozostaw puste, aby usunąć wszystkie etykiety.`,ew=((e={},t={})=>(t.locale??J())===`pl`?$C(e):QC(e)),tw=()=>`MCP Servers`,nw=()=>`Serwery MCP`,rw=((e={},t={})=>(t.locale??J())===`pl`?nw(e):tw(e)),iw=()=>`MCP servers help`,aw=()=>`Pomoc dotycząca serwerów MCP`,ow=((e={},t={})=>(t.locale??J())===`pl`?aw(e):iw(e)),sw=()=>`Upstream Model Context Protocol servers whose tools, prompts, and resources the gateway exposes to clients. Dashboard-managed servers connect over HTTP or SSE; Config servers are read-only.`,cw=()=>`Nadrzędne serwery Model Context Protocol, których narzędzia, prompty i zasoby gateway udostępnia klientom. Serwery zarządzane w dashboardzie łączą się przez HTTP lub SSE; serwery Config są tylko do odczytu.`,lw=((e={},t={})=>(t.locale??J())===`pl`?cw(e):sw(e)),uw=()=>`Add MCP Server`,dw=()=>`Dodaj serwer MCP`,fw=((e={},t={})=>(t.locale??J())===`pl`?dw(e):uw(e)),pw=()=>`MCP server management is unavailable.`,mw=()=>`Zarządzanie serwerami MCP jest niedostępne.`,hw=((e={},t={})=>(t.locale??J())===`pl`?mw(e):pw(e)),gw=()=>`Loading MCP servers...`,_w=()=>`Wczytywanie serwerów MCP...`,vw=((e={},t={})=>(t.locale??J())===`pl`?_w(e):gw(e)),yw=()=>`Filter by name, slug, URL, transport, or status...`,bw=()=>`Filtruj według nazwy, sluga, URL, transportu lub statusu...`,xw=((e={},t={})=>(t.locale??J())===`pl`?bw(e):yw(e)),Sw=()=>`Filter MCP servers by name, slug, URL, transport, or status`,Cw=()=>`Filtruj serwery MCP według nazwy, sluga, URL, transportu lub statusu`,ww=((e={},t={})=>(t.locale??J())===`pl`?Cw(e):Sw(e)),Tw=()=>`No MCP servers yet. Add one here, or declare servers in config.yaml under mcp.servers.`,Ew=()=>`Nie ma jeszcze serwerów MCP. Dodaj serwer tutaj albo zadeklaruj go w config.yaml w mcp.servers.`,Dw=((e={},t={})=>(t.locale??J())===`pl`?Ew(e):Tw(e)),Ow=()=>`No MCP servers match your filter.`,kw=()=>`Żaden serwer MCP nie pasuje do filtra.`,Aw=((e={},t={})=>(t.locale??J())===`pl`?kw(e):Ow(e)),jw=()=>`MCP server catalog`,Mw=()=>`Katalog serwera MCP`,Nw=((e={},t={})=>(t.locale??J())===`pl`?Mw(e):jw(e)),Pw=()=>`Server Catalog`,Fw=()=>`Katalog serwera`,Iw=((e={},t={})=>(t.locale??J())===`pl`?Fw(e):Pw(e)),Lw=()=>`Close MCP server catalog`,Rw=()=>`Zamknij katalog serwera MCP`,zw=((e={},t={})=>(t.locale??J())===`pl`?Rw(e):Lw(e)),Bw=()=>`Loading catalog...`,Vw=()=>`Wczytywanie katalogu...`,Hw=((e={},t={})=>(t.locale??J())===`pl`?Vw(e):Bw(e)),Uw=e=>`Exposed on the aggregated /mcp endpoint as ${e?.name}`,Ww=e=>`Udostępnione w zbiorczym endpoincie /mcp jako ${e?.name}`,Gw=((e,t={})=>(t.locale??J())===`pl`?Ww(e):Uw(e)),Kw=()=>`No tools listed — the server may still be connecting or degraded.`,qw=()=>`Brak narzędzi — serwer może nadal się łączyć albo działać w trybie zdegradowanym.`,Jw=((e={},t={})=>(t.locale??J())===`pl`?qw(e):Kw(e)),Yw=()=>`Close`,Xw=()=>`Zamknij`,Zw=((e={},t={})=>(t.locale??J())===`pl`?Xw(e):Yw(e)),Qw=()=>`Edit MCP Server`,$w=()=>`Edytuj serwer MCP`,eT=((e={},t={})=>(t.locale??J())===`pl`?$w(e):Qw(e)),tT=()=>`MCP server editor`,nT=()=>`Edytor serwera MCP`,rT=((e={},t={})=>(t.locale??J())===`pl`?nT(e):tT(e)),iT=()=>`The display name can change. The slug is the stable client-facing identity.`,aT=()=>`Wyświetlaną nazwę można zmienić. Slug jest stałą tożsamością widoczną dla klienta.`,oT=((e={},t={})=>(t.locale??J())===`pl`?aT(e):iT(e)),sT=()=>`Name`,cT=()=>`Nazwa`,lT=((e={},t={})=>(t.locale??J())===`pl`?cT(e):sT(e)),uT=()=>`Human-readable and Unicode-friendly. You can change it later.`,dT=()=>`Czytelna dla człowieka i zgodna z Unicode. Możesz ją później zmienić.`,fT=((e={},t={})=>(t.locale??J())===`pl`?dT(e):uT(e)),pT=()=>`Slug`,mT=()=>`Slug`,hT=((e={},t={})=>(t.locale??J())===`pl`?mT(e):pT(e)),gT=()=>`Derived from the name. You may edit it before saving.`,_T=()=>`Tworzony z nazwy. Możesz go zmienić przed zapisem.`,vT=((e={},t={})=>(t.locale??J())===`pl`?_T(e):gT(e)),yT=()=>`Immutable because it is used in URLs, scope headers, and aggregated tool names.`,bT=()=>`Niezmienny, ponieważ jest używany w URL-ach, nagłówkach zakresu i zbiorczych nazwach narzędzi.`,xT=((e={},t={})=>(t.locale??J())===`pl`?bT(e):yT(e)),ST=()=>`Transport`,CT=()=>`Transport`,wT=((e={},t={})=>(t.locale??J())===`pl`?CT(e):ST(e)),TT=()=>`Connect to a remote MCP server over Streamable HTTP or legacy SSE.`,ET=()=>`Połącz ze zdalnym serwerem MCP przez Streamable HTTP lub starszy protokół SSE.`,DT=((e={},t={})=>(t.locale??J())===`pl`?ET(e):TT(e)),OT=()=>`Headers`,kT=()=>`Nagłówki`,AT=((e={},t={})=>(t.locale??J())===`pl`?kT(e):OT(e)),jT=()=>`Header name`,MT=()=>`Nazwa nagłówka`,NT=((e={},t={})=>(t.locale??J())===`pl`?MT(e):jT(e)),PT=()=>`Header value`,FT=()=>`Wartość nagłówka`,IT=((e={},t={})=>(t.locale??J())===`pl`?FT(e):PT(e)),LT=()=>`Remove header`,RT=()=>`Usuń nagłówek`,zT=((e={},t={})=>(t.locale??J())===`pl`?RT(e):LT(e)),BT=()=>`Add header`,VT=()=>`Dodaj nagłówek`,HT=((e={},t={})=>(t.locale??J())===`pl`?VT(e):BT(e)),UT=()=>`Sent only to the configured server origin. Leave masked values unchanged to keep the stored value.`,WT=()=>`Wysyłane tylko do skonfigurowanego originu serwera. Pozostaw zamaskowane wartości bez zmian, aby zachować zapisane dane.`,GT=((e={},t={})=>(t.locale??J())===`pl`?WT(e):UT(e)),KT=()=>`Advanced settings`,qT=()=>`Ustawienia zaawansowane`,JT=((e={},t={})=>(t.locale??J())===`pl`?qT(e):KT(e)),YT=()=>`Description, access rules, and timeout`,XT=()=>`Opis, reguły dostępu i timeout`,ZT=((e={},t={})=>(t.locale??J())===`pl`?XT(e):YT(e)),QT=()=>`Description`,$T=()=>`Opis`,eE=((e={},t={})=>(t.locale??J())===`pl`?$T(e):QT(e)),tE=()=>`Allowed tools`,nE=()=>`Dozwolone narzędzia`,rE=((e={},t={})=>(t.locale??J())===`pl`?nE(e):tE(e)),iE=()=>`Disallowed tools`,aE=()=>`Zabronione narzędzia`,oE=((e={},t={})=>(t.locale??J())===`pl`?aE(e):iE(e)),sE=()=>`User paths (empty means all)`,cE=()=>`User Paths (puste oznacza wszystkie)`,lE=((e={},t={})=>(t.locale??J())===`pl`?cE(e):sE(e)),uE=()=>`Tool timeout (seconds)`,dE=()=>`Timeout narzędzia (sekundy)`,fE=((e={},t={})=>(t.locale??J())===`pl`?dE(e):uE(e)),pE=()=>`Default timeout when empty`,mE=()=>`Domyślny timeout, gdy pole jest puste`,hE=((e={},t={})=>(t.locale??J())===`pl`?mE(e):pE(e)),gE=()=>`Workflows`,_E=()=>`Workflows`,vE=((e={},t={})=>(t.locale??J())===`pl`?_E(e):gE(e)),yE=()=>`Active workflows are matched path-first: deepest user path wins first, then provider name and model specificity, then broader matches, then global.`,bE=()=>`Aktywne Workflows są dopasowywane najpierw według User Path: najgłębszy User Path ma pierwszeństwo, następnie nazwa dostawcy i szczegółowość modelu, szersze dopasowania i zakres globalny.`,xE=((e={},t={})=>(t.locale??J())===`pl`?bE(e):yE(e)),SE=()=>`New Workflow`,CE=()=>`Nowy Workflow`,wE=((e={},t={})=>(t.locale??J())===`pl`?CE(e):SE(e)),TE=()=>`Workflows feature is unavailable.`,EE=()=>`Funkcja Workflows jest niedostępna.`,DE=((e={},t={})=>(t.locale??J())===`pl`?EE(e):TE(e)),OE=()=>`Filter by scope, name, hash, or guardrail...`,kE=()=>`Filtruj według zakresu, nazwy, hasha lub Guardrail...`,AE=((e={},t={})=>(t.locale??J())===`pl`?kE(e):OE(e)),jE=()=>`Filter workflows`,ME=()=>`Filtruj Workflows`,NE=((e={},t={})=>(t.locale??J())===`pl`?ME(e):jE(e)),PE=()=>`No active workflows found.`,FE=()=>`Nie znaleziono aktywnych Workflows.`,IE=((e={},t={})=>(t.locale??J())===`pl`?FE(e):PE(e)),LE=()=>`No workflows match your filter.`,RE=()=>`Żaden Workflow nie pasuje do filtra.`,zE=((e={},t={})=>(t.locale??J())===`pl`?RE(e):LE(e)),BE=()=>`Async`,VE=()=>`Asynchronicznie`,HE=((e={},t={})=>(t.locale??J())===`pl`?VE(e):BE(e)),UE=()=>`Guardrails`,WE=()=>`Guardrails`,GE=((e={},t={})=>(t.locale??J())===`pl`?WE(e):UE(e)),KE=()=>`No guardrails configured for this workflow.`,qE=()=>`W tym Workflow nie skonfigurowano Guardrails.`,JE=((e={},t={})=>(t.locale??J())===`pl`?qE(e):KE(e)),YE=()=>`Providers`,XE=()=>`Dostawcy`,ZE=((e={},t={})=>(t.locale??J())===`pl`?XE(e):YE(e)),QE=()=>`Add Provider`,$E=()=>`Dodaj dostawcę`,eD=((e={},t={})=>(t.locale??J())===`pl`?$E(e):QE(e)),tD=()=>`Provider credential management is unavailable.`,nD=()=>`Zarządzanie danymi dostępowymi dostawców jest niedostępne.`,rD=((e={},t={})=>(t.locale??J())===`pl`?nD(e):tD(e)),iD=()=>`Filter by name, type, or base URL...`,aD=()=>`Filtruj według nazwy, typu lub bazowego URL...`,oD=((e={},t={})=>(t.locale??J())===`pl`?aD(e):iD(e)),sD=()=>`Filter providers by name, type, or base URL`,cD=()=>`Filtruj dostawców według nazwy, typu lub bazowego URL`,lD=((e={},t={})=>(t.locale??J())===`pl`?cD(e):sD(e)),uD=()=>`No dashboard-managed providers yet. Add one here, or declare providers in config.yaml or environment variables.`,dD=()=>`Nie ma jeszcze dostawców zarządzanych w dashboardzie. Dodaj dostawcę tutaj albo zadeklaruj go w config.yaml lub zmiennych środowiskowych.`,fD=((e={},t={})=>(t.locale??J())===`pl`?dD(e):uD(e)),pD=()=>`No providers match your filter.`,mD=()=>`Żaden dostawca nie pasuje do filtra.`,hD=((e={},t={})=>(t.locale??J())===`pl`?mD(e):pD(e)),gD=()=>`Name`,_D=()=>`Nazwa`,vD=((e={},t={})=>(t.locale??J())===`pl`?_D(e):gD(e)),yD=()=>`Type`,bD=()=>`Typ`,xD=((e={},t={})=>(t.locale??J())===`pl`?bD(e):yD(e)),SD=()=>`Auth`,CD=()=>`Uwierzytelnianie`,wD=((e={},t={})=>(t.locale??J())===`pl`?CD(e):SD(e)),TD=()=>`Models`,ED=()=>`Modele`,DD=((e={},t={})=>(t.locale??J())===`pl`?ED(e):TD(e)),OD=()=>`Enabled`,kD=()=>`Włączony`,AD=((e={},t={})=>(t.locale??J())===`pl`?kD(e):OD(e)),jD=()=>`Updated`,MD=()=>`Zaktualizowano`,ND=((e={},t={})=>(t.locale??J())===`pl`?MD(e):jD(e)),PD=()=>`Actions`,FD=()=>`Akcje`,ID=((e={},t={})=>(t.locale??J())===`pl`?FD(e):PD(e)),LD=()=>`Declared in configuration (config.yaml or env vars); read-only in the dashboard`,RD=()=>`Zadeklarowano w konfiguracji (config.yaml lub zmienne środowiskowe); tylko do odczytu w dashboardzie`,zD=((e={},t={})=>(t.locale??J())===`pl`?RD(e):LD(e)),BD=()=>`Rate Limits`,VD=()=>`Rate Limits`,HD=((e={},t={})=>(t.locale??J())===`pl`?VD(e):BD(e)),UD=()=>`Create Rate Limit`,WD=()=>`Utwórz Rate Limit`,GD=((e={},t={})=>(t.locale??J())===`pl`?WD(e):UD(e)),KD=()=>`Rate limit management is unavailable.`,qD=()=>`Zarządzanie Rate Limitami jest niedostępne.`,JD=((e={},t={})=>(t.locale??J())===`pl`?qD(e):KD(e)),YD=()=>`Filter by subject, scope, or period...`,XD=()=>`Filtruj według podmiotu, zakresu lub okresu...`,ZD=((e={},t={})=>(t.locale??J())===`pl`?XD(e):YD(e)),QD=()=>`Filter rate limits by subject, scope, or period`,$D=()=>`Filtruj Rate Limity według podmiotu, zakresu lub okresu`,eO=((e={},t={})=>(t.locale??J())===`pl`?$D(e):QD(e)),tO=()=>`No rate limits configured yet.`,nO=()=>`Nie skonfigurowano jeszcze Rate Limitów.`,rO=((e={},t={})=>(t.locale??J())===`pl`?nO(e):tO(e)),iO=()=>`No rate limits match your filter.`,aO=()=>`Żaden Rate Limit nie pasuje do filtra.`,oO=((e={},t={})=>(t.locale??J())===`pl`?aO(e):iO(e)),sO=()=>`Effective rate limits`,cO=()=>`Efektywne Rate Limity`,lO=((e={},t={})=>(t.locale??J())===`pl`?cO(e):sO(e)),uO=()=>`Add`,dO=()=>`Dodaj`,fO=((e={},t={})=>(t.locale??J())===`pl`?dO(e):uO(e)),pO=()=>`No rules.`,mO=()=>`Brak reguł.`,hO=((e={},t={})=>(t.locale??J())===`pl`?mO(e):pO(e)),gO=()=>`Edit`,_O=()=>`Edytuj`,vO=((e={},t={})=>(t.locale??J())===`pl`?_O(e):gO(e)),yO=()=>`In-flight`,bO=()=>`W toku`,xO=((e={},t={})=>(t.locale??J())===`pl`?bO(e):yO(e)),SO=()=>`Requests`,CO=()=>`Requesty`,wO=((e={},t={})=>(t.locale??J())===`pl`?CO(e):SO(e)),TO=()=>`Tokens`,EO=()=>`Tokeny`,DO=((e={},t={})=>(t.locale??J())===`pl`?EO(e):TO(e)),OO=()=>`Guardrails`,kO=()=>`Guardrails`,AO=((e={},t={})=>(t.locale??J())===`pl`?kO(e):OO(e)),jO=()=>`Reusable Policy Objects`,MO=()=>`Obiekty polityk wielokrotnego użytku`,NO=((e={},t={})=>(t.locale??J())===`pl`?MO(e):jO(e)),PO=()=>`Guardrail Library`,FO=()=>`Biblioteka Guardrails`,IO=((e={},t={})=>(t.locale??J())===`pl`?FO(e):PO(e)),LO=()=>`Instances`,RO=()=>`Instancje`,zO=((e={},t={})=>(t.locale??J())===`pl`?RO(e):LO(e)),BO=()=>`Types`,VO=()=>`Typy`,HO=((e={},t={})=>(t.locale??J())===`pl`?VO(e):BO(e)),UO=()=>`GUARDRAILS_ENABLED is disabled. You can still manage Guardrails, but they will not run.`,WO=()=>`GUARDRAILS_ENABLED jest wyłączone. Nadal możesz zarządzać Guardrails, ale nie będą uruchamiane.`,GO=((e={},t={})=>(t.locale??J())===`pl`?WO(e):UO(e)),KO=()=>`Guardrails feature is unavailable.`,qO=()=>`Funkcja Guardrails jest niedostępna.`,JO=((e={},t={})=>(t.locale??J())===`pl`?qO(e):KO(e)),YO=()=>`Create Guardrail`,XO=()=>`Utwórz Guardrail`,ZO=((e={},t={})=>(t.locale??J())===`pl`?XO(e):YO(e)),QO=()=>`Filter by name, type, user path, summary...`,$O=()=>`Filtruj według nazwy, typu, User Path lub podsumowania...`,ek=((e={},t={})=>(t.locale??J())===`pl`?$O(e):QO(e)),tk=()=>`Filter Guardrails`,nk=()=>`Filtruj Guardrails`,rk=((e={},t={})=>(t.locale??J())===`pl`?nk(e):tk(e)),ik=()=>`Name`,ak=()=>`Nazwa`,ok=((e={},t={})=>(t.locale??J())===`pl`?ak(e):ik(e)),sk=()=>`Type`,ck=()=>`Typ`,lk=((e={},t={})=>(t.locale??J())===`pl`?ck(e):sk(e)),uk=()=>`User Path`,dk=()=>`User Path`,fk=((e={},t={})=>(t.locale??J())===`pl`?dk(e):uk(e)),pk=()=>`Summary`,mk=()=>`Podsumowanie`,hk=((e={},t={})=>(t.locale??J())===`pl`?mk(e):pk(e)),gk=()=>`Actions`,_k=()=>`Akcje`,vk=((e={},t={})=>(t.locale??J())===`pl`?_k(e):gk(e)),yk=()=>`No Guardrails defined yet.`,bk=()=>`Nie zdefiniowano jeszcze Guardrails.`,xk=((e={},t={})=>(t.locale??J())===`pl`?bk(e):yk(e)),Sk=()=>`Guardrails help`,Ck=()=>`Pomoc dotycząca Guardrails`,wk=((e={},t={})=>(t.locale??J())===`pl`?Ck(e):Sk(e)),Tk=()=>`Reusable policy objects stored in the database and kept hot in memory for Workflow execution.`,Ek=()=>`Obiekty polityk wielokrotnego użytku zapisane w bazie danych i utrzymywane w pamięci na potrzeby wykonywania Workflows.`,Dk=((e={},t={})=>(t.locale??J())===`pl`?Ek(e):Tk(e)),Ok=()=>`Store Guardrails in the database, keep them hot in memory, and attach them to Workflows by reference.`,kk=()=>`Przechowuj Guardrails w bazie danych, utrzymuj je w pamięci i dołączaj do Workflows przez referencję.`,Ak=((e={},t={})=>(t.locale??J())===`pl`?kk(e):Ok(e)),jk=()=>`Each instance has a reusable name, a type, an optional user path for visibility scoping, and a JSON-backed config payload.`,Mk=()=>`Każda instancja ma nazwę wielokrotnego użytku, typ, opcjonalny User Path do ograniczania widoczności i konfigurację JSON.`,Nk=((e={},t={})=>(t.locale??J())===`pl`?Mk(e):jk(e)),Pk=()=>`Loading Guardrails...`,Fk=()=>`Wczytywanie Guardrails...`,Ik=((e={},t={})=>(t.locale??J())===`pl`?Fk(e):Pk(e)),Lk=()=>`No summary yet.`,Rk=()=>`Brak podsumowania.`,zk=((e={},t={})=>(t.locale??J())===`pl`?Rk(e):Lk(e)),Bk=()=>`Workflow editor`,Vk=()=>`Edytor Workflow`,Hk=((e={},t={})=>(t.locale??J())===`pl`?Vk(e):Bk(e)),Uk=()=>`Workflow help`,Wk=()=>`Pomoc dotycząca Workflow`,Gk=((e={},t={})=>(t.locale??J())===`pl`?Wk(e):Uk(e)),Kk=()=>`Create an immutable version. Submitting activates it for the selected scope.`,qk=()=>`Utwórz niezmienną wersję. Zapisanie aktywuje ją dla wybranego zakresu.`,Jk=((e={},t={})=>(t.locale??J())===`pl`?qk(e):Kk(e)),Yk=()=>`Edit Workflow`,Xk=()=>`Edytuj Workflow`,Zk=((e={},t={})=>(t.locale??J())===`pl`?Xk(e):Yk(e)),Qk=()=>`Create Workflow`,$k=()=>`Utwórz Workflow`,eA=((e={},t={})=>(t.locale??J())===`pl`?$k(e):Qk(e)),tA=()=>`Provider Name`,nA=()=>`Nazwa dostawcy`,rA=((e={},t={})=>(t.locale??J())===`pl`?nA(e):tA(e)),iA=()=>`All providers and models`,aA=()=>`Wszyscy dostawcy i modele`,oA=((e={},t={})=>(t.locale??J())===`pl`?aA(e):iA(e)),sA=()=>`Model`,cA=()=>`Model`,lA=((e={},t={})=>(t.locale??J())===`pl`?cA(e):sA(e)),uA=()=>`All models for provider`,dA=()=>`Wszystkie modele dostawcy`,fA=((e={},t={})=>(t.locale??J())===`pl`?dA(e):uA(e)),pA=()=>`Name`,mA=()=>`Nazwa`,hA=((e={},t={})=>(t.locale??J())===`pl`?mA(e):pA(e)),gA=()=>`Optional. Defaults to scope label.`,_A=()=>`Opcjonalna. Domyślnie etykieta zakresu.`,vA=((e={},t={})=>(t.locale??J())===`pl`?_A(e):gA(e)),yA=()=>`User Path`,bA=()=>`User Path`,xA=((e={},t={})=>(t.locale??J())===`pl`?bA(e):yA(e)),SA=()=>`Leave provider name empty to target all providers and models. Select a provider without a model to target all its models.`,CA=()=>`Pozostaw nazwę dostawcy pustą, aby objąć wszystkich dostawców i modele. Wybierz dostawcę bez modelu, aby objąć wszystkie jego modele.`,wA=((e={},t={})=>(t.locale??J())===`pl`?CA(e):SA(e)),TA=()=>`Add a path to scope the Workflow to that subtree. Leading slashes are optional and normalized. The deepest user path matches first.`,EA=()=>`Dodaj ścieżkę, aby ograniczyć Workflow do jej poddrzewa. Początkowe ukośniki są opcjonalne i normalizowane. Najgłębsza ścieżka ma pierwszeństwo.`,DA=((e={},t={})=>(t.locale??J())===`pl`?EA(e):TA(e)),OA=()=>`If the name is empty, the Workflow displays as its matched scope or All models.`,kA=()=>`Jeśli nazwa jest pusta, Workflow wyświetla dopasowany zakres lub Wszystkie modele.`,AA=((e={},t={})=>(t.locale??J())===`pl`?kA(e):OA(e)),jA=()=>`Description`,MA=()=>`Opis`,NA=((e={},t={})=>(t.locale??J())===`pl`?MA(e):jA(e)),PA=()=>`Optional operator note for why this version exists.`,FA=()=>`Opcjonalna notatka operatora opisująca powód utworzenia wersji.`,IA=((e={},t={})=>(t.locale??J())===`pl`?FA(e):PA(e)),LA=()=>`Cache`,RA=()=>`Cache`,zA=((e={},t={})=>(t.locale??J())===`pl`?RA(e):LA(e)),BA=()=>`Audit Logs`,VA=()=>`Logi audytowe`,HA=((e={},t={})=>(t.locale??J())===`pl`?VA(e):BA(e)),UA=()=>`Usage`,WA=()=>`Zużycie`,GA=((e={},t={})=>(t.locale??J())===`pl`?WA(e):UA(e)),KA=()=>`Budget`,qA=()=>`Budżet`,JA=((e={},t={})=>(t.locale??J())===`pl`?qA(e):KA(e)),YA=()=>`Failover`,XA=()=>`Failover`,ZA=((e={},t={})=>(t.locale??J())===`pl`?XA(e):YA(e)),QA=()=>`Preview`,$A=()=>`Podgląd`,ej=((e={},t={})=>(t.locale??J())===`pl`?$A(e):QA(e)),tj=()=>`Live`,nj=()=>`Live`,rj=((e={},t={})=>(t.locale??J())===`pl`?nj(e):tj(e)),ij=()=>`Guardrail Steps`,aj=()=>`Kroki Guardrails`,oj=((e={},t={})=>(t.locale??J())===`pl`?aj(e):ij(e)),sj=()=>`Guardrails in the same numeric step run together. Later steps wait for earlier ones to finish.`,cj=()=>`Guardrails w tym samym kroku numerycznym działają razem. Późniejsze kroki czekają na zakończenie wcześniejszych.`,lj=((e={},t={})=>(t.locale??J())===`pl`?cj(e):sj(e)),uj=()=>`Add Step`,dj=()=>`Dodaj krok`,fj=((e={},t={})=>(t.locale??J())===`pl`?dj(e):uj(e)),pj=()=>`No named Guardrails are currently registered. You can still draft a Workflow, but creation may be rejected.`,mj=()=>`Nie zarejestrowano nazwanych Guardrails. Nadal możesz przygotować Workflow, ale jego utworzenie może zostać odrzucone.`,hj=((e={},t={})=>(t.locale??J())===`pl`?mj(e):pj(e)),gj=()=>`Open Guardrails`,_j=()=>`Otwórz Guardrails`,vj=((e={},t={})=>(t.locale??J())===`pl`?_j(e):gj(e)),yj=()=>`Guardrail reference`,bj=()=>`Referencja Guardrail`,xj=((e={},t={})=>(t.locale??J())===`pl`?bj(e):yj(e)),Sj=()=>`Step`,Cj=()=>`Krok`,wj=((e={},t={})=>(t.locale??J())===`pl`?Cj(e):Sj(e)),Tj=()=>`Remove`,Ej=()=>`Usuń`,Dj=((e={},t={})=>(t.locale??J())===`pl`?Ej(e):Tj(e)),Oj=()=>`No Guardrail steps configured yet.`,kj=()=>`Nie skonfigurowano jeszcze kroków Guardrails.`,Aj=((e={},t={})=>(t.locale??J())===`pl`?kj(e):Oj(e)),jj=()=>`Edit Rate Limit`,Mj=()=>`Edytuj Rate Limit`,Nj=((e={},t={})=>(t.locale??J())===`pl`?Mj(e):jj(e)),Pj=()=>`Rate limit editor`,Fj=()=>`Edytor Rate Limitu`,Ij=((e={},t={})=>(t.locale??J())===`pl`?Fj(e):Pj(e)),Lj=()=>`Save Rate Limit`,Rj=()=>`Zapisz Rate Limit`,zj=((e={},t={})=>(t.locale??J())===`pl`?Rj(e):Lj(e)),Bj=()=>`Scope`,Vj=()=>`Zakres`,Hj=((e={},t={})=>(t.locale??J())===`pl`?Vj(e):Bj(e)),Uj=()=>`Period`,Wj=()=>`Okres`,Gj=((e={},t={})=>(t.locale??J())===`pl`?Wj(e):Uj(e)),Kj=()=>`Period Seconds`,qj=()=>`Okres w sekundach`,Jj=((e={},t={})=>(t.locale??J())===`pl`?qj(e):Kj(e)),Yj=()=>`Max In-Flight Requests`,Xj=()=>`Maksymalna liczba Request'ów w toku`,Zj=((e={},t={})=>(t.locale??J())===`pl`?Xj(e):Yj(e)),Qj=()=>`Max Requests`,$j=()=>`Maksymalna liczba Request'ów`,eM=((e={},t={})=>(t.locale??J())===`pl`?$j(e):Qj(e)),tM=()=>`Max Tokens`,nM=()=>`Maksymalna liczba tokenów`,rM=((e={},t={})=>(t.locale??J())===`pl`?nM(e):tM(e)),iM=()=>`A user path rule limits the whole subtree; provider and model rules cap all traffic routed there. Leave a field empty to skip that limit. Token limits require usage tracking.`,aM=()=>`Reguła User Path ogranicza całe poddrzewo; reguły dostawcy i modelu ograniczają cały kierowany tam ruch. Pozostaw pole puste, aby pominąć limit. Limity tokenów wymagają śledzenia zużycia.`,oM=((e={},t={})=>(t.locale??J())===`pl`?aM(e):iM(e)),sM=()=>`Scope, subject, and period identify the rule. Changing any of them moves the rule and restarts its live counters.`,cM=()=>`Zakres, podmiot i okres identyfikują regułę. Ich zmiana przenosi regułę i restartuje liczniki Live.`,lM=((e={},t={})=>(t.locale??J())===`pl`?cM(e):sM(e)),uM=()=>`Edit Guardrail`,dM=()=>`Edytuj Guardrail`,fM=((e={},t={})=>(t.locale??J())===`pl`?dM(e):uM(e)),pM=()=>`Guardrail editor`,mM=()=>`Edytor Guardrail`,hM=((e={},t={})=>(t.locale??J())===`pl`?mM(e):pM(e)),gM=()=>`Save Guardrail`,_M=()=>`Zapisz Guardrail`,vM=((e={},t={})=>(t.locale??J())===`pl`?_M(e):gM(e)),yM=()=>`Workflows reference these names directly, so renames are intentionally avoided after creation.`,bM=()=>`Workflows odwołują się bezpośrednio do tych nazw, dlatego po utworzeniu celowo nie można ich zmieniać.`,xM=((e={},t={})=>(t.locale??J())===`pl`?bM(e):yM(e)),SM=()=>`Description`,CM=()=>`Opis`,wM=((e={},t={})=>(t.locale??J())===`pl`?CM(e):SM(e)),TM=()=>`What this Guardrail is meant to do`,EM=()=>`Przeznaczenie tego Guardrail`,DM=((e={},t={})=>(t.locale??J())===`pl`?EM(e):TM(e)),OM=()=>`Guardrail user path help`,kM=()=>`Pomoc dotycząca User Path Guardrail`,AM=((e={},t={})=>(t.locale??J())===`pl`?kM(e):OM(e)),jM=()=>`Only used for auxiliary rewrite Guardrails; ignored for other Guardrail types.`,MM=()=>`Używane tylko przez pomocnicze Guardrails przepisujące; ignorowane przez pozostałe typy.`,NM=((e={},t={})=>(t.locale??J())===`pl`?MM(e):jM(e)),PM=()=>`Monthly`,FM=()=>`Miesięcznie`,IM=((e={},t={})=>(t.locale??J())===`pl`?FM(e):PM(e)),LM=()=>`Weekly`,RM=()=>`Tygodniowo`,zM=((e={},t={})=>(t.locale??J())===`pl`?RM(e):LM(e)),BM=()=>`Daily`,VM=()=>`Dziennie`,HM=((e={},t={})=>(t.locale??J())===`pl`?VM(e):BM(e)),UM=()=>`Day of month help`,WM=()=>`Pomoc dotycząca dnia miesiąca`,GM=((e={},t={})=>(t.locale??J())===`pl`?WM(e):UM(e)),KM=()=>`Day of Month`,qM=()=>`Dzień miesiąca`,JM=((e={},t={})=>(t.locale??J())===`pl`?qM(e):KM(e)),YM=()=>`If the selected day does not exist in a month, the reset runs on the last day of that month.`,XM=()=>`Jeśli wybrany dzień nie występuje w danym miesiącu, reset nastąpi w ostatnim dniu tego miesiąca.`,ZM=((e={},t={})=>(t.locale??J())===`pl`?XM(e):YM(e)),QM=()=>`Day of Week`,$M=()=>`Dzień tygodnia`,eN=((e={},t={})=>(t.locale??J())===`pl`?$M(e):QM(e)),tN=()=>`Hour`,nN=()=>`Godzina`,rN=((e={},t={})=>(t.locale??J())===`pl`?nN(e):tN(e)),iN=()=>`Minute`,aN=()=>`Minuta`,oN=((e={},t={})=>(t.locale??J())===`pl`?aN(e):iN(e)),sN=()=>`Save Budget Settings`,cN=()=>`Zapisz ustawienia budżetów`,lN=((e={},t={})=>(t.locale??J())===`pl`?cN(e):sN(e)),uN=()=>`Loading budget settings`,dN=()=>`Wczytywanie ustawień budżetów`,fN=((e={},t={})=>(t.locale??J())===`pl`?dN(e):uN(e)),pN=()=>`Unable to load budget settings.`,mN=()=>`Nie można wczytać ustawień budżetów.`,hN=((e={},t={})=>(t.locale??J())===`pl`?mN(e):pN(e)),gN=()=>`Unable to save budget settings.`,_N=()=>`Nie można zapisać ustawień budżetów.`,vN=((e={},t={})=>(t.locale??J())===`pl`?_N(e):gN(e)),yN=()=>`Budget settings saved.`,bN=()=>`Ustawienia budżetów zapisane.`,xN=((e={},t={})=>(t.locale??J())===`pl`?bN(e):yN(e)),SN=()=>`Sunday`,CN=()=>`Niedziela`,wN=((e={},t={})=>(t.locale??J())===`pl`?CN(e):SN(e)),TN=()=>`Monday`,EN=()=>`Poniedziałek`,DN=((e={},t={})=>(t.locale??J())===`pl`?EN(e):TN(e)),ON=()=>`Tuesday`,kN=()=>`Wtorek`,AN=((e={},t={})=>(t.locale??J())===`pl`?kN(e):ON(e)),jN=()=>`Wednesday`,MN=()=>`Środa`,NN=((e={},t={})=>(t.locale??J())===`pl`?MN(e):jN(e)),PN=()=>`Thursday`,FN=()=>`Czwartek`,IN=((e={},t={})=>(t.locale??J())===`pl`?FN(e):PN(e)),LN=()=>`Friday`,RN=()=>`Piątek`,zN=((e={},t={})=>(t.locale??J())===`pl`?RN(e):LN(e)),BN=()=>`Saturday`,VN=()=>`Sobota`,HN=((e={},t={})=>(t.locale??J())===`pl`?VN(e):BN(e)),UN=()=>`Tagging based on headers`,WN=()=>`Tagowanie na podstawie nagłówków`,GN=((e={},t={})=>(t.locale??J())===`pl`?WN(e):UN(e)),KN=()=>`Tagging help`,qN=()=>`Pomoc dotycząca tagowania`,JN=((e={},t={})=>(t.locale??J())===`pl`?qN(e):KN(e)),YN=()=>`Each request is labelled from the listed headers; labels appear in usage tracking and audit logs. A header value can contain multiple labels separated by the delimiter (comma by default). The prefix is trimmed only from each label—the header itself is forwarded unchanged unless Do not pass is selected. Rows marked CONFIG come from config.yaml or TAGGING_HEADER_* environment variables and are read-only here.`,XN=()=>`Każdy Request otrzymuje etykiety z podanych nagłówków; etykiety trafiają do śledzenia zużycia i logów audytowych. Wartość nagłówka może zawierać kilka etykiet rozdzielonych separatorem (domyślnie przecinkiem). Prefiks jest usuwany tylko z każdej etykiety—sam nagłówek jest przekazywany bez zmian, chyba że zaznaczono Nie przekazuj. Wiersze oznaczone CONFIG pochodzą z config.yaml lub zmiennych środowiskowych TAGGING_HEADER_* i są tutaj tylko do odczytu.`,ZN=((e={},t={})=>(t.locale??J())===`pl`?XN(e):YN(e)),QN=()=>`Header`,$N=()=>`Nagłówek`,eP=((e={},t={})=>(t.locale??J())===`pl`?$N(e):QN(e)),tP=()=>`Prefix to trim (optional)`,nP=()=>`Prefiks do usunięcia (opcjonalnie)`,rP=((e={},t={})=>(t.locale??J())===`pl`?nP(e):tP(e)),iP=()=>`Delimiter`,aP=()=>`Separator`,oP=((e={},t={})=>(t.locale??J())===`pl`?aP(e):iP(e)),sP=()=>`Do not pass upstream`,cP=()=>`Nie przekazuj dalej`,lP=((e={},t={})=>(t.locale??J())===`pl`?cP(e):sP(e)),uP=()=>`Declared in config.yaml or TAGGING_HEADER_* environment variables; read-only here.`,dP=()=>`Zdefiniowane w config.yaml lub zmiennych środowiskowych TAGGING_HEADER_*; tutaj tylko do odczytu.`,fP=((e={},t={})=>(t.locale??J())===`pl`?dP(e):uP(e)),pP=()=>`Remove`,mP=()=>`Usuń`,hP=((e={},t={})=>(t.locale??J())===`pl`?mP(e):pP(e)),gP=e=>`Remove tagging header ${e?.header}`,_P=e=>`Usuń nagłówek tagowania ${e?.header}`,vP=((e,t={})=>(t.locale??J())===`pl`?_P(e):gP(e)),yP=()=>`Loading tagging settings`,bP=()=>`Wczytywanie ustawień tagowania`,xP=((e={},t={})=>(t.locale??J())===`pl`?bP(e):yP(e)),SP=()=>`No tagging headers configured. Requests are not labelled.`,CP=()=>`Nie skonfigurowano nagłówków tagowania. Requesty nie otrzymują etykiet.`,wP=((e={},t={})=>(t.locale??J())===`pl`?CP(e):SP(e)),TP=()=>`Add Header`,EP=()=>`Dodaj nagłówek`,DP=((e={},t={})=>(t.locale??J())===`pl`?EP(e):TP(e)),OP=()=>`Save Tagging Settings`,kP=()=>`Zapisz ustawienia tagowania`,AP=((e={},t={})=>(t.locale??J())===`pl`?kP(e):OP(e)),jP=()=>`Unable to load tagging settings.`,MP=()=>`Nie można wczytać ustawień tagowania.`,NP=((e={},t={})=>(t.locale??J())===`pl`?MP(e):jP(e)),PP=()=>`Unable to save tagging settings.`,FP=()=>`Nie można zapisać ustawień tagowania.`,IP=((e={},t={})=>(t.locale??J())===`pl`?FP(e):PP(e)),LP=()=>`Tagging settings saved.`,RP=()=>`Ustawienia tagowania zapisane.`,zP=((e={},t={})=>(t.locale??J())===`pl`?RP(e):LP(e)),BP=()=>`Runtime Refresh`,VP=()=>`Odświeżenie runtime`,HP=((e={},t={})=>(t.locale??J())===`pl`?VP(e):BP(e)),UP=()=>`Runtime refresh help`,WP=()=>`Pomoc dotycząca odświeżenia runtime`,GP=((e={},t={})=>(t.locale??J())===`pl`?WP(e):UP(e)),KP=()=>`Pull the latest model metadata, provider inventory, API keys, aliases, model access rules, Guardrails, and Workflows.`,qP=()=>`Pobierz najnowsze metadane modeli, listę dostawców, klucze API, aliasy, reguły dostępu do modeli, Guardrails i Workflows.`,JP=((e={},t={})=>(t.locale??J())===`pl`?qP(e):KP(e)),YP=()=>`Refresh`,XP=()=>`Odśwież`,ZP=((e={},t={})=>(t.locale??J())===`pl`?XP(e):YP(e)),QP=()=>`Runtime refresh completed.`,$P=()=>`Odświeżenie runtime zakończone.`,eF=((e={},t={})=>(t.locale??J())===`pl`?$P(e):QP(e)),tF=()=>`Runtime refreshed.`,nF=()=>`Runtime odświeżony.`,rF=((e={},t={})=>(t.locale??J())===`pl`?nF(e):tF(e)),iF=()=>`Runtime refresh completed with warnings.`,aF=()=>`Odświeżenie runtime zakończone z ostrzeżeniami.`,oF=((e={},t={})=>(t.locale??J())===`pl`?aF(e):iF(e)),sF=()=>`Runtime refresh failed.`,cF=()=>`Odświeżenie runtime nie powiodło się.`,lF=((e={},t={})=>(t.locale??J())===`pl`?cF(e):sF(e)),uF=e=>`${e?.status} ${e?.models} · ${e?.providers}.`,dF=e=>`${e?.status} ${e?.models} · ${e?.providers}.`,fF=((e,t={})=>(t.locale??J())===`pl`?dF(e):uF(e)),pF=e=>No(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,mF=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},hF=((e,t={})=>(t.locale??J())===`pl`?mF(e):pF(e)),gF=e=>No(`en`,e?.count,{})===`one`?`${e?.count} provider`:`${e?.count} providers`,_F=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} dostawca`:t===`few`||t===`many`?`${e?.count} dostawców`:`${e?.count} dostawcy`},vF=((e,t={})=>(t.locale??J())===`pl`?_F(e):gF(e)),yF=()=>`AI Processing`,bF=()=>`Przetwarzanie AI`,xF=((e={},t={})=>(t.locale??J())===`pl`?bF(e):yF(e)),SF=()=>`Unable to load runtime settings.`,CF=()=>`Nie można wczytać ustawień runtime.`,wF=((e={},t={})=>(t.locale??J())===`pl`?CF(e):SF(e)),TF=e=>`Unable to save ${e?.setting}.`,EF=e=>`Nie można zapisać ustawienia ${e?.setting}.`,DF=((e,t={})=>(t.locale??J())===`pl`?EF(e):TF(e)),OF=e=>`${e?.setting} saved.`,kF=e=>`Zapisano ustawienie ${e?.setting}.`,AF=((e,t={})=>(t.locale??J())===`pl`?kF(e):OF(e)),jF=e=>`Managed by ${e?.source}`,MF=e=>`Zarządzane przez: ${e?.source}`,NF=((e,t={})=>(t.locale??J())===`pl`?MF(e):jF(e)),PF=()=>`environment`,FF=()=>`środowisko`,IF=((e={},t={})=>(t.locale??J())===`pl`?FF(e):PF(e)),LF=()=>`Usage Pricing Recalculation`,RF=()=>`Ponowne przeliczenie cen zużycia`,zF=((e={},t={})=>(t.locale??J())===`pl`?RF(e):LF(e)),BF=()=>`Pricing recalculation help`,VF=()=>`Pomoc dotycząca przeliczania cen`,HF=((e={},t={})=>(t.locale??J())===`pl`?VF(e):BF(e)),UF=()=>`Recalculate stored input, output, total, and Pro Saved costs from the current model pricing metadata. This overwrites matching historical cost fields. Filters apply to the selected date range, user path subtree, and provider/model selector or alias.`,WF=()=>`Przelicz zapisane koszty wejścia, wyjścia, łączne oraz Pro Saved na podstawie bieżących metadanych cen modeli. Operacja nadpisuje pasujące historyczne pola kosztów. Filtry dotyczą wybranego zakresu dat, poddrzewa User Path oraz selektora lub aliasu dostawcy/modelu.`,GF=((e={},t={})=>(t.locale??J())===`pl`?WF(e):UF(e)),KF=()=>`Date Range`,qF=()=>`Zakres dat`,JF=((e={},t={})=>(t.locale??J())===`pl`?qF(e):KF(e)),YF=()=>`User Path (optional)`,XF=()=>`User Path (opcjonalny)`,ZF=((e={},t={})=>(t.locale??J())===`pl`?XF(e):YF(e)),QF=()=>`Provider/Model or Alias (optional)`,$F=()=>`Dostawca/model lub alias (opcjonalnie)`,eI=((e={},t={})=>(t.locale??J())===`pl`?$F(e):QF(e)),tI=()=>`openai/gpt-4o or smart`,nI=()=>`openai/gpt-4o lub smart`,rI=((e={},t={})=>(t.locale??J())===`pl`?nI(e):tI(e)),iI=()=>`Recalculate Pricing`,aI=()=>`Przelicz ceny`,oI=((e={},t={})=>(t.locale??J())===`pl`?aI(e):iI(e)),sI=()=>`Usage pricing recalculation is unavailable.`,cI=()=>`Ponowne przeliczanie cen zużycia jest niedostępne.`,lI=((e={},t={})=>(t.locale??J())===`pl`?cI(e):sI(e)),uI=()=>`recalculate`,dI=()=>`przelicz`,fI=((e={},t={})=>(t.locale??J())===`pl`?dI(e):uI(e)),pI=()=>`Stored usage cost fields matching the selected filters will be overwritten.`,mI=()=>`Zapisane pola kosztów zużycia pasujące do wybranych filtrów zostaną nadpisane.`,hI=((e={},t={})=>(t.locale??J())===`pl`?mI(e):pI(e)),gI=()=>`Unable to recalculate pricing.`,_I=()=>`Nie można przeliczyć cen.`,vI=((e={},t={})=>(t.locale??J())===`pl`?_I(e):gI(e)),yI=e=>No(`en`,e?.matched,{})===`one`?`Pricing recalculated for ${e?.recalculated} of ${e?.matched} usage record.`:`Pricing recalculated for ${e?.recalculated} of ${e?.matched} usage records.`,bI=e=>{let t=No(`pl`,e?.matched,{});return t===`one`?`Przeliczono ceny dla ${e?.recalculated} z ${e?.matched} rekordu zużycia.`:t===`few`||t===`many`?`Przeliczono ceny dla ${e?.recalculated} z ${e?.matched} rekordów zużycia.`:`Przeliczono ceny dla ${e?.recalculated} z ${e?.matched} rekordu zużycia.`},xI=((e,t={})=>(t.locale??J())===`pl`?bI(e):yI(e)),SI=e=>No(`en`,e?.count,{})===`one`?`${e?.count} usage record still lacks pricing metadata.`:`${e?.count} usage records still lack pricing metadata.`,CI=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} rekord zużycia nadal nie ma metadanych cen.`:t===`few`?`${e?.count} rekordy zużycia nadal nie mają metadanych cen.`:t===`many`?`${e?.count} rekordów zużycia nadal nie ma metadanych cen.`:`${e?.count} rekordu zużycia nadal nie ma metadanych cen.`},wI=((e,t={})=>(t.locale??J())===`pl`?CI(e):SI(e)),TI=()=>`Sign out`,EI=()=>`Wyloguj się`,DI=((e={},t={})=>(t.locale??J())===`pl`?EI(e):TI(e)),OI=()=>`Enter API key`,kI=()=>`Wprowadź klucz API`,AI=((e={},t={})=>(t.locale??J())===`pl`?kI(e):OI(e)),jI=()=>`Change API key`,MI=()=>`Zmień klucz API`,NI=((e={},t={})=>(t.locale??J())===`pl`?MI(e):jI(e)),PI=()=>`Resize sidebar`,FI=()=>`Zmień szerokość paska bocznego`,II=((e={},t={})=>(t.locale??J())===`pl`?FI(e):PI(e)),LI=()=>`Drag to resize; click to collapse or expand`,RI=()=>`Przeciągnij, aby zmienić szerokość; kliknij, aby zwinąć lub rozwinąć`,zI=((e={},t={})=>(t.locale??J())===`pl`?RI(e):LI(e)),BI=()=>`Theme`,VI=()=>`Motyw`,HI=((e={},t={})=>(t.locale??J())===`pl`?VI(e):BI(e)),UI=()=>`Light theme`,WI=()=>`Jasny motyw`,GI=((e={},t={})=>(t.locale??J())===`pl`?WI(e):UI(e)),KI=()=>`System theme`,qI=()=>`Motyw systemowy`,JI=((e={},t={})=>(t.locale??J())===`pl`?qI(e):KI(e)),YI=()=>`Dark theme`,XI=()=>`Ciemny motyw`,ZI=((e={},t={})=>(t.locale??J())===`pl`?XI(e):YI(e)),QI=e=>`Change theme (currently ${e?.theme})`,$I=e=>`Zmień motyw (obecnie: ${e?.theme})`,eL=((e,t={})=>(t.locale??J())===`pl`?$I(e):QI(e)),tL=()=>`Language`,nL=()=>`Język`,rL=((e={},t={})=>(t.locale??J())===`pl`?nL(e):tL(e)),iL=()=>`Authentication required for dashboard data.`,aL=()=>`Dostęp do danych panelu wymaga uwierzytelnienia.`,oL=((e={},t={})=>(t.locale??J())===`pl`?aL(e):iL(e)),sL=()=>`Dashboard locked`,cL=()=>`Panel zablokowany`,lL=((e={},t={})=>(t.locale??J())===`pl`?cL(e):sL(e)),uL=()=>`Change API key`,dL=()=>`Zmień klucz API`,fL=((e={},t={})=>(t.locale??J())===`pl`?dL(e):uL(e)),pL=()=>`Close authentication dialog`,mL=()=>`Zamknij okno uwierzytelniania`,hL=((e={},t={})=>(t.locale??J())===`pl`?mL(e):pL(e)),gL=()=>`Sign in with SSO`,_L=()=>`Zaloguj się przez SSO`,vL=((e={},t={})=>(t.locale??J())===`pl`?_L(e):gL(e)),yL=()=>`or use an API key`,bL=()=>`lub użyj klucza API`,xL=((e={},t={})=>(t.locale??J())===`pl`?bL(e):yL(e)),SL=()=>`API key`,CL=()=>`Klucz API`,wL=((e={},t={})=>(t.locale??J())===`pl`?CL(e):SL(e)),TL=()=>`Master key or bearer token`,EL=()=>`Klucz główny lub token Bearer`,DL=((e={},t={})=>(t.locale??J())===`pl`?EL(e):TL(e)),OL=()=>`Enter a valid API key to continue.`,kL=()=>`Aby kontynuować, wprowadź prawidłowy klucz API.`,AL=((e={},t={})=>(t.locale??J())===`pl`?kL(e):OL(e)),jL=()=>`Stored in this browser. Requests use the Authorization bearer header.`,ML=()=>`Klucz jest przechowywany w tej przeglądarce. Requesty używają nagłówka Authorization typu Bearer.`,NL=((e={},t={})=>(t.locale??J())===`pl`?ML(e):jL(e)),PL=()=>`Unlock dashboard`,FL=()=>`Odblokuj panel`,IL=((e={},t={})=>(t.locale??J())===`pl`?FL(e):PL(e)),LL=()=>`Save API key`,RL=()=>`Zapisz klucz API`,zL=((e={},t={})=>(t.locale??J())===`pl`?RL(e):LL(e)),BL=()=>`Close confirmation dialog`,VL=()=>`Zamknij okno potwierdzenia`,HL=((e={},t={})=>(t.locale??J())===`pl`?VL(e):BL(e)),UL=()=>`Dismiss notification`,WL=()=>`Zamknij powiadomienie`,GL=((e={},t={})=>(t.locale??J())===`pl`?WL(e):UL(e)),KL=()=>`Demo mode notice`,qL=()=>`Informacja o trybie demo`,JL=((e={},t={})=>(t.locale??J())===`pl`?qL(e):KL(e)),YL=()=>`Public demo`,XL=()=>`Publiczne demo`,ZL=((e={},t={})=>(t.locale??J())===`pl`?XL(e):YL(e)),QL=()=>`Do not enter sensitive or personal data. Demo data is reset regularly.`,$L=()=>`Nie wprowadzaj danych poufnych ani osobowych. Dane demonstracyjne są regularnie resetowane.`,eR=((e={},t={})=>(t.locale??J())===`pl`?$L(e):QL(e)),tR=()=>`GoModel website`,nR=()=>`Strona GoModel`,rR=((e={},t={})=>(t.locale??J())===`pl`?nR(e):tR(e)),iR=e=>`Showing ${e?.start}–${e?.end} of ${e?.total}`,aR=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total}`,oR=((e,t={})=>(t.locale??J())===`pl`?aR(e):iR(e)),sR=e=>No(`en`,e?.count,{})===`one`?`Last ${e?.count} day`:`Last ${e?.count} days`,cR=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`Ostatni ${e?.count} dzień`:t===`few`||t===`many`?`Ostatnie ${e?.count} dni`:`Ostatnie ${e?.count} dnia`},lR=((e,t={})=>(t.locale??J())===`pl`?cR(e):sR(e)),uR=e=>No(`en`,e?.count,{})===`one`?`${e?.count} day`:`${e?.count} days`,dR=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} dzień`:t===`few`||t===`many`?`${e?.count} dni`:`${e?.count} dnia`},fR=((e,t={})=>(t.locale??J())===`pl`?dR(e):uR(e)),pR=()=>`Today`,mR=()=>`Dzisiaj`,hR=((e={},t={})=>(t.locale??J())===`pl`?mR(e):pR(e)),gR=e=>`${e?.start} – ${e?.end}`,_R=e=>`${e?.start} – ${e?.end}`,vR=((e,t={})=>(t.locale??J())===`pl`?_R(e):gR(e)),yR=e=>`${e?.start} – ...`,bR=e=>`${e?.start} – ...`,xR=((e,t={})=>(t.locale??J())===`pl`?bR(e):yR(e)),SR=()=>`Select start date`,CR=()=>`Wybierz datę początkową`,wR=((e={},t={})=>(t.locale??J())===`pl`?CR(e):SR(e)),TR=()=>`Select end date`,ER=()=>`Wybierz datę końcową`,DR=((e={},t={})=>(t.locale??J())===`pl`?ER(e):TR(e)),OR=()=>`Previous month`,kR=()=>`Poprzedni miesiąc`,AR=((e={},t={})=>(t.locale??J())===`pl`?kR(e):OR(e)),jR=()=>`Next month`,MR=()=>`Następny miesiąc`,NR=((e={},t={})=>(t.locale??J())===`pl`?MR(e):jR(e)),PR=()=>`Daily Token Usage`,FR=()=>`Dzienne zużycie tokenów`,IR=((e={},t={})=>(t.locale??J())===`pl`?FR(e):PR(e)),LR=()=>`Weekly Token Usage`,RR=()=>`Tygodniowe zużycie tokenów`,zR=((e={},t={})=>(t.locale??J())===`pl`?RR(e):LR(e)),BR=()=>`Monthly Token Usage`,VR=()=>`Miesięczne zużycie tokenów`,HR=((e={},t={})=>(t.locale??J())===`pl`?VR(e):BR(e)),UR=()=>`Yearly Token Usage`,WR=()=>`Roczne zużycie tokenów`,GR=((e={},t={})=>(t.locale??J())===`pl`?WR(e):UR(e)),KR=()=>`Enabled`,qR=()=>`Włączony`,JR=((e={},t={})=>(t.locale??J())===`pl`?qR(e):KR(e)),YR=()=>`Disabled`,XR=()=>`Wyłączony`,ZR=((e={},t={})=>(t.locale??J())===`pl`?XR(e):YR(e)),QR=()=>`Config`,$R=()=>`Config`,ez=((e={},t={})=>(t.locale??J())===`pl`?$R(e):QR(e)),tz=()=>`Authentication required.`,nz=()=>`Wymagane uwierzytelnienie.`,rz=((e={},t={})=>(t.locale??J())===`pl`?nz(e):tz(e)),iz=()=>`Keys without dashboard access are denied the dashboard and every /admin API endpoint. Model endpoints and GET /v1/usage stay available to all keys.`,az=()=>`Klucze bez dostępu do dashboardu nie mogą korzystać z dashboardu ani endpointów /admin API. Endpointy modeli i GET /v1/usage pozostają dostępne dla wszystkich kluczy.`,oz=((e={},t={})=>(t.locale??J())===`pl`?az(e):iz(e)),sz=e=>`Grant dashboard access to API key ${e?.name}`,cz=e=>`Przyznaj dostęp do dashboardu kluczowi API ${e?.name}`,lz=((e,t={})=>(t.locale??J())===`pl`?cz(e):sz(e)),uz=e=>`Revoke dashboard access for API key ${e?.name}`,dz=e=>`Odbierz dostęp do dashboardu kluczowi API ${e?.name}`,fz=((e,t={})=>(t.locale??J())===`pl`?dz(e):uz(e)),pz=e=>`Edit labels for API key ${e?.name}`,mz=e=>`Edytuj etykiety klucza API ${e?.name}`,hz=((e,t={})=>(t.locale??J())===`pl`?mz(e):pz(e)),gz=e=>`Deactivate API key ${e?.name}`,_z=e=>`Dezaktywuj klucz API ${e?.name}`,vz=((e,t={})=>(t.locale??J())===`pl`?_z(e):gz(e)),yz=e=>`Deactivating API key ${e?.name}`,bz=e=>`Dezaktywowanie klucza API ${e?.name}`,xz=((e,t={})=>(t.locale??J())===`pl`?bz(e):yz(e)),Sz=e=>`Deactivated on ${e?.date}`,Cz=e=>`Dezaktywowano ${e?.date}`,wz=((e,t={})=>(t.locale??J())===`pl`?Cz(e):Sz(e)),Tz=()=>`Unable to load API keys.`,Ez=()=>`Nie udało się wczytać kluczy API.`,Dz=((e={},t={})=>(t.locale??J())===`pl`?Ez(e):Tz(e)),Oz=()=>`Failed to create API key.`,kz=()=>`Nie udało się utworzyć klucza API.`,Az=((e={},t={})=>(t.locale??J())===`pl`?kz(e):Oz(e)),jz=()=>`Auth keys feature is unavailable.`,Mz=()=>`Funkcja kluczy API jest niedostępna.`,Nz=((e={},t={})=>(t.locale??J())===`pl`?Mz(e):jz(e)),Pz=()=>`Failed to update labels.`,Fz=()=>`Nie udało się zaktualizować etykiet.`,Iz=((e={},t={})=>(t.locale??J())===`pl`?Fz(e):Pz(e)),Lz=e=>`Labels updated for key "${e?.name}".`,Rz=e=>`Zaktualizowano etykiety klucza „${e?.name}”.`,zz=((e,t={})=>(t.locale??J())===`pl`?Rz(e):Lz(e)),Bz=()=>`Failed to update dashboard access.`,Vz=()=>`Nie udało się zaktualizować dostępu do dashboardu.`,Hz=((e={},t={})=>(t.locale??J())===`pl`?Vz(e):Bz(e)),Uz=e=>`Dashboard access granted to key "${e?.name}".`,Wz=e=>`Przyznano dostęp do dashboardu kluczowi „${e?.name}”.`,Gz=((e,t={})=>(t.locale??J())===`pl`?Wz(e):Uz(e)),Kz=e=>`Dashboard access revoked for key "${e?.name}".`,qz=e=>`Odebrano dostęp do dashboardu kluczowi „${e?.name}”.`,Jz=((e,t={})=>(t.locale??J())===`pl`?qz(e):Kz(e)),Yz=e=>`Deactivate key "${e?.name}"? This cannot be undone.`,Xz=e=>`Dezaktywować klucz „${e?.name}”? Tej operacji nie można cofnąć.`,Zz=((e,t={})=>(t.locale??J())===`pl`?Xz(e):Yz(e)),Qz=()=>`Failed to deactivate key.`,$z=()=>`Nie udało się dezaktywować klucza.`,eB=((e={},t={})=>(t.locale??J())===`pl`?$z(e):Qz(e)),tB=e=>`Key "${e?.name}" deactivated.`,nB=e=>`Dezaktywowano klucz „${e?.name}”.`,rB=((e,t={})=>(t.locale??J())===`pl`?nB(e):tB(e)),iB=()=>`Name is required.`,aB=()=>`Nazwa jest wymagana.`,oB=((e={},t={})=>(t.locale??J())===`pl`?aB(e):iB(e)),sB=()=>`User path cannot contain "." or ".." segments.`,cB=()=>`User Path nie może zawierać segmentów "." ani "..".`,lB=((e={},t={})=>(t.locale??J())===`pl`?cB(e):sB(e)),uB=()=>`User path cannot contain ":" segments.`,dB=()=>`User Path nie może zawierać segmentów z ":".`,fB=((e={},t={})=>(t.locale??J())===`pl`?dB(e):uB(e)),pB=()=>`Transport`,mB=()=>`Transport`,hB=((e={},t={})=>(t.locale??J())===`pl`?mB(e):pB(e)),gB=()=>`Endpoint`,_B=()=>`Endpoint`,vB=((e={},t={})=>(t.locale??J())===`pl`?_B(e):gB(e)),yB=()=>`Status`,bB=()=>`Status`,xB=((e={},t={})=>(t.locale??J())===`pl`?bB(e):yB(e)),SB=()=>`Tools`,CB=()=>`Narzędzia`,wB=((e={},t={})=>(t.locale??J())===`pl`?CB(e):SB(e)),TB=()=>`Enabled`,EB=()=>`Włączony`,DB=((e={},t={})=>(t.locale??J())===`pl`?EB(e):TB(e)),OB=()=>`Actions`,kB=()=>`Akcje`,AB=((e={},t={})=>(t.locale??J())===`pl`?kB(e):OB(e)),jB=()=>`Declared in configuration (config.yaml mcp.servers); read-only in the dashboard`,MB=()=>`Zadeklarowano w konfiguracji (config.yaml mcp.servers); tylko do odczytu w dashboardzie`,NB=((e={},t={})=>(t.locale??J())===`pl`?MB(e):jB(e)),PB=e=>`Edit MCP server ${e?.name}`,FB=e=>`Edytuj serwer MCP ${e?.name}`,IB=((e,t={})=>(t.locale??J())===`pl`?FB(e):PB(e)),LB=e=>`Inspect catalog of MCP server ${e?.name}`,RB=e=>`Sprawdź katalog serwera MCP ${e?.name}`,zB=((e,t={})=>(t.locale??J())===`pl`?RB(e):LB(e)),BB=e=>`Reconnect MCP server ${e?.name}`,VB=e=>`Połącz ponownie serwer MCP ${e?.name}`,HB=((e,t={})=>(t.locale??J())===`pl`?VB(e):BB(e)),UB=e=>`Reconnecting MCP server ${e?.name}`,WB=e=>`Ponowne łączenie serwera MCP ${e?.name}`,GB=((e,t={})=>(t.locale??J())===`pl`?WB(e):UB(e)),KB=e=>`Delete MCP server ${e?.name}`,qB=e=>`Usuń serwer MCP ${e?.name}`,JB=((e,t={})=>(t.locale??J())===`pl`?qB(e):KB(e)),YB=e=>`Deleting MCP server ${e?.name}`,XB=e=>`Usuwanie serwera MCP ${e?.name}`,ZB=((e,t={})=>(t.locale??J())===`pl`?XB(e):YB(e)),QB=e=>`Connected since ${e?.date}`,$B=e=>`Połączono od ${e?.date}`,eV=((e,t={})=>(t.locale??J())===`pl`?$B(e):QB(e)),tV=()=>`local command`,nV=()=>`komenda lokalna`,rV=((e={},t={})=>(t.locale??J())===`pl`?nV(e):tV(e)),iV=e=>`${e?.prompts} prompts · ${e?.resources} resources`,aV=e=>`Prompty: ${e?.prompts} · zasoby: ${e?.resources}`,oV=((e,t={})=>(t.locale??J())===`pl`?aV(e):iV(e)),sV=()=>`Name is required.`,cV=()=>`Nazwa jest wymagana.`,lV=((e={},t={})=>(t.locale??J())===`pl`?cV(e):sV(e)),uV=()=>`Slug must use 1–64 lowercase ASCII letters, numbers, hyphens, or underscores.`,dV=()=>`Slug musi zawierać 1–64 małych liter ASCII, cyfr, łączników lub podkreśleń.`,fV=((e={},t={})=>(t.locale??J())===`pl`?dV(e):uV(e)),pV=e=>`Slug "${e?.slug}" is already in use.`,mV=e=>`Slug „${e?.slug}” jest już używany.`,hV=((e,t={})=>(t.locale??J())===`pl`?mV(e):pV(e)),gV=()=>`URL is required.`,_V=()=>`URL jest wymagany.`,vV=((e={},t={})=>(t.locale??J())===`pl`?_V(e):gV(e)),yV=()=>`Tool timeout must be a non-negative whole number of seconds.`,bV=()=>`Timeout narzędzia musi być nieujemną całkowitą liczbą sekund.`,xV=((e={},t={})=>(t.locale??J())===`pl`?bV(e):yV(e)),SV=()=>`Tools`,CV=()=>`Narzędzia`,wV=((e={},t={})=>(t.locale??J())===`pl`?CV(e):SV(e)),TV=()=>`Prompts`,EV=()=>`Prompty`,DV=((e={},t={})=>(t.locale??J())===`pl`?EV(e):TV(e)),OV=()=>`Resources`,kV=()=>`Zasoby`,AV=((e={},t={})=>(t.locale??J())===`pl`?kV(e):OV(e)),jV=()=>`Resource templates`,MV=()=>`Szablony zasobów`,NV=((e={},t={})=>(t.locale??J())===`pl`?MV(e):jV(e)),PV=()=>`Failed to load MCP servers.`,FV=()=>`Nie udało się wczytać serwerów MCP.`,IV=((e={},t={})=>(t.locale??J())===`pl`?FV(e):PV(e)),LV=()=>`Failed to save MCP server.`,RV=()=>`Nie udało się zapisać serwera MCP.`,zV=((e={},t={})=>(t.locale??J())===`pl`?RV(e):LV(e)),BV=e=>`MCP server "${e?.name}" saved.`,VV=e=>`Zapisano serwer MCP „${e?.name}”.`,HV=((e,t={})=>(t.locale??J())===`pl`?VV(e):BV(e)),UV=e=>`Delete MCP server "${e?.name}"? Clients lose access to its tools immediately.`,WV=e=>`Usunąć serwer MCP „${e?.name}”? Klienci natychmiast utracą dostęp do jego narzędzi.`,GV=((e,t={})=>(t.locale??J())===`pl`?WV(e):UV(e)),KV=()=>`Failed to delete MCP server.`,qV=()=>`Nie udało się usunąć serwera MCP.`,JV=((e={},t={})=>(t.locale??J())===`pl`?qV(e):KV(e)),YV=e=>`MCP server "${e?.name}" deleted.`,XV=e=>`Usunięto serwer MCP „${e?.name}”.`,ZV=((e,t={})=>(t.locale??J())===`pl`?XV(e):YV(e)),QV=()=>`Failed to reconnect MCP server.`,$V=()=>`Nie udało się ponownie połączyć serwera MCP.`,eH=((e={},t={})=>(t.locale??J())===`pl`?$V(e):QV(e)),tH=e=>`MCP server "${e?.name}" reconnected.`,nH=e=>`Ponownie połączono serwer MCP „${e?.name}”.`,rH=((e,t={})=>(t.locale??J())===`pl`?nH(e):tH(e)),iH=e=>`MCP server "${e?.name}" is disabled; no connection was attempted.`,aH=e=>`Serwer MCP „${e?.name}” jest wyłączony; nie podjęto próby połączenia.`,oH=((e,t={})=>(t.locale??J())===`pl`?aH(e):iH(e)),sH=e=>`Reconnect attempted, but MCP server "${e?.name}" is still ${e?.status}.`,cH=e=>`Podjęto próbę ponownego połączenia, ale status serwera MCP „${e?.name}” to nadal ${e?.status}.`,lH=((e,t={})=>(t.locale??J())===`pl`?cH(e):sH(e)),uH=e=>`MCP server "${e?.name}" was not found.`,dH=e=>`Nie znaleziono serwera MCP „${e?.name}”.`,fH=((e,t={})=>(t.locale??J())===`pl`?dH(e):uH(e)),pH=()=>`Failed to load MCP server catalog.`,mH=()=>`Nie udało się wczytać katalogu serwera MCP.`,hH=((e={},t={})=>(t.locale??J())===`pl`?mH(e):pH(e)),gH=()=>`Edit Provider`,_H=()=>`Edytuj dostawcę`,vH=((e={},t={})=>(t.locale??J())===`pl`?_H(e):gH(e)),yH=()=>`Provider credential editor`,bH=()=>`Edytor danych dostawcy`,xH=((e={},t={})=>(t.locale??J())===`pl`?bH(e):yH(e)),SH=()=>`The name is the stable identity used for routing and cannot change once created.`,CH=()=>`Nazwa jest stałą tożsamością używaną do routingu i po utworzeniu nie można jej zmienić.`,wH=((e={},t={})=>(t.locale??J())===`pl`?CH(e):SH(e)),TH=()=>`Select a provider type…`,EH=()=>`Wybierz typ dostawcy…`,DH=((e={},t={})=>(t.locale??J())===`pl`?EH(e):TH(e)),OH=()=>`Determines which fields the gateway uses to build requests.`,kH=()=>`Określa pola używane przez gateway do tworzenia Request'ów.`,AH=((e={},t={})=>(t.locale??J())===`pl`?kH(e):OH(e)),jH=()=>`Suggested from the selected type; used to route requests to this provider instance and editable before saving.`,MH=()=>`Sugerowana na podstawie typu; używana do kierowania Request'ów do tej instancji i edytowalna przed zapisem.`,NH=((e={},t={})=>(t.locale??J())===`pl`?MH(e):jH(e)),PH=()=>`Immutable once created.`,FH=()=>`Po utworzeniu nie można jej zmienić.`,IH=((e={},t={})=>(t.locale??J())===`pl`?FH(e):PH(e)),LH=()=>`Pick a type to configure its credentials — each provider type asks for different settings.`,RH=()=>`Wybierz typ, aby skonfigurować dane dostępowe — każdy typ dostawcy wymaga innych ustawień.`,zH=((e={},t={})=>(t.locale??J())===`pl`?RH(e):LH(e)),BH=()=>`provider`,VH=()=>`dostawca`,HH=((e={},t={})=>(t.locale??J())===`pl`?VH(e):BH(e)),UH=()=>`Advanced settings`,WH=()=>`Ustawienia zaawansowane`,GH=((e={},t={})=>(t.locale??J())===`pl`?WH(e):UH(e)),KH=e=>`API key ${e?.number}`,qH=e=>`Klucz API ${e?.number}`,JH=((e,t={})=>(t.locale??J())===`pl`?qH(e):KH(e)),YH=e=>`Remove API key ${e?.number}`,XH=e=>`Usuń klucz API ${e?.number}`,ZH=((e,t={})=>(t.locale??J())===`pl`?XH(e):YH(e)),QH=()=>`Add key`,$H=()=>`Dodaj klucz`,eU=((e={},t={})=>(t.locale??J())===`pl`?$H(e):QH(e)),tU=()=>`Provider default`,nU=()=>`Domyślne dostawcy`,rU=((e={},t={})=>(t.locale??J())===`pl`?nU(e):tU(e)),iU=e=>`Edit provider ${e?.name}`,aU=e=>`Edytuj dostawcę ${e?.name}`,oU=((e,t={})=>(t.locale??J())===`pl`?aU(e):iU(e)),sU=e=>`Delete provider ${e?.name}`,cU=e=>`Usuń dostawcę ${e?.name}`,lU=((e,t={})=>(t.locale??J())===`pl`?cU(e):sU(e)),uU=e=>`Deleting provider ${e?.name}`,dU=e=>`Usuwanie dostawcy ${e?.name}`,fU=((e,t={})=>(t.locale??J())===`pl`?dU(e):uU(e)),pU=()=>`Failed to load provider credentials.`,mU=()=>`Nie udało się wczytać danych dostawców.`,hU=((e={},t={})=>(t.locale??J())===`pl`?mU(e):pU(e)),gU=()=>`Failed to save provider credential.`,_U=()=>`Nie udało się zapisać danych dostawcy.`,vU=((e={},t={})=>(t.locale??J())===`pl`?_U(e):gU(e)),yU=e=>`Provider "${e?.name}" saved.`,bU=e=>`Zapisano dostawcę „${e?.name}”.`,xU=((e,t={})=>(t.locale??J())===`pl`?bU(e):yU(e)),SU=()=>`Failed to delete provider credential.`,CU=()=>`Nie udało się usunąć danych dostawcy.`,wU=((e={},t={})=>(t.locale??J())===`pl`?CU(e):SU(e)),TU=e=>`Provider "${e?.name}" deleted.`,EU=e=>`Usunięto dostawcę „${e?.name}”.`,DU=((e,t={})=>(t.locale??J())===`pl`?EU(e):TU(e)),OU=()=>`Delete Provider`,kU=()=>`Usuń dostawcę`,AU=((e={},t={})=>(t.locale??J())===`pl`?kU(e):OU(e)),jU=e=>`Type "${e?.name}" to permanently delete this provider credential. Requests routed to it will fail until it is reconfigured.`,MU=e=>`Wpisz „${e?.name}”, aby trwale usunąć dane tego dostawcy. Kierowane do niego Requesty będą kończyć się błędem do czasu ponownej konfiguracji.`,NU=((e,t={})=>(t.locale??J())===`pl`?MU(e):jU(e)),PU=()=>`API Keys`,FU=()=>`Klucze API`,IU=((e={},t={})=>(t.locale??J())===`pl`?FU(e):PU(e)),LU=()=>`Session-sticky API keys`,RU=()=>`Klucze API przypisane do sesji`,zU=((e={},t={})=>(t.locale??J())===`pl`?RU(e):LU(e)),BU=()=>`Base URL`,VU=()=>`Bazowy URL`,HU=((e={},t={})=>(t.locale??J())===`pl`?VU(e):BU(e)),UU=()=>`API Version`,WU=()=>`Wersja API`,GU=((e={},t={})=>(t.locale??J())===`pl`?WU(e):UU(e)),KU=()=>`Backend`,qU=()=>`Backend`,JU=((e={},t={})=>(t.locale??J())===`pl`?qU(e):KU(e)),YU=()=>`Auth Type`,XU=()=>`Typ uwierzytelniania`,ZU=((e={},t={})=>(t.locale??J())===`pl`?XU(e):YU(e)),QU=()=>`API Mode`,$U=()=>`Tryb API`,eW=((e={},t={})=>(t.locale??J())===`pl`?$U(e):QU(e)),tW=()=>`Vertex Project`,nW=()=>`Projekt Vertex`,rW=((e={},t={})=>(t.locale??J())===`pl`?nW(e):tW(e)),iW=()=>`Vertex Location`,aW=()=>`Lokalizacja Vertex`,oW=((e={},t={})=>(t.locale??J())===`pl`?aW(e):iW(e)),sW=()=>`Service Account File`,cW=()=>`Plik Service Account`,lW=((e={},t={})=>(t.locale??J())===`pl`?cW(e):sW(e)),uW=()=>`Service Account JSON`,dW=()=>`Service Account JSON`,fW=((e={},t={})=>(t.locale??J())===`pl`?dW(e):uW(e)),pW=()=>`Service Account JSON (base64)`,mW=()=>`Service Account JSON (base64)`,hW=((e={},t={})=>(t.locale??J())===`pl`?mW(e):pW(e)),gW=()=>`GCP Scope`,_W=()=>`Zakres GCP`,vW=((e={},t={})=>(t.locale??J())===`pl`?_W(e):gW(e)),yW=()=>`Models (comma-separated)`,bW=()=>`Modele (oddzielone przecinkami)`,xW=((e={},t={})=>(t.locale??J())===`pl`?bW(e):yW(e)),SW=()=>`Identified sessions stay on one key by default, improving provider prompt-cache hits. Saved values are masked; leave the asterisks unchanged to keep the stored key.`,CW=()=>`Zidentyfikowane sesje domyślnie pozostają przy jednym kluczu, co poprawia trafienia prompt cache dostawcy. Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować klucz.`,wW=((e={},t={})=>(t.locale??J())===`pl`?CW(e):SW(e)),TW=()=>`Keep each identified conversation on one API key to preserve provider prompt-cache affinity. Turn off to rotate keys round-robin on every request.`,EW=()=>`Przypisz każdą zidentyfikowaną rozmowę do jednego klucza API, aby zachować prompt cache affinity. Wyłącz, aby zmieniać klucze metodą round-robin przy każdym Requeście.`,DW=((e={},t={})=>(t.locale??J())===`pl`?EW(e):TW(e)),OW=()=>`Leave empty for the provider default. Realtime endpoints may need a newer version.`,kW=()=>`Pozostaw puste, aby użyć wartości domyślnej dostawcy. Endpointy Realtime mogą wymagać nowszej wersji.`,AW=((e={},t={})=>(t.locale??J())===`pl`?kW(e):OW(e)),jW=()=>`Which Google surface to call. Vertex authenticates with Google credentials instead of an API key.`,MW=()=>`Określa usługę Google. Vertex uwierzytelnia się danymi Google zamiast kluczem API.`,NW=((e={},t={})=>(t.locale??J())===`pl`?MW(e):jW(e)),PW=()=>`How to obtain Google credentials. Leave on the default to use Application Default Credentials.`,FW=()=>`Sposób uzyskania danych Google. Pozostaw wartość domyślną, aby użyć Application Default Credentials.`,IW=((e={},t={})=>(t.locale??J())===`pl`?FW(e):PW(e)),LW=()=>`Which request shape to send upstream.`,RW=()=>`Format Requestu wysyłanego upstream.`,zW=((e={},t={})=>(t.locale??J())===`pl`?RW(e):LW(e)),BW=()=>`Path readable by the gateway process.`,VW=()=>`Ścieżka dostępna do odczytu przez proces gateway.`,HW=((e={},t={})=>(t.locale??J())===`pl`?VW(e):BW(e)),UW=()=>`Saved values are masked; leave the asterisks unchanged to keep the stored value, or clear it to remove.`,WW=()=>`Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować wartość, lub wyczyść pole, aby ją usunąć.`,GW=((e={},t={})=>(t.locale??J())===`pl`?WW(e):UW(e)),KW=()=>`Saved values are masked; leave the asterisks unchanged to keep the stored value.`,qW=()=>`Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować wartość.`,JW=((e={},t={})=>(t.locale??J())===`pl`?qW(e):KW(e)),YW=()=>`Leave empty to auto-discover models from the provider's /models endpoint where supported.`,XW=()=>`Pozostaw puste, aby automatycznie wykryć modele z endpointu /models dostawcy, jeśli jest obsługiwany.`,ZW=((e={},t={})=>(t.locale??J())===`pl`?XW(e):YW(e)),QW=e=>`Defaults to ${e?.value}`,$W=e=>`Domyślnie: ${e?.value}`,eG=((e,t={})=>(t.locale??J())===`pl`?$W(e):QW(e)),tG=e=>No(`en`,e?.count,{})===`one`?`${e?.count} key`:`${e?.count} keys`,nG=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} klucz`:t===`few`?`${e?.count} klucze`:t===`many`?`${e?.count} kluczy`:`${e?.count} klucza`},rG=((e,t={})=>(t.locale??J())===`pl`?nG(e):tG(e)),iG=()=>`service account`,aG=()=>`Service Account`,oG=((e={},t={})=>(t.locale??J())===`pl`?aG(e):iG(e)),sG=()=>`keyless`,cG=()=>`bez klucza`,lG=((e={},t={})=>(t.locale??J())===`pl`?cG(e):sG(e)),uG=()=>`auto-discovered`,dG=()=>`wykrywane automatycznie`,fG=((e={},t={})=>(t.locale??J())===`pl`?dG(e):uG(e)),pG=e=>No(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,mG=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},hG=((e,t={})=>(t.locale??J())===`pl`?mG(e):pG(e)),gG=e=>`Enable ${e?.subject}`,_G=e=>`Włącz ${e?.subject}`,vG=((e,t={})=>(t.locale??J())===`pl`?_G(e):gG(e)),yG=e=>`Disable ${e?.subject}`,bG=e=>`Wyłącz ${e?.subject}`,xG=((e,t={})=>(t.locale??J())===`pl`?bG(e):yG(e)),SG=e=>`alias ${e?.name}`,CG=e=>`alias ${e?.name}`,wG=((e,t={})=>(t.locale??J())===`pl`?CG(e):SG(e)),TG=()=>`model`,EG=()=>`model`,DG=((e={},t={})=>(t.locale??J())===`pl`?EG(e):TG(e)),OG=()=>`This virtual model is managed by configuration and is read-only.`,kG=()=>`Ten model wirtualny jest zarządzany przez konfigurację i tutaj jest tylko do odczytu.`,AG=((e={},t={})=>(t.locale??J())===`pl`?kG(e):OG(e)),jG=e=>`Edit ${e?.subject}`,MG=e=>`Edytuj ${e?.subject}`,NG=((e,t={})=>(t.locale??J())===`pl`?MG(e):jG(e)),PG=e=>`Edit ${e?.subject} (override exists)`,FG=e=>`Edytuj ${e?.subject} (nadpisanie istnieje)`,IG=((e,t={})=>(t.locale??J())===`pl`?FG(e):PG(e)),LG=e=>`Edit ${e?.subject} (virtual model exists)`,RG=e=>`Edytuj ${e?.subject} (model wirtualny istnieje)`,zG=((e,t={})=>(t.locale??J())===`pl`?RG(e):LG(e)),BG=e=>`model pricing for ${e?.name}`,VG=e=>`ceny modelu ${e?.name}`,HG=((e,t={})=>(t.locale??J())===`pl`?VG(e):BG(e)),UG=e=>`provider pricing for ${e?.name}`,WG=e=>`ceny dostawcy ${e?.name}`,GG=((e,t={})=>(t.locale??J())===`pl`?WG(e):UG(e)),KG=()=>`global model pricing`,qG=()=>`globalne ceny modeli`,JG=((e={},t={})=>(t.locale??J())===`pl`?qG(e):KG(e)),YG=e=>`model settings for ${e?.name}`,XG=e=>`ustawienia modelu ${e?.name}`,ZG=((e,t={})=>(t.locale??J())===`pl`?XG(e):YG(e)),QG=e=>`provider access for ${e?.name}`,$G=e=>`dostęp dostawcy ${e?.name}`,eK=((e,t={})=>(t.locale??J())===`pl`?$G(e):QG(e)),tK=()=>`global model access`,nK=()=>`globalny dostęp do modeli`,rK=((e={},t={})=>(t.locale??J())===`pl`?nK(e):tK(e)),iK=e=>`Remove alias ${e?.name}`,aK=e=>`Usuń alias ${e?.name}`,oK=((e,t={})=>(t.locale??J())===`pl`?aK(e):iK(e)),sK=e=>`Removing alias ${e?.name}`,cK=e=>`Usuwanie aliasu ${e?.name}`,lK=((e,t={})=>(t.locale??J())===`pl`?cK(e):sK(e)),uK=e=>`Edit alias ${e?.name}`,dK=e=>`Edytuj alias ${e?.name}`,fK=((e,t={})=>(t.locale??J())===`pl`?dK(e):uK(e)),pK=e=>`Edit redirect for ${e?.name}`,mK=e=>`Edytuj przekierowanie dla ${e?.name}`,hK=((e,t={})=>(t.locale??J())===`pl`?mK(e):pK(e)),gK=()=>`virtual model`,_K=()=>`model wirtualny`,vK=((e={},t={})=>(t.locale??J())===`pl`?_K(e):gK(e)),yK=()=>`Models`,bK=()=>`Modele`,xK=((e={},t={})=>(t.locale??J())===`pl`?bK(e):yK(e)),SK=()=>`Text generation`,CK=()=>`Generowanie tekstu`,wK=((e={},t={})=>(t.locale??J())===`pl`?CK(e):SK(e)),TK=()=>`Embeddings`,EK=()=>`Embeddingi`,DK=((e={},t={})=>(t.locale??J())===`pl`?EK(e):TK(e)),OK=()=>`Image`,kK=()=>`Obrazy`,AK=((e={},t={})=>(t.locale??J())===`pl`?kK(e):OK(e)),jK=()=>`Audio`,MK=()=>`Audio`,NK=((e={},t={})=>(t.locale??J())===`pl`?MK(e):jK(e)),PK=()=>`Video`,FK=()=>`Wideo`,IK=((e={},t={})=>(t.locale??J())===`pl`?FK(e):PK(e)),LK=()=>`Utility`,RK=()=>`Narzędziowe`,zK=((e={},t={})=>(t.locale??J())===`pl`?RK(e):LK(e)),BK=()=>`Virtual models`,VK=()=>`Modele wirtualne`,HK=((e={},t={})=>(t.locale??J())===`pl`?VK(e):BK(e)),UK=()=>`all providers and models`,WK=()=>`wszyscy dostawcy i modele`,GK=((e={},t={})=>(t.locale??J())===`pl`?WK(e):UK(e)),KK=()=>`Disabled by default`,qK=()=>`Domyślnie wyłączony`,JK=((e={},t={})=>(t.locale??J())===`pl`?qK(e):KK(e)),YK=e=>`Allowed for ${e?.paths}`,XK=e=>`Dozwolony dla: ${e?.paths}`,ZK=((e,t={})=>(t.locale??J())===`pl`?XK(e):YK(e)),QK=e=>No(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,$K=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},eq=((e,t={})=>(t.locale??J())===`pl`?$K(e):QK(e)),tq=e=>No(`en`,e?.count,{})===`one`?`${e?.count} alias`:`${e?.count} aliases`,nq=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} alias`:t===`few`?`${e?.count} aliasy`:t===`many`?`${e?.count} aliasów`:`${e?.count} aliasu`},rq=((e,t={})=>(t.locale??J())===`pl`?nq(e):tq(e)),iq=()=>`Modes`,aq=()=>`Tryby`,oq=((e={},t={})=>(t.locale??J())===`pl`?aq(e):iq(e)),sq=()=>`Input / Output ($/MTok)`,cq=()=>`Wejście / wyjście ($/MTok)`,lq=((e={},t={})=>(t.locale??J())===`pl`?cq(e):sq(e)),uq=()=>`Cached $/MTok`,dq=()=>`Cache $/MTok`,fq=((e={},t={})=>(t.locale??J())===`pl`?dq(e):uq(e)),pq=()=>`Input`,mq=()=>`Wejście`,hq=((e={},t={})=>(t.locale??J())===`pl`?mq(e):pq(e)),gq=()=>`$/Image`,_q=()=>`$/obraz`,vq=((e={},t={})=>(t.locale??J())===`pl`?_q(e):gq(e)),yq=()=>`$/Second`,bq=()=>`$/sekundę`,xq=((e={},t={})=>(t.locale??J())===`pl`?bq(e):yq(e)),Sq=()=>`$/Character`,Cq=()=>`$/znak`,wq=((e={},t={})=>(t.locale??J())===`pl`?Cq(e):Sq(e)),Tq=()=>`$/Second (In)`,Eq=()=>`$/sekundę (wejście)`,Dq=((e={},t={})=>(t.locale??J())===`pl`?Eq(e):Tq(e)),Oq=()=>`$/Second (Out)`,kq=()=>`$/sekundę (wyjście)`,Aq=((e={},t={})=>(t.locale??J())===`pl`?kq(e):Oq(e)),jq=()=>`$/Page`,Mq=()=>`$/stronę`,Nq=((e={},t={})=>(t.locale??J())===`pl`?Mq(e):jq(e)),Pq=()=>`$/Request`,Fq=()=>`$/Request`,Iq=((e={},t={})=>(t.locale??J())===`pl`?Fq(e):Pq(e)),Lq=()=>`Save`,Rq=()=>`Zapisz`,zq=((e={},t={})=>(t.locale??J())===`pl`?Rq(e):Lq(e)),Bq=()=>`Saving...`,Vq=()=>`Zapisywanie...`,Hq=((e={},t={})=>(t.locale??J())===`pl`?Vq(e):Bq(e)),Uq=()=>`Creating...`,Wq=()=>`Tworzenie...`,Gq=((e={},t={})=>(t.locale??J())===`pl`?Wq(e):Uq(e)),Kq=()=>`Loading workflows...`,qq=()=>`Wczytywanie Workflows...`,Jq=((e={},t={})=>(t.locale??J())===`pl`?qq(e):Kq(e)),Yq=()=>`Loading workflows timed out.`,Xq=()=>`Przekroczono czas wczytywania Workflows.`,Zq=((e={},t={})=>(t.locale??J())===`pl`?Xq(e):Yq(e)),Qq=()=>`Workflow created and activated.`,$q=()=>`Workflow został utworzony i aktywowany.`,eJ=((e={},t={})=>(t.locale??J())===`pl`?$q(e):Qq(e)),tJ=e=>`Deactivate Workflow "${e?.name}"? Requests will fall back to the next active Workflow for this scope.`,nJ=e=>`Dezaktywować Workflow „${e?.name}”? Requesty użyją następnego aktywnego Workflow dla tego zakresu.`,rJ=((e,t={})=>(t.locale??J())===`pl`?nJ(e):tJ(e)),iJ=()=>`Workflow deactivated.`,aJ=()=>`Workflow został dezaktywowany.`,oJ=((e={},t={})=>(t.locale??J())===`pl`?aJ(e):iJ(e)),sJ=()=>`On`,cJ=()=>`Włączony`,lJ=((e={},t={})=>(t.locale??J())===`pl`?cJ(e):sJ(e)),uJ=()=>`Off`,dJ=()=>`Wyłączony`,fJ=((e={},t={})=>(t.locale??J())===`pl`?dJ(e):uJ(e)),pJ=()=>`None`,mJ=()=>`Brak`,hJ=((e={},t={})=>(t.locale??J())===`pl`?mJ(e):pJ(e)),gJ=e=>`${e?.count} steps`,_J=e=>`Kroki: ${e?.count}`,vJ=((e,t={})=>(t.locale??J())===`pl`?_J(e):gJ(e)),yJ=()=>`1 step`,bJ=()=>`1 krok`,xJ=((e={},t={})=>(t.locale??J())===`pl`?bJ(e):yJ(e)),SJ=e=>`step ${e?.number}`,CJ=e=>`krok ${e?.number}`,wJ=((e,t={})=>(t.locale??J())===`pl`?CJ(e):SJ(e)),TJ=e=>`Deactivate Workflow ${e?.name}`,EJ=e=>`Dezaktywuj Workflow ${e?.name}`,DJ=((e,t={})=>(t.locale??J())===`pl`?EJ(e):TJ(e)),OJ=()=>`Deactivate active Workflow`,kJ=()=>`Dezaktywuj aktywny Workflow`,AJ=((e={},t={})=>(t.locale??J())===`pl`?kJ(e):OJ(e)),jJ=()=>`The global Workflow cannot be deactivated.`,MJ=()=>`Globalnego Workflow nie można dezaktywować.`,NJ=((e={},t={})=>(t.locale??J())===`pl`?MJ(e):jJ(e)),PJ=()=>`Deactivating...`,FJ=()=>`Dezaktywowanie...`,IJ=((e={},t={})=>(t.locale??J())===`pl`?FJ(e):PJ(e)),LJ=()=>`Deactivate`,RJ=()=>`Dezaktywuj`,zJ=((e={},t={})=>(t.locale??J())===`pl`?RJ(e):LJ(e)),BJ=e=>`Edit Workflow ${e?.name}`,VJ=e=>`Edytuj Workflow ${e?.name}`,HJ=((e,t={})=>(t.locale??J())===`pl`?VJ(e):BJ(e)),UJ=e=>`version: v${e?.version}`,WJ=e=>`wersja: v${e?.version}`,GJ=((e,t={})=>(t.locale??J())===`pl`?WJ(e):UJ(e)),KJ=e=>`created: ${e?.date}`,qJ=e=>`utworzono: ${e?.date}`,JJ=((e,t={})=>(t.locale??J())===`pl`?qJ(e):KJ(e)),YJ=e=>`hash: ${e?.hash}`,XJ=e=>`hash: ${e?.hash}`,ZJ=((e,t={})=>(t.locale??J())===`pl`?XJ(e):YJ(e)),QJ=()=>`Provider Name + Model`,$J=()=>`Nazwa dostawcy + model`,eY=((e={},t={})=>(t.locale??J())===`pl`?$J(e):QJ(e)),tY=()=>`Provider Name + Model + Path`,nY=()=>`Nazwa dostawcy + model + Path`,rY=((e={},t={})=>(t.locale??J())===`pl`?nY(e):tY(e)),iY=()=>`Provider Name + Path`,aY=()=>`Nazwa dostawcy + Path`,oY=((e={},t={})=>(t.locale??J())===`pl`?aY(e):iY(e)),sY=()=>`Path`,cY=()=>`Path`,lY=((e={},t={})=>(t.locale??J())===`pl`?cY(e):sY(e)),uY=()=>`Provider Name`,dY=()=>`Nazwa dostawcy`,fY=((e={},t={})=>(t.locale??J())===`pl`?dY(e):uY(e)),pY=()=>`Global`,mY=()=>`Globalny`,hY=((e={},t={})=>(t.locale??J())===`pl`?mY(e):pY(e)),gY=()=>`All models`,_Y=()=>`Wszystkie modele`,vY=((e={},t={})=>(t.locale??J())===`pl`?_Y(e):gY(e)),Hme=()=>`Choose a registered provider name.`,Ume=()=>`Wybierz zarejestrowaną nazwę dostawcy.`,Wme=((e={},t={})=>(t.locale??J())===`pl`?Ume(e):Hme(e)),Gme=()=>`Model selection requires a provider name.`,Kme=()=>`Wybór modelu wymaga nazwy dostawcy.`,qme=((e={},t={})=>(t.locale??J())===`pl`?Kme(e):Gme(e)),Jme=()=>`Choose a registered model for the selected provider name.`,Yme=()=>`Wybierz zarejestrowany model dla wybranego dostawcy.`,Xme=((e={},t={})=>(t.locale??J())===`pl`?Yme(e):Jme(e)),Zme=()=>`Each guardrail step needs a guardrail ref.`,Qme=()=>`Każdy krok Guardrail wymaga referencji Guardrail.`,$me=((e={},t={})=>(t.locale??J())===`pl`?Qme(e):Zme(e)),ehe=()=>`Each guardrail step must use a non-negative integer step number.`,the=()=>`Każdy krok Guardrail musi mieć nieujemny całkowity numer.`,nhe=((e={},t={})=>(t.locale??J())===`pl`?the(e):ehe(e)),rhe=()=>`Each guardrail ref may appear only once in a workflow.`,ihe=()=>`Każda referencja Guardrail może wystąpić tylko raz w Workflow.`,ahe=((e={},t={})=>(t.locale??J())===`pl`?ihe(e):rhe(e)),ohe=()=>`Unknown`,she=()=>`Nieznany`,che=((e={},t={})=>(t.locale??J())===`pl`?she(e):ohe(e)),lhe=()=>`Name is required.`,uhe=()=>`Nazwa jest wymagana.`,dhe=((e={},t={})=>(t.locale??J())===`pl`?uhe(e):lhe(e)),fhe=()=>`Type is required.`,phe=()=>`Typ jest wymagany.`,mhe=((e={},t={})=>(t.locale??J())===`pl`?phe(e):fhe(e)),hhe=()=>`Failed to save Guardrail.`,ghe=()=>`Nie udało się zapisać Guardrail.`,_he=((e={},t={})=>(t.locale??J())===`pl`?ghe(e):hhe(e)),vhe=e=>`Guardrail "${e?.name}" saved.`,yhe=e=>`Zapisano Guardrail „${e?.name}”.`,bhe=((e,t={})=>(t.locale??J())===`pl`?yhe(e):vhe(e)),xhe=e=>`Edit Guardrail ${e?.name}`,She=e=>`Edytuj Guardrail ${e?.name}`,Che=((e,t={})=>(t.locale??J())===`pl`?She(e):xhe(e)),whe=e=>`Delete Guardrail ${e?.name}`,The=e=>`Usuń Guardrail ${e?.name}`,Ehe=((e,t={})=>(t.locale??J())===`pl`?The(e):whe(e)),Dhe=e=>`Deleting Guardrail ${e?.name}`,Ohe=e=>`Usuwanie Guardrail ${e?.name}`,khe=((e,t={})=>(t.locale??J())===`pl`?Ohe(e):Dhe(e)),Ahe=e=>`Delete Guardrail "${e?.name}"? Workflows that still reference it must be updated first.`,jhe=e=>`Usunąć Guardrail „${e?.name}”? Workflows, które nadal się do niego odwołują, muszą zostać najpierw zaktualizowane.`,Mhe=((e,t={})=>(t.locale??J())===`pl`?jhe(e):Ahe(e)),Nhe=()=>`Failed to delete Guardrail.`,Phe=()=>`Nie udało się usunąć Guardrail.`,Fhe=((e={},t={})=>(t.locale??J())===`pl`?Phe(e):Nhe(e)),Ihe=e=>`Guardrail "${e?.name}" deleted.`,Lhe=e=>`Usunięto Guardrail „${e?.name}”.`,Rhe=((e,t={})=>(t.locale??J())===`pl`?Lhe(e):Ihe(e)),zhe=e=>`Rule scope: ${e?.scope}`,Bhe=e=>`Zakres reguły: ${e?.scope}`,Vhe=((e,t={})=>(t.locale??J())===`pl`?Bhe(e):zhe(e)),Hhe=()=>`Declared in configuration; read-only in the dashboard`,Uhe=()=>`Zadeklarowano w konfiguracji; tylko do odczytu w dashboardzie`,Whe=((e={},t={})=>(t.locale??J())===`pl`?Uhe(e):Hhe(e)),Ghe=()=>`Managed via dashboard or admin API`,Khe=()=>`Zarządzane przez dashboard lub admin API`,qhe=((e={},t={})=>(t.locale??J())===`pl`?Khe(e):Ghe(e)),Jhe=()=>`Edit rate limit`,Yhe=()=>`Edytuj Rate Limit`,Xhe=((e={},t={})=>(t.locale??J())===`pl`?Yhe(e):Jhe(e)),Zhe=()=>`Resetting counters`,Qhe=()=>`Resetowanie liczników`,$he=((e={},t={})=>(t.locale??J())===`pl`?Qhe(e):Zhe(e)),ege=()=>`Reset counters`,tge=()=>`Resetuj liczniki`,nge=((e={},t={})=>(t.locale??J())===`pl`?tge(e):ege(e)),rge=()=>`Resetting`,ige=()=>`Resetowanie`,age=((e={},t={})=>(t.locale??J())===`pl`?ige(e):rge(e)),oge=()=>`Reset`,sge=()=>`Resetuj`,cge=((e={},t={})=>(t.locale??J())===`pl`?sge(e):oge(e)),lge=()=>`Deleting rate limit`,uge=()=>`Usuwanie Rate Limitu`,dge=((e={},t={})=>(t.locale??J())===`pl`?uge(e):lge(e)),fge=()=>`Delete rate limit`,pge=()=>`Usuń Rate Limit`,mge=((e={},t={})=>(t.locale??J())===`pl`?pge(e):fge(e)),hge=()=>`Deleting`,gge=()=>`Usuwanie`,_ge=((e={},t={})=>(t.locale??J())===`pl`?gge(e):hge(e)),vge=()=>`Delete`,yge=()=>`Usuń`,bge=((e={},t={})=>(t.locale??J())===`pl`?yge(e):vge(e)),xge=e=>`${e?.used} of ${e?.limit} in flight`,Sge=e=>`${e?.used} z ${e?.limit} w toku`,yY=((e,t={})=>(t.locale??J())===`pl`?Sge(e):xge(e)),Cge=e=>`${e?.used} of ${e?.limit} requests`,wge=e=>`${e?.used} z ${e?.limit} Request'ów`,bY=((e,t={})=>(t.locale??J())===`pl`?wge(e):Cge(e)),Tge=e=>`${e?.used} of ${e?.limit} tokens`,Ege=e=>`${e?.used} z ${e?.limit} tokenów`,xY=((e,t={})=>(t.locale??J())===`pl`?Ege(e):Tge(e)),Dge=e=>`${e?.count} left`,Oge=e=>`Pozostało: ${e?.count}`,SY=((e,t={})=>(t.locale??J())===`pl`?Oge(e):Dge(e)),kge=()=>`Unable to load rate limits.`,Age=()=>`Nie udało się wczytać Rate Limitów.`,jge=((e={},t={})=>(t.locale??J())===`pl`?Age(e):kge(e)),Mge=()=>`Unable to save rate limit.`,Nge=()=>`Nie udało się zapisać Rate Limitu.`,Pge=((e={},t={})=>(t.locale??J())===`pl`?Nge(e):Mge(e)),Fge=()=>`Rate limit moved; Live counters restarted.`,Ige=()=>`Rate Limit został przeniesiony; liczniki Live zresetowano.`,Lge=((e={},t={})=>(t.locale??J())===`pl`?Ige(e):Fge(e)),Rge=()=>`Rate limit saved.`,zge=()=>`Zapisano Rate Limit.`,Bge=((e={},t={})=>(t.locale??J())===`pl`?zge(e):Rge(e)),Vge=()=>`The new rule was saved, but the previous one could not be removed. Delete it manually.`,Hge=()=>`Nowa reguła została zapisana, ale poprzedniej nie udało się usunąć. Usuń ją ręcznie.`,Uge=((e={},t={})=>(t.locale??J())===`pl`?Hge(e):Vge(e)),Wge=()=>`Unable to delete rate limit.`,Gge=()=>`Nie udało się usunąć Rate Limitu.`,Kge=((e={},t={})=>(t.locale??J())===`pl`?Gge(e):Wge(e)),qge=()=>`Rate limit deleted.`,Jge=()=>`Usunięto Rate Limit.`,Yge=((e={},t={})=>(t.locale??J())===`pl`?Jge(e):qge(e)),Xge=()=>`Unable to reset rate limit.`,Zge=()=>`Nie udało się zresetować Rate Limitu.`,Qge=((e={},t={})=>(t.locale??J())===`pl`?Zge(e):Xge(e)),$ge=()=>`Rate limit counters reset.`,e_e=()=>`Zresetowano liczniki Rate Limitu.`,t_e=((e={},t={})=>(t.locale??J())===`pl`?e_e(e):$ge(e)),n_e=()=>`User path`,r_e=()=>`User Path`,i_e=((e={},t={})=>(t.locale??J())===`pl`?r_e(e):n_e(e)),a_e=()=>`user path`,o_e=()=>`User Path`,s_e=((e={},t={})=>(t.locale??J())===`pl`?o_e(e):a_e(e)),c_e=()=>`Provider`,l_e=()=>`Dostawca`,u_e=((e={},t={})=>(t.locale??J())===`pl`?l_e(e):c_e(e)),d_e=()=>`provider`,f_e=()=>`dostawca`,p_e=((e={},t={})=>(t.locale??J())===`pl`?f_e(e):d_e(e)),m_e=()=>`Provider Name`,h_e=()=>`Nazwa dostawcy`,g_e=((e={},t={})=>(t.locale??J())===`pl`?h_e(e):m_e(e)),__e=()=>`Model`,v_e=()=>`Model`,CY=((e={},t={})=>(t.locale??J())===`pl`?v_e(e):__e(e)),y_e=()=>`model`,b_e=()=>`model`,x_e=((e={},t={})=>(t.locale??J())===`pl`?b_e(e):y_e(e)),S_e=()=>`Per minute`,C_e=()=>`Na minutę`,w_e=((e={},t={})=>(t.locale??J())===`pl`?C_e(e):S_e(e)),T_e=()=>`Per hour`,E_e=()=>`Na godzinę`,D_e=((e={},t={})=>(t.locale??J())===`pl`?E_e(e):T_e(e)),O_e=()=>`Per day`,k_e=()=>`Na dzień`,A_e=((e={},t={})=>(t.locale??J())===`pl`?k_e(e):O_e(e)),j_e=()=>`Concurrent (in-flight)`,M_e=()=>`Równoczesne (w toku)`,N_e=((e={},t={})=>(t.locale??J())===`pl`?M_e(e):j_e(e)),P_e=()=>`Custom seconds`,F_e=()=>`Niestandardowa liczba sekund`,I_e=((e={},t={})=>(t.locale??J())===`pl`?F_e(e):P_e(e)),L_e=()=>`Period seconds is required.`,R_e=()=>`Liczba sekund okresu jest wymagana.`,z_e=((e={},t={})=>(t.locale??J())===`pl`?R_e(e):L_e(e)),B_e=e=>`${e?.field} is required.`,V_e=e=>`Pole ${e?.field} jest wymagane.`,H_e=((e,t={})=>(t.locale??J())===`pl`?V_e(e):B_e(e)),U_e=()=>`Period seconds must be a positive integer (0 only for the concurrent period).`,W_e=()=>`Liczba sekund okresu musi być dodatnią liczbą całkowitą (0 tylko dla okresu równoczesnego).`,G_e=((e={},t={})=>(t.locale??J())===`pl`?W_e(e):U_e(e)),K_e=()=>`Set max requests, max tokens, or both.`,q_e=()=>`Ustaw maksymalną liczbę Request'ów, tokenów lub oba limity.`,J_e=((e={},t={})=>(t.locale??J())===`pl`?q_e(e):K_e(e)),Y_e=()=>`Token limits are not valid for the concurrent period.`,X_e=()=>`Limit tokenów nie jest dostępny dla okresu równoczesnego.`,Z_e=((e={},t={})=>(t.locale??J())===`pl`?X_e(e):Y_e(e)),Q_e=()=>`Max requests must be a positive integer.`,$_e=()=>`Maksymalna liczba Request'ów musi być dodatnią liczbą całkowitą.`,eve=((e={},t={})=>(t.locale??J())===`pl`?$_e(e):Q_e(e)),tve=()=>`Max tokens must be a positive integer.`,nve=()=>`Maksymalna liczba tokenów musi być dodatnią liczbą całkowitą.`,rve=((e={},t={})=>(t.locale??J())===`pl`?nve(e):tve(e)),ive=()=>`Model limits`,ave=()=>`Rate Limity modelu`,ove=((e={},t={})=>(t.locale??J())===`pl`?ave(e):ive(e)),sve=e=>`Provider limits (${e?.provider})`,cve=e=>`Rate Limity dostawcy (${e?.provider})`,lve=((e,t={})=>(t.locale??J())===`pl`?cve(e):sve(e)),uve=()=>`Shared by every model routed to this provider.`,dve=()=>`Współdzielone przez wszystkie modele kierowane do tego dostawcy.`,fve=((e={},t={})=>(t.locale??J())===`pl`?dve(e):uve(e)),pve=()=>`Global limits`,mve=()=>`Globalne Rate Limity`,hve=((e={},t={})=>(t.locale??J())===`pl`?mve(e):pve(e)),gve=()=>`Root User Path rules throttle all traffic. Narrower User Path rules also apply, per consumer.`,_ve=()=>`Reguły głównego User Path ograniczają cały ruch. Węższe reguły User Path również obowiązują dla danego klienta.`,vve=((e={},t={})=>(t.locale??J())===`pl`?_ve(e):gve(e)),yve=e=>`Rate limits for ${e?.subject}`,bve=e=>`Rate Limity dla ${e?.subject}`,xve=((e,t={})=>(t.locale??J())===`pl`?bve(e):yve(e)),Sve=()=>`direct limits configured`,Cve=()=>`skonfigurowano bezpośrednie Rate Limity`,wve=((e={},t={})=>(t.locale??J())===`pl`?Cve(e):Sve(e)),Tve=()=>`inherited limits apply`,Eve=()=>`obowiązują dziedziczone Rate Limity`,Dve=((e={},t={})=>(t.locale??J())===`pl`?Eve(e):Tve(e)),Ove=()=>`Unable to load virtual models.`,kve=()=>`Nie udało się wczytać modeli wirtualnych.`,Ave=((e={},t={})=>(t.locale??J())===`pl`?kve(e):Ove(e)),jve=()=>`Failed to update alias state.`,Mve=()=>`Nie udało się zaktualizować stanu aliasu.`,wY=((e={},t={})=>(t.locale??J())===`pl`?Mve(e):jve(e)),Nve=()=>`Alias enabled.`,Pve=()=>`Alias został włączony.`,Fve=((e={},t={})=>(t.locale??J())===`pl`?Pve(e):Nve(e)),Ive=()=>`Alias disabled.`,Lve=()=>`Alias został wyłączony.`,Rve=((e={},t={})=>(t.locale??J())===`pl`?Lve(e):Ive(e)),zve=()=>`Failed to update model access.`,Bve=()=>`Nie udało się zaktualizować dostępu do modelu.`,TY=((e={},t={})=>(t.locale??J())===`pl`?Bve(e):zve(e)),Vve=()=>`Model enabled.`,Hve=()=>`Model został włączony.`,Uve=((e={},t={})=>(t.locale??J())===`pl`?Hve(e):Vve(e)),Wve=()=>`Model disabled.`,Gve=()=>`Model został wyłączony.`,Kve=((e={},t={})=>(t.locale??J())===`pl`?Gve(e):Wve(e)),qve=()=>`Failed to remove virtual model.`,Jve=()=>`Nie udało się usunąć modelu wirtualnego.`,EY=((e={},t={})=>(t.locale??J())===`pl`?Jve(e):qve(e)),Yve=()=>`Virtual model removed.`,Xve=()=>`Usunięto model wirtualny.`,DY=((e={},t={})=>(t.locale??J())===`pl`?Xve(e):Yve(e)),Zve=()=>`Failed to remove redirect.`,Qve=()=>`Nie udało się usunąć przekierowania.`,$ve=((e={},t={})=>(t.locale??J())===`pl`?Qve(e):Zve(e)),eye=()=>`Redirect removed. Other virtual model settings were preserved.`,tye=()=>`Usunięto przekierowanie. Pozostałe ustawienia modelu wirtualnego zostały zachowane.`,nye=((e={},t={})=>(t.locale??J())===`pl`?tye(e):eye(e)),rye=()=>`This virtual model is managed by configuration and cannot be edited here.`,iye=()=>`Ten model wirtualny jest zarządzany przez konfigurację i nie można go tutaj edytować.`,aye=((e={},t={})=>(t.locale??J())===`pl`?iye(e):rye(e)),oye=()=>`This virtual model is managed by configuration and cannot be removed here.`,sye=()=>`Ten model wirtualny jest zarządzany przez konfigurację i nie można go tutaj usunąć.`,cye=((e={},t={})=>(t.locale??J())===`pl`?sye(e):oye(e)),lye=()=>`Source is required.`,uye=()=>`Źródło jest wymagane.`,dye=((e={},t={})=>(t.locale??J())===`pl`?uye(e):lye(e)),fye=()=>`Choose a different Source or edit the existing virtual model.`,pye=()=>`Wybierz inne Źródło lub edytuj istniejący model wirtualny.`,mye=((e={},t={})=>(t.locale??J())===`pl`?pye(e):fye(e)),hye=()=>`Choose a different Source to avoid masking an existing model.`,gye=()=>`Wybierz inne Źródło, aby nie przesłaniać istniejącego modelu.`,OY=((e={},t={})=>(t.locale??J())===`pl`?gye(e):hye(e)),_ye=()=>`Failed to save virtual model.`,vye=()=>`Nie udało się zapisać modelu wirtualnego.`,kY=((e={},t={})=>(t.locale??J())===`pl`?vye(e):_ye(e)),yye=()=>`Alias saved.`,bye=()=>`Zapisano alias.`,xye=((e={},t={})=>(t.locale??J())===`pl`?bye(e):yye(e)),Sye=()=>`Model access reset to inherited/default.`,Cye=()=>`Przywrócono dziedziczony/domyślny dostęp do modelu.`,wye=((e={},t={})=>(t.locale??J())===`pl`?Cye(e):Sye(e)),Tye=()=>`Model access saved.`,Eye=()=>`Zapisano dostęp do modelu.`,Dye=((e={},t={})=>(t.locale??J())===`pl`?Eye(e):Tye(e)),Oye=()=>`Round-robin (rotate across targets; honors weights)`,kye=()=>`Round-robin (rotacja między celami z uwzględnieniem wag)`,Aye=((e={},t={})=>(t.locale??J())===`pl`?kye(e):Oye(e)),jye=()=>`Lowest cost (cheapest target per request)`,Mye=()=>`Najniższy koszt (najtańszy cel dla Requestu)`,Nye=((e={},t={})=>(t.locale??J())===`pl`?Mye(e):jye(e)),Pye=()=>`Adaptive (target chosen by the registered routing extension)`,Fye=()=>`Adaptive (cel wybierany przez zarejestrowane rozszerzenie routingu)`,Iye=((e={},t={})=>(t.locale??J())===`pl`?Fye(e):Pye(e)),Lye=()=>`Invalid`,Rye=()=>`Nieprawidłowy`,AY=((e={},t={})=>(t.locale??J())===`pl`?Rye(e):Lye(e)),zye=()=>`Active`,Bye=()=>`Aktywny`,Vye=((e={},t={})=>(t.locale??J())===`pl`?Bye(e):zye(e)),Hye=()=>`Unassigned`,Uye=()=>`Nieprzypisany`,Wye=((e={},t={})=>(t.locale??J())===`pl`?Uye(e):Hye(e)),Gye=()=>`Unable to load model pricing overrides.`,Kye=()=>`Nie udało się wczytać nadpisań cen modeli.`,qye=((e={},t={})=>(t.locale??J())===`pl`?Kye(e):Gye(e)),Jye=()=>`All providers and models`,Yye=()=>`Wszyscy dostawcy i modele`,jY=((e={},t={})=>(t.locale??J())===`pl`?Yye(e):Jye(e)),Xye=e=>`All models in ${e?.provider}`,Zye=e=>`Wszystkie modele dostawcy ${e?.provider}`,Qye=((e,t={})=>(t.locale??J())===`pl`?Zye(e):Xye(e)),$ye=()=>`Provider`,ebe=()=>`Dostawca`,tbe=((e={},t={})=>(t.locale??J())===`pl`?ebe(e):$ye(e)),nbe=()=>`This provider and model`,rbe=()=>`Ten dostawca i model`,ibe=((e={},t={})=>(t.locale??J())===`pl`?rbe(e):nbe(e)),abe=()=>`This model across providers`,obe=()=>`Ten model u wszystkich dostawców`,sbe=((e={},t={})=>(t.locale??J())===`pl`?obe(e):abe(e)),cbe=()=>`Pricing`,lbe=()=>`Ceny`,ube=((e={},t={})=>(t.locale??J())===`pl`?lbe(e):cbe(e)),dbe=()=>`Model pricing selector is required.`,fbe=()=>`Selektor cen modelu jest wymagany.`,pbe=((e={},t={})=>(t.locale??J())===`pl`?fbe(e):dbe(e)),mbe=()=>`Model pricing overrides feature is unavailable.`,hbe=()=>`Funkcja nadpisywania cen modeli jest niedostępna.`,MY=((e={},t={})=>(t.locale??J())===`pl`?hbe(e):mbe(e)),gbe=()=>`Failed to save model pricing.`,_be=()=>`Nie udało się zapisać cen modelu.`,NY=((e={},t={})=>(t.locale??J())===`pl`?_be(e):gbe(e)),vbe=()=>`Model pricing saved.`,ybe=()=>`Zapisano ceny modelu.`,bbe=((e={},t={})=>(t.locale??J())===`pl`?ybe(e):vbe(e)),xbe=()=>`Failed to remove model pricing override.`,Sbe=()=>`Nie udało się usunąć nadpisania cen modelu.`,PY=((e={},t={})=>(t.locale??J())===`pl`?Sbe(e):xbe(e)),Cbe=()=>`Model pricing override removed.`,wbe=()=>`Usunięto nadpisanie cen modelu.`,Tbe=((e={},t={})=>(t.locale??J())===`pl`?wbe(e):Cbe(e)),Ebe=()=>`Input $/MTok`,Dbe=()=>`Wejście $/MTok`,Obe=((e={},t={})=>(t.locale??J())===`pl`?Dbe(e):Ebe(e)),kbe=()=>`Output $/MTok`,Abe=()=>`Wyjście $/MTok`,jbe=((e={},t={})=>(t.locale??J())===`pl`?Abe(e):kbe(e)),Mbe=()=>`Cached input $/MTok`,Nbe=()=>`Wejście z cache $/MTok`,Pbe=((e={},t={})=>(t.locale??J())===`pl`?Nbe(e):Mbe(e)),Fbe=()=>`Cache write $/MTok`,Ibe=()=>`Zapis cache $/MTok`,Lbe=((e={},t={})=>(t.locale??J())===`pl`?Ibe(e):Fbe(e)),Rbe=()=>`Reasoning output $/MTok`,zbe=()=>`Wyjście reasoning $/MTok`,Bbe=((e={},t={})=>(t.locale??J())===`pl`?zbe(e):Rbe(e)),Vbe=()=>`Batch input $/MTok`,Hbe=()=>`Wejście Batch $/MTok`,Ube=((e={},t={})=>(t.locale??J())===`pl`?Hbe(e):Vbe(e)),Wbe=()=>`Batch output $/MTok`,Gbe=()=>`Wyjście Batch $/MTok`,Kbe=((e={},t={})=>(t.locale??J())===`pl`?Gbe(e):Wbe(e)),qbe=()=>`Audio input $/MTok`,Jbe=()=>`Wejście Audio $/MTok`,Ybe=((e={},t={})=>(t.locale??J())===`pl`?Jbe(e):qbe(e)),Xbe=()=>`Audio output $/MTok`,Zbe=()=>`Wyjście Audio $/MTok`,Qbe=((e={},t={})=>(t.locale??J())===`pl`?Zbe(e):Xbe(e)),$be=()=>`$/Image`,exe=()=>`$/obraz`,txe=((e={},t={})=>(t.locale??J())===`pl`?exe(e):$be(e)),nxe=()=>`Input $/Image`,rxe=()=>`Wejście $/obraz`,ixe=((e={},t={})=>(t.locale??J())===`pl`?rxe(e):nxe(e)),axe=()=>`Input $/Second`,oxe=()=>`Wejście $/sekundę`,sxe=((e={},t={})=>(t.locale??J())===`pl`?oxe(e):axe(e)),cxe=()=>`Output $/Second`,lxe=()=>`Wyjście $/sekundę`,uxe=((e={},t={})=>(t.locale??J())===`pl`?lxe(e):cxe(e)),dxe=()=>`$/Character`,fxe=()=>`$/znak`,pxe=((e={},t={})=>(t.locale??J())===`pl`?fxe(e):dxe(e)),mxe=()=>`$/Page`,hxe=()=>`$/stronę`,gxe=((e={},t={})=>(t.locale??J())===`pl`?hxe(e):mxe(e)),_xe=()=>`$/Request`,vxe=()=>`$/Request`,yxe=((e={},t={})=>(t.locale??J())===`pl`?vxe(e):_xe(e)),bxe=()=>`Tokens`,xxe=()=>`Tokeny`,FY=((e={},t={})=>(t.locale??J())===`pl`?xxe(e):bxe(e)),Sxe=()=>`Batch`,Cxe=()=>`Batch`,IY=((e={},t={})=>(t.locale??J())===`pl`?Cxe(e):Sxe(e)),wxe=()=>`Audio`,Txe=()=>`Audio`,LY=((e={},t={})=>(t.locale??J())===`pl`?Txe(e):wxe(e)),Exe=()=>`Image`,Dxe=()=>`Obraz`,RY=((e={},t={})=>(t.locale??J())===`pl`?Dxe(e):Exe(e)),Oxe=()=>`Audio/Video`,kxe=()=>`Audio/Wideo`,Axe=((e={},t={})=>(t.locale??J())===`pl`?kxe(e):Oxe(e)),jxe=()=>`Video`,Mxe=()=>`Wideo`,Nxe=((e={},t={})=>(t.locale??J())===`pl`?Mxe(e):jxe(e)),Pxe=()=>`Utility`,Fxe=()=>`Narzędziowe`,zY=((e={},t={})=>(t.locale??J())===`pl`?Fxe(e):Pxe(e)),Ixe=()=>`Model registry`,Lxe=()=>`Rejestr modeli`,BY=((e={},t={})=>(t.locale??J())===`pl`?Lxe(e):Ixe(e)),Rxe=()=>`Unknown`,zxe=()=>`Nieznane`,Bxe=((e={},t={})=>(t.locale??J())===`pl`?zxe(e):Rxe(e)),Vxe=()=>`Dashboard/API override`,Hxe=()=>`Nadpisanie Dashboard/API`,Uxe=((e={},t={})=>(t.locale??J())===`pl`?Hxe(e):Vxe(e)),Wxe=e=>`Dashboard/API override (${e?.selector})`,Gxe=e=>`Nadpisanie Dashboard/API (${e?.selector})`,Kxe=((e,t={})=>(t.locale??J())===`pl`?Gxe(e):Wxe(e)),qxe=()=>`Choose a price type for every row.`,Jxe=()=>`Wybierz typ ceny dla każdego wiersza.`,Yxe=((e={},t={})=>(t.locale??J())===`pl`?Jxe(e):qxe(e)),Xxe=()=>`Each price type can only be used once.`,Zxe=()=>`Każdy typ ceny może zostać użyty tylko raz.`,Qxe=((e={},t={})=>(t.locale??J())===`pl`?Zxe(e):Xxe(e)),$xe=e=>`Enter a value for ${e?.field}.`,eSe=e=>`Wprowadź wartość dla: ${e?.field}.`,tSe=((e,t={})=>(t.locale??J())===`pl`?eSe(e):$xe(e)),nSe=()=>`Pricing values must be numbers greater than or equal to 0.`,rSe=()=>`Ceny muszą być liczbami większymi lub równymi 0.`,iSe=((e={},t={})=>(t.locale??J())===`pl`?rSe(e):nSe(e)),aSe=()=>`Add at least one pricing field before saving.`,oSe=()=>`Przed zapisem dodaj co najmniej jedno pole ceny.`,sSe=((e={},t={})=>(t.locale??J())===`pl`?oSe(e):aSe(e)),cSe=()=>`Form/API value`,lSe=()=>`Wartość Form/API`,uSe=((e={},t={})=>(t.locale??J())===`pl`?lSe(e):cSe(e)),dSe=()=>`Unset`,fSe=()=>`Nieustawione`,VY=((e={},t={})=>(t.locale??J())===`pl`?fSe(e):dSe(e)),pSe=()=>`Unable to load Failover mappings.`,mSe=()=>`Nie udało się wczytać mapowań Failover.`,hSe=((e={},t={})=>(t.locale??J())===`pl`?mSe(e):pSe(e)),gSe=()=>`Primary model is required.`,_Se=()=>`Model główny jest wymagany.`,HY=((e={},t={})=>(t.locale??J())===`pl`?_Se(e):gSe(e)),vSe=()=>`Add at least one Failover target.`,ySe=()=>`Dodaj co najmniej jeden cel Failover.`,bSe=((e={},t={})=>(t.locale??J())===`pl`?ySe(e):vSe(e)),xSe=()=>`Failed to save Failover mapping.`,SSe=()=>`Nie udało się zapisać mapowania Failover.`,UY=((e={},t={})=>(t.locale??J())===`pl`?SSe(e):xSe(e)),CSe=()=>`Failover mapping saved.`,wSe=()=>`Zapisano mapowanie Failover.`,TSe=((e={},t={})=>(t.locale??J())===`pl`?wSe(e):CSe(e)),ESe=e=>`Remove Failover mapping for "${e?.source}"?`,DSe=e=>`Usunąć mapowanie Failover dla „${e?.source}”?`,OSe=((e,t={})=>(t.locale??J())===`pl`?DSe(e):ESe(e)),kSe=()=>`Failed to remove Failover mapping.`,ASe=()=>`Nie udało się usunąć mapowania Failover.`,WY=((e={},t={})=>(t.locale??J())===`pl`?ASe(e):kSe(e)),jSe=()=>`Failover mapping removed.`,MSe=()=>`Usunięto mapowanie Failover.`,NSe=((e={},t={})=>(t.locale??J())===`pl`?MSe(e):jSe(e)),PSe=()=>`Failed to generate Failover mapping.`,FSe=()=>`Nie udało się wygenerować mapowania Failover.`,GY=((e={},t={})=>(t.locale??J())===`pl`?FSe(e):PSe(e)),ISe=()=>`No Failover suggestions were generated for this model.`,LSe=()=>`Nie wygenerowano propozycji Failover dla tego modelu.`,RSe=((e={},t={})=>(t.locale??J())===`pl`?LSe(e):ISe(e)),zSe=e=>No(`en`,e?.count,{})===`one`?`Generated ${e?.count} Fallback model.`:`Generated ${e?.count} Fallback models.`,BSe=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`Wygenerowano ${e?.count} model Fallback.`:t===`few`?`Wygenerowano ${e?.count} modele Fallback.`:t===`many`?`Wygenerowano ${e?.count} modeli Fallback.`:`Wygenerowano ${e?.count} modelu Fallback.`},VSe=((e,t={})=>(t.locale??J())===`pl`?BSe(e):zSe(e)),HSe=()=>`Remove Failover models`,USe=()=>`Usuń modele Failover`,WSe=((e={},t={})=>(t.locale??J())===`pl`?USe(e):HSe(e)),GSe=()=>`Remove every dashboard-managed Failover mapping. Configuration-managed mappings remain active.`,KSe=()=>`Usuń wszystkie mapowania Failover zarządzane przez dashboard. Mapowania zarządzane przez konfigurację pozostaną aktywne.`,qSe=((e={},t={})=>(t.locale??J())===`pl`?KSe(e):GSe(e)),JSe=()=>`Remove Failover`,YSe=()=>`Usuń Failover`,XSe=((e={},t={})=>(t.locale??J())===`pl`?YSe(e):JSe(e)),ZSe=()=>`Failed to remove Failover mappings.`,QSe=()=>`Nie udało się usunąć mapowań Failover.`,KY=((e={},t={})=>(t.locale??J())===`pl`?QSe(e):ZSe(e)),$Se=()=>`Dashboard-managed Failover mappings removed.`,eCe=()=>`Usunięto mapowania Failover zarządzane przez dashboard.`,tCe=((e={},t={})=>(t.locale??J())===`pl`?eCe(e):$Se(e)),nCe=()=>`Failed to generate Failover mappings.`,rCe=()=>`Nie udało się wygenerować mapowań Failover.`,qY=((e={},t={})=>(t.locale??J())===`pl`?rCe(e):nCe(e)),iCe=e=>`${e?.selected} / ${e?.total} selected`,aCe=e=>`Wybrano ${e?.selected} / ${e?.total}`,oCe=((e,t={})=>(t.locale??J())===`pl`?aCe(e):iCe(e)),sCe=()=>`Select at least one Failover draft.`,cCe=()=>`Wybierz co najmniej jedną propozycję Failover.`,lCe=((e={},t={})=>(t.locale??J())===`pl`?cCe(e):sCe(e)),uCe=()=>`Generated Failover draft is missing model data.`,dCe=()=>`Wygenerowana propozycja Failover nie zawiera danych modelu.`,fCe=((e={},t={})=>(t.locale??J())===`pl`?dCe(e):uCe(e)),pCe=e=>No(`en`,e?.count,{})===`one`?`Saved ${e?.count} Failover mapping.`:`Saved ${e?.count} Failover mappings.`,mCe=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`Zapisano ${e?.count} mapowanie Failover.`:t===`few`?`Zapisano ${e?.count} mapowania Failover.`:t===`many`?`Zapisano ${e?.count} mapowań Failover.`:`Zapisano ${e?.count} mapowania Failover.`},hCe=((e,t={})=>(t.locale??J())===`pl`?mCe(e):pCe(e)),gCe=()=>`Failed to save Failover mappings.`,_Ce=()=>`Nie udało się zapisać mapowań Failover.`,vCe=((e={},t={})=>(t.locale??J())===`pl`?_Ce(e):gCe(e)),yCe=e=>`Edit failover for ${e?.model}`,bCe=e=>`Edytuj Failover dla ${e?.model}`,xCe=((e,t={})=>(t.locale??J())===`pl`?bCe(e):yCe(e)),SCe=e=>`Edit failover for ${e?.model} (active)`,CCe=e=>`Edytuj Failover dla ${e?.model} (aktywny)`,wCe=((e,t={})=>(t.locale??J())===`pl`?CCe(e):SCe(e)),TCe=()=>`Paste service account JSON`,ECe=()=>`Wklej Service Account JSON`,DCe=((e={},t={})=>(t.locale??J())===`pl`?ECe(e):TCe(e)),OCe=()=>`Select a provider type.`,kCe=()=>`Wybierz typ dostawcy.`,ACe=((e={},t={})=>(t.locale??J())===`pl`?kCe(e):OCe(e)),jCe=()=>`Name is required.`,MCe=()=>`Nazwa jest wymagana.`,NCe=((e={},t={})=>(t.locale??J())===`pl`?MCe(e):jCe(e)),PCe=()=>`Name cannot contain '/' — it separates the provider from the model.`,FCe=()=>`Nazwa nie może zawierać znaku „/” — oddziela on dostawcę od modelu.`,ICe=((e={},t={})=>(t.locale??J())===`pl`?FCe(e):PCe(e)),LCe=()=>`At least one API key is required for this provider type.`,RCe=()=>`Ten typ dostawcy wymaga co najmniej jednego klucza API.`,zCe=((e={},t={})=>(t.locale??J())===`pl`?RCe(e):LCe(e)),BCe=()=>`Remove the empty row instead of leaving a key blank.`,VCe=()=>`Usuń pusty wiersz zamiast pozostawiać pusty klucz.`,HCe=((e={},t={})=>(t.locale??J())===`pl`?VCe(e):BCe(e)),UCe=e=>`Include the scheme, e.g. https://${e?.value}`,WCe=e=>`Dodaj schemat, np. https://${e?.value}`,GCe=((e,t={})=>(t.locale??J())===`pl`?WCe(e):UCe(e)),KCe=()=>`Paste the service account JSON file's contents — this is not valid JSON.`,qCe=()=>`Wklej zawartość pliku Service Account JSON — podana wartość nie jest prawidłowym JSON.`,JCe=((e={},t={})=>(t.locale??J())===`pl`?qCe(e):KCe(e)),YCe=e=>`Provider "${e?.name}" already exists.`,XCe=e=>`Dostawca „${e?.name}” już istnieje.`,ZCe=((e,t={})=>(t.locale??J())===`pl`?XCe(e):YCe(e)),QCe=e=>`${e?.field} is required for this provider type.`,$Ce=e=>`Pole ${e?.field} jest wymagane dla tego typu dostawcy.`,ewe=((e,t={})=>(t.locale??J())===`pl`?$Ce(e):QCe(e)),twe=()=>`Connected`,nwe=()=>`Połączony`,rwe=((e={},t={})=>(t.locale??J())===`pl`?nwe(e):twe(e)),iwe=()=>`Degraded`,awe=()=>`Zdegradowany`,owe=((e={},t={})=>(t.locale??J())===`pl`?awe(e):iwe(e)),swe=()=>`Connecting`,cwe=()=>`Łączenie`,lwe=((e={},t={})=>(t.locale??J())===`pl`?cwe(e):swe(e)),uwe=()=>`Disabled`,dwe=()=>`Wyłączony`,fwe=((e={},t={})=>(t.locale??J())===`pl`?dwe(e):uwe(e)),pwe=()=>`Optional description`,mwe=()=>`Opcjonalny opis`,hwe=((e={},t={})=>(t.locale??J())===`pl`?mwe(e):pwe(e)),gwe=()=>`search_issues, get_file (comma-separated; empty allows all)`,_we=()=>`search_issues, get_file (oddzielone przecinkami; puste zezwala na wszystkie)`,vwe=((e={},t={})=>(t.locale??J())===`pl`?_we(e):gwe(e)),ywe=()=>`delete_repo (comma-separated)`,bwe=()=>`delete_repo (oddzielone przecinkami)`,xwe=((e={},t={})=>(t.locale??J())===`pl`?bwe(e):ywe(e)),Swe=()=>`Client`,Cwe=()=>`Klient`,wwe=((e={},t={})=>(t.locale??J())===`pl`?Cwe(e):Swe(e)),Twe=()=>`Auth`,Ewe=()=>`Uwierzytelnianie`,Dwe=((e={},t={})=>(t.locale??J())===`pl`?Ewe(e):Twe(e)),Owe=()=>`Response`,kwe=()=>`Odpowiedź`,Awe=((e={},t={})=>(t.locale??J())===`pl`?kwe(e):Owe(e)),jwe=()=>`Audit Log`,Mwe=()=>`Log audytowy`,Nwe=((e={},t={})=>(t.locale??J())===`pl`?Mwe(e):jwe(e)),Pwe=()=>`Hit (Semantic)`,Fwe=()=>`Trafienie (Semantic)`,Iwe=((e={},t={})=>(t.locale??J())===`pl`?Fwe(e):Pwe(e)),Lwe=()=>`Hit (Exact)`,Rwe=()=>`Trafienie (Exact)`,zwe=((e={},t={})=>(t.locale??J())===`pl`?Rwe(e):Lwe(e)),Bwe=()=>`Exceeded`,Vwe=()=>`Przekroczony`,Hwe=((e={},t={})=>(t.locale??J())===`pl`?Vwe(e):Bwe(e)),Uwe=()=>`Redirected`,Wwe=()=>`Przekierowano`,Gwe=((e={},t={})=>(t.locale??J())===`pl`?Wwe(e):Uwe(e)),Kwe=e=>`Remove the virtual model alias "${e?.source}"?`,qwe=e=>`Usunąć alias modelu wirtualnego „${e?.source}”?`,Jwe=((e,t={})=>(t.locale??J())===`pl`?qwe(e):Kwe(e)),Ywe=e=>`Remove the redirect for "${e?.source}"? Other virtual model settings will be preserved.`,Xwe=e=>`Usunąć przekierowanie dla „${e?.source}”? Pozostałe ustawienia modelu wirtualnego zostaną zachowane.`,Zwe=((e,t={})=>(t.locale??J())===`pl`?Xwe(e):Ywe(e)),Qwe=e=>`A virtual model named "${e?.name}" already exists. Saving will update that virtual model. Continue?`,$we=e=>`Model wirtualny „${e?.name}” już istnieje. Zapis zaktualizuje ten model. Kontynuować?`,eTe=((e,t={})=>(t.locale??J())===`pl`?$we(e):Qwe(e)),tTe=e=>`An access policy for "${e?.source}" already exists. Saving will update that virtual model. Continue?`,nTe=e=>`Polityka dostępu dla „${e?.source}” już istnieje. Zapis zaktualizuje ten model wirtualny. Kontynuować?`,rTe=((e,t={})=>(t.locale??J())===`pl`?nTe(e):tTe(e)),iTe=e=>`A model named "${e?.name}" already exists. Creating this alias will mask that model in the list. Continue?`,aTe=e=>`Model „${e?.name}” już istnieje. Utworzenie aliasu przesłoni go na liście. Kontynuować?`,oTe=((e,t={})=>(t.locale??J())===`pl`?aTe(e):iTe(e)),sTe=e=>`A virtual model for "${e?.source}" already exists. Choose a different Source.`,cTe=e=>`Model wirtualny dla „${e?.source}” już istnieje. Wybierz inne Źródło.`,lTe=((e,t={})=>(t.locale??J())===`pl`?cTe(e):sTe(e)),uTe=e=>`A model named "${e?.name}" already exists. Renaming to that name will mask the model in the list. Continue?`,dTe=e=>`Model „${e?.name}” już istnieje. Zmiana nazwy przesłoni go na liście. Kontynuować?`,fTe=((e,t={})=>(t.locale??J())===`pl`?dTe(e):uTe(e)),pTe=e=>`Remove the virtual model for "${e?.source}"? This reverts to inherited/default behavior.`,mTe=e=>`Usunąć model wirtualny dla „${e?.source}”? Przywróci to zachowanie dziedziczone/domyślne.`,hTe=((e,t={})=>(t.locale??J())===`pl`?mTe(e):pTe(e)),gTe=e=>`Remove the model pricing override for "${e?.selector}"?`,_Te=e=>`Usunąć nadpisanie cen modelu dla „${e?.selector}”?`,vTe=((e,t={})=>(t.locale??J())===`pl`?_Te(e):gTe(e)),JY=[[`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`}]],yTe=[[`path`,{d:`M12 5v14`}],[`path`,{d:`m19 12-7 7-7-7`}]],bTe=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]],xTe=[[`path`,{d:`M5 12h14`}],[`path`,{d:`m12 5 7 7-7 7`}]],STe=[[`path`,{d:`m5 12 7-7 7 7`}],[`path`,{d:`M12 19V5`}]],YY=[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`}],[`path`,{d:`M12 22V12`}]],XY=[[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`}],[`line`,{x1:`8`,x2:`16`,y1:`6`,y2:`6`}],[`line`,{x1:`16`,x2:`16`,y1:`14`,y2:`18`}],[`path`,{d:`M16 10h.01`}],[`path`,{d:`M12 10h.01`}],[`path`,{d:`M8 10h.01`}],[`path`,{d:`M12 14h.01`}],[`path`,{d:`M8 14h.01`}],[`path`,{d:`M12 18h.01`}],[`path`,{d:`M8 18h.01`}]],CTe=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}],[`path`,{d:`M8 14h.01`}],[`path`,{d:`M12 14h.01`}],[`path`,{d:`M16 14h.01`}],[`path`,{d:`M8 18h.01`}],[`path`,{d:`M12 18h.01`}],[`path`,{d:`M16 18h.01`}]],wTe=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}]],TTe=[[`path`,{d:`M13 17V9`}],[`path`,{d:`M18 17V5`}],[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M8 17v-3`}]],ETe=[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M18 17V9`}],[`path`,{d:`M13 17V5`}],[`path`,{d:`M8 17v-3`}]],DTe=[[`path`,{d:`M5 21v-6`}],[`path`,{d:`M12 21V9`}],[`path`,{d:`M19 21V3`}]],ZY=[[`path`,{d:`M20 6 9 17l-5-5`}]],QY=[[`path`,{d:`m6 9 6 6 6-6`}]],OTe=[[`path`,{d:`m15 18-6-6 6-6`}]],$Y=[[`path`,{d:`m9 18 6-6-6-6`}]],kTe=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`}],[`path`,{d:`m9 11 3 3L22 4`}]],eX=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m9 12 2 2 4-4`}]],tX=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8`}],[`path`,{d:`M12 18V6`}]],ATe=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 6v6l4 2`}]],nX=[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`}]],rX=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 15 21.84`}],[`path`,{d:`M21 5V8`}],[`path`,{d:`M21 12L18 17H22L19 22`}],[`path`,{d:`M3 12A9 3 0 0 0 14.59 14.87`}]],iX=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`}]],jTe=[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`}],[`path`,{d:`M10 9H8`}],[`path`,{d:`M16 13H8`}],[`path`,{d:`M16 17H8`}]],aX=[[`path`,{d:`m12 14 4-4`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`}]],MTe=[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}],[`path`,{d:`M12 7v5l4 2`}]],NTe=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]],oX=[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]],PTe=[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`}]],FTe=[[`path`,{d:`M3 5h.01`}],[`path`,{d:`M3 12h.01`}],[`path`,{d:`M3 19h.01`}],[`path`,{d:`M8 5h13`}],[`path`,{d:`M8 12h13`}],[`path`,{d:`M8 19h13`}]],sX=[[`circle`,{cx:`12`,cy:`16`,r:`1`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`}]],ITe=[[`path`,{d:`m16 17 5-5-5-5`}],[`path`,{d:`M21 12H9`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`}]],cX=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`m21 3-7 7`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M9 21H3v-6`}]],LTe=[[`path`,{d:`m14 10 7-7`}],[`path`,{d:`M20 10h-6V4`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M4 14h6v6`}]],RTe=[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`}]],zTe=[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`}]],lX=[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`}],[`path`,{d:`m15 5 4 4`}]],BTe=[[`path`,{d:`M12 22v-5`}],[`path`,{d:`M15 8V2`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`}],[`path`,{d:`M9 8V2`}]],uX=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]],VTe=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]],dX=[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`}],[`path`,{d:`M21 3v5h-5`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`}],[`path`,{d:`M8 16H3v5`}]],fX=[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}]],pX=[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`}]],HTe=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]],UTe=[[`path`,{d:`m10.852 14.772-.383.923`}],[`path`,{d:`M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923`}],[`path`,{d:`m13.148 9.228.383-.923`}],[`path`,{d:`m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544`}],[`path`,{d:`m14.772 10.852.923-.383`}],[`path`,{d:`m14.772 13.148.923.383`}],[`path`,{d:`M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5`}],[`path`,{d:`M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5`}],[`path`,{d:`M6 18h.01`}],[`path`,{d:`M6 6h.01`}],[`path`,{d:`m9.228 10.852-.923-.383`}],[`path`,{d:`m9.228 13.148-.923.383`}]],WTe=[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`}]],GTe=[[`path`,{d:`M14 17H5`}],[`path`,{d:`M19 7h-9`}],[`circle`,{cx:`17`,cy:`17`,r:`3`}],[`circle`,{cx:`7`,cy:`7`,r:`3`}]],KTe=[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]],mX=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}],[`path`,{d:`m9 12 2 2 4-4`}]],qTe=[[`path`,{d:`m2 2 20 20`}],[`path`,{d:`M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71`}],[`path`,{d:`M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264`}]],JTe=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}]],YTe=[[`path`,{d:`m18 14 4 4-4 4`}],[`path`,{d:`m18 2 4 4-4 4`}],[`path`,{d:`M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22`}],[`path`,{d:`M2 6h1.972a4 4 0 0 1 3.6 2.2`}],[`path`,{d:`M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45`}]],hX=[[`circle`,{cx:`12`,cy:`12`,r:`4`}],[`path`,{d:`M12 2v2`}],[`path`,{d:`M12 20v2`}],[`path`,{d:`m4.93 4.93 1.41 1.41`}],[`path`,{d:`m17.66 17.66 1.41 1.41`}],[`path`,{d:`M2 12h2`}],[`path`,{d:`M20 12h2`}],[`path`,{d:`m6.34 17.66-1.41 1.41`}],[`path`,{d:`m19.07 4.93-1.41 1.41`}]],XTe=[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]],gX=[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`}],[`circle`,{cx:`12`,cy:`14`,r:`8`}]],_X=[[`path`,{d:`M10 11v6`}],[`path`,{d:`M14 11v6`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`}],[`path`,{d:`M3 6h18`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`}]],ZTe=[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`}],[`path`,{d:`M12 9v4`}],[`path`,{d:`M12 17h.01`}]],QTe=[[`circle`,{cx:`12`,cy:`8`,r:`5`}],[`path`,{d:`M20 21a8 8 0 0 0-16 0`}]],$Te=[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`}],[`circle`,{cx:`12`,cy:`7`,r:`4`}]],vX=[[`path`,{d:`M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1`}],[`path`,{d:`M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4`}]],yX=[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`}],[`path`,{d:`m14 7 3 3`}],[`path`,{d:`M5 6v4`}],[`path`,{d:`M19 14v4`}],[`path`,{d:`M10 2v2`}],[`path`,{d:`M7 8H3`}],[`path`,{d:`M21 16h-4`}],[`path`,{d:`M11 3H9`}]],eEe=[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`}]],bX=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]],tEe=z(``),nEe=z(`
                    `,1);function rEe(e,t){O(t,!0);let n=K(t,`compact`,3,!1),r=[{value:`light`,icon:hX,label:GI()},{value:`system`,icon:RTe,label:JI()},{value:`dark`,icon:zTe,label:ZI()}],i=A(()=>r.find(e=>e.value===Yi.theme)||r[1]),a=A(()=>eL({theme:L(i).label}));var o=nEe(),s=P(o);let c;U(s,21,()=>r,e=>e.value,(e,t)=>{var n=tEe();let r;q(N(n),{get icon(){return L(t).icon},class:`theme-icon`}),D(n),I(()=>{r=W(n,1,`theme-btn svelte-1keql7b`,null,r,{active:Yi.theme===L(t).value}),G(n,`aria-pressed`,Yi.theme===L(t).value),G(n,`title`,L(t).label),G(n,`aria-label`,L(t).label)}),R(`click`,n,()=>Yi.set(L(t).value)),B(e,n)}),D(s);var l=F(s,2);let u;q(N(l),{get icon(){return L(i).icon},class:`theme-icon`}),D(l),I(e=>{c=W(s,1,`theme-toggle svelte-1keql7b`,null,c,{"is-compact":n()}),G(s,`aria-label`,e),u=W(l,1,`theme-toggle-mobile svelte-1keql7b`,null,u,{"is-compact":n()}),G(l,`title`,L(a)),G(l,`aria-label`,L(a))},[()=>HI()]),R(`click`,l,()=>Yi.toggle()),B(e,o),k()}Sr([`click`]);function xX(){return typeof window>`u`?`/`:window.GOMODEL_BASE_PATH||`/`}function SX(e){let t=xX();return!e||e.charAt(0)!==`/`||e.indexOf(`//`)===0||t===`/`||e===t||e.indexOf(t+`/`)===0?e:t+e}function iEe(e){let t=xX();return t===`/`||!e?e:e===t?`/`:e.indexOf(t+`/`)===0?e.slice(t.length)||`/`:e}function aEe(){return typeof window>`u`?``:window.GOMODEL_VERSION||``}function oEe(){return typeof window>`u`?!1:window.GOMODEL_DEMO_MODE===!0}var sEe=[`overview`,`usage`,`budgets`,`rate-limits`,`models`,`workflows`,`audit-logs`,`guardrails`,`mcp-servers`,`providers-config`,`auth-keys`,`settings`];function cEe(e){return e.startsWith(`/admin/static/`)?`/`+e.slice(14).replace(/^\/+/,``):e}function CX(e){let t=cEe(iEe(e)).replace(/\/$/,``).replace(`/admin/dashboard`,``).replace(/^\//,``).split(`/`),n=t[0];n===`audit`&&(n=`audit-logs`);let r=t[1]||null;return n===`settings`&&r===`guardrails`?{page:`guardrails`,sub:null}:(n=sEe.includes(n)?n:`overview`,{page:n,sub:r})}var wX=new class{#e=j(`overview`);get page(){return L(this.#e)}set page(e){M(this.#e,e,!0)}#t=j(null);get sub(){return L(this.#t)}set sub(e){M(this.#t,e,!0)}init(){let{page:e,sub:t}=CX(window.location.pathname);this.page=e,this.sub=t,window.addEventListener(`popstate`,()=>{let{page:e,sub:t}=CX(window.location.pathname);this.page=e,this.sub=t})}navigate(e,t=null){let n=t?`/`+t:``;history.pushState(null,``,SX(`/admin/dashboard/`+e+n)),this.page=e,this.sub=t}},TX=`X-GoModel-Auth-Login`,EX=`X-GoModel-Auth-Logout`,DX=`X-GoModel-Auth-User`;function OX(e){let t=String(e||``).trim();return!t.startsWith(`/`)||t.startsWith(`//`)||t.includes(`\\`)?``:t}function lEe(e,t=globalThis.location){let n=OX(e),r=OX(t?.pathname);if(!n||!r)return n;let i=String(t?.search||``),a=r+(i.startsWith(`?`)?i:``),o=n.indexOf(`#`),s=o<0?n:n.slice(0,o),c=o<0?``:n.slice(o);return`${s}${s.includes(`?`)?`&`:`?`}return_to=${encodeURIComponent(a)}${c}`}function uEe(e){let t=e?.headers;if(!t||typeof t.has!=`function`)return null;let n={};return t.has(TX)&&(n.loginURL=OX(t.get(TX))),t.has(EX)&&(n.logoutURL=OX(t.get(EX))),t.has(DX)&&(n.user=String(t.get(DX)||``).trim().slice(0,256)),n}var kX=`gomodel_api_key`;function AX(e){let t=String(e||``).trim();if(/^Bearer\s*$/i.test(t))return``;let n=t.match(/^Bearer\s+(.+)$/i);return n?n[1].trim():t}var Y=new class{#e=j(``);get apiKey(){return L(this.#e)}set apiKey(e){M(this.#e,e,!0)}#t=j(!1);get needsAuth(){return L(this.#t)}set needsAuth(e){M(this.#t,e,!0)}#n=j(!1);get authError(){return L(this.#n)}set authError(e){M(this.#n,e,!0)}#r=j(``);get authErrorMessage(){return L(this.#r)}set authErrorMessage(e){M(this.#r,e,!0)}#i=j(!1);get dialogOpen(){return L(this.#i)}set dialogOpen(e){M(this.#i,e,!0)}#a=j(``);get externalLoginURL(){return L(this.#a)}set externalLoginURL(e){M(this.#a,e,!0)}#o=j(``);get externalLogoutURL(){return L(this.#o)}set externalLogoutURL(e){M(this.#o,e,!0)}#s=j(``);get externalUser(){return L(this.#s)}set externalUser(e){M(this.#s,e,!0)}#c=j(0);get generation(){return L(this.#c)}set generation(e){M(this.#c,e,!0)}#l=j(0);get refreshTick(){return L(this.#l)}set refreshTick(e){M(this.#l,e,!0)}init(){try{this.apiKey=AX(localStorage.getItem(kX)||``)}catch{this.apiKey=``}}hasApiKey(){return AX(this.apiKey)!==``}save(){this.apiKey=AX(this.apiKey);try{localStorage.setItem(kX,this.apiKey)}catch{}}selectExternalAuthentication(){this.apiKey=``;try{localStorage.removeItem(kX)}catch{}this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!0}openDialog(){this.dialogOpen=!0}closeDialog(){this.dialogOpen=!1}submit(){let e=AX(this.apiKey);return e?(this.apiKey=e,this.save(),this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!1,this.closeDialog(),this.refresh(),!0):(this.apiKey=``,this.authError=!0,this.authErrorMessage=``,this.needsAuth=!0,this.openDialog(),!1)}refresh(){this.refreshTick++}observeResponse(e){let t=uEe(e);t&&(Object.hasOwn(t,`loginURL`)&&(this.externalLoginURL=t.loginURL),Object.hasOwn(t,`logoutURL`)&&(this.externalLogoutURL=t.logoutURL),Object.hasOwn(t,`user`)&&(this.externalUser=t.user))}handleUnauthorized(e,t=``){return typeof e==`number`&&e{r[e.type]=e.value}),r.year+`-`+r.month+`-`+r.day}formatTimestampInTimeZone(e,t){if(e==null)return`-`;let n=new Date(e);if(Number.isNaN(n.getTime()))return`-`;let r=VX(`en-CA`,{timeZone:HX(t)?t:LX,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`}).formatToParts(n),i={};return r.forEach(e=>{i[e.type]=e.value}),i.year+`-`+i.month+`-`+i.day+` `+i.hour+`:`+i.minute+`:`+i.second}formatTimestamp(e){return this.formatTimestampInTimeZone(e,this.effectiveTimezone())}currentDateKey(e){return this.dateKeyInTimeZone(e||new Date,this.effectiveTimezone())}dateKeyToDate(e){return MX(e)}dateToDateKey(e){return NX(e)}addDaysToDateKey(e,t){return PX(e,t)}todayDate(){return this.dateKeyToDate(this.currentDateKey())}startOfMonthDate(e){let t=e instanceof Date?e:this.todayDate();return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1))}timeZoneOffsetLabel(e,t){let n=HX(e)?e:LX;try{let e=VX(`en-US`,{timeZone:n,hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`,timeZoneName:`longOffset`}).formatToParts(t||new Date).find(e=>e.type===`timeZoneName`);if(!e||!e.value)return`UTC+00:00`;let r=e.value.replace(`GMT`,`UTC`);return r===`UTC`?`UTC+00:00`:r}catch{return`UTC+00:00`}}timeZoneOffsetMinutes(e,t){let n=/^UTC([+-])(\d{2}):(\d{2})$/.exec(this.timeZoneOffsetLabel(e,t));if(!n)return 0;let r=Number(n[2])*60+Number(n[3]);return n[1]===`-`?-r:r}timeZoneOptionLabel(e,t){return e+` (`+this.timeZoneOffsetLabel(e,t)+`)`}detectedTimeZoneLabel(){return this.timeZoneOptionLabel(this.detectedTimezone)}effectiveTimeZoneLabel(){return this.timeZoneOptionLabel(this.effectiveTimezone())}ensureOptions(){if(this.optionsLoaded)return;let e=new Date,t=[];try{typeof Intl.supportedValuesOf==`function`&&(t=Intl.supportedValuesOf(`timeZone`))}catch{t=[]}[LX,this.detectedTimezone,this.override].forEach(e=>{e&&t.indexOf(e)===-1&&HX(e)&&t.push(e)}),t=t.filter(e=>HX(e)),t.sort((t,n)=>{let r=this.timeZoneOffsetMinutes(t,e)-this.timeZoneOffsetMinutes(n,e);return r===0?t.localeCompare(n):r}),this.options=t.map(t=>({value:t,label:this.timeZoneOptionLabel(t,e)})),this.optionsLoaded=!0}saveOverride(){let e=Wi();if(e)if(this.override&&HX(this.override))try{e.setItem(RX,this.override)}catch{}else{try{e.removeItem(RX)}catch{}this.override=``}this.optionsLoaded=!1,this.ensureOptions()}clearOverride(){let e=Wi();if(e)try{e.removeItem(RX)}catch{}this.override=``}calendarTimeZoneText(){let e=this.override?`manual override`:`auto-detected`;return`Activity grouped by `+this.effectiveTimeZoneLabel()+` (`+e+`)`}};function WX(e,t){let n=e&&typeof e==`object`&&e.error&&e.error.message;return(typeof n==`string`?n.trim():``)||t}function GX(e,t){let n=e&&e.data;if(n&&typeof n==`object`){let e=[n.message,n.error,n.error&&typeof n.error==`object`?n.error.message:null];for(let t of e)if(typeof t==`string`&&t.trim())return t.trim()}return t}function pEe(){let e={"Content-Type":`application/json`},t=AX(Y.apiKey);return t&&(e.Authorization=`Bearer `+t),e[`X-GoModel-Timezone`]=UX.effectiveTimezone(),e}function KX(e,t={}){return fetch(SX(e),{...t,headers:{...pEe(),...t.headers||{}}})}async function qX(e,t,{label:n=e,parse:r=!0}={}){let i=Y.generation,a=await KX(e,t),o=ie.trim()).filter(Boolean);return e.length>0?e:hEe}cacheVisible(){if(this.flag(`CACHE_ENABLED`)!==``)return this.booleanFlag(`CACHE_ENABLED`,!1);let e=this.flag(`REDIS_URL`),t=this.flag(`SEMANTIC_CACHE_ENABLED`);return e===``&&t===``||this.booleanFlag(`REDIS_URL`,!1)||this.booleanFlag(`SEMANTIC_CACHE_ENABLED`,!1)}auditVisible(){return this.booleanFlag(`LOGGING_ENABLED`,!0)}usageVisible(){return this.booleanFlag(`USAGE_ENABLED`,!0)}budgetsVisible(){return this.booleanFlag(`BUDGETS_ENABLED`,!0)}rateLimitsVisible(){return this.booleanFlag(`RATE_LIMITS_ENABLED`,!0)}guardrailsVisible(){return this.booleanFlag(`GUARDRAILS_ENABLED`,!0)}mcpVisible(){return this.booleanFlag(`MCP_ENABLED`,!0)}liveLogsVisible(){return this.booleanFlag(`DASHBOARD_LIVE_LOGS_ENABLED`,!0)}fetch(){return this.#n||=this.#r().finally(()=>{this.#n=null}),this.#n}async ensureLoaded(){if(this.#n){await this.#n;return}this.loaded||await this.fetch()}async#r(){let e=typeof AbortController==`function`?new AbortController:null,t=e?setTimeout(()=>e.abort(),1e4):null;try{let t=await JX(`/admin/runtime/config`,{label:`dashboard config`,signal:e?e.signal:void 0});if(t.stale)return;if(!t.ok){this.config={},this.loaded=!1;return}let n=t.data,r={};for(let e of mEe)n&&typeof n==`object`&&!Array.isArray(n)&&n[e]!==void 0&&n[e]!==null&&(r[e]=String(n[e]).trim());this.config=r,this.loaded=!0}catch(e){console.error(`Failed to fetch dashboard config:`,e),this.config={},this.loaded=!1}finally{t!==null&&clearTimeout(t)}}},gEe=[{page:`overview`,label:La,icon:PTe},{page:`providers-config`,label:Ba,icon:UTe},{page:`models`,label:Ua,icon:YY},{page:`audit-logs`,label:Ka,icon:MTe},{page:`usage`,label:Ya,icon:ETe},{page:`budgets`,label:Qa,icon:vX,visible:()=>ZX.budgetsVisible()},{page:`rate-limits`,label:to,icon:aX,visible:()=>ZX.rateLimitsVisible()},{page:`auth-keys`,label:io,icon:oX},{page:`workflows`,label:so,icon:eEe},{page:`guardrails`,label:uo,icon:mX,visible:()=>ZX.guardrailsVisible()},{page:`mcp-servers`,label:mo,icon:BTe,visible:()=>ZX.mcpVisible()},{page:`settings`,label:_o,icon:KTe}],_Ee=z(` `),vEe=z(`
                    `),yEe=z(``),bEe=z(`
                    `),xEe=z(` `,1);function SEe(e,t){O(t,!0);let n=A(()=>gEe.filter(e=>!e.visible||e.visible())),r=j(null),i=0,a=0,o=!1;function s(e){e.button===0&&(e.preventDefault(),M(r,e.pointerId,!0),i=e.clientX,a=Xi.width,o=!1,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`sidebar-resizing`))}function c(e){e.pointerId===L(r)&&(!o&&Math.abs(e.clientX-i)<=4||(o=!0,Xi.setWidth(Ji(a,i,e.clientX))))}function l(e){L(r)===null||e.pointerId!==void 0&&e.pointerId!==L(r)||(M(r,null),document.body.classList.remove(`sidebar-resizing`),Xi.setWidth(Xi.width,!0))}function u(){if(o){o=!1;return}Xi.toggle()}function d(e){let t;if(e.key===`ArrowLeft`)t=Xi.width-12;else if(e.key===`ArrowRight`)t=Xi.width+12;else if(e.key===`Home`)t=60;else if(e.key===`End`)t=240;else if(e.key===`Enter`||e.key===` `){e.preventDefault(),Xi.toggle();return}else return;e.preventDefault(),Xi.setWidth(t,!0)}var f=xEe(),p=P(f);let m;var h=N(p),g=N(h);Ui(N(g),{}),D(g);var _=F(g,4),v=N(_,!0);D(_),D(h);var y=F(h,2);U(y,21,()=>L(n),e=>e.page,(e,t)=>{var n=_Ee();let r;var i=N(n);q(i,{get icon(){return L(t).icon},class:`nav-icon`});var a=F(i,2),o=N(a,!0);D(a),D(n),I((e,i,a)=>{G(n,`href`,e),r=W(n,1,`nav-item svelte-1nwtzae`,null,r,{active:wX.page===L(t).page}),G(n,`title`,i),V(o,a)},[()=>SX(`/admin/dashboard/`+L(t).page),()=>L(t).label(),()=>L(t).label()]),R(`click`,n,e=>{e.preventDefault(),wX.navigate(L(t).page)}),B(e,n)}),D(y);var b=F(y,2),x=N(b);rEe(x,{get compact(){return Xi.collapsed}});var S=F(x,2),C=e=>{var t=yEe(),n=N(t),r=e=>{var t=vEe(),n=N(t);q(n,{get icon(){return QTe},class:`api-key-open-icon`});var r=F(n,2),i=N(r,!0);D(r),D(t),I(()=>{G(t,`title`,Y.externalUser),V(i,Y.externalUser)}),B(e,t)};H(n,e=>{Y.externalUser&&e(r)});var i=F(n,2),a=N(i);q(a,{get icon(){return ITe},class:`api-key-open-icon`});var o=F(a,2),s=N(o,!0);D(o),D(i),D(t),I((e,t,n)=>{G(i,`href`,e),G(i,`aria-label`,t),V(s,n)},[()=>SX(Y.externalLogoutURL),()=>DI(),()=>DI()]),B(e,t)};H(S,e=>{Y.externalLogoutURL&&e(C)});var w=F(S,2),T=e=>{var t=bEe(),n=N(t),r=N(n);q(r,{get icon(){return sX},class:`api-key-open-icon`});var i=F(r,2),a=N(i,!0);D(i),D(n),D(t),I((e,t)=>{G(n,`aria-label`,e),V(a,t)},[()=>Y.needsAuth?AI():NI(),()=>Y.needsAuth?AI():NI()]),R(`click`,n,()=>Y.openDialog()),B(e,t)},ee=A(()=>Y.needsAuth||Y.hasApiKey());H(w,e=>{L(ee)&&e(T)}),D(b),D(p);var E=F(p,2);I((e,t,n)=>{m=W(p,1,`sidebar svelte-1nwtzae`,null,m,{"sidebar-collapsed":Xi.collapsed,"sidebar-resizing":L(r)!==null}),V(v,e),G(E,`title`,t),G(E,`aria-label`,n),G(E,`aria-valuemin`,60),G(E,`aria-valuemax`,240),G(E,`aria-valuenow`,Xi.width)},[()=>Pa(),()=>zI(),()=>II()]),R(`pointerdown`,E,s),R(`pointermove`,E,c),R(`pointerup`,E,l),xr(`pointercancel`,E,l),xr(`lostpointercapture`,E,l),R(`keydown`,E,d),R(`click`,E,u),B(e,f),k()}Sr([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var CEe=z(``);function QX(e,t){O(t,!0);let n=K(t,`label`,3,`Close`),r=K(t,`class`,3,``),i=K(t,`iconClass`,3,`table-icon-svg`),a=K(t,`disabled`,3,!1),o=K(t,`el`,15,null);var s=CEe();q(N(s),{get icon(){return bX},get class(){return i()}}),D(s),Li(s,e=>o(e),()=>o()),I(()=>{W(s,1,ui([`dialog-close-btn`,r()]),`svelte-11l1bb5`),G(s,`aria-label`,n()),s.disabled=a()}),R(`click`,s,function(...e){t.onclick?.apply(this,e)}),B(e,s),k()}Sr([`click`]);function wEe(e){return t=>{let n=n=>{t.contains(n.target)||e()},r=t=>{t.key===`Escape`&&e()};return document.addEventListener(`click`,n,!0),window.addEventListener(`keydown`,r),()=>{document.removeEventListener(`click`,n,!0),window.removeEventListener(`keydown`,r)}}}function TEe(e=`[data-modal-autofocus]`){return t=>{let n=t.querySelector(e);n&&typeof n.focus==`function`&&n.focus()}}var EEe=z(`
                    `,1);function $X(e,t){O(t,!0);let n=K(t,`open`,3,!1),r=K(t,`variant`,3,`editor`),i=K(t,`closeOnBackdrop`,3,!0),a=A(()=>r()===`auth`?`auth-dialog-backdrop`:`editor-modal-backdrop`),o=A(()=>r()===`auth`?`auth-dialog-shell`:`editor-modal-shell`);hn(()=>{if(!n())return;let e=sr(()=>Zi.opened()),r=n=>{n.key===`Escape`&&Zi.isTop(e)&&t.onclose?.()};return window.addEventListener(`keydown`,r),()=>{Zi.closed(e),window.removeEventListener(`keydown`,r)}});function s(e){i()&&e.target===e.currentTarget&&t.onclose?.()}var c=kr(),l=P(c),u=e=>{var n=EEe(),r=P(n),i=F(r,2);qr(N(i),()=>t.children??f),D(i),ci(i,TEe),I(()=>{W(r,1,ui(L(a)),`svelte-17e0w4c`),W(i,1,ui(L(o)),`svelte-17e0w4c`)}),R(`click`,i,s),B(e,n)};H(l,e=>{n()&&e(u)}),B(e,c),k()}Sr([`click`]);var DEe=z(`
                    `,1),OEe=z(``),kEe=z(``);function AEe(e,t){O(t,!0),$X(e,{get open(){return Y.dialogOpen},variant:`auth`,onclose:()=>Y.closeDialog(),children:(e,t)=>{var n=kEe(),r=N(n),i=N(r),a=N(i),o=N(a,!0);D(a),D(i);var s=F(i,2);{let e=A(()=>hL());QX(s,{get label(){return L(e)},onclick:()=>Y.closeDialog(),class:`auth-dialog-close`,iconClass:``})}D(r);var c=F(r,2),l=N(c),u=e=>{var t=DEe(),n=P(t),r=N(n);q(r,{get icon(){return oX}});var i=F(r,2),a=N(i,!0);D(i),D(n);var o=F(n,2),s=N(o),c=N(s,!0);D(s),D(o),I((e,t,r)=>{G(n,`href`,e),V(a,t),V(c,r)},[()=>lEe(SX(Y.externalLoginURL)),()=>vL(),()=>xL()]),R(`click`,n,()=>Y.selectExternalAuthentication()),B(e,t)};H(l,e=>{Y.externalLoginURL&&e(u)});var d=F(l,2),f=N(d);q(f,{get icon(){return sX},class:`auth-dialog-input-icon`});var p=F(f,2);Ti(p),D(d);var m=F(d,2),h=e=>{var t=OEe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Y.authErrorMessage||AL()]),B(e,t)};H(m,e=>{Y.authError&&e(h)});var g=F(m,2),_=N(g,!0);D(g);var v=F(g,2),y=N(v),b=N(y);q(b,{get icon(){return ZY},class:`auth-dialog-submit-icon`});var x=F(b,2),S=N(x,!0);D(x),D(y),D(v),D(c),D(n),I((e,t,n,r,i)=>{V(o,e),G(p,`placeholder`,t),G(p,`aria-label`,n),V(_,r),V(S,i)},[()=>Y.needsAuth?lL():fL(),()=>DL(),()=>wL(),()=>NL(),()=>Y.needsAuth?IL():zL()]),xr(`submit`,c,e=>{e.preventDefault(),Y.submit()}),Mi(p,()=>Y.apiKey,e=>Y.apiKey=e),B(e,n)},$$slots:{default:!0}}),k()}Sr([`click`]);function eZ(){return{open:!1,title:``,titleId:`typedConfirmationDialogTitle`,inputId:`typed-confirmation-input`,message:``,requiredText:``,value:``,confirmLabel:`Confirm`,icon:ZTe,dialogClass:``,loading:!1,onConfirm:null,onClose:null}}var tZ=new class{#e=j(Xt(eZ()));get state(){return L(this.#e)}set state(e){M(this.#e,e,!0)}#t=j(``);get error(){return L(this.#t)}set error(e){M(this.#t,e,!0)}open(e){this.error=``,this.state={...eZ(),open:!0,...e||{}}}close(){let e=this.state;typeof e.onClose==`function`&&e.onClose(),this.state=eZ(),this.error=``}ready(){return String(this.state.value||``).trim().toLowerCase()===String(this.state.requiredText||``).trim().toLowerCase()}inputLabel(){return`Type `+String(this.state.requiredText||``).trim()+` to confirm`}async submit(){if(!this.ready()){this.error=this.inputLabel()+`.`;return}if(typeof this.state.onConfirm==`function`){this.state.loading=!0;try{await this.state.onConfirm()}finally{this.state.loading=!1}}}},jEe=z(`

                    `),MEe=z(``),NEe=z(`

                    `);function PEe(e,t){O(t,!0);let n=A(()=>tZ.state);$X(e,{get open(){return L(n).open},variant:`auth`,onclose:()=>tZ.close(),children:(e,t)=>{var r=NEe(),i=N(r),a=N(i),o=N(a,!0);D(a);var s=F(a,2);{let e=A(()=>HL());QX(s,{get label(){return L(e)},onclick:()=>tZ.close(),class:`auth-dialog-close`,iconClass:``})}D(i);var c=F(i,2),l=N(c),u=e=>{var t=jEe(),r=N(t,!0);D(t),I(()=>V(r,L(n).message)),B(e,t)};H(l,e=>{L(n).message&&e(u)});var d=F(l,2),f=N(d),p=N(f,!0);D(f);var m=F(f,2);Ti(m),D(d);var h=F(d,2),g=e=>{var t=MEe(),n=N(t,!0);D(t),I(()=>V(n,tZ.error)),B(e,t)};H(h,e=>{tZ.error&&e(g)});var _=F(h,2),v=N(_),y=N(v,!0);D(v);var b=F(v,2),x=N(b);q(x,{get icon(){return L(n).icon},class:`form-action-icon`});var S=F(x,2),C=N(S,!0);D(S),D(b),D(_),D(c),D(r),I((e,t,i)=>{W(r,1,`auth-dialog ${L(n).dialogClass??``}`),G(r,`aria-labelledby`,L(n).titleId),G(a,`id`,L(n).titleId),V(o,L(n).title),G(f,`for`,L(n).inputId),V(p,e),G(m,`id`,L(n).inputId),V(y,t),b.disabled=i,V(C,L(n).confirmLabel)},[()=>tZ.inputLabel(),()=>Ta(),()=>L(n).loading||!tZ.ready()]),xr(`submit`,c,e=>{e.preventDefault(),tZ.submit()}),Mi(m,()=>tZ.state.value,e=>tZ.state.value=e),R(`click`,v,()=>tZ.close()),B(e,r)},$$slots:{default:!0}}),k()}Sr([`click`]);var FEe=e=>e;function nZ(e){let t=e-1;return t*t*t+1}function rZ(e){let t=typeof e==`string`&&e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);return t?[parseFloat(t[1]),t[2]||`px`]:[e,`px`]}function IEe(e,{delay:t=0,duration:n=400,easing:r=FEe}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function iZ(e,{delay:t=0,duration:n=400,easing:r=nZ,x:i=0,y:a=0,opacity:o=0}={}){let s=getComputedStyle(e),c=+s.opacity,l=s.transform===`none`?``:s.transform,u=c*(1-o),[d,f]=rZ(i),[p,m]=rZ(a);return{delay:t,duration:n,easing:r,css:(e,t)=>` + transform: ${l} translate(${(1-e)*d}${f}, ${(1-e)*p}${m}); + opacity: ${c-u*t}`}}function aZ(e,{delay:t=0,duration:n=400,easing:r=nZ,axis:i=`y`}={}){let a=getComputedStyle(e),o=+a.opacity,s=i===`y`?`height`:`width`,c=parseFloat(a[s]),l=i===`y`?[`top`,`bottom`]:[`left`,`right`],u=l.map(e=>`${e[0].toUpperCase()}${e.slice(1)}`),d=parseFloat(a[`padding${u[0]}`]),f=parseFloat(a[`padding${u[1]}`]),p=parseFloat(a[`margin${u[0]}`]),m=parseFloat(a[`margin${u[1]}`]),h=parseFloat(a[`border${u[0]}Width`]),g=parseFloat(a[`border${u[1]}Width`]);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(e*20,1)*o};${s}: ${e*c}px;padding-${l[0]}: ${e*d}px;padding-${l[1]}: ${e*f}px;margin-${l[0]}: ${e*p}px;margin-${l[1]}: ${e*m}px;border-${l[0]}-width: ${e*h}px;border-${l[1]}-width: ${e*g}px;min-${s}: 0`}}function LEe(e){return--e*e*(2.70158*e+1.70158)+1}function oZ(e){let t=e-1;return t*t*t+1}var REe=5e3,zEe=8e3,sZ=new class{#e=j(Xt([]));get toasts(){return L(this.#e)}set toasts(e){M(this.#e,e,!0)}#t=0;#n=new Map;success(e){this.#r(`success`,e,REe)}error(e){this.#r(`error`,e,zEe)}dismiss(e){let t=this.#n.get(e);t&&(clearTimeout(t),this.#n.delete(e)),this.toasts=this.toasts.filter(t=>t.id!==e)}#r(e,t,n){let r=String(t||``).trim();if(!r)return;let i=this.toasts.find(t=>t.kind===e&&t.text===r);i&&this.dismiss(i.id);let a=++this.#t;this.toasts=[...this.toasts,{id:a,kind:e,text:r}],this.#n.set(a,setTimeout(()=>this.dismiss(a),n))}},BEe=z(`
                    `),VEe=z(`
                    `);function HEe(e,t){O(t,!0);var n=VEe();U(n,21,()=>sZ.toasts,e=>e.id,(e,t)=>{var n=BEe();let r;var i=N(n),a=N(i,!0);D(i);var o=F(i,2);D(n),I(e=>{r=W(n,1,`flash-toast svelte-1i257xg`,null,r,{"flash-toast-success":L(t).kind===`success`,"flash-toast-error":L(t).kind===`error`}),G(n,`role`,L(t).kind===`error`?`alert`:`status`),G(n,`aria-live`,L(t).kind===`error`?`assertive`:`polite`),V(a,L(t).text),G(o,`aria-label`,e)},[()=>GL()]),R(`click`,o,()=>sZ.dismiss(L(t).id)),oi(1,n,()=>iZ,()=>({y:-24,duration:360,easing:LEe})),oi(2,n,()=>IEe,()=>({duration:150})),B(e,n)}),D(n),B(e,n),k()}Sr([`click`]);var UEe=z(``);function WEe(e,t){O(t,!0);var n=kr(),r=P(n),i=e=>{var t=UEe(),n=F(N(t),2),r=N(n),i=N(r,!0);D(r);var a=F(r,2),o=N(a,!0);D(a),D(n);var s=F(n,2);D(t),I((e,n,r,a)=>{G(t,`aria-label`,e),V(i,n),V(o,r),G(s,`aria-label`,a)},[()=>JL(),()=>ZL(),()=>eR(),()=>rR()]),B(e,t)},a=A(()=>oEe());H(r,e=>{L(a)&&e(i)}),B(e,n),k()}function cZ(e){return String(e||``).split(`,`).map(e=>e.trim()).filter(e=>e)}function lZ(e){if(e==null||e===``)return`Not captured`;if(typeof e==`string`){let t=e.trim();if(t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`))try{return JSON.stringify(JSON.parse(t),null,2)}catch{return e}return e}try{return JSON.stringify(e,null,2)}catch{return String(e)}}function uZ(e){return e==null||e===void 0?`-`:e.toLocaleString()}function dZ(e){if(e==null)return`---`;let t=Number(e);return Number.isFinite(t)?t>0&&t<1e-4?`<$0.0001`:`$`+t.toFixed(4).replace(/(\.\d{2}\d*?)0+$/,`$1`):`---`}function fZ(e){return e==null||e===void 0?`—`:`$`+e.toFixed(2)}function pZ(e){return e==null||e===void 0?`—`:e<.01?`$`+e.toFixed(6):`$`+e.toFixed(4)}function mZ(e){if(e==null||e===``)return`-`;let t=Number(e);if(!Number.isFinite(t))return`-`;let n=Math.abs(t),r=[{threshold:1e9,suffix:`B`},{threshold:1e6,suffix:`M`},{threshold:1e3,suffix:`K`}];for(let e=0;e=i.threshold){let n=t/i.threshold;return Math.abs(Number(n.toFixed(1)))>=1e3&&e>0&&(i=r[e-1],n=t/i.threshold),n.toFixed(1).replace(/\.0$/,``)+i.suffix}}return String(t)}function hZ(e,t){let n=t==null||t===``?NaN:Number(t),r=Number.isFinite(n)?uZ(n):`-`;return String(e||`Tokens`)+`: `+r}function gZ(e){return e?typeof e==`string`?e:e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`):``}function GEe(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.getUTCFullYear()+`-`+String(t.getUTCMonth()+1).padStart(2,`0`)+`-`+String(t.getUTCDate()).padStart(2,`0`)}function _Z(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.getUTCFullYear()+`-`+String(t.getUTCMonth()+1).padStart(2,`0`)+`-`+String(t.getUTCDate()).padStart(2,`0`)+` `+String(t.getUTCHours()).padStart(2,`0`)+`:`+String(t.getUTCMinutes()).padStart(2,`0`)+`:`+String(t.getUTCSeconds()).padStart(2,`0`)+` UTC`}function KEe(e){return String(e&&e.provider||``).trim()}function vZ(e){return String(e&&e.provider_name||``).trim()||KEe(e)}function yZ(e,t){let n=String(t||``).trim();if(!n)return`-`;let r=vZ(e);return!r||n===r||n.startsWith(r+`/`)?n:r+`/`+n}function qEe(e){return yZ(e,e&&e.model)}function bZ(e){return yZ(e,e&&e.resolved_model)}function JEe(e){let t=String(e&&(e.requested_model||e.model)||``).trim();if(!e)return t;let n=String(e.data&&e.data.failover&&e.data.failover.target_model||``).trim();if(n&&n!==t)return t+` ⮕ `+n;if(e.alias_used&&e.resolved_model){let n=bZ(e);if(n&&n!==`-`&&n!==t)return t+` ⮕ `+n}return t}var xZ=`gomodel_date_range`,SZ=1;function CZ(e){return/^[1-9]\d*$/.test(String(e??``))}function YEe({selectedPreset:e,startKey:t,endKey:n,followsToday:r}){return e&&CZ(e)?{v:SZ,mode:`preset`,days:String(e)}:e?null:FX(t)&&FX(n)?{v:SZ,mode:`custom`,start:t,end:n,follow:r===!0}:null}function XEe(e){let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return null}return!t||typeof t!=`object`?null:t.mode===`preset`?CZ(t.days)?{mode:`preset`,days:String(t.days)}:null:t.mode===`custom`&&FX(t.start)&&FX(t.end)&&t.start<=t.end?{mode:`custom`,start:t.start,end:t.end,follow:t.follow===!0}:null}function ZEe(e,t,n){let r=IX(e,t);return r<1||!FX(n)?{start:e,end:t}:{start:PX(n,-(r-1)),end:n}}var wZ=`gomodel_locale`;Sa(`custom-dashboard`,{getLocale:()=>Gi(wZ)||void 0,setLocale:e=>Ki(wZ,e)});function QEe(){let e=J();document.documentElement.lang=e,document.documentElement.dir=oa(e)}function $Ee(e){return typeof Intl.DisplayNames==`function`&&new Intl.DisplayNames([e],{type:`language`}).of(e)||e}function TZ(e,t){return new Intl.NumberFormat(J(),t).format(e)}function EZ(e,t){return new Intl.DateTimeFormat(J(),t).format(e)}function DZ(e){return lR({count:Number(e)})}function OZ(e,t){return e===t?hR():EZ(new Date(e+`T00:00:00Z`),{day:`numeric`,month:`short`,year:`numeric`,timeZone:`UTC`})}function eDe({selectedPreset:e,startKey:t,endKey:n,todayKey:r}){if(e)return DZ(e);if(FX(t)&&FX(n)){if(t>n)return DZ(`30`);let e=OZ(t,r);return t===n?e:vR({start:e,end:OZ(n,r)})}return FX(t)?xR({start:OZ(t,r)}):DZ(`30`)}function tDe({selectedPreset:e,startKey:t,endKey:n,followsToday:r,todayKey:i}){if(e)return DZ(e);if(!FX(t)||!FX(n)||t>n)return``;let a=IX(t,n);return r||n===i?a===1?hR():DZ(a):fR({count:a})}function nDe(e){switch(e){case`weekly`:return zR();case`monthly`:return HR();case`yearly`:return GR();default:return IR()}}var rDe=6e4,kZ=new class{#e=j(Xt(`30`));get days(){return L(this.#e)}set days(e){M(this.#e,e,!0)}#t=j(Xt(`30`));get selectedPreset(){return L(this.#t)}set selectedPreset(e){M(this.#t,e,!0)}#n=j(null);get customStartDate(){return L(this.#n)}set customStartDate(e){M(this.#n,e,!0)}#r=j(null);get customEndDate(){return L(this.#r)}set customEndDate(e){M(this.#r,e,!0)}#i=j(!1);get followsToday(){return L(this.#i)}set followsToday(e){M(this.#i,e,!0)}#a=j(`daily`);get interval(){return L(this.#a)}set interval(e){M(this.#a,e,!0)}#o=j(0);get syncTick(){return L(this.#o)}set syncTick(e){M(this.#o,e,!0)}init(){this.restore(),this.syncToToday(),typeof setInterval==`function`&&setInterval(()=>this.syncToToday(),rDe)}queryStr(){return this.customStartDate&&this.customEndDate?`start_date=`+gZ(this.customStartDate)+`&end_date=`+gZ(this.customEndDate):`days=`+this.days}selectPreset(e){this.selectedPreset=e,this.customStartDate=null,this.customEndDate=null,this.followsToday=!1,this.days=e,this.persist()}selectStart(e){this.selectedPreset=null,this.customStartDate=e,this.customEndDate&&this.customEndDatet.category===e);return t?t.count:0}get filteredModels(){if(!this.filter)return this.models;let e=this.filter.toLowerCase();return this.models.filter(t=>(t.model?.id??``).toLowerCase().includes(e)||(t.provider_name??``).toLowerCase().includes(e)||(t.provider_type??``).toLowerCase().includes(e)||(t.selector??``).toLowerCase().includes(e)||(t.model?.owned_by??``).toLowerCase().includes(e)||(t.model?.metadata?.modes??[]).join(`,`).toLowerCase().includes(e)||(t.model?.metadata?.categories??[]).join(`,`).toLowerCase().includes(e))}},iDe=z(``);function jZ(e,t){O(t,!0);var n=kr(),r=P(n),i=e=>{var t=iDe(),n=N(t),r=N(n,!0);D(n);var i=F(n,2),a=N(i,!0);D(i),D(t),I((e,t)=>{V(r,e),V(a,t)},[()=>oL(),()=>AI()]),R(`click`,i,()=>Y.openDialog()),B(e,t)};H(r,e=>{Y.authError&&e(i)}),B(e,n),k()}Sr([`click`]);function MZ(){return{total_requests:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,total_input_cost:null,total_output_cost:null,total_cost:null}}function NZ(){return{summary:{total_hits:0,exact_hits:0,semantic_hits:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,total_saved_cost:null},daily:[]}}var PZ=new class{#e=j(Xt(MZ()));get summary(){return L(this.#e)}set summary(e){M(this.#e,e,!0)}#t=j(Xt([]));get daily(){return L(this.#t)}set daily(e){M(this.#t,e,!0)}#n=j(Xt(NZ()));get cacheOverview(){return L(this.#n)}set cacheOverview(e){M(this.#n,e,!0)}#r=j(!1);get loading(){return L(this.#r)}set loading(e){M(this.#r,e,!0)}#i=null;#a=null;cacheAnalyticsEnabled(){return ZX.cacheVisible()}async fetchUsage(){this.#i&&this.#i.abort();let e=new AbortController;this.#i=e,this.loading=!0;try{let t=kZ.queryStr()+`&interval=`+kZ.interval,[n,r]=await Promise.all([JX(`/admin/usage/summary?`+t,{label:`usage summary`,signal:e.signal}),JX(`/admin/usage/daily?`+t,{label:`usage daily`,signal:e.signal})]);if(n.stale||r.stale||e.signal.aborted)return;if(!n.ok||!r.ok){this.summary=MZ(),this.daily=[],this.cacheOverview=NZ();return}this.summary=n.data||MZ(),this.daily=Array.isArray(r.data)?r.data:[]}catch(e){if(XX(e))return;console.error(`Failed to fetch usage:`,e),this.summary=MZ(),this.daily=[]}finally{this.#i===e&&(this.#i=null,this.loading=!1)}}async fetchCacheOverview(e=``){if(await ZX.ensureLoaded(),!this.cacheAnalyticsEnabled()){this.cacheOverview=NZ();return}this.#a&&this.#a.abort();let t=new AbortController;this.#a=t;try{let n=await JX(`/admin/cache/overview?`+(kZ.queryStr()+`&interval=`+kZ.interval+e),{label:`cache overview`,signal:t.signal});if(n.stale||t.signal.aborted)return;if(!n.ok){this.cacheOverview=NZ();return}let r=n.data&&typeof n.data==`object`?n.data:NZ();r.summary||=NZ().summary,Array.isArray(r.daily)||(r.daily=[]),this.cacheOverview=r}catch(e){if(XX(e))return;console.error(`Failed to fetch cache overview:`,e),this.cacheOverview=NZ()}finally{this.#a===t&&(this.#a=null)}}};function aDe(e,t,n){let r=e.getUTCFullYear(),i=e.getUTCMonth()+t,a=new Date(Date.UTC(r,i,1)),o=new Date(Date.UTC(r,i+1,0)),s=(a.getUTCDay()+6)%7,c=[],l=new Date(Date.UTC(r,i,0));for(let e=s-1;e>=0;e--){let t=l.getUTCDate()-e,a=new Date(Date.UTC(r,i-1,t));c.push({day:t,date:a,current:!1,key:`p-`+n(a)})}for(let e=1;e<=o.getUTCDate();e++){let t=new Date(Date.UTC(r,i,e));c.push({day:e,date:t,current:!0,key:`c-`+n(t)})}let u=42-c.length;for(let e=1;e<=u;e++){let t=new Date(Date.UTC(r,i+1,e));c.push({day:e,date:t,current:!1,key:`n-`+n(t)})}return c}function FZ(e,t,n){let r=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1));return n&&r.getTime()>n.getTime()?e:r}function oDe(e,t){return e.getUTCFullYear()===t.getUTCFullYear()&&e.getUTCMonth()===t.getUTCMonth()}var sDe=z(``),cDe=z(``),lDe=z(` `),uDe=z(``),dDe=z(`
                    `);function fDe(e,t){O(t,!0);let n=K(t,`offset`,3,0),r=A(()=>aDe(t.calendarMonth,n(),e=>UX.dateToDateKey(e))),i=A(()=>oDe(t.calendarMonth,UX.todayDate())),a=A(()=>EZ(new Date(Date.UTC(t.calendarMonth.getUTCFullYear(),t.calendarMonth.getUTCMonth()+n(),1)),{month:`long`,year:`numeric`,timeZone:`UTC`})),o=Array.from({length:7},(e,t)=>EZ(new Date(Date.UTC(2024,0,1+t)),{weekday:`short`,timeZone:`UTC`})),s=e=>UX.dateToDateKey(e.date),c=e=>s(e)>UX.currentDateKey(),l=e=>e.current&&s(e)===UX.currentDateKey();function u(e,t){let n=t===`start`?kZ.rangeStart():kZ.rangeEnd();return e.current&&!!n&&s(e)===UX.dateToDateKey(n)}function d(e){let t=kZ.rangeStart(),n=kZ.rangeEnd();return!e.current||!t||!n?!1:s(e)>=UX.dateToDateKey(t)&&s(e)<=UX.dateToDateKey(n)}var f=dDe(),p=N(f),m=N(p);let h;var g=F(m,2),_=N(g,!0);D(g);var v=F(g,2),y=e=>{B(e,sDe())},b=e=>{var n=cDe();I(e=>{n.disabled=L(i),G(n,`aria-label`,e)},[()=>NR()]),R(`click`,n,function(...e){t.onnext?.apply(this,e)}),B(e,n)};H(v,e=>{n()===-1?e(y):e(b,-1)}),D(p);var x=F(p,2);U(x,21,()=>o,Lr,(e,t)=>{var n=lDe(),r=N(n,!0);D(n),I(()=>V(r,L(t))),B(e,n)}),D(x);var S=F(x,2);U(S,21,()=>L(r),e=>e.key,(e,n)=>{var r=uDe(),i=N(r,!0);D(r),I((e,t)=>{W(r,1,e,`svelte-g7ga4u`),r.disabled=t,V(i,L(n).day)},[()=>ui([`dp-day`,{"other-month":!L(n).current,today:l(L(n)),"range-start":u(L(n),`start`),"range-end":u(L(n),`end`),"in-range":d(L(n)),disabled:c(L(n))}]),()=>c(L(n))||!L(n).current]),R(`click`,r,()=>t.onselect?.(L(n))),B(e,r)}),D(S),D(f),I(e=>{h=W(m,1,`dp-nav-btn svelte-g7ga4u`,null,h,{"dp-nav-prev-mobile":n()!==-1}),G(m,`aria-label`,e),V(_,L(a))},[()=>AR()]),R(`click`,m,function(...e){t.onprev?.apply(this,e)}),B(e,f),k()}Sr([`click`]);var pDe=z(``),mDe=z(`
                    `),hDe=Dr(``),gDe=Dr(``),_De=z(`
                    `),vDe=z(`
                    `);function IZ(e,t){O(t,!0);let n=[`3`,`7`,`14`,`30`,`90`],r=j(!1),i=j(`start`),a=j(Xt(new Date)),o=j(Xt({show:!1,x:0,y:0}));function s(){M(r,!L(r)),L(r)&&(kZ.syncToToday(),M(a,UX.startOfMonthDate(kZ.customEndDate||UX.todayDate()),!0),M(i,`start`))}function c(){M(r,!1),M(o,{show:!1,x:0,y:0},!0)}let l=kZ.syncTick;hn(()=>{let e=kZ.syncTick;e!==l&&(l=e,t.onchange?.())});function u(e){kZ.selectPreset(e),M(i,`start`),t.onchange?.(),c()}let d=()=>M(a,FZ(L(a),-1),!0),f=()=>M(a,FZ(L(a),1,UX.startOfMonthDate(UX.todayDate())),!0);function p(e){let n=new Date(e.date);if(L(i)===`start`){kZ.selectStart(n),M(i,`end`),t.onchange?.();return}kZ.selectEnd(n),M(i,`start`),t.onchange?.(),c()}var m=vDe(),h=N(m),g=F(N(h),2),_=N(g,!0);D(g);var v=F(g,2);let y;D(h);var b=F(h,2),x=e=>{var t=mDe(),r=N(t);U(r,20,()=>n,e=>e,(e,t)=>{var n=pDe();let r;var i=N(n,!0);D(n),I(e=>{r=W(n,1,`preset-btn svelte-ax7ma4`,null,r,{active:kZ.selectedPreset===t}),V(i,e)},[()=>lR({count:Number(t)})]),R(`click`,n,()=>u(t)),B(e,n)}),D(r);var i=F(r,2);U(i,20,()=>[-1,0],e=>e,(e,t)=>{fDe(e,{get calendarMonth(){return L(a)},get offset(){return t},onprev:d,onnext:f,onselect:p})}),D(i),D(t),R(`mousemove`,i,e=>M(o,{show:!0,x:e.clientX,y:e.clientY},!0)),xr(`mouseleave`,i,()=>M(o,{show:!1,x:0,y:0},!0)),B(e,t)};H(b,e=>{L(r)&&e(x)});var S=F(b,2),C=e=>{var t=_De(),n=N(t),r=e=>{B(e,hDe())},a=e=>{B(e,gDe())};H(n,e=>{L(i)===`start`?e(r):e(a,-1)});var s=F(n,2),c=N(s,!0);D(s),D(t),I(e=>{hi(t,`left:${L(o).x??``}px;top:${L(o).y??``}px`),V(c,e)},[()=>L(i)===`end`?DR():wR()]),B(e,t)};H(S,e=>{L(o).show&&e(C)}),D(m),ci(m,()=>L(r)?wEe(c):void 0),I((e,t)=>{G(h,`title`,e),V(_,t),y=W(v,0,`date-picker-chevron svelte-ax7ma4`,null,y,{open:L(r)})},[()=>kZ.dateRangeSpanLabel(),()=>kZ.dateRangeLabel()]),R(`click`,h,s),B(e,m),k()}Sr([`click`,`mousemove`]);function LZ(e){return e+.5|0}var RZ=(e,t,n)=>Math.max(Math.min(e,n),t);function zZ(e){return RZ(LZ(e*2.55),0,255)}function BZ(e){return RZ(LZ(e*255),0,255)}function VZ(e){return RZ(LZ(e/2.55)/100,0,1)}function HZ(e){return RZ(LZ(e*100),0,100)}var UZ={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},WZ=[...`0123456789ABCDEF`],yDe=e=>WZ[e&15],bDe=e=>WZ[(e&240)>>4]+WZ[e&15],GZ=e=>(e&240)>>4==(e&15),xDe=e=>GZ(e.r)&&GZ(e.g)&&GZ(e.b)&&GZ(e.a);function SDe(e){var t=e.length,n;return e[0]===`#`&&(t===4||t===5?n={r:255&UZ[e[1]]*17,g:255&UZ[e[2]]*17,b:255&UZ[e[3]]*17,a:t===5?UZ[e[4]]*17:255}:(t===7||t===9)&&(n={r:UZ[e[1]]<<4|UZ[e[2]],g:UZ[e[3]]<<4|UZ[e[4]],b:UZ[e[5]]<<4|UZ[e[6]],a:t===9?UZ[e[7]]<<4|UZ[e[8]]:255})),n}var CDe=(e,t)=>e<255?t(e):``;function wDe(e){var t=xDe(e)?yDe:bDe;return e?`#`+t(e.r)+t(e.g)+t(e.b)+CDe(e.a,t):void 0}var TDe=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function KZ(e,t,n){let r=t*Math.min(n,1-n),i=(t,i=(t+e/30)%12)=>n-r*Math.max(Math.min(i-3,9-i,1),-1);return[i(0),i(8),i(4)]}function EDe(e,t,n){let r=(r,i=(r+e/60)%6)=>n-n*t*Math.max(Math.min(i,4-i,1),0);return[r(5),r(3),r(1)]}function DDe(e,t,n){let r=KZ(e,1,.5),i;for(t+n>1&&(i=1/(t+n),t*=i,n*=i),i=0;i<3;i++)r[i]*=1-t-n,r[i]+=t;return r}function ODe(e,t,n,r,i){return e===i?(t-n)/r+(t.5?l/(2-i-a):l/(i+a),s=ODe(t,n,r,l,i),s=s*60+.5),[s|0,c||0,o]}function JZ(e,t,n,r){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,r)).map(BZ)}function YZ(e,t,n){return JZ(KZ,e,t,n)}function kDe(e,t,n){return JZ(DDe,e,t,n)}function ADe(e,t,n){return JZ(EDe,e,t,n)}function XZ(e){return(e%360+360)%360}function jDe(e){let t=TDe.exec(e),n=255,r;if(!t)return;t[5]!==r&&(n=t[6]?zZ(+t[5]):BZ(+t[5]));let i=XZ(+t[2]),a=t[3]/100,o=t[4]/100;return r=t[1]===`hwb`?kDe(i,a,o):t[1]===`hsv`?ADe(i,a,o):YZ(i,a,o),{r:r[0],g:r[1],b:r[2],a:n}}function MDe(e,t){var n=qZ(e);n[0]=XZ(n[0]+t),n=YZ(n),e.r=n[0],e.g=n[1],e.b=n[2]}function NDe(e){if(!e)return;let t=qZ(e),n=t[0],r=HZ(t[1]),i=HZ(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${i}%, ${VZ(e.a)})`:`hsl(${n}, ${r}%, ${i}%)`}var ZZ={x:`dark`,Z:`light`,Y:`re`,X:`blu`,W:`gr`,V:`medium`,U:`slate`,A:`ee`,T:`ol`,S:`or`,B:`ra`,C:`lateg`,D:`ights`,R:`in`,Q:`turquois`,E:`hi`,P:`ro`,O:`al`,N:`le`,M:`de`,L:`yello`,F:`en`,K:`ch`,G:`arks`,H:`ea`,I:`ightg`,J:`wh`},QZ={OiceXe:`f0f8ff`,antiquewEte:`faebd7`,aqua:`ffff`,aquamarRe:`7fffd4`,azuY:`f0ffff`,beige:`f5f5dc`,bisque:`ffe4c4`,black:`0`,blanKedOmond:`ffebcd`,Xe:`ff`,XeviTet:`8a2be2`,bPwn:`a52a2a`,burlywood:`deb887`,caMtXe:`5f9ea0`,KartYuse:`7fff00`,KocTate:`d2691e`,cSO:`ff7f50`,cSnflowerXe:`6495ed`,cSnsilk:`fff8dc`,crimson:`dc143c`,cyan:`ffff`,xXe:`8b`,xcyan:`8b8b`,xgTMnPd:`b8860b`,xWay:`a9a9a9`,xgYF:`6400`,xgYy:`a9a9a9`,xkhaki:`bdb76b`,xmagFta:`8b008b`,xTivegYF:`556b2f`,xSange:`ff8c00`,xScEd:`9932cc`,xYd:`8b0000`,xsOmon:`e9967a`,xsHgYF:`8fbc8f`,xUXe:`483d8b`,xUWay:`2f4f4f`,xUgYy:`2f4f4f`,xQe:`ced1`,xviTet:`9400d3`,dAppRk:`ff1493`,dApskyXe:`bfff`,dimWay:`696969`,dimgYy:`696969`,dodgerXe:`1e90ff`,fiYbrick:`b22222`,flSOwEte:`fffaf0`,foYstWAn:`228b22`,fuKsia:`ff00ff`,gaRsbSo:`dcdcdc`,ghostwEte:`f8f8ff`,gTd:`ffd700`,gTMnPd:`daa520`,Way:`808080`,gYF:`8000`,gYFLw:`adff2f`,gYy:`808080`,honeyMw:`f0fff0`,hotpRk:`ff69b4`,RdianYd:`cd5c5c`,Rdigo:`4b0082`,ivSy:`fffff0`,khaki:`f0e68c`,lavFMr:`e6e6fa`,lavFMrXsh:`fff0f5`,lawngYF:`7cfc00`,NmoncEffon:`fffacd`,ZXe:`add8e6`,ZcSO:`f08080`,Zcyan:`e0ffff`,ZgTMnPdLw:`fafad2`,ZWay:`d3d3d3`,ZgYF:`90ee90`,ZgYy:`d3d3d3`,ZpRk:`ffb6c1`,ZsOmon:`ffa07a`,ZsHgYF:`20b2aa`,ZskyXe:`87cefa`,ZUWay:`778899`,ZUgYy:`778899`,ZstAlXe:`b0c4de`,ZLw:`ffffe0`,lime:`ff00`,limegYF:`32cd32`,lRF:`faf0e6`,magFta:`ff00ff`,maPon:`800000`,VaquamarRe:`66cdaa`,VXe:`cd`,VScEd:`ba55d3`,VpurpN:`9370db`,VsHgYF:`3cb371`,VUXe:`7b68ee`,VsprRggYF:`fa9a`,VQe:`48d1cc`,VviTetYd:`c71585`,midnightXe:`191970`,mRtcYam:`f5fffa`,mistyPse:`ffe4e1`,moccasR:`ffe4b5`,navajowEte:`ffdead`,navy:`80`,Tdlace:`fdf5e6`,Tive:`808000`,TivedBb:`6b8e23`,Sange:`ffa500`,SangeYd:`ff4500`,ScEd:`da70d6`,pOegTMnPd:`eee8aa`,pOegYF:`98fb98`,pOeQe:`afeeee`,pOeviTetYd:`db7093`,papayawEp:`ffefd5`,pHKpuff:`ffdab9`,peru:`cd853f`,pRk:`ffc0cb`,plum:`dda0dd`,powMrXe:`b0e0e6`,purpN:`800080`,YbeccapurpN:`663399`,Yd:`ff0000`,Psybrown:`bc8f8f`,PyOXe:`4169e1`,saddNbPwn:`8b4513`,sOmon:`fa8072`,sandybPwn:`f4a460`,sHgYF:`2e8b57`,sHshell:`fff5ee`,siFna:`a0522d`,silver:`c0c0c0`,skyXe:`87ceeb`,UXe:`6a5acd`,UWay:`708090`,UgYy:`708090`,snow:`fffafa`,sprRggYF:`ff7f`,stAlXe:`4682b4`,tan:`d2b48c`,teO:`8080`,tEstN:`d8bfd8`,tomato:`ff6347`,Qe:`40e0d0`,viTet:`ee82ee`,JHt:`f5deb3`,wEte:`ffffff`,wEtesmoke:`f5f5f5`,Lw:`ffff00`,LwgYF:`9acd32`};function PDe(){let e={},t=Object.keys(QZ),n=Object.keys(ZZ),r,i,a,o,s;for(r=0;r>16&255,a>>8&255,a&255]}return e}var $Z;function FDe(e){$Z||($Z=PDe(),$Z.transparent=[0,0,0,0]);let t=$Z[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var IDe=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function LDe(e){let t=IDe.exec(e),n=255,r,i,a;if(t){if(t[7]!==r){let e=+t[7];n=t[8]?zZ(e):RZ(e*255,0,255)}return r=+t[1],i=+t[3],a=+t[5],r=255&(t[2]?zZ(r):RZ(r,0,255)),i=255&(t[4]?zZ(i):RZ(i,0,255)),a=255&(t[6]?zZ(a):RZ(a,0,255)),{r,g:i,b:a,a:n}}}function RDe(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${VZ(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}var eQ=e=>e<=.0031308?e*12.92:e**(1/2.4)*1.055-.055,tQ=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function zDe(e,t,n){let r=tQ(VZ(e.r)),i=tQ(VZ(e.g)),a=tQ(VZ(e.b));return{r:BZ(eQ(r+n*(tQ(VZ(t.r))-r))),g:BZ(eQ(i+n*(tQ(VZ(t.g))-i))),b:BZ(eQ(a+n*(tQ(VZ(t.b))-a))),a:e.a+n*(t.a-e.a)}}function nQ(e,t,n){if(e){let r=qZ(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,t===0?360:1)),r=YZ(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function rQ(e,t){return e&&Object.assign(t||{},e)}function iQ(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=BZ(e[3]))):(t=rQ(e,{r:0,g:0,b:0,a:1}),t.a=BZ(t.a)),t}function BDe(e){return e.charAt(0)===`r`?LDe(e):jDe(e)}var aQ=class e{constructor(t){if(t instanceof e)return t;let n=typeof t,r;n===`object`?r=iQ(t):n===`string`&&(r=SDe(t)||FDe(t)||BDe(t)),this._rgb=r,this._valid=!!r}get valid(){return this._valid}get rgb(){var e=rQ(this._rgb);return e&&(e.a=VZ(e.a)),e}set rgb(e){this._rgb=iQ(e)}rgbString(){return this._valid?RDe(this._rgb):void 0}hexString(){return this._valid?wDe(this._rgb):void 0}hslString(){return this._valid?NDe(this._rgb):void 0}mix(e,t){if(e){let n=this.rgb,r=e.rgb,i,a=t===i?.5:t,o=2*a-1,s=n.a-r.a,c=((o*s===-1?o:(o+s)/(1+o*s))+1)/2;i=1-c,n.r=255&c*n.r+i*r.r+.5,n.g=255&c*n.g+i*r.g+.5,n.b=255&c*n.b+i*r.b+.5,n.a=a*n.a+(1-a)*r.a,this.rgb=n}return this}interpolate(e,t){return e&&(this._rgb=zDe(this._rgb,e._rgb,t)),this}clone(){return new e(this.rgb)}alpha(e){return this._rgb.a=BZ(e),this}clearer(e){let t=this._rgb;return t.a*=1-e,this}greyscale(){let e=this._rgb;return e.r=e.g=e.b=LZ(e.r*.3+e.g*.59+e.b*.11),this}opaquer(e){let t=this._rgb;return t.a*=1+e,this}negate(){let e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return nQ(this._rgb,2,e),this}darken(e){return nQ(this._rgb,2,-e),this}saturate(e){return nQ(this._rgb,1,e),this}desaturate(e){return nQ(this._rgb,1,-e),this}rotate(e){return MDe(this._rgb,e),this}};function oQ(){}var VDe=(()=>{let e=0;return()=>e++})();function sQ(e){return e==null}function cQ(e){if(Array.isArray&&Array.isArray(e))return!0;let t=Object.prototype.toString.call(e);return t.slice(0,7)===`[object`&&t.slice(-6)===`Array]`}function lQ(e){return e!==null&&Object.prototype.toString.call(e)===`[object Object]`}function uQ(e){return(typeof e==`number`||e instanceof Number)&&isFinite(+e)}function dQ(e,t){return uQ(e)?e:t}function fQ(e,t){return e===void 0?t:e}var HDe=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100:+e/t,pQ=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100*t:+e;function mQ(e,t,n){if(e&&typeof e.call==`function`)return e.apply(n,t)}function hQ(e,t,n,r){let i,a,o;if(cQ(e))if(a=e.length,r)for(i=a-1;i>=0;i--)t.call(n,e[i],i);else for(i=0;ie,x:e=>e.x,y:e=>e.y};function GDe(e){let t=e.split(`.`),n=[],r=``;for(let e of t)r+=e,r.endsWith(`\\`)?r=r.slice(0,-1)+`.`:(n.push(r),r=``);return n}function KDe(e){let t=GDe(e);return e=>{for(let n of t){if(n===``)break;e&&=e[n]}return e}}function SQ(e,t){return(xQ[t]||(xQ[t]=KDe(t)))(e)}function CQ(e){return e.charAt(0).toUpperCase()+e.slice(1)}var wQ=e=>e!==void 0,TQ=e=>typeof e==`function`,EQ=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0};function qDe(e){return e.type===`mouseup`||e.type===`click`||e.type===`contextmenu`}var DQ=Math.PI,OQ=2*DQ,JDe=OQ+DQ,kQ=1/0,YDe=DQ/180,AQ=DQ/2,jQ=DQ/4,MQ=DQ*2/3,NQ=Math.log10,PQ=Math.sign;function FQ(e,t,n){return Math.abs(e-t)e-t).pop(),t}function ZDe(e){return typeof e==`symbol`||typeof e==`object`&&!!e&&!(Symbol.toPrimitive in e||`toString`in e||`valueOf`in e)}function LQ(e){return!ZDe(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function QDe(e,t){let n=Math.round(e);return n-t<=e&&n+t>=e}function RQ(e,t,n){let r,i,a;for(r=0,i=e.length;rc&&l=Math.min(t,n)-r&&e<=Math.max(t,n)+r}function JQ(e,t,n){n||=(n=>e[n]1;)a=i+r>>1,n(a)?i=a:r=a;return{lo:i,hi:r}}var YQ=(e,t,n,r)=>JQ(e,n,r?r=>{let i=e[r][t];return ie[r][t]JQ(e,n,r=>e[r][t]>=n);function nOe(e,t,n){let r=0,i=e.length;for(;rr&&e[i-1]>n;)i--;return r>0||i{let n=`_onData`+CQ(t),r=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value(...t){let i=r.apply(this,t);return e._chartjs.listeners.forEach(e=>{typeof e[n]==`function`&&e[n](...t)}),i}})})}function ZQ(e,t){let n=e._chartjs;if(!n)return;let r=n.listeners,i=r.indexOf(t);i!==-1&&r.splice(i,1),!(r.length>0)&&(XQ.forEach(t=>{delete e[t]}),delete e._chartjs)}function QQ(e){let t=new Set(e);return t.size===e.length?e:Array.from(t)}var $Q=function(){return typeof window>`u`?function(e){return e()}:window.requestAnimationFrame}();function e$(e,t){let n=[],r=!1;return function(...i){n=i,r||(r=!0,$Q.call(window,()=>{r=!1,e.apply(t,n)}))}}function iOe(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}var t$=e=>e===`start`?`left`:e===`end`?`right`:`center`,n$=(e,t,n)=>e===`start`?t:e===`end`?n:(t+n)/2,aOe=(e,t,n,r)=>e===(r?`left`:`right`)?n:e===`center`?(t+n)/2:t;function r$(e,t,n){let r=t.length,i=0,a=r;if(e._sorted){let{iScale:o,vScale:s,_parsed:c}=e,l=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null,u=o.axis,{min:d,max:f,minDefined:p,maxDefined:m}=o.getUserBounds();if(p){if(i=Math.min(YQ(c,u,d).lo,n?r:YQ(t,u,o.getPixelForValue(d)).lo),l){let e=c.slice(0,i+1).reverse().findIndex(e=>!sQ(e[s.axis]));i-=Math.max(0,e)}i=KQ(i,0,r-1)}if(m){let e=Math.max(YQ(c,o.axis,f,!0).hi+1,n?0:YQ(t,u,o.getPixelForValue(f),!0).hi+1);if(l){let t=c.slice(e-1).findIndex(e=>!sQ(e[s.axis]));e+=Math.max(0,t)}a=KQ(e,i,r)-i}else a=r-i}return{start:i,count:a}}function i$(e){let{xScale:t,yScale:n,_scaleRanges:r}=e,i={xmin:t.min,xmax:t.max,ymin:n.min,ymax:n.max};if(!r)return e._scaleRanges=i,!0;let a=r.xmin!==t.min||r.xmax!==t.max||r.ymin!==n.min||r.ymax!==n.max;return Object.assign(r,i),a}var a$=e=>e===0||e===1,o$=(e,t,n)=>-(2**(10*--e)*Math.sin((e-t)*OQ/n)),s$=(e,t,n)=>2**(-10*e)*Math.sin((e-t)*OQ/n)+1,c$={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-(--e*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>--e*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>-Math.cos(e*AQ)+1,easeOutSine:e=>Math.sin(e*AQ),easeInOutSine:e=>-.5*(Math.cos(DQ*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:-(2**(-10*e))+1,easeInOutExpo:e=>a$(e)?e:e<.5?.5*2**(10*(e*2-1)):.5*(-(2**(-10*(e*2-1)))+2),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1- --e*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>a$(e)?e:o$(e,.075,.3),easeOutElastic:e=>a$(e)?e:s$(e,.075,.3),easeInOutElastic(e){let t=.1125,n=.45;return a$(e)?e:e<.5?.5*o$(e*2,t,n):.5+.5*s$(e*2-1,t,n)},easeInBack(e){return e*e*(2.70158*e-1.70158)},easeOutBack(e){return--e*e*(2.70158*e+1.70158)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)},easeInBounce:e=>1-c$.easeOutBounce(1-e),easeOutBounce(e){let t=7.5625,n=2.75;return e<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375},easeInOutBounce:e=>e<.5?c$.easeInBounce(e*2)*.5:c$.easeOutBounce(e*2-1)*.5+.5};function l$(e){if(e&&typeof e==`object`){let t=e.toString();return t===`[object CanvasPattern]`||t===`[object CanvasGradient]`}return!1}function u$(e){return l$(e)?e:new aQ(e)}function d$(e){return l$(e)?e:new aQ(e).saturate(.5).darken(.1).hexString()}var oOe=[`x`,`y`,`borderWidth`,`radius`,`tension`],sOe=[`color`,`borderColor`,`backgroundColor`];function cOe(e){e.set(`animation`,{delay:void 0,duration:1e3,easing:`easeOutQuart`,fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),e.describe(`animation`,{_fallback:!1,_indexable:!1,_scriptable:e=>e!==`onProgress`&&e!==`onComplete`&&e!==`fn`}),e.set(`animations`,{colors:{type:`color`,properties:sOe},numbers:{type:`number`,properties:oOe}}),e.describe(`animations`,{_fallback:`animation`}),e.set(`transitions`,{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:`transparent`},visible:{type:`boolean`,duration:0}}},hide:{animations:{colors:{to:`transparent`},visible:{type:`boolean`,easing:`linear`,fn:e=>e|0}}}})}function lOe(e){e.set(`layout`,{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}var f$=new Map;function uOe(e,t){t||={};let n=e+JSON.stringify(t),r=f$.get(n);return r||(r=new Intl.NumberFormat(e,t),f$.set(n,r)),r}function p$(e,t,n){return uOe(t,n).format(e)}var m$={values(e){return cQ(e)?e:``+e},numeric(e,t,n){if(e===0)return`0`;let r=this.chart.options.locale,i,a=e;if(n.length>1){let t=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(t<1e-4||t>0x38d7ea4c68000)&&(i=`scientific`),a=dOe(e,n)}let o=NQ(Math.abs(a)),s=isNaN(o)?1:Math.max(Math.min(-1*Math.floor(o),20),0),c={notation:i,minimumFractionDigits:s,maximumFractionDigits:s};return Object.assign(c,this.options.ticks.format),p$(e,r,c)},logarithmic(e,t,n){if(e===0)return`0`;let r=n[t].significand||e/10**Math.floor(NQ(e));return[1,2,3,5,10,15].includes(r)||t>.8*n.length?m$.numeric.call(this,e,t,n):``}};function dOe(e,t){let n=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(n)>=1&&e!==Math.floor(e)&&(n=e-Math.floor(e)),n}var h$={formatters:m$};function fOe(e){e.set(`scale`,{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:`ticks`,clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,t)=>t.lineWidth,tickColor:(e,t)=>t.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:``,padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:``,padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:h$.formatters.values,minor:{},major:{},align:`center`,crossAlign:`near`,showLabelBackdrop:!1,backdropColor:`rgba(255, 255, 255, 0.75)`,backdropPadding:2}}),e.route(`scale.ticks`,`color`,``,`color`),e.route(`scale.grid`,`color`,``,`borderColor`),e.route(`scale.border`,`color`,``,`borderColor`),e.route(`scale.title`,`color`,``,`color`),e.describe(`scale`,{_fallback:!1,_scriptable:e=>!e.startsWith(`before`)&&!e.startsWith(`after`)&&e!==`callback`&&e!==`parser`,_indexable:e=>e!==`borderDash`&&e!==`tickBorderDash`&&e!==`dash`}),e.describe(`scales`,{_fallback:`scale`}),e.describe(`scale.ticks`,{_scriptable:e=>e!==`backdropPadding`&&e!==`callback`,_indexable:e=>e!==`backdropPadding`})}var g$=Object.create(null),_$=Object.create(null);function v$(e,t){if(!t)return e;let n=t.split(`.`);for(let t=0,r=n.length;te.chart.platform.getDevicePixelRatio(),this.elements={},this.events=[`mousemove`,`mouseout`,`click`,`touchstart`,`touchmove`],this.font={family:`'Helvetica Neue', 'Helvetica', 'Arial', sans-serif`,size:12,style:`normal`,lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,t)=>d$(t.backgroundColor),this.hoverBorderColor=(e,t)=>d$(t.borderColor),this.hoverColor=(e,t)=>d$(t.color),this.indexAxis=`x`,this.interaction={mode:`nearest`,intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(t)}set(e,t){return y$(this,e,t)}get(e){return v$(this,e)}describe(e,t){return y$(_$,e,t)}override(e,t){return y$(g$,e,t)}route(e,t,n,r){let i=v$(this,e),a=v$(this,n),o=`_`+t;Object.defineProperties(i,{[o]:{value:i[t],writable:!0},[t]:{enumerable:!0,get(){let e=this[o],t=a[r];return lQ(e)?Object.assign({},t,e):fQ(e,t)},set(e){this[o]=e}}})}apply(e){e.forEach(e=>e(this))}}({_scriptable:e=>!e.startsWith(`on`),_indexable:e=>e!==`events`,hover:{_fallback:`interaction`},interaction:{_scriptable:!1,_indexable:!1}},[cOe,lOe,fOe]);function pOe(e){return!e||sQ(e.size)||sQ(e.family)?null:(e.style?e.style+` `:``)+(e.weight?e.weight+` `:``)+e.size+`px `+e.family}function x$(e,t,n,r,i){let a=t[i];return a||(a=t[i]=e.measureText(i).width,n.push(i)),a>r&&(r=a),r}function mOe(e,t,n,r){r||={};let i=r.data=r.data||{},a=r.garbageCollect=r.garbageCollect||[];r.font!==t&&(i=r.data={},a=r.garbageCollect=[],r.font=t),e.save(),e.font=t;let o=0,s=n.length,c,l,u,d,f;for(c=0;cn.length){for(c=0;c0&&e.stroke()}}function E$(e,t,n){return n||=.5,!t||e&&e.x>t.left-n&&e.xt.top-n&&e.y0&&a.strokeColor!==``,c,l;for(e.save(),e.font=i.string,_Oe(e,a),c=0;c+e||0;function j$(e,t){let n={},r=lQ(t),i=r?Object.keys(t):t,a=lQ(e)?r?n=>fQ(e[n],e[t[n]]):t=>e[t]:()=>e;for(let e of i)n[e]=COe(a(e));return n}function M$(e){return j$(e,{top:`y`,right:`x`,bottom:`y`,left:`x`})}function N$(e){return j$(e,[`topLeft`,`topRight`,`bottomLeft`,`bottomRight`])}function P$(e){let t=M$(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function F$(e,t){e||={},t||=b$.font;let n=fQ(e.size,t.size);typeof n==`string`&&(n=parseInt(n,10));let r=fQ(e.style,t.style);r&&!(``+r).match(xOe)&&(console.warn(`Invalid font style specified: "`+r+`"`),r=void 0);let i={family:fQ(e.family,t.family),lineHeight:SOe(fQ(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:fQ(e.weight,t.weight),string:``};return i.string=pOe(i),i}function I$(e,t,n,r){let i=!0,a,o,s;for(a=0,o=e.length;an&&e===0?0:e+t;return{min:o(r,-Math.abs(a)),max:o(i,a)}}function L$(e,t){return Object.assign(Object.create(e),t)}function R$(e,t=[``],n,r,i=()=>e[0]){let a=n||e;return r===void 0&&(r=K$(`_fallback`,e)),new Proxy({[Symbol.toStringTag]:`Object`,_cacheable:!0,_scopes:e,_rootScopes:a,_fallback:r,_getTarget:i,override:n=>R$([n,...e],t,a,r)},{deleteProperty(t,n){return delete t[n],delete t._keys,delete e[0][n],!0},get(n,r){return H$(n,r,()=>MOe(r,t,e,n))},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(e._scopes[0],t)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(e,t){return q$(e).includes(t)},ownKeys(e){return q$(e)},set(e,t,n){let r=e._storage||=i();return e[t]=r[t]=n,delete e._keys,!0}})}function z$(e,t,n,r){let i={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:B$(e,r),setContext:t=>z$(e,t,n,r),override:i=>z$(e.override(i),t,n,r)};return new Proxy(i,{deleteProperty(t,n){return delete t[n],delete e[n],!0},get(e,t,n){return H$(e,t,()=>EOe(e,t,n))},getOwnPropertyDescriptor(t,n){return t._descriptors.allKeys?Reflect.has(e,n)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,n)},getPrototypeOf(){return Reflect.getPrototypeOf(e)},has(t,n){return Reflect.has(e,n)},ownKeys(){return Reflect.ownKeys(e)},set(t,n,r){return e[n]=r,delete t[n],!0}})}function B$(e,t={scriptable:!0,indexable:!0}){let{_scriptable:n=t.scriptable,_indexable:r=t.indexable,_allKeys:i=t.allKeys}=e;return{allKeys:i,scriptable:n,indexable:r,isScriptable:TQ(n)?n:()=>n,isIndexable:TQ(r)?r:()=>r}}var TOe=(e,t)=>e?e+CQ(t):t,V$=(e,t)=>lQ(t)&&e!==`adapters`&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function H$(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t===`constructor`)return e[t];let r=n();return e[t]=r,r}function EOe(e,t,n){let{_proxy:r,_context:i,_subProxy:a,_descriptors:o}=e,s=r[t];return TQ(s)&&o.isScriptable(t)&&(s=DOe(t,s,e,n)),cQ(s)&&s.length&&(s=OOe(t,s,e,o.isIndexable)),V$(t,s)&&(s=z$(s,i,a&&a[t],o)),s}function DOe(e,t,n,r){let{_proxy:i,_context:a,_subProxy:o,_stack:s}=n;if(s.has(e))throw Error(`Recursion detected: `+Array.from(s).join(`->`)+`->`+e);s.add(e);let c=t(a,o||r);return s.delete(e),V$(e,c)&&(c=W$(i._scopes,i,e,c)),c}function OOe(e,t,n,r){let{_proxy:i,_context:a,_subProxy:o,_descriptors:s}=n;if(a.index!==void 0&&r(e))return t[a.index%t.length];if(lQ(t[0])){let n=t,r=i._scopes.filter(e=>e!==n);t=[];for(let c of n){let n=W$(r,i,e,c);t.push(z$(n,a,o&&o[e],s))}}return t}function U$(e,t,n){return TQ(e)?e(t,n):e}var kOe=(e,t)=>e===!0?t:typeof e==`string`?SQ(t,e):void 0;function AOe(e,t,n,r,i){for(let a of t){let t=kOe(n,a);if(t){e.add(t);let a=U$(t._fallback,n,i);if(a!==void 0&&a!==n&&a!==r)return a}else if(t===!1&&r!==void 0&&n!==r)return null}return!1}function W$(e,t,n,r){let i=t._rootScopes,a=U$(t._fallback,n,r),o=[...e,...i],s=new Set;s.add(r);let c=G$(s,o,n,a||n,r);return c===null||a!==void 0&&a!==n&&(c=G$(s,o,a,c,r),c===null)?!1:R$(Array.from(s),[``],i,a,()=>jOe(t,n,r))}function G$(e,t,n,r,i){for(;n;)n=AOe(e,t,n,r,i);return n}function jOe(e,t,n){let r=e._getTarget();t in r||(r[t]={});let i=r[t];return cQ(i)&&lQ(n)?n:i||{}}function MOe(e,t,n,r){let i;for(let a of t)if(i=K$(TOe(a,e),n),i!==void 0)return V$(e,i)?W$(n,r,e,i):i}function K$(e,t){for(let n of t){if(!n)continue;let t=n[e];if(t!==void 0)return t}}function q$(e){let t=e._keys;return t||=e._keys=NOe(e._scopes),t}function NOe(e){let t=new Set;for(let n of e)for(let e of Object.keys(n).filter(e=>!e.startsWith(`_`)))t.add(e);return Array.from(t)}function J$(e,t,n,r){let{iScale:i}=e,{key:a=`r`}=this._parsing,o=Array(r),s,c,l,u;for(s=0,c=r;ste===`x`?`y`:`x`;function FOe(e,t,n,r){let i=e.skip?t:e,a=t,o=n.skip?t:n,s=UQ(a,i),c=UQ(o,a),l=s/(s+c),u=c/(s+c);l=isNaN(l)?0:l,u=isNaN(u)?0:u;let d=r*l,f=r*u;return{previous:{x:a.x-d*(o.x-i.x),y:a.y-d*(o.y-i.y)},next:{x:a.x+f*(o.x-i.x),y:a.y+f*(o.y-i.y)}}}function IOe(e,t,n){let r=e.length,i,a,o,s,c,l=Y$(e,0);for(let u=0;u!e.skip)),t.cubicInterpolationMode===`monotone`)ROe(e,i);else{let n=r?e[e.length-1]:e[0];for(a=0,o=e.length;ae.ownerDocument.defaultView.getComputedStyle(e,null);function VOe(e,t){return t1(e).getPropertyValue(t)}var HOe=[`top`,`right`,`bottom`,`left`];function n1(e,t,n){let r={};n=n?`-`+n:``;for(let i=0;i<4;i++){let a=HOe[i];r[a]=parseFloat(e[t+`-`+a+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}var UOe=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function WOe(e,t){let n=e.touches,r=n&&n.length?n[0]:e,{offsetX:i,offsetY:a}=r,o=!1,s,c;if(UOe(i,a,e.target))s=i,c=a;else{let e=t.getBoundingClientRect();s=r.clientX-e.left,c=r.clientY-e.top,o=!0}return{x:s,y:c,box:o}}function r1(e,t){if(`native`in e)return e;let{canvas:n,currentDevicePixelRatio:r}=t,i=t1(n),a=i.boxSizing===`border-box`,o=n1(i,`padding`),s=n1(i,`border`,`width`),{x:c,y:l,box:u}=WOe(e,n),d=o.left+(u&&s.left),f=o.top+(u&&s.top),{width:p,height:m}=t;return a&&(p-=o.width+s.width,m-=o.height+s.height),{x:Math.round((c-d)/p*n.width/r),y:Math.round((l-f)/m*n.height/r)}}function GOe(e,t,n){let r,i;if(t===void 0||n===void 0){let a=e&&$$(e);if(!a)t=e.clientWidth,n=e.clientHeight;else{let e=a.getBoundingClientRect(),o=t1(a),s=n1(o,`border`,`width`),c=n1(o,`padding`);t=e.width-c.width-s.width,n=e.height-c.height-s.height,r=e1(o.maxWidth,a,`clientWidth`),i=e1(o.maxHeight,a,`clientHeight`)}}return{width:t,height:n,maxWidth:r||kQ,maxHeight:i||kQ}}var i1=e=>Math.round(e*10)/10;function KOe(e,t,n,r){let i=t1(e),a=n1(i,`margin`),o=e1(i.maxWidth,e,`clientWidth`)||kQ,s=e1(i.maxHeight,e,`clientHeight`)||kQ,c=GOe(e,t,n),{width:l,height:u}=c;if(i.boxSizing===`content-box`){let e=n1(i,`border`,`width`),t=n1(i,`padding`);l-=t.width+e.width,u-=t.height+e.height}return l=Math.max(0,l-a.width),u=Math.max(0,r?l/r:u-a.height),l=i1(Math.min(l,o,c.maxWidth)),u=i1(Math.min(u,s,c.maxHeight)),l&&!u&&(u=i1(l/2)),(t!==void 0||n!==void 0)&&r&&c.height&&u>c.height&&(u=c.height,l=i1(Math.floor(u*r))),{width:l,height:u}}function a1(e,t,n){let r=t||1,i=i1(e.height*r),a=i1(e.width*r);e.height=i1(e.height),e.width=i1(e.width);let o=e.canvas;return o.style&&(n||!o.style.height&&!o.style.width)&&(o.style.height=`${e.height}px`,o.style.width=`${e.width}px`),e.currentDevicePixelRatio!==r||o.height!==i||o.width!==a?(e.currentDevicePixelRatio=r,o.height=i,o.width=a,e.ctx.setTransform(r,0,0,r,0,0),!0):!1}var qOe=function(){let e=!1;try{let t={get passive(){return e=!0,!1}};Q$()&&(window.addEventListener(`test`,null,t),window.removeEventListener(`test`,null,t))}catch{}return e}();function o1(e,t){let n=VOe(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function s1(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function JOe(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:r===`middle`?n<.5?e.y:t.y:r===`after`?n<1?e.y:t.y:n>0?t.y:e.y}}function YOe(e,t,n,r){let i={x:e.cp2x,y:e.cp2y},a={x:t.cp1x,y:t.cp1y},o=s1(e,i,n),s=s1(i,a,n),c=s1(a,t,n);return s1(s1(o,s,n),s1(s,c,n),n)}var XOe=function(e,t){return{x(n){return e+e+t-n},setWidth(e){t=e},textAlign(e){return e===`center`?e:e===`right`?`left`:`right`},xPlus(e,t){return e-t},leftForLtr(e,t){return e-t}}},ZOe=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function c1(e,t,n){return e?XOe(t,n):ZOe()}function l1(e,t){let n,r;(t===`ltr`||t===`rtl`)&&(n=e.canvas.style,r=[n.getPropertyValue(`direction`),n.getPropertyPriority(`direction`)],n.setProperty(`direction`,t,`important`),e.prevTextDirection=r)}function u1(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty(`direction`,t[0],t[1]))}function d1(e){return e===`angle`?{between:GQ,compare:$De,normalize:WQ}:{between:qQ,compare:(e,t)=>e-t,normalize:e=>e}}function f1({start:e,end:t,count:n,loop:r,style:i}){return{start:e%n,end:t%n,loop:r&&(t-e+1)%n===0,style:i}}function QOe(e,t,n){let{property:r,start:i,end:a}=n,{between:o,normalize:s}=d1(r),c=t.length,{start:l,end:u,loop:d}=e,f,p;if(d){for(l+=c,u+=c,f=0,p=c;fc(i,y,_)&&s(i,y)!==0,x=()=>s(a,_)===0||c(a,y,_),S=()=>h||b(),C=()=>!h||x();for(let e=u,n=u;e<=d;++e)v=t[e%o],!v.skip&&(_=l(v[r]),_!==y&&(h=c(_,i,a),g===null&&S()&&(g=s(_,i)===0?e:n),g!==null&&C()&&(m.push(f1({start:g,end:e,loop:f,count:o,style:p})),g=null),n=e,y=_));return g!==null&&m.push(f1({start:g,end:d,loop:f,count:o,style:p})),m}function m1(e,t){let n=[],r=e.segments;for(let i=0;ii&&e[a%t].skip;)a--;return a%=t,{start:i,end:a}}function eke(e,t,n,r){let i=e.length,a=[],o=t,s=e[t],c;for(c=t+1;c<=n;++c){let n=e[c%i];n.skip||n.stop?s.skip||(r=!1,a.push({start:t%i,end:(c-1)%i,loop:r}),t=o=n.stop?c:null):(o=c,s.skip&&(t=c)),s=n}return o!==null&&a.push({start:t%i,end:o%i,loop:r}),a}function tke(e,t){let n=e.points,r=e.options.spanGaps,i=n.length;if(!i)return[];let a=!!e._loop,{start:o,end:s}=$Oe(n,i,a,r);return r===!0?h1(e,[{start:o,end:s,loop:a}],n,t):h1(e,eke(n,o,sr({chart:e,initial:t.initial,numSteps:a,currentStep:Math.min(n-t.start,a)}))}_refresh(){this._request||=(this._running=!0,$Q.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let t=0;this._charts.forEach((n,r)=>{if(!n.running||!n.items.length)return;let i=n.items,a=i.length-1,o=!1,s;for(;a>=0;--a)s=i[a],s._active?(s._total>n.duration&&(n.duration=s._total),s.tick(e),o=!0):(i[a]=i[i.length-1],i.pop());o&&(r.draw(),this._notify(r,n,e,`progress`)),i.length||(n.running=!1,this._notify(r,n,e,`complete`),n.initial=!1),t+=i.length}),this._lastDate=e,t===0&&(this._running=!1)}_getAnims(e){let t=this._charts,n=t.get(e);return n||(n={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(e,n)),n}listen(e,t,n){this._getAnims(e).listeners[t].push(n)}add(e,t){!t||!t.length||this._getAnims(e).items.push(...t)}has(e){return this._getAnims(e).items.length>0}start(e){let t=this._charts.get(e);t&&(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce((e,t)=>Math.max(e,t._duration),0),this._refresh())}running(e){if(!this._running)return!1;let t=this._charts.get(e);return!(!t||!t.running||!t.items.length)}stop(e){let t=this._charts.get(e);if(!t||!t.items.length)return;let n=t.items,r=n.length-1;for(;r>=0;--r)n[r].cancel();t.items=[],this._notify(e,t,Date.now(),`complete`)}remove(e){return this._charts.delete(e)}},b1=`transparent`,ake={boolean(e,t,n){return n>.5?t:e},color(e,t,n){let r=u$(e||b1),i=r.valid&&u$(t||b1);return i&&i.valid?i.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}},oke=class{constructor(e,t,n,r){let i=t[n];r=I$([e.to,r,i,e.from]);let a=I$([e.from,i,r]);this._active=!0,this._fn=e.fn||ake[e.type||typeof a],this._easing=c$[e.easing]||c$.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=t,this._prop=n,this._from=a,this._to=r,this._promises=void 0}active(){return this._active}update(e,t,n){if(this._active){this._notify(!1);let r=this._target[this._prop],i=n-this._start,a=this._duration-i;this._start=n,this._duration=Math.floor(Math.max(a,e.duration)),this._total+=i,this._loop=!!e.loop,this._to=I$([e.to,t,r,e.from]),this._from=I$([e.from,r,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){let t=e-this._start,n=this._duration,r=this._prop,i=this._from,a=this._loop,o=this._to,s;if(this._active=i!==o&&(a||t1?2-s:s,s=this._easing(Math.min(1,Math.max(0,s))),this._target[r]=this._fn(i,o,s)}wait(){let e=this._promises||=[];return new Promise((t,n)=>{e.push({res:t,rej:n})})}_notify(e){let t=e?`res`:`rej`,n=this._promises||[];for(let e=0;e{let i=e[r];if(!lQ(i))return;let a={};for(let e of t)a[e]=i[e];(cQ(i.properties)&&i.properties||[r]).forEach(e=>{(e===r||!n.has(e))&&n.set(e,a)})})}_animateOptions(e,t){let n=t.options,r=cke(e,n);if(!r)return[];let i=this._createAnimations(r,n);return n.$shared&&ske(e.options.$animations,n).then(()=>{e.options=n},()=>{}),i}_createAnimations(e,t){let n=this._properties,r=[],i=e.$animations||={},a=Object.keys(t),o=Date.now(),s;for(s=a.length-1;s>=0;--s){let c=a[s];if(c.charAt(0)===`$`)continue;if(c===`options`){r.push(...this._animateOptions(e,t));continue}let l=t[c],u=i[c],d=n.get(c);if(u)if(d&&u.active()){u.update(d,l,o);continue}else u.cancel();if(!d||!d.duration){e[c]=l;continue}i[c]=u=new oke(d,e,c,l),r.push(u)}return r}update(e,t){if(this._properties.size===0){Object.assign(e,t);return}let n=this._createAnimations(e,t);if(n.length)return y1.add(this._chart,n),!0}};function ske(e,t){let n=[],r=Object.keys(t);for(let t=0;t0||!n&&t<0)return i.index}return null}function D1(e,t){let{chart:n,_cachedMeta:r}=e,i=n._stacks||={},{iScale:a,vScale:o,index:s}=r,c=a.axis,l=o.axis,u=fke(a,o,r),d=t.length,f;for(let e=0;en[e].axis===t).shift()}function hke(e,t){return L$(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:`default`,type:`dataset`})}function gke(e,t,n){return L$(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:`default`,type:`data`})}function k1(e,t){let n=e.controller.index,r=e.vScale&&e.vScale.axis;if(r){t||=e._parsed;for(let e of t){let t=e._stacks;if(!t||t[r]===void 0||t[r][n]===void 0)return;delete t[r][n],t[r]._visualValues!==void 0&&t[r]._visualValues[n]!==void 0&&delete t[r]._visualValues[n]}}}var A1=e=>e===`reset`||e===`none`,j1=(e,t)=>t?e:Object.assign({},e),_ke=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:C1(n,!0),values:null},M1=class{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,t){this.chart=e,this._ctx=e.ctx,this.index=t,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){let e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=T1(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled(`filler`)&&console.warn(`Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options`)}updateIndex(e){this.index!==e&&k1(this._cachedMeta),this.index=e}linkScales(){let e=this.chart,t=this._cachedMeta,n=this.getDataset(),r=(e,t,n,r)=>e===`x`?t:e===`r`?r:n,i=t.xAxisID=fQ(n.xAxisID,O1(e,`x`)),a=t.yAxisID=fQ(n.yAxisID,O1(e,`y`)),o=t.rAxisID=fQ(n.rAxisID,O1(e,`r`)),s=t.indexAxis,c=t.iAxisID=r(s,i,a,o),l=t.vAxisID=r(s,a,i,o);t.xScale=this.getScaleForId(i),t.yScale=this.getScaleForId(a),t.rScale=this.getScaleForId(o),t.iScale=this.getScaleForId(c),t.vScale=this.getScaleForId(l)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){let t=this._cachedMeta;return e===t.iScale?t.vScale:t.iScale}reset(){this._update(`reset`)}_destroy(){let e=this._cachedMeta;this._data&&ZQ(this._data,this),e._stacked&&k1(e)}_dataCheck(){let e=this.getDataset(),t=e.data||=[],n=this._data;if(lQ(t)){let e=this._cachedMeta;this._data=dke(t,e)}else if(n!==t){if(n){ZQ(n,this);let e=this._cachedMeta;k1(e),e._parsed=[]}t&&Object.isExtensible(t)&&rOe(t,this),this._syncList=[],this._data=t}}addElements(){let e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){let t=this._cachedMeta,n=this.getDataset(),r=!1;this._dataCheck();let i=t._stacked;t._stacked=T1(t.vScale,t),t.stack!==n.stack&&(r=!0,k1(t),t.stack=n.stack),this._resyncElements(e),(r||i!==t._stacked)&&(D1(this,t._parsed),t._stacked=T1(t.vScale,t))}configure(){let e=this.chart.config,t=e.datasetScopeKeys(this._type),n=e.getOptionScopes(this.getDataset(),t,!0);this.options=e.createResolver(n,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,t){let{_cachedMeta:n,_data:r}=this,{iScale:i,_stacked:a}=n,o=i.axis,s=e===0&&t===r.length||n._sorted,c=e>0&&n._parsed[e-1],l,u,d;if(this._parsing===!1)n._parsed=r,n._sorted=!0,d=r;else{d=cQ(r[e])?this.parseArrayData(n,r,e,t):lQ(r[e])?this.parseObjectData(n,r,e,t):this.parsePrimitiveData(n,r,e,t);let i=()=>u[o]===null||c&&u[o]t||u=0;--d)if(!p()){this.updateRangeFromParsed(c,e,f,s);break}}return c}getAllParsedValues(e){let t=this._cachedMeta._parsed,n=[],r,i,a;for(r=0,i=t.length;r=0&&ethis.getContext(n,r,t),u);return p.$shared&&(p.$shared=s,i[a]=Object.freeze(j1(p,s))),p}_resolveAnimations(e,t,n){let r=this.chart,i=this._cachedDataOpts,a=`animation-${t}`,o=i[a];if(o)return o;let s;if(r.options.animation!==!1){let r=this.chart.config,i=r.datasetAnimationScopeKeys(this._type,t),a=r.getOptionScopes(this.getDataset(),i);s=r.createResolver(a,this.getContext(e,n,t))}let c=new x1(r,s&&s.animations);return s&&s._cacheable&&(i[a]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||=Object.assign({},e)}includeOptions(e,t){return!t||A1(e)||this.chart._animationsDisabled}_getSharedOptions(e,t){let n=this.resolveDataElementOptions(e,t),r=this._sharedOptions,i=this.getSharedOptions(n),a=this.includeOptions(t,i)||i!==r;return this.updateSharedOptions(i,t,n),{sharedOptions:i,includeOptions:a}}updateElement(e,t,n,r){A1(r)?Object.assign(e,n):this._resolveAnimations(t,r).update(e,n)}updateSharedOptions(e,t,n){e&&!A1(t)&&this._resolveAnimations(void 0,t).update(e,n)}_setStyle(e,t,n,r){e.active=r;let i=this.getStyle(t,r);this._resolveAnimations(t,n,r).update(e,{options:!r&&this.getSharedOptions(i)||i})}removeHoverStyle(e,t,n){this._setStyle(e,n,`active`,!1)}setHoverStyle(e,t,n){this._setStyle(e,n,`active`,!0)}_removeDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,`active`,!1)}_setDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,`active`,!0)}_resyncElements(e){let t=this._data,n=this._cachedMeta.data;for(let[e,t,n]of this._syncList)this[e](t,n);this._syncList=[];let r=n.length,i=t.length,a=Math.min(i,r);a&&this.parse(0,a),i>r?this._insertElements(r,i-r,e):i{for(e.length+=t,o=e.length-1;o>=a;o--)e[o]=e[o-t]};for(s(i),o=e;oe-t))}return e._cache.$bar}function yke(e){let t=e.iScale,n=vke(t,e.type),r=t._length,i,a,o,s,c=()=>{o===32767||o===-32768||(wQ(s)&&(r=Math.min(r,Math.abs(o-s)||r)),s=o)};for(i=0,a=n.length;i0?i[e-1]:null,s=eMath.abs(s)&&(c=s,l=o),t[n.axis]=l,t._custom={barStart:c,barEnd:l,start:i,end:a,min:o,max:s}}function N1(e,t,n,r){return cQ(e)?Ske(e,t,n,r):t[n.axis]=n.parse(e,r),t}function P1(e,t,n,r){let i=e.iScale,a=e.vScale,o=i.getLabels(),s=i===a,c=[],l,u,d,f;for(l=n,u=n+r;l=n?1:-1):PQ(e)}function wke(e){let t,n,r,i,a;return e.horizontal?(t=e.base>e.x,n=`left`,r=`right`):(t=e.basee.controller.options.grouped),i=n.options.stacked,a=[],o=this._cachedMeta.controller.getParsed(t),s=o&&o[n.axis],c=e=>{let t=e._parsed.find(e=>e[n.axis]===s),r=t&&t[e.vScale.axis];if(sQ(r)||isNaN(r))return!0};for(let n of r)if(!(t!==void 0&&c(n))&&((i===!1||a.indexOf(n.stack)===-1||i===void 0&&n.stack===void 0)&&a.push(n.stack),n.index===e))break;return a.length||a.push(void 0),a}_getStackCount(e){return this._getStacks(void 0,e).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){let e=this.chart.scales,t=this.chart.options.indexAxis;return Object.keys(e).filter(n=>e[n].axis===t).shift()}_getAxis(){let e={},t=this.getFirstScaleIdForIndexAxis();for(let n of this.chart.data.datasets)e[fQ(this.chart.options.indexAxis===`x`?n.xAxisID:n.yAxisID,t)]=!0;return Object.keys(e)}_getStackIndex(e,t,n){let r=this._getStacks(e,n),i=t===void 0?-1:r.indexOf(t);return i===-1?r.length-1:i}_getRuler(){let e=this.options,t=this._cachedMeta,n=t.iScale,r=[],i,a;for(i=0,a=t.data.length;i=0;--n)t=Math.max(t,e[n].size(this.resolveDataElementOptions(n))/2);return t>0&&t}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart.data.labels||[],{xScale:r,yScale:i}=t,a=this.getParsed(e),o=r.getLabelForValue(a.x),s=i.getLabelForValue(a.y),c=a._custom;return{label:n[e]||``,value:`(`+o+`, `+s+(c?`, `+c:``)+`)`}}update(e){let t=this._cachedMeta.data;this.updateElements(t,0,t.length,e)}updateElements(e,t,n,r){let i=r===`reset`,{iScale:a,vScale:o}=this._cachedMeta,{sharedOptions:s,includeOptions:c}=this._getSharedOptions(t,r),l=a.axis,u=o.axis;for(let d=t;dGQ(e,s,c,!0)?1:Math.max(t,t*n,r,r*n),m=(e,t,r)=>GQ(e,s,c,!0)?-1:Math.min(t,t*n,r,r*n),h=p(0,l,d),g=p(AQ,u,f),_=m(DQ,l,d),v=m(DQ+AQ,u,f);r=(h-_)/2,i=(g-v)/2,a=-(h+_)/2,o=-(g+v)/2}return{ratioX:r,ratioY:i,offsetX:a,offsetY:o}}var R1=class extends M1{static id=`doughnut`;static defaults={datasetElementType:!1,dataElementType:`arc`,animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:`number`,properties:[`circumference`,`endAngle`,`innerRadius`,`outerRadius`,`startAngle`,`x`,`y`,`offset`,`borderWidth`,`spacing`]}},cutout:`50%`,rotation:0,circumference:360,radius:`100%`,spacing:0,indexAxis:`r`};static descriptors={_scriptable:e=>e!==`spacing`,_indexable:e=>e!==`spacing`&&!e.startsWith(`borderDash`)&&!e.startsWith(`hoverBorderDash`)};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){let t=e.data,{labels:{pointStyle:n,textAlign:r,color:i,useBorderRadius:a,borderRadius:o}}=e.legend.options;return t.labels.length&&t.datasets.length?t.labels.map((t,s)=>{let c=e.getDatasetMeta(0).controller.getStyle(s);return{text:t,fillStyle:c.backgroundColor,fontColor:i,hidden:!e.getDataVisibility(s),lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:c.borderWidth,strokeStyle:c.borderColor,textAlign:r,pointStyle:n,borderRadius:a&&(o||c.borderRadius),index:s}}):[]}},onClick(e,t,n){n.chart.toggleDataVisibility(t.index),n.chart.update()}}}};constructor(e,t){super(e,t),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,t){let n=this.getDataset().data,r=this._cachedMeta;if(this._parsing===!1)r._parsed=n;else{let i=e=>+n[e];if(lQ(n[e])){let{key:e=`value`}=this._parsing;i=t=>+SQ(n[t],e)}let a,o;for(a=e,o=e+t;a0&&!isNaN(e)?Math.abs(e)/t*OQ:0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=p$(t._parsed[e],n.options.locale);return{label:r[e]||``,value:i}}getMaxBorderWidth(e){let t=0,n=this.chart,r,i,a,o,s;if(!e){for(r=0,i=n.data.datasets.length;r0&&this.getParsed(t-1);for(let n=0;n=_){v.skip=!0;continue}let b=this.getParsed(n),x=sQ(b[f]),S=v[d]=a.getPixelForValue(b[d],n),C=v[f]=i||x?o.getBasePixel():o.getPixelForValue(s?this.applyStack(o,b,s):b[f],n);v.skip=isNaN(S)||isNaN(C)||x,v.stop=n>0&&Math.abs(b[d]-y[d])>h,m&&(v.parsed=b,v.raw=c.data[n]),u&&(v.options=l||this.resolveDataElementOptions(n,p.active?`active`:r)),g||this.updateElement(p,n,v,r),y=b}}getMaxOverflow(){let e=this._cachedMeta,t=e.dataset,n=t.options&&t.options.borderWidth||0,r=e.data||[];if(!r.length)return n;let i=r[0].size(this.resolveDataElementOptions(0)),a=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(n,i,a)/2}draw(){let e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}},z1=class extends M1{static id=`polarArea`;static defaults={dataElementType:`arc`,animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:`number`,properties:[`x`,`y`,`startAngle`,`endAngle`,`innerRadius`,`outerRadius`]}},indexAxis:`r`,startAngle:0};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){let t=e.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:n,color:r}}=e.legend.options;return t.labels.map((t,i)=>{let a=e.getDatasetMeta(0).controller.getStyle(i);return{text:t,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,fontColor:r,lineWidth:a.borderWidth,pointStyle:n,hidden:!e.getDataVisibility(i),index:i}})}return[]}},onClick(e,t,n){n.chart.toggleDataVisibility(t.index),n.chart.update()}}},scales:{r:{type:`radialLinear`,angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(e,t){super(e,t),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=p$(t._parsed[e].r,n.options.locale);return{label:r[e]||``,value:i}}parseObjectData(e,t,n,r){return J$.bind(this)(e,t,n,r)}update(e){let t=this._cachedMeta.data;this._updateRadius(),this.updateElements(t,0,t.length,e)}getMinMax(){let e=this._cachedMeta,t={min:1/0,max:-1/0};return e.data.forEach((e,n)=>{let r=this.getParsed(n).r;!isNaN(r)&&this.chart.getDataVisibility(n)&&(rt.max&&(t.max=r))}),t}_updateRadius(){let e=this.chart,t=e.chartArea,n=e.options,r=Math.min(t.right-t.left,t.bottom-t.top),i=Math.max(r/2,0),a=(i-Math.max(n.cutoutPercentage?i/100*n.cutoutPercentage:1,0))/e.getVisibleDatasetCount();this.outerRadius=i-a*this.index,this.innerRadius=this.outerRadius-a}updateElements(e,t,n,r){let i=r===`reset`,a=this.chart,o=a.options.animation,s=this._cachedMeta.rScale,c=s.xCenter,l=s.yCenter,u=s.getIndexAngle(0)-.5*DQ,d=u,f,p=360/this.countVisibleElements();for(f=0;f{!isNaN(this.getParsed(n).r)&&this.chart.getDataVisibility(n)&&t++}),t}_computeAngle(e,t,n){return this.chart.getDataVisibility(e)?zQ(this.resolveDataElementOptions(e,t).angle||n):0}},Mke=Object.freeze({__proto__:null,BarController:Oke,BubbleController:kke,DoughnutController:R1,LineController:jke,PieController:class extends R1{static id=`pie`;static defaults={cutout:0,rotation:0,circumference:360,radius:`100%`}},PolarAreaController:z1,RadarController:class extends M1{static id=`radar`;static defaults={datasetElementType:`line`,dataElementType:`point`,indexAxis:`r`,showLine:!0,elements:{line:{fill:`start`}}};static overrides={aspectRatio:1,scales:{r:{type:`radialLinear`}}};getLabelAndValue(e){let t=this._cachedMeta.vScale,n=this.getParsed(e);return{label:t.getLabels()[e],value:``+t.getLabelForValue(n[t.axis])}}parseObjectData(e,t,n,r){return J$.bind(this)(e,t,n,r)}update(e){let t=this._cachedMeta,n=t.dataset,r=t.data||[],i=t.iScale.getLabels();if(n.points=r,e!==`resize`){let t=this.resolveDatasetElementOptions(e);this.options.showLine||(t.borderWidth=0);let a={_loop:!0,_fullLoop:i.length===r.length,options:t};this.updateElement(n,void 0,a,e)}this.updateElements(r,0,r.length,e)}updateElements(e,t,n,r){let i=this._cachedMeta.rScale,a=r===`reset`;for(let o=t;o0&&this.getParsed(t-1);for(let l=t;l0&&Math.abs(n[f]-v[f])>g,h&&(m.parsed=n,m.raw=c.data[l]),d&&(m.options=u||this.resolveDataElementOptions(l,t.active?`active`:r)),_||this.updateElement(t,l,m,r),v=n}this.updateSharedOptions(u,r,l)}getMaxOverflow(){let e=this._cachedMeta,t=e.data||[];if(!this.options.showLine){let e=0;for(let n=t.length-1;n>=0;--n)e=Math.max(e,t[n].size(this.resolveDataElementOptions(n))/2);return e>0&&e}let n=e.dataset,r=n.options&&n.options.borderWidth||0;if(!t.length)return r;let i=t[0].size(this.resolveDataElementOptions(0)),a=t[t.length-1].size(this.resolveDataElementOptions(t.length-1));return Math.max(r,i,a)/2}}});function B1(){throw Error(`This method is not implemented: Check that a complete date adapter is provided.`)}var Nke={_date:class e{static override(t){Object.assign(e.prototype,t)}options;constructor(e){this.options=e||{}}init(){}formats(){return B1()}parse(){return B1()}format(){return B1()}add(){return B1()}diff(){return B1()}startOf(){return B1()}endOf(){return B1()}}};function Pke(e,t,n,r){let{controller:i,data:a,_sorted:o}=e,s=i._cachedMeta.iScale,c=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null;if(s&&t===s.axis&&t!==`r`&&o&&a.length){let o=s._reversePixels?tOe:YQ;if(!r){let r=o(a,t,n);if(c){let{vScale:t}=i._cachedMeta,{_parsed:n}=e,a=n.slice(0,r.lo+1).reverse().findIndex(e=>!sQ(e[t.axis]));r.lo-=Math.max(0,a);let o=n.slice(r.hi).findIndex(e=>!sQ(e[t.axis]));r.hi+=Math.max(0,o)}return r}else if(i._sharedOptions){let e=a[0],r=typeof e.getRange==`function`&&e.getRange(t);if(r){let e=o(a,t,n-r),i=o(a,t,n+r);return{lo:e.lo,hi:i.hi}}}}return{lo:0,hi:a.length-1}}function V1(e,t,n,r,i){let a=e.getSortedVisibleDatasetMetas(),o=n[t];for(let e=0,n=a.length;e{e[o]&&e[o](t[n],i)&&(a.push({element:e,datasetIndex:r,index:c}),s||=e.inRange(t.x,t.y,i))}),r&&!s?[]:a}var Rke={evaluateInteractionItems:V1,modes:{index(e,t,n,r){let i=r1(t,e),a=n.axis||`x`,o=n.includeInvisible||!1,s=n.intersect?H1(e,i,a,r,o):U1(e,i,a,!1,r,o),c=[];return s.length?(e.getSortedVisibleDatasetMetas().forEach(e=>{let t=s[0].index,n=e.data[t];n&&!n.skip&&c.push({element:n,datasetIndex:e.index,index:t})}),c):[]},dataset(e,t,n,r){let i=r1(t,e),a=n.axis||`xy`,o=n.includeInvisible||!1,s=n.intersect?H1(e,i,a,r,o):U1(e,i,a,!1,r,o);if(s.length>0){let t=s[0].datasetIndex,n=e.getDatasetMeta(t).data;s=[];for(let e=0;ee.pos===t)}function q1(e,t){return e.filter(e=>G1.indexOf(e.pos)===-1&&e.box.axis===t)}function J1(e,t){return e.sort((e,n)=>{let r=t?n:e,i=t?e:n;return r.weight===i.weight?r.index-i.index:r.weight-i.weight})}function zke(e){let t=[],n,r,i,a,o,s;for(n=0,r=(e||[]).length;ne.box.fullSize),!0),r=J1(K1(t,`left`),!0),i=J1(K1(t,`right`)),a=J1(K1(t,`top`),!0),o=J1(K1(t,`bottom`)),s=q1(t,`x`),c=q1(t,`y`);return{fullSize:n,leftAndTop:r.concat(a),rightAndBottom:i.concat(c).concat(o).concat(s),chartArea:K1(t,`chartArea`),vertical:r.concat(i).concat(c),horizontal:a.concat(o).concat(s)}}function Y1(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function X1(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function Uke(e,t,n,r){let{pos:i,box:a}=n,o=e.maxPadding;if(!lQ(i)){n.size&&(e[i]-=n.size);let t=r[n.stack]||{size:0,count:1};t.size=Math.max(t.size,n.horizontal?a.height:a.width),n.size=t.size/t.count,e[i]+=n.size}a.getPadding&&X1(o,a.getPadding());let s=Math.max(0,t.outerWidth-Y1(o,e,`left`,`right`)),c=Math.max(0,t.outerHeight-Y1(o,e,`top`,`bottom`)),l=s!==e.w,u=c!==e.h;return e.w=s,e.h=c,n.horizontal?{same:l,other:u}:{same:u,other:l}}function Wke(e){let t=e.maxPadding;function n(n){let r=Math.max(t[n]-e[n],0);return e[n]+=r,r}e.y+=n(`top`),e.x+=n(`left`),n(`right`),n(`bottom`)}function Gke(e,t){let n=t.maxPadding;function r(e){let r={left:0,top:0,right:0,bottom:0};return e.forEach(e=>{r[e]=Math.max(t[e],n[e])}),r}return r(e?[`left`,`right`]:[`top`,`bottom`])}function Z1(e,t,n,r){let i=[],a,o,s,c,l,u;for(a=0,o=e.length,l=0;a{typeof e.beforeLayout==`function`&&e.beforeLayout()});let u=c.reduce((e,t)=>t.box.options&&t.box.options.display===!1?e:e+1,0)||1,d=Object.freeze({outerWidth:t,outerHeight:n,padding:i,availableWidth:a,availableHeight:o,vBoxMaxWidth:a/2/u,hBoxMaxHeight:o/2}),f=Object.assign({},i);X1(f,P$(r));let p=Object.assign({maxPadding:f,w:a,h:o,x:i.left,y:i.top},i),m=Vke(c.concat(l),d);Z1(s.fullSize,p,d,m),Z1(c,p,d,m),Z1(l,p,d,m)&&Z1(c,p,d,m),Wke(p),$1(s.leftAndTop,p,d,m),p.x+=p.w,p.y+=p.h,$1(s.rightAndBottom,p,d,m),e.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},hQ(s.chartArea,t=>{let n=t.box;Object.assign(n,e.chartArea),n.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}},t0=class{acquireContext(e,t){}releaseContext(e){return!1}addEventListener(e,t,n){}removeEventListener(e,t,n){}getDevicePixelRatio(){return 1}getMaximumSize(e,t,n,r){return t=Math.max(0,t||e.width),n||=e.height,{width:t,height:Math.max(0,r?Math.floor(t/r):n)}}isAttached(e){return!0}updateConfig(e){}},Kke=class extends t0{acquireContext(e){return e&&e.getContext&&e.getContext(`2d`)||null}updateConfig(e){e.options.animation=!1}},n0=`$chartjs`,qke={touchstart:`mousedown`,touchmove:`mousemove`,touchend:`mouseup`,pointerenter:`mouseenter`,pointerdown:`mousedown`,pointermove:`mousemove`,pointerup:`mouseup`,pointerleave:`mouseout`,pointerout:`mouseout`},r0=e=>e===null||e===``;function Jke(e,t){let n=e.style,r=e.getAttribute(`height`),i=e.getAttribute(`width`);if(e[n0]={initial:{height:r,width:i,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||`block`,n.boxSizing=n.boxSizing||`border-box`,r0(i)){let t=o1(e,`width`);t!==void 0&&(e.width=t)}if(r0(r))if(e.style.height===``)e.height=e.width/(t||2);else{let t=o1(e,`height`);t!==void 0&&(e.height=t)}return e}var i0=qOe?{passive:!0}:!1;function Yke(e,t,n){e&&e.addEventListener(t,n,i0)}function Xke(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,i0)}function Zke(e,t){let n=qke[e.type]||e.type,{x:r,y:i}=r1(e,t);return{type:n,chart:t,native:e,x:r===void 0?null:r,y:i===void 0?null:i}}function a0(e,t){for(let n of e)if(n===t||n.contains(t))return!0}function Qke(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=a0(n.addedNodes,r),t&&=!a0(n.removedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}function $ke(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=a0(n.removedNodes,r),t&&=!a0(n.addedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}var o0=new Map,s0=0;function c0(){let e=window.devicePixelRatio;e!==s0&&(s0=e,o0.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function eAe(e,t){o0.size||window.addEventListener(`resize`,c0),o0.set(e,t)}function tAe(e){o0.delete(e),o0.size||window.removeEventListener(`resize`,c0)}function nAe(e,t,n){let r=e.canvas,i=r&&$$(r);if(!i)return;let a=e$((e,t)=>{let r=i.clientWidth;n(e,t),r{let t=e[0],n=t.contentRect.width,r=t.contentRect.height;n===0&&r===0||a(n,r)});return o.observe(i),eAe(e,a),o}function l0(e,t,n){n&&n.disconnect(),t===`resize`&&tAe(e)}function rAe(e,t,n){let r=e.canvas,i=e$(t=>{e.ctx!==null&&n(Zke(t,e))},e);return Yke(r,t,i),i}var iAe=class extends t0{acquireContext(e,t){let n=e&&e.getContext&&e.getContext(`2d`);return n&&n.canvas===e?(Jke(e,t),n):null}releaseContext(e){let t=e.canvas;if(!t[n0])return!1;let n=t[n0].initial;[`height`,`width`].forEach(e=>{let r=n[e];sQ(r)?t.removeAttribute(e):t.setAttribute(e,r)});let r=n.style||{};return Object.keys(r).forEach(e=>{t.style[e]=r[e]}),t.width=t.width,delete t[n0],!0}addEventListener(e,t,n){this.removeEventListener(e,t);let r=e.$proxies||={};r[t]=({attach:Qke,detach:$ke,resize:nAe}[t]||rAe)(e,t,n)}removeEventListener(e,t){let n=e.$proxies||={},r=n[t];r&&(({attach:l0,detach:l0,resize:l0}[t]||Xke)(e,t,r),n[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,n,r){return KOe(e,t,n,r)}isAttached(e){let t=e&&$$(e);return!!(t&&t.isConnected)}};function aAe(e){return!Q$()||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas?Kke:iAe}var u0=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(e){let{x:t,y:n}=this.getProps([`x`,`y`],e);return{x:t,y:n}}hasValue(){return LQ(this.x)&&LQ(this.y)}getProps(e,t){let n=this.$animations;if(!t||!n)return this;let r={};return e.forEach(e=>{r[e]=n[e]&&n[e].active()?n[e]._to:this[e]}),r}};function oAe(e,t){let n=e.options.ticks,r=sAe(e),i=Math.min(n.maxTicksLimit||r,r),a=n.major.enabled?lAe(t):[],o=a.length,s=a[0],c=a[o-1],l=[];if(o>i)return uAe(t,l,a,o/i),l;let u=cAe(a,t,i);if(o>0){let e,n,r=o>1?Math.round((c-s)/(o-1)):null;for(d0(t,l,u,sQ(r)?0:s-r,s),e=0,n=o-1;ei)return t}return Math.max(i,1)}function lAe(e){let t=[],n,r;for(n=0,r=e.length;ne===`left`?`right`:e===`right`?`left`:e,f0=(e,t,n)=>t===`top`||t===`left`?e[t]+n:e[t]-n,p0=(e,t)=>Math.min(t||e,e);function m0(e,t){let n=[],r=e.length/t,i=e.length,a=0;for(;ao+s)))return c}function mAe(e,t){hQ(e,e=>{let n=e.gc,r=n.length/2,i;if(r>t){for(i=0;in?n:t,n=r&&t>n?t:n,{min:dQ(t,dQ(n,t)),max:dQ(n,dQ(t,n))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||=this._computeLabelItems(e)}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){mQ(this.options.beforeUpdate,[this])}update(e,t,n){let{beginAtZero:r,grace:i,ticks:a}=this.options,o=a.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=t,this._margins=n=Object.assign({left:0,right:0,top:0,bottom:0},n),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+n.left+n.right:this.height+n.top+n.bottom,this._dataLimitsCached||=(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=wOe(this,i,r),!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let s=o=i||n<=1||!this.isHorizontal()){this.labelRotation=r;return}let l=this._getLabelSizes(),u=l.widest.width,d=l.highest.height,f=KQ(this.chart.width-u,0,this.maxWidth);o=e.offset?this.maxWidth/n:f/(n-1),u+6>o&&(o=f/(n-(e.offset?.5:1)),s=this.maxHeight-h0(e.grid)-t.padding-g0(e.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),a=BQ(Math.min(Math.asin(KQ((l.highest.height+6)/o,-1,1)),Math.asin(KQ(s/c,-1,1))-Math.asin(KQ(d/c,-1,1)))),a=Math.max(r,Math.min(i,a))),this.labelRotation=a}afterCalculateLabelRotation(){mQ(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){mQ(this.options.beforeFit,[this])}fit(){let e={width:0,height:0},{chart:t,options:{ticks:n,title:r,grid:i}}=this,a=this._isVisible(),o=this.isHorizontal();if(a){let a=g0(r,t.options.font);if(o?(e.width=this.maxWidth,e.height=h0(i)+a):(e.height=this.maxHeight,e.width=h0(i)+a),n.display&&this.ticks.length){let{first:t,last:r,widest:i,highest:a}=this._getLabelSizes(),s=n.padding*2,c=zQ(this.labelRotation),l=Math.cos(c),u=Math.sin(c);if(o){let t=n.mirror?0:u*i.width+l*a.height;e.height=Math.min(this.maxHeight,e.height+t+s)}else{let t=n.mirror?0:l*i.width+u*a.height;e.width=Math.min(this.maxWidth,e.width+t+s)}this._calculatePadding(t,r,u,l)}}this._handleMargins(),o?(this.width=this._length=t.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=t.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,t,n,r){let{ticks:{align:i,padding:a},position:o}=this.options,s=this.labelRotation!==0,c=o!==`top`&&this.axis===`x`;if(this.isHorizontal()){let o=this.getPixelForTick(0)-this.left,l=this.right-this.getPixelForTick(this.ticks.length-1),u=0,d=0;s?c?(u=r*e.width,d=n*t.height):(u=n*e.height,d=r*t.width):i===`start`?d=t.width:i===`end`?u=e.width:i!==`inner`&&(u=e.width/2,d=t.width/2),this.paddingLeft=Math.max((u-o+a)*this.width/(this.width-o),0),this.paddingRight=Math.max((d-l+a)*this.width/(this.width-l),0)}else{let n=t.height/2,r=e.height/2;i===`start`?(n=0,r=e.height):i===`end`&&(n=t.height,r=0),this.paddingTop=n+a,this.paddingBottom=r+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){mQ(this.options.afterFit,[this])}isHorizontal(){let{axis:e,position:t}=this.options;return t===`top`||t===`bottom`||e===`x`}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let t,n;for(t=0,n=e.length;t({width:a[e]||0,height:o[e]||0});return{first:C(0),last:C(t-1),widest:C(x),highest:C(S),widths:a,heights:o}}getLabelForValue(e){return e}getPixelForValue(e,t){return NaN}getValueForPixel(e){}getPixelForTick(e){let t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);let t=this._startPixel+e*this._length;return eOe(this._alignToPixels?S$(this.chart,t,0):t)}getDecimalForPixel(e){let t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:e,max:t}=this;return e<0&&t<0?t:e>0&&t>0?e:0}getContext(e){let t=this.ticks||[];if(e>=0&&eo*r?o/n:s/r:s*r0:!!e}_computeGridLineItems(e){let t=this.axis,n=this.chart,r=this.options,{grid:i,position:a,border:o}=r,s=i.offset,c=this.isHorizontal(),l=this.ticks.length+ +!!s,u=h0(i),d=[],f=o.setContext(this.getContext()),p=f.display?f.width:0,m=p/2,h=function(e){return S$(n,e,p)},g,_,v,y,b,x,S,C,w,T,ee,E;if(a===`top`)g=h(this.bottom),x=this.bottom-u,C=g-m,T=h(e.top)+m,E=e.bottom;else if(a===`bottom`)g=h(this.top),T=e.top,E=h(e.bottom)-m,x=g+m,C=this.top+u;else if(a===`left`)g=h(this.right),b=this.right-u,S=g-m,w=h(e.left)+m,ee=e.right;else if(a===`right`)g=h(this.left),w=e.left,ee=h(e.right)-m,b=g+m,S=this.left+u;else if(t===`x`){if(a===`center`)g=h((e.top+e.bottom)/2+.5);else if(lQ(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}T=e.top,E=e.bottom,x=g+m,C=x+u}else if(t===`y`){if(a===`center`)g=h((e.left+e.right)/2);else if(lQ(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}b=g-m,S=b-u,w=e.left,ee=e.right}let te=fQ(r.ticks.maxTicksLimit,l),ne=Math.max(1,Math.ceil(l/te));for(_=0;_0&&(a-=r/2);break}f={left:a,top:i,width:r+t.width,height:n+t.height,color:e.backdropColor}}h.push({label:y,font:w,textOffset:E,options:{rotation:m,color:n,strokeColor:s,strokeWidth:l,textAlign:d,textBaseline:te,translation:[b,x],backdrop:f}})}return h}_getXAxisLabelAlignment(){let{position:e,ticks:t}=this.options;if(-zQ(this.labelRotation))return e===`top`?`left`:`right`;let n=`center`;return t.align===`start`?n=`left`:t.align===`end`?n=`right`:t.align===`inner`&&(n=`inner`),n}_getYAxisLabelAlignment(e){let{position:t,ticks:{crossAlign:n,mirror:r,padding:i}}=this.options,a=this._getLabelSizes(),o=e+i,s=a.widest.width,c,l;return t===`left`?r?(l=this.right+i,n===`near`?c=`left`:n===`center`?(c=`center`,l+=s/2):(c=`right`,l+=s)):(l=this.right-o,n===`near`?c=`right`:n===`center`?(c=`center`,l-=s/2):(c=`left`,l=this.left)):t===`right`?r?(l=this.left+i,n===`near`?c=`right`:n===`center`?(c=`center`,l-=s/2):(c=`left`,l-=s)):(l=this.left+o,n===`near`?c=`left`:n===`center`?(c=`center`,l+=s/2):(c=`right`,l=this.right)):c=`right`,{textAlign:c,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;let e=this.chart,t=this.options.position;if(t===`left`||t===`right`)return{top:0,left:this.left,bottom:e.height,right:this.right};if(t===`top`||t===`bottom`)return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){let{ctx:e,options:{backgroundColor:t},left:n,top:r,width:i,height:a}=this;t&&(e.save(),e.fillStyle=t,e.fillRect(n,r,i,a),e.restore())}getLineWidthForValue(e){let t=this.options.grid;if(!this._isVisible()||!t.display)return 0;let n=this.ticks.findIndex(t=>t.value===e);return n>=0?t.setContext(this.getContext(n)).lineWidth:0}drawGrid(e){let t=this.options.grid,n=this.ctx,r=this._gridLineItems||=this._computeGridLineItems(e),i,a,o=(e,t,r)=>{!r.width||!r.color||(n.save(),n.lineWidth=r.width,n.strokeStyle=r.color,n.setLineDash(r.borderDash||[]),n.lineDashOffset=r.borderDashOffset,n.beginPath(),n.moveTo(e.x,e.y),n.lineTo(t.x,t.y),n.stroke(),n.restore())};if(t.display)for(i=0,a=r.length;i{this.draw(e)}}]:[{z:r,draw:e=>{this.drawBackground(),this.drawGrid(e),this.drawTitle()}},{z:i,draw:()=>{this.drawBorder()}},{z:n,draw:e=>{this.drawLabels(e)}}]}getMatchingVisibleMetas(e){let t=this.chart.getSortedVisibleDatasetMetas(),n=this.axis+`AxisID`,r=[],i,a;for(i=0,a=t.length;i{let r=n.split(`.`),i=r.pop(),a=[e].concat(r).join(`.`),o=t[n].split(`.`),s=o.pop(),c=o.join(`.`);b$.route(a,i,c,s)})}function xAe(e){return`id`in e&&`defaults`in e}var y0=new class{constructor(){this.controllers=new v0(M1,`datasets`,!0),this.elements=new v0(u0,`elements`),this.plugins=new v0(Object,`plugins`),this.scales=new v0(_0,`scales`),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each(`register`,e)}remove(...e){this._each(`unregister`,e)}addControllers(...e){this._each(`register`,e,this.controllers)}addElements(...e){this._each(`register`,e,this.elements)}addPlugins(...e){this._each(`register`,e,this.plugins)}addScales(...e){this._each(`register`,e,this.scales)}getController(e){return this._get(e,this.controllers,`controller`)}getElement(e){return this._get(e,this.elements,`element`)}getPlugin(e){return this._get(e,this.plugins,`plugin`)}getScale(e){return this._get(e,this.scales,`scale`)}removeControllers(...e){this._each(`unregister`,e,this.controllers)}removeElements(...e){this._each(`unregister`,e,this.elements)}removePlugins(...e){this._each(`unregister`,e,this.plugins)}removeScales(...e){this._each(`unregister`,e,this.scales)}_each(e,t,n){[...t].forEach(t=>{let r=n||this._getRegistryForType(t);n||r.isForType(t)||r===this.plugins&&t.id?this._exec(e,r,t):hQ(t,t=>{let r=n||this._getRegistryForType(t);this._exec(e,r,t)})})}_exec(e,t,n){let r=CQ(e);mQ(n[`before`+r],[],n),t[e](n),mQ(n[`after`+r],[],n)}_getRegistryForType(e){for(let t=0;te.filter(e=>!t.some(t=>e.plugin.id===t.plugin.id));this._notify(r(t,n),e,`stop`),this._notify(r(n,t),e,`start`)}};function CAe(e){let t={},n=[],r=Object.keys(y0.plugins.items);for(let e=0;e1&&x0(e[0].toLowerCase());if(t)return t}throw Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function C0(e,t,n){if(n[t+`AxisID`]===e)return{axis:t}}function AAe(e,t){if(t.data&&t.data.datasets){let n=t.data.datasets.filter(t=>t.xAxisID===e||t.yAxisID===e);if(n.length)return C0(e,`x`,n[0])||C0(e,`y`,n[0])}return{}}function jAe(e,t){let n=g$[e.type]||{scales:{}},r=t.scales||{},i=b0(e.type,t),a=Object.create(null);return Object.keys(r).forEach(t=>{let o=r[t];if(!lQ(o))return console.error(`Invalid scale configuration for scale: ${t}`);if(o._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);let s=S0(t,o,AAe(t,e),b$.scales[o.type]),c=OAe(s,i),l=n.scales||{};a[t]=bQ(Object.create(null),[{axis:s},o,l[s],l[c]])}),e.data.datasets.forEach(n=>{let i=n.type||e.type,o=n.indexAxis||b0(i,t),s=(g$[i]||{}).scales||{};Object.keys(s).forEach(e=>{let t=DAe(e,o),i=n[t+`AxisID`]||t;a[i]=a[i]||Object.create(null),bQ(a[i],[{axis:t},r[i],s[e]])})}),Object.keys(a).forEach(e=>{let t=a[e];bQ(t,[b$.scales[t.type],b$.scale])}),a}function w0(e){let t=e.options||={};t.plugins=fQ(t.plugins,{}),t.scales=jAe(e,t)}function T0(e){return e||={},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function MAe(e){return e||={},e.data=T0(e.data),w0(e),e}var E0=new Map,D0=new Set;function O0(e,t){let n=E0.get(e);return n||(n=t(),E0.set(e,n),D0.add(n)),n}var k0=(e,t,n)=>{let r=SQ(t,n);r!==void 0&&e.add(r)},NAe=class{constructor(e){this._config=MAe(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=T0(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){let e=this._config;this.clearCache(),w0(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return O0(e,()=>[[`datasets.${e}`,``]])}datasetAnimationScopeKeys(e,t){return O0(`${e}.transition.${t}`,()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,``]])}datasetElementScopeKeys(e,t){return O0(`${e}-${t}`,()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,``]])}pluginScopeKeys(e){let t=e.id,n=this.type;return O0(`${n}-plugin-${t}`,()=>[[`plugins.${t}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,t){let n=this._scopeCache,r=n.get(e);return(!r||t)&&(r=new Map,n.set(e,r)),r}getOptionScopes(e,t,n){let{options:r,type:i}=this,a=this._cachedScopes(e,n),o=a.get(t);if(o)return o;let s=new Set;t.forEach(t=>{e&&(s.add(e),t.forEach(t=>k0(s,e,t))),t.forEach(e=>k0(s,r,e)),t.forEach(e=>k0(s,g$[i]||{},e)),t.forEach(e=>k0(s,b$,e)),t.forEach(e=>k0(s,_$,e))});let c=Array.from(s);return c.length===0&&c.push(Object.create(null)),D0.has(t)&&a.set(t,c),c}chartOptionScopes(){let{options:e,type:t}=this;return[e,g$[t]||{},b$.datasets[t]||{},{type:t},b$,_$]}resolveNamedOptions(e,t,n,r=[``]){let i={$shared:!0},{resolver:a,subPrefixes:o}=A0(this._resolverCache,e,r),s=a;if(FAe(a,t)){i.$shared=!1,n=TQ(n)?n():n;let t=this.createResolver(e,n,o);s=z$(a,n,t)}for(let e of t)i[e]=s[e];return i}createResolver(e,t,n=[``],r){let{resolver:i}=A0(this._resolverCache,e,n);return lQ(t)?z$(i,t,void 0,r):i}};function A0(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));let i=n.join(),a=r.get(i);return a||(a={resolver:R$(t,n),subPrefixes:n.filter(e=>!e.toLowerCase().includes(`hover`))},r.set(i,a)),a}var PAe=e=>lQ(e)&&Object.getOwnPropertyNames(e).some(t=>TQ(e[t]));function FAe(e,t){let{isScriptable:n,isIndexable:r}=B$(e);for(let i of t){let t=n(i),a=r(i),o=(a||t)&&e[i];if(t&&(TQ(o)||PAe(o))||a&&cQ(o))return!0}return!1}var IAe=`4.5.1`,LAe=[`top`,`bottom`,`left`,`right`,`chartArea`];function j0(e,t){return e===`top`||e===`bottom`||LAe.indexOf(e)===-1&&t===`x`}function M0(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function N0(e){let t=e.chart,n=t.options.animation;t.notifyPlugins(`afterRender`),mQ(n&&n.onComplete,[e],t)}function RAe(e){let t=e.chart,n=t.options.animation;mQ(n&&n.onProgress,[e],t)}function P0(e){return Q$()&&typeof e==`string`?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}var F0={},I0=e=>{let t=P0(e);return Object.values(F0).filter(e=>e.canvas===t).pop()};function zAe(e,t,n){let r=Object.keys(e);for(let i of r){let r=+i;if(r>=t){let a=e[i];delete e[i],(n>0||r>t)&&(e[r+n]=a)}}}function BAe(e,t,n,r){return!n||e.type===`mouseout`?null:r?t:e}var L0=class{static defaults=b$;static instances=F0;static overrides=g$;static registry=y0;static version=IAe;static getChart=I0;static register(...e){y0.add(...e),R0()}static unregister(...e){y0.remove(...e),R0()}constructor(e,t){let n=this.config=new NAe(t),r=P0(e),i=I0(r);if(i)throw Error(`Canvas is already in use. Chart with ID '`+i.id+`' must be destroyed before the canvas with ID '`+i.canvas.id+`' can be reused.`);let a=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||(aAe(r))),this.platform.updateConfig(n);let o=this.platform.acquireContext(r,a.aspectRatio),s=o&&o.canvas,c=s&&s.height,l=s&&s.width;if(this.id=VDe(),this.ctx=o,this.canvas=s,this.width=l,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new SAe,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=iOe(e=>this.update(e),a.resizeDelay||0),this._dataChanges=[],F0[this.id]=this,!o||!s){console.error(`Failed to create chart: can't acquire context from the given item`);return}y1.listen(this,`complete`,N0),y1.listen(this,`progress`,RAe),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:e,maintainAspectRatio:t},width:n,height:r,_aspectRatio:i}=this;return sQ(e)?t&&i?i:r?n/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return y0}_initialize(){return this.notifyPlugins(`beforeInit`),this.options.responsive?this.resize():a1(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(`afterInit`),this}clear(){return C$(this.canvas,this.ctx),this}stop(){return y1.stop(this),this}resize(e,t){y1.running(this)?this._resizeBeforeDraw={width:e,height:t}:this._resize(e,t)}_resize(e,t){let n=this.options,r=this.canvas,i=n.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(r,e,t,i),o=n.devicePixelRatio||this.platform.getDevicePixelRatio(),s=this.width?`resize`:`attach`;this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,a1(this,o,!0)&&(this.notifyPlugins(`resize`,{size:a}),mQ(n.onResize,[this,a],this),this.attached&&this._doResize(s)&&this.render())}ensureScalesHaveIDs(){hQ(this.options.scales||{},(e,t)=>{e.id=t})}buildOrUpdateScales(){let e=this.options,t=e.scales,n=this.scales,r=Object.keys(n).reduce((e,t)=>(e[t]=!1,e),{}),i=[];t&&(i=i.concat(Object.keys(t).map(e=>{let n=t[e],r=S0(e,n),i=r===`r`,a=r===`x`;return{options:n,dposition:i?`chartArea`:a?`bottom`:`left`,dtype:i?`radialLinear`:a?`category`:`linear`}}))),hQ(i,t=>{let i=t.options,a=i.id,o=S0(a,i),s=fQ(i.type,t.dtype);(i.position===void 0||j0(i.position,o)!==j0(t.dposition))&&(i.position=t.dposition),r[a]=!0;let c=null;a in n&&n[a].type===s?c=n[a]:(c=new(y0.getScale(s))({id:a,type:s,ctx:this.ctx,chart:this}),n[c.id]=c),c.init(i,e)}),hQ(r,(e,t)=>{e||delete n[t]}),hQ(n,e=>{e0.configure(this,e,e.options),e0.addBox(this,e)})}_updateMetasets(){let e=this._metasets,t=this.data.datasets.length,n=e.length;if(e.sort((e,t)=>e.index-t.index),n>t){for(let e=t;et.length&&delete this._stacks,e.forEach((e,n)=>{t.filter(t=>t===e._dataset).length===0&&this._destroyDatasetMeta(n)})}buildOrUpdateControllers(){let e=[],t=this.data.datasets,n,r;for(this._removeUnreferencedMetasets(),n=0,r=t.length;n{this.getDatasetMeta(t).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins(`reset`)}update(e){let t=this.config;t.update();let n=this._options=t.createResolver(t.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins(`beforeUpdate`,{mode:e,cancelable:!0})===!1)return;let i=this.buildOrUpdateControllers();this.notifyPlugins(`beforeElementsUpdate`);let a=0;for(let e=0,t=this.data.datasets.length;e{e.reset()}),this._updateDatasets(e),this.notifyPlugins(`afterUpdate`,{mode:e}),this._layers.sort(M0(`z`,`_idx`));let{_active:o,_lastEvent:s}=this;s?this._eventHandler(s,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){hQ(this.scales,e=>{e0.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let e=this.options;(!EQ(new Set(Object.keys(this._listeners)),new Set(e.events))||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:e}=this,t=this._getUniformDataChanges()||[];for(let{method:n,start:r,count:i}of t)zAe(e,r,n===`_removeElements`?-i:i)}_getUniformDataChanges(){let e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];let t=this.data.datasets.length,n=t=>new Set(e.filter(e=>e[0]===t).map((e,t)=>t+`,`+e.splice(1).join(`,`))),r=n(0);for(let e=1;ee.split(`,`)).map(e=>({method:e[1],start:+e[2],count:+e[3]}))}_updateLayout(e){if(this.notifyPlugins(`beforeLayout`,{cancelable:!0})===!1)return;e0.update(this,this.width,this.height,e);let t=this.chartArea,n=t.width<=0||t.height<=0;this._layers=[],hQ(this.boxes,e=>{n&&e.position===`chartArea`||(e.configure&&e.configure(),this._layers.push(...e._layers()))},this),this._layers.forEach((e,t)=>{e._idx=t}),this.notifyPlugins(`afterLayout`)}_updateDatasets(e){if(this.notifyPlugins(`beforeDatasetsUpdate`,{mode:e,cancelable:!0})!==!1){for(let e=0,t=this.data.datasets.length;e=0;--t)this._drawDataset(e[t]);this.notifyPlugins(`afterDatasetsDraw`)}_drawDataset(e){let t=this.ctx,n={meta:e,index:e.index,cancelable:!0},r=v1(this,e);this.notifyPlugins(`beforeDatasetDraw`,n)!==!1&&(r&&D$(t,r),e.controller.draw(),r&&O$(t),n.cancelable=!1,this.notifyPlugins(`afterDatasetDraw`,n))}isPointInArea(e){return E$(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,n,r){let i=Rke.modes[t];return typeof i==`function`?i(this,e,n,r):[]}getDatasetMeta(e){let t=this.data.datasets[e],n=this._metasets,r=n.filter(e=>e&&e._dataset===t).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t&&t.order||0,index:e,_dataset:t,_parsed:[],_sorted:!1},n.push(r)),r}getContext(){return this.$context||=L$(null,{chart:this,type:`chart`})}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){let t=this.data.datasets[e];if(!t)return!1;let n=this.getDatasetMeta(e);return typeof n.hidden==`boolean`?!n.hidden:!t.hidden}setDatasetVisibility(e,t){let n=this.getDatasetMeta(e);n.hidden=!t}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,t,n){let r=n?`show`:`hide`,i=this.getDatasetMeta(e),a=i.controller._resolveAnimations(void 0,r);wQ(t)?(i.data[t].hidden=!n,this.update()):(this.setDatasetVisibility(e,n),a.update(i,{visible:n}),this.update(t=>t.datasetIndex===e?r:void 0))}hide(e,t){this._updateVisibility(e,t,!1)}show(e,t){this._updateVisibility(e,t,!0)}_destroyDatasetMeta(e){let t=this._metasets[e];t&&t.controller&&t.controller._destroy(),delete this._metasets[e]}_stop(){let e,t;for(this.stop(),y1.remove(this),e=0,t=this.data.datasets.length;e{t.addEventListener(this,n,r),e[n]=r},r=(e,t,n)=>{e.offsetX=t,e.offsetY=n,this._eventHandler(e)};hQ(this.options.events,e=>n(e,r))}bindResponsiveEvents(){this._responsiveListeners||={};let e=this._responsiveListeners,t=this.platform,n=(n,r)=>{t.addEventListener(this,n,r),e[n]=r},r=(n,r)=>{e[n]&&(t.removeEventListener(this,n,r),delete e[n])},i=(e,t)=>{this.canvas&&this.resize(e,t)},a,o=()=>{r(`attach`,o),this.attached=!0,this.resize(),n(`resize`,i),n(`detach`,a)};a=()=>{this.attached=!1,r(`resize`,i),this._stop(),this._resize(0,0),n(`attach`,o)},t.isAttached(this.canvas)?o():a()}unbindEvents(){hQ(this._listeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._listeners={},hQ(this._responsiveListeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,t,n){let r=n?`set`:`remove`,i,a,o,s;for(t===`dataset`&&(i=this.getDatasetMeta(e[0].datasetIndex),i.controller[`_`+r+`DatasetHoverStyle`]()),o=0,s=e.length;o{let n=this.getDatasetMeta(e);if(!n)throw Error(`No dataset found at index `+e);return{datasetIndex:e,element:n.data[t],index:t}});gQ(n,t)||(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,t))}notifyPlugins(e,t,n){return this._plugins.notify(this,e,t,n)}isPluginEnabled(e){return this._plugins._cache.filter(t=>t.plugin.id===e).length===1}_updateHoverStyles(e,t,n){let r=this.options.hover,i=(e,t)=>e.filter(e=>!t.some(t=>e.datasetIndex===t.datasetIndex&&e.index===t.index)),a=i(t,e),o=n?e:i(e,t);a.length&&this.updateHoverStyle(a,r.mode,!1),o.length&&r.mode&&this.updateHoverStyle(o,r.mode,!0)}_eventHandler(e,t){let n={event:e,replay:t,cancelable:!0,inChartArea:this.isPointInArea(e)},r=t=>(t.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins(`beforeEvent`,n,r)===!1)return;let i=this._handleEvent(e,t,n.inChartArea);return n.cancelable=!1,this.notifyPlugins(`afterEvent`,n,r),(i||n.changed)&&this.render(),this}_handleEvent(e,t,n){let{_active:r=[],options:i}=this,a=t,o=this._getActiveElements(e,r,n,a),s=qDe(e),c=BAe(e,this._lastEvent,n,s);n&&(this._lastEvent=null,mQ(i.onHover,[e,o,this],this),s&&mQ(i.onClick,[e,o,this],this));let l=!gQ(o,r);return(l||t)&&(this._active=o,this._updateHoverStyles(o,r,t)),this._lastEvent=c,l}_getActiveElements(e,t,n,r){if(e.type===`mouseout`)return[];if(!n)return t;let i=this.options.hover;return this.getElementsAtEventForMode(e,i.mode,i,r)}};function R0(){return hQ(L0.instances,e=>e._plugins.invalidate())}function VAe(e,t,n){let{startAngle:r,x:i,y:a,outerRadius:o,innerRadius:s,options:c}=t,{borderWidth:l,borderJoinStyle:u}=c,d=Math.min(l/o,WQ(r-n));if(e.beginPath(),e.arc(i,a,o-l/2,r+d/2,n-d/2),s>0){let t=Math.min(l/s,WQ(r-n));e.arc(i,a,s+l/2,n-t/2,r+t/2,!0)}else{let t=Math.min(l/2,o*WQ(r-n));if(u===`round`)e.arc(i,a,t,n-DQ/2,r+DQ/2,!0);else if(u===`bevel`){let o=2*t*t,s=-o*Math.cos(n+DQ/2)+i,c=-o*Math.sin(n+DQ/2)+a,l=o*Math.cos(r+DQ/2)+i,u=o*Math.sin(r+DQ/2)+a;e.lineTo(s,c),e.lineTo(l,u)}}e.closePath(),e.moveTo(0,0),e.rect(0,0,e.canvas.width,e.canvas.height),e.clip(`evenodd`)}function HAe(e,t,n){let{startAngle:r,pixelMargin:i,x:a,y:o,outerRadius:s,innerRadius:c}=t,l=i/s;e.beginPath(),e.arc(a,o,s,r-l,n+l),c>i?(l=i/c,e.arc(a,o,c,n+l,r-l,!0)):e.arc(a,o,i,n+AQ,r-AQ),e.closePath(),e.clip()}function UAe(e){return j$(e,[`outerStart`,`outerEnd`,`innerStart`,`innerEnd`])}function WAe(e,t,n,r){let i=UAe(e.options.borderRadius),a=(n-t)/2,o=Math.min(a,r*t/2),s=e=>{let t=(n-Math.min(a,e))*r/2;return KQ(e,0,Math.min(a,t))};return{outerStart:s(i.outerStart),outerEnd:s(i.outerEnd),innerStart:KQ(i.innerStart,0,o),innerEnd:KQ(i.innerEnd,0,o)}}function z0(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function B0(e,t,n,r,i,a){let{x:o,y:s,startAngle:c,pixelMargin:l,innerRadius:u}=t,d=Math.max(t.outerRadius+r+n-l,0),f=u>0?u+r+n+l:0,p=0,m=i-c;if(r){let e=((u>0?u-r:0)+(d>0?d-r:0))/2;p=(m-(e===0?m:m*e/(e+r)))/2}let h=(m-Math.max(.001,m*d-n/DQ)/d)/2,g=c+h+p,_=i-h-p,{outerStart:v,outerEnd:y,innerStart:b,innerEnd:x}=WAe(t,f,d,_-g),S=d-v,C=d-y,w=g+v/S,T=_-y/C,ee=f+b,E=f+x,te=g+b/ee,ne=_-x/E;if(e.beginPath(),a){let t=(w+T)/2;if(e.arc(o,s,d,w,t),e.arc(o,s,d,t,T),y>0){let t=z0(C,T,o,s);e.arc(t.x,t.y,y,T,_+AQ)}let n=z0(E,_,o,s);if(e.lineTo(n.x,n.y),x>0){let t=z0(E,ne,o,s);e.arc(t.x,t.y,x,_+AQ,ne+Math.PI)}let r=(_-x/f+(g+b/f))/2;if(e.arc(o,s,f,_-x/f,r,!0),e.arc(o,s,f,r,g+b/f,!0),b>0){let t=z0(ee,te,o,s);e.arc(t.x,t.y,b,te+Math.PI,g-AQ)}let i=z0(S,g,o,s);if(e.lineTo(i.x,i.y),v>0){let t=z0(S,w,o,s);e.arc(t.x,t.y,v,g-AQ,w)}}else{e.moveTo(o,s);let t=Math.cos(w)*d+o,n=Math.sin(w)*d+s;e.lineTo(t,n);let r=Math.cos(T)*d+o,i=Math.sin(T)*d+s;e.lineTo(r,i)}e.closePath()}function GAe(e,t,n,r,i){let{fullCircles:a,startAngle:o,circumference:s}=t,c=t.endAngle;if(a){B0(e,t,n,r,c,i);for(let t=0;t=DQ&&p===0&&u!==`miter`&&VAe(e,t,h),a||(B0(e,t,n,r,h,i),e.stroke())}var qAe=class extends u0{static id=`arc`;static defaults={borderAlign:`center`,borderColor:`#fff`,borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:`backgroundColor`};static descriptors={_scriptable:!0,_indexable:e=>e!==`borderDash`};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,t,n){let{angle:r,distance:i}=HQ(this.getProps([`x`,`y`],n),{x:e,y:t}),{startAngle:a,endAngle:o,innerRadius:s,outerRadius:c,circumference:l}=this.getProps([`startAngle`,`endAngle`,`innerRadius`,`outerRadius`,`circumference`],n),u=(this.options.spacing+this.options.borderWidth)/2,d=fQ(l,o-a),f=GQ(r,a,o)&&a!==o,p=d>=OQ||f,m=qQ(i,s+u,c+u);return p&&m}getCenterPoint(e){let{x:t,y:n,startAngle:r,endAngle:i,innerRadius:a,outerRadius:o}=this.getProps([`x`,`y`,`startAngle`,`endAngle`,`innerRadius`,`outerRadius`],e),{offset:s,spacing:c}=this.options,l=(r+i)/2,u=(a+o+c+s)/2;return{x:t+Math.cos(l)*u,y:n+Math.sin(l)*u}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){let{options:t,circumference:n}=this,r=(t.offset||0)/4,i=(t.spacing||0)/2,a=t.circular;if(this.pixelMargin=t.borderAlign===`inner`?.33:0,this.fullCircles=n>OQ?Math.floor(n/OQ):0,n===0||this.innerRadius<0||this.outerRadius<0)return;e.save();let o=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(o)*r,Math.sin(o)*r);let s=r*(1-Math.sin(Math.min(DQ,n||0)));e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor,GAe(e,this,s,i,a),KAe(e,this,s,i,a),e.restore()}};function V0(e,t,n=t){e.lineCap=fQ(n.borderCapStyle,t.borderCapStyle),e.setLineDash(fQ(n.borderDash,t.borderDash)),e.lineDashOffset=fQ(n.borderDashOffset,t.borderDashOffset),e.lineJoin=fQ(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=fQ(n.borderWidth,t.borderWidth),e.strokeStyle=fQ(n.borderColor,t.borderColor)}function JAe(e,t,n){e.lineTo(n.x,n.y)}function YAe(e){return e.stepped?hOe:e.tension||e.cubicInterpolationMode===`monotone`?gOe:JAe}function H0(e,t,n={}){let r=e.length,{start:i=0,end:a=r-1}=n,{start:o,end:s}=t,c=Math.max(i,o),l=Math.min(a,s),u=is&&a>s;return{count:r,start:c,loop:t.loop,ilen:l(o+(l?s-e:e))%a,y=()=>{h!==g&&(e.lineTo(u,g),e.lineTo(u,h),e.lineTo(u,_))};for(c&&(p=i[v(0)],e.moveTo(p.x,p.y)),f=0;f<=s;++f){if(p=i[v(f)],p.skip)continue;let t=p.x,n=p.y,r=t|0;r===m?(ng&&(g=n),u=(d*u+t)/++d):(y(),e.lineTo(t,n),m=r,d=0,h=g=n),_=n}y()}function U0(e){let t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!==`monotone`&&!t.stepped&&!n?ZAe:XAe}function QAe(e){return e.stepped?JOe:e.tension||e.cubicInterpolationMode===`monotone`?YOe:s1}function $Ae(e,t,n,r){let i=t._path;i||(i=t._path=new Path2D,t.path(i,n,r)&&i.closePath()),V0(e,t.options),e.stroke(i)}function eje(e,t,n,r){let{segments:i,options:a}=t,o=U0(t);for(let s of i)V0(e,a,s.style),e.beginPath(),o(e,t,s,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}var tje=typeof Path2D==`function`;function nje(e,t,n,r){tje&&!t.options.segment?$Ae(e,t,n,r):eje(e,t,n,r)}var W0=class extends u0{static id=`line`;static defaults={borderCapStyle:`butt`,borderDash:[],borderDashOffset:0,borderJoinStyle:`miter`,borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:`default`,fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:`backgroundColor`,borderColor:`borderColor`};static descriptors={_scriptable:!0,_indexable:e=>e!==`borderDash`&&e!==`fill`};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,t){let n=this.options;if((n.tension||n.cubicInterpolationMode===`monotone`)&&!n.stepped&&!this._pointsUpdated){let r=n.spanGaps?this._loop:this._fullLoop;BOe(this._points,n,e,r,t),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||=tke(this,this.options.segment)}first(){let e=this.segments,t=this.points;return e.length&&t[e[0].start]}last(){let e=this.segments,t=this.points,n=e.length;return n&&t[e[n-1].end]}interpolate(e,t){let n=this.options,r=e[t],i=this.points,a=m1(this,{property:t,start:r,end:r});if(!a.length)return;let o=[],s=QAe(n),c,l;for(c=0,l=a.length;ce.replace(`rgb(`,`rgba(`).replace(`)`,`, 0.5)`));function Q0(e){return X0[e%X0.length]}function $0(e){return Z0[e%Z0.length]}function uje(e,t){return e.borderColor=Q0(t),e.backgroundColor=$0(t),++t}function dje(e,t){return e.backgroundColor=e.data.map(()=>Q0(t++)),t}function fje(e,t){return e.backgroundColor=e.data.map(()=>$0(t++)),t}function pje(e){let t=0;return(n,r)=>{let i=e.getDatasetMeta(r).controller;i instanceof R1?t=dje(n,t):i instanceof z1?t=fje(n,t):i&&(t=uje(n,t))}}function e2(e){let t;for(t in e)if(e[t].borderColor||e[t].backgroundColor)return!0;return!1}function mje(e){return e&&(e.borderColor||e.backgroundColor)}function hje(){return b$.borderColor!==`rgba(0,0,0,0.1)`||b$.backgroundColor!==`rgba(0,0,0,0.1)`}var gje={id:`colors`,defaults:{enabled:!0,forceOverride:!1},beforeLayout(e,t,n){if(!n.enabled)return;let{data:{datasets:r},options:i}=e.config,{elements:a}=i,o=e2(r)||mje(i)||a&&e2(a)||hje();if(!n.forceOverride&&o)return;let s=pje(e);r.forEach(s)}};function _je(e,t,n,r,i){let a=i.samples||r;if(a>=n)return e.slice(t,t+n);let o=[],s=(n-2)/(a-2),c=0,l=t+n-1,u=t,d,f,p,m,h;for(o[c++]=e[u],d=0;dp&&(p=m,f=e[a],h=a);o[c++]=f,u=h}return o[c++]=e[l],o}function vje(e,t,n,r){let i=0,a=0,o,s,c,l,u,d,f,p,m,h,g=[],_=t+n-1,v=e[t].x,y=e[_].x-v;for(o=t;oh&&(h=l,f=o),i=(a*i+s.x)/++a;else{let n=o-1;if(!sQ(d)&&!sQ(f)){let t=Math.min(d,f),r=Math.max(d,f);t!==p&&t!==n&&g.push({...e[t],x:i}),r!==p&&r!==n&&g.push({...e[r],x:i})}o>0&&n!==p&&g.push(e[n]),g.push(s),u=t,a=0,m=h=l,d=f=p=o}}return g}function t2(e){if(e._decimated){let t=e._data;delete e._decimated,delete e._data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,writable:!0,value:t})}}function n2(e){e.data.datasets.forEach(e=>{t2(e)})}function yje(e,t){let n=t.length,r=0,i,{iScale:a}=e,{min:o,max:s,minDefined:c,maxDefined:l}=a.getUserBounds();return c&&(r=KQ(YQ(t,a.axis,o).lo,0,n-1)),i=l?KQ(YQ(t,a.axis,s).hi+1,r,n)-r:n-r,{start:r,count:i}}var bje={id:`decimation`,defaults:{algorithm:`min-max`,enabled:!1},beforeElementsUpdate:(e,t,n)=>{if(!n.enabled){n2(e);return}let r=e.width;e.data.datasets.forEach((t,i)=>{let{_data:a,indexAxis:o}=t,s=e.getDatasetMeta(i),c=a||t.data;if(I$([o,e.options.indexAxis])===`y`||!s.controller.supportsDecimation)return;let l=e.scales[s.xAxisID];if(l.type!==`linear`&&l.type!==`time`||e.options.parsing)return;let{start:u,count:d}=yje(s,c);if(d<=(n.threshold||4*r)){t2(t);return}sQ(a)&&(t._data=c,delete t.data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(e){this._data=e}}));let f;switch(n.algorithm){case`lttb`:f=_je(c,u,d,r,n);break;case`min-max`:f=vje(c,u,d,r);break;default:throw Error(`Unsupported decimation algorithm '${n.algorithm}'`)}t._decimated=f})},destroy(e){n2(e)}};function xje(e,t,n){let r=e.segments,i=e.points,a=t.points,o=[];for(let e of r){let{start:r,end:s}=e;s=i2(r,s,i);let c=r2(n,i[r],i[s],e.loop);if(!t.segments){o.push({source:e,target:c,start:i[r],end:i[s]});continue}let l=m1(t,c);for(let t of l){let r=r2(n,a[t.start],a[t.end],t.loop),s=p1(e,i,r);for(let e of s)o.push({source:e,target:t,start:{[n]:a2(c,r,`start`,Math.max)},end:{[n]:a2(c,r,`end`,Math.min)}})}}return o}function r2(e,t,n,r){if(r)return;let i=t[e],a=n[e];return e===`angle`&&(i=WQ(i),a=WQ(a)),{property:e,start:i,end:a}}function Sje(e,t){let{x:n=null,y:r=null}=e||{},i=t.points,a=[];return t.segments.forEach(({start:e,end:t})=>{t=i2(e,t,i);let o=i[e],s=i[t];r===null?n!==null&&(a.push({x:n,y:o.y}),a.push({x:n,y:s.y})):(a.push({x:o.x,y:r}),a.push({x:s.x,y:r}))}),a}function i2(e,t,n){for(;t>e;t--){let e=n[t];if(!isNaN(e.x)&&!isNaN(e.y))break}return t}function a2(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function o2(e,t){let n=[],r=!1;return cQ(e)?(r=!0,n=e):n=Sje(e,t),n.length?new W0({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function s2(e){return e&&e.fill!==!1}function Cje(e,t,n){let r=e[t].fill,i=[t],a;if(!n)return r;for(;r!==!1&&i.indexOf(r)===-1;){if(!uQ(r))return r;if(a=e[r],!a)return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function wje(e,t,n){let r=Oje(e);if(lQ(r))return!isNaN(r.value)&&r;let i=parseFloat(r);return uQ(i)&&Math.floor(i)===i?Tje(r[0],t,i,n):[`origin`,`start`,`end`,`stack`,`shape`].indexOf(r)>=0&&r}function Tje(e,t,n,r){return(e===`-`||e===`+`)&&(n=t+n),n===t||n<0||n>=r?!1:n}function Eje(e,t){let n=null;return e===`start`?n=t.bottom:e===`end`?n=t.top:lQ(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function Dje(e,t,n){let r;return r=e===`start`?n:e===`end`?t.options.reverse?t.min:t.max:lQ(e)?e.value:t.getBaseValue(),r}function Oje(e){let t=e.options,n=t.fill,r=fQ(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?`origin`:r}function kje(e){let{scale:t,index:n,line:r}=e,i=[],a=r.segments,o=r.points,s=Aje(t,n);s.push(o2({x:null,y:t.bottom},r));for(let e=0;e=0;--t){let n=i[t].$filler;n&&(n.line.updateControlPoints(a,n.axis),r&&n.fill&&l2(e.ctx,n,a))}},beforeDatasetsDraw(e,t,n){if(n.drawTime!==`beforeDatasetsDraw`)return;let r=e.getSortedVisibleDatasetMetas();for(let t=r.length-1;t>=0;--t){let n=r[t].$filler;s2(n)&&l2(e.ctx,n,e.chartArea)}},beforeDatasetDraw(e,t,n){let r=t.meta.$filler;!s2(r)||n.drawTime!==`beforeDatasetDraw`||l2(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:`beforeDatasetDraw`}},m2=(e,t)=>{let{boxHeight:n=t,boxWidth:r=t}=e;return e.usePointStyle&&(n=Math.min(n,t),r=e.pointStyleWidth||Math.min(r,t)),{boxWidth:r,boxHeight:n,itemHeight:Math.max(t,n)}},Vje=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index,h2=class extends u0{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t,n){this.maxWidth=e,this.maxHeight=t,this._margins=n,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let e=this.options.labels||{},t=mQ(e.generateLabels,[this.chart],this)||[];e.filter&&(t=t.filter(t=>e.filter(t,this.chart.data))),e.sort&&(t=t.sort((t,n)=>e.sort(t,n,this.chart.data))),this.options.reverse&&t.reverse(),this.legendItems=t}fit(){let{options:e,ctx:t}=this;if(!e.display){this.width=this.height=0;return}let n=e.labels,r=F$(n.font),i=r.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:s}=m2(n,i),c,l;t.font=r.string,this.isHorizontal()?(c=this.maxWidth,l=this._fitRows(a,i,o,s)+10):(l=this.maxHeight,c=this._fitCols(a,r,o,s)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(l,e.maxHeight||this.maxHeight)}_fitRows(e,t,n,r){let{ctx:i,maxWidth:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],c=this.lineWidths=[0],l=r+o,u=e;i.textAlign=`left`,i.textBaseline=`middle`;let d=-1,f=-l;return this.legendItems.forEach((e,p)=>{let m=n+t/2+i.measureText(e.text).width;(p===0||c[c.length-1]+m+2*o>a)&&(u+=l,c[c.length-(p>0?0:1)]=0,f+=l,d++),s[p]={left:0,top:f,row:d,width:m,height:r},c[c.length-1]+=m+o}),u}_fitCols(e,t,n,r){let{ctx:i,maxHeight:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],c=this.columnSizes=[],l=a-e,u=o,d=0,f=0,p=0,m=0;return this.legendItems.forEach((e,a)=>{let{itemWidth:h,itemHeight:g}=Hje(n,t,i,e,r);a>0&&f+g+2*o>l&&(u+=d+o,c.push({width:d,height:f}),p+=d+o,m++,d=f=0),s[a]={left:p,top:f,col:m,width:h,height:g},d=Math.max(d,h),f+=g+o}),u+=d,c.push({width:d,height:f}),u}adjustHitBoxes(){if(!this.options.display)return;let e=this._computeTitleHeight(),{legendHitBoxes:t,options:{align:n,labels:{padding:r},rtl:i}}=this,a=c1(i,this.left,this.width);if(this.isHorizontal()){let i=0,o=n$(n,this.left+r,this.right-this.lineWidths[i]);for(let s of t)i!==s.row&&(i=s.row,o=n$(n,this.left+r,this.right-this.lineWidths[i])),s.top+=this.top+e+r,s.left=a.leftForLtr(a.x(o),s.width),o+=s.width+r}else{let i=0,o=n$(n,this.top+e+r,this.bottom-this.columnSizes[i].height);for(let s of t)s.col!==i&&(i=s.col,o=n$(n,this.top+e+r,this.bottom-this.columnSizes[i].height)),s.top=o,s.left+=this.left+r,s.left=a.leftForLtr(a.x(s.left),s.width),o+=s.height+r}}isHorizontal(){return this.options.position===`top`||this.options.position===`bottom`}draw(){if(this.options.display){let e=this.ctx;D$(e,this),this._draw(),O$(e)}}_draw(){let{options:e,columnSizes:t,lineWidths:n,ctx:r}=this,{align:i,labels:a}=e,o=b$.color,s=c1(e.rtl,this.left,this.width),c=F$(a.font),{padding:l}=a,u=c.size,d=u/2,f;this.drawTitle(),r.textAlign=s.textAlign(`left`),r.textBaseline=`middle`,r.lineWidth=.5,r.font=c.string;let{boxWidth:p,boxHeight:m,itemHeight:h}=m2(a,u),g=function(e,t,n){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;r.save();let i=fQ(n.lineWidth,1);if(r.fillStyle=fQ(n.fillStyle,o),r.lineCap=fQ(n.lineCap,`butt`),r.lineDashOffset=fQ(n.lineDashOffset,0),r.lineJoin=fQ(n.lineJoin,`miter`),r.lineWidth=i,r.strokeStyle=fQ(n.strokeStyle,o),r.setLineDash(fQ(n.lineDash,[])),a.usePointStyle){let o={radius:m*Math.SQRT2/2,pointStyle:n.pointStyle,rotation:n.rotation,borderWidth:i},c=s.xPlus(e,p/2),l=t+d;T$(r,o,c,l,a.pointStyleWidth&&p)}else{let a=t+Math.max((u-m)/2,0),o=s.leftForLtr(e,p),c=N$(n.borderRadius);r.beginPath(),Object.values(c).some(e=>e!==0)?A$(r,{x:o,y:a,w:p,h:m,radius:c}):r.rect(o,a,p,m),r.fill(),i!==0&&r.stroke()}r.restore()},_=function(e,t,n){k$(r,n.text,e,t+h/2,c,{strikethrough:n.hidden,textAlign:s.textAlign(n.textAlign)})},v=this.isHorizontal(),y=this._computeTitleHeight();f=v?{x:n$(i,this.left+l,this.right-n[0]),y:this.top+l+y,line:0}:{x:this.left+l,y:n$(i,this.top+y+l,this.bottom-t[0].height),line:0},l1(this.ctx,e.textDirection);let b=h+l;this.legendItems.forEach((o,u)=>{r.strokeStyle=o.fontColor,r.fillStyle=o.fontColor;let m=r.measureText(o.text).width,h=s.textAlign(o.textAlign||=a.textAlign),x=p+d+m,S=f.x,C=f.y;s.setWidth(this.width),v?u>0&&S+x+l>this.right&&(C=f.y+=b,f.line++,S=f.x=n$(i,this.left+l,this.right-n[f.line])):u>0&&C+b>this.bottom&&(S=f.x=S+t[f.line].width+l,f.line++,C=f.y=n$(i,this.top+y+l,this.bottom-t[f.line].height));let w=s.x(S);if(g(w,C,o),S=aOe(h,S+p+d,v?S+x:this.right,e.rtl),_(s.x(S),C,o),v)f.x+=x+l;else if(typeof o.text!=`string`){let e=c.lineHeight;f.y+=g2(o,e)+l}else f.y+=b}),u1(this.ctx,e.textDirection)}drawTitle(){let e=this.options,t=e.title,n=F$(t.font),r=P$(t.padding);if(!t.display)return;let i=c1(e.rtl,this.left,this.width),a=this.ctx,o=t.position,s=n.size/2,c=r.top+s,l,u=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),l=this.top+c,u=n$(e.align,u,this.right-d);else{let t=this.columnSizes.reduce((e,t)=>Math.max(e,t.height),0);l=c+n$(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}let f=n$(o,u,u+d);a.textAlign=i.textAlign(t$(o)),a.textBaseline=`middle`,a.strokeStyle=t.color,a.fillStyle=t.color,a.font=n.string,k$(a,t.text,f,l,n)}_computeTitleHeight(){let e=this.options.title,t=F$(e.font),n=P$(e.padding);return e.display?t.lineHeight+n.height:0}_getLegendItemAt(e,t){let n,r,i;if(qQ(e,this.left,this.right)&&qQ(t,this.top,this.bottom)){for(i=this.legendHitBoxes,n=0;ne.length>t.length?e:t)),t+n.size/2+r.measureText(i).width}function Wje(e,t,n){let r=e;return typeof t.text!=`string`&&(r=g2(t,n)),r}function g2(e,t){return t*(e.text?e.text.length:0)}function Gje(e,t){return!!((e===`mousemove`||e===`mouseout`)&&(t.onHover||t.onLeave)||t.onClick&&(e===`click`||e===`mouseup`))}var Kje={id:`legend`,_element:h2,start(e,t,n){let r=e.legend=new h2({ctx:e.ctx,options:n,chart:e});e0.configure(e,r,n),e0.addBox(e,r)},stop(e){e0.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){let r=e.legend;e0.configure(e,r,n),r.options=n},afterUpdate(e){let t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:`top`,align:`center`,fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){let r=t.datasetIndex,i=n.chart;i.isDatasetVisible(r)?(i.hide(r),t.hidden=!0):(i.show(r),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){let t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:i,color:a,useBorderRadius:o,borderRadius:s}}=e.legend.options;return e._getSortedDatasetMetas().map(e=>{let c=e.controller.getStyle(n?0:void 0),l=P$(c.borderWidth);return{text:t[e.index].label,fillStyle:c.backgroundColor,fontColor:a,hidden:!e.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:c.borderColor,pointStyle:r||c.pointStyle,rotation:c.rotation,textAlign:i||c.textAlign,borderRadius:o&&(s||c.borderRadius),datasetIndex:e.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:`center`,text:``}},descriptors:{_scriptable:e=>!e.startsWith(`on`),labels:{_scriptable:e=>![`generateLabels`,`filter`,`sort`].includes(e)}}},_2=class extends u0{constructor(e){super(),this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t){let n=this.options;if(this.left=0,this.top=0,!n.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=e,this.height=this.bottom=t;let r=cQ(n.text)?n.text.length:1;this._padding=P$(n.padding);let i=r*F$(n.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=i:this.width=i}isHorizontal(){let e=this.options.position;return e===`top`||e===`bottom`}_drawArgs(e){let{top:t,left:n,bottom:r,right:i,options:a}=this,o=a.align,s=0,c,l,u;return this.isHorizontal()?(l=n$(o,n,i),u=t+e,c=i-n):(a.position===`left`?(l=n+e,u=n$(o,r,t),s=DQ*-.5):(l=i-e,u=n$(o,t,r),s=DQ*.5),c=r-t),{titleX:l,titleY:u,maxWidth:c,rotation:s}}draw(){let e=this.ctx,t=this.options;if(!t.display)return;let n=F$(t.font),r=n.lineHeight/2+this._padding.top,{titleX:i,titleY:a,maxWidth:o,rotation:s}=this._drawArgs(r);k$(e,t.text,0,0,n,{color:t.color,maxWidth:o,rotation:s,textAlign:t$(t.align),textBaseline:`middle`,translation:[i,a]})}};function qje(e,t){let n=new _2({ctx:e.ctx,options:t,chart:e});e0.configure(e,n,t),e0.addBox(e,n),e.titleBlock=n}var Jje={id:`title`,_element:_2,start(e,t,n){qje(e,n)},stop(e){let t=e.titleBlock;e0.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){let r=e.titleBlock;e0.configure(e,r,n),r.options=n},defaults:{align:`center`,display:!1,font:{weight:`bold`},fullSize:!0,padding:10,position:`top`,text:``,weight:2e3},defaultRoutes:{color:`color`},descriptors:{_scriptable:!0,_indexable:!1}},v2=new WeakMap,Yje={id:`subtitle`,start(e,t,n){let r=new _2({ctx:e.ctx,options:n,chart:e});e0.configure(e,r,n),e0.addBox(e,r),v2.set(e,r)},stop(e){e0.removeBox(e,v2.get(e)),v2.delete(e)},beforeUpdate(e,t,n){let r=v2.get(e);e0.configure(e,r,n),r.options=n},defaults:{align:`center`,display:!1,font:{weight:`normal`},fullSize:!0,padding:0,position:`top`,text:``,weight:1500},defaultRoutes:{color:`color`},descriptors:{_scriptable:!0,_indexable:!1}},y2={average(e){if(!e.length)return!1;let t,n,r=new Set,i=0,a=0;for(t=0,n=e.length;te+t)/r.size,y:i/a}},nearest(e,t){if(!e.length)return!1;let n=t.x,r=t.y,i=1/0,a,o,s;for(a=0,o=e.length;a-1?e.split(` +`):e}function Xje(e,t){let{element:n,datasetIndex:r,index:i}=t,a=e.getDatasetMeta(r).controller,{label:o,value:s}=a.getLabelAndValue(i);return{chart:e,label:o,parsed:a.getParsed(i),raw:e.data.datasets[r].data[i],formattedValue:s,dataset:a.getDataset(),dataIndex:i,datasetIndex:r,element:n}}function S2(e,t){let n=e.chart.ctx,{body:r,footer:i,title:a}=e,{boxWidth:o,boxHeight:s}=t,c=F$(t.bodyFont),l=F$(t.titleFont),u=F$(t.footerFont),d=a.length,f=i.length,p=r.length,m=P$(t.padding),h=m.height,g=0,_=r.reduce((e,t)=>e+t.before.length+t.lines.length+t.after.length,0);if(_+=e.beforeBody.length+e.afterBody.length,d&&(h+=d*l.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),_){let e=t.displayColors?Math.max(s,c.lineHeight):c.lineHeight;h+=p*e+(_-p)*c.lineHeight+(_-1)*t.bodySpacing}f&&(h+=t.footerMarginTop+f*u.lineHeight+(f-1)*t.footerSpacing);let v=0,y=function(e){g=Math.max(g,n.measureText(e).width+v)};return n.save(),n.font=l.string,hQ(e.title,y),n.font=c.string,hQ(e.beforeBody.concat(e.afterBody),y),v=t.displayColors?o+2+t.boxPadding:0,hQ(r,e=>{hQ(e.before,y),hQ(e.lines,y),hQ(e.after,y)}),v=0,n.font=u.string,hQ(e.footer,y),n.restore(),g+=m.width,{width:g,height:h}}function Zje(e,t){let{y:n,height:r}=t;return ne.height-r/2?`bottom`:`center`}function Qje(e,t,n,r){let{x:i,width:a}=r,o=n.caretSize+n.caretPadding;if(e===`left`&&i+a+o>t.width||e===`right`&&i-a-o<0)return!0}function $je(e,t,n,r){let{x:i,width:a}=n,{width:o,chartArea:{left:s,right:c}}=e,l=`center`;return r===`center`?l=i<=(s+c)/2?`left`:`right`:i<=a/2?l=`left`:i>=o-a/2&&(l=`right`),Qje(l,e,t,n)&&(l=`center`),l}function C2(e,t,n){let r=n.yAlign||t.yAlign||Zje(e,n);return{xAlign:n.xAlign||t.xAlign||$je(e,t,n,r),yAlign:r}}function eMe(e,t){let{x:n,width:r}=e;return t===`right`?n-=r:t===`center`&&(n-=r/2),n}function tMe(e,t,n){let{y:r,height:i}=e;return t===`top`?r+=n:t===`bottom`?r-=i+n:r-=i/2,r}function w2(e,t,n,r){let{caretSize:i,caretPadding:a,cornerRadius:o}=e,{xAlign:s,yAlign:c}=n,l=i+a,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:p}=N$(o),m=eMe(t,s),h=tMe(t,c,l);return c===`center`?s===`left`?m+=l:s===`right`&&(m-=l):s===`left`?m-=Math.max(u,f)+i:s===`right`&&(m+=Math.max(d,p)+i),{x:KQ(m,0,r.width-t.width),y:KQ(h,0,r.height-t.height)}}function T2(e,t,n){let r=P$(n.padding);return t===`center`?e.x+e.width/2:t===`right`?e.x+e.width-r.right:e.x+r.left}function E2(e){return b2([],x2(e))}function nMe(e,t,n){return L$(e,{tooltip:t,tooltipItems:n,type:`tooltip`})}function D2(e,t){let n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}var O2={beforeTitle:oQ,title(e){if(e.length>0){let t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode===`dataset`)return t.dataset.label||``;if(t.label)return t.label;if(r>0&&t.dataIndex{let t={before:[],lines:[],after:[]},i=D2(n,e);b2(t.before,x2(k2(i,`beforeLabel`,this,e))),b2(t.lines,k2(i,`label`,this,e)),b2(t.after,x2(k2(i,`afterLabel`,this,e))),r.push(t)}),r}getAfterBody(e,t){return E2(k2(t.callbacks,`afterBody`,this,e))}getFooter(e,t){let{callbacks:n}=t,r=k2(n,`beforeFooter`,this,e),i=k2(n,`footer`,this,e),a=k2(n,`afterFooter`,this,e),o=[];return o=b2(o,x2(r)),o=b2(o,x2(i)),o=b2(o,x2(a)),o}_createItems(e){let t=this._active,n=this.chart.data,r=[],i=[],a=[],o=[],s,c;for(s=0,c=t.length;se.filter(t,r,i,n))),e.itemSort&&(o=o.sort((t,r)=>e.itemSort(t,r,n))),hQ(o,t=>{let n=D2(e.callbacks,t);r.push(k2(n,`labelColor`,this,t)),i.push(k2(n,`labelPointStyle`,this,t)),a.push(k2(n,`labelTextColor`,this,t))}),this.labelColors=r,this.labelPointStyles=i,this.labelTextColors=a,this.dataPoints=o,o}update(e,t){let n=this.options.setContext(this.getContext()),r=this._active,i,a=[];if(!r.length)this.opacity!==0&&(i={opacity:0});else{let e=y2[n.position].call(this,r,this._eventPosition);a=this._createItems(n),this.title=this.getTitle(a,n),this.beforeBody=this.getBeforeBody(a,n),this.body=this.getBody(a,n),this.afterBody=this.getAfterBody(a,n),this.footer=this.getFooter(a,n);let t=this._size=S2(this,n),o=Object.assign({},e,t),s=C2(this.chart,n,o),c=w2(n,o,s,this.chart);this.xAlign=s.xAlign,this.yAlign=s.yAlign,i={opacity:1,x:c.x,y:c.y,width:t.width,height:t.height,caretX:e.x,caretY:e.y}}this._tooltipItems=a,this.$context=void 0,i&&this._resolveAnimations().update(this,i),e&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:t})}drawCaret(e,t,n,r){let i=this.getCaretPosition(e,n,r);t.lineTo(i.x1,i.y1),t.lineTo(i.x2,i.y2),t.lineTo(i.x3,i.y3)}getCaretPosition(e,t,n){let{xAlign:r,yAlign:i}=this,{caretSize:a,cornerRadius:o}=n,{topLeft:s,topRight:c,bottomLeft:l,bottomRight:u}=N$(o),{x:d,y:f}=e,{width:p,height:m}=t,h,g,_,v,y,b;return i===`center`?(y=f+m/2,r===`left`?(h=d,g=h-a,v=y+a,b=y-a):(h=d+p,g=h+a,v=y-a,b=y+a),_=h):(g=r===`left`?d+Math.max(s,l)+a:r===`right`?d+p-Math.max(c,u)-a:this.caretX,i===`top`?(v=f,y=v-a,h=g-a,_=g+a):(v=f+m,y=v+a,h=g+a,_=g-a),b=v),{x1:h,x2:g,x3:_,y1:v,y2:y,y3:b}}drawTitle(e,t,n){let r=this.title,i=r.length,a,o,s;if(i){let c=c1(n.rtl,this.x,this.width);for(e.x=T2(this,n.titleAlign,n),t.textAlign=c.textAlign(n.titleAlign),t.textBaseline=`middle`,a=F$(n.titleFont),o=n.titleSpacing,t.fillStyle=n.titleColor,t.font=a.string,s=0;se!==0)?(e.beginPath(),e.fillStyle=i.multiKeyBackground,A$(e,{x:t,y:p,w:c,h:s,radius:o}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),A$(e,{x:n,y:p+1,w:c-2,h:s-2,radius:o}),e.fill()):(e.fillStyle=i.multiKeyBackground,e.fillRect(t,p,c,s),e.strokeRect(t,p,c,s),e.fillStyle=a.backgroundColor,e.fillRect(n,p+1,c-2,s-2))}e.fillStyle=this.labelTextColors[n]}drawBody(e,t,n){let{body:r}=this,{bodySpacing:i,bodyAlign:a,displayColors:o,boxHeight:s,boxWidth:c,boxPadding:l}=n,u=F$(n.bodyFont),d=u.lineHeight,f=0,p=c1(n.rtl,this.x,this.width),m=function(n){t.fillText(n,p.x(e.x+f),e.y+d/2),e.y+=d+i},h=p.textAlign(a),g,_,v,y,b,x,S;for(t.textAlign=a,t.textBaseline=`middle`,t.font=u.string,e.x=T2(this,h,n),t.fillStyle=n.bodyColor,hQ(this.beforeBody,m),f=o&&h!==`right`?a===`center`?c/2+l:c+2+l:0,y=0,x=r.length;y0&&t.stroke()}_updateAnimationTarget(e){let t=this.chart,n=this.$animations,r=n&&n.x,i=n&&n.y;if(r||i){let n=y2[e.position].call(this,this._active,this._eventPosition);if(!n)return;let a=this._size=S2(this,e),o=Object.assign({},n,this._size),s=C2(t,e,o),c=w2(e,o,s,t);(r._to!==c.x||i._to!==c.y)&&(this.xAlign=s.xAlign,this.yAlign=s.yAlign,this.width=a.width,this.height=a.height,this.caretX=n.x,this.caretY=n.y,this._resolveAnimations().update(this,c))}}_willRender(){return!!this.opacity}draw(e){let t=this.options.setContext(this.getContext()),n=this.opacity;if(!n)return;this._updateAnimationTarget(t);let r={width:this.width,height:this.height},i={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;let a=P$(t.padding),o=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;t.enabled&&o&&(e.save(),e.globalAlpha=n,this.drawBackground(i,e,r,t),l1(e,t.textDirection),i.y+=a.top,this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),u1(e,t.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,t){let n=this._active,r=e.map(({datasetIndex:e,index:t})=>{let n=this.chart.getDatasetMeta(e);if(!n)throw Error(`Cannot find a dataset at index `+e);return{datasetIndex:e,element:n.data[t],index:t}}),i=!gQ(n,r),a=this._positionChanged(r,t);(i||a)&&(this._active=r,this._eventPosition=t,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,t,n=!0){if(t&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let r=this.options,i=this._active||[],a=this._getActiveElements(e,i,t,n),o=this._positionChanged(a,e),s=t||!gQ(a,i)||o;return s&&(this._active=a,(r.enabled||r.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,t))),s}_getActiveElements(e,t,n,r){let i=this.options;if(e.type===`mouseout`)return[];if(!r)return t.filter(e=>this.chart.data.datasets[e.datasetIndex]&&this.chart.getDatasetMeta(e.datasetIndex).controller.getParsed(e.index)!==void 0);let a=this.chart.getElementsAtEventForMode(e,i.mode,i,n);return i.reverse&&a.reverse(),a}_positionChanged(e,t){let{caretX:n,caretY:r,options:i}=this,a=y2[i.position].call(this,e,t);return a!==!1&&(n!==a.x||r!==a.y)}},rMe=Object.freeze({__proto__:null,Colors:gje,Decimation:bje,Filler:Bje,Legend:Kje,SubTitle:Yje,Title:Jje,Tooltip:{id:`tooltip`,_element:A2,positioners:y2,afterInit(e,t,n){n&&(e.tooltip=new A2({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){let t=e.tooltip;if(t&&t._willRender()){let n={tooltip:t};if(e.notifyPlugins(`beforeTooltipDraw`,{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins(`afterTooltipDraw`,n)}},afterEvent(e,t){if(e.tooltip){let n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:`average`,backgroundColor:`rgba(0,0,0,0.8)`,titleColor:`#fff`,titleFont:{weight:`bold`},titleSpacing:2,titleMarginBottom:6,titleAlign:`left`,bodyColor:`#fff`,bodySpacing:2,bodyFont:{},bodyAlign:`left`,footerColor:`#fff`,footerSpacing:2,footerMarginTop:6,footerFont:{weight:`bold`},footerAlign:`left`,padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:`#fff`,displayColors:!0,boxPadding:0,borderColor:`rgba(0,0,0,0)`,borderWidth:0,animation:{duration:400,easing:`easeOutQuart`},animations:{numbers:{type:`number`,properties:[`x`,`y`,`width`,`height`,`caretX`,`caretY`]},opacity:{easing:`linear`,duration:200}},callbacks:O2},defaultRoutes:{bodyFont:`font`,footerFont:`font`,titleFont:`font`},descriptors:{_scriptable:e=>e!==`filter`&&e!==`itemSort`&&e!==`external`,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:`animation`}},additionalOptionScopes:[`interaction`]}}),iMe=(e,t,n,r)=>(typeof t==`string`?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function aMe(e,t,n,r){let i=e.indexOf(t);return i===-1?iMe(e,t,n,r):i===e.lastIndexOf(t)?i:n}var oMe=(e,t)=>e===null?null:KQ(Math.round(e),0,t);function j2(e){let t=this.getLabels();return e>=0&&et.length-1?null:this.getPixelForValue(t[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}};function cMe(e,t){let n=[],{bounds:r,step:i,min:a,max:o,precision:s,count:c,maxTicks:l,maxDigits:u,includeBounds:d}=e,f=i||1,p=l-1,{min:m,max:h}=t,g=!sQ(a),_=!sQ(o),v=!sQ(c),y=(h-m)/(u+1),b=IQ((h-m)/p/f)*f,x,S,C,w;if(b<1e-14&&!g&&!_)return[{value:m},{value:h}];w=Math.ceil(h/b)-Math.floor(m/b),w>p&&(b=IQ(w*b/p/f)*f),sQ(s)||(x=10**s,b=Math.ceil(b*x)/x),r===`ticks`?(S=Math.floor(m/b)*b,C=Math.ceil(h/b)*b):(S=m,C=h),g&&_&&i&&QDe((o-a)/i,b/1e3)?(w=Math.round(Math.min((o-a)/b,l)),b=(o-a)/w,S=a,C=o):v?(S=g?a:S,C=_?o:C,w=c-1,b=(C-S)/w):(w=(C-S)/b,w=FQ(w,Math.round(w),b/1e3)?Math.round(w):Math.ceil(w));let T=Math.max(VQ(b),VQ(S));x=10**(sQ(s)?T:s),S=Math.round(S*x)/x,C=Math.round(C*x)/x;let ee=0;for(g&&(d&&S!==a?(n.push({value:a}),So)break;n.push({value:e})}return _&&d&&C!==o?n.length&&FQ(n[n.length-1].value,o,M2(o,y,e))?n[n.length-1].value=o:n.push({value:o}):(!_||C===o)&&n.push({value:C}),n}function M2(e,t,{horizontal:n,minRotation:r}){let i=zQ(r),a=(n?Math.sin(i):Math.cos(i))||.001,o=.75*t*(``+e).length;return Math.min(t/a,o)}var N2=class extends _0{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,t){return sQ(e)||(typeof e==`number`||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){let{beginAtZero:e}=this.options,{minDefined:t,maxDefined:n}=this.getUserBounds(),{min:r,max:i}=this,a=e=>r=t?r:e,o=e=>i=n?i:e;if(e){let e=PQ(r),t=PQ(i);e<0&&t<0?o(0):e>0&&t>0&&a(0)}if(r===i){let t=i===0?1:Math.abs(i*.05);o(i+t),e||a(r-t)}this.min=r,this.max=i}getTickLimit(){let{maxTicksLimit:e,stepSize:t}=this.options.ticks,n;return t?(n=Math.ceil(this.max/t)-Math.floor(this.min/t)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${t} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),e||=11),e&&(n=Math.min(e,n)),n}computeTickLimit(){return 1/0}buildTicks(){let e=this.options,t=e.ticks,n=this.getTickLimit();n=Math.max(2,n);let r=cMe({maxTicks:n,bounds:e.bounds,min:e.min,max:e.max,precision:t.precision,step:t.stepSize,count:t.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:t.minRotation||0,includeBounds:t.includeBounds!==!1},this._range||this);return e.bounds===`ticks`&&RQ(r,this,`value`),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){let e=this.ticks,t=this.min,n=this.max;if(super.configure(),this.options.offset&&e.length){let r=(n-t)/Math.max(e.length-1,1)/2;t-=r,n+=r}this._startValue=t,this._endValue=n,this._valueRange=n-t}getLabelForValue(e){return p$(e,this.chart.options.locale,this.options.ticks.format)}},lMe=class extends N2{static id=`linear`;static defaults={ticks:{callback:h$.formatters.numeric}};determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=uQ(e)?e:0,this.max=uQ(t)?t:1,this.handleTickRangeOptions()}computeTickLimit(){let e=this.isHorizontal(),t=e?this.width:this.height,n=zQ(this.options.ticks.minRotation),r=(e?Math.sin(n):Math.cos(n))||.001,i=this._resolveTickFontOptions(0);return Math.ceil(t/Math.min(40,i.lineHeight/r))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}},P2=e=>Math.floor(NQ(e)),F2=(e,t)=>10**(P2(e)+t);function I2(e){return e/10**P2(e)==1}function L2(e,t,n){let r=10**n,i=Math.floor(e/r);return Math.ceil(t/r)-i}function uMe(e,t){let n=P2(t-e);for(;L2(e,t,n)>10;)n++;for(;L2(e,t,n)<10;)n--;return Math.min(n,P2(e))}function dMe(e,{min:t,max:n}){t=dQ(e.min,t);let r=[],i=P2(t),a=uMe(t,n),o=a<0?10**Math.abs(a):1,s=10**a,c=i>a?10**i:0,l=Math.round((t-c)*o)/o,u=Math.floor((t-c)/s/10)*s*10,d=Math.floor((l-u)/10**a),f=dQ(e.min,Math.round((c+u+d*10**a)*o)/o);for(;f=10?d=d<15?15:20:d++,d>=20&&(a++,d=2,o=a>=0?1:o),f=Math.round((c+u+d*10**a)*o)/o;let p=dQ(e.max,f);return r.push({value:p,major:I2(p),significand:d}),r}var fMe=class extends _0{static id=`logarithmic`;static defaults={ticks:{callback:h$.formatters.logarithmic,major:{enabled:!0}}};constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(e,t){let n=N2.prototype.parse.apply(this,[e,t]);if(n===0){this._zero=!0;return}return uQ(n)&&n>0?n:null}determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=uQ(e)?Math.max(0,e):null,this.max=uQ(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!uQ(this._userMin)&&(this.min=e===F2(this.min,0)?F2(this.min,-1):F2(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:e,maxDefined:t}=this.getUserBounds(),n=this.min,r=this.max,i=t=>n=e?n:t,a=e=>r=t?r:e;n===r&&(n<=0?(i(1),a(10)):(i(F2(n,-1)),a(F2(r,1)))),n<=0&&i(F2(r,-1)),r<=0&&a(F2(n,1)),this.min=n,this.max=r}buildTicks(){let e=this.options,t=dMe({min:this._userMin,max:this._userMax},this);return e.bounds===`ticks`&&RQ(t,this,`value`),e.reverse?(t.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),t}getLabelForValue(e){return e===void 0?`0`:p$(e,this.chart.options.locale,this.options.ticks.format)}configure(){let e=this.min;super.configure(),this._startValue=NQ(e),this._valueRange=NQ(this.max)-NQ(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(NQ(e)-this._startValue)/this._valueRange)}getValueForPixel(e){let t=this.getDecimalForPixel(e);return 10**(this._startValue+t*this._valueRange)}};function R2(e){let t=e.ticks;if(t.display&&e.display){let e=P$(t.backdropPadding);return fQ(t.font&&t.font.size,b$.font.size)+e.height}return 0}function pMe(e,t,n){return n=cQ(n)?n:[n],{w:mOe(e,t.string,n),h:n.length*t.lineHeight}}function z2(e,t,n,r,i){return e===r||e===i?{start:t-n/2,end:t+n/2}:ei?{start:t-n,end:t}:{start:t,end:t+n}}function mMe(e){let t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},n=Object.assign({},t),r=[],i=[],a=e._pointLabels.length,o=e.options.pointLabels,s=o.centerPointLabels?DQ/a:0;for(let c=0;ct.r&&(s=(r.end-t.r)/a,e.r=Math.max(e.r,t.r+s)),i.startt.b&&(c=(i.end-t.b)/o,e.b=Math.max(e.b,t.b+c))}function gMe(e,t,n){let r=e.drawingArea,{extra:i,additionalAngle:a,padding:o,size:s}=n,c=e.getPointPosition(t,r+i+o,a),l=Math.round(BQ(WQ(c.angle+AQ))),u=xMe(c.y,s.h,l),d=yMe(l),f=bMe(c.x,s.w,d);return{visible:!0,x:c.x,y:u,textAlign:d,left:f,top:u,right:f+s.w,bottom:u+s.h}}function _Me(e,t){if(!t)return!0;let{left:n,top:r,right:i,bottom:a}=e;return!(E$({x:n,y:r},t)||E$({x:n,y:a},t)||E$({x:i,y:r},t)||E$({x:i,y:a},t))}function vMe(e,t,n){let r=[],i=e._pointLabels.length,a=e.options,{centerPointLabels:o,display:s}=a.pointLabels,c={extra:R2(a)/2,additionalAngle:o?DQ/i:0},l;for(let a=0;a270||n<90)&&(e-=t),e}function SMe(e,t,n){let{left:r,top:i,right:a,bottom:o}=n,{backdropColor:s}=t;if(!sQ(s)){let n=N$(t.borderRadius),c=P$(t.backdropPadding);e.fillStyle=s;let l=r-c.left,u=i-c.top,d=a-r+c.width,f=o-i+c.height;Object.values(n).some(e=>e!==0)?(e.beginPath(),A$(e,{x:l,y:u,w:d,h:f,radius:n}),e.fill()):e.fillRect(l,u,d,f)}}function CMe(e,t){let{ctx:n,options:{pointLabels:r}}=e;for(let i=t-1;i>=0;i--){let t=e._pointLabelItems[i];if(!t.visible)continue;let a=r.setContext(e.getPointLabelContext(i));SMe(n,a,t);let o=F$(a.font),{x:s,y:c,textAlign:l}=t;k$(n,e._pointLabels[i],s,c+o.lineHeight/2,o,{color:a.color,textAlign:l,textBaseline:`middle`})}}function B2(e,t,n,r){let{ctx:i}=e;if(n)i.arc(e.xCenter,e.yCenter,t,0,OQ);else{let n=e.getPointPosition(0,t);i.moveTo(n.x,n.y);for(let a=1;a{let n=mQ(this.options.pointLabels.callback,[e,t],this);return n||n===0?n:``}).filter((e,t)=>this.chart.getDataVisibility(t))}fit(){let e=this.options;e.display&&e.pointLabels.display?mMe(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(e,t,n,r){this.xCenter+=Math.floor((e-t)/2),this.yCenter+=Math.floor((n-r)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(e,t,n,r))}getIndexAngle(e){let t=OQ/(this._pointLabels.length||1),n=this.options.startAngle||0;return WQ(e*t+zQ(n))}getDistanceFromCenterForValue(e){if(sQ(e))return NaN;let t=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-e)*t:(e-this.min)*t}getValueForDistanceFromCenter(e){if(sQ(e))return NaN;let t=e/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-t:this.min+t}getPointLabelContext(e){let t=this._pointLabels||[];if(e>=0&&e{if(t!==0||t===0&&this.min<0){s=this.getDistanceFromCenterForValue(e.value);let n=this.getContext(t),o=r.setContext(n),c=i.setContext(n);wMe(this,o,s,a,c)}}),n.display){for(e.save(),o=a-1;o>=0;o--){let r=n.setContext(this.getPointLabelContext(o)),{color:i,lineWidth:a}=r;!a||!i||(e.lineWidth=a,e.strokeStyle=i,e.setLineDash(r.borderDash),e.lineDashOffset=r.borderDashOffset,s=this.getDistanceFromCenterForValue(t.reverse?this.min:this.max),c=this.getPointPosition(o,s),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(c.x,c.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){let e=this.ctx,t=this.options,n=t.ticks;if(!n.display)return;let r=this.getIndexAngle(0),i,a;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(r),e.textAlign=`center`,e.textBaseline=`middle`,this.ticks.forEach((r,o)=>{if(o===0&&this.min>=0&&!t.reverse)return;let s=n.setContext(this.getContext(o)),c=F$(s.font);if(i=this.getDistanceFromCenterForValue(this.ticks[o].value),s.showLabelBackdrop){e.font=c.string,a=e.measureText(r.label).width,e.fillStyle=s.backdropColor;let t=P$(s.backdropPadding);e.fillRect(-a/2-t.left,-i-c.size/2-t.top,a+t.width,c.size+t.height)}k$(e,r.label,0,-i,c,{color:s.color,strokeColor:s.textStrokeColor,strokeWidth:s.textStrokeWidth})}),e.restore()}drawTitle(){}},V2={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},H2=Object.keys(V2);function U2(e,t){return e-t}function W2(e,t){if(sQ(t))return null;let n=e._adapter,{parser:r,round:i,isoWeekday:a}=e._parseOpts,o=t;return typeof r==`function`&&(o=r(o)),uQ(o)||(o=typeof r==`string`?n.parse(o,r):n.parse(o)),o===null?null:(i&&(o=i===`week`&&(LQ(a)||a===!0)?n.startOf(o,`isoWeek`,a):n.startOf(o,i)),+o)}function G2(e,t,n,r){let i=H2.length;for(let a=H2.indexOf(e);a=H2.indexOf(n);a--){let n=H2[a];if(V2[n].common&&e._adapter.diff(i,r,n)>=t-1)return n}return H2[n?H2.indexOf(n):0]}function OMe(e){for(let t=H2.indexOf(e)+1,n=H2.length;t=t?n[r]:n[i];e[a]=!0}}function kMe(e,t,n,r){let i=e._adapter,a=+i.startOf(t[0].value,r),o=t[t.length-1].value,s,c;for(s=a;s<=o;s=+i.add(s,1,r))c=n[s],c>=0&&(t[c].major=!0);return t}function q2(e,t,n){let r=[],i={},a=t.length,o,s;for(o=0;o+e.value))}initOffsets(e=[]){let t=0,n=0,r,i;this.options.offset&&e.length&&(r=this.getDecimalForValue(e[0]),t=e.length===1?1-r:(this.getDecimalForValue(e[1])-r)/2,i=this.getDecimalForValue(e[e.length-1]),n=e.length===1?i:(i-this.getDecimalForValue(e[e.length-2]))/2);let a=e.length<3?.5:.25;t=KQ(t,0,a),n=KQ(n,0,a),this._offsets={start:t,end:n,factor:1/(t+1+n)}}_generate(){let e=this._adapter,t=this.min,n=this.max,r=this.options,i=r.time,a=i.unit||G2(i.minUnit,t,n,this._getLabelCapacity(t)),o=fQ(r.ticks.stepSize,1),s=a===`week`&&i.isoWeekday,c=LQ(s)||s===!0,l={},u=t,d,f;if(c&&(u=+e.startOf(u,`isoWeek`,s)),u=+e.startOf(u,c?`day`:a),e.diff(n,t,a)>1e5*o)throw Error(t+` and `+n+` are too far apart with stepSize of `+o+` `+a);let p=r.ticks.source===`data`&&this.getDataTimestamps();for(d=u,f=0;d+e)}getLabelForValue(e){let t=this._adapter,n=this.options.time;return n.tooltipFormat?t.format(e,n.tooltipFormat):t.format(e,n.displayFormats.datetime)}format(e,t){let n=this.options.time.displayFormats,r=this._unit,i=t||n[r];return this._adapter.format(e,i)}_tickFormatFunction(e,t,n,r){let i=this.options,a=i.ticks.callback;if(a)return mQ(a,[e,t,n],this);let o=i.time.displayFormats,s=this._unit,c=this._majorUnit,l=s&&o[s],u=c&&o[c],d=n[t],f=c&&u&&d&&d.major;return this._adapter.format(e,r||(f?u:l))}generateTickLabels(e){let t,n,r;for(t=0,n=e.length;t0?o:1}getDataTimestamps(){let e=this._cache.data||[],t,n;if(e.length)return e;let r=this.getMatchingVisibleMetas();if(this._normalized&&r.length)return this._cache.data=r[0].controller.getAllParsedValues(this);for(t=0,n=r.length;t=e[r].pos&&t<=e[i].pos&&({lo:r,hi:i}=YQ(e,`pos`,t)),{pos:a,time:s}=e[r],{pos:o,time:c}=e[i]):(t>=e[r].time&&t<=e[i].time&&({lo:r,hi:i}=YQ(e,`time`,t)),{time:a,pos:s}=e[r],{time:o,pos:c}=e[i]);let l=o-a;return l?s+(c-s)*(t-a)/l:s}var AMe=class extends J2{static id=`timeseries`;static defaults=J2.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let e=this._getTimestampsForTable(),t=this._table=this.buildLookupTable(e);this._minPos=Y2(t,this.min),this._tableRange=Y2(t,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){let{min:t,max:n}=this,r=[],i=[],a,o,s,c,l;for(a=0,o=e.length;a=t&&c<=n&&r.push(c);if(r.length<2)return[{time:t,pos:0},{time:n,pos:1}];for(a=0,o=r.length;ae-t)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;let t=this.getDataTimestamps(),n=this.getLabelTimestamps();return e=t.length&&n.length?this.normalize(t.concat(n)):t.length?t:n,e=this._cache.all=e,e}getDecimalForValue(e){return(Y2(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){let t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end;return Y2(this._table,n*this._tableRange+this._minPos,!0)}},jMe=[Mke,lje,rMe,Object.freeze({__proto__:null,CategoryScale:sMe,LinearScale:lMe,LogarithmicScale:fMe,RadialLinearScale:EMe,TimeScale:J2,TimeSeriesScale:AMe})];L0.register(...jMe);var MMe=L0,NMe=z(``);function X2(e,t){O(t,!0);let n=K(t,`class`,3,``),r=K(t,`ariaLabel`,3,``);function i(e){if(Yi.tick,typeof t.build!=`function`)return;let n=t.build();if(!n)return;let r=new MMe(e.getContext(`2d`),n);return()=>r.destroy()}var a=NMe();ci(a,()=>i),I(()=>{W(a,1,ui(n())),G(a,`aria-label`,r())}),B(e,a),k()}var PMe=z(``),FMe=z(`
                    `);function Z2(e,t){O(t,!0);let n=K(t,`options`,19,()=>[]),r=K(t,`ariaLabel`,3,``),i=K(t,`class`,3,``);var a=FMe();U(a,21,n,e=>e.value,(e,n)=>{var r=PMe();let i;var a=N(r,!0);D(r),I(()=>{i=W(r,1,`segmented-btn svelte-92fh5i`,null,i,{active:t.value===L(n).value}),G(r,`aria-pressed`,t.value===L(n).value),V(a,L(n).label)}),R(`click`,r,()=>t.onchange?.(L(n).value)),B(e,r)}),D(a),I(()=>{W(a,1,ui([`segmented-control`,i()]),`svelte-92fh5i`),G(a,`aria-label`,r())}),B(e,a),k()}Sr([`click`]);function Q2(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function $2(){return{grid:Q2(`--chart-grid`),text:Q2(`--chart-text`),dayMarker:Q2(`--chart-day-marker`),tooltipBg:Q2(`--chart-tooltip-bg`),tooltipBorder:Q2(`--chart-tooltip-border`),tooltipText:Q2(`--chart-tooltip-text`)}}function e4(){return{size:11,family:`'SF Mono', Menlo, Consolas, monospace`}}function t4(e,t){return{backgroundColor:e.tooltipBg,borderColor:e.tooltipBorder,borderWidth:1,titleColor:e.tooltipText,bodyColor:e.tooltipText,callbacks:t}}function n4(e){if(typeof document>`u`||!document.body)return e;let t=document.createElement(`span`);t.style.display=`none`,t.style.color=e,document.body.appendChild(t);let n=getComputedStyle(t).color;return document.body.removeChild(t),n||e}var r4=[`#c2845a`,`#7a9e7e`,`#d4a574`,`#b8a98e`,`#8b9e6b`,`#7d8a97`,`#c47a5a`,`#6b8e6b`,`#a09486`,`#9b7ea4`,`#c49a6c`];function IMe(){return[...r4]}function i4(e){let t=5381,n=String(e||``);for(let e=0;emZ(e)}}var l4={seconds:{apiName:`second`,windowLabel:kl,refreshMs:2e3},minutes:{apiName:`minute`,windowLabel:Ml,refreshMs:5e3},hours:{apiName:`hour`,windowLabel:Fl,refreshMs:2e4},days:{apiName:`day`,windowLabel:Rl,refreshMs:6e4}};function RMe(){return[{value:`seconds`,label:_l()},{value:`minutes`,label:bl()},{value:`hours`,label:Cl()},{value:`days`,label:El()}]}function u4(){return{input:0,output:0,prompt:0,local:0}}function d4(e){return String(e).padStart(2,`0`)}function f4(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:0}function zMe(e,t){if(!Number.isFinite(t))return``;let n=new Date(t);switch(e){case`seconds`:return d4(n.getHours())+`:`+d4(n.getMinutes())+`:`+d4(n.getSeconds());case`minutes`:return d4(n.getHours())+`:`+d4(n.getMinutes());case`hours`:return d4(n.getHours())+`:00`;default:return d4(n.getMonth()+1)+`-`+d4(n.getDate())}}function BMe(e,t){let n=[],r=[],i={input:[],output:[],prompt:[],local:[]},a=u4();for(let o of e||[]){let e=Date.parse(o&&o.start),s=f4(o&&o.input_tokens),c=f4(o&&o.output_tokens),l=f4(o&&o.prompt_cached_tokens),u=f4(o&&o.locally_cached_tokens);n.push(zMe(t,e)),r.push(Number.isFinite(e)?e:null),i.input.push(s),i.output.push(c),i.prompt.push(l),i.local.push(u),a.input+=s,a.output+=c,a.prompt+=l,a.local+=u}return{labels:n,stamps:r,cols:i,totals:a}}function VMe(e){let t=e||u4();return t.input+t.output+t.prompt+t.local>0}function p4(e,t){return mZ(Math.max(0,Math.round(e&&e[t]||0)))}function m4(e){return(l4[e]||l4.minutes).windowLabel()}function HMe(e,t){return Eu({window:m4(t).toLowerCase(),input:p4(e,`input`),output:p4(e,`output`),prompt:p4(e,`prompt`),local:p4(e,`local`)})}function UMe(e,t,n,r){let i=e=>mZ(Math.max(0,Math.round(e))),a=n.stamps,o=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderWidth:0,borderRadius:0,categoryPercentage:1,barPercentage:1,stack:`tokens`});return{type:`bar`,plugins:[{id:`liveTokensDayMarks`,afterDatasetsDraw:t=>{if(r===`days`)return;let n=t.getDatasetMeta(0),i=t.chartArea;if(!n||!n.data||!i)return;let o=t.ctx;o.save(),o.font=`10px 'SF Mono', Menlo, Consolas, monospace`;let s=null;for(let t=0;t{if(!e.length)return``;let t=a[e[0].dataIndex];if(!t)return e[0].label;let n=new Date(t);return r===`days`?n.toLocaleDateString():n.toLocaleString()},label:e=>e.dataset.label+`: `+i(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),ql({total:i(t)})}})}}}}var WMe=900,h4=new class{#e=j(`minutes`);get granularity(){return L(this.#e)}set granularity(e){M(this.#e,e,!0)}#t=j(Xt([]));get buckets(){return L(this.#t)}set buckets(e){M(this.#t,e,!0)}#n=j(!1);get active(){return L(this.#n)}set active(e){M(this.#n,e,!0)}#r=null;#i=null;#a=null;#o=0;#s=null;#c=!1;start(){this.stop(),this.active=!0,this.fetch(),this.#l(),this.#u()}stop(){this.active=!1,this.#r&&=(clearInterval(this.#r),null),this.#i&&=(clearTimeout(this.#i),null),this.#a&&=(clearTimeout(this.#a),null),this.#o=0,this.#s&&=(this.#s.abort(),null),this.buckets=[]}setGranularity(e){!l4[e]||e===this.granularity||(this.granularity=e,this.buckets=[],this.#l(),this.fetch())}#l(){this.#r&&=(clearInterval(this.#r),null);let e=l4[this.granularity]||l4.minutes;this.#r=setInterval(()=>{this.active&&this.fetch()},e.refreshMs)}noteUsageEvent(e){!this.active||e!==`usage.flushed`||(this.#i||=setTimeout(()=>{this.#i=null,this.fetch()},WMe))}async fetch(){if(!this.active||this.#c)return;this.#c=!0;let e=this.granularity;try{let t=await JX(`/admin/usage/throughput?granularity=`+(l4[e]||l4.minutes).apiName,{label:`token throughput`});if(t.stale||!t.ok||this.granularity!==e)return;this.buckets=t.data&&Array.isArray(t.data.buckets)?t.data.buckets:[]}catch(e){if(XX(e))return;console.error(`Failed to fetch token throughput:`,e)}finally{this.#c=!1,this.active&&this.granularity!==e&&this.fetch()}}async#u(){await ZX.ensureLoaded(),this.active&&ZX.liveLogsVisible()&&(typeof ReadableStream>`u`||(this.#s&&this.#s.abort(),this.#s=new AbortController,this.#d(this.#s)))}async#d(e){let t=()=>{e.signal.aborted||this.#s!==e||this.#p()};try{let n=await KX(`/admin/live/logs?types=usage`,{signal:e.signal});if(!n.ok||!n.body||typeof n.body.getReader!=`function`){t();return}this.#o=0,await a4(n.body.getReader(),e=>this.#f(e)),t()}catch(n){if(XX(n)||e.signal.aborted)return;console.error(`Live usage stream failed:`,n),t()}}#f(e){if(!e||typeof e!=`object`)return;let t=String(e.type||``).trim();t.indexOf(`usage.`)===0&&this.noteUsageEvent(t)}#p(){if(!this.active||this.#a)return;let{attempt:e,delay:t}=s4(this.#o);this.#o=e,this.#a=setTimeout(()=>{this.#a=null,this.#u()},t)}},GMe=z(`
                    `),KMe=z(`
                    `),qMe=z(`

                    `);function JMe(e,t){O(t,!0);let n=A(()=>BMe(h4.buckets,h4.granularity)),r=A(()=>L(n).totals);function i(){return{input:n4(`var(--token-input)`),output:n4(`var(--token-output)`),prompt:n4(`var(--token-prompt)`),local:n4(`var(--token-local)`)}}let a=[{metric:`input`,label:Ko,colorVar:`--token-input`},{metric:`output`,label:qo,colorVar:`--token-output`},{metric:`prompt`,label:Vl,colorVar:`--token-prompt`},{metric:`local`,label:Wl,colorVar:`--token-local`}];var o=qMe(),s=N(o),c=N(s),l=N(c),u=N(l,!0);D(l);var d=F(l,2),f=N(d);let p;var m=F(f,2),h=N(m,!0);D(m),D(d),D(c);var g=F(c,2);{let e=A(()=>dl()),t=A(RMe);Z2(g,{get ariaLabel(){return L(e)},get options(){return L(t)},get value(){return h4.granularity},onchange:e=>h4.setGranularity(e)})}D(s);var _=F(s,2);U(_,21,()=>a,e=>e.metric,(e,t)=>{var n=GMe(),i=N(n),a=F(i,2),o=N(a,!0);D(a);var s=F(a,2),c=N(s,!0);D(s),D(n),I((e,n)=>{hi(i,`background: var(${L(t).colorVar??``})`),V(o,e),V(c,n)},[()=>L(t).label(),()=>p4(L(r),L(t).metric)]),B(e,n)}),D(_);var v=F(_,2),y=N(v);{let e=A(()=>HMe(L(r),h4.granularity));X2(y,{get ariaLabel(){return L(e)},build:()=>UMe($2(),i(),L(n),h4.granularity)})}var b=F(y,2),x=e=>{var t=KMe(),n=N(t),r=N(n,!0);D(n),D(t),I(e=>V(r,e),[()=>ml()]),B(e,t)},S=A(()=>!VMe(L(r)));H(b,e=>{L(S)&&e(x)}),D(v),D(o),I((e,t)=>{V(u,e),p=W(f,1,`live-dot`,null,p,{"is-streaming":h4.active}),V(h,t)},[()=>cl(),()=>m4(h4.granularity)]),B(e,o),k()}function YMe(e){let t=e||{};if(t.total_tokens!==null&&t.total_tokens!==void 0){let e=Number(t.total_tokens);if(Number.isFinite(e))return e}let n=Number(t.total_input_tokens||0),r=Number(t.total_output_tokens||0);return(Number.isFinite(n)?n:0)+(Number.isFinite(r)?r:0)}function g4(e,t){if(!t)return 0;let n=e&&e.summary?e.summary:{},r=Number(n.total_hits||0);return Number.isFinite(r)&&r>0?r:0}function _4(e,t,n){let r=Number(e&&e.total_requests||0);return(Number.isFinite(r)?r:0)+g4(t,n)}function XMe(e,t,n){let r=g4(t,n);return r<=0?``:Xl({provider:TZ(_4(e,t,n)-r),cache:TZ(r)})}function ZMe(e){let t=e&&e.summary?e.summary:{},n=Number(t.total_input_tokens||0),r=Number(t.total_output_tokens||0);return(Number.isFinite(n)?n:0)+(Number.isFinite(r)?r:0)}function v4(e,t,n){let r=e=>{let t=Number(e||0);return Number.isFinite(t)&&t>0?t:0},i=e||{},a=r(i.uncached_input_tokens),o=r(i.cached_input_tokens),s=r(i.cache_write_input_tokens),c=t&&t.summary?t.summary:{},l=n?r(c.total_input_tokens):0;return[{key:`uncached`,label:mc(),tokens:a+s,colorVar:`--cache-meter-uncached`,note:s>0?_c({count:TZ(s)}):``},{key:`prompt`,label:bc(),tokens:o,colorVar:`--cache-meter-prompt`,note:Cc()},{key:`local`,label:Ec(),tokens:l,colorVar:`--cache-meter-local`,note:kc()}]}function QMe(e,t,n){return v4(e,t,n).reduce((e,t)=>e+t.tokens,0)}function $Me(e,t,n){return QMe(e,t,n)>0}function y4(e,t,n){let r=v4(e,t,n),i=r.reduce((e,t)=>e+t.tokens,0);if(i<=0)return r.map(e=>Object.assign({},e,{pct:0}));let a=r.map(e=>{let t=e.tokens/i*100,n=Math.floor(t);return Object.assign({},e,{pct:n,remainder:t-n})}),o=100-a.reduce((e,t)=>e+t.pct,0);return a.map((e,t)=>({index:t,remainder:e.remainder,tokens:e.tokens})).filter(e=>e.tokens>0).sort((e,t)=>t.remainder-e.remainder).forEach(e=>{o>0&&(a[e.index].pct+=1,--o)}),a}function eNe(e,t,n){return y4(e,t,n).filter(e=>e.tokens>0)}function b4(e){let t=[$l({label:e.label,tokens:TZ(e.tokens),percent:e.pct})];return e.note&&t.push(e.note),t.join(` +`)}function tNe(e){let t=(e||[]).map(e=>e.label+` `+e.pct+`%`);return Mc({details:t.length?t.join(`, `):nu()})}function nNe(e){return e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`)}function x4(e,t,n,r){if(t!==`daily`||!n||!r)return e;let i={};(e||[]).forEach(e=>{i[e.date]=e});let a=[];for(let e=new Date(n);e<=r;e.setUTCDate(e.getUTCDate()+1)){let t=nNe(e);a.push(i[t]||{date:t,input_tokens:0,output_tokens:0,total_tokens:0,requests:0,input_cost:null,output_cost:null,total_cost:null})}return a}function rNe(e,t){let n=e=>Number(e)||0,r=e.map(e=>e.date),i=e.map(e=>n(e.uncached_input_tokens)+n(e.cache_write_input_tokens)+n(e.cached_input_tokens)>0?n(e.uncached_input_tokens)+n(e.cache_write_input_tokens):n(e.input_tokens)),a=e.map(e=>n(e.output_tokens)),o=e.map(e=>n(e.cached_input_tokens)),s={};return(t||[]).forEach(e=>{s[e.date]=e}),{labels:r,inputPaid:i,output:a,prompt:o,local:r.map(e=>{let t=s[e];return t?n(t.input_tokens)+n(t.output_tokens):0})}}function S4(e){let t=e||{},n=Math.max(0,Number(t.uncached_input_tokens)||0),r=Math.max(0,Number(t.cached_input_tokens)||0),i=Math.max(0,Number(t.cache_write_input_tokens)||0),a=n+r+i;return a>0?r/a*100:0}function iNe(e){let t=e||{};return(Number(t.uncached_input_tokens)||0)+(Number(t.cached_input_tokens)||0)+(Number(t.cache_write_input_tokens)||0)>0}function C4(e){return iNe(e)?Math.round(S4(e))+`%`:`—`}function aNe(e,t,n={}){let r=!!n.cacheEnabled,i=n.resolve||(e=>e),a=(e,t)=>i(`color-mix(in srgb, `+e+` `+t+`%, transparent)`),o=(e,t,n,r)=>Object.assign({label:e,data:t,borderColor:n,backgroundColor:n,fill:!1,tension:.3,borderWidth:2,pointRadius:0,pointHoverRadius:4},r||{}),s=[o(Ko(),t.inputPaid,i(`var(--token-input)`),{fill:`origin`}),o(qo(),t.output,i(`var(--token-output)`),{fill:`-1`}),o(Vl(),t.prompt,i(`var(--token-prompt)`),{fill:`-1`,borderDash:[6,4]})];return r&&s.push(o(Wl(),t.local,a(`var(--info)`,35),{fill:`-1`,borderDash:[2,3]})),{type:`line`,data:{labels:t.labels,datasets:s},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:t4(e,{label:e=>e.dataset.label+`: `+TZ(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),ql({total:TZ(t)})}})},scales:{x:{stacked:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:e4(),maxRotation:0,autoSkip:!0,maxTicksLimit:10}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:c4(e)}}}}}function oNe(e,t,n){let r=Math.max(0,Math.min(100,e));return{type:`doughnut`,data:{datasets:[{data:[r,100-r],backgroundColor:[t,n],borderWidth:0,spacing:0}]},options:{rotation:-90,circumference:180,cutout:`84%`,responsive:!0,maintainAspectRatio:!1,animation:{duration:0},layout:{padding:1},events:[],plugins:{legend:{display:!1},tooltip:{enabled:!1}}}}}var w4=`gomodel_provider_status_details_expanded`,T4=`gomodel_provider_card_expanded_overrides`,sNe=3e3,cNe=`https://gomodel.enterpilot.io/docs/providers/`,lNe={anthropic:`anthropic`,azure:`azure`,bailian:`bailian`,bedrock:`bedrock`,"bedrock-mantle":`bedrock-mantle`,cohere:`cohere`,deepseek:`deepseek`,elevenlabs:`elevenlabs`,gemini:`gemini`,llmd:`llmd`,opencode_go:`opencode-go`,oracle:`oracle`,sglang:`sglang`,vertex:`vertex`,vllm:`vllm`,xiaomi:`xiaomi`};function E4(){return{summary:{total:0,healthy:0,degraded:0,unhealthy:0,overall_status:`degraded`},providers:[]}}function uNe(e){let t={detailsExpanded:!1,cardOverrides:{}};try{if(e){let n=e.getItem(w4);n===`true`||n===`false`?t.detailsExpanded=n===`true`:e.setItem(w4,`false`);let r=JSON.parse(e.getItem(T4)||`{}`);r&&typeof r==`object`&&!Array.isArray(r)&&(t.cardOverrides=r)}}catch{}return t}function dNe(e,t){if(e)try{e.setItem(w4,t?`true`:`false`)}catch{}}function D4(e,t){if(e)try{e.setItem(T4,JSON.stringify(t))}catch{}}function fNe(e,t,n){let r=n&&n.name?String(n.name):``;return r&&Object.prototype.hasOwnProperty.call(e,r)?e[r]===!0:t}function pNe(e){return`is-`+(String(e&&e.overall_status||`degraded`).trim()||`degraded`)}function mNe(e){return`is-`+(String(e||`degraded`).trim()||`degraded`)}function hNe(e){let t=e||{};return String(t.healthy||0)+`/`+String(t.total||0)}function gNe(e){let t=e||{},n=Number(t.total||0),r=Number(t.healthy||0);return n>0&&rString(e&&e.status_label||``).trim().toLowerCase()===`starting`)}function O4(e){if(!e||!e.runtime)return``;let t=e.runtime.last_model_fetch_at||``,n=e.runtime.last_availability_check_at||``;return t?n&&Date.parse(n)>Date.parse(t)?n:t:n}function yNe(e,t){let n=O4(e);if(!n||typeof t!=`function`)return`-`;let r=t(n);if(!r||r===`-`)return`-`;let i=String(r).split(` `);return i.length>1?i.slice(1).join(` `):r}function bNe(e,t){let n=O4(e);return n?typeof t==`function`?t(n):String(n):``}function k4(e){if(!e)return``;let t=String(e.name||``).trim(),n=String(e.type||e.config&&e.config.type||``).trim();return!n||n===t?``:n}function A4(e){let t=String(e&&(e.type||e.config&&e.config.type)||``).trim().toLowerCase(),n=t?lNe[t]:``;return n?cNe+n+`?utm_source=gomodel_dashboard`:``}function xNe(e){let t=e&&e.config&&e.config.resilience?e.config.resilience.retry:null;return t?String(t.max_retries)+` retries, `+t.initial_backoff+` initial, `+t.max_backoff+` max, factor `+t.backoff_factor+`, jitter `+t.jitter_factor:`-`}function SNe(e){let t=e&&e.config&&e.config.resilience?e.config.resilience.circuit_breaker:null;return t?String(t.failure_threshold)+` fail, `+String(t.success_threshold)+` success, `+t.timeout+` timeout`:`-`}function CNe(e){let t=e&&e.config&&Array.isArray(e.config.models)?e.config.models.filter(Boolean):[];return t.length===0?$s():t.join(`, `)}function wNe(e){if(!e)return``;let t=[];return e.status_reason&&t.push(String(e.status_reason)),e.last_error&&t.push(nc({error:String(e.last_error)})),t.join(` + +`)}function j4(e){let t=e&&e.request_health;return t&&typeof t==`object`?t:null}function M4(e){let t=j4(e);return t?String(t.circuit_state||``).trim():``}function TNe(e){let t=M4(e);return t?t.charAt(0).toUpperCase()+t.slice(1):``}function ENe(e){let t=M4(e);return t===`open`?`is-unhealthy`:t===`half-open`?`is-degraded`:`is-healthy`}function DNe(e){let t=j4(e);if(!t)return``;let n=Number(t.requests||0),r=Number(t.errors||0),i=Math.round(Number(t.window_seconds||0)/60),a=i>0?`last `+i+` min`:`recent`;return String(n)+` request`+(n===1?``:`s`)+` · `+String(r)+` error`+(r===1?``:`s`)+` (`+a+`)`}function N4(e){let t=j4(e);return t&&Array.isArray(t.models)?t.models:[]}function ONe(e){return e?String(Number(e.errors||0))+`/`+String(Number(e.requests||0))+` failed`:``}function kNe(e){let t=e&&e.last_error;return!t||!t.message?``:(t.status_code?`HTTP `+String(t.status_code)+`: `:``)+t.message}function P4(){return{name:``,slug:``,url:``,transport:`http`,description:``,enabled:!0,headers:[],allowed_tools:``,disallowed_tools:``,user_paths:``,tool_timeout_seconds:``}}function F4(){return{server:``,status:``,instructions:``,tools:[],prompts:[],resources:[],templates:[]}}function I4(e){return String(e&&(e.slug||e.name)||``).trim()}function L4(e){return String(e&&e.status||``).trim()||`connecting`}function ANe(e){let t={connected:rwe,degraded:owe,connecting:lwe,disabled:fwe},n=L4(e);return t[n]?.()||n}function R4(e){switch(L4(e)){case`connected`:return`status-success`;case`degraded`:return String(e&&e.last_error||``).trim()?`status-error`:`status-warning`;case`connecting`:return`status-neutral`;default:return`status-unknown`}}function jNe(e,t){let n=L4(e),r=String(e&&e.last_error||``).trim();return r&&n!==`connected`?r:n===`connected`&&e&&e.connected_at?eV({date:(typeof t==`function`?t:String)(e.connected_at)}):``}function z4(e){return String(e&&e.transport||``)===`stdio`?rV():String(e&&e.url||``).trim()||`—`}function MNe(e){return oV({prompts:Number(e&&e.prompt_count||0),resources:Number(e&&e.resource_count||0)})}function B4(e){let t=String(e||``).normalize(`NFKD`).toLowerCase(),n=t.replace(/[\u0300-\u036f]/g,``).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,64).replace(/-+$/g,``);if(n)return n;let r=2166136261;for(let e of t)r=Math.imul((r^e.codePointAt(0))>>>0,16777619)>>>0;return`mcp-`+r.toString(16).padStart(8,`0`)}function NNe(e){return String(e||``).split(` +`).map(e=>e.trim()).filter(e=>e)}function PNe(e){return!e||typeof e!=`object`||Array.isArray(e)?[]:Object.keys(e).sort().map(t=>({name:t,value:String(e[t]||``)}))}function FNe(e){let t={};return(Array.isArray(e)?e:[]).forEach(e=>{let n=String(e&&e.name||``).trim();n&&(t[n]=String(e&&e.value||``))}),t}function INe(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.slug,e.url,e.transport,e.description,e.status].some(e=>String(e||``).toLowerCase().includes(r)))}function LNe(e){return{name:String(e.name||``).trim(),slug:I4(e),url:String(e.url||``).trim(),transport:e.transport===`sse`?`sse`:`http`,description:String(e.description||``).trim(),enabled:e.enabled!==!1,headers:PNe(e.headers),allowed_tools:(Array.isArray(e.allowed_tools)?e.allowed_tools:[]).join(`, `),disallowed_tools:(Array.isArray(e.disallowed_tools)?e.disallowed_tools:[]).join(`, `),user_paths:(Array.isArray(e.user_paths)?e.user_paths:[]).join(` +`),tool_timeout_seconds:e.tool_timeout_seconds?String(e.tool_timeout_seconds):``}}function RNe(e,t,n){let r=String(e.name||``).trim(),i=String(e.slug||B4(r)).trim().toLowerCase(),a=String(e.url||``).trim(),o=e.transport===`sse`?`sse`:`http`;if(!r)return{error:lV()};if(!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(i))return{error:fV()};if(t===`create`&&(n||[]).some(e=>I4(e)===i))return{error:hV({slug:i})};if(!a)return{error:vV()};let s,c=String(e.tool_timeout_seconds||``).trim();if(c!==``){let e=Number(c);if(!Number.isSafeInteger(e)||e<0)return{error:xV()};s=e}return{payload:{name:r,slug:i,url:a,transport:o,headers:FNe(e.headers),description:String(e.description||``).trim(),enabled:!!e.enabled,allowed_tools:cZ(e.allowed_tools),disallowed_tools:cZ(e.disallowed_tools),user_paths:NNe(e.user_paths),tool_timeout_seconds:s}}}function zNe(e,t){let n=t&&typeof t==`object`&&!Array.isArray(t)?t:{},r=e=>(Array.isArray(e)?e:[]).filter(e=>e&&typeof e==`object`);return{server:String(n.server||e||``).trim(),status:String(n.status||``).trim(),instructions:String(n.instructions||``).trim(),tools:r(n.tools),prompts:r(n.prompts),resources:r(n.resources),templates:r(n.templates)}}function BNe(e,t){return String(e&&e.server||``)+`_`+String(t||``)}function V4(e){let t=e||F4(),n=(e,t)=>{let n=String(e||``).trim(),r=String(t||``).trim();return n&&r?n+` — `+r:r||n},r=e=>n=>({key:e+`:`+String(n.name||``),name:String(n.name||``),aggregated:BNe(t,n.name),description:String(n.description||``).trim()});return[{key:`tools`,title:wV(),items:(t.tools||[]).map(r(`tool`))},{key:`prompts`,title:DV(),items:(t.prompts||[]).map(r(`prompt`))},{key:`resources`,title:AV(),items:(t.resources||[]).map(e=>({key:`resource:`+String(e.uri||``),name:String(e.uri||``),aggregated:``,description:n(e.name,e.description)}))},{key:`templates`,title:NV(),items:(t.templates||[]).map(e=>({key:`template:`+String(e.uri_template||``),name:String(e.uri_template||``),aggregated:``,description:n(e.name,e.description)}))}].filter(e=>e.items.length>0)}function VNe(e){return V4(e).length===0}function H4(e){return(e||[]).length}function U4(e){return(e||[]).filter(e=>L4(e)===`connected`).length}function W4(e){return(e||[]).filter(e=>e&&e.enabled!==!1&&L4(e)===`degraded`).length}function HNe(e,t){return!!e&&H4(t)>0}function UNe(e){return String(U4(e))+`/`+String(H4(e))}function WNe(e){return W4(e)>0?`is-degraded`:`is-healthy`}function GNe(e){let t=W4(e);if(t>0)return cu({count:t});let n=H4(e),r=U4(e);return n>0&&r===n?ac():du({connected:r,total:n})}function G4(){return{interval:`day`,buckets:[],summary:{requests:0},provider_latency:[]}}function KNe(e){let t=e&&typeof e==`object`?e:{};return{interval:t.interval===`hour`?`hour`:`day`,buckets:Array.isArray(t.buckets)?t.buckets:[],summary:t.summary&&typeof t.summary==`object`?t.summary:{requests:0},provider_latency:Array.isArray(t.provider_latency)?t.provider_latency:[]}}function qNe(e){return Number(e&&e.summary&&e.summary.requests||0)>0}function JNe(e){return(e&&Array.isArray(e.provider_latency)?e.provider_latency:[]).length>0}function YNe(e){let t=e&&e.summary?e.summary.success_rate:null;return t==null?`—`:(Math.round(Number(t)*1e3)/10).toFixed(1)+`%`}function K4(e,t){return Number(e&&e.summary&&e.summary[t]||0)}function q4(e){let t=Number(e);return Number.isFinite(t)?t>=6e4?(t/6e4).toFixed(1)+` min`:t>=1e3?(t/1e3).toFixed(2)+` s`:Math.round(t)+` ms`:`-`}function XNe(e){let t=e&&e.summary?e.summary.avg_duration_ms:null;return t==null?`—`:q4(Number(t))}function J4(e,t){try{let n={},r=J();return new Intl.DateTimeFormat(r,{timeZone:t,year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,hourCycle:`h23`}).formatToParts(e).forEach(e=>{n[e.type]=e.value}),{year:n.year,month:n.month,day:n.day,hour:Number(n.hour),shortDate:new Intl.DateTimeFormat(r,{timeZone:t,month:`short`,day:`numeric`}).format(e),fullDate:new Intl.DateTimeFormat(r,{timeZone:t,year:`numeric`,month:`short`,day:`numeric`}).format(e)}}catch{let t=new Intl.DateTimeFormat(J(),{month:`short`}).format(e);return{year:String(e.getFullYear()),month:t,day:String(e.getDate()),hour:e.getHours(),shortDate:t+` `+e.getDate(),fullDate:t+` `+e.getDate()+`, `+e.getFullYear()}}}function Y4(e,t,n){let r=new Date(e.start);if(Number.isNaN(r.getTime()))return String(e.start||``);let i=J4(r,n),a=i.shortDate;return t!==`hour`||i.hour===0?a:String(i.hour).padStart(2,`0`)+`:00`}function X4(e,t,n,r){let i=new Date(e.start);return Number.isNaN(i.getTime())?String(e.start||``):t===`hour`?r(e.start):J4(i,n).fullDate}function ZNe(e){return{ok:e(`var(--success)`),clientError:e(`var(--warning)`),serverError:e(`var(--danger)`),other:e(`color-mix(in srgb, var(--text-muted) 55%, transparent)`)}}function QNe(e,t,n={}){let r=n.interval===`hour`?`hour`:`day`,i=n.zone,a=n.resolve||(e=>e),o=n.formatTimestamp||(e=>String(e)),s=t.map(e=>Y4(e,r,i)),c=ZNe(a),l=a(`var(--bg-surface)`),u=e=>Number(e)||0,d=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderColor:l,borderWidth:1,borderSkipped:!1,borderRadius:2,maxBarThickness:28}),f=[d(`2xx`,t.map(e=>u(e.status_2xx)),c.ok),d(`4xx`,t.map(e=>u(e.status_4xx)),c.clientError),d(`5xx`,t.map(e=>u(e.status_5xx)),c.serverError)];return t.some(e=>u(e.status_other)>0)&&f.push(d(ku(),t.map(e=>u(e.status_other)),c.other)),{type:`bar`,data:{labels:s,datasets:f},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:t4(e,{title:e=>e.length?X4(t[e[0].dataIndex],r,i,o):``,label:e=>e.dataset.label+`: `+TZ(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),ql({total:TZ(t)})}})},scales:{x:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:e4(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:e4(),precision:0,callback:e=>mZ(e)}}}}}}function Z4(e=IMe()){let t={};return function(n){return n in t||(t[n]=e[Object.keys(t).length%e.length]),t[n]}}function $Ne(e,t,n,r={}){let i=r.interval===`hour`?`hour`:`day`,a=r.zone,o=r.formatTimestamp||(e=>String(e)),s=r.providerColor||Z4();return{type:`line`,data:{labels:t.map(e=>Y4(e,i,a)),datasets:n.map(e=>({label:e.provider,data:(e.avg_duration_ms||[]).map(e=>e==null?null:Number(e)),borderColor:s(e.provider),backgroundColor:s(e.provider),fill:!1,tension:.3,borderWidth:2,pointRadius:0,pointHoverRadius:4,spanGaps:i===`hour`&&2}))},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:t4(e,{title:e=>e.length?X4(t[e[0].dataIndex],i,a,o):``,label:e=>{let t=(n[e.datasetIndex]&&n[e.datasetIndex].requests||[])[e.dataIndex],r=Number(t)||0;return e.dataset.label+`: `+q4(e.parsed.y)+(r>0?` (`+r.toLocaleString()+` req)`:``)}})},scales:{x:{grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:e4(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:e4(),callback:e=>q4(e)}}}}}}var ePe=class{#e=j(Xt(E4()));get status(){return L(this.#e)}set status(e){M(this.#e,e,!0)}#t=j(!1);get loading(){return L(this.#t)}set loading(e){M(this.#t,e,!0)}#n=j(!1);get loadedOnce(){return L(this.#n)}set loadedOnce(e){M(this.#n,e,!0)}#r=j(!1);get detailsExpanded(){return L(this.#r)}set detailsExpanded(e){M(this.#r,e,!0)}#i=j(Xt({}));get cardOverrides(){return L(this.#i)}set cardOverrides(e){M(this.#i,e,!0)}#a=null;#o=null;#s=!1;initPreferences(){if(this.#s)return;this.#s=!0;let e=uNe(Wi());this.detailsExpanded=e.detailsExpanded,this.cardOverrides=e.cardOverrides}cardExpanded(e){return fNe(this.cardOverrides,this.detailsExpanded,e)}toggleCard(e){let t=e&&e.name?String(e.name):``;if(!t)return;let n={...this.cardOverrides};n[t]=!this.cardExpanded(e),this.cardOverrides=n,D4(Wi(),this.cardOverrides)}toggleDetails(){this.detailsExpanded=!this.detailsExpanded,this.cardOverrides={},dNe(Wi(),this.detailsExpanded),D4(Wi(),this.cardOverrides)}detailsToggleLabel(){return this.detailsExpanded?Vme():Rme()}async fetch(){this.initPreferences(),this.#a&&this.#a.abort();let e=new AbortController;this.#a=e,this.loading=!0;try{let t=await JX(`/admin/providers/status`,{label:`provider status`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.status=E4(),this.#l();return}let n=t.data&&typeof t.data==`object`?t.data:E4();n.summary||=E4().summary,Array.isArray(n.providers)||(n.providers=[]),this.status=n,this.#c()}catch(e){if(XX(e))return;console.error(`Failed to fetch provider status:`,e),this.status=E4(),this.#l()}finally{this.#a===e&&(this.#a=null,this.loading=!1,this.loadedOnce=!0)}}#c(){this.#l(),vNe(this.status.providers)&&(this.#o=setTimeout(()=>{this.#o=null,this.fetch()},sNe))}#l(){this.#o&&=(clearTimeout(this.#o),null)}stopPolling(){this.#l()}},tPe=class{#e=j(Xt(G4()));get stats(){return L(this.#e)}set stats(e){M(this.#e,e,!0)}#t=j(!1);get loading(){return L(this.#t)}set loading(e){M(this.#t,e,!0)}#n=0;async fetch(){let e=++this.#n;this.loading=!0;try{let t=await JX(`/admin/audit/stats?`+kZ.queryStr(),{label:`audit stats`});if(t.stale||e!==this.#n)return;if(!t.ok){this.stats=G4();return}this.stats=KNe(t.data)}catch(t){if(console.error(`Failed to fetch audit stats:`,t),e!==this.#n)return;this.stats=G4()}finally{e===this.#n&&(this.loading=!1)}}},nPe=class{#e=j(Xt([]));get servers(){return L(this.#e)}set servers(e){M(this.#e,e,!0)}#t=j(!1);get available(){return L(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return L(this.#n)}set loading(e){M(this.#n,e,!0)}async fetch(){if(await ZX.ensureLoaded(),!ZX.mcpVisible()){this.available=!1,this.servers=[];return}this.loading=!0;try{let e=await JX(`/admin/mcp-servers`,{label:`mcp servers`});if(e.stale)return;if(e.status===503||e.status===404){this.available=!1,this.servers=[];return}if(this.available=!0,!e.ok){this.servers=[];return}this.servers=Array.isArray(e.data)?e.data:[]}catch(e){console.error(`Failed to fetch MCP servers:`,e),this.servers=[]}finally{this.loading=!1}}},rPe=class{#e=j(Xt([]));get data(){return L(this.#e)}set data(e){M(this.#e,e,!0)}#t=j(`tokens`);get mode(){return L(this.#t)}set mode(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return L(this.#n)}set loading(e){M(this.#n,e,!0)}#r=null;async fetch(){this.#r&&this.#r.abort();let e=new AbortController;this.#r=e,this.loading=!0;try{let t=await JX(`/admin/usage/daily?days=365&interval=daily`,{label:`calendar`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.data=[];return}this.data=Array.isArray(t.data)?t.data:[]}catch(e){if(XX(e))return;console.error(`Failed to fetch calendar data:`,e),this.data=[]}finally{this.#r===e&&(this.#r=null,this.loading=!1)}}},Q4=new ePe,$4=new tPe,e3=new nPe,t3=new rPe,n3=(e,t=f,n=f,r=f,i=f)=>{var a=iPe(),o=N(a),s=N(o,!0);D(o);var c=F(o,2),l=N(c),u=N(l),d=N(u,!0);D(u),Ve(),D(l);var p=F(l,4),m=N(p),h=N(m,!0);D(m),Ve(),D(p);var g=F(p,4),_=N(g,!0);D(g),D(c),D(a),I((e,n,r,i,a,o)=>{V(s,t()),G(l,`title`,e),V(d,n),G(p,`title`,r),V(h,i),G(g,`title`,a),V(_,o)},[()=>hZ(ype(),n()),()=>mZ(n()),()=>hZ(Spe(),r()),()=>mZ(r()),()=>hZ(kpe(),i()),()=>mZ(i())]),B(e,a)},r3=(e,t=f,n=f,r=f,i=f,a=f,o=f)=>{var s=sPe(),c=N(s),l=N(c,!0);D(c);var u=F(c,2),d=N(u,!0);D(u);var p=F(u,2),m=e=>{var t=aPe(),n=N(t,!0);D(t),I(()=>{G(t,`aria-label`,o().title),G(t,`title`,o().title),V(n,a())}),R(`click`,t,function(...e){o().onclick?.apply(this,e)}),B(e,t)},h=e=>{var t=oPe(),n=N(t,!0);D(t),I(()=>V(n,a())),B(e,t)};H(p,e=>{o()?e(m):e(h,-1)}),D(s),I(()=>{W(s,1,`card provider-status-flag ${t()??``} ${n()??``}`,`svelte-6tr9cf`),V(l,r()),V(d,i())}),B(e,s)},iPe=z(`
                    i + o =
                    `),aPe=z(``),oPe=z(` `),sPe=z(`
                    `),cPe=z(`
                    `),lPe=z(`
                    `);function uPe(e,t){O(t,!0);let n=A(()=>PZ.summary),r=A(()=>PZ.cacheOverview),i=A(()=>PZ.cacheAnalyticsEnabled()),a=A(()=>Q4.status.summary);function o(){let e=document.getElementById(`provider-status-section`);e&&(e.scrollIntoView({behavior:`smooth`,block:`start`}),e.focus({preventScroll:!0}))}var s=lPe(),c=N(s);{let e=A(()=>Go()),t=A(()=>YMe(L(n)));n3(c,()=>L(e),()=>L(n).total_input_tokens,()=>L(n).total_output_tokens,()=>L(t))}var l=F(c,2),u=N(l),d=N(u,!0);D(u);var f=F(u,2),p=N(f,!0);D(f),D(l);var m=F(l,2),h=e=>{var t=cPe(),n=N(t),i=N(n,!0);D(n);var a=F(n,2),o=N(a,!0);D(a),D(t),I((e,t)=>{V(i,e),V(o,t)},[()=>Yo(),()=>uZ(L(r).summary.total_hits)]),B(e,t)};H(m,e=>{L(i)&&e(h)});var g=F(m,2),_=N(g),v=N(_,!0);D(_);var y=F(_,2),b=N(y,!0);D(y),D(g);var x=F(g,2),S=e=>{{let t=A(()=>Rpe()),n=A(()=>ZMe(L(r)));n3(e,()=>L(t),()=>L(r).summary.total_input_tokens,()=>L(r).summary.total_output_tokens,()=>L(n))}};H(x,e=>{L(i)&&e(S)});var C=F(x,2),w=N(C),T=N(w,!0);D(w);var ee=F(w,2),E=N(ee);X2(E,{build:()=>oNe(S4(L(n)),n4(`var(--token-prompt)`),n4(`var(--bg-surface-hover)`))});var te=F(E,2),ne=N(te,!0);D(te),D(ee),D(C);var re=F(C,2),ie=e=>{{let t=A(()=>pNe(L(a))),n=A(()=>Xpe()),r=A(()=>hNe(L(a))),i=A(()=>_Ne(L(a))),s=A(()=>gNe(L(a))?{title:$pe(),onclick:o}:null);r3(e,()=>`provider-status-overview-card`,()=>L(t),()=>L(n),()=>L(r),()=>L(i),()=>L(s))}};H(re,e=>{L(a).total>0&&e(ie)});var ae=F(re,2),oe=e=>{{let t=A(()=>WNe(e3.servers)),n=A(()=>mo()),r=A(()=>UNe(e3.servers)),i=A(()=>GNe(e3.servers)),a=A(()=>({title:nme(),onclick:()=>wX.navigate(`mcp-servers`)}));r3(e,()=>`mcp-servers-flag`,()=>L(t),()=>L(n),()=>L(r),()=>L(i),()=>L(a))}},se=A(()=>HNe(e3.available,e3.servers));H(ae,e=>{L(se)&&e(oe)}),D(s),I((e,t,n,r,i,a,o,s,c)=>{V(d,e),G(f,`title`,t),V(p,n),V(v,r),V(b,i),G(C,`title`,a),V(T,o),G(ee,`aria-label`,s),V(ne,c)},[()=>Jo(),()=>XMe(L(n),L(r),L(i)),()=>uZ(_4(L(n),L(r),L(i))),()=>Xo(),()=>dZ(L(n).total_cost),()=>Wpe(),()=>Vpe(),()=>qpe({rate:C4(L(n))}),()=>C4(L(n))]),B(e,s),k()}Sr([`click`]);var dPe=z(` `),fPe=z(`
                    `),pPe=z(` `),mPe=z(`
                    `),hPe=z(`

                    `);function gPe(e,t){O(t,!0);let n=A(()=>PZ.cacheAnalyticsEnabled()),r=A(()=>y4(PZ.summary,PZ.cacheOverview,L(n))),i=A(()=>eNe(PZ.summary,PZ.cacheOverview,L(n))),a=A(()=>$Me(PZ.summary,PZ.cacheOverview,L(n)));var o=hPe(),s=N(o),c=N(s),l=N(c,!0);D(c);var u=F(c,2),d=N(u,!0);D(u),D(s);var f=F(s,2);let p;var m=N(f);U(m,17,()=>L(i),e=>e.key,(e,t)=>{var n=fPe(),r=N(n),i=e=>{var n=dPe(),r=N(n);D(n),I(()=>V(r,`${L(t).pct??``}%`)),B(e,n)};H(r,e=>{L(t).pct>=8&&e(i)}),D(n),I(e=>{hi(n,`width: ${L(t).pct??``}%; background: var(${L(t).colorVar??``})`),G(n,`title`,e)},[()=>b4(L(t))]),B(e,n)});var h=F(m,2),g=e=>{var t=pPe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>dc()]),B(e,t)};H(h,e=>{L(a)||e(g)}),D(f);var _=F(f,2);U(_,21,()=>L(r),e=>e.key,(e,t)=>{var n=mPe(),r=N(n),i=F(r,2),a=N(i,!0);D(i);var o=F(i,2),s=N(o);D(o);var c=F(o,2),l=N(c,!0);D(c),D(n),I((e,i)=>{G(n,`title`,e),hi(r,`background: var(${L(t).colorVar??``})`),V(a,L(t).label),V(s,`${L(t).pct??``}%`),V(l,i)},[()=>b4(L(t)),()=>uZ(L(t).tokens)]),B(e,n)}),D(_),D(o),I((e,t,n)=>{V(l,e),V(d,t),p=W(f,1,`cache-meter-bar svelte-1yzecxj`,null,p,{"is-empty":!L(a)}),G(f,`aria-label`,n)},[()=>Go(),()=>cc(),()=>tNe(L(i))]),B(e,o),k()}var _Pe=z(``);function i3(e,t){let n=K(t,`size`,3,16),r=K(t,`label`,3,`Loading`),i=K(t,`class`,3,``);var a=_Pe();I(()=>{W(a,1,ui([`spinner`,i()]),`svelte-b54l9o`),hi(a,`--spinner-size: ${n()??``}px`),G(a,`aria-label`,r())}),B(e,a)}var vPe=Dr(` `),yPe=Dr(``);function a3(e,t){let n=K(t,`label`,3,`No data`);var r=yPe(),i=F(N(r),9),a=e=>{var t=vPe(),r=N(t,!0);D(t),I(()=>V(r,n())),B(e,t)};H(i,e=>{n()&&e(a)}),D(r),I(()=>{G(r,`role`,n()?`img`:void 0),G(r,`aria-label`,n()||void 0),G(r,`aria-hidden`,n()?void 0:`true`)}),B(e,r)}var o3=z(`
                    `),bPe=z(`

                    `);function xPe(e,t){O(t,!0);let n=[{value:`daily`,label:zee},{value:`weekly`,label:Hee},{value:`monthly`,label:Gee},{value:`yearly`,label:Jee}];function r(e){kZ.interval=e,t.onintervalchange?.()}function i(){let e=PZ.daily;if(e.length===0)return null;let t=kZ.rangeStart(),n=kZ.rangeEnd(),r=rNe(x4(e,kZ.interval,t,n),x4(Array.isArray(PZ.cacheOverview.daily)?PZ.cacheOverview.daily:[],kZ.interval,t,n));return aNe($2(),r,{cacheEnabled:PZ.cacheAnalyticsEnabled(),resolve:n4})}var a=bPe(),o=N(a),s=N(o),c=N(s,!0);D(s);var l=F(s,2);{let e=A(()=>Iee()),t=A(()=>n.map(e=>({value:e.value,label:e.label()})));Z2(l,{get ariaLabel(){return L(e)},get options(){return L(t)},get value(){return kZ.interval},onchange:r})}D(o);var u=F(o,2),d=N(u);X2(d,{build:i});var f=F(d,2),p=e=>{var t=o3(),n=N(t);{let e=A(()=>Zee());i3(n,{size:24,get label(){return L(e)}})}D(t),B(e,t)},m=e=>{var t=o3();a3(N(t),{}),D(t),B(e,t)};H(f,e=>{PZ.daily.length===0&&PZ.loading?e(p):PZ.daily.length===0&&!Y.authError&&e(m,1)}),D(u),D(a),I(e=>V(c,e),[()=>kZ.chartTitle()]),B(e,a),k()}var s3=10,SPe=.7;function CPe(e,t){if(e<=0||t<=0)return 0;let n=(e/t)**+SPe,r=Math.ceil(n*s3);return r<1?1:r>s3?s3:r}function wPe(){let e=[];for(let t=0;t<=s3;t++)e.push(t);return e}function TPe(e,t,n){let r={};(e||[]).forEach(e=>{r[e.date]=e});let i=MX(PX(n,-364)),a=i.getUTCDay();i.setUTCDate(i.getUTCDate()-a);let o=[];for(let e=new Date(i);NX(e)<=n;e.setUTCDate(e.getUTCDate()+1)){let n=NX(e),i=r[n],a=0;i&&(a=t===`costs`?i.total_cost==null?0:i.total_cost:i.total_tokens||0),o.push({dateStr:n,value:a,level:0,empty:!1})}let s=0;for(let e=0;es&&(s=o[e].value);for(let e=0;e0){for(;l.length<7;)l.push({dateStr:``,value:0,level:0,empty:!0});c.push(l)}return c}function EPe(e){let t=MX(PX(e,-364)),n=t.getUTCDay();t.setUTCDate(t.getUTCDate()-n);let r=new Intl.DateTimeFormat(J(),{month:`short`,timeZone:`UTC`}),i=[],a={},o=0;for(let n=new Date(t);NX(n)<=e;n.setUTCDate(n.getUTCDate()+7),o++){let t=null;if(o===0)t=new Date(n);else for(let r=0;r<7;r++){let i=new Date(n);if(i.setUTCDate(n.getUTCDate()+r),NX(i)>e)break;if(i.getUTCDate()===1){t=i;break}}if(!t)continue;let s=t.getUTCFullYear()+`-`+t.getUTCMonth();a[s]||(i.push({label:r.format(t),col:o,key:s}),a[s]=!0)}for(let e=0;e
                    `),jPe=z(`
                    `),MPe=z(`
                    `),NPe=z(`
                    `),PPe=z(`
                    `),FPe=z(`

                    `,1);function IPe(e,t){O(t,!0);let n=j(Xt({show:!1,x:0,y:0,text:``})),r=A(()=>UX.currentDateKey()),i=A(()=>TPe(t3.data,t3.mode,L(r))),a=A(()=>EPe(L(r)));function o(e,t){t.empty||M(n,{show:!0,x:e.clientX,y:e.clientY,text:kPe(t,t3.mode)},!0)}function s(){M(n,{show:!1,x:0,y:0,text:``},!0)}var c=FPe(),l=P(c),u=N(l),d=N(u),f=N(d,!0);D(d);var p=F(d,2),m=e=>{{let t=A(()=>Rc());i3(e,{size:14,get label(){return L(t)}})}};H(p,e=>{t3.loading&&t3.data.length===0&&e(m)});var h=F(p,2);{let e=A(()=>Vc()),t=A(()=>[{value:`tokens`,label:Go()},{value:`costs`,label:Wc()}]);Z2(h,{get ariaLabel(){return L(e)},get options(){return L(t)},get value(){return t3.mode},onchange:e=>t3.mode=e})}D(u);var g=F(u,2),_=N(g),v=F(N(_),2),y=N(v,!0);D(v);var b=F(v,4),x=N(b,!0);D(b);var S=F(b,4),C=N(S,!0);D(S),Ve(2),D(_);var w=F(_,2),T=N(w);U(T,21,()=>L(a),e=>e.key,(e,t)=>{var n=APe(),r=N(n,!0);D(n),I(()=>{hi(n,`grid-column: ${L(t).col+1} / span ${L(t).span??``}`),V(r,L(t).label)}),B(e,n)}),D(T);var ee=F(T,2);U(ee,21,()=>L(i),Lr,(e,t,n)=>{var r=MPe();U(r,23,()=>L(t),(e,t)=>n+`-`+t,(e,t)=>{var n=jPe();I(()=>W(n,1,ui([`contribution-calendar-cell`,L(t).empty?`empty`:`level-${L(t).level}`]),`svelte-3hfxuq`)),xr(`mouseenter`,n,e=>o(e,L(t))),xr(`mouseleave`,n,s),B(e,n)}),D(r),B(e,r)}),D(ee),D(w),D(g);var E=F(g,2),te=N(E),ne=N(te),re=N(ne,!0);D(ne),D(te);var ie=F(te,2),ae=N(ie),oe=N(ae,!0);D(ae);var se=F(ae,2);U(se,16,wPe,e=>e,(e,t)=>{var n=NPe();I(()=>W(n,1,`contribution-calendar-cell level-${t??``}`,`svelte-3hfxuq`)),B(e,n)});var ce=F(se,2),le=N(ce,!0);D(ce),D(ie),D(E),D(l);var ue=F(l,2),de=e=>{var t=PPe(),r=N(t,!0);D(t),I(()=>{hi(t,`left: ${L(n).x??``}px; top: ${L(n).y-40}px`),V(r,L(n).text)}),B(e,t)};H(ue,e=>{L(n).show&&e(de)}),I((e,t,n,r,i,a,o)=>{V(f,e),V(y,t),V(x,n),V(C,r),V(re,i),V(oe,a),V(le,o)},[()=>Fc(),()=>qc(),()=>Xc(),()=>$c(),()=>DPe(t3.data,t3.mode),()=>nl(),()=>al()]),B(e,c),k()}var LPe=z(``),RPe=z(`

                    `),zPe=z(`
                    `);function c3(e,t){O(t,!0);let n=K(t,`label`,3,`help`),r=K(t,`text`,3,``),i=K(t,`open`,15,!1),a=K(t,`external`,3,!1),o=A(()=>!!r()||!!t.help||a());var s=zPe(),c=N(s),l=N(c);qr(l,()=>t.title??f);var u=F(l,2),d=e=>{var r=LPe();let a;I(()=>{a=W(r,1,`inline-help-toggle svelte-y40or3`,null,a,{"is-open":i()}),G(r,`aria-label`,(i()?`Hide `:`Show `)+n()),G(r,`aria-expanded`,i()),G(r,`aria-controls`,t.copyId)}),R(`click`,r,()=>i(!i())),B(e,r)};H(u,e=>{L(o)&&e(d)}),qr(F(u,2),()=>t.extra??f),D(c);var p=F(c,2),m=e=>{var n=RPe(),i=N(n),a=e=>{var n=kr();qr(P(n),()=>t.help),B(e,n)},o=e=>{var t=Or();I(()=>V(t,r())),B(e,t)};H(i,e=>{t.help?e(a):e(o,-1)}),D(n),I(()=>G(n,`id`,t.copyId)),B(e,n)};H(p,e=>{i()&&L(o)&&!a()&&e(m)}),D(s),B(e,s),k()}Sr([`click`]);var BPe=z(`

                    `),VPe=z(`
                    `),HPe=z(`

                    2xx 4xx 5xx
                    `,1);function UPe(e,t){O(t,!0);let n=Z4(),r=A(()=>$4.stats);function i(){return{interval:L(r).interval,zone:UX.effectiveTimezone(),resolve:n4,formatTimestamp:e=>UX.formatTimestamp(e)}}var a=kr(),o=P(a),s=e=>{var t=HPe(),a=P(t),o=N(a),s=N(o),c=N(s,!0);D(s);var l=F(s,2),u=N(l),d=N(u),f=N(d,!0);D(d);var p=F(d,2),m=N(p,!0);D(p),D(u);var h=F(u,2),g=F(N(h),4),_=N(g,!0);D(g),D(h);var v=F(h,2),y=F(N(v),4),b=N(y,!0);D(y),D(v);var x=F(v,2),S=F(N(x),4),C=N(S,!0);D(S),D(x),D(l),D(o);var w=F(o,2);X2(N(w),{build:()=>QNe($2(),L(r).buckets,i())}),D(w),D(a);var T=F(a,2),ee=e=>{var t=VPe(),a=N(t),o=N(a);{let e=e=>{var t=BPe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>_me()]),B(e,t)},t=A(()=>bme()),n=A(()=>Cme());c3(o,{copyId:`audit-latency-help-copy`,get label(){return L(t)},get text(){return L(n)},title:e,$$slots:{title:!0}})}var s=F(o,2),c=N(s),l=N(c),u=N(l,!0);D(l);var d=F(l,2),f=N(d,!0);D(d),D(c),D(s),D(a);var p=F(a,2);X2(N(p),{build:()=>$Ne($2(),L(r).buckets,L(r).provider_latency,{...i(),providerColor:n})}),D(p),D(t),I((e,t,n)=>{G(c,`title`,e),V(u,t),V(f,n)},[()=>Eme(),()=>kme(),()=>XNe(L(r))]),B(e,t)},E=A(()=>JNe(L(r)));H(T,e=>{L(E)&&e(ee)}),I((e,t,n,r,i,a,o,s)=>{V(c,e),G(l,`aria-label`,t),G(u,`title`,n),V(f,r),V(m,i),V(_,a),V(b,o),V(C,s)},[()=>ame(),()=>cme(),()=>dme(),()=>mme(),()=>YNe(L(r)),()=>uZ(K4(L(r),`status_2xx`)),()=>uZ(K4(L(r),`status_4xx`)),()=>uZ(K4(L(r),`status_5xx`))]),B(e,t)},c=A(()=>qNe(L(r)));H(o,e=>{L(c)&&e(s)}),B(e,a),k()}var l3=(e,t=f,n=f,r)=>{let i=yt(()=>h(r?.(),!1));var a=KPe(),o=N(a),s=N(o,!0);D(o);var c=F(o,2),l=e=>{var t=WPe(),r=N(t,!0);D(t),I(()=>V(r,n())),B(e,t)},u=e=>{var t=GPe(),r=N(t,!0);D(t),I(()=>V(r,n())),B(e,t)};H(c,e=>{L(i)?e(l):e(u,-1)}),D(a),I(()=>V(s,t())),B(e,a)},WPe=z(` `),GPe=z(` `),KPe=z(`
                    `),qPe=z(`

                    `),JPe=z(`
                    `),YPe=z(`
                    `),XPe=z(`
                    `),ZPe=z(`
                    `),QPe=z(`

                    `);function $Pe(e,t){O(t,!0);let n=A(()=>ENe(t.provider)),r=A(()=>[[bs(),t.provider.config?.base_url],[Cs(),t.provider.config?.api_version]].filter(([,e])=>!!e));var i=QPe();let a;var o=N(i),s=N(o),c=N(s,!0);D(s);var l=F(s,2),u=e=>{var n=qPe(),r=N(n,!0);D(n),I(()=>V(r,t.provider.last_error)),B(e,n)};H(l,e=>{t.provider.last_error&&e(u)});var d=F(l,2),f=e=>{var r=ZPe(),i=N(r);{let e=A(()=>Es()),n=A(()=>DNe(t.provider));l3(i,()=>L(e),()=>L(n))}var a=F(i,2),o=e=>{var r=JPe(),i=N(r),a=N(i,!0);D(i);var o=F(i,2),s=N(o),c=N(s,!0);D(s),D(o),D(r),I((e,t)=>{V(a,e),W(s,1,ui([`provider-status-health-state`,L(n)]),`svelte-6y9wjv`),V(c,t)},[()=>ks(),()=>TNe(t.provider)]),B(e,r)},s=A(()=>M4(t.provider));H(a,e=>{L(s)&&e(o)});var c=F(a,2),l=e=>{var n=XPe(),r=N(n),i=N(r,!0);D(r);var a=F(r,2);U(a,21,()=>N4(t.provider),e=>e.model,(e,t)=>{var n=YPe();let r;var i=N(n),a=N(i,!0);D(i);var o=F(i,2),s=N(o,!0);D(o),D(n),I((e,i)=>{r=W(n,1,`provider-status-health-model svelte-6y9wjv`,null,r,{"is-flagged":L(t).flagged}),G(n,`title`,e),V(a,L(t).model),V(s,i)},[()=>kNe(L(t)),()=>ONe(L(t))]),B(e,n)}),D(a),D(n),I(e=>V(i,e),[()=>Ms()]),B(e,n)},u=A(()=>N4(t.provider).length>0);H(c,e=>{L(u)&&e(l)}),D(r),B(e,r)},p=A(()=>j4(t.provider));H(d,e=>{L(p)&&e(f)});var m=F(d,2),h=N(m);U(h,17,()=>L(r),([e,t])=>e,(e,t)=>{var n=A(()=>g(L(t),2));l3(e,()=>L(n)[0],()=>L(n)[1],()=>!0)});var _=F(h,2);{let e=A(()=>Fs()),n=A(()=>CNe(t.provider));l3(_,()=>L(e),()=>L(n))}var v=F(_,2);{let e=A(()=>Rs()),n=A(()=>xNe(t.provider));l3(v,()=>L(e),()=>L(n))}var y=F(v,2);{let e=A(()=>Vs()),n=A(()=>SNe(t.provider));l3(y,()=>L(e),()=>L(n))}D(m),D(o),D(i),I(()=>{a=W(i,1,`provider-status-details svelte-6y9wjv`,null,a,{"is-expanded":t.expanded,"is-collapsed":!t.expanded}),G(i,`aria-hidden`,!t.expanded),V(c,t.provider.status_reason)}),B(e,i),k()}var eFe=z(` `),tFe=z(``),nFe=z(`

                    `);function rFe(e,t){O(t,!0);let n=A(()=>Q4.cardExpanded(t.provider)),r=e=>UX.formatTimestamp(e);var i=nFe(),a=N(i),o=N(a),s=N(o),c=N(s),l=N(c,!0);D(c);var u=F(c,2),d=e=>{var n=eFe(),r=N(n);D(n),I(e=>V(r,`(${e??``})`),[()=>k4(t.provider)]),B(e,n)},f=A(()=>k4(t.provider));H(u,e=>{L(f)&&e(d)});var p=F(u,2),m=e=>{var n=tFe();I((e,t,r)=>{G(n,`href`,e),G(n,`aria-label`,t),G(n,`title`,r)},[()=>A4(t.provider),()=>$o({provider:k4(t.provider)||t.provider.name}),()=>$o({provider:k4(t.provider)||t.provider.name})]),B(e,n)},h=A(()=>A4(t.provider));H(p,e=>{L(h)&&e(m)}),D(s),D(o);var g=F(o,2),_=N(g,!0);D(g),D(a);var v=F(a,2),y=N(v),b=N(y),x=N(b,!0);D(b);var S=F(b,2),C=N(S,!0);D(S),D(y);var w=F(y,2),T=N(w),ee=N(T,!0);D(T);var E=F(T,2),te=N(E,!0);D(E),D(w),D(v);var ne=F(v,2);$Pe(ne,{get provider(){return t.provider},get expanded(){return L(n)}});var re=F(ne,2);let ie;q(N(re),{get icon(){return QY},class:`provider-status-card-toggle-icon`}),D(re),D(i),I((e,r,i,a,o,s,c,u,d)=>{V(l,t.provider.name),W(g,1,`provider-status-pill ${e??``}`,`svelte-nopjmh`),G(g,`title`,r),V(_,t.provider.status_label),V(x,i),V(C,a),V(ee,o),G(E,`title`,s),V(te,c),ie=W(re,1,`provider-status-card-toggle svelte-nopjmh`,null,ie,{"is-expanded":L(n)}),G(re,`aria-expanded`,L(n)),G(re,`aria-label`,u),G(re,`title`,d)},[()=>mNe(t.provider.status),()=>wNe(t.provider),()=>ns(),()=>uZ(t.provider.runtime?.discovered_model_count),()=>as(),()=>bNe(t.provider,r),()=>yNe(t.provider,r),()=>L(n)?ds({provider:t.provider.name}):cs({provider:t.provider.name}),()=>L(n)?_s():ms()]),R(`click`,re,()=>Q4.toggleCard(t.provider)),B(e,i),k()}Sr([`click`]);var iFe=z(`

                    `),aFe=z(`
                    `);function oFe(e,t){O(t,!0);let n=A(()=>Q4.status.providers);var r=kr(),i=P(r),a=e=>{var t=iFe(),r=N(t),i=N(r),a=N(i),o=N(a,!0);D(a),D(i);var s=F(i,2),c=N(s),l=N(c,!0);D(c);var u=F(c,2);let d;D(s),D(r);var f=F(r,2);U(f,21,()=>L(n),e=>e.name,(e,t)=>{rFe(e,{get provider(){return L(t)}})}),D(f),D(t),I((e,t,n)=>{V(o,e),G(s,`aria-checked`,Q4.detailsExpanded),G(s,`title`,t),V(l,n),d=W(u,1,`provider-status-toggle-track svelte-1kx3uw4`,null,d,{"is-active":Q4.detailsExpanded})},[()=>Mme(),()=>Q4.detailsToggleLabel(),()=>Q4.detailsToggleLabel()]),R(`click`,s,()=>Q4.toggleDetails()),B(e,t)},o=e=>{var t=aFe(),n=N(t);{let e=A(()=>Fme());i3(n,{size:18,get label(){return L(e)}})}D(t),B(e,t)};H(i,e=>{L(n).length>0?e(a):Q4.loading&&!Q4.loadedOnce&&e(o,1)}),B(e,r),k()}Sr([`click`]);var sFe=z(`
                    `);function u3(e,t){O(t,!0);function n(){PZ.fetchUsage(),PZ.fetchCacheOverview(``),$4.fetch(),Q4.fetch(),e3.fetch(),t3.fetch()}function r(){PZ.fetchUsage(),PZ.fetchCacheOverview(``),$4.fetch()}function i(){r(),t3.fetch()}hn(()=>{if(Y.refreshTick,wX.page===`overview`)return sr(()=>{n(),h4.start()}),()=>{h4.stop(),Q4.stopPolling()}});var a=sFe(),o=N(a);JMe(o,{});var s=F(o,2),c=N(s),l=N(c,!0);D(c),D(s);var u=F(s,2);IZ(N(u),{onchange:i}),D(u);var d=F(u,2);jZ(d,{});var f=F(d,2);uPe(f,{});var p=F(f,2);gPe(p,{});var m=F(p,2);xPe(m,{onintervalchange:r});var h=F(m,2);IPe(h,{});var g=F(h,2);UPe(g,{}),oFe(F(g,2),{}),D(a),I(e=>V(l,e),[()=>Nee()]),B(e,a),k()}var cFe=`/admin/live/logs?types=audit,usage`;function d3(e,t,n){return!!t&&String(e&&e.id||``).trim()===t||!!n&&String(e&&e.request_id||``).trim()===n}function lFe(e){switch(e){case`date_range`:return jce();case`filters`:return Pce();case`pagination`:return Lce();default:return``}}function uFe(e){let t=cFe,n=Number(e||0);return Number.isFinite(n)&&n>0&&(t+=`&cursor=`+encodeURIComponent(String(n))),t}function dFe(){return{async consumeLiveLogsBody(e){await a4(e,e=>this.applyLiveLogEvent(e))},applyLiveLogEvent(e){if(!e||typeof e!=`object`)return;let t=Number(e.seq||0);Number.isFinite(t)&&t>this.liveLogsLastSeq&&(this.liveLogsLastSeq=t);let n=String(e.type||``).trim();if(n!==`heartbeat`){if(n===`reset`){this.reloadLiveLogSources();return}if(n===`audit.removed`){this.removeLiveAuditEntry(e.data);return}if(n.indexOf(`audit.`)===0){this.mergeLiveAuditEntry(e.data||{},n);return}n.indexOf(`usage.`)===0&&(this.mergeLiveUsageEntry(e.data||{},n),typeof this.noteLiveTokenUsage==`function`&&this.noteLiveTokenUsage(n))}},reloadLiveLogSources(){typeof this.fetchUsage==`function`&&this.fetchUsage(),this.page===`audit-logs`&&typeof this.fetchAuditLog==`function`&&this.fetchAuditLog(!0)},auditLivePauseReason(){return!this.auditLog||this.auditLog.offset!==0?`pagination`:this.auditSearch||this.auditMethod||this.auditStatusCode||this.auditStream?`filters`:!this.followsToday&&(this.customStartDate||this.customEndDate)?`date_range`:null},auditLiveInsertAllowed(){return!this.auditLivePauseReason()},usageLiveInsertAllowed(){return this.usageLog&&this.usageLog.offset===0&&!this.usageLogSearch&&!this.usageFilterModel&&!this.usageFilterProvider&&!this.usageFilterLabel&&!this.usageFilterUserPath&&!this.usageFilterSession},mergeLiveAuditEntry(e,t){if(!e||typeof e!=`object`)return;let n=String(e.id||e.request_id||``).trim();if(!n)return;let r=String(e.request_id||``).trim(),i=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],a=i.findIndex(e=>d3(e,n,r)),o=a>=0&&i[a]||{},s=t===`audit.detail`,c=s?{...e,_detail_loaded:!0,_response_partial:!1,bodies_omitted:!1}:this.liveAuditPatch(o,e,t);if(a>=0){let e=this.mergeLiveAuditPatch(o,c);return i.splice(a,1,e),this.auditLog.entries=[...i],this.regroupLiveAuditHead(e),s||this.fetchExpandedAuditDetailIfReady(e),this.cacheMergedAuditRecord(e,t),e}let l=this.mergeLiveAuditChild(e,c);if(l)return s||this.fetchExpandedAuditDetailIfReady(l),this.cacheMergedAuditRecord(l,t),l;if(!this.auditLiveInsertAllowed()){this.cacheMergedAuditRecord(c,t);return}if(!s&&this.auditGroupSessions){let e=this.foldLiveAuditIntoThread(c);if(e)return this.fetchExpandedAuditDetailIfReady(e),this.cacheMergedAuditRecord(e,t),e}this.auditLog.entries=[this.mergeLiveAuditUsagePatch(c),...i].slice(0,this.auditLog.limit||25),this.auditLog.total=Number(this.auditLog.total||0)+1;let u=this.auditLog.entries[0];return s||this.fetchExpandedAuditDetailIfReady(u),this.cacheMergedAuditRecord(u,t),u},liveAuditPatch(e,t,n){let r=this.liveAuditStateAfter(e._live_state,n),i=this.liveAuditEventFlushed(e._live_state)||this.liveAuditEventFlushed(r),a={...t,_live:!0,_live_state:r,_audit_flushed:i,_live_pending:!i};return n===`audit.stream`?a._response_partial=!0:this.liveAuditStateSettled(n)&&(a._response_partial=!1),a},mergeLiveAuditChild(e,t){let n=this.auditThreadChildren;if(!n||typeof n!=`object`)return null;let r=String(e.id||``).trim(),i=String(e.request_id||``).trim(),a=Object.keys(n);for(let e=0;ed3(e,r,i));if(c<0)continue;let l=this.mergeLiveAuditPatch(s[c]||{},t),u=[...s];return u.splice(c,1,l),this.auditThreadChildren={...n,[a[e]]:{...o,entries:u}},l}return null},regroupLiveAuditHead(e){if(!this.auditGroupSessions)return null;let t=String(e&&e.session_id||``).trim();if(!t)return null;let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=String(e.id||``).trim(),i=n.findIndex(e=>String(e.id||``).trim()===r);if(i<0)return null;let a=n.findIndex((e,n)=>n!==i&&String(e.session_id||``).trim()===t);if(a<0)return null;let o=n[a],s=Date.parse(o&&o.timestamp),c=Date.parse(e&&e.timestamp),l=Number.isFinite(s)&&Number.isFinite(c)&&s>c,u=l?o:e,d=l?e:o,f={...u,session_count:Math.max(1,Number(o.session_count||1))+Math.max(1,Number(e.session_count||1))},p=n.filter((e,t)=>t!==i&&t!==a);return p.unshift(f),this.auditLog.entries=p,this.auditLog.total=Math.max(0,Number(this.auditLog.total||0)-1),this.prependLiveAuditThreadChild(t,d),f},foldLiveAuditIntoThread(e){let t=String(e&&e.session_id||``).trim();if(!t)return null;let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=n.findIndex(e=>String(e.session_id||``).trim()===t);if(r<0)return null;let i=n[r],a=Number(i.session_count),o=this.mergeLiveAuditUsagePatch({...e,session_count:(Number.isFinite(a)&&a>0?a:1)+1}),s=[...n];return s.splice(r,1),s.unshift(o),this.auditLog.entries=s,this.prependLiveAuditThreadChild(t,i),o},prependLiveAuditThreadChild(e,t){let n=this.auditThreadChildren||{},r=n[e],i={...t};delete i.session_count;let a=r&&Array.isArray(r.entries)?{...r,entries:[i,...r.entries],total:Number(r.total||r.entries.length)+1}:{loading:!1,loaded:!1,entries:[i],total:1};this.auditThreadChildren={...n,[e]:a}},removeLiveAuditThreadChild(e,t){let n=this.auditThreadChildren;!n||typeof n!=`object`||Object.keys(n).forEach(r=>{let i=n[r],a=i&&Array.isArray(i.entries)?i.entries:[],o=a.filter(n=>!d3(n,e,t)),s=a.length-o.length;s!==0&&(this.auditThreadChildren={...this.auditThreadChildren,[r]:{...i,entries:o,total:Math.max(0,Number(i.total||a.length)-s)}},this.decrementLiveAuditThreadCount(r,s))})},decrementLiveAuditThreadCount(e,t){let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=n.findIndex(t=>String(t.session_id||``).trim()===e);if(r<0)return;let i=n[r],a=[...n];a.splice(r,1,{...i,session_count:Math.max(1,Number(i.session_count||1)-t)}),this.auditLog.entries=a},mergeLiveAuditPatch(e,t){let n={...e,...t};return t.data===void 0&&e.data!==void 0?n.data=e.data:e.data&&t.data&&typeof e.data==`object`&&typeof t.data==`object`&&!Array.isArray(e.data)&&!Array.isArray(t.data)&&(n.data={...e.data,...t.data}),this.mergeLiveAuditUsagePatch(n)},mergeLiveAuditUsagePatch(e){let t=this.liveUsageEntryForAudit(e);if(!t)return e;let n=this.auditEntryWithLiveUsage(e,t);return this.removeSkippedLiveUsage(t),n},liveUsageEntryForAudit(e){let t=String(e&&e.request_id||``).trim();return t&&((this.usageLog&&Array.isArray(this.usageLog.entries)?this.usageLog.entries:[]).find(e=>String(e&&e.request_id||``).trim()===t)||this.skippedLiveUsageByRequestId&&this.skippedLiveUsageByRequestId[t])||null},cacheMergedAuditRecord(e,t){return e&&typeof this.cacheAuditRecord==`function`?this.cacheAuditRecord(e,t):e},fetchExpandedAuditDetailIfReady(e){!e||!this.isAuditEntryExpanded||!this.isAuditEntryExpanded(e)||String(e._live_state||``).trim()!==`audit.flushed`&&!e._audit_flushed||typeof this.fetchAuditEntryDetail==`function`&&this.fetchAuditEntryDetail(e)},liveAuditStateRank(e){switch(String(e||``).trim()){case`audit.started`:return 10;case`audit.updated`:case`audit.stream`:return 20;case`audit.completed`:return 30;case`audit.failed`:case`audit.flushed`:case`audit.detail`:return 40;default:return 0}},liveAuditStateAfter(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return this.liveAuditStateRank(n)>this.liveAuditStateRank(r)?n:r},liveAuditStateSettled(e){return this.liveAuditStateRank(e)>=this.liveAuditStateRank(`audit.completed`)},liveAuditEventFlushed(e){let t=String(e||``).trim();return t===`audit.failed`||t===`audit.flushed`||t===`audit.detail`},removeLiveAuditEntry(e){if(!e||!this.auditLog||!Array.isArray(this.auditLog.entries))return;let t=String(e.id||``).trim(),n=String(e.request_id||``).trim();if(!t&&!n)return;let r=this.auditLog.entries,i=[],a=0,o=0,s=!1;r.forEach(e=>{if(!d3(e,t,n)){i.push(e);return}a++;let r=String(e.session_id||``).trim(),c=Math.max(1,Number(e.session_count||1));if(!this.auditGroupSessions||!r||c<=1)return;o++;let l=this.auditThreadChildren&&this.auditThreadChildren[r],u=l&&Array.isArray(l.entries)?l.entries.filter(e=>!d3(e,t,n)):[];if(u.length===0){s=!0;return}let d={...u[0],session_id:r,session_count:c-1};i.push(d),this.auditThreadChildren={...this.auditThreadChildren,[r]:{...l,entries:u.slice(1),total:Math.max(0,Number(l.total||c)-1)}}}),a>0&&(this.auditLog.entries=i,this.auditLog.total=Math.max(0,Number(this.auditLog.total||0)-a+o)),this.removeLiveAuditThreadChild(t,n),s&&typeof this.fetchAuditLog==`function`&&this.fetchAuditLog(!0)},mergeLiveUsageEntry(e,t){if(!e||typeof e!=`object`)return;e={...e,_live_state:t||e._live_state||`usage.completed`};let n=String(e.id||``).trim();if(!n)return;let r=this.usageLog&&Array.isArray(this.usageLog.entries)?this.usageLog.entries:[],i=r.findIndex(e=>String(e.id||``).trim()===n);if(i>=0){let t=r[i]||{},n=this.mergeLiveUsagePatch(t,e);if(this.applyLiveUsageToAudit(n),this.liveUsageShouldSkip(n)){r.splice(i,1),this.usageLog.entries=[...r],this.usageLog.total=Math.max(0,Number(this.usageLog.total||0)-1),this.storeSkippedLiveUsage(n);return}r.splice(i,1,n),this.usageLog.entries=[...r],this.removeSkippedLiveUsage(n);return}let a=this.mergeLiveUsagePatch(this.liveUsageSeedForEntry(e),e);if(this.applyLiveUsageToAudit(a),this.liveUsageShouldSkip(a)){this.storeSkippedLiveUsage(a);return}this.removeSkippedLiveUsage(a),this.usageLog.entries=[a,...r].slice(0,this.usageLog.limit||50),this.usageLog.total=Number(this.usageLog.total||0)+1},mergeLiveUsagePatch(e,t){e=e&&typeof e==`object`?e:{};let n=this.liveUsageStateAfter(e._live_state,t&&t._live_state),r=this.liveUsageEventFlushed(e)||this.liveUsageEventFlushed({...t,_live_state:n});return{...e,...t,_live:!0,_live_state:n||`usage.completed`,_live_pending:!r,_usage_flushed:r}},liveUsageShouldSkip(e){return!!(this.usageLogHideCached&&this.liveUsageEntryCached(e))||!this.usageLiveInsertAllowed()},liveUsageSeedForEntry(e){return this.skippedLiveUsageForEntry(e)||this.auditLiveUsageForEntry(e)},skippedLiveUsageForEntry(e){let t=String(e&&e.request_id||``).trim();return t&&this.skippedLiveUsageByRequestId?this.skippedLiveUsageByRequestId[t]:null},auditLiveUsageForEntry(e){let t=String(e&&e.request_id||``).trim();if(!t||!this.auditLog||!Array.isArray(this.auditLog.entries))return null;let n=this.auditLog.entries.find(e=>String(e&&e.request_id||``).trim()===t),r=n&&n.usage&&typeof n.usage==`object`&&!Array.isArray(n.usage)?n.usage:null;return r?{id:e&&e.id,request_id:t,entries:r.entries,input_tokens:r.input_tokens,uncached_input_tokens:r.uncached_input_tokens,cached_input_tokens:r.cached_input_tokens,cache_write_input_tokens:r.cache_write_input_tokens,output_tokens:r.output_tokens,total_tokens:r.total_tokens,cached_input_ratio:r.cached_input_ratio,estimated_cached_characters:r.estimated_cached_characters,_live_state:n._usage_live_state,_live_pending:n._usage_live_pending,_usage_flushed:n._usage_flushed}:null},storeSkippedLiveUsage(e){let t=String(e&&e.request_id||``).trim();t&&((!this.skippedLiveUsageByRequestId||typeof this.skippedLiveUsageByRequestId!=`object`||Array.isArray(this.skippedLiveUsageByRequestId))&&(this.skippedLiveUsageByRequestId={}),this.skippedLiveUsageByRequestId[t]=e)},removeSkippedLiveUsage(e){let t=String(e&&e.request_id||``).trim();t&&this.skippedLiveUsageByRequestId&&delete this.skippedLiveUsageByRequestId[t]},liveUsageEntryCached(e){let t=String(e&&e.cache_type||``).trim().toLowerCase();return t===`exact`||t===`semantic`||!!(e&&e.cache_hit)},liveUsageEventFlushed(e){let t=String(e&&e._live_state||``).trim();return!!(e&&e._usage_flushed)||t===`usage.failed`||t===`usage.flushed`},liveUsageStateRank(e){switch(String(e||``).trim()){case`usage.completed`:return 10;case`usage.failed`:case`usage.flushed`:return 20;default:return 0}},liveUsageStateAfter(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return this.liveUsageStateRank(n)>this.liveUsageStateRank(r)?n:r},applyLiveUsageToAudit(e){let t=String(e&&e.request_id||``).trim();if(!t||!this.auditLog||!Array.isArray(this.auditLog.entries))return;let n=this.auditLog.entries.findIndex(e=>String(e.request_id||``).trim()===t);if(n>=0){let t=this.auditLog.entries[n];this.auditLog.entries.splice(n,1,this.auditEntryWithLiveUsage(t,e)),this.auditLog.entries=[...this.auditLog.entries]}let r=this.auditThreadChildren;if(!r||typeof r!=`object`)return;let i=r,a=!1;Object.keys(r).forEach(n=>{let r=i[n],o=r&&Array.isArray(r.entries)?r.entries:[],s=o.findIndex(e=>String(e.request_id||``).trim()===t);if(s<0)return;let c=[...o];c.splice(s,1,this.auditEntryWithLiveUsage(o[s],e)),i={...i,[n]:{...r,entries:c}},a=!0}),a&&(this.auditThreadChildren=i)},auditEntryWithLiveUsage(e,t){let n=this.liveUsageStateAfter(e._usage_live_state,t._live_state||`usage.completed`),r=this.liveUsageEventFlushed({_live_state:n,_usage_flushed:e._usage_flushed||t._usage_flushed});return{...e,usage:this.liveUsageSummary(t,e.usage),_usage_live_state:n||`usage.completed`,_usage_live_pending:!r,_usage_flushed:r}},liveUsageSummary(e,t){let n=t&&typeof t==`object`&&!Array.isArray(t)?t:{},r=this.liveNumber(e.input_tokens,this.liveNumber(n.input_tokens,0)),i=this.liveNumber(e.output_tokens,this.liveNumber(n.output_tokens,0)),a=this.liveNumber(e.uncached_input_tokens,this.liveNumber(n.uncached_input_tokens,0)),o=this.liveNumber(e.cached_input_tokens,this.liveNumber(n.cached_input_tokens,0)),s=this.liveNumber(e.cache_write_input_tokens,this.liveNumber(n.cache_write_input_tokens,0));r>0&&a+o+s===0&&(a=r);let c=a+o+s||r,l=c+i||this.liveNumber(e.total_tokens,this.liveNumber(n.total_tokens,0)),u=this.liveNumber(e.cached_input_ratio,this.liveNumber(n.cached_input_ratio,c>0?o/c:0));return{entries:Math.max(1,this.liveNumber(e.entries,this.liveNumber(n.entries,1))),input_tokens:c,uncached_input_tokens:a,cached_input_tokens:o,cache_write_input_tokens:s,output_tokens:i,total_tokens:l,cached_input_ratio:u,estimated_cached_characters:this.liveNumber(e.estimated_cached_characters,this.liveNumber(n.estimated_cached_characters,o*4))}},liveNumber(e,t){let n=Number(e);return Number.isFinite(n)?n:t},auditEntryShouldFetchDetail(e){return!e||e._detail_loading||e._detail_loaded||this.auditEntryLiveDetailPending(e)?!1:this.auditEntryNeedsPersistedLiveDetail(e)||e.bodies_omitted?!0:!this.auditEntryHasDetailData(e)},auditEntryLiveDetailPending(e){if(!e||!e._live)return!1;let t=String(e._live_state||``).trim();return t===`audit.failed`||!e._audit_flushed&&t!==`audit.flushed`&&t!==`audit.detail`},auditEntryNeedsPersistedLiveDetail(e){return!!(e&&e._live&&!e._detail_loaded)},auditEntryHasDetailData(e){let t=e&&e.data;return!t||typeof t!=`object`?!1:t.request_headers!==void 0||t.response_headers!==void 0||t.request_body!==void 0||t.response_body!==void 0||t.request_body_too_big_to_handle!==void 0||t.response_body_too_big_to_handle!==void 0||t.user_agent!==void 0||t.api_key_hash!==void 0||t.temperature!==void 0||t.max_tokens!==void 0||t.error_message!==void 0||t.error_code!==void 0},clearAuditDetailLoading(e){if(!e)return;let t=String(e.id||``).trim(),n=String(e.request_id||``).trim(),r=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],i=r.find(e=>t&&String(e.id||``).trim()===t?!0:!!(n&&String(e.request_id||``).trim()===n)),a=i||e;a._detail_loading=!1,i&&(this.auditLog.entries=[...r])}}}var f3={"audit.started":10,"audit.updated":20,"audit.stream":20,"audit.completed":30,"audit.failed":40,"audit.flushed":40,"audit.detail":40},fFe=new Set(Object.keys(f3));function p3(e){return String(e&&(e.id||e.request_id)||``).trim()}function pFe(e,t){let n=e&&typeof e==`object`?e:{},r=t&&typeof t==`object`?t:{},i={...n,...r};r.data==null&&n.data!=null?i.data=n.data:m3(n.data)&&m3(r.data)&&(i.data={...n.data,...r.data});let a=String(n._live_state||``).trim(),o=String(r._live_state||``).trim();return(f3[a]||0)>(f3[o]||0)&&(i._live_state=a),n._audit_flushed&&(i._audit_flushed=!0),i._audit_flushed&&(i._live_pending=!1),n._detail_loaded&&!r._detail_loaded&&(i._detail_loaded=!0,i.bodies_omitted=!1),i.bodies_omitted&&m3(i.data)&&(i.data.request_body!==void 0||i.data.response_body!==void 0)&&(i.bodies_omitted=!1),i}function mFe(e,t){let n=Number(t||0);return(Array.isArray(e)?e:[]).filter(e=>Number(e&&e.version||0)>n)}function hFe(e){return fFe.has(String(e&&e.eventType||``).trim())}function m3(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}var h3=200,g3=class{#e=j(Xt({entries:[],total:0,limit:25,offset:0}));get auditLog(){return L(this.#e)}set auditLog(e){M(this.#e,e,!0)}#t=j(Xt({entries:[],total:0,limit:50,offset:0}));get usageLog(){return L(this.#t)}set usageLog(e){M(this.#t,e,!0)}#n=j(Xt({}));get auditRecords(){return L(this.#n)}set auditRecords(e){M(this.#n,e,!0)}#r=j(Xt([]));get auditRecordChanges(){return L(this.#r)}set auditRecordChanges(e){M(this.#r,e,!0)}auditRecordVersion=0;auditRecordPins=new Set;#i=j(``);get auditSearch(){return L(this.#i)}set auditSearch(e){M(this.#i,e,!0)}#a=j(``);get auditMethod(){return L(this.#a)}set auditMethod(e){M(this.#a,e,!0)}#o=j(``);get auditStatusCode(){return L(this.#o)}set auditStatusCode(e){M(this.#o,e,!0)}#s=j(``);get auditStream(){return L(this.#s)}set auditStream(e){M(this.#s,e,!0)}#c=j(Gi(`gomodel_audit_group_sessions`,`true`)!==`false`);get auditGroupSessions(){return L(this.#c)}set auditGroupSessions(e){M(this.#c,e,!0)}#l=j(Xt({}));get auditThreadChildren(){return L(this.#l)}set auditThreadChildren(e){M(this.#l,e,!0)}#u=j(``);get usageLogSearch(){return L(this.#u)}set usageLogSearch(e){M(this.#u,e,!0)}#d=j(``);get usageFilterModel(){return L(this.#d)}set usageFilterModel(e){M(this.#d,e,!0)}#f=j(``);get usageFilterProvider(){return L(this.#f)}set usageFilterProvider(e){M(this.#f,e,!0)}#p=j(``);get usageFilterLabel(){return L(this.#p)}set usageFilterLabel(e){M(this.#p,e,!0)}#m=j(``);get usageFilterUserPath(){return L(this.#m)}set usageFilterUserPath(e){M(this.#m,e,!0)}#h=j(``);get usageFilterSession(){return L(this.#h)}set usageFilterSession(e){M(this.#h,e,!0)}#g=j(!1);get usageLogHideCached(){return L(this.#g)}set usageLogHideCached(e){M(this.#g,e,!0)}#_=j(!1);get liveLogsStreaming(){return L(this.#_)}set liveLogsStreaming(e){M(this.#_,e,!0)}liveLogsLastSeq=0;liveLogsReconnectAttempts=0;liveLogsReconnectTimer=null;liveLogsController=null;skippedLiveUsageByRequestId=null;fetchUsage=null;fetchAuditLog=null;isAuditEntryExpanded=null;noteLiveTokenUsage=null;upsertAuditRecord(e,t=``){let n=p3(e);if(!n)return e;let r=pFe(this.auditRecords[n],e);return this.auditRecords={...this.auditRecords,[n]:r},this.pruneAuditRecords(),this.auditRecordVersion++,this.auditRecordChanges=[...this.auditRecordChanges,{version:this.auditRecordVersion,key:n,eventType:t}].slice(-512),r}upsertAuditRecords(e,t=``){return(Array.isArray(e)?e:[]).map(e=>this.upsertAuditRecord(e,t))}auditRecord(e){let t=typeof e==`string`?String(e).trim():p3(e);return t&&this.auditRecords[t]||null}cacheAuditRecord(e,t){return this.upsertAuditRecord(e,t)}pinAuditRecords(e){this.auditRecordPins=new Set((Array.isArray(e)?e:[]).map(String))}pruneAuditRecords(){let e=Object.keys(this.auditRecords);if(e.length<=h3)return;let t={...this.auditRecords},n=e.length-h3;for(let r of e){if(n<=0)break;this.auditRecordPins.has(r)||(delete t[r],n--)}this.auditRecords=t}get page(){return wX.page}get customStartDate(){return kZ.customStartDate}get customEndDate(){return kZ.customEndDate}get followsToday(){return kZ.followsToday}liveLogsEnabled(){return ZX.liveLogsVisible()}async startLiveLogs(){typeof fetch!=`function`||typeof ReadableStream>`u`||(await ZX.ensureLoaded(),this.liveLogsEnabled()&&(this.stopLiveLogs(),this.liveLogsController=typeof AbortController==`function`?new AbortController:null,this.readLiveLogsStream(this.liveLogsController)))}stopLiveLogs(){this.liveLogsStreaming=!1,this.liveLogsReconnectTimer&&=(clearTimeout(this.liveLogsReconnectTimer),null),this.liveLogsController&&typeof this.liveLogsController.abort==`function`&&this.liveLogsController.abort(),this.liveLogsController=null}ensureLiveLogs(){this.liveLogsController||this.liveLogsReconnectTimer||this.startLiveLogs()}async readLiveLogsStream(e){let t={};e&&(t.signal=e.signal);let n=uFe(this.liveLogsLastSeq),r=Y.generation;try{let i=await KX(n,t);if(i.status===401){if(Y.handleUnauthorized(r),r{this.liveLogsReconnectTimer=null,this.startLiveLogs()},t)}async fetchAuditEntryDetail(e){if(!this.auditEntryShouldFetchDetail(e))return;let t=String(e.id||``).trim();if(!t)return;e._detail_loading=!0;let n=e;try{let e=await JX(`/admin/audit/detail?log_id=`+encodeURIComponent(t),{label:`audit detail`});if(e.stale||!e.ok)return;n=this.mergeLiveAuditEntry(e.data,`audit.detail`)||n}catch(e){console.error(`Failed to fetch audit detail:`,e)}finally{this.clearAuditDetailLoading(n)}}};Object.assign(g3.prototype,dFe());var _3=new g3;if(typeof window<`u`){let e=!1;window.addEventListener(`pagehide`,()=>{e=!!_3.liveLogsController,_3.stopLiveLogs()}),window.addEventListener(`pageshow`,t=>{t.persisted&&e&&_3.ensureLiveLogs()})}var v3=null;_n(()=>{hn(()=>{let e=Y.refreshTick;if(v3===null){v3=e;return}e!==v3&&(v3=e,sr(()=>{_3.stopLiveLogs(),_3.startLiveLogs()}))})});function y3(){return{total_requests:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,uncached_input_tokens:0,cached_input_tokens:0,cache_write_input_tokens:0,total_input_cost:null,total_output_cost:null,total_cost:null,rewrite_tokens_saved:0,rewrite_cost_saved:null}}function b3(){return{entries:[],total:0,limit:50,offset:0}}function x3(){return{entries:[],total:0,limit:50,offset:0}}function gFe(e){let t=String(e||``).trim();return t.length<=26?t||`-`:t.slice(0,15)+`…`+t.slice(-8)}function _Fe(e,t){let n=[[`model`,e&&e.model],[`provider`,e&&e.provider],[`label`,e&&e.label],[`user_path`,e&&e.user_path],[`session_id`,e&&e.session_id]],r=``;for(let[e,i]of n)!i||e===t||(r+=`&`+e+`=`+encodeURIComponent(i));return r}function vFe({limit:e,offset:t,hideCached:n,search:r}){let i=`&limit=`+e+`&offset=`+t;return i+=`&cache_mode=`+(n?`uncached`:`all`),r&&(i+=`&search=`+encodeURIComponent(r)),i}function yFe({limit:e,offset:t}){return`&limit=`+e+`&offset=`+t}function S3(e,t){let n=new Set(e||[]);return t&&n.add(t),[...n].sort()}function bFe(e,t){let n=Number(t&&t.total_requests||0)-Number(e&&e.total_requests||0);return Number.isFinite(n)&&n>0?n:0}function xFe(e,t,n){let r=n?e:t,i=Number(r&&r.total_requests||0);return Number.isFinite(i)?i:0}function SFe(e,t,n){let r=bFe(e,t);return r<=0?``:n?Eae({count:uZ(r)}):kae({provider:uZ(Number(e&&e.total_requests||0)),cache:uZ(r)})}function CFe(e){let t=e||{};return t.total_input_cost===null||t.total_input_cost===void 0?``:Mae({input:dZ(t.total_input_cost),output:dZ(t.total_output_cost)})}function C3(e){let t=Number(e&&e.rewrite_tokens_saved||0);return Number.isFinite(t)&&t>0?t:0}function wFe(e){return C3(e)>0}function w3(e){let t=e||{};return t.rewrite_cost_saved===void 0?null:t.rewrite_cost_saved}function TFe(){return Fae()}function EFe(e,t){return t===`costs`?dZ(w3(e)):mZ(C3(e))}function DFe(e,t){let n=t===`costs`,r=n?Number(w3(e)):C3(e);if(!Number.isFinite(r)||r<=0)return null;let i=e&&(n?e.total_cost:e.total_input_tokens);if(i==null)return null;let a=Number(i);return!Number.isFinite(a)||a<0?null:r/(a+r)*100}function T3(e,t){let n=DFe(e,t);return n===null?``:Rae({percent:n<.1?`<0.1`:n.toFixed(1)})}function OFe(e,t){let n=C3(e);if(n<=0)return``;let r=[Vae({count:uZ(n)}),TFe(),Wae()],i=w3(e);i!=null&&(r.push(qae({cost:dZ(i)})),r.push(Xae()));let a=T3(e,t);return a&&r.push($ae({percent:a,mode:t===`costs`?noe():aoe()})),r.join(` +`)}function E3(e){return String(e&&e.cost_source||``).trim()}function D3(e){let t=E3(e);return t===`openrouter_credits`||t===`xai_cost_in_usd_ticks`}function O3(e){switch(E3(e)){case`openrouter_credits`:return coe();case`xai_cost_in_usd_ticks`:return doe();default:return``}}function k3(e){return String(e&&e.cache_type||``).trim().toLowerCase()}function A3(e){let t=k3(e);return t===`exact`||t===`semantic`}function kFe(e){let t=k3(e);return t===`exact`?moe():t===`semantic`?_oe():`-`}function j3(e,t){let n=t?String(t):``;if(!A3(e))return n;let r=boe();return n?r+` +`+n:r}function AFe(e){let t=Number(e&&e.cached_input_ratio);return!Number.isFinite(t)||t<=0?0:Math.min(1,t)}function M3(e){return Number(e&&e.cached_input_tokens||0)>0}function jFe(e){return M3(e)?(AFe(e)*100).toFixed(1)+`%`:``}function MFe(e){if(!M3(e))return``;let t=Number(e.cached_input_tokens||0),n=Number(e.uncached_input_tokens||0),r=Number(e.cache_write_input_tokens||0),i=t+n+r,a=[Coe({cached:uZ(t),total:uZ(i)})];return r>0&&a.push(Eoe({count:uZ(r)})),a.join(` +`)}function N3(e){let t=[];if(O3(e)&&(t.push(O3(e)),t.push(``)),t.push(koe({cost:dZ(e.input_cost)})),t.push(Moe({cost:dZ(e.output_cost)})),e.raw_data){t.push(``);for(let[n,r]of Object.entries(e.raw_data)){let e=n.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase()),i=r&&typeof r==`object`?JSON.stringify(r):uZ(r);t.push(e+`: `+i)}}return t.join(` +`)}function P3(e){return Array.isArray(e&&e.labels)?e.labels:[]}function NFe(e,t,n){return(e||[]).length>0||t?!0:(n||[]).some(e=>P3(e).length>0)}function F3(e){return e&&typeof e.total_tokens==`number`?e.total_tokens:(e&&e.input_tokens||0)+(e&&e.output_tokens||0)}function I3(e,t){return t?e.total_cost||0:F3(e)}function L3(e,t){return[...e||[]].sort((e,n)=>t?(n.total_cost||0)-(e.total_cost||0):I3(n,t)-I3(e,t))}function PFe(e){let t=Array.isArray(e)?e:[];if(t.length===0)return!1;if(t.length!==1)return!0;let n=String(t[0]&&t[0].user_path||``).trim();return n!==``&&n!==`/`}function R3(e){return(e||`chart`)===`chart`||e===`stacked`}function FFe(e,t,n){let r=L3(e,n),i=e=>Number(e)||0,a=e=>n?Math.min(i(e.cached_input_cost),i(e.input_cost)):i(e.cached_input_tokens),o=e=>n?i(e.input_cost)-a(e):i(e.uncached_input_tokens)+i(e.cached_input_tokens)+i(e.cache_write_input_tokens)>0?i(e.uncached_input_tokens)+i(e.cache_write_input_tokens):i(e.input_tokens),s=e=>i(n?e.output_cost:e.output_tokens),c=e=>n?0:i(e.local_cached_input_tokens),l=e=>n?0:i(e.local_cached_output_tokens),u=r.slice(0,10),d=r.slice(10),f=u.map(t),p=u.map(o),m=u.map(s),h=u.map(a),g=u.map(c),_=u.map(l);if(d.length>0){f.push(ku());let e=e=>d.reduce((t,n)=>t+e(n),0);p.push(e(o)),m.push(e(s)),h.push(e(a)),g.push(e(c)),_.push(e(l))}return{labels:f,inputs:p,outputs:m,prompts:h,localIns:g,localOuts:_}}function IFe(e){return Math.max(200,e*32+72)}var X=new class{#e=j(`tokens`);get usageMode(){return L(this.#e)}set usageMode(e){M(this.#e,e,!0)}get usageFilterModel(){return _3.usageFilterModel}set usageFilterModel(e){_3.usageFilterModel=e}get usageFilterProvider(){return _3.usageFilterProvider}set usageFilterProvider(e){_3.usageFilterProvider=e}get usageFilterLabel(){return _3.usageFilterLabel}set usageFilterLabel(e){_3.usageFilterLabel=e}get usageFilterUserPath(){return _3.usageFilterUserPath}set usageFilterUserPath(e){_3.usageFilterUserPath=e}get usageFilterSession(){return _3.usageFilterSession}set usageFilterSession(e){_3.usageFilterSession=e}#t=j(Xt({models:[],providers:[],labels:[]}));get usageFacetOptions(){return L(this.#t)}set usageFacetOptions(e){M(this.#t,e,!0)}#n=j(Xt(y3()));get usageSummary(){return L(this.#n)}set usageSummary(e){M(this.#n,e,!0)}#r=j(Xt(y3()));get usageSummaryAll(){return L(this.#r)}set usageSummaryAll(e){M(this.#r,e,!0)}#i=j(Xt([]));get modelUsage(){return L(this.#i)}set modelUsage(e){M(this.#i,e,!0)}#a=j(Xt([]));get userPathUsage(){return L(this.#a)}set userPathUsage(e){M(this.#a,e,!0)}#o=j(Xt([]));get labelUsage(){return L(this.#o)}set labelUsage(e){M(this.#o,e,!0)}#s=j(Xt(x3()));get sessionUsage(){return L(this.#s)}set sessionUsage(e){M(this.#s,e,!0)}get usageLog(){return _3.usageLog}set usageLog(e){_3.usageLog=e}get usageLogSearch(){return _3.usageLogSearch}set usageLogSearch(e){_3.usageLogSearch=e}get usageLogHideCached(){return _3.usageLogHideCached}set usageLogHideCached(e){_3.usageLogHideCached=e}#c=j(`chart`);get modelUsageView(){return L(this.#c)}set modelUsageView(e){M(this.#c,e,!0)}#l=j(`chart`);get userPathUsageView(){return L(this.#l)}set userPathUsageView(e){M(this.#l,e,!0)}#u=j(`chart`);get labelUsageView(){return L(this.#u)}set labelUsageView(e){M(this.#u,e,!0)}#d=j(`table`);get sessionUsageView(){return L(this.#d)}set sessionUsageView(e){M(this.#d,e,!0)}#f=j(!1);get summaryLoading(){return L(this.#f)}set summaryLoading(e){M(this.#f,e,!0)}#p=j(!1);get modelUsageLoading(){return L(this.#p)}set modelUsageLoading(e){M(this.#p,e,!0)}#m=j(!1);get userPathUsageLoading(){return L(this.#m)}set userPathUsageLoading(e){M(this.#m,e,!0)}#h=j(!1);get labelUsageLoading(){return L(this.#h)}set labelUsageLoading(e){M(this.#h,e,!0)}#g=j(!1);get sessionUsageLoading(){return L(this.#g)}set sessionUsageLoading(e){M(this.#g,e,!0)}#_=j(!1);get usageLogLoading(){return L(this.#_)}set usageLogLoading(e){M(this.#_,e,!0)}#v={};#y(e){this.#v[e]&&this.#v[e].abort();let t=new AbortController;return this.#v[e]=t,t}#b(e,t){this.#v[e]===t&&(this.#v[e]=null)}filterQueryStr(e){return _Fe({model:this.usageFilterModel,provider:this.usageFilterProvider,label:this.usageFilterLabel,user_path:this.usageFilterUserPath,session_id:this.usageFilterSession},e)}onUsageFilterChanged(){this.fetchUsagePage()}toggleUsageLabelFilter(e){this.usageFilterLabel=this.usageFilterLabel===e?``:e,this.onUsageFilterChanged()}filterBySession(e,t=``){if(this.usageFilterModel=``,this.usageFilterProvider=``,this.usageFilterLabel=``,this.usageFilterUserPath=String(t||``).trim(),this.usageFilterSession=String(e||``).trim(),this.usageLogSearch=``,this.usageLog.offset=0,this.sessionUsage.offset=0,wX.page===`usage`){this.fetchUsagePage();return}wX.navigate(`usage`)}usageLabelChipTitle(e){return this.usageFilterLabel===e?bae():Cae({label:e})}toggleUsageMode(e){this.usageMode=e,wX.navigate(`usage`,e===`costs`?`costs`:null)}toggleUsageChartView(e,t){e===`model`&&(this.modelUsageView=t),e===`userPath`&&(this.userPathUsageView=t),e===`label`&&(this.labelUsageView=t),e===`session`&&(this.sessionUsageView=t)}usageFilterModelOptions(){return S3(this.usageFacetOptions.models,this.usageFilterModel)}usageFilterProviderOptions(){return S3(this.usageFacetOptions.providers,this.usageFilterProvider)}usageFilterLabelOptions(){return S3(this.usageFacetOptions.labels,this.usageFilterLabel)}async fetchUsagePage(){await ZX.ensureLoaded();let e=[this.fetchUsagePageSummary(),this.fetchUsageFacetOptions(),this.fetchModelUsage(),this.fetchUserPathUsage(),this.fetchLabelUsage(),this.fetchSessionUsage(!0),this.fetchUsageLog(!0)];PZ.cacheAnalyticsEnabled()&&e.push(PZ.fetchCacheOverview(this.filterQueryStr())),await Promise.all(e)}async fetchUsagePageSummary(){let e=this.#y(`summary`);this.summaryLoading=!0;try{let t=kZ.queryStr()+this.filterQueryStr(),[n,r]=await Promise.all([JX(`/admin/usage/summary?`+t+`&cache_mode=uncached`,{label:`usage page summary`,signal:e.signal}),JX(`/admin/usage/summary?`+t+`&cache_mode=all`,{label:`usage page summary (all)`,signal:e.signal})]);if(n.stale||r.stale||e.signal.aborted)return;if(!n.ok||!r.ok){this.usageSummary=y3(),this.usageSummaryAll=y3();return}this.usageSummary=n.data&&typeof n.data==`object`?n.data:y3(),this.usageSummaryAll=r.data&&typeof r.data==`object`?r.data:y3()}catch(e){if(XX(e))return;console.error(`Failed to fetch usage page summary:`,e),this.usageSummary=y3(),this.usageSummaryAll=y3()}finally{this.#b(`summary`,e),this.#v.summary===null&&(this.summaryLoading=!1)}}async fetchUsageFacetOptions(){let e=this.#y(`facets`);try{let t=async(t,n)=>{let r=await JX(t+`?`+kZ.queryStr()+this.filterQueryStr(n),{label:`usage facet options`,signal:e.signal});return r.stale?null:r.ok&&Array.isArray(r.data)?r.data:[]},n=t(`/admin/usage/models`,`model`),r=!this.usageFilterModel&&!this.usageFilterProvider,[i,a,o]=await Promise.all([n,r?n:t(`/admin/usage/models`,`provider`),t(`/admin/usage/labels`,`label`)]);if(e.signal.aborted||i===null||a===null||o===null)return;this.usageFacetOptions={models:i.map(e=>e&&e.model).filter(Boolean),providers:a.map(e=>vZ(e)).filter(Boolean),labels:o.map(e=>e&&e.label).filter(Boolean)}}catch(e){if(XX(e))return;console.error(`Failed to fetch usage facet options:`,e),this.usageFacetOptions={models:[],providers:[],labels:[]}}finally{this.#b(`facets`,e)}}async#x(e,t,n,r,i){let a=this.#y(e);i(!0);try{let e=await JX(t+`?`+kZ.queryStr()+this.filterQueryStr(),{label:n,signal:a.signal});if(e.stale||a.signal.aborted)return;if(!e.ok){r([]);return}r(Array.isArray(e.data)?e.data:[])}catch(e){if(XX(e))return;console.error(`Failed to fetch `+n+`:`,e),r([])}finally{this.#b(e,a),this.#v[e]===null&&i(!1)}}fetchModelUsage(){return this.#x(`modelUsage`,`/admin/usage/models`,`usage models`,e=>this.modelUsage=e,e=>this.modelUsageLoading=e)}fetchUserPathUsage(){return this.#x(`userPathUsage`,`/admin/usage/user-paths`,`usage user paths`,e=>this.userPathUsage=e,e=>this.userPathUsageLoading=e)}fetchLabelUsage(){return this.#x(`labelUsage`,`/admin/usage/labels`,`usage labels`,e=>this.labelUsage=e,e=>this.labelUsageLoading=e)}async fetchSessionUsage(e){let t=this.#y(`sessionUsage`);this.sessionUsageLoading=!0;try{e&&(this.sessionUsage.offset=0);let n=kZ.queryStr()+this.filterQueryStr();n+=yFe(this.sessionUsage);let r=await JX(`/admin/usage/sessions?`+n,{label:`usage sessions`,signal:t.signal});if(r.stale||t.signal.aborted)return;if(!r.ok||!r.data||typeof r.data!=`object`){this.sessionUsage=x3();return}let i=r.data;i.entries=Array.isArray(i.entries)?i.entries:[],this.sessionUsage=i}catch(e){if(XX(e))return;console.error(`Failed to fetch usage sessions:`,e),this.sessionUsage=x3()}finally{this.#b(`sessionUsage`,t),this.#v.sessionUsage===null&&(this.sessionUsageLoading=!1)}}sessionUsageNextPage(){this.sessionUsage.offset+this.sessionUsage.limit>=this.sessionUsage.total||(this.sessionUsage.offset+=this.sessionUsage.limit,this.fetchSessionUsage(!1))}sessionUsagePrevPage(){this.sessionUsage.offset<=0||(this.sessionUsage.offset=Math.max(0,this.sessionUsage.offset-this.sessionUsage.limit),this.fetchSessionUsage(!1))}async fetchUsageLog(e){let t=this.#y(`usageLog`);this.usageLogLoading=!0;try{e&&(this.usageLog.offset=0);let n=kZ.queryStr()+this.filterQueryStr();n+=vFe({limit:this.usageLog.limit,offset:this.usageLog.offset,hideCached:this.usageLogHideCached,search:this.usageLogSearch});let r=await JX(`/admin/usage/log?`+n,{label:`usage log`,signal:t.signal});if(r.stale||t.signal.aborted)return;if(!r.ok){this.usageLog=b3();return}let i=r.data&&typeof r.data==`object`?r.data:b3();i.entries||=[],this.usageLog=i}catch(e){if(XX(e))return;console.error(`Failed to fetch usage log:`,e),this.usageLog=b3()}finally{this.#b(`usageLog`,t),this.#v.usageLog===null&&(this.usageLogLoading=!1)}}usageLogNextPage(){this.usageLog.offset+this.usageLog.limit0&&(this.usageLog.offset=Math.max(0,this.usageLog.offset-this.usageLog.limit),this.fetchUsageLog(!1))}};_3.fetchUsage=()=>{wX.page===`usage`&&X.fetchUsagePage()};var LFe=z(``),RFe=z(`
                    `);function z3(e,t){O(t,!0);let n=K(t,`value`,15,``),r=K(t,`placeholder`,3,``),i=K(t,`label`,3,``),a=K(t,`id`,3,void 0),o=K(t,`oninput`,3,void 0),s=K(t,`onclear`,3,void 0),c=K(t,`clearLabel`,3,``),l=K(t,`class`,3,``);function u(){n(``),s()?.()}var d=RFe(),f=N(d);q(f,{get icon(){return HTe},class:`filter-input-icon`});var p=F(f,2);Ti(p);let m;var h=F(p,2),g=e=>{var t=LFe();q(N(t),{get icon(){return bX}}),D(t),I(()=>{G(t,`title`,c()),G(t,`aria-label`,c())}),R(`click`,t,u),B(e,t)};H(h,e=>{s()&&n()&&e(g)}),D(d),I(()=>{W(d,1,ui([`filter-input-wrap`,l()]),`svelte-30xz1k`),m=W(p,1,`filter-input svelte-30xz1k`,null,m,{"filter-input-clearable":!!s()}),G(p,`id`,a()),G(p,`placeholder`,r()),G(p,`aria-label`,i())}),R(`input`,p,function(...e){o()?.apply(this,e)}),Mi(p,n),B(e,d),k()}Sr([`input`,`click`]);function B3(e,t=300){let n=null,r=(...r)=>{clearTimeout(n),n=setTimeout(()=>{n=null,e(...r)},t)};return r.cancel=()=>{clearTimeout(n),n=null},r}var V3=z(``),zFe=z(``),BFe=z(`
                    `);function VFe(e,t){O(t,!0);let n=B3(()=>X.onUsageFilterChanged()),r=B3(()=>X.onUsageFilterChanged());hn(()=>()=>{n.cancel(),r.cancel()});var i=BFe(),a=N(i),o=N(a),s=N(o,!0);D(o),o.value=o.__value=``,U(F(o),16,()=>X.usageFilterModelOptions(),e=>e,(e,t,n,r)=>{var i=V3(),a=N(i,!0);D(i);var o={};I(()=>{V(a,t),o!==(o=t)&&(i.value=(i.__value=t)??``)}),B(e,i)}),D(a);var c=F(a,2),l=N(c),u=N(l,!0);D(l),l.value=l.__value=``,U(F(l),16,()=>X.usageFilterProviderOptions(),e=>e,(e,t)=>{var n=V3(),r=N(n,!0);D(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),D(c);var d=F(c,2),f=e=>{var t=zFe(),n=N(t),r=N(n,!0);D(n),n.value=n.__value=``,U(F(n),16,()=>X.usageFilterLabelOptions(),e=>e,(e,t)=>{var n=V3(),r=N(n,!0);D(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),D(t),I((e,n)=>{G(t,`aria-label`,e),V(r,n)},[()=>hte(),()=>zte()]),R(`change`,t,()=>X.onUsageFilterChanged()),vi(t,()=>X.usageFilterLabel,e=>X.usageFilterLabel=e),B(e,t)},p=A(()=>X.usageFilterLabelOptions().length>0);H(d,e=>{L(p)&&e(f)});var m=F(d,2);{let e=A(()=>xte()),t=A(()=>vte());z3(m,{class:`usage-page-filters-user-path`,get placeholder(){return L(e)},get label(){return L(t)},get oninput(){return n},get value(){return X.usageFilterUserPath},set value(e){X.usageFilterUserPath=e}})}var h=F(m,2);{let e=A(()=>Dte()),t=A(()=>wte()),n=A(()=>Ate({session:X.usageFilterSession}));z3(h,{class:`usage-page-filters-session`,get placeholder(){return L(e)},get label(){return L(t)},get oninput(){return r},get clearLabel(){return L(n)},onclear:()=>{r.cancel(),X.onUsageFilterChanged()},get value(){return X.usageFilterSession},set value(e){X.usageFilterSession=e}})}D(i),I((e,t,n,r,o)=>{G(i,`aria-label`,e),G(a,`aria-label`,t),V(s,n),G(c,`aria-label`,r),V(u,o)},[()=>ote(),()=>lte(),()=>Nte(),()=>fte(),()=>Ite()]),R(`change`,a,()=>X.onUsageFilterChanged()),vi(a,()=>X.usageFilterModel,e=>X.usageFilterModel=e),R(`change`,c,()=>X.onUsageFilterChanged()),vi(c,()=>X.usageFilterProvider,e=>X.usageFilterProvider=e),B(e,i),k()}Sr([`change`]);var HFe=z(`
                    `,1);function UFe(e,t){O(t,!0);var n=kr(),r=P(n),i=e=>{var t=HFe(),n=P(t),r=N(n),i=N(r,!0);D(r);var a=F(r,2),o=N(a,!0);D(a),D(n);var s=F(n,2),c=N(s),l=N(c,!0);D(c);var u=F(c,2),d=N(u,!0);D(u),D(s),I((e,t,n,r)=>{V(i,e),V(o,t),V(l,n),V(d,r)},[()=>Hte(),()=>dZ(PZ.cacheOverview.summary.total_saved_cost),()=>Yo(),()=>uZ(PZ.cacheOverview.summary.total_hits)]),B(e,t)},a=A(()=>PZ.cacheAnalyticsEnabled());H(r,e=>{L(a)&&e(i)}),B(e,n),k()}var WFe=z(` `),GFe=z(`
                    `),KFe=z(`
                    `);function qFe(e,t){O(t,!0);let n=A(()=>wFe(X.usageSummary)),r=A(()=>EFe(X.usageSummary,X.usageMode)),i=A(()=>T3(X.usageSummary,X.usageMode));var a=KFe(),o=N(a),s=N(o),c=N(s,!0);D(s);var l=F(s,2),u=N(l),d=e=>{{let t=A(()=>yo());i3(e,{size:18,get label(){return L(t)}})}},f=e=>{var t=Or();I(e=>V(t,e),[()=>uZ(xFe(X.usageSummary,X.usageSummaryAll,X.usageLogHideCached))]),B(e,t)};H(u,e=>{X.summaryLoading?e(d):e(f,-1)}),D(l),D(o);var p=F(o,2),m=N(p),h=N(m,!0);D(m);var g=F(m,2),_=N(g),v=e=>{{let t=A(()=>yo());i3(e,{size:18,get label(){return L(t)}})}},y=e=>{var t=Or();I(e=>V(t,e),[()=>dZ(X.usageSummary.total_cost)]),B(e,t)};H(_,e=>{X.summaryLoading?e(v):e(y,-1)}),D(g),D(p);var b=F(p,2),x=e=>{var t=GFe(),n=N(t),a=N(n,!0);D(n);var o=F(n,2),s=N(o),c=N(s,!0);D(s);var l=F(s,2),u=e=>{var t=WFe(),n=N(t,!0);D(t),I(()=>V(n,L(i))),B(e,t)};H(l,e=>{L(i)&&e(u)}),D(o),D(t),I((e,t)=>{V(a,e),G(o,`title`,t),V(c,L(r))},[()=>Gte(),()=>OFe(X.usageSummary,X.usageMode)]),B(e,t)};H(b,e=>{L(n)&&e(x)}),UFe(F(b,2),{}),D(a),I((e,t,n,r)=>{V(c,e),G(l,`title`,t),V(h,n),G(g,`title`,r)},[()=>Jo(),()=>SFe(X.usageSummary,X.usageSummaryAll,X.usageLogHideCached),()=>Xo(),()=>CFe(X.usageSummary)]),B(e,a),k()}var JFe=z(``);function H3(e,t){O(t,!0);let n=K(t,`total`,3,0),r=K(t,`offset`,3,0),i=K(t,`limit`,3,25);var a=kr(),o=P(a),s=e=>{var a=JFe(),o=N(a),s=N(o,!0);D(o);var c=F(o,2),l=N(c),u=N(l,!0);D(l);var d=F(l,2),f=N(d,!0);D(d),D(c),D(a),I((e,t,a)=>{V(s,e),l.disabled=r()===0,V(u,t),d.disabled=r()+i()>=n(),V(f,a)},[()=>oR({start:TZ(r()+1),end:TZ(Math.min(r()+i(),n())),total:TZ(n())}),()=>ja(),()=>Oa()]),R(`click`,l,()=>t.onprev?.()),R(`click`,d,()=>t.onnext?.()),B(e,a)};H(o,e=>{n()>0&&e(s)}),B(e,a),k()}Sr([`click`]);function YFe(e){let t=String(e??``),n=typeof navigator<`u`?navigator.clipboard:null;if(n&&typeof n.writeText==`function`)return n.writeText(t);let r=typeof document<`u`?document:null;if(!r||!r.body||typeof r.execCommand!=`function`)return Promise.reject(Error(`Clipboard API unavailable`));let i=r.createElement(`textarea`);i.value=t,i.setAttribute(`readonly`,``),i.style.position=`fixed`,i.style.top=`0`,i.style.left=`0`,i.style.opacity=`0`;try{if(r.body.appendChild(i),i.focus(),i.select(),i.setSelectionRange(0,i.value.length),!r.execCommand(`copy`))throw Error(`execCommand copy returned false`)}finally{i.parentNode&&i.parentNode.removeChild(i)}return Promise.resolve()}function U3({resetDelayMs:e=2e3,logPrefix:t}={}){let n=Xt({copied:!1,error:!1}),r=null;function i(){r!==null&&clearTimeout(r),r=null}function a(){i(),r=setTimeout(()=>{n.copied=!1,n.error=!1,r=null},e)}return{get copied(){return n.copied},get error(){return n.error},reset(){i(),n.copied=!1,n.error=!1},async copy(e,r){if(!(e==null||e===``)){i(),n.copied=!1,n.error=!1;try{await YFe(typeof r==`function`?r(e):String(e)),n.copied=!0,n.error=!1}catch(e){console.error(t||`Failed to copy text:`,e),n.copied=!1,n.error=!0}a()}}}}var XFe=z(` `);function W3(e,t){O(t,!0);let n=K(t,`active`,3,!1),r=K(t,`onfilter`,3,null),i=K(t,`compact`,3,!1),a=U3({logPrefix:`Failed to copy session ID:`});hn(()=>{t.sessionID,a.reset()});var o=XFe();let s;var c=N(o),l=N(c,!0);D(c);var u=F(c,2);let d;var f=N(u);{let e=A(()=>a.copied?eX:nX);q(f,{get icon(){return L(e)}})}D(u),D(o),I((e,t,r,f)=>{s=W(o,1,`session-id-chip svelte-1pkjhcn`,null,s,{active:n(),compact:i()}),G(c,`title`,e),V(l,t),d=W(u,1,`session-id-copy svelte-1pkjhcn`,null,d,{copied:a.copied}),G(u,`title`,r),G(u,`aria-label`,f)},[()=>wie({session:t.sessionID}),()=>gFe(t.sessionID),()=>a.error?Iie():a.copied?Nie():Die(),()=>Aie({session:t.sessionID})]),R(`click`,c,()=>r()?.(t.sessionID)),R(`click`,u,()=>a.copy(t.sessionID)),B(e,o),k()}Sr([`click`]);function ZFe(e,t,n,r){let{stacked:i=!1,costs:a=!1,resolve:o=e=>e}=r||{},s=e=>a?`$`+Math.abs(e).toFixed(2):mZ(Math.abs(e)),c=e=>a?`$`+Math.abs(e).toFixed(4):Math.abs(e).toLocaleString(),l=e=>e.map(e=>i?Math.abs(e):-Math.abs(e)),u=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderColor:`transparent`,borderWidth:0,borderRadius:4,maxBarThickness:22}),d=e=>(e||[]).some(e=>Math.abs(e)>0),f=[u(a?Oo():To(),l(n.inputs),o(`var(--token-input)`)),u(a?ko():Eo(),n.outputs,o(`var(--token-output)`))];return d(n.prompts)&&f.push(u(a?Foe():Do(),l(n.prompts),o(`var(--token-prompt)`))),!a&&d(n.localIns)&&f.push(u(Roe(),l(n.localIns),o(`var(--token-local)`))),!a&&d(n.localOuts)&&f.push(u(Voe(),n.localOuts,o(`var(--token-local)`))),{type:`bar`,data:{labels:t,datasets:f},options:{indexAxis:`y`,responsive:!0,maintainAspectRatio:!1,animation:{duration:0},layout:{padding:{top:8}},scales:{x:{stacked:!0,beginAtZero:!0,grid:i?{color:e.grid}:{color:t=>t.tick&&t.tick.value===0?e.text:e.grid},border:{display:!1},ticks:{color:e.text,font:e4(),callback:e=>s(e)}},y:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:e4(),autoSkip:!1}}},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:t4(e,{label:e=>e.dataset.label+`: `+c(e.parsed.x),footer:e=>{let t=0;return e.forEach(e=>{t+=Math.abs(Number(e.parsed.x))||0}),ql({total:c(t)})}})}}}}var QFe=z(`
                    `),$Fe=z(`

                    `),eIe=z(`

                    `,1),tIe=z(`
                    `),nIe=z(` `,1),rIe=z(` `),iIe=z(` `,1),aIe=z(` `,1),oIe=z(` `,1),sIe=z(` `,1),cIe=z(` `),lIe=z(` `,1),uIe=z(` `,1),dIe=z(` `,1),fIe=z(` `),pIe=z(`
                    `),mIe=z(`
                    `),hIe=z(`
                    `);function G3(e,t){O(t,!0);let n=e=>{var n=QFe(),r=N(n);let a;var o=F(r,2);let s;var l=F(o,2);let u;D(n),I((e,t,d,f,p,m)=>{G(n,`aria-label`,L(i).group),a=W(r,1,`chart-view-btn svelte-1kee4g8`,null,a,{active:L(c)===`chart`}),G(r,`aria-pressed`,L(c)===`chart`),G(r,`aria-label`,e),G(r,`title`,t),s=W(o,1,`chart-view-btn svelte-1kee4g8`,null,s,{active:L(c)===`stacked`}),G(o,`aria-pressed`,L(c)===`stacked`),G(o,`aria-label`,d),G(o,`title`,f),u=W(l,1,`chart-view-btn svelte-1kee4g8`,null,u,{active:L(c)===`table`}),G(l,`aria-pressed`,L(c)===`table`),G(l,`aria-label`,p),G(l,`title`,m)},[()=>Wne({noun:L(i).noun}),()=>$ne(),()=>qne({noun:L(i).noun}),()=>nre(),()=>Xne({noun:L(i).noun}),()=>are()]),R(`click`,r,()=>X.toggleUsageChartView(t.kind,`chart`)),R(`click`,o,()=>X.toggleUsageChartView(t.kind,`stacked`)),R(`click`,l,()=>X.toggleUsageChartView(t.kind,`table`)),B(e,n)},r={model:{group:Xte(),noun:cne(),tokensTitle:bne(),costsTitle:Cne()},userPath:{group:$te(),noun:dne(),tokensTitle:Ene(),costsTitle:kne()},label:{group:nne(),noun:mne(),tokensTitle:Mne(),costsTitle:Fne()},session:{group:ane(),noun:_ne(),tokensTitle:Rne(),costsTitle:Vne()}},i=A(()=>r[t.kind]),a=A(()=>t.kind===`model`?e=>qEe(e):t.kind===`userPath`?e=>e.user_path||`/`:t.kind===`label`?e=>e.label:e=>e.session_id);function o(e){return t.kind===`model`?(e.provider_name||e.provider||`-`)+`/`+e.model:t.kind===`userPath`?e.user_path||`/`:t.kind===`label`?e.label:JSON.stringify([e.session_id,e.user_path||`/`])}let s=A(()=>t.kind===`model`?X.modelUsage:t.kind===`userPath`?X.userPathUsage:t.kind===`label`?X.labelUsage:X.sessionUsage.entries),c=A(()=>t.kind===`model`?X.modelUsageView:t.kind===`userPath`?X.userPathUsageView:t.kind===`label`?X.labelUsageView:X.sessionUsageView),l=A(()=>t.kind===`model`?X.modelUsageLoading:t.kind===`userPath`?X.userPathUsageLoading:t.kind===`label`?X.labelUsageLoading:X.sessionUsageLoading),u=A(()=>X.usageMode===`costs`),d=A(()=>t.kind===`userPath`?PFe(L(s)):L(s).length>0),f=A(()=>L(u)?L(i).costsTitle:L(i).tokensTitle),p=A(()=>FFe(L(s),L(a),L(u))),m=A(()=>t.kind===`session`?L(s):L3(L(s),L(u)));function h(){return R3(L(c))?ZFe($2(),L(p).labels,L(p),{stacked:L(c)===`stacked`,costs:L(u),resolve:n4}):null}let g=A(()=>t.kind+`-usage-help-copy`),_=A(()=>t.kind===`session`?yre():pre());var v=kr(),y=P(v),b=e=>{var r=mIe();let a;var s=N(r),u=N(s),d=e=>{{let n=e=>{var t=$Fe(),n=N(t,!0);D(t),I(()=>V(n,L(f))),B(e,t)},r=e=>{var t=kr(),n=P(t),r=e=>{{let t=A(()=>bo({noun:L(i).noun}));i3(e,{size:14,get label(){return L(t)}})}};H(n,e=>{L(l)&&e(r)}),B(e,t)},a=A(()=>t.kind===`session`?gre():ure());c3(e,{get copyId(){return L(g)},get label(){return L(a)},get text(){return L(_)},title:n,extra:r,$$slots:{title:!0,extra:!0}})}},v=e=>{var t=eIe(),n=P(t),r=N(n,!0);D(n);var a=F(n,2),o=e=>{{let t=A(()=>bo({noun:L(i).noun}));i3(e,{size:14,get label(){return L(t)}})}};H(a,e=>{L(l)&&e(o)}),I(()=>V(r,L(f))),B(e,t)};H(u,e=>{t.kind===`label`||t.kind===`session`?e(d):e(v,-1)});var y=F(u,2);n(y),D(s);var b=F(s,2),x=e=>{var t=tIe();let n;X2(N(t),{build:h}),D(t),I(e=>n=hi(t,``,n,e),[()=>({height:`${IFe(L(p).labels.length)??``}px`})]),B(e,t)},S=A(()=>R3(L(c))),C=e=>{var n=pIe(),r=N(n),i=N(r),a=N(i),s=N(a),c=e=>{var t=nIe(),n=P(t),r=N(n,!0);D(n);var i=F(n,2),a=N(i,!0);D(i),I((e,t)=>{V(r,e),V(a,t)},[()=>xo(),()=>So()]),B(e,t)},l=e=>{var t=rIe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Co()]),B(e,t)},u=e=>{var t=iIe(),n=P(t),r=N(n,!0);D(n);var i=F(n,2),a=N(i,!0);D(i),I((e,t)=>{V(r,e),V(a,t)},[()=>Pre(),()=>wo()]),B(e,t)},d=e=>{var t=aIe(),n=P(t),r=N(n,!0);D(n);var i=F(n,2),a=N(i,!0);D(i);var o=F(i,2),s=N(o,!0);D(o),I((e,t,n)=>{V(r,e),V(a,t),V(s,n)},[()=>jre(),()=>Co(),()=>wo()]),B(e,t)};H(s,e=>{t.kind===`model`?e(c):t.kind===`userPath`?e(l,1):t.kind===`label`?e(u,2):e(d,-1)});var f=F(s),p=N(f,!0);D(f);var h=F(f),g=N(h,!0);D(h);var _=F(h),v=e=>{var t=oIe(),n=P(t),r=N(n,!0);D(n);var i=F(n,2),a=N(i,!0);D(i),I((e,t,o,s)=>{G(n,`title`,e),V(r,t),G(i,`title`,o),V(a,s)},[()=>rie(),()=>Do(),()=>oie(),()=>Gre()]),B(e,t)};H(_,e=>{t.kind!==`session`&&e(v)});var y=F(_),b=N(y,!0);D(y);var x=F(y),S=N(x,!0);D(x);var C=F(x),w=N(C,!0);D(C);var T=F(C),ee=N(T,!0);D(T),D(a),D(i);var E=F(i);U(E,21,()=>L(m),e=>o(e),(e,n)=>{var r=fIe(),i=N(r),a=e=>{var t=sIe(),r=P(t),i=N(r,!0);D(r);var a=F(r,2),o=N(a),s=N(o,!0);D(o),D(a),I(e=>{V(i,L(n).model||`-`),V(s,e)},[()=>vZ(L(n))||`-`]),B(e,t)},o=e=>{var t=cIe(),r=N(t,!0);D(t),I(()=>V(r,L(n).user_path||`/`)),B(e,t)},s=e=>{var t=lIe(),r=P(t),i=N(r);let a;var o=N(i,!0);D(i),D(r);var s=F(r,2),c=N(s,!0);D(s),I((e,t,r)=>{a=W(i,1,`usage-label-chip`,null,a,{active:X.usageFilterLabel===L(n).label}),hi(i,`--label-color: ${e??``}`),G(i,`title`,t),V(o,L(n).label),V(c,r)},[()=>i4(L(n).label),()=>X.usageLabelChipTitle(L(n).label),()=>uZ(L(n).requests)]),R(`click`,i,()=>X.toggleUsageLabelFilter(L(n).label)),B(e,t)},c=e=>{var t=uIe(),r=P(t),i=N(r);{let e=A(()=>X.usageFilterSession===L(n).session_id);W3(i,{get sessionID(){return L(n).session_id},get active(){return L(e)},onfilter:e=>X.filterBySession(e,L(n).user_path)})}D(r);var a=F(r,2),o=N(a,!0);D(a);var s=F(a,2),c=N(s,!0);D(s),I(e=>{V(o,L(n).user_path||`/`),V(c,e)},[()=>uZ(L(n).requests)]),B(e,t)};H(i,e=>{t.kind===`model`?e(a):t.kind===`userPath`?e(o,1):t.kind===`label`?e(s,2):e(c,-1)});var l=F(i),u=N(l,!0);D(l);var d=F(l),f=N(d,!0);D(d);var p=F(d),m=e=>{var t=dIe(),r=P(t),i=N(r,!0);D(r);var a=F(r,2),o=N(a,!0);D(a),I((e,t,n,s)=>{G(r,`title`,e),V(i,t),G(a,`title`,n),V(o,s)},[()=>L(n).cached_input_cost==null?``:lie({cost:dZ(L(n).cached_input_cost)}),()=>uZ(L(n).cached_input_tokens||0),()=>fie({input:uZ(L(n).local_cached_input_tokens||0),output:uZ(L(n).local_cached_output_tokens||0)}),()=>uZ((L(n).local_cached_input_tokens||0)+(L(n).local_cached_output_tokens||0))]),B(e,t)};H(p,e=>{t.kind!==`session`&&e(m)});var h=F(p),g=N(h,!0);D(h);var _=F(h),v=N(_,!0);D(_);var y=F(_),b=N(y,!0);D(y);var x=F(y),S=N(x,!0);D(x),D(r),I((e,t,n,r,i,a)=>{V(u,e),V(f,t),V(g,n),V(v,r),V(b,i),V(S,a)},[()=>uZ(L(n).input_tokens),()=>uZ(L(n).output_tokens),()=>uZ(F3(L(n))),()=>dZ(L(n).input_cost),()=>dZ(L(n).output_cost),()=>dZ(L(n).total_cost)]),B(e,r)}),D(E),D(r),D(n),I((e,t,n,r,i,a)=>{V(p,e),V(g,t),V(b,n),V(S,r),V(w,i),V(ee,a)},[()=>To(),()=>Eo(),()=>Jre(),()=>Oo(),()=>ko(),()=>Ao()]),B(e,n)};H(b,e=>{L(S)?e(x):e(C,-1)});var w=F(b,2),T=e=>{H3(e,{get total(){return X.sessionUsage.total},get offset(){return X.sessionUsage.offset},get limit(){return X.sessionUsage.limit},onprev:()=>X.sessionUsagePrevPage(),onnext:()=>X.sessionUsageNextPage()})};H(w,e=>{t.kind===`session`&&e(T)}),D(r),I(()=>a=W(r,1,`model-chart-section`,null,a,{"session-usage-breakdown":t.kind===`session`})),B(e,r)},x=e=>{var t=hIe(),n=N(t);{let e=A(()=>bo({noun:L(i).noun}));i3(n,{size:20,get label(){return L(e)}})}D(t),B(e,t)};H(y,e=>{L(d)?e(b):L(l)&&e(x,1)}),B(e,v),k()}Sr([`click`]);var gIe=(e,t=f)=>{var n=kr(),r=P(n),i=e=>{var n=vIe();U(n,20,()=>P3(t()),e=>e,(e,t)=>{var n=_Ie();let r;var i=N(n,!0);D(n),I((e,a)=>{r=W(n,1,`usage-label-chip`,null,r,{active:X.usageFilterLabel===t}),hi(n,`--label-color: ${e??``}`),G(n,`title`,a),V(i,t)},[()=>i4(t),()=>X.usageLabelChipTitle(t)]),R(`click`,n,()=>X.toggleUsageLabelFilter(t)),B(e,n)}),D(n),B(e,n)},a=A(()=>P3(t()).length>0),o=e=>{B(e,K3())};H(r,e=>{L(a)?e(i):e(o,-1)}),B(e,n)},_Ie=z(``),vIe=z(`
                    `),K3=z(`-`),yIe=z(` `),bIe=z(` `),xIe=z(``),SIe=z(` `),q3=z(``),CIe=z(` `),wIe=z(` `),TIe=z(`
                    `),EIe=z(`
                    `),DIe=z(`
                    `),OIe=z(`

                    `);function kIe(e,t){O(t,!0);let n=A(()=>X.usageMode===`costs`),r=A(()=>NFe(X.labelUsage,X.usageFilterLabel,X.usageLog.entries)),i=B3(()=>X.fetchUsageLog(!0));hn(()=>i.cancel);var a=OIe(),o=N(a),s=N(o,!0);D(o);var c=F(o,2),l=N(c),u=N(l);{let e=A(()=>vie()),t=A(()=>xie());z3(u,{get placeholder(){return L(e)},get label(){return L(t)},get oninput(){return i},get value(){return X.usageLogSearch},set value(e){X.usageLogSearch=e}})}D(l);var d=F(l,2),f=N(d),p=N(f);Ti(p);var m=F(p,2),h=N(m,!0);D(m),D(f),D(d),D(c);var g=F(c,2),_=e=>{var t=TIe(),i=N(t),a=N(i),o=N(a),s=N(o),c=N(s,!0);D(s);var l=F(s),u=N(l,!0);D(l);var d=F(l),f=N(d,!0);D(d);var p=F(d),m=N(p,!0);D(p);var h=F(p),g=N(h,!0);D(h);var _=F(h),v=e=>{var t=yIe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Gie()]),B(e,t)};H(_,e=>{L(r)&&e(v)});var y=F(_),b=N(y,!0);D(y);var x=F(y),S=N(x,!0);D(x);var C=F(x),w=N(C,!0);D(C);var T=F(C),ee=N(T,!0);D(T);var E=F(T),te=N(E,!0);D(E);var ne=F(E),re=e=>{var t=bIe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>fae()]),B(e,t)};H(ne,e=>{L(n)||e(re)}),D(o),D(a);var ie=F(a);U(ie,21,()=>X.usageLog.entries,e=>e.id,(e,t)=>{var i=wIe();let a;var o=N(i),s=N(o,!0);D(o);var c=F(o),l=N(c),u=N(l,!0);D(l),D(c);var d=F(c),f=N(d,!0);D(d);var p=F(d),m=N(p,!0);D(p);var h=F(p),g=N(h),_=e=>{{let n=A(()=>X.usageFilterSession===L(t).session_id);W3(e,{get sessionID(){return L(t).session_id},get active(){return L(n)},compact:!0,onfilter:e=>X.filterBySession(e,L(t).user_path)})}},v=e=>{B(e,K3())};H(g,e=>{L(t).session_id?e(_):e(v,-1)}),D(h);var y=F(h),b=e=>{var n=xIe();gIe(N(n),()=>L(t)),D(n),B(e,n)};H(y,e=>{L(r)&&e(b)});var x=F(y),S=N(x,!0);D(x);var C=F(x),w=N(C),T=e=>{var n=SIe(),r=N(n,!0);D(n),I(e=>V(r,e),[()=>jFe(L(t))]),B(e,n)},ee=A(()=>M3(L(t))),E=e=>{B(e,K3())};H(w,e=>{L(ee)?e(T):e(E,-1)}),D(C);var te=F(C),ne=N(te,!0);D(te);var re=F(te),ie=N(re,!0);D(re);var ae=F(re),oe=N(ae),se=N(oe,!0);D(oe);var ce=F(oe,2),le=e=>{{let n=A(()=>O3(L(t)));q(e,{get icon(){return tX},class:`cost-source-icon`,get title(){return L(n)}})}},ue=A(()=>L(n)&&D3(L(t)));H(ce,e=>{L(ue)&&e(le)});var de=F(ce,2),fe=e=>{q(e,{get icon(){return rX},class:`cache-savings-icon`})},pe=A(()=>L(n)&&A3(L(t)));H(de,e=>{L(pe)&&e(fe)});var me=F(de,2),he=e=>{var n=q3();I(()=>G(n,`title`,L(t).costs_calculation_caveat)),B(e,n)};H(me,e=>{L(n)&&L(t).costs_calculation_caveat&&e(he)}),D(ae);var ge=F(ae),_e=e=>{var n=CIe(),r=N(n),i=N(r,!0);D(r);var a=F(r,2),o=e=>{{let n=A(()=>O3(L(t)));q(e,{get icon(){return tX},class:`cost-source-icon`,get title(){return L(n)}})}},s=A(()=>D3(L(t)));H(a,e=>{L(s)&&e(o)});var c=F(a,2),l=e=>{q(e,{get icon(){return rX},class:`cache-savings-icon`})},u=A(()=>A3(L(t)));H(c,e=>{L(u)&&e(l)});var d=F(c,2),f=e=>{var n=q3();I(()=>G(n,`title`,L(t).costs_calculation_caveat)),B(e,n)};H(d,e=>{L(t).costs_calculation_caveat&&e(f)}),D(n),I((e,t)=>{G(n,`title`,e),V(i,t)},[()=>j3(L(t),N3(L(t))),()=>dZ(L(t).total_cost)]),B(e,n)};H(ge,e=>{L(n)||e(_e)}),D(i),I((e,n,r,c,l,d,p,h,g,_,v,y,b)=>{a=W(i,1,`svelte-hg4ill`,null,a,e),G(o,`title`,n),V(s,r),V(u,c),V(f,L(t).model),V(m,L(t).user_path||`-`),V(S,l),G(C,`title`,d),G(te,`title`,p),V(ne,h),G(re,`title`,g),V(ie,_),G(ae,`title`,v),G(oe,`title`,y),V(se,b)},[()=>({"usage-log-row-cached":A3(L(t))}),()=>_Z(L(t).timestamp),()=>UX.formatTimestamp(L(t).timestamp),()=>vZ(L(t))||`-`,()=>kFe(L(t)),()=>MFe(L(t)),()=>L(n)?jo({count:uZ(L(t).input_tokens)}):``,()=>L(n)?dZ(L(t).input_cost):uZ(L(t).input_tokens),()=>L(n)?jo({count:uZ(L(t).output_tokens)}):``,()=>L(n)?dZ(L(t).output_cost):uZ(L(t).output_tokens),()=>L(n)?j3(L(t),``):``,()=>L(n)?j3(L(t),jo({count:uZ(L(t).total_tokens)})+` +`+N3(L(t))):``,()=>L(n)?dZ(L(t).total_cost):uZ(L(t).total_tokens)]),B(e,i)}),D(ie),D(i),D(t),I((e,t,n,r,i,a,o,s,l,d,p)=>{V(c,e),V(u,t),V(f,n),V(m,r),V(g,i),V(b,a),G(x,`title`,o),V(S,s),V(w,l),V(ee,d),V(te,p)},[()=>Hie(),()=>So(),()=>xo(),()=>Co(),()=>Ore(),()=>Jie(),()=>eae(),()=>Zie(),()=>L(n)?Oo():rae(),()=>L(n)?ko():oae(),()=>L(n)?Ao():lae()]),B(e,t)},v=e=>{var t=EIe(),n=N(t);{let e=A(()=>_ae());i3(n,{size:20,get label(){return L(e)}})}D(t),B(e,t)},y=e=>{var t=DIe();a3(N(t),{}),D(t),B(e,t)};H(g,e=>{X.usageLog.entries.length>0?e(_):X.usageLogLoading?e(v,1):e(y,-1)}),H3(F(g,2),{get total(){return X.usageLog.total},get offset(){return X.usageLog.offset},get limit(){return X.usageLog.limit},onprev:()=>X.usageLogPrevPage(),onnext:()=>X.usageLogNextPage()}),D(a),I((e,t)=>{V(s,e),V(h,t)},[()=>hie(),()=>zie()]),R(`change`,p,()=>X.fetchUsageLog(!0)),Ni(p,()=>X.usageLogHideCached,e=>X.usageLogHideCached=e),B(e,a),k()}Sr([`click`,`change`]);var AIe=z(`
                    `);function jIe(e,t){O(t,!0);let n=`usage`;hn(()=>{Y.refreshTick,wX.page===n&&(X.fetchUsagePage(),_3.ensureLiveLogs())}),hn(()=>{wX.page===n&&(X.usageMode=wX.sub===`costs`?`costs`:`tokens`)});var r=AIe(),i=N(r),a=N(i),o=N(a,!0);D(a),D(i);var s=F(i,2),c=N(s);{let e=A(()=>rte()),t=A(()=>[{value:`tokens`,label:Go()},{value:`costs`,label:Wc()}]);Z2(c,{get ariaLabel(){return L(e)},get options(){return L(t)},get value(){return X.usageMode},onchange:e=>X.toggleUsageMode(e)})}IZ(F(c,2),{onchange:()=>X.fetchUsagePage()}),D(s);var l=F(s,2);VFe(l,{});var u=F(l,2);qFe(u,{});var d=F(u,2),f=N(d);G3(f,{kind:`model`});var p=F(f,2);G3(p,{kind:`userPath`}),G3(F(p,2),{kind:`label`}),D(d);var m=F(d,2);G3(N(m),{kind:`session`}),D(m),kIe(F(m,2),{}),D(r),I(e=>V(o,e),[()=>ete()]),B(e,r),k()}var MIe=z(`
                    `);function J3(e,t){let n=K(t,`label`,3,`Loading...`),r=K(t,`class`,3,``);var i=MIe(),a=F(N(i),2),o=N(a,!0);D(a),D(i),I(()=>{W(i,1,ui([`loading-state`,r()]),`svelte-hzxv1d`),V(o,n())}),B(e,i)}var NIe=z(``);function Y3(e,t){let n=K(t,`label`,3,``),r=K(t,`class`,3,``),i=K(t,`disabled`,3,!1);var a=NIe();qr(N(a),()=>t.children??f),D(a),I(()=>{W(a,1,ui([`table-action-btn`,r()])),G(a,`aria-label`,n()),G(a,`title`,n()),a.disabled=i()}),R(`click`,a,function(...e){t.onclick?.apply(this,e)}),B(e,a)}Sr([`click`]);async function X3(e,{label:t,errorFallback:n=`Unable to load ${t}.`,unavailableStatuses:r=[503],normalize:i=e=>Array.isArray(e)?e:[],options:a}){let o;try{o=await JX(e,{...a||{},label:t})}catch(e){return XX(e)||console.error(`Failed to fetch ${t}:`,e),{status:`error`,items:[],error:n,result:null}}return o.stale?{status:`stale`,items:[],error:``,result:o}:r.includes(o.status)?{status:`unavailable`,items:[],error:``,result:o}:o.ok?{status:`ok`,items:i(o.data),error:``,result:o}:{status:`error`,items:[],error:o.status===401?``:WX(o.data,n),result:o}}async function Z3(e,t,n,{label:r,errorFallback:i=`Unable to ${r}.`,unavailableStatuses:a=[503],unavailableMessage:o=`This feature is unavailable on the gateway.`,options:s}){let c;try{c=await YX(e,t,n,{...s||{},label:r})}catch(e){return XX(e)||console.error(`Failed to ${r}:`,e),{status:`error`,error:i,result:null}}return c.stale?{status:`stale`,error:``,result:c}:a.includes(c.status)?{status:`unavailable`,error:o,result:c}:c.ok?{status:`ok`,error:``,result:c}:{status:`error`,error:c.status===401?`Authentication required.`:WX(c.data,i),result:c}}function Q3(){return{scope:`user_path`,subject:`/`,period:`daily`,period_seconds:86400,amount:``,source:`manual`}}function $3(e){let t={user_path:{label:Zf(),chip:ep(),fieldLabel:rp(),placeholder:`/team/alpha`},label:{label:op(),chip:lp(),fieldLabel:op(),placeholder:`Mobile-App-iOS`}};return t[e]||t.user_path}function PIe(){return[`user_path`,`label`].map(e=>({value:e,label:$3(e).label}))}function e6(e){return String(e&&e.scope||``).trim()||`user_path`}function t6(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function n6(e){return $3(e6(e)).chip}function FIe(e){return e6(e)===`label`?`budget-label`:`budget-user-path`}function IIe(e){return $3(String(e&&e.scope||``)).fieldLabel}function LIe(e){return $3(String(e&&e.scope||``)).placeholder}function RIe(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function zIe(){return[{value:`hourly`,label:fp()},{value:`daily`,label:hp()},{value:`weekly`,label:vp()},{value:`monthly`,label:xp()},{value:`custom`,label:wp()}]}function r6(e){switch(String(e||``).trim().toLowerCase()){case`hourly`:return 3600;case`daily`:return 86400;case`weekly`:return 604800;case`monthly`:return 2592e3;default:return 0}}function i6(e){switch(Number(e||0)){case 3600:return`hourly`;case 86400:return`daily`;case 604800:return`weekly`;case 2592e3:return`monthly`;default:return`custom`}}function a6(e){return e6(e)+`:`+t6(e)+`:`+String(e&&e.period_seconds||``)}function BIe(e,t){if(!t||!Array.isArray(e))return null;let n=a6(t);return e.find(e=>a6(e)===n)||null}function o6(e){let t=String(e||``).trim();if(!t)return Dp();let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return Ap();if(t.includes(`:`))return Np()}}return``}function VIe(e){if(o6(e))return``;let t=String(e||``).trim(),n=(t.startsWith(`/`)?t:`/`+t).split(`/`),r=[];for(let e of n){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function HIe(e){return`/`+String(e||``).trimStart().replace(/^\/+/,``)}function s6(e){return Array.isArray(e)?e:e&&Array.isArray(e.budgets)?e.budgets:[]}function UIe(e){let t=Number(e&&e.period_seconds||0);return[t6(e),n6(e),h6(e),i6(t),t?String(t)+`s`:``,t?String(t)+` seconds`:``].join(` `).toLowerCase()}var c6={user_path:0,label:1};function WIe(e,t){let n=Array.isArray(e)?e.slice():[],r=String(t||`subject`);return n.sort((e,t)=>{let n=(c6[e6(e)]||0)-(c6[e6(t)]||0),i=t6(e).localeCompare(t6(t)),a=Number(t&&t.period_seconds||0)-Number(e&&e.period_seconds||0);return r===`period`?a||n||i:n||i||a}),n}function GIe(e,t,n){let r=Array.isArray(e)?e:[],i=String(t||``).trim().toLowerCase();return WIe(i?r.filter(e=>UIe(e).includes(i)):r.slice(),n)}function KIe(e){let t=e||{},n=e6(t),r=String(t.subject||``).trim();if(n===`user_path`){let e=o6(r);if(e)return{payload:null,error:e}}else if(!r)return{payload:null,error:Ip()};let i=Number(t.amount);if(!Number.isFinite(i)||i<=0)return{payload:null,error:zp()};let a=String(t.period||``).trim(),o=r6(a);return a===`custom`&&(o=Number(t.period_seconds)),!Number.isFinite(o)||o<=0?{payload:null,error:Hp()}:{payload:{scope:n,subject:n===`user_path`?VIe(r):r,period_seconds:Math.trunc(o),amount:i,source:String(t.source||`manual`).trim()||`manual`},error:``}}function qIe(e){return{scope:e6(e),subject:t6(e),budget_key:{period_seconds:e.period_seconds},amount:e.amount}}function JIe(e){return{scope:e6(e),subject:t6(e),budget_key:{period_seconds:e.period_seconds}}}function YIe(e){return{scope:e6(e),subject:t6(e),period_seconds:e.period_seconds}}function l6(e){return dZ(e)}function XIe(e,t){let n=e||{},r=t||{};return hh({label:(t6(n)||t6(r))+` `+h6({period_seconds:n.period_seconds||r.period_seconds,period_label:r.period_label}),current:l6(r.amount),next:l6(n.amount)})}function u6(e){let t=Number(e);return!Number.isFinite(t)||t<0?0:t}function d6(e,t){let n=u6(e);return Math.round((t?Math.min(n,1):n)*1e3)/10}function f6(e){return u6(e&&e.usage_ratio)}function p6(e){return d6(f6(e),!0)}function m6(e){return d6(e&&e.period_ratio,!0)}function ZIe(e){return d6(f6(e),!1).toFixed(1).replace(/\.0$/,``)+`%`}function QIe(e){return m6(e).toFixed(1).replace(/\.0$/,``)+`%`}function h6(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return fp();case 86400:return hp();case 604800:return vp();case 2592e3:return xp();default:return Gp({period:String(e&&e.period_label||``).trim()||String(t||``)+`s`})}}function g6(e){switch(Number(e&&e.period_seconds||0)){case 3600:return`budget-period-label-hourly`;case 86400:return`budget-period-label-daily`;case 604800:return`budget-period-label-weekly`;case 2592e3:return`budget-period-label-monthly`;default:return`budget-period-label-custom`}}function $Ie(e){return g6(e).replace(`budget-period-label-`,`budget-bar-fill-period-`)}function eLe(e){return g6(e).replace(`budget-period-label-`,`budget-bar-track-period-`)}function tLe(e){switch(Number(e&&e.period_seconds||0)){case 3600:return ATe;case 86400:return hX;case 604800:return CTe;case 2592e3:return wTe;default:return GTe}}function nLe(e){let t=Math.max(0,Math.trunc(Number(e||0)));return t===1?Zp():Jp({count:t})}function _6(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return em();case 86400:return rm();case 604800:return om();case 2592e3:return lm();default:return nLe(t)}}function v6(e){return String(e&&e.source||``).trim()||`manual`}function rLe(e){let t=v6(e).toLowerCase();return t===`manual`?fm():t===`config`?hm():vm({source:t})}function y6(e){let t=Number(e&&e.remaining);return Number.isFinite(t)?t<0?wm({amount:dZ(Math.abs(t))}):xm({amount:dZ(t)}):``}var b6=new class{#e=j(Xt([]));get budgets(){return L(this.#e)}set budgets(e){M(this.#e,e,!0)}#t=j(!0);get budgetsAvailable(){return L(this.#t)}set budgetsAvailable(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return L(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get filter(){return L(this.#r)}set filter(e){M(this.#r,e,!0)}#i=j(`subject`);get sortBy(){return L(this.#i)}set sortBy(e){M(this.#i,e,!0)}#a=j(``);get error(){return L(this.#a)}set error(e){M(this.#a,e,!0)}#o=j(!1);get formOpen(){return L(this.#o)}set formOpen(e){M(this.#o,e,!0)}#s=j(!1);get formSubmitting(){return L(this.#s)}set formSubmitting(e){M(this.#s,e,!0)}#c=j(``);get formError(){return L(this.#c)}set formError(e){M(this.#c,e,!0)}#l=j(!1);get editing(){return L(this.#l)}set editing(e){M(this.#l,e,!0)}#u=j(Xt(Q3()));get form(){return L(this.#u)}set form(e){M(this.#u,e,!0)}#d=j(!1);get overrideDialogOpen(){return L(this.#d)}set overrideDialogOpen(e){M(this.#d,e,!0)}#f=j(null);get overridePendingPayload(){return L(this.#f)}set overridePendingPayload(e){M(this.#f,e,!0)}#p=j(null);get overrideExistingBudget(){return L(this.#p)}set overrideExistingBudget(e){M(this.#p,e,!0)}#m=j(``);get resettingKey(){return L(this.#m)}set resettingKey(e){M(this.#m,e,!0)}#h=j(``);get deletingKey(){return L(this.#h)}set deletingKey(e){M(this.#h,e,!0)}#g=j(!1);get resetAllLoading(){return L(this.#g)}set resetAllLoading(e){M(this.#g,e,!0)}#_=null;managementEnabled(){return ZX.budgetsVisible()}filteredBudgets(){return GIe(this.budgets,this.filter,this.sortBy)}async fetchBudgetsPage(){if(await ZX.ensureLoaded(),!this.managementEnabled()){this.budgets=[],this.budgetsAvailable=!1,this.error=``;return}return this.#_||=this.fetchBudgets().finally(()=>{this.#_=null}),this.#_}async fetchBudgets(){this.loading=!0,this.error=``;let e=await X3(`/admin/budgets`,{label:`budgets`,errorFallback:vh(),normalize:s6});if(this.loading=!1,e.status!==`stale`){if(e.status===`unavailable`){this.budgetsAvailable=!1,this.budgets=[];return}if(!e.result){this.budgets=[],this.error=e.error;return}if(this.budgetsAvailable=!0,e.status===`error`){this.error=e.error;return}this.budgets=e.items}}openForm(e){if(this.editing=!!e,this.formError=``,e){let t=Number(e.period_seconds||0);this.form={scope:e6(e),subject:t6(e),period:i6(t),period_seconds:t,amount:String(e.amount||``),source:String(e.source||`manual`)}}else this.form=Q3();this.formOpen=!0}syncPeriodSeconds(){let e=r6(String(this.form.period||``).trim());e>0&&(this.form.period_seconds=e)}setFormSubject(e){this.form.subject=this.form.scope===`label`?String(e??``):HIe(e)}syncScope(){RIe(this.form)}closeForm(){this.closeOverrideDialog(),this.formOpen=!1,this.formSubmitting=!1,this.formError=``,this.editing=!1,this.form=Q3()}async submitForm(){if(this.formSubmitting)return;let{payload:e,error:t}=KIe(this.form);if(!e){this.formError=t;return}if(!this.editing){let t=BIe(this.budgets,e);if(t){this.openOverrideDialog(t,e);return}}await this.saveBudgetPayload(e)}async saveBudgetPayload(e){if(this.formSubmitting||!e)return;this.formSubmitting=!0,this.formError=``;let t=await Z3(`/admin/budgets`,`PUT`,qIe(e),{label:`save budget`,errorFallback:xh(),unavailableMessage:Rd()});if(this.formSubmitting=!1,t.status!==`stale`){if(t.status===`unavailable`){this.budgetsAvailable=!1,this.formError=t.error;return}if(t.status===`error`){this.formError=t.error;return}this.closeForm(),sZ.success(wh()),this.fetchBudgets()}}openOverrideDialog(e,t){this.overrideExistingBudget=e||null,this.overridePendingPayload=t||null,this.overrideDialogOpen=!0}closeOverrideDialog(){this.overrideDialogOpen=!1,this.overridePendingPayload=null,this.overrideExistingBudget=null}async confirmOverride(){if(!this.overridePendingPayload){this.closeOverrideDialog();return}let e=this.overridePendingPayload;this.closeOverrideDialog(),await this.saveBudgetPayload(e)}async resetBudget(e){if(!e)return;let t=a6(e);if(this.resettingKey===t)return;let n=t6(e)+` `+h6(e);if(!confirm(Dh({label:n})))return;this.resettingKey=t;let r=await Z3(`/admin/budgets/reset-one`,`POST`,YIe(e),{label:`reset budget`,errorFallback:Ah(),unavailableMessage:Rd()});if(this.resettingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,sZ.error(r.error);return}if(r.status===`error`){sZ.error(r.error);return}sZ.success(Nh()),this.fetchBudgets()}}async deleteBudget(e){if(!e)return;let t=a6(e);if(this.deletingKey===t)return;let n=t6(e)+` `+h6(e);if(!confirm(Ih({label:n})))return;this.deletingKey=t;let r=await Z3(`/admin/budgets`,`DELETE`,JIe(e),{label:`delete budget`,errorFallback:zh(),unavailableMessage:Rd()});if(this.deletingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,sZ.error(r.error);return}if(r.status===`error`){sZ.error(r.error);return}this.budgets=s6(r.result.data),sZ.success(Hh())}}openResetDialog(){tZ.open({title:Gh(),titleId:`budgetResetDialogTitle`,inputId:`budget-reset-confirmation`,requiredText:`reset`,confirmLabel:Jh(),icon:fX,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.resetAllBudgets()})}async resetAllBudgets(){if(this.resetAllLoading)return;this.resetAllLoading=!0;let e=await Z3(`/admin/budgets/reset`,`POST`,{confirmation:`reset`},{label:`reset budgets`,errorFallback:Zh(),unavailableStatuses:[]});if(this.resetAllLoading=!1,e.status!==`stale`){if(e.status!==`ok`){tZ.error=e.error;return}tZ.close(),sZ.success(eg()),wX.page===`budgets`&&this.fetchBudgets()}}},x6=z(` `,1),iLe=z(`
                    `),aLe=z(`
                    `);function oLe(e,t){O(t,!0);let n=K(t,`budgets`,19,()=>[]);function r(e){if(!e)return``;let t=UX.formatTimestamp(e);return!t||t===`-`?``:t+` `+UX.effectiveTimeZoneLabel()}var i=aLe();U(i,21,n,e=>a6(e),(e,t)=>{var n=iLe(),i=N(n),a=N(i),o=N(a),s=N(o),c=e=>{q(e,{get icon(){return XTe},class:`budget-scope-icon`})},l=A(()=>e6(L(t))===`label`);H(s,e=>{L(l)&&e(c)});var u=F(s);D(o);var d=F(o,2),f=N(d),p=N(f);{let e=A(()=>tLe(L(t)));q(p,{get icon(){return L(e)},class:`budget-period-icon`})}var m=F(p,2),h=N(m,!0);D(m),D(f),D(d);var g=F(d,2),_=N(g),v=N(_),y=N(v,!0);D(v),D(_);var b=F(_,2),x=N(b);{let e=A(()=>Am());Y3(x,{get label(){return L(e)},class:`budget-action-btn`,onclick:()=>b6.openForm(L(t)),children:(e,t)=>{var n=x6(),r=P(n);q(r,{get icon(){return lX},class:`budget-action-icon`});var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>Dm()]),B(e,n)},$$slots:{default:!0}})}var S=F(x,2);{let e=A(()=>b6.resettingKey===a6(L(t))?Hm():zm()),n=A(()=>b6.resettingKey===a6(L(t)));Y3(S,{get label(){return L(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>b6.resetBudget(L(t)),get disabled(){return L(n)},children:(e,n)=>{var r=x6(),i=P(r);q(i,{get icon(){return fX},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);D(a),I(e=>V(o,e),[()=>b6.resettingKey===a6(L(t))?Im():Nm()]),B(e,r)},$$slots:{default:!0}})}var C=F(S,2);{let e=A(()=>b6.deletingKey===a6(L(t))?eh():Zm()),n=A(()=>b6.deletingKey===a6(L(t)));Y3(C,{get label(){return L(e)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>b6.deleteBudget(L(t)),get disabled(){return L(n)},children:(e,n)=>{var r=x6(),i=P(r);q(i,{get icon(){return _X},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);D(a),I(e=>V(o,e),[()=>b6.deletingKey===a6(L(t))?Jm():Gm()]),B(e,r)},$$slots:{default:!0}})}D(b),D(g),D(a);var w=F(a,2),T=N(w),ee=N(T),E=N(ee),te=N(E,!0);D(E);var ne=F(E,2),re=N(ne,!0);D(ne),D(ee);var ie=F(ee,2),ae=N(ie);let oe;var se=F(ae,2),ce=N(se),le=N(ce,!0);D(ce);var ue=F(ce,2),de=N(ue,!0);D(ue),D(se);var fe=F(se,2),pe=N(fe),me=N(pe,!0);D(pe);var he=F(pe,2),ge=N(he,!0);D(he),D(fe),D(ie),D(T);var _e=F(T,2),ve=N(_e),ye=N(ve),be=N(ye,!0);D(ye);var xe=F(ye,2),Se=N(xe,!0);D(xe),D(ve);var Ce=F(ve,2),we=N(Ce),Te=F(we,2),Ee=N(Te),De=N(Ee,!0);D(Ee);var Oe=F(Ee,2),ke=N(Oe,!0);D(Oe);var Ae=F(Oe,2),je=N(Ae,!0);D(Ae),D(Te);var Me=F(Te,2),Ne=N(Me),Pe=N(Ne,!0);D(Ne);var Fe=F(Ne,2),Ie=N(Fe,!0);D(Fe);var Le=F(Fe,2),Re=N(Le,!0);D(Le),D(Me),D(Ce),D(_e),D(w),D(i),D(n),I((e,t,n,r,i,a,s,c,l,d,p,m,g,_,b,x,S,C,w,T,ee,E,ne,se,ce,ue,fe,pe,he,_e,ve,ye,xe)=>{W(o,1,`budget-scope-value ${e??``}`,`svelte-1jm56wo`),hi(o,t),G(o,`title`,n),V(u,` ${r??``}`),W(f,1,`budget-period-label ${i??``}`,`svelte-1jm56wo`),V(h,a),G(v,`title`,s),V(y,c),V(te,l),V(re,d),G(ie,`aria-valuenow`,p),G(ie,`aria-label`,m),hi(ie,`--budget-progress: ${g??``}%`),oe=W(ae,1,`budget-bar-fill budget-bar-fill-usage`,null,oe,_),V(le,b),V(de,x),V(me,S),V(ge,C),V(be,w),V(Se,T),W(Ce,1,`budget-bar-track ${ee??``}`,`svelte-1jm56wo`),G(Ce,`aria-label`,E),G(Ce,`aria-valuenow`,ne),hi(Ce,`--budget-progress: ${se??``}%`),W(we,1,`budget-bar-fill budget-bar-fill-period ${ce??``}`,`svelte-1jm56wo`),G(Ee,`title`,ue),V(De,fe),V(ke,pe),G(Ae,`title`,he),V(je,_e),V(Pe,ve),V(Ie,ye),V(Re,xe)},[()=>FIe(L(t)),()=>e6(L(t))===`label`?`--label-color: `+i4(t6(L(t))):void 0,()=>n6(L(t))+`: `+t6(L(t)),()=>t6(L(t)),()=>g6(L(t)),()=>h6(L(t)),()=>rLe(L(t)),()=>v6(L(t)),()=>rh(),()=>ZIe(L(t)),()=>p6(L(t)),()=>oh({spent:dZ(L(t).spent),amount:dZ(L(t).amount),remaining:y6(L(t))}),()=>p6(L(t)),()=>({"budget-bar-fill-danger":f6(L(t))>=1}),()=>lh({spent:dZ(L(t).spent),amount:dZ(L(t).amount)}),()=>y6(L(t)),()=>lh({spent:dZ(L(t).spent),amount:dZ(L(t).amount)}),()=>y6(L(t)),()=>of(),()=>QIe(L(t)),()=>eLe(L(t)),()=>fh(),()=>m6(L(t)),()=>m6(L(t)),()=>$Ie(L(t)),()=>r(L(t).period_start),()=>UX.formatTimestamp(L(t).period_start),()=>_6(L(t)),()=>r(L(t).period_end),()=>UX.formatTimestamp(L(t).period_end),()=>UX.formatTimestamp(L(t).period_start),()=>_6(L(t)),()=>UX.formatTimestamp(L(t).period_end)]),B(e,n)}),D(i),B(e,i),k()}var sLe=z(`

                    `,1),cLe=z(``),lLe=z(``),uLe=z(`
                    `);function S6(e,t){O(t,!0);let n=K(t,`open`,3,!1),r=K(t,`title`,3,``),i=K(t,`ariaLabel`,3,``),a=K(t,`error`,3,``),o=K(t,`submitting`,3,!1),s=K(t,`submitDisabled`,3,!1),c=K(t,`submitLabel`,3,`Save`),l=K(t,`submittingLabel`,3,`Saving...`),u=K(t,`submitIcon`,3,pX),d=K(t,`cancel`,3,!0),p=K(t,`dialogClass`,3,``),m=K(t,`novalidate`,3,!1),h=K(t,`canClose`,3,()=>!0);function g(){Y.dialogOpen||h()()&&t.onclose?.()}$X(e,{get open(){return n()},variant:`editor`,onclose:g,children:(e,n)=>{var h=uLe(),g=N(h),_=N(g),v=N(_),y=N(v),b=e=>{var n=kr();qr(P(n),()=>t.header),B(e,n)},x=e=>{var n=sLe(),i=P(n),a=N(i,!0);D(i);var o=F(i,2),s=e=>{var n=kr();qr(P(n),()=>t.headerHint),B(e,n)};H(o,e=>{t.headerHint&&e(s)}),I(()=>V(a,r())),B(e,n)};H(y,e=>{t.header?e(b):e(x,-1)}),D(v);var S=F(v,2);{let e=A(()=>`Close `+(i()||r()).toLowerCase());QX(S,{get label(){return L(e)},onclick:()=>t.onclose?.()})}D(_);var C=F(_,2);qr(C,()=>t.children??f);var w=F(C,2),T=e=>{var t=cLe(),n=N(t,!0);D(t),I(()=>V(n,a())),B(e,t)};H(w,e=>{a()&&e(T)});var ee=F(w,2),E=N(ee),te=e=>{var n=lLe();R(`click`,n,()=>t.onclose?.()),B(e,n)};H(E,e=>{d()&&e(te)});var ne=F(E,2),re=e=>{var n=kr();qr(P(n),()=>t.extraActions),B(e,n)};H(ne,e=>{t.extraActions&&e(re)});var ie=F(ne,2),ae=N(ie);q(ae,{get icon(){return u()},class:`form-action-icon`});var oe=F(ae,2),se=N(oe,!0);D(oe),D(ie),D(ee),D(g),D(h),I(()=>{W(h,1,ui([`model-editor`,p()])),G(h,`aria-label`,i()||r()),g.noValidate=m(),ie.disabled=o()||s(),V(se,o()?l():c())}),xr(`submit`,g,e=>{e.preventDefault(),t.onsubmit?.()}),B(e,h)},$$slots:{default:!0}}),k()}Sr([`click`]);var dLe=z(`
                    `);function C6(e,t){let n=K(t,`label`,3,``);var r=dLe(),i=N(r),a=N(i,!0);D(i),qr(F(i,2),()=>t.children??f),D(r),I(()=>{G(i,`for`,t.id),V(a,n())}),B(e,r)}var w6=z(``),fLe=z(``),pLe=z(``),mLe=z(``),hLe=z(``),gLe=z(``),_Le=z(`

                    `),vLe=z(`
                    `,1),yLe=z(``),bLe=z(` `,1);function xLe(e,t){O(t,!0);function n(e){b6.setFormSubject(e.target.value),e.target.value=b6.form.subject}var r=bLe(),i=P(r);{let e=A(()=>b6.editing?hf():vf()),t=A(()=>xf()),r=A(()=>wf());S6(i,{get open(){return b6.formOpen},get title(){return L(e)},get ariaLabel(){return L(t)},get error(){return b6.formError},get submitting(){return b6.formSubmitting},get submitLabel(){return L(r)},dialogClass:`budget-editor`,canClose:()=>!b6.overrideDialogOpen,onclose:()=>b6.closeForm(),onsubmit:()=>b6.submitForm(),children:(e,t)=>{var r=vLe(),i=P(r),a=N(i);{let e=A(()=>Df());C6(a,{id:`budget-scope`,get label(){return L(e)},children:(e,t)=>{var n=fLe();U(n,21,PIe,e=>e.value,(e,t)=>{var n=w6(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(n),I(()=>n.disabled=b6.editing),R(`change`,n,()=>b6.syncScope()),vi(n,()=>b6.form.scope,e=>b6.form.scope=e),B(e,n)},$$slots:{default:!0}})}var o=F(a,2);{let e=A(()=>IIe(b6.form));C6(o,{id:`budget-subject`,get label(){return L(e)},children:(e,t)=>{var r=pLe();Ti(r),I(e=>{G(r,`placeholder`,e),Ei(r,b6.form.subject),r.disabled=b6.editing,G(r,`data-modal-autofocus`,!b6.editing||void 0)},[()=>LIe(b6.form)]),R(`input`,r,n),B(e,r)},$$slots:{default:!0}})}var s=F(o,2);{let e=A(()=>of());C6(s,{id:`budget-period`,get label(){return L(e)},children:(e,t)=>{var n=mLe();U(n,21,zIe,e=>e.value,(e,t)=>{var n=w6(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(n),I(()=>n.disabled=b6.editing),R(`change`,n,()=>b6.syncPeriodSeconds()),vi(n,()=>b6.form.period,e=>b6.form.period=e),B(e,n)},$$slots:{default:!0}})}var c=F(s,2),l=e=>{{let t=A(()=>Af());C6(e,{id:`budget-period-seconds`,get label(){return L(t)},children:(e,t)=>{var n=hLe();Ti(n),I(()=>n.disabled=b6.editing),Mi(n,()=>b6.form.period_seconds,e=>b6.form.period_seconds=e),B(e,n)},$$slots:{default:!0}})}};H(c,e=>{b6.form.period===`custom`&&e(l)});var u=F(c,2);{let e=A(()=>Nf());C6(u,{id:`budget-amount`,get label(){return L(e)},children:(e,t)=>{var n=gLe();Ti(n),I(()=>G(n,`data-modal-autofocus`,b6.editing||void 0)),Mi(n,()=>b6.form.amount,e=>b6.form.amount=e),B(e,n)},$$slots:{default:!0}})}D(i);var d=F(i,2),f=e=>{var t=_Le(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>If()]),B(e,t)};H(d,e=>{b6.editing&&e(f)}),B(e,r)},$$slots:{default:!0}})}$X(F(i,2),{get open(){return b6.overrideDialogOpen},variant:`auth`,onclose:()=>b6.closeOverrideDialog(),children:(e,t)=>{var n=yLe(),r=N(n),i=N(r),a=N(i,!0);D(i);var o=F(i,2);{let e=A(()=>Hf());QX(o,{get label(){return L(e)},onclick:()=>b6.closeOverrideDialog(),class:`auth-dialog-close`,iconClass:``})}D(r);var s=F(r,2),c=N(s),l=N(c,!0);D(c);var u=F(c,2),d=N(u),f=N(d,!0);D(d);var p=F(d,2),m=N(p);q(m,{get icon(){return pX},class:`form-action-icon`});var h=F(m,2),g=N(h,!0);D(h),D(p),D(u),D(s),D(n),I((e,t,n,r)=>{V(a,e),V(l,t),V(f,n),p.disabled=b6.formSubmitting,V(g,r)},[()=>zf(),()=>XIe(b6.overridePendingPayload,b6.overrideExistingBudget),()=>Ta(),()=>b6.formSubmitting?Gf():Jf()]),xr(`submit`,s,e=>{e.preventDefault(),b6.confirmOverride()}),R(`click`,d,()=>b6.closeOverrideDialog()),B(e,n)},$$slots:{default:!0}}),B(e,r),k()}Sr([`change`,`input`,`click`]);var SLe=z(`

                    `),CLe=z(``),wLe=z(`
                    `),TLe=z(``),ELe=z(`
                    `),T6=z(`

                    `),DLe=z(`
                    `);function OLe(e,t){O(t,!0),hn(()=>{Y.refreshTick,wX.page===`budgets`&&b6.fetchBudgetsPage()});let n=A(()=>b6.filteredBudgets());var r=DLe(),i=N(r),a=N(i),o=N(a);{let e=e=>{var t=SLe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Ed()]),B(e,t)},t=e=>{Ve();var t=Or();I(e=>V(t,e),[()=>Md()]),B(e,t)},n=A(()=>kd());c3(o,{copyId:`budgets-help-copy`,get label(){return L(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}D(a);var s=F(a,2),c=N(s),l=e=>{var t=CLe(),n=N(t);q(n,{get icon(){return uX},class:`form-action-icon`});var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>{t.disabled=b6.formSubmitting,V(i,e)},[()=>Fd()]),R(`click`,t,()=>b6.openForm()),B(e,t)},u=A(()=>b6.managementEnabled()&&b6.budgetsAvailable&&!Y.authError);H(c,e=>{L(u)&&e(l)}),D(s),D(i);var d=F(i,2);jZ(d,{});var f=F(d,2),p=e=>{var t=wLe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Rd()]),B(e,t)},m=A(()=>(!b6.managementEnabled()||!b6.budgetsAvailable)&&!Y.authError);H(f,e=>{L(m)&&e(p)});var h=F(f,2),g=e=>{var t=TLe(),n=N(t,!0);D(t),I(()=>V(n,b6.error)),B(e,t)};H(h,e=>{b6.error&&!Y.authError&&e(g)});var _=F(h,2),v=e=>{{let t=A(()=>Vd());J3(e,{get label(){return L(t)}})}};H(_,e=>{b6.loading&&!Y.authError&&e(v)});var y=F(_,2),b=e=>{var t=ELe(),n=N(t),r=N(n);{let e=A(()=>Wd()),t=A(()=>qd());z3(r,{id:`budget-filter`,get placeholder(){return L(e)},get label(){return L(t)},get value(){return b6.filter},set value(e){b6.filter=e}})}D(n);var i=F(n,2),a=N(i),o=N(a,!0);D(a);var s=F(a,2),c=N(s),l=N(c,!0);D(c),c.value=c.__value=`subject`;var u=F(c),d=N(u,!0);D(u),u.value=u.__value=`period`,D(s),D(i),D(t),I((e,t,n,r)=>{V(o,e),G(s,`aria-label`,t),V(l,n),V(d,r)},[()=>Xd(),()=>$d(),()=>nf(),()=>of()]),vi(s,()=>b6.sortBy,e=>b6.sortBy=e),B(e,t)};H(y,e=>{(b6.budgets.length>0||b6.filter)&&b6.budgetsAvailable&&!Y.authError&&!b6.formOpen&&e(b)});var x=F(y,2);xLe(x,{});var S=F(x,2),C=e=>{oLe(e,{get budgets(){return L(n)}})};H(S,e=>{L(n).length>0&&b6.budgetsAvailable&&!Y.authError&&e(C)});var w=F(S,2),T=e=>{var t=T6(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>lf()]),B(e,t)},ee=A(()=>b6.budgets.length===0&&!b6.filter&&!b6.loading&&!Y.authError&&!b6.error&&b6.budgetsAvailable&&b6.managementEnabled());H(w,e=>{L(ee)&&e(T)});var E=F(w,2),te=e=>{var t=T6(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>ff()]),B(e,t)},ne=A(()=>b6.budgets.length>0&&L(n).length===0&&b6.filter&&!b6.loading&&!Y.authError&&!b6.error&&b6.budgetsAvailable&&b6.managementEnabled());H(E,e=>{L(ne)&&e(te)}),D(r),B(e,r),k()}Sr([`click`]);function E6(){return{scope:`user_path`,subject:`/`,period:`minute`,period_seconds:60,max_requests:``,max_tokens:``,source:`manual`}}function D6(e){let t={user_path:{label:i_e(),chip:s_e(),fieldLabel:xA(),placeholder:`/team/alpha`},provider:{label:u_e(),chip:p_e(),fieldLabel:g_e(),placeholder:`openai`},model:{label:CY(),chip:x_e(),fieldLabel:CY(),placeholder:`openai/gpt-4o`}};return t[e]||t.user_path}function kLe(){return[`user_path`,`provider`,`model`].map(e=>({value:e,label:D6(e).label}))}function O6(e){return String(e&&e.scope||``).trim()||`user_path`}function k6(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function A6(e){return D6(O6(e)).chip}function j6(e){return D6(String(e&&e.scope||``)).fieldLabel}function ALe(e){return D6(String(e&&e.scope||``)).placeholder}function jLe(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function MLe(){return[{value:`minute`,label:w_e()},{value:`hour`,label:D_e()},{value:`day`,label:A_e()},{value:`concurrent`,label:N_e()},{value:`custom`,label:I_e()}]}function M6(e){switch(String(e||``).trim().toLowerCase()){case`minute`:return 60;case`hour`:return 3600;case`day`:return 86400;case`concurrent`:return 0;default:return-1}}function N6(e){switch(Number(e||0)){case 60:return`minute`;case 3600:return`hour`;case 86400:return`day`;case 0:return`concurrent`;default:return`custom`}}function NLe(e){let t=String(e&&e.period||``).trim(),n=M6(t);n>=0&&(e.period_seconds=n),t===`concurrent`&&(e.max_tokens=``)}function P6(e){return O6(e)+`:`+k6(e)+`:`+String(e&&e.period_seconds||`0`)}function F6(e){return Number(e&&e.period_seconds||0)===0}function I6(e){return String(e&&e.period_label||``).trim()||N6(Number(e&&e.period_seconds||0))}function PLe(e){return String(e&&e.source||``)===`config`?`config`:`manual`}function FLe(e){return String(e&&e.source||``)===`config`}function L6(e){let t=Number(e);return Number.isFinite(t)?TZ(t):`0`}function R6(e,t){let n=Number(e),r=Number(t);if(!Number.isFinite(n)||!Number.isFinite(r)||r<=0)return 0;let i=Math.round(n/r*100);return Math.min(Math.max(i,0),100)}function ILe(e,t){let n=String(t||``).trim().toLowerCase(),r=Array.isArray(e)?e.slice():[],i={user_path:0,provider:1,model:2};return r.sort((e,t)=>{let n=(i[O6(e)]||0)-(i[O6(t)]||0);if(n!==0)return n;let r=k6(e).localeCompare(k6(t));return r===0?Number(e.period_seconds||0)-Number(t.period_seconds||0):r}),n?r.filter(e=>{let t=k6(e).toLowerCase(),r=A6(e).toLowerCase(),i=I6(e).toLowerCase();return t.includes(n)||r.includes(n)||i.includes(n)}):r}function z6(e){return!e||!Array.isArray(e.rate_limits)?[]:e.rate_limits}function B6(e,t,n){let r=String(t||``).trim();return r=e===`provider`||e===`model`?r.toLowerCase():`/`+r.split(`/`).map(e=>e.trim()).filter(Boolean).join(`/`),e+`:`+r+`:`+Number(n||0)}function LLe(e,t){return e?B6(t.scope,t.subject,t.limit_key.period_seconds)!==B6(e.scope,e.subject,e.period_seconds):!1}function RLe(e){let t=e||{},n=String(t.scope||`user_path`),r=String(t.subject||``).trim();if(n!==`user_path`&&!r)return{error:H_e({field:j6(t)})};let i=String(t.period||``)===`concurrent`,a=t.period_seconds;if(a===``||a==null)return{error:z_e()};let o=Number(a);if(!Number.isInteger(o)||o<0||o===0&&!i)return{error:G_e()};let s=String(t.max_requests===void 0||t.max_requests===null?``:t.max_requests).trim(),c=String(t.max_tokens===void 0||t.max_tokens===null?``:t.max_tokens).trim();if(!s&&!c)return{error:J_e()};if(i&&c)return{error:Z_e()};let l={scope:n,subject:r||`/`,limit_key:{period_seconds:o}};if(s){let e=Number(s);if(!Number.isInteger(e)||e<=0)return{error:eve()};l.max_requests=e}if(c){let e=Number(c);if(!Number.isInteger(e)||e<=0)return{error:rve()};l.max_tokens=e}return{payload:l}}function V6(e,t,n){if(O6(e)!==`model`)return!1;let r=String(k6(e)).toLowerCase(),i=String(n||``).trim().toLowerCase();if(!i)return!1;if(r===i)return!0;let a=String(t||``).trim().toLowerCase();return a?r===a+`/`+i||i.startsWith(a+`/`)&&r===i.slice(a.length+1):!1}function H6(e,t){return O6(e)===`provider`&&String(k6(e)).toLowerCase()===String(t||``).trim().toLowerCase()}function U6(e){let t=e||{},n=String(t.model||``),r=String(t.provider||``);return!r||n.toLowerCase().startsWith(r+`/`)?n:r+`/`+n}function zLe(e,t){let n=e||{},r=Array.isArray(t)?t:[],i=[];return n.kind===`model`&&i.push({key:`model`,title:ove(),scope:`model`,subject:U6(n),hint:``,items:r.filter(e=>V6(e,n.provider,n.model))}),i.push({key:`provider`,title:lve({provider:n.provider}),scope:`provider`,subject:n.provider,hint:n.kind===`model`?fve():``,items:r.filter(e=>H6(e,n.provider))}),i.push({key:`global`,title:hve(),scope:`user_path`,subject:`/`,hint:vve(),items:r.filter(e=>O6(e)===`user_path`&&k6(e)===`/`)}),i}function W6(e){return F6(e)?R6(e.in_flight,e.max_requests):Math.max(R6(e.requests_used,e.max_requests),R6(e.tokens_used,e.max_tokens))}function BLe(e){return`--rate-limit-pressure: `+W6(e)+`%`}function VLe(e){let t=W6(e);return t>=100?`rate-limit-pressure-row rate-limit-pressure-full`:t>=75?`rate-limit-pressure-row rate-limit-pressure-high`:`rate-limit-pressure-row`}function G6(e){return(Array.isArray(e)?e:[]).some(e=>O6(e)===`user_path`&&k6(e)===`/`)}function HLe(e,t,n){let r=Array.isArray(e)?e:[];return r.some(e=>V6(e,t,n))?`table-action-btn-active`:r.some(e=>H6(e,t))||G6(r)?`rate-limit-gauge-inherited`:``}function ULe(e,t){let n=Array.isArray(e)?e:[];return n.some(e=>H6(e,t))?`table-action-btn-active`:G6(n)?`rate-limit-gauge-inherited`:``}function WLe(e,t){let n=xve({subject:e});return t===`table-action-btn-active`?n+` (`+wve()+`)`:t?n+` (`+Dve()+`)`:n}function GLe(e){if(F6(e))return yY({used:L6(e.in_flight),limit:L6(e.max_requests)});let t=[];return e.max_requests!==null&&e.max_requests!==void 0&&t.push(L6(e.requests_used)+`/`+L6(e.max_requests)+` req`),e.max_tokens!==null&&e.max_tokens!==void 0&&t.push(L6(e.tokens_used)+`/`+L6(e.max_tokens)+` tok`),t.join(` · `)}var Z=new class{#e=j(Xt([]));get rateLimits(){return L(this.#e)}set rateLimits(e){M(this.#e,e,!0)}#t=j(!0);get rateLimitsAvailable(){return L(this.#t)}set rateLimitsAvailable(e){M(this.#t,e,!0)}#n=j(!1);get rateLimitsLoading(){return L(this.#n)}set rateLimitsLoading(e){M(this.#n,e,!0)}rateLimitFetchPromise=null;#r=j(``);get rateLimitFilter(){return L(this.#r)}set rateLimitFilter(e){M(this.#r,e,!0)}#i=j(``);get rateLimitError(){return L(this.#i)}set rateLimitError(e){M(this.#i,e,!0)}#a=j(!1);get rateLimitFormOpen(){return L(this.#a)}set rateLimitFormOpen(e){M(this.#a,e,!0)}#o=j(!1);get rateLimitFormSubmitting(){return L(this.#o)}set rateLimitFormSubmitting(e){M(this.#o,e,!0)}#s=j(``);get rateLimitFormError(){return L(this.#s)}set rateLimitFormError(e){M(this.#s,e,!0)}#c=j(!1);get rateLimitEditing(){return L(this.#c)}set rateLimitEditing(e){M(this.#c,e,!0)}rateLimitEditingOriginal=null;rateLimitFormReturnToInspector=!1;#l=j(``);get rateLimitResettingKey(){return L(this.#l)}set rateLimitResettingKey(e){M(this.#l,e,!0)}#u=j(``);get rateLimitDeletingKey(){return L(this.#u)}set rateLimitDeletingKey(e){M(this.#u,e,!0)}#d=j(!1);get rateLimitInspectorOpen(){return L(this.#d)}set rateLimitInspectorOpen(e){M(this.#d,e,!0)}#f=j(Xt({kind:``,provider:``,model:``,title:``}));get rateLimitInspector(){return L(this.#f)}set rateLimitInspector(e){M(this.#f,e,!0)}#p=j(Xt(E6()));get rateLimitForm(){return L(this.#p)}set rateLimitForm(e){M(this.#p,e,!0)}rateLimitsEnabled(){return ZX.rateLimitsVisible()}defaultRateLimitForm(){return E6()}rateLimitScopeMeta(e){return D6(e)}rateLimitScopeOptions(){return kLe()}rateLimitScope(e){return O6(e)}rateLimitSubject(e){return k6(e)}rateLimitScopeLabel(e){return A6(e)}rateLimitSubjectFieldLabel(){return j6(this.rateLimitForm)}rateLimitSubjectPlaceholder(){return ALe(this.rateLimitForm)}syncRateLimitScope(){jLe(this.rateLimitForm)}rateLimitPeriodOptions(){return MLe()}rateLimitPeriodSeconds(e){return M6(e)}rateLimitPeriodFromSeconds(e){return N6(e)}syncRateLimitPeriodSeconds(){NLe(this.rateLimitForm)}rateLimitKey(e){return P6(e)}rateLimitIsConcurrent(e){return F6(e)}rateLimitPeriodLabel(e){return I6(e)}rateLimitSourceLabel(e){return PLe(e)}rateLimitIsReadOnly(e){return FLe(e)}formatRateLimitNumber(e){return L6(e)}rateLimitUsagePercent(e,t){return R6(e,t)}filteredRateLimits(){return ILe(this.rateLimits,this.rateLimitFilter)}normalizeRateLimitListPayload(e){return z6(e)}async fetchRateLimitsPage(){if(await ZX.ensureLoaded(),!this.rateLimitsEnabled()){this.rateLimits=[],this.rateLimitsAvailable=!1,this.rateLimitError=``;return}return this.rateLimitFetchPromise||=this.fetchRateLimits().finally(()=>{this.rateLimitFetchPromise=null}),this.rateLimitFetchPromise}async fetchRateLimits(){this.rateLimitsLoading=!0,this.rateLimitError=``;let e=await X3(`/admin/rate-limits`,{label:`rate limits`,errorFallback:jge(),normalize:z6});if(this.rateLimitsLoading=!1,e.status!==`stale`){if(e.status===`unavailable`){this.rateLimitsAvailable=!1,this.rateLimits=[];return}if(!e.result){this.rateLimits=[],this.rateLimitError=e.error;return}if(this.rateLimitsAvailable=!0,e.status===`error`){this.rateLimitError=e.error;return}this.rateLimits=e.items}}openRateLimitForm(e){if(this.rateLimitEditing=!!e,this.rateLimitFormError=``,e){let t=Number(e.period_seconds||0);this.rateLimitEditingOriginal={scope:O6(e),subject:k6(e),period_seconds:t},this.rateLimitForm={scope:O6(e),subject:k6(e),period:N6(t),period_seconds:t,max_requests:e.max_requests===null||e.max_requests===void 0?``:String(e.max_requests),max_tokens:e.max_tokens===null||e.max_tokens===void 0?``:String(e.max_tokens),source:String(e.source||`manual`)}}else this.rateLimitEditingOriginal=null,this.rateLimitForm=E6();this.rateLimitFormOpen=!0}closeRateLimitForm(){this.rateLimitFormOpen=!1,this.rateLimitFormSubmitting=!1,this.rateLimitFormError=``,this.rateLimitEditing=!1,this.rateLimitEditingOriginal=null,this.rateLimitForm=E6(),this.rateLimitFormReturnToInspector&&(this.rateLimitFormReturnToInspector=!1,this.rateLimitInspectorOpen=!0)}rateLimitNormalizedIdentity(e,t,n){return B6(e,t,n)}rateLimitIdentityMoved(e){return LLe(this.rateLimitEditingOriginal,e)}setRateLimitFormSubject(e){this.rateLimitForm.subject=String(e||``)}rateLimitFormPayload(){return RLe(this.rateLimitForm)}async submitRateLimitForm(){if(this.rateLimitFormSubmitting)return;let{payload:e,error:t}=this.rateLimitFormPayload();if(t){this.rateLimitFormError=t;return}let n=this.rateLimitIdentityMoved(e),r=this.rateLimitEditingOriginal;this.rateLimitFormSubmitting=!0,this.rateLimitFormError=``;try{let t=await Z3(`/admin/rate-limits`,`PUT`,e,{label:`save rate limit`,errorFallback:Pge(),unavailableStatuses:[]});if(t.status===`stale`)return;if(t.status!==`ok`){this.rateLimitFormError=t.error;return}if(this.rateLimits=z6(t.result.data),n&&!await this.deleteMovedRateLimitOriginal(r))return;this.closeRateLimitForm(),sZ.success(n?Lge():Bge())}finally{this.rateLimitFormSubmitting=!1}}async deleteMovedRateLimitOriginal(e){let t=await Z3(`/admin/rate-limits`,`DELETE`,{scope:e.scope,subject:e.subject,limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`remove the moved rate limit`,errorFallback:Uge(),unavailableStatuses:[]});return t.status===`stale`?!1:t.status===`ok`?(this.rateLimits=z6(t.result.data),!0):(this.rateLimitFormError=t.error,!1)}async deleteRateLimit(e){let t=P6(e);if(this.rateLimitDeletingKey===t)return;this.rateLimitDeletingKey=t;let n=await Z3(`/admin/rate-limits`,`DELETE`,{scope:O6(e),subject:k6(e),limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`delete rate limit`,errorFallback:Kge(),unavailableStatuses:[]});if(this.rateLimitDeletingKey=``,n.status!==`stale`){if(n.status!==`ok`){sZ.error(n.error);return}this.rateLimits=z6(n.result.data),sZ.success(Yge())}}async resetRateLimit(e){let t=P6(e);if(this.rateLimitResettingKey===t)return;this.rateLimitResettingKey=t;let n=await Z3(`/admin/rate-limits/reset-one`,`POST`,{scope:O6(e),subject:k6(e),period_seconds:Number(e.period_seconds||0)},{label:`reset rate limit`,errorFallback:Qge(),unavailableStatuses:[]});if(this.rateLimitResettingKey=``,n.status!==`stale`){if(n.status!==`ok`){sZ.error(n.error);return}this.rateLimits=z6(n.result.data),sZ.success(t_e())}}rateLimitInspectorModelID(e){return String(e&&e.model&&e.model.id||``).trim()}openRateLimitInspectorForModel(e){let t=this.rateLimitInspectorModelID(e),n=String(e&&e.provider_name||``).trim().toLowerCase();this.rateLimitInspector={kind:`model`,provider:n,model:t,title:String(e&&e.display_name||t)},this.showRateLimitInspector()}openRateLimitInspectorForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase();this.rateLimitInspector={kind:`provider`,provider:t,model:``,title:String(e&&e.display_name||t)},this.showRateLimitInspector()}showRateLimitInspector(){this.rateLimitInspectorOpen=!0,this.fetchRateLimitsPage()}closeRateLimitInspector(){this.rateLimitInspectorOpen=!1}rateLimitRuleMatchesModel(e,t,n){return V6(e,t,n)}rateLimitRuleMatchesProvider(e,t){return H6(e,t)}rateLimitInspectorQualifiedModel(){return U6(this.rateLimitInspector)}rateLimitInspectorSections(){return zLe(this.rateLimitInspector,this.rateLimits)}rateLimitPressurePercent(e){return W6(e)}rateLimitPressureStyle(e){return BLe(e)}rateLimitPressureClass(e){return VLe(e)}rateLimitGaugeCache={rules:null,states:{}};rateLimitGaugeMemo(e,t){this.rateLimitGaugeCache.rules!==this.rateLimits&&(this.rateLimitGaugeCache={rules:this.rateLimits,states:{}});let n=this.rateLimitGaugeCache.states;return e in n||(n[e]=t()),n[e]}rateLimitGaugeClassForModel(e){let t=this.rateLimitInspectorModelID(e),n=String(e&&e.provider_name||``).trim().toLowerCase(),r=this.rateLimits;return this.rateLimitGaugeMemo(`model:`+n+`/`+t,()=>HLe(r,n,t))}rateLimitGaugeClassForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase(),n=this.rateLimits;return this.rateLimitGaugeMemo(`provider:`+t,()=>ULe(n,t))}hasGlobalRateLimits(){let e=this.rateLimits;return this.rateLimitGaugeMemo(`global`,()=>G6(e))}rateLimitGaugeTitle(e,t){return WLe(e,t)}rateLimitInspectorSummary(e){return GLe(e)}openRateLimitFormFromInspector(e,t,n){this.rateLimitInspectorOpen=!1,this.rateLimitFormReturnToInspector=!0,this.openRateLimitForm(n||void 0),n||(this.rateLimitForm.scope=e,this.rateLimitForm.subject=t)}},K6=z(``),KLe=z(``),qLe=z(``),JLe=z(``),YLe=z(``),XLe=z(``),ZLe=z(``),QLe=z(`

                    `),$Le=z(`

                    `,1);function q6(e,t){O(t,!0);{let t=A(()=>Z.rateLimitEditing?Nj():GD()),n=A(()=>Ij()),r=A(()=>zj());S6(e,{get open(){return Z.rateLimitFormOpen},get title(){return L(t)},get ariaLabel(){return L(n)},get error(){return Z.rateLimitFormError},get submitting(){return Z.rateLimitFormSubmitting},get submitLabel(){return L(r)},dialogClass:`budget-editor`,novalidate:!0,onclose:()=>Z.closeRateLimitForm(),onsubmit:()=>Z.submitRateLimitForm(),children:(e,t)=>{var n=$Le(),r=P(n),i=N(r);{let e=A(()=>Hj());C6(i,{id:`rate-limit-scope`,get label(){return L(e)},children:(e,t)=>{var n=KLe();U(n,21,()=>Z.rateLimitScopeOptions(),e=>e.value,(e,t)=>{var n=K6(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(n),R(`change`,n,()=>Z.syncRateLimitScope()),vi(n,()=>Z.rateLimitForm.scope,e=>Z.rateLimitForm.scope=e),B(e,n)},$$slots:{default:!0}})}var a=F(i,2);{let e=A(()=>Z.rateLimitSubjectFieldLabel());C6(a,{id:`rate-limit-subject`,get label(){return L(e)},children:(e,t)=>{var n=qLe();Ti(n),I(e=>{G(n,`placeholder`,e),G(n,`data-modal-autofocus`,!Z.rateLimitEditing||void 0),Ei(n,Z.rateLimitForm.subject)},[()=>Z.rateLimitSubjectPlaceholder()]),R(`input`,n,e=>Z.setRateLimitFormSubject(e.currentTarget.value)),B(e,n)},$$slots:{default:!0}})}var o=F(a,2);{let e=A(()=>Gj());C6(o,{id:`rate-limit-period`,get label(){return L(e)},children:(e,t)=>{var n=JLe();U(n,21,()=>Z.rateLimitPeriodOptions(),e=>e.value,(e,t)=>{var n=K6(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(n),R(`change`,n,()=>Z.syncRateLimitPeriodSeconds()),vi(n,()=>Z.rateLimitForm.period,e=>Z.rateLimitForm.period=e),B(e,n)},$$slots:{default:!0}})}var s=F(o,2),c=e=>{{let t=A(()=>Jj());C6(e,{id:`rate-limit-period-seconds`,get label(){return L(t)},children:(e,t)=>{var n=YLe();Ti(n),Mi(n,()=>Z.rateLimitForm.period_seconds,e=>Z.rateLimitForm.period_seconds=e),B(e,n)},$$slots:{default:!0}})}};H(s,e=>{Z.rateLimitForm.period===`custom`&&e(c)});var l=F(s,2);{let e=A(()=>Z.rateLimitForm.period===`concurrent`?Zj():eM());C6(l,{id:`rate-limit-max-requests`,get label(){return L(e)},children:(e,t)=>{var n=XLe();Ti(n),I(()=>G(n,`data-modal-autofocus`,Z.rateLimitEditing?!0:void 0)),Mi(n,()=>Z.rateLimitForm.max_requests,e=>Z.rateLimitForm.max_requests=e),B(e,n)},$$slots:{default:!0}})}var u=F(l,2),d=e=>{{let t=A(()=>rM());C6(e,{id:`rate-limit-max-tokens`,get label(){return L(t)},children:(e,t)=>{var n=ZLe();Ti(n),Mi(n,()=>Z.rateLimitForm.max_tokens,e=>Z.rateLimitForm.max_tokens=e),B(e,n)},$$slots:{default:!0}})}};H(u,e=>{Z.rateLimitForm.period!==`concurrent`&&e(d)}),D(r);var f=F(r,2),p=N(f,!0);D(f);var m=F(f,2),h=e=>{var t=QLe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>lM()]),B(e,t)};H(m,e=>{Z.rateLimitEditing&&e(h)}),I(e=>V(p,e),[()=>oM()]),B(e,n)},$$slots:{default:!0}})}k()}Sr([`change`,`input`]);var eRe=z(` `),J6=z(` `,1),tRe=z(`
                    `),Y6=z(`
                    `),nRe=z(`
                    `),rRe=z(`
                    `);function iRe(e,t){O(t,!0);var n=rRe();U(n,21,()=>t.rules,e=>Z.rateLimitKey(e),(e,t)=>{var n=nRe(),r=N(n),i=N(r),a=N(i),o=N(a,!0);D(a);var s=F(a,2),c=N(s),l=e=>{var n=eRe(),r=N(n);{let e=A(()=>Z.rateLimitScope(L(t))===`provider`?WTe:YY);q(r,{get icon(){return L(e)},class:`budget-period-icon`})}var i=F(r,2),a=N(i,!0);D(i),D(n),I((e,t)=>{G(n,`title`,e),V(a,t)},[()=>Vhe({scope:Z.rateLimitScopeLabel(L(t))}),()=>Z.rateLimitScopeLabel(L(t))]),B(e,n)},u=A(()=>Z.rateLimitScope(L(t))!==`user_path`);H(c,e=>{L(u)&&e(l)});var d=F(c,2),f=N(d);{let e=A(()=>Z.rateLimitIsConcurrent(L(t))?JY:gX);q(f,{get icon(){return L(e)},class:`budget-period-icon`})}var p=F(f,2),m=N(p,!0);D(p),D(d),D(s);var h=F(s,2),g=N(h),_=N(g),v=N(_,!0);D(_),D(g);var y=F(g,2),b=N(y),x=e=>{{let n=A(()=>Xhe());Y3(e,{get label(){return L(n)},class:`budget-action-btn`,onclick:()=>Z.openRateLimitForm(L(t)),children:(e,t)=>{var n=J6(),r=P(n);q(r,{get icon(){return lX},class:`budget-action-icon`});var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>vO()]),B(e,n)},$$slots:{default:!0}})}},S=A(()=>!Z.rateLimitIsReadOnly(L(t)));H(b,e=>{L(S)&&e(x)});var C=F(b,2);{let e=A(()=>Z.rateLimitResettingKey===Z.rateLimitKey(L(t))?$he():nge()),n=A(()=>Z.rateLimitResettingKey===Z.rateLimitKey(L(t)));Y3(C,{get label(){return L(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>Z.resetRateLimit(L(t)),get disabled(){return L(n)},children:(e,n)=>{var r=J6(),i=P(r);q(i,{get icon(){return fX},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);D(a),I(e=>V(o,e),[()=>Z.rateLimitResettingKey===Z.rateLimitKey(L(t))?age():cge()]),B(e,r)},$$slots:{default:!0}})}var w=F(C,2),T=e=>{{let n=A(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(L(t))?dge():mge()),r=A(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(L(t)));Y3(e,{get label(){return L(n)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>Z.deleteRateLimit(L(t)),get disabled(){return L(r)},children:(e,n)=>{var r=J6(),i=P(r);q(i,{get icon(){return _X},class:`budget-action-icon`});var a=F(i,2),o=N(a,!0);D(a),I(e=>V(o,e),[()=>Z.rateLimitDeletingKey===Z.rateLimitKey(L(t))?_ge():bge()]),B(e,r)},$$slots:{default:!0}})}},ee=A(()=>!Z.rateLimitIsReadOnly(L(t)));H(w,e=>{L(ee)&&e(T)}),D(y),D(h),D(i);var E=F(i,2),te=N(E),ne=e=>{var n=tRe(),r=N(n),i=N(r),a=N(i,!0);D(i);var o=F(i,2),s=N(o,!0);D(o),D(r);var c=F(r,2),l=N(c);let u;var d=F(l,2),f=N(d),p=N(f,!0);D(f),D(d),D(c),D(n),I((e,t,n,r,i,o,d)=>{V(a,e),V(s,t),G(c,`aria-valuenow`,n),G(c,`aria-label`,r),hi(c,i),u=W(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),V(p,d)},[()=>xO(),()=>Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests),()=>yY({used:Z.formatRateLimitNumber(L(t).in_flight),limit:Z.formatRateLimitNumber(L(t).max_requests)}),()=>`--budget-progress: `+Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests)>=100}),()=>yY({used:Z.formatRateLimitNumber(L(t).in_flight),limit:Z.formatRateLimitNumber(L(t).max_requests)})]),B(e,n)},re=A(()=>Z.rateLimitIsConcurrent(L(t)));H(te,e=>{L(re)&&e(ne)});var ie=F(te,2),ae=e=>{var n=Y6(),r=N(n),i=N(r),a=N(i,!0);D(i);var o=F(i,2),s=N(o,!0);D(o),D(r);var c=F(r,2),l=N(c);let u;var d=F(l,2),f=N(d),p=N(f,!0);D(f);var m=F(f,2),h=N(m,!0);D(m),D(d),D(c),D(n),I((e,t,n,r,i,o,d,f)=>{V(a,e),V(s,t),G(c,`aria-valuenow`,n),G(c,`aria-label`,r),hi(c,i),u=W(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),V(p,d),V(h,f)},[()=>wO(),()=>Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests),()=>bY({used:Z.formatRateLimitNumber(L(t).requests_used),limit:Z.formatRateLimitNumber(L(t).max_requests)}),()=>`--budget-progress: `+Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests)>=100}),()=>bY({used:Z.formatRateLimitNumber(L(t).requests_used),limit:Z.formatRateLimitNumber(L(t).max_requests)}),()=>SY({count:Z.formatRateLimitNumber(L(t).requests_remaining)})]),B(e,n)},oe=A(()=>!Z.rateLimitIsConcurrent(L(t))&&L(t).max_requests);H(ie,e=>{L(oe)&&e(ae)});var se=F(ie,2),ce=e=>{var n=Y6(),r=N(n),i=N(r),a=N(i,!0);D(i);var o=F(i,2),s=N(o,!0);D(o),D(r);var c=F(r,2),l=N(c);let u;var d=F(l,2),f=N(d),p=N(f,!0);D(f);var m=F(f,2),h=N(m,!0);D(m),D(d),D(c),D(n),I((e,t,n,r,i,o,d,f)=>{V(a,e),V(s,t),G(c,`aria-valuenow`,n),G(c,`aria-label`,r),hi(c,i),u=W(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),V(p,d),V(h,f)},[()=>DO(),()=>Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens)+`%`,()=>Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens),()=>xY({used:Z.formatRateLimitNumber(L(t).tokens_used),limit:Z.formatRateLimitNumber(L(t).max_tokens)}),()=>`--budget-progress: `+Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens)>=100}),()=>xY({used:Z.formatRateLimitNumber(L(t).tokens_used),limit:Z.formatRateLimitNumber(L(t).max_tokens)}),()=>SY({count:Z.formatRateLimitNumber(L(t).tokens_remaining)})]),B(e,n)},le=A(()=>!Z.rateLimitIsConcurrent(L(t))&&L(t).max_tokens);H(se,e=>{L(le)&&e(ce)}),D(E),D(r),D(n),I((e,t,n,r,i)=>{G(a,`title`,e),V(o,t),V(m,n),G(_,`title`,r),V(v,i)},[()=>Z.rateLimitScopeLabel(L(t))+`: `+Z.rateLimitSubject(L(t)),()=>Z.rateLimitSubject(L(t)),()=>Z.rateLimitPeriodLabel(L(t)),()=>Z.rateLimitIsReadOnly(L(t))?Whe():qhe(),()=>Z.rateLimitSourceLabel(L(t))]),B(e,n)}),D(n),B(e,n),k()}var aRe=z(`

                    `),oRe=z(``),sRe=z(`
                    `),cRe=z(``),lRe=z(`
                    `),X6=z(`

                    `),uRe=z(`
                    `);function dRe(e,t){O(t,!0),hn(()=>{Y.refreshTick,wX.page===`rate-limits`&&Z.fetchRateLimitsPage()});let n=A(()=>Z.filteredRateLimits());var r=uRe(),i=N(r),a=N(i);c3(N(a),{copyId:`rate-limits-help-copy`,label:`rate limits help`,text:`Rate limits cap requests, tokens, and in-flight concurrency for a user path subtree, a provider, or a model. Consumer (user path) breaches return 429 with Retry-After and x-ratelimit-* headers; saturated providers and models are skipped by load balancing and failover while capacity exists elsewhere. Counters are per gateway instance and reset on restart; token limits need usage tracking.`,title:e=>{var t=aRe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>HD()]),B(e,t)},$$slots:{title:!0}}),D(a);var o=F(a,2),s=N(o),c=e=>{var t=oRe(),n=N(t);q(n,{get icon(){return uX},class:`form-action-icon`});var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>{t.disabled=Z.rateLimitFormSubmitting,V(i,e)},[()=>GD()]),R(`click`,t,()=>Z.openRateLimitForm()),B(e,t)},l=A(()=>Z.rateLimitsEnabled()&&Z.rateLimitsAvailable&&!Y.authError);H(s,e=>{L(l)&&e(c)}),D(o),D(i);var u=F(i,2);jZ(u,{});var d=F(u,2),f=e=>{var t=sRe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>JD()]),B(e,t)},p=A(()=>(!Z.rateLimitsEnabled()||!Z.rateLimitsAvailable)&&!Y.authError);H(d,e=>{L(p)&&e(f)});var m=F(d,2),h=e=>{var t=cRe(),n=N(t,!0);D(t),I(()=>V(n,Z.rateLimitError)),B(e,t)};H(m,e=>{Z.rateLimitError&&!Y.authError&&e(h)});var g=F(m,2),_=e=>{J3(e,{label:`Loading rate limits...`})};H(g,e=>{Z.rateLimitsLoading&&!Y.authError&&e(_)});var v=F(g,2),y=e=>{var t=lRe(),n=N(t),r=N(n);{let e=A(()=>ZD()),t=A(()=>eO());z3(r,{id:`rate-limit-filter`,get placeholder(){return L(e)},get label(){return L(t)},get value(){return Z.rateLimitFilter},set value(e){Z.rateLimitFilter=e}})}D(n),D(t),B(e,t)};H(v,e=>{(Z.rateLimits.length>0||Z.rateLimitFilter)&&Z.rateLimitsAvailable&&!Y.authError&&!Z.rateLimitFormOpen&&e(y)});var b=F(v,2);q6(b,{});var x=F(b,2),S=e=>{iRe(e,{get rules(){return L(n)}})};H(x,e=>{L(n).length>0&&Z.rateLimitsAvailable&&!Y.authError&&e(S)});var C=F(x,2),w=e=>{var t=X6(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>rO()]),B(e,t)},T=A(()=>Z.rateLimits.length===0&&!Z.rateLimitFilter&&!Z.rateLimitsLoading&&!Y.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());H(C,e=>{L(T)&&e(w)});var ee=F(C,2),E=e=>{var t=X6(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>oO()]),B(e,t)},te=A(()=>Z.rateLimits.length>0&&L(n).length===0&&Z.rateLimitFilter&&!Z.rateLimitsLoading&&!Y.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());H(ee,e=>{L(te)&&e(E)}),D(r),B(e,r),k()}Sr([`click`]);function Z6(e){return String(e||``).trim().toLowerCase()}function Q6(e){if(!e)return``;let t=String(e.selector||``).trim();if(t)return t;if(!e.model||!e.model.id)return``;let n=String(e.model.id||``).trim(),r=String(e.provider_name||``).trim();if(r)return r+`/`+n;let i=String(e.provider_type||``).trim();return!i||n.includes(`/`)?n:i+`/`+n}function fRe(e,t,n,r){let i=new Set,a=String(e||``).trim().toLowerCase(),o=String(t||``).trim().toLowerCase(),s=String(n||``).trim().toLowerCase(),c=String(r||``).trim().toLowerCase();if(c&&i.add(c),!a)return i;i.add(a),s&&i.add(s+`/`+a),o&&!a.includes(`/`)&&i.add(o+`/`+a);let l=a.split(`/`);return l.length===2&&l[1]&&i.add(l[1]),i}function $6(e){return fRe(e&&e.model?e.model.id:``,e?e.provider_type:``,e?e.provider_name:``,e?e.selector:``)}function pRe(e){let t=new Set,n=String(e.resolved_model||``).trim().toLowerCase(),r=String(e.target_model||``).trim().toLowerCase(),i=String(e.target_provider||``).trim().toLowerCase();if(n){t.add(n);let e=n.split(`/`);e.length===2&&e[1]&&t.add(e[1])}if(r){t.add(r);let e=r.split(`/`);e.length===2&&e[1]&&t.add(e[1])}return r&&i&&t.add(i+`/`+r),t}function e8(e){if(!e)return``;let t=String(e.provider||``).trim(),n=String(e.model||``).trim();return!t||!n||n===t||n.startsWith(t+`/`)?n:t+`/`+n}function mRe(e){if(e===``||e==null)return null;let t=Number(e);return!Number.isFinite(t)||t<=0?null:t}function t8(e,t){let n={model:e},r=mRe(t);return r!==null&&(n.weight=r),n}function n8(e){let t=Array.isArray(e)?e:[],n=[];for(let e of t){let t=String(e&&e.model||``).trim();t&&n.push(t8(t,e&&e.weight))}return n}function hRe(e){switch(String(e||``).toLowerCase()){case`cost`:return`lowest cost`;case`round_robin`:case``:return`round robin`;default:return e}}var gRe={round_robin:Aye(),cost:Nye(),adaptive:Iye()};function _Re(e,t){let n=Array.isArray(e)?[...e]:[],r=String(t||``).trim().toLowerCase();return r&&!n.includes(r)&&n.push(r),n.map(e=>({value:e,label:gRe[e]||e}))}function vRe(e){let t=Array.isArray(e.targets)?e.targets:[],n=t.length>0?t[0]:{},r=t.map(e=>{let t={provider:e.provider||``,model:e.model||``};return e.weight&&(t.weight=e.weight),t});return{name:e.source,target_provider:n.provider||``,target_model:n.model||``,targets:r,strategy:e.strategy||``,session_affinity:e.session_affinity!==!1,description:e.description||``,slowdown:e.slowdown==null?null:Number(e.slowdown),enabled:e.enabled!==!1,managed:!!e.managed,valid:!!e.valid,resolved_model:e.resolved_model||``,provider_type:e.provider_type||``,user_paths:Array.isArray(e.user_paths)?e.user_paths:[]}}function yRe(e){let t=Array.isArray(e)?e:[],n=[],r=[];for(let e of t)!e||typeof e!=`object`||(e.kind===`redirect`?n.push(vRe(e)):e.kind===`policy`&&r.push({selector:e.source,provider_name:e.provider_name||``,model:e.model||``,user_paths:Array.isArray(e.user_paths)?e.user_paths:[],description:e.description||``,slowdown:e.slowdown==null?null:Number(e.slowdown),enabled:e.enabled!==!1,managed:!!e.managed,scope_kind:e.scope_kind||``}));return{aliases:n,policies:r}}function r8(e){if(!e)return`—`;let t=Array.isArray(e.targets)?e.targets:[];return t.length>1?t.length+` targets · `+hRe(e.strategy):e.resolved_model?e.resolved_model:e.target_provider?e.target_provider+`/`+e.target_model:e.target_model||`—`}function i8(e){return e?e.enabled===!1?`is-disabled`:e.valid?`is-valid`:`is-invalid`:`is-invalid`}function bRe(e){return e?e.enabled===!1?Hg():e.valid?Vye():AY():AY()}function a8(e){return Array.isArray(e)&&e.length>0&&e.indexOf(`/`)===-1}function xRe(e,t){return!t||!e?``:e.effective_enabled===!1?`is-disabled`:a8(e.user_paths)?`is-restricted`:`is-enabled`}function SRe(e){if(!e)return``;let t=[];e.effective_enabled===!1&&t.push(e.default_enabled===!1?JK():Hg());let n=Array.isArray(e.user_paths)?e.user_paths:[];return n.length>0&&t.push(ZK({paths:n.join(`, `)})),t.join(` · `)}function CRe({models:e,aliases:t,virtualModelsAvailable:n,activeCategory:r}){let i=Array.isArray(e)?e:[],a=Array.isArray(t)?t:[],o=new Map;if(n)for(let e of a){let t=Z6(e&&e.name);!t||e.enabled===!1||!e.valid||o.set(t,e)}let s=new Map,c=i.map(e=>{let t=Q6(e),n=null;for(let t of $6(e))s.has(t)||s.set(t,e),!n&&o.has(t)&&(n=o.get(t));let r=e&&e.access?e.access:null;return{key:`model:`+t,display_name:t,secondary_name:``,provider_name:e.provider_name||``,provider_type:e.provider_type||``,model:e.model,selector:e.selector||``,is_alias:!1,alias:null,access:r,masking_alias:n,has_virtual_model:!!(n||r&&r.override),alias_state_class:``,alias_state_text:``}});if(!n)return c;for(let e of a){let t=s.get(Z6(e&&e.name));if(e&&e.enabled!==!1&&e.valid&&t)continue;let n=null;for(let t of pRe(e))if(n=s.get(t)||null,n)break;!n&&r&&r!==`all`||c.push({key:`alias:`+e.name,display_name:e.name,secondary_name:r8(e),provider_name:n&&n.provider_name||``,provider_type:n?n.provider_type||e.provider_type||``:e.provider_type||``,model:n?n.model:{id:e.name,object:`model`},selector:``,is_alias:!0,alias:e,access:null,masking_alias:null,source_model_exists:!!t,has_virtual_model:!0,alias_state_class:i8(e),alias_state_text:bRe(e)})}return c.sort((e,t)=>e.is_alias===t.is_alias?String(e.display_name||``).localeCompare(String(t.display_name||``)):e.is_alias?-1:1)}function wRe(e,t){if(!t)return e;let n=String(t).toLowerCase();return e.filter(e=>[e.display_name,e.secondary_name,e.provider_name,e.provider_type,e.model&&e.model.owned_by,e.alias&&e.alias.description,e.alias&&e.alias_state_text,e.model&&e.model.metadata&&e.model.metadata.modes?e.model.metadata.modes.join(`,`):``,e.model&&e.model.metadata&&e.model.metadata.categories?e.model.metadata.categories.join(`,`):``].some(e=>String(e||``).toLowerCase().includes(n)))}function o8(e,t){return String(e||``).trim()||String(t||``).trim()||Wye()}function s8(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return!r||r===n?``:r}function TRe(e){let t=String(e||``).trim();return t?t+`/`:``}function c8(e){let t=Array.isArray(e)?e:[],n=t.filter(e=>e&&!e.is_alias).length,r=t.filter(e=>e&&e.is_alias).length,i=[];return n>0&&i.push(eq({count:n})),r>0&&i.push(rq({count:r})),i.join(` · `)}function ERe(e,t,n){let r=String(t||``).trim(),i=String(n||``).trim();for(let t of Array.isArray(e)?e:[]){let e=String(t&&t.provider_name||``).trim(),n=String(t&&t.provider_type||``).trim();if(!(r&&e!==r)&&!(!r&&i&&n!==i)&&t&&t.access)return t.access.default_enabled!==!1}return!0}function l8(e){for(let t of Array.isArray(e)?e:[])if(t&&t.access)return t.access.default_enabled!==!1;return!0}function u8(e,t){let n=String(t||``).trim();if(!n)return null;for(let t of Array.isArray(e)?e:[])if(String(t&&t.selector||``).trim()===n)return t;return null}function DRe(e,t,n,r){let i=TRe(t),a=r&&r.get(`/`)||null,o=i&&r&&r.get(i)||null,s=ERe(e,t,n),c=o||a,l=c&&Array.isArray(c.user_paths)?Array.from(new Set(c.user_paths)).sort():[];return{selector:i,default_enabled:s,effective_enabled:c?c.enabled!==!1:s,user_paths:l,override:o}}function d8(e,t,n){if(!Array.isArray(e)||e.length===0)return[];let r=new Map;for(let e of Array.isArray(n)?n:[]){let t=String(e&&e.selector||``).trim();t&&r.set(t,e)}let i=[],a=new Map;for(let t of e){if(t&&t.is_alias){i.push(t);continue}let e=String(t&&t.provider_name||``).trim(),n=String(t&&t.provider_type||``).trim(),r=`provider-group:`+(e||n||`unassigned`);a.has(r)||a.set(r,{key:r,provider_name:e,provider_type:n,display_name:o8(e,n),type_label:s8(e,n),rows:[]});let o=a.get(r);!o.provider_name&&e&&(o.provider_name=e),!o.provider_type&&n&&(o.provider_type=n),o.display_name=o8(o.provider_name,o.provider_type),o.type_label=s8(o.provider_name,o.provider_type),o.rows.push(t)}let o=Array.from(a.values()).map(e=>{let n=DRe(t,e.provider_name,e.provider_type,r);return{...e,access:n,access_summary:SRe(n),item_count_label:c8(e.rows)}}).sort((e,t)=>String(e.display_name||``).localeCompare(String(t.display_name||``)));return i.length>0&&o.unshift({key:`virtual-model-group`,is_virtual_models:!0,provider_name:``,provider_type:``,display_name:HK(),type_label:``,rows:i,access:{selector:``},access_summary:``,item_count_label:c8(i)}),o}function ORe(e,t){let n=u8(t,`/`),r=l8(e),i=n&&Array.isArray(n.user_paths)?n.user_paths:[];return{key:`scope-global`,is_alias:!1,display_name:GK(),access:{selector:`/`,default_enabled:r,effective_enabled:n?n.enabled!==!1:r,user_paths:i,override:n}}}function f8(e){return e?String(e.access&&e.access.selector||``).trim()||String(e.override_selector||``).trim()||Q6(e):``}function kRe(e){if(!e)return[];let t=[];return e.is_alias?t.push(`alias-row`,i8(e.alias)):e.has_virtual_model&&t.push(`alias-row`,`is-valid`),!e.is_alias&&e.masking_alias&&t.push(`masked-model-row`),!e.is_alias&&e.access&&e.access.effective_enabled===!1&&t.push(`model-access-disabled-row`),t}function ARe(e){return!!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)}function jRe(e){return!!(e&&!e.is_alias&&e.masking_alias&&e.masking_alias.name&&!e.masking_alias.managed)}function MRe(e){return e&&e.is_alias&&e.alias&&e.alias.name?`alias-row-`+String(e.alias.name).replace(/[^a-zA-Z0-9_-]+/g,`-`):``}function p8(e){return e?e.is_alias?!!(e.alias&&e.alias.managed):!!(e.access&&e.access.override&&e.access.override.managed||e.masking_alias&&e.masking_alias.managed):!1}function m8(e){return!!(e&&e.override)}function h8(e){return e?`table-action-btn-active`:``}function g8(e,t){let n=String(e||rK());return t?zG({subject:n}):NG({subject:n})}function _8(){return{source:``,target_model:``,target_weight:1,targets:[],strategy:`round_robin`,session_affinity:!0,user_paths:``,description:``,slowdown:``,enabled:!0}}function NRe(e){return String(e&&e.target_model||``).trim()!==``}function v8(e){return String(e&&e.target_model||``).trim()?!0:n8(e&&e.targets).length>0}function PRe(e){if(v8(e))return!0;let t=String(e&&e.source||``).trim();return!!t&&t!==`/`&&!t.endsWith(`/`)}function y8(e){return!!e&&Array.isArray(e.targets)&&e.targets.length>0}function FRe(e){return y8(e)&&String(e&&e.strategy||``).toLowerCase()!==`cost`}function IRe(e){let t=Array.isArray(e.targets)?e.targets:[];if(t.length>0){let n=t.shift();e.target_model=n.model||``,e.target_weight=n.weight||1;return}e.target_model=``,e.target_weight=1}function LRe(e){let t=Array.isArray(e&&e.targets)?e.targets:[];return t.length>0?{primaryModel:e8(t[0]),primaryWeight:t[0].weight||1,extraTargets:t.slice(1).map(e=>({model:e8(e),weight:e.weight||1}))}:{primaryModel:e&&e.target_provider?e.target_provider+`/`+e.target_model:e&&e.target_model||``,primaryWeight:1,extraTargets:[]}}function b8(e){return String(e||``).split(/\r?\n|,/).map(e=>String(e||``).trim()).filter(Boolean)}function RRe(e,t,n){let r=String(e&&e.source||``).trim(),i=String(e&&e.target_model||``).trim(),a=n8(e&&e.targets),o=v8(e),s=String(t||``).trim(),c=n===`edit`&&!!s&&r!==s,l={source:r,user_paths:b8(e&&e.user_paths),description:String(e&&e.description||``).trim(),enabled:!!(e&&e.enabled)},u=e&&e.slowdown;if(u!==``&&u!=null){let e=Number(u);Number.isFinite(e)&&(l.slowdown=e)}if(c&&(l.old_source=s),o){let t=[];if(i&&t.push(t8(i,e.target_weight)),t.push(...a),t.length>1){let n=e.strategy||`round_robin`;l.targets=n===`cost`?t.map(e=>({model:e.model})):t,l.strategy=n,e&&e.session_affinity===!1&&(l.session_affinity=!1)}else l.target_model=t[0].model}return{payload:l,source:r,isRedirect:o,isRename:c}}function zRe(e){let t={source:e.name,description:String(e.description||``).trim(),user_paths:Array.isArray(e.user_paths)?e.user_paths:[],enabled:e.enabled===!1};if(e.slowdown!=null){let n=Number(e.slowdown);Number.isFinite(n)&&(t.slowdown=n)}let n=Array.isArray(e.targets)?e.targets:[];return n.length>1?(t.strategy=e.strategy||`round_robin`,e.session_affinity===!1&&(t.session_affinity=!1),t.targets=t.strategy===`cost`?n.map(e=>({model:e8(e)})):n.map(e=>t8(e8(e),e.weight))):n.length===1?t.target_model=e8(n[0]):t.target_model=e.target_provider?e.target_provider+`/`+e.target_model:e.target_model,t}function BRe(e,t,n){let r=n||{},i=r.effective_enabled===!1,a=t&&Array.isArray(t.user_paths)?t.user_paths:[],o=String(t&&t.description||``).trim(),s=!!(t&&t.slowdown!=null),c=Number(s?t.slowdown:0),l={};o&&(l.description=o),s&&Number.isFinite(c)&&(l.slowdown=c);let u=`PUT`,d;return i===!1?d={source:e,enabled:!1,user_paths:a,...l}:t&&a.length===0&&!o&&!s&&r.default_enabled!==!1?(u=`DELETE`,d={source:e}):d={source:e,enabled:!0,user_paths:a,...l},{method:u,payload:d,desired:i}}function x8(e,t,n){let r=Math.max(1,Number(t||75)),i=Math.min(n,e+r);return{limit:i,rendering:iCRe({models:AZ.models,aliases:this.aliases,virtualModelsAvailable:this.virtualModelsAvailable,activeCategory:AZ.activeCategory}));get displayModels(){return L(this.#T)}set displayModels(e){M(this.#T,e)}#E=A(()=>d8(this.displayModels,AZ.models,this.modelOverrideViews));get displayModelGroups(){return L(this.#E)}set displayModelGroups(e){M(this.#E,e)}#D=A(()=>wRe(this.displayModels,AZ.filter));get filteredDisplayModels(){return L(this.#D)}set filteredDisplayModels(e){M(this.#D,e)}#O=A(()=>{let e=this.filteredDisplayModels,t=Math.max(0,Math.min(Number(this.modelRenderLimit||0),e.length));return!AZ.filter&&t>=this.displayModels.length?this.displayModelGroups:d8(e.slice(0,t),AZ.models,this.modelOverrideViews)});get filteredDisplayModelGroups(){return L(this.#O)}set filteredDisplayModelGroups(e){M(this.#O,e)}#k=A(()=>ORe(AZ.models,this.modelOverrideViews));get globalScopeRow(){return L(this.#k)}set globalScopeRow(e){M(this.#k,e)}modelsBusy(){return!!(AZ.loading||this.modelsRendering)}modelLoadingText(){if(AZ.loading)return this.displayModels.length>0?e_():Zg();let e=this.filteredDisplayModels.length;return r_({visible:Math.min(Number(this.modelRenderLimit||0),e),total:e})}restartModelRendering(e){let t=++this.#a,n=VRe(this.modelRenderBatchSize,e);this.modelRenderLimit=n.limit,this.modelsRendering=n.rendering,n.rendering&&this.#A(t)}stopModelRendering(){this.#a++,this.modelsRendering=!1}#A(e){let t=()=>{if(e!==this.#a)return;let t=x8(this.modelRenderLimit,this.modelRenderBatchSize,this.filteredDisplayModels.length);this.modelRenderLimit=t.limit,this.modelsRendering=t.rendering,t.rendering&&this.#A(e)};typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>setTimeout(t,0)):setTimeout(t,0)}async fetchVirtualModels(){this.aliasLoading=!0,this.aliasError=``;try{let e=await JX(`/admin/virtual-models`,{label:`virtual models`});if(e.status===503){this.virtualModelsAvailable=!1,this.aliases=[],this.modelOverrideViews=[];return}if(e.stale)return;if(this.virtualModelsAvailable=!0,!e.ok){this.aliases=[],this.modelOverrideViews=[];return}let{aliases:t,policies:n}=yRe(e.data);this.aliases=t,this.modelOverrideViews=n}catch(e){console.error(`Failed to fetch virtual models:`,e),this.aliases=[],this.modelOverrideViews=[],this.aliasError=Ave()}finally{this.aliasLoading=!1}}qualifiedModelName(e){return Q6(e)}findModelOverrideView(e){return u8(this.modelOverrideViews,e)}hasGlobalModelOverride(){return!!this.findModelOverrideView(`/`)}findExistingAliasByName(e){let t=Z6(e);if(!t)return null;for(let e of this.aliases)if(Z6(e&&e.name)===t)return e;return null}findConcreteModelByName(e){let t=Z6(e);if(!t)return null;for(let e of AZ.models)if($6(e).has(t))return e;return null}rowToggleEnabled(e){return e?e.is_alias?e.alias&&e.alias.enabled!==!1:!!(e.access&&e.access.effective_enabled!==!1):!1}rowToggleLabel(e){return this.rowTogglingKey&&this.rowTogglingKey===e.key?Jg():this.rowToggleRestricted(e)?Gg():this.rowToggleEnabled(e)?zg():Hg()}rowToggleRestricted(e){return!!e&&!e.is_alias&&xRe(e.access,this.virtualModelsAvailable)===`is-restricted`}rowToggleAriaLabel(e){if(!e)return``;let t;return t=e.is_alias?wG({name:String(e.alias&&e.alias.name||``)}):String(e.display_name||e.access&&e.access.selector||DG()),this.rowToggleEnabled(e)?xG({subject:t.trim()}):vG({subject:t.trim()})}async toggleRowEnabled(e){if(this.virtualModelsAvailable&&!(!e||this.rowTogglingKey===e.key)){if(p8(e)){sZ.success(AG());return}if(e.is_alias){await this.toggleAliasRow(e);return}await this.toggleModelRow(e)}}async toggleAliasRow(e){let t=e.alias;if(!t||!t.name)return;this.rowTogglingKey=e.key;let n=zRe(t);try{let e=await YX(`/admin/virtual-models`,`PUT`,n,{label:`alias state`});if(e.status===503){this.virtualModelsAvailable=!1,sZ.error(lg());return}if(e.stale)return;if(!e.ok){sZ.error(e.status===401?rz():GX(e,wY()));return}sZ.success(n.enabled?Fve():Rve()),this.fetchVirtualModels()}catch(e){console.error(`Failed to toggle alias state:`,e),sZ.error(wY())}finally{this.rowTogglingKey=``}}async toggleModelRow(e){let t=f8(e);if(!t)return;let{method:n,payload:r,desired:i}=BRe(t,this.findModelOverrideView(t),e.access||{});this.rowTogglingKey=e.key;try{let e=await YX(`/admin/virtual-models`,n,r,{label:`model access`});if(e.status===503){this.virtualModelsAvailable=!1,sZ.error(lg());return}if(!(n===`DELETE`&&e.status===404)){if(e.stale)return;if(!e.ok){sZ.error(e.status===401?rz():GX(e,TY()));return}}sZ.success(i?Uve():Kve()),Promise.all([AZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to toggle model access:`,e),sZ.error(TY())}finally{this.rowTogglingKey=``}}async removeAliasRow(e){if(!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)||this.rowDeletingKey)return;let t=String(e.alias.name||``).trim();t&&await this.mutateVirtualModelRow({rowKey:e.key,confirmMessage:Jwe({source:t}),method:`DELETE`,payload:{source:t},operation:`virtual model`,failureMessage:EY(),notice:DY(),ignoreNotFound:!0})}async removeRedirectRow(e){let t=e&&e.masking_alias;if(!(e&&!e.is_alias&&t&&t.name&&!t.managed)||this.rowDeletingKey)return;let n=String(t.name||``).trim();n&&await this.mutateVirtualModelRow({rowKey:e.key,confirmMessage:Zwe({source:n}),method:`PUT`,payload:{source:n,user_paths:Array.isArray(t.user_paths)?t.user_paths:[],description:String(t.description||``).trim(),enabled:t.enabled!==!1,...t.slowdown==null?{}:{slowdown:Number(t.slowdown)}},operation:`virtual model redirect`,failureMessage:$ve(),notice:nye()})}async mutateVirtualModelRow(e){if(!this.rowDeletingKey&&window.confirm(e.confirmMessage)){this.rowDeletingKey=e.rowKey;try{let t=await YX(`/admin/virtual-models`,e.method,e.payload,{label:e.operation});if(t.status===503){this.virtualModelsAvailable=!1,sZ.error(lg());return}if(!(e.ignoreNotFound&&t.status===404)){if(t.stale)return;if(!t.ok){sZ.error(t.status===401?rz():GX(t,e.failureMessage));return}}this.virtualModelsAvailable=!0,sZ.success(e.notice),Promise.all([AZ.fetchModels(),this.fetchVirtualModels()])}catch(t){console.error(e.failureMessage,t),sZ.error(e.failureMessage)}finally{this.rowDeletingKey=``}}}addVmTarget(){Array.isArray(this.vmForm.targets)||(this.vmForm.targets=[]),this.vmForm.targets.push({model:``,weight:1})}removeVmTarget(e){Array.isArray(this.vmForm.targets)&&this.vmForm.targets.splice(e,1)}removePrimaryTarget(){IRe(this.vmForm)}vmFormHasPrimaryTarget(){return NRe(this.vmForm)}vmFormShowStrategy(){return y8(this.vmForm)}vmStrategyOptions(){return _Re(ZX.virtualModelStrategies(),this.vmForm.strategy)}vmFormShowWeights(){return FRe(this.vmForm)}vmFormSupportsSlowdown(){return PRe(this.vmForm)}vmFormToggleRestricted(){return!!(this.vmForm&&this.vmForm.enabled)&&a8(b8(this.vmForm.user_paths))}vmFormToggleLabel(){return!this.vmForm||!this.vmForm.enabled?Hg():this.vmFormToggleRestricted()?Gg():zg()}resetVirtualModelForm(){this.vmFormError=``,this.vmFormHelpOpen=!1,this.vmFormUserPathsHelpOpen=!1,this.vmSubmitting=!1,this.vmDeleting=!1,this.vmFormHasExisting=!1,this.vmFormDefaultEnabled=!0,this.vmFormEffectiveEnabled=!0,this.vmFormDisplayName=``,this.vmFormSourceLocked=!1,this.vmFormOriginalSource=``,this.vmFormManaged=!1,this.vmForm=_8()}closeVirtualModelForm(){this.vmFormOpen=!1,this.resetVirtualModelForm()}openVirtualModelCreate(e){this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`create`,this.vmFormSourceLocked=!1,this.vmFormDisplayName=vg(),e&&e.model&&e.model.id&&(this.vmForm.target_model=Q6(e))}openVirtualModelEditAlias(e){if(!e)return;this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!1,this.vmFormHasExisting=!0,this.vmFormManaged=!!e.managed,this.vmFormOriginalSource=e.name||``,this.vmFormDisplayName=e.name||``,this.vmFormDefaultEnabled=l8(AZ.models),this.vmFormEffectiveEnabled=e.enabled!==!1;let{primaryModel:t,primaryWeight:n,extraTargets:r}=LRe(e);this.vmForm={source:e.name||``,target_model:t,target_weight:n,targets:r,strategy:e.strategy||`round_robin`,session_affinity:e.session_affinity!==!1,user_paths:(Array.isArray(e.user_paths)?e.user_paths:[]).join(` +`),description:e.description||``,slowdown:e.slowdown??``,enabled:e.enabled!==!1}}openVirtualModelEditModel(e){if(!e||e.is_alias)return;let t=e.access||{},n=t.override||null,r=n&&Array.isArray(n.user_paths)?n.user_paths:Array.isArray(t.user_paths)?t.user_paths:[],i=f8(e);this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!0,this.vmFormHasExisting=!!n,this.vmFormOriginalSource=i;let a=n?n.enabled!==!1:t.effective_enabled!==!1;this.vmFormDefaultEnabled=t.default_enabled!==!1,this.vmFormEffectiveEnabled=a,this.vmFormManaged=!!(n&&n.managed),this.vmFormDisplayName=e.access_display_name||e.display_name||i||``,this.vmForm={source:i,target_model:``,target_weight:``,targets:[],strategy:`round_robin`,user_paths:r.join(` +`),description:n&&n.description?n.description:``,slowdown:n&&n.slowdown!=null?n.slowdown:``,enabled:a}}openGlobalModelOverrideEdit(){let e=this.findModelOverrideView(`/`),t=e&&Array.isArray(e.user_paths)?e.user_paths:[],n=l8(AZ.models);this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!0,this.vmFormHasExisting=!!e,this.vmFormOriginalSource=`/`,this.vmFormDefaultEnabled=n,this.vmFormEffectiveEnabled=e?e.enabled!==!1:n,this.vmFormManaged=!!(e&&e.managed),this.vmFormDisplayName=o_(),this.vmForm={source:`/`,target_model:``,target_weight:``,targets:[],strategy:`round_robin`,user_paths:t.join(` +`),description:e&&e.description?e.description:``,slowdown:e&&e.slowdown!=null?e.slowdown:``,enabled:e?e.enabled!==!1:n}}openProviderOverrideEdit(e){!e||!e.access||!e.access.selector||this.openVirtualModelEditModel({display_name:e.display_name,access_display_name:l_({provider:e.display_name}),provider_name:e.provider_name,provider_type:e.provider_type,access:e.access,override_selector:e.access.selector,is_alias:!1})}async submitVirtualModelForm(){if(this.vmFormManaged){this.vmFormError=aye();return}let{payload:e,source:t,isRedirect:n,isRename:r}=RRe(this.vmForm,this.vmFormOriginalSource,this.vmFormMode);if(!t){this.vmFormError=dye();return}if(this.vmFormError=``,this.vmFormMode!==`edit`){let e=this.findExistingAliasByName(t),r=e?null:this.findModelOverrideView(t);if(e||r){let n=e?eTe({name:e.name}):rTe({source:t});if(!window.confirm(n)){this.vmFormError=mye();return}}else if(n){let e=this.findConcreteModelByName(t);if(e){let t=Q6(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(oTe({name:t}))){this.vmFormError=OY();return}}}}else if(r){let e=(this.aliases||[]).find(e=>e&&e.name===t)||null,r=e?null:this.findModelOverrideView(t);if(e||r){this.vmFormError=lTe({source:t});return}if(n){let e=this.findConcreteModelByName(t);if(e){let t=Q6(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(fTe({name:t}))){this.vmFormError=OY();return}}}}this.vmSubmitting=!0;try{let t=await YX(`/admin/virtual-models`,`PUT`,e,{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=lg();return}if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?rz():GX(t,kY());return}let r=!n&&t.status===204;this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),sZ.success(n?xye():r?wye():Dye()),Promise.all([AZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to save virtual model:`,e),this.vmFormError=kY()}finally{this.vmSubmitting=!1}}async deleteVirtualModel(){if(this.vmFormManaged){this.vmFormError=cye();return}let e=String(this.vmForm.source||this.vmFormOriginalSource||``).trim();if(!(!e||!this.vmFormHasExisting)&&window.confirm(hTe({source:e}))){this.vmDeleting=!0,this.vmFormError=``;try{let t=await YX(`/admin/virtual-models`,`DELETE`,{source:e},{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=lg();return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?rz():GX(t,EY());return}}this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),sZ.success(DY()),Promise.all([AZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to delete virtual model:`,e),this.vmFormError=EY()}finally{this.vmDeleting=!1}}}},C8=[{value:`input_per_mtok`,label:Obe(),group:FY()},{value:`output_per_mtok`,label:jbe(),group:FY()},{value:`cached_input_per_mtok`,label:Pbe(),group:FY()},{value:`cache_write_per_mtok`,label:Lbe(),group:FY()},{value:`reasoning_output_per_mtok`,label:Bbe(),group:FY()},{value:`batch_input_per_mtok`,label:Ube(),group:IY()},{value:`batch_output_per_mtok`,label:Kbe(),group:IY()},{value:`audio_input_per_mtok`,label:Ybe(),group:LY()},{value:`audio_output_per_mtok`,label:Qbe(),group:LY()},{value:`per_image`,label:txe(),group:RY()},{value:`input_per_image`,label:ixe(),group:RY()},{value:`per_second_input`,label:sxe(),group:Axe()},{value:`per_second_output`,label:uxe(),group:Nxe()},{value:`per_character_input`,label:pxe(),group:LY()},{value:`per_page`,label:gxe(),group:zY()},{value:`per_request`,label:yxe(),group:zY()}];function w8(e){let t=C8.find(t=>t.value===e);return t?t.label:String(e||``).replace(/_/g,` `)}function T8(e){return e&&typeof e==`object`?JSON.parse(JSON.stringify(e)):{}}function HRe(e,t){let n=T8(e),r=t&&t.pricing?t.pricing:t;if(!r||typeof r!=`object`)return n;for(let e of C8)r[e.value]!==null&&r[e.value]!==void 0&&(n[e.value]=Number(r[e.value]));return Array.isArray(r.tiers)&&r.tiers.length>0&&(n.tiers=T8(r.tiers)),n}function URe(e){switch(String(e||``).trim()){case`config_yaml`:return`config.yaml`;case`model_registry`:return BY();default:return e?String(e):Bxe()}}function WRe(e){let t=e&&e.pricing?e.pricing:{},n=e&&e.pricing_sources&&typeof e.pricing_sources==`object`?e.pricing_sources:{},r={};for(let e of C8)t[e.value]!==null&&t[e.value]!==void 0&&(r[e.value]=URe(n[e.value]||`model_registry`));return r}function GRe(e){let t=String(e&&e.selector||``).trim();return t?Kxe({selector:t}):Uxe()}function E8(e){let t=String(e||``).trim();return t?t+`/`:``}function D8(e){return String(e&&e.model&&e.model.id||``).trim()}function O8(e){let t=String(e&&e.provider_name||``).trim(),n=D8(e);return t&&n?t+`/`+n:n}function k8(e){return D8(e)}function A8(e){let t=new Map;for(let n of Array.isArray(e)?e:[]){let e=String(n&&n.selector||``).trim();e&&t.set(e,n)}return t}function KRe(e,t){let n=String(t||``).trim();return n&&A8(e).get(n)||null}function qRe(e,t,n){let r=A8(e),i=O8(t),a=k8(t),o=E8(t&&t.provider_name),s=String(n||``).trim();for(let e of[i,a,o,`/`]){if(!e||e===s)continue;let t=r.get(e);if(t)return t}return null}function j8(e,t,n){let r=e&&e.model&&e.model.metadata?e.model.metadata:null,i=T8(r&&r.pricing),a=WRe(r),o=qRe(t,e,n),s=o&&o.pricing?o.pricing:null;if(s){let e=GRe(o);for(let t of C8)s[t.value]!==null&&s[t.value]!==void 0&&(i[t.value]=Number(s[t.value]),a[t.value]=e);Array.isArray(s.tiers)&&s.tiers.length>0&&(i.tiers=T8(s.tiers),a.tiers=e)}return{pricing:i,sources:a}}function JRe(e,t){let n=e&&e.pricing?e.pricing:{},r=[];for(let e of C8)n[e.value]!==null&&n[e.value]!==void 0&&r.push({id:t(),field:e.value,value:String(n[e.value])});return r}function M8(e,t){let n=new Set;for(let r of Array.isArray(e)?e:[]){if(t&&r.id===t)continue;let e=String(r.field||``).trim();e&&n.add(e)}return n}function YRe(e,t){let n=M8(e,t&&t.id);return C8.filter(e=>e.value===(t&&t.field)||!n.has(e.value))}function XRe(e,t){let n={},r=new Set;for(let t of Array.isArray(e)?e:[]){let e=String(t.field||``).trim();if(!e)return{error:Yxe()};if(r.has(e))return{error:Qxe()};r.add(e);let i=String(t.value||``).trim();if(i===``)return{error:tSe({field:w8(e)})};let a=Number(i);if(!Number.isFinite(a)||a<0)return{error:iSe()};n[e]=a}let i=Array.isArray(t)?t:[];return i.length>0&&(n.tiers=T8(i)),Object.keys(n).length===0?{error:sSe()}:{pricing:n}}function ZRe(e,t,n){let r=e||{},i=t||{},a=n||{},o=HRe(r,a);return C8.map(e=>{let t=a[e.value]!==null&&a[e.value]!==void 0,n=r[e.value]!==null&&r[e.value]!==void 0;return{field:e.value,label:e.label,value:o[e.value],source:t?uSe():n?i[e.value]||BY():VY()}}).filter(e=>e.source!==VY()||e.value!==void 0)}var N8=new class{#e=j(!0);get modelPricingOverridesAvailable(){return L(this.#e)}set modelPricingOverridesAvailable(e){M(this.#e,e,!0)}#t=j(Xt([]));get modelPricingOverrideViews(){return L(this.#t)}set modelPricingOverrideViews(e){M(this.#t,e,!0)}#n=j(``);get modelPricingOverrideError(){return L(this.#n)}set modelPricingOverrideError(e){M(this.#n,e,!0)}#r=j(!1);get modelPricingOverrideFormOpen(){return L(this.#r)}set modelPricingOverrideFormOpen(e){M(this.#r,e,!0)}#i=j(!1);get modelPricingOverrideSubmitting(){return L(this.#i)}set modelPricingOverrideSubmitting(e){M(this.#i,e,!0)}#a=j(!1);get modelPricingOverrideFormHasExistingOverride(){return L(this.#a)}set modelPricingOverrideFormHasExistingOverride(e){M(this.#a,e,!0)}#o=j(``);get modelPricingOverrideFormDisplayName(){return L(this.#o)}set modelPricingOverrideFormDisplayName(e){M(this.#o,e,!0)}#s=j(``);get modelPricingOverrideFormScope(){return L(this.#s)}set modelPricingOverrideFormScope(e){M(this.#s,e,!0)}#c=j(Xt([]));get modelPricingOverrideFormScopeOptions(){return L(this.#c)}set modelPricingOverrideFormScopeOptions(e){M(this.#c,e,!0)}#l=j(null);get modelPricingOverrideFormRow(){return L(this.#l)}set modelPricingOverrideFormRow(e){M(this.#l,e,!0)}#u=j(null);get modelPricingOverrideFormBasePricing(){return L(this.#u)}set modelPricingOverrideFormBasePricing(e){M(this.#u,e,!0)}#d=j(null);get modelPricingOverrideFormBasePricingSources(){return L(this.#d)}set modelPricingOverrideFormBasePricingSources(e){M(this.#d,e,!0)}#f=j(Xt([]));get modelPricingOverrideFormPreservedTiers(){return L(this.#f)}set modelPricingOverrideFormPreservedTiers(e){M(this.#f,e,!0)}#p=j(Xt([]));get modelPricingOverrideRows(){return L(this.#p)}set modelPricingOverrideRows(e){M(this.#p,e,!0)}#m=j(Xt({selector:``}));get modelPricingOverrideForm(){return L(this.#m)}set modelPricingOverrideForm(e){M(this.#m,e,!0)}_modelPricingOverrideRowID=0;pricingFieldOptions(){return C8}pricingFieldLabel(e){return w8(e)}async fetchModelPricingOverrides(){this.modelPricingOverrideError=``;try{let e=await JX(`/admin/model-pricing-overrides`,{label:`model pricing overrides`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideViews=[];return}if(e.stale)return;if(this.modelPricingOverridesAvailable=!0,!e.ok){this.modelPricingOverrideViews=[];return}this.modelPricingOverrideViews=Array.isArray(e.data)?e.data:[]}catch(e){console.error(`Failed to fetch model pricing overrides:`,e),this.modelPricingOverrideViews=[],this.modelPricingOverrideError=qye()}}findModelPricingOverrideView(e){return KRe(this.modelPricingOverrideViews,e)}hasGlobalPricingOverride(){return!!this.findModelPricingOverrideView(`/`)}hasProviderPricingOverride(e){return!!this.findModelPricingOverrideView(E8(e&&e.provider_name))}hasModelPricingOverride(e){return!!this.findModelPricingOverrideView(O8(e))}modelPricingButtonClass(e){return e?`table-action-btn-active`:``}modelPricingButtonLabel(e,t){let n=String(e||JG());return t?IG({subject:n}):NG({subject:n})}modelRowPricing(e){return j8(e,this.modelPricingOverrideViews).pricing}openGlobalPricingOverrideEdit(){this.openModelPricingOverrideForm({displayName:jY(),selector:`/`,scope:`global`,scopeOptions:[{value:`global`,label:jY(),selector:`/`}],row:null})}openProviderPricingOverrideEdit(e){let t=E8(e&&e.provider_name);t&&this.openModelPricingOverrideForm({displayName:Qye({provider:e.display_name||e.provider_name||t}),selector:t,scope:`provider`,scopeOptions:[{value:`provider`,label:tbe(),selector:t}],row:null})}openModelPricingOverrideEdit(e){if(!e||e.is_alias)return;let t=O8(e),n=k8(e),r=[{value:`exact`,label:ibe(),selector:t}];n&&n!==t&&r.push({value:`model`,label:sbe(),selector:n}),this.openModelPricingOverrideForm({displayName:e.display_name||t,selector:t,scope:`exact`,scopeOptions:r,row:e})}openModelPricingOverrideForm(e){let t=e||{};this.modelPricingOverrideFormOpen=!0,this.modelPricingOverrideError=``,this.modelPricingOverrideFormDisplayName=t.displayName||t.selector||ube(),this.modelPricingOverrideFormScope=t.scope||``,this.modelPricingOverrideFormScopeOptions=Array.isArray(t.scopeOptions)?t.scopeOptions:[],this.modelPricingOverrideFormRow=t.row||null,this.modelPricingOverrideForm={selector:t.selector||``},this.loadModelPricingOverrideFormSelector(t.selector||``)}loadModelPricingOverrideFormSelector(e){e=String(e||``).trim();let t=this.findModelPricingOverrideView(e);this.modelPricingOverrideFormHasExistingOverride=!!t,this.modelPricingOverrideRows=JRe(t,()=>this.nextModelPricingOverrideRowID()),this.modelPricingOverrideFormPreservedTiers=t&&t.pricing&&Array.isArray(t.pricing.tiers)?T8(t.pricing.tiers):[],this.modelPricingOverrideRows.length===0&&this.modelPricingOverrideFormPreservedTiers.length===0&&this.addModelPricingOverrideRow();let n=this.modelPricingOverrideFormRow,r=n?j8(n,this.modelPricingOverrideViews,e):{pricing:{},sources:{}};this.modelPricingOverrideFormBasePricing=r.pricing,this.modelPricingOverrideFormBasePricingSources=r.sources}setModelPricingOverrideScope(e){this.modelPricingOverrideFormScope=e;let t=this.modelPricingOverrideFormScopeOptions.find(t=>t.value===e);t&&(this.modelPricingOverrideForm.selector=t.selector,this.loadModelPricingOverrideFormSelector(t.selector))}nextModelPricingOverrideRowID(){return this._modelPricingOverrideRowID=(this._modelPricingOverrideRowID||0)+1,`pricing-row-`+this._modelPricingOverrideRowID}availablePricingFieldOptions(e){return YRe(this.modelPricingOverrideRows,e)}addModelPricingOverrideRow(){let e=M8(this.modelPricingOverrideRows),t=C8.find(t=>!e.has(t.value))||C8[0];t&&this.modelPricingOverrideRows.push({id:this.nextModelPricingOverrideRowID(),field:t.value,value:``})}removeModelPricingOverrideRow(e){this.modelPricingOverrideRows=this.modelPricingOverrideRows.filter(t=>t.id!==e.id),this.modelPricingOverrideRows.length===0&&this.modelPricingOverrideFormPreservedTiers.length===0&&this.addModelPricingOverrideRow()}modelPricingOverridePayload(){return XRe(this.modelPricingOverrideRows,this.modelPricingOverrideFormPreservedTiers)}modelPricingOverrideDraftPricing(){let e=this.modelPricingOverridePayload();return e&&e.pricing?e.pricing:{}}modelPricingEffectivePreviewRows(){return ZRe(this.modelPricingOverrideFormBasePricing,this.modelPricingOverrideFormBasePricingSources,this.modelPricingOverrideDraftPricing())}closeModelPricingOverrideForm(){this.modelPricingOverrideFormOpen=!1,this.modelPricingOverrideSubmitting=!1,this.modelPricingOverrideError=``,this.modelPricingOverrideFormHasExistingOverride=!1,this.modelPricingOverrideFormDisplayName=``,this.modelPricingOverrideFormScope=``,this.modelPricingOverrideFormScopeOptions=[],this.modelPricingOverrideFormRow=null,this.modelPricingOverrideFormBasePricing=null,this.modelPricingOverrideFormBasePricingSources=null,this.modelPricingOverrideFormPreservedTiers=[],this.modelPricingOverrideRows=[],this.modelPricingOverrideForm={selector:``}}async submitModelPricingOverrideForm(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!e){this.modelPricingOverrideError=pbe();return}let t=this.modelPricingOverridePayload();if(t.error){this.modelPricingOverrideError=t.error;return}let n={selector:e,...t};this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let e=await YX(`/admin/model-pricing-overrides`,`PUT`,n,{label:`model pricing override`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=MY();return}if(e.stale)return;if(!e.ok){this.modelPricingOverrideError=e.status===401?rz():GX(e,NY());return}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),sZ.success(bbe()),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to save model pricing override:`,e),this.modelPricingOverrideError=NY()}finally{this.modelPricingOverrideSubmitting=!1}}async deleteModelPricingOverride(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!(!e||!this.modelPricingOverrideFormHasExistingOverride)&&window.confirm(vTe({selector:e}))){this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let t=await YX(`/admin/model-pricing-overrides`,`DELETE`,{selector:e},{label:`model pricing override`});if(t.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=MY();return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.modelPricingOverrideError=t.status===401?rz():GX(t,PY());return}}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),sZ.success(Tbe()),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to delete model pricing override:`,e),this.modelPricingOverrideError=PY()}finally{this.modelPricingOverrideSubmitting=!1}}}},QRe=z(``);function P8(e,t){O(t,!0);var n=QRe();let r;var i=F(N(n),2),a=N(i,!0);D(i),D(n),I((e,i,o)=>{r=W(n,1,`alias-toggle`,null,r,e),n.disabled=S8.rowTogglingKey===t.row.key||!S8.virtualModelsAvailable,G(n,`aria-label`,i),V(a,o)},[()=>({enabled:S8.rowToggleEnabled(t.row),restricted:S8.rowToggleRestricted(t.row)}),()=>S8.rowToggleAriaLabel(t.row),()=>S8.rowToggleLabel(t.row)]),R(`click`,n,()=>S8.toggleRowEnabled(t.row)),B(e,n),k()}Sr([`click`]);var $Re=z(`
                    `);function eze(e,t){O(t,!0);var n=$Re(),r=N(n),i=e=>{P8(e,{get row(){return S8.globalScopeRow}})};H(r,e=>{S8.virtualModelsAvailable&&e(i)});var a=F(r,2),o=e=>{{let t=A(()=>N8.modelPricingButtonLabel(JG(),N8.hasGlobalPricingOverride())),n=A(()=>N8.modelPricingButtonClass(N8.hasGlobalPricingOverride()));Y3(e,{get label(){return L(t)},get class(){return`table-icon-btn ${L(n)??``}`},onclick:()=>N8.openGlobalPricingOverrideEdit(),children:(e,t)=>{q(e,{get icon(){return tX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(a,e=>{N8.modelPricingOverridesAvailable&&e(o)});var s=F(a,2),c=e=>{{let t=A(()=>g8(rK(),S8.hasGlobalModelOverride())),n=A(()=>h8(S8.hasGlobalModelOverride()));Y3(e,{get label(){return L(t)},get class(){return`table-icon-btn ${L(n)??``}`},onclick:()=>S8.openGlobalModelOverrideEdit(),children:(e,t)=>{q(e,{get icon(){return lX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(s,e=>{S8.virtualModelsAvailable&&e(c)}),D(n),B(e,n),k()}function F8(e){return String(e&&(e.primary_model||e.source)||``).trim()}function I8(e){return Array.isArray(e&&e.fallback_models)?e.fallback_models:Array.isArray(e&&e.targets)?e.targets:[]}function L8(e){return Array.isArray(e)?e.map(e=>({...e,source:F8(e),targets:I8(e)})):[]}function tze(e){let t=I8(e);return t.length===0?`-`:t.join(`, `)}function nze(e){return e&&e.enabled===!1?Hv():e&&e.managed?x_():w_()}function R8(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>F8(e)===n)||null}function z8(e,t){if(!t||t.is_alias)return!1;let n=R8(e,Q6(t));return!!(n&&n.enabled!==!1&&I8(n).length>0)}function rze(e,t){return z8(e,t)?`table-action-btn-failover-active`:``}function ize(e,t){let n=t&&t.display_name?t.display_name:DG();return z8(e,t)?wCe({model:n}):xCe({model:n})}function B8(e){let t=[e&&e.target_model];return(Array.isArray(e&&e.targets)?e.targets:[]).forEach(e=>t.push(e&&e.model)),t.map(e=>String(e||``).trim()).filter(Boolean)}function aze(e){let t=Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(Boolean):[];return{target_model:t[0]||``,targets:t.slice(1).map(e=>({model:e}))}}function oze(e){return{primary_model:String(e&&e.source||``).trim(),fallback_models:B8(e),enabled:!(e&&e.enabled===!1)}}function V8(e){return F8(e)}function sze(e){let t={};return(Array.isArray(e)?e:[]).forEach(e=>{let n=V8(e);n&&(t[n]=!0)}),t}function H8(e,t){let n=V8(t);return!!(n&&e&&e[n])}function U8(e,t){return(Array.isArray(e)?e:[]).filter(e=>H8(t,e))}function cze(e,t){let n=Array.isArray(e)?e:[];return n.length>0&&U8(n,t).length===n.length}function W8(e){return[F8(e),I8(e).join(` `)].join(` `).toLowerCase()}function lze(e,t){let n=Array.isArray(e)?e:[],r=String(t||``).trim().toLowerCase();return r?n.filter(e=>W8(e).includes(r)):n}function uze(e){return{primary_model:F8(e),fallback_models:I8(e).map(e=>String(e||``).trim()).filter(Boolean),enabled:!!(e&&e.enabled!==!1)}}function G8(){return{source:``,target_model:``,targets:[],enabled:!0}}var Q=new class{#e=j(!0);get failoverAvailable(){return L(this.#e)}set failoverAvailable(e){M(this.#e,e,!0)}#t=j(Xt([]));get failoverRules(){return L(this.#t)}set failoverRules(e){M(this.#t,e,!0)}#n=j(!1);get failoverLoading(){return L(this.#n)}set failoverLoading(e){M(this.#n,e,!0)}#r=j(!1);get failoverSaving(){return L(this.#r)}set failoverSaving(e){M(this.#r,e,!0)}#i=j(!1);get failoverGenerating(){return L(this.#i)}set failoverGenerating(e){M(this.#i,e,!0)}#a=j(``);get failoverError(){return L(this.#a)}set failoverError(e){M(this.#a,e,!0)}#o=j(Xt([]));get failoverGeneratedRules(){return L(this.#o)}set failoverGeneratedRules(e){M(this.#o,e,!0)}#s=j(!1);get failoverDraftsOpen(){return L(this.#s)}set failoverDraftsOpen(e){M(this.#s,e,!0)}#c=j(Xt({}));get failoverDraftSelections(){return L(this.#c)}set failoverDraftSelections(e){M(this.#c,e,!0)}#l=j(``);get failoverDraftFilter(){return L(this.#l)}set failoverDraftFilter(e){M(this.#l,e,!0)}#u=j(!1);get failoverDraftSaving(){return L(this.#u)}set failoverDraftSaving(e){M(this.#u,e,!0)}#d=j(!1);get failoverFormOpen(){return L(this.#d)}set failoverFormOpen(e){M(this.#d,e,!0)}#f=j(`create`);get failoverFormMode(){return L(this.#f)}set failoverFormMode(e){M(this.#f,e,!0)}#p=j(!1);get failoverFormManaged(){return L(this.#p)}set failoverFormManaged(e){M(this.#p,e,!0)}#m=j(Xt(G8()));get failoverForm(){return L(this.#m)}set failoverForm(e){M(this.#m,e,!0)}failoverEnabled(){return ZX.booleanFlag(`FAILOVER_ENABLED`,!0)}async fetchFailoverRules(){if(!this.failoverEnabled()){this.failoverAvailable=!1,this.failoverRules=[],this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,this.failoverError=``,this.failoverLoading=!1;return}this.failoverLoading=!0,this.failoverError=``;try{let e=await JX(`/admin/failover`,{label:`failover mappings`});if(e.status===503){this.failoverAvailable=!1,this.failoverRules=[];return}if(e.stale)return;if(this.failoverAvailable=!0,!e.ok){this.failoverRules=[];return}this.failoverRules=L8(e.data)}catch(e){console.error(`Failed to fetch failover mappings:`,e),this.failoverRules=[],this.failoverError=hSe()}finally{this.failoverLoading=!1}}resetFailoverForm(){this.failoverFormMode=`create`,this.failoverFormManaged=!1,this.failoverForm=G8()}openFailoverCreate(){this.resetFailoverForm(),this.failoverFormOpen=!0,this.focusFailoverEditor()}openFailoverEdit(e){if(!e)return;this.resetFailoverForm(),this.failoverFormMode=`edit`,this.failoverFormOpen=!0,this.failoverFormManaged=!!e.managed;let t=this.failoverPrimaryModel(e),n=this.failoverTargets(e);this.failoverForm={source:t,target_model:n[0]||``,targets:n.slice(1).map(e=>({model:e})),enabled:e.enabled!==!1},this.focusFailoverEditor()}openFailoverForModel(e){if(!e||e.is_alias)return;let t=this.qualifiedModelName(e),n=this.failoverRules.find(e=>this.failoverPrimaryModel(e)===t);if(n){this.openFailoverEdit(n);return}this.resetFailoverForm(),this.failoverFormMode=`create`,this.failoverFormOpen=!0,this.failoverForm.source=t,this.focusFailoverEditor()}closeFailoverForm(){this.failoverFormOpen=!1}closeFailoverDraftsModal(){this.failoverDraftSaving||(this.failoverDraftsOpen=!1)}failoverFormTargets(){return B8(this.failoverForm)}setFailoverFormTargets(e){let t=aze(e);this.failoverForm.target_model=t.target_model,this.failoverForm.targets=t.targets}addFailoverTarget(){Array.isArray(this.failoverForm.targets)||(this.failoverForm.targets=[]),this.failoverForm.targets.push({model:``}),this.focusFailoverEditor()}removeFailoverTarget(e){if(!Array.isArray(this.failoverForm.targets)){this.failoverForm.targets=[];return}this.failoverForm.targets.splice(e,1)}removePrimaryFailoverTarget(){let e=Array.isArray(this.failoverForm.targets)?this.failoverForm.targets:[];if(e.length>0){let t=e.shift();this.failoverForm.target_model=t&&t.model?t.model:``,this.failoverForm.targets=e;return}this.failoverForm.target_model=``}failoverRulePayload(){return oze(this.failoverForm)}async submitFailoverForm(){if(this.failoverSaving||this.failoverGenerating||this.failoverFormManaged)return;let e=this.failoverRulePayload();if(!e.primary_model){this.failoverError=HY();return}if(e.enabled&&e.fallback_models.length===0){this.failoverError=bSe();return}this.failoverSaving=!0,this.failoverError=``;try{let t=await YX(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(t.stale)return;if(!t.ok){this.failoverError=UY();return}sZ.success(TSe()),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to save failover mapping:`,e),this.failoverError=UY()}finally{this.failoverSaving=!1}}async deleteFailoverRule(e){let t=String(e&&this.failoverPrimaryModel(e)||this.failoverForm.source||``).trim();if(!(!t||this.failoverSaving||this.failoverGenerating)&&confirm(OSe({source:t}))){this.failoverSaving=!0,this.failoverError=``;try{let e=await YX(`/admin/failover`,`DELETE`,{primary_model:t},{label:`failover mapping`});if(e.stale)return;if(!e.ok){this.failoverError=WY();return}sZ.success(NSe()),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to remove failover mapping:`,e),this.failoverError=WY()}finally{this.failoverSaving=!1}}}async generateFailoverForForm(){if(this.failoverGenerating||this.failoverSaving||this.failoverFormManaged)return;let e=String(this.failoverForm.source||``).trim();if(!e){this.failoverError=HY();return}this.failoverGenerating=!0,this.failoverError=``;try{let t=await YX(`/admin/failover/generate`,`POST`,{primary_model:e},{label:`failover generation`});if(t.stale)return;if(!t.ok){this.failoverError=GY();return}let n=L8(t.data),r=n.find(t=>this.failoverPrimaryModel(t)===e)||n[0]||null,i=this.failoverTargets(r);if(i.length===0){this.failoverError=RSe();return}this.setFailoverFormTargets(i),sZ.success(VSe({count:i.length})),this.focusFailoverEditor()}catch(e){console.error(`Failed to generate failover mapping:`,e),this.failoverError=GY()}finally{this.failoverGenerating=!1}}openFailoverResetDialog(){tZ.open({title:WSe(),titleId:`failoverResetDialogTitle`,inputId:`failover-reset-confirmation`,message:qSe(),requiredText:`remove`,confirmLabel:XSe(),icon:_X,dialogClass:`budget-reset-dialog`,onConfirm:async()=>{await this.resetFailoverRules(),this.failoverError&&(tZ.error=this.failoverError)}})}async resetFailoverRules(){if(!this.failoverSaving){this.failoverSaving=!0,this.failoverError=``;try{let e=await YX(`/admin/failover/reset`,`POST`,void 0,{label:`failover removal`});if(e.stale)return;if(!e.ok){this.failoverError=KY();return}this.failoverRules=L8(e.data),this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,sZ.success(tCe()),tZ.close()}catch(e){console.error(`Failed to remove failover mappings:`,e),this.failoverError=KY()}finally{this.failoverSaving=!1}}}async generateFailoverRules(){if(!(this.failoverGenerating||this.failoverDraftSaving)){this.failoverGenerating=!0,this.failoverError=``,this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!0;try{let e=await YX(`/admin/failover/generate`,`POST`,void 0,{label:`failover generation`});if(e.stale)return;if(!e.ok){this.failoverError=qY();return}this.failoverGeneratedRules=L8(e.data),this.selectAllFailoverDrafts(this.failoverGeneratedRules)}catch(e){console.error(`Failed to generate failover mappings:`,e),this.failoverError=qY()}finally{this.failoverGenerating=!1}}}failoverDraftKey(e){return V8(e)}selectAllFailoverDrafts(e){this.failoverDraftSelections=sze(e)}failoverDraftSelected(e){return H8(this.failoverDraftSelections,e)}setFailoverDraftSelected(e,t){let n=this.failoverDraftKey(e);n&&(this.failoverDraftSelections={...this.failoverDraftSelections,[n]:!!t})}selectedFailoverDrafts(){return U8(this.failoverGeneratedRules,this.failoverDraftSelections)}selectedFailoverDraftCount(){return this.selectedFailoverDrafts().length}failoverDraftCountLabel(){return oCe({selected:this.selectedFailoverDraftCount(),total:this.failoverGeneratedRules.length})}allFailoverDraftsSelected(){return cze(this.failoverGeneratedRules,this.failoverDraftSelections)}toggleAllFailoverDrafts(){if(!(this.failoverDraftSaving||this.failoverGenerating||this.failoverGeneratedRules.length===0)){if(this.allFailoverDraftsSelected()){this.failoverDraftSelections={};return}this.selectAllFailoverDrafts(this.failoverGeneratedRules)}}failoverDraftSearchText(e){return W8(e)}filteredFailoverDrafts(){return lze(this.failoverGeneratedRules,this.failoverDraftFilter)}failoverDraftPayload(e){return uze(e)}async saveSelectedFailoverDrafts(){if(this.failoverDraftSaving||this.failoverGenerating)return;let e=this.selectedFailoverDrafts();if(e.length===0){this.failoverError=lCe();return}this.failoverDraftSaving=!0,this.failoverError=``;try{for(let t of e){let e=this.failoverDraftPayload(t);if(!e.primary_model||e.fallback_models.length===0){this.failoverError=fCe();return}let n=await YX(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(n.stale)return;if(!n.ok){this.failoverError=UY();return}}sZ.success(hCe({count:e.length})),this.failoverDraftsOpen=!1,this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.fetchFailoverRules()}catch(e){console.error(`Failed to save generated failover mappings:`,e),this.failoverError=vCe()}finally{this.failoverDraftSaving=!1}}focusFailoverEditor(){setTimeout(()=>{let e=document.querySelector(`[data-failover-editor]`),t=e&&e.querySelector?e.querySelector(`[data-modal-autofocus], input:not([disabled]), textarea:not([disabled]), button:not([disabled])`):null;t&&typeof t.focus==`function`&&t.focus({preventScroll:!0})},0)}failoverTargetLabel(e){return tze(e)}failoverPrimaryModel(e){return F8(e)}failoverTargets(e){return I8(e)}findFailoverMapping(e){return R8(this.failoverRules,e)}hasActiveFailoverMapping(e){return z8(this.failoverRules,e)}failoverButtonClass(e){return rze(this.failoverRules,e)}failoverButtonLabel(e){return ize(this.failoverRules,e)}normalizeFailoverRules(e){return L8(e)}failoverRuleStatus(e){return nze(e)}qualifiedModelName(e){return Q6(e)}},dze=z(``),fze=z(``),pze=z(` `),K8=z(`
                    `),mze=z(``),hze=z(`
                    `),gze=z(` `),_ze=z(`
                    `),vze=z(`
                    `),yze=z(`
                    `);function bze(e,t){O(t,!0);let n=A(()=>N8.modelRowPricing(t.row)),r=A(()=>t.row.is_alias?t.row.alias&&t.row.alias.slowdown:t.row.masking_alias&&t.row.masking_alias.slowdown!=null?t.row.masking_alias.slowdown:t.row.access&&t.row.access.override&&t.row.access.override.slowdown),i=A(()=>Number(L(r)==null?0:L(r)));var a=yze(),o=N(a),s=N(o),c=N(s),l=N(c),u=N(l,!0);D(l);var d=F(l,2),f=e=>{var t=dze();I((e,n)=>{G(t,`aria-label`,e),G(t,`title`,n)},[()=>f_(),()=>f_()]),B(e,t)};H(d,e=>{t.row.is_alias&&e(f)});var p=F(d,2),m=e=>{var t=fze();I((e,n)=>{G(t,`aria-label`,e),G(t,`title`,n)},[()=>h_(),()=>h_()]),B(e,t)};H(p,e=>{!t.row.is_alias&&t.row.masking_alias&&e(m)});var h=F(p,2),g=e=>{var t=pze(),n=N(t,!0);D(t),I((e,r)=>{G(t,`title`,e),V(n,r)},[()=>v_(),()=>x_()]),B(e,t)},_=A(()=>p8(t.row));H(h,e=>{L(_)&&e(g)}),D(c);var v=F(c,2),y=e=>{var n=K8(),r=N(n),i=F(r),a=N(i,!0);D(i),D(n),I(e=>{V(r,`${e??``} `),V(a,t.row.secondary_name)},[()=>D_()]),B(e,n)};H(v,e=>{t.row.is_alias&&e(y)});var b=F(v,2),x=e=>{var n=hze(),r=N(n),i=F(r),a=N(i,!0);D(i);var o=F(i,2),s=e=>{var n=mze(),r=N(n);D(n),I((e,t,i,a)=>{G(n,`aria-label`,e),G(n,`title`,t),n.disabled=i,V(r,`[${a??``}]`)},[()=>S8.rowDeletingKey===t.row.key?z_({model:t.row.display_name}):I_({model:t.row.display_name}),()=>S8.rowDeletingKey===t.row.key?z_({model:t.row.display_name}):I_({model:t.row.display_name}),()=>!!S8.rowDeletingKey,()=>N_()]),R(`click`,n,()=>S8.removeRedirectRow(t.row)),B(e,n)},c=A(()=>S8.virtualModelsAvailable&&jRe(t.row));H(o,e=>{L(c)&&e(s)}),D(n),I((e,t)=>{V(r,`${e??``} `),V(a,t)},[()=>A_(),()=>r8(t.row.masking_alias)]),B(e,n)};H(b,e=>{!t.row.is_alias&&t.row.masking_alias&&e(x)});var S=F(b,2),C=e=>{var t=K8(),n=N(t),r=F(n),a=N(r,!0);D(r),D(t),I((e,t)=>{V(n,`${e??``} `),V(a,t)},[()=>H_(),()=>G_({value:L(i)})]),B(e,t)};H(S,e=>{L(i)>0&&e(C)}),D(s),D(o);var w=F(o);U(w,17,()=>t.columns,Lr,(e,r)=>{var i=gze(),a=N(i,!0);D(i),I(e=>{W(i,1,ui(L(r).class),`svelte-1iynym`),V(a,e)},[()=>L(r).value(t.row,L(n))]),B(e,i)});var T=F(w),ee=N(T),E=e=>{var n=_ze(),r=N(n);P8(r,{get row(){return t.row}});var i=F(r,2),a=e=>{{let n=A(()=>S8.rowDeletingKey===t.row.key?lK({name:t.row.alias.name}):oK({name:t.row.alias.name})),r=A(()=>!!S8.rowDeletingKey);Y3(e,{get label(){return L(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>S8.removeAliasRow(t.row),get disabled(){return L(r)},children:(e,t)=>{q(e,{get icon(){return _X},class:`table-icon-svg`})},$$slots:{default:!0}})}},o=A(()=>S8.virtualModelsAvailable&&ARe(t.row));H(i,e=>{L(o)&&e(a)});var s=F(i,2),c=e=>{{let n=A(()=>fK({name:t.row.alias.name}));Y3(e,{get label(){return L(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>S8.openVirtualModelEditAlias(t.row.alias),children:(e,t)=>{q(e,{get icon(){return lX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(s,e=>{S8.virtualModelsAvailable&&e(c)}),D(n),B(e,n)},te=e=>{var n=vze(),r=N(n);P8(r,{get row(){return t.row}});var i=F(r,2),a=e=>{{let n=A(()=>N8.modelPricingButtonLabel(HG({name:t.row.display_name}),N8.hasModelPricingOverride(t.row))),r=A(()=>N8.modelPricingButtonClass(N8.hasModelPricingOverride(t.row)));Y3(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>N8.openModelPricingOverrideEdit(t.row),children:(e,t)=>{q(e,{get icon(){return tX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(i,e=>{N8.modelPricingOverridesAvailable&&e(a)});var o=F(i,2),s=e=>{{let n=A(()=>Q.failoverButtonLabel(t.row)),r=A(()=>Q.failoverButtonClass(t.row));Y3(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Q.openFailoverForModel(t.row),children:(e,t)=>{q(e,{get icon(){return YTe},class:`table-icon-svg`})},$$slots:{default:!0}})}},c=A(()=>Q.failoverAvailable&&Q.failoverEnabled());H(o,e=>{L(c)&&e(s)});var l=F(o,2),u=e=>{{let n=A(()=>Z.rateLimitGaugeTitle(t.row.display_name,Z.rateLimitGaugeClassForModel(t.row))),r=A(()=>Z.rateLimitGaugeClassForModel(t.row));Y3(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Z.openRateLimitInspectorForModel(t.row),children:(e,t)=>{q(e,{get icon(){return aX},class:`table-icon-svg`})},$$slots:{default:!0}})}},d=A(()=>Z.rateLimitsEnabled()&&Z.rateLimitInspectorModelID(t.row));H(l,e=>{L(d)&&e(u)});var f=F(l,2),p=e=>{{let n=A(()=>hK({name:t.row.display_name}));Y3(e,{get label(){return L(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>S8.openVirtualModelEditAlias(t.row.masking_alias),children:(e,t)=>{q(e,{get icon(){return lX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(f,e=>{S8.virtualModelsAvailable&&t.row.masking_alias&&t.row.masking_alias.name&&e(p)});var m=F(f,2),h=e=>{{let n=A(()=>g8(ZG({name:t.row.display_name}),m8(t.row.access))),r=A(()=>h8(m8(t.row.access)));Y3(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>S8.openVirtualModelEditModel(t.row),children:(e,t)=>{q(e,{get icon(){return lX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(m,e=>{S8.virtualModelsAvailable&&!t.row.masking_alias&&e(h)}),D(n),B(e,n)};H(ee,e=>{t.row.is_alias?e(E):e(te,-1)}),D(T),D(a),I((e,n)=>{G(a,`id`,e),W(a,1,n,`svelte-1iynym`),V(u,t.row.display_name)},[()=>MRe(t.row)||void 0,()=>ui(kRe(t.row))]),B(e,a),k()}Sr([`click`]);var xze={headerLines:[oq()],value:e=>(e.model?.metadata?.modes??[]).join(`, `)||`-`};function q8(e,t){return{headerLines:e,class:`col-price`,value:t}}var J8=q8([lq()],(e,t)=>fZ(t?.input_per_mtok)+` / `+fZ(t?.output_per_mtok)),Y8={all:[J8],text_generation:[xze,J8,q8([fq()],(e,t)=>fZ(t?.cached_input_per_mtok))],embedding:[q8([hq(),`$/MTok`],(e,t)=>fZ(t?.input_per_mtok))],image:[q8([vq()],(e,t)=>pZ(t?.per_image))],audio:[q8([xq()],(e,t)=>pZ(t?.per_second_input)),q8([wq()],(e,t)=>pZ(t?.per_character_input))],video:[q8([Dq()],(e,t)=>pZ(t?.per_second_input)),q8([Aq()],(e,t)=>pZ(t?.per_second_output))],utility:[q8([Nq()],(e,t)=>pZ(t?.per_page)),q8([Iq()],(e,t)=>pZ(t?.per_request))]};function X8(e){return Y8[e]||Y8.all}function Sze(e){return X8(e).length+2}var Cze=z(`
                    `),wze=z(` `,1),Tze=z(``),Eze=z(` `),Dze=z(` `),Oze=z(`
                    `),kze=z(`
                    `),Aze=z(`
                    `);function jze(e,t){O(t,!0);let n=A(()=>AZ.activeCategory||`all`),r=A(()=>X8(L(n))),i=A(()=>Sze(L(n)));var a=Aze(),o=N(a),s=N(o),c=N(s),l=N(c),u=N(l,!0);D(l);var d=F(l);U(d,17,()=>L(r),Lr,(e,t)=>{var n=Tze();U(n,21,()=>L(t).headerLines,Lr,(e,t,n)=>{var r=wze(),i=P(r),a=e=>{B(e,Cze())};H(i,e=>{n>0&&e(a)});var o=F(i,1,!0);I(()=>V(o,L(t))),B(e,r)}),D(n),I(()=>W(n,1,ui(L(t).class),`svelte-1911hy6`)),B(e,n)});var f=F(d);eze(N(f),{}),D(f),D(c),D(s),U(F(s),17,()=>S8.filteredDisplayModelGroups,e=>e.key,(e,t)=>{var n=kze(),a=N(n),o=N(a),s=N(o),c=N(s),l=N(c),u=N(l),d=N(u,!0);D(u);var f=F(u,2),p=e=>{var n=Eze(),r=N(n,!0);D(n),I(()=>V(r,`(`+L(t).type_label+`)`)),B(e,n)};H(f,e=>{L(t).type_label&&e(p)});var m=F(f,2),h=e=>{var n=Dze(),r=N(n,!0);D(n),I(()=>V(r,L(t).item_count_label)),B(e,n)};H(m,e=>{L(t).item_count_label&&e(h)}),D(l);var g=F(l,2),_=e=>{var n=Oze(),r=N(n,!0);D(n),I(()=>V(r,L(t).access_summary)),B(e,n)};H(g,e=>{L(t).access_summary&&e(_)}),D(c);var v=F(c,2),y=N(v),b=e=>{P8(e,{get row(){return L(t)}})};H(y,e=>{L(t).access.selector&&e(b)});var x=F(y,2),S=e=>{{let n=A(()=>N8.modelPricingButtonLabel(GG({name:L(t).display_name}),N8.hasProviderPricingOverride(L(t)))),r=A(()=>N8.modelPricingButtonClass(N8.hasProviderPricingOverride(L(t))));Y3(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>N8.openProviderPricingOverrideEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return tX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(x,e=>{N8.modelPricingOverridesAvailable&&L(t).provider_name&&e(S)});var C=F(x,2),w=e=>{{let n=A(()=>Z.rateLimitGaugeTitle(`provider `+L(t).display_name,Z.rateLimitGaugeClassForProvider(L(t)))),r=A(()=>Z.rateLimitGaugeClassForProvider(L(t)));Y3(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>Z.openRateLimitInspectorForProvider(L(t)),children:(e,t)=>{q(e,{get icon(){return aX},class:`table-icon-svg`})},$$slots:{default:!0}})}},T=A(()=>Z.rateLimitsEnabled()&&L(t).provider_name);H(C,e=>{L(T)&&e(w)});var ee=F(C,2),E=e=>{{let n=A(()=>g8(eK({name:L(t).display_name}),m8(L(t).access))),r=A(()=>h8(m8(L(t).access)));Y3(e,{get label(){return L(n)},get class(){return`table-icon-btn ${L(r)??``}`},onclick:()=>S8.openProviderOverrideEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return lX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(ee,e=>{S8.virtualModelsAvailable&&L(t).access.selector&&e(E)}),D(v),D(s),D(o),D(a),U(F(a),17,()=>L(t).rows,e=>e.key,(e,t)=>{bze(e,{get row(){return L(t)},get columns(){return L(r)}})}),D(n),I(()=>{G(o,`colspan`,L(i)),V(d,L(t).display_name)}),B(e,n)}),D(o),D(a),I(e=>V(u,e),[()=>Ig()]),B(e,a),k()}var Mze=z(``);function Z8(e,t){let n=K(t,`enabled`,3,!1),r=K(t,`label`,3,``),i=K(t,`disabled`,3,!1),a=K(t,`restricted`,3,!1);var o=Mze();let s;var c=F(N(o),2),l=N(c,!0);D(c),D(o),I(()=>{s=W(o,1,`alias-toggle`,null,s,{enabled:n(),restricted:a()}),o.disabled=i(),G(o,`aria-label`,(n()?`Disable `:`Enable `)+r()),V(l,t.text??(n()?`Enabled`:`Disabled`))}),R(`click`,o,function(...e){t.onclick?.apply(this,e)}),B(e,o)}Sr([`click`]);var Nze=z(``),Pze=z(`
                    `);function Q8(e,t){O(t,!0);let n=K(t,`model`,15,``),r=K(t,`weight`,15),i=K(t,`id`,3,void 0),a=K(t,`placeholder`,3,`openai/gpt-4o`),o=K(t,`showRemove`,3,!0);var s=Pze(),c=N(s);Ti(c);var l=F(c,2),u=e=>{var t=Nze();Ti(t),I((e,n)=>{G(t,`placeholder`,e),t.disabled=S8.vmFormManaged,G(t,`aria-label`,n)},[()=>ly(),()=>oy()]),Mi(t,r),B(e,t)},d=A(()=>S8.vmFormShowWeights());H(l,e=>{L(d)&&e(u)});var f=F(l,2),p=e=>{{let n=A(()=>fy());Y3(e,{get label(){return L(n)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,get onclick(){return t.onremove},get disabled(){return S8.vmFormManaged},children:(e,t)=>{q(e,{get icon(){return _X},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(f,e=>{o()&&e(p)}),D(s),I(e=>{G(c,`id`,i()),G(c,`placeholder`,a()),c.disabled=S8.vmFormManaged,G(c,`aria-label`,e)},[()=>ry()]),Mi(c,n),B(e,s),k()}var Fze=z(`

                    `),Ize=z(``),Lze=z(`

                    `),Rze=z(``),$8=z(``),zze=z(``),Bze=z(`
                    `,1),Vze=z(``),Hze=z(``),Uze=z(` `,1),Wze=z(` `),Gze=z(`
                    `,1);function Kze(e,t){O(t,!0);let n=S8;hn(()=>{n.vmFormOpen&&ZX.ensureLoaded()});{let t=e=>{{let t=e=>{var t=Fze(),r=N(t,!0);D(t),I(e=>V(r,e),[()=>n.vmFormDisplayName||n.vmForm.source||f_()]),B(e,t)},r=e=>{Ve();var t=Or();I(e=>V(t,e),[()=>ov()]),B(e,t)},i=A(()=>rv());c3(e,{copyId:`virtual-model-help-copy`,get label(){return L(i)},get open(){return n.vmFormHelpOpen},set open(e){n.vmFormHelpOpen=e},title:t,help:r,$$slots:{title:!0,help:!0}})}},r=e=>{var t=kr(),r=P(t),i=e=>{var t=Ize();I(()=>t.disabled=n.vmDeleting||n.vmSubmitting),R(`click`,t,()=>n.deleteVirtualModel()),B(e,t)};H(r,e=>{n.vmFormHasExisting&&!n.vmFormManaged&&e(i)}),B(e,t)},i=A(()=>J_()),a=A(()=>n.vmDeleting||n.vmFormManaged),o=A(()=>n.vmFormMode===`edit`?Z_():ev()),s=A(()=>n.vmFormMode===`edit`?pX:uX);S6(e,{get open(){return n.vmFormOpen},get ariaLabel(){return L(i)},get error(){return n.vmFormError},get submitting(){return n.vmSubmitting},get submitDisabled(){return L(a)},get submitLabel(){return L(o)},get submitIcon(){return L(s)},onclose:()=>n.closeVirtualModelForm(),onsubmit:()=>n.submitVirtualModelForm(),header:t,extraActions:r,children:(e,t)=>{var r=Gze(),i=P(r),a=e=>{var t=Lze(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>lv()]),B(e,t)};H(i,e=>{n.vmFormManaged&&e(a)});var o=F(i,2);{let e=A(()=>fv());C6(o,{id:`virtual-model-source`,get label(){return L(e)},children:(e,t)=>{var r=Rze();Ti(r),I(()=>r.disabled=n.vmFormSourceLocked||n.vmFormManaged),Mi(r,()=>n.vmForm.source,e=>n.vmForm.source=e),B(e,r)},$$slots:{default:!0}})}var s=F(o,2);U(s,21,()=>AZ.models,e=>Q6(e),(e,t,n,r)=>{var i=$8(),a=N(i,!0);D(i);var o={};I((e,t)=>{V(a,e),o!==(o=t)&&(i.value=(i.__value=t)??``)},[()=>Q6(L(t)),()=>Q6(L(t))]),B(e,i)}),D(s);var c=F(s,2),l=N(c),u=N(l,!0);D(l);var d=F(l,2);{let e=A(()=>n.vmFormHasPrimaryTarget());Q8(d,{id:`virtual-model-target`,get showRemove(){return L(e)},onremove:()=>n.removePrimaryTarget(),get model(){return n.vmForm.target_model},set model(e){n.vmForm.target_model=e},get weight(){return n.vmForm.target_weight},set weight(e){n.vmForm.target_weight=e}})}var f=F(d,2);U(f,17,()=>n.vmForm.targets,Lr,(e,t,r)=>{Q8(e,{placeholder:`groq/llama`,onremove:()=>n.removeVmTarget(r),get model(){return L(t).model},set model(e){L(t).model=e},get weight(){return L(t).weight},set weight(e){L(t).weight=e}})});var p=F(f,2),m=N(p),h=N(m);q(h,{get icon(){return uX},class:`form-action-icon`});var g=F(h,2),_=N(g,!0);D(g),D(m),D(p),D(c);var v=F(c,2),y=e=>{var t=Bze(),r=P(t);{let e=A(()=>vv());C6(r,{id:`virtual-model-strategy`,get label(){return L(e)},children:(e,t)=>{var r=zze();U(r,21,()=>n.vmStrategyOptions(),e=>e.value,(e,t)=>{var n=$8(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(r),I(()=>r.disabled=n.vmFormManaged),vi(r,()=>n.vmForm.strategy,e=>n.vmForm.strategy=e),B(e,r)},$$slots:{default:!0}})}var i=F(r,2),a=N(i),o=N(a);Ti(o);var s=F(o,2),c=N(s,!0);D(s),D(a),D(i),I(e=>{o.disabled=n.vmFormManaged,V(c,e)},[()=>xv()]),Ni(o,()=>n.vmForm.session_affinity,e=>n.vmForm.session_affinity=e),B(e,t)},b=A(()=>n.vmFormShowStrategy());H(v,e=>{L(b)&&e(y)});var x=F(v,2),S=N(x);{let e=e=>{var t=Vze(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>wv()]),B(e,t)},t=e=>{Ve();var t=Or();I(e=>V(t,e),[()=>Av()]),B(e,t)},r=A(()=>Dv());c3(S,{copyId:`virtual-model-user-paths-help`,get label(){return L(r)},get open(){return n.vmFormUserPathsHelpOpen},set open(e){n.vmFormUserPathsHelpOpen=e},title:e,help:t,$$slots:{title:!0,help:!0}})}var C=F(S,2);at(C),G(C,`placeholder`,`/ +/team/alpha +/non-existing`),D(x);var w=F(x,2);{let e=A(()=>Nv());C6(w,{id:`virtual-model-description`,get label(){return L(e)},children:(e,t)=>{var r=Hze();at(r),I(e=>{G(r,`placeholder`,e),r.disabled=n.vmFormManaged},[()=>Iv()]),Mi(r,()=>n.vmForm.description,e=>n.vmForm.description=e),B(e,r)},$$slots:{default:!0}})}var T=F(w,2),ee=e=>{{let t=A(()=>zv());C6(e,{id:`virtual-model-slowdown`,get label(){return L(t)},children:(e,t)=>{var r=Uze(),i=P(r);Ti(i);var a=F(i,2),o=N(a,!0);D(a),I((e,t)=>{G(i,`placeholder`,e),i.disabled=n.vmFormManaged,V(o,t)},[()=>Hv(),()=>Gv()]),Mi(i,()=>n.vmForm.slowdown,e=>n.vmForm.slowdown=e),B(e,r)},$$slots:{default:!0}})}},E=A(()=>n.vmFormSupportsSlowdown());H(T,e=>{L(E)&&e(ee)});var te=F(T,2),ne=N(te),re=e=>{var t=Wze(),r=N(t,!0);D(t),I(e=>V(r,e),[()=>Jv({default:n.vmFormDefaultEnabled?Zv():ey(),effective:n.vmFormEffectiveEnabled?Zv():ey()})]),B(e,t)};H(ne,e=>{n.vmFormMode===`edit`&&e(re)});var ie=F(ne,2),ae=N(ie);{let e=A(()=>n.vmFormToggleRestricted()),t=A(()=>vK()),r=A(()=>n.vmFormToggleLabel());Z8(ae,{get enabled(){return n.vmForm.enabled},get restricted(){return L(e)},get label(){return L(t)},get disabled(){return n.vmFormManaged},get text(){return L(r)},onclick:()=>{n.vmFormManaged||(n.vmForm.enabled=!n.vmForm.enabled)}})}D(ie),D(te),I((e,t)=>{V(u,e),m.disabled=n.vmFormManaged,V(_,t),C.disabled=n.vmFormManaged},[()=>D_(),()=>hv()]),R(`click`,m,()=>n.addVmTarget()),Mi(C,()=>n.vmForm.user_paths,e=>n.vmForm.user_paths=e),B(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}k()}Sr([`click`]);var qze=z(`

                    `,1),Jze=z(``),Yze=z(``),e5=z(``),Xze=z(``),Zze=z(`
                    `),Qze=z(`
                    `),$ze=z(`
                    `),eBe=z(`
                    `),tBe=z(`

                    USD
                    `,1);function nBe(e,t){O(t,!0);let n=N8;{let t=e=>{var t=qze(),r=P(t),i=N(r,!0);D(r);var a=F(r,2),o=N(a,!0);D(a),I((e,t)=>{V(i,e),V(o,t)},[()=>xy(),()=>n.modelPricingOverrideFormDisplayName||n.modelPricingOverrideForm.selector||wy()]),B(e,t)},r=e=>{var t=kr(),r=P(t),i=e=>{var t=Jze(),r=N(t,!0);D(t),I(e=>{t.disabled=n.modelPricingOverrideSubmitting,V(r,e)},[()=>rb()]),R(`click`,t,()=>n.deleteModelPricingOverride()),B(e,t)};H(r,e=>{n.modelPricingOverrideFormHasExistingOverride&&e(i)}),B(e,t)},i=A(()=>hy()),a=A(()=>vy());S6(e,{get open(){return n.modelPricingOverrideFormOpen},get ariaLabel(){return L(i)},dialogClass:`model-pricing-editor`,get error(){return n.modelPricingOverrideError},get submitting(){return n.modelPricingOverrideSubmitting},get submitLabel(){return L(a)},onclose:()=>n.closeModelPricingOverrideForm(),onsubmit:()=>n.submitModelPricingOverrideForm(),header:t,extraActions:r,children:(e,t)=>{var r=tBe(),i=P(r),a=N(i);{let e=A(()=>Dy());C6(a,{id:`model-pricing-override-selector`,get label(){return L(e)},children:(e,t)=>{var r=Yze();Ti(r),Mi(r,()=>n.modelPricingOverrideForm.selector,e=>n.modelPricingOverrideForm.selector=e),B(e,r)},$$slots:{default:!0}})}var o=F(a,2),s=e=>{{let t=A(()=>Ay());C6(e,{id:`model-pricing-override-scope`,get label(){return L(t)},children:(e,t)=>{var r=Xze();U(r,21,()=>n.modelPricingOverrideFormScopeOptions,e=>e.value,(e,t)=>{var n=e5(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(r),R(`change`,r,()=>n.setModelPricingOverrideScope(n.modelPricingOverrideFormScope)),vi(r,()=>n.modelPricingOverrideFormScope,e=>n.modelPricingOverrideFormScope=e),B(e,r)},$$slots:{default:!0}})}};H(o,e=>{n.modelPricingOverrideFormScopeOptions.length>1&&e(s)}),D(i);var c=F(i,2),l=N(c,!0);D(c);var u=F(c,2);U(u,21,()=>n.modelPricingOverrideRows,e=>e.id,(e,t,r)=>{var i=Zze(),a=N(i),o=N(a),s=N(o,!0);D(o);var c=F(o,2);U(c,21,()=>n.availablePricingFieldOptions(L(t)),e=>e.value,(e,t)=>{var n=e5(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).group+` - `+L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(c),D(a);var l=F(a,2),u=N(l),d=N(u,!0);D(u);var f=F(u,2);Ti(f),D(l);var p=F(l,2);{let e=A(()=>Hy({price:n.pricingFieldLabel(L(t).field)}));Y3(p,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn pricing-override-remove-row`,onclick:()=>n.removeModelPricingOverrideRow(L(t)),children:(e,t)=>{q(e,{get icon(){return bX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(i),I((e,n)=>{G(o,`for`,`pricing-type-`+L(t).id),V(s,e),G(c,`id`,`pricing-type-`+L(t).id),G(u,`for`,`pricing-value-`+L(t).id),V(d,n),G(f,`id`,`pricing-value-`+L(t).id)},[()=>Iy(),()=>zy()]),vi(c,()=>L(t).field,e=>L(t).field=e),Mi(f,()=>L(t).value,e=>L(t).value=e),B(e,i)}),D(u);var d=F(u,2),f=N(d),p=N(f);q(p,{get icon(){return uX},class:`form-action-icon`});var m=F(p,2),h=N(m,!0);D(m),D(f),D(d);var g=F(d,2),_=e=>{var t=Qze(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Jy()]),B(e,t)};H(g,e=>{n.modelPricingOverrideFormPreservedTiers.length>0&&e(_)});var v=F(g,2),y=N(v),b=N(y),x=N(b,!0);D(b);var S=F(b,4),C=N(S,!0);D(S),D(y);var w=F(y,2),T=e=>{var t=$ze(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>eb()]),B(e,t)},ee=A(()=>n.modelPricingEffectivePreviewRows().length===0);H(w,e=>{L(ee)&&e(T)}),U(F(w,2),17,()=>n.modelPricingEffectivePreviewRows(),e=>e.field,(e,t)=>{var n=eBe(),r=N(n),i=N(r,!0);D(r);var a=F(r,2),o=N(a,!0);D(a);var s=F(a,2),c=N(s,!0);D(s),D(n),I(e=>{V(i,L(t).label),V(o,e),V(c,L(t).source)},[()=>L(t).value===null||L(t).value===void 0?`-`:pZ(Number(L(t).value))]),B(e,n)}),D(v),I((e,t,n,r)=>{V(l,e),V(h,t),V(x,n),V(C,r)},[()=>Ny(),()=>Gy(),()=>Iy(),()=>Zy()]),R(`click`,f,()=>n.addModelPricingOverrideRow()),B(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}k()}Sr([`click`,`change`]);var rBe=z(`

                    `,1),iBe=z(``),aBe=z(`

                    `),oBe=z(``),sBe=z(`
                    `),cBe=z(`
                    `,1),lBe=z(`
                    `);function uBe(e,t){O(t,!0);{let t=e=>{var t=rBe(),n=P(t),r=N(n,!0);D(n);var i=F(n,2),a=N(i,!0);D(i),I(e=>{V(r,e),V(a,Q.failoverForm.source||`Failover`)},[()=>lb()]),B(e,t)},n=e=>{var t=kr(),n=P(t),r=e=>{var t=iBe(),n=N(t,!0);D(t),I(e=>{t.disabled=Q.failoverSaving||Q.failoverGenerating,V(n,e)},[()=>Nb()]),R(`click`,t,()=>Q.deleteFailoverRule()),B(e,t)};H(n,e=>{Q.failoverFormMode===`edit`&&!Q.failoverFormManaged&&e(r)}),B(e,t)},r=A(()=>ob()),i=A(()=>Q.failoverGenerating||Q.failoverFormManaged),a=A(()=>Z_());S6(e,{get open(){return Q.failoverFormOpen},get ariaLabel(){return L(r)},get error(){return Q.failoverError},get submitting(){return Q.failoverSaving},get submitDisabled(){return L(i)},get submitLabel(){return L(a)},onclose:()=>Q.closeFailoverForm(),onsubmit:()=>Q.submitFailoverForm(),header:t,extraActions:n,children:(e,t)=>{var n=lBe(),r=N(n),i=e=>{var t=aBe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>fb()]),B(e,t)};H(r,e=>{Q.failoverFormManaged&&e(i)});var a=F(r,2);U(a,21,()=>AZ.models,Lr,(e,t,n,r)=>{var i=oBe(),a=N(i,!0);D(i);var o={};I((e,t)=>{V(a,e),o!==(o=t)&&(i.value=(i.__value=t)??``)},[()=>Q6(L(t)),()=>Q6(L(t))]),B(e,i)}),D(a);var o=F(a,2);{let e=A(()=>hb());C6(o,{id:`failover-target`,get label(){return L(e)},children:(e,t)=>{var n=cBe(),r=P(n),i=N(r),a=N(i);Ti(a);var o=F(a,2),s=e=>{{let t=A(()=>xb());Y3(e,{get label(){return L(t)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removePrimaryFailoverTarget(),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{q(e,{get icon(){return _X},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(o,e=>{Q.failoverForm.target_model&&e(s)}),D(i),U(F(i,2),17,()=>Q.failoverForm.targets,Lr,(e,t,n)=>{var r=sBe(),i=N(r);Ti(i);var a=F(i,2);{let e=A(()=>xb());Y3(a,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removeFailoverTarget(n),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{q(e,{get icon(){return _X},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r),I(e=>{i.disabled=Q.failoverFormManaged,G(i,`aria-label`,e)},[()=>vb()]),Mi(i,()=>L(t).model,e=>L(t).model=e),B(e,r)}),D(r);var c=F(r,2),l=N(c),u=N(l);q(u,{get icon(){return uX},class:`form-action-icon`});var d=F(u,2),f=N(d,!0);D(d),D(l);var p=F(l,2),m=N(p);q(m,{get icon(){return yX},class:`form-action-icon`});var h=F(m,2),g=N(h,!0);D(h),D(p),D(c),I((e,t,n,r)=>{a.disabled=Q.failoverFormManaged,G(a,`aria-label`,e),l.disabled=Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving,V(f,t),p.disabled=n,V(g,r)},[()=>vb(),()=>wb(),()=>Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving||!Q.failoverEnabled(),()=>Q.failoverGenerating?Db():Ab()]),Mi(a,()=>Q.failoverForm.target_model,e=>Q.failoverForm.target_model=e),R(`click`,l,()=>Q.addFailoverTarget()),R(`click`,p,()=>Q.generateFailoverForForm()),B(e,n)},$$slots:{default:!0}})}var s=F(o,2),c=N(s);Z8(N(c),{get enabled(){return Q.failoverForm.enabled},label:`failover mapping`,get disabled(){return Q.failoverFormManaged},onclick:()=>{Q.failoverFormManaged||(Q.failoverForm.enabled=!Q.failoverForm.enabled)}}),D(c),D(s),D(n),B(e,n)},$$slots:{header:!0,extraActions:!0,default:!0}})}k()}Sr([`click`]);var dBe=z(` `),fBe=z(`
                    `),pBe=z(``),mBe=z(`
                    `),t5=z(`

                    `),hBe=z(``),gBe=z(``);function n5(e,t){O(t,!0),$X(e,{get open(){return Q.failoverDraftsOpen},variant:`editor`,onclose:()=>Q.closeFailoverDraftsModal(),children:(e,t)=>{var n=gBe(),r=N(n),i=N(r),a=N(i),o=N(a,!0);D(a);var s=F(a,2),c=N(s,!0);D(s),D(i);var l=F(i,2),u=N(l),d=e=>{var t=dBe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Q.failoverDraftCountLabel()]),B(e,t)};H(u,e=>{Q.failoverGeneratedRules.length>0&&e(d)});var f=F(u,2);{let e=A(()=>Gb());QX(f,{get label(){return L(e)},onclick:()=>Q.closeFailoverDraftsModal(),get disabled(){return Q.failoverDraftSaving}})}D(l),D(r);var p=F(r,2),m=e=>{{let t=A(()=>Jb());J3(e,{get label(){return L(t)},class:`failover-drafts-loading`})}};H(p,e=>{Q.failoverGenerating&&e(m)});var h=F(p,2),g=e=>{var t=fBe(),n=N(t);{let e=A(()=>Zb()),t=A(()=>ex());z3(n,{get placeholder(){return L(e)},get label(){return L(t)},get value(){return Q.failoverDraftFilter},set value(e){Q.failoverDraftFilter=e}})}var r=F(n,2),i=N(r);q(i,{get icon(){return ZY},class:`form-action-icon`});var a=F(i,2),o=N(a,!0);D(a),D(r),D(t),I(e=>{r.disabled=Q.failoverDraftSaving,V(o,e)},[()=>Q.allFailoverDraftsSelected()?ox():rx()]),R(`click`,r,()=>Q.toggleAllFailoverDrafts()),B(e,t)};H(h,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&e(g)});var _=F(h,2),v=e=>{var t=mBe();U(t,21,()=>Q.filteredFailoverDrafts(),e=>`failover-draft:`+Q.failoverPrimaryModel(e),(e,t)=>{var n=pBe(),r=N(n);Ti(r);var i=F(r,2),a=N(i),o=N(a,!0);D(a);var s=F(a,2),c=N(s,!0);D(s),D(i),D(n),I((e,t,n,i)=>{Di(r,e),r.disabled=Q.failoverDraftSaving,G(r,`aria-label`,t),V(o,n),V(c,i)},[()=>Q.failoverDraftSelected(L(t)),()=>lx({model:Q.failoverPrimaryModel(L(t))}),()=>Q.failoverPrimaryModel(L(t)),()=>Q.failoverTargetLabel(L(t))]),R(`change`,r,e=>Q.setFailoverDraftSelected(L(t),e.currentTarget.checked)),B(e,n)}),D(t),B(e,t)},y=A(()=>!Q.failoverGenerating&&Q.filteredFailoverDrafts().length>0);H(_,e=>{L(y)&&e(v)});var b=F(_,2),x=e=>{var t=t5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>fx()]),B(e,t)};H(b,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length===0&&!Q.failoverError&&e(x)});var S=F(b,2),C=e=>{var t=t5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>hx()]),B(e,t)},w=A(()=>!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&Q.filteredFailoverDrafts().length===0);H(S,e=>{L(w)&&e(C)});var T=F(S,2),ee=e=>{var t=hBe(),n=N(t,!0);D(t),I(()=>V(n,Q.failoverError)),B(e,t)};H(T,e=>{Q.failoverError&&e(ee)});var E=F(T,2),te=N(E),ne=N(te,!0);D(te);var re=F(te,2),ie=N(re);q(ie,{get icon(){return pX},class:`form-action-icon`});var ae=F(ie,2),oe=N(ae,!0);D(ae),D(re),D(E),D(n),I((e,t,r,i,a,s)=>{G(n,`aria-label`,e),V(o,t),V(c,r),te.disabled=Q.failoverDraftSaving,V(ne,i),re.disabled=a,V(oe,s)},[()=>Ib(),()=>zb(),()=>Hb(),()=>Ta(),()=>Q.failoverGenerating||Q.failoverDraftSaving||Q.selectedFailoverDraftCount()===0,()=>Q.failoverDraftSaving?vx():xx()]),R(`click`,te,()=>Q.closeFailoverDraftsModal()),R(`click`,re,()=>Q.saveSelectedFailoverDrafts()),B(e,n)},$$slots:{default:!0}}),k()}Sr([`click`,`change`]);var _Be=z(`
                    `),r5=z(` `,1),vBe=z(`

                    `),yBe=z(`

                    `),bBe=z(`
                    `),xBe=z(`
                    `),SBe=z(`

                    `),CBe=z(``),wBe=z(``);function TBe(e,t){O(t,!0);function n(){Y.dialogOpen||Z.closeRateLimitInspector()}$X(e,{get open(){return Z.rateLimitInspectorOpen},variant:`editor`,onclose:n,children:(e,t)=>{var n=wBe(),r=N(n),i=N(r),a=N(i),o=N(a,!0);D(a);var s=F(a,2),c=N(s),l=N(c,!0);D(c),D(s),D(i),QX(F(i,2),{label:`Close rate limits inspector`,onclick:()=>Z.closeRateLimitInspector()}),D(r);var u=F(r,2),d=e=>{J3(e,{label:`Loading rate limits...`})},f=e=>{var t=_Be(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>JD()]),B(e,t)},p=e=>{var t=kr();U(P(t),17,()=>Z.rateLimitInspectorSections(),e=>e.key,(e,t)=>{var n=SBe(),r=N(n),i=N(r),a=N(i,!0);D(i);var o=F(i,2);{let e=A(()=>`Add `+L(t).title.toLowerCase());Y3(o,{get label(){return L(e)},class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(L(t).scope,L(t).subject),children:(e,t)=>{var n=r5(),r=P(n);q(r,{get icon(){return uX},class:`table-icon-svg`});var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>fO()]),B(e,n)},$$slots:{default:!0}})}D(r);var s=F(r,2),c=e=>{var n=vBe(),r=N(n,!0);D(n),I(()=>V(r,L(t).hint)),B(e,n)};H(s,e=>{L(t).hint&&e(c)});var l=F(s,2),u=e=>{var t=yBe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>hO()]),B(e,t)},d=e=>{var n=xBe();U(n,21,()=>L(t).items,e=>Z.rateLimitKey(e),(e,t)=>{var n=bBe(),r=N(n),i=N(r),a=N(i),o=N(a,!0);D(a);var s=F(a,2),c=N(s),l=N(c);{let e=A(()=>Z.rateLimitIsConcurrent(L(t))?JY:gX);q(l,{get icon(){return L(e)},class:`budget-period-icon`})}var u=F(l,2),d=N(u,!0);D(u),D(c),D(s);var f=F(s,2),p=N(f),m=N(p),h=N(m,!0);D(m);var g=F(m,2),_=N(g,!0);D(g),D(p);var v=F(p,2),y=N(v),b=e=>{Y3(e,{label:`Edit rate limit`,class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(null,null,L(t)),children:(e,t)=>{var n=r5(),r=P(n);q(r,{get icon(){return lX},class:`budget-action-icon`});var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>vO()]),B(e,n)},$$slots:{default:!0}})},x=A(()=>!Z.rateLimitIsReadOnly(L(t)));H(y,e=>{L(x)&&e(b)}),D(v),D(f),D(i),D(r),D(n),I((e,t,r,i,a,s,c,l)=>{W(n,1,`budget-row ${e??``}`),hi(n,t),G(n,`title`,r),V(o,i),V(d,a),V(h,s),G(g,`title`,c),V(_,l)},[()=>Z.rateLimitPressureClass(L(t)),()=>Z.rateLimitPressureStyle(L(t)),()=>Z.rateLimitPressurePercent(L(t))+`% of the most constrained cap used`,()=>Z.rateLimitSubject(L(t)),()=>Z.rateLimitPeriodLabel(L(t)),()=>Z.rateLimitInspectorSummary(L(t)),()=>Z.rateLimitIsReadOnly(L(t))?`Declared in configuration; read-only in the dashboard`:`Managed via dashboard or admin API`,()=>Z.rateLimitSourceLabel(L(t))]),B(e,n)}),D(n),B(e,n)};H(l,e=>{L(t).items.length===0?e(u):e(d,-1)}),D(n),I(()=>V(a,L(t).title)),B(e,n)}),B(e,t)};H(u,e=>{Z.rateLimitsLoading?e(d):Z.rateLimitsAvailable?e(p,-1):e(f,1)});var m=F(u,2),h=N(m),g=F(h,2),_=e=>{var t=CBe();R(`click`,t,()=>{Z.closeRateLimitInspector(),wX.navigate(`rate-limits`)}),B(e,t)},v=A(()=>Z.rateLimitsEnabled());H(g,e=>{L(v)&&e(_)}),D(m),D(n),I((e,t)=>{G(n,`aria-label`,e),V(o,t),V(l,Z.rateLimitInspector.title)},[()=>lO(),()=>HD()]),R(`click`,h,()=>Z.closeRateLimitInspector()),B(e,n)},$$slots:{default:!0}}),k()}Sr([`click`]);var EBe=z(`
                    `),i5=z(`
                    `),DBe=z(``),OBe=z(`
                    `),kBe=z(``),ABe=z(`
                    `),a5=z(`

                    `),jBe=z(`
                    `);function MBe(e,t){O(t,!0),hn(()=>{Y.refreshTick,wX.page===`models`&&(S8.fetchVirtualModels(),N8.fetchModelPricingOverrides(),Q.fetchFailoverRules(),Z.fetchRateLimitsPage())}),hn(()=>{let e=S8.filteredDisplayModels.length;return sr(()=>S8.restartModelRendering(e)),()=>S8.stopModelRendering()});let n=A(()=>Y.needsAuth),r={all:xK,text_generation:wK,embedding:DK,image:AK,audio:NK,video:IK,utility:zK};function i(e){return r[e.category]?.()||e.display_name}var a=jBe(),o=N(a),s=N(o),c=N(s,!0);D(s);var l=F(s,2),u=e=>{var t=EBe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>og({count:AZ.filter?S8.filteredDisplayModels.length+` / `+S8.displayModels.length:S8.displayModels.length})]),B(e,t)};H(l,e=>{S8.displayModels.length>0&&e(u)}),D(o);var d=F(o,2);jZ(d,{});var f=F(d,2),p=e=>{var t=i5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>lg()]),B(e,t)};H(f,e=>{!S8.virtualModelsAvailable&&!L(n)&&e(p)});var m=F(f,2),h=e=>{var t=i5(),n=N(t,!0);D(t),I(()=>V(n,S8.aliasError)),B(e,t)};H(m,e=>{S8.aliasError&&!L(n)&&e(h)});var g=F(m,2),_=e=>{var t=i5(),n=N(t,!0);D(t),I(()=>V(n,N8.modelPricingOverrideError)),B(e,t)};H(g,e=>{N8.modelPricingOverrideError&&!L(n)&&!N8.modelPricingOverrideFormOpen&&e(_)});var v=F(g,2),y=e=>{var t=OBe();U(t,21,()=>AZ.categories,e=>e.category,(e,t)=>{var n=DBe();let r;var a=N(n),o=N(a,!0);D(a);var s=F(a,2),c=N(s,!0);D(s),D(n),I(e=>{r=W(n,1,`category-tab svelte-scpjps`,null,r,{active:AZ.activeCategory===L(t).category}),V(o,e),V(c,L(t).count)},[()=>i(L(t))]),R(`click`,n,()=>AZ.selectCategory(L(t).category)),B(e,n)}),D(t),B(e,t)};H(v,e=>{AZ.categories.length>0&&e(y)});var b=F(v,2),x=e=>{var t=ABe(),n=N(t),r=N(n);{let e=A(()=>fg()),t=A(()=>hg());z3(r,{get placeholder(){return L(e)},get label(){return L(t)},get value(){return AZ.filter},set value(e){AZ.filter=e}})}D(n);var i=F(n,2),a=N(i),o=e=>{var t=kBe(),n=N(t);q(n,{get icon(){return uX},class:`alias-create-icon`});var r=F(n,2),i=N(r,!0);D(r),D(t),I((e,n,r)=>{G(t,`aria-label`,e),G(t,`title`,n),V(i,r)},[()=>xg(),()=>wg(),()=>vg()]),R(`click`,t,()=>S8.openVirtualModelCreate()),B(e,t)};H(a,e=>{S8.virtualModelsAvailable&&e(o)}),D(i),D(t),B(e,t)};H(b,e=>{(S8.displayModels.length>0||AZ.filter||S8.virtualModelsAvailable)&&e(x)});var S=F(b,2),C=e=>{{let t=A(()=>S8.modelLoadingText());J3(e,{get label(){return L(t)},class:`models-loading-state`})}},w=A(()=>S8.modelsBusy()&&!L(n));H(S,e=>{L(w)&&e(C)});var T=F(S,2);Kze(T,{});var ee=F(T,2);nBe(ee,{});var E=F(ee,2),te=e=>{jze(e,{})};H(E,e=>{(S8.displayModels.length>0||AZ.filter)&&e(te)});var ne=F(E,2),re=e=>{var t=a5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Dg()]),B(e,t)};H(ne,e=>{S8.displayModels.length===0&&!AZ.loading&&!L(n)&&!AZ.filter&&(AZ.activeCategory===`all`||!AZ.activeCategory)&&e(re)});var ie=F(ne,2),ae=e=>{var t=a5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Ag()]),B(e,t)};H(ie,e=>{S8.displayModels.length===0&&!AZ.loading&&!L(n)&&!AZ.filter&&AZ.activeCategory&&AZ.activeCategory!==`all`&&e(ae)});var oe=F(ie,2),se=e=>{var t=a5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Ng()]),B(e,t)};H(oe,e=>{S8.displayModels.length>0&&S8.filteredDisplayModels.length===0&&AZ.filter&&e(se)});var ce=F(oe,2);TBe(ce,{});var le=F(ce,2);q6(le,{});var ue=F(le,2);uBe(ue,{}),n5(F(ue,2),{}),D(a),I(e=>V(c,e),[()=>rg()]),B(e,a),k()}Sr([`click`]);var NBe=`draft-workflow-preview`;function o5(){return{scope_provider:``,scope_model:``,scope_user_path:``,name:``,description:``,features:{cache:!0,audit:!0,usage:!0,budget:!0,guardrails:!1,failover:!0},guardrails:[]}}function s5(){return{scope_provider:``,scope_model:``,scope_user_path:``}}function PBe(e){return{ref:``,step:Number.isFinite(e)?e:10}}function c5(e){let t=e==null?``:String(e).trim();if(t===``)return NaN;let n=Number(t);return Number.isFinite(n)?n:NaN}function l5(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return n;let r=t.charAt(0).toUpperCase()+t.slice(1);for(let n of[t,r])if(Object.prototype.hasOwnProperty.call(e,n)&&e[n]!==null&&e[n]!==void 0)return e[n];return n}function FBe(e,t){return!e||typeof e!=`object`||Array.isArray(e)?!1:[t,t.charAt(0).toUpperCase()+t.slice(1)].some(t=>Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==null&&e[t]!==void 0)}function u5(e){return{cache:!!l5(e,`cache`,!1),audit:!!l5(e,`audit`,!1),usage:!!l5(e,`usage`,!1),budget:l5(e,`budget`,!0)!==!1,guardrails:!!l5(e,`guardrails`,!1),failover:l5(e,`failover`,!0)!==!1}}function d5(e,t){let n=u5(e),r=t||{},i=n.usage&&!!r.usage;return{cache:n.cache&&!!r.cache,audit:n.audit&&!!r.audit,usage:i,budget:i&&n.budget&&!!r.budget,guardrails:n.guardrails&&!!r.guardrails,failover:n.failover&&!!r.failover}}function f5(e,t){let n=e&&e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:e&&e.features?e.features:{};return{...d5((e&&e.effective_features&&typeof e.effective_features==`object`&&!Array.isArray(e.effective_features)?e.effective_features:null)||n,t),failover:u5(n).failover}}function IBe(e,t){return f5(e,t).failover?lJ():fJ()}function p5(e){return(Array.isArray(e&&e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:Array.isArray(e&&e.guardrails)?e.guardrails:[]).map(e=>({ref:String(e&&e.ref||``).trim(),step:c5(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0)}function LBe(e,t){return f5(e,t).guardrails&&Array.isArray(e&&e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[]}function m5(e){return String(e&&(e.scope_provider_name||e.scope_provider)||``).trim()}function h5(e){return String(e&&(e.provider_name||e.provider_type)||``).trim()}function g5(e,t){let n=new Set,r=String(t&&t.scope_provider||``).trim();return r&&n.add(r),(Array.isArray(e)?e:[]).forEach(e=>{let t=h5(e);t&&n.add(t)}),[...n].sort()}function _5(e,t,n){let r=String(t||``).trim(),i=new Set,a=String(n&&n.scope_provider||``).trim(),o=String(n&&n.scope_model||``).trim();return r&&r===a&&o&&i.add(o),(Array.isArray(e)?e:[]).forEach(e=>{if(r&&h5(e)!==r)return;let t=String(e&&e.model&&e.model.id||``).trim();t&&i.add(t)}),[...i].sort()}function RBe(e){let t=String(e&&e.scope_type||``).trim();return t===`provider_model`?eY():t===`provider_model_path`?rY():t===`provider_path`?oY():t===`path`?lY():t===`provider`?fY():hY()}function v5(e){return String(e&&e.scope_display||`global`).trim()||`global`}function y5(e){let t=String(e&&e.name||``).trim();if(t)return t;let n=v5(e);return n===`global`?vY():n}function b5(e){let t=String(e||``).trim();if(!t)return``;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return lB();if(t.includes(`:`))return fB()}}return``}function x5(e){if(b5(e))return``;let t=String(e||``).trim();if(!t)return``;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`),r=[];for(let e of n){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function S5(e){let t=e||o5(),n=String(t.scope_provider||``).trim(),r=x5(t.scope_user_path);return{scope_provider:n,scope_model:n?String(t.scope_model||``).trim():``,scope_user_path:r}}function C5(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=x5(e&&e.scope_user_path);return!t&&!r?`global`:!t&&r?`path`:!n&&!r?`provider`:!n&&r?`provider_path`:r?`provider_model_path`:`provider_model`}function zBe(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=x5(e&&e.scope_user_path),i=C5({scope_provider:t,scope_model:n,scope_user_path:r});return i===`global`?`global`:i===`path`?r:i===`provider`?t:i===`provider_path`?t+` @ `+r:i===`provider_model_path`?t+`/`+n+` @ `+r:t+`/`+n}function BBe(e,t){let n=t||s5(),r=m5(e&&e.scope),i=r?String(e&&e.scope&&e.scope.scope_model||``).trim():``,a=x5(e&&e.scope&&e.scope.scope_user_path);return r===String(n.scope_provider||``).trim()&&i===String(n.scope_model||``).trim()&&a===x5(n.scope_user_path)}function w5(e,t,n){let r=S5(t);return!(r.scope_provider!==``||r.scope_model!==``||r.scope_user_path!==``)&&!n?null:(Array.isArray(e)?e:[]).find(e=>BBe(e,r))||null}function T5(e){return String(e&&e.scope_type||``).trim()!==`global`}function VBe(e){let t=String(e||``).trim();return t?t.length<=14?t:t.slice(0,12)+`…`:`—`}function HBe(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.description,e.scope_display,e.scope_type,m5(e&&e.scope),e.scope&&e.scope.scope_model,e.scope&&e.scope.scope_user_path,e.workflow_hash,...Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails.map(e=>e.ref):[]].some(e=>String(e||``).toLowerCase().includes(r)))}function UBe(e,t){let n=e||o5(),r=S5(n),i=u5(n.features||{}),a=d5(i,t);a.failover=i.failover;let o=!!a.guardrails,s=o?p5(n):[];return{id:NBe,scope_type:C5(r),scope_display:zBe(r),scope:{scope_provider_name:r.scope_provider,scope_model:r.scope_model,...r.scope_user_path?{scope_user_path:r.scope_user_path}:{}},name:String(n.name||``).trim(),description:String(n.description||``).trim(),workflow_payload:{schema_version:1,features:{cache:!!a.cache,audit:!!a.audit,usage:!!a.usage,budget:!!a.budget,guardrails:o,failover:!!a.failover},guardrails:s}}}function WBe({form:e,caps:t,workflows:n=[],formHydrated:r=!1,hydratedScope:i=null}){let a=e||o5(),o=String(a.scope_provider||``).trim(),s=o?String(a.scope_model||``).trim():``,c=x5(a.scope_user_path),l=u5(a.features||{}),u=d5(l,t),d=w5(n,a,r),f=d&&d.workflow_payload&&d.workflow_payload.features,p=FBe(f,`failover`),m=p?l5(f,`failover`,!0)!==!1:null,h=i||s5(),g=String(h.scope_provider||``).trim()===o&&String(h.scope_model||``).trim()===s&&x5(h.scope_user_path)===x5(c),_=!!(t&&t.failover),v=_||!!r&&g&&Object.prototype.hasOwnProperty.call(l,`failover`)||!r&&!!d&&p,y=u.guardrails?(Array.isArray(a.guardrails)?a.guardrails:[]).map(e=>({ref:String(e&&e.ref||``).trim(),step:c5(e&&e.step)})):[],b={scope_provider_name:o,scope_model:s,...c?{scope_user_path:c}:{},name:String(a.name||``).trim(),description:String(a.description||``).trim(),workflow_payload:{schema_version:1,features:{cache:!!u.cache,audit:!!u.audit,usage:!!u.usage,budget:!!u.budget,guardrails:!!u.guardrails},guardrails:y}};return v&&(b.workflow_payload.features.failover=!_&&!r&&d&&p?m:!!l.failover),b}function GBe(e,{models:t=[],hydratedScope:n=null}={}){let r=n||s5(),i=String(r.scope_provider||``).trim(),a=String(r.scope_model||``).trim(),o=String(e&&(e.scope_provider_name||e.scope_provider)||``).trim(),s=String(e&&e.scope_model||``).trim();if(o&&!g5(t,r).includes(o)&&o!==i)return Wme();if(s&&!o)return qme();if(s){let e=_5(t,o,r),n=o===i&&s===a;if(!e.includes(s)&&!n)return Xme()}let c=b5(e.scope_user_path);if(c)return c;let l=e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:{},u=Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[];if(!l.guardrails)return``;let d=new Set;for(let e of u){if(!e.ref)return $me();if(!Number.isInteger(e.step)||e.step<0)return nhe();if(d.has(e.ref))return ahe();d.add(e.ref)}return``}var E5=new class{#e=j(Xt([]));get workflows(){return L(this.#e)}set workflows(e){M(this.#e,e,!0)}#t=j(!0);get available(){return L(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return L(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return L(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return L(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return L(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get submitting(){return L(this.#o)}set submitting(e){M(this.#o,e,!0)}#s=j(``);get deactivatingID(){return L(this.#s)}set deactivatingID(e){M(this.#s,e,!0)}#c=j(``);get formError(){return L(this.#c)}set formError(e){M(this.#c,e,!0)}#l=j(!1);get formHydrated(){return L(this.#l)}set formHydrated(e){M(this.#l,e,!0)}#u=j(Xt(s5()));get hydratedScope(){return L(this.#u)}set hydratedScope(e){M(this.#u,e,!0)}#d=j(Xt([]));get guardrailRefs(){return L(this.#d)}set guardrailRefs(e){M(this.#d,e,!0)}#f=j(Xt(o5()));get form(){return L(this.#f)}set form(e){M(this.#f,e,!0)}#p=null;failoverVisible(){return ZX.booleanFlag(`FAILOVER_ENABLED`,!0)}featureCaps(){return{cache:ZX.cacheVisible(),audit:ZX.auditVisible(),usage:ZX.usageVisible(),budget:ZX.budgetsVisible(),guardrails:ZX.guardrailsVisible(),failover:this.failoverVisible()}}get filteredWorkflows(){return HBe(this.workflows,this.filter)}providerOptions(){return g5(AZ.models,this.hydratedScope)}modelOptions(e){return _5(AZ.models,e,this.hydratedScope)}activeScopeMatch(){return w5(this.workflows,this.form,this.formHydrated)}submitMode(){return this.activeScopeMatch()?`save`:`create`}submitLabel(){return this.submitMode()===`save`?zq():eA()}submittingLabel(){return this.submitMode()===`save`?Hq():Gq()}preview(){return UBe(this.form,this.featureCaps())}openCreate(e){if(this.formOpen=!0,this.submitting=!1,this.formError=``,!e){this.formHydrated=!1,this.hydratedScope=s5(),this.form=o5();return}this.formHydrated=!0,this.hydratedScope={scope_provider:m5(e.scope),scope_model:String(e.scope&&e.scope.scope_model||``).trim(),scope_user_path:String(e.scope&&e.scope.scope_user_path||``).trim()};let t=e.workflow_payload&&e.workflow_payload.features?u5(e.workflow_payload.features):f5(e,this.featureCaps()),n=Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails.map(e=>({ref:String(e&&e.ref||``).trim(),step:c5(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0):p5(e);this.form={scope_provider:m5(e.scope),scope_model:String(e.scope&&e.scope.scope_model||``),scope_user_path:String(e.scope&&e.scope.scope_user_path||``),name:String(e.name||``),description:String(e.description||``),features:{cache:!!t.cache,audit:!!t.audit,usage:!!t.usage,budget:!!t.budget,guardrails:!!t.guardrails,failover:!!t.failover},guardrails:n.map(e=>({ref:String(e&&e.ref||``),step:Number.isFinite(e&&e.step)?e.step:10}))}}closeForm(){this.formOpen=!1,this.submitting=!1,this.formError=``,this.formHydrated=!1,this.hydratedScope=s5(),this.form=o5()}setProvider(e){if(this.form.scope_provider=String(e||``).trim(),!this.form.scope_provider){this.form.scope_model=``;return}this.modelOptions(this.form.scope_provider).includes(String(this.form.scope_model||``).trim())||(this.form.scope_model=``)}addGuardrailStep(){let e=(Array.isArray(this.form.guardrails)?this.form.guardrails:[]).reduce((e,t)=>{let n=Number(t&&t.step);return Number.isFinite(n)?Math.max(e,n):e},0)+10;this.form.guardrails.push(PBe(e))}removeGuardrailStep(e){Array.isArray(this.form.guardrails)&&this.form.guardrails.splice(e,1)}buildRequest(){return WBe({form:this.form,caps:this.featureCaps(),workflows:this.workflows,formHydrated:this.formHydrated,hydratedScope:this.hydratedScope})}async fetchWorkflows(){this.#p&&this.#p.abort();let e=new AbortController;this.#p=e,this.loading=!0,this.error=``;let t=setTimeout(()=>e.abort(),1e4),n=await X3(`/admin/workflows`,{label:`workflows`,options:{signal:e.signal}});if(clearTimeout(t),this.#p===e&&(this.#p=null,this.loading=!1,n.status!==`stale`)){if(n.status===`unavailable`){this.available=!1,this.workflows=[];return}if(n.result&&(this.available=!0),n.status===`error`){this.workflows=[],this.error=e.signal.aborted?Zq():n.error;return}this.workflows=n.items}}async fetchGuardrailRefs(){let e=await X3(`/admin/workflows/guardrails`,{label:`workflow guardrails`});e.status!==`stale`&&(this.guardrailRefs=e.items)}async fetchPage(){await Promise.all([ZX.ensureLoaded(),this.fetchWorkflows(),this.fetchGuardrailRefs()])}async submitForm(){if(this.submitting)return;this.formError=``;let e=this.buildRequest(),t=GBe(e,{models:AZ.models,hydratedScope:this.hydratedScope});if(t){this.formError=t;return}this.submitting=!0;try{let t=await Z3(`/admin/workflows`,`POST`,e,{label:`create workflow`,unavailableStatuses:[]});if(t.status===`stale`||t.result&&t.result.status===401)return;if(t.status===`error`){this.formError=t.error;return}sZ.success(eJ()),this.closeForm(),this.fetchPage()}finally{this.submitting=!1}}async deactivate(e){let t=String(e&&e.id||``).trim();if(!t||this.deactivatingID||!T5(e))return;let n=y5(e);if(confirm(rJ({name:n}))){this.deactivatingID=t;try{let e=await Z3(`/admin/workflows/`+encodeURIComponent(t)+`/deactivate`,`POST`,void 0,{label:`deactivate workflow`,unavailableStatuses:[]});if(e.status===`stale`||e.result&&e.result.status===401)return;if(e.status===`error`){sZ.error(e.error);return}sZ.success(oJ()),this.fetchPage()}finally{this.deactivatingID=``}}}},KBe=z(``);function qBe(e,t){O(t,!0);let n=K(t,`workflowID`,3,``),r=U3({logPrefix:`Failed to copy workflow ID:`});hn(()=>{n(),r.reset()});let i=A(()=>r.error?`Unable to copy workflow ID`:r.copied?`Workflow ID copied`:`Copy workflow ID`),a=A(()=>n()?L(i)+` `+n():L(i));async function o(e){e.preventDefault(),n()&&await r.copy(n())}var s=KBe();let c;var l=F(N(s),4),u=N(l,!0);D(l);var d=F(l,2);q(N(d),{get icon(){return nX}}),D(d),D(s),I(()=>{c=W(s,1,`workflow-pipeline-meta mono svelte-1viff7o`,null,c,{"workflow-pipeline-meta-copied":r.copied,"workflow-pipeline-meta-error":r.error}),G(s,`title`,L(i)),G(s,`aria-label`,L(a)),V(u,n())}),R(`click`,s,o),B(e,s),k()}Sr([`click`]);var D5=(e,t)=>{let n=()=>(t?.()).icon,r=()=>(t?.()).label,i=yt(()=>h((t?.()).variant,`workflow-node-feature`)),a=()=>(t?.()).state,o=()=>(t?.()).sub,s=()=>(t?.()).badge;var c=ZBe(),l=N(c),u=e=>{var t=JBe();let r;q(N(t),{get icon(){return n()}}),D(t),I(()=>r=W(t,1,`workflow-node-icon svelte-nbptrg`,null,r,{"workflow-node-icon-endpoint":L(i)===`workflow-node-endpoint`})),B(e,t)};H(l,e=>{n()&&e(u)});var d=F(l,2),f=N(d,!0);D(d);var p=F(d,2),m=e=>{var t=YBe(),n=N(t,!0);D(t),I(()=>V(n,s())),B(e,t)};H(p,e=>{s()&&e(m)});var g=F(p,2),_=e=>{var t=XBe(),n=N(t,!0);D(t),I(()=>V(n,o())),B(e,t)};H(g,e=>{o()&&e(_)}),D(c),I(()=>{W(c,1,ui([`workflow-node`,L(i),a()]),`svelte-nbptrg`),V(f,r())}),B(e,c)},JBe=z(`
                    `),YBe=z(` `),XBe=z(` `),ZBe=z(`
                    `),O5=z(`
                    `,1),k5=z(`
                    `,1),QBe=z(`
                    `),$Be=z(`
                    `),eVe=z(`
                    `);function A5(e,t){O(t,!0);let n=K(t,`chart`,19,()=>({}));var r=eVe();let i;var a=N(r),o=e=>{qBe(e,{get workflowID(){return n().workflowID}})};H(a,e=>{n().workflowID&&e(o)});var s=F(a,2),c=N(s);{let e=A(()=>({icon:$Te,label:wwe(),variant:`workflow-node-endpoint`}));D5(c,()=>L(e))}var l=F(c,4);{let e=A(()=>({icon:iX,label:Dwe(),state:n().authNodeClass,sub:n().authNodeSublabel}));D5(l,()=>L(e))}var u=F(l,2),d=e=>{var t=O5(),r=P(t),i=F(r,2);{let e=A(()=>({icon:iX,label:zA(),state:n().cacheNodeClass,badge:n().cacheStatusLabel}));D5(i,()=>L(e))}I(()=>W(r,1,ui([`workflow-conn`,n().cacheConnClass]),`svelte-nbptrg`)),B(e,t)};H(u,e=>{n().showCache&&e(d)});var f=F(u,2),p=e=>{var t=k5(),r=F(P(t),2);{let e=A(()=>({icon:vX,label:JA(),state:n().budgetNodeClass,badge:n().budgetStatusLabel}));D5(r,()=>L(e))}B(e,t)};H(f,e=>{n().showBudget&&e(p)});var m=F(f,2),h=e=>{var t=k5(),r=F(P(t),2);{let e=A(()=>({icon:JTe,label:GE(),sub:n().guardrailLabel}));D5(r,()=>L(e))}B(e,t)};H(m,e=>{n().showGuardrails&&e(h)});var g=F(m,2),_=F(g,2);D5(_,()=>({label:n().aiLabel,variant:`workflow-node-ai`,state:n().aiNodeClass,sub:n().aiSublabel}));var v=F(_,2),y=e=>{var t=O5(),r=P(t),i=F(r,2);{let e=A(()=>({icon:cX,label:ZA(),state:n().failoverNodeClass,badge:n().failoverStatusLabel,sub:n().failoverTargetLabel}));D5(i,()=>L(e))}I(()=>W(r,1,ui([`workflow-conn`,n().failoverConnClass]),`svelte-nbptrg`)),B(e,t)};H(v,e=>{n().showFailover&&e(y)});var b=F(v,2),x=F(b,2);{let e=A(()=>({icon:kTe,label:Awe(),variant:`workflow-node-endpoint`,state:n().responseNodeClass,sub:n().responseNodeSublabel}));D5(x,()=>L(e))}D(s);var S=F(s,2),C=e=>{var t=$Be(),r=N(t),i=N(r),a=e=>{{let t=A(()=>({icon:TTe,label:GA(),variant:`workflow-node-feature workflow-node-async`,state:n().usageNodeClass}));D5(e,()=>L(t))}};H(i,e=>{n().showUsage&&e(a)});var o=F(i,2),s=e=>{B(e,QBe())};H(o,e=>{n().showUsage&&n().showAudit&&e(s)});var c=F(o,2),l=e=>{{let t=A(()=>({icon:jTe,label:Nwe(),variant:`workflow-node-feature workflow-node-async`,state:n().auditNodeClass}));D5(e,()=>L(t))}};H(c,e=>{n().showAudit&&e(l)}),D(r);var u=F(r,4),d=N(u,!0);D(u),D(t),I(e=>V(d,e),[()=>HE()]),B(e,t)};H(S,e=>{n().showAsync&&e(C)}),D(r),I(()=>{i=W(r,1,`workflow-pipeline svelte-nbptrg`,null,i,{"workflow-pipeline-has-meta":n().workflowID}),W(g,1,ui([`workflow-conn`,n().aiConnClass]),`svelte-nbptrg`),W(b,1,ui([`workflow-conn`,n().responseConnClass]),`svelte-nbptrg`)}),B(e,r),k()}function tVe(e){let t=p5(e).length;return t===0?``:t===1?xJ():vJ({count:t})}function nVe(e,t){return t&&t.provider?t.provider:m5(e&&e.scope)||`AI`}function rVe(e,t){return t&&t.model?t.model:e&&e.scope&&e.scope.scope_model||null}function iVe(e,t){let n=String(e&&e.id||``).trim();if(n&&n!==`draft-workflow-preview`)return n;let r=String(t&&t.workflow_version_id||``).trim();return r&&r!==`draft-workflow-preview`?r:null}function aVe(e){let t=e&&e.data&&e.data.workflow_features;return!t||typeof t!=`object`||Array.isArray(t)?null:u5(t)}function j5(e){let t=e&&e.data&&e.data.failover;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=String(t.target_model||t.targetModel||``).trim()||null;return n?{targetModel:n}:null}function M5(e,t=0){if(t>4||e==null)return``;if(typeof e==`string`){let n=e.trim();if(!n||n[0]!==`{`&&n[0]!==`[`)return``;try{return M5(JSON.parse(n),t+1)}catch{return``}}if(Array.isArray(e)){for(let n of e){let e=M5(n,t+1);if(e)return e}return``}return typeof e==`object`?String(e.code||``).trim()||(e.error===void 0?``:M5(e.error,t+1)):``}function oVe(e){let t=e&&e.data&&typeof e.data==`object`&&!Array.isArray(e.data)?e.data:{};return String(t.error_code||t.errorCode||``).trim()||M5(t.response_body)}function sVe(e){let t=String(e||``).trim();if(!t)return null;let n=t.indexOf(`/`);return n<=0||n>=t.length-1?null:{provider:t.slice(0,n),model:t.slice(n+1)}}function cVe(e,t){let n=String(e&&(e.requested_model||e.model)||``).trim(),r=j5(e);if(!(r&&r.targetModel))return{provider:String(e&&e.provider||``).trim()||null,model:n||null};let i=sVe(n);if(i)return i;let a=m5(t&&t.scope),o=a?String(t&&t.scope&&t.scope.scope_model||``).trim():``;return a||o?{provider:a||null,model:o||n||null}:{provider:null,model:n||null}}function lVe(e,t){if(!e)return null;let n=(()=>{let t=String(e.cache_type||``).trim().toLowerCase();return t===`exact`||t===`semantic`?t:null})(),r=(()=>{if(e.status_code===void 0||e.status_code===null)return null;let t=String(e.status_code).trim();if(!t)return null;let n=Number(t);return Number.isFinite(n)?n:null})(),i=n?!0:e.cache_hit!==void 0&&e.cache_hit!==null&&!!e.cache_hit,a=j5(e),o=cVe(e,t),s=Number.isFinite(r)&&r>=200&&r<300,c=String(e.error_type||``).trim().toLowerCase()===`authentication_error`,l=String(e.auth_method||``).trim().toLowerCase()||null,u=oVe(e).toLowerCase()===`budget_exceeded`;return{cacheHit:i,cacheType:n||null,failoverTarget:a&&a.targetModel?a.targetModel:null,provider:o.provider,model:o.model,statusCode:r,responseSuccess:s,aiSuccess:s&&!i,authError:c,authMethod:l,budgetExceeded:u}}function uVe(e){return!!(e&&e.cacheHit)}function dVe(e){return!!(e&&e.failoverTarget)}function N5(e){return!!(e&&e.budgetExceeded)}function fVe(e,t){return t?`workflow-node-current`:e&&e.cacheHit?`workflow-node-success`:``}function pVe(e){return e&&e.cacheHit?`workflow-conn-hit`:``}function mVe(e){return!e||!e.cacheHit?null:e.cacheType===`semantic`?Iwe():zwe()}function hVe(e,t,n,r){return e?N5(t)?`workflow-node-error`:r?`workflow-node-current`:n?`workflow-node-success`:``:``}function gVe(e){return N5(e)?Hwe():null}function _Ve(e){return e&&e.cacheHit?`workflow-node-skipped`:e&&e.failoverTarget?`workflow-node-success`:``}function vVe(e){return e&&e.cacheHit?`workflow-conn-dim`:e&&e.failoverTarget?`workflow-conn-hit`:``}function yVe(e){return e&&e.failoverTarget?Gwe():null}function bVe(e){return e&&e.failoverTarget?e.failoverTarget:null}function P5(e){return e&&e.cacheHit?`workflow-conn-dim`:``}function xVe(e,t){return e?e.cacheHit?`workflow-node-skipped`:t?`workflow-node-current`:e.aiSuccess?`workflow-node-success`:``:``}function SVe(e,t){if(!e)return``;let n=e.statusCode;return!Number.isFinite(n)&&t?`workflow-node-current`:Number.isFinite(n)?n>=500?`workflow-node-error`:n>=400?`workflow-node-warning`:n>=300?`workflow-node-neutral`:n>=200?`workflow-node-success`:``:``}function CVe(e){return!e||!Number.isFinite(e.statusCode)?null:String(e.statusCode)}function wVe(e,t){return e?e.authError?`workflow-node-error`:t?`workflow-node-current`:e.authMethod===`api_key`||e.authMethod===`master_key`?`workflow-node-success`:``:``}function TVe(e){return!e||!e.authMethod?null:e.authMethod}function F5(e,t,n){return e?n?`workflow-node-current`:t?`workflow-node-success`:``:``}function I5(e,t){if(!e||!e._live)return!!t;let n=String(e._live_state||``).trim();return!!e._audit_flushed||n===`audit.flushed`||n===`audit.detail`}function EVe(e,t){if(!e)return!!t;let n=e.usage||{},r=Number(n.entries||0)>0;if(!e._live)return r;let i=String(e._usage_live_state||``).trim();return e._usage_flushed||i===`usage.flushed`?!0:!e._usage_live_pending&&r&&!e._live_pending}function L5(e){return!!(e&&e._live&&e._usage_live_pending&&!e._usage_flushed)}function R5(e,t){return!e||!e._live||I5(e,!1)?!1:String(e._live_state||``).trim()===`audit.completed`||!!(t&&Number.isFinite(t.statusCode))}function DVe(e,t,n){return!e||!e._live?``:L5(e)?`usage`:R5(e,t)?`audit`:I5(e,!1)&&!e._live_pending?``:t&&t.cacheHit?`cache`:t&&(t.provider||t.model)?`ai`:n&&n.budget&&(e.workflow_version_id||e.requested_model)?`budget`:t&&t.authMethod?``:`auth`}function z5(e,t,n,r){let i=n||{},a=i.features&&typeof i.features==`object`&&!Array.isArray(i.features)?u5(i.features):f5(e,r),o=!!i.forceAudit,s=!!i.highlightAsyncPresent,c=!!a.budget||N5(t),l=!!a.guardrails,u=!!a.usage,d=o||!!a.audit,f=!!i.forceAsync||!!(u||d),p=!!a.failover||dVe(t),m=iVe(e,i.entry),h=DVe(i.entry,t,a),g=L5(i.entry),_=R5(i.entry,t),v=I5(i.entry,s),y=EVe(i.entry,s);return{showBudget:c,budgetNodeClass:hVe(c,t,s,h===`budget`),budgetStatusLabel:gVe(t),showGuardrails:l,guardrailLabel:l?tVe(e):``,showCache:!!i.forceCache||!!a.cache||uVe(t),cacheNodeClass:fVe(t,h===`cache`),cacheConnClass:pVe(t),cacheStatusLabel:mVe(t),showFailover:p,failoverNodeClass:p?_Ve(t):``,failoverConnClass:p?vVe(t):``,failoverStatusLabel:p?yVe(t):null,failoverTargetLabel:p?bVe(t):null,aiLabel:nVe(e,t),aiSublabel:rVe(e,t),aiConnClass:P5(t),aiNodeClass:xVe(t,h===`ai`),responseConnClass:P5(t),responseNodeClass:SVe(t,h===`response`),responseNodeSublabel:CVe(t),authNodeClass:wVe(t,h===`auth`),authNodeSublabel:TVe(t),usageNodeClass:F5(u,y,g),auditNodeClass:F5(d,v,_),showAsync:f,showUsage:u,showAudit:d,workflowID:m}}function OVe(e,t){return z5(e,null,{forceCache:!1},t)}function kVe(e,t,n){return z5(t,lVe(e,t),{entry:e,features:aVe(e)||(t?f5(t,n):{cache:!1,audit:!1,usage:!1,budget:!1,guardrails:!1,failover:!1}),forceAudit:!0,forceAsync:!0,highlightAsyncPresent:!0},n)}var AVe=z(`

                    `),B5=z(`

                    `),jVe=z(`
                    `),MVe=z(`
                    `),NVe=z(`

                    `),PVe=z(``),FVe=z(`

                    `);function V5(e,t){O(t,!0);let n=K(t,`preview`,3,!1),r=A(()=>E5.featureCaps()),i=A(()=>y5(t.workflow)),a=A(()=>LBe(t.workflow,L(r))),o=A(()=>OVe(t.workflow,L(r))),s=A(()=>n()?`draft-workflow-preview-guardrail-`:t.workflow.id+`-guardrail-`);var c=FVe();let l;var u=N(c),d=N(u),f=N(d),p=N(f,!0);D(f);var m=F(f,2),h=N(m,!0);D(m),D(d);var g=F(d,2),_=N(g),v=N(_,!0);D(_),D(g),D(u);var y=F(u,2),b=e=>{var n=AVe(),r=N(n,!0);D(n),I(()=>V(r,t.workflow.description)),B(e,n)};H(y,e=>{t.workflow.description&&e(b)});var x=F(y,2),S=e=>{var n=B5(),i=N(n);D(n),I((e,t)=>V(i,`${e??``}: ${t??``}`),[()=>ZA(),()=>IBe(t.workflow,L(r))]),B(e,n)},C=A(()=>E5.failoverVisible());H(x,e=>{L(C)&&e(S)});var w=F(x,2);A5(w,{get chart(){return L(o)}});var T=F(w,2),ee=e=>{var t=NVe(),n=N(t),r=N(n),i=N(r,!0);D(r);var o=F(r,2),c=N(o,!0);D(o),D(n);var l=F(n,2),u=e=>{var t=MVe();U(t,23,()=>L(a),(e,t)=>L(s)+t,(e,t)=>{var n=jVe(),r=N(n),i=N(r,!0);D(r);var a=F(r,2),o=N(a,!0);D(a),D(n),I(e=>{V(i,L(t).ref),V(o,e)},[()=>wJ({number:L(t).step})]),B(e,n)}),D(t),B(e,t)},d=e=>{var t=B5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>JE()]),B(e,t)};H(l,e=>{L(a).length>0?e(u):e(d,-1)}),D(t),I((e,t)=>{V(i,e),V(c,t)},[()=>GE(),()=>L(a).length?vJ({count:L(a).length}):hJ()]),B(e,t)},E=A(()=>ZX.guardrailsVisible());H(T,e=>{L(E)&&e(ee)});var te=F(T,2),ne=e=>{var n=PVe(),r=N(n),a=N(r),o=N(a,!0);D(a);var s=F(a,2);{let e=A(()=>HJ({name:L(i)}));Y3(s,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>E5.openCreate(t.workflow),children:(e,t)=>{q(e,{get icon(){return lX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r);var c=F(r,2),l=N(c),u=N(l,!0);D(l);var d=F(l,2),f=N(d,!0);D(d);var p=F(d,2),m=N(p,!0);D(p),D(c),D(n),I((e,t,n,r,i,s,c)=>{a.disabled=e,G(a,`aria-label`,t),G(a,`title`,n),V(o,r),V(u,i),V(f,s),V(m,c)},[()=>E5.deactivatingID===t.workflow.id||!T5(t.workflow),()=>DJ({name:L(i)}),()=>T5(t.workflow)?AJ():NJ(),()=>E5.deactivatingID===t.workflow.id?IJ():zJ(),()=>GJ({version:t.workflow.version}),()=>JJ({date:UX.formatTimestamp(t.workflow.created_at)}),()=>ZJ({hash:VBe(t.workflow.workflow_hash)})]),R(`click`,a,()=>E5.deactivate(t.workflow)),B(e,n)};H(te,e=>{n()||e(ne)}),D(c),I((e,t)=>{l=W(c,1,`workflow-card svelte-1fo9fvq`,null,l,{"workflow-preview-card":n()}),V(p,e),V(h,L(i)),V(v,t)},[()=>RBe(t.workflow),()=>v5(t.workflow)]),B(e,c),k()}Sr([`click`]);var IVe=z(`

                    `),H5=z(``),LVe=z(``),RVe=z(``),zVe=z(``),BVe=z(``),VVe=z(``),U5=z(``),HVe=z(`
                    `),UVe=z(`
                    `),WVe=z(`
                    `),GVe=z(`

                    `),KVe=z(`

                    `),qVe=z(`

                    `,1);function JVe(e,t){O(t,!0);{let t=e=>{{let t=e=>{var t=IVe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>E5.submitMode()===`save`?Zk():eA()]),B(e,t)},n=A(()=>Gk()),r=A(()=>Jk());c3(e,{copyId:`workflow-help-copy`,get label(){return L(n)},get text(){return L(r)},title:t,$$slots:{title:!0}})}},n=A(()=>Hk()),r=A(()=>E5.submitLabel()),i=A(()=>E5.submittingLabel()),a=A(()=>E5.submitMode()===`create`?uX:pX);S6(e,{get open(){return E5.formOpen},get ariaLabel(){return L(n)},get error(){return E5.formError},get submitting(){return E5.submitting},get submitLabel(){return L(r)},get submittingLabel(){return L(i)},get submitIcon(){return L(a)},dialogClass:`workflow-editor`,onclose:()=>E5.closeForm(),onsubmit:()=>E5.submitForm(),header:t,children:(e,t)=>{var n=qVe(),r=P(n),i=N(r);{let e=A(()=>rA());C6(i,{id:`workflow-scope-provider`,get label(){return L(e)},children:(e,t)=>{var n=LVe(),r=N(n),i=N(r,!0);D(r),r.value=r.__value=``,U(F(r),16,()=>E5.providerOptions(),e=>e,(e,t)=>{var n=H5(),r=N(n,!0);D(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),D(n),I(e=>V(i,e),[()=>oA()]),R(`change`,n,e=>E5.setProvider(e.currentTarget.value)),vi(n,()=>E5.form.scope_provider,e=>E5.form.scope_provider=e),B(e,n)},$$slots:{default:!0}})}var a=F(i,2),o=e=>{{let t=A(()=>lA());C6(e,{id:`workflow-scope-model`,get label(){return L(t)},children:(e,t)=>{var n=RVe(),r=N(n),i=N(r,!0);D(r),r.value=r.__value=``,U(F(r),17,()=>E5.modelOptions(E5.form.scope_provider),e=>E5.form.scope_provider+`-`+e,(e,t)=>{var n=H5(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t)),i!==(i=L(t))&&(n.value=(n.__value=L(t))??``)}),B(e,n)}),D(n),I(e=>V(i,e),[()=>fA()]),vi(n,()=>E5.form.scope_model,e=>E5.form.scope_model=e),B(e,n)},$$slots:{default:!0}})}};H(a,e=>{E5.form.scope_provider&&e(o)});var s=F(a,2);{let e=A(()=>hA());C6(s,{id:`workflow-name`,get label(){return L(e)},children:(e,t)=>{var n=zVe();Ti(n),I(e=>G(n,`placeholder`,e),[()=>vA()]),Mi(n,()=>E5.form.name,e=>E5.form.name=e),B(e,n)},$$slots:{default:!0}})}var c=F(s,2);{let e=A(()=>xA());C6(c,{id:`workflow-user-path`,get label(){return L(e)},children:(e,t)=>{var n=BVe();Ti(n),Mi(n,()=>E5.form.scope_user_path,e=>E5.form.scope_user_path=e),B(e,n)},$$slots:{default:!0}})}D(r);var l=F(r,2),u=N(l,!0);D(l);var d=F(l,2),f=N(d,!0);D(d);var p=F(d,2),m=N(p,!0);D(p);var h=F(p,2);{let e=A(()=>NA());C6(h,{id:`workflow-description`,get label(){return L(e)},children:(e,t)=>{var n=VVe();at(n),I(e=>G(n,`placeholder`,e),[()=>IA()]),Mi(n,()=>E5.form.description,e=>E5.form.description=e),B(e,n)},$$slots:{default:!0}})}var g=F(h,2),_=N(g),v=e=>{var t=U5(),n=N(t);Ti(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>zA()]),Ni(n,()=>E5.form.features.cache,e=>E5.form.features.cache=e),B(e,t)},y=A(()=>ZX.cacheVisible());H(_,e=>{L(y)&&e(v)});var b=F(_,2),x=e=>{var t=U5(),n=N(t);Ti(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>HA()]),Ni(n,()=>E5.form.features.audit,e=>E5.form.features.audit=e),B(e,t)},S=A(()=>ZX.auditVisible());H(b,e=>{L(S)&&e(x)});var C=F(b,2),w=e=>{var t=U5(),n=N(t);Ti(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>GA()]),Ni(n,()=>E5.form.features.usage,e=>E5.form.features.usage=e),B(e,t)},T=A(()=>ZX.usageVisible());H(C,e=>{L(T)&&e(w)});var ee=F(C,2),E=e=>{var t=U5(),n=N(t);Ti(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>JA()]),Ni(n,()=>E5.form.features.budget,e=>E5.form.features.budget=e),B(e,t)},te=A(()=>ZX.budgetsVisible());H(ee,e=>{L(te)&&e(E)});var ne=F(ee,2),re=e=>{var t=U5(),n=N(t);Ti(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>GE()]),Ni(n,()=>E5.form.features.guardrails,e=>E5.form.features.guardrails=e),B(e,t)},ie=A(()=>ZX.guardrailsVisible());H(ne,e=>{L(ie)&&e(re)});var ae=F(ne,2),oe=e=>{var t=U5(),n=N(t);Ti(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>ZA()]),Ni(n,()=>E5.form.features.failover,e=>E5.form.features.failover=e),B(e,t)},se=A(()=>E5.failoverVisible());H(ae,e=>{L(se)&&e(oe)}),D(g);var ce=F(g,2),le=N(ce),ue=N(le),de=N(ue,!0);D(ue);var fe=F(ue,2),pe=N(fe,!0);D(fe),D(le);var me=F(le,2);{let e=A(()=>E5.preview());V5(me,{get workflow(){return L(e)},preview:!0})}D(ce);var he=F(ce,2),ge=e=>{var t=KVe(),n=N(t),r=N(n),i=N(r),a=N(i,!0);D(i);var o=F(i,2),s=N(o,!0);D(o),D(r);var c=F(r,2),l=N(c,!0);D(c),D(n);var u=F(n,2),d=e=>{var t=HVe(),n=N(t),r=N(n,!0);D(n);var i=F(n,2),a=N(i,!0);D(i),D(t),I((e,t)=>{V(r,e),V(a,t)},[()=>hj(),()=>vj()]),R(`click`,i,()=>wX.navigate(`guardrails`)),B(e,t)};H(u,e=>{E5.guardrailRefs.length===0&&e(d)});var f=F(u,2),p=e=>{var t=WVe();U(t,21,()=>E5.form.guardrails,Lr,(e,t,n)=>{var r=UVe(),i=N(r),a=N(i);G(a,`for`,`workflow-guardrail-ref-`+n);var o=N(a,!0);D(a);var s=F(a,2);Ti(s),G(s,`id`,`workflow-guardrail-ref-`+n),D(i);var c=F(i,2),l=N(c);G(l,`for`,`workflow-guardrail-step-`+n);var u=N(l,!0);D(l);var d=F(l,2);Ti(d),G(d,`id`,`workflow-guardrail-step-`+n),D(c);var f=F(c,2),p=N(f,!0);D(f),D(r),I((e,t,n,r,i,a,c)=>{V(o,e),G(s,`placeholder`,t),G(s,`aria-label`,n),V(u,r),G(d,`placeholder`,i),G(d,`aria-label`,a),V(p,c)},[()=>xj(),()=>xj(),()=>`${xj()} ${n+1}`,()=>wj(),()=>wj(),()=>`${oj()} ${n+1}`,()=>Dj()]),Mi(s,()=>L(t).ref,e=>L(t).ref=e),Mi(d,()=>L(t).step,e=>L(t).step=e),R(`click`,f,()=>E5.removeGuardrailStep(n)),B(e,r)}),D(t),B(e,t)},m=e=>{var t=GVe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Aj()]),B(e,t)};H(f,e=>{E5.form.guardrails.length>0?e(p):e(m,-1)}),D(t),I((e,t,n)=>{V(a,e),V(s,t),V(l,n)},[()=>oj(),()=>lj(),()=>fj()]),R(`click`,c,()=>E5.addGuardrailStep()),B(e,t)},_e=A(()=>E5.form.features.guardrails&&ZX.guardrailsVisible());H(he,e=>{L(_e)&&e(ge)}),I((e,t,n,r,i)=>{V(u,e),V(f,t),V(m,n),V(de,r),V(pe,i)},[()=>wA(),()=>DA(),()=>AA(),()=>ej(),()=>rj()]),B(e,n)},$$slots:{header:!0,default:!0}})}k()}Sr([`change`,`click`]);var YVe=z(`

                    `),XVe=z(`
                    `),W5=z(`

                    `),ZVe=z(`
                    `);function QVe(e,t){O(t,!0);var n=ZVe(),r=N(n),i=e=>{var t=YVe(),n=N(t);{let e=A(()=>Jq());i3(n,{size:16,get label(){return L(e)}})}var r=F(n);D(t),I(e=>V(r,` ${e??``}`),[()=>Jq()]),B(e,t)};H(r,e=>{E5.loading&&!Y.authError&&e(i)});var a=F(r,2),o=e=>{var t=XVe();U(t,21,()=>E5.filteredWorkflows,e=>e.id,(e,t)=>{V5(e,{get workflow(){return L(t)}})}),D(t),B(e,t)};H(a,e=>{E5.filteredWorkflows.length>0&&e(o)});var s=F(a,2),c=e=>{var t=W5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>IE()]),B(e,t)};H(s,e=>{E5.workflows.length===0&&!E5.loading&&!Y.authError&&E5.available&&e(c)});var l=F(s,2),u=e=>{var t=W5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>zE()]),B(e,t)};H(l,e=>{E5.workflows.length>0&&E5.filteredWorkflows.length===0&&!E5.loading&&e(u)}),D(n),B(e,n),k()}var $Ve=z(``),G5=z(`
                    `),eHe=z(`
                    `),tHe=z(``),nHe=z(`
                    `);function rHe(e,t){O(t,!0),hn(()=>{Y.refreshTick,E5.fetchPage()});var n=nHe(),r=N(n),i=N(r),a=N(i),o=N(a,!0);D(a);var s=F(a,2),c=N(s,!0);D(s),D(i);var l=F(i,2),u=N(l),d=e=>{var t=$Ve(),n=N(t);q(n,{get icon(){return uX},class:`form-action-icon`,"aria-hidden":`true`});var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>wE()]),R(`click`,t,()=>E5.openCreate()),B(e,t)};H(u,e=>{E5.available&&e(d)}),D(l),D(r);var f=F(r,2),p=e=>{var t=G5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>DE()]),B(e,t)};H(f,e=>{!E5.available&&!Y.authError&&e(p)});var m=F(f,2),h=e=>{var t=G5(),n=N(t,!0);D(t),I(()=>V(n,E5.error)),B(e,t)};H(m,e=>{E5.error&&!Y.authError&&e(h)});var g=F(m,2),_=e=>{var t=eHe(),n=N(t),r=N(n);{let e=A(()=>AE()),t=A(()=>NE());z3(r,{get placeholder(){return L(e)},get label(){return L(t)},get value(){return E5.filter},set value(e){E5.filter=e}})}D(n);var i=F(n,2),a=N(i),o=N(a,!0);D(a),D(i),D(t),I(()=>V(o,E5.filteredWorkflows.length+` active scopes`)),B(e,t)};H(g,e=>{E5.available&&e(_)});var v=F(g,2);JVe(v,{});var y=F(v,2);QVe(y,{});var b=F(y,2);U(b,20,()=>E5.guardrailRefs,e=>e,(e,t)=>{var n=tHe(),r={};I(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),D(b),D(n),I((e,t)=>{V(o,e),V(c,t)},[()=>vE(),()=>xE()]),B(e,n),k()}Sr([`click`]);function iHe(e,{from:t,to:n},r={}){var{delay:i=0,duration:a=e=>Math.sqrt(e)*120,easing:o=oZ}=r,s=getComputedStyle(e),c=s.transform===`none`?``:s.transform,[l,u]=s.transformOrigin.split(` `).map(parseFloat);l/=e.clientWidth,u/=e.clientHeight;var d=aHe(e),f=e.clientWidth/n.width/d,p=e.clientHeight/n.height/d,m=t.left+t.width*l,h=t.top+t.height*u,g=n.left+n.width*l,_=n.top+n.height*u,v=(m-g)*f,y=(h-_)*p,b=t.width/n.width,x=t.height/n.height;return{delay:i,duration:typeof a==`function`?a(Math.sqrt(v*v+y*y)):a,easing:o,css:(e,t)=>`transform: ${c} translate(${t*v}px, ${t*y}px) scale(${e+t*b}, ${e+t*x});`}}function aHe(e){if(`currentCSSZoom`in e)return e.currentCSSZoom;for(var t=e,n=1;t!==null;)n*=+getComputedStyle(t).zoom,t=t.parentElement;return n}var K5=null;function oHe(){return K5===null&&(K5=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`)),!!(K5&&K5.matches)}function q5(e){return oHe()?0:e}function sHe(e,t){return!t||!t.live?{duration:0}:aZ(e,{duration:q5(150)})}var J5=new class{#e=j(Xt({}));get workflowVersionsByID(){return L(this.#e)}set workflowVersionsByID(e){M(this.#e,e,!0)}workflowVersionRequests={};workflowFeatureCaps(){return{cache:ZX.cacheVisible(),audit:ZX.auditVisible(),usage:ZX.usageVisible(),budget:ZX.budgetsVisible(),guardrails:ZX.guardrailsVisible(),failover:ZX.booleanFlag(`FAILOVER_ENABLED`,!0)}}cacheWorkflowVersion(e){let t=String(e&&e.id||``).trim();return t?(this.workflowVersionsByID={...this.workflowVersionsByID||{},[t]:e},e):null}cacheMissingWorkflowVersion(e){let t=String(e||``).trim();t&&(this.workflowVersionsByID={...this.workflowVersionsByID||{},[t]:null})}workflowVersionCacheHas(e){return Object.prototype.hasOwnProperty.call(this.workflowVersionsByID||{},String(e||``).trim())}workflowVersionByID(e){let t=String(e||``).trim();return t&&this.workflowVersionCacheHas(t)?this.workflowVersionsByID[t]:null}async fetchWorkflowVersion(e){let t=String(e||``).trim();if(!t)return null;if(this.workflowVersionCacheHas(t))return this.workflowVersionsByID[t];if(this.workflowVersionRequests[t])return this.workflowVersionRequests[t];let n=(async()=>{let e=typeof AbortController==`function`?new AbortController:null,n=e?setTimeout(()=>e.abort(),1e4):null;try{let n=await JX(`/admin/workflows/`+encodeURIComponent(t),{label:`workflow`,signal:e?e.signal:void 0});if(n.stale)return null;if(n.status===404)return this.cacheMissingWorkflowVersion(t),null;if(!n.ok)return null;let r=n.data;return!r||typeof r!=`object`||Array.isArray(r)?(this.cacheMissingWorkflowVersion(t),null):this.cacheWorkflowVersion(r)}catch(e){return e&&e.name===`AbortError`||console.error(`Failed to fetch workflow version:`,e),null}finally{n!==null&&clearTimeout(n),delete this.workflowVersionRequests[t]}})();return this.workflowVersionRequests[t]=n,n}async prefetchAuditWorkflows(e){let t=[...new Set((Array.isArray(e)?e:[]).map(e=>String(e&&e.workflow_version_id||``).trim()).filter(Boolean))];t.length!==0&&await Promise.all(t.map(e=>this.fetchWorkflowVersion(e)))}auditEntryWorkflow(e){let t=String(e&&e.workflow_version_id||``).trim();return t?this.workflowVersionByID(t):null}},Y5=6;function X5(e){if(typeof e!=`string`)return null;try{return JSON.parse(e)}catch{return null}}function Z5(e,t=0,n=null){let r=String(e||``).trim();if(!r)return``;if(t>Y5)return r;let i=X5(r);return i==null?r:Q5(i,t+1,n)||n&&n(i)||r}function Q5(e,t=0,n=null,r=null){if(e==null||t>Y5)return``;if(typeof e==`string`){let i=X5(e.trim());return i==null?``:Q5(i,t+1,n,r)}if(typeof e!=`object`)return``;let i=r||new Set;if(i.has(e))return``;if(i.add(e),Array.isArray(e)){for(let r=0;r=400||uHe(t&&t.response_body)}function fHe(e){let t=e&&e.data?e.data:null;return t?cHe(t.error_message)||(dHe(e,t)?Q5(t.response_body,0):``):``}function $5(e){if(e==null||String(e).trim()===``)return null;let t=Number(e);return!Number.isInteger(t)||t<0?null:t}function pHe(e){return $5(e)===null?``:e7(e)+t7(e)+`.`}function e7(e){let t=$5(e);return t===null?``:t===0?yse():Sse()}function t7(e){let t=$5(e);return t===null?``:t===0?Tse():Ose({count:t})}function mHe({dateQuery:e,limit:t,offset:n,search:r,method:i,statusCode:a,stream:o}){let s=e;return s+=`&limit=`+t+`&offset=`+n,r&&(s+=`&search=`+encodeURIComponent(r)),i&&(s+=`&method=`+encodeURIComponent(i)),a&&(s+=`&status_code=`+encodeURIComponent(a)),o&&(s+=`&stream=`+encodeURIComponent(o)),s}function hHe({sessionId:e,limit:t}){return`session_id=`+encodeURIComponent(e)+`&limit=`+(t||100)+`&offset=0`}function n7(e){return String(e&&e.session_id||``).trim()}function r7(e){let t=Number(e&&e.session_count);return Number.isFinite(t)&&t>1?t:1}function gHe(e){return!!n7(e)&&r7(e)>1}function _He(e){return{entries:(Array.isArray(e&&e.sessions)?e.sessions:[]).filter(e=>e&&e.latest).map(e=>({...e.latest,session_count:Math.max(1,Number(e.request_count)||1)})),total:Number(e&&e.total||0),limit:Number(e&&e.limit||25),offset:Number(e&&e.offset||0)}}function vHe(e,t,n){let r=new Set((Array.isArray(n)?n:[]).flatMap(e=>s7(e))),i=(Array.isArray(t)?t:[]).filter(e=>!s7(e).some(e=>r.has(e))),a=new Set([...r,...i.flatMap(e=>s7(e))]),o=(e&&Array.isArray(e.entries)?e.entries:[]).filter(e=>e&&e._live&&!s7(e).some(e=>a.has(e)));return{entries:[...o,...i],preservedCount:o.length}}function i7(e,t){let n=e||{};if(!t)return n;if(n[t]){let e={...n};return delete e[t],e}return{...n,[t]:!0}}function a7(e,t){let n=e||{},r=new Set((Array.isArray(t)?t:[]).map(e=>n7(e)).filter(Boolean)),i={},a=!1;return Object.keys(n).forEach(e=>{if(r.has(e)){i[e]=n[e];return}a=!0}),a?i:n}function o7(e){return String(e&&e.id||``).trim()}function s7(e){if(!e)return[];let t=[],n=String(e.id||``).trim(),r=String(e.request_id||``).trim();return n&&t.push(`id:`+n),r&&t.push(`request:`+r),t}function c7(e){return!!(e&&e._live&&e._live_pending&&!e._audit_flushed)}function yHe(e){let t=e&&e.customStartDate,n=e&&e.customEndDate;if(!t&&!n)return!0;let r=new Date;if(t){let e=new Date(t);if(e.setHours(0,0,0,0),Number.isFinite(e.getTime())&&re)return!1}return!0}function l7(e,t){return e&&Number(e.offset||0)===0&&!(t&&t.search)&&!(t&&t.method)&&!(t&&t.statusCode)&&!(t&&t.stream)&&yHe(t)}function bHe(e,t,n){let r=e&&typeof e==`object`?{...e}:{entries:[],total:0,limit:25,offset:0},i=Array.isArray(r.entries)?r.entries:[];if(r.entries=i,!l7(r,n))return r;let a=(Array.isArray(t)?t:[]).filter(e=>c7(e));if(a.length===0)return r;let o=new Set(i.flatMap(e=>s7(e))),s=[];return a.forEach(e=>{let t=s7(e);t.length!==0&&(t.some(e=>o.has(e))||(t.forEach(e=>o.add(e)),s.push(e)))}),s.length===0?r:(r.entries=[...s,...i].slice(0,r.limit||25),r.total=Number(r.total||0)+s.length,r)}function xHe(e,t,n){let r=e&&typeof e==`object`?{...e}:{entries:[],total:0,limit:25,offset:0},i=Array.isArray(r.entries)?r.entries:[];if(r.entries=i,!l7(r,n))return r;let a=(Array.isArray(t)?t:[]).filter(e=>c7(e));if(a.length===0)return r;let o=new Set(i.flatMap(e=>s7(e))),s=new Map;i.forEach((e,t)=>{let n=n7(e);n&&!s.has(n)&&s.set(n,t)});let c=[],l=i;return a.forEach(e=>{let t=s7(e);if(t.length===0||t.some(e=>o.has(e)))return;let n=n7(e);if(n&&s.has(n)){let r=s.get(n);l===i&&(l=[...i]);let a=r7(l[r]),c=Number(e&&e.session_count),u=Number.isFinite(c)&&c>1?c:null;l[r]={...e,session_count:u===null?a+1:Math.max(a,u)},t.forEach(e=>o.add(e));return}t.forEach(e=>o.add(e)),c.push(e)}),r.entries=[...c,...l].slice(0,r.limit||25),r.total=Number(r.total||0)+c.length,r}function SHe(e,t){let n=o7(t),r=e||{};return n?r[n]?{}:{[n]:!0}:r}function CHe(e,t){let n=e||{},r=new Set((Array.isArray(t)?t:[]).map(e=>o7(e)).filter(Boolean)),i={},a=!1;return Object.keys(n).forEach(e=>{if(r.has(e)){i[e]=!0;return}a=!0}),a?i:n}function wHe(e){if(e==null)return`-`;let t=Number(e);return Number.isFinite(t)?t<=0?`pending`:t<1e6?Math.round(t/1e3)+` µs`:t<1e9?(t/1e6).toFixed(2)+` ms`:(t/1e9).toFixed(2)+` s`:`-`}function u7(e){if(e==null||e===``)return`status-unknown`;let t=Number(e);return Number.isFinite(t)?t>=500?`status-error`:t>=400?`status-warning`:t>=300?`status-neutral`:`status-success`:`status-unknown`}function d7(e){if(!e||!e._live||!e._live_pending)return!1;let t=String(e._live_state||``).trim();if(t===`audit.completed`||t===`audit.flushed`||t===`audit.detail`)return!1;if(e._response_partial)return!0;if(e.status_code!==null&&e.status_code!==void 0&&e.status_code!==``||Number(e.duration_ns||0)>0||e.error_type||e.error_message)return!1;let n=e.data||{};return!(n.response_headers||n.response_body||n.error_message)}function f7(e){let t=e&&e.data&&e.data.failover;return!t||typeof t!=`object`||Array.isArray(t)?null:String(t.target_model||t.targetModel||``).trim()||null}function p7(e){return(e&&e.data&&Array.isArray(e.data.attempts)?e.data.attempts:[]).map((e,t)=>({...e,seq:Number(e&&e.seq||t+1)})).sort((e,t)=>e.seq-t.seq)}function m7(e){let t=p7(e);return t.length>1||t.some(e=>!(e&&e.success))}function THe(e){if(!e)return`-`;let t=e.status_code||e.status;return t?String(t):e.success?`ok`:`error`}function h7(e){return String(e&&e.kind||``).trim()||`attempt`}function EHe(e){if(!e)return`-`;let t=String(e.provider_name||``).trim(),n=String(e.provider_type||e.provider||``).trim();return t&&n&&t!==n?t+` (`+n+`)`:t||n||`-`}function DHe(e){return String(e&&e.model||``).trim()||`-`}function OHe(e){let t=p7(e);return t.length>1||t.some(e=>!(e&&e.success))?t:[]}function kHe(e){return p7(e).length+`×`}function AHe(e){let t=p7(e),n=t.filter(e=>!(e&&e.success)).length;return n>0?Jle({count:t.length,failed:n}):Gle({count:t.length})}function jHe(e){if(!e)return``;let t=[`#`+Number(e.seq||0)],n=h7(e);n&&n!==`attempt`&&t.push(n),t.push(THe(e));let r=EHe(e);r&&r!==`-`&&t.push(r);let i=DHe(e);return i&&i!==`-`&&t.push(i),t.push(e.success?Zle():eue()),t.join(` · `)}function MHe(e,t){if(!t)return null;if(t.success){let t=e&&e.data?e.data:null;return t&&t.response_body!=null?t.response_body:null}return t.response_body!=null&&t.response_body!==``?t.response_body:null}function NHe(e){if(!e||e.success)return``;let t=String(e.error_message||``).trim(),n=String(e.error_code||``).trim(),r=String(e.error_type||``).trim();return t&&n?n+`: `+t:t||n||r||Hle()}function PHe(e,t){if(!t)return null;if(t.success){let t=e&&e.data?e.data:null;return t?t.response_headers:null}return t.response_headers||null}function FHe(e){let t=Number(e&&e.status_code);return Number.isFinite(t)&&t>0?t:null}function IHe(e,t){let n=!!(t&&t.success),r=e&&e.data?e.data:null,i=MHe(e,t),a=PHe(e,t),o=NHe(t),s=i!=null&&i!==``,c=h7(t),l=p7(e).length<=1;return{title:Lo(),direction:`response`,seq:l?0:Number(t&&t.seq||0),kind:l||c===`attempt`?``:c,statusCode:l?null:FHe(t),layout:`split`,entry:e,copyHeaders:a,copyBody:i,showErrorMessage:!!o,errorMessage:o,showHeaders:!!a,headers:a,showBody:s,body:i,showEmpty:!o&&!s&&!a,emptyMessage:rue(),showTooLarge:!!(n&&r&&r.response_body_too_big_to_handle),tooLargeMessage:zo()}}function g7(e){return e&&e.data&&Array.isArray(e.data.request_revisions)?e.data.request_revisions:[]}function _7(e){return g7(e).filter(e=>!(e&&e.no_change))}function LHe(e){return g7(e).filter(e=>e&&e.no_change).map(e=>{let t=String(e.rewriter||`rewriter`);return{id:`step-`+Number(e.seq||0),rewriter:t,label:Tue({rewriter:t}),title:Oue({rewriter:t})}})}function RHe(e){let t=Number(e&&e.bytes_before),n=Number(e&&e.bytes_after);if(!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n>=t)return``;let r=(1-n/t)*100;return`-`+(r>=10?String(Math.round(r)):r.toFixed(1))+`%`}function zHe(e,t){let n=t&&t.body,r=n!=null&&n!==``,i=_7(e).length<=1,a={rewriter:t&&t.rewriter||``,bytes:Number(t&&t.bytes_before||0)+` → `+Number(t&&t.bytes_after||0)};return t&&t.detail!=null&&(a.detail=t.detail),{title:Ile(),direction:`request`,seq:i?0:Number(t&&t.seq||0),kind:t&&t.rewriter?String(t.rewriter):``,savingsLabel:RHe(t),layout:`split`,entry:e,copyHeaders:a,copyBody:n,showErrorMessage:!1,errorMessage:null,showHeaders:!0,headers:a,headersTitle:zle(),showBody:r,body:n,showEmpty:!1,emptyMessage:``,showTooLarge:!r,tooLargeMessage:Sue()}}function v7(e){let t=e&&e.usage;return!t||typeof t!=`object`?null:t}function BHe(e){let t=v7(e);return Number(t&&t.cached_input_tokens||0)>0}function VHe(e){let t=v7(e),n=Number(t&&t.input_tokens||0),r=Number(t&&t.cached_input_tokens||0);return!Number.isFinite(n)||n<=0||!Number.isFinite(r)||r<=0?0:Math.max(0,Math.min(100,r/n*100))}function HHe(e){let t=v7(e);if(!t)return``;let n=Number(t.input_tokens||0),r=Number(t.cached_input_tokens||0);return n<=0?jue({count:uZ(r)}):Pue({percent:VHe(e).toFixed(1)})}function UHe(e){return BHe(e)?HHe(e):``}function WHe(e,t){let n=v7(e);if(!n||!e||!e.data||!e.data.request_body)return null;let r=Number(n.estimated_cached_characters||0);if(!Number.isFinite(r)||r<=0||typeof t!=`function`)return null;let i=t(e.data.request_body);return!Array.isArray(i)||i.length===0?null:{characters:r,segments:i}}function GHe(e,t){let n=e&&e.data?e.data:null,r=!n||!n.request_headers&&!n.request_body,i=r&&d7(e);return{title:jle(),direction:`request`,layout:`split`,entry:e,copyHeaders:n&&n.request_headers,copyBody:n&&n.request_body,showErrorMessage:!1,errorMessage:null,showHeaders:!!(n&&n.request_headers),headers:n&&n.request_headers,showBody:!!(n&&n.request_body),body:n&&n.request_body,bodyCacheRatioLabel:UHe(e),promptCacheHighlight:WHe(e,t),noChangeSteps:LHe(e),showEmpty:r&&!i,emptyMessage:oue(),showPending:i,pendingMessage:Ro(),showTooLarge:!!(n&&n.request_body_too_big_to_handle),tooLargeMessage:due()}}function KHe(e){let t=e&&e.data?e.data:null,n=fHe(e),r=!t||!n&&!t.response_headers&&!t.response_body,i=r&&d7(e);return{title:Lo(),direction:`response`,layout:`split`,entry:e,copyHeaders:t&&t.response_headers,copyBody:t&&t.response_body,showErrorMessage:!!n,errorMessage:n,showHeaders:!!(t&&t.response_headers),headers:t&&t.response_headers,showBody:!!(t&&t.response_body),body:t&&t.response_body,streaming:!!(e&&e._response_partial&&t&&t.response_body)&&d7(e),showEmpty:r&&!i,emptyMessage:mue(),showPending:i,pendingMessage:_ue(),showTooLarge:!!(t&&t.response_body_too_big_to_handle),tooLargeMessage:zo()}}function y7(e,t){let n=[{id:`request`,pane:GHe(e,t)}];return _7(e).forEach(t=>{n.push({id:`revision-`+Number(t&&t.seq||0),pane:zHe(e,t)})}),m7(e)?p7(e).forEach(t=>{n.push({id:`response-`+Number(t&&t.seq||0),pane:IHe(e,t)})}):n.push({id:`response`,pane:KHe(e)}),n}function qHe(e){if(!m7(e))return`response`;let t=p7(e),n=null;return t.forEach(e=>{e&&e.success&&(n=e)}),n||=t[t.length-1],n?`response-`+Number(n.seq||0):`request`}function JHe(e,t,n){return e&&(Array.isArray(n)?n:y7(t)).some(t=>t.id===e)?e:qHe(t)}function YHe(e,t,n){if(!t||!t.length)return null;let r=t.indexOf(n);r<0&&(r=0);let i;switch(e){case`ArrowRight`:case`ArrowDown`:i=(r+1)%t.length;break;case`ArrowLeft`:case`ArrowUp`:i=(r-1+t.length)%t.length;break;case`Home`:i=0;break;case`End`:i=t.length-1;break;default:return null}return t[i]}var XHe=100;function b7(){return{entries:[],total:0,limit:25,offset:0}}var x7=new class{#e=j(Xt({}));get auditExpandedEntries(){return L(this.#e)}set auditExpandedEntries(e){M(this.#e,e,!0)}#t=j(Xt({}));get auditExpandedThreads(){return L(this.#t)}set auditExpandedThreads(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return L(this.#n)}set loading(e){M(this.#n,e,!0)}auditFetchToken=0;get auditLog(){return _3.auditLog}set auditLog(e){_3.auditLog=e}get auditSearch(){return _3.auditSearch}set auditSearch(e){_3.auditSearch=e}get auditMethod(){return _3.auditMethod}set auditMethod(e){_3.auditMethod=e}get auditStatusCode(){return _3.auditStatusCode}set auditStatusCode(e){_3.auditStatusCode=e}get auditStream(){return _3.auditStream}set auditStream(e){_3.auditStream=e}get auditGroupSessions(){return _3.auditGroupSessions}liveFilters(){return{search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream,customStartDate:kZ.customStartDate,customEndDate:kZ.customEndDate}}toggleAuditGroupSessions(){_3.auditGroupSessions=!_3.auditGroupSessions,Ki(`gomodel_audit_group_sessions`,_3.auditGroupSessions),this.auditExpandedThreads={},_3.auditThreadChildren={},this.fetchAuditLog(!0)}async fetchAuditLog(e){let t=++this.auditFetchToken;this.loading=!0;try{e&&(this.auditLog.offset=0);let n=this.auditGroupSessions,r=mHe({dateQuery:kZ.queryStr(),limit:this.auditLog.limit,offset:this.auditLog.offset,search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream}),i=await JX((n?`/admin/audit/sessions?`:`/admin/audit/log?`)+r,{label:`audit log`});if(i.stale||t!==this.auditFetchToken)return;if(!i.ok){this.auditLog=b7();return}let a=n?_He(i.data):i.data,o=(n?xHe:bHe)(a,this.auditLog&&this.auditLog.entries,this.liveFilters());Array.isArray(o.entries)||(o.entries=[]),o.entries=_3.upsertAuditRecords(o.entries,`audit.list`),this.auditLog=o,this.auditExpandedThreads=a7(this.auditExpandedThreads,o.entries),_3.auditThreadChildren=a7(_3.auditThreadChildren,o.entries);let s=[...o.entries,...this.loadedThreadChildren()];this.auditExpandedEntries=CHe(this.auditExpandedEntries,s);try{await J5.prefetchAuditWorkflows(s)}catch(e){console.error(`Failed to prefetch audit workflows:`,e)}}catch(e){if(console.error(`Failed to fetch audit log:`,e),t!==this.auditFetchToken)return;this.auditLog=b7()}finally{t===this.auditFetchToken&&(this.loading=!1)}}loadedThreadChildren(){let e=_3.auditThreadChildren||{};return Object.keys(e).flatMap(t=>Array.isArray(e[t]&&e[t].entries)?e[t].entries:[])}isThreadExpanded(e){return!!(e&&this.auditExpandedThreads[e])}threadChildren(e){return e&&_3.auditThreadChildren[e]||null}async toggleThread(e){let t=n7(e);if(!t)return;let n=!this.isThreadExpanded(t);this.auditExpandedThreads=i7(this.auditExpandedThreads,t);let r=_3.auditThreadChildren[t];n&&!(r&&(r.loaded||r.loading))&&await this.fetchThreadEntries(e)}async fetchThreadEntries(e){let t=n7(e);if(!t)return;let n=_3.auditThreadChildren[t];_3.auditThreadChildren={..._3.auditThreadChildren,[t]:{loading:!0,loaded:!1,entries:n&&Array.isArray(n.entries)?n.entries:[],total:Number(n&&n.total||0)}};let r=()=>{let e={..._3.auditThreadChildren},n=e[t],r=n&&Array.isArray(n.entries)?n.entries:[];r.length>0?e[t]={loading:!1,loaded:!1,entries:r,total:r.length}:(delete e[t],this.auditExpandedThreads[t]&&(this.auditExpandedThreads=i7(this.auditExpandedThreads,t))),_3.auditThreadChildren=e};try{let n=await JX(`/admin/audit/log?`+hHe({sessionId:t,limit:XHe}),{label:`audit session`});if(n.stale){r();return}if(!n.ok)throw Error(`audit session fetch failed`);let i=_3.auditThreadChildren[t],a=this.auditLog.entries.find(e=>n7(e)===t),o=vHe(i,n.data.entries,a?[a]:[e]);o.entries=_3.upsertAuditRecords(o.entries,`audit.thread`),_3.auditThreadChildren={..._3.auditThreadChildren,[t]:{loading:!1,loaded:!0,entries:o.entries,total:Number(n.data.total||0)+o.preservedCount}}}catch(e){console.error(`Failed to fetch audit session entries:`,e),r()}}clearAuditFilters(){this.auditSearch=``,this.auditMethod=``,this.auditStatusCode=``,this.auditStream=``,this.fetchAuditLog(!0)}auditLogNextPage(){this.auditLog.offset+this.auditLog.limit0&&(this.auditLog.offset=Math.max(0,this.auditLog.offset-this.auditLog.limit),this.fetchAuditLog(!1))}isAuditEntryExpanded(e){let t=o7(e);return t?!!(this.auditExpandedEntries&&this.auditExpandedEntries[t]):!1}toggleAuditEntryExpanded(e){this.auditExpandedEntries=SHe(this.auditExpandedEntries,e);let t=this.isAuditEntryExpanded(e);return t&&typeof _3.fetchAuditEntryDetail==`function`&&_3.fetchAuditEntryDetail(e),t}expandAuditEntry(e){this.isAuditEntryExpanded(e)||this.toggleAuditEntryExpanded(e)}};_3.fetchAuditLog=e=>x7.fetchAuditLog(e),_3.isAuditEntryExpanded=e=>x7.isAuditEntryExpanded(e);var ZHe=z(`
                    `);function QHe(e,t){O(t,!0);let n=B3(()=>x7.fetchAuditLog(!0));hn(()=>n.cancel);var r=ZHe(),i=N(r),a=N(i);{let e=A(()=>Yse()),t=A(()=>Qse());z3(a,{id:`audit-filter-search`,get placeholder(){return L(e)},get label(){return L(t)},get oninput(){return n},get value(){return x7.auditSearch},set value(e){x7.auditSearch=e}})}D(i);var o=F(i,2),s=N(o),c=N(s),l=N(c,!0);D(c),c.value=c.__value=``;var u=F(c);u.value=u.__value=`GET`;var d=F(u);d.value=d.__value=`POST`;var f=F(d);f.value=f.__value=`PUT`;var p=F(f);p.value=p.__value=`PATCH`;var m=F(p);m.value=m.__value=`DELETE`,D(s);var h=F(s,2),g=N(h),_=N(g,!0);D(g),g.value=g.__value=``;var v=F(g);v.value=v.__value=`200`;var y=F(v);y.value=y.__value=`201`;var b=F(y);b.value=b.__value=`400`;var x=F(b);x.value=x.__value=`401`;var S=F(x);S.value=S.__value=`403`;var C=F(S);C.value=C.__value=`404`;var w=F(C);w.value=w.__value=`429`;var T=F(w);T.value=T.__value=`500`;var ee=F(T);ee.value=ee.__value=`502`;var E=F(ee);E.value=E.__value=`503`;var te=F(E);te.value=te.__value=`504`,D(h);var ne=F(h,2),re=N(ne),ie=N(re,!0);D(re),re.value=re.__value=``;var ae=F(re),oe=N(ae,!0);D(ae),ae.value=ae.__value=`true`;var se=F(ae),ce=N(se,!0);D(se),se.value=se.__value=`false`,D(ne);var le=F(ne,2),ue=N(le);q(ue,{get icon(){return bX},class:`table-icon-svg`});var de=F(ue,2),fe=N(de,!0);D(de),D(le),D(o),D(r),I((e,t,n,r,i,a,o,c,u)=>{G(s,`aria-label`,e),V(l,t),G(h,`aria-label`,n),V(_,r),G(ne,`aria-label`,i),V(ie,a),V(oe,o),V(ce,c),V(fe,u)},[()=>tce(),()=>ice(),()=>sce(),()=>uce(),()=>pce(),()=>gce(),()=>yce(),()=>Sce(),()=>qoe()]),R(`change`,s,()=>x7.fetchAuditLog(!0)),vi(s,()=>x7.auditMethod,e=>x7.auditMethod=e),R(`change`,h,()=>x7.fetchAuditLog(!0)),vi(h,()=>x7.auditStatusCode,e=>x7.auditStatusCode=e),R(`change`,ne,()=>x7.fetchAuditLog(!0)),vi(ne,()=>x7.auditStream,e=>x7.auditStream=e),R(`click`,le,()=>x7.clearAuditFilters()),B(e,r),k()}Sr([`change`,`click`]);var S7=z(` `),$He=z(` `),eUe=z(` `);function tUe(e,t){O(t,!0);let n=A(()=>_3.auditLivePauseReason()),r=A(()=>_3.liveLogsStreaming&&!L(n));var i=kr(),a=P(i),o=e=>{var t=eUe(),i=N(t);let a;var o=F(i,2),s=e=>{var t=S7(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Tce()]),B(e,t)},c=e=>{var t=S7(),r=N(t,!0);D(t),I(e=>V(r,e),[()=>lFe(L(n))]),B(e,t)},l=e=>{var t=$He(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Oce()]),B(e,t)};H(o,e=>{_3.liveLogsStreaming?L(n)?e(c,1):e(l,-1):e(s)}),D(t),I(()=>a=W(i,1,`live-dot svelte-tve6yv`,null,a,{"is-streaming":L(r)})),B(e,t)},s=A(()=>ZX.liveLogsVisible());H(a,e=>{L(s)&&e(o)}),B(e,i),k()}var nUe=z(``),rUe=z(` `),iUe=z(``);function aUe(e,t){O(t,!0);let n=A(()=>[{key:`provider`,text:vZ(t.entry)||`-`},{key:`model`,text:t.entry.requested_model||t.entry.model||`-`,mono:!0},{key:`user_path`,text:t.entry.user_path,mono:!0},{key:`session_id`,text:t.entry.session_id&&`session: `+t.entry.session_id,mono:!0},{key:`request_id`,text:`request_id: `+(t.entry.request_id||`-`),mono:!0},{key:`ip`,text:t.entry.client_ip&&`ip: `+t.entry.client_ip,mono:!0},{key:`auth_key_id`,text:t.entry.auth_key_id&&`auth_key_id: `+t.entry.auth_key_id,mono:!0},{key:`alias`,text:t.entry.alias_used&&`alias`,class:`audit-alias-badge`},{key:`resolved`,text:t.entry.alias_used&&t.entry.resolved_model&&`resolved: `+bZ(t.entry),mono:!0},{key:`failover`,text:f7(t.entry)&&`failover: `+f7(t.entry),mono:!0},{key:`stream`,text:t.entry.stream&&`stream`},{key:`error_type`,text:t.entry.error_type}].filter(e=>!!e.text));var r=iUe(),i=N(r),a=N(i,!0);D(i);var o=F(i,2);U(o,21,()=>L(n),e=>e.key,(e,n)=>{var r=kr(),i=P(r),a=e=>{var r=nUe(),i=N(r,!0);D(r),I(e=>{G(r,`title`,e),V(i,L(n).text)},[()=>Io()]),R(`click`,r,()=>X.filterBySession(t.entry.session_id,t.entry.user_path)),B(e,r)},o=e=>{var t=rUe(),r=N(t,!0);D(t),I(()=>{W(t,1,ui([`provider-badge`,L(n).class,{mono:L(n).mono}]),`svelte-hyopt0`),V(r,L(n).text)}),B(e,t)};H(i,e=>{L(n).key===`session_id`?e(a):e(o,-1)}),B(e,r)}),D(o),D(r),I(e=>V(a,e),[()=>nle()]),B(e,r),k()}Sr([`click`]);var oUe=z(``),sUe=z(` `);function cUe(e,t){O(t,!0);let n=A(()=>OHe(t.entry)),r=A(()=>L(n).length>0?AHe(t.entry):``),i=A(()=>L(n).length>0?kHe(t.entry):``);var a=kr(),o=P(a),s=e=>{var a=sUe(),o=N(a);U(o,21,()=>L(n),e=>t.entry.id+`-pip-`+e.seq,(e,t)=>{var n=oUe();let r;I(e=>{r=W(n,1,`audit-attempt-pip svelte-1eu22xn`,null,r,{"audit-attempt-success":!!(L(t)&&L(t).success),"audit-attempt-error":!(L(t)&&L(t).success)}),G(n,`title`,e)},[()=>jHe(L(t))]),B(e,n)}),D(o);var s=F(o,2),c=N(s,!0);D(s),D(a),I(()=>{G(a,`title`,L(r)),G(a,`aria-label`,L(r)),V(c,L(i))}),B(e,a)};H(o,e=>{L(n).length>0&&e(s)}),B(e,a),k()}var lUe=new Set([`instructions`,`messages`,`input`,`previous_response_id`,`choices`,`output`]);function uUe(e){if(!e||typeof e!=`object`)return``;let t=String(e.type||``).toLowerCase();if(t===`image`||t===`image_url`||t===`input_image`||t===`output_image`)return Vfe();if(t===`audio`||t===`input_audio`||t===`output_audio`)return Wfe();if(t===`file`||t===`input_file`||t===`output_file`){let t=String(e.filename||e.name||``).trim();return t?Xfe({name:t}):qfe()}return typeof e.refusal==`string`?e.refusal:``}function C7(e){if(e==null)return``;if(typeof e==`string`)return e.trim();if(Array.isArray(e))return e.map(e=>typeof e==`string`?e:!e||typeof e!=`object`?``:typeof e.text==`string`?e.text:typeof e.output_text==`string`?e.output_text:uUe(e)).filter(Boolean).join(` +`).trim();if(typeof e==`object`){if(typeof e.text==`string`)return e.text.trim();try{return JSON.stringify(e,null,2)}catch{return``}}return String(e).trim()}function w7(e){return!e||typeof e!=`object`?``:C7(e.content)||(typeof e.refusal==`string`?e.refusal.trim():``)}function T7(e){if(e==null)return[];if(typeof e==`string`)return e?[e]:[];if(Array.isArray(e))return e.flatMap(e=>typeof e==`string`?e?[e]:[]:!e||typeof e!=`object`?[]:typeof e.text==`string`?e.text?[e.text]:[]:typeof e.output_text==`string`&&e.output_text?[e.output_text]:[]);if(typeof e==`object`)return typeof e.text==`string`&&e.text?[e.text]:[];let t=String(e);return t?[t]:[]}function E7(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(E7);if(typeof e==`object`)return Object.entries(e).flatMap(([e,t])=>[e,...E7(t)]);let t=String(e);return t?[t]:[]}function D7(e){return V7(e).flatMap(e=>[...e.name?[String(e.name)]:[],...E7(e.arguments)])}function O7(e){return Array.isArray(e)?e.flatMap(e=>e&&typeof e==`object`&&e.type===`tool_use`?D7([e]):T7(e)):T7(e)}function dUe(e){let t=e&&e.usage?e.usage.estimated_cached_characters:null;if(t==null)return null;let n=Number(t);return Number.isFinite(n)&&n>0?Math.floor(n):0}function fUe(e,t){if(!e)return null;let n=(Array.isArray(t)?t:[]).reduce((e,t)=>e+String(t||``).length,0),r=Math.min(String(e).length,n);return r>0?{total:r}:null}function pUe(e){let t=e&&e.arguments!==void 0?e.arguments:``,n=``;if(typeof t==`string`)n=t;else try{n=JSON.stringify(t)}catch{n=String(t)}return(String(e&&e.name||``)+`(`+n+`)`).length}function k7(e){return{characters:(Array.isArray(e)?e:[]).map(pUe)}}function mUe(e,t){let n=Math.max(0,Number(t||0));return e.map(e=>{if(!e||e.role===`error`)return e;let t=Math.max(0,Number(e._promptTextCharacters||0)),r=Math.min(n,t);n-=r;let i=0;(Array.isArray(e._toolPromptCharacters)?e._toolPromptCharacters:[]).forEach(e=>{let t=Math.max(0,Number(e||0)),r=Math.min(n,t);n-=r,i+=r});let a=t+(e._toolPromptCharacters||[]).reduce((e,t)=>e+Math.max(0,Number(t||0)),0);return{...e,promptCacheRatio:a>0?(r+i)/a:0}})}function hUe(e){if(e==null)return[];if(typeof e==`string`){let t=e.trim();return t?[{role:`user`,text:t}]:[]}if(!Array.isArray(e)){let t=C7(e);return t?[{role:`user`,text:t}]:[]}return e.map(e=>{if(!e||typeof e!=`object`)return null;let t=String(e.role||`user`).toLowerCase(),n=C7(e.content);return n?{role:t,text:n}:null}).filter(Boolean)}function gUe(e){return w7(e)}function _Ue(e){if(!e||typeof e!=`object`)return[];let t=[];return t.push(...T7(e.instructions)),Array.isArray(e.messages)&&e.messages.forEach(e=>{!e||typeof e!=`object`||(t.push(...O7(e.content)),t.push(...D7(e.tool_calls)))}),typeof e.input==`string`?t.push(e.input):Array.isArray(e.input)?e.input.forEach(e=>{if(!(!e||typeof e!=`object`)){if(e.type===`function_call`||e.type===`tool_use`){t.push(...D7([e]));return}t.push(...O7(e.content)),typeof e.text==`string`&&t.push(e.text)}}):e.input&&typeof e.input==`object`&&(t.push(...T7(e.input.content)),typeof e.input.text==`string`&&t.push(e.input.text)),t.map(e=>String(e||``)).filter(e=>e.length>0)}var A7=e=>C7(e);function vUe(e){if(!e||!e.data)return``;let t=Q5(e.data.response_body,0,A7);if(t)return t;let n=e.data.error_message;if(n==null)return``;if(typeof n==`string`){let e=n.trim();return e?Q5(X5(e),0,A7)||e:``}return Q5(n,0,A7)||C7(n)}function yUe(e){return Array.isArray(e)?e.some(e=>!e||typeof e!=`object`?!1:e.type===`message`||e.role===`assistant`||e.role===`user`||e.role===`system`?!0:Array.isArray(e.content)?e.content.some(e=>!e||typeof e!=`object`?!1:typeof e.text==`string`||e.type===`output_text`||e.type===`input_text`):!1):!1}function bUe(e){if(!e)return!1;let t=String(e).toLowerCase();return t===`/v1/embeddings`||t===`/v1/embeddings/`||t.startsWith(`/v1/embeddings?`)||t.startsWith(`/v1/embeddings/`)}function xUe(e){return e?!!j7(e):!1}function SUe(e){let t=String(e||``).trim().split(`?`)[0].replace(/\/+$/,``).toLowerCase();return t.startsWith(`/v1/`)?t.slice(3):t}function j7(e){switch(SUe(e)){case`/chat/completions`:return`chat`;case`/responses`:return`responses`;case`/messages`:return`messages`;default:return``}}function M7(e){if(!e||typeof e!=`object`)return null;try{return JSON.parse(JSON.stringify(e))}catch{return null}}function N7(e,t){if(!t||typeof t!=`object`)return;let n=e[e.length-1];try{if(n&&JSON.stringify(n)===JSON.stringify(t))return}catch{}e.push(t)}function CUe(e){let t=j7(e&&e.path),n=e&&e.data&&e.data.request_body;return!t||!n||typeof n!=`object`?!1:t!==`responses`||(e.data&&e.data.response_body&&typeof e.data.response_body.id==`string`?e.data.response_body.id.trim():``)!==``||G7(n)!==``}function wUe(e,t){let n=String(t||``).trim(),r=j7(e&&e.path),i=M7(e&&e.data&&e.data.request_body);if(!n||!r||!i)return null;let a=e&&e.data?e.data.response_body:null;if(r===`responses`){let e=a&&typeof a.id==`string`?a.id.trim():``,t=G7(i);return!e&&!t?null:(i.input=n,e&&!t?i.previous_response_id=e:delete i.previous_response_id,i)}let o=Array.isArray(i.messages)?i.messages:[];if(r===`chat`){let e=a&&Array.isArray(a.choices)?a.choices[0]:null;e&&e.message&&N7(o,M7(e.message)),o.push({role:`user`,content:n})}else a&&a.content!==void 0&&N7(o,{role:String(a.role||`assistant`),content:M7(a.content)||a.content}),o.push({role:`user`,content:n});return i.messages=o,i}var TUe=new Set(`authorization.proxy-authorization.cookie.content-type.content-length.host.accept.connection.accept-encoding.content-encoding.transfer-encoding.user-agent.date.expect.upgrade.via.te.trailer.keep-alive.origin.referer.forwarded.x-real-ip.traceparent.tracestate.x-request-id.idempotency-key.x-idempotency-key.x-gomodel-timezone.x-gomodel-interaction-parent`.split(`.`));function EUe(e,t,n=``){let r=e&&e.data&&e.data.request_headers,i={};return r&&typeof r==`object`&&Object.keys(r).forEach(e=>{let t=String(e).toLowerCase(),n=String(r[e]==null?``:r[e]);!e||!n||n===`[REDACTED]`||TUe.has(t)||t.startsWith(`sec-`)||t.startsWith(`cf-`)||t.startsWith(`x-forwarded-`)||(i[e]=n)}),i[`X-GoModel-Interaction-Parent`]=String(t||e&&e.id||``).trim(),String(n||``).trim()&&(i[`X-Request-ID`]=String(n).trim()),i}function DUe(e,t){let n=String(t||``).trim();return!n||!Array.isArray(e)?null:e.find(e=>String(e&&e.request_id||``).trim()===n)||null}function OUe(e,t,n,r,i){let a=Array.isArray(e)?e:[],o=String(i&&i.id||``).trim(),s=String(i&&i.request_id||``).trim(),c=String(i&&i.session_id||``).trim(),l=String(r||``).trim(),u=P7(i),d=a.some(e=>o&&String(e&&e.id||``).trim()===o||s&&String(e&&e.request_id||``).trim()===s),f=!!l&&s===l,p=!!n&&c===String(n).trim(),m=!!u&&(u===String(t||``).trim()||a.some(e=>String(e&&e.id||``).trim()===u)),h=d||f||!l&&(p||m);return{accepted:h,submittedChild:f,followUpRequestID:h&&f&&o?``:l}}function P7(e){let t=e&&e.data&&e.data.request_headers;if(!t||typeof t!=`object`)return``;let n=Object.keys(t).find(e=>e.toLowerCase()===`x-gomodel-interaction-parent`);return n?String(t[n]||``).trim():``}function kUe(e,t){return!Array.isArray(e)||!t?null:e.find(e=>String(e&&e.id||``)===String(t))||null}function F7(e){return!Array.isArray(e)||e.length===0?null:e.reduce((e,t)=>e?K7(t,e)>=0?t:e:t,null)}function AUe(e,t){let n=new Set(Array.isArray(t)?t.map(String):[]);return F7((Array.isArray(e)?e:[]).filter(e=>{let t=String(e&&e.id||``);return n.has(t)&&e&&e.data&&e.data.request_body!=null}))}function jUe(e,t){let n=F7(e);return!!n&&String(n.id||``)===String(t||``)}function MUe(e,t,n){return String(e||``).trim()===`audit.flushed`&&String(t||``).trim()!==``&&String(t||``).trim()===String(n||``).trim()}function I7(e,t){let n=Array.isArray(e)?e.filter(Boolean).map(String):[];return(Array.isArray(t)?t:[]).forEach(e=>{let t=String(e&&(e.id||e.request_id)||``).trim();t&&!n.includes(t)&&n.push(t)}),n}function NUe(e){if(e&&e.conversation_payload)return!0;let t=e&&e.data?e.data.request_body:null,n=e&&e.data?e.data.response_body:null,r=t&&(Array.isArray(t.messages)||t.input!==void 0||typeof t.instructions==`string`||typeof t.previous_response_id==`string`),i=n&&(Array.isArray(n.choices)||yUe(n.output));return!!(r||i)}function PUe(e){return!e||bUe(e.path)?!1:xUe(e.path)||NUe(e)}function L7(e){let t=0,n=!1,r=!1,i=String(e||``);for(let e=0;e0&&a+1`,`>`).replaceAll(`"`,`"`).replaceAll(`'`,`'`)}function LUe(e){return!!(e&&typeof e==`object`&&e.__audio__===!0)}function RUe(e){let t=Number(e||0);if(!Number.isFinite(t)||t<=0)return`0 B`;let n=[`B`,`KB`,`MB`,`GB`],r=0,i=t;for(;i>=1024&&r`
                    `+R7(t)+``+R7(BUe(e[t]))+`
                    `);return t.length?``:``}function HUe(e){let t=zUe(e.content_type),n=R7(t+` · `+RUe(e.bytes)),r=VUe(e.meta);if(e.stored&&e.encoding===`base64`&&e.data){let i=String(e.data).replace(/[^A-Za-z0-9+/=]/g,``);return`
                    `+n+`
                    `+r+`
                    `}let i=e.too_large?Lue():Bue();return`
                    `+n+`
                    `+R7(i)+`
                    `+r+`
                    `}function z7(e){try{return JSON.stringify(String(e)).slice(1,-1)}catch{return``}}function UUe(e){if(!e||typeof e!=`object`)return null;let t=Number(e.characters||0);if(!Number.isFinite(t)||t<=0)return null;let n=Array.isArray(e.segments)?e.segments.map(e=>String(e||``)).filter(Boolean):[];return n.length===0?null:{remaining:Math.floor(t),segments:n,segmentIndex:0}}function B7(e,t){if(!t||t.remaining<=0||t.segmentIndex>=t.segments.length)return R7(e);let n=``,r=0,i=0;for(;t.remaining>0&&t.segmentIndex`+R7(l)+``,r=s+l.length,i=s+o.length,t.remaining-=c,c>=a.length){t.segmentIndex++;continue}break}return n?n+R7(e.slice(r)):R7(e)}function WUe(e,t,n){let r=n&&typeof n.formatJSON==`function`?n.formatJSON:e=>String(e),i=n&&typeof n.canShowConversation==`function`?n.canShowConversation:()=>!1,a=UUe(n&&n.promptCacheHighlight),o=r(t);if(!o||o===`Not captured`)return R7(o);if(!i(e))return o.split(` +`).map(e=>B7(e,a)).join(` +`);let s=o.split(` +`),c=[],l=0;for(;lB7(e,a)).join(` +`);c.push(``+o+``),l=r+1;continue}c.push(B7(e,a)),l++}return c.join(` +`)}function GUe(e){let t=String(e||``).toLowerCase();return t===`system`||t===`developer`?{role:`system`,label:Cfe(),className:`role-system`}:t===`assistant`?{role:`assistant`,label:Efe(),className:`role-assistant`}:t===`error`?{role:`error`,label:kfe(),className:`role-error`}:t===`function_call`?{role:`function_call`,label:Mfe(),className:`role-function-call`}:t===`function_result`?{role:`function_result`,label:Ffe(),className:`role-function-result`}:{role:`user`,label:Rfe(),className:`role-user`}}function KUe(e,t,{timestamp:n,entryID:r,isAnchor:i,isAfterAnchor:a,index:o,toolCalls:s,functionName:c,functionCallID:l,promptCache:u,toolPromptCache:d}){let f=GUe(e),p=u&&Number.isFinite(Number(u.total))?Math.max(0,Number(u.total)):u===null?0:String(t||``).length,m=d&&Array.isArray(d.characters)?d.characters:k7(s).characters;return{uid:r+`-`+o,entryID:r,timestamp:n,text:t,role:f.role,roleLabel:f.label,roleClass:f.className,isAnchor:i,isAfterAnchor:a,toolCalls:Array.isArray(s)&&s.length>0?s:null,functionName:c||``,functionCallID:l||``,promptCacheRatio:0,_promptTextCharacters:p,_toolPromptCharacters:m}}function V7(e){return Array.isArray(e)?e.map(e=>{if(!e)return null;let t=e.function||e,n=``;return t.arguments===void 0?e.arguments===void 0?t.input===void 0?e.input!==void 0&&(n=e.input):n=t.input:n=e.arguments:n=t.arguments,{name:t.name||e.name||``,arguments:n,id:e.call_id||e.id||``}}).filter(Boolean):[]}function H7(e){return Array.isArray(e)?V7(e.filter(e=>e&&typeof e==`object`&&e.type===`tool_use`)):[]}function qUe(e){return Array.isArray(e)?e.filter(e=>e&&typeof e==`object`&&e.type===`tool_result`).map(e=>({id:e.tool_use_id||e.call_id||``,text:C7(e.content)})):[]}function U7(e,t,n){!t||!n||[t.call_id,t.id].forEach(t=>{t&&(e[t]=n)})}function JUe(e,t,n){if(t&&Array.isArray(t.messages)&&t.messages.forEach(t=>{t&&[...Array.isArray(t.tool_calls)?t.tool_calls:[],...Array.isArray(t.content)?t.content.filter(e=>e&&e.type===`tool_use`):[]].forEach(t=>{t&&U7(e,t,(t.function||t).name||t.name||``)})}),t&&Array.isArray(t.input)&&t.input.forEach(t=>{!t||typeof t!=`object`||t.type!==`function_call`&&t.type!==`tool_use`||U7(e,t,t.name||``)}),n&&Array.isArray(n.choices)){let t=n.choices[0];t&&t.message&&Array.isArray(t.message.tool_calls)&&t.message.tool_calls.forEach(t=>{t&&U7(e,t,(t.function||t).name||t.name||``)})}n&&Array.isArray(n.output)&&n.output.forEach(t=>{!t||t.type!==`function_call`&&t.type!==`tool_use`||U7(e,t,t.name||``)}),n&&Array.isArray(n.content)&&n.content.forEach(t=>{!t||t.type!==`tool_use`||U7(e,t,t.name||``)})}function W7(e){return Array.isArray(e)?`[`+e.map(W7).join(`,`)+`]`:e&&typeof e==`object`?`{`+Object.keys(e).sort().map(t=>JSON.stringify(t)+`:`+W7(e[t])).join(`,`)+`}`:JSON.stringify(e)}function YUe(e){if(!e||typeof e!=`object`)return null;let t=[];if(e.system!==void 0&&t.push({system:e.system}),e.instructions!==void 0&&t.push({instructions:e.instructions}),Array.isArray(e.messages))t.push(...e.messages);else if(Array.isArray(e.input)&&e.previous_response_id==null&&e.conversation==null)t.push(...e.input);else return null;return t.map(W7)}function G7(e){let t=e&&e.conversation;return typeof t==`string`?t.trim():t&&typeof t.id==`string`?t.id.trim():``}function K7(e,t){let n=new Date(e&&e.timestamp).getTime(),r=new Date(t&&t.timestamp).getTime();if(Number.isFinite(n)&&Number.isFinite(r)&&n!==r)return n-r;let i=String(e&&e.timestamp||``).localeCompare(String(t&&t.timestamp||``));if(i!==0)return i;let a=String(e&&e.id||``),o=String(t&&t.id||``);return ao)}function q7(e,t){if(!Array.isArray(e)||e.length===0)return{messages:[],entryIDs:[]};let n=[...e].sort(K7),r={};n.forEach(e=>{let t=e.data&&e.data.request_body?e.data.request_body:null,n=e.data&&e.data.response_body?e.data.response_body:null;JUe(r,t,n)});let i=[],a=new Set,o=new Set,s=new Set,c=[],l=null,u=0,d=n.findIndex(e=>e.id===t),f=e=>JSON.stringify({role:e.role,text:e.text,toolCalls:e.toolCalls,functionName:e.functionName,functionCallID:e.functionCallID});return n.forEach((e,n)=>{let p=e.id===t,m=d>=0&&n>d,h=e.timestamp,g=e.data&&e.data.request_body?e.data.request_body:null,_=e.data&&e.data.response_body?e.data.response_body:null,v=i.length,y=(e,t)=>fUe(e,t),b=e=>k7(e),x=(t,n,{toolCalls:r,functionName:i,functionCallID:a,promptCache:o,toolPromptCache:s}={})=>KUe(t,n,{timestamp:h,entryID:e.id,isAnchor:p,isAfterAnchor:m,index:++u,toolCalls:r,functionName:i,functionCallID:a,promptCache:o,toolPromptCache:s});if(g&&g.system!==void 0){let e=C7(g.system);e&&i.push(x(`system`,e,{promptCache:y(e,T7(g.system))}))}if(g&&g.instructions!==void 0){let e=C7(g.instructions);e&&i.push(x(`system`,e,{promptCache:y(e,T7(g.instructions))}))}g&&Array.isArray(g.messages)&&g.messages.forEach(e=>{if(!e)return;let t=(e.role||`user`).toLowerCase();if(t===`tool`){let t=C7(e.content),n=e.name||r[e.tool_call_id]||``;t&&i.push(x(`function_result`,t,{functionName:n,functionCallID:e.tool_call_id||``,promptCache:y(t,T7(e.content))}));return}if(t===`assistant`){let n=w7(e),r=[...V7(e.tool_calls),...H7(e.content)];if(n||r.length>0){let a=y(n,T7(e.content));i.push(x(t,n,{toolCalls:r,promptCache:a,toolPromptCache:b(r)}))}return}qUe(e.content).forEach(e=>{e.text&&i.push(x(`function_result`,e.text,{functionName:r[e.id]||``,functionCallID:e.id,promptCache:y(e.text,[e.text])}))});let n=w7(e);n&&i.push(x(t,n,{promptCache:y(n,T7(e.content))}))}),g&&g.input!==void 0&&(Array.isArray(g.input)?g.input.forEach(e=>{if(!(!e||typeof e!=`object`)){if(e.type===`function_call_output`||e.type===`tool_result`){let t=e.type===`tool_result`,n=t?e.content:e.output,a=t?e.tool_use_id||e.call_id||``:e.call_id||``,o=typeof n==`string`?n:C7(n);o&&i.push(x(`function_result`,o,{functionName:r[a]||e.name||``,functionCallID:a,promptCache:y(o,t?T7(e.content):[o])}))}else if(e.type===`function_call`||e.type===`tool_use`){let t=V7([e]);i.push(x(`function_call`,``,{toolCalls:t,toolPromptCache:b(t)}))}else if(e.role){let t=String(e.role).toLowerCase(),n=C7(e.content);n&&i.push(x(t,n,{promptCache:y(n,T7(e.content))}))}}}):hUe(g.input).forEach(e=>{if(!e.text)return;let t=[];typeof g.input==`string`?t=[g.input]:g.input&&typeof g.input==`object`&&(t=T7(g.input.content),typeof g.input.text==`string`&&t.push(g.input.text)),i.push(x(e.role,e.text,{promptCache:y(e.text,t)}))}));let S=i.splice(v),C=S.map(f),w=YUe(g),T=w!==null,ee=P7(e),E=!!ee&&a.has(ee),te=String(g&&g.previous_response_id||``).trim(),ne=G7(g),re=E||!!te&&o.has(te)||!!ne&&s.has(ne);if(m){let e=T&&l&&l.length>0&&l.every((e,t)=>w[t]===e);if(T&&!e&&!E||!T&&!re)return}p&&T&&(l=[...w]);let ie=String(e.id||``).trim();p&&(a.clear(),o.clear(),s.clear()),ie&&(p||m)&&a.add(ie),ne&&s.add(ne);let ae=0;for(;ae0;){let t=c.slice(-e),n=C.slice(0,e);if(t.every((e,t)=>e===n[t]))break;e--}i.push(...S.slice(e)),c.push(...C.slice(e))}let oe=dUe(e);if(g&&oe!==null&&i.splice(0,i.length,...mUe(i,oe)),_&&Array.isArray(_.choices)){let e=_.choices[0];if(e&&e.message){let t=(e.message.role||`assistant`).toLowerCase(),n=w7(e.message),r=V7(e.message.tool_calls);if(n||r.length>0){let e=x(t,n,{toolCalls:r});i.push(e),c.push(f(e))}}}if(_&&Array.isArray(_.output)&&_.output.forEach(e=>{if(!e)return;if(e.type===`function_call`||e.type===`tool_use`){let t=x(`function_call`,``,{toolCalls:V7([e])});i.push(t),c.push(f(t));return}let t=(e.role||`assistant`).toLowerCase(),n=gUe(e);if(n){let e=x(t,n);i.push(e),c.push(f(e))}}),_&&_.content!==void 0&&!Array.isArray(_.choices)&&!Array.isArray(_.output)){let e=String(_.role||`assistant`).toLowerCase(),t=C7(_.content),n=H7(_.content);if(t||n.length>0){let r=x(e,t,{toolCalls:n});i.push(r),c.push(f(r))}}let se=vUe(e);se&&i.push(x(`error`,se));let ce=String(_&&_.id||``).trim();ce&&o.add(ce)}),{messages:i,entryIDs:[...a]}}function J7(e){return e.role===`function_call`?(e.toolCalls||[]).map(function(e){return e.name+`(`+Y7(e)+`)`}).join(` + +`):e.text||``}function XUe(e){return e?[String(e.text||``),Array.isArray(e.toolCalls)&&e.toolCalls.length>0?J7({role:`function_call`,toolCalls:e.toolCalls}):``].filter(Boolean).join(` + +`):``}function Y7(e){let t=e&&e.arguments!==void 0?e.arguments:``;if(typeof t!=`string`)try{return JSON.stringify(t,null,2)}catch{return String(t)}try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}var ZUe=600*1e3,QUe=15*1e3,$Ue=250,eWe=class{#e=j(!1);get conversationOpen(){return L(this.#e)}set conversationOpen(e){M(this.#e,e,!0)}#t=j(!1);get conversationLoading(){return L(this.#t)}set conversationLoading(e){M(this.#t,e,!0)}#n=j(``);get conversationError(){return L(this.#n)}set conversationError(e){M(this.#n,e,!0)}#r=j(``);get conversationAnchorID(){return L(this.#r)}set conversationAnchorID(e){M(this.#r,e,!0)}#i=j(Xt([]));get conversationEntryIDs(){return L(this.#i)}set conversationEntryIDs(e){M(this.#i,e,!0)}#a=j(``);get conversationSessionID(){return L(this.#a)}set conversationSessionID(e){M(this.#a,e,!0)}#o=j(!1);get conversationTruncated(){return L(this.#o)}set conversationTruncated(e){M(this.#o,e,!0)}#s=j(!1);get conversationFollowLatest(){return L(this.#s)}set conversationFollowLatest(e){M(this.#s,e,!0)}#c=j(``);get conversationOpenedFromID(){return L(this.#c)}set conversationOpenedFromID(e){M(this.#c,e,!0)}#l=j(``);get followUpText(){return L(this.#l)}set followUpText(e){M(this.#l,e,!0)}#u=j(!1);get followUpSending(){return L(this.#u)}set followUpSending(e){M(this.#u,e,!0)}#d=j(``);get followUpError(){return L(this.#d)}set followUpError(e){M(this.#d,e,!0)}followUpRequestID=``;followUpAbort=null;conversationRequestToken=0;conversationReturnFocusEl=null;bodyPointerStart=null;#f=j(null);get conversationDialogEl(){return L(this.#f)}set conversationDialogEl(e){M(this.#f,e,!0)}#p=j(null);get conversationCloseBtnEl(){return L(this.#p)}set conversationCloseBtnEl(e){M(this.#p,e,!0)}#m=j(null);get conversationThreadEl(){return L(this.#m)}set conversationThreadEl(e){M(this.#m,e,!0)}get conversationEntries(){return(this.conversationEntryIDs||[]).map(e=>_3.auditRecord(e)).filter(Boolean)}#h=A(()=>q7(this.conversationEntries,this.conversationAnchorID));get conversationView(){return L(this.#h)}set conversationView(e){M(this.#h,e)}get conversationMessages(){return this.conversationView.messages}get conversationBranchEntryIDs(){return this.conversationView.entryIDs}_setConversationEntryIDs(e){this.conversationEntryIDs=[...new Set((Array.isArray(e)?e:[]).filter(Boolean))],_3.pinAuditRecords(this.conversationEntryIDs)}canShowConversation(e){return PUe(e)}startBodyInteraction(e){this.bodyPointerStart={x:e.clientX,y:e.clientY}}_isBodyDrag(e){if(!this.bodyPointerStart)return!1;let t=Math.abs(e.clientX-this.bodyPointerStart.x),n=Math.abs(e.clientY-this.bodyPointerStart.y);return t>4||n>4}_hasActiveSelection(){let e=window.getSelection?window.getSelection():null;return!e||e.isCollapsed?!1:String(e.toString()||``).trim().length>0}handleBodyConversationClick(e,t){let n=this._isBodyDrag(e);if(this.bodyPointerStart=null,n||this._hasActiveSelection()||!this.canShowConversation(t))return;let r=e.target&&e.target.closest?e.target.closest(`[data-conversation-trigger="1"]`):null;r&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,r))}handleErrorConversationClick(e,t){let n=this._isBodyDrag(e);this.bodyPointerStart=null,!n&&(this._hasActiveSelection()||this.canShowConversation(t)&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,e.currentTarget)))}formatJSON(e){return lZ(e)}renderBodyWithConversationHighlights(e,t,n){return WUe(e,t,{formatJSON:e=>this.formatJSON(e),canShowConversation:e=>this.canShowConversation(e),promptCacheHighlight:n&&n.promptCacheHighlight})}async openConversation(e,t){if(!e||!e.id||!this.canShowConversation(e))return;let n=document.activeElement instanceof HTMLElement?document.activeElement:null;t instanceof HTMLElement?this.conversationReturnFocusEl=t:n&&n!==document.body&&(this.conversationReturnFocusEl=n);let r=++this.conversationRequestToken;if(this.conversationOpen=!0,this.conversationError=``,this.conversationAnchorID=e.id,this.conversationOpenedFromID=e.id,this.conversationSessionID=String(e.session_id||``).trim(),this._setConversationEntryIDs([]),this.conversationTruncated=!1,this.conversationFollowLatest=!1,this.followUpText=``,this.followUpError=``,this.followUpRequestID=``,requestAnimationFrame(()=>this._focusConversationDrawer()),this._conversationEntryLivePending(e)){this.conversationFollowLatest=!0,this.conversationLoading=!1,this._addConversationRecord(_3.upsertAuditRecord(e,`conversation.live`));return}this.conversationLoading=!0,await this.fetchConversation(e.id,r,!0,!0)}_conversationEntryLivePending(e){return typeof _3.auditEntryLiveDetailPending==`function`&&_3.auditEntryLiveDetailPending(e)}_applyConversationView(){let e=this.conversationEntries,t=q7(e,this.conversationAnchorID);if(this.conversationFollowLatest){let n=AUe(e,t.entryIDs);n&&n.id&&String(n.id)!==this.conversationAnchorID&&(this.conversationAnchorID=String(n.id))}}handleAuditRecordChange(e,t){if(!this.conversationOpen||!e)return;let n=String(e.id||``).trim(),r=OUe(this.conversationEntries,this.conversationAnchorID,this.conversationSessionID,this.followUpRequestID,e);if(r.accepted&&(this.followUpRequestID=r.followUpRequestID,n&&r.submittedChild&&(this.conversationAnchorID=n,this.conversationFollowLatest=!0),this._addConversationRecord(e),MUe(String(t||e._live_state||``).trim(),n,this.conversationAnchorID))){this.conversationMessages.length===0&&(this.conversationLoading=!0);let e=++this.conversationRequestToken;this.fetchConversation(n,e,!1)}}_addConversationRecord(e){let t=p3(e);t&&!this.conversationEntryIDs.includes(t)&&this._setConversationEntryIDs([...this.conversationEntryIDs,t]),!this.conversationSessionID&&e.session_id&&(this.conversationSessionID=String(e.session_id).trim()),this._applyConversationView(),this.conversationFollowLatest&&this._scheduleLatestScroll()}conversationLiveWaiting(){if(!this.conversationOpen)return!1;let e=new Set(this.conversationBranchEntryIDs||[]);return(this.conversationEntries||[]).some(t=>e.has(String(t&&t.id||``))&&t._live&&(typeof _3.liveAuditStateSettled!=`function`||!_3.liveAuditStateSettled(t._live_state)))}conversationLiveStatusText(){return(this.conversationMessages||[]).length>0?nfe():Ro()}closeConversation(){this.followUpAbort&&this.followUpAbort.abort(),this.conversationOpen=!1,this.conversationRequestToken++,this.conversationSessionID=``,this._setConversationEntryIDs([]),this.conversationFollowLatest=!1,this.conversationOpenedFromID=``,this.followUpRequestID=``,this.followUpSending=!1;let e=this.conversationReturnFocusEl;this.conversationReturnFocusEl=null,e&&typeof e.focus==`function`&&document.contains(e)&&requestAnimationFrame(()=>e.focus())}_focusConversationDrawer(){if(!this.conversationOpen)return;let e=this.conversationCloseBtnEl;if(e&&typeof e.focus==`function`){e.focus();return}let t=this.conversationDialogEl;t&&typeof t.focus==`function`&&t.focus()}async fetchConversation(e,t,n=!0,r=!1){try{let i=await JX(`/admin/audit/conversation?`+(`log_id=`+encodeURIComponent(e)+`&limit=120`),{label:`audit conversation`});if(t!==this.conversationRequestToken||i.stale)return;if(!i.ok){this.conversationError=afe();return}let a=i.data||{},o=a.anchor_id||e,s=Array.isArray(a.entries)?a.entries:[],c=_3.upsertAuditRecords(s,`conversation.hydrated`),l=I7(this.conversationEntryIDs,c);l.length>this.conversationEntryIDs.length&&this._setConversationEntryIDs(l),r&&(this.conversationFollowLatest=jUe(c,o)),this.conversationAnchorID=o;let u=this.conversationEntries.find(e=>e.id===this.conversationAnchorID);u&&u.session_id&&(this.conversationSessionID=String(u.session_id).trim()),this.conversationTruncated=!!a.truncated,this._applyConversationView(),this.conversationFollowLatest?this._scheduleLatestScroll():n&&this._scheduleAnchorScroll()}catch(e){if(t!==this.conversationRequestToken)return;console.error(`Failed to fetch audit conversation:`,e),this.conversationError=cfe()}finally{t===this.conversationRequestToken&&(this.conversationLoading=!1)}}selectedConversationEntry(){return kUe(this.conversationEntries,this.conversationAnchorID)}followUpKind(){let e=this.selectedConversationEntry();return CUe(e)?j7(e.path):``}canSendFollowUp(){return!!this.followUpKind()&&!!String(this.followUpText||``).trim()&&!this.followUpSending&&!this.conversationLiveWaiting()}async sendFollowUp(){if(!this.canSendFollowUp())return;let e=this.selectedConversationEntry(),t=wUe(e,this.followUpText);if(!e||!t)return;let n=this.conversationAnchorID,r=nWe(),i=new AbortController,a=!1,o=setTimeout(()=>{a=!0,i.abort()},ZUe);this.followUpSending=!0,this.followUpError=``,this.followUpRequestID=r,this.followUpAbort=i;try{let a=EUe(e,n,r),o=await KX(e.path,{method:`POST`,headers:a,body:JSON.stringify(t),signal:i.signal}),s=String(o.headers.get(`X-Request-ID`)||``).trim();if(s&&this.followUpRequestID&&(this.followUpRequestID=s),!o.ok){let e=dfe();try{let t=await o.json();e=t&&t.error&&t.error.message||e}catch{}this.followUpError=e,(this.followUpRequestID===r||this.followUpRequestID===s)&&(this.followUpRequestID=``);return}if(this.followUpText=``,await tWe(o),!_3.liveLogsStreaming&&this.conversationOpen){let e=++this.conversationRequestToken;await this._selectPersistedFollowUp(n,this.followUpRequestID,e,i.signal)}}catch(e){XX(e)||i.signal.aborted?a&&this.conversationOpen&&(this.followUpError=mfe()):(console.error(`Failed to send interaction follow-up:`,e),this.followUpError=_fe())}finally{clearTimeout(o),this.followUpAbort===i&&(this.followUpAbort=null,this.followUpSending=!1)}}async _selectPersistedFollowUp(e,t,n,r){let i=Date.now()+QUe;for(;this.conversationOpen&&n===this.conversationRequestToken&&Date.now(){let e=this.conversationThreadEl;if(!e)return;let t=e.querySelectorAll(`[data-conversation-anchor="true"]`),n=t[t.length-1];n&&typeof n.scrollIntoView==`function`&&n.scrollIntoView({block:`center`})})}_scheduleLatestScroll(){requestAnimationFrame(()=>{let e=this.conversationThreadEl;if(!e)return;let t=e.lastElementChild;t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`end`})})}};async function tWe(e){let t=e&&e.body&&typeof e.body.getReader==`function`?e.body.getReader():null;if(!t){await e.text();return}for(;!(await t.read()).done;);}function nWe(){return globalThis.crypto&&typeof globalThis.crypto.randomUUID==`function`?globalThis.crypto.randomUUID():`dashboard-`+Date.now().toString(36)+`-`+Math.random().toString(36).slice(2)}function rWe(e,t){return new Promise((n,r)=>{let i,a=()=>{clearTimeout(i),r(new DOMException(`Aborted`,`AbortError`))};if(i=setTimeout(()=>{t&&t.removeEventListener(`abort`,a),n()},e),t){if(t.aborted){a();return}t.addEventListener(`abort`,a,{once:!0})}})}var X7=new eWe,Z7=0;_n(()=>{hn(()=>{let e=mFe(_3.auditRecordChanges,Z7);e.length!==0&&(Z7=Number(e[e.length-1].version||0),sr(()=>{e.forEach(e=>{if(!hFe(e))return;let t=_3.auditRecord(e.key);X7.handleAuditRecordChange(t,e.eventType)})}))})});var iWe=z(``),aWe=z(``),oWe=z(` `),sWe=z(` `),cWe=z(``),lWe=z(`
                    `);function uWe(e,t){O(t,!0);let n=K(t,`thread`,3,null),r=K(t,`expanded`,3,!1),i=K(t,`onactivate`,3,null),a=K(t,`onusage`,3,null),o=K(t,`hidePath`,3,!1),s=A(()=>UX.formatTimestamp(t.entry.timestamp)),c=A(()=>L(s)===`-`?L(s):L(s).slice(L(s).lastIndexOf(` `)+1)),l=A(()=>X7.conversationOpen&&String(X7.conversationAnchorID||``)===String(t.entry.id||``));function u(e){e.preventDefault(),i()&&i()()}function d(e){e.stopPropagation(),e.preventDefault(),n().ontoggle()}function f(e){e.stopPropagation(),e.preventDefault(),a()?.()}function p(){return Bce({count:Number(n().count||1)})}function m(e){if(e.stopPropagation(),e.preventDefault(),L(l)){X7.closeConversation();return}X7.openConversation(t.entry,e.currentTarget)}var h=lWe();let g;var _=N(h),v=N(_),y=e=>{var t=iWe(),r=N(t);{let e=A(()=>n().expanded?QY:$Y);q(r,{get icon(){return L(e)},class:`audit-thread-expander-svg`})}var i=F(r,2),a=N(i,!0);D(i),D(t),I((e,r)=>{G(t,`aria-expanded`,n().expanded),G(t,`title`,e),G(t,`aria-label`,r),V(a,n().count)},[()=>p(),()=>p()+`, `+(n().expanded?$oe():Xoe())]),R(`click`,t,d),B(e,t)};H(v,e=>{n()&&e(y)});var b=F(v,2),x=e=>{var t=aWe();q(N(t),{get icon(){return DTe},class:`audit-session-usage-svg`}),D(t),I((e,n)=>{G(t,`title`,e),G(t,`aria-label`,n)},[()=>Io(),()=>Io()]),R(`click`,t,f),B(e,t)};H(b,e=>{a()&&e(x)});var S=F(b,2),C=N(S),w=N(C,!0);D(C);var T=F(C,2),ee=N(T,!0);D(T),D(S);var E=F(S,2),te=e=>{var n=oWe(),r=N(n,!0);D(n),I(e=>V(r,e),[()=>JEe(t.entry)]),B(e,n)};H(E,e=>{(t.entry.requested_model||t.entry.model)&&e(te)});var ne=F(E,2),re=e=>{var n=sWe(),r=N(n,!0);D(n),I(()=>V(r,t.entry.path||`-`)),B(e,n)};H(ne,e=>{o()||e(re)}),D(_);var ie=F(_,2),ae=N(ie);cUe(ae,{get entry(){return t.entry}});var oe=F(ae,2),se=N(oe),ce=N(se,!0);D(se);var le=F(se,2),ue=N(le,!0);D(le),D(oe);var de=F(oe,2),fe=N(de,!0);D(de);var pe=F(de,2),me=e=>{var t=cWe();let n;var r=N(t);{let e=A(()=>L(l)?OTe:$Y);q(r,{get icon(){return L(e)},class:`audit-conversation-trigger-svg`})}D(t),I((e,r)=>{n=W(t,1,`audit-conversation-trigger svelte-17mysgz`,null,n,{"audit-conversation-trigger-active":L(l)}),G(t,`title`,e),G(t,`aria-label`,r),G(t,`aria-pressed`,L(l))},[()=>L(l)?Fo():Po(),()=>L(l)?Fo():Po()]),R(`click`,t,m),B(e,t)},he=A(()=>X7.canShowConversation(t.entry));H(pe,e=>{L(he)&&e(me)}),D(ie),D(h),I((e,n,i,a,o)=>{g=W(h,1,`audit-entry-summary svelte-17mysgz`,null,g,e),G(h,`aria-expanded`,r()),W(S,1,`audit-status-badge audit-request-badge ${n??``}`,`svelte-17mysgz`),G(S,`title`,i),G(S,`aria-label`,(t.entry.status_code||`-`)+` `+(t.entry.method||`-`)),V(w,t.entry.status_code||`-`),V(ee,t.entry.method||`-`),G(oe,`title`,a),G(oe,`aria-label`,L(s)),V(ce,L(s)),V(ue,L(c)),V(fe,o)},[()=>({"audit-entry-summary-live-in-progress":d7(t.entry),"audit-entry-summary-has-interactions":X7.canShowConversation(t.entry)}),()=>u7(t.entry.status_code),()=>Uce({status:t.entry.status_code||`-`,method:t.entry.method||`-`}),()=>_Z(t.entry.timestamp),()=>wHe(t.entry.duration_ns)]),R(`click`,h,u),B(e,h),k()}Sr([`click`]);var dWe=z(``);function Q7(e,t){O(t,!0);let n=K(t,`label`,3,`Copy`),r=K(t,`copiedLabel`,3,`Copied`),i=K(t,`errorLabel`,3,``),a=K(t,`class`,3,`btn`),o=A(()=>t.state.error&&i()?i():t.state.copied?r():n());var s=dWe();let c;var l=N(s),u=e=>{q(e,{get icon(){return eX},width:`14`,height:`14`,"stroke-width":`2.5`})},d=e=>{q(e,{get icon(){return nX},width:`14`,height:`14`})};H(l,e=>{t.state.copied?e(u):e(d,-1)});var f=F(l,2),p=N(f,!0);D(f),D(s),I(()=>{c=W(s,1,ui([`copy-feedback-btn`,a()]),null,c,{"copy-feedback-btn-copied":t.state.copied}),V(p,L(o))}),R(`click`,s,e=>{e.preventDefault(),t.onclick?.(e)}),B(e,s),k()}Sr([`click`]);var fWe=z(`
                     
                    `),pWe=z(`
                     
                    `),mWe=z(` `),hWe=z(` `),gWe=z(`
                    `),_We=z(`

                    `),vWe=z(`

                    `),yWe=z(`

                    `),bWe=z(`
                    `);function xWe(e,t){O(t,!0);let n=U3({logPrefix:`Failed to copy audit payload:`}),r=U3({logPrefix:`Failed to copy audit payload:`}),i=A(()=>t.pane&&t.pane.showHeaders?lZ(t.pane.headers):``),a=A(()=>!t.pane||!t.pane.showBody?``:LUe(t.pane.body)?HUe(t.pane.body):X7.renderBodyWithConversationHighlights(t.pane.entry,t.pane.body,{promptCacheHighlight:t.pane.promptCacheHighlight})),o=A(()=>!!(t.pane&&X7.canShowConversation(t.pane.entry)));function s(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),X7.handleErrorConversationClick(e,t.pane.entry))}var c=bWe();let l;var u=N(c),d=e=>{var n=fWe(),r=N(n),i=N(r,!0);D(r);var a=F(r,2);let c;var l=N(a,!0);D(a),D(n),I(e=>{V(i,e),c=W(a,1,`audit-json audit-pane-error-message svelte-1h5puht`,null,c,{"audit-pane-clickable-preview":L(o)}),G(a,`role`,L(o)?`button`:null),G(a,`tabindex`,L(o)?0:null),V(l,t.pane.errorMessage)},[()=>sle()]),R(`mousedown`,a,e=>X7.startBodyInteraction(e)),R(`keydown`,a,s),R(`click`,a,e=>X7.handleErrorConversationClick(e,t.pane.entry)),B(e,n)};H(u,e=>{t.pane.showErrorMessage&&e(d)});var f=F(u,2),p=e=>{var n=pWe(),a=N(n),o=N(a),s=N(o,!0);D(o);var c=F(o,2);{let e=A(()=>ple()),n=A(()=>Mo());Q7(c,{get state(){return r},get label(){return L(e)},get errorLabel(){return L(n)},class:`audit-copy-btn`,onclick:()=>r.copy(t.pane.copyHeaders,lZ)})}D(a);var l=F(a,2),u=N(l,!0);D(l),D(n),I(e=>{V(s,e),V(u,L(i))},[()=>t.pane.headersTitle||ule()]),B(e,n)};H(f,e=>{t.pane.showHeaders&&e(p)});var m=F(f,2),h=e=>{var r=gWe(),i=N(r),o=N(i),s=N(o),c=N(s,!0);D(s);var l=F(s,2),u=e=>{var n=mWe(),r=N(n,!0);D(n),I(()=>V(r,t.pane.bodyCacheRatioLabel)),B(e,n)};H(l,e=>{t.pane.bodyCacheRatioLabel&&e(u)});var d=F(l,2),f=e=>{var t=hWe(),n=F(N(t),2),r=N(n,!0);D(n),D(t),I(e=>V(r,e),[()=>yle()]),B(e,t)};H(d,e=>{t.pane.streaming&&e(f)}),D(o);var p=F(o,2);{let e=A(()=>Sle()),r=A(()=>Mo());Q7(p,{get state(){return n},get label(){return L(e)},get errorLabel(){return L(r)},class:`audit-copy-btn`,onclick:()=>n.copy(t.pane.copyBody,lZ)})}D(i);var m=F(i,2);Kr(m,()=>L(a),!0),D(m),D(r),I(e=>V(c,e),[()=>gle()]),R(`mousedown`,m,e=>X7.startBodyInteraction(e)),R(`click`,m,e=>X7.handleBodyConversationClick(e,t.pane.entry)),B(e,r)};H(m,e=>{t.pane.showBody&&e(h)});var g=F(m,2),_=e=>{var n=_We(),r=N(n,!0);D(n),I(()=>V(r,t.pane.emptyMessage)),B(e,n)};H(g,e=>{t.pane.showEmpty&&e(_)});var v=F(g,2),y=e=>{var n=vWe(),r=F(N(n),2),i=N(r,!0);D(r),D(n),I(()=>V(i,t.pane.pendingMessage)),B(e,n)};H(v,e=>{t.pane.showPending&&e(y)});var b=F(v,2),x=e=>{var n=yWe(),r=N(n,!0);D(n),I(()=>V(r,t.pane.tooLargeMessage)),B(e,n)};H(b,e=>{t.pane.showTooLarge&&e(x)}),D(c),I(()=>l=W(c,1,`audit-pane svelte-1h5puht`,null,l,{"audit-pane-split":t.pane&&t.pane.layout===`split`,"audit-pane-split-single":t.pane&&t.pane.layout===`split`&&!(t.pane.showHeaders&&t.pane.showBody)})),B(e,c),k()}Sr([`mousedown`,`keydown`,`click`]);var SWe=z(` `),$7=z(` `),CWe=z(` `),wWe=z(` `),TWe=z(``),EWe=z(`
                    `),DWe=z(`
                    `);function OWe(e,t){O(t,!0);let n=K(t,`panes`,19,()=>[]),r=j(null),i=A(()=>JHe(L(r),t.entry,n())),a=e=>`audit-tab-`+t.entry.id+`-`+e,o=e=>`audit-tabpanel-`+t.entry.id+`-`+e;function s(e,t){let i=n().map(e=>e.id),a=YHe(e.key,i,t);a!=null&&(e.preventDefault(),((e.currentTarget?.closest?.(`.audit-pane-tablist`))?.querySelectorAll(`.audit-pane-tab`)[i.indexOf(a)])?.focus?.(),M(r,a,!0))}var c=DWe(),l=N(c);U(l,21,n,e=>e.id,(e,t)=>{var n=TWe();let c;var l=N(n),u=N(l),d=e=>{q(e,{get icon(){return xTe}})},f=e=>{q(e,{get icon(){return bTe}})};H(u,e=>{L(t).pane.direction===`request`?e(d):L(t).pane.direction===`response`&&e(f,1)}),D(l);var p=F(l,2),m=N(p,!0);D(p);var h=F(p,2),g=e=>{var n=SWe(),r=N(n);D(n),I(()=>V(r,`#${L(t).pane.seq??``}`)),B(e,n)};H(h,e=>{L(t).pane.seq&&e(g)});var _=F(h,2),v=e=>{var n=$7(),r=N(n,!0);D(n),I(()=>{W(n,1,`provider-badge audit-pane-kind audit-pane-kind-${L(t).pane.kind??``}`,`svelte-1bc5vi5`),V(r,L(t).pane.kind)}),B(e,n)};H(_,e=>{L(t).pane.kind&&e(v)});var y=F(_,2);U(y,17,()=>L(t).pane.noChangeSteps||[],e=>e.id,(e,t)=>{var n=CWe(),r=N(n,!0);D(n),I(()=>{G(n,`title`,L(t).title),V(r,L(t).label)}),B(e,n)});var b=F(y,2),x=e=>{var n=wWe(),r=N(n,!0);D(n),I(e=>{G(n,`title`,e),V(r,L(t).pane.savingsLabel)},[()=>Ole()]),B(e,n)};H(b,e=>{L(t).pane.savingsLabel&&e(x)});var S=F(b,2),C=e=>{var n=$7(),r=N(n,!0);D(n),I(e=>{W(n,1,`audit-status-badge ${e??``}`,`svelte-1bc5vi5`),V(r,L(t).pane.statusCode)},[()=>u7(L(t).pane.statusCode)]),B(e,n)};H(S,e=>{L(t).pane.statusCode&&e(C)}),D(n),I((e,r)=>{c=W(n,1,`audit-pane-tab svelte-1bc5vi5`,null,c,{"audit-pane-tab-active":L(i)===L(t).id}),G(n,`aria-selected`,L(i)===L(t).id),G(n,`id`,e),G(n,`aria-controls`,r),G(n,`tabindex`,L(i)===L(t).id?0:-1),W(l,1,ui([`audit-pane-icon`,L(t).pane.direction&&`audit-pane-icon-${L(t).pane.direction}`]),`svelte-1bc5vi5`),V(m,L(t).pane.title)},[()=>a(L(t).id),()=>o(L(t).id)]),R(`keydown`,n,e=>s(e,L(t).id)),R(`click`,n,()=>M(r,L(t).id,!0)),B(e,n)}),D(l),U(F(l,2),17,n,e=>e.id,(e,t)=>{var n=EWe();let r;xWe(N(n),{get pane(){return L(t).pane}}),D(n),I((e,a)=>{G(n,`id`,e),G(n,`aria-labelledby`,a),r=hi(n,``,r,{display:L(i)===L(t).id?null:`none`})},[()=>o(L(t).id),()=>a(L(t).id)]),B(e,n)}),D(c),I(e=>G(l,`aria-label`,e),[()=>Tle()]),B(e,c),k()}Sr([`keydown`,`click`]);var kWe=z(`
                    `),AWe=z(`
                    `);function e9(e,t){O(t,!0);let n=K(t,`thread`,3,null),r=K(t,`hidePath`,3,!1),i=A(()=>x7.isAuditEntryExpanded(t.entry)),a=A(()=>X7.conversationOpen&&String(X7.conversationAnchorID||``)===String(t.entry.id||``)),o=A(()=>L(i)?y7(t.entry,_Ue):[]),s=A(()=>L(i)?kVe(t.entry,J5.auditEntryWorkflow(t.entry),J5.workflowFeatureCaps()):null);function c(){x7.toggleAuditEntryExpanded(t.entry)}var l=AWe();let u;var d=N(l);{let e=A(()=>t.entry.session_id?()=>X.filterBySession(t.entry.session_id,t.entry.user_path):null);uWe(d,{get entry(){return t.entry},get thread(){return n()},get expanded(){return L(i)},get hidePath(){return r()},onactivate:c,get onusage(){return L(e)}})}var f=F(d,2),p=e=>{var n=kWe(),r=N(n),i=e=>{A5(e,{get chart(){return L(s)}})};H(r,e=>{L(s)&&e(i)});var a=F(r,2);OWe(a,{get entry(){return t.entry},get panes(){return L(o)}}),aUe(F(a,2),{get entry(){return t.entry}}),D(n),oi(3,n,()=>iZ,()=>({y:-6,duration:q5(150)})),B(e,n)};H(f,e=>{L(i)&&e(p)}),D(l),I(()=>u=W(l,1,`audit-entry svelte-cmjgwr`,null,u,{"audit-entry-interactions-open":L(a)})),B(e,l),k()}var jWe=z(`
                    `),MWe=z(`
                    `),NWe=z(`

                    `),PWe=z(`
                    `),FWe=z(`
                    `);function IWe(e,t){O(t,!0);let n=A(()=>n7(t.entry)),r=A(()=>x7.isThreadExpanded(L(n))),i=A(()=>x7.threadChildren(L(n))),a=A(()=>L(i)&&!L(i).loading&&Number(L(i).total||0)>L(i).entries.length+1);var o=kr(),s=P(o),c=e=>{e9(e,{get entry(){return t.entry}})},l=A(()=>!gHe(t.entry)),u=e=>{var n=FWe(),o=N(n);{let e=A(()=>({count:r7(t.entry),expanded:L(r),ontoggle:()=>x7.toggleThread(t.entry)}));e9(o,{get entry(){return t.entry},get thread(){return L(e)}})}var s=F(o,2),c=e=>{var n=PWe(),r=N(n),o=e=>{var t=jWe(),n=N(t);{let e=A(()=>Xce());i3(n,{size:14,get label(){return L(e)}})}D(t),B(e,t)};H(r,e=>{L(i)&&L(i).loading&&e(o)});var s=F(r,2);U(s,17,()=>L(i)&&L(i).entries||[],e=>e.id,(e,n)=>{var r=MWe(),i=N(r);{let e=A(()=>L(n).path===t.entry.path);e9(i,{get entry(){return L(n)},get hidePath(){return L(e)}})}D(r),B(e,r)});var c=F(s,2),l=e=>{var t=NWe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>$ce({shown:L(i).entries.length+1,total:L(i).total})]),B(e,t)};H(c,e=>{L(a)&&e(l)}),D(n),oi(3,n,()=>aZ,()=>({duration:q5(150)})),B(e,n)};H(s,e=>{L(r)&&e(c)}),D(n),B(e,n)};H(s,e=>{L(l)?e(c):e(u,-1)}),B(e,o),k()}var LWe=z(`

                    .

                    `),RWe=z(`
                    LOGGING_ENABLED=true
                    `),zWe=z(`

                    `),BWe=z(`
                    `),VWe=z(`
                    `),HWe=z(`
                    `),UWe=z(`
                    `),WWe=z(`
                    `);function GWe(e,t){O(t,!0);let n=A(()=>ZX.config&&ZX.config.LOGGING_RETENTION_DAYS);hn(()=>{if(Y.refreshTick,wX.page===`audit-logs`)return sr(()=>r())});function r(){let e=!1;return(async()=>{try{await ZX.ensureLoaded()}finally{await x7.fetchAuditLog(!0),!e&&ZX.liveLogsVisible()&&_3.ensureLiveLogs()}})(),()=>{e=!0,_3.stopLiveLogs()}}var i=WWe(),a=N(i),o=N(a),s=N(o),c=N(s,!0);D(s);var l=F(s,2),u=e=>{{let t=e=>{var t=LWe(),r=N(t,!0),i=F(r),a=N(i,!0);D(i),Ve(),D(t),I((e,t)=>{V(r,e),V(a,t)},[()=>e7(L(n)),()=>t7(L(n))]),B(e,t)},r=A(()=>pse()),i=A(()=>gse());c3(e,{copyId:`audit-retention-help-copy`,get label(){return L(r)},get text(){return L(i)},title:t,$$slots:{title:!0}})}},d=A(()=>pHe(L(n)));H(l,e=>{L(d)&&e(u)}),D(o),D(a);var f=F(a,2);IZ(N(f),{onchange:()=>x7.fetchAuditLog(!0)}),D(f);var p=F(f,2);jZ(p,{});var m=F(p,2),h=e=>{var t=RWe(),n=N(t,!0),r=F(n,2,!0);D(t),I((e,t)=>{V(n,e),V(r,t)},[()=>jse(),()=>Pse()]),B(e,t)},g=A(()=>ZX.loaded&&!ZX.auditVisible()&&!Y.needsAuth);H(m,e=>{L(g)&&e(h)});var _=F(m,2),v=N(_);QHe(v,{});var y=F(v,2),b=N(y),x=N(b),S=e=>{var t=zWe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>x7.auditGroupSessions?Lse({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total}):Bse({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total})]),B(e,t)};H(x,e=>{x7.auditLog.total>0&&e(S)});var C=F(x,2),w=N(C);Ti(w);var T=F(w,2),ee=N(T,!0);D(T),D(C),D(b),tUe(F(b,2),{}),D(y);var E=F(y,2),te=e=>{var t=BWe(),n=N(t);{let e=A(()=>Kse());i3(n,{size:18,get label(){return L(e)}})}D(t),B(e,t)},ne=e=>{var t=HWe();U(t,29,()=>x7.auditLog.entries,e=>e.id,(e,t)=>{var n=VWe(),r=N(n),i=e=>{IWe(e,{get entry(){return L(t)}})},a=e=>{e9(e,{get entry(){return L(t)}})};H(r,e=>{x7.auditGroupSessions?e(i):e(a,-1)}),D(n),ai(n,()=>iHe,()=>({duration:q5(150)})),oi(1,n,()=>sHe,()=>({live:L(t)._live})),B(e,n)}),D(t),B(e,t)};H(E,e=>{x7.loading&&x7.auditLog.entries.length===0?e(te):x7.auditLog.entries.length>0&&e(ne,1)});var re=F(E,2),ie=e=>{var t=UWe();a3(N(t),{}),D(t),B(e,t)};H(re,e=>{x7.auditLog.entries.length===0&&!x7.loading&&!Y.needsAuth&&e(ie)}),H3(F(re,2),{get total(){return x7.auditLog.total},get offset(){return x7.auditLog.offset},get limit(){return x7.auditLog.limit},onprev:()=>x7.auditLogPrevPage(),onnext:()=>x7.auditLogNextPage()}),D(_),D(i),I((e,t)=>{V(c,e),Di(w,x7.auditGroupSessions),V(ee,t)},[()=>use(),()=>Use()]),R(`change`,w,()=>x7.toggleAuditGroupSessions()),B(e,i),k()}Sr([`change`]);function t9(e){try{let t=JSON.parse(JSON.stringify(e||{}));return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}catch{return{}}}function n9(e){return Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(e=>e):e==null?[]:String(e).split(`,`).map(e=>e.trim()).filter(e=>e)}function r9(e,t){let n=String(t||``).trim();return(e||[]).find(e=>String(e&&e.type||``).trim()===n)||null}function i9(e){return Array.isArray(e)&&e.length>0&&String(e[0].type||``).trim()||`system_prompt`}function a9(e,t){let n=String(t||``).trim();return n&&r9(e,n)?n:i9(e)}function o9(e,t){let n=r9(e,t);return!n||!n.defaults?{}:t9(n.defaults)}function s9(e,t,n){return{...o9(e,n),...t9(t)}}function c9(e,t){let n=a9(e,t);return{name:``,type:n,description:``,user_path:``,config:o9(e,n)}}function KWe(e,t){if(!t)return e||[];let n=String(t).toLowerCase();return(e||[]).filter(e=>[e.name,e.type,e.user_path,e.description,e.summary].some(e=>String(e||``).toLowerCase().includes(n)))}function qWe(e,t){let n=r9(e,t);return n&&n.label?n.label:t||che()}function JWe(e,t){let n=r9(e,t);return Array.isArray(n&&n.fields)?n.fields:[]}function l9(e,t){if(!t||!e)return t&&t.input===`checkboxes`?[]:``;let n=e[t.key];return n==null?t.input===`checkboxes`?[]:``:t.input===`checkboxes`?n9(n):n}function u9(e,t,n){if(!t)return e;let r=t9(e);if(t.input===`number`){let e=String(n||``).trim();if(e===``)delete r[t.key];else{let n=Number(e);r[t.key]=Number.isFinite(n)?n:e}}else t.input===`checkboxes`?r[t.key]=n9(n):r[t.key]=n;return r}function YWe(e,t,n){return l9(e,t).includes(String(n||``).trim())}function XWe(e,t,n,r){let i=n9(l9(e,t)),a=String(n||``).trim();return a?u9(e,t,r?Array.from(new Set([...i,a])):i.filter(e=>e!==a)):e}function ZWe(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),description:String(e&&e.description||``).trim()||void 0,user_path:String(e&&e.user_path||``).trim()||void 0,config:t9(e&&e.config)}}var d9=new class{#e=j(Xt([]));get guardrails(){return L(this.#e)}set guardrails(e){M(this.#e,e,!0)}#t=j(Xt([]));get types(){return L(this.#t)}set types(e){M(this.#t,e,!0)}#n=j(!0);get available(){return L(this.#n)}set available(e){M(this.#n,e,!0)}#r=j(!1);get loading(){return L(this.#r)}set loading(e){M(this.#r,e,!0)}#i=j(!1);get typesLoading(){return L(this.#i)}set typesLoading(e){M(this.#i,e,!0)}#a=j(``);get error(){return L(this.#a)}set error(e){M(this.#a,e,!0)}#o=j(``);get filter(){return L(this.#o)}set filter(e){M(this.#o,e,!0)}#s=j(!1);get formOpen(){return L(this.#s)}set formOpen(e){M(this.#s,e,!0)}#c=j(!1);get formSubmitting(){return L(this.#c)}set formSubmitting(e){M(this.#c,e,!0)}#l=j(``);get deletingName(){return L(this.#l)}set deletingName(e){M(this.#l,e,!0)}#u=j(`create`);get formMode(){return L(this.#u)}set formMode(e){M(this.#u,e,!0)}#d=j(``);get formOriginalName(){return L(this.#d)}set formOriginalName(e){M(this.#d,e,!0)}#f=j(Xt({name:``,type:``,description:``,user_path:``,config:{}}));get form(){return L(this.#f)}set form(e){M(this.#f,e,!0)}get filtered(){return KWe(this.guardrails,this.filter)}typeLabel(e){return qWe(this.types,e)}typeFields(e){return JWe(this.types,e)}fieldValue(e){return l9(this.form&&this.form.config,e)}setFieldValue(e,t){this.form={...this.form,config:u9(this.form.config,e,t)}}arrayFieldSelected(e,t){return YWe(this.form&&this.form.config,e,t)}toggleArrayFieldValue(e,t,n){this.form={...this.form,config:XWe(this.form.config,e,t,n)}}openCreate(){this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=c9(this.types,i9(this.types)),this.formOpen=!0}openEdit(e){let t=a9(this.types,e&&e.type);this.formMode=`edit`,this.formOriginalName=String(e&&e.name||``).trim(),this.error=``,this.form={name:this.formOriginalName,type:t,description:String(e&&e.description||``).trim(),user_path:String(e&&e.user_path||``).trim(),config:s9(this.types,e&&e.config,t)},this.formOpen=!0}closeForm(){this.formOpen=!1,this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=c9(this.types,i9(this.types))}changeType(e){let t=a9(this.types,e);this.form={...this.form,type:t,config:o9(this.types,t)}}async fetchTypes(){this.typesLoading=!0;try{let e=await X3(`/admin/guardrails/types`,{label:`guardrail types`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.types=[];return}if(e.result&&(this.available=!0),this.types=e.items,e.status===`error`){this.error=e.error;return}let t=a9(this.types,this.form.type);this.form={...this.form,type:t,config:s9(this.types,this.form.config,t)}}finally{this.typesLoading=!1}}async fetchGuardrails(){this.loading=!0,this.error=``;try{let e=await X3(`/admin/guardrails`,{label:`guardrails`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.guardrails=[];return}e.result&&(this.available=!0),this.guardrails=e.items,this.error=e.error}finally{this.loading=!1}}async fetchPage(){await Promise.all([this.fetchTypes(),this.fetchGuardrails()])}async submitForm(){let e=String(this.form.name||``).trim(),t=String(this.form.type||``).trim();if(!e){this.error=dhe();return}if(!t){this.error=mhe();return}this.error=``,this.formSubmitting=!0;let n=ZWe(this.form);try{let t=await Z3(`/admin/guardrails`,`PUT`,n,{label:`save guardrail`,errorFallback:_he(),unavailableMessage:JO()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}sZ.success(bhe({name:e})),this.closeForm(),this.fetchGuardrails()}finally{this.formSubmitting=!1}}async deleteGuardrail(e){let t=String(e&&e.name||``).trim();if(!(!t||this.deletingName)&&window.confirm(Mhe({name:t}))){this.deletingName=t;try{let e=await Z3(`/admin/guardrails`,`DELETE`,{name:t},{label:`delete guardrail`,errorFallback:Fhe(),unavailableMessage:JO()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,sZ.error(e.error);return}if(e.status===`error`){sZ.error(e.error);return}sZ.success(Rhe({name:t})),this.formOpen&&this.formOriginalName===t&&this.closeForm(),this.fetchGuardrails()}finally{this.deletingName=``}}}},QWe=z(`
                    `),$We=z(`

                    `),eGe=z(`
                    `),tGe=z(`
                    `),nGe=z(`
                    `),rGe=z(`

                    `),iGe=z(`

                    `);function aGe(e,t){O(t,!0);var n=iGe(),r=N(n),i=N(r),a=N(i),o=N(a,!0);D(a);var s=F(a,2),c=N(s,!0);D(s),D(i);var l=F(i,2),u=N(l);q(u,{get icon(){return uX},class:`form-action-icon`});var d=F(u,2),f=N(d,!0);D(d),D(l),D(r);var p=F(r,2),m=e=>{var t=QWe(),n=N(t),r=N(n);{let e=A(()=>ek()),t=A(()=>rk());z3(r,{id:`guardrail-filter`,get placeholder(){return L(e)},get label(){return L(t)},get value(){return d9.filter},set value(e){d9.filter=e}})}D(n),D(t),B(e,t)};H(p,e=>{d9.available&&e(m)});var h=F(p,2),g=e=>{var t=$We(),n=N(t);{let e=A(()=>Ik());i3(n,{size:16,get label(){return L(e)}})}var r=F(n);D(t),I(e=>V(r,` ${e??``}`),[()=>Ik()]),B(e,t)};H(h,e=>{d9.loading&&d9.filtered.length===0&&e(g)});var _=F(h,2),v=e=>{var t=nGe(),n=N(t),r=N(n),i=N(r),a=N(i),o=N(a,!0);D(a);var s=F(a),c=N(s,!0);D(s);var l=F(s),u=N(l,!0);D(l);var d=F(l),f=N(d,!0);D(d);var p=F(d),m=N(p,!0);D(p),D(i),D(r);var h=F(r);U(h,21,()=>d9.filtered,e=>e.name,(e,t)=>{var n=tGe(),r=N(n),i=N(r,!0);D(r);var a=F(r),o=N(a),s=N(o,!0);D(o),D(a);var c=F(a),l=N(c,!0);D(c);var u=F(c),d=N(u),f=N(d,!0);D(d);var p=F(d,2),m=e=>{var n=eGe(),r=N(n,!0);D(n),I(()=>V(r,L(t).description)),B(e,n)};H(p,e=>{L(t).description&&e(m)}),D(u);var h=F(u),g=N(h),_=N(g);{let e=A(()=>Che({name:L(t).name}));Y3(_,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>d9.openEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return lX},class:`table-icon-svg`})},$$slots:{default:!0}})}var v=F(_,2);{let e=A(()=>d9.deletingName===L(t).name?khe({name:L(t).name}):Ehe({name:L(t).name})),n=A(()=>d9.deletingName===L(t).name);Y3(v,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>d9.deleteGuardrail(L(t)),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return bX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(g),D(h),D(n),I((e,n)=>{V(i,L(t).name),V(s,e),V(l,L(t).user_path||`—`),V(f,n)},[()=>d9.typeLabel(L(t).type),()=>L(t).summary||L(t).description||zk()]),B(e,n)}),D(h),D(n),D(t),I((e,t,n,r,i)=>{V(o,e),V(c,t),V(u,n),V(f,r),V(m,i)},[()=>ok(),()=>lk(),()=>fk(),()=>hk(),()=>vk()]),B(e,t)};H(_,e=>{d9.filtered.length>0&&e(v)});var y=F(_,2),b=e=>{var t=rGe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>xk()]),B(e,t)};H(y,e=>{d9.filtered.length===0&&!d9.loading&&d9.available&&!d9.error&&!Y.authError&&e(b)}),D(n),I((e,t,n)=>{V(o,e),V(c,t),l.disabled=d9.typesLoading||d9.formSubmitting||!d9.available,V(f,n)},[()=>zO(),()=>Nk(),()=>ZO()]),R(`click`,l,()=>d9.openCreate()),B(e,n),k()}Sr([`click`]);var oGe=z(`

                    `),sGe=z(``),f9=z(``),cGe=z(``),lGe=z(``),uGe=z(``),dGe=z(``),fGe=z(``),pGe=z(``),mGe=z(``),hGe=z(`
                    `),gGe=z(``),_Ge=z(` `),vGe=z(`
                    `),yGe=z(`
                    `);function bGe(e,t){O(t,!0);let n=A(()=>d9.formMode===`edit`);{let t=e=>{var t=oGe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>xM()]),B(e,t)},r=A(()=>L(n)?fM():ZO()),i=A(()=>hM()),a=A(()=>vM());S6(e,{get open(){return d9.formOpen},get title(){return L(r)},get ariaLabel(){return L(i)},get error(){return d9.error},get submitting(){return d9.formSubmitting},get submitLabel(){return L(a)},dialogClass:`settings-guardrails-editor guardrails-editor-wide`,onclose:()=>d9.closeForm(),onsubmit:()=>d9.submitForm(),headerHint:t,children:(e,t)=>{var r=yGe(),i=N(r);{let e=A(()=>ok());C6(i,{id:`guardrail-name`,get label(){return L(e)},children:(e,t)=>{var r=sGe();Ti(r),I(()=>{r.disabled=L(n),G(r,`data-modal-autofocus`,!L(n)||void 0)}),Mi(r,()=>d9.form.name,e=>d9.form.name=e),B(e,r)},$$slots:{default:!0}})}var a=F(i,2);{let e=A(()=>lk());C6(a,{id:`guardrail-type`,get label(){return L(e)},children:(e,t)=>{var r=cGe();U(r,21,()=>d9.types,e=>e.type,(e,t)=>{var n=f9(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).type)&&(n.value=(n.__value=L(t).type)??``)}),B(e,n)}),D(r);var i;_i(r),I(()=>{r.disabled=L(n),i!==(i=d9.form.type)&&(r.value=(r.__value=d9.form.type)??``,gi(r,d9.form.type))}),R(`change`,r,e=>d9.changeType(e.currentTarget.value)),B(e,r)},$$slots:{default:!0}})}var o=F(a,2);{let e=A(()=>wM());C6(o,{id:`guardrail-description`,get label(){return L(e)},children:(e,t)=>{var r=lGe();Ti(r),I(e=>{G(r,`placeholder`,e),G(r,`data-modal-autofocus`,L(n)?!0:void 0)},[()=>DM()]),Mi(r,()=>d9.form.description,e=>d9.form.description=e),B(e,r)},$$slots:{default:!0}})}var s=F(o,2),c=N(s);{let e=e=>{var t=uGe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>fk()]),B(e,t)},t=A(()=>AM()),n=A(()=>NM());c3(c,{copyId:`guardrail-user-path-help-copy`,get label(){return L(t)},get text(){return L(n)},title:e,$$slots:{title:!0}})}var l=F(c,2);Ti(l),D(s),U(F(s,2),17,()=>d9.typeFields(d9.form.type),e=>e.key,(e,t)=>{var n=kr(),r=P(n),i=e=>{var n=hGe(),r=N(n);{let e=e=>{var n=dGe(),r=N(n,!0);D(n),I(()=>{G(n,`for`,`guardrail-field-`+L(t).key),V(r,L(t).label)}),B(e,n)},n=A(()=>`guardrail-field-help-`+L(t).key),i=A(()=>L(t).label+` help`),a=A(()=>L(t).help||``);c3(r,{get copyId(){return L(n)},get label(){return L(i)},get text(){return L(a)},title:e,$$slots:{title:!0}})}var i=F(r,2),a=e=>{var n=fGe();U(n,21,()=>L(t).options||[],e=>e.value,(e,t)=>{var n=f9(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(n);var r;_i(n),I(e=>{G(n,`id`,`guardrail-field-`+L(t).key),G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0),r!==(r=e)&&(n.value=(n.__value=e)??``,gi(n,e))},[()=>d9.fieldValue(L(t))]),R(`change`,n,e=>d9.setFieldValue(L(t),e.currentTarget.value)),B(e,n)},o=e=>{var n=pGe();at(n),I(e=>{G(n,`id`,`guardrail-field-`+L(t).key),G(n,`placeholder`,L(t).placeholder||``),Ei(n,e),G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0)},[()=>d9.fieldValue(L(t))]),R(`input`,n,e=>d9.setFieldValue(L(t),e.currentTarget.value)),B(e,n)},s=e=>{var n=mGe();Ti(n),I(e=>{G(n,`id`,`guardrail-field-`+L(t).key),G(n,`type`,L(t).input||`text`),G(n,`placeholder`,L(t).placeholder||``),Ei(n,e),G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0)},[()=>d9.fieldValue(L(t))]),R(`input`,n,e=>d9.setFieldValue(L(t),e.currentTarget.value)),B(e,n)};H(i,e=>{L(t).input===`select`?e(a):L(t).input===`textarea`?e(o,1):e(s,-1)}),D(n),B(e,n)},a=e=>{var n=vGe(),r=N(n),i=N(r,!0);D(r);var a=F(r,2);U(a,21,()=>L(t).options||[],e=>L(t).key+`-`+e.value,(e,n)=>{var r=gGe(),i=N(r);Ti(i);var a=F(i,2),o=N(a,!0);D(a),D(r),I(e=>{Di(i,e),V(o,L(n).label)},[()=>d9.arrayFieldSelected(L(t),L(n).value)]),R(`change`,i,e=>d9.toggleArrayFieldValue(L(t),L(n).value,e.currentTarget.checked)),B(e,r)}),D(a);var o=F(a,2),s=e=>{var n=_Ge(),r=N(n,!0);D(n),I(()=>{G(n,`id`,`guardrail-field-help-`+L(t).key),V(r,L(t).help)}),B(e,n)};H(o,e=>{L(t).help&&e(s)}),D(n),I(()=>{G(n,`aria-describedby`,L(t).help?`guardrail-field-help-`+L(t).key:void 0),V(i,L(t).label)}),B(e,n)};H(r,e=>{L(t).input===`checkboxes`?e(a,-1):e(i)}),B(e,n)}),D(r),I(e=>G(l,`aria-label`,e),[()=>fk()]),Mi(l,()=>d9.form.user_path,e=>d9.form.user_path=e),B(e,r)},$$slots:{headerHint:!0,default:!0}})}k()}Sr([`change`,`input`]);var xGe=z(`

                    `),p9=z(`
                    `),SGe=z(`

                    `);function CGe(e,t){O(t,!0),hn(()=>{Y.refreshTick,wX.page===`guardrails`&&(ZX.ensureLoaded(),d9.fetchPage())});var n=SGe(),r=N(n),i=N(r),a=N(i);{let e=e=>{var t=xGe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>AO()]),B(e,t)},t=A(()=>wk()),n=A(()=>Dk());c3(a,{copyId:`guardrails-help-copy`,get label(){return L(t)},get text(){return L(n)},title:e,$$slots:{title:!0}})}D(i),D(r);var o=F(r,2),s=N(o),c=N(s),l=N(c,!0);D(c);var u=F(c,2),d=N(u,!0);D(u);var f=F(u,2),p=N(f,!0);D(f),D(s);var m=F(s,2),h=N(m),g=N(h),_=N(g,!0);D(g);var v=F(g,2),y=N(v,!0);D(v),D(h);var b=F(h,2),x=N(b),S=N(x,!0);D(x);var C=F(x,2),w=N(C,!0);D(C),D(b),D(m),D(o);var T=F(o,2);jZ(T,{});var ee=F(T,2),E=e=>{var t=p9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>GO()]),B(e,t)},te=A(()=>!ZX.guardrailsVisible());H(ee,e=>{L(te)&&e(E)});var ne=F(ee,2),re=e=>{var t=p9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>JO()]),B(e,t)};H(ne,e=>{!Y.authError&&!d9.available&&e(re)});var ie=F(ne,2),ae=e=>{var t=p9(),n=N(t,!0);D(t),I(()=>V(n,d9.error)),B(e,t)};H(ie,e=>{!Y.authError&&d9.error&&!d9.formOpen&&e(ae)});var oe=F(ie,2);bGe(oe,{}),aGe(F(oe,2),{}),D(n),I((e,t,n,r,i,a,o)=>{V(l,e),V(d,t),V(p,n),V(_,r),V(y,i),V(S,a),V(w,o)},[()=>NO(),()=>IO(),()=>Ak(),()=>zO(),()=>uZ(d9.guardrails.length),()=>HO(),()=>uZ(d9.types.length)]),B(e,n),k()}var $=new class{#e=j(Xt([]));get servers(){return L(this.#e)}set servers(e){M(this.#e,e,!0)}#t=j(!0);get available(){return L(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return L(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return L(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return L(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return L(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get formSubmitting(){return L(this.#o)}set formSubmitting(e){M(this.#o,e,!0)}#s=j(`create`);get formMode(){return L(this.#s)}set formMode(e){M(this.#s,e,!0)}#c=j(!1);get slugEdited(){return L(this.#c)}set slugEdited(e){M(this.#c,e,!0)}#l=j(!1);get advancedOpen(){return L(this.#l)}set advancedOpen(e){M(this.#l,e,!0)}#u=j(Xt(P4()));get form(){return L(this.#u)}set form(e){M(this.#u,e,!0)}#d=j(``);get deletingName(){return L(this.#d)}set deletingName(e){M(this.#d,e,!0)}#f=j(``);get reconnectingName(){return L(this.#f)}set reconnectingName(e){M(this.#f,e,!0)}#p=j(!1);get catalogOpen(){return L(this.#p)}set catalogOpen(e){M(this.#p,e,!0)}#m=j(!1);get catalogLoading(){return L(this.#m)}set catalogLoading(e){M(this.#m,e,!0)}#h=j(``);get catalogError(){return L(this.#h)}set catalogError(e){M(this.#h,e,!0)}#g=j(Xt(F4()));get catalog(){return L(this.#g)}set catalog(e){M(this.#g,e,!0)}#_=A(()=>INe(this.servers,this.filter));get filtered(){return L(this.#_)}set filtered(e){M(this.#_,e)}async fetchServers(){if(await ZX.ensureLoaded(),!ZX.mcpVisible()){this.available=!1,this.servers=[],this.error=``,this.loading=!1;return}this.loading=!0,this.error=``;try{let e=await X3(`/admin/mcp-servers`,{label:`mcp servers`,errorFallback:IV(),unavailableStatuses:[503,404]});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.servers=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.servers=[],this.error=e.error;return}this.available=!0,this.servers=e.items}finally{this.loading=!1}}openCreate(){this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=P4(),this.formOpen=!0}openEdit(e){!e||e.managed||(this.formMode=`edit`,this.slugEdited=!0,this.advancedOpen=!1,this.error=``,this.form=LNe(e),this.formOpen=!0)}closeForm(){this.formOpen=!1,this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=P4()}syncSlugFromName(){this.formMode===`create`&&!this.slugEdited&&(this.form.slug=B4(this.form.name))}markSlugEdited(){this.formMode===`create`&&(this.slugEdited=!0)}addHeader(){this.form.headers.push({name:``,value:``})}removeHeader(e){this.form.headers.splice(e,1)}async submitForm(){let e=RNe(this.form,this.formMode,this.servers);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await Z3(`/admin/mcp-servers`,`PUT`,e.payload,{label:`save mcp server`,errorFallback:zV(),unavailableMessage:hw()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}sZ.success(HV({name:e.payload.name})),this.closeForm(),this.fetchServers()}finally{this.formSubmitting=!1}}async deleteServer(e){let t=String(e&&e.name||``).trim(),n=I4(e);if(!(!n||this.deletingName||e&&e.managed)&&confirm(GV({name:t}))){this.deletingName=n;try{let e=await Z3(`/admin/mcp-servers/`+encodeURIComponent(n),`DELETE`,void 0,{label:`delete mcp server`,errorFallback:JV(),unavailableMessage:hw()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,sZ.error(e.error);return}if(e.status===`error`){sZ.error(e.error);return}sZ.success(ZV({name:t})),this.formOpen&&this.form.slug===n&&this.closeForm(),this.fetchServers()}finally{this.deletingName=``}}}async reconnectServer(e){let t=String(e&&e.name||``).trim(),n=I4(e);if(!(!n||this.reconnectingName)){this.reconnectingName=n;try{let e=await Z3(`/admin/mcp-servers/`+encodeURIComponent(n)+`/reconnect`,`POST`,void 0,{label:`reconnect mcp server`,errorFallback:eH(),unavailableMessage:hw()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,sZ.error(e.error);return}if(e.status===`error`){sZ.error(e.error);return}let r=e.result.data,i=L4(r);i===`connected`?sZ.success(rH({name:t})):i===`disabled`?sZ.success(oH({name:t})):sZ.error(lH({name:t,status:i})),r&&r.name?this.servers=(this.servers||[]).map(e=>I4(e)===I4(r)?r:e):this.fetchServers()}finally{this.reconnectingName=``}}}async openCatalog(e){let t=String(e&&e.name||``).trim(),n=I4(e);if(n){this.catalogOpen=!0,this.catalogLoading=!0,this.catalogError=``,this.catalog={...F4(),server:n,status:L4(e)};try{let e=await JX(`/admin/mcp-servers/`+encodeURIComponent(n)+`/catalog`,{label:`mcp server catalog`});if(e.stale)return;if(e.status===503){this.available=!1,this.catalogError=hw();return}if(e.status===404){this.catalogError=fH({name:t});return}if(!e.ok){this.catalogError=e.status===401?rz():WX(e.data,hH());return}this.catalog=zNe(n,e.data)}catch(e){console.error(`Failed to load MCP server catalog:`,e),this.catalogError=hH()}finally{this.catalogLoading=!1}}}closeCatalog(){this.catalogOpen=!1,this.catalogLoading=!1,this.catalogError=``,this.catalog=F4()}},wGe=z(``),TGe=z(`

                    `),EGe=z(`
                    `),DGe=z(`

                    `),OGe=z(`
                  • `),kGe=z(`

                      `),AGe=z(`

                      `),jGe=z(` `,1),MGe=z(``);function NGe(e,t){O(t,!0);let n=A(()=>V4($.catalog));$X(e,{get open(){return $.catalogOpen},variant:`editor`,onclose:()=>$.closeCatalog(),children:(e,t)=>{var r=MGe(),i=N(r),a=N(i),o=N(a),s=N(o,!0);D(o);var c=F(o,2),l=N(c),u=N(l,!0);D(l);var d=F(l,2),f=N(d,!0);D(d),D(c),D(a);var p=F(a,2);{let e=A(()=>zw());QX(p,{get label(){return L(e)},onclick:()=>$.closeCatalog()})}D(i);var m=F(i,2),h=e=>{{let t=A(()=>Hw());J3(e,{get label(){return L(t)}})}},g=e=>{var t=wGe(),n=N(t,!0);D(t),I(()=>V(n,$.catalogError)),B(e,t)},_=e=>{var t=jGe(),r=P(t),i=e=>{var t=TGe(),n=N(t,!0);D(t),I(()=>V(n,$.catalog.instructions)),B(e,t)};H(r,e=>{$.catalog.instructions&&e(i)});var a=F(r,2);U(a,17,()=>L(n),e=>e.key,(e,t)=>{var n=kGe(),r=N(n),i=N(r,!0);D(r);var a=F(r,2);U(a,21,()=>L(t).items,e=>e.key,(e,t)=>{var n=OGe(),r=N(n),i=N(r,!0);D(r);var a=F(r,2),o=e=>{var n=EGe(),r=N(n,!0);D(n),I(e=>{G(n,`title`,e),V(r,L(t).aggregated)},[()=>Gw({name:L(t).aggregated})]),B(e,n)};H(a,e=>{L(t).aggregated&&e(o)});var s=F(a,2),c=e=>{var n=DGe(),r=N(n,!0);D(n),I(()=>V(r,L(t).description)),B(e,n)};H(s,e=>{L(t).description&&e(c)}),D(n),I(()=>{G(r,`title`,L(t).aggregated||L(t).name),V(i,L(t).name)}),B(e,n)}),D(a),D(n),I(()=>V(i,L(t).title)),B(e,n)});var o=F(a,2),s=e=>{var t=AGe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Jw()]),B(e,t)},c=A(()=>VNe($.catalog));H(o,e=>{L(c)&&e(s)}),B(e,t)};H(m,e=>{$.catalogLoading?e(h):$.catalogError?e(g,1):e(_,-1)});var v=F(m,2),y=N(v),b=N(y,!0);D(y),D(v),D(r),I((e,t,n,i,a)=>{G(r,`aria-label`,e),V(s,t),V(u,$.catalog.server),W(d,1,`audit-status-badge ${n??``}`,`svelte-1xqrzco`),V(f,i),V(b,a)},[()=>Nw(),()=>Iw(),()=>R4($.catalog),()=>L4($.catalog),()=>Zw()]),R(`click`,y,()=>$.closeCatalog()),B(e,r)},$$slots:{default:!0}}),k()}Sr([`click`]);var PGe=z(`

                      `),FGe=z(` `,1),m9=z(` `),IGe=z(` `,1),LGe=z(` `,1),RGe=z(``),zGe=z(`
                      `),BGe=z(`
                      `,1);function VGe(e,t){O(t,!0);{let t=e=>{var t=PGe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>oT()]),B(e,t)},n=A(()=>$.formMode===`edit`?eT():fw()),r=A(()=>rT());S6(e,{get open(){return $.formOpen},get title(){return L(n)},get ariaLabel(){return L(r)},get error(){return $.error},get submitting(){return $.formSubmitting},onclose:()=>$.closeForm(),onsubmit:()=>$.submitForm(),headerHint:t,children:(e,t)=>{var n=BGe(),r=P(n);{let e=A(()=>lT());C6(r,{id:`mcp-server-name`,get label(){return L(e)},children:(e,t)=>{var n=FGe(),r=P(n);Ti(r);var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>fT()]),R(`input`,r,()=>$.syncSlugFromName()),Mi(r,()=>$.form.name,e=>$.form.name=e),B(e,n)},$$slots:{default:!0}})}var i=F(r,2);{let e=A(()=>hT());C6(i,{id:`mcp-server-slug`,get label(){return L(e)},children:(e,t)=>{var n=IGe(),r=P(n);Ti(r);var i=F(r,2),a=e=>{var t=m9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>vT()]),B(e,t)},o=e=>{var t=m9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>xT()]),B(e,t)};H(i,e=>{$.formMode===`create`?e(a):e(o,-1)}),I(()=>r.disabled=$.formMode===`edit`),R(`input`,r,()=>$.markSlugEdited()),Mi(r,()=>$.form.slug,e=>$.form.slug=e),B(e,n)},$$slots:{default:!0}})}var a=F(i,2);{let e=A(()=>wT());C6(a,{id:`mcp-server-transport`,get label(){return L(e)},children:(e,t)=>{var n=LGe(),r=P(n),i=N(r);i.value=i.__value=`http`;var a=F(i);a.value=a.__value=`sse`,D(r);var o=F(r,2),s=N(o,!0);D(o),I(e=>V(s,e),[()=>DT()]),vi(r,()=>$.form.transport,e=>$.form.transport=e),B(e,n)},$$slots:{default:!0}})}var o=F(a,2);C6(o,{id:`mcp-server-url`,label:`URL`,children:(e,t)=>{var n=RGe();Ti(n),Mi(n,()=>$.form.url,e=>$.form.url=e),B(e,n)},$$slots:{default:!0}});var s=F(o,2),c=N(s),l=N(c,!0);D(c);var u=F(c,2);U(u,21,()=>$.form.headers,Lr,(e,t,n)=>{var r=zGe(),i=N(r);Ti(i);var a=F(i,2);Ti(a);var o=F(a,2);{let e=A(()=>zT());Y3(o,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>$.removeHeader(n),children:(e,t)=>{q(e,{get icon(){return _X},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r),I((e,t)=>{G(i,`aria-label`,e),G(a,`aria-label`,t)},[()=>NT(),()=>IT()]),Mi(i,()=>L(t).name,e=>L(t).name=e),Mi(a,()=>L(t).value,e=>L(t).value=e),B(e,r)}),D(u);var d=F(u,2),f=N(d),p=N(f);q(p,{get icon(){return uX},class:`form-action-icon`});var m=F(p,2),h=N(m,!0);D(m),D(f),D(d);var g=F(d,2),_=N(g,!0);D(g),D(s);var v=F(s,2),y=N(v);Z8(N(y),{get enabled(){return $.form.enabled},label:`MCP server`,onclick:()=>$.form.enabled=!$.form.enabled}),D(y),D(v);var b=F(v,2),x=N(b),S=N(x),C=N(S),w=N(C,!0);D(C);var T=F(C,2),ee=N(T,!0);D(T),D(S),D(x);var E=F(x,2),te=N(E),ne=N(te),re=N(ne,!0);D(ne);var ie=F(ne,2);Ti(ie),D(te);var ae=F(te,2),oe=N(ae),se=N(oe,!0);D(oe);var ce=F(oe,2);Ti(ce),D(ae);var le=F(ae,2),ue=N(le),de=N(ue,!0);D(ue);var fe=F(ue,2);Ti(fe),D(le);var pe=F(le,2),me=N(pe),he=N(me,!0);D(me);var ge=F(me,2);at(ge),G(ge,`placeholder`,`/ +/team/alpha`),D(pe);var _e=F(pe,2),ve=N(_e),ye=N(ve,!0);D(ve);var be=F(ve,2);Ti(be),D(_e),D(E),D(b),I((e,t,n,r,i,a,o,s,c,u,d,f,p,m)=>{V(l,e),V(h,t),V(_,n),b.open=$.advancedOpen,V(w,r),V(ee,i),V(re,a),G(ie,`placeholder`,o),V(se,s),G(ce,`placeholder`,c),V(de,u),G(fe,`placeholder`,d),V(he,f),V(ye,p),G(be,`placeholder`,m)},[()=>AT(),()=>HT(),()=>GT(),()=>JT(),()=>ZT(),()=>eE(),()=>hwe(),()=>rE(),()=>vwe(),()=>oE(),()=>xwe(),()=>lE(),()=>fE(),()=>hE()]),R(`click`,f,()=>$.addHeader()),xr(`toggle`,b,e=>$.advancedOpen=e.currentTarget.open),Mi(ie,()=>$.form.description,e=>$.form.description=e),Mi(ce,()=>$.form.allowed_tools,e=>$.form.allowed_tools=e),Mi(fe,()=>$.form.disallowed_tools,e=>$.form.disallowed_tools=e),Mi(ge,()=>$.form.user_paths,e=>$.form.user_paths=e),Mi(be,()=>$.form.tool_timeout_seconds,e=>$.form.tool_timeout_seconds=e),B(e,n)},$$slots:{headerHint:!0,default:!0}})}k()}Sr([`input`,`click`]);var HGe=z(` `),UGe=z(`
                      `),WGe=z(`
                      `),GGe=z(`
                      `);function KGe(e,t){O(t,!0);function n(e){return jNe(e,e=>UX.formatTimestamp(e))}var r=GGe(),i=N(r),a=N(i),o=N(a),s=N(o),c=N(s,!0);D(s);var l=F(s),u=N(l,!0);D(l);var d=F(l),f=N(d,!0);D(d);var p=F(d),m=N(p,!0);D(p);var h=F(p),g=N(h,!0);D(h);var _=F(h),v=N(_,!0);D(_);var y=F(_),b=N(y,!0);D(y),D(o),D(a);var x=F(a);U(x,21,()=>$.filtered,e=>I4(e),(e,t)=>{var r=WGe(),i=N(r),a=N(i),o=N(a,!0);D(a);var s=F(a,2),c=e=>{var t=HGe(),n=N(t,!0);D(t),I((e,r)=>{G(t,`title`,e),V(n,r)},[()=>NB(),()=>ez()]),B(e,t)};H(s,e=>{L(t).managed&&e(c)});var l=F(s,2),u=N(l,!0);D(l),D(i);var d=F(i),f=N(d),p=N(f,!0);D(f),D(d);var m=F(d),h=N(m,!0);D(m);var g=F(m),_=N(g),v=N(_,!0);D(_);var y=F(_,2),b=e=>{var n=UGe(),r=N(n,!0);D(n),I(()=>V(r,L(t).last_error)),B(e,n)},x=A(()=>L4(L(t))===`degraded`&&L(t).last_error);H(y,e=>{L(x)&&e(b)}),D(g);var S=F(g),C=N(S),w=N(C,!0);D(C);var T=F(C,2),ee=N(T,!0);D(T),D(S);var E=F(S),te=N(E),ne=N(te,!0);D(te),D(E);var re=F(E),ie=N(re),ae=N(ie),oe=e=>{{let n=A(()=>IB({name:L(t).name}));Y3(e,{get label(){return L(n)},class:`table-icon-btn`,onclick:()=>$.openEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return lX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(ae,e=>{L(t).managed||e(oe)});var se=F(ae,2);{let e=A(()=>zB({name:L(t).name}));Y3(se,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>$.openCatalog(L(t)),children:(e,t)=>{q(e,{get icon(){return FTe},class:`form-action-icon`})},$$slots:{default:!0}})}var ce=F(se,2);{let e=A(()=>$.reconnectingName===I4(L(t))?GB({name:L(t).name}):HB({name:L(t).name})),n=A(()=>$.reconnectingName===I4(L(t)));Y3(ce,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>$.reconnectServer(L(t)),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return dX},class:`form-action-icon`})},$$slots:{default:!0}})}var le=F(ce,2),ue=e=>{{let n=A(()=>$.deletingName===I4(L(t))?ZB({name:L(t).name}):JB({name:L(t).name})),r=A(()=>$.deletingName===I4(L(t)));Y3(e,{get label(){return L(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>$.deleteServer(L(t)),get disabled(){return L(r)},children:(e,t)=>{q(e,{get icon(){return bX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(le,e=>{L(t).managed||e(ue)}),D(ie),D(re),D(r),I((e,n,r,i,a,s,c,l,d)=>{V(o,L(t).name),V(u,e),V(p,L(t).transport||`http`),G(m,`title`,n),V(h,r),W(_,1,`audit-status-badge ${i??``}`,`svelte-ah8nrt`),G(_,`title`,a),V(v,s),V(w,c),V(ee,l),W(te,1,ui([`auth-key-status-badge`,L(t).enabled?`auth-key-status-active`:`auth-key-status-inactive`])),V(ne,d)},[()=>I4(L(t)),()=>z4(L(t)),()=>z4(L(t)),()=>R4(L(t)),()=>n(L(t)),()=>ANe(L(t)),()=>uZ(L(t).tool_count||0),()=>MNe(L(t)),()=>L(t).enabled?JR():ZR()]),B(e,r)}),D(x),D(i),D(r),I((e,t,n,r,i,a,o)=>{V(c,e),V(u,t),V(f,n),V(m,r),V(g,i),V(v,a),V(b,o)},[()=>lT(),()=>hB(),()=>vB(),()=>xB(),()=>wB(),()=>DB(),()=>AB()]),B(e,r),k()}var qGe=z(`

                      `),JGe=z(``),YGe=z(`
                      `),XGe=z(``),ZGe=z(`
                      `),h9=z(`

                      `),QGe=z(`
                      `);function $Ge(e,t){O(t,!0);let n=lw();hn(()=>{Y.refreshTick,wX.page===`mcp-servers`&&$.fetchServers()});var r=QGe(),i=N(r),a=N(i),o=N(a);{let e=e=>{var t=qGe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>rw()]),B(e,t)},t=A(()=>ow());c3(o,{copyId:`mcp-servers-help-copy`,get label(){return L(t)},get text(){return n},title:e,$$slots:{title:!0}})}D(a);var s=F(a,2),c=N(s),l=e=>{var t=JGe(),n=N(t);q(n,{get icon(){return uX},class:`form-action-icon`});var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>{t.disabled=$.formSubmitting,V(i,e)},[()=>fw()]),R(`click`,t,()=>$.openCreate()),B(e,t)};H(c,e=>{$.available&&!Y.authError&&e(l)}),D(s),D(i);var u=F(i,2),d=e=>{var t=YGe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>hw()]),B(e,t)};H(u,e=>{!$.available&&!Y.authError&&e(d)});var f=F(u,2),p=e=>{var t=XGe(),n=N(t,!0);D(t),I(()=>V(n,$.error)),B(e,t)};H(f,e=>{$.error&&!Y.authError&&!$.formOpen&&e(p)});var m=F(f,2),h=e=>{{let t=A(()=>vw());J3(e,{get label(){return L(t)}})}};H(m,e=>{$.loading&&!Y.authError&&e(h)});var g=F(m,2),_=e=>{var t=ZGe(),n=N(t),r=N(n);{let e=A(()=>xw()),t=A(()=>ww());z3(r,{id:`mcp-server-filter`,get placeholder(){return L(e)},get label(){return L(t)},get value(){return $.filter},set value(e){$.filter=e}})}D(n),D(t),B(e,t)};H(g,e=>{($.servers.length>0||$.filter)&&$.available&&!Y.authError&&e(_)});var v=F(g,2);VGe(v,{});var y=F(v,2);NGe(y,{});var b=F(y,2),x=e=>{KGe(e,{})};H(b,e=>{$.filtered.length>0&&$.available&&!Y.authError&&e(x)});var S=F(b,2),C=e=>{var t=h9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Dw()]),B(e,t)};H(S,e=>{$.servers.length===0&&!$.filter&&!$.loading&&!Y.authError&&!$.error&&$.available&&e(C)});var w=F(S,2),T=e=>{var t=h9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Aw()]),B(e,t)};H(w,e=>{$.servers.length>0&&$.filtered.length===0&&$.filter&&!$.loading&&!Y.authError&&$.available&&e(T)}),D(r),B(e,r),k()}Sr([`click`]);var g9=`api_keys`,_9=`session_sticky_keys`,v9=`base_url`,y9=`service_account_json`,b9=`models`,x9=[g9,_9,v9,`api_version`,`backend`,`auth_type`,`api_mode`,`vertex_project`,`vertex_location`,`service_account_file`,y9,`service_account_json_base64`,`gcp_scope`,b9];function eKe(){return{[g9]:{label:IU(),control:`keys`,hint:wW()},[_9]:{label:zU(),control:`checkbox`,hint:DW()},[v9]:{label:HU(),control:`text`},api_version:{label:GU(),control:`text`,placeholder:`e.g. 2024-10-01-preview`,hint:AW()},backend:{label:JU(),control:`select`,hint:NW()},auth_type:{label:ZU(),control:`select`,hint:IW()},api_mode:{label:eW(),control:`select`,hint:zW()},vertex_project:{label:rW(),control:`text`,placeholder:`my-gcp-project`},vertex_location:{label:oW(),control:`text`,placeholder:`us-central1`},service_account_file:{label:lW(),control:`text`,placeholder:`/path/to/service-account.json`,hint:HW()},[y9]:{label:fW(),control:`textarea`,placeholder:DCe(),hint:GW()},service_account_json_base64:{label:hW(),control:`text`,hint:JW()},gcp_scope:{label:vW(),control:`text`,placeholder:`https://www.googleapis.com/auth/cloud-platform`},[b9]:{label:xW(),control:`text`,placeholder:`gpt-4o, gpt-4o-mini`,hint:ZW()}}}function tKe(e){return eKe()[e]||{label:String(e||``).split(`_`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),control:`text`}}function S9(){return{name:``,type:``,api_keys:[],session_sticky_keys:!0,base_url:``,api_version:``,backend:``,auth_type:``,api_mode:``,vertex_project:``,vertex_location:``,service_account_file:``,service_account_json:``,service_account_json_base64:``,gcp_scope:``,models:``,enabled:!0}}function nKe(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.type,e.base_url].some(e=>String(e||``).toLowerCase().includes(r)))}function rKe(e,t){let n=(Array.isArray(e)?e:[]).map(e=>String(e&&e.type||``).trim()).filter(Boolean),r=String(t||``).trim();return r&&!n.includes(r)&&n.push(r),n}function iKe(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>String(e&&e.type||``).trim()===n)||null}function C9(e,t){let n=e&&Array.isArray(e.fields)&&e.fields.length>0?e.fields:x9.map(e=>({name:e,advanced:e!==g9})),r=t||e&&e.default_base_url||``,i=[],a=[];for(let e of n){let t=String(e&&e.name||``).trim();if(!t)continue;let n={...tKe(t),name:t,required:!!(e&&e.required),options:Array.isArray(e&&e.options)?e.options:[]};t===`base_url`&&r&&(n.placeholder=r,n.hint=eG({value:r})),n.options.length>0&&(n.control=`select`),(e&&e.advanced?a:i).push(n)}return{primary:i,advanced:a}}var aKe=new Set([`name`,`type`,`enabled`]);function oKe(e,t){let n=new Set([...t.primary||[],...t.advanced||[]].map(e=>e.name)),r=S9(),i={...e};for(let e of Object.keys(r))!aKe.has(e)&&!n.has(e)&&(i[e]=r[e]);return i}function sKe(e){let t=Array.isArray(e&&e.api_keys)?e.api_keys.length:0;return t>0?rG({count:t}):String(e&&e.service_account_json||``).trim()||String(e&&e.service_account_json_base64||``).trim()||String(e&&e.service_account_file||``).trim()?oG():String(e&&e.vertex_project||``).trim()?`ADC`:lG()}function cKe(e){let t=Array.isArray(e&&e.models)?e.models:[];return t.length===0?fG():hG({count:t.length})}function lKe(e){return(Array.isArray(e)?e:[]).map(e=>({value:String(e||``)}))}function w9(e){return(Array.isArray(e)?e:[]).map(e=>String(e&&e.value||``))}function uKe(e,t){let n=String(t||``).trim();if(!n)return``;let r=new Set((Array.isArray(e)?e:[]).map(e=>String(e&&e.name||``).trim()));if(!r.has(n))return n;let i=1;for(;r.has(n+`-`+i);)i+=1;return n+`-`+i}function dKe(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),api_keys:lKe(e&&e.api_keys),session_sticky_keys:!e||e.session_sticky_keys!==!1,base_url:String(e&&e.base_url||``),api_version:String(e&&e.api_version||``),backend:String(e&&e.backend||``),auth_type:String(e&&e.auth_type||``),api_mode:String(e&&e.api_mode||``),vertex_project:String(e&&e.vertex_project||``),vertex_location:String(e&&e.vertex_location||``),service_account_file:String(e&&e.service_account_file||``),service_account_json:String(e&&e.service_account_json||``),service_account_json_base64:String(e&&e.service_account_json_base64||``),gcp_scope:String(e&&e.gcp_scope||``),models:(Array.isArray(e&&e.models)?e.models:[]).join(`, `),enabled:!e||e.enabled!==!1}}function fKe(e){let t=String(e||``).trim();return t.length>=3&&/^\*+$/.test(t)}function pKe(e,t,n,r){let i={},a=String(e&&e.name||``).trim();String(e&&e.type||``).trim()||(i.type=ACe()),a?a.includes(`/`)?i.name=ICe():t===`create`&&(Array.isArray(n)?n:[]).some(e=>String(e&&e.name||``).trim()===a)&&(i.name=ZCe({name:a})):i.name=NCe();let{primary:o,advanced:s}=C9(r);for(let t of[...o,...s]){let n=mKe(e,t);n&&(i[t.name]=n)}return i}function mKe(e,t){if(t.name===`api_keys`){let n=w9(e&&e.api_keys);return t.required&&!n.some(e=>e.trim())?zCe():n.some(e=>!e.trim())?HCe():``}let n=String(e&&e[t.name]||``).trim();if(t.required&&!n)return ewe({field:t.label});if(!n)return``;if(t.name===`base_url`&&!n.includes(`://`)&&/[./]/.test(n))return GCe({value:n});if(t.name===`service_account_json`&&!fKe(n))try{JSON.parse(n)}catch{return JCe()}return``}function hKe(e,t){let n={name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),enabled:!!(e&&e.enabled)},{primary:r,advanced:i}=C9(t),a=!!(t&&Array.isArray(t.fields)&&t.fields.length>0),o=new Set;for(let t of[...r,...i])!a&&t.name===`session_sticky_keys`||(o.add(t.name),n[t.name]=T9(e,t.name));for(let t of x9){if(o.has(t)||t===`session_sticky_keys`)continue;let r=T9(e,t);(Array.isArray(r)?r.length>0:String(r).trim()!==``)&&(n[t]=r)}return n}function T9(e,t){switch(t){case g9:return w9(e&&e.api_keys);case b9:return cZ(e&&e.models);case _9:return!!(e&&e.session_sticky_keys);case y9:return e&&e.service_account_json||``;default:return String(e&&e[t]||``).trim()}}var E9=new class{#e=j(Xt([]));get rows(){return L(this.#e)}set rows(e){M(this.#e,e,!0)}#t=j(!0);get available(){return L(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return L(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return L(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return L(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return L(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get formSubmitting(){return L(this.#o)}set formSubmitting(e){M(this.#o,e,!0)}#s=j(`create`);get formMode(){return L(this.#s)}set formMode(e){M(this.#s,e,!0)}#c=j(!1);get advancedOpen(){return L(this.#c)}set advancedOpen(e){M(this.#c,e,!0)}#l=j(Xt(S9()));get form(){return L(this.#l)}set form(e){M(this.#l,e,!0)}#u=j(Xt({}));get fieldErrors(){return L(this.#u)}set fieldErrors(e){M(this.#u,e,!0)}#d=j(``);get focusField(){return L(this.#d)}set focusField(e){M(this.#d,e,!0)}#f=j(``);get deletingName(){return L(this.#f)}set deletingName(e){M(this.#f,e,!0)}#p=j(!1);get deleteSubmitting(){return L(this.#p)}set deleteSubmitting(e){M(this.#p,e,!0)}#m=j(Xt([]));get types(){return L(this.#m)}set types(e){M(this.#m,e,!0)}#h=j(!1);get typesLoaded(){return L(this.#h)}set typesLoaded(e){M(this.#h,e,!0)}#g=null;get filteredRows(){return nKe(this.rows,this.filter)}get schema(){return iKe(this.types,this.form.type)}get formFields(){if(!String(this.form.type||``).trim())return{primary:[],advanced:[]};let e=this.schema;return C9(e,e&&e.default_base_url)}async fetchTypes(){let e=await X3(`/admin/provider-credentials/types`,{label:`provider credential types`});e.status===`ok`&&(this.types=e.items,this.typesLoaded=!0)}async fetchPage(){this.#g&&this.#g.abort();let e=new AbortController;this.#g=e,this.loading=!0,this.error=``;try{let t=await X3(`/admin/provider-credentials`,{label:`provider credentials`,errorFallback:hU(),unavailableStatuses:[503,404],options:{signal:e.signal}});if(t.status===`stale`||e.signal.aborted)return;if(t.status===`unavailable`){this.available=!1,this.rows=[];return}if(t.status===`error`){t.result&&(this.available=!0),this.rows=[],this.error=t.error;return}this.available=!0,this.rows=t.items,this.typesLoaded||await this.fetchTypes()}finally{this.#g===e&&(this.#g=null,this.loading=!1)}}#_(e,t){this.formMode=e,this.form=t,this.advancedOpen=!1,this.error=``,this.fieldErrors={},this.focusField=``}openCreate(){this.#_(`create`,S9()),this.formOpen=!0,this.typesLoaded||this.fetchTypes()}openEdit(e){!e||e.managed||(this.#_(`edit`,dKe(e)),this.formOpen=!0,this.typesLoaded||this.fetchTypes())}closeForm(){this.formOpen=!1,this.#_(`create`,S9())}selectType(){this.fieldErrors={};let e=this.formFields;this.formMode===`create`&&(this.form=oKe(this.form,e));let t=e.primary.find(e=>e.name===`api_keys`);t&&t.required&&this.form.api_keys.length===0&&(this.form.api_keys=[{value:``}])}clearFieldError(e){if(this.fieldErrors[e]===void 0)return;let{[e]:t,...n}=this.fieldErrors;this.fieldErrors=n}addApiKeyRow(){this.form.api_keys.push({value:``}),this.clearFieldError(`api_keys`)}removeApiKeyRow(e){this.form.api_keys.splice(e,1),this.clearFieldError(`api_keys`)}#v(e){let t=WX(e,vU()),n=String(e&&e.error&&typeof e.error==`object`&&e.error.param||``).trim();if(n&&this.#y(n)){this.fieldErrors={...this.fieldErrors,[n]:t},this.error=``,this.#b();return}this.error=t}#y(e){if(e===`name`||e===`type`)return!0;let{primary:t,advanced:n}=this.formFields;return[...t,...n].some(t=>t.name===e)}#b(){let e=Object.keys(this.fieldErrors);if(e.length===0)return;let{primary:t,advanced:n}=this.formFields;n.some(t=>e.includes(t.name))&&(this.advancedOpen=!0);let r=[`type`,`name`,...t.map(e=>e.name),...n.map(e=>e.name)];this.focusField=r.find(t=>e.includes(t))||e[0]}#x(){AZ.fetchModels(),AZ.fetchCategories()}async submitForm(){let e=this.schema,t=pKe(this.form,this.formMode,this.rows,e);if(Object.keys(t).length>0){this.fieldErrors=t,this.error=``,this.#b();return}let n=hKe(this.form,e);this.error=``,this.fieldErrors={},this.formSubmitting=!0;try{let e=await Z3(`/admin/provider-credentials`,`PUT`,n,{label:`save provider credential`,errorFallback:vU(),unavailableMessage:rD()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.error=e.error;return}if(e.status===`error`){e.result&&e.result.status!==401?this.#v(e.result.data):this.error=e.error;return}sZ.success(xU({name:n.name})),this.closeForm(),this.#x(),this.fetchPage()}finally{this.formSubmitting=!1}}async performDelete(e){this.deleteSubmitting=!0,this.deletingName=e;try{let t=await Z3(`/admin/provider-credentials/`+encodeURIComponent(e),`DELETE`,void 0,{label:`delete provider credential`,errorFallback:wU(),unavailableMessage:rD()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,tZ.error=t.error;return}if(t.status===`error`){tZ.error=t.error;return}sZ.success(DU({name:e})),tZ.close(),this.formOpen&&this.form.name===e&&this.closeForm(),this.#x(),this.fetchPage()}finally{this.deleteSubmitting=!1,this.deletingName=``}}requestDelete(e){let t=String(e||``).trim();if(!t||this.deleteSubmitting)return;let n=(this.rows||[]).find(e=>String(e&&e.name||``).trim()===t);n&&n.managed||tZ.open({title:AU(),titleId:`providerCredentialDeleteDialogTitle`,inputId:`provider-credential-delete-confirmation`,message:NU({name:t}),requiredText:t,confirmLabel:AU(),icon:_X,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.performDelete(t)})}},gKe=z(` `),_Ke=z(` `,1),vKe=z(`
                      `),yKe=z(`
                      `);function bKe(e,t){O(t,!0);var n=yKe(),r=N(n),i=N(r),a=N(i),o=N(a),s=N(o,!0);D(o);var c=F(o),l=N(c,!0);D(c);var u=F(c),d=N(u,!0);D(u);var f=F(u),p=N(f,!0);D(f);var m=F(f),h=N(m,!0);D(m);var g=F(m),_=N(g,!0);D(g);var v=F(g),y=N(v,!0);D(v);var b=F(v),x=N(b,!0);D(b),D(a),D(i);var S=F(i);U(S,21,()=>E9.filteredRows,e=>e.name,(e,t)=>{var n=vKe(),r=N(n),i=N(r),a=N(i,!0);D(i);var o=F(i,2),s=e=>{var t=gKe(),n=N(t,!0);D(t),I((e,r)=>{G(t,`title`,e),V(n,r)},[()=>zD(),()=>ez()]),B(e,t)};H(o,e=>{L(t).managed&&e(s)}),D(r);var c=F(r),l=N(c),u=N(l,!0);D(l),D(c);var d=F(c),f=N(d,!0);D(d);var p=F(d),m=N(p,!0);D(p);var h=F(p),g=N(h,!0);D(h);var _=F(h),v=N(_);let y;var b=N(v,!0);D(v),D(_);var x=F(_),S=N(x,!0);D(x);var C=F(x),w=N(C),T=N(w),ee=e=>{var n=_Ke(),r=P(n);{let e=A(()=>oU({name:L(t).name}));Y3(r,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>E9.openEdit(L(t)),children:(e,t)=>{q(e,{get icon(){return lX},class:`table-icon-svg`})},$$slots:{default:!0}})}var i=F(r,2);{let e=A(()=>E9.deletingName===L(t).name?fU({name:L(t).name}):lU({name:L(t).name})),n=A(()=>E9.deletingName===L(t).name);Y3(i,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>E9.requestDelete(L(t).name),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return bX},class:`table-icon-svg`})},$$slots:{default:!0}})}B(e,n)};H(T,e=>{L(t).managed||e(ee)}),D(w),D(C),D(n),I((e,n,r,i)=>{V(a,L(t).name),V(u,L(t).type),G(d,`title`,L(t).base_url||``),V(f,L(t).base_url||`—`),V(m,e),V(g,n),y=W(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":L(t).enabled,"auth-key-status-inactive":!L(t).enabled}),V(b,r),V(S,i)},[()=>sKe(L(t)),()=>cKe(L(t)),()=>L(t).enabled?JR():ZR(),()=>UX.formatTimestamp(L(t).updated_at)]),B(e,n)}),D(S),D(r),D(n),I((e,t,n,r,i,a,o,c)=>{V(s,e),V(l,t),V(d,n),V(p,r),V(h,i),V(_,a),V(y,o),V(x,c)},[()=>vD(),()=>xD(),()=>bs(),()=>wD(),()=>DD(),()=>AD(),()=>ND(),()=>ID()]),B(e,n),k()}var xKe=z(``),SKe=z(`
                      `),CKe=z(`
                      `,1),wKe=z(``),TKe=z(``),EKe=z(``),DKe=z(``),OKe=z(``),kKe=z(` `),AKe=z(` `),jKe=z(`
                      `);function D9(e,t){O(t,!0);let n=A(()=>`provider-credential-`+t.field.name),r=A(()=>E9.fieldErrors[t.field.name]||``),i=A(()=>L(r)?L(n)+`-error`:t.field.hint?L(n)+`-hint`:void 0),a=A(()=>{let e=String(E9.form[t.field.name]||``).trim();return!e||t.field.options.includes(e)?t.field.options:[...t.field.options,e]});function o(){E9.clearFieldError(t.field.name)}var s=jKe(),c=N(s),l=N(c),u=F(l),d=e=>{B(e,xKe())};H(u,e=>{t.field.required&&e(d)}),D(c);var f=F(c,2),p=e=>{var t=CKe(),a=P(t);U(a,21,()=>E9.form.api_keys,Lr,(e,t,a)=>{var s=SKe(),c=N(s);Ti(c);var l=F(c,2);{let e=A(()=>ZH({number:a+1}));Y3(l,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>E9.removeApiKeyRow(a),children:(e,t)=>{q(e,{get icon(){return _X},class:`table-icon-svg`})},$$slots:{default:!0}})}D(s),I(e=>{G(c,`id`,a===0?L(n):L(n)+`-`+a),G(c,`aria-label`,e),G(c,`aria-invalid`,L(r)?`true`:void 0),G(c,`aria-describedby`,a===0?L(i):void 0)},[()=>JH({number:a+1})]),R(`input`,c,o),Mi(c,()=>L(t).value,e=>L(t).value=e),B(e,s)}),D(a);var s=F(a,2),c=N(s),l=N(c);q(l,{get icon(){return uX},class:`form-action-icon`});var u=F(l,2),d=N(u,!0);D(u),D(c),D(s),I(e=>{G(c,`id`,E9.form.api_keys.length===0?L(n):void 0),V(d,e)},[()=>eU()]),R(`click`,c,()=>E9.addApiKeyRow()),B(e,t)},m=e=>{var s=TKe(),c=N(s),l=N(c,!0);D(c),c.value=c.__value=``,U(F(c),16,()=>L(a),e=>e,(e,t)=>{var n=wKe(),r=N(n,!0);D(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),D(s),I(e=>{G(s,`id`,L(n)),G(s,`aria-invalid`,L(r)?`true`:void 0),G(s,`aria-describedby`,L(i)),V(l,e)},[()=>rU()]),R(`change`,s,o),vi(s,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),B(e,s)},h=e=>{var a=EKe();Ti(a),I(()=>{G(a,`id`,L(n)),G(a,`aria-invalid`,L(r)?`true`:void 0),G(a,`aria-describedby`,L(i))}),R(`change`,a,o),Ni(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),B(e,a)},g=e=>{var a=DKe();at(a),I(()=>{G(a,`id`,L(n)),G(a,`placeholder`,t.field.placeholder||``),G(a,`aria-invalid`,L(r)?`true`:void 0),G(a,`aria-describedby`,L(i))}),R(`input`,a,o),Mi(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),B(e,a)},_=e=>{var a=OKe();Ti(a),I(()=>{G(a,`id`,L(n)),G(a,`placeholder`,t.field.placeholder||``),G(a,`aria-invalid`,L(r)?`true`:void 0),G(a,`aria-describedby`,L(i))}),R(`input`,a,o),Mi(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),B(e,a)};H(f,e=>{t.field.control===`keys`?e(p):t.field.control===`select`?e(m,1):t.field.control===`checkbox`?e(h,2):t.field.control===`textarea`?e(g,3):e(_,-1)});var v=F(f,2),y=e=>{var t=kKe(),i=N(t,!0);D(t),I(()=>{G(t,`id`,L(n)+`-error`),V(i,L(r))}),B(e,t)},b=e=>{var r=AKe(),i=N(r,!0);D(r),I(()=>{G(r,`id`,L(n)+`-hint`),V(i,t.field.hint)}),B(e,r)};H(v,e=>{L(r)?e(y):t.field.hint&&e(b,1)}),D(s),I(()=>{G(c,`for`,L(n)),V(l,`${t.field.label??``} `)}),B(e,s),k()}Sr([`input`,`click`,`change`]);var O9=z(`

                      `),MKe=z(``),NKe=z(` `),PKe=z(` `),FKe=z(` `),k9=z(` `),IKe=z(`
                      `),LKe=z(`
                      `,1);function RKe(e,t){O(t,!0);let n=A(()=>rKe(E9.types,E9.form.type)),r=A(()=>E9.formFields),i=A(()=>E9.fieldErrors.name||``),a=A(()=>E9.fieldErrors.type||``);function o(){E9.selectType(),E9.formMode===`create`&&(E9.form.name=uKe(E9.rows,E9.form.type))}hn(()=>{let e=E9.focusField;if(!e)return;E9.focusField=``;let t=document.getElementById(`provider-credential-`+e);t&&(t.scrollIntoView({block:`center`}),t.focus({preventScroll:!0}))});{let t=e=>{var t=O9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>wH()]),B(e,t)},s=A(()=>E9.formMode===`edit`?vH():eD()),c=A(()=>xH());S6(e,{get open(){return E9.formOpen},get title(){return L(s)},get ariaLabel(){return L(c)},get error(){return E9.error},get submitting(){return E9.formSubmitting},novalidate:!0,onclose:()=>E9.closeForm(),onsubmit:()=>E9.submitForm(),headerHint:t,children:(e,t)=>{var s=LKe(),c=P(s),l=N(c),u=N(l,!0);Ve(),D(l);var d=F(l,2),f=N(d),p=N(f,!0);D(f),f.value=f.__value=``,U(F(f),16,()=>L(n),e=>e,(e,t)=>{var n=MKe(),r=N(n,!0);D(n);var i={};I(()=>{V(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),B(e,n)}),D(d);var m=F(d,2),h=e=>{var t=NKe(),n=N(t,!0);D(t),I(()=>V(n,L(a))),B(e,t)},g=e=>{var t=PKe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>AH()]),B(e,t)};H(m,e=>{L(a)?e(h):e(g,-1)}),D(c);var _=F(c,2),v=N(_),y=N(v,!0);Ve(),D(v);var b=F(v,2);Ti(b);var x=F(b,2),S=e=>{var t=FKe(),n=N(t,!0);D(t),I(()=>V(n,L(i))),B(e,t)},C=e=>{var t=k9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>NH()]),B(e,t)},w=e=>{var t=k9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>IH()]),B(e,t)};H(x,e=>{L(i)?e(S):E9.formMode===`create`?e(C,1):e(w,-1)}),D(_);var T=F(_,2),ee=e=>{var t=O9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>zH()]),B(e,t)};H(T,e=>{E9.form.type||e(ee)});var E=F(T,2);U(E,17,()=>L(r).primary,e=>e.name,(e,t)=>{D9(e,{get field(){return L(t)}})});var te=F(E,2),ne=N(te),re=N(ne);{let e=A(()=>HH());Z8(re,{get enabled(){return E9.form.enabled},get label(){return L(e)},onclick:()=>E9.form.enabled=!E9.form.enabled})}D(ne),D(te);var ie=F(te,2),ae=e=>{var t=IKe(),n=N(t),i=N(n),a=N(i),o=N(a,!0);D(a);var s=F(a,2),c=N(s,!0);D(s),D(i),D(n);var l=F(n,2);U(l,21,()=>L(r).advanced,e=>e.name,(e,t)=>{D9(e,{get field(){return L(t)}})}),D(l),D(t),I((e,n)=>{t.open=E9.advancedOpen,V(o,e),V(c,n)},[()=>GH(),()=>L(r).advanced.map(e=>e.label).join(`, `)]),xr(`toggle`,t,e=>E9.advancedOpen=e.currentTarget.open),B(e,t)};H(ie,e=>{L(r).advanced.length>0&&e(ae)}),I((e,t,n)=>{V(u,e),d.disabled=E9.formMode===`edit`,G(d,`aria-invalid`,L(a)?`true`:void 0),G(d,`aria-describedby`,L(a)?`provider-credential-type-error`:`provider-credential-type-hint`),V(p,t),V(y,n),b.disabled=E9.formMode===`edit`,G(b,`aria-invalid`,L(i)?`true`:void 0),G(b,`aria-describedby`,L(i)?`provider-credential-name-error`:`provider-credential-name-hint`)},[()=>xD(),()=>DH(),()=>vD()]),R(`change`,d,o),vi(d,()=>E9.form.type,e=>E9.form.type=e),R(`input`,b,()=>E9.clearFieldError(`name`)),Mi(b,()=>E9.form.name,e=>E9.form.name=e),B(e,s)},$$slots:{headerHint:!0,default:!0}})}k()}Sr([`change`,`input`]);var zKe=z(`

                      `),BKe=z(``),VKe=z(`
                      `),HKe=z(``),UKe=z(`
                      `),A9=z(`

                      `),WKe=z(`
                      `);function GKe(e,t){O(t,!0),hn(()=>{Y.refreshTick,wX.page===`providers-config`&&E9.fetchPage()});var n=WKe(),r=N(n),i=N(r);c3(N(i),{copyId:`providers-config-help-copy`,label:`model providers help`,title:e=>{var t=zKe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>ZE()]),B(e,t)},help:e=>{Ve(),B(e,Or(`Configure LLM provider credentials here instead of setting API keys as + environment variables. Providers declared in config.yaml or env vars + are read-only (Config badge) and cannot be edited or deleted from the + dashboard. Keys are masked after saving.`))},$$slots:{title:!0,help:!0}}),D(i);var a=F(i,2),o=N(a),s=e=>{var t=BKe(),n=N(t);q(n,{get icon(){return uX},class:`form-action-icon`});var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>{t.disabled=E9.formSubmitting,V(i,e)},[()=>eD()]),R(`click`,t,()=>E9.openCreate()),B(e,t)};H(o,e=>{E9.available&&!Y.needsAuth&&e(s)}),D(a),D(r);var c=F(r,2),l=e=>{var t=VKe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>rD()]),B(e,t)};H(c,e=>{!E9.available&&!Y.needsAuth&&e(l)});var u=F(c,2),d=e=>{var t=HKe(),n=N(t,!0);D(t),I(()=>V(n,E9.error)),B(e,t)};H(u,e=>{E9.error&&!Y.needsAuth&&!E9.formOpen&&e(d)});var f=F(u,2),p=e=>{J3(e,{label:`Loading providers...`})};H(f,e=>{E9.loading&&!Y.needsAuth&&e(p)});var m=F(f,2),h=e=>{var t=UKe(),n=N(t),r=N(n);{let e=A(()=>oD()),t=A(()=>lD());z3(r,{id:`provider-credential-filter`,get placeholder(){return L(e)},get label(){return L(t)},get value(){return E9.filter},set value(e){E9.filter=e}})}D(n),D(t),B(e,t)};H(m,e=>{(E9.rows.length>0||E9.filter)&&E9.available&&!Y.needsAuth&&e(h)});var g=F(m,2);RKe(g,{});var _=F(g,2),v=e=>{bKe(e,{})};H(_,e=>{E9.filteredRows.length>0&&E9.available&&!Y.needsAuth&&e(v)});var y=F(_,2),b=e=>{var t=A9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>fD()]),B(e,t)};H(y,e=>{E9.rows.length===0&&!E9.filter&&!E9.loading&&!Y.needsAuth&&!E9.error&&E9.available&&e(b)});var x=F(y,2),S=e=>{var t=A9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>hD()]),B(e,t)};H(x,e=>{E9.rows.length>0&&E9.filteredRows.length===0&&E9.filter&&!E9.loading&&!Y.needsAuth&&E9.available&&e(S)}),D(n),B(e,n),k()}Sr([`click`]);function j9(){return{name:``,description:``,user_path:``,labels:``,dashboard_access:!1,expires_at:``}}function M9(e){let t=[];for(let n of String(e||``).split(`,`)){let e=n.trim();e&&!t.includes(e)&&t.push(e)}return t}function N9(e){let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t;for(let e of n.split(`/`)){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return lB();if(t.includes(`:`))return fB()}}return``}function KKe(e){if(N9(e))return``;let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t,r=[];for(let e of n.split(`/`)){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function qKe(e){let t=e||{},n=String(t.name||``).trim();if(!n)return{error:oB()};let r=N9(t.user_path);if(r)return{error:r};let i=KKe(t.user_path),a=M9(t.labels),o={name:n,description:String(t.description||``).trim()||void 0,user_path:i||void 0,labels:a.length?a:void 0,dashboard_access:t.dashboard_access?!0:void 0};return t.expires_at&&(o.expires_at=t.expires_at+`T23:59:59Z`),{payload:o}}function P9(e,t=Date.now()){let n=e&&e.expires_at;if(!n)return!1;let r=Date.parse(n);return Number.isFinite(r)&&r<=t}function F9(e){return e?!!e.deactivated_at||e.enabled===!1:!1}function I9(e,t=Date.now()){return!e||e.active===!1||F9(e)?!1:!P9(e,t)}function JKe(e){return[e.name,e.description,e.user_path,e.redacted_value,...e.labels||[]].filter(Boolean).join(` `).toLowerCase()}function YKe(e,t={}){let{query:n=``,showInactive:r=!1,now:i=Date.now()}=t,a=String(n||``).trim().toLowerCase();return(Array.isArray(e)?e:[]).filter(e=>!r&&!I9(e,i)?!1:!a||JKe(e).includes(a))}function L9(e,t){return F9(e)?2:+!I9(e,t)}function R9(e){let t=e&&e.expires_at;if(!t)return 1/0;let n=Date.parse(t);return Number.isFinite(n)?n:1/0}function z9(e){let t=Date.parse(e&&e.deactivated_at||``);return Number.isFinite(t)?t:-1/0}function XKe(e,t=Date.now()){return(Array.isArray(e)?e.slice():[]).sort((e,n)=>{let r=L9(e,t),i=L9(n,t);if(r!==i)return r-i;let[a,o]=r===2?[z9(e),z9(n)]:[R9(e),R9(n)];return a===o?String(e.name||``).localeCompare(String(n.name||``)):a>o?-1:1})}function ZKe(e,t=Date.now()){return(Array.isArray(e)?e:[]).reduce((e,n)=>e+ +!I9(n,t),0)}function B9(){return{open:!1,id:``,name:``,value:``,submitting:!1,error:``}}var V9=new class{#e=j(Xt([]));get keys(){return L(this.#e)}set keys(e){M(this.#e,e,!0)}#t=j(!0);get available(){return L(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return L(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return L(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return L(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get showInactive(){return L(this.#a)}set showInactive(e){M(this.#a,e,!0)}#o=A(()=>XKe(YKe(this.keys,{query:this.filter,showInactive:this.showInactive})));get visibleKeys(){return L(this.#o)}set visibleKeys(e){M(this.#o,e)}#s=A(()=>ZKe(this.keys));get inactiveCount(){return L(this.#s)}set inactiveCount(e){M(this.#s,e)}#c=j(!1);get formOpen(){return L(this.#c)}set formOpen(e){M(this.#c,e,!0)}#l=j(!1);get formSubmitting(){return L(this.#l)}set formSubmitting(e){M(this.#l,e,!0)}#u=j(``);get issuedValue(){return L(this.#u)}set issuedValue(e){M(this.#u,e,!0)}#d=j(``);get deactivatingID(){return L(this.#d)}set deactivatingID(e){M(this.#d,e,!0)}#f=j(``);get dashboardAccessID(){return L(this.#f)}set dashboardAccessID(e){M(this.#f,e,!0)}#p=j(Xt(j9()));get form(){return L(this.#p)}set form(e){M(this.#p,e,!0)}#m=j(Xt(B9()));get labelsEditor(){return L(this.#m)}set labelsEditor(e){M(this.#m,e,!0)}copyState=U3({logPrefix:`Failed to copy auth key:`});async fetchKeys(){this.loading=!0,this.error=``;try{let e=await X3(`/admin/auth-keys`,{label:`auth keys`,errorFallback:Dz()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.keys=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.error=e.error;return}this.available=!0,this.keys=e.items}finally{this.loading=!1}}openForm(){this.formSubmitting||this.formOpen||(this.formOpen=!0,this.error=``,this.issuedValue||(this.copyState.reset(),this.form=j9()))}closeForm(){this.formOpen&&(this.formOpen=!1,this.error=``,this.copyState.reset(),!this.formSubmitting&&!this.issuedValue&&(this.form=j9()))}copyIssuedValue(){return this.copyState.copy(this.issuedValue)}dismissIssuedKey(){this.issuedValue=``,this.copyState.reset(),this.form=j9()}async submitForm(){let e=qKe(this.form);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await Z3(`/admin/auth-keys`,`POST`,e.payload,{label:`create API key`,errorFallback:Az(),unavailableMessage:Nz()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error,t.result&&t.result.status!==401&&console.error(`Failed to create API key:`,t.result.status,this.error);return}let n=t.result.data||{};this.issuedValue=n.value||``,this.formOpen=!0,this.copyState.reset(),this.form=j9(),this.fetchKeys()}finally{this.formSubmitting=!1}}openLabelsEditor(e){!e||this.labelsEditor.submitting||(this.labelsEditor={open:!0,id:e.id,name:e.name||``,value:(e.labels||[]).join(`, `),submitting:!1,error:``})}closeLabelsEditor(){!this.labelsEditor.open||this.labelsEditor.submitting||(this.labelsEditor=B9())}async submitLabelsEditor(){let e=this.labelsEditor;if(!e.open||e.submitting||!e.id)return;e.submitting=!0,e.error=``;let t={labels:M9(e.value)};try{let n=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/labels`,`PUT`,t,{label:`update API key labels`,errorFallback:Iz(),unavailableMessage:Nz()});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,e.error=n.error;return}if(n.status===`error`){e.error=n.error,n.result&&n.result.status!==401&&console.error(`Failed to update auth key labels:`,n.result.status,e.error);return}sZ.success(zz({name:e.name})),e.submitting=!1,this.closeLabelsEditor(),this.fetchKeys()}finally{e.submitting=!1}}async toggleDashboardAccess(e){if(!e||!e.active||this.dashboardAccessID)return;let t=!e.dashboard_access;this.dashboardAccessID=e.id;try{let n=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/dashboard-access`,`PUT`,{dashboard_access:t},{label:`update API key dashboard access`,errorFallback:Hz(),unavailableMessage:Nz()});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,sZ.error(n.error);return}if(n.status===`error`){n.result&&n.result.status!==401&&console.error(`Failed to update auth key dashboard access:`,n.result.status,n.error),sZ.error(n.error);return}sZ.success(t?Gz({name:e.name}):Jz({name:e.name})),this.fetchKeys()}finally{this.dashboardAccessID=``}}async deactivateKey(e){if(!(!e||!e.active)&&window.confirm(Zz({name:e.name}))){this.deactivatingID=e.id;try{let t=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/deactivate`,`POST`,void 0,{label:`deactivate API key`,errorFallback:eB(),unavailableMessage:Nz()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,sZ.error(t.error);return}if(t.status===`error`){t.result&&t.result.status!==401&&console.error(`Failed to deactivate auth key:`,t.result.status,t.error),sZ.error(t.error);return}sZ.success(rB({name:e.name})),this.fetchKeys()}finally{this.deactivatingID=``}}}},QKe=z(``),$Ke=z(`

                      `),eqe=z(``),tqe=z(``),nqe=z(``),rqe=z(``),iqe=z(`
                      `);function aqe(e,t){O(t,!0);{let t=A(()=>Dx()),n=A(()=>rS()),r=A(()=>V9.issuedValue?``:V9.error),i=A(()=>V9.issuedValue?oS():Dx()),a=A(()=>lS()),o=A(()=>V9.issuedValue?ZY:uX);S6(e,{get open(){return V9.formOpen},get title(){return L(t)},get ariaLabel(){return L(n)},get error(){return L(r)},get submitting(){return V9.formSubmitting},get submitLabel(){return L(i)},get submittingLabel(){return L(a)},get submitIcon(){return L(o)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>V9.closeForm(),onsubmit:()=>V9.issuedValue?V9.dismissIssuedKey():V9.submitForm(),children:(e,t)=>{var n=kr(),r=P(n),i=e=>{var t=$Ke(),n=N(t),r=N(n,!0);D(n);var i=F(n,2),a=N(i),o=N(a,!0);D(a),Q7(F(a,2),{get state(){return V9.copyState},onclick:()=>V9.copyIssuedValue()}),D(i);var s=F(i,2),c=e=>{var t=QKe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>hS()]),B(e,t)};H(s,e=>{V9.copyState.error&&e(c)}),D(t),I(e=>{V(r,e),V(o,V9.issuedValue)},[()=>fS()]),B(e,t)},a=e=>{var t=iqe(),n=N(t),r=N(n),i=N(r),a=N(i),o=F(a),s=N(o);D(o),D(i);var c=F(i,2);Ti(c),D(r);var l=F(r,2),u=N(l),d=N(u),f=F(d),p=N(f);D(f),D(u);var m=F(u,2);Ti(m),D(l),D(n);var h=F(n,2),g=N(h);{let e=e=>{var t=eqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>AS()]),B(e,t)},t=e=>{Ve();var t=Or();I(e=>V(t,e),[()=>IS()]),B(e,t)},n=A(()=>NS());c3(g,{copyId:`auth-key-user-path-help-copy`,get label(){return L(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var _=F(g,2);Ti(_),D(h);var v=F(h,2),y=N(v);{let e=e=>{var t=tqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>zS()]),B(e,t)},t=e=>{Ve();var t=Or();I(e=>V(t,e),[()=>GS()]),B(e,t)},n=A(()=>HS());c3(y,{copyId:`auth-key-labels-help-copy`,get label(){return L(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var b=F(y,2);Ti(b),D(v);var x=F(v,2),S=N(x);{let e=e=>{var t=nqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>JS()]),B(e,t)},t=e=>{Ve();var t=Or();I(e=>V(t,e),[()=>eC()]),B(e,t)},n=A(()=>ZS());c3(S,{copyId:`auth-key-dashboard-access-help-copy`,get label(){return L(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var C=F(S,2),w=N(C);Ti(w);var T=F(w,2),ee=N(T,!0);D(T),D(C),D(x);var E=F(x,2);{let e=A(()=>oC());C6(E,{id:`auth-key-description`,get label(){return L(e)},children:(e,t)=>{var n=rqe();at(n),I(e=>G(n,`placeholder`,e),[()=>lC()]),Mi(n,()=>V9.form.description,e=>V9.form.description=e),B(e,n)},$$slots:{default:!0}})}D(t),I((e,t,n,r,i)=>{V(a,`${e??``} `),V(s,`(${t??``})`),V(d,`${n??``} `),V(p,`(${r??``})`),V(ee,i)},[()=>vS(),()=>xS(),()=>wS(),()=>DS(),()=>rC()]),Mi(c,()=>V9.form.name,e=>V9.form.name=e),Mi(m,()=>V9.form.expires_at,e=>V9.form.expires_at=e),Mi(_,()=>V9.form.user_path,e=>V9.form.user_path=e),Mi(b,()=>V9.form.labels,e=>V9.form.labels=e),Ni(w,()=>V9.form.dashboard_access,e=>V9.form.dashboard_access=e),B(e,t)};H(r,e=>{V9.issuedValue?e(i):e(a,-1)}),B(e,n)},$$slots:{default:!0}})}k()}var oqe=z(`

                      `),sqe=z(`

                      `,1);function cqe(e,t){O(t,!0);{let t=e=>{var t=oqe(),n=N(t,!0);D(t),I(()=>V(n,V9.labelsEditor.name)),B(e,t)},n=A(()=>HC()),r=A(()=>GC()),i=A(()=>JC());S6(e,{get open(){return V9.labelsEditor.open},get title(){return L(n)},get ariaLabel(){return L(r)},get error(){return V9.labelsEditor.error},get submitting(){return V9.labelsEditor.submitting},get submitLabel(){return L(i)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>V9.closeLabelsEditor(),onsubmit:()=>V9.submitLabelsEditor(),headerHint:t,children:(e,t)=>{{let t=A(()=>ZC());C6(e,{id:`auth-key-labels-edit`,get label(){return L(t)},children:(e,t)=>{var n=sqe(),r=P(n);Ti(r);var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>ew()]),Mi(r,()=>V9.labelsEditor.value,e=>V9.labelsEditor.value=e),B(e,n)},$$slots:{default:!0}})}},$$slots:{headerHint:!0,default:!0}})}k()}var lqe=z(` `),uqe=z(`
                      `),dqe=z(``),H9=z(` `),fqe=z(` `),pqe=z(` `,1),mqe=z(`
                      `),hqe=z(`
                      `);function gqe(e,t){O(t,!0);var n=hqe(),r=N(n),i=N(r),a=N(i),o=N(a),s=N(o,!0);D(o);var c=F(o),l=N(c,!0);D(c);var u=F(c),d=N(u,!0);D(u);var f=F(u),p=N(f,!0);D(f);var m=F(f),h=N(m,!0);D(m);var g=F(m),_=N(g),v=N(_);q(F(v),{get icon(){return NTe},width:`13`,height:`13`}),D(_),D(g);var y=F(g),b=N(y,!0);D(y);var x=F(y),S=N(x,!0);D(x);var C=F(x);D(a),D(i);var w=F(i);U(w,21,()=>V9.visibleKeys,e=>e.id,(e,t)=>{var n=mqe();let r;var i=N(n),a=N(i,!0);D(i);var o=F(i),s=N(o,!0);D(o);var c=F(o),l=N(c,!0);D(c);var u=F(c),d=N(u),f=e=>{var n=uqe();U(n,20,()=>L(t).labels||[],e=>e,(e,t)=>{var n=lqe(),r=N(n,!0);D(n),I(e=>{hi(n,e),V(r,t)},[()=>LMe(t)]),B(e,n)}),D(n),B(e,n)},p=e=>{B(e,dqe())};H(d,e=>{(L(t).labels||[]).length>0?e(f):e(p,-1)}),D(u);var m=F(u),h=N(m),g=N(h,!0);D(h),D(m);var _=F(m),v=N(_);let y;var b=N(v,!0);D(v),D(_);var x=F(_),S=N(x),C=e=>{var n=fqe(),r=N(n),i=N(r,!0);D(r);var a=F(r,2),o=e=>{var t=H9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>IC()]),B(e,t)},s=A(()=>P9(L(t)));H(a,e=>{L(s)&&e(o)}),D(n),I(e=>V(i,e),[()=>GEe(L(t).expires_at)]),B(e,n)},w=e=>{B(e,Or(`—`))};H(S,e=>{L(t).expires_at?e(C):e(w,-1)}),D(x);var T=F(x),ee=N(T,!0);D(T);var E=F(T),te=N(E),ne=N(te),re=e=>{var n=pqe(),r=P(n);{let e=A(()=>L(t).dashboard_access?fz({name:L(t).name}):lz({name:L(t).name})),n=A(()=>!!V9.dashboardAccessID);Y3(r,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>V9.toggleDashboardAccess(L(t)),get disabled(){return L(n)},children:(e,n)=>{{let n=A(()=>L(t).dashboard_access?qTe:mX);q(e,{get icon(){return L(n)},class:`table-icon-svg`})}},$$slots:{default:!0}})}var i=F(r,2);{let e=A(()=>hz({name:L(t).name}));Y3(i,{get label(){return L(e)},class:`table-icon-btn`,onclick:()=>V9.openLabelsEditor(L(t)),children:(e,t)=>{q(e,{get icon(){return lX},class:`table-icon-svg`})},$$slots:{default:!0}})}var a=F(i,2);{let e=A(()=>V9.deactivatingID===L(t).id?xz({name:L(t).name}):vz({name:L(t).name})),n=A(()=>V9.deactivatingID===L(t).id);Y3(a,{get label(){return L(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>V9.deactivateKey(L(t)),get disabled(){return L(n)},children:(e,t)=>{q(e,{get icon(){return VTe},class:`table-icon-svg`})},$$slots:{default:!0}})}B(e,n)},ie=e=>{var n=H9(),r=N(n,!0);D(n),I((e,t)=>{G(n,`title`,e),V(r,t)},[()=>L(t).deactivated_at?wz({date:_Z(L(t).deactivated_at)}):zC(),()=>zC()]),B(e,n)},ae=A(()=>F9(L(t)));H(ne,e=>{L(t).active?e(re):L(ae)&&e(ie,1)}),D(te),D(E),D(n),I((e,i,o,c)=>{r=W(n,1,`svelte-nf0ldb`,null,r,e),V(a,L(t).name),V(s,L(t).description||`—`),V(l,L(t).user_path||`—`),V(g,L(t).redacted_value),y=W(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":L(t).dashboard_access,"auth-key-status-inactive":!L(t).dashboard_access}),V(b,i),G(x,`title`,o),V(ee,c)},[()=>({"auth-key-row-deactivated":F9(L(t))}),()=>L(t).dashboard_access?AC():NC(),()=>L(t).expires_at?_Z(L(t).expires_at):``,()=>UX.formatTimestamp(L(t).created_at)]),B(e,n)}),D(w),D(r),D(n),I((e,t,n,r,i,a,o,c,u,f)=>{V(s,e),V(l,t),V(d,n),V(p,r),V(h,i),G(_,`title`,a),V(v,`${o??``} `),V(b,c),V(S,u),G(C,`aria-label`,f)},[()=>vS(),()=>fC(),()=>hC(),()=>vC(),()=>xC(),()=>oz(),()=>JS(),()=>wS(),()=>wC(),()=>DC()]),B(e,n),k()}var _qe=z(``),vqe=z(`
                      `),yqe=z(``),bqe=z(`

                      `),xqe=z(`
                      `),Sqe=z(`
                      `),U9=z(`

                      `),Cqe=z(`
                      `);function wqe(e,t){O(t,!0),hn(()=>{Y.refreshTick,wX.page===`auth-keys`&&V9.fetchKeys()});var n=Cqe(),r=N(n),i=N(r),a=N(i,!0);D(i);var o=F(i,2),s=N(o),c=e=>{var t=_qe(),n=N(t);q(n,{get icon(){return uX},class:`table-icon-svg`});var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>{t.disabled=V9.formSubmitting,V(i,e)},[()=>Dx()]),R(`click`,t,()=>{V9.formSubmitting||V9.openForm()}),B(e,t)};H(s,e=>{V9.available&&!Y.authError&&e(c)}),D(o),D(r);var l=F(r,2),u=e=>{var t=vqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Ax()]),B(e,t)};H(l,e=>{!V9.available&&!Y.authError&&e(u)});var d=F(l,2),f=e=>{var t=yqe(),n=N(t,!0);D(t),I(()=>V(n,V9.error)),B(e,t)};H(d,e=>{V9.error&&!Y.authError&&!V9.formOpen&&e(f)});var p=F(d,2),m=e=>{var t=bqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Nx()]),B(e,t)};H(p,e=>{V9.available&&!Y.authError&&e(m)});var h=F(p,2);aqe(h,{});var g=F(h,2);cqe(g,{});var _=F(g,2),v=e=>{var t=xqe(),n=N(t);{let e=A(()=>Ix());i3(n,{size:18,get label(){return L(e)}})}D(t),B(e,t)};H(_,e=>{V9.loading&&V9.keys.length===0&&e(v)});var y=F(_,2),b=e=>{var t=Sqe(),n=N(t),r=N(n);{let e=A(()=>zx()),t=A(()=>Hx());z3(r,{get placeholder(){return L(e)},get label(){return L(t)},get value(){return V9.filter},set value(e){V9.filter=e}})}D(n);var i=F(n,2),a=N(i),o=N(a);Ti(o);var s=F(o,2),c=N(s),l=F(c),u=e=>{var t=Or();I(()=>V(t,`(${V9.inactiveCount??``})`)),B(e,t)};H(l,e=>{V9.inactiveCount>0&&e(u)}),D(s),D(a),D(i),D(t),I(e=>V(c,`${e??``} `),[()=>Gx()]),Ni(o,()=>V9.showInactive,e=>V9.showInactive=e),B(e,t)};H(y,e=>{V9.keys.length>0&&V9.available&&e(b)});var x=F(y,2),S=e=>{gqe(e,{})};H(x,e=>{V9.visibleKeys.length>0&&V9.available&&e(S)});var C=F(x,2),w=e=>{var t=U9(),n=N(t);D(t),I((e,t)=>V(n,`${e??``}${t??``}`),[()=>Jx(),()=>V9.inactiveCount>0&&!V9.showInactive?` `+Zx({count:V9.inactiveCount}):``]),B(e,t)};H(C,e=>{V9.keys.length>0&&V9.visibleKeys.length===0&&V9.available&&e(w)});var T=F(C,2),ee=e=>{var t=U9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>eS()]),B(e,t)};H(T,e=>{V9.keys.length===0&&!V9.loading&&!Y.authError&&!V9.error&&V9.available&&e(ee)}),D(n),I(e=>V(a,e),[()=>wx()]),B(e,n),k()}Sr([`click`]);var Tqe=z(``),Eqe=z(`
                      `);function Dqe(e,t){O(t,!0);let n=$i.map(e=>({value:e,label:$Ee(e)}));var r=kr(),i=P(r),a=e=>{var t=Eqe(),r=N(t),i=N(r,!0);D(r);var a=F(r,2);U(a,21,()=>n,e=>e.value,(e,t)=>{var n=Tqe(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(a);var o;_i(a),D(t),I((e,t,n)=>{V(i,e),G(a,`aria-label`,t),o!==(o=n)&&(a.value=(a.__value=n)??``,gi(a,n))},[()=>rL(),()=>rL(),()=>J()]),R(`change`,a,e=>ca(e.currentTarget.value)),B(e,t)};H(i,e=>{n.length>1&&e(a)}),B(e,r),k()}Sr([`change`]);var Oqe=z(`

                      `),kqe=z(``),Aqe=z(``),jqe=z(`
                      `,1);function Mqe(e,t){O(t,!0);function n(){UX.saveOverride(),Y.refresh()}function r(){UX.clearOverride(),Y.refresh()}var i=jqe(),a=P(i),o=N(a);{let e=e=>{var t=Oqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Mu()]),B(e,t)},t=A(()=>Fu()),n=A(()=>Ru());c3(o,{copyId:`timezone-help-copy`,get label(){return L(t)},get text(){return L(n)},title:e,$$slots:{title:!0}})}D(a);var s=F(a,2),c=N(s),l=N(c),u=N(l,!0);D(l);var d=F(l,2),f=N(d),p=N(f,!0);D(f),f.value=f.__value=``,U(F(f),17,()=>UX.options,e=>e.value,(e,t)=>{var n=kqe(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(d),D(c),D(s);var m=F(s,2),h=N(m),g=e=>{var t=Aqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>qu()]),R(`click`,t,r),B(e,t)};H(h,e=>{UX.override&&e(g)}),D(m),I((e,t)=>{V(u,e),V(p,t)},[()=>Vu(),()=>Wu({timezone:UX.detectedTimeZoneLabel()})]),xr(`focus`,d,()=>UX.ensureOptions()),R(`change`,d,n),vi(d,()=>UX.override,e=>UX.override=e),B(e,i),k()}Sr([`change`,`click`]);var Nqe=z(``),Pqe=z(`

                      `,1);function Fqe(e,t){O(t,!0);let n=A(()=>Q.failoverSaving||Q.failoverGenerating||Q.failoverDraftSaving||!Q.failoverAvailable||!Q.failoverEnabled());var r=Pqe(),i=P(r),a=N(i),o=N(a),s=N(o,!0);D(o),D(a);var c=F(a,2),l=N(c),u=N(l);q(u,{get icon(){return yX},class:`form-action-icon`});var d=F(u,2),f=N(d,!0);D(d),D(l);var p=F(l,2),m=N(p);q(m,{get icon(){return _X},class:`form-action-icon`});var h=F(m,2),g=N(h,!0);D(h),D(p),D(c),D(i);var _=F(i,2),v=N(_),y=e=>{var t=Nqe(),n=N(t,!0);D(t),I(()=>V(n,Q.failoverError)),B(e,t)};H(v,e=>{Q.failoverError&&e(y)}),D(_),n5(F(_,2),{}),I((e,t,r)=>{V(s,e),l.disabled=L(n),V(f,t),p.disabled=L(n),V(g,r)},[()=>Xu(),()=>Q.failoverGenerating?$u():nd(),()=>ad()]),R(`click`,l,()=>Q.generateFailoverRules()),R(`click`,p,()=>Q.openFailoverResetDialog()),B(e,r),k()}Sr([`click`]);function Iqe(){return{daily_reset_hour:0,daily_reset_minute:0,weekly_reset_weekday:1,weekly_reset_hour:0,weekly_reset_minute:0,monthly_reset_day:1,monthly_reset_hour:0,monthly_reset_minute:0}}function W9(e,t){let n=t||{},r=(e,t)=>{if(e===``)return t;let n=Number(e);return Number.isFinite(n)&&Number.isInteger(n)?Math.trunc(n):t},i=(e,t)=>r(n[e],t),a=(t,n)=>e?r(e[t],n):n;return{daily_reset_hour:a(`daily_reset_hour`,i(`daily_reset_hour`,0)),daily_reset_minute:a(`daily_reset_minute`,i(`daily_reset_minute`,0)),weekly_reset_weekday:a(`weekly_reset_weekday`,i(`weekly_reset_weekday`,1)),weekly_reset_hour:a(`weekly_reset_hour`,i(`weekly_reset_hour`,0)),weekly_reset_minute:a(`weekly_reset_minute`,i(`weekly_reset_minute`,0)),monthly_reset_day:a(`monthly_reset_day`,i(`monthly_reset_day`,1)),monthly_reset_hour:a(`monthly_reset_hour`,i(`monthly_reset_hour`,0)),monthly_reset_minute:a(`monthly_reset_minute`,i(`monthly_reset_minute`,0))}}function Lqe(){return[{value:0,label:wN()},{value:1,label:DN()},{value:2,label:AN()},{value:3,label:NN()},{value:4,label:IN()},{value:5,label:zN()},{value:6,label:HN()}]}var Rqe=z(`

                      `),zqe=z(``),Bqe=z(`

                      `),Vqe=z(``),Hqe=z(``),Uqe=z(`
                      `,1);function Wqe(e,t){O(t,!0);let n=j(Xt(Iqe())),r=j(!1),i=j(!1),a=j(``),o=j(!1),s=A(()=>ZX.budgetsVisible());async function c(){if(await ZX.ensureLoaded(),!ZX.budgetsVisible()){M(a,``);return}M(r,!0),M(a,``);try{let e=await JX(`/admin/budgets/settings`,{label:`budget settings`});if(e.stale)return;if(!e.ok){M(a,hN(),!0);return}M(n,W9(e.data,L(n)),!0)}catch(e){console.error(`Failed to fetch budget settings:`,e),M(a,hN(),!0)}finally{M(r,!1)}}async function l(){if(!L(i)){M(i,!0);try{let e=await YX(`/admin/budgets/settings`,`PUT`,W9(L(n),L(n)),{label:`budget settings`});if(e.stale)return;if(!e.ok){sZ.error(vN());return}M(n,W9(e.data,L(n)),!0),M(a,``),sZ.success(xN())}catch(e){console.error(`Failed to save budget settings:`,e),sZ.error(vN())}finally{M(i,!1)}}}hn(()=>{Y.refreshTick,c()});var u=kr(),d=P(u),f=e=>{var t=Uqe(),s=P(t),c=N(s);{let e=e=>{var t=Rqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Cd()]),B(e,t)},t=A(()=>_d()),n=A(()=>bd());c3(c,{copyId:`budget-settings-help-copy`,get label(){return L(t)},get text(){return L(n)},title:e,$$slots:{title:!0}})}var u=F(c,2),d=N(u),f=N(d),p=N(f,!0);D(f);var m=F(f,2),h=N(m);{let e=e=>{var t=zqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>JM()]),B(e,t)},t=A(()=>GM());c3(h,{copyId:`budget-monthly-day-help-copy`,get label(){return L(t)},external:!0,get open(){return L(o)},set open(e){M(o,e,!0)},title:e,$$slots:{title:!0}})}var g=F(h,2);Ti(g),D(m);var _=F(m,2),v=N(_),y=N(v,!0);D(v);var b=F(v,2);Ti(b),D(_);var x=F(_,2),S=N(x),C=N(S,!0);D(S);var w=F(S,2);Ti(w),D(x);var T=F(x,2),ee=N(T),E=e=>{var t=Bqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>ZM()]),B(e,t)};H(ee,e=>{L(o)&&e(E)}),D(T),D(d);var te=F(d,2),ne=N(te),re=N(ne,!0);D(ne);var ie=F(ne,2),ae=N(ie),oe=N(ae,!0);D(ae);var se=F(ae,2);U(se,21,Lqe,e=>e.value,(e,t)=>{var n=Vqe(),r=N(n,!0);D(n);var i={};I(()=>{V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(se),D(ie);var ce=F(ie,2),le=N(ce),ue=N(le,!0);D(le);var de=F(le,2);Ti(de),D(ce);var fe=F(ce,2),pe=N(fe),me=N(pe,!0);D(pe);var he=F(pe,2);Ti(he),D(fe),Ve(2),D(te);var ge=F(te,2),_e=N(ge),ve=N(_e,!0);D(_e);var ye=F(_e,4),be=N(ye),xe=N(be,!0);D(be);var Se=F(be,2);Ti(Se),D(ye);var Ce=F(ye,2),we=N(Ce),Te=N(we,!0);D(we);var Ee=F(we,2);Ti(Ee),D(Ce),Ve(2),D(ge),D(u);var De=F(u,2),Oe=N(De),ke=N(Oe);q(ke,{get icon(){return pX},class:`form-action-icon`});var Ae=F(ke,2),je=N(Ae,!0);D(Ae),D(Oe);var Me=F(Oe,2),Ne=e=>{{let t=A(()=>fN());i3(e,{size:16,get label(){return L(t)}})}};H(Me,e=>{L(r)&&e(Ne)}),D(De),D(s);var Pe=F(s,2),Fe=N(Pe),Ie=e=>{var t=Hqe(),n=N(t,!0);D(t),I(()=>V(n,L(a))),B(e,t)};H(Fe,e=>{L(a)&&e(Ie)}),D(Pe),I((e,t,n,a,o,s,c,l,u,d,f)=>{V(p,e),V(y,t),V(C,n),V(re,a),V(oe,o),V(ue,s),V(me,c),V(ve,l),V(xe,u),V(Te,d),Oe.disabled=L(i)||L(r),G(Oe,`aria-busy`,L(i)?`true`:`false`),V(je,f)},[()=>IM(),()=>rN(),()=>oN(),()=>zM(),()=>eN(),()=>rN(),()=>oN(),()=>HM(),()=>rN(),()=>oN(),()=>lN()]),Mi(g,()=>L(n).monthly_reset_day,e=>L(n).monthly_reset_day=e),Mi(b,()=>L(n).monthly_reset_hour,e=>L(n).monthly_reset_hour=e),Mi(w,()=>L(n).monthly_reset_minute,e=>L(n).monthly_reset_minute=e),vi(se,()=>L(n).weekly_reset_weekday,e=>L(n).weekly_reset_weekday=e),Mi(de,()=>L(n).weekly_reset_hour,e=>L(n).weekly_reset_hour=e),Mi(he,()=>L(n).weekly_reset_minute,e=>L(n).weekly_reset_minute=e),Mi(Se,()=>L(n).daily_reset_hour,e=>L(n).daily_reset_hour=e),Mi(Ee,()=>L(n).daily_reset_minute,e=>L(n).daily_reset_minute=e),R(`click`,Oe,l),B(e,t)};H(d,e=>{L(s)&&e(f)}),B(e,u),k()}Sr([`click`]);var Gqe=z(`

                      `);function Kqe(e,t){O(t,!0);var n=kr(),r=P(n),i=e=>{var t=Gqe(),n=N(t),r=N(n),i=N(r,!0);D(r);var a=F(r,2),o=N(a,!0);D(a),D(n);var s=F(n,2),c=N(s),l=N(c);q(l,{get icon(){return fX},class:`form-action-icon`});var u=F(l,2),d=N(u,!0);D(u),D(c),D(s),D(t),I((e,t,n)=>{V(i,e),V(o,t),c.disabled=b6.resetAllLoading,V(d,n)},[()=>cd(),()=>dd(),()=>md()]),R(`click`,c,()=>b6.openResetDialog()),B(e,t)},a=A(()=>ZX.budgetsVisible());H(r,e=>{L(a)&&e(i)}),B(e,n),k()}Sr([`click`]);function qqe(){return{header:``,prefix:``,do_not_pass:!1,delimiter:``,managed:!1}}function G9(e){return(e&&Array.isArray(e.headers)?e.headers:[]).map(e=>({header:typeof e.header==`string`?e.header:``,prefix:typeof e.prefix==`string`?e.prefix:``,do_not_pass:e.do_not_pass===!0,delimiter:typeof e.delimiter==`string`&&e.delimiter!==`,`?e.delimiter:``,managed:e.managed===!0}))}function Jqe(e){return{headers:(Array.isArray(e)?e:[]).filter(e=>!e.managed&&e.header.trim()!==``).map(e=>({header:e.header.trim(),prefix:e.prefix,do_not_pass:e.do_not_pass,delimiter:e.delimiter}))}}function Yqe(e){return e&&e.error&&e.error.message?e.error.message:``}var Xqe=z(`

                      `),Zqe=z(`config`),Qqe=z(``),$qe=z(`
                      `),eJe=z(`

                      `),tJe=z(``),nJe=z(`
                      `,1);function rJe(e,t){O(t,!0);let n=j(Xt([])),r=j(!0),i=j(!1),a=j(!1),o=j(``);function s(){L(n).push(qqe())}function c(e){let t=L(n)[e];!t||t.managed||L(n).splice(e,1)}async function l(){M(i,!0),M(o,``);try{let e=await JX(`/admin/tagging/settings`,{label:`tagging settings`});if(e.stale)return;if(!e.ok){M(o,NP(),!0);return}M(n,G9(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0)}catch(e){console.error(`Failed to fetch tagging settings:`,e),M(o,NP(),!0)}finally{M(i,!1)}}async function u(){if(!(L(a)||!L(r))){M(a,!0);try{let e=await YX(`/admin/tagging/settings`,`PUT`,Jqe(L(n)),{label:`tagging settings`});if(e.stale)return;if(!e.ok){sZ.error(e.status!==401&&Yqe(e.data)||IP());return}M(n,G9(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0),M(o,``),sZ.success(zP())}catch(e){console.error(`Failed to save tagging settings:`,e),sZ.error(IP())}finally{M(a,!1)}}}hn(()=>{Y.refreshTick,l()});var d=nJe(),f=P(d),p=N(f);{let e=e=>{var t=Xqe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>GN()]),B(e,t)},t=A(()=>JN()),n=A(()=>ZN());c3(p,{copyId:`tagging-settings-help-copy`,get label(){return L(t)},get text(){return L(n)},title:e,$$slots:{title:!0}})}var m=F(p,2),h=N(m);U(h,17,()=>L(n),Lr,(e,t,n)=>{var i=$qe(),a=N(i),o=N(a);G(o,`for`,`tagging-header-`+n);var s=N(o,!0);D(o);var l=F(o,2);Ti(l),G(l,`id`,`tagging-header-`+n),D(a);var u=F(a,2),d=N(u);G(d,`for`,`tagging-prefix-`+n);var f=N(d,!0);D(d);var p=F(d,2);Ti(p),G(p,`id`,`tagging-prefix-`+n),D(u);var m=F(u,2),h=N(m);G(h,`for`,`tagging-delimiter-`+n);var g=N(h,!0);D(h);var _=F(h,2);Ti(_),G(_,`id`,`tagging-delimiter-`+n),D(m);var v=F(m,2),y=N(v);Ti(y);var b=F(y,2),x=N(b,!0);D(b),D(v);var S=F(v,2),C=N(S),w=e=>{var t=Zqe();I(e=>G(t,`title`,e),[()=>fP()]),B(e,t)},T=e=>{var i=Qqe(),a=N(i,!0);D(i),I((e,t)=>{i.disabled=!L(r),G(i,`aria-label`,e),V(a,t)},[()=>vP({header:L(t).header||n+1}),()=>hP()]),R(`click`,i,()=>c(n)),B(e,i)};H(C,e=>{L(t).managed?e(w):e(T,-1)}),D(S),D(i),I((e,n,i,a)=>{V(s,e),l.disabled=L(t).managed||!L(r),V(f,n),p.disabled=L(t).managed||!L(r),V(g,i),_.disabled=L(t).managed||!L(r),y.disabled=L(t).managed||!L(r),V(x,a)},[()=>eP(),()=>rP(),()=>oP(),()=>lP()]),Mi(l,()=>L(t).header,e=>L(t).header=e),Mi(p,()=>L(t).prefix,e=>L(t).prefix=e),Mi(_,()=>L(t).delimiter,e=>L(t).delimiter=e),Ni(y,()=>L(t).do_not_pass,e=>L(t).do_not_pass=e),B(e,i)});var g=F(h,2),_=e=>{{let t=A(()=>xP());i3(e,{size:16,get label(){return L(t)}})}};H(g,e=>{L(i)&&e(_)});var v=F(g,2),y=e=>{var t=eJe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>wP()]),B(e,t)};H(v,e=>{!L(i)&&L(n).length===0&&e(y)}),D(m);var b=F(m,2),x=N(b),S=N(x);q(S,{get icon(){return uX},class:`form-action-icon`});var C=F(S,2),w=N(C,!0);D(C),D(x);var T=F(x,2),ee=N(T);q(ee,{get icon(){return pX},class:`form-action-icon`});var E=F(ee,2),te=N(E,!0);D(E),D(T),D(b),D(f);var ne=F(f,2),re=N(ne),ie=e=>{var t=tJe(),n=N(t,!0);D(t),I(()=>V(n,L(o))),B(e,t)};H(re,e=>{L(o)&&e(ie)}),D(ne),I((e,t)=>{x.disabled=!L(r)||L(a)||L(i),V(w,e),T.disabled=!L(r)||L(a)||L(i),G(T,`aria-busy`,L(a)?`true`:`false`),V(te,t)},[()=>DP(),()=>AP()]),R(`click`,x,s),R(`click`,T,u),B(e,d),k()}Sr([`click`]);function iJe(e){let t=e||{};if(t.selectedPreset)return{days:parseInt(t.selectedPreset,10)||30};let n=t.customStartDate?gZ(t.customStartDate):``,r=t.customEndDate||t.today||null;return{start_date:n,end_date:r?gZ(r):``}}function aJe(e,t,n,r){return{...iJe(e),user_path:String(t||``).trim(),selector:String(n||``).trim(),confirmation:r}}function oJe(e){let t=Number(e&&e.matched||0),n=Number(e&&e.recalculated||0),r=Number(e&&e.without_pricing||0),i=xI({matched:t,recalculated:n});return r>0&&(i+=` `+wI({count:r})),i}var sJe=z(`

                      `),cJe=z(`
                      `);function lJe(e,t){O(t,!0);let n=j(``),r=j(``),i=j(!1),a=A(()=>ZX.booleanFlag(`USAGE_PRICING_RECALCULATION_ENABLED`,!1));function o(){if(!L(a)){sZ.error(lI());return}L(i)||tZ.open({title:oI(),titleId:`pricingRecalculateDialogTitle`,inputId:`pricing-recalculate-confirmation`,requiredText:fI(),confirmLabel:oI(),icon:XY,dialogClass:`pricing-recalculate-dialog`,message:hI(),onConfirm:()=>s()})}async function s(){if(!L(a)){sZ.error(lI());return}if(!L(i)){M(i,!0);try{let e=await YX(`/admin/usage/recalculate-pricing`,`POST`,aJe({selectedPreset:kZ.selectedPreset,customStartDate:kZ.customStartDate,customEndDate:kZ.customEndDate,today:UX.todayDate()},L(n),L(r),fI()),{label:`pricing recalculation`});if(e.stale)return;if(!e.ok){tZ.error=vI();return}tZ.close(),sZ.success(oJe(e.data)),PZ.fetchUsage()}catch(e){console.error(`Failed to recalculate pricing:`,e),tZ.error=vI()}finally{M(i,!1)}}}var c=kr(),l=P(c),u=e=>{var t=cJe(),s=N(t);{let e=e=>{var t=sJe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>zF()]),B(e,t)},t=A(()=>HF()),n=A(()=>GF());c3(s,{copyId:`pricing-recalculate-help-copy`,get label(){return L(t)},get text(){return L(n)},title:e,$$slots:{title:!0}})}var c=F(s,2),l=N(c),u=N(l),d=N(u,!0);D(u);var f=F(u,2);IZ(N(f),{}),D(f),D(l);var p=F(l,2),m=N(p),h=N(m,!0);D(m);var g=F(m,2);Ti(g),D(p);var _=F(p,2),v=N(_),y=N(v,!0);D(v);var b=F(v,2);Ti(b),D(_),D(c);var x=F(c,2),S=N(x),C=N(S);q(C,{get icon(){return XY},class:`form-action-icon`});var w=F(C,2),T=N(w,!0);D(w),D(S),D(x),D(t),I((e,t,n,r,o)=>{V(d,e),V(h,t),V(y,n),G(b,`placeholder`,r),S.disabled=L(i)||!L(a),G(S,`aria-busy`,L(i)?`true`:`false`),V(T,o)},[()=>JF(),()=>ZF(),()=>eI(),()=>rI(),()=>oI()]),Mi(g,()=>L(n),e=>M(n,e)),Mi(b,()=>L(r),e=>M(r,e)),R(`click`,S,o),B(e,t)};H(l,e=>{L(a)&&e(u)}),B(e,c),k()}Sr([`click`]);function K9(e){return String(e&&e.status||`ok`).toLowerCase()}function q9(e){if(!e||typeof e!=`object`)return eF();let t=Number(e.model_count||0),n=Number(e.provider_count||0),r=K9(e);return fF({status:r===`ok`?rF():r===`partial`?oF():lF(),models:hF({count:t}),providers:vF({count:n})})}function uJe(e){return!!e&&K9(e)===`ok`}function J9(e){let t=e&&e.steps;return Array.isArray(t)?t:[]}function dJe(e){let t=String(e&&e.name||``).replace(/_/g,` `),n=String(e&&e.status||``).trim(),r=String(e&&(e.error||e.message)||``).trim();return t?r?t+`: `+n+` - `+r:t+`: `+n:r||n||``}var fJe=z(`

                      `),pJe=z(`
                    • `),mJe=z(`
                        `),hJe=z(`
                        `,1);function gJe(e,t){O(t,!0);let n=j(!1),r=j(null);async function i(){if(!L(n)){M(n,!0),M(r,null);try{let e=await YX(`/admin/runtime/refresh`,`POST`,void 0,{label:`runtime refresh`});if(e.stale)return;if(!e.ok){sZ.error(lF());return}M(r,e.data&&typeof e.data==`object`?e.data:null,!0),uJe(L(r))?sZ.success(q9(L(r))):sZ.error(q9(L(r))),Y.refresh()}catch(e){console.error(`Failed to refresh runtime:`,e),sZ.error(lF())}finally{M(n,!1)}}}var a=hJe(),o=P(a),s=N(o);{let e=e=>{var t=fJe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>HP()]),B(e,t)},t=A(()=>GP()),n=A(()=>JP());c3(s,{copyId:`runtime-refresh-help-copy`,get label(){return L(t)},get text(){return L(n)},title:e,$$slots:{title:!0}})}var c=F(s,2),l=N(c);let u;var d=N(l);q(d,{get icon(){return dX},class:`settings-refresh-icon`});var f=F(d,2),p=N(f,!0);D(f),D(l),D(c),D(o);var m=F(o,2),h=N(m),g=e=>{var t=mJe();U(t,21,()=>J9(L(r)),e=>e.name,(e,t)=>{var n=pJe(),r=N(n,!0);D(n),I(e=>{W(n,1,`runtime-refresh-step is-${L(t).status??``}`,`svelte-yeq2mp`),V(r,e)},[()=>dJe(L(t))]),B(e,n)}),D(t),B(e,t)},_=A(()=>J9(L(r)).length>0);H(h,e=>{L(_)&&e(g)}),D(m),I(e=>{u=W(l,1,`btn btn-primary btn-with-icon settings-refresh-btn`,null,u,{"is-refreshing":L(n)}),l.disabled=L(n),G(l,`aria-busy`,L(n)?`true`:`false`),V(p,e)},[()=>ZP()]),R(`click`,l,i),B(e,a),k()}Sr([`click`]);var _Je=z(``),vJe=z(`

                        `),yJe=z(`

                        `),bJe=z(``),xJe=z(`
                        `),SJe=z(`

                        `);function CJe(e,t){O(t,!0);let n=j(Xt([])),r=j(!1),i=j(``),a=j(``);async function o(){M(r,!0),M(a,``);try{let e=await JX(`/admin/runtime/settings`,{label:`runtime settings`});if(e.stale)return;if(!e.ok){M(a,wF(),!0);return}M(n,Array.isArray(e.data?.settings)?e.data.settings:[],!0)}catch(e){console.error(`Failed to load runtime settings:`,e),M(a,wF(),!0)}finally{M(r,!1)}}async function s(e,t,r){if(!(e.locked||L(i))){M(i,e.key,!0);try{let i=await YX(`/admin/runtime/settings/${encodeURIComponent(e.key)}`,`PUT`,{value:t},{label:`save ${e.label}`});if(i.stale){r.value=e.value;return}if(!i.ok){r.value=e.value,sZ.error(DF({setting:e.label}));return}M(n,L(n).map(t=>t.key===e.key?i.data:t),!0),sZ.success(AF({setting:e.label}))}catch(t){r.value=e.value,console.error(`Failed to save runtime setting:`,t),sZ.error(DF({setting:e.label}))}finally{M(i,``)}}}hn(()=>{Y.refreshTick,o()});var c=kr(),l=P(c),u=e=>{var t=SJe(),o=N(t),c=N(o),l=N(c,!0);D(c);var u=F(c,2),d=e=>{var t=_Je(),n=N(t,!0);D(t),I(()=>V(n,L(a))),B(e,t)};H(u,e=>{L(a)&&e(d)}),D(o);var f=F(o,2);U(f,21,()=>L(n),e=>e.key,(e,t)=>{var n=xJe(),r=N(n),a=N(r),o=N(a,!0);D(a);var c=F(a,2),l=e=>{var n=vJe(),r=N(n,!0);D(n),I(()=>V(r,L(t).description)),B(e,n)};H(c,e=>{L(t).description&&e(l)});var u=F(c,2),d=e=>{var n=yJe(),r=N(n,!0);D(n),I(e=>V(r,e),[()=>NF({source:L(t).managed_by||IF()})]),B(e,n)};H(u,e=>{L(t).locked&&e(d)}),D(r);var f=F(r,2);U(f,21,()=>L(t).options||[],e=>e.value,(e,t)=>{var n=bJe(),r=N(n,!0);D(n);var i={};I(()=>{G(n,`title`,L(t).description||``),V(r,L(t).label),i!==(i=L(t).value)&&(n.value=(n.__value=L(t).value)??``)}),B(e,n)}),D(f);var p;_i(f),D(n),I(()=>{G(a,`for`,`runtime-setting-${L(t).key}`),V(o,L(t).label),G(f,`id`,`runtime-setting-${L(t).key}`),f.disabled=L(t).locked||L(i)!==``,p!==(p=L(t).value)&&(f.value=(f.__value=L(t).value)??``,gi(f,L(t).value))}),R(`change`,f,e=>s(L(t),e.currentTarget.value,e.currentTarget)),B(e,n)}),D(f),D(t),I(e=>{V(l,e),G(f,`aria-busy`,L(r)?`true`:`false`)},[()=>xF()]),B(e,t)};H(l,e=>{(L(n).length>0||L(a))&&e(u)}),B(e,c),k()}Sr([`change`]);var wJe=z(`
                        `);function TJe(e,t){O(t,!0),hn(()=>{Y.refreshTick,wX.page===`settings`&&(UX.ensureOptions(),ZX.ensureLoaded())});var n=wJe(),r=N(n),i=N(r),a=N(i),o=N(a,!0);D(a),D(i),D(r);var s=F(r,2),c=N(s);Mqe(c,{});var l=F(c,2);Dqe(l,{});var u=F(l,2);Fqe(u,{});var d=F(u,2);Wqe(d,{});var f=F(d,2);Kqe(f,{});var p=F(f,2);rJe(p,{});var m=F(p,2);CJe(m,{});var h=F(m,2);lJe(h,{}),gJe(F(h,2),{}),D(s);var g=F(s,2),_=N(g,!0);D(g),D(n),I((e,t)=>{V(o,e),V(_,t)},[()=>Woe(),()=>aEe()]),B(e,n),k()}var Y9=z(`
                        `),EJe=z(`
                         
                        `),DJe=z(`
                         
                        `),OJe=z(`
                         
                        `),kJe=z(`
                        `),AJe=z(`
                        `,1),jJe=z(`
                        `);function MJe(e,t){O(t,!0);let n=K(t,`showPromptCache`,3,!0),r=U3({logPrefix:`Failed to copy interaction message:`}),i=A(()=>t.msg.role===`function_call`||t.msg.role===`function_result`);function a(e){return(Math.max(0,Math.min(1,Number(e||0)))*100).toFixed(1)+`%`}function o(e){let t=Math.max(0,Math.min(1,Number(e||0)));return t>0?ipe({percent:Math.round(t*100)}):void 0}function s(e){return e.role===`function_call`?(e.toolCalls||[]).map(e=>e.name+`()`).join(`, `):(e.functionName?e.functionName+`: `:``)+e.text}var c=jJe();let l;var u=N(c),d=e=>{var r=EJe(),i=N(r),a=N(i),c=N(a,!0);D(a);var l=F(a,2),u=N(l,!0);D(l);var d=F(l,2),f=N(d,!0);D(d),D(i);var p=F(i,2),m=e=>{var n=Y9(),r=N(n);D(n),I(e=>V(r,`${e??``}: ${t.msg.functionCallID??``}`),[()=>Uo()]),B(e,n)};H(p,e=>{t.msg.functionCallID&&e(m)});var h=F(p,2),g=e=>{var n=kr();U(P(n),17,()=>t.msg.toolCalls,Lr,(e,n)=>{var r=kr(),i=P(r),a=e=>{var r=Y9(),i=N(r);D(r),I(e=>V(i,`${e??``}: ${L(n).id??``}`),[()=>t.msg.toolCalls.length>1?lpe({name:L(n).name}):Uo()]),B(e,r)};H(i,e=>{L(n).id&&e(a)}),B(e,r)}),B(e,n)};H(h,e=>{t.msg.role===`function_call`&&t.msg.toolCalls&&e(g)});var _=F(h,2),v=N(_,!0);D(_),D(r),I((e,n,i,a)=>{G(r,`title`,e),V(c,t.msg.roleLabel),V(u,n),V(f,i),V(v,a)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>s(t.msg),()=>UX.formatTimestamp(t.msg.timestamp),()=>J7(t.msg)]),B(e,r)},f=e=>{var r=AJe(),i=P(r),a=N(i),s=N(a,!0);D(a);var c=F(a,2),l=N(c,!0);D(c),D(i);var u=F(i,2),d=e=>{var r=DJe(),i=N(r,!0);D(r),I(e=>{G(r,`title`,e),V(i,t.msg.text)},[()=>n()?o(t.msg.promptCacheRatio):void 0]),B(e,r)};H(u,e=>{t.msg.text&&e(d)});var f=F(u,2),p=e=>{var n=kJe();U(n,23,()=>t.msg.toolCalls,(e,t)=>e.name+`-`+t,(e,t)=>{var n=OJe(),r=N(n),i=N(r),a=N(i,!0);D(i);var o=F(i,2),s=N(o,!0);D(o),D(r);var c=F(r,2),l=e=>{var n=Y9(),r=N(n);D(n),I(e=>V(r,`${e??``}: ${L(t).id??``}`),[()=>Uo()]),B(e,n)};H(c,e=>{L(t).id&&e(l)});var u=F(c,2),d=N(u,!0);D(u),D(n),I((e,n)=>{V(a,L(t).name+`()`),V(s,e),V(d,n)},[()=>Y7(L(t))||Wo(),()=>Y7(L(t))||Wo()]),B(e,n)}),D(n),B(e,n)};H(f,e=>{t.msg.toolCalls&&e(p)}),I((e,n)=>{G(i,`title`,e),V(s,t.msg.roleLabel),V(l,n)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>UX.formatTimestamp(t.msg.timestamp)]),B(e,r)};H(u,e=>{L(i)?e(d):e(f,-1)});var p=F(u,2);let m;var h=N(p);{let e=A(()=>r.copied?eX:nX);q(h,{get icon(){return L(e)},width:`14`,height:`14`})}D(p),D(c),I((e,n,a)=>{W(c,1,ui([L(i)?`chat-function-note`:`chat-message`,t.msg.roleClass,{"is-anchor":t.msg.isAnchor,"is-after-anchor":t.msg.isAfterAnchor}]),`svelte-12s99s5`),G(c,`data-conversation-anchor`,t.msg.isAnchor?`true`:void 0),G(c,`data-entry-id`,t.msg.entryID),l=hi(c,``,l,e),m=W(p,1,`chat-message-copy svelte-12s99s5`,null,m,{"is-copied":r.copied}),G(p,`aria-label`,n),G(p,`title`,a)},[()=>({"--prompt-cache-fill":a(t.msg.promptCacheRatio),"--prompt-cache-visibility":n()&&t.msg.promptCacheRatio>0?`1`:`0`}),()=>r.copied?$fe():Ho(),()=>r.copied?mpe():Ho()]),R(`click`,p,e=>{e.stopPropagation(),r.copy(XUe(t.msg))}),B(e,c),k()}Sr([`click`]);function X9(e,t=0){let n=Math.max(0,Q9(e)-Math.max(0,Q9(t))),r=Math.min(320,Math.max(180,Math.floor(n*.58))),i=Math.min(360,Math.max(128,Math.floor(n*.35)));return{min:r,max:Math.max(r,n-i)}}function Z9(e,t,n=0){let r=X9(t,n),i=Q9(e)||520;return Math.min(r.max,Math.max(r.min,Math.round(i)))}function NJe(e,t,n=0){return Z9(Q9(t)-Q9(e),t,n)}function PJe(e,t,n,r){if(!Array.isArray(e)||e.length===0)return{index:-1,align:`start`};let i=Q9(t),a=0;e.forEach((e,t)=>{Q9(e)<=i+1&&(a=t)});let o=Number(r)<0?-1:1,s=Math.min(e.length-1,Math.max(0,a+o)),c=e.length-1,l=Q9(e[c])0&&s===c&&l?`end`:`start`}}function Q9(e){let t=Number(e);return Number.isFinite(t)?t:0}var FJe=z(`
                        `),IJe=z(`
                        `),$9=z(`

                        `),LJe=z(``),RJe=z(`
                        `,1),zJe=z(`

                        `),BJe=z(`
                        `),VJe=z(``),HJe=z(``),UJe=z(``);function WJe(e,t){O(t,!0);let n=X7,r=Number(Gi(`gomodel_interactions_panel_width`)),i=`gomodel_interactions_prompt_cache_fill`,a=Number.isFinite(r)&&r>0?r:520,o=j(Xt(a)),s=j(320),c=j(760),l=j(!1),u=j(!1),d=j(Gi(i,`true`)!==`false`),f=null;function p(e,{fullscreen:t,revealWithoutSlide:n=!1}){let r=q5(180);return t?iZ(e,{x:L(o),duration:r,easing:oZ}):n?{duration:0}:aZ(e,{axis:`x`,duration:r,easing:oZ})}async function m(e){if(e===L(l))return;let t=L(l)&&!e;M(u,t,!0),M(l,e,!0),t&&(await ir(),M(u,!1))}function h(){M(d,!L(d)),Ki(i,L(d))}function g(){return(document.querySelector(`.sidebar`)?.getBoundingClientRect().width||0)+(document.querySelector(`.sidebar-toggle`)?.getBoundingClientRect().width||0)}function _(){let e=g(),t=X9(window.innerWidth,e);M(s,t.min,!0),M(c,t.max,!0),M(o,Z9(a,window.innerWidth,e),!0)}function v(e){M(o,NJe(e,window.innerWidth,g()),!0),a=L(o)}function y(e){e.button===0&&(e.preventDefault(),f=e.pointerId,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`conversation-panel-resizing`),v(e.clientX))}function b(e){e.pointerId===f&&v(e.clientX)}function x(e){f===null||e.pointerId!==void 0&&e.pointerId!==f||(f=null,document.body.classList.remove(`conversation-panel-resizing`),Ki(`gomodel_interactions_panel_width`,a))}function S(e){e.key!==`ArrowLeft`&&e.key!==`ArrowRight`||(e.preventDefault(),a=L(o)+(e.key===`ArrowLeft`?24:-24),_(),a=L(o),Ki(`gomodel_interactions_panel_width`,a))}function C(e){let t=document.getElementById(`interactions-drawer-content`),r=n.conversationThreadEl;if(!t||!r)return;let i=[...r.querySelectorAll(`[data-conversation-message="true"]`)],a=t.getBoundingClientRect(),o=a.top+14,s=PJe(i.map(e=>e.getBoundingClientRect().top),o,a.bottom,e),c=i[s.index];if(!c)return;let l=s.align===`end`?t.scrollHeight:t.scrollTop+c.getBoundingClientRect().top-a.top-14;t.scrollTo({top:l,behavior:q5(1)>0?`smooth`:`auto`})}function w(){return[document.querySelector(`.sidebar`),document.querySelector(`.sidebar-toggle`),document.getElementById(`dashboard-content`)].filter(Boolean)}hn(()=>{if(!n.conversationOpen)return;_();let e=document.querySelector(`.sidebar`),t=new ResizeObserver(_);e&&t.observe(e);let r=e=>{e.key===`Escape`&&!Zi.anyOpen&&(L(l)?m(!1):n.closeConversation())};return window.addEventListener(`keydown`,r),window.addEventListener(`resize`,_),()=>{x({}),t.disconnect(),window.removeEventListener(`keydown`,r),window.removeEventListener(`resize`,_)}}),hn(()=>{n.conversationOpen||M(l,!1)}),hn(()=>{if(!L(l))return;let e=w().map(e=>({element:e,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}));return e.forEach(({element:e})=>{e.inert=!0,e.setAttribute(`aria-hidden`,`true`)}),()=>{e.forEach(({element:e,inert:t,ariaHidden:n})=>{e.inert=t,n===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,n)})}}),hn(()=>{wX.page!==`audit-logs`&&n.conversationOpen&&n.closeConversation()});var T=kr(),ee=P(T),E=e=>{var t=kr();U(P(t),16,()=>[L(l)],e=>e,(e,t)=>{var r=UJe();let i,a;var l=N(r),f=F(l,2),g=N(f),_=N(g),v=N(_,!0);D(_);var w=F(_,2),T=N(w);let ee;D(w),D(g);var E=F(g,2),te=N(E),ne=N(te);{let e=A(()=>t?LTe:cX);q(ne,{get icon(){return L(e)},class:`table-icon-svg`})}D(te);var re=F(te,2);{let e=A(()=>yde());QX(re,{get label(){return L(e)},onclick:()=>n.closeConversation(),get el(){return n.conversationCloseBtnEl},set el(e){n.conversationCloseBtnEl=e}})}D(E),D(f);var ie=F(f,2),ae=N(ie),oe=e=>{var t=FJe(),n=N(t);q(N(n),{get icon(){return STe},width:`14`,height:`14`}),D(n);var r=F(n,2);q(N(r),{get icon(){return yTe},width:`14`,height:`14`}),D(r),D(t),I((e,i,a,o,s)=>{G(t,`aria-label`,e),G(n,`aria-label`,i),G(n,`title`,a),G(r,`aria-label`,o),G(r,`title`,s)},[()=>Sde(),()=>Bo(),()=>Bo(),()=>Vo(),()=>Vo()]),R(`click`,n,()=>C(-1)),R(`click`,r,()=>C(1)),B(e,t)};H(ae,e=>{n.conversationMessages.length>1&&e(oe)});var se=F(ae,2),ce=e=>{var t=IJe(),r=N(t,!0);D(t),I(()=>V(r,n.conversationError)),B(e,t)};H(se,e=>{n.conversationError&&e(ce)});var le=F(se,2),ue=e=>{var t=$9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>kde()]),B(e,t)};H(le,e=>{n.conversationLoading&&e(ue)});var de=F(le,2),fe=e=>{var t=$9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Mde()]),B(e,t)},pe=A(()=>!n.conversationLoading&&!n.followUpSending&&!n.conversationError&&n.conversationMessages.length===0&&!n.conversationLiveWaiting());H(de,e=>{L(pe)&&e(fe)});var me=F(de,2),he=e=>{var t=RJe(),r=P(t),i=e=>{var t=LJe(),n=N(t);let r;var i=F(n,2),a=N(i),o=F(a),s=N(o,!0);D(o),D(i),D(t),I((e,i,o)=>{G(t,`aria-checked`,L(d)),G(t,`title`,e),r=W(n,1,`conversation-cache-switch svelte-ssrzja`,null,r,{"is-active":L(d)}),V(a,`${i??``} `),V(s,o)},[()=>L(d)?Fde():Rde(),()=>Vde(),()=>Wde()]),R(`click`,t,h),B(e,t)},a=A(()=>n.conversationMessages.some(e=>Number(e.promptCacheRatio||0)>0));H(r,e=>{L(a)&&e(i)});var o=F(r,2);U(o,21,()=>n.conversationMessages,e=>e.uid,(e,t)=>{MJe(e,{get msg(){return L(t)},get showPromptCache(){return L(d)}})}),D(o),Li(o,e=>n.conversationThreadEl=e,()=>n?.conversationThreadEl),B(e,t)};H(me,e=>{n.conversationMessages.length>0&&e(he)});var ge=F(me,2),_e=e=>{var t=zJe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>qde()]),B(e,t)};H(ge,e=>{n.conversationTruncated&&e(_e)});var ve=F(ge,2),ye=e=>{var t=BJe(),r=F(N(t),2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>n.conversationLiveStatusText()]),B(e,t)},be=A(()=>n.conversationLiveWaiting());H(ve,e=>{L(be)&&e(ye)}),D(ie);var xe=F(ie,2),Se=e=>{var t=HJe(),r=N(t),i=N(r);at(i);var a=F(i,2),o=e=>{var t=VJe(),r=N(t,!0);D(t),I(()=>V(r,n.followUpError)),B(e,t)};H(a,e=>{n.followUpError&&e(o)});var s=F(a,2),c=N(s),l=N(c,!0);D(c);var u=F(c,2),d=N(u,!0);D(u),D(s),D(r),D(t),I((e,t,n,r,a,o)=>{G(i,`aria-label`,e),G(i,`placeholder`,t),i.disabled=n,V(l,r),u.disabled=a,V(d,o)},[()=>Xde(),()=>$de(),()=>n.followUpSending||n.conversationLiveWaiting(),()=>n.selectedConversationEntry()?.path||``,()=>!n.canSendFollowUp(),()=>n.followUpSending?ase():nse()]),xr(`submit`,r,e=>{e.preventDefault(),n.sendFollowUp()}),Mi(i,()=>n.followUpText,e=>n.followUpText=e),B(e,t)},Ce=A(()=>n.conversationAnchorID&&n.followUpKind());H(xe,e=>{L(Ce)&&e(Se)}),D(r),Li(r,e=>n.conversationDialogEl=e,()=>n?.conversationDialogEl),I((e,u,d,f,p,m)=>{i=W(r,1,`conversation-drawer svelte-ssrzja`,null,i,{"conversation-drawer-fullscreen":t}),G(r,`role`,t?`dialog`:void 0),G(r,`aria-modal`,t?`true`:void 0),a=hi(r,``,a,{"--conversation-panel-width":L(o)+`px`}),G(l,`aria-label`,e),G(l,`aria-valuemin`,L(s)),G(l,`aria-valuemax`,L(c)),G(l,`aria-valuenow`,L(o)),V(v,u),G(w,`aria-label`,d),G(w,`title`,f),ee=W(T,1,`live-dot`,null,ee,{"is-streaming":n.conversationFollowLatest}),G(te,`aria-label`,p),G(te,`title`,m),G(te,`aria-pressed`,t)},[()=>Uue(),()=>Kue(),()=>n.conversationFollowLatest?Yue():Que(),()=>n.conversationFollowLatest?tde():ide(),()=>t?sde():ude(),()=>t?pde():gde()]),R(`pointerdown`,l,y),R(`pointermove`,l,b),R(`pointerup`,l,x),xr(`pointercancel`,l,x),xr(`lostpointercapture`,l,x),R(`keydown`,l,S),R(`click`,te,()=>m(!t)),oi(7,r,()=>p,()=>({fullscreen:t,revealWithoutSlide:!t&&L(u)})),B(e,r)}),B(e,t)};H(ee,e=>{n.conversationOpen&&e(E)}),B(e,T),k()}Sr([`pointerdown`,`pointermove`,`pointerup`,`keydown`,`click`]);var GJe=z(`
                        `,1);function KJe(e,t){O(t,!0);let n={overview:u3,usage:jIe,budgets:OLe,"rate-limits":dRe,models:MBe,workflows:rHe,"audit-logs":GWe,guardrails:CGe,"mcp-servers":$Ge,"providers-config":GKe,"auth-keys":wqe,settings:TJe};QEe(),UX.init(),kZ.init(),Y.init(),Yi.init(),Xi.init(),wX.init(),hn(()=>{Y.refreshTick,ZX.fetch(),AZ.fetchModels(),AZ.fetchCategories()}),hn(()=>{document.body.classList.toggle(`dashboard-modal-open`,Zi.anyOpen)});let r=A(()=>n[wX.page]||u3);var i=GJe(),a=P(i);SEe(a,{});var o=F(a,2);let s;var c=N(o);WEe(c,{}),Jr(F(c,2),()=>L(r),(e,t)=>{t(e,{})}),D(o);var l=F(o,2);WJe(l,{});var u=F(l,2);AEe(u,{});var d=F(u,2);PEe(d,{}),HEe(F(d,2),{}),I(()=>s=W(o,1,`content`,null,s,{"interactions-open":X7.conversationOpen})),B(e,i),k()}Mr(KJe,{target:document.getElementById(`app`)}); \ No newline at end of file diff --git a/internal/admin/dashboard/static/dist/assets/index-CYbzNV3I.js b/internal/admin/dashboard/static/dist/assets/index-CYbzNV3I.js deleted file mode 100644 index 10cab0327..000000000 --- a/internal/admin/dashboard/static/dist/assets/index-CYbzNV3I.js +++ /dev/null @@ -1,36 +0,0 @@ -(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible;function d(e){return typeof e==`function`}var f=()=>{};function p(e){for(var t=0;t{e=n,t=r}),resolve:e,reject:t}}function h(e,t,n=!1){return e===void 0?n?t():t:e}function g(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var _=1<<24,v=1024,y=2048,b=4096,x=8192,S=16384,C=32768,w=1<<25,T=65536,ee=1<<19,E=1<<20,te=1<<25,ne=65536,re=1<<21,ie=1<<22,ae=1<<23,oe=Symbol(`$state`),se=Symbol(`legacy props`),ce=Symbol(``),le=Symbol(`attributes`),ue=Symbol(`class`),de=Symbol(`style`),fe=Symbol(`text`),pe=Symbol(`form reset`),me=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},he=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function ge(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function _e(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function ve(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function ye(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function be(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function xe(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Se(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function Ce(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function we(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Te(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Ee(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var De={},Oe=Symbol(`uninitialized`),ke=`http://www.w3.org/1999/xhtml`,Ae=`http://www.w3.org/2000/svg`,je=`http://www.w3.org/1998/Math/MathML`;function Me(){console.warn(`https://svelte.dev/e/derived_inert`)}function Ne(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Pe(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Fe(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var Ie=!1;function Le(e){Ie=e}var Re;function ze(e){if(e===null)throw Ne(),De;return Re=e}function Be(){return ze(rn(Re))}function D(e){if(Ie){if(rn(Re)!==null)throw Ne(),De;Re=e}}function Ve(e=1){if(Ie){for(var t=e,n=Re;t--;)n=rn(n);Re=n}}function He(e=!0){for(var t=0,n=Re;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=rn(n);e&&n.remove(),n=i}}function Ue(e){if(!e||e.nodeType!==8)throw Ne(),De;return e.data}function We(e){return e===this.v}function eee(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ge(e){return!eee(e,this.v)}var Ke=null;function qe(e){Ke=e}function O(e,t=!1,n){Ke={p:Ke,i:!1,c:null,e:null,s:e,x:null,r:zn,l:null}}function k(e){var t=Ke,n=t.e;if(n!==null){t.e=null;for(var r of n)hn(r)}return e!==void 0&&(t.x=e),t.i=!0,Ke=t.p,e??{}}function Je(){return!0}var Ye=[];function Xe(){var e=Ye;Ye=[],p(e)}function Ze(e){if(Ye.length===0&&!kt){var t=Ye;queueMicrotask(()=>{t===Ye&&Xe()})}Ye.push(e)}function tee(){for(;Ye.length>0;)Xe()}function Qe(e){var t=zn;if(t===null)return In.f|=ae,e;if(!(t.f&32768)&&!(t.f&4))throw e;$e(e,t)}function $e(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}var nee=~(y|b|v);function et(e,t){e.f=e.f&nee|t}function tt(e){e.f&512||e.deps===null?et(e,v):et(e,b)}function nt(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=ne,nt(t.deps))}function rt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),nt(e.deps),et(e,v)}var it=!1;function ree(e){var t=it;try{return it=!1,[e(),it]}finally{it=t}}function iee(e,t){if(t){let t=document.body;e.autofocus=!0,Ze(()=>{document.activeElement===t&&e.focus()})}}function at(e){Ie&&nn(e)!==null&&an(e)}var ot=!1;function st(){ot||(ot=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[pe]?.()})},{capture:!0}))}function ct(e){var t=In,n=zn;Rn(null),Bn(null);try{return e()}finally{Rn(t),Bn(n)}}function lt(e,t,n,r=n){e.addEventListener(t,()=>ct(n));let i=e[pe];i?e[pe]=()=>{i(),r(!0)}:e[pe]=()=>r(!0),st()}function ut(e){let t=0,n=Gt(0),r;return()=>{fn()&&(R(n),vn(()=>(t===0&&(r=or(()=>e(()=>Jt(n)))),t+=1,()=>{Ze(()=>{--t,t===0&&(r?.(),r=void 0,Jt(n))})})))}}var dt=T|ee;function ft(e,t,n,r){new aee(e,t,n,r)}var aee=class{parent;is_pending=!1;transform_error;#e;#t=Ie?Re:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=ut(()=>(this.#m=Gt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=zn;t.b=this,t.f|=128,n(e)},this.parent=zn.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=yn(()=>{if(Ie){let e=this.#t;Be();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},dt),Ie&&(this.#e=Re)}#g(){try{this.#a=xn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=xn(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=xn(()=>e(this.#e)),Ze(()=>{var e=this.#c=document.createDocumentFragment(),t=tn();e.append(t),this.#a=this.#x(()=>xn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Dn(this.#o,()=>{this.#o=null}),this.#b(Tt))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=xn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();jn(this.#a,e);let t=this.#n.pending;this.#o=xn(()=>t(this.#e))}else this.#b(Tt)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){rt(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=zn,n=In,r=Ke;Bn(this.#i),Rn(this.#i),qe(this.#i.ctx);try{return Ft.ensure(),e()}catch(e){return Qe(e),null}finally{Bn(t),Rn(n),qe(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&Dn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,Ze(()=>{this.#d=!1,this.#m&&qt(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),R(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;Tt?.is_fork?(this.#a&&Tt.skip_effect(this.#a),this.#o&&Tt.skip_effect(this.#o),this.#s&&Tt.skip_effect(this.#s),Tt.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(wn(this.#a),null),this.#o&&=(wn(this.#o),null),this.#s&&=(wn(this.#s),null),Ie&&(ze(this.#t),Ve(),ze(He()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Fe();return}r=!0,i&&Ee(),this.#s!==null&&Dn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){$e(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return xn(()=>{var t=zn;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return $e(e,this.#i.parent),null}}))};Ze(()=>{var t;try{t=this.transform_error(e)}catch(e){$e(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>$e(e,this.#i&&this.#i.parent)):o(t)})}};function pt(e,t,n,r){let i=Je()?gt:yt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=zn,c=oee(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){$e(e,s)}mt()}}var d=ht();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>vt(e))).then(u).catch(e=>$e(e,s)).finally(d)}l?l.then(()=>{c(),f(),mt()}):f()}function oee(){var e=zn,t=In,n=Ke,r=Tt;return function(i=!0){Bn(e),Rn(t),qe(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function mt(e=!0){Bn(null),Rn(null),qe(null),e&&Tt?.deactivate()}function ht(){var e=zn,t=e.b,n=Tt,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function gt(e){var t=2|y;return zn!==null&&(zn.f|=ee),{ctx:Ke,deps:null,effects:null,equals:We,f:t,fn:e,reactions:null,rv:0,v:Oe,wv:0,parent:zn,ac:null}}var _t=Symbol(`obsolete`);function vt(e,t,n){let r=zn;r===null&&ge();var i=void 0,a=Gt(Oe),o=!In,s=new Set;return hee(()=>{var t=zn,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==me&&n.reject(e)}).finally(mt)}catch(e){n.reject(e),mt()}var c=Tt;if(o){if(t.f&32768)var l=ht();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(_t);else for(let e of s.values())e.reject(_t);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==_t&&(c.activate(),t?(a.f|=ae,qt(a,t)):(a.f&8388608&&(a.f^=ae),qt(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),pn(()=>{for(let e of s)e.reject(_t)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function A(e){let t=gt(e);return Hn(t),t}function yt(e){let t=gt(e);return t.equals=Ge,t}function bt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n{t.ac.abort(me),t.ac=null}),t.fn!==null&&(t.teardown=f),tr(t,0),Cn(t))}function Ct(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&nr(t)}var wt=null,Tt=null,Et=null,Dt=null,Ot=null,kt=!1,At=!1,jt=null,Mt=null,Nt=0,Pt=1,Ft=class e{id=Pt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){wt===null?wt=this:(wt.#n=this,this.#t=wt),wt=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)et(r,y),t(r);for(r of n.m)et(r,b),t(r)}this.#p.add(e)}#g(){this.#e=!0,Nt++>1e3&&(this.#x(),lee());for(let e of this.#u)this.#d.delete(e),et(e,y),this.schedule(e);for(let e of this.#d)et(e,b),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=jt=[],r=[],i=Mt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw Vt(e),this.#h()||this.discard(),t}if(Tt=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(jt=null,Mt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Bt(e,t);i.length>0&&Tt.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),Et=this,Lt(r),Lt(n),Et=null,this.#s?.resolve();var s=Tt;if(this.#a===0&&(this.#c.length===0||s!==null)&&this.#x(),this.#c.length>0)if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this;s!==null&&s.#g()}#_(e,t,n){e.f^=v;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=v:i&4?t.push(r):Zn(r)&&(i&16&&this.#d.add(r),nr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),et(i,y),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),Tt=this,this.#g()}#b(e){for(var t=0;t{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=m()).promise}static ensure(){if(Tt===null){let t=Tt=new e;!At&&!kt&&Ze(()=>{t.#e||t.flush()})}return Tt}apply(){Dt=null}schedule(e){if(Ot=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(jt!==null&&t===zn&&(In===null||!(In.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=v}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?wt=e:t.#t=e,this.linked=!1}}};function cee(e){var t=kt;kt=!0;try{var n;for(e&&(Tt!==null&&!Tt.is_fork&&Tt.flush(),n=e());;){if(tee(),Tt===null)return n;Tt.flush()}}finally{kt=t}}function lee(){try{xe()}catch(e){$e(e,Ot)}}var It=null;function Lt(e){var t=e.length;if(t!==0){for(var n=0;n0)){Ut.clear();for(let e of It){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)It.has(n)&&(It.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||nr(n)}}It.clear()}}It=null}}function uee(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?uee(i,t,n,r):e&4194320&&!(e&2048)&&Rt(i,t,r)&&(et(i,y),zt(i))}}function Rt(e,t,r){let i=r.get(e);if(i!==void 0)return i;if(e.deps!==null)for(let i of e.deps){if(n.call(t,i))return!0;if(i.f&2&&Rt(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function zt(e){Tt.schedule(e)}function Bt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),et(e,v);for(var n=e.first;n!==null;)Bt(n,t),n=n.next}}function Vt(e){et(e,v);for(var t=e.first;t!==null;)Vt(t),t=t.next}var Ht=new Set,Ut=new Map,Wt=!1;function Gt(e,t){return{f:0,v:e,reactions:null,equals:We,rv:0,wv:0}}function j(e,t){let n=Gt(e,t);return Hn(n),n}function Kt(e,t=!1,n=!0){let r=Gt(e);return t||(r.equals=Ge),r}function M(e,t,n=!1){return In!==null&&(!Ln||In.f&131072)&&Je()&&In.f&4325394&&(Vn===null||!Vn.has(e))&&Te(),qt(e,n?N(t):t,Mt)}function qt(e,t,n=null){if(!e.equals(t)){Ut.set(e,Pn?t:e.v);var r=Ft.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&xt(t),Dt===null&&tt(t)}e.wv=Xn(),Yt(e,y,n),Je()&&zn!==null&&zn.f&1024&&!(zn.f&96)&&(Gn===null?_ee([e]):Gn.push(e)),!r.is_fork&&Ht.size>0&&!Wt&&dee()}return t}function dee(){Wt=!1;for(let e of Ht){e.f&1024&&et(e,b);let t;try{t=Zn(e)}catch{t=!0}t&&nr(e)}Ht.clear()}function Jt(e){M(e,e.v+1)}function Yt(e,t,n){var r=e.reactions;if(r!==null)for(var i=Je(),a=r.length,o=0;o{if(Jn===d)return e();var t=In,n=Jn;Rn(null),Yn(d);var r=e();return Rn(t),Yn(n),r};return i&&r.set(`length`,j(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&Ce();var i=r.get(t);return i===void 0?f(()=>{var e=j(n.value,u);return r.set(t,e),e}):M(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>j(Oe,u));r.set(t,e),Jt(o)}}else M(n,Oe),Jt(o);return!0},get(e,n,i){if(n===oe)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>j(N(s?e[n]:Oe),u)),r.set(n,o)),o!==void 0){var c=R(o);return c===Oe?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=R(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==Oe)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===oe)return!0;var n=r.get(t),i=n!==void 0&&n.v!==Oe||Reflect.has(e,t);return(n!==void 0||zn!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>j(i?N(e[t]):Oe,u)),r.set(t,n)),R(n)===Oe)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;dj(Oe,u)),r.set(d+``,p)):M(p,Oe)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>j(void 0,u)),M(c,N(n)),r.set(t,c));else{l=c.v!==Oe;var m=f(()=>N(n));M(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&M(g,_+1)}Jt(o)}return!0},ownKeys(e){R(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==Oe});for(var[n,i]of r)i.v!==Oe&&!(n in e)&&t.push(n);return t},setPrototypeOf(){we()}})}function Xt(e){try{if(typeof e==`object`&&e&&oe in e)return e[oe]}catch{}return e}function fee(e,t){return Object.is(Xt(e),Xt(t))}var Zt,Qt,$t,en;function pee(){if(Zt===void 0){Zt=window,Qt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;$t=a(t,`firstChild`).get,en=a(t,`nextSibling`).get,u(e)&&(e[ue]=void 0,e[le]=null,e[de]=void 0,e.__e=void 0),u(n)&&(n[fe]=void 0)}}function tn(e=``){return document.createTextNode(e)}function nn(e){return $t.call(e)}function rn(e){return en.call(e)}function P(e,t){if(!Ie)return nn(e);var n=nn(Re);if(n===null)n=Re.appendChild(tn());else if(t&&n.nodeType!==3){var r=tn();return n?.before(r),ze(r),r}return t&&cn(n),ze(n),n}function F(e,t=!1){if(!Ie){var n=nn(e);return n instanceof Comment&&n.data===``?rn(n):n}if(t){if(Re?.nodeType!==3){var r=tn();return Re?.before(r),ze(r),r}cn(Re)}return Re}function I(e,t=1,n=!1){let r=Ie?Re:e;for(var i;t--;)i=r,r=rn(r);if(!Ie)return r;if(n){if(r?.nodeType!==3){var a=tn();return r===null?i?.after(a):r.before(a),ze(a),a}cn(r)}return ze(r),r}function an(e){e.textContent=``}function on(){return!1}function sn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function cn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function ln(e){zn===null&&(In===null&&be(e),ye()),Pn&&ve(e)}function un(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function dn(e,t){var n=zn;n!==null&&n.f&8192&&(e|=x);var r={ctx:Ke,deps:null,nodes:null,f:e|y|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};Tt?.register_created_effect(r);var i=r;if(e&4)jt===null?Ft.ensure().schedule(r):jt.push(r);else if(t!==null){try{nr(r)}catch(e){throw wn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=T))}if(i!==null&&(i.parent=n,n!==null&&un(i,n),In!==null&&In.f&2&&!(e&64))){var a=In;(a.effects??=[]).push(i)}return r}function fn(){return In!==null&&!Ln}function pn(e){let t=dn(8,null);return et(t,v),t.teardown=e,t}function mn(e){ln(`$effect`);var t=zn.f;if(!In&&t&32&&Ke!==null&&!Ke.i){var n=Ke;(n.e??=[]).push(e)}else return hn(e)}function hn(e){return dn(4|E,e)}function gn(e){Ft.ensure();let t=dn(64|ee,e);return()=>{wn(t)}}function mee(e){Ft.ensure();let t=dn(64|ee,e);return(e={})=>new Promise(n=>{e.outro?Dn(t,()=>{wn(t),n(void 0)}):(wn(t),n(void 0))})}function _n(e){return dn(4,e)}function hee(e){return dn(ie|ee,e)}function vn(e,t=0){return dn(8|t,e)}function L(e,t=[],n=[],r=[]){pt(r,t,n,t=>{dn(8,()=>{e(...t.map(R))})})}function yn(e,t=0){return dn(16|t,e)}function bn(e,t=0){return dn(_|t,e)}function xn(e){return dn(32|ee,e)}function Sn(e){var t=e.teardown;if(t!==null){let e=Pn,n=In;Fn(!0),Rn(null);try{t.call(null)}finally{Fn(e),Rn(n)}}}function Cn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&ct(()=>{e.abort(me)});var r=n.next;n.f&64?n.parent=null:wn(n,t),n=r}}function gee(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||wn(t),t=n}}function wn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Tn(e.nodes.start,e.nodes.end),n=!0),e.f|=w,Cn(e,t&&!n),tr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Sn(e),e.f^=w,e.f|=S;var i=e.parent;i!==null&&i.first!==null&&En(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Tn(e,t){for(;e!==null;){var n=e===t?null:rn(e);e.remove(),e=n}}function En(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Dn(e,t,n=!0){var r=[];On(e,r,!0);var i=()=>{n&&wn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function On(e,t,n){if(!(e.f&8192)){e.f^=x;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;On(i,t,o?n:!1)}i=a}}}function kn(e){An(e,!0)}function An(e,t){if(e.f&8192){e.f^=x,e.f&1024||(et(e,y),Ft.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;An(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function jn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:rn(n);t.append(n),n=i}}var Mn=null,Nn=!1,Pn=!1;function Fn(e){Pn=e}var In=null,Ln=!1;function Rn(e){In=e}var zn=null;function Bn(e){zn=e}var Vn=null;function Hn(e){In!==null&&(Vn??=new Set).add(e)}var Un=null,Wn=0,Gn=null;function _ee(e){Gn=e}var Kn=1,qn=0,Jn=qn;function Yn(e){Jn=e}function Xn(){return++Kn}function Zn(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~ne),t&4096){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}t&512&&Dt===null&&et(e,v)}return!1}function Qn(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Vn!==null&&Vn.has(e)))for(var i=0;i{e.ac.abort(me)}),e.ac=null);try{e.f|=re;var u=e.fn,d=u();e.f|=C;var f=e.deps,p=Tt?.is_fork;if(Un!==null){var m;if(p||tr(e,Wn),f!==null&&Wn>0)for(f.length=Wn+Un.length,m=0;m{s.ac.abort(me),s.ac=null,et(s,y)}),see(s),tr(s,0)}}function tr(e,t){var n=e.deps;if(n!==null)for(var r=t;rn?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?Ze(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function br(e,t,n,r,i){var a={capture:r,passive:i},o=yr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&pn(()=>{t.removeEventListener(e,o,a)})}function z(e,t,n){(t[gr]??={})[e]=n}function xr(e){for(var t=0;t{throw e});throw p}}finally{e[gr]=t,delete e.currentTarget,Rn(d),Bn(f)}}}var yee=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function bee(e){return yee?.createHTML(e)??e}function wr(e){var t=sn(`template`);return t.innerHTML=bee(e.replaceAll(``,``)),t.content}function Tr(e,t){var n=zn;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function B(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(``);return()=>{if(Ie)return Tr(Re,null),Re;i===void 0&&(i=wr(a?e:``+e),n||(i=nn(i)));var t=r||Qt?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=nn(t),s=t.lastChild;Tr(o,s)}else Tr(t,t);return t}}function xee(e,t,n=`svg`){var r=!e.startsWith(``),i=(t&1)!=0,a=`<${n}>${r?e:``+e}`,o;return()=>{if(Ie)return Tr(Re,null),Re;if(!o){var e=nn(wr(a));if(i)for(o=document.createDocumentFragment();nn(e);)o.appendChild(nn(e));else o=nn(e)}var t=o.cloneNode(!0);if(i){var n=nn(t),r=t.lastChild;Tr(n,r)}else Tr(t,t);return t}}function Er(e,t){return xee(e,t,`svg`)}function Dr(e=``){if(!Ie){var t=tn(e+``);return Tr(t,t),t}var n=Re;return n.nodeType===3?cn(n):(n.before(n=tn()),ze(n)),Tr(n,n),n}function Or(){if(Ie)return Tr(Re,null),Re;var e=document.createDocumentFragment(),t=document.createComment(``),n=tn();return e.append(t,n),Tr(t,n),e}function V(e,t){if(Ie){var n=zn;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=Re),Be();return}e!==null&&e.before(t)}var kr=!0;function Ar(e){kr=e}function H(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[fe]??=e.nodeValue)&&(e[fe]=n,e.nodeValue=`${n}`)}function jr(e,t){return Nr(e,t)}var Mr=new Map;function Nr(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){pee();var l=void 0,u=mee(()=>{var u=n??t.appendChild(tn());ft(u,{pending:()=>{}},t=>{O({});var n=Ke;if(o&&(n.c=o),a&&(i.$$events=a),Ie&&Tr(t,null),kr=s,l=e(t,i)||{},kr=!0,Ie&&(zn.nodes.end=Re,Re===null||Re.nodeType!==8||Re.data!==`]`))throw Ne(),De;k()},c);var d=new Set,f=e=>{for(var n=0;n{for(var e of d)for(let n of[t,document]){var r=Mr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Cr),r.delete(e),r.size===0&&Mr.delete(n)):r.set(e,i)}vr.delete(f),u!==n&&u.parentNode?.removeChild(u)}});return Pr.set(l,u),l}var Pr=new WeakMap,Fr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)kn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(kn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(wn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();jn(r,t),t.append(tn()),this.#n.set(e,{effect:r,fragment:t})}else wn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Dn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(wn(n.effect),this.#n.delete(e))};ensure(e,t){var n=Tt,r=on();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=tn();i.append(a),this.#n.set(e,{effect:xn(()=>t(a)),fragment:i})}else this.#t.set(e,xn(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else Ie&&(this.anchor=Re),this.#a(n)}};function U(e,t,n=!1){var r;Ie&&(r=Re,Be());var i=new Fr(e),a=n?T:0;function o(e,t){if(Ie){var n=Ue(r);if(e!==parseInt(n.substring(1))){var a=He();ze(a),i.anchor=a,Le(!1),i.ensure(e,t),Le(!0);return}}i.ensure(e,t)}yn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Ir(e,t){return t}function Lr(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;Rr(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=i.length===0&&n!==null;if(l){var u=n,d=u.parentNode;an(d),d.append(u),e.items.clear()}Rr(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function Rr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,Vr(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=te,Ur(d,null,c)):kn(d):Dn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:yn(()=>{p=R(f);var e=p.length;let t=!1;Ie&&Ue(c)===`[!`!=(e===0)&&(c=He(),ze(c),Le(!1),t=!0);for(var r=new Set,u=Tt,v=on(),y=0;ys(c)):(d=xn(()=>s(zr??=tn())),d.f|=te)),e>r.size&&_e(``,``,``),Ie&&e>0&&ze(He()),!h)if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&Le(!0),R(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,Ie&&(c=Re)}function Br(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function Vr(e,t,n,i,a){var o=(i&8)!=0,s=t.length,c=e.items,l=Br(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v0){var ee=i&4&&s===0?n:null;if(o){for(v=0;v{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Hr(e,t,n,r,i,a,o,s){var c=o&1?o&16?Gt(n):Kt(n,!1,!1):null,l=o&2?Gt(i):null;return{v:c,i:l,e:xn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function Ur(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=rn(r);if(a.before(r),r===i)return;r=o}}function Wr(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Gr(e,t,n=!1,r=!1,i=!1,a=!1){var o=e,s=``;if(n){var c=e;Ie&&(o=ze(nn(c)))}L(()=>{var e=zn;if(s===(s=t()??``)){Ie&&Be();return}if(n&&!Ie){e.nodes=null,c.innerHTML=s,s!==``&&Tr(nn(c),c.lastChild);return}if(e.nodes!==null&&(Tn(e.nodes.start,e.nodes.end),e.nodes=null),s!==``){if(Ie){for(var a=Re.data,l=Be(),u=l;l!==null&&(l.nodeType!==8||l.data!==``);)u=l,l=rn(l);if(l===null)throw Ne(),De;Tr(Re,u),o=ze(l);return}var d=sn(r?`svg`:i?`math`:`template`,r?Ae:i?je:void 0);d.innerHTML=s;var f=r||i?d:d.content;if(Tr(nn(f),f.lastChild),r||i)for(;nn(f);)o.before(nn(f));else o.before(f)}})}function Kr(e,t,...n){var r=new Fr(e);yn(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},T)}function qr(e,t,n){var r;Ie&&(r=Re,Be());var i=new Fr(e);yn(()=>{var e=t()??null;if(Ie&&Ue(r)===`[`!=(e!==null)){var a=He();ze(a),i.anchor=a,Le(!1),i.ensure(e,e&&(t=>n(t,e))),Le(!0);return}i.ensure(e,e&&(t=>n(t,e)))},T)}var Jr=()=>performance.now(),Yr={tick:e=>requestAnimationFrame(e),now:()=>Jr(),tasks:new Set};function Xr(){let e=Yr.now();Yr.tasks.forEach(t=>{t.c(e)||(Yr.tasks.delete(t),t.f())}),Yr.tasks.size!==0&&Yr.tick(Xr)}function Zr(e){let t;return Yr.tasks.size===0&&Yr.tick(Xr),{promise:new Promise(n=>{Yr.tasks.add(t={c:e,f:n})}),abort(){Yr.tasks.delete(t)}}}function Qr(e,t){ct(()=>{e.dispatchEvent(new CustomEvent(t))})}function $r(e){if(e===`float`)return`cssFloat`;if(e===`offset`)return`cssOffset`;if(e.startsWith(`--`))return e;let t=e.split(`-`);return t.length===1?t[0]:t[0]+t.slice(1).map(e=>e[0].toUpperCase()+e.slice(1)).join(``)}function ei(e){let t={},n=e.split(`;`);for(let e of n){let[n,r]=e.split(`:`);if(!n||r===void 0)break;let i=$r(n.trim());t[i]=r.trim()}return t}var ti=e=>e,ni=null;function ri(e){ni=e}function ii(e,t,n){var r=(ni??zn).nodes,i,a,o,s=null;r.a??={element:e,measure(){i=this.element.getBoundingClientRect()},apply(){if(o?.abort(),a=this.element.getBoundingClientRect(),i.left!==a.left||i.right!==a.right||i.top!==a.top||i.bottom!==a.bottom){let e=t()(this.element,{from:i,to:a},n?.());o=oi(this.element,e,void 0,1,()=>{},()=>{o?.abort(),o=void 0})}},fix(){if(!e.getAnimations().length){var{position:t,width:n,height:r}=getComputedStyle(e);if(t!==`absolute`&&t!==`fixed`){var a=e.style;s={position:a.position,width:a.width,height:a.height,transform:a.transform},a.position=`absolute`,a.width=n,a.height=r;var o=e.getBoundingClientRect();if(i.left!==o.left||i.top!==o.top){var c=`translate(${i.left-o.left}px, ${i.top-o.top}px)`;a.transform=a.transform?`${a.transform} ${c}`:c}}}},unfix(){if(s){var t=e.style;t.position=s.position,t.width=s.width,t.height=s.height,t.transform=s.transform}}},r.a.element=e}function ai(e,t,n,r){var i=(e&1)!=0,a=(e&2)!=0,o=i&&a,s=(e&4)!=0,c=o?`both`:i?`in`:`out`,l,u=t.inert,d=t.style.overflow,f,p;function m(){return ct(()=>l??=n()(t,r?.()??{},{direction:c}))}var h={is_global:s,in(){if(t.inert=u,!i){p?.abort(),p?.reset?.();return}a||f?.abort(),f=oi(t,m(),p,1,()=>{Qr(t,`introstart`)},()=>{Qr(t,`introend`),f?.abort(),f=l=void 0,t.style.overflow=d})},out(e){if(!a){e?.(),l=void 0;return}t.inert=!0,p=oi(t,m(),f,0,()=>{Qr(t,`outrostart`)},()=>{Qr(t,`outroend`),e?.()})},stop:()=>{f?.abort(),p?.abort()}},g=zn;if((g.nodes.t??=[]).push(h),i&&kr){var _=s;if(!_){for(var v=g.parent;v&&v.f&65536;)for(;(v=v.parent)&&!(v.f&16););_=!v||(v.f&32768)!=0}_&&_n(()=>{or(()=>h.in())})}}function oi(e,t,n,r,i,a){var o=r===1;if(d(t)){var s,c=!1;return Ze(()=>{c||(s=oi(e,t({direction:o?`in`:`out`}),n,r,i,a))}),{abort:()=>{c=!0,s?.abort()},deactivate:()=>s.deactivate(),reset:()=>s.reset(),t:()=>s.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return i(),a(),{abort:f,deactivate:f,reset:f,t:()=>r};let{delay:l=0,css:u,tick:p,easing:m=ti}=t;var h=[];if(o&&n===void 0&&(p&&p(0,1),u)){var g=ei(u(0,1));h.push(g,g)}var _=()=>1-r,v=e.animate(h,{duration:l,fill:`forwards`});return v.onfinish=()=>{v.cancel(),i();var o=n?.t()??1-r;n?.abort();var s=r-o,c=t.duration*Math.abs(s),l=[];if(c>0){var d=!1;if(u)for(var f=Math.ceil(c/(1e3/60)),h=0;h<=f;h+=1){var g=o+s*m(h/f),y=ei(u(g,1-g));l.push(y),d||=y.overflow===`hidden`}d&&(e.style.overflow=`hidden`),_=()=>{var e=v.currentTime;return o+s*m(e/c)},p&&Zr(()=>{if(v.playState!==`running`)return!1;var e=_();return p(e,1-e),!0})}v=e.animate(l,{duration:c,fill:`forwards`}),v.onfinish=()=>{_=()=>r,p?.(r,1-r),a()}},{abort:()=>{v&&(v.cancel(),v.effect=null,v.onfinish=f)},deactivate:()=>{a=f},reset:()=>{r===0&&p?.(1,0)},t:()=>_()}}function See(e,t,n,r,i,a){let o=Ie;Ie&&Be();var s=null;Ie&&Re.nodeType===1&&(s=Re,Be());var c=Ie?Re:e,l=zn,u=new Fr(c,!1);yn(()=>{let e=t()||null;var a=i?i():n||e===`svg`?Ae:void 0;if(e===null){u.ensure(null,null),Ar(!0);return}return u.ensure(e,t=>{if(e){if(s=Ie?s:sn(e,a),Tr(s,s),r){var n=null;Ie&&vee(e)&&s.append(n=document.createComment(``));var i=Ie?nn(s):s.appendChild(tn());Ie&&(i===null?Le(!1):ze(i)),ri(l),r(s,i),n?.remove(),ri(null)}zn.nodes.end=s,t.before(s)}Ie&&ze(t)}),Ar(!0),()=>{e&&Ar(!1)}},T),pn(()=>{Ar(!0)}),o&&(Le(!0),ze(c))}function si(e,t){var n=void 0,r;bn(()=>{n!==(n=t())&&(r&&=(wn(r),null),n&&(r=xn(()=>{_n(()=>n(e))})))})}function ci(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t=0;){var s=o+a;(o===0||ui.includes(r[o-1]))&&(s===r.length||ui.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function di(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function fi(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function Tee(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(fi)),i&&c.push(...Object.keys(i).map(fi));var l=0,u=-1;let t=e.length;for(var d=0;d{hi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),pn(()=>{t.disconnect()})}function _i(e,t,n=t){var r=new WeakSet,i=!0;lt(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),vi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&vi(o)}n(a),e.__value=a,Tt!==null&&r.add(Tt)}),_n(()=>{var a=t();if(e===document.activeElement){var o=Tt;if(r.has(o))return}if(hi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=vi(s),n(a))}e.__value=a,i=!1}),gi(e)}function vi(e){return`__value`in e?e.__value:e.value}var yi=Symbol(`class`),bi=Symbol(`style`),xi=Symbol(`is custom element`),Si=Symbol(`is html`),Eee=he?`link`:`LINK`,Ci=he?`input`:`INPUT`,Dee=he?`option`:`OPTION`,Oee=he?`select`:`SELECT`,kee=he?`progress`:`PROGRESS`;function wi(e){if(Ie){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;K(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;K(e,`checked`,null),e.checked=r}}};e[pe]=n,Ze(n),st()}}function Ti(e,t){var n=Oi(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==kee)||(e.value=t??``)}function Ei(e,t){var n=Oi(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Aee(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function K(e,t,n,r){var i=Oi(e);Ie&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Eee)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ce]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Ai(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function jee(e,t,n,r,i=!1,a=!1){if(Ie&&i&&e.nodeName===Ci){var o=e;(o.type===`checkbox`?`defaultChecked`:`defaultValue`)in n||wi(o)}var s=Oi(e),c=s[xi],l=!s[Si];let u=Ie&&c;u&&Le(!1);var d=t||{},f=e.nodeName===Dee;for(var p in t)p in n||(n[p]=null);n.class?n.class=li(n.class):(r||n[yi])&&(n.class=null),n[bi]&&(n.style??=null);var m=Ai(e);if(e.nodeName===Ci&&`type`in n&&(`value`in n||`__value`in n)){var h=n.type;(h!==d.type||h===void 0&&e.hasAttribute(`type`))&&(d.type=h,K(e,`type`,h,a))}for(let i in n){let o=n[i];if(f&&i===`value`&&o==null){e.value=e.__value=``,d[i]=o;continue}if(i===`class`){G(e,e.namespaceURI===`http://www.w3.org/1999/xhtml`,o,r,t?.[yi],n[yi]),d[i]=o,d[yi]=n[yi];continue}if(i===`style`){mi(e,o,t?.[bi],n[bi]),d[i]=o,d[bi]=n[bi];continue}var g=d[i];if(!(o===g&&!(o===void 0&&e.hasAttribute(i)))){d[i]=o;var _=i[0]+i[1];if(_!==`$$`)if(_===`on`){let t={},n=`$$`+i,r=i.slice(2);var v=lr(r);if(sr(r)&&(r=r.slice(0,-7),t.capture=!0),!v&&g){if(o!=null)continue;e.removeEventListener(r,d[n],t),d[n]=null}if(v)z(r,e,o),xr([r]);else if(o!=null){function a(e){d[i].call(this,e)}d[n]=yr(r,e,a,t)}}else if(i===`style`)K(e,i,o);else if(i===`autofocus`)iee(e,!!o);else if(!c&&(i===`__value`||i===`value`&&o!=null))e.value=e.__value=o;else if(i===`selected`&&f)Aee(e,o);else{var y=i;l||(y=fr(y));var b=y===`defaultValue`||y===`defaultChecked`;if(o==null&&!c&&!b)if(s[i]=null,y===`value`||y===`checked`){let n=e,r=t===void 0;if(y===`value`){let e=n.defaultValue;n.removeAttribute(y),n.defaultValue=e,n.value=n.__value=r?e:null}else{let e=n.defaultChecked;n.removeAttribute(y),n.defaultChecked=e,n.checked=r?e:!1}}else e.removeAttribute(i);else b||m.includes(y)&&(c||typeof o!=`string`)?(e[y]=o,y in s&&(s[y]=Oe)):typeof o!=`function`&&K(e,y,o,a)}}}return u&&Le(!0),d}function Di(e,t,n=[],r=[],i=[],a,o=!1,s=!1){pt(i,n,r,n=>{var r=void 0,i={},c=e.nodeName===Oee,l=!1;if(bn(()=>{var u=t(...n.map(R)),d=jee(e,r,u,a,o,s);l&&c&&`value`in u&&hi(e,u.value);for(let e of Object.getOwnPropertySymbols(i))u[e]||wn(i[e]);for(let t of Object.getOwnPropertySymbols(u)){var f=u[t];t.description===`@attach`&&(!r||f!==r[t])&&(i[t]&&wn(i[t]),i[t]=xn(()=>si(e,()=>f))),d[t]=f}r=d}),c){var u=e;_n(()=>{hi(u,r.value,!0),gi(u)})}l=!0})}function Oi(e){return e[le]??={[xi]:e.nodeName.includes(`-`),[Si]:e.namespaceURI===ke}}var ki=new Map;function Ai(e){var t=e.getAttribute(`is`)||e.nodeName,n=ki.get(t);if(n)return n;ki.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&s!==`innerHTML`&&s!==`textContent`&&s!==`innerText`&&n.push(s);i=l(i)}return n}function ji(e,t,n=t){var r=new WeakSet;lt(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Ni(e)?Pi(a):a,n(a),Tt!==null&&r.add(Tt),await rr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(Ie&&e.defaultValue!==e.value||or(t)==null&&e.value)&&(n(Ni(e)?Pi(e.value):e.value),Tt!==null&&r.add(Tt)),vn(()=>{var n=t();if(e===document.activeElement){var i=Tt;if(r.has(i))return}Ni(e)&&n===Pi(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function Mi(e,t,n=t){lt(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(Ie&&e.defaultChecked!==e.checked||or(t)==null)&&n(e.checked),vn(()=>{e.checked=!!t()})}function Ni(e){var t=e.type;return t===`number`||t===`range`}function Pi(e){return e===``?null:+e}function Fi(e,t){return e===t||e?.[oe]===t}function Ii(e={},t,n,r){var i=Ke.r,a=zn;return _n(()=>{var o,s;return vn(()=>{o=s,s=r?.()||[],or(()=>{Fi(n(...s),e)||(t(e,...s),o&&Fi(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Fi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}var Li={get(e,t){if(!e.exclude.has(t))return e.props[t]},set(e,t){return!1},getOwnPropertyDescriptor(e,t){if(!e.exclude.has(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},has(e,t){return!e.exclude.has(t)&&t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.has(t))}};function Ri(e,t,n){return new Proxy({props:e,exclude:t},Li)}function zi(e,t,n,r){var i=!0,o=(n&8)!=0,s=(n&16)!=0,c=r,l=!0,u=void 0,d=()=>s&&i?(u??=gt(r),R(u)):(l&&(l=!1,c=s?or(r):r),c);let f;if(o){var p=oe in e||se in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=ree(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Se(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?gt:yt)(()=>(v=!1,g()));o&&R(y);var b=zn;return(function(e,t){if(arguments.length>0){let n=t?R(y):i&&o?N(e):e;return M(y,n),v=!0,c!==void 0&&(c=n),e}return Pn&&v||b.f&16384?y.v:R(y)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Bi=new Set([`$$slots`,`$$events`,`$$legacy`,`icon`,`class`]),Vi=Er(``);function q(e,t){let n=zi(t,`icon`,19,()=>[]),r=zi(t,`class`,3,``),i=Ri(t,Bi);var a=Vi();Di(a,()=>({xmlns:`http://www.w3.org/2000/svg`,width:`24`,height:`24`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,class:r(),"aria-hidden":`true`,focusable:`false`,...i}));{let e=(t,n=f)=>{var r=Or();W(F(r),17,n,Ir,(t,n)=>{var r=A(()=>g(R(n),3));let i=()=>R(r)[0],a=()=>R(r)[1],o=()=>R(r)[2];var s=Or();See(F(s),i,!0,(t,n)=>{Di(t,()=>({xmlns:`http://www.w3.org/2000/svg`,...a()}));var r=Or(),i=F(r),s=t=>{e(t,o)},c=A(()=>Array.isArray(o()));U(i,e=>{R(c)&&e(s)}),V(n,r)}),V(t,s)}),V(t,r)};e(P(a),n),D(a)}V(e,a)}var Hi=Er(``);function Ui(e){V(e,Hi())}function Wi(){try{return typeof window>`u`?null:window.localStorage}catch{return null}}function Gi(e,t=null){let n=Wi();if(!n)return t;try{return n.getItem(e)??t}catch{return t}}function Ki(e,t){let n=Wi();if(n)try{n.setItem(e,String(t))}catch{}}function qi(e){let t=Number(e);return Number.isFinite(t)?Math.min(240,Math.max(60,Math.round(t))):240}function Ji(e,t,n){return qi(Number(e)+Number(n)-Number(t))}var Yi=new class{#e=j(`system`);get theme(){return R(this.#e)}set theme(e){M(this.#e,e,!0)}#t=j(0);get tick(){return R(this.#t)}set tick(e){M(this.#t,e,!0)}init(){this.theme=Gi(`gomodel_theme`,`system`),this.apply(),window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{this.theme===`system`&&this.tick++})}set(e){this.theme=e,Ki(`gomodel_theme`,e),this.apply(),this.tick++}toggle(){let e=[`light`,`system`,`dark`];this.set(e[(e.indexOf(this.theme)+1)%e.length])}apply(){let e=document.documentElement;this.theme===`system`?e.removeAttribute(`data-theme`):e.setAttribute(`data-theme`,this.theme)}},Xi=new class{#e=j(N(240));get width(){return R(this.#e)}set width(e){M(this.#e,e,!0)}get collapsed(){return this.width===60}init(){let e=Gi(`gomodel_sidebar_width`),t=Gi(`gomodel_sidebar_collapsed`)===`true`;this.setWidth(e??(t?60:240))}toggle(){this.setWidth(this.collapsed?240:60,!0)}setWidth(e,t=!1){this.width=qi(e),typeof document<`u`&&document.documentElement.style.setProperty(`--sidebar-width`,`${this.width}px`),t&&(Ki(`gomodel_sidebar_width`,this.width),Ki(`gomodel_sidebar_collapsed`,this.collapsed))}},Zi=new class{#e=j(N([]));get stack(){return R(this.#e)}set stack(e){M(this.#e,e,!0)}#t=1;opened(){let e=this.#t++;return this.stack=[...this.stack,e],e}closed(e){this.stack=this.stack.filter(t=>t!==e)}isTop(e){return this.stack.length>0&&this.stack[this.stack.length-1]===e}get openCount(){return this.stack.length}get anyOpen(){return this.stack.length>0}},Qi={},$i=[`en`,`pl`],ea=`PARAGLIDE_LOCALE`,ta=[`custom-dashboard`,`preferredLanguage`,`baseLocale`],na=[];globalThis.__paraglide=globalThis.__paraglide??{},globalThis.__paraglide.ssr=globalThis.__paraglide.ssr??{};var ra=!1,J=()=>{let e=ta;typeof window<`u`&&window.location?.href&&(e=ya(window.location.href));let t=ia(e,typeof window<`u`?window.location?.href:void 0);if(t)return ra||(ra=!0,ca(t,{reload:!1})),t;throw Error(`No locale found. Read the docs https://paraglidejs.com/errors#no-locale-found`)};function ia(e,t){let n;for(let t of e){if(t===`baseLocale`)n=`en`;else if(t===`preferredLanguage`)n=pa();else if(xa(t)&&ba.has(t)){let e=ba.get(t);if(e){let t=e.getLocale();if(t instanceof Promise)continue;if(t!==void 0)return da(t)}}let e=ua(n);if(e)return e}}var aa=new Set([`ar`,`dv`,`fa`,`he`,`ks`,`ku`,`ps`,`sd`,`ug`,`ur`,`yi`]);function oa(e=J()){try{let t=new Intl.Locale(e),n=t.getTextInfo?.().direction??t.textInfo?.direction;if(n===`ltr`||n===`rtl`)return n}catch{}let t=e.split(`-`)[0]?.toLowerCase();return aa.has(t??``)?`rtl`:`ltr`}var sa=e=>{e?window.location.href=e:window.location.reload()},ca=(e,t)=>{let n={reload:!0,...t},r;try{r=J()}catch{}let i=[],a=ta;typeof window<`u`&&window.location?.href&&(a=ya(window.location.href));for(let t of a)if(t===`baseLocale`)continue;else if(xa(t)&&ba.has(t)){let n=ba.get(t);if(n){let r=n.setLocale(e);r instanceof Promise&&(r=r.catch(e=>{throw Error(`Custom strategy "${t}" setLocale failed.`,{cause:e})}),i.push(r))}}let o=()=>{n.reload&&window.location&&e!==r&&sa(void 0)};if(i.length)return Promise.all(i).then(()=>{o()});o()},la=()=>typeof window<`u`?window.location.origin:`http://fallback.com`;function ua(e){if(typeof e!=`string`)return;let t=e.toLowerCase();for(let e of $i)if(e.toLowerCase()===t)return e}function da(e){let t=ua(e);if(t)return t;throw Error(`Invalid locale: ${e}. Expected one of: ${$i.join(`, `)}`)}var fa=ea.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);RegExp(`(?:^|;\\s*)${fa}=([^;]*)`);function pa(){if(!navigator?.languages?.length)return;let e=navigator.languages.map(e=>({fullTag:e,baseTag:e.split(`-`)[0]}));for(let t of e){let e=ua(t.fullTag);if(e)return e;let n=ua(t.baseTag);if(n)return n}}function ma(e){return ha(e)}function ha(e){let t=typeof e==`string`?new URL(e,la()):new URL(e),n=t.pathname.split(`/`).filter(Boolean);return n.length>0&&ua(n[0])&&(t.pathname=`/`+n.slice(1).join(`/`)),t}var ga,_a;function va(e){if(na.length===0)return;let t=typeof e==`string`?e:e.href;if(ga===t)return _a;let n=new URL(t,`http://example.com`),r=ma(n),i=r.href===n.href?[n]:[n,r],a;for(let e of i){for(let t of na)if(new Qi(t.match,e.href).exec(e.href)){a=t;break}if(a)break}return ga=t,_a=a,a}function ya(e){let t=va(e);return t&&t.exclude!==!0&&Array.isArray(t.strategy)?t.strategy:ta}var ba=new Map;function xa(e){return typeof e==`string`&&/^custom-[A-Za-z0-9_-]+$/.test(e)}function Sa(e,t){if(!xa(e))throw Error(`Invalid custom strategy: "${e}". Must be a custom strategy following the pattern custom-name.`);ba.set(e,t)}var Ca=()=>`Cancel`,wa=()=>`Anuluj`,Ta=((e={},t={})=>(t.locale??J())===`pl`?wa(e):Ca(e)),Ea=()=>`Next`,Da=()=>`Dalej`,Oa=((e={},t={})=>(t.locale??J())===`pl`?Da(e):Ea(e)),ka=()=>`Previous`,Aa=()=>`Wstecz`,ja=((e={},t={})=>(t.locale??J())===`pl`?Aa(e):ka(e)),Ma=()=>`Admin`,Na=()=>`Admin`,Pa=((e={},t={})=>(t.locale??J())===`pl`?Na(e):Ma(e)),Fa=()=>`Overview`,Ia=()=>`Przegląd`,La=((e={},t={})=>(t.locale??J())===`pl`?Ia(e):Fa(e)),Ra=()=>`Providers`,za=()=>`Dostawcy`,Ba=((e={},t={})=>(t.locale??J())===`pl`?za(e):Ra(e)),Va=()=>`Models`,Ha=()=>`Modele`,Ua=((e={},t={})=>(t.locale??J())===`pl`?Ha(e):Va(e)),Wa=()=>`Audit Logs`,Ga=()=>`Logi audytowe`,Ka=((e={},t={})=>(t.locale??J())===`pl`?Ga(e):Wa(e)),qa=()=>`Usage`,Ja=()=>`Zużycie`,Ya=((e={},t={})=>(t.locale??J())===`pl`?Ja(e):qa(e)),Xa=()=>`Budgets`,Za=()=>`Budżety`,Qa=((e={},t={})=>(t.locale??J())===`pl`?Za(e):Xa(e)),$a=()=>`Rate Limits`,eo=()=>`Limity zapytań`,to=((e={},t={})=>(t.locale??J())===`pl`?eo(e):$a(e)),no=()=>`API Keys`,ro=()=>`Klucze API`,io=((e={},t={})=>(t.locale??J())===`pl`?ro(e):no(e)),ao=()=>`Workflows`,oo=()=>`Workflows`,so=((e={},t={})=>(t.locale??J())===`pl`?oo(e):ao(e)),co=()=>`Guardrails (experimental)`,lo=()=>`Guardrails (eksperymentalne)`,uo=((e={},t={})=>(t.locale??J())===`pl`?lo(e):co(e)),fo=()=>`MCP Servers`,po=()=>`Serwery MCP`,mo=((e={},t={})=>(t.locale??J())===`pl`?po(e):fo(e)),ho=()=>`Settings`,go=()=>`Ustawienia`,_o=((e={},t={})=>(t.locale??J())===`pl`?go(e):ho(e)),vo=()=>`Usage Overview`,Mee=()=>`Przegląd zużycia`,Nee=((e={},t={})=>(t.locale??J())===`pl`?Mee(e):vo(e)),Pee=()=>`Usage chart interval`,Fee=()=>`Interwał wykresu zużycia`,Iee=((e={},t={})=>(t.locale??J())===`pl`?Fee(e):Pee(e)),Lee=()=>`Daily`,Ree=()=>`Dziennie`,zee=((e={},t={})=>(t.locale??J())===`pl`?Ree(e):Lee(e)),Bee=()=>`Weekly`,Vee=()=>`Tygodniowo`,Hee=((e={},t={})=>(t.locale??J())===`pl`?Vee(e):Bee(e)),Uee=()=>`Monthly`,Wee=()=>`Miesięcznie`,Gee=((e={},t={})=>(t.locale??J())===`pl`?Wee(e):Uee(e)),Kee=()=>`Yearly`,qee=()=>`Rocznie`,Jee=((e={},t={})=>(t.locale??J())===`pl`?qee(e):Kee(e)),Yee=()=>`Loading usage`,Xee=()=>`Wczytywanie danych o zużyciu`,Zee=((e={},t={})=>(t.locale??J())===`pl`?Xee(e):Yee(e)),Qee=()=>`Usage Analytics`,$ee=()=>`Analityka zużycia`,ete=((e={},t={})=>(t.locale??J())===`pl`?$ee(e):Qee(e)),tte=()=>`Usage mode`,nte=()=>`Tryb zużycia`,rte=((e={},t={})=>(t.locale??J())===`pl`?nte(e):tte(e)),ite=()=>`Usage data filters`,ate=()=>`Filtry danych o zużyciu`,ote=((e={},t={})=>(t.locale??J())===`pl`?ate(e):ite(e)),ste=()=>`Filter by model`,cte=()=>`Filtruj według modelu`,lte=((e={},t={})=>(t.locale??J())===`pl`?cte(e):ste(e)),ute=()=>`Filter by provider`,dte=()=>`Filtruj według dostawcy`,fte=((e={},t={})=>(t.locale??J())===`pl`?dte(e):ute(e)),pte=()=>`Filter by label`,mte=()=>`Filtruj według etykiety`,hte=((e={},t={})=>(t.locale??J())===`pl`?mte(e):pte(e)),gte=()=>`Filter by user path`,_te=()=>`Filtruj według User Path`,vte=((e={},t={})=>(t.locale??J())===`pl`?_te(e):gte(e)),yte=()=>`User path /team/alpha`,bte=()=>`User Path /team/alpha`,xte=((e={},t={})=>(t.locale??J())===`pl`?bte(e):yte(e)),Ste=()=>`Filter by session ID`,Cte=()=>`Filtruj według ID sesji`,wte=((e={},t={})=>(t.locale??J())===`pl`?Cte(e):Ste(e)),Tte=()=>`Session ID`,Ete=()=>`ID sesji`,Dte=((e={},t={})=>(t.locale??J())===`pl`?Ete(e):Tte(e)),Ote=e=>`Clear session filter ${e?.session}`,kte=e=>`Wyczyść filtr sesji ${e?.session}`,Ate=((e,t={})=>(t.locale??J())===`pl`?kte(e):Ote(e)),jte=e=>`Session: ${e?.session}`,Mte=e=>`Sesja: ${e?.session}`,Nte=((e,t={})=>(t.locale??J())===`pl`?Mte(e):jte(e)),Pte=()=>`All Models`,Fte=()=>`Wszystkie modele`,Ite=((e={},t={})=>(t.locale??J())===`pl`?Fte(e):Pte(e)),Lte=()=>`All Providers`,Rte=()=>`Wszyscy dostawcy`,zte=((e={},t={})=>(t.locale??J())===`pl`?Rte(e):Lte(e)),Bte=()=>`All Labels`,Vte=()=>`Wszystkie etykiety`,Hte=((e={},t={})=>(t.locale??J())===`pl`?Vte(e):Bte(e)),Ute=()=>`Cache Saved`,Wte=()=>`Oszczędność z cache`,Gte=((e={},t={})=>(t.locale??J())===`pl`?Wte(e):Ute(e)),Kte=()=>`Pro Saved`,qte=()=>`Oszczędność Pro`,Jte=((e={},t={})=>(t.locale??J())===`pl`?qte(e):Kte(e)),Yte=()=>`Loading usage summary`,Xte=()=>`Wczytywanie podsumowania zużycia`,yo=((e={},t={})=>(t.locale??J())===`pl`?Xte(e):Yte(e)),Zte=()=>`Model usage view`,Qte=()=>`Widok zużycia według modelu`,$te=((e={},t={})=>(t.locale??J())===`pl`?Qte(e):Zte(e)),ene=()=>`User path usage view`,tne=()=>`Widok zużycia według User Path`,nne=((e={},t={})=>(t.locale??J())===`pl`?tne(e):ene(e)),rne=()=>`Label usage view`,ine=()=>`Widok zużycia według etykiety`,ane=((e={},t={})=>(t.locale??J())===`pl`?ine(e):rne(e)),one=()=>`Session usage view`,sne=()=>`Widok zużycia według sesji`,cne=((e={},t={})=>(t.locale??J())===`pl`?sne(e):one(e)),lne=()=>`model usage`,une=()=>`zużycia według modelu`,dne=((e={},t={})=>(t.locale??J())===`pl`?une(e):lne(e)),fne=()=>`user path usage`,pne=()=>`zużycia według User Path`,mne=((e={},t={})=>(t.locale??J())===`pl`?pne(e):fne(e)),hne=()=>`label usage`,gne=()=>`zużycia według etykiety`,_ne=((e={},t={})=>(t.locale??J())===`pl`?gne(e):hne(e)),vne=()=>`session usage`,yne=()=>`zużycia według sesji`,bne=((e={},t={})=>(t.locale??J())===`pl`?yne(e):vne(e)),xne=()=>`Token Usage by Model`,Sne=()=>`Zużycie tokenów według modelu`,Cne=((e={},t={})=>(t.locale??J())===`pl`?Sne(e):xne(e)),wne=()=>`Cost by Model`,Tne=()=>`Koszt według modelu`,Ene=((e={},t={})=>(t.locale??J())===`pl`?Tne(e):wne(e)),Dne=()=>`Usage by User Path`,One=()=>`Zużycie według User Path`,kne=((e={},t={})=>(t.locale??J())===`pl`?One(e):Dne(e)),Ane=()=>`Cost by User Path`,jne=()=>`Koszt według User Path`,Mne=((e={},t={})=>(t.locale??J())===`pl`?jne(e):Ane(e)),Nne=()=>`Usage by Label`,Pne=()=>`Zużycie według etykiety`,Fne=((e={},t={})=>(t.locale??J())===`pl`?Pne(e):Nne(e)),Ine=()=>`Cost by Label`,Lne=()=>`Koszt według etykiety`,Rne=((e={},t={})=>(t.locale??J())===`pl`?Lne(e):Ine(e)),zne=()=>`Usage by Recent Session`,Bne=()=>`Zużycie według ostatnich sesji`,Vne=((e={},t={})=>(t.locale??J())===`pl`?Bne(e):zne(e)),Hne=()=>`Cost by Recent Session`,Une=()=>`Koszt według ostatnich sesji`,Wne=((e={},t={})=>(t.locale??J())===`pl`?Une(e):Hne(e)),Gne=e=>`Show ${e?.noun} chart`,Kne=e=>`Pokaż wykres ${e?.noun}`,qne=((e,t={})=>(t.locale??J())===`pl`?Kne(e):Gne(e)),Jne=e=>`Show ${e?.noun} stacked chart`,Yne=e=>`Pokaż skumulowany wykres ${e?.noun}`,Xne=((e,t={})=>(t.locale??J())===`pl`?Yne(e):Jne(e)),Zne=e=>`Show ${e?.noun} table`,Qne=e=>`Pokaż tabelę ${e?.noun}`,$ne=((e,t={})=>(t.locale??J())===`pl`?Qne(e):Zne(e)),ere=()=>`Chart`,tre=()=>`Wykres`,nre=((e={},t={})=>(t.locale??J())===`pl`?tre(e):ere(e)),rre=()=>`Stacked`,ire=()=>`Skumulowany`,are=((e={},t={})=>(t.locale??J())===`pl`?ire(e):rre(e)),ore=()=>`Table`,sre=()=>`Tabela`,cre=((e={},t={})=>(t.locale??J())===`pl`?sre(e):ore(e)),lre=e=>`Loading ${e?.noun}`,ure=e=>`Wczytywanie ${e?.noun}`,bo=((e,t={})=>(t.locale??J())===`pl`?ure(e):lre(e)),dre=()=>`Label usage help`,fre=()=>`Pomoc dotycząca zużycia według etykiet`,pre=((e={},t={})=>(t.locale??J())===`pl`?fre(e):dre(e)),mre=()=>`One request can have multiple labels. Such a request counts once under each of its labels, so label rows can overlap and add up to more than the period totals.`,hre=()=>`Jeden Request może mieć wiele etykiet. Jest liczony raz dla każdej z nich, dlatego wiersze etykiet mogą się nakładać i sumować do wartości większej niż łączne dane okresu.`,gre=((e={},t={})=>(t.locale??J())===`pl`?hre(e):mre(e)),_re=()=>`Session usage help`,vre=()=>`Pomoc dotycząca zużycia według sesji`,yre=((e={},t={})=>(t.locale??J())===`pl`?vre(e):_re(e)),bre=()=>`Sessions are ordered by latest activity. Request and token totals include local-cache hits; cost fields include provider spend only.`,xre=()=>`Sesje są uporządkowane według ostatniej aktywności. Sumy Request'ów i tokenów obejmują trafienia lokalnego cache, a koszty wyłącznie wydatki u dostawcy.`,Sre=((e={},t={})=>(t.locale??J())===`pl`?xre(e):bre(e)),Cre=()=>`Model`,wre=()=>`Model`,xo=((e={},t={})=>(t.locale??J())===`pl`?wre(e):Cre(e)),Tre=()=>`Provider`,Ere=()=>`Dostawca`,So=((e={},t={})=>(t.locale??J())===`pl`?Ere(e):Tre(e)),Dre=()=>`User Path`,Ore=()=>`User Path`,Co=((e={},t={})=>(t.locale??J())===`pl`?Ore(e):Dre(e)),kre=()=>`Session`,Are=()=>`Sesja`,jre=((e={},t={})=>(t.locale??J())===`pl`?Are(e):kre(e)),Mre=()=>`Session ID`,Nre=()=>`ID sesji`,Pre=((e={},t={})=>(t.locale??J())===`pl`?Nre(e):Mre(e)),Fre=()=>`Label`,Ire=()=>`Etykieta`,Lre=((e={},t={})=>(t.locale??J())===`pl`?Ire(e):Fre(e)),Rre=()=>`Requests`,zre=()=>`Requesty`,wo=((e={},t={})=>(t.locale??J())===`pl`?zre(e):Rre(e)),Bre=()=>`Input Tokens`,Vre=()=>`Input Tokens`,To=((e={},t={})=>(t.locale??J())===`pl`?Vre(e):Bre(e)),Hre=()=>`Output Tokens`,Ure=()=>`Output Tokens`,Eo=((e={},t={})=>(t.locale??J())===`pl`?Ure(e):Hre(e)),Wre=()=>`Prompt Cached`,Gre=()=>`Prompt z cache`,Do=((e={},t={})=>(t.locale??J())===`pl`?Gre(e):Wre(e)),Kre=()=>`Local Cached`,qre=()=>`Lokalny cache`,Jre=((e={},t={})=>(t.locale??J())===`pl`?qre(e):Kre(e)),Yre=()=>`Total Tokens`,Xre=()=>`Wszystkie tokeny`,Zre=((e={},t={})=>(t.locale??J())===`pl`?Xre(e):Yre(e)),Qre=()=>`Input Cost`,$re=()=>`Koszt wejścia`,Oo=((e={},t={})=>(t.locale??J())===`pl`?$re(e):Qre(e)),eie=()=>`Output Cost`,tie=()=>`Koszt wyjścia`,ko=((e={},t={})=>(t.locale??J())===`pl`?tie(e):eie(e)),nie=()=>`Total Cost`,rie=()=>`Łączny koszt`,Ao=((e={},t={})=>(t.locale??J())===`pl`?rie(e):nie(e)),iie=()=>`Provider prompt-cache reads included in the input tokens`,aie=()=>`Odczyty z prompt cache dostawcy uwzględnione w input tokens`,oie=((e={},t={})=>(t.locale??J())===`pl`?aie(e):iie(e)),sie=()=>`Tokens served from GoModel's local response cache (excluded from the other columns)`,cie=()=>`Tokeny obsłużone przez lokalny response cache GoModel (wyłączone z pozostałych kolumn)`,lie=((e={},t={})=>(t.locale??J())===`pl`?cie(e):sie(e)),uie=e=>`~${e?.cost} at current cached-input pricing`,die=e=>`~${e?.cost} według bieżącej ceny wejścia z cache`,fie=((e,t={})=>(t.locale??J())===`pl`?die(e):uie(e)),pie=e=>`${e?.input} input + ${e?.output} output`,mie=e=>`${e?.input} input tokens + ${e?.output} output tokens`,hie=((e,t={})=>(t.locale??J())===`pl`?mie(e):pie(e)),gie=()=>`Request Log`,_ie=()=>`Dziennik Request'ów`,vie=((e={},t={})=>(t.locale??J())===`pl`?_ie(e):gie(e)),yie=()=>`Search by request ID, session, model, provider...`,bie=()=>`Szukaj według ID Requestu, sesji, modelu lub dostawcy...`,xie=((e={},t={})=>(t.locale??J())===`pl`?bie(e):yie(e)),Sie=()=>`Search by request ID, session, model, provider`,Cie=()=>`Szukaj według ID Requestu, sesji, modelu lub dostawcy`,wie=((e={},t={})=>(t.locale??J())===`pl`?Cie(e):Sie(e)),Tie=e=>`Filter by session ${e?.session}`,Eie=e=>`Filtruj według sesji ${e?.session}`,Die=((e,t={})=>(t.locale??J())===`pl`?Eie(e):Tie(e)),Oie=()=>`Copy session ID`,kie=()=>`Kopiuj ID sesji`,Aie=((e={},t={})=>(t.locale??J())===`pl`?kie(e):Oie(e)),jie=e=>`Copy session ID ${e?.session}`,Mie=e=>`Kopiuj ID sesji ${e?.session}`,Nie=((e,t={})=>(t.locale??J())===`pl`?Mie(e):jie(e)),Pie=()=>`Session ID copied`,Fie=()=>`Skopiowano ID sesji`,Iie=((e={},t={})=>(t.locale??J())===`pl`?Fie(e):Pie(e)),Lie=()=>`Unable to copy session ID`,Rie=()=>`Nie można skopiować ID sesji`,zie=((e={},t={})=>(t.locale??J())===`pl`?Rie(e):Lie(e)),Bie=()=>`Hide cached requests`,Vie=()=>`Ukryj Requesty z cache`,Hie=((e={},t={})=>(t.locale??J())===`pl`?Vie(e):Bie(e)),Uie=()=>`Timestamp`,Wie=()=>`Znacznik czasu`,Gie=((e={},t={})=>(t.locale??J())===`pl`?Wie(e):Uie(e)),Kie=()=>`Labels`,qie=()=>`Etykiety`,Jie=((e={},t={})=>(t.locale??J())===`pl`?qie(e):Kie(e)),Yie=()=>`Cache`,Xie=()=>`Cache`,Zie=((e={},t={})=>(t.locale??J())===`pl`?Xie(e):Yie(e)),Qie=()=>`Provider Cache`,$ie=()=>`Cache dostawcy`,eae=((e={},t={})=>(t.locale??J())===`pl`?$ie(e):Qie(e)),tae=()=>`Share of input tokens served from the provider's prompt cache`,nae=()=>`Część input tokens obsłużona przez prompt cache dostawcy`,rae=((e={},t={})=>(t.locale??J())===`pl`?nae(e):tae(e)),iae=()=>`Input`,aae=()=>`Wejście`,oae=((e={},t={})=>(t.locale??J())===`pl`?aae(e):iae(e)),sae=()=>`Output`,cae=()=>`Wyjście`,lae=((e={},t={})=>(t.locale??J())===`pl`?cae(e):sae(e)),uae=()=>`Total`,dae=()=>`Łącznie`,fae=((e={},t={})=>(t.locale??J())===`pl`?dae(e):uae(e)),pae=()=>`Cost`,mae=()=>`Koszt`,hae=((e={},t={})=>(t.locale??J())===`pl`?mae(e):pae(e)),gae=e=>`${e?.count} tokens`,_ae=e=>`${e?.count} tokenów`,jo=((e,t={})=>(t.locale??J())===`pl`?_ae(e):gae(e)),vae=()=>`Loading request log`,yae=()=>`Wczytywanie dziennika Request'ów`,bae=((e={},t={})=>(t.locale??J())===`pl`?yae(e):vae(e)),xae=()=>`Clear label filter`,Sae=()=>`Wyczyść filtr etykiety`,Cae=((e={},t={})=>(t.locale??J())===`pl`?Sae(e):xae(e)),wae=e=>`Filter usage by "${e?.label}"`,Tae=e=>`Filtruj zużycie według etykiety "${e?.label}"`,Eae=((e,t={})=>(t.locale??J())===`pl`?Tae(e):wae(e)),Dae=e=>`${e?.count} cached requests hidden`,Oae=e=>`Ukryte Requesty z cache: ${e?.count}`,kae=((e,t={})=>(t.locale??J())===`pl`?Oae(e):Dae(e)),Aae=e=>`${e?.provider} to providers + ${e?.cache} from cache`,jae=e=>`${e?.provider} do dostawców + ${e?.cache} z cache`,Mae=((e,t={})=>(t.locale??J())===`pl`?jae(e):Aae(e)),Nae=e=>`${e?.input} input + ${e?.output} output`,Pae=e=>`${e?.input} wejście + ${e?.output} wyjście`,Fae=((e,t={})=>(t.locale??J())===`pl`?Pae(e):Nae(e)),Iae=()=>`Estimated at 4 net characters removed per token`,Lae=()=>`Szacunek: 4 usunięte znaki netto na token`,Rae=((e={},t={})=>(t.locale??J())===`pl`?Lae(e):Iae(e)),zae=e=>`${e?.percent}% less`,Bae=e=>`o ${e?.percent}% mniej`,Vae=((e,t={})=>(t.locale??J())===`pl`?Bae(e):zae(e)),Hae=e=>`${e?.count} estimated prompt token-transmissions removed across provider requests`,Uae=e=>`Szacowana liczba transmisji tokenów promptu usuniętych z Request'ów do dostawców: ${e?.count}`,Wae=((e,t={})=>(t.locale??J())===`pl`?Uae(e):Hae(e)),Gae=()=>`Savings are summed per provider request; resent conversation history is counted again`,Kae=()=>`Oszczędności są sumowane dla każdego Requestu do dostawcy; ponownie wysłana historia rozmowy jest liczona ponownie`,qae=((e={},t={})=>(t.locale??J())===`pl`?Kae(e):Gae(e)),Jae=e=>`${e?.cost} estimated gross input cost avoided`,Yae=e=>`Szacowany uniknięty koszt brutto wejścia: ${e?.cost}`,Xae=((e,t={})=>(t.locale??J())===`pl`?Yae(e):Jae(e)),Zae=()=>`Prompt-cache changes caused by rewriting are not included`,Qae=()=>`Nie uwzględniono zmian prompt cache wynikających z przepisywania`,$ae=((e={},t={})=>(t.locale??J())===`pl`?Qae(e):Zae(e)),eoe=e=>`${e?.percent} than the same traffic without rewriting (${e?.mode})`,toe=e=>`${e?.percent} niż dla tego samego ruchu bez przepisywania (${e?.mode})`,noe=((e,t={})=>(t.locale??J())===`pl`?toe(e):eoe(e)),roe=()=>`cost`,ioe=()=>`koszt`,aoe=((e={},t={})=>(t.locale??J())===`pl`?ioe(e):roe(e)),ooe=()=>`tokens`,soe=()=>`tokeny`,coe=((e={},t={})=>(t.locale??J())===`pl`?soe(e):ooe(e)),loe=()=>`Costs from OpenRouter USD-based credits.`,uoe=()=>`Koszty na podstawie kredytów OpenRouter w USD.`,doe=((e={},t={})=>(t.locale??J())===`pl`?uoe(e):loe(e)),foe=()=>`Costs from xAI usage.cost_in_usd_ticks.`,poe=()=>`Koszty na podstawie xAI usage.cost_in_usd_ticks.`,moe=((e={},t={})=>(t.locale??J())===`pl`?poe(e):foe(e)),hoe=()=>`Exact`,goe=()=>`Dokładny`,_oe=((e={},t={})=>(t.locale??J())===`pl`?goe(e):hoe(e)),voe=()=>`Semantic`,yoe=()=>`Semantyczny`,boe=((e={},t={})=>(t.locale??J())===`pl`?yoe(e):voe(e)),xoe=()=>`Saved by cache — not charged`,Soe=()=>`Oszczędzone dzięki cache — bez opłaty`,Coe=((e={},t={})=>(t.locale??J())===`pl`?Soe(e):xoe(e)),woe=e=>`${e?.cached} cached / ${e?.total} input tokens`,Toe=e=>`${e?.cached} z cache / ${e?.total} input tokens`,Eoe=((e,t={})=>(t.locale??J())===`pl`?Toe(e):woe(e)),Doe=e=>`${e?.count} cache write`,Ooe=e=>`Zapis do cache: ${e?.count}`,koe=((e,t={})=>(t.locale??J())===`pl`?Ooe(e):Doe(e)),Aoe=e=>`Input: ${e?.cost}`,joe=e=>`Wejście: ${e?.cost}`,Moe=((e,t={})=>(t.locale??J())===`pl`?joe(e):Aoe(e)),Noe=e=>`Output: ${e?.cost}`,Poe=e=>`Wyjście: ${e?.cost}`,Foe=((e,t={})=>(t.locale??J())===`pl`?Poe(e):Noe(e)),Ioe=()=>`Prompt Cached Cost`,Loe=()=>`Koszt promptu z cache`,Roe=((e={},t={})=>(t.locale??J())===`pl`?Loe(e):Ioe(e)),zoe=()=>`Locally Cached (Input)`,Boe=()=>`Lokalny cache (wejście)`,Voe=((e={},t={})=>(t.locale??J())===`pl`?Boe(e):zoe(e)),Hoe=()=>`Locally Cached (Output)`,Uoe=()=>`Lokalny cache (wyjście)`,Woe=((e={},t={})=>(t.locale??J())===`pl`?Uoe(e):Hoe(e)),Goe=()=>`Settings`,Koe=()=>`Ustawienia`,qoe=((e={},t={})=>(t.locale??J())===`pl`?Koe(e):Goe(e)),Joe=()=>`Clear`,Yoe=()=>`Wyczyść`,Xoe=((e={},t={})=>(t.locale??J())===`pl`?Yoe(e):Joe(e)),Zoe=()=>`expand`,Qoe=()=>`rozwiń`,$oe=((e={},t={})=>(t.locale??J())===`pl`?Qoe(e):Zoe(e)),ese=()=>`collapse`,tse=()=>`zwiń`,nse=((e={},t={})=>(t.locale??J())===`pl`?tse(e):ese(e)),rse=()=>`Send`,ise=()=>`Wyślij`,ase=((e={},t={})=>(t.locale??J())===`pl`?ise(e):rse(e)),ose=()=>`Sending…`,sse=()=>`Wysyłanie…`,cse=((e={},t={})=>(t.locale??J())===`pl`?sse(e):ose(e)),lse=()=>`Copy failed`,use=()=>`Kopiowanie nie powiodło się`,Mo=((e={},t={})=>(t.locale??J())===`pl`?use(e):lse(e)),dse=()=>`Audit Logs`,fse=()=>`Logi audytowe`,pse=((e={},t={})=>(t.locale??J())===`pl`?fse(e):dse(e)),mse=()=>`Retention help`,hse=()=>`Pomoc dotycząca retencji`,gse=((e={},t={})=>(t.locale??J())===`pl`?hse(e):mse(e)),_se=()=>`To change the retention period, set LOGGING_RETENTION_DAYS (environment variable) or logging.retention_days (config.yaml) and restart the gateway. The default is 30 days; 0 keeps audit logs forever.`,vse=()=>`Aby zmienić okres retencji, ustaw LOGGING_RETENTION_DAYS (zmienna środowiskowa) lub logging.retention_days (config.yaml), a następnie uruchom gateway ponownie. Domyślna wartość to 30 dni; 0 przechowuje logi audytowe bezterminowo.`,yse=((e={},t={})=>(t.locale??J())===`pl`?vse(e):_se(e)),bse=()=>`Audit logs are retained `,xse=()=>`Logi audytowe są przechowywane `,Sse=((e={},t={})=>(t.locale??J())===`pl`?xse(e):bse(e)),Cse=()=>`Audit logs are retained for `,wse=()=>`Logi audytowe są przechowywane przez `,Tse=((e={},t={})=>(t.locale??J())===`pl`?wse(e):Cse(e)),Ese=()=>`indefinitely`,Dse=()=>`czas nieokreślony`,Ose=((e={},t={})=>(t.locale??J())===`pl`?Dse(e):Ese(e));function No(e,t,n){return new Intl.PluralRules(e,n).select(Number(t))}var kse=e=>No(`en`,e?.count,{})===`one`?`${e?.count} day`:`${e?.count} days`,Ase=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} dzień`:t===`few`||t===`many`?`${e?.count} dni`:`${e?.count} dnia`},jse=((e,t={})=>(t.locale??J())===`pl`?Ase(e):kse(e)),Mse=()=>`Audit logging is off. Live entries are temporary and disappear after refresh. Set `,Nse=()=>`Rejestrowanie audytu jest wyłączone. Wpisy Live są tymczasowe i znikają po odświeżeniu. Ustaw `,Pse=((e={},t={})=>(t.locale??J())===`pl`?Nse(e):Mse(e)),Fse=()=>` to persist them.`,Ise=()=>`, aby je zachować.`,Lse=((e={},t={})=>(t.locale??J())===`pl`?Ise(e):Fse(e)),Rse=e=>`Showing ${e?.start}–${e?.end} of ${e?.total} sessions`,zse=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total} sesji`,Bse=((e,t={})=>(t.locale??J())===`pl`?zse(e):Rse(e)),Vse=e=>`Showing ${e?.start}–${e?.end} of ${e?.total} logs`,Hse=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total} logów`,Use=((e,t={})=>(t.locale??J())===`pl`?Hse(e):Vse(e)),Wse=()=>`Group by session`,Gse=()=>`Grupuj według sesji`,Kse=((e={},t={})=>(t.locale??J())===`pl`?Gse(e):Wse(e)),qse=()=>`Loading audit logs`,Jse=()=>`Wczytywanie logów audytowych`,Yse=((e={},t={})=>(t.locale??J())===`pl`?Jse(e):qse(e)),Xse=()=>`Search by request ID, model, provider, path, user path, or error…`,Zse=()=>`Szukaj według ID Requestu, modelu, dostawcy, ścieżki, User Path lub błędu…`,Qse=((e={},t={})=>(t.locale??J())===`pl`?Zse(e):Xse(e)),$se=()=>`Search by request ID, model, provider, path, user path, or error`,ece=()=>`Szukaj według ID Requestu, modelu, dostawcy, ścieżki, User Path lub błędu`,tce=((e={},t={})=>(t.locale??J())===`pl`?ece(e):$se(e)),nce=()=>`HTTP method filter`,rce=()=>`Filtr metody HTTP`,ice=((e={},t={})=>(t.locale??J())===`pl`?rce(e):nce(e)),ace=()=>`All Methods`,oce=()=>`Wszystkie metody`,sce=((e={},t={})=>(t.locale??J())===`pl`?oce(e):ace(e)),cce=()=>`Status code filter`,lce=()=>`Filtr kodu statusu`,uce=((e={},t={})=>(t.locale??J())===`pl`?lce(e):cce(e)),dce=()=>`All Statuses`,fce=()=>`Wszystkie statusy`,pce=((e={},t={})=>(t.locale??J())===`pl`?fce(e):dce(e)),mce=()=>`Streaming mode filter`,hce=()=>`Filtr trybu streamingu`,gce=((e={},t={})=>(t.locale??J())===`pl`?hce(e):mce(e)),_ce=()=>`All Modes`,vce=()=>`Wszystkie tryby`,yce=((e={},t={})=>(t.locale??J())===`pl`?vce(e):_ce(e)),bce=()=>`Streaming`,xce=()=>`Streaming`,Sce=((e={},t={})=>(t.locale??J())===`pl`?xce(e):bce(e)),Cce=()=>`Non-streaming`,wce=()=>`Bez streamingu`,Tce=((e={},t={})=>(t.locale??J())===`pl`?wce(e):Cce(e)),Ece=()=>`Live stream connecting…`,Dce=()=>`Łączenie ze strumieniem Live…`,Oce=((e={},t={})=>(t.locale??J())===`pl`?Dce(e):Ece(e)),kce=()=>`Live`,Ace=()=>`Live`,jce=((e={},t={})=>(t.locale??J())===`pl`?Ace(e):kce(e)),Mce=()=>`Live paused — the selected date range does not include today. Set it to today to resume.`,Nce=()=>`Live wstrzymany — wybrany zakres dat nie obejmuje dzisiaj. Ustaw datę dzisiejszą, aby wznowić.`,Pce=((e={},t={})=>(t.locale??J())===`pl`?Nce(e):Mce(e)),Fce=()=>`Live paused while filters are active. Clear them to resume.`,Ice=()=>`Live wstrzymany, gdy filtry są aktywne. Wyczyść je, aby wznowić.`,Lce=((e={},t={})=>(t.locale??J())===`pl`?Ice(e):Fce(e)),Rce=()=>`Live paused on later pages. Go to the first page to resume.`,zce=()=>`Live wstrzymany na dalszych stronach. Przejdź do pierwszej strony, aby wznowić.`,Bce=((e={},t={})=>(t.locale??J())===`pl`?zce(e):Rce(e)),Vce=e=>No(`en`,e?.count,{})===`one`?`Session with ${e?.count} request`:`Session with ${e?.count} requests`,Hce=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`Sesja z ${e?.count} Requestem`:t===`few`||t===`many`?`Sesja z ${e?.count} Requestami`:`Sesja z ${e?.count} Requestu`},Uce=((e,t={})=>(t.locale??J())===`pl`?Hce(e):Vce(e)),Wce=e=>`Status ${e?.status} · ${e?.method}`,Gce=e=>`Status ${e?.status} · ${e?.method}`,Kce=((e,t={})=>(t.locale??J())===`pl`?Gce(e):Wce(e)),qce=()=>`Open interactions`,Jce=()=>`Otwórz interakcje`,Po=((e={},t={})=>(t.locale??J())===`pl`?Jce(e):qce(e)),Yce=()=>`Close interactions`,Xce=()=>`Zamknij interakcje`,Fo=((e={},t={})=>(t.locale??J())===`pl`?Xce(e):Yce(e)),Zce=()=>`Loading session requests`,Qce=()=>`Wczytywanie Request'ów sesji`,$ce=((e={},t={})=>(t.locale??J())===`pl`?Qce(e):Zce(e)),ele=e=>`Showing the latest ${e?.shown} of ${e?.total} requests in this session.`,tle=e=>`Wyświetlanie najnowszych ${e?.shown} z ${e?.total} Request'ów w tej sesji.`,nle=((e,t={})=>(t.locale??J())===`pl`?tle(e):ele(e)),rle=()=>`Metadata:`,ile=()=>`Metadane:`,ale=((e={},t={})=>(t.locale??J())===`pl`?ile(e):rle(e)),ole=()=>`View total usage for this session`,sle=()=>`Wyświetl całkowite zużycie dla tej sesji`,Io=((e={},t={})=>(t.locale??J())===`pl`?sle(e):ole(e)),cle=()=>`Error Message`,lle=()=>`Komunikat błędu`,ule=((e={},t={})=>(t.locale??J())===`pl`?lle(e):cle(e)),dle=()=>`Headers`,fle=()=>`Nagłówki`,ple=((e={},t={})=>(t.locale??J())===`pl`?fle(e):dle(e)),mle=()=>`Copy Headers`,hle=()=>`Kopiuj nagłówki`,gle=((e={},t={})=>(t.locale??J())===`pl`?hle(e):mle(e)),_le=()=>`Body`,vle=()=>`Treść`,yle=((e={},t={})=>(t.locale??J())===`pl`?vle(e):_le(e)),ble=()=>`streaming`,xle=()=>`streaming`,Sle=((e={},t={})=>(t.locale??J())===`pl`?xle(e):ble(e)),Cle=()=>`Copy Body`,wle=()=>`Kopiuj treść`,Tle=((e={},t={})=>(t.locale??J())===`pl`?wle(e):Cle(e)),Ele=()=>`Request and response`,Dle=()=>`Request i odpowiedź`,Ole=((e={},t={})=>(t.locale??J())===`pl`?Dle(e):Ele(e)),kle=()=>`Share of the request body removed by this rewrite`,Ale=()=>`Część treści Requestu usunięta podczas tego przetwarzania`,jle=((e={},t={})=>(t.locale??J())===`pl`?Ale(e):kle(e)),Mle=()=>`Request`,Nle=()=>`Request`,Ple=((e={},t={})=>(t.locale??J())===`pl`?Nle(e):Mle(e)),Fle=()=>`Response`,Ile=()=>`Odpowiedź`,Lo=((e={},t={})=>(t.locale??J())===`pl`?Ile(e):Fle(e)),Lle=()=>`Rewritten`,Rle=()=>`Po przetworzeniu`,zle=((e={},t={})=>(t.locale??J())===`pl`?Rle(e):Lle(e)),Ble=()=>`What changed`,Vle=()=>`Co się zmieniło`,Hle=((e={},t={})=>(t.locale??J())===`pl`?Vle(e):Ble(e)),Ule=()=>`Provider attempt failed`,Wle=()=>`Próba dostawcy nie powiodła się`,Gle=((e={},t={})=>(t.locale??J())===`pl`?Wle(e):Ule(e)),Kle=e=>No(`en`,e?.count,{})===`one`?`${e?.count} provider attempt`:`${e?.count} provider attempts`,qle=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} próba dostawcy`:t===`few`?`${e?.count} próby dostawców`:t===`many`?`${e?.count} prób dostawców`:`${e?.count} próby dostawcy`},Jle=((e,t={})=>(t.locale??J())===`pl`?qle(e):Kle(e)),Yle=e=>`${e?.count} provider attempts · ${e?.failed} failed`,Xle=e=>`Próby dostawców: ${e?.count} · nieudane: ${e?.failed}`,Zle=((e,t={})=>(t.locale??J())===`pl`?Xle(e):Yle(e)),Qle=()=>`succeeded`,$le=()=>`powodzenie`,eue=((e={},t={})=>(t.locale??J())===`pl`?$le(e):Qle(e)),tue=()=>`failed`,nue=()=>`niepowodzenie`,rue=((e={},t={})=>(t.locale??J())===`pl`?nue(e):tue(e)),iue=()=>`No response was captured for this attempt.`,aue=()=>`Nie zapisano odpowiedzi dla tej próby.`,oue=((e={},t={})=>(t.locale??J())===`pl`?aue(e):iue(e)),sue=()=>`Request details were not captured.`,cue=()=>`Nie zapisano szczegółów Requestu.`,lue=((e={},t={})=>(t.locale??J())===`pl`?cue(e):sue(e)),uue=()=>`Waiting for request data…`,due=()=>`Oczekiwanie na dane Requestu…`,Ro=((e={},t={})=>(t.locale??J())===`pl`?due(e):uue(e)),fue=()=>`Request body was too large to capture.`,pue=()=>`Treść Requestu była zbyt duża, aby ją zapisać.`,mue=((e={},t={})=>(t.locale??J())===`pl`?pue(e):fue(e)),hue=()=>`Response details were not captured.`,gue=()=>`Nie zapisano szczegółów odpowiedzi.`,_ue=((e={},t={})=>(t.locale??J())===`pl`?gue(e):hue(e)),vue=()=>`Response in progress…`,yue=()=>`Odpowiedź w toku…`,bue=((e={},t={})=>(t.locale??J())===`pl`?yue(e):vue(e)),xue=()=>`Response body was too large to capture.`,Sue=()=>`Treść odpowiedzi była zbyt duża, aby ją zapisać.`,zo=((e={},t={})=>(t.locale??J())===`pl`?Sue(e):xue(e)),Cue=()=>`Rewritten body not captured (body logging disabled or body too large).`,wue=()=>`Nie zapisano przetworzonej treści (rejestrowanie treści jest wyłączone lub treść jest zbyt duża).`,Tue=((e={},t={})=>(t.locale??J())===`pl`?wue(e):Cue(e)),Eue=e=>`${e?.rewriter}: no change`,Due=e=>`${e?.rewriter}: bez zmian`,Oue=((e,t={})=>(t.locale??J())===`pl`?Due(e):Eue(e)),kue=e=>`${e?.rewriter} ran and forwarded the request unchanged`,Aue=e=>`${e?.rewriter} uruchomił się i przekazał Request bez zmian`,jue=((e,t={})=>(t.locale??J())===`pl`?Aue(e):kue(e)),Mue=e=>`${e?.count} cached`,Nue=e=>`${e?.count} z cache`,Pue=((e,t={})=>(t.locale??J())===`pl`?Nue(e):Mue(e)),Fue=e=>`${e?.percent}% cached`,Iue=e=>`${e?.percent}% z cache`,Lue=((e,t={})=>(t.locale??J())===`pl`?Iue(e):Fue(e)),Rue=()=>`Audio too large to store.`,zue=()=>`Audio jest zbyt duże, aby je zapisać.`,Bue=((e={},t={})=>(t.locale??J())===`pl`?zue(e):Rue(e)),Vue=()=>`Audio not logged. Set LOGGING_LOG_AUDIO_BODIES=true to capture playable audio.`,Hue=()=>`Audio nie zostało zapisane. Ustaw LOGGING_LOG_AUDIO_BODIES=true, aby zapisywać audio możliwe do odtworzenia.`,Uue=((e={},t={})=>(t.locale??J())===`pl`?Hue(e):Vue(e)),Wue=()=>`Resize interactions panel`,Gue=()=>`Zmień szerokość panelu interakcji`,Kue=((e={},t={})=>(t.locale??J())===`pl`?Gue(e):Wue(e)),que=()=>`Interactions`,Jue=()=>`Interakcje`,Yue=((e={},t={})=>(t.locale??J())===`pl`?Jue(e):que(e)),Xue=()=>`Following the latest interaction`,Zue=()=>`Śledzenie najnowszej interakcji`,Que=((e={},t={})=>(t.locale??J())===`pl`?Zue(e):Xue(e)),$ue=()=>`Viewing a historical interaction`,ede=()=>`Wyświetlanie historycznej interakcji`,tde=((e={},t={})=>(t.locale??J())===`pl`?ede(e):$ue(e)),nde=()=>`Following the latest interaction as new events arrive`,rde=()=>`Śledzenie najnowszej interakcji w miarę pojawiania się nowych zdarzeń`,ide=((e={},t={})=>(t.locale??J())===`pl`?rde(e):nde(e)),ade=()=>`Viewing a historical interaction; live updates are not followed`,ode=()=>`Wyświetlanie historycznej interakcji; aktualizacje Live nie są śledzone`,sde=((e={},t={})=>(t.locale??J())===`pl`?ode(e):ade(e)),cde=()=>`Exit fullscreen interactions`,lde=()=>`Wyłącz pełny ekran interakcji`,ude=((e={},t={})=>(t.locale??J())===`pl`?lde(e):cde(e)),dde=()=>`Show interactions fullscreen`,fde=()=>`Wyświetl interakcje na pełnym ekranie`,pde=((e={},t={})=>(t.locale??J())===`pl`?fde(e):dde(e)),mde=()=>`Exit fullscreen`,hde=()=>`Wyłącz pełny ekran`,gde=((e={},t={})=>(t.locale??J())===`pl`?hde(e):mde(e)),_de=()=>`Fullscreen`,vde=()=>`Pełny ekran`,yde=((e={},t={})=>(t.locale??J())===`pl`?vde(e):_de(e)),bde=()=>`Close interactions`,xde=()=>`Zamknij interakcje`,Sde=((e={},t={})=>(t.locale??J())===`pl`?xde(e):bde(e)),Cde=()=>`Navigate interaction messages`,wde=()=>`Nawigacja między wiadomościami interakcji`,Tde=((e={},t={})=>(t.locale??J())===`pl`?wde(e):Cde(e)),Ede=()=>`Previous message`,Dde=()=>`Poprzednia wiadomość`,Bo=((e={},t={})=>(t.locale??J())===`pl`?Dde(e):Ede(e)),Ode=()=>`Next message`,kde=()=>`Następna wiadomość`,Vo=((e={},t={})=>(t.locale??J())===`pl`?kde(e):Ode(e)),Ade=()=>`Loading interactions…`,jde=()=>`Wczytywanie interakcji…`,Mde=((e={},t={})=>(t.locale??J())===`pl`?jde(e):Ade(e)),Nde=()=>`No interaction data available for this entry.`,Pde=()=>`Brak danych interakcji dla tego wpisu.`,Fde=((e={},t={})=>(t.locale??J())===`pl`?Pde(e):Nde(e)),Ide=()=>`Hide estimated provider prompt-cache fill`,Lde=()=>`Ukryj szacowane wykorzystanie prompt cache dostawcy`,Rde=((e={},t={})=>(t.locale??J())===`pl`?Lde(e):Ide(e)),zde=()=>`Show estimated provider prompt-cache fill`,Bde=()=>`Pokaż szacowane wykorzystanie prompt cache dostawcy`,Vde=((e={},t={})=>(t.locale??J())===`pl`?Bde(e):zde(e)),Hde=()=>`Blue fill shows cached prompt share`,Ude=()=>`Niebieskie wypełnienie pokazuje część promptu z cache`,Wde=((e={},t={})=>(t.locale??J())===`pl`?Ude(e):Hde(e)),Gde=()=>`(estimated)`,Kde=()=>`(szacunkowo)`,qde=((e={},t={})=>(t.locale??J())===`pl`?Kde(e):Gde(e)),Jde=()=>`Showing the newest part of this session and the selected log.`,Yde=()=>`Wyświetlanie najnowszej części tej sesji i wybranego logu.`,Xde=((e={},t={})=>(t.locale??J())===`pl`?Yde(e):Jde(e)),Zde=()=>`Send a message`,Qde=()=>`Wyślij wiadomość`,$de=((e={},t={})=>(t.locale??J())===`pl`?Qde(e):Zde(e)),efe=()=>`Continue this interaction…`,tfe=()=>`Kontynuuj tę interakcję…`,nfe=((e={},t={})=>(t.locale??J())===`pl`?tfe(e):efe(e)),rfe=()=>`Model is responding…`,ife=()=>`Model odpowiada…`,afe=((e={},t={})=>(t.locale??J())===`pl`?ife(e):rfe(e)),ofe=()=>`Unable to load interactions.`,sfe=()=>`Nie można wczytać interakcji.`,cfe=((e={},t={})=>(t.locale??J())===`pl`?sfe(e):ofe(e)),lfe=()=>`Failed to load interactions.`,ufe=()=>`Wczytywanie interakcji nie powiodło się.`,dfe=((e={},t={})=>(t.locale??J())===`pl`?ufe(e):lfe(e)),ffe=()=>`Unable to send message.`,pfe=()=>`Nie można wysłać wiadomości.`,mfe=((e={},t={})=>(t.locale??J())===`pl`?pfe(e):ffe(e)),hfe=()=>`The request timed out.`,gfe=()=>`Upłynął limit czasu Requestu.`,_fe=((e={},t={})=>(t.locale??J())===`pl`?gfe(e):hfe(e)),vfe=()=>`Failed to send message.`,yfe=()=>`Wysyłanie wiadomości nie powiodło się.`,bfe=((e={},t={})=>(t.locale??J())===`pl`?yfe(e):vfe(e)),xfe=()=>`Message sent, but its saved interaction is not available yet.`,Sfe=()=>`Wiadomość została wysłana, ale jej zapisana interakcja nie jest jeszcze dostępna.`,Cfe=((e={},t={})=>(t.locale??J())===`pl`?Sfe(e):xfe(e)),wfe=()=>`System Prompt`,Tfe=()=>`Prompt systemowy`,Efe=((e={},t={})=>(t.locale??J())===`pl`?Tfe(e):wfe(e)),Dfe=()=>`Agent`,Ofe=()=>`Agent`,kfe=((e={},t={})=>(t.locale??J())===`pl`?Ofe(e):Dfe(e)),Afe=()=>`Error`,jfe=()=>`Błąd`,Mfe=((e={},t={})=>(t.locale??J())===`pl`?jfe(e):Afe(e)),Nfe=()=>`Function Call`,Pfe=()=>`Wywołanie funkcji`,Ffe=((e={},t={})=>(t.locale??J())===`pl`?Pfe(e):Nfe(e)),Ife=()=>`Function Result`,Lfe=()=>`Wynik funkcji`,Rfe=((e={},t={})=>(t.locale??J())===`pl`?Lfe(e):Ife(e)),zfe=()=>`User`,Bfe=()=>`Użytkownik`,Vfe=((e={},t={})=>(t.locale??J())===`pl`?Bfe(e):zfe(e)),Hfe=()=>`[Image]`,Ufe=()=>`[Obraz]`,Wfe=((e={},t={})=>(t.locale??J())===`pl`?Ufe(e):Hfe(e)),Gfe=()=>`[Audio]`,Kfe=()=>`[Audio]`,qfe=((e={},t={})=>(t.locale??J())===`pl`?Kfe(e):Gfe(e)),Jfe=()=>`[File]`,Yfe=()=>`[Plik]`,Xfe=((e={},t={})=>(t.locale??J())===`pl`?Yfe(e):Jfe(e)),Zfe=e=>`[File: ${e?.name}]`,Qfe=e=>`[Plik: ${e?.name}]`,$fe=((e,t={})=>(t.locale??J())===`pl`?Qfe(e):Zfe(e)),epe=()=>`Message copied`,tpe=()=>`Wiadomość skopiowana`,npe=((e={},t={})=>(t.locale??J())===`pl`?tpe(e):epe(e)),rpe=()=>`Copy message`,ipe=()=>`Kopiuj wiadomość`,Ho=((e={},t={})=>(t.locale??J())===`pl`?ipe(e):rpe(e)),ape=e=>`${e?.percent}% of this visible prompt item is estimated provider-cached`,ope=e=>`Szacuje się, że ${e?.percent}% tego widocznego elementu promptu pochodzi z cache dostawcy`,spe=((e,t={})=>(t.locale??J())===`pl`?ope(e):ape(e)),cpe=()=>`Call ID`,lpe=()=>`ID wywołania`,Uo=((e={},t={})=>(t.locale??J())===`pl`?lpe(e):cpe(e)),upe=e=>`Call ID (${e?.name})`,dpe=e=>`ID wywołania (${e?.name})`,fpe=((e,t={})=>(t.locale??J())===`pl`?dpe(e):upe(e)),ppe=()=>`No arguments`,mpe=()=>`Brak argumentów`,Wo=((e={},t={})=>(t.locale??J())===`pl`?mpe(e):ppe(e)),hpe=()=>`Copied`,gpe=()=>`Skopiowano`,_pe=((e={},t={})=>(t.locale??J())===`pl`?gpe(e):hpe(e)),vpe=()=>`Tokens`,ype=()=>`Tokeny`,Go=((e={},t={})=>(t.locale??J())===`pl`?ype(e):vpe(e)),bpe=()=>`Input tokens`,xpe=()=>`Input Tokens`,Spe=((e={},t={})=>(t.locale??J())===`pl`?xpe(e):bpe(e)),Cpe=()=>`Output tokens`,wpe=()=>`Output Tokens`,Tpe=((e={},t={})=>(t.locale??J())===`pl`?wpe(e):Cpe(e)),Epe=()=>`Input Tokens`,Dpe=()=>`Input Tokens`,Ko=((e={},t={})=>(t.locale??J())===`pl`?Dpe(e):Epe(e)),Ope=()=>`Output Tokens`,kpe=()=>`Output Tokens`,qo=((e={},t={})=>(t.locale??J())===`pl`?kpe(e):Ope(e)),Ape=()=>`Total tokens`,jpe=()=>`Wszystkie tokeny`,Mpe=((e={},t={})=>(t.locale??J())===`pl`?jpe(e):Ape(e)),Npe=()=>`Total Requests`,Ppe=()=>`Łączna liczba Request'ów`,Jo=((e={},t={})=>(t.locale??J())===`pl`?Ppe(e):Npe(e)),Fpe=()=>`Cache Hits`,Ipe=()=>`Trafienia cache`,Yo=((e={},t={})=>(t.locale??J())===`pl`?Ipe(e):Fpe(e)),Lpe=()=>`Estimated Cost`,Rpe=()=>`Szacowany koszt`,Xo=((e={},t={})=>(t.locale??J())===`pl`?Rpe(e):Lpe(e)),zpe=()=>`Local Cache`,Bpe=()=>`Lokalny cache`,Vpe=((e={},t={})=>(t.locale??J())===`pl`?Bpe(e):zpe(e)),Hpe=()=>`Prompt Cache Rate`,Upe=()=>`Wskaźnik prompt cache`,Wpe=((e={},t={})=>(t.locale??J())===`pl`?Upe(e):Hpe(e)),Gpe=()=>`Share of input tokens served from the provider prompt cache over the selected period`,Kpe=()=>`Część input tokens obsłużona przez prompt cache dostawcy w wybranym okresie`,qpe=((e={},t={})=>(t.locale??J())===`pl`?Kpe(e):Gpe(e)),Jpe=e=>`Prompt cache rate ${e?.rate}`,Ype=e=>`Wskaźnik prompt cache: ${e?.rate}`,Xpe=((e,t={})=>(t.locale??J())===`pl`?Ype(e):Jpe(e)),Zpe=()=>`Provider Status`,Qpe=()=>`Status provider'ów`,$pe=((e={},t={})=>(t.locale??J())===`pl`?Qpe(e):Zpe(e)),eme=()=>`View providers overview`,tme=()=>`Zobacz przegląd dostawców`,nme=((e={},t={})=>(t.locale??J())===`pl`?tme(e):eme(e)),rme=()=>`View MCP servers`,ime=()=>`Zobacz serwery MCP`,ame=((e={},t={})=>(t.locale??J())===`pl`?ime(e):rme(e)),ome=()=>`Requests by Status`,sme=()=>`Requesty według statusu`,cme=((e={},t={})=>(t.locale??J())===`pl`?sme(e):ome(e)),lme=()=>`Request status summary`,ume=()=>`Podsumowanie statusów Request'ów`,dme=((e={},t={})=>(t.locale??J())===`pl`?ume(e):lme(e)),fme=()=>`Share of requests answered with a 2xx status`,pme=()=>`Część Request'ów zakończonych statusem 2xx`,mme=((e={},t={})=>(t.locale??J())===`pl`?pme(e):fme(e)),hme=()=>`Success`,gme=()=>`Powodzenie`,_me=((e={},t={})=>(t.locale??J())===`pl`?gme(e):hme(e)),vme=()=>`Provider Latency`,yme=()=>`Opóźnienie dostawców`,bme=((e={},t={})=>(t.locale??J())===`pl`?yme(e):vme(e)),xme=()=>`Provider latency help`,Sme=()=>`Pomoc dotycząca opóźnienia dostawców`,Cme=((e={},t={})=>(t.locale??J())===`pl`?Sme(e):xme(e)),wme=()=>`Average duration of successful requests measured at the gateway for each provider. Local cache hits and failed requests are excluded; streamed responses count until the stream completes.`,Tme=()=>`Średni czas trwania udanych Request'ów mierzony przez gateway dla każdego dostawcy. Trafienia lokalnego cache i nieudane Requesty są pomijane; w przypadku streamingu czas jest liczony do zakończenia strumienia.`,Eme=((e={},t={})=>(t.locale??J())===`pl`?Tme(e):wme(e)),Dme=()=>`Average duration of successful, uncached requests across all providers`,Ome=()=>`Średni czas trwania udanych Request'ów bez cache dla wszystkich dostawców`,kme=((e={},t={})=>(t.locale??J())===`pl`?Ome(e):Dme(e)),Ame=()=>`Avg`,jme=()=>`Śr.`,Mme=((e={},t={})=>(t.locale??J())===`pl`?jme(e):Ame(e)),Nme=()=>`Providers Overview`,Pme=()=>`Przegląd dostawców`,Fme=((e={},t={})=>(t.locale??J())===`pl`?Pme(e):Nme(e)),Ime=()=>`Loading provider status`,Lme=()=>`Wczytywanie statusu dostawców`,Rme=((e={},t={})=>(t.locale??J())===`pl`?Lme(e):Ime(e)),zme=()=>`Show Details`,Bme=()=>`Pokaż szczegóły`,Vme=((e={},t={})=>(t.locale??J())===`pl`?Bme(e):zme(e)),Hme=()=>`Hide Details`,Zo=()=>`Ukryj szczegóły`,Qo=((e={},t={})=>(t.locale??J())===`pl`?Zo(e):Hme(e)),$o=e=>`View ${e?.provider} provider docs`,es=e=>`Zobacz dokumentację dostawcy ${e?.provider}`,ts=((e,t={})=>(t.locale??J())===`pl`?es(e):$o(e)),ns=()=>`Models Available`,rs=()=>`Dostępne modele`,is=((e={},t={})=>(t.locale??J())===`pl`?rs(e):ns(e)),as=()=>`Last Checked`,os=()=>`Ostatnio sprawdzono`,ss=((e={},t={})=>(t.locale??J())===`pl`?os(e):as(e)),cs=e=>`Expand ${e?.provider} details`,ls=e=>`Rozwiń szczegóły dostawcy ${e?.provider}`,us=((e,t={})=>(t.locale??J())===`pl`?ls(e):cs(e)),ds=e=>`Collapse ${e?.provider} details`,fs=e=>`Zwiń szczegóły dostawcy ${e?.provider}`,ps=((e,t={})=>(t.locale??J())===`pl`?fs(e):ds(e)),ms=()=>`Expand details`,hs=()=>`Rozwiń szczegóły`,gs=((e={},t={})=>(t.locale??J())===`pl`?hs(e):ms(e)),_s=()=>`Collapse details`,vs=()=>`Zwiń szczegóły`,ys=((e={},t={})=>(t.locale??J())===`pl`?vs(e):_s(e)),bs=()=>`Base URL`,xs=()=>`Bazowy URL`,Ss=((e={},t={})=>(t.locale??J())===`pl`?xs(e):bs(e)),Cs=()=>`API Version`,ws=()=>`Wersja API`,Ts=((e={},t={})=>(t.locale??J())===`pl`?ws(e):Cs(e)),Es=()=>`Recent Requests`,Ds=()=>`Ostatnie Requesty`,Os=((e={},t={})=>(t.locale??J())===`pl`?Ds(e):Es(e)),ks=()=>`Breaker State`,As=()=>`Stan circuit breakera`,js=((e={},t={})=>(t.locale??J())===`pl`?As(e):ks(e)),Ms=()=>`Models (Recent Traffic)`,Ns=()=>`Modele (ostatni ruch)`,Ps=((e={},t={})=>(t.locale??J())===`pl`?Ns(e):Ms(e)),Fs=()=>`Configured Models`,Is=()=>`Skonfigurowane modele`,Ls=((e={},t={})=>(t.locale??J())===`pl`?Is(e):Fs(e)),Rs=()=>`Retry`,zs=()=>`Retry`,Bs=((e={},t={})=>(t.locale??J())===`pl`?zs(e):Rs(e)),Vs=()=>`Circuit Breaker`,Hs=()=>`Circuit Breaker`,Us=((e={},t={})=>(t.locale??J())===`pl`?Hs(e):Vs(e)),Ws=()=>`None configured`,Gs=()=>`Brak konfiguracji`,Ks=((e={},t={})=>(t.locale??J())===`pl`?Gs(e):Ws(e)),qs=()=>`All healthy`,Js=()=>`Wszystkie działają prawidłowo`,Ys=((e={},t={})=>(t.locale??J())===`pl`?Js(e):qs(e)),Xs=()=>`None healthy`,Zs=()=>`Żaden nie działa prawidłowo`,Qs=((e={},t={})=>(t.locale??J())===`pl`?Zs(e):Xs(e)),$s=()=>`Automatic`,ec=()=>`Automatycznie`,tc=((e={},t={})=>(t.locale??J())===`pl`?ec(e):$s(e)),nc=e=>`Last error: ${e?.error}`,rc=e=>`Ostatni błąd: ${e?.error}`,ic=((e,t={})=>(t.locale??J())===`pl`?rc(e):nc(e)),ac=()=>`All MCP servers connected`,oc=()=>`Wszystkie serwery MCP są połączone`,sc=((e={},t={})=>(t.locale??J())===`pl`?oc(e):ac(e)),cc=()=>`Share of input tokens over the selected period`,lc=()=>`Udział input tokens w wybranym okresie`,uc=((e={},t={})=>(t.locale??J())===`pl`?lc(e):cc(e)),dc=()=>`No usage in the selected period yet`,fc=()=>`Brak danych o zużyciu w wybranym okresie`,pc=((e={},t={})=>(t.locale??J())===`pl`?fc(e):dc(e)),mc=()=>`Regular`,hc=()=>`Standardowe`,gc=((e={},t={})=>(t.locale??J())===`pl`?hc(e):mc(e)),_c=e=>`Includes ${e?.count} cache-write tokens`,vc=e=>`Obejmuje ${e?.count} tokenów zapisu do cache`,yc=((e,t={})=>(t.locale??J())===`pl`?vc(e):_c(e)),bc=()=>`Prompt cached`,xc=()=>`Prompt cache`,Sc=((e={},t={})=>(t.locale??J())===`pl`?xc(e):bc(e)),Cc=()=>`Provider prompt-cache reads`,wc=()=>`Odczyty z prompt cache dostawcy`,Tc=((e={},t={})=>(t.locale??J())===`pl`?wc(e):Cc(e)),Ec=()=>`Locally cached`,Dc=()=>`Lokalny cache`,Oc=((e={},t={})=>(t.locale??J())===`pl`?Dc(e):Ec(e)),kc=()=>`Served from GoModel response cache`,Ac=()=>`Obsłużone przez response cache GoModel`,jc=((e={},t={})=>(t.locale??J())===`pl`?Ac(e):kc(e)),Mc=e=>`Cache breakdown of input tokens — ${e?.details}`,Nc=e=>`Podział input tokens według cache — ${e?.details}`,Pc=((e,t={})=>(t.locale??J())===`pl`?Nc(e):Mc(e)),Fc=()=>`Activity`,Ic=()=>`Aktywność`,Lc=((e={},t={})=>(t.locale??J())===`pl`?Ic(e):Fc(e)),Rc=()=>`Loading activity`,zc=()=>`Wczytywanie aktywności`,Bc=((e={},t={})=>(t.locale??J())===`pl`?zc(e):Rc(e)),Vc=()=>`Activity calendar mode`,Hc=()=>`Tryb kalendarza aktywności`,Uc=((e={},t={})=>(t.locale??J())===`pl`?Hc(e):Vc(e)),Wc=()=>`Costs`,Gc=()=>`Koszty`,Kc=((e={},t={})=>(t.locale??J())===`pl`?Gc(e):Wc(e)),qc=()=>`Mon`,Jc=()=>`Pon`,Yc=((e={},t={})=>(t.locale??J())===`pl`?Jc(e):qc(e)),Xc=()=>`Wed`,Zc=()=>`Śr`,Qc=((e={},t={})=>(t.locale??J())===`pl`?Zc(e):Xc(e)),$c=()=>`Fri`,el=()=>`Pt`,tl=((e={},t={})=>(t.locale??J())===`pl`?el(e):$c(e)),nl=()=>`Less`,rl=()=>`Mniej`,il=((e={},t={})=>(t.locale??J())===`pl`?rl(e):nl(e)),al=()=>`More`,ol=()=>`Więcej`,sl=((e={},t={})=>(t.locale??J())===`pl`?ol(e):al(e)),cl=()=>`Live Token Throughput`,ll=()=>`Przepływ tokenów`,ul=((e={},t={})=>(t.locale??J())===`pl`?ll(e):cl(e)),dl=()=>`Live token throughput granularity`,fl=()=>`Ziarnistość przepływu tokenów`,pl=((e={},t={})=>(t.locale??J())===`pl`?fl(e):dl(e)),ml=()=>`Waiting for live requests…`,hl=()=>`Oczekiwanie na Requesty Live…`,gl=((e={},t={})=>(t.locale??J())===`pl`?hl(e):ml(e)),_l=()=>`Seconds`,vl=()=>`Sekundy`,yl=((e={},t={})=>(t.locale??J())===`pl`?vl(e):_l(e)),bl=()=>`Minutes`,xl=()=>`Minuty`,Sl=((e={},t={})=>(t.locale??J())===`pl`?xl(e):bl(e)),Cl=()=>`Hours`,wl=()=>`Godziny`,Tl=((e={},t={})=>(t.locale??J())===`pl`?wl(e):Cl(e)),El=()=>`Days`,Dl=()=>`Dni`,Ol=((e={},t={})=>(t.locale??J())===`pl`?Dl(e):El(e)),kl=()=>`Last 60 seconds`,Al=()=>`Ostatnie 60 sekund`,jl=((e={},t={})=>(t.locale??J())===`pl`?Al(e):kl(e)),Ml=()=>`Last 60 minutes`,Nl=()=>`Ostatnie 60 minut`,Pl=((e={},t={})=>(t.locale??J())===`pl`?Nl(e):Ml(e)),Fl=()=>`Last 24 hours`,Il=()=>`Ostatnie 24 godziny`,Ll=((e={},t={})=>(t.locale??J())===`pl`?Il(e):Fl(e)),Rl=()=>`Last 30 days`,zl=()=>`Ostatnie 30 dni`,Bl=((e={},t={})=>(t.locale??J())===`pl`?zl(e):Rl(e)),Vl=()=>`Prompt (Input) Cached`,Hl=()=>`Prompt (wejście) z cache`,Ul=((e={},t={})=>(t.locale??J())===`pl`?Hl(e):Vl(e)),Wl=()=>`Locally Cached`,Gl=()=>`Lokalny cache`,Kl=((e={},t={})=>(t.locale??J())===`pl`?Gl(e):Wl(e)),ql=e=>`Total: ${e?.total}`,Jl=e=>`Łącznie: ${e?.total}`,Yl=((e,t={})=>(t.locale??J())===`pl`?Jl(e):ql(e)),Xl=e=>`${e?.provider} to providers + ${e?.cache} from cache`,Zl=e=>`${e?.provider} do dostawców + ${e?.cache} z cache`,Ql=((e,t={})=>(t.locale??J())===`pl`?Zl(e):Xl(e)),$l=e=>`${e?.label}: ${e?.tokens} input tokens (${e?.percent}%)`,eu=e=>`${e?.label}: ${e?.tokens} input tokens (${e?.percent}%)`,tu=((e,t={})=>(t.locale??J())===`pl`?eu(e):$l(e)),nu=()=>`no data`,ru=()=>`brak danych`,iu=((e={},t={})=>(t.locale??J())===`pl`?ru(e):nu(e)),au=e=>No(`en`,e?.count,{})===`one`?`${e?.count} needs attention`:`${e?.count} need attention`,ou=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} wymaga uwagi`:t===`few`?`${e?.count} wymagają uwagi`:`${e?.count} wymaga uwagi`},su=((e,t={})=>(t.locale??J())===`pl`?ou(e):au(e)),cu=e=>`${e?.count} servers need attention`,lu=e=>`Serwery wymagające uwagi: ${e?.count}`,uu=((e,t={})=>(t.locale??J())===`pl`?lu(e):cu(e)),du=e=>`${e?.connected} of ${e?.total} servers connected`,fu=e=>`Połączone serwery: ${e?.connected} z ${e?.total}`,pu=((e,t={})=>(t.locale??J())===`pl`?fu(e):du(e)),mu=e=>`$${e?.total} in the last year`,hu=e=>`$${e?.total} w ostatnim roku`,gu=((e,t={})=>(t.locale??J())===`pl`?hu(e):mu(e)),_u=e=>`${e?.total} tokens in the last year`,vu=e=>`${e?.total} tokenów w ostatnim roku`,yu=((e,t={})=>(t.locale??J())===`pl`?vu(e):_u(e)),bu=e=>`$${e?.total} on ${e?.date}`,xu=e=>`$${e?.total} dnia ${e?.date}`,Su=((e,t={})=>(t.locale??J())===`pl`?xu(e):bu(e)),Cu=e=>`${e?.total} tokens on ${e?.date}`,wu=e=>`${e?.total} tokenów dnia ${e?.date}`,Tu=((e,t={})=>(t.locale??J())===`pl`?wu(e):Cu(e)),Eu=e=>`Live token throughput, ${e?.window}. Input ${e?.input}, output ${e?.output}, prompt cached ${e?.prompt}, locally cached ${e?.local} tokens.`,Du=e=>`Przepływ tokenów, ${e?.window}. Input ${e?.input}, output ${e?.output}, prompt cache ${e?.prompt}, lokalny cache ${e?.local} tokenów.`,Ou=((e,t={})=>(t.locale??J())===`pl`?Du(e):Eu(e)),ku=()=>`Other`,Au=()=>`Inne`,ju=((e={},t={})=>(t.locale??J())===`pl`?Au(e):ku(e)),Mu=()=>`Timezone`,Nu=()=>`Strefa czasowa`,Pu=((e={},t={})=>(t.locale??J())===`pl`?Nu(e):Mu(e)),Fu=()=>`Timezone help`,Iu=()=>`Pomoc dotycząca strefy czasowej`,Lu=((e={},t={})=>(t.locale??J())===`pl`?Iu(e):Fu(e)),Ru=()=>`Day-based analytics, charts, and date filters use your effective timezone. Usage and audit logs keep UTC in the hover title while rendering row timestamps in your effective timezone.`,zu=()=>`Analityka dzienna, wykresy i filtry dat korzystają z obowiązującej strefy czasowej. Logi zużycia i audytu zachowują UTC w podpowiedzi, a znaczniki czasu w wierszach wyświetlają w obowiązującej strefie czasowej.`,Bu=((e={},t={})=>(t.locale??J())===`pl`?zu(e):Ru(e)),Vu=()=>`Timezone Override`,Hu=()=>`Nadpisanie strefy czasowej`,Uu=((e={},t={})=>(t.locale??J())===`pl`?Hu(e):Vu(e)),Wu=e=>`Automatic (${e?.timezone})`,Gu=e=>`Automatycznie (${e?.timezone})`,Ku=((e,t={})=>(t.locale??J())===`pl`?Gu(e):Wu(e)),qu=()=>`Use Browser Timezone`,Ju=()=>`Użyj strefy czasowej przeglądarki`,Yu=((e={},t={})=>(t.locale??J())===`pl`?Ju(e):qu(e)),Xu=()=>`Failover`,Zu=()=>`Failover`,Qu=((e={},t={})=>(t.locale??J())===`pl`?Zu(e):Xu(e)),$u=()=>`Generating…`,ed=()=>`Generowanie…`,td=((e={},t={})=>(t.locale??J())===`pl`?ed(e):$u(e)),nd=()=>`Generate failover models automatically`,rd=()=>`Wygeneruj modele failover automatycznie`,id=((e={},t={})=>(t.locale??J())===`pl`?rd(e):nd(e)),ad=()=>`Remove all failover models`,od=()=>`Usuń wszystkie modele failover`,sd=((e={},t={})=>(t.locale??J())===`pl`?od(e):ad(e)),cd=()=>`Reset All Budgets`,ld=()=>`Zresetuj wszystkie budżety`,ud=((e={},t={})=>(t.locale??J())===`pl`?ld(e):cd(e)),dd=()=>`Start new budget periods for every configured budget without changing the limits.`,fd=()=>`Rozpocznij nowe okresy dla wszystkich skonfigurowanych budżetów bez zmiany limitów.`,pd=((e={},t={})=>(t.locale??J())===`pl`?fd(e):dd(e)),md=()=>`Reset Budgets`,hd=()=>`Resetuj budżety`,gd=((e={},t={})=>(t.locale??J())===`pl`?hd(e):md(e)),_d=()=>`Budget help`,vd=()=>`Pomoc dotycząca budżetów`,yd=((e={},t={})=>(t.locale??J())===`pl`?vd(e):_d(e)),bd=()=>`Budget reset anchors are stored in the database and evaluated in UTC. Hourly budgets reset at the top of each hour.`,xd=()=>`Punkty resetowania budżetów są przechowywane w bazie danych i obliczane w UTC. Budżety godzinowe resetują się na początku każdej godziny.`,Sd=((e={},t={})=>(t.locale??J())===`pl`?xd(e):bd(e)),Cd=()=>`Budget Resets`,wd=()=>`Resetowanie budżetów`,Td=((e={},t={})=>(t.locale??J())===`pl`?wd(e):Cd(e)),Ed=()=>`Budgets`,Dd=()=>`Budżety`,Od=((e={},t={})=>(t.locale??J())===`pl`?Dd(e):Ed(e)),kd=()=>`Budgets help`,Ad=()=>`Pomoc dotycząca budżetów`,jd=((e={},t={})=>(t.locale??J())===`pl`?Ad(e):kd(e)),Md=()=>`Budgets are evaluated from tracked usage cost records for each user path subtree. Enforcement runs only when Budget is enabled for the active workflow.`,Nd=()=>`Budżety są obliczane na podstawie zarejestrowanych kosztów zużycia dla każdego poddrzewa User Path. Egzekwowanie działa tylko wtedy, gdy Budget jest włączony w aktywnym Workflow.`,Pd=((e={},t={})=>(t.locale??J())===`pl`?Nd(e):Md(e)),Fd=()=>`Create Budget`,Id=()=>`Utwórz budżet`,Ld=((e={},t={})=>(t.locale??J())===`pl`?Id(e):Fd(e)),Rd=()=>`Budget management is unavailable.`,zd=()=>`Zarządzanie budżetami jest niedostępne.`,Bd=((e={},t={})=>(t.locale??J())===`pl`?zd(e):Rd(e)),Vd=()=>`Loading budgets...`,Hd=()=>`Wczytywanie budżetów...`,Ud=((e={},t={})=>(t.locale??J())===`pl`?Hd(e):Vd(e)),Wd=()=>`Filter by user path, label, or period...`,Gd=()=>`Filtruj według User Path, etykiety lub okresu...`,Kd=((e={},t={})=>(t.locale??J())===`pl`?Gd(e):Wd(e)),qd=()=>`Filter budgets by user path, label, or period`,Jd=()=>`Filtruj budżety według User Path, etykiety lub okresu`,Yd=((e={},t={})=>(t.locale??J())===`pl`?Jd(e):qd(e)),Xd=()=>`Sort by`,Zd=()=>`Sortuj według`,Qd=((e={},t={})=>(t.locale??J())===`pl`?Zd(e):Xd(e)),$d=()=>`Sort budgets by`,ef=()=>`Sortuj budżety według`,tf=((e={},t={})=>(t.locale??J())===`pl`?ef(e):$d(e)),nf=()=>`Scope & Subject`,rf=()=>`Zakres i podmiot`,af=((e={},t={})=>(t.locale??J())===`pl`?rf(e):nf(e)),of=()=>`Period`,sf=()=>`Okres`,cf=((e={},t={})=>(t.locale??J())===`pl`?sf(e):of(e)),lf=()=>`No budgets configured yet.`,uf=()=>`Nie skonfigurowano jeszcze budżetów.`,df=((e={},t={})=>(t.locale??J())===`pl`?uf(e):lf(e)),ff=()=>`No budgets match your filter.`,pf=()=>`Żaden budżet nie pasuje do filtra.`,mf=((e={},t={})=>(t.locale??J())===`pl`?pf(e):ff(e)),hf=()=>`Edit Budget`,gf=()=>`Edytuj budżet`,_f=((e={},t={})=>(t.locale??J())===`pl`?gf(e):hf(e)),vf=()=>`Create Budget`,yf=()=>`Utwórz budżet`,bf=((e={},t={})=>(t.locale??J())===`pl`?yf(e):vf(e)),xf=()=>`Budget editor`,Sf=()=>`Edytor budżetu`,Cf=((e={},t={})=>(t.locale??J())===`pl`?Sf(e):xf(e)),wf=()=>`Save Budget`,Tf=()=>`Zapisz budżet`,Ef=((e={},t={})=>(t.locale??J())===`pl`?Tf(e):wf(e)),Df=()=>`Scope`,Of=()=>`Zakres`,kf=((e={},t={})=>(t.locale??J())===`pl`?Of(e):Df(e)),Af=()=>`Period Seconds`,jf=()=>`Okres w sekundach`,Mf=((e={},t={})=>(t.locale??J())===`pl`?jf(e):Af(e)),Nf=()=>`Amount`,Pf=()=>`Kwota`,Ff=((e={},t={})=>(t.locale??J())===`pl`?Pf(e):Nf(e)),If=()=>`Editing a budget updates its limit only. Use Reset to start a new budget period.`,Lf=()=>`Edycja budżetu zmienia tylko jego limit. Użyj Reset, aby rozpocząć nowy okres budżetowy.`,Rf=((e={},t={})=>(t.locale??J())===`pl`?Lf(e):If(e)),zf=()=>`Override Existing Budget`,Bf=()=>`Nadpisz istniejący budżet`,Vf=((e={},t={})=>(t.locale??J())===`pl`?Bf(e):zf(e)),Hf=()=>`Close budget override dialog`,Uf=()=>`Zamknij okno nadpisywania budżetu`,Wf=((e={},t={})=>(t.locale??J())===`pl`?Uf(e):Hf(e)),Gf=()=>`Saving...`,Kf=()=>`Zapisywanie...`,qf=((e={},t={})=>(t.locale??J())===`pl`?Kf(e):Gf(e)),Jf=()=>`Override Budget`,Yf=()=>`Nadpisz budżet`,Xf=((e={},t={})=>(t.locale??J())===`pl`?Yf(e):Jf(e)),Zf=()=>`User path`,Qf=()=>`User Path`,$f=((e={},t={})=>(t.locale??J())===`pl`?Qf(e):Zf(e)),ep=()=>`user path`,tp=()=>`User Path`,np=((e={},t={})=>(t.locale??J())===`pl`?tp(e):ep(e)),rp=()=>`User Path`,ip=()=>`User Path`,ap=((e={},t={})=>(t.locale??J())===`pl`?ip(e):rp(e)),op=()=>`Label`,sp=()=>`Etykieta`,cp=((e={},t={})=>(t.locale??J())===`pl`?sp(e):op(e)),lp=()=>`label`,up=()=>`etykieta`,dp=((e={},t={})=>(t.locale??J())===`pl`?up(e):lp(e)),fp=()=>`Hourly`,pp=()=>`Co godzinę`,mp=((e={},t={})=>(t.locale??J())===`pl`?pp(e):fp(e)),hp=()=>`Daily`,gp=()=>`Codziennie`,_p=((e={},t={})=>(t.locale??J())===`pl`?gp(e):hp(e)),vp=()=>`Weekly`,yp=()=>`Co tydzień`,bp=((e={},t={})=>(t.locale??J())===`pl`?yp(e):vp(e)),xp=()=>`Monthly`,Sp=()=>`Co miesiąc`,Cp=((e={},t={})=>(t.locale??J())===`pl`?Sp(e):xp(e)),wp=()=>`Custom seconds`,Tp=()=>`Niestandardowa liczba sekund`,Ep=((e={},t={})=>(t.locale??J())===`pl`?Tp(e):wp(e)),Dp=()=>`User path is required.`,Op=()=>`User Path jest wymagany.`,kp=((e={},t={})=>(t.locale??J())===`pl`?Op(e):Dp(e)),Ap=()=>`User path cannot contain "." or ".." segments.`,jp=()=>`User Path nie może zawierać segmentów "." ani "..".`,Mp=((e={},t={})=>(t.locale??J())===`pl`?jp(e):Ap(e)),Np=()=>`User path cannot contain ":" segments.`,Pp=()=>`User Path nie może zawierać segmentów z ":".`,Fp=((e={},t={})=>(t.locale??J())===`pl`?Pp(e):Np(e)),Ip=()=>`Label is required.`,Lp=()=>`Etykieta jest wymagana.`,Rp=((e={},t={})=>(t.locale??J())===`pl`?Lp(e):Ip(e)),zp=()=>`Amount must be greater than 0.`,Bp=()=>`Kwota musi być większa od 0.`,Vp=((e={},t={})=>(t.locale??J())===`pl`?Bp(e):zp(e)),Hp=()=>`Period seconds must be greater than 0.`,Up=()=>`Okres w sekundach musi być większy od 0.`,Wp=((e={},t={})=>(t.locale??J())===`pl`?Up(e):Hp(e)),Gp=e=>`Custom ${e?.period}`,Kp=e=>`Niestandardowy okres: ${e?.period}`,qp=((e,t={})=>(t.locale??J())===`pl`?Kp(e):Gp(e)),Jp=e=>`${e?.count} seconds`,Yp=e=>`${e?.count} s`,Xp=((e,t={})=>(t.locale??J())===`pl`?Yp(e):Jp(e)),Zp=()=>`1 second`,Qp=()=>`1 sekunda`,$p=((e={},t={})=>(t.locale??J())===`pl`?Qp(e):Zp(e)),em=()=>`1 hour`,tm=()=>`1 godzina`,nm=((e={},t={})=>(t.locale??J())===`pl`?tm(e):em(e)),rm=()=>`1 day`,im=()=>`1 dzień`,am=((e={},t={})=>(t.locale??J())===`pl`?im(e):rm(e)),om=()=>`1 week`,sm=()=>`1 tydzień`,cm=((e={},t={})=>(t.locale??J())===`pl`?sm(e):om(e)),lm=()=>`1 month`,um=()=>`1 miesiąc`,dm=((e={},t={})=>(t.locale??J())===`pl`?um(e):lm(e)),fm=()=>`Created from the dashboard.`,pm=()=>`Utworzono w dashboardzie.`,mm=((e={},t={})=>(t.locale??J())===`pl`?pm(e):fm(e)),hm=()=>`Loaded from configuration.`,gm=()=>`Wczytano z konfiguracji.`,_m=((e={},t={})=>(t.locale??J())===`pl`?gm(e):hm(e)),vm=e=>`Budget source: ${e?.source}`,ym=e=>`Źródło budżetu: ${e?.source}`,bm=((e,t={})=>(t.locale??J())===`pl`?ym(e):vm(e)),xm=e=>`${e?.amount} remaining`,Sm=e=>`Pozostało ${e?.amount}`,Cm=((e,t={})=>(t.locale??J())===`pl`?Sm(e):xm(e)),wm=e=>`${e?.amount} over`,Tm=e=>`Przekroczono o ${e?.amount}`,Em=((e,t={})=>(t.locale??J())===`pl`?Tm(e):wm(e)),Dm=()=>`Edit`,Om=()=>`Edytuj`,km=((e={},t={})=>(t.locale??J())===`pl`?Om(e):Dm(e)),Am=()=>`Edit budget`,jm=()=>`Edytuj budżet`,Mm=((e={},t={})=>(t.locale??J())===`pl`?jm(e):Am(e)),Nm=()=>`Reset`,Pm=()=>`Reset`,Fm=((e={},t={})=>(t.locale??J())===`pl`?Pm(e):Nm(e)),Im=()=>`Resetting`,Lm=()=>`Resetowanie`,Rm=((e={},t={})=>(t.locale??J())===`pl`?Lm(e):Im(e)),zm=()=>`Reset budget`,Bm=()=>`Zresetuj budżet`,Vm=((e={},t={})=>(t.locale??J())===`pl`?Bm(e):zm(e)),Hm=()=>`Resetting budget`,Um=()=>`Resetowanie budżetu`,Wm=((e={},t={})=>(t.locale??J())===`pl`?Um(e):Hm(e)),Gm=()=>`Delete`,Km=()=>`Usuń`,qm=((e={},t={})=>(t.locale??J())===`pl`?Km(e):Gm(e)),Jm=()=>`Deleting`,Ym=()=>`Usuwanie`,Xm=((e={},t={})=>(t.locale??J())===`pl`?Ym(e):Jm(e)),Zm=()=>`Delete budget`,Qm=()=>`Usuń budżet`,$m=((e={},t={})=>(t.locale??J())===`pl`?Qm(e):Zm(e)),eh=()=>`Deleting budget`,th=()=>`Usuwanie budżetu`,nh=((e={},t={})=>(t.locale??J())===`pl`?th(e):eh(e)),rh=()=>`Usage`,ih=()=>`Zużycie`,ah=((e={},t={})=>(t.locale??J())===`pl`?ih(e):rh(e)),oh=e=>`Budget usage: ${e?.spent} of ${e?.amount}, ${e?.remaining}`,sh=e=>`Zużycie budżetu: ${e?.spent} z ${e?.amount}, ${e?.remaining}`,ch=((e,t={})=>(t.locale??J())===`pl`?sh(e):oh(e)),lh=e=>`${e?.spent} of ${e?.amount}`,uh=e=>`${e?.spent} z ${e?.amount}`,dh=((e,t={})=>(t.locale??J())===`pl`?uh(e):lh(e)),fh=()=>`Budget period elapsed`,ph=()=>`Upływ okresu budżetowego`,mh=((e={},t={})=>(t.locale??J())===`pl`?ph(e):fh(e)),hh=e=>`A budget for "${e?.label}" already exists. Saving will override the current ${e?.current} limit with ${e?.next}.`,gh=e=>`Budżet dla "${e?.label}" już istnieje. Zapisanie nadpisze bieżący limit ${e?.current} wartością ${e?.next}.`,_h=((e,t={})=>(t.locale??J())===`pl`?gh(e):hh(e)),vh=()=>`Unable to load budgets.`,yh=()=>`Nie udało się wczytać budżetów.`,bh=((e={},t={})=>(t.locale??J())===`pl`?yh(e):vh(e)),xh=()=>`Unable to save budget.`,Sh=()=>`Nie udało się zapisać budżetu.`,Ch=((e={},t={})=>(t.locale??J())===`pl`?Sh(e):xh(e)),wh=()=>`Budget saved.`,Th=()=>`Budżet zapisany.`,Eh=((e={},t={})=>(t.locale??J())===`pl`?Th(e):wh(e)),Dh=e=>`Reset budget "${e?.label}"?`,Oh=e=>`Zresetować budżet "${e?.label}"?`,kh=((e,t={})=>(t.locale??J())===`pl`?Oh(e):Dh(e)),Ah=()=>`Unable to reset budget.`,jh=()=>`Nie udało się zresetować budżetu.`,Mh=((e={},t={})=>(t.locale??J())===`pl`?jh(e):Ah(e)),Nh=()=>`Budget reset.`,Ph=()=>`Budżet zresetowany.`,Fh=((e={},t={})=>(t.locale??J())===`pl`?Ph(e):Nh(e)),Ih=e=>`Delete budget "${e?.label}"? This cannot be undone.`,Lh=e=>`Usunąć budżet "${e?.label}"? Tej operacji nie można cofnąć.`,Rh=((e,t={})=>(t.locale??J())===`pl`?Lh(e):Ih(e)),zh=()=>`Unable to delete budget.`,Bh=()=>`Nie udało się usunąć budżetu.`,Vh=((e={},t={})=>(t.locale??J())===`pl`?Bh(e):zh(e)),Hh=()=>`Budget deleted.`,Uh=()=>`Budżet usunięty.`,Wh=((e={},t={})=>(t.locale??J())===`pl`?Uh(e):Hh(e)),Gh=()=>`Reset Budgets`,Kh=()=>`Resetowanie budżetów`,qh=((e={},t={})=>(t.locale??J())===`pl`?Kh(e):Gh(e)),Jh=()=>`Reset All Budgets`,Yh=()=>`Zresetuj wszystkie budżety`,Xh=((e={},t={})=>(t.locale??J())===`pl`?Yh(e):Jh(e)),Zh=()=>`Unable to reset budgets.`,Qh=()=>`Nie udało się zresetować budżetów.`,$h=((e={},t={})=>(t.locale??J())===`pl`?Qh(e):Zh(e)),eg=()=>`Budgets reset.`,tg=()=>`Budżety zresetowane.`,ng=((e={},t={})=>(t.locale??J())===`pl`?tg(e):eg(e)),rg=()=>`Models`,ig=()=>`Modele`,ag=((e={},t={})=>(t.locale??J())===`pl`?ig(e):rg(e)),og=e=>`${e?.count} models`,sg=e=>`Modele: ${e?.count}`,cg=((e,t={})=>(t.locale??J())===`pl`?sg(e):og(e)),lg=()=>`Virtual models feature is unavailable.`,ug=()=>`Funkcja modeli wirtualnych jest niedostępna.`,dg=((e={},t={})=>(t.locale??J())===`pl`?ug(e):lg(e)),fg=()=>`Filter by provider, provider/model, alias, or owner...`,pg=()=>`Filtruj według dostawcy, dostawcy/modelu, aliasu lub właściciela...`,mg=((e={},t={})=>(t.locale??J())===`pl`?pg(e):fg(e)),hg=()=>`Filter models by provider, provider/model, alias, or owner`,gg=()=>`Filtruj modele według dostawcy, dostawcy/modelu, aliasu lub właściciela`,_g=((e={},t={})=>(t.locale??J())===`pl`?gg(e):hg(e)),vg=()=>`New virtual model`,yg=()=>`Nowy model wirtualny`,bg=((e={},t={})=>(t.locale??J())===`pl`?yg(e):vg(e)),xg=()=>`New virtual model alias`,Sg=()=>`Nowy alias modelu wirtualnego`,Cg=((e={},t={})=>(t.locale??J())===`pl`?Sg(e):xg(e)),wg=()=>`Alias`,Tg=()=>`Alias`,Eg=((e={},t={})=>(t.locale??J())===`pl`?Tg(e):wg(e)),Dg=()=>`No models registered.`,Og=()=>`Nie zarejestrowano modeli.`,kg=((e={},t={})=>(t.locale??J())===`pl`?Og(e):Dg(e)),Ag=()=>`No models in this category.`,jg=()=>`Brak modeli w tej kategorii.`,Mg=((e={},t={})=>(t.locale??J())===`pl`?jg(e):Ag(e)),Ng=()=>`No models match your filter.`,Pg=()=>`Żaden model nie pasuje do filtra.`,Fg=((e={},t={})=>(t.locale??J())===`pl`?Pg(e):Ng(e)),Ig=()=>`Model`,Lg=()=>`Model`,Rg=((e={},t={})=>(t.locale??J())===`pl`?Lg(e):Ig(e)),zg=()=>`Enabled`,Bg=()=>`Włączony`,Vg=((e={},t={})=>(t.locale??J())===`pl`?Bg(e):zg(e)),Hg=()=>`Disabled`,Ug=()=>`Wyłączony`,Wg=((e={},t={})=>(t.locale??J())===`pl`?Ug(e):Hg(e)),Gg=()=>`Restricted`,Kg=()=>`Ograniczony`,qg=((e={},t={})=>(t.locale??J())===`pl`?Kg(e):Gg(e)),Jg=()=>`Updating...`,Yg=()=>`Aktualizowanie...`,Xg=((e={},t={})=>(t.locale??J())===`pl`?Yg(e):Jg(e)),Zg=()=>`Loading models...`,Qg=()=>`Wczytywanie modeli...`,$g=((e={},t={})=>(t.locale??J())===`pl`?Qg(e):Zg(e)),e_=()=>`Refreshing models...`,t_=()=>`Odświeżanie modeli...`,n_=((e={},t={})=>(t.locale??J())===`pl`?t_(e):e_(e)),r_=e=>`Rendering models... ${e?.visible} / ${e?.total}`,i_=e=>`Renderowanie modeli... ${e?.visible} / ${e?.total}`,a_=((e,t={})=>(t.locale??J())===`pl`?i_(e):r_(e)),o_=()=>`All providers and models`,s_=()=>`Wszyscy dostawcy i modele`,c_=((e={},t={})=>(t.locale??J())===`pl`?s_(e):o_(e)),l_=e=>`All models in ${e?.provider}`,u_=e=>`Wszystkie modele dostawcy ${e?.provider}`,d_=((e,t={})=>(t.locale??J())===`pl`?u_(e):l_(e)),f_=()=>`Virtual model`,p_=()=>`Model wirtualny`,m_=((e={},t={})=>(t.locale??J())===`pl`?p_(e):f_(e)),h_=()=>`Redirect`,g_=()=>`Przekierowanie`,__=((e={},t={})=>(t.locale??J())===`pl`?g_(e):h_(e)),v_=()=>`Managed by config.yaml / VIRTUAL_MODELS`,y_=()=>`Zarządzane przez config.yaml / VIRTUAL_MODELS`,b_=((e={},t={})=>(t.locale??J())===`pl`?y_(e):v_(e)),x_=()=>`Config`,S_=()=>`Config`,C_=((e={},t={})=>(t.locale??J())===`pl`?S_(e):x_(e)),w_=()=>`On`,T_=()=>`Włączone`,E_=((e={},t={})=>(t.locale??J())===`pl`?T_(e):w_(e)),D_=()=>`Targets`,O_=()=>`Cele`,k_=((e={},t={})=>(t.locale??J())===`pl`?O_(e):D_(e)),A_=()=>`Redirects to`,j_=()=>`Przekierowuje do`,M_=((e={},t={})=>(t.locale??J())===`pl`?j_(e):A_(e)),N_=()=>`remove`,P_=()=>`usuń`,F_=((e={},t={})=>(t.locale??J())===`pl`?P_(e):N_(e)),I_=e=>`Remove redirect for ${e?.model}`,L_=e=>`Usuń przekierowanie dla ${e?.model}`,R_=((e,t={})=>(t.locale??J())===`pl`?L_(e):I_(e)),z_=e=>`Removing redirect for ${e?.model}`,B_=e=>`Usuwanie przekierowania dla ${e?.model}`,V_=((e,t={})=>(t.locale??J())===`pl`?B_(e):z_(e)),H_=()=>`Slowdown`,U_=()=>`Spowolnienie`,W_=((e={},t={})=>(t.locale??J())===`pl`?U_(e):H_(e)),G_=e=>`+${e?.value}× inference time`,K_=e=>`+${e?.value}× czasu inferencji`,q_=((e,t={})=>(t.locale??J())===`pl`?K_(e):G_(e)),J_=()=>`Virtual model editor`,Y_=()=>`Edytor modelu wirtualnego`,X_=((e={},t={})=>(t.locale??J())===`pl`?Y_(e):J_(e)),Z_=()=>`Save`,Q_=()=>`Zapisz`,$_=((e={},t={})=>(t.locale??J())===`pl`?Q_(e):Z_(e)),ev=()=>`Create`,tv=()=>`Utwórz`,nv=((e={},t={})=>(t.locale??J())===`pl`?tv(e):ev(e)),rv=()=>`Virtual model help`,iv=()=>`Pomoc dotycząca modeli wirtualnych`,av=((e={},t={})=>(t.locale??J())===`pl`?iv(e):rv(e)),ov=()=>`Add one target to make this a redirect/alias, or two or more to load balance across them. Leave Targets empty to create only an access policy for the Source selector.`,sv=()=>`Dodaj jeden cel, aby utworzyć przekierowanie/alias, albo co najmniej dwa, aby równoważyć obciążenie. Pozostaw Cele puste, aby utworzyć tylko politykę dostępu dla selektora Źródłowego.`,cv=((e={},t={})=>(t.locale??J())===`pl`?sv(e):ov(e)),lv=()=>`This virtual model is defined in configuration and is read-only here. Edit your configuration to change it.`,uv=()=>`Ten model wirtualny jest zdefiniowany w konfiguracji i tutaj jest tylko do odczytu. Aby go zmienić, edytuj konfigurację.`,dv=((e={},t={})=>(t.locale??J())===`pl`?uv(e):lv(e)),fv=()=>`Source`,pv=()=>`Źródło`,mv=((e={},t={})=>(t.locale??J())===`pl`?pv(e):fv(e)),hv=()=>`Add target (load balancing)`,gv=()=>`Dodaj cel (równoważenie obciążenia)`,_v=((e={},t={})=>(t.locale??J())===`pl`?gv(e):hv(e)),vv=()=>`Load-balancing strategy`,yv=()=>`Strategia równoważenia obciążenia`,bv=((e={},t={})=>(t.locale??J())===`pl`?yv(e):vv(e)),xv=()=>`Session keeping (route a detected client session to the target that served it)`,Sv=()=>`Utrzymywanie sesji (kieruj wykrytą sesję klienta do celu, który ją obsłużył)`,Cv=((e={},t={})=>(t.locale??J())===`pl`?Sv(e):xv(e)),wv=()=>`User Paths`,Tv=()=>`User Paths`,Ev=((e={},t={})=>(t.locale??J())===`pl`?Tv(e):wv(e)),Dv=()=>`User paths help`,Ov=()=>`Pomoc dotycząca ścieżek użytkownika`,kv=((e={},t={})=>(t.locale??J())===`pl`?Ov(e):Dv(e)),Av=()=>`Use / to allow every user path. Use a team path to restrict to that subtree, or an unused path to make the selector unavailable.`,jv=()=>`Użyj /, aby zezwolić na każdy User Path. Użyj User Path zespołu, aby ograniczyć dostęp do jego poddrzewa, albo nieużywanego User Path, aby selektor był niedostępny.`,Mv=((e={},t={})=>(t.locale??J())===`pl`?jv(e):Av(e)),Nv=()=>`Description`,Pv=()=>`Opis`,Fv=((e={},t={})=>(t.locale??J())===`pl`?Pv(e):Nv(e)),Iv=()=>`Optional description`,Lv=()=>`Opcjonalny opis`,Rv=((e={},t={})=>(t.locale??J())===`pl`?Lv(e):Iv(e)),zv=()=>`Slowdown (extra inference time)`,Bv=()=>`Spowolnienie (dodatkowy czas inferencji)`,Vv=((e={},t={})=>(t.locale??J())===`pl`?Bv(e):zv(e)),Hv=()=>`Off`,Uv=()=>`Wyłączone`,Wv=((e={},t={})=>(t.locale??J())===`pl`?Uv(e):Hv(e)),Gv=()=>`Adds a fraction of measured inference time: 0.5 adds 50%. Streaming chunks are buffered and released on the slowed timeline. Use 0 to override inherited slowdown, or leave empty to inherit it; active values are 0.1–10.`,Kv=()=>`Dodaje część zmierzonego czasu inferencji: 0,5 dodaje 50%. Fragmenty streamingu są buforowane i zwalniane według spowolnionej osi czasu. Użyj 0, aby nadpisać odziedziczone spowolnienie, albo pozostaw puste, aby je dziedziczyć; aktywne wartości to 0,1–10.`,qv=((e={},t={})=>(t.locale??J())===`pl`?Kv(e):Gv(e)),Jv=e=>`Default enabled: ${e?.default} · Effective now: ${e?.effective}`,Yv=e=>`Domyślnie włączony: ${e?.default} · Obecnie aktywny: ${e?.effective}`,Xv=((e,t={})=>(t.locale??J())===`pl`?Yv(e):Jv(e)),Zv=()=>`yes`,Qv=()=>`tak`,$v=((e={},t={})=>(t.locale??J())===`pl`?Qv(e):Zv(e)),ey=()=>`no`,ty=()=>`nie`,ny=((e={},t={})=>(t.locale??J())===`pl`?ty(e):ey(e)),ry=()=>`Target model`,iy=()=>`Model docelowy`,ay=((e={},t={})=>(t.locale??J())===`pl`?iy(e):ry(e)),oy=()=>`Target weight`,sy=()=>`Waga celu`,cy=((e={},t={})=>(t.locale??J())===`pl`?sy(e):oy(e)),ly=()=>`weight`,uy=()=>`waga`,dy=((e={},t={})=>(t.locale??J())===`pl`?uy(e):ly(e)),fy=()=>`Remove target`,py=()=>`Usuń cel`,my=((e={},t={})=>(t.locale??J())===`pl`?py(e):fy(e)),hy=()=>`Model pricing editor`,gy=()=>`Edytor cen modelu`,_y=((e={},t={})=>(t.locale??J())===`pl`?gy(e):hy(e)),vy=()=>`Save Pricing`,yy=()=>`Zapisz ceny`,by=((e={},t={})=>(t.locale??J())===`pl`?yy(e):vy(e)),xy=()=>`Pricing override`,Sy=()=>`Nadpisanie cen`,Cy=((e={},t={})=>(t.locale??J())===`pl`?Sy(e):xy(e)),wy=()=>`Pricing`,Ty=()=>`Ceny`,Ey=((e={},t={})=>(t.locale??J())===`pl`?Ty(e):wy(e)),Dy=()=>`Selector`,Oy=()=>`Selektor`,ky=((e={},t={})=>(t.locale??J())===`pl`?Oy(e):Dy(e)),Ay=()=>`Scope`,jy=()=>`Zakres`,My=((e={},t={})=>(t.locale??J())===`pl`?jy(e):Ay(e)),Ny=()=>`Currency is USD. Saved fields override model registry and config.yaml pricing for this selector; unset fields continue to inherit.`,Py=()=>`Walutą jest USD. Zapisane pola nadpisują ceny z rejestru modeli i config.yaml dla tego selektora; nieustawione pola nadal są dziedziczone.`,Fy=((e={},t={})=>(t.locale??J())===`pl`?Py(e):Ny(e)),Iy=()=>`Price Type`,Ly=()=>`Typ ceny`,Ry=((e={},t={})=>(t.locale??J())===`pl`?Ly(e):Iy(e)),zy=()=>`USD Value`,By=()=>`Wartość USD`,Vy=((e={},t={})=>(t.locale??J())===`pl`?By(e):zy(e)),Hy=e=>`Remove ${e?.price}`,Uy=e=>`Usuń ${e?.price}`,Wy=((e,t={})=>(t.locale??J())===`pl`?Uy(e):Hy(e)),Gy=()=>`Add Price`,Ky=()=>`Dodaj cenę`,qy=((e={},t={})=>(t.locale??J())===`pl`?Ky(e):Gy(e)),Jy=()=>`Tiered pricing exists for this override and will be preserved. Tier editing can be added without a database migration.`,Yy=()=>`Dla tego nadpisania istnieją ceny progowe i zostaną zachowane. Edycję progów można dodać bez migracji bazy danych.`,Xy=((e={},t={})=>(t.locale??J())===`pl`?Yy(e):Jy(e)),Zy=()=>`Source`,Qy=()=>`Źródło`,$y=((e={},t={})=>(t.locale??J())===`pl`?Qy(e):Zy(e)),eb=()=>`No pricing fields set.`,tb=()=>`Nie ustawiono pól cenowych.`,nb=((e={},t={})=>(t.locale??J())===`pl`?tb(e):eb(e)),rb=()=>`Remove Override`,ib=()=>`Usuń nadpisanie`,ab=((e={},t={})=>(t.locale??J())===`pl`?ib(e):rb(e)),ob=()=>`Failover editor`,sb=()=>`Edytor Failover`,cb=((e={},t={})=>(t.locale??J())===`pl`?sb(e):ob(e)),lb=()=>`Failover mapping`,ub=()=>`Mapowanie Failover`,db=((e={},t={})=>(t.locale??J())===`pl`?ub(e):lb(e)),fb=()=>`This failover mapping is defined in configuration and is read-only here.`,pb=()=>`To mapowanie Failover jest zdefiniowane w konfiguracji i tutaj jest tylko do odczytu.`,mb=((e={},t={})=>(t.locale??J())===`pl`?pb(e):fb(e)),hb=()=>`Fallback models`,gb=()=>`Modele Fallback`,_b=((e={},t={})=>(t.locale??J())===`pl`?gb(e):hb(e)),vb=()=>`Fallback model`,yb=()=>`Model Fallback`,bb=((e={},t={})=>(t.locale??J())===`pl`?yb(e):vb(e)),xb=()=>`Remove fallback model`,Sb=()=>`Usuń model Fallback`,Cb=((e={},t={})=>(t.locale??J())===`pl`?Sb(e):xb(e)),wb=()=>`Add fallback model`,Tb=()=>`Dodaj model Fallback`,Eb=((e={},t={})=>(t.locale??J())===`pl`?Tb(e):wb(e)),Db=()=>`Generating...`,Ob=()=>`Generowanie...`,kb=((e={},t={})=>(t.locale??J())===`pl`?Ob(e):Db(e)),Ab=()=>`Generate automatically`,jb=()=>`Generuj automatycznie`,Mb=((e={},t={})=>(t.locale??J())===`pl`?jb(e):Ab(e)),Nb=()=>`Remove`,Pb=()=>`Usuń`,Fb=((e={},t={})=>(t.locale??J())===`pl`?Pb(e):Nb(e)),Ib=()=>`Generated failover drafts`,Lb=()=>`Wygenerowane propozycje Failover`,Rb=((e={},t={})=>(t.locale??J())===`pl`?Lb(e):Ib(e)),zb=()=>`Generated drafts`,Bb=()=>`Wygenerowane propozycje`,Vb=((e={},t={})=>(t.locale??J())===`pl`?Bb(e):zb(e)),Hb=()=>`Failover models`,Ub=()=>`Modele Failover`,Wb=((e={},t={})=>(t.locale??J())===`pl`?Ub(e):Hb(e)),Gb=()=>`Close failover drafts`,Kb=()=>`Zamknij propozycje Failover`,qb=((e={},t={})=>(t.locale??J())===`pl`?Kb(e):Gb(e)),Jb=()=>`Generating failover drafts...`,Yb=()=>`Generowanie propozycji Failover...`,Xb=((e={},t={})=>(t.locale??J())===`pl`?Yb(e):Jb(e)),Zb=()=>`Filter failover drafts...`,Qb=()=>`Filtruj propozycje Failover...`,$b=((e={},t={})=>(t.locale??J())===`pl`?Qb(e):Zb(e)),ex=()=>`Filter failover drafts`,tx=()=>`Filtruj propozycje Failover`,nx=((e={},t={})=>(t.locale??J())===`pl`?tx(e):ex(e)),rx=()=>`Select all`,ix=()=>`Zaznacz wszystkie`,ax=((e={},t={})=>(t.locale??J())===`pl`?ix(e):rx(e)),ox=()=>`Deselect all`,sx=()=>`Odznacz wszystkie`,cx=((e={},t={})=>(t.locale??J())===`pl`?sx(e):ox(e)),lx=e=>`Select failover draft for ${e?.model}`,ux=e=>`Zaznacz propozycję Failover dla ${e?.model}`,dx=((e,t={})=>(t.locale??J())===`pl`?ux(e):lx(e)),fx=()=>`No failover suggestions were generated.`,px=()=>`Nie wygenerowano propozycji Failover.`,mx=((e={},t={})=>(t.locale??J())===`pl`?px(e):fx(e)),hx=()=>`No failover drafts match the filter.`,gx=()=>`Żadna propozycja Failover nie pasuje do filtra.`,_x=((e={},t={})=>(t.locale??J())===`pl`?gx(e):hx(e)),vx=()=>`Saving...`,yx=()=>`Zapisywanie...`,bx=((e={},t={})=>(t.locale??J())===`pl`?yx(e):vx(e)),xx=()=>`Save selected`,Sx=()=>`Zapisz zaznaczone`,Cx=((e={},t={})=>(t.locale??J())===`pl`?Sx(e):xx(e)),wx=()=>`API Keys`,Tx=()=>`Klucze API`,Ex=((e={},t={})=>(t.locale??J())===`pl`?Tx(e):wx(e)),Dx=()=>`Create API Key`,Ox=()=>`Utwórz klucz API`,kx=((e={},t={})=>(t.locale??J())===`pl`?Ox(e):Dx(e)),Ax=()=>`API key management is unavailable.`,jx=()=>`Zarządzanie kluczami API jest niedostępne.`,Mx=((e={},t={})=>(t.locale??J())===`pl`?jx(e):Ax(e)),Nx=()=>`Managed API keys authenticate requests to the gateway. Deactivation is permanent — create a new key if access needs to be restored.`,Px=()=>`Zarządzane klucze API uwierzytelniają Requesty do gatewaya. Dezaktywacja jest trwała — aby przywrócić dostęp, utwórz nowy klucz.`,Fx=((e={},t={})=>(t.locale??J())===`pl`?Px(e):Nx(e)),Ix=()=>`Loading API keys`,Lx=()=>`Wczytywanie kluczy API`,Rx=((e={},t={})=>(t.locale??J())===`pl`?Lx(e):Ix(e)),zx=()=>`Filter by name, description, user path, label, or token...`,Bx=()=>`Filtruj według nazwy, opisu, User Path, etykiety lub tokenu...`,Vx=((e={},t={})=>(t.locale??J())===`pl`?Bx(e):zx(e)),Hx=()=>`Filter API keys by name, description, user path, label, or token`,Ux=()=>`Filtruj klucze API według nazwy, opisu, User Path, etykiety lub tokenu`,Wx=((e={},t={})=>(t.locale??J())===`pl`?Ux(e):Hx(e)),Gx=()=>`Show inactive`,Kx=()=>`Pokaż nieaktywne`,qx=((e={},t={})=>(t.locale??J())===`pl`?Kx(e):Gx(e)),Jx=()=>`No API keys match the current filter.`,Yx=()=>`Żaden klucz API nie pasuje do bieżącego filtra.`,Xx=((e={},t={})=>(t.locale??J())===`pl`?Yx(e):Jx(e)),Zx=e=>`${e?.count} inactive keys are hidden.`,Qx=e=>`Ukryte nieaktywne klucze: ${e?.count}.`,$x=((e,t={})=>(t.locale??J())===`pl`?Qx(e):Zx(e)),eS=()=>`No API keys yet. Issue a key to get started.`,tS=()=>`Nie ma jeszcze kluczy API. Utwórz klucz, aby rozpocząć.`,nS=((e={},t={})=>(t.locale??J())===`pl`?tS(e):eS(e)),rS=()=>`API key editor`,iS=()=>`Edytor klucza API`,aS=((e={},t={})=>(t.locale??J())===`pl`?iS(e):rS(e)),oS=()=>`Done, I’ve stored it`,sS=()=>`Gotowe, klucz został zapisany`,cS=((e={},t={})=>(t.locale??J())===`pl`?sS(e):oS(e)),lS=()=>`Creating...`,uS=()=>`Tworzenie...`,dS=((e={},t={})=>(t.locale??J())===`pl`?uS(e):lS(e)),fS=()=>`Store this key securely — it won’t be shown again.`,pS=()=>`Przechowuj ten klucz bezpiecznie — nie zostanie pokazany ponownie.`,mS=((e={},t={})=>(t.locale??J())===`pl`?pS(e):fS(e)),hS=()=>`Unable to copy the key automatically. Copy it manually.`,gS=()=>`Nie udało się automatycznie skopiować klucza. Skopiuj go ręcznie.`,_S=((e={},t={})=>(t.locale??J())===`pl`?gS(e):hS(e)),vS=()=>`Name`,yS=()=>`Nazwa`,bS=((e={},t={})=>(t.locale??J())===`pl`?yS(e):vS(e)),xS=()=>`required`,SS=()=>`wymagane`,CS=((e={},t={})=>(t.locale??J())===`pl`?SS(e):xS(e)),wS=()=>`Expires`,TS=()=>`Wygasa`,ES=((e={},t={})=>(t.locale??J())===`pl`?TS(e):wS(e)),DS=()=>`optional, valid through the selected date`,OS=()=>`opcjonalne, ważne do końca wybranego dnia`,kS=((e={},t={})=>(t.locale??J())===`pl`?OS(e):DS(e)),AS=()=>`User Path (optional)`,jS=()=>`User Path (opcjonalny)`,MS=((e={},t={})=>(t.locale??J())===`pl`?jS(e):AS(e)),NS=()=>`API key user path help`,PS=()=>`Pomoc dotycząca User Path klucza API`,FS=((e={},t={})=>(t.locale??J())===`pl`?PS(e):NS(e)),IS=()=>`When set, this key overrides the configured user path request header for audit logging and downstream request context.`,LS=()=>`Po ustawieniu klucz nadpisuje skonfigurowany nagłówek User Path na potrzeby logów audytowych i kontekstu dalszych Request'ów.`,RS=((e={},t={})=>(t.locale??J())===`pl`?LS(e):IS(e)),zS=()=>`Labels (optional, comma-separated)`,BS=()=>`Etykiety (opcjonalne, rozdzielone przecinkami)`,VS=((e={},t={})=>(t.locale??J())===`pl`?BS(e):zS(e)),HS=()=>`API key labels help`,US=()=>`Pomoc dotycząca etykiet klucza API`,WS=((e={},t={})=>(t.locale??J())===`pl`?US(e):HS(e)),GS=()=>`Every request authenticated with this key gets these labels, in addition to any labels from tagging headers. Labels show up in usage analytics, the request log, and audit logs.`,KS=()=>`Każdy Request uwierzytelniony tym kluczem otrzymuje te etykiety oprócz etykiet z nagłówków tagowania. Etykiety pojawiają się w analityce zużycia, dzienniku Request'ów i logach audytowych.`,qS=((e={},t={})=>(t.locale??J())===`pl`?KS(e):GS(e)),JS=()=>`Dashboard Access`,YS=()=>`Dostęp do dashboardu`,XS=((e={},t={})=>(t.locale??J())===`pl`?YS(e):JS(e)),ZS=()=>`API key dashboard access help`,QS=()=>`Pomoc dotycząca dostępu klucza API do dashboardu`,$S=((e={},t={})=>(t.locale??J())===`pl`?QS(e):ZS(e)),eC=()=>`When off, this key is denied the dashboard and every /admin API endpoint. Model endpoints and GET /v1/usage stay available to the key. The master key always has dashboard access.`,tC=()=>`Po wyłączeniu klucz nie ma dostępu do dashboardu ani endpointów /admin API. Endpointy modeli i GET /v1/usage pozostają dostępne. Klucz główny zawsze ma dostęp do dashboardu.`,nC=((e={},t={})=>(t.locale??J())===`pl`?tC(e):eC(e)),rC=()=>`Allow this key to use the dashboard and /admin API`,iC=()=>`Zezwól temu kluczowi na korzystanie z dashboardu i /admin API`,aC=((e={},t={})=>(t.locale??J())===`pl`?iC(e):rC(e)),oC=()=>`Description (optional)`,sC=()=>`Opis (opcjonalny)`,cC=((e={},t={})=>(t.locale??J())===`pl`?sC(e):oC(e)),lC=()=>`What is this key used for?`,uC=()=>`Do czego służy ten klucz?`,dC=((e={},t={})=>(t.locale??J())===`pl`?uC(e):lC(e)),fC=()=>`Description`,pC=()=>`Opis`,mC=((e={},t={})=>(t.locale??J())===`pl`?pC(e):fC(e)),hC=()=>`User Path`,gC=()=>`User Path`,_C=((e={},t={})=>(t.locale??J())===`pl`?gC(e):hC(e)),vC=()=>`Labels`,yC=()=>`Etykiety`,bC=((e={},t={})=>(t.locale??J())===`pl`?yC(e):vC(e)),xC=()=>`Token`,SC=()=>`Token`,CC=((e={},t={})=>(t.locale??J())===`pl`?SC(e):xC(e)),wC=()=>`Created`,TC=()=>`Utworzono`,EC=((e={},t={})=>(t.locale??J())===`pl`?TC(e):wC(e)),DC=()=>`Actions`,OC=()=>`Akcje`,kC=((e={},t={})=>(t.locale??J())===`pl`?OC(e):DC(e)),AC=()=>`Allowed`,jC=()=>`Dozwolony`,MC=((e={},t={})=>(t.locale??J())===`pl`?jC(e):AC(e)),NC=()=>`Denied`,PC=()=>`Zablokowany`,FC=((e={},t={})=>(t.locale??J())===`pl`?PC(e):NC(e)),IC=()=>`Expired`,LC=()=>`Wygasł`,RC=((e={},t={})=>(t.locale??J())===`pl`?LC(e):IC(e)),zC=()=>`Deactivated`,BC=()=>`Dezaktywowany`,VC=((e={},t={})=>(t.locale??J())===`pl`?BC(e):zC(e)),HC=()=>`Edit Labels`,UC=()=>`Edytuj etykiety`,WC=((e={},t={})=>(t.locale??J())===`pl`?UC(e):HC(e)),GC=()=>`API key labels editor`,KC=()=>`Edytor etykiet klucza API`,qC=((e={},t={})=>(t.locale??J())===`pl`?KC(e):GC(e)),JC=()=>`Save Labels`,YC=()=>`Zapisz etykiety`,XC=((e={},t={})=>(t.locale??J())===`pl`?YC(e):JC(e)),ZC=()=>`Labels (comma-separated)`,QC=()=>`Etykiety (rozdzielone przecinkami)`,$C=((e={},t={})=>(t.locale??J())===`pl`?QC(e):ZC(e)),ew=()=>`Applies to new requests made with this key. Leave empty to remove all labels.`,tw=()=>`Dotyczy nowych Request'ów wykonywanych tym kluczem. Pozostaw puste, aby usunąć wszystkie etykiety.`,nw=((e={},t={})=>(t.locale??J())===`pl`?tw(e):ew(e)),rw=()=>`MCP Servers`,iw=()=>`Serwery MCP`,aw=((e={},t={})=>(t.locale??J())===`pl`?iw(e):rw(e)),ow=()=>`MCP servers help`,sw=()=>`Pomoc dotycząca serwerów MCP`,cw=((e={},t={})=>(t.locale??J())===`pl`?sw(e):ow(e)),lw=()=>`Upstream Model Context Protocol servers whose tools, prompts, and resources the gateway exposes to clients. Dashboard-managed servers connect over HTTP or SSE; Config servers are read-only.`,uw=()=>`Nadrzędne serwery Model Context Protocol, których narzędzia, prompty i zasoby gateway udostępnia klientom. Serwery zarządzane w dashboardzie łączą się przez HTTP lub SSE; serwery Config są tylko do odczytu.`,dw=((e={},t={})=>(t.locale??J())===`pl`?uw(e):lw(e)),fw=()=>`Add MCP Server`,pw=()=>`Dodaj serwer MCP`,mw=((e={},t={})=>(t.locale??J())===`pl`?pw(e):fw(e)),hw=()=>`MCP server management is unavailable.`,gw=()=>`Zarządzanie serwerami MCP jest niedostępne.`,_w=((e={},t={})=>(t.locale??J())===`pl`?gw(e):hw(e)),vw=()=>`Loading MCP servers...`,yw=()=>`Wczytywanie serwerów MCP...`,bw=((e={},t={})=>(t.locale??J())===`pl`?yw(e):vw(e)),xw=()=>`Filter by name, slug, URL, transport, or status...`,Sw=()=>`Filtruj według nazwy, sluga, URL, transportu lub statusu...`,Cw=((e={},t={})=>(t.locale??J())===`pl`?Sw(e):xw(e)),ww=()=>`Filter MCP servers by name, slug, URL, transport, or status`,Tw=()=>`Filtruj serwery MCP według nazwy, sluga, URL, transportu lub statusu`,Ew=((e={},t={})=>(t.locale??J())===`pl`?Tw(e):ww(e)),Dw=()=>`No MCP servers yet. Add one here, or declare servers in config.yaml under mcp.servers.`,Ow=()=>`Nie ma jeszcze serwerów MCP. Dodaj serwer tutaj albo zadeklaruj go w config.yaml w mcp.servers.`,kw=((e={},t={})=>(t.locale??J())===`pl`?Ow(e):Dw(e)),Aw=()=>`No MCP servers match your filter.`,jw=()=>`Żaden serwer MCP nie pasuje do filtra.`,Mw=((e={},t={})=>(t.locale??J())===`pl`?jw(e):Aw(e)),Nw=()=>`MCP server catalog`,Pw=()=>`Katalog serwera MCP`,Fw=((e={},t={})=>(t.locale??J())===`pl`?Pw(e):Nw(e)),Iw=()=>`Server Catalog`,Lw=()=>`Katalog serwera`,Rw=((e={},t={})=>(t.locale??J())===`pl`?Lw(e):Iw(e)),zw=()=>`Close MCP server catalog`,Bw=()=>`Zamknij katalog serwera MCP`,Vw=((e={},t={})=>(t.locale??J())===`pl`?Bw(e):zw(e)),Hw=()=>`Loading catalog...`,Uw=()=>`Wczytywanie katalogu...`,Ww=((e={},t={})=>(t.locale??J())===`pl`?Uw(e):Hw(e)),Gw=e=>`Exposed on the aggregated /mcp endpoint as ${e?.name}`,Kw=e=>`Udostępnione w zbiorczym endpoincie /mcp jako ${e?.name}`,qw=((e,t={})=>(t.locale??J())===`pl`?Kw(e):Gw(e)),Jw=()=>`No tools listed — the server may still be connecting or degraded.`,Yw=()=>`Brak narzędzi — serwer może nadal się łączyć albo działać w trybie zdegradowanym.`,Xw=((e={},t={})=>(t.locale??J())===`pl`?Yw(e):Jw(e)),Zw=()=>`Close`,Qw=()=>`Zamknij`,$w=((e={},t={})=>(t.locale??J())===`pl`?Qw(e):Zw(e)),eT=()=>`Edit MCP Server`,tT=()=>`Edytuj serwer MCP`,nT=((e={},t={})=>(t.locale??J())===`pl`?tT(e):eT(e)),rT=()=>`MCP server editor`,iT=()=>`Edytor serwera MCP`,aT=((e={},t={})=>(t.locale??J())===`pl`?iT(e):rT(e)),oT=()=>`The display name can change. The slug is the stable client-facing identity.`,sT=()=>`Wyświetlaną nazwę można zmienić. Slug jest stałą tożsamością widoczną dla klienta.`,cT=((e={},t={})=>(t.locale??J())===`pl`?sT(e):oT(e)),lT=()=>`Name`,uT=()=>`Nazwa`,dT=((e={},t={})=>(t.locale??J())===`pl`?uT(e):lT(e)),fT=()=>`Human-readable and Unicode-friendly. You can change it later.`,pT=()=>`Czytelna dla człowieka i zgodna z Unicode. Możesz ją później zmienić.`,mT=((e={},t={})=>(t.locale??J())===`pl`?pT(e):fT(e)),hT=()=>`Slug`,gT=()=>`Slug`,_T=((e={},t={})=>(t.locale??J())===`pl`?gT(e):hT(e)),vT=()=>`Derived from the name. You may edit it before saving.`,yT=()=>`Tworzony z nazwy. Możesz go zmienić przed zapisem.`,bT=((e={},t={})=>(t.locale??J())===`pl`?yT(e):vT(e)),xT=()=>`Immutable because it is used in URLs, scope headers, and aggregated tool names.`,ST=()=>`Niezmienny, ponieważ jest używany w URL-ach, nagłówkach zakresu i zbiorczych nazwach narzędzi.`,CT=((e={},t={})=>(t.locale??J())===`pl`?ST(e):xT(e)),wT=()=>`Transport`,TT=()=>`Transport`,ET=((e={},t={})=>(t.locale??J())===`pl`?TT(e):wT(e)),DT=()=>`Connect to a remote MCP server over Streamable HTTP or legacy SSE.`,OT=()=>`Połącz ze zdalnym serwerem MCP przez Streamable HTTP lub starszy protokół SSE.`,kT=((e={},t={})=>(t.locale??J())===`pl`?OT(e):DT(e)),AT=()=>`Headers`,jT=()=>`Nagłówki`,MT=((e={},t={})=>(t.locale??J())===`pl`?jT(e):AT(e)),NT=()=>`Header name`,PT=()=>`Nazwa nagłówka`,FT=((e={},t={})=>(t.locale??J())===`pl`?PT(e):NT(e)),IT=()=>`Header value`,LT=()=>`Wartość nagłówka`,RT=((e={},t={})=>(t.locale??J())===`pl`?LT(e):IT(e)),zT=()=>`Remove header`,BT=()=>`Usuń nagłówek`,VT=((e={},t={})=>(t.locale??J())===`pl`?BT(e):zT(e)),HT=()=>`Add header`,UT=()=>`Dodaj nagłówek`,WT=((e={},t={})=>(t.locale??J())===`pl`?UT(e):HT(e)),GT=()=>`Sent only to the configured server origin. Leave masked values unchanged to keep the stored value.`,KT=()=>`Wysyłane tylko do skonfigurowanego originu serwera. Pozostaw zamaskowane wartości bez zmian, aby zachować zapisane dane.`,qT=((e={},t={})=>(t.locale??J())===`pl`?KT(e):GT(e)),JT=()=>`Advanced settings`,YT=()=>`Ustawienia zaawansowane`,XT=((e={},t={})=>(t.locale??J())===`pl`?YT(e):JT(e)),ZT=()=>`Description, access rules, and timeout`,QT=()=>`Opis, reguły dostępu i timeout`,$T=((e={},t={})=>(t.locale??J())===`pl`?QT(e):ZT(e)),eE=()=>`Description`,tE=()=>`Opis`,nE=((e={},t={})=>(t.locale??J())===`pl`?tE(e):eE(e)),rE=()=>`Allowed tools`,iE=()=>`Dozwolone narzędzia`,aE=((e={},t={})=>(t.locale??J())===`pl`?iE(e):rE(e)),oE=()=>`Disallowed tools`,sE=()=>`Zabronione narzędzia`,cE=((e={},t={})=>(t.locale??J())===`pl`?sE(e):oE(e)),lE=()=>`User paths (empty means all)`,uE=()=>`User Paths (puste oznacza wszystkie)`,dE=((e={},t={})=>(t.locale??J())===`pl`?uE(e):lE(e)),fE=()=>`Tool timeout (seconds)`,pE=()=>`Timeout narzędzia (sekundy)`,mE=((e={},t={})=>(t.locale??J())===`pl`?pE(e):fE(e)),hE=()=>`Default timeout when empty`,gE=()=>`Domyślny timeout, gdy pole jest puste`,_E=((e={},t={})=>(t.locale??J())===`pl`?gE(e):hE(e)),vE=()=>`Workflows`,yE=()=>`Workflows`,bE=((e={},t={})=>(t.locale??J())===`pl`?yE(e):vE(e)),xE=()=>`Active workflows are matched path-first: deepest user path wins first, then provider name and model specificity, then broader matches, then global.`,SE=()=>`Aktywne Workflows są dopasowywane najpierw według User Path: najgłębszy User Path ma pierwszeństwo, następnie nazwa dostawcy i szczegółowość modelu, szersze dopasowania i zakres globalny.`,CE=((e={},t={})=>(t.locale??J())===`pl`?SE(e):xE(e)),wE=()=>`New Workflow`,TE=()=>`Nowy Workflow`,EE=((e={},t={})=>(t.locale??J())===`pl`?TE(e):wE(e)),DE=()=>`Workflows feature is unavailable.`,OE=()=>`Funkcja Workflows jest niedostępna.`,kE=((e={},t={})=>(t.locale??J())===`pl`?OE(e):DE(e)),AE=()=>`Filter by scope, name, hash, or guardrail...`,jE=()=>`Filtruj według zakresu, nazwy, hasha lub Guardrail...`,ME=((e={},t={})=>(t.locale??J())===`pl`?jE(e):AE(e)),NE=()=>`Filter workflows`,PE=()=>`Filtruj Workflows`,FE=((e={},t={})=>(t.locale??J())===`pl`?PE(e):NE(e)),IE=()=>`No active workflows found.`,LE=()=>`Nie znaleziono aktywnych Workflows.`,RE=((e={},t={})=>(t.locale??J())===`pl`?LE(e):IE(e)),zE=()=>`No workflows match your filter.`,BE=()=>`Żaden Workflow nie pasuje do filtra.`,VE=((e={},t={})=>(t.locale??J())===`pl`?BE(e):zE(e)),HE=()=>`Async`,UE=()=>`Asynchronicznie`,WE=((e={},t={})=>(t.locale??J())===`pl`?UE(e):HE(e)),GE=()=>`Guardrails`,KE=()=>`Guardrails`,qE=((e={},t={})=>(t.locale??J())===`pl`?KE(e):GE(e)),JE=()=>`No guardrails configured for this workflow.`,YE=()=>`W tym Workflow nie skonfigurowano Guardrails.`,XE=((e={},t={})=>(t.locale??J())===`pl`?YE(e):JE(e)),ZE=()=>`Providers`,QE=()=>`Dostawcy`,$E=((e={},t={})=>(t.locale??J())===`pl`?QE(e):ZE(e)),eD=()=>`Add Provider`,tD=()=>`Dodaj dostawcę`,nD=((e={},t={})=>(t.locale??J())===`pl`?tD(e):eD(e)),rD=()=>`Provider credential management is unavailable.`,iD=()=>`Zarządzanie danymi dostępowymi dostawców jest niedostępne.`,aD=((e={},t={})=>(t.locale??J())===`pl`?iD(e):rD(e)),oD=()=>`Filter by name, type, or base URL...`,sD=()=>`Filtruj według nazwy, typu lub bazowego URL...`,cD=((e={},t={})=>(t.locale??J())===`pl`?sD(e):oD(e)),lD=()=>`Filter providers by name, type, or base URL`,uD=()=>`Filtruj dostawców według nazwy, typu lub bazowego URL`,dD=((e={},t={})=>(t.locale??J())===`pl`?uD(e):lD(e)),fD=()=>`No dashboard-managed providers yet. Add one here, or declare providers in config.yaml or environment variables.`,pD=()=>`Nie ma jeszcze dostawców zarządzanych w dashboardzie. Dodaj dostawcę tutaj albo zadeklaruj go w config.yaml lub zmiennych środowiskowych.`,mD=((e={},t={})=>(t.locale??J())===`pl`?pD(e):fD(e)),hD=()=>`No providers match your filter.`,gD=()=>`Żaden dostawca nie pasuje do filtra.`,_D=((e={},t={})=>(t.locale??J())===`pl`?gD(e):hD(e)),vD=()=>`Name`,yD=()=>`Nazwa`,bD=((e={},t={})=>(t.locale??J())===`pl`?yD(e):vD(e)),xD=()=>`Type`,SD=()=>`Typ`,CD=((e={},t={})=>(t.locale??J())===`pl`?SD(e):xD(e)),wD=()=>`Auth`,TD=()=>`Uwierzytelnianie`,ED=((e={},t={})=>(t.locale??J())===`pl`?TD(e):wD(e)),DD=()=>`Models`,OD=()=>`Modele`,kD=((e={},t={})=>(t.locale??J())===`pl`?OD(e):DD(e)),AD=()=>`Enabled`,jD=()=>`Włączony`,MD=((e={},t={})=>(t.locale??J())===`pl`?jD(e):AD(e)),ND=()=>`Updated`,PD=()=>`Zaktualizowano`,FD=((e={},t={})=>(t.locale??J())===`pl`?PD(e):ND(e)),ID=()=>`Actions`,LD=()=>`Akcje`,RD=((e={},t={})=>(t.locale??J())===`pl`?LD(e):ID(e)),zD=()=>`Declared in configuration (config.yaml or env vars); read-only in the dashboard`,BD=()=>`Zadeklarowano w konfiguracji (config.yaml lub zmienne środowiskowe); tylko do odczytu w dashboardzie`,VD=((e={},t={})=>(t.locale??J())===`pl`?BD(e):zD(e)),HD=()=>`Rate Limits`,UD=()=>`Rate Limits`,WD=((e={},t={})=>(t.locale??J())===`pl`?UD(e):HD(e)),GD=()=>`Create Rate Limit`,KD=()=>`Utwórz Rate Limit`,qD=((e={},t={})=>(t.locale??J())===`pl`?KD(e):GD(e)),JD=()=>`Rate limit management is unavailable.`,YD=()=>`Zarządzanie Rate Limitami jest niedostępne.`,XD=((e={},t={})=>(t.locale??J())===`pl`?YD(e):JD(e)),ZD=()=>`Filter by subject, scope, or period...`,QD=()=>`Filtruj według podmiotu, zakresu lub okresu...`,$D=((e={},t={})=>(t.locale??J())===`pl`?QD(e):ZD(e)),eO=()=>`Filter rate limits by subject, scope, or period`,tO=()=>`Filtruj Rate Limity według podmiotu, zakresu lub okresu`,nO=((e={},t={})=>(t.locale??J())===`pl`?tO(e):eO(e)),rO=()=>`No rate limits configured yet.`,iO=()=>`Nie skonfigurowano jeszcze Rate Limitów.`,aO=((e={},t={})=>(t.locale??J())===`pl`?iO(e):rO(e)),oO=()=>`No rate limits match your filter.`,sO=()=>`Żaden Rate Limit nie pasuje do filtra.`,cO=((e={},t={})=>(t.locale??J())===`pl`?sO(e):oO(e)),lO=()=>`Effective rate limits`,uO=()=>`Efektywne Rate Limity`,dO=((e={},t={})=>(t.locale??J())===`pl`?uO(e):lO(e)),fO=()=>`Add`,pO=()=>`Dodaj`,mO=((e={},t={})=>(t.locale??J())===`pl`?pO(e):fO(e)),hO=()=>`No rules.`,gO=()=>`Brak reguł.`,_O=((e={},t={})=>(t.locale??J())===`pl`?gO(e):hO(e)),vO=()=>`Edit`,yO=()=>`Edytuj`,bO=((e={},t={})=>(t.locale??J())===`pl`?yO(e):vO(e)),xO=()=>`In-flight`,SO=()=>`W toku`,CO=((e={},t={})=>(t.locale??J())===`pl`?SO(e):xO(e)),wO=()=>`Requests`,TO=()=>`Requesty`,EO=((e={},t={})=>(t.locale??J())===`pl`?TO(e):wO(e)),DO=()=>`Tokens`,OO=()=>`Tokeny`,kO=((e={},t={})=>(t.locale??J())===`pl`?OO(e):DO(e)),AO=()=>`Guardrails`,jO=()=>`Guardrails`,MO=((e={},t={})=>(t.locale??J())===`pl`?jO(e):AO(e)),NO=()=>`Reusable Policy Objects`,PO=()=>`Obiekty polityk wielokrotnego użytku`,FO=((e={},t={})=>(t.locale??J())===`pl`?PO(e):NO(e)),IO=()=>`Guardrail Library`,LO=()=>`Biblioteka Guardrails`,RO=((e={},t={})=>(t.locale??J())===`pl`?LO(e):IO(e)),zO=()=>`Instances`,BO=()=>`Instancje`,VO=((e={},t={})=>(t.locale??J())===`pl`?BO(e):zO(e)),HO=()=>`Types`,UO=()=>`Typy`,WO=((e={},t={})=>(t.locale??J())===`pl`?UO(e):HO(e)),GO=()=>`GUARDRAILS_ENABLED is disabled. You can still manage Guardrails, but they will not run.`,KO=()=>`GUARDRAILS_ENABLED jest wyłączone. Nadal możesz zarządzać Guardrails, ale nie będą uruchamiane.`,qO=((e={},t={})=>(t.locale??J())===`pl`?KO(e):GO(e)),JO=()=>`Guardrails feature is unavailable.`,YO=()=>`Funkcja Guardrails jest niedostępna.`,XO=((e={},t={})=>(t.locale??J())===`pl`?YO(e):JO(e)),ZO=()=>`Create Guardrail`,QO=()=>`Utwórz Guardrail`,$O=((e={},t={})=>(t.locale??J())===`pl`?QO(e):ZO(e)),ek=()=>`Filter by name, type, user path, summary...`,tk=()=>`Filtruj według nazwy, typu, User Path lub podsumowania...`,nk=((e={},t={})=>(t.locale??J())===`pl`?tk(e):ek(e)),rk=()=>`Filter Guardrails`,ik=()=>`Filtruj Guardrails`,ak=((e={},t={})=>(t.locale??J())===`pl`?ik(e):rk(e)),ok=()=>`Name`,sk=()=>`Nazwa`,ck=((e={},t={})=>(t.locale??J())===`pl`?sk(e):ok(e)),lk=()=>`Type`,uk=()=>`Typ`,dk=((e={},t={})=>(t.locale??J())===`pl`?uk(e):lk(e)),fk=()=>`User Path`,pk=()=>`User Path`,mk=((e={},t={})=>(t.locale??J())===`pl`?pk(e):fk(e)),hk=()=>`Summary`,gk=()=>`Podsumowanie`,_k=((e={},t={})=>(t.locale??J())===`pl`?gk(e):hk(e)),vk=()=>`Actions`,yk=()=>`Akcje`,bk=((e={},t={})=>(t.locale??J())===`pl`?yk(e):vk(e)),xk=()=>`No Guardrails defined yet.`,Sk=()=>`Nie zdefiniowano jeszcze Guardrails.`,Ck=((e={},t={})=>(t.locale??J())===`pl`?Sk(e):xk(e)),wk=()=>`Guardrails help`,Tk=()=>`Pomoc dotycząca Guardrails`,Ek=((e={},t={})=>(t.locale??J())===`pl`?Tk(e):wk(e)),Dk=()=>`Reusable policy objects stored in the database and kept hot in memory for Workflow execution.`,Ok=()=>`Obiekty polityk wielokrotnego użytku zapisane w bazie danych i utrzymywane w pamięci na potrzeby wykonywania Workflows.`,kk=((e={},t={})=>(t.locale??J())===`pl`?Ok(e):Dk(e)),Ak=()=>`Store Guardrails in the database, keep them hot in memory, and attach them to Workflows by reference.`,jk=()=>`Przechowuj Guardrails w bazie danych, utrzymuj je w pamięci i dołączaj do Workflows przez referencję.`,Mk=((e={},t={})=>(t.locale??J())===`pl`?jk(e):Ak(e)),Nk=()=>`Each instance has a reusable name, a type, an optional user path for visibility scoping, and a JSON-backed config payload.`,Pk=()=>`Każda instancja ma nazwę wielokrotnego użytku, typ, opcjonalny User Path do ograniczania widoczności i konfigurację JSON.`,Fk=((e={},t={})=>(t.locale??J())===`pl`?Pk(e):Nk(e)),Ik=()=>`Loading Guardrails...`,Lk=()=>`Wczytywanie Guardrails...`,Rk=((e={},t={})=>(t.locale??J())===`pl`?Lk(e):Ik(e)),zk=()=>`No summary yet.`,Bk=()=>`Brak podsumowania.`,Vk=((e={},t={})=>(t.locale??J())===`pl`?Bk(e):zk(e)),Hk=()=>`Workflow editor`,Uk=()=>`Edytor Workflow`,Wk=((e={},t={})=>(t.locale??J())===`pl`?Uk(e):Hk(e)),Gk=()=>`Workflow help`,Kk=()=>`Pomoc dotycząca Workflow`,qk=((e={},t={})=>(t.locale??J())===`pl`?Kk(e):Gk(e)),Jk=()=>`Create an immutable version. Submitting activates it for the selected scope.`,Yk=()=>`Utwórz niezmienną wersję. Zapisanie aktywuje ją dla wybranego zakresu.`,Xk=((e={},t={})=>(t.locale??J())===`pl`?Yk(e):Jk(e)),Zk=()=>`Edit Workflow`,Qk=()=>`Edytuj Workflow`,$k=((e={},t={})=>(t.locale??J())===`pl`?Qk(e):Zk(e)),eA=()=>`Create Workflow`,tA=()=>`Utwórz Workflow`,nA=((e={},t={})=>(t.locale??J())===`pl`?tA(e):eA(e)),rA=()=>`Provider Name`,iA=()=>`Nazwa dostawcy`,aA=((e={},t={})=>(t.locale??J())===`pl`?iA(e):rA(e)),oA=()=>`All providers and models`,sA=()=>`Wszyscy dostawcy i modele`,cA=((e={},t={})=>(t.locale??J())===`pl`?sA(e):oA(e)),lA=()=>`Model`,uA=()=>`Model`,dA=((e={},t={})=>(t.locale??J())===`pl`?uA(e):lA(e)),fA=()=>`All models for provider`,pA=()=>`Wszystkie modele dostawcy`,mA=((e={},t={})=>(t.locale??J())===`pl`?pA(e):fA(e)),hA=()=>`Name`,gA=()=>`Nazwa`,_A=((e={},t={})=>(t.locale??J())===`pl`?gA(e):hA(e)),vA=()=>`Optional. Defaults to scope label.`,yA=()=>`Opcjonalna. Domyślnie etykieta zakresu.`,bA=((e={},t={})=>(t.locale??J())===`pl`?yA(e):vA(e)),xA=()=>`User Path`,SA=()=>`User Path`,CA=((e={},t={})=>(t.locale??J())===`pl`?SA(e):xA(e)),wA=()=>`Leave provider name empty to target all providers and models. Select a provider without a model to target all its models.`,TA=()=>`Pozostaw nazwę dostawcy pustą, aby objąć wszystkich dostawców i modele. Wybierz dostawcę bez modelu, aby objąć wszystkie jego modele.`,EA=((e={},t={})=>(t.locale??J())===`pl`?TA(e):wA(e)),DA=()=>`Add a path to scope the Workflow to that subtree. Leading slashes are optional and normalized. The deepest user path matches first.`,OA=()=>`Dodaj ścieżkę, aby ograniczyć Workflow do jej poddrzewa. Początkowe ukośniki są opcjonalne i normalizowane. Najgłębsza ścieżka ma pierwszeństwo.`,kA=((e={},t={})=>(t.locale??J())===`pl`?OA(e):DA(e)),AA=()=>`If the name is empty, the Workflow displays as its matched scope or All models.`,jA=()=>`Jeśli nazwa jest pusta, Workflow wyświetla dopasowany zakres lub Wszystkie modele.`,MA=((e={},t={})=>(t.locale??J())===`pl`?jA(e):AA(e)),NA=()=>`Description`,PA=()=>`Opis`,FA=((e={},t={})=>(t.locale??J())===`pl`?PA(e):NA(e)),IA=()=>`Optional operator note for why this version exists.`,LA=()=>`Opcjonalna notatka operatora opisująca powód utworzenia wersji.`,RA=((e={},t={})=>(t.locale??J())===`pl`?LA(e):IA(e)),zA=()=>`Cache`,BA=()=>`Cache`,VA=((e={},t={})=>(t.locale??J())===`pl`?BA(e):zA(e)),HA=()=>`Audit Logs`,UA=()=>`Logi audytowe`,WA=((e={},t={})=>(t.locale??J())===`pl`?UA(e):HA(e)),GA=()=>`Usage`,KA=()=>`Zużycie`,qA=((e={},t={})=>(t.locale??J())===`pl`?KA(e):GA(e)),JA=()=>`Budget`,YA=()=>`Budżet`,XA=((e={},t={})=>(t.locale??J())===`pl`?YA(e):JA(e)),ZA=()=>`Failover`,QA=()=>`Failover`,$A=((e={},t={})=>(t.locale??J())===`pl`?QA(e):ZA(e)),ej=()=>`Preview`,tj=()=>`Podgląd`,nj=((e={},t={})=>(t.locale??J())===`pl`?tj(e):ej(e)),rj=()=>`Live`,ij=()=>`Live`,aj=((e={},t={})=>(t.locale??J())===`pl`?ij(e):rj(e)),oj=()=>`Guardrail Steps`,sj=()=>`Kroki Guardrails`,cj=((e={},t={})=>(t.locale??J())===`pl`?sj(e):oj(e)),lj=()=>`Guardrails in the same numeric step run together. Later steps wait for earlier ones to finish.`,uj=()=>`Guardrails w tym samym kroku numerycznym działają razem. Późniejsze kroki czekają na zakończenie wcześniejszych.`,dj=((e={},t={})=>(t.locale??J())===`pl`?uj(e):lj(e)),fj=()=>`Add Step`,pj=()=>`Dodaj krok`,mj=((e={},t={})=>(t.locale??J())===`pl`?pj(e):fj(e)),hj=()=>`No named Guardrails are currently registered. You can still draft a Workflow, but creation may be rejected.`,gj=()=>`Nie zarejestrowano nazwanych Guardrails. Nadal możesz przygotować Workflow, ale jego utworzenie może zostać odrzucone.`,_j=((e={},t={})=>(t.locale??J())===`pl`?gj(e):hj(e)),vj=()=>`Open Guardrails`,yj=()=>`Otwórz Guardrails`,bj=((e={},t={})=>(t.locale??J())===`pl`?yj(e):vj(e)),xj=()=>`Guardrail reference`,Sj=()=>`Referencja Guardrail`,Cj=((e={},t={})=>(t.locale??J())===`pl`?Sj(e):xj(e)),wj=()=>`Step`,Tj=()=>`Krok`,Ej=((e={},t={})=>(t.locale??J())===`pl`?Tj(e):wj(e)),Dj=()=>`Remove`,Oj=()=>`Usuń`,kj=((e={},t={})=>(t.locale??J())===`pl`?Oj(e):Dj(e)),Aj=()=>`No Guardrail steps configured yet.`,jj=()=>`Nie skonfigurowano jeszcze kroków Guardrails.`,Mj=((e={},t={})=>(t.locale??J())===`pl`?jj(e):Aj(e)),Nj=()=>`Edit Rate Limit`,Pj=()=>`Edytuj Rate Limit`,Fj=((e={},t={})=>(t.locale??J())===`pl`?Pj(e):Nj(e)),Ij=()=>`Rate limit editor`,Lj=()=>`Edytor Rate Limitu`,Rj=((e={},t={})=>(t.locale??J())===`pl`?Lj(e):Ij(e)),zj=()=>`Save Rate Limit`,Bj=()=>`Zapisz Rate Limit`,Vj=((e={},t={})=>(t.locale??J())===`pl`?Bj(e):zj(e)),Hj=()=>`Scope`,Uj=()=>`Zakres`,Wj=((e={},t={})=>(t.locale??J())===`pl`?Uj(e):Hj(e)),Gj=()=>`Period`,Kj=()=>`Okres`,qj=((e={},t={})=>(t.locale??J())===`pl`?Kj(e):Gj(e)),Jj=()=>`Period Seconds`,Yj=()=>`Okres w sekundach`,Xj=((e={},t={})=>(t.locale??J())===`pl`?Yj(e):Jj(e)),Zj=()=>`Max In-Flight Requests`,Qj=()=>`Maksymalna liczba Request'ów w toku`,$j=((e={},t={})=>(t.locale??J())===`pl`?Qj(e):Zj(e)),eM=()=>`Max Requests`,tM=()=>`Maksymalna liczba Request'ów`,nM=((e={},t={})=>(t.locale??J())===`pl`?tM(e):eM(e)),rM=()=>`Max Tokens`,iM=()=>`Maksymalna liczba tokenów`,aM=((e={},t={})=>(t.locale??J())===`pl`?iM(e):rM(e)),oM=()=>`A user path rule limits the whole subtree; provider and model rules cap all traffic routed there. Leave a field empty to skip that limit. Token limits require usage tracking.`,sM=()=>`Reguła User Path ogranicza całe poddrzewo; reguły dostawcy i modelu ograniczają cały kierowany tam ruch. Pozostaw pole puste, aby pominąć limit. Limity tokenów wymagają śledzenia zużycia.`,cM=((e={},t={})=>(t.locale??J())===`pl`?sM(e):oM(e)),lM=()=>`Scope, subject, and period identify the rule. Changing any of them moves the rule and restarts its live counters.`,uM=()=>`Zakres, podmiot i okres identyfikują regułę. Ich zmiana przenosi regułę i restartuje liczniki Live.`,dM=((e={},t={})=>(t.locale??J())===`pl`?uM(e):lM(e)),fM=()=>`Edit Guardrail`,pM=()=>`Edytuj Guardrail`,mM=((e={},t={})=>(t.locale??J())===`pl`?pM(e):fM(e)),hM=()=>`Guardrail editor`,gM=()=>`Edytor Guardrail`,_M=((e={},t={})=>(t.locale??J())===`pl`?gM(e):hM(e)),vM=()=>`Save Guardrail`,yM=()=>`Zapisz Guardrail`,bM=((e={},t={})=>(t.locale??J())===`pl`?yM(e):vM(e)),xM=()=>`Workflows reference these names directly, so renames are intentionally avoided after creation.`,SM=()=>`Workflows odwołują się bezpośrednio do tych nazw, dlatego po utworzeniu celowo nie można ich zmieniać.`,CM=((e={},t={})=>(t.locale??J())===`pl`?SM(e):xM(e)),wM=()=>`Description`,TM=()=>`Opis`,EM=((e={},t={})=>(t.locale??J())===`pl`?TM(e):wM(e)),DM=()=>`What this Guardrail is meant to do`,OM=()=>`Przeznaczenie tego Guardrail`,kM=((e={},t={})=>(t.locale??J())===`pl`?OM(e):DM(e)),AM=()=>`Guardrail user path help`,jM=()=>`Pomoc dotycząca User Path Guardrail`,MM=((e={},t={})=>(t.locale??J())===`pl`?jM(e):AM(e)),NM=()=>`Only used for auxiliary rewrite Guardrails; ignored for other Guardrail types.`,PM=()=>`Używane tylko przez pomocnicze Guardrails przepisujące; ignorowane przez pozostałe typy.`,FM=((e={},t={})=>(t.locale??J())===`pl`?PM(e):NM(e)),IM=()=>`Monthly`,LM=()=>`Miesięcznie`,RM=((e={},t={})=>(t.locale??J())===`pl`?LM(e):IM(e)),zM=()=>`Weekly`,BM=()=>`Tygodniowo`,VM=((e={},t={})=>(t.locale??J())===`pl`?BM(e):zM(e)),HM=()=>`Daily`,UM=()=>`Dziennie`,WM=((e={},t={})=>(t.locale??J())===`pl`?UM(e):HM(e)),GM=()=>`Day of month help`,KM=()=>`Pomoc dotycząca dnia miesiąca`,qM=((e={},t={})=>(t.locale??J())===`pl`?KM(e):GM(e)),JM=()=>`Day of Month`,YM=()=>`Dzień miesiąca`,XM=((e={},t={})=>(t.locale??J())===`pl`?YM(e):JM(e)),ZM=()=>`If the selected day does not exist in a month, the reset runs on the last day of that month.`,QM=()=>`Jeśli wybrany dzień nie występuje w danym miesiącu, reset nastąpi w ostatnim dniu tego miesiąca.`,$M=((e={},t={})=>(t.locale??J())===`pl`?QM(e):ZM(e)),eN=()=>`Day of Week`,tN=()=>`Dzień tygodnia`,nN=((e={},t={})=>(t.locale??J())===`pl`?tN(e):eN(e)),rN=()=>`Hour`,iN=()=>`Godzina`,aN=((e={},t={})=>(t.locale??J())===`pl`?iN(e):rN(e)),oN=()=>`Minute`,sN=()=>`Minuta`,cN=((e={},t={})=>(t.locale??J())===`pl`?sN(e):oN(e)),lN=()=>`Save Budget Settings`,uN=()=>`Zapisz ustawienia budżetów`,dN=((e={},t={})=>(t.locale??J())===`pl`?uN(e):lN(e)),fN=()=>`Loading budget settings`,pN=()=>`Wczytywanie ustawień budżetów`,mN=((e={},t={})=>(t.locale??J())===`pl`?pN(e):fN(e)),hN=()=>`Unable to load budget settings.`,gN=()=>`Nie można wczytać ustawień budżetów.`,_N=((e={},t={})=>(t.locale??J())===`pl`?gN(e):hN(e)),vN=()=>`Unable to save budget settings.`,yN=()=>`Nie można zapisać ustawień budżetów.`,bN=((e={},t={})=>(t.locale??J())===`pl`?yN(e):vN(e)),xN=()=>`Budget settings saved.`,SN=()=>`Ustawienia budżetów zapisane.`,CN=((e={},t={})=>(t.locale??J())===`pl`?SN(e):xN(e)),wN=()=>`Sunday`,TN=()=>`Niedziela`,EN=((e={},t={})=>(t.locale??J())===`pl`?TN(e):wN(e)),DN=()=>`Monday`,ON=()=>`Poniedziałek`,kN=((e={},t={})=>(t.locale??J())===`pl`?ON(e):DN(e)),AN=()=>`Tuesday`,jN=()=>`Wtorek`,MN=((e={},t={})=>(t.locale??J())===`pl`?jN(e):AN(e)),NN=()=>`Wednesday`,PN=()=>`Środa`,FN=((e={},t={})=>(t.locale??J())===`pl`?PN(e):NN(e)),IN=()=>`Thursday`,LN=()=>`Czwartek`,RN=((e={},t={})=>(t.locale??J())===`pl`?LN(e):IN(e)),zN=()=>`Friday`,BN=()=>`Piątek`,VN=((e={},t={})=>(t.locale??J())===`pl`?BN(e):zN(e)),HN=()=>`Saturday`,UN=()=>`Sobota`,WN=((e={},t={})=>(t.locale??J())===`pl`?UN(e):HN(e)),GN=()=>`Tagging based on headers`,KN=()=>`Tagowanie na podstawie nagłówków`,qN=((e={},t={})=>(t.locale??J())===`pl`?KN(e):GN(e)),JN=()=>`Tagging help`,YN=()=>`Pomoc dotycząca tagowania`,XN=((e={},t={})=>(t.locale??J())===`pl`?YN(e):JN(e)),ZN=()=>`Each request is labelled from the listed headers; labels appear in usage tracking and audit logs. A header value can contain multiple labels separated by the delimiter (comma by default). The prefix is trimmed only from each label—the header itself is forwarded unchanged unless Do not pass is selected. Rows marked CONFIG come from config.yaml or TAGGING_HEADER_* environment variables and are read-only here.`,QN=()=>`Każdy Request otrzymuje etykiety z podanych nagłówków; etykiety trafiają do śledzenia zużycia i logów audytowych. Wartość nagłówka może zawierać kilka etykiet rozdzielonych separatorem (domyślnie przecinkiem). Prefiks jest usuwany tylko z każdej etykiety—sam nagłówek jest przekazywany bez zmian, chyba że zaznaczono Nie przekazuj. Wiersze oznaczone CONFIG pochodzą z config.yaml lub zmiennych środowiskowych TAGGING_HEADER_* i są tutaj tylko do odczytu.`,$N=((e={},t={})=>(t.locale??J())===`pl`?QN(e):ZN(e)),eP=()=>`Header`,tP=()=>`Nagłówek`,nP=((e={},t={})=>(t.locale??J())===`pl`?tP(e):eP(e)),rP=()=>`Prefix to trim (optional)`,iP=()=>`Prefiks do usunięcia (opcjonalnie)`,aP=((e={},t={})=>(t.locale??J())===`pl`?iP(e):rP(e)),oP=()=>`Delimiter`,sP=()=>`Separator`,cP=((e={},t={})=>(t.locale??J())===`pl`?sP(e):oP(e)),lP=()=>`Do not pass upstream`,uP=()=>`Nie przekazuj dalej`,dP=((e={},t={})=>(t.locale??J())===`pl`?uP(e):lP(e)),fP=()=>`Declared in config.yaml or TAGGING_HEADER_* environment variables; read-only here.`,pP=()=>`Zdefiniowane w config.yaml lub zmiennych środowiskowych TAGGING_HEADER_*; tutaj tylko do odczytu.`,mP=((e={},t={})=>(t.locale??J())===`pl`?pP(e):fP(e)),hP=()=>`Remove`,gP=()=>`Usuń`,_P=((e={},t={})=>(t.locale??J())===`pl`?gP(e):hP(e)),vP=e=>`Remove tagging header ${e?.header}`,yP=e=>`Usuń nagłówek tagowania ${e?.header}`,bP=((e,t={})=>(t.locale??J())===`pl`?yP(e):vP(e)),xP=()=>`Loading tagging settings`,SP=()=>`Wczytywanie ustawień tagowania`,CP=((e={},t={})=>(t.locale??J())===`pl`?SP(e):xP(e)),wP=()=>`No tagging headers configured. Requests are not labelled.`,TP=()=>`Nie skonfigurowano nagłówków tagowania. Requesty nie otrzymują etykiet.`,EP=((e={},t={})=>(t.locale??J())===`pl`?TP(e):wP(e)),DP=()=>`Add Header`,OP=()=>`Dodaj nagłówek`,kP=((e={},t={})=>(t.locale??J())===`pl`?OP(e):DP(e)),AP=()=>`Save Tagging Settings`,jP=()=>`Zapisz ustawienia tagowania`,MP=((e={},t={})=>(t.locale??J())===`pl`?jP(e):AP(e)),NP=()=>`Unable to load tagging settings.`,PP=()=>`Nie można wczytać ustawień tagowania.`,FP=((e={},t={})=>(t.locale??J())===`pl`?PP(e):NP(e)),IP=()=>`Unable to save tagging settings.`,LP=()=>`Nie można zapisać ustawień tagowania.`,RP=((e={},t={})=>(t.locale??J())===`pl`?LP(e):IP(e)),zP=()=>`Tagging settings saved.`,BP=()=>`Ustawienia tagowania zapisane.`,VP=((e={},t={})=>(t.locale??J())===`pl`?BP(e):zP(e)),HP=()=>`Runtime Refresh`,UP=()=>`Odświeżenie runtime`,WP=((e={},t={})=>(t.locale??J())===`pl`?UP(e):HP(e)),GP=()=>`Runtime refresh help`,KP=()=>`Pomoc dotycząca odświeżenia runtime`,qP=((e={},t={})=>(t.locale??J())===`pl`?KP(e):GP(e)),JP=()=>`Pull the latest model metadata, provider inventory, API keys, aliases, model access rules, Guardrails, and Workflows.`,YP=()=>`Pobierz najnowsze metadane modeli, listę dostawców, klucze API, aliasy, reguły dostępu do modeli, Guardrails i Workflows.`,XP=((e={},t={})=>(t.locale??J())===`pl`?YP(e):JP(e)),ZP=()=>`Refresh`,QP=()=>`Odśwież`,$P=((e={},t={})=>(t.locale??J())===`pl`?QP(e):ZP(e)),eF=()=>`Runtime refresh completed.`,tF=()=>`Odświeżenie runtime zakończone.`,nF=((e={},t={})=>(t.locale??J())===`pl`?tF(e):eF(e)),rF=()=>`Runtime refreshed.`,iF=()=>`Runtime odświeżony.`,aF=((e={},t={})=>(t.locale??J())===`pl`?iF(e):rF(e)),oF=()=>`Runtime refresh completed with warnings.`,sF=()=>`Odświeżenie runtime zakończone z ostrzeżeniami.`,cF=((e={},t={})=>(t.locale??J())===`pl`?sF(e):oF(e)),lF=()=>`Runtime refresh failed.`,uF=()=>`Odświeżenie runtime nie powiodło się.`,dF=((e={},t={})=>(t.locale??J())===`pl`?uF(e):lF(e)),fF=e=>`${e?.status} ${e?.models} · ${e?.providers}.`,pF=e=>`${e?.status} ${e?.models} · ${e?.providers}.`,mF=((e,t={})=>(t.locale??J())===`pl`?pF(e):fF(e)),hF=e=>No(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,gF=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},_F=((e,t={})=>(t.locale??J())===`pl`?gF(e):hF(e)),vF=e=>No(`en`,e?.count,{})===`one`?`${e?.count} provider`:`${e?.count} providers`,yF=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} dostawca`:t===`few`||t===`many`?`${e?.count} dostawców`:`${e?.count} dostawcy`},bF=((e,t={})=>(t.locale??J())===`pl`?yF(e):vF(e)),xF=()=>`AI Processing`,SF=()=>`Przetwarzanie AI`,CF=((e={},t={})=>(t.locale??J())===`pl`?SF(e):xF(e)),wF=()=>`Unable to load runtime settings.`,TF=()=>`Nie można wczytać ustawień runtime.`,EF=((e={},t={})=>(t.locale??J())===`pl`?TF(e):wF(e)),DF=e=>`Unable to save ${e?.setting}.`,OF=e=>`Nie można zapisać ustawienia ${e?.setting}.`,kF=((e,t={})=>(t.locale??J())===`pl`?OF(e):DF(e)),AF=e=>`${e?.setting} saved.`,jF=e=>`Zapisano ustawienie ${e?.setting}.`,MF=((e,t={})=>(t.locale??J())===`pl`?jF(e):AF(e)),NF=e=>`Managed by ${e?.source}`,PF=e=>`Zarządzane przez: ${e?.source}`,FF=((e,t={})=>(t.locale??J())===`pl`?PF(e):NF(e)),IF=()=>`environment`,LF=()=>`środowisko`,RF=((e={},t={})=>(t.locale??J())===`pl`?LF(e):IF(e)),zF=()=>`Usage Pricing Recalculation`,BF=()=>`Ponowne przeliczenie cen zużycia`,VF=((e={},t={})=>(t.locale??J())===`pl`?BF(e):zF(e)),HF=()=>`Pricing recalculation help`,UF=()=>`Pomoc dotycząca przeliczania cen`,WF=((e={},t={})=>(t.locale??J())===`pl`?UF(e):HF(e)),GF=()=>`Recalculate stored input, output, total, and Pro Saved costs from the current model pricing metadata. This overwrites matching historical cost fields. Filters apply to the selected date range, user path subtree, and provider/model selector or alias.`,KF=()=>`Przelicz zapisane koszty wejścia, wyjścia, łączne oraz Pro Saved na podstawie bieżących metadanych cen modeli. Operacja nadpisuje pasujące historyczne pola kosztów. Filtry dotyczą wybranego zakresu dat, poddrzewa User Path oraz selektora lub aliasu dostawcy/modelu.`,qF=((e={},t={})=>(t.locale??J())===`pl`?KF(e):GF(e)),JF=()=>`Date Range`,YF=()=>`Zakres dat`,XF=((e={},t={})=>(t.locale??J())===`pl`?YF(e):JF(e)),ZF=()=>`User Path (optional)`,QF=()=>`User Path (opcjonalny)`,$F=((e={},t={})=>(t.locale??J())===`pl`?QF(e):ZF(e)),eI=()=>`Provider/Model or Alias (optional)`,tI=()=>`Dostawca/model lub alias (opcjonalnie)`,nI=((e={},t={})=>(t.locale??J())===`pl`?tI(e):eI(e)),rI=()=>`openai/gpt-4o or smart`,iI=()=>`openai/gpt-4o lub smart`,aI=((e={},t={})=>(t.locale??J())===`pl`?iI(e):rI(e)),oI=()=>`Recalculate Pricing`,sI=()=>`Przelicz ceny`,cI=((e={},t={})=>(t.locale??J())===`pl`?sI(e):oI(e)),lI=()=>`Usage pricing recalculation is unavailable.`,uI=()=>`Ponowne przeliczanie cen zużycia jest niedostępne.`,dI=((e={},t={})=>(t.locale??J())===`pl`?uI(e):lI(e)),fI=()=>`recalculate`,pI=()=>`przelicz`,mI=((e={},t={})=>(t.locale??J())===`pl`?pI(e):fI(e)),hI=()=>`Stored usage cost fields matching the selected filters will be overwritten.`,gI=()=>`Zapisane pola kosztów zużycia pasujące do wybranych filtrów zostaną nadpisane.`,_I=((e={},t={})=>(t.locale??J())===`pl`?gI(e):hI(e)),vI=()=>`Unable to recalculate pricing.`,yI=()=>`Nie można przeliczyć cen.`,bI=((e={},t={})=>(t.locale??J())===`pl`?yI(e):vI(e)),xI=e=>No(`en`,e?.matched,{})===`one`?`Pricing recalculated for ${e?.recalculated} of ${e?.matched} usage record.`:`Pricing recalculated for ${e?.recalculated} of ${e?.matched} usage records.`,SI=e=>{let t=No(`pl`,e?.matched,{});return t===`one`?`Przeliczono ceny dla ${e?.recalculated} z ${e?.matched} rekordu zużycia.`:t===`few`||t===`many`?`Przeliczono ceny dla ${e?.recalculated} z ${e?.matched} rekordów zużycia.`:`Przeliczono ceny dla ${e?.recalculated} z ${e?.matched} rekordu zużycia.`},CI=((e,t={})=>(t.locale??J())===`pl`?SI(e):xI(e)),wI=e=>No(`en`,e?.count,{})===`one`?`${e?.count} usage record still lacks pricing metadata.`:`${e?.count} usage records still lack pricing metadata.`,TI=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} rekord zużycia nadal nie ma metadanych cen.`:t===`few`?`${e?.count} rekordy zużycia nadal nie mają metadanych cen.`:t===`many`?`${e?.count} rekordów zużycia nadal nie ma metadanych cen.`:`${e?.count} rekordu zużycia nadal nie ma metadanych cen.`},EI=((e,t={})=>(t.locale??J())===`pl`?TI(e):wI(e)),DI=()=>`Sign out`,OI=()=>`Wyloguj się`,kI=((e={},t={})=>(t.locale??J())===`pl`?OI(e):DI(e)),AI=()=>`Enter API key`,jI=()=>`Wprowadź klucz API`,MI=((e={},t={})=>(t.locale??J())===`pl`?jI(e):AI(e)),NI=()=>`Change API key`,PI=()=>`Zmień klucz API`,FI=((e={},t={})=>(t.locale??J())===`pl`?PI(e):NI(e)),II=()=>`Resize sidebar`,LI=()=>`Zmień szerokość paska bocznego`,RI=((e={},t={})=>(t.locale??J())===`pl`?LI(e):II(e)),zI=()=>`Drag to resize; click to collapse or expand`,BI=()=>`Przeciągnij, aby zmienić szerokość; kliknij, aby zwinąć lub rozwinąć`,VI=((e={},t={})=>(t.locale??J())===`pl`?BI(e):zI(e)),HI=()=>`Theme`,UI=()=>`Motyw`,WI=((e={},t={})=>(t.locale??J())===`pl`?UI(e):HI(e)),GI=()=>`Light theme`,KI=()=>`Jasny motyw`,qI=((e={},t={})=>(t.locale??J())===`pl`?KI(e):GI(e)),JI=()=>`System theme`,YI=()=>`Motyw systemowy`,XI=((e={},t={})=>(t.locale??J())===`pl`?YI(e):JI(e)),ZI=()=>`Dark theme`,QI=()=>`Ciemny motyw`,$I=((e={},t={})=>(t.locale??J())===`pl`?QI(e):ZI(e)),eL=e=>`Change theme (currently ${e?.theme})`,tL=e=>`Zmień motyw (obecnie: ${e?.theme})`,nL=((e,t={})=>(t.locale??J())===`pl`?tL(e):eL(e)),rL=()=>`Language`,iL=()=>`Język`,aL=((e={},t={})=>(t.locale??J())===`pl`?iL(e):rL(e)),oL=()=>`Authentication required for dashboard data.`,sL=()=>`Dostęp do danych panelu wymaga uwierzytelnienia.`,cL=((e={},t={})=>(t.locale??J())===`pl`?sL(e):oL(e)),lL=()=>`Dashboard locked`,uL=()=>`Panel zablokowany`,dL=((e={},t={})=>(t.locale??J())===`pl`?uL(e):lL(e)),fL=()=>`Change API key`,pL=()=>`Zmień klucz API`,mL=((e={},t={})=>(t.locale??J())===`pl`?pL(e):fL(e)),hL=()=>`Close authentication dialog`,gL=()=>`Zamknij okno uwierzytelniania`,_L=((e={},t={})=>(t.locale??J())===`pl`?gL(e):hL(e)),vL=()=>`Sign in with SSO`,yL=()=>`Zaloguj się przez SSO`,bL=((e={},t={})=>(t.locale??J())===`pl`?yL(e):vL(e)),xL=()=>`or use an API key`,SL=()=>`lub użyj klucza API`,CL=((e={},t={})=>(t.locale??J())===`pl`?SL(e):xL(e)),wL=()=>`API key`,TL=()=>`Klucz API`,EL=((e={},t={})=>(t.locale??J())===`pl`?TL(e):wL(e)),DL=()=>`Master key or bearer token`,OL=()=>`Klucz główny lub token Bearer`,kL=((e={},t={})=>(t.locale??J())===`pl`?OL(e):DL(e)),AL=()=>`Enter a valid API key to continue.`,jL=()=>`Aby kontynuować, wprowadź prawidłowy klucz API.`,ML=((e={},t={})=>(t.locale??J())===`pl`?jL(e):AL(e)),NL=()=>`Stored in this browser. Requests use the Authorization bearer header.`,PL=()=>`Klucz jest przechowywany w tej przeglądarce. Requesty używają nagłówka Authorization typu Bearer.`,FL=((e={},t={})=>(t.locale??J())===`pl`?PL(e):NL(e)),IL=()=>`Unlock dashboard`,LL=()=>`Odblokuj panel`,RL=((e={},t={})=>(t.locale??J())===`pl`?LL(e):IL(e)),zL=()=>`Save API key`,BL=()=>`Zapisz klucz API`,VL=((e={},t={})=>(t.locale??J())===`pl`?BL(e):zL(e)),HL=()=>`Close confirmation dialog`,UL=()=>`Zamknij okno potwierdzenia`,WL=((e={},t={})=>(t.locale??J())===`pl`?UL(e):HL(e)),GL=()=>`Dismiss notification`,KL=()=>`Zamknij powiadomienie`,qL=((e={},t={})=>(t.locale??J())===`pl`?KL(e):GL(e)),JL=()=>`Demo mode notice`,YL=()=>`Informacja o trybie demo`,XL=((e={},t={})=>(t.locale??J())===`pl`?YL(e):JL(e)),ZL=()=>`Public demo`,QL=()=>`Publiczne demo`,$L=((e={},t={})=>(t.locale??J())===`pl`?QL(e):ZL(e)),eR=()=>`Do not enter sensitive or personal data. Demo data is reset regularly.`,tR=()=>`Nie wprowadzaj danych poufnych ani osobowych. Dane demonstracyjne są regularnie resetowane.`,nR=((e={},t={})=>(t.locale??J())===`pl`?tR(e):eR(e)),rR=()=>`GoModel website`,iR=()=>`Strona GoModel`,aR=((e={},t={})=>(t.locale??J())===`pl`?iR(e):rR(e)),oR=e=>`Showing ${e?.start}–${e?.end} of ${e?.total}`,sR=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total}`,cR=((e,t={})=>(t.locale??J())===`pl`?sR(e):oR(e)),lR=e=>No(`en`,e?.count,{})===`one`?`Last ${e?.count} day`:`Last ${e?.count} days`,uR=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`Ostatni ${e?.count} dzień`:t===`few`||t===`many`?`Ostatnie ${e?.count} dni`:`Ostatnie ${e?.count} dnia`},dR=((e,t={})=>(t.locale??J())===`pl`?uR(e):lR(e)),fR=e=>No(`en`,e?.count,{})===`one`?`${e?.count} day`:`${e?.count} days`,pR=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} dzień`:t===`few`||t===`many`?`${e?.count} dni`:`${e?.count} dnia`},mR=((e,t={})=>(t.locale??J())===`pl`?pR(e):fR(e)),hR=()=>`Today`,gR=()=>`Dzisiaj`,_R=((e={},t={})=>(t.locale??J())===`pl`?gR(e):hR(e)),vR=e=>`${e?.start} – ${e?.end}`,yR=e=>`${e?.start} – ${e?.end}`,bR=((e,t={})=>(t.locale??J())===`pl`?yR(e):vR(e)),xR=e=>`${e?.start} – ...`,SR=e=>`${e?.start} – ...`,CR=((e,t={})=>(t.locale??J())===`pl`?SR(e):xR(e)),wR=()=>`Select start date`,TR=()=>`Wybierz datę początkową`,ER=((e={},t={})=>(t.locale??J())===`pl`?TR(e):wR(e)),DR=()=>`Select end date`,OR=()=>`Wybierz datę końcową`,kR=((e={},t={})=>(t.locale??J())===`pl`?OR(e):DR(e)),AR=()=>`Previous month`,jR=()=>`Poprzedni miesiąc`,MR=((e={},t={})=>(t.locale??J())===`pl`?jR(e):AR(e)),NR=()=>`Next month`,PR=()=>`Następny miesiąc`,FR=((e={},t={})=>(t.locale??J())===`pl`?PR(e):NR(e)),IR=()=>`Daily Token Usage`,LR=()=>`Dzienne zużycie tokenów`,RR=((e={},t={})=>(t.locale??J())===`pl`?LR(e):IR(e)),zR=()=>`Weekly Token Usage`,BR=()=>`Tygodniowe zużycie tokenów`,VR=((e={},t={})=>(t.locale??J())===`pl`?BR(e):zR(e)),HR=()=>`Monthly Token Usage`,UR=()=>`Miesięczne zużycie tokenów`,WR=((e={},t={})=>(t.locale??J())===`pl`?UR(e):HR(e)),GR=()=>`Yearly Token Usage`,KR=()=>`Roczne zużycie tokenów`,qR=((e={},t={})=>(t.locale??J())===`pl`?KR(e):GR(e)),JR=()=>`Enabled`,YR=()=>`Włączony`,XR=((e={},t={})=>(t.locale??J())===`pl`?YR(e):JR(e)),ZR=()=>`Disabled`,QR=()=>`Wyłączony`,$R=((e={},t={})=>(t.locale??J())===`pl`?QR(e):ZR(e)),ez=()=>`Config`,tz=()=>`Config`,nz=((e={},t={})=>(t.locale??J())===`pl`?tz(e):ez(e)),rz=()=>`Authentication required.`,iz=()=>`Wymagane uwierzytelnienie.`,az=((e={},t={})=>(t.locale??J())===`pl`?iz(e):rz(e)),oz=()=>`Keys without dashboard access are denied the dashboard and every /admin API endpoint. Model endpoints and GET /v1/usage stay available to all keys.`,sz=()=>`Klucze bez dostępu do dashboardu nie mogą korzystać z dashboardu ani endpointów /admin API. Endpointy modeli i GET /v1/usage pozostają dostępne dla wszystkich kluczy.`,cz=((e={},t={})=>(t.locale??J())===`pl`?sz(e):oz(e)),lz=e=>`Grant dashboard access to API key ${e?.name}`,uz=e=>`Przyznaj dostęp do dashboardu kluczowi API ${e?.name}`,dz=((e,t={})=>(t.locale??J())===`pl`?uz(e):lz(e)),fz=e=>`Revoke dashboard access for API key ${e?.name}`,pz=e=>`Odbierz dostęp do dashboardu kluczowi API ${e?.name}`,mz=((e,t={})=>(t.locale??J())===`pl`?pz(e):fz(e)),hz=e=>`Edit labels for API key ${e?.name}`,gz=e=>`Edytuj etykiety klucza API ${e?.name}`,_z=((e,t={})=>(t.locale??J())===`pl`?gz(e):hz(e)),vz=e=>`Deactivate API key ${e?.name}`,yz=e=>`Dezaktywuj klucz API ${e?.name}`,bz=((e,t={})=>(t.locale??J())===`pl`?yz(e):vz(e)),xz=e=>`Deactivating API key ${e?.name}`,Sz=e=>`Dezaktywowanie klucza API ${e?.name}`,Cz=((e,t={})=>(t.locale??J())===`pl`?Sz(e):xz(e)),wz=e=>`Deactivated on ${e?.date}`,Tz=e=>`Dezaktywowano ${e?.date}`,Ez=((e,t={})=>(t.locale??J())===`pl`?Tz(e):wz(e)),Dz=()=>`Unable to load API keys.`,Oz=()=>`Nie udało się wczytać kluczy API.`,kz=((e={},t={})=>(t.locale??J())===`pl`?Oz(e):Dz(e)),Az=()=>`Failed to create API key.`,jz=()=>`Nie udało się utworzyć klucza API.`,Mz=((e={},t={})=>(t.locale??J())===`pl`?jz(e):Az(e)),Nz=()=>`Auth keys feature is unavailable.`,Pz=()=>`Funkcja kluczy API jest niedostępna.`,Fz=((e={},t={})=>(t.locale??J())===`pl`?Pz(e):Nz(e)),Iz=()=>`Failed to update labels.`,Lz=()=>`Nie udało się zaktualizować etykiet.`,Rz=((e={},t={})=>(t.locale??J())===`pl`?Lz(e):Iz(e)),zz=e=>`Labels updated for key "${e?.name}".`,Bz=e=>`Zaktualizowano etykiety klucza „${e?.name}”.`,Vz=((e,t={})=>(t.locale??J())===`pl`?Bz(e):zz(e)),Hz=()=>`Failed to update dashboard access.`,Uz=()=>`Nie udało się zaktualizować dostępu do dashboardu.`,Wz=((e={},t={})=>(t.locale??J())===`pl`?Uz(e):Hz(e)),Gz=e=>`Dashboard access granted to key "${e?.name}".`,Kz=e=>`Przyznano dostęp do dashboardu kluczowi „${e?.name}”.`,qz=((e,t={})=>(t.locale??J())===`pl`?Kz(e):Gz(e)),Jz=e=>`Dashboard access revoked for key "${e?.name}".`,Yz=e=>`Odebrano dostęp do dashboardu kluczowi „${e?.name}”.`,Xz=((e,t={})=>(t.locale??J())===`pl`?Yz(e):Jz(e)),Zz=e=>`Deactivate key "${e?.name}"? This cannot be undone.`,Qz=e=>`Dezaktywować klucz „${e?.name}”? Tej operacji nie można cofnąć.`,$z=((e,t={})=>(t.locale??J())===`pl`?Qz(e):Zz(e)),eB=()=>`Failed to deactivate key.`,tB=()=>`Nie udało się dezaktywować klucza.`,nB=((e={},t={})=>(t.locale??J())===`pl`?tB(e):eB(e)),rB=e=>`Key "${e?.name}" deactivated.`,iB=e=>`Dezaktywowano klucz „${e?.name}”.`,aB=((e,t={})=>(t.locale??J())===`pl`?iB(e):rB(e)),oB=()=>`Name is required.`,sB=()=>`Nazwa jest wymagana.`,cB=((e={},t={})=>(t.locale??J())===`pl`?sB(e):oB(e)),lB=()=>`User path cannot contain "." or ".." segments.`,uB=()=>`User Path nie może zawierać segmentów "." ani "..".`,dB=((e={},t={})=>(t.locale??J())===`pl`?uB(e):lB(e)),fB=()=>`User path cannot contain ":" segments.`,pB=()=>`User Path nie może zawierać segmentów z ":".`,mB=((e={},t={})=>(t.locale??J())===`pl`?pB(e):fB(e)),hB=()=>`Transport`,gB=()=>`Transport`,_B=((e={},t={})=>(t.locale??J())===`pl`?gB(e):hB(e)),vB=()=>`Endpoint`,yB=()=>`Endpoint`,bB=((e={},t={})=>(t.locale??J())===`pl`?yB(e):vB(e)),xB=()=>`Status`,SB=()=>`Status`,CB=((e={},t={})=>(t.locale??J())===`pl`?SB(e):xB(e)),wB=()=>`Tools`,TB=()=>`Narzędzia`,EB=((e={},t={})=>(t.locale??J())===`pl`?TB(e):wB(e)),DB=()=>`Enabled`,OB=()=>`Włączony`,kB=((e={},t={})=>(t.locale??J())===`pl`?OB(e):DB(e)),AB=()=>`Actions`,jB=()=>`Akcje`,MB=((e={},t={})=>(t.locale??J())===`pl`?jB(e):AB(e)),NB=()=>`Declared in configuration (config.yaml mcp.servers); read-only in the dashboard`,PB=()=>`Zadeklarowano w konfiguracji (config.yaml mcp.servers); tylko do odczytu w dashboardzie`,FB=((e={},t={})=>(t.locale??J())===`pl`?PB(e):NB(e)),IB=e=>`Edit MCP server ${e?.name}`,LB=e=>`Edytuj serwer MCP ${e?.name}`,RB=((e,t={})=>(t.locale??J())===`pl`?LB(e):IB(e)),zB=e=>`Inspect catalog of MCP server ${e?.name}`,BB=e=>`Sprawdź katalog serwera MCP ${e?.name}`,VB=((e,t={})=>(t.locale??J())===`pl`?BB(e):zB(e)),HB=e=>`Reconnect MCP server ${e?.name}`,UB=e=>`Połącz ponownie serwer MCP ${e?.name}`,WB=((e,t={})=>(t.locale??J())===`pl`?UB(e):HB(e)),GB=e=>`Reconnecting MCP server ${e?.name}`,KB=e=>`Ponowne łączenie serwera MCP ${e?.name}`,qB=((e,t={})=>(t.locale??J())===`pl`?KB(e):GB(e)),JB=e=>`Delete MCP server ${e?.name}`,YB=e=>`Usuń serwer MCP ${e?.name}`,XB=((e,t={})=>(t.locale??J())===`pl`?YB(e):JB(e)),ZB=e=>`Deleting MCP server ${e?.name}`,QB=e=>`Usuwanie serwera MCP ${e?.name}`,$B=((e,t={})=>(t.locale??J())===`pl`?QB(e):ZB(e)),eV=e=>`Connected since ${e?.date}`,tV=e=>`Połączono od ${e?.date}`,nV=((e,t={})=>(t.locale??J())===`pl`?tV(e):eV(e)),rV=()=>`local command`,iV=()=>`komenda lokalna`,aV=((e={},t={})=>(t.locale??J())===`pl`?iV(e):rV(e)),oV=e=>`${e?.prompts} prompts · ${e?.resources} resources`,sV=e=>`Prompty: ${e?.prompts} · zasoby: ${e?.resources}`,cV=((e,t={})=>(t.locale??J())===`pl`?sV(e):oV(e)),lV=()=>`Name is required.`,uV=()=>`Nazwa jest wymagana.`,dV=((e={},t={})=>(t.locale??J())===`pl`?uV(e):lV(e)),fV=()=>`Slug must use 1–64 lowercase ASCII letters, numbers, hyphens, or underscores.`,pV=()=>`Slug musi zawierać 1–64 małych liter ASCII, cyfr, łączników lub podkreśleń.`,mV=((e={},t={})=>(t.locale??J())===`pl`?pV(e):fV(e)),hV=e=>`Slug "${e?.slug}" is already in use.`,gV=e=>`Slug „${e?.slug}” jest już używany.`,_V=((e,t={})=>(t.locale??J())===`pl`?gV(e):hV(e)),vV=()=>`URL is required.`,yV=()=>`URL jest wymagany.`,bV=((e={},t={})=>(t.locale??J())===`pl`?yV(e):vV(e)),xV=()=>`Tool timeout must be a non-negative whole number of seconds.`,SV=()=>`Timeout narzędzia musi być nieujemną całkowitą liczbą sekund.`,CV=((e={},t={})=>(t.locale??J())===`pl`?SV(e):xV(e)),wV=()=>`Tools`,TV=()=>`Narzędzia`,EV=((e={},t={})=>(t.locale??J())===`pl`?TV(e):wV(e)),DV=()=>`Prompts`,OV=()=>`Prompty`,kV=((e={},t={})=>(t.locale??J())===`pl`?OV(e):DV(e)),AV=()=>`Resources`,jV=()=>`Zasoby`,MV=((e={},t={})=>(t.locale??J())===`pl`?jV(e):AV(e)),NV=()=>`Resource templates`,PV=()=>`Szablony zasobów`,FV=((e={},t={})=>(t.locale??J())===`pl`?PV(e):NV(e)),IV=()=>`Failed to load MCP servers.`,LV=()=>`Nie udało się wczytać serwerów MCP.`,RV=((e={},t={})=>(t.locale??J())===`pl`?LV(e):IV(e)),zV=()=>`Failed to save MCP server.`,BV=()=>`Nie udało się zapisać serwera MCP.`,VV=((e={},t={})=>(t.locale??J())===`pl`?BV(e):zV(e)),HV=e=>`MCP server "${e?.name}" saved.`,UV=e=>`Zapisano serwer MCP „${e?.name}”.`,WV=((e,t={})=>(t.locale??J())===`pl`?UV(e):HV(e)),GV=e=>`Delete MCP server "${e?.name}"? Clients lose access to its tools immediately.`,KV=e=>`Usunąć serwer MCP „${e?.name}”? Klienci natychmiast utracą dostęp do jego narzędzi.`,qV=((e,t={})=>(t.locale??J())===`pl`?KV(e):GV(e)),JV=()=>`Failed to delete MCP server.`,YV=()=>`Nie udało się usunąć serwera MCP.`,XV=((e={},t={})=>(t.locale??J())===`pl`?YV(e):JV(e)),ZV=e=>`MCP server "${e?.name}" deleted.`,QV=e=>`Usunięto serwer MCP „${e?.name}”.`,$V=((e,t={})=>(t.locale??J())===`pl`?QV(e):ZV(e)),eH=()=>`Failed to reconnect MCP server.`,tH=()=>`Nie udało się ponownie połączyć serwera MCP.`,nH=((e={},t={})=>(t.locale??J())===`pl`?tH(e):eH(e)),rH=e=>`MCP server "${e?.name}" reconnected.`,iH=e=>`Ponownie połączono serwer MCP „${e?.name}”.`,aH=((e,t={})=>(t.locale??J())===`pl`?iH(e):rH(e)),oH=e=>`MCP server "${e?.name}" is disabled; no connection was attempted.`,sH=e=>`Serwer MCP „${e?.name}” jest wyłączony; nie podjęto próby połączenia.`,cH=((e,t={})=>(t.locale??J())===`pl`?sH(e):oH(e)),lH=e=>`Reconnect attempted, but MCP server "${e?.name}" is still ${e?.status}.`,uH=e=>`Podjęto próbę ponownego połączenia, ale status serwera MCP „${e?.name}” to nadal ${e?.status}.`,dH=((e,t={})=>(t.locale??J())===`pl`?uH(e):lH(e)),fH=e=>`MCP server "${e?.name}" was not found.`,pH=e=>`Nie znaleziono serwera MCP „${e?.name}”.`,mH=((e,t={})=>(t.locale??J())===`pl`?pH(e):fH(e)),hH=()=>`Failed to load MCP server catalog.`,gH=()=>`Nie udało się wczytać katalogu serwera MCP.`,_H=((e={},t={})=>(t.locale??J())===`pl`?gH(e):hH(e)),vH=()=>`Edit Provider`,yH=()=>`Edytuj dostawcę`,bH=((e={},t={})=>(t.locale??J())===`pl`?yH(e):vH(e)),xH=()=>`Provider credential editor`,SH=()=>`Edytor danych dostawcy`,CH=((e={},t={})=>(t.locale??J())===`pl`?SH(e):xH(e)),wH=()=>`The name is the stable identity used for routing and cannot change once created.`,TH=()=>`Nazwa jest stałą tożsamością używaną do routingu i po utworzeniu nie można jej zmienić.`,EH=((e={},t={})=>(t.locale??J())===`pl`?TH(e):wH(e)),DH=()=>`Select a provider type…`,OH=()=>`Wybierz typ dostawcy…`,kH=((e={},t={})=>(t.locale??J())===`pl`?OH(e):DH(e)),AH=()=>`Determines which fields the gateway uses to build requests.`,jH=()=>`Określa pola używane przez gateway do tworzenia Request'ów.`,MH=((e={},t={})=>(t.locale??J())===`pl`?jH(e):AH(e)),NH=()=>`Suggested from the selected type; used to route requests to this provider instance and editable before saving.`,PH=()=>`Sugerowana na podstawie typu; używana do kierowania Request'ów do tej instancji i edytowalna przed zapisem.`,FH=((e={},t={})=>(t.locale??J())===`pl`?PH(e):NH(e)),IH=()=>`Immutable once created.`,LH=()=>`Po utworzeniu nie można jej zmienić.`,RH=((e={},t={})=>(t.locale??J())===`pl`?LH(e):IH(e)),zH=()=>`Pick a type to configure its credentials — each provider type asks for different settings.`,BH=()=>`Wybierz typ, aby skonfigurować dane dostępowe — każdy typ dostawcy wymaga innych ustawień.`,VH=((e={},t={})=>(t.locale??J())===`pl`?BH(e):zH(e)),HH=()=>`provider`,UH=()=>`dostawca`,WH=((e={},t={})=>(t.locale??J())===`pl`?UH(e):HH(e)),GH=()=>`Advanced settings`,KH=()=>`Ustawienia zaawansowane`,qH=((e={},t={})=>(t.locale??J())===`pl`?KH(e):GH(e)),JH=e=>`API key ${e?.number}`,YH=e=>`Klucz API ${e?.number}`,XH=((e,t={})=>(t.locale??J())===`pl`?YH(e):JH(e)),ZH=e=>`Remove API key ${e?.number}`,QH=e=>`Usuń klucz API ${e?.number}`,$H=((e,t={})=>(t.locale??J())===`pl`?QH(e):ZH(e)),eU=()=>`Add key`,tU=()=>`Dodaj klucz`,nU=((e={},t={})=>(t.locale??J())===`pl`?tU(e):eU(e)),rU=()=>`Provider default`,iU=()=>`Domyślne dostawcy`,aU=((e={},t={})=>(t.locale??J())===`pl`?iU(e):rU(e)),oU=e=>`Edit provider ${e?.name}`,sU=e=>`Edytuj dostawcę ${e?.name}`,cU=((e,t={})=>(t.locale??J())===`pl`?sU(e):oU(e)),lU=e=>`Delete provider ${e?.name}`,uU=e=>`Usuń dostawcę ${e?.name}`,dU=((e,t={})=>(t.locale??J())===`pl`?uU(e):lU(e)),fU=e=>`Deleting provider ${e?.name}`,pU=e=>`Usuwanie dostawcy ${e?.name}`,mU=((e,t={})=>(t.locale??J())===`pl`?pU(e):fU(e)),hU=()=>`Failed to load provider credentials.`,gU=()=>`Nie udało się wczytać danych dostawców.`,_U=((e={},t={})=>(t.locale??J())===`pl`?gU(e):hU(e)),vU=()=>`Failed to save provider credential.`,yU=()=>`Nie udało się zapisać danych dostawcy.`,bU=((e={},t={})=>(t.locale??J())===`pl`?yU(e):vU(e)),xU=e=>`Provider "${e?.name}" saved.`,SU=e=>`Zapisano dostawcę „${e?.name}”.`,CU=((e,t={})=>(t.locale??J())===`pl`?SU(e):xU(e)),wU=()=>`Failed to delete provider credential.`,TU=()=>`Nie udało się usunąć danych dostawcy.`,EU=((e={},t={})=>(t.locale??J())===`pl`?TU(e):wU(e)),DU=e=>`Provider "${e?.name}" deleted.`,OU=e=>`Usunięto dostawcę „${e?.name}”.`,kU=((e,t={})=>(t.locale??J())===`pl`?OU(e):DU(e)),AU=()=>`Delete Provider`,jU=()=>`Usuń dostawcę`,MU=((e={},t={})=>(t.locale??J())===`pl`?jU(e):AU(e)),NU=e=>`Type "${e?.name}" to permanently delete this provider credential. Requests routed to it will fail until it is reconfigured.`,PU=e=>`Wpisz „${e?.name}”, aby trwale usunąć dane tego dostawcy. Kierowane do niego Requesty będą kończyć się błędem do czasu ponownej konfiguracji.`,FU=((e,t={})=>(t.locale??J())===`pl`?PU(e):NU(e)),IU=()=>`API Keys`,LU=()=>`Klucze API`,RU=((e={},t={})=>(t.locale??J())===`pl`?LU(e):IU(e)),zU=()=>`Session-sticky API keys`,BU=()=>`Klucze API przypisane do sesji`,VU=((e={},t={})=>(t.locale??J())===`pl`?BU(e):zU(e)),HU=()=>`Base URL`,UU=()=>`Bazowy URL`,WU=((e={},t={})=>(t.locale??J())===`pl`?UU(e):HU(e)),GU=()=>`API Version`,KU=()=>`Wersja API`,qU=((e={},t={})=>(t.locale??J())===`pl`?KU(e):GU(e)),JU=()=>`Backend`,YU=()=>`Backend`,XU=((e={},t={})=>(t.locale??J())===`pl`?YU(e):JU(e)),ZU=()=>`Auth Type`,QU=()=>`Typ uwierzytelniania`,$U=((e={},t={})=>(t.locale??J())===`pl`?QU(e):ZU(e)),eW=()=>`API Mode`,tW=()=>`Tryb API`,nW=((e={},t={})=>(t.locale??J())===`pl`?tW(e):eW(e)),rW=()=>`Vertex Project`,iW=()=>`Projekt Vertex`,aW=((e={},t={})=>(t.locale??J())===`pl`?iW(e):rW(e)),oW=()=>`Vertex Location`,sW=()=>`Lokalizacja Vertex`,cW=((e={},t={})=>(t.locale??J())===`pl`?sW(e):oW(e)),lW=()=>`Service Account File`,uW=()=>`Plik Service Account`,dW=((e={},t={})=>(t.locale??J())===`pl`?uW(e):lW(e)),fW=()=>`Service Account JSON`,pW=()=>`Service Account JSON`,mW=((e={},t={})=>(t.locale??J())===`pl`?pW(e):fW(e)),hW=()=>`Service Account JSON (base64)`,gW=()=>`Service Account JSON (base64)`,_W=((e={},t={})=>(t.locale??J())===`pl`?gW(e):hW(e)),vW=()=>`GCP Scope`,yW=()=>`Zakres GCP`,bW=((e={},t={})=>(t.locale??J())===`pl`?yW(e):vW(e)),xW=()=>`Models (comma-separated)`,SW=()=>`Modele (oddzielone przecinkami)`,CW=((e={},t={})=>(t.locale??J())===`pl`?SW(e):xW(e)),wW=()=>`Identified sessions stay on one key by default, improving provider prompt-cache hits. Saved values are masked; leave the asterisks unchanged to keep the stored key.`,TW=()=>`Zidentyfikowane sesje domyślnie pozostają przy jednym kluczu, co poprawia trafienia prompt cache dostawcy. Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować klucz.`,EW=((e={},t={})=>(t.locale??J())===`pl`?TW(e):wW(e)),DW=()=>`Keep each identified conversation on one API key to preserve provider prompt-cache affinity. Turn off to rotate keys round-robin on every request.`,OW=()=>`Przypisz każdą zidentyfikowaną rozmowę do jednego klucza API, aby zachować prompt cache affinity. Wyłącz, aby zmieniać klucze metodą round-robin przy każdym Requeście.`,kW=((e={},t={})=>(t.locale??J())===`pl`?OW(e):DW(e)),AW=()=>`Leave empty for the provider default. Realtime endpoints may need a newer version.`,jW=()=>`Pozostaw puste, aby użyć wartości domyślnej dostawcy. Endpointy Realtime mogą wymagać nowszej wersji.`,MW=((e={},t={})=>(t.locale??J())===`pl`?jW(e):AW(e)),NW=()=>`Which Google surface to call. Vertex authenticates with Google credentials instead of an API key.`,PW=()=>`Określa usługę Google. Vertex uwierzytelnia się danymi Google zamiast kluczem API.`,FW=((e={},t={})=>(t.locale??J())===`pl`?PW(e):NW(e)),IW=()=>`How to obtain Google credentials. Leave on the default to use Application Default Credentials.`,LW=()=>`Sposób uzyskania danych Google. Pozostaw wartość domyślną, aby użyć Application Default Credentials.`,RW=((e={},t={})=>(t.locale??J())===`pl`?LW(e):IW(e)),zW=()=>`Which request shape to send upstream.`,BW=()=>`Format Requestu wysyłanego upstream.`,VW=((e={},t={})=>(t.locale??J())===`pl`?BW(e):zW(e)),HW=()=>`Path readable by the gateway process.`,UW=()=>`Ścieżka dostępna do odczytu przez proces gateway.`,WW=((e={},t={})=>(t.locale??J())===`pl`?UW(e):HW(e)),GW=()=>`Saved values are masked; leave the asterisks unchanged to keep the stored value, or clear it to remove.`,KW=()=>`Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować wartość, lub wyczyść pole, aby ją usunąć.`,qW=((e={},t={})=>(t.locale??J())===`pl`?KW(e):GW(e)),JW=()=>`Saved values are masked; leave the asterisks unchanged to keep the stored value.`,YW=()=>`Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować wartość.`,XW=((e={},t={})=>(t.locale??J())===`pl`?YW(e):JW(e)),ZW=()=>`Leave empty to auto-discover models from the provider's /models endpoint where supported.`,QW=()=>`Pozostaw puste, aby automatycznie wykryć modele z endpointu /models dostawcy, jeśli jest obsługiwany.`,$W=((e={},t={})=>(t.locale??J())===`pl`?QW(e):ZW(e)),eG=e=>`Defaults to ${e?.value}`,tG=e=>`Domyślnie: ${e?.value}`,nG=((e,t={})=>(t.locale??J())===`pl`?tG(e):eG(e)),rG=e=>No(`en`,e?.count,{})===`one`?`${e?.count} key`:`${e?.count} keys`,iG=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} klucz`:t===`few`?`${e?.count} klucze`:t===`many`?`${e?.count} kluczy`:`${e?.count} klucza`},aG=((e,t={})=>(t.locale??J())===`pl`?iG(e):rG(e)),oG=()=>`service account`,sG=()=>`Service Account`,cG=((e={},t={})=>(t.locale??J())===`pl`?sG(e):oG(e)),lG=()=>`keyless`,uG=()=>`bez klucza`,dG=((e={},t={})=>(t.locale??J())===`pl`?uG(e):lG(e)),fG=()=>`auto-discovered`,pG=()=>`wykrywane automatycznie`,mG=((e={},t={})=>(t.locale??J())===`pl`?pG(e):fG(e)),hG=e=>No(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,gG=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},_G=((e,t={})=>(t.locale??J())===`pl`?gG(e):hG(e)),vG=e=>`Enable ${e?.subject}`,yG=e=>`Włącz ${e?.subject}`,bG=((e,t={})=>(t.locale??J())===`pl`?yG(e):vG(e)),xG=e=>`Disable ${e?.subject}`,SG=e=>`Wyłącz ${e?.subject}`,CG=((e,t={})=>(t.locale??J())===`pl`?SG(e):xG(e)),wG=e=>`alias ${e?.name}`,TG=e=>`alias ${e?.name}`,EG=((e,t={})=>(t.locale??J())===`pl`?TG(e):wG(e)),DG=()=>`model`,OG=()=>`model`,kG=((e={},t={})=>(t.locale??J())===`pl`?OG(e):DG(e)),AG=()=>`This virtual model is managed by configuration and is read-only.`,jG=()=>`Ten model wirtualny jest zarządzany przez konfigurację i tutaj jest tylko do odczytu.`,MG=((e={},t={})=>(t.locale??J())===`pl`?jG(e):AG(e)),NG=e=>`Edit ${e?.subject}`,PG=e=>`Edytuj ${e?.subject}`,FG=((e,t={})=>(t.locale??J())===`pl`?PG(e):NG(e)),IG=e=>`Edit ${e?.subject} (override exists)`,LG=e=>`Edytuj ${e?.subject} (nadpisanie istnieje)`,RG=((e,t={})=>(t.locale??J())===`pl`?LG(e):IG(e)),zG=e=>`Edit ${e?.subject} (virtual model exists)`,BG=e=>`Edytuj ${e?.subject} (model wirtualny istnieje)`,VG=((e,t={})=>(t.locale??J())===`pl`?BG(e):zG(e)),HG=e=>`model pricing for ${e?.name}`,UG=e=>`ceny modelu ${e?.name}`,WG=((e,t={})=>(t.locale??J())===`pl`?UG(e):HG(e)),GG=e=>`provider pricing for ${e?.name}`,KG=e=>`ceny dostawcy ${e?.name}`,qG=((e,t={})=>(t.locale??J())===`pl`?KG(e):GG(e)),JG=()=>`global model pricing`,YG=()=>`globalne ceny modeli`,XG=((e={},t={})=>(t.locale??J())===`pl`?YG(e):JG(e)),ZG=e=>`model settings for ${e?.name}`,QG=e=>`ustawienia modelu ${e?.name}`,$G=((e,t={})=>(t.locale??J())===`pl`?QG(e):ZG(e)),eK=e=>`provider access for ${e?.name}`,tK=e=>`dostęp dostawcy ${e?.name}`,nK=((e,t={})=>(t.locale??J())===`pl`?tK(e):eK(e)),rK=()=>`global model access`,iK=()=>`globalny dostęp do modeli`,aK=((e={},t={})=>(t.locale??J())===`pl`?iK(e):rK(e)),oK=e=>`Remove alias ${e?.name}`,sK=e=>`Usuń alias ${e?.name}`,cK=((e,t={})=>(t.locale??J())===`pl`?sK(e):oK(e)),lK=e=>`Removing alias ${e?.name}`,uK=e=>`Usuwanie aliasu ${e?.name}`,dK=((e,t={})=>(t.locale??J())===`pl`?uK(e):lK(e)),fK=e=>`Edit alias ${e?.name}`,pK=e=>`Edytuj alias ${e?.name}`,mK=((e,t={})=>(t.locale??J())===`pl`?pK(e):fK(e)),hK=e=>`Edit redirect for ${e?.name}`,gK=e=>`Edytuj przekierowanie dla ${e?.name}`,_K=((e,t={})=>(t.locale??J())===`pl`?gK(e):hK(e)),vK=()=>`virtual model`,yK=()=>`model wirtualny`,bK=((e={},t={})=>(t.locale??J())===`pl`?yK(e):vK(e)),xK=()=>`Models`,SK=()=>`Modele`,CK=((e={},t={})=>(t.locale??J())===`pl`?SK(e):xK(e)),wK=()=>`Text generation`,TK=()=>`Generowanie tekstu`,EK=((e={},t={})=>(t.locale??J())===`pl`?TK(e):wK(e)),DK=()=>`Embeddings`,OK=()=>`Embeddingi`,kK=((e={},t={})=>(t.locale??J())===`pl`?OK(e):DK(e)),AK=()=>`Image`,jK=()=>`Obrazy`,MK=((e={},t={})=>(t.locale??J())===`pl`?jK(e):AK(e)),NK=()=>`Audio`,PK=()=>`Audio`,FK=((e={},t={})=>(t.locale??J())===`pl`?PK(e):NK(e)),IK=()=>`Video`,LK=()=>`Wideo`,RK=((e={},t={})=>(t.locale??J())===`pl`?LK(e):IK(e)),zK=()=>`Utility`,BK=()=>`Narzędziowe`,VK=((e={},t={})=>(t.locale??J())===`pl`?BK(e):zK(e)),HK=()=>`Virtual models`,UK=()=>`Modele wirtualne`,WK=((e={},t={})=>(t.locale??J())===`pl`?UK(e):HK(e)),GK=()=>`all providers and models`,KK=()=>`wszyscy dostawcy i modele`,qK=((e={},t={})=>(t.locale??J())===`pl`?KK(e):GK(e)),JK=()=>`Disabled by default`,YK=()=>`Domyślnie wyłączony`,XK=((e={},t={})=>(t.locale??J())===`pl`?YK(e):JK(e)),ZK=e=>`Allowed for ${e?.paths}`,QK=e=>`Dozwolony dla: ${e?.paths}`,$K=((e,t={})=>(t.locale??J())===`pl`?QK(e):ZK(e)),eq=e=>No(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,tq=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},nq=((e,t={})=>(t.locale??J())===`pl`?tq(e):eq(e)),rq=e=>No(`en`,e?.count,{})===`one`?`${e?.count} alias`:`${e?.count} aliases`,iq=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`${e?.count} alias`:t===`few`?`${e?.count} aliasy`:t===`many`?`${e?.count} aliasów`:`${e?.count} aliasu`},aq=((e,t={})=>(t.locale??J())===`pl`?iq(e):rq(e)),oq=()=>`Modes`,sq=()=>`Tryby`,cq=((e={},t={})=>(t.locale??J())===`pl`?sq(e):oq(e)),lq=()=>`Input / Output ($/MTok)`,uq=()=>`Wejście / wyjście ($/MTok)`,dq=((e={},t={})=>(t.locale??J())===`pl`?uq(e):lq(e)),fq=()=>`Cached $/MTok`,pq=()=>`Cache $/MTok`,mq=((e={},t={})=>(t.locale??J())===`pl`?pq(e):fq(e)),hq=()=>`Input`,gq=()=>`Wejście`,_q=((e={},t={})=>(t.locale??J())===`pl`?gq(e):hq(e)),vq=()=>`$/Image`,yq=()=>`$/obraz`,bq=((e={},t={})=>(t.locale??J())===`pl`?yq(e):vq(e)),xq=()=>`$/Second`,Sq=()=>`$/sekundę`,Cq=((e={},t={})=>(t.locale??J())===`pl`?Sq(e):xq(e)),wq=()=>`$/Character`,Tq=()=>`$/znak`,Eq=((e={},t={})=>(t.locale??J())===`pl`?Tq(e):wq(e)),Dq=()=>`$/Second (In)`,Oq=()=>`$/sekundę (wejście)`,kq=((e={},t={})=>(t.locale??J())===`pl`?Oq(e):Dq(e)),Aq=()=>`$/Second (Out)`,jq=()=>`$/sekundę (wyjście)`,Mq=((e={},t={})=>(t.locale??J())===`pl`?jq(e):Aq(e)),Nq=()=>`$/Page`,Pq=()=>`$/stronę`,Fq=((e={},t={})=>(t.locale??J())===`pl`?Pq(e):Nq(e)),Iq=()=>`$/Request`,Lq=()=>`$/Request`,Rq=((e={},t={})=>(t.locale??J())===`pl`?Lq(e):Iq(e)),zq=()=>`Save`,Bq=()=>`Zapisz`,Vq=((e={},t={})=>(t.locale??J())===`pl`?Bq(e):zq(e)),Hq=()=>`Saving...`,Uq=()=>`Zapisywanie...`,Wq=((e={},t={})=>(t.locale??J())===`pl`?Uq(e):Hq(e)),Gq=()=>`Creating...`,Kq=()=>`Tworzenie...`,qq=((e={},t={})=>(t.locale??J())===`pl`?Kq(e):Gq(e)),Jq=()=>`Loading workflows...`,Yq=()=>`Wczytywanie Workflows...`,Xq=((e={},t={})=>(t.locale??J())===`pl`?Yq(e):Jq(e)),Zq=()=>`Loading workflows timed out.`,Qq=()=>`Przekroczono czas wczytywania Workflows.`,$q=((e={},t={})=>(t.locale??J())===`pl`?Qq(e):Zq(e)),eJ=()=>`Workflow created and activated.`,tJ=()=>`Workflow został utworzony i aktywowany.`,nJ=((e={},t={})=>(t.locale??J())===`pl`?tJ(e):eJ(e)),rJ=e=>`Deactivate Workflow "${e?.name}"? Requests will fall back to the next active Workflow for this scope.`,iJ=e=>`Dezaktywować Workflow „${e?.name}”? Requesty użyją następnego aktywnego Workflow dla tego zakresu.`,aJ=((e,t={})=>(t.locale??J())===`pl`?iJ(e):rJ(e)),oJ=()=>`Workflow deactivated.`,sJ=()=>`Workflow został dezaktywowany.`,cJ=((e={},t={})=>(t.locale??J())===`pl`?sJ(e):oJ(e)),lJ=()=>`On`,uJ=()=>`Włączony`,dJ=((e={},t={})=>(t.locale??J())===`pl`?uJ(e):lJ(e)),fJ=()=>`Off`,pJ=()=>`Wyłączony`,mJ=((e={},t={})=>(t.locale??J())===`pl`?pJ(e):fJ(e)),hJ=()=>`None`,gJ=()=>`Brak`,_J=((e={},t={})=>(t.locale??J())===`pl`?gJ(e):hJ(e)),vJ=e=>`${e?.count} steps`,yJ=e=>`Kroki: ${e?.count}`,bJ=((e,t={})=>(t.locale??J())===`pl`?yJ(e):vJ(e)),xJ=()=>`1 step`,SJ=()=>`1 krok`,CJ=((e={},t={})=>(t.locale??J())===`pl`?SJ(e):xJ(e)),wJ=e=>`step ${e?.number}`,TJ=e=>`krok ${e?.number}`,EJ=((e,t={})=>(t.locale??J())===`pl`?TJ(e):wJ(e)),DJ=e=>`Deactivate Workflow ${e?.name}`,OJ=e=>`Dezaktywuj Workflow ${e?.name}`,kJ=((e,t={})=>(t.locale??J())===`pl`?OJ(e):DJ(e)),AJ=()=>`Deactivate active Workflow`,jJ=()=>`Dezaktywuj aktywny Workflow`,MJ=((e={},t={})=>(t.locale??J())===`pl`?jJ(e):AJ(e)),NJ=()=>`The global Workflow cannot be deactivated.`,PJ=()=>`Globalnego Workflow nie można dezaktywować.`,FJ=((e={},t={})=>(t.locale??J())===`pl`?PJ(e):NJ(e)),IJ=()=>`Deactivating...`,LJ=()=>`Dezaktywowanie...`,RJ=((e={},t={})=>(t.locale??J())===`pl`?LJ(e):IJ(e)),zJ=()=>`Deactivate`,BJ=()=>`Dezaktywuj`,VJ=((e={},t={})=>(t.locale??J())===`pl`?BJ(e):zJ(e)),HJ=e=>`Edit Workflow ${e?.name}`,UJ=e=>`Edytuj Workflow ${e?.name}`,WJ=((e,t={})=>(t.locale??J())===`pl`?UJ(e):HJ(e)),GJ=e=>`version: v${e?.version}`,KJ=e=>`wersja: v${e?.version}`,qJ=((e,t={})=>(t.locale??J())===`pl`?KJ(e):GJ(e)),JJ=e=>`created: ${e?.date}`,YJ=e=>`utworzono: ${e?.date}`,XJ=((e,t={})=>(t.locale??J())===`pl`?YJ(e):JJ(e)),ZJ=e=>`hash: ${e?.hash}`,QJ=e=>`hash: ${e?.hash}`,$J=((e,t={})=>(t.locale??J())===`pl`?QJ(e):ZJ(e)),eY=()=>`Provider Name + Model`,tY=()=>`Nazwa dostawcy + model`,nY=((e={},t={})=>(t.locale??J())===`pl`?tY(e):eY(e)),rY=()=>`Provider Name + Model + Path`,iY=()=>`Nazwa dostawcy + model + Path`,aY=((e={},t={})=>(t.locale??J())===`pl`?iY(e):rY(e)),oY=()=>`Provider Name + Path`,sY=()=>`Nazwa dostawcy + Path`,cY=((e={},t={})=>(t.locale??J())===`pl`?sY(e):oY(e)),lY=()=>`Path`,uY=()=>`Path`,dY=((e={},t={})=>(t.locale??J())===`pl`?uY(e):lY(e)),fY=()=>`Provider Name`,pY=()=>`Nazwa dostawcy`,mY=((e={},t={})=>(t.locale??J())===`pl`?pY(e):fY(e)),hY=()=>`Global`,gY=()=>`Globalny`,_Y=((e={},t={})=>(t.locale??J())===`pl`?gY(e):hY(e)),Ume=()=>`All models`,Wme=()=>`Wszystkie modele`,Gme=((e={},t={})=>(t.locale??J())===`pl`?Wme(e):Ume(e)),Kme=()=>`Choose a registered provider name.`,qme=()=>`Wybierz zarejestrowaną nazwę dostawcy.`,Jme=((e={},t={})=>(t.locale??J())===`pl`?qme(e):Kme(e)),Yme=()=>`Model selection requires a provider name.`,Xme=()=>`Wybór modelu wymaga nazwy dostawcy.`,Zme=((e={},t={})=>(t.locale??J())===`pl`?Xme(e):Yme(e)),Qme=()=>`Choose a registered model for the selected provider name.`,$me=()=>`Wybierz zarejestrowany model dla wybranego dostawcy.`,ehe=((e={},t={})=>(t.locale??J())===`pl`?$me(e):Qme(e)),the=()=>`Each guardrail step needs a guardrail ref.`,nhe=()=>`Każdy krok Guardrail wymaga referencji Guardrail.`,rhe=((e={},t={})=>(t.locale??J())===`pl`?nhe(e):the(e)),ihe=()=>`Each guardrail step must use a non-negative integer step number.`,ahe=()=>`Każdy krok Guardrail musi mieć nieujemny całkowity numer.`,ohe=((e={},t={})=>(t.locale??J())===`pl`?ahe(e):ihe(e)),she=()=>`Each guardrail ref may appear only once in a workflow.`,che=()=>`Każda referencja Guardrail może wystąpić tylko raz w Workflow.`,lhe=((e={},t={})=>(t.locale??J())===`pl`?che(e):she(e)),uhe=()=>`Unknown`,dhe=()=>`Nieznany`,fhe=((e={},t={})=>(t.locale??J())===`pl`?dhe(e):uhe(e)),phe=()=>`Name is required.`,mhe=()=>`Nazwa jest wymagana.`,hhe=((e={},t={})=>(t.locale??J())===`pl`?mhe(e):phe(e)),ghe=()=>`Type is required.`,_he=()=>`Typ jest wymagany.`,vhe=((e={},t={})=>(t.locale??J())===`pl`?_he(e):ghe(e)),yhe=()=>`Failed to save Guardrail.`,bhe=()=>`Nie udało się zapisać Guardrail.`,xhe=((e={},t={})=>(t.locale??J())===`pl`?bhe(e):yhe(e)),She=e=>`Guardrail "${e?.name}" saved.`,Che=e=>`Zapisano Guardrail „${e?.name}”.`,whe=((e,t={})=>(t.locale??J())===`pl`?Che(e):She(e)),The=e=>`Edit Guardrail ${e?.name}`,Ehe=e=>`Edytuj Guardrail ${e?.name}`,Dhe=((e,t={})=>(t.locale??J())===`pl`?Ehe(e):The(e)),Ohe=e=>`Delete Guardrail ${e?.name}`,khe=e=>`Usuń Guardrail ${e?.name}`,Ahe=((e,t={})=>(t.locale??J())===`pl`?khe(e):Ohe(e)),jhe=e=>`Deleting Guardrail ${e?.name}`,Mhe=e=>`Usuwanie Guardrail ${e?.name}`,Nhe=((e,t={})=>(t.locale??J())===`pl`?Mhe(e):jhe(e)),Phe=e=>`Delete Guardrail "${e?.name}"? Workflows that still reference it must be updated first.`,Fhe=e=>`Usunąć Guardrail „${e?.name}”? Workflows, które nadal się do niego odwołują, muszą zostać najpierw zaktualizowane.`,Ihe=((e,t={})=>(t.locale??J())===`pl`?Fhe(e):Phe(e)),Lhe=()=>`Failed to delete Guardrail.`,Rhe=()=>`Nie udało się usunąć Guardrail.`,zhe=((e={},t={})=>(t.locale??J())===`pl`?Rhe(e):Lhe(e)),Bhe=e=>`Guardrail "${e?.name}" deleted.`,Vhe=e=>`Usunięto Guardrail „${e?.name}”.`,Hhe=((e,t={})=>(t.locale??J())===`pl`?Vhe(e):Bhe(e)),Uhe=e=>`Rule scope: ${e?.scope}`,Whe=e=>`Zakres reguły: ${e?.scope}`,Ghe=((e,t={})=>(t.locale??J())===`pl`?Whe(e):Uhe(e)),Khe=()=>`Declared in configuration; read-only in the dashboard`,qhe=()=>`Zadeklarowano w konfiguracji; tylko do odczytu w dashboardzie`,Jhe=((e={},t={})=>(t.locale??J())===`pl`?qhe(e):Khe(e)),Yhe=()=>`Managed via dashboard or admin API`,Xhe=()=>`Zarządzane przez dashboard lub admin API`,Zhe=((e={},t={})=>(t.locale??J())===`pl`?Xhe(e):Yhe(e)),Qhe=()=>`Edit rate limit`,$he=()=>`Edytuj Rate Limit`,ege=((e={},t={})=>(t.locale??J())===`pl`?$he(e):Qhe(e)),tge=()=>`Resetting counters`,nge=()=>`Resetowanie liczników`,rge=((e={},t={})=>(t.locale??J())===`pl`?nge(e):tge(e)),ige=()=>`Reset counters`,age=()=>`Resetuj liczniki`,oge=((e={},t={})=>(t.locale??J())===`pl`?age(e):ige(e)),sge=()=>`Resetting`,cge=()=>`Resetowanie`,lge=((e={},t={})=>(t.locale??J())===`pl`?cge(e):sge(e)),uge=()=>`Reset`,dge=()=>`Resetuj`,fge=((e={},t={})=>(t.locale??J())===`pl`?dge(e):uge(e)),pge=()=>`Deleting rate limit`,mge=()=>`Usuwanie Rate Limitu`,hge=((e={},t={})=>(t.locale??J())===`pl`?mge(e):pge(e)),gge=()=>`Delete rate limit`,_ge=()=>`Usuń Rate Limit`,vge=((e={},t={})=>(t.locale??J())===`pl`?_ge(e):gge(e)),yge=()=>`Deleting`,bge=()=>`Usuwanie`,xge=((e={},t={})=>(t.locale??J())===`pl`?bge(e):yge(e)),Sge=()=>`Delete`,Cge=()=>`Usuń`,wge=((e={},t={})=>(t.locale??J())===`pl`?Cge(e):Sge(e)),Tge=e=>`${e?.used} of ${e?.limit} in flight`,Ege=e=>`${e?.used} z ${e?.limit} w toku`,vY=((e,t={})=>(t.locale??J())===`pl`?Ege(e):Tge(e)),Dge=e=>`${e?.used} of ${e?.limit} requests`,Oge=e=>`${e?.used} z ${e?.limit} Request'ów`,yY=((e,t={})=>(t.locale??J())===`pl`?Oge(e):Dge(e)),kge=e=>`${e?.used} of ${e?.limit} tokens`,Age=e=>`${e?.used} z ${e?.limit} tokenów`,bY=((e,t={})=>(t.locale??J())===`pl`?Age(e):kge(e)),jge=e=>`${e?.count} left`,Mge=e=>`Pozostało: ${e?.count}`,xY=((e,t={})=>(t.locale??J())===`pl`?Mge(e):jge(e)),Nge=()=>`Unable to load rate limits.`,Pge=()=>`Nie udało się wczytać Rate Limitów.`,Fge=((e={},t={})=>(t.locale??J())===`pl`?Pge(e):Nge(e)),Ige=()=>`Unable to save rate limit.`,Lge=()=>`Nie udało się zapisać Rate Limitu.`,Rge=((e={},t={})=>(t.locale??J())===`pl`?Lge(e):Ige(e)),zge=()=>`Rate limit moved; Live counters restarted.`,Bge=()=>`Rate Limit został przeniesiony; liczniki Live zresetowano.`,Vge=((e={},t={})=>(t.locale??J())===`pl`?Bge(e):zge(e)),Hge=()=>`Rate limit saved.`,Uge=()=>`Zapisano Rate Limit.`,Wge=((e={},t={})=>(t.locale??J())===`pl`?Uge(e):Hge(e)),Gge=()=>`The new rule was saved, but the previous one could not be removed. Delete it manually.`,Kge=()=>`Nowa reguła została zapisana, ale poprzedniej nie udało się usunąć. Usuń ją ręcznie.`,qge=((e={},t={})=>(t.locale??J())===`pl`?Kge(e):Gge(e)),Jge=()=>`Unable to delete rate limit.`,Yge=()=>`Nie udało się usunąć Rate Limitu.`,Xge=((e={},t={})=>(t.locale??J())===`pl`?Yge(e):Jge(e)),Zge=()=>`Rate limit deleted.`,Qge=()=>`Usunięto Rate Limit.`,$ge=((e={},t={})=>(t.locale??J())===`pl`?Qge(e):Zge(e)),e_e=()=>`Unable to reset rate limit.`,t_e=()=>`Nie udało się zresetować Rate Limitu.`,n_e=((e={},t={})=>(t.locale??J())===`pl`?t_e(e):e_e(e)),r_e=()=>`Rate limit counters reset.`,i_e=()=>`Zresetowano liczniki Rate Limitu.`,a_e=((e={},t={})=>(t.locale??J())===`pl`?i_e(e):r_e(e)),o_e=()=>`User path`,s_e=()=>`User Path`,c_e=((e={},t={})=>(t.locale??J())===`pl`?s_e(e):o_e(e)),l_e=()=>`user path`,u_e=()=>`User Path`,d_e=((e={},t={})=>(t.locale??J())===`pl`?u_e(e):l_e(e)),f_e=()=>`Provider`,p_e=()=>`Dostawca`,m_e=((e={},t={})=>(t.locale??J())===`pl`?p_e(e):f_e(e)),h_e=()=>`provider`,g_e=()=>`dostawca`,__e=((e={},t={})=>(t.locale??J())===`pl`?g_e(e):h_e(e)),v_e=()=>`Provider Name`,y_e=()=>`Nazwa dostawcy`,b_e=((e={},t={})=>(t.locale??J())===`pl`?y_e(e):v_e(e)),x_e=()=>`Model`,S_e=()=>`Model`,SY=((e={},t={})=>(t.locale??J())===`pl`?S_e(e):x_e(e)),C_e=()=>`model`,w_e=()=>`model`,T_e=((e={},t={})=>(t.locale??J())===`pl`?w_e(e):C_e(e)),E_e=()=>`Per minute`,D_e=()=>`Na minutę`,O_e=((e={},t={})=>(t.locale??J())===`pl`?D_e(e):E_e(e)),k_e=()=>`Per hour`,A_e=()=>`Na godzinę`,j_e=((e={},t={})=>(t.locale??J())===`pl`?A_e(e):k_e(e)),M_e=()=>`Per day`,N_e=()=>`Na dzień`,P_e=((e={},t={})=>(t.locale??J())===`pl`?N_e(e):M_e(e)),F_e=()=>`Concurrent (in-flight)`,I_e=()=>`Równoczesne (w toku)`,L_e=((e={},t={})=>(t.locale??J())===`pl`?I_e(e):F_e(e)),R_e=()=>`Custom seconds`,z_e=()=>`Niestandardowa liczba sekund`,B_e=((e={},t={})=>(t.locale??J())===`pl`?z_e(e):R_e(e)),V_e=()=>`Period seconds is required.`,H_e=()=>`Liczba sekund okresu jest wymagana.`,U_e=((e={},t={})=>(t.locale??J())===`pl`?H_e(e):V_e(e)),W_e=e=>`${e?.field} is required.`,G_e=e=>`Pole ${e?.field} jest wymagane.`,K_e=((e,t={})=>(t.locale??J())===`pl`?G_e(e):W_e(e)),q_e=()=>`Period seconds must be a positive integer (0 only for the concurrent period).`,J_e=()=>`Liczba sekund okresu musi być dodatnią liczbą całkowitą (0 tylko dla okresu równoczesnego).`,Y_e=((e={},t={})=>(t.locale??J())===`pl`?J_e(e):q_e(e)),X_e=()=>`Set max requests, max tokens, or both.`,Z_e=()=>`Ustaw maksymalną liczbę Request'ów, tokenów lub oba limity.`,Q_e=((e={},t={})=>(t.locale??J())===`pl`?Z_e(e):X_e(e)),$_e=()=>`Token limits are not valid for the concurrent period.`,eve=()=>`Limit tokenów nie jest dostępny dla okresu równoczesnego.`,tve=((e={},t={})=>(t.locale??J())===`pl`?eve(e):$_e(e)),nve=()=>`Max requests must be a positive integer.`,rve=()=>`Maksymalna liczba Request'ów musi być dodatnią liczbą całkowitą.`,ive=((e={},t={})=>(t.locale??J())===`pl`?rve(e):nve(e)),ave=()=>`Max tokens must be a positive integer.`,ove=()=>`Maksymalna liczba tokenów musi być dodatnią liczbą całkowitą.`,sve=((e={},t={})=>(t.locale??J())===`pl`?ove(e):ave(e)),cve=()=>`Model limits`,lve=()=>`Rate Limity modelu`,uve=((e={},t={})=>(t.locale??J())===`pl`?lve(e):cve(e)),dve=e=>`Provider limits (${e?.provider})`,fve=e=>`Rate Limity dostawcy (${e?.provider})`,pve=((e,t={})=>(t.locale??J())===`pl`?fve(e):dve(e)),mve=()=>`Shared by every model routed to this provider.`,hve=()=>`Współdzielone przez wszystkie modele kierowane do tego dostawcy.`,gve=((e={},t={})=>(t.locale??J())===`pl`?hve(e):mve(e)),_ve=()=>`Global limits`,vve=()=>`Globalne Rate Limity`,yve=((e={},t={})=>(t.locale??J())===`pl`?vve(e):_ve(e)),bve=()=>`Root User Path rules throttle all traffic. Narrower User Path rules also apply, per consumer.`,xve=()=>`Reguły głównego User Path ograniczają cały ruch. Węższe reguły User Path również obowiązują dla danego klienta.`,Sve=((e={},t={})=>(t.locale??J())===`pl`?xve(e):bve(e)),Cve=e=>`Rate limits for ${e?.subject}`,wve=e=>`Rate Limity dla ${e?.subject}`,Tve=((e,t={})=>(t.locale??J())===`pl`?wve(e):Cve(e)),Eve=()=>`direct limits configured`,Dve=()=>`skonfigurowano bezpośrednie Rate Limity`,Ove=((e={},t={})=>(t.locale??J())===`pl`?Dve(e):Eve(e)),kve=()=>`inherited limits apply`,Ave=()=>`obowiązują dziedziczone Rate Limity`,jve=((e={},t={})=>(t.locale??J())===`pl`?Ave(e):kve(e)),Mve=()=>`Unable to load virtual models.`,Nve=()=>`Nie udało się wczytać modeli wirtualnych.`,Pve=((e={},t={})=>(t.locale??J())===`pl`?Nve(e):Mve(e)),Fve=()=>`Failed to update alias state.`,Ive=()=>`Nie udało się zaktualizować stanu aliasu.`,CY=((e={},t={})=>(t.locale??J())===`pl`?Ive(e):Fve(e)),Lve=()=>`Alias enabled.`,Rve=()=>`Alias został włączony.`,zve=((e={},t={})=>(t.locale??J())===`pl`?Rve(e):Lve(e)),Bve=()=>`Alias disabled.`,Vve=()=>`Alias został wyłączony.`,Hve=((e={},t={})=>(t.locale??J())===`pl`?Vve(e):Bve(e)),Uve=()=>`Failed to update model access.`,Wve=()=>`Nie udało się zaktualizować dostępu do modelu.`,wY=((e={},t={})=>(t.locale??J())===`pl`?Wve(e):Uve(e)),Gve=()=>`Model enabled.`,Kve=()=>`Model został włączony.`,qve=((e={},t={})=>(t.locale??J())===`pl`?Kve(e):Gve(e)),Jve=()=>`Model disabled.`,Yve=()=>`Model został wyłączony.`,Xve=((e={},t={})=>(t.locale??J())===`pl`?Yve(e):Jve(e)),Zve=()=>`Failed to remove virtual model.`,Qve=()=>`Nie udało się usunąć modelu wirtualnego.`,TY=((e={},t={})=>(t.locale??J())===`pl`?Qve(e):Zve(e)),$ve=()=>`Virtual model removed.`,eye=()=>`Usunięto model wirtualny.`,EY=((e={},t={})=>(t.locale??J())===`pl`?eye(e):$ve(e)),tye=()=>`Failed to remove redirect.`,nye=()=>`Nie udało się usunąć przekierowania.`,rye=((e={},t={})=>(t.locale??J())===`pl`?nye(e):tye(e)),iye=()=>`Redirect removed. Other virtual model settings were preserved.`,aye=()=>`Usunięto przekierowanie. Pozostałe ustawienia modelu wirtualnego zostały zachowane.`,oye=((e={},t={})=>(t.locale??J())===`pl`?aye(e):iye(e)),sye=()=>`This virtual model is managed by configuration and cannot be edited here.`,cye=()=>`Ten model wirtualny jest zarządzany przez konfigurację i nie można go tutaj edytować.`,lye=((e={},t={})=>(t.locale??J())===`pl`?cye(e):sye(e)),uye=()=>`This virtual model is managed by configuration and cannot be removed here.`,dye=()=>`Ten model wirtualny jest zarządzany przez konfigurację i nie można go tutaj usunąć.`,fye=((e={},t={})=>(t.locale??J())===`pl`?dye(e):uye(e)),pye=()=>`Source is required.`,mye=()=>`Źródło jest wymagane.`,hye=((e={},t={})=>(t.locale??J())===`pl`?mye(e):pye(e)),gye=()=>`Choose a different Source or edit the existing virtual model.`,_ye=()=>`Wybierz inne Źródło lub edytuj istniejący model wirtualny.`,vye=((e={},t={})=>(t.locale??J())===`pl`?_ye(e):gye(e)),yye=()=>`Choose a different Source to avoid masking an existing model.`,bye=()=>`Wybierz inne Źródło, aby nie przesłaniać istniejącego modelu.`,DY=((e={},t={})=>(t.locale??J())===`pl`?bye(e):yye(e)),xye=()=>`Failed to save virtual model.`,Sye=()=>`Nie udało się zapisać modelu wirtualnego.`,OY=((e={},t={})=>(t.locale??J())===`pl`?Sye(e):xye(e)),Cye=()=>`Alias saved.`,wye=()=>`Zapisano alias.`,Tye=((e={},t={})=>(t.locale??J())===`pl`?wye(e):Cye(e)),Eye=()=>`Model access reset to inherited/default.`,Dye=()=>`Przywrócono dziedziczony/domyślny dostęp do modelu.`,Oye=((e={},t={})=>(t.locale??J())===`pl`?Dye(e):Eye(e)),kye=()=>`Model access saved.`,Aye=()=>`Zapisano dostęp do modelu.`,jye=((e={},t={})=>(t.locale??J())===`pl`?Aye(e):kye(e)),Mye=()=>`Round-robin (rotate across targets; honors weights)`,Nye=()=>`Round-robin (rotacja między celami z uwzględnieniem wag)`,Pye=((e={},t={})=>(t.locale??J())===`pl`?Nye(e):Mye(e)),Fye=()=>`Lowest cost (cheapest target per request)`,Iye=()=>`Najniższy koszt (najtańszy cel dla Requestu)`,Lye=((e={},t={})=>(t.locale??J())===`pl`?Iye(e):Fye(e)),Rye=()=>`Adaptive (target chosen by the registered routing extension)`,zye=()=>`Adaptive (cel wybierany przez zarejestrowane rozszerzenie routingu)`,Bye=((e={},t={})=>(t.locale??J())===`pl`?zye(e):Rye(e)),Vye=()=>`Invalid`,Hye=()=>`Nieprawidłowy`,kY=((e={},t={})=>(t.locale??J())===`pl`?Hye(e):Vye(e)),Uye=()=>`Active`,Wye=()=>`Aktywny`,Gye=((e={},t={})=>(t.locale??J())===`pl`?Wye(e):Uye(e)),Kye=()=>`Unassigned`,qye=()=>`Nieprzypisany`,Jye=((e={},t={})=>(t.locale??J())===`pl`?qye(e):Kye(e)),Yye=()=>`Unable to load model pricing overrides.`,Xye=()=>`Nie udało się wczytać nadpisań cen modeli.`,Zye=((e={},t={})=>(t.locale??J())===`pl`?Xye(e):Yye(e)),Qye=()=>`All providers and models`,$ye=()=>`Wszyscy dostawcy i modele`,AY=((e={},t={})=>(t.locale??J())===`pl`?$ye(e):Qye(e)),ebe=e=>`All models in ${e?.provider}`,tbe=e=>`Wszystkie modele dostawcy ${e?.provider}`,nbe=((e,t={})=>(t.locale??J())===`pl`?tbe(e):ebe(e)),rbe=()=>`Provider`,ibe=()=>`Dostawca`,abe=((e={},t={})=>(t.locale??J())===`pl`?ibe(e):rbe(e)),obe=()=>`This provider and model`,sbe=()=>`Ten dostawca i model`,cbe=((e={},t={})=>(t.locale??J())===`pl`?sbe(e):obe(e)),lbe=()=>`This model across providers`,ube=()=>`Ten model u wszystkich dostawców`,dbe=((e={},t={})=>(t.locale??J())===`pl`?ube(e):lbe(e)),fbe=()=>`Pricing`,pbe=()=>`Ceny`,mbe=((e={},t={})=>(t.locale??J())===`pl`?pbe(e):fbe(e)),hbe=()=>`Model pricing selector is required.`,gbe=()=>`Selektor cen modelu jest wymagany.`,_be=((e={},t={})=>(t.locale??J())===`pl`?gbe(e):hbe(e)),vbe=()=>`Model pricing overrides feature is unavailable.`,ybe=()=>`Funkcja nadpisywania cen modeli jest niedostępna.`,jY=((e={},t={})=>(t.locale??J())===`pl`?ybe(e):vbe(e)),bbe=()=>`Failed to save model pricing.`,xbe=()=>`Nie udało się zapisać cen modelu.`,MY=((e={},t={})=>(t.locale??J())===`pl`?xbe(e):bbe(e)),Sbe=()=>`Model pricing saved.`,Cbe=()=>`Zapisano ceny modelu.`,wbe=((e={},t={})=>(t.locale??J())===`pl`?Cbe(e):Sbe(e)),Tbe=()=>`Failed to remove model pricing override.`,Ebe=()=>`Nie udało się usunąć nadpisania cen modelu.`,NY=((e={},t={})=>(t.locale??J())===`pl`?Ebe(e):Tbe(e)),Dbe=()=>`Model pricing override removed.`,Obe=()=>`Usunięto nadpisanie cen modelu.`,kbe=((e={},t={})=>(t.locale??J())===`pl`?Obe(e):Dbe(e)),Abe=()=>`Input $/MTok`,jbe=()=>`Wejście $/MTok`,Mbe=((e={},t={})=>(t.locale??J())===`pl`?jbe(e):Abe(e)),Nbe=()=>`Output $/MTok`,Pbe=()=>`Wyjście $/MTok`,Fbe=((e={},t={})=>(t.locale??J())===`pl`?Pbe(e):Nbe(e)),Ibe=()=>`Cached input $/MTok`,Lbe=()=>`Wejście z cache $/MTok`,Rbe=((e={},t={})=>(t.locale??J())===`pl`?Lbe(e):Ibe(e)),zbe=()=>`Cache write $/MTok`,Bbe=()=>`Zapis cache $/MTok`,Vbe=((e={},t={})=>(t.locale??J())===`pl`?Bbe(e):zbe(e)),Hbe=()=>`Reasoning output $/MTok`,Ube=()=>`Wyjście reasoning $/MTok`,Wbe=((e={},t={})=>(t.locale??J())===`pl`?Ube(e):Hbe(e)),Gbe=()=>`Batch input $/MTok`,Kbe=()=>`Wejście Batch $/MTok`,qbe=((e={},t={})=>(t.locale??J())===`pl`?Kbe(e):Gbe(e)),Jbe=()=>`Batch output $/MTok`,Ybe=()=>`Wyjście Batch $/MTok`,Xbe=((e={},t={})=>(t.locale??J())===`pl`?Ybe(e):Jbe(e)),Zbe=()=>`Audio input $/MTok`,Qbe=()=>`Wejście Audio $/MTok`,$be=((e={},t={})=>(t.locale??J())===`pl`?Qbe(e):Zbe(e)),exe=()=>`Audio output $/MTok`,txe=()=>`Wyjście Audio $/MTok`,nxe=((e={},t={})=>(t.locale??J())===`pl`?txe(e):exe(e)),rxe=()=>`$/Image`,ixe=()=>`$/obraz`,axe=((e={},t={})=>(t.locale??J())===`pl`?ixe(e):rxe(e)),oxe=()=>`Input $/Image`,sxe=()=>`Wejście $/obraz`,cxe=((e={},t={})=>(t.locale??J())===`pl`?sxe(e):oxe(e)),lxe=()=>`Input $/Second`,uxe=()=>`Wejście $/sekundę`,dxe=((e={},t={})=>(t.locale??J())===`pl`?uxe(e):lxe(e)),fxe=()=>`Output $/Second`,pxe=()=>`Wyjście $/sekundę`,mxe=((e={},t={})=>(t.locale??J())===`pl`?pxe(e):fxe(e)),hxe=()=>`$/Character`,gxe=()=>`$/znak`,_xe=((e={},t={})=>(t.locale??J())===`pl`?gxe(e):hxe(e)),vxe=()=>`$/Page`,yxe=()=>`$/stronę`,bxe=((e={},t={})=>(t.locale??J())===`pl`?yxe(e):vxe(e)),xxe=()=>`$/Request`,Sxe=()=>`$/Request`,Cxe=((e={},t={})=>(t.locale??J())===`pl`?Sxe(e):xxe(e)),wxe=()=>`Tokens`,Txe=()=>`Tokeny`,PY=((e={},t={})=>(t.locale??J())===`pl`?Txe(e):wxe(e)),Exe=()=>`Batch`,Dxe=()=>`Batch`,FY=((e={},t={})=>(t.locale??J())===`pl`?Dxe(e):Exe(e)),Oxe=()=>`Audio`,kxe=()=>`Audio`,IY=((e={},t={})=>(t.locale??J())===`pl`?kxe(e):Oxe(e)),Axe=()=>`Image`,jxe=()=>`Obraz`,LY=((e={},t={})=>(t.locale??J())===`pl`?jxe(e):Axe(e)),Mxe=()=>`Audio/Video`,Nxe=()=>`Audio/Wideo`,Pxe=((e={},t={})=>(t.locale??J())===`pl`?Nxe(e):Mxe(e)),Fxe=()=>`Video`,Ixe=()=>`Wideo`,Lxe=((e={},t={})=>(t.locale??J())===`pl`?Ixe(e):Fxe(e)),Rxe=()=>`Utility`,zxe=()=>`Narzędziowe`,RY=((e={},t={})=>(t.locale??J())===`pl`?zxe(e):Rxe(e)),Bxe=()=>`Model registry`,Vxe=()=>`Rejestr modeli`,zY=((e={},t={})=>(t.locale??J())===`pl`?Vxe(e):Bxe(e)),Hxe=()=>`Unknown`,Uxe=()=>`Nieznane`,Wxe=((e={},t={})=>(t.locale??J())===`pl`?Uxe(e):Hxe(e)),Gxe=()=>`Dashboard/API override`,Kxe=()=>`Nadpisanie Dashboard/API`,qxe=((e={},t={})=>(t.locale??J())===`pl`?Kxe(e):Gxe(e)),Jxe=e=>`Dashboard/API override (${e?.selector})`,Yxe=e=>`Nadpisanie Dashboard/API (${e?.selector})`,Xxe=((e,t={})=>(t.locale??J())===`pl`?Yxe(e):Jxe(e)),Zxe=()=>`Choose a price type for every row.`,Qxe=()=>`Wybierz typ ceny dla każdego wiersza.`,$xe=((e={},t={})=>(t.locale??J())===`pl`?Qxe(e):Zxe(e)),eSe=()=>`Each price type can only be used once.`,tSe=()=>`Każdy typ ceny może zostać użyty tylko raz.`,nSe=((e={},t={})=>(t.locale??J())===`pl`?tSe(e):eSe(e)),rSe=e=>`Enter a value for ${e?.field}.`,iSe=e=>`Wprowadź wartość dla: ${e?.field}.`,aSe=((e,t={})=>(t.locale??J())===`pl`?iSe(e):rSe(e)),oSe=()=>`Pricing values must be numbers greater than or equal to 0.`,sSe=()=>`Ceny muszą być liczbami większymi lub równymi 0.`,cSe=((e={},t={})=>(t.locale??J())===`pl`?sSe(e):oSe(e)),lSe=()=>`Add at least one pricing field before saving.`,uSe=()=>`Przed zapisem dodaj co najmniej jedno pole ceny.`,dSe=((e={},t={})=>(t.locale??J())===`pl`?uSe(e):lSe(e)),fSe=()=>`Form/API value`,pSe=()=>`Wartość Form/API`,mSe=((e={},t={})=>(t.locale??J())===`pl`?pSe(e):fSe(e)),hSe=()=>`Unset`,gSe=()=>`Nieustawione`,BY=((e={},t={})=>(t.locale??J())===`pl`?gSe(e):hSe(e)),_Se=()=>`Unable to load Failover mappings.`,vSe=()=>`Nie udało się wczytać mapowań Failover.`,ySe=((e={},t={})=>(t.locale??J())===`pl`?vSe(e):_Se(e)),bSe=()=>`Primary model is required.`,xSe=()=>`Model główny jest wymagany.`,VY=((e={},t={})=>(t.locale??J())===`pl`?xSe(e):bSe(e)),SSe=()=>`Add at least one Failover target.`,CSe=()=>`Dodaj co najmniej jeden cel Failover.`,wSe=((e={},t={})=>(t.locale??J())===`pl`?CSe(e):SSe(e)),TSe=()=>`Failed to save Failover mapping.`,ESe=()=>`Nie udało się zapisać mapowania Failover.`,HY=((e={},t={})=>(t.locale??J())===`pl`?ESe(e):TSe(e)),DSe=()=>`Failover mapping saved.`,OSe=()=>`Zapisano mapowanie Failover.`,kSe=((e={},t={})=>(t.locale??J())===`pl`?OSe(e):DSe(e)),ASe=e=>`Remove Failover mapping for "${e?.source}"?`,jSe=e=>`Usunąć mapowanie Failover dla „${e?.source}”?`,MSe=((e,t={})=>(t.locale??J())===`pl`?jSe(e):ASe(e)),NSe=()=>`Failed to remove Failover mapping.`,PSe=()=>`Nie udało się usunąć mapowania Failover.`,UY=((e={},t={})=>(t.locale??J())===`pl`?PSe(e):NSe(e)),FSe=()=>`Failover mapping removed.`,ISe=()=>`Usunięto mapowanie Failover.`,LSe=((e={},t={})=>(t.locale??J())===`pl`?ISe(e):FSe(e)),RSe=()=>`Failed to generate Failover mapping.`,zSe=()=>`Nie udało się wygenerować mapowania Failover.`,WY=((e={},t={})=>(t.locale??J())===`pl`?zSe(e):RSe(e)),BSe=()=>`No Failover suggestions were generated for this model.`,VSe=()=>`Nie wygenerowano propozycji Failover dla tego modelu.`,HSe=((e={},t={})=>(t.locale??J())===`pl`?VSe(e):BSe(e)),USe=e=>No(`en`,e?.count,{})===`one`?`Generated ${e?.count} Fallback model.`:`Generated ${e?.count} Fallback models.`,WSe=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`Wygenerowano ${e?.count} model Fallback.`:t===`few`?`Wygenerowano ${e?.count} modele Fallback.`:t===`many`?`Wygenerowano ${e?.count} modeli Fallback.`:`Wygenerowano ${e?.count} modelu Fallback.`},GSe=((e,t={})=>(t.locale??J())===`pl`?WSe(e):USe(e)),KSe=()=>`Remove Failover models`,qSe=()=>`Usuń modele Failover`,JSe=((e={},t={})=>(t.locale??J())===`pl`?qSe(e):KSe(e)),YSe=()=>`Remove every dashboard-managed Failover mapping. Configuration-managed mappings remain active.`,XSe=()=>`Usuń wszystkie mapowania Failover zarządzane przez dashboard. Mapowania zarządzane przez konfigurację pozostaną aktywne.`,ZSe=((e={},t={})=>(t.locale??J())===`pl`?XSe(e):YSe(e)),QSe=()=>`Remove Failover`,$Se=()=>`Usuń Failover`,eCe=((e={},t={})=>(t.locale??J())===`pl`?$Se(e):QSe(e)),tCe=()=>`Failed to remove Failover mappings.`,nCe=()=>`Nie udało się usunąć mapowań Failover.`,GY=((e={},t={})=>(t.locale??J())===`pl`?nCe(e):tCe(e)),rCe=()=>`Dashboard-managed Failover mappings removed.`,iCe=()=>`Usunięto mapowania Failover zarządzane przez dashboard.`,aCe=((e={},t={})=>(t.locale??J())===`pl`?iCe(e):rCe(e)),oCe=()=>`Failed to generate Failover mappings.`,sCe=()=>`Nie udało się wygenerować mapowań Failover.`,KY=((e={},t={})=>(t.locale??J())===`pl`?sCe(e):oCe(e)),cCe=e=>`${e?.selected} / ${e?.total} selected`,lCe=e=>`Wybrano ${e?.selected} / ${e?.total}`,uCe=((e,t={})=>(t.locale??J())===`pl`?lCe(e):cCe(e)),dCe=()=>`Select at least one Failover draft.`,fCe=()=>`Wybierz co najmniej jedną propozycję Failover.`,pCe=((e={},t={})=>(t.locale??J())===`pl`?fCe(e):dCe(e)),mCe=()=>`Generated Failover draft is missing model data.`,hCe=()=>`Wygenerowana propozycja Failover nie zawiera danych modelu.`,gCe=((e={},t={})=>(t.locale??J())===`pl`?hCe(e):mCe(e)),_Ce=e=>No(`en`,e?.count,{})===`one`?`Saved ${e?.count} Failover mapping.`:`Saved ${e?.count} Failover mappings.`,vCe=e=>{let t=No(`pl`,e?.count,{});return t===`one`?`Zapisano ${e?.count} mapowanie Failover.`:t===`few`?`Zapisano ${e?.count} mapowania Failover.`:t===`many`?`Zapisano ${e?.count} mapowań Failover.`:`Zapisano ${e?.count} mapowania Failover.`},yCe=((e,t={})=>(t.locale??J())===`pl`?vCe(e):_Ce(e)),bCe=()=>`Failed to save Failover mappings.`,xCe=()=>`Nie udało się zapisać mapowań Failover.`,SCe=((e={},t={})=>(t.locale??J())===`pl`?xCe(e):bCe(e)),CCe=e=>`Edit failover for ${e?.model}`,wCe=e=>`Edytuj Failover dla ${e?.model}`,TCe=((e,t={})=>(t.locale??J())===`pl`?wCe(e):CCe(e)),ECe=e=>`Edit failover for ${e?.model} (active)`,DCe=e=>`Edytuj Failover dla ${e?.model} (aktywny)`,OCe=((e,t={})=>(t.locale??J())===`pl`?DCe(e):ECe(e)),kCe=()=>`Paste service account JSON`,ACe=()=>`Wklej Service Account JSON`,jCe=((e={},t={})=>(t.locale??J())===`pl`?ACe(e):kCe(e)),MCe=()=>`Select a provider type.`,NCe=()=>`Wybierz typ dostawcy.`,PCe=((e={},t={})=>(t.locale??J())===`pl`?NCe(e):MCe(e)),FCe=()=>`Name is required.`,ICe=()=>`Nazwa jest wymagana.`,LCe=((e={},t={})=>(t.locale??J())===`pl`?ICe(e):FCe(e)),RCe=()=>`Name cannot contain '/' — it separates the provider from the model.`,zCe=()=>`Nazwa nie może zawierać znaku „/” — oddziela on dostawcę od modelu.`,BCe=((e={},t={})=>(t.locale??J())===`pl`?zCe(e):RCe(e)),VCe=()=>`At least one API key is required for this provider type.`,HCe=()=>`Ten typ dostawcy wymaga co najmniej jednego klucza API.`,UCe=((e={},t={})=>(t.locale??J())===`pl`?HCe(e):VCe(e)),WCe=()=>`Remove the empty row instead of leaving a key blank.`,GCe=()=>`Usuń pusty wiersz zamiast pozostawiać pusty klucz.`,KCe=((e={},t={})=>(t.locale??J())===`pl`?GCe(e):WCe(e)),qCe=e=>`Include the scheme, e.g. https://${e?.value}`,JCe=e=>`Dodaj schemat, np. https://${e?.value}`,YCe=((e,t={})=>(t.locale??J())===`pl`?JCe(e):qCe(e)),XCe=()=>`Paste the service account JSON file's contents — this is not valid JSON.`,ZCe=()=>`Wklej zawartość pliku Service Account JSON — podana wartość nie jest prawidłowym JSON.`,QCe=((e={},t={})=>(t.locale??J())===`pl`?ZCe(e):XCe(e)),$Ce=e=>`Provider "${e?.name}" already exists.`,ewe=e=>`Dostawca „${e?.name}” już istnieje.`,twe=((e,t={})=>(t.locale??J())===`pl`?ewe(e):$Ce(e)),nwe=e=>`${e?.field} is required for this provider type.`,rwe=e=>`Pole ${e?.field} jest wymagane dla tego typu dostawcy.`,iwe=((e,t={})=>(t.locale??J())===`pl`?rwe(e):nwe(e)),awe=()=>`Connected`,owe=()=>`Połączony`,swe=((e={},t={})=>(t.locale??J())===`pl`?owe(e):awe(e)),cwe=()=>`Degraded`,lwe=()=>`Zdegradowany`,uwe=((e={},t={})=>(t.locale??J())===`pl`?lwe(e):cwe(e)),dwe=()=>`Connecting`,fwe=()=>`Łączenie`,pwe=((e={},t={})=>(t.locale??J())===`pl`?fwe(e):dwe(e)),mwe=()=>`Disabled`,hwe=()=>`Wyłączony`,gwe=((e={},t={})=>(t.locale??J())===`pl`?hwe(e):mwe(e)),_we=()=>`Optional description`,vwe=()=>`Opcjonalny opis`,ywe=((e={},t={})=>(t.locale??J())===`pl`?vwe(e):_we(e)),bwe=()=>`search_issues, get_file (comma-separated; empty allows all)`,xwe=()=>`search_issues, get_file (oddzielone przecinkami; puste zezwala na wszystkie)`,Swe=((e={},t={})=>(t.locale??J())===`pl`?xwe(e):bwe(e)),Cwe=()=>`delete_repo (comma-separated)`,wwe=()=>`delete_repo (oddzielone przecinkami)`,Twe=((e={},t={})=>(t.locale??J())===`pl`?wwe(e):Cwe(e)),Ewe=()=>`Client`,Dwe=()=>`Klient`,Owe=((e={},t={})=>(t.locale??J())===`pl`?Dwe(e):Ewe(e)),kwe=()=>`Auth`,Awe=()=>`Uwierzytelnianie`,jwe=((e={},t={})=>(t.locale??J())===`pl`?Awe(e):kwe(e)),Mwe=()=>`Response`,Nwe=()=>`Odpowiedź`,Pwe=((e={},t={})=>(t.locale??J())===`pl`?Nwe(e):Mwe(e)),Fwe=()=>`Audit Log`,Iwe=()=>`Log audytowy`,Lwe=((e={},t={})=>(t.locale??J())===`pl`?Iwe(e):Fwe(e)),Rwe=()=>`Hit (Semantic)`,zwe=()=>`Trafienie (Semantic)`,Bwe=((e={},t={})=>(t.locale??J())===`pl`?zwe(e):Rwe(e)),Vwe=()=>`Hit (Exact)`,Hwe=()=>`Trafienie (Exact)`,Uwe=((e={},t={})=>(t.locale??J())===`pl`?Hwe(e):Vwe(e)),Wwe=()=>`Exceeded`,Gwe=()=>`Przekroczony`,Kwe=((e={},t={})=>(t.locale??J())===`pl`?Gwe(e):Wwe(e)),qwe=()=>`Redirected`,Jwe=()=>`Przekierowano`,Ywe=((e={},t={})=>(t.locale??J())===`pl`?Jwe(e):qwe(e)),Xwe=e=>`Remove the virtual model alias "${e?.source}"?`,Zwe=e=>`Usunąć alias modelu wirtualnego „${e?.source}”?`,Qwe=((e,t={})=>(t.locale??J())===`pl`?Zwe(e):Xwe(e)),$we=e=>`Remove the redirect for "${e?.source}"? Other virtual model settings will be preserved.`,eTe=e=>`Usunąć przekierowanie dla „${e?.source}”? Pozostałe ustawienia modelu wirtualnego zostaną zachowane.`,tTe=((e,t={})=>(t.locale??J())===`pl`?eTe(e):$we(e)),nTe=e=>`A virtual model named "${e?.name}" already exists. Saving will update that virtual model. Continue?`,rTe=e=>`Model wirtualny „${e?.name}” już istnieje. Zapis zaktualizuje ten model. Kontynuować?`,iTe=((e,t={})=>(t.locale??J())===`pl`?rTe(e):nTe(e)),aTe=e=>`An access policy for "${e?.source}" already exists. Saving will update that virtual model. Continue?`,oTe=e=>`Polityka dostępu dla „${e?.source}” już istnieje. Zapis zaktualizuje ten model wirtualny. Kontynuować?`,sTe=((e,t={})=>(t.locale??J())===`pl`?oTe(e):aTe(e)),cTe=e=>`A model named "${e?.name}" already exists. Creating this alias will mask that model in the list. Continue?`,lTe=e=>`Model „${e?.name}” już istnieje. Utworzenie aliasu przesłoni go na liście. Kontynuować?`,uTe=((e,t={})=>(t.locale??J())===`pl`?lTe(e):cTe(e)),dTe=e=>`A virtual model for "${e?.source}" already exists. Choose a different Source.`,fTe=e=>`Model wirtualny dla „${e?.source}” już istnieje. Wybierz inne Źródło.`,pTe=((e,t={})=>(t.locale??J())===`pl`?fTe(e):dTe(e)),mTe=e=>`A model named "${e?.name}" already exists. Renaming to that name will mask the model in the list. Continue?`,hTe=e=>`Model „${e?.name}” już istnieje. Zmiana nazwy przesłoni go na liście. Kontynuować?`,gTe=((e,t={})=>(t.locale??J())===`pl`?hTe(e):mTe(e)),_Te=e=>`Remove the virtual model for "${e?.source}"? This reverts to inherited/default behavior.`,vTe=e=>`Usunąć model wirtualny dla „${e?.source}”? Przywróci to zachowanie dziedziczone/domyślne.`,yTe=((e,t={})=>(t.locale??J())===`pl`?vTe(e):_Te(e)),bTe=e=>`Remove the model pricing override for "${e?.selector}"?`,xTe=e=>`Usunąć nadpisanie cen modelu dla „${e?.selector}”?`,STe=((e,t={})=>(t.locale??J())===`pl`?xTe(e):bTe(e)),qY=[[`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`}]],CTe=[[`path`,{d:`M12 5v14`}],[`path`,{d:`m19 12-7 7-7-7`}]],wTe=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]],TTe=[[`path`,{d:`M5 12h14`}],[`path`,{d:`m12 5 7 7-7 7`}]],ETe=[[`path`,{d:`m5 12 7-7 7 7`}],[`path`,{d:`M12 19V5`}]],JY=[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`}],[`path`,{d:`M12 22V12`}]],YY=[[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`}],[`line`,{x1:`8`,x2:`16`,y1:`6`,y2:`6`}],[`line`,{x1:`16`,x2:`16`,y1:`14`,y2:`18`}],[`path`,{d:`M16 10h.01`}],[`path`,{d:`M12 10h.01`}],[`path`,{d:`M8 10h.01`}],[`path`,{d:`M12 14h.01`}],[`path`,{d:`M8 14h.01`}],[`path`,{d:`M12 18h.01`}],[`path`,{d:`M8 18h.01`}]],DTe=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}],[`path`,{d:`M8 14h.01`}],[`path`,{d:`M12 14h.01`}],[`path`,{d:`M16 14h.01`}],[`path`,{d:`M8 18h.01`}],[`path`,{d:`M12 18h.01`}],[`path`,{d:`M16 18h.01`}]],OTe=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}]],kTe=[[`path`,{d:`M13 17V9`}],[`path`,{d:`M18 17V5`}],[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M8 17v-3`}]],ATe=[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M18 17V9`}],[`path`,{d:`M13 17V5`}],[`path`,{d:`M8 17v-3`}]],jTe=[[`path`,{d:`M5 21v-6`}],[`path`,{d:`M12 21V9`}],[`path`,{d:`M19 21V3`}]],XY=[[`path`,{d:`M20 6 9 17l-5-5`}]],ZY=[[`path`,{d:`m6 9 6 6 6-6`}]],MTe=[[`path`,{d:`m15 18-6-6 6-6`}]],QY=[[`path`,{d:`m9 18 6-6-6-6`}]],NTe=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`}],[`path`,{d:`m9 11 3 3L22 4`}]],$Y=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m9 12 2 2 4-4`}]],eX=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8`}],[`path`,{d:`M12 18V6`}]],PTe=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 6v6l4 2`}]],tX=[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`}]],nX=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 15 21.84`}],[`path`,{d:`M21 5V8`}],[`path`,{d:`M21 12L18 17H22L19 22`}],[`path`,{d:`M3 12A9 3 0 0 0 14.59 14.87`}]],rX=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`}]],FTe=[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`}],[`path`,{d:`M10 9H8`}],[`path`,{d:`M16 13H8`}],[`path`,{d:`M16 17H8`}]],iX=[[`path`,{d:`m12 14 4-4`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`}]],ITe=[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}],[`path`,{d:`M12 7v5l4 2`}]],LTe=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]],aX=[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]],RTe=[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`}]],zTe=[[`path`,{d:`M3 5h.01`}],[`path`,{d:`M3 12h.01`}],[`path`,{d:`M3 19h.01`}],[`path`,{d:`M8 5h13`}],[`path`,{d:`M8 12h13`}],[`path`,{d:`M8 19h13`}]],oX=[[`circle`,{cx:`12`,cy:`16`,r:`1`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`}]],BTe=[[`path`,{d:`m16 17 5-5-5-5`}],[`path`,{d:`M21 12H9`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`}]],sX=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`m21 3-7 7`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M9 21H3v-6`}]],VTe=[[`path`,{d:`m14 10 7-7`}],[`path`,{d:`M20 10h-6V4`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M4 14h6v6`}]],HTe=[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`}]],UTe=[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`}]],cX=[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`}],[`path`,{d:`m15 5 4 4`}]],WTe=[[`path`,{d:`M12 22v-5`}],[`path`,{d:`M15 8V2`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`}],[`path`,{d:`M9 8V2`}]],lX=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]],GTe=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]],uX=[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`}],[`path`,{d:`M21 3v5h-5`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`}],[`path`,{d:`M8 16H3v5`}]],dX=[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}]],fX=[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`}]],KTe=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]],qTe=[[`path`,{d:`m10.852 14.772-.383.923`}],[`path`,{d:`M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923`}],[`path`,{d:`m13.148 9.228.383-.923`}],[`path`,{d:`m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544`}],[`path`,{d:`m14.772 10.852.923-.383`}],[`path`,{d:`m14.772 13.148.923.383`}],[`path`,{d:`M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5`}],[`path`,{d:`M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5`}],[`path`,{d:`M6 18h.01`}],[`path`,{d:`M6 6h.01`}],[`path`,{d:`m9.228 10.852-.923-.383`}],[`path`,{d:`m9.228 13.148-.923.383`}]],JTe=[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`}]],YTe=[[`path`,{d:`M14 17H5`}],[`path`,{d:`M19 7h-9`}],[`circle`,{cx:`17`,cy:`17`,r:`3`}],[`circle`,{cx:`7`,cy:`7`,r:`3`}]],XTe=[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]],pX=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}],[`path`,{d:`m9 12 2 2 4-4`}]],ZTe=[[`path`,{d:`m2 2 20 20`}],[`path`,{d:`M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71`}],[`path`,{d:`M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264`}]],QTe=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}]],$Te=[[`path`,{d:`m18 14 4 4-4 4`}],[`path`,{d:`m18 2 4 4-4 4`}],[`path`,{d:`M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22`}],[`path`,{d:`M2 6h1.972a4 4 0 0 1 3.6 2.2`}],[`path`,{d:`M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45`}]],mX=[[`circle`,{cx:`12`,cy:`12`,r:`4`}],[`path`,{d:`M12 2v2`}],[`path`,{d:`M12 20v2`}],[`path`,{d:`m4.93 4.93 1.41 1.41`}],[`path`,{d:`m17.66 17.66 1.41 1.41`}],[`path`,{d:`M2 12h2`}],[`path`,{d:`M20 12h2`}],[`path`,{d:`m6.34 17.66-1.41 1.41`}],[`path`,{d:`m19.07 4.93-1.41 1.41`}]],eEe=[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]],hX=[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`}],[`circle`,{cx:`12`,cy:`14`,r:`8`}]],gX=[[`path`,{d:`M10 11v6`}],[`path`,{d:`M14 11v6`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`}],[`path`,{d:`M3 6h18`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`}]],tEe=[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`}],[`path`,{d:`M12 9v4`}],[`path`,{d:`M12 17h.01`}]],nEe=[[`circle`,{cx:`12`,cy:`8`,r:`5`}],[`path`,{d:`M20 21a8 8 0 0 0-16 0`}]],rEe=[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`}],[`circle`,{cx:`12`,cy:`7`,r:`4`}]],_X=[[`path`,{d:`M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1`}],[`path`,{d:`M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4`}]],vX=[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`}],[`path`,{d:`m14 7 3 3`}],[`path`,{d:`M5 6v4`}],[`path`,{d:`M19 14v4`}],[`path`,{d:`M10 2v2`}],[`path`,{d:`M7 8H3`}],[`path`,{d:`M21 16h-4`}],[`path`,{d:`M11 3H9`}]],iEe=[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`}]],yX=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]],aEe=B(``),oEe=B(`
                        `,1);function sEe(e,t){O(t,!0);let n=zi(t,`compact`,3,!1),r=[{value:`light`,icon:mX,label:qI()},{value:`system`,icon:HTe,label:XI()},{value:`dark`,icon:UTe,label:$I()}],i=A(()=>r.find(e=>e.value===Yi.theme)||r[1]),a=A(()=>nL({theme:R(i).label}));var o=oEe(),s=F(o);let c;W(s,21,()=>r,e=>e.value,(e,t)=>{var n=aEe();let r;q(P(n),{get icon(){return R(t).icon},class:`theme-icon`}),D(n),L(()=>{r=G(n,1,`theme-btn svelte-1keql7b`,null,r,{active:Yi.theme===R(t).value}),K(n,`aria-pressed`,Yi.theme===R(t).value),K(n,`title`,R(t).label),K(n,`aria-label`,R(t).label)}),z(`click`,n,()=>Yi.set(R(t).value)),V(e,n)}),D(s);var l=I(s,2);let u;q(P(l),{get icon(){return R(i).icon},class:`theme-icon`}),D(l),L(e=>{c=G(s,1,`theme-toggle svelte-1keql7b`,null,c,{"is-compact":n()}),K(s,`aria-label`,e),u=G(l,1,`theme-toggle-mobile svelte-1keql7b`,null,u,{"is-compact":n()}),K(l,`title`,R(a)),K(l,`aria-label`,R(a))},[()=>WI()]),z(`click`,l,()=>Yi.toggle()),V(e,o),k()}xr([`click`]);function bX(){return typeof window>`u`?`/`:window.GOMODEL_BASE_PATH||`/`}function xX(e){let t=bX();return!e||e.charAt(0)!==`/`||e.indexOf(`//`)===0||t===`/`||e===t||e.indexOf(t+`/`)===0?e:t+e}function cEe(e){let t=bX();return t===`/`||!e?e:e===t?`/`:e.indexOf(t+`/`)===0?e.slice(t.length)||`/`:e}function lEe(){return typeof window>`u`?``:window.GOMODEL_VERSION||``}function uEe(){return typeof window>`u`?!1:window.GOMODEL_DEMO_MODE===!0}var dEe=[`overview`,`usage`,`budgets`,`rate-limits`,`models`,`workflows`,`audit-logs`,`guardrails`,`mcp-servers`,`providers-config`,`auth-keys`,`settings`];function fEe(e){return e.startsWith(`/admin/static/`)?`/`+e.slice(14).replace(/^\/+/,``):e}function SX(e){let t=fEe(cEe(e)).replace(/\/$/,``).replace(`/admin/dashboard`,``).replace(/^\//,``).split(`/`),n=t[0];n===`audit`&&(n=`audit-logs`);let r=t[1]||null;return n===`settings`&&r===`guardrails`?{page:`guardrails`,sub:null}:(n=dEe.includes(n)?n:`overview`,{page:n,sub:r})}var CX=new class{#e=j(`overview`);get page(){return R(this.#e)}set page(e){M(this.#e,e,!0)}#t=j(null);get sub(){return R(this.#t)}set sub(e){M(this.#t,e,!0)}init(){let{page:e,sub:t}=SX(window.location.pathname);this.page=e,this.sub=t,window.addEventListener(`popstate`,()=>{let{page:e,sub:t}=SX(window.location.pathname);this.page=e,this.sub=t})}navigate(e,t=null){let n=t?`/`+t:``;history.pushState(null,``,xX(`/admin/dashboard/`+e+n)),this.page=e,this.sub=t}},wX=`X-GoModel-Auth-Login`,TX=`X-GoModel-Auth-Logout`,EX=`X-GoModel-Auth-User`;function DX(e){let t=String(e||``).trim();return!t.startsWith(`/`)||t.startsWith(`//`)||t.includes(`\\`)?``:t}function pEe(e,t=globalThis.location){let n=DX(e),r=DX(t?.pathname);if(!n||!r)return n;let i=String(t?.search||``),a=r+(i.startsWith(`?`)?i:``),o=n.indexOf(`#`),s=o<0?n:n.slice(0,o),c=o<0?``:n.slice(o);return`${s}${s.includes(`?`)?`&`:`?`}return_to=${encodeURIComponent(a)}${c}`}function mEe(e){let t=e?.headers;if(!t||typeof t.has!=`function`)return null;let n={};return t.has(wX)&&(n.loginURL=DX(t.get(wX))),t.has(TX)&&(n.logoutURL=DX(t.get(TX))),t.has(EX)&&(n.user=String(t.get(EX)||``).trim().slice(0,256)),n}var OX=`gomodel_api_key`;function kX(e){let t=String(e||``).trim();if(/^Bearer\s*$/i.test(t))return``;let n=t.match(/^Bearer\s+(.+)$/i);return n?n[1].trim():t}var Y=new class{#e=j(``);get apiKey(){return R(this.#e)}set apiKey(e){M(this.#e,e,!0)}#t=j(!1);get needsAuth(){return R(this.#t)}set needsAuth(e){M(this.#t,e,!0)}#n=j(!1);get authError(){return R(this.#n)}set authError(e){M(this.#n,e,!0)}#r=j(``);get authErrorMessage(){return R(this.#r)}set authErrorMessage(e){M(this.#r,e,!0)}#i=j(!1);get dialogOpen(){return R(this.#i)}set dialogOpen(e){M(this.#i,e,!0)}#a=j(``);get externalLoginURL(){return R(this.#a)}set externalLoginURL(e){M(this.#a,e,!0)}#o=j(``);get externalLogoutURL(){return R(this.#o)}set externalLogoutURL(e){M(this.#o,e,!0)}#s=j(``);get externalUser(){return R(this.#s)}set externalUser(e){M(this.#s,e,!0)}#c=j(0);get generation(){return R(this.#c)}set generation(e){M(this.#c,e,!0)}#l=j(0);get refreshTick(){return R(this.#l)}set refreshTick(e){M(this.#l,e,!0)}init(){try{this.apiKey=kX(localStorage.getItem(OX)||``)}catch{this.apiKey=``}}hasApiKey(){return kX(this.apiKey)!==``}save(){this.apiKey=kX(this.apiKey);try{localStorage.setItem(OX,this.apiKey)}catch{}}selectExternalAuthentication(){this.apiKey=``;try{localStorage.removeItem(OX)}catch{}this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!0}openDialog(){this.dialogOpen=!0}closeDialog(){this.dialogOpen=!1}submit(){let e=kX(this.apiKey);return e?(this.apiKey=e,this.save(),this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!1,this.closeDialog(),this.refresh(),!0):(this.apiKey=``,this.authError=!0,this.authErrorMessage=``,this.needsAuth=!0,this.openDialog(),!1)}refresh(){this.refreshTick++}observeResponse(e){let t=mEe(e);t&&(Object.hasOwn(t,`loginURL`)&&(this.externalLoginURL=t.loginURL),Object.hasOwn(t,`logoutURL`)&&(this.externalLogoutURL=t.logoutURL),Object.hasOwn(t,`user`)&&(this.externalUser=t.user))}handleUnauthorized(e,t=``){return typeof e==`number`&&e{r[e.type]=e.value}),r.year+`-`+r.month+`-`+r.day}formatTimestampInTimeZone(e,t){if(e==null)return`-`;let n=new Date(e);if(Number.isNaN(n.getTime()))return`-`;let r=BX(`en-CA`,{timeZone:VX(t)?t:IX,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hourCycle:`h23`}).formatToParts(n),i={};return r.forEach(e=>{i[e.type]=e.value}),i.year+`-`+i.month+`-`+i.day+` `+i.hour+`:`+i.minute+`:`+i.second}formatTimestamp(e){return this.formatTimestampInTimeZone(e,this.effectiveTimezone())}currentDateKey(e){return this.dateKeyInTimeZone(e||new Date,this.effectiveTimezone())}dateKeyToDate(e){return jX(e)}dateToDateKey(e){return MX(e)}addDaysToDateKey(e,t){return NX(e,t)}todayDate(){return this.dateKeyToDate(this.currentDateKey())}startOfMonthDate(e){let t=e instanceof Date?e:this.todayDate();return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1))}timeZoneOffsetLabel(e,t){let n=VX(e)?e:IX;try{let e=BX(`en-US`,{timeZone:n,hour:`2-digit`,minute:`2-digit`,hourCycle:`h23`,timeZoneName:`longOffset`}).formatToParts(t||new Date).find(e=>e.type===`timeZoneName`);if(!e||!e.value)return`UTC+00:00`;let r=e.value.replace(`GMT`,`UTC`);return r===`UTC`?`UTC+00:00`:r}catch{return`UTC+00:00`}}timeZoneOffsetMinutes(e,t){let n=/^UTC([+-])(\d{2}):(\d{2})$/.exec(this.timeZoneOffsetLabel(e,t));if(!n)return 0;let r=Number(n[2])*60+Number(n[3]);return n[1]===`-`?-r:r}timeZoneOptionLabel(e,t){return e+` (`+this.timeZoneOffsetLabel(e,t)+`)`}detectedTimeZoneLabel(){return this.timeZoneOptionLabel(this.detectedTimezone)}effectiveTimeZoneLabel(){return this.timeZoneOptionLabel(this.effectiveTimezone())}ensureOptions(){if(this.optionsLoaded)return;let e=new Date,t=[];try{typeof Intl.supportedValuesOf==`function`&&(t=Intl.supportedValuesOf(`timeZone`))}catch{t=[]}[IX,this.detectedTimezone,this.override].forEach(e=>{e&&t.indexOf(e)===-1&&VX(e)&&t.push(e)}),t=t.filter(e=>VX(e)),t.sort((t,n)=>{let r=this.timeZoneOffsetMinutes(t,e)-this.timeZoneOffsetMinutes(n,e);return r===0?t.localeCompare(n):r}),this.options=t.map(t=>({value:t,label:this.timeZoneOptionLabel(t,e)})),this.optionsLoaded=!0}saveOverride(){let e=Wi();if(e)if(this.override&&VX(this.override))try{e.setItem(LX,this.override)}catch{}else{try{e.removeItem(LX)}catch{}this.override=``}this.optionsLoaded=!1,this.ensureOptions()}clearOverride(){let e=Wi();if(e)try{e.removeItem(LX)}catch{}this.override=``}calendarTimeZoneText(){let e=this.override?`manual override`:`auto-detected`;return`Activity grouped by `+this.effectiveTimeZoneLabel()+` (`+e+`)`}};function UX(e,t){let n=e&&typeof e==`object`&&e.error&&e.error.message;return(typeof n==`string`?n.trim():``)||t}function WX(e,t){let n=e&&e.data;if(n&&typeof n==`object`){let e=[n.message,n.error,n.error&&typeof n.error==`object`?n.error.message:null];for(let t of e)if(typeof t==`string`&&t.trim())return t.trim()}return t}function _Ee(){let e={"Content-Type":`application/json`},t=kX(Y.apiKey);return t&&(e.Authorization=`Bearer `+t),e[`X-GoModel-Timezone`]=HX.effectiveTimezone(),e}function GX(e,t={}){return fetch(xX(e),{...t,headers:{..._Ee(),...t.headers||{}}})}async function KX(e,t,{label:n=e,parse:r=!0}={}){let i=Y.generation,a=await GX(e,t),o=ie.trim()).filter(Boolean);return e.length>0?e:yEe}cacheVisible(){if(this.flag(`CACHE_ENABLED`)!==``)return this.booleanFlag(`CACHE_ENABLED`,!1);let e=this.flag(`REDIS_URL`),t=this.flag(`SEMANTIC_CACHE_ENABLED`);return e===``&&t===``||this.booleanFlag(`REDIS_URL`,!1)||this.booleanFlag(`SEMANTIC_CACHE_ENABLED`,!1)}auditVisible(){return this.booleanFlag(`LOGGING_ENABLED`,!0)}usageVisible(){return this.booleanFlag(`USAGE_ENABLED`,!0)}budgetsVisible(){return this.booleanFlag(`BUDGETS_ENABLED`,!0)}rateLimitsVisible(){return this.booleanFlag(`RATE_LIMITS_ENABLED`,!0)}guardrailsVisible(){return this.booleanFlag(`GUARDRAILS_ENABLED`,!0)}mcpVisible(){return this.booleanFlag(`MCP_ENABLED`,!0)}liveLogsVisible(){return this.booleanFlag(`DASHBOARD_LIVE_LOGS_ENABLED`,!0)}fetch(){return this.#n||=this.#r().finally(()=>{this.#n=null}),this.#n}async ensureLoaded(){if(this.#n){await this.#n;return}this.loaded||await this.fetch()}async#r(){let e=typeof AbortController==`function`?new AbortController:null,t=e?setTimeout(()=>e.abort(),1e4):null;try{let t=await qX(`/admin/runtime/config`,{label:`dashboard config`,signal:e?e.signal:void 0});if(t.stale)return;if(!t.ok){this.config={},this.loaded=!1;return}let n=t.data,r={};for(let e of vEe)n&&typeof n==`object`&&!Array.isArray(n)&&n[e]!==void 0&&n[e]!==null&&(r[e]=String(n[e]).trim());this.config=r,this.loaded=!0}catch(e){console.error(`Failed to fetch dashboard config:`,e),this.config={},this.loaded=!1}finally{t!==null&&clearTimeout(t)}}},bEe=[{page:`overview`,label:La,icon:RTe},{page:`providers-config`,label:Ba,icon:qTe},{page:`models`,label:Ua,icon:JY},{page:`audit-logs`,label:Ka,icon:ITe},{page:`usage`,label:Ya,icon:ATe},{page:`budgets`,label:Qa,icon:_X,visible:()=>XX.budgetsVisible()},{page:`rate-limits`,label:to,icon:iX,visible:()=>XX.rateLimitsVisible()},{page:`auth-keys`,label:io,icon:aX},{page:`workflows`,label:so,icon:iEe},{page:`guardrails`,label:uo,icon:pX,visible:()=>XX.guardrailsVisible()},{page:`mcp-servers`,label:mo,icon:WTe,visible:()=>XX.mcpVisible()},{page:`settings`,label:_o,icon:XTe}],xEe=B(` `),SEe=B(`
                        `),CEe=B(``),wEe=B(`
                        `),TEe=B(` `,1);function EEe(e,t){O(t,!0);let n=A(()=>bEe.filter(e=>!e.visible||e.visible())),r=j(null),i=0,a=0,o=!1;function s(e){e.button===0&&(e.preventDefault(),M(r,e.pointerId,!0),i=e.clientX,a=Xi.width,o=!1,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`sidebar-resizing`))}function c(e){e.pointerId===R(r)&&(!o&&Math.abs(e.clientX-i)<=4||(o=!0,Xi.setWidth(Ji(a,i,e.clientX))))}function l(e){R(r)===null||e.pointerId!==void 0&&e.pointerId!==R(r)||(M(r,null),document.body.classList.remove(`sidebar-resizing`),Xi.setWidth(Xi.width,!0))}function u(){if(o){o=!1;return}Xi.toggle()}function d(e){let t;if(e.key===`ArrowLeft`)t=Xi.width-12;else if(e.key===`ArrowRight`)t=Xi.width+12;else if(e.key===`Home`)t=60;else if(e.key===`End`)t=240;else if(e.key===`Enter`||e.key===` `){e.preventDefault(),Xi.toggle();return}else return;e.preventDefault(),Xi.setWidth(t,!0)}var f=TEe(),p=F(f);let m;var h=P(p),g=P(h);Ui(P(g),{}),D(g);var _=I(g,4),v=P(_,!0);D(_),D(h);var y=I(h,2);W(y,21,()=>R(n),e=>e.page,(e,t)=>{var n=xEe();let r;var i=P(n);q(i,{get icon(){return R(t).icon},class:`nav-icon`});var a=I(i,2),o=P(a,!0);D(a),D(n),L((e,i,a)=>{K(n,`href`,e),r=G(n,1,`nav-item svelte-1nwtzae`,null,r,{active:CX.page===R(t).page}),K(n,`title`,i),H(o,a)},[()=>xX(`/admin/dashboard/`+R(t).page),()=>R(t).label(),()=>R(t).label()]),z(`click`,n,e=>{e.preventDefault(),CX.navigate(R(t).page)}),V(e,n)}),D(y);var b=I(y,2),x=P(b);sEe(x,{get compact(){return Xi.collapsed}});var S=I(x,2),C=e=>{var t=CEe(),n=P(t),r=e=>{var t=SEe(),n=P(t);q(n,{get icon(){return nEe},class:`api-key-open-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(()=>{K(t,`title`,Y.externalUser),H(i,Y.externalUser)}),V(e,t)};U(n,e=>{Y.externalUser&&e(r)});var i=I(n,2),a=P(i);q(a,{get icon(){return BTe},class:`api-key-open-icon`});var o=I(a,2),s=P(o,!0);D(o),D(i),D(t),L((e,t,n)=>{K(i,`href`,e),K(i,`aria-label`,t),H(s,n)},[()=>xX(Y.externalLogoutURL),()=>kI(),()=>kI()]),V(e,t)};U(S,e=>{Y.externalLogoutURL&&e(C)});var w=I(S,2),T=e=>{var t=wEe(),n=P(t),r=P(n);q(r,{get icon(){return oX},class:`api-key-open-icon`});var i=I(r,2),a=P(i,!0);D(i),D(n),D(t),L((e,t)=>{K(n,`aria-label`,e),H(a,t)},[()=>Y.needsAuth?MI():FI(),()=>Y.needsAuth?MI():FI()]),z(`click`,n,()=>Y.openDialog()),V(e,t)},ee=A(()=>Y.needsAuth||Y.hasApiKey());U(w,e=>{R(ee)&&e(T)}),D(b),D(p);var E=I(p,2);L((e,t,n)=>{m=G(p,1,`sidebar svelte-1nwtzae`,null,m,{"sidebar-collapsed":Xi.collapsed,"sidebar-resizing":R(r)!==null}),H(v,e),K(E,`title`,t),K(E,`aria-label`,n),K(E,`aria-valuemin`,60),K(E,`aria-valuemax`,240),K(E,`aria-valuenow`,Xi.width)},[()=>Pa(),()=>VI(),()=>RI()]),z(`pointerdown`,E,s),z(`pointermove`,E,c),z(`pointerup`,E,l),br(`pointercancel`,E,l),br(`lostpointercapture`,E,l),z(`keydown`,E,d),z(`click`,E,u),V(e,f),k()}xr([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var DEe=B(``);function ZX(e,t){O(t,!0);let n=zi(t,`label`,3,`Close`),r=zi(t,`class`,3,``),i=zi(t,`iconClass`,3,`table-icon-svg`),a=zi(t,`disabled`,3,!1),o=zi(t,`el`,15,null);var s=DEe();q(P(s),{get icon(){return yX},get class(){return i()}}),D(s),Ii(s,e=>o(e),()=>o()),L(()=>{G(s,1,li([`dialog-close-btn`,r()]),`svelte-11l1bb5`),K(s,`aria-label`,n()),s.disabled=a()}),z(`click`,s,function(...e){t.onclick?.apply(this,e)}),V(e,s),k()}xr([`click`]);function OEe(e){return t=>{let n=n=>{t.contains(n.target)||e()},r=t=>{t.key===`Escape`&&e()};return document.addEventListener(`click`,n,!0),window.addEventListener(`keydown`,r),()=>{document.removeEventListener(`click`,n,!0),window.removeEventListener(`keydown`,r)}}}function kEe(e=`[data-modal-autofocus]`){return t=>{let n=t.querySelector(e);n&&typeof n.focus==`function`&&n.focus()}}var AEe=B(`
                        `,1);function QX(e,t){O(t,!0);let n=zi(t,`open`,3,!1),r=zi(t,`variant`,3,`editor`),i=zi(t,`closeOnBackdrop`,3,!0),a=A(()=>r()===`auth`?`auth-dialog-backdrop`:`editor-modal-backdrop`),o=A(()=>r()===`auth`?`auth-dialog-shell`:`editor-modal-shell`);mn(()=>{if(!n())return;let e=or(()=>Zi.opened()),r=n=>{n.key===`Escape`&&Zi.isTop(e)&&t.onclose?.()};return window.addEventListener(`keydown`,r),()=>{Zi.closed(e),window.removeEventListener(`keydown`,r)}});function s(e){i()&&e.target===e.currentTarget&&t.onclose?.()}var c=Or(),l=F(c),u=e=>{var n=AEe(),r=F(n),i=I(r,2);Kr(P(i),()=>t.children??f),D(i),si(i,kEe),L(()=>{G(r,1,li(R(a)),`svelte-17e0w4c`),G(i,1,li(R(o)),`svelte-17e0w4c`)}),z(`click`,i,s),V(e,n)};U(l,e=>{n()&&e(u)}),V(e,c),k()}xr([`click`]);var jEe=B(`
                        `,1),MEe=B(``),NEe=B(``);function PEe(e,t){O(t,!0),QX(e,{get open(){return Y.dialogOpen},variant:`auth`,onclose:()=>Y.closeDialog(),children:(e,t)=>{var n=NEe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a),D(i);var s=I(i,2);{let e=A(()=>_L());ZX(s,{get label(){return R(e)},onclick:()=>Y.closeDialog(),class:`auth-dialog-close`,iconClass:``})}D(r);var c=I(r,2),l=P(c),u=e=>{var t=jEe(),n=F(t),r=P(n);q(r,{get icon(){return aX}});var i=I(r,2),a=P(i,!0);D(i),D(n);var o=I(n,2),s=P(o),c=P(s,!0);D(s),D(o),L((e,t,r)=>{K(n,`href`,e),H(a,t),H(c,r)},[()=>pEe(xX(Y.externalLoginURL)),()=>bL(),()=>CL()]),z(`click`,n,()=>Y.selectExternalAuthentication()),V(e,t)};U(l,e=>{Y.externalLoginURL&&e(u)});var d=I(l,2),f=P(d);q(f,{get icon(){return oX},class:`auth-dialog-input-icon`});var p=I(f,2);wi(p),D(d);var m=I(d,2),h=e=>{var t=MEe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Y.authErrorMessage||ML()]),V(e,t)};U(m,e=>{Y.authError&&e(h)});var g=I(m,2),_=P(g,!0);D(g);var v=I(g,2),y=P(v),b=P(y);q(b,{get icon(){return XY},class:`auth-dialog-submit-icon`});var x=I(b,2),S=P(x,!0);D(x),D(y),D(v),D(c),D(n),L((e,t,n,r,i)=>{H(o,e),K(p,`placeholder`,t),K(p,`aria-label`,n),H(_,r),H(S,i)},[()=>Y.needsAuth?dL():mL(),()=>kL(),()=>EL(),()=>FL(),()=>Y.needsAuth?RL():VL()]),br(`submit`,c,e=>{e.preventDefault(),Y.submit()}),ji(p,()=>Y.apiKey,e=>Y.apiKey=e),V(e,n)},$$slots:{default:!0}}),k()}xr([`click`]);function $X(){return{open:!1,title:``,titleId:`typedConfirmationDialogTitle`,inputId:`typed-confirmation-input`,message:``,requiredText:``,value:``,confirmLabel:`Confirm`,icon:tEe,dialogClass:``,loading:!1,onConfirm:null,onClose:null}}var eZ=new class{#e=j(N($X()));get state(){return R(this.#e)}set state(e){M(this.#e,e,!0)}#t=j(``);get error(){return R(this.#t)}set error(e){M(this.#t,e,!0)}open(e){this.error=``,this.state={...$X(),open:!0,...e||{}}}close(){let e=this.state;typeof e.onClose==`function`&&e.onClose(),this.state=$X(),this.error=``}ready(){return String(this.state.value||``).trim().toLowerCase()===String(this.state.requiredText||``).trim().toLowerCase()}inputLabel(){return`Type `+String(this.state.requiredText||``).trim()+` to confirm`}async submit(){if(!this.ready()){this.error=this.inputLabel()+`.`;return}if(typeof this.state.onConfirm==`function`){this.state.loading=!0;try{await this.state.onConfirm()}finally{this.state.loading=!1}}}},FEe=B(`

                        `),IEe=B(``),LEe=B(`

                        `);function REe(e,t){O(t,!0);let n=A(()=>eZ.state);QX(e,{get open(){return R(n).open},variant:`auth`,onclose:()=>eZ.close(),children:(e,t)=>{var r=LEe(),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2);{let e=A(()=>WL());ZX(s,{get label(){return R(e)},onclick:()=>eZ.close(),class:`auth-dialog-close`,iconClass:``})}D(i);var c=I(i,2),l=P(c),u=e=>{var t=FEe(),r=P(t,!0);D(t),L(()=>H(r,R(n).message)),V(e,t)};U(l,e=>{R(n).message&&e(u)});var d=I(l,2),f=P(d),p=P(f,!0);D(f);var m=I(f,2);wi(m),D(d);var h=I(d,2),g=e=>{var t=IEe(),n=P(t,!0);D(t),L(()=>H(n,eZ.error)),V(e,t)};U(h,e=>{eZ.error&&e(g)});var _=I(h,2),v=P(_),y=P(v,!0);D(v);var b=I(v,2),x=P(b);q(x,{get icon(){return R(n).icon},class:`form-action-icon`});var S=I(x,2),C=P(S,!0);D(S),D(b),D(_),D(c),D(r),L((e,t,i)=>{G(r,1,`auth-dialog ${R(n).dialogClass??``}`),K(r,`aria-labelledby`,R(n).titleId),K(a,`id`,R(n).titleId),H(o,R(n).title),K(f,`for`,R(n).inputId),H(p,e),K(m,`id`,R(n).inputId),H(y,t),b.disabled=i,H(C,R(n).confirmLabel)},[()=>eZ.inputLabel(),()=>Ta(),()=>R(n).loading||!eZ.ready()]),br(`submit`,c,e=>{e.preventDefault(),eZ.submit()}),ji(m,()=>eZ.state.value,e=>eZ.state.value=e),z(`click`,v,()=>eZ.close()),V(e,r)},$$slots:{default:!0}}),k()}xr([`click`]);var zEe=e=>e;function tZ(e){let t=e-1;return t*t*t+1}function nZ(e){let t=typeof e==`string`&&e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);return t?[parseFloat(t[1]),t[2]||`px`]:[e,`px`]}function BEe(e,{delay:t=0,duration:n=400,easing:r=zEe}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function rZ(e,{delay:t=0,duration:n=400,easing:r=tZ,x:i=0,y:a=0,opacity:o=0}={}){let s=getComputedStyle(e),c=+s.opacity,l=s.transform===`none`?``:s.transform,u=c*(1-o),[d,f]=nZ(i),[p,m]=nZ(a);return{delay:t,duration:n,easing:r,css:(e,t)=>` - transform: ${l} translate(${(1-e)*d}${f}, ${(1-e)*p}${m}); - opacity: ${c-u*t}`}}function iZ(e,{delay:t=0,duration:n=400,easing:r=tZ,axis:i=`y`}={}){let a=getComputedStyle(e),o=+a.opacity,s=i===`y`?`height`:`width`,c=parseFloat(a[s]),l=i===`y`?[`top`,`bottom`]:[`left`,`right`],u=l.map(e=>`${e[0].toUpperCase()}${e.slice(1)}`),d=parseFloat(a[`padding${u[0]}`]),f=parseFloat(a[`padding${u[1]}`]),p=parseFloat(a[`margin${u[0]}`]),m=parseFloat(a[`margin${u[1]}`]),h=parseFloat(a[`border${u[0]}Width`]),g=parseFloat(a[`border${u[1]}Width`]);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(e*20,1)*o};${s}: ${e*c}px;padding-${l[0]}: ${e*d}px;padding-${l[1]}: ${e*f}px;margin-${l[0]}: ${e*p}px;margin-${l[1]}: ${e*m}px;border-${l[0]}-width: ${e*h}px;border-${l[1]}-width: ${e*g}px;min-${s}: 0`}}function VEe(e){return--e*e*(2.70158*e+1.70158)+1}function aZ(e){let t=e-1;return t*t*t+1}var HEe=5e3,UEe=8e3,oZ=new class{#e=j(N([]));get toasts(){return R(this.#e)}set toasts(e){M(this.#e,e,!0)}#t=0;#n=new Map;success(e){this.#r(`success`,e,HEe)}error(e){this.#r(`error`,e,UEe)}dismiss(e){let t=this.#n.get(e);t&&(clearTimeout(t),this.#n.delete(e)),this.toasts=this.toasts.filter(t=>t.id!==e)}#r(e,t,n){let r=String(t||``).trim();if(!r)return;let i=this.toasts.find(t=>t.kind===e&&t.text===r);i&&this.dismiss(i.id);let a=++this.#t;this.toasts=[...this.toasts,{id:a,kind:e,text:r}],this.#n.set(a,setTimeout(()=>this.dismiss(a),n))}},WEe=B(`
                        `),GEe=B(`
                        `);function KEe(e,t){O(t,!0);var n=GEe();W(n,21,()=>oZ.toasts,e=>e.id,(e,t)=>{var n=WEe();let r;var i=P(n),a=P(i,!0);D(i);var o=I(i,2);D(n),L(e=>{r=G(n,1,`flash-toast svelte-1i257xg`,null,r,{"flash-toast-success":R(t).kind===`success`,"flash-toast-error":R(t).kind===`error`}),K(n,`role`,R(t).kind===`error`?`alert`:`status`),K(n,`aria-live`,R(t).kind===`error`?`assertive`:`polite`),H(a,R(t).text),K(o,`aria-label`,e)},[()=>qL()]),z(`click`,o,()=>oZ.dismiss(R(t).id)),ai(1,n,()=>rZ,()=>({y:-24,duration:360,easing:VEe})),ai(2,n,()=>BEe,()=>({duration:150})),V(e,n)}),D(n),V(e,n),k()}xr([`click`]);var qEe=B(``);function JEe(e,t){O(t,!0);var n=Or(),r=F(n),i=e=>{var t=qEe(),n=I(P(t),2),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a),D(n);var s=I(n,2);D(t),L((e,n,r,a)=>{K(t,`aria-label`,e),H(i,n),H(o,r),K(s,`aria-label`,a)},[()=>XL(),()=>$L(),()=>nR(),()=>aR()]),V(e,t)},a=A(()=>uEe());U(r,e=>{R(a)&&e(i)}),V(e,n),k()}function sZ(e){return String(e||``).split(`,`).map(e=>e.trim()).filter(e=>e)}function cZ(e){if(e==null||e===``)return`Not captured`;if(typeof e==`string`){let t=e.trim();if(t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`))try{return JSON.stringify(JSON.parse(t),null,2)}catch{return e}return e}try{return JSON.stringify(e,null,2)}catch{return String(e)}}function lZ(e){return e==null||e===void 0?`-`:e.toLocaleString()}function uZ(e){if(e==null)return`---`;let t=Number(e);return Number.isFinite(t)?t>0&&t<1e-4?`<$0.0001`:`$`+t.toFixed(4).replace(/(\.\d{2}\d*?)0+$/,`$1`):`---`}function dZ(e){return e==null||e===void 0?`—`:`$`+e.toFixed(2)}function fZ(e){return e==null||e===void 0?`—`:e<.01?`$`+e.toFixed(6):`$`+e.toFixed(4)}function pZ(e){if(e==null||e===``)return`-`;let t=Number(e);if(!Number.isFinite(t))return`-`;let n=Math.abs(t),r=[{threshold:1e9,suffix:`B`},{threshold:1e6,suffix:`M`},{threshold:1e3,suffix:`K`}];for(let e=0;e=i.threshold){let n=t/i.threshold;return Math.abs(Number(n.toFixed(1)))>=1e3&&e>0&&(i=r[e-1],n=t/i.threshold),n.toFixed(1).replace(/\.0$/,``)+i.suffix}}return String(t)}function mZ(e,t){let n=t==null||t===``?NaN:Number(t),r=Number.isFinite(n)?lZ(n):`-`;return String(e||`Tokens`)+`: `+r}function hZ(e){return e?typeof e==`string`?e:e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`):``}function YEe(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.getUTCFullYear()+`-`+String(t.getUTCMonth()+1).padStart(2,`0`)+`-`+String(t.getUTCDate()).padStart(2,`0`)}function gZ(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:t.getUTCFullYear()+`-`+String(t.getUTCMonth()+1).padStart(2,`0`)+`-`+String(t.getUTCDate()).padStart(2,`0`)+` `+String(t.getUTCHours()).padStart(2,`0`)+`:`+String(t.getUTCMinutes()).padStart(2,`0`)+`:`+String(t.getUTCSeconds()).padStart(2,`0`)+` UTC`}function XEe(e){return String(e&&e.provider||``).trim()}function _Z(e){return String(e&&e.provider_name||``).trim()||XEe(e)}function vZ(e,t){let n=String(t||``).trim();if(!n)return`-`;let r=_Z(e);return!r||n===r||n.startsWith(r+`/`)?n:r+`/`+n}function ZEe(e){return vZ(e,e&&e.model)}function yZ(e){return vZ(e,e&&e.resolved_model)}function QEe(e){let t=String(e&&(e.requested_model||e.model)||``).trim();if(!e)return t;let n=String(e.data&&e.data.failover&&e.data.failover.target_model||``).trim();if(n&&n!==t)return t+` ⮕ `+n;if(e.alias_used&&e.resolved_model){let n=yZ(e);if(n&&n!==`-`&&n!==t)return t+` ⮕ `+n}return t}var bZ=`gomodel_date_range`,xZ=1;function SZ(e){return/^[1-9]\d*$/.test(String(e??``))}function $Ee({selectedPreset:e,startKey:t,endKey:n,followsToday:r}){return e&&SZ(e)?{v:xZ,mode:`preset`,days:String(e)}:e?null:PX(t)&&PX(n)?{v:xZ,mode:`custom`,start:t,end:n,follow:r===!0}:null}function eDe(e){let t=e;if(typeof e==`string`)try{t=JSON.parse(e)}catch{return null}return!t||typeof t!=`object`?null:t.mode===`preset`?SZ(t.days)?{mode:`preset`,days:String(t.days)}:null:t.mode===`custom`&&PX(t.start)&&PX(t.end)&&t.start<=t.end?{mode:`custom`,start:t.start,end:t.end,follow:t.follow===!0}:null}function tDe(e,t,n){let r=FX(e,t);return r<1||!PX(n)?{start:e,end:t}:{start:NX(n,-(r-1)),end:n}}var CZ=`gomodel_locale`;Sa(`custom-dashboard`,{getLocale:()=>Gi(CZ)||void 0,setLocale:e=>Ki(CZ,e)});function nDe(){let e=J();document.documentElement.lang=e,document.documentElement.dir=oa(e)}function rDe(e){return typeof Intl.DisplayNames==`function`&&new Intl.DisplayNames([e],{type:`language`}).of(e)||e}function wZ(e,t){return new Intl.NumberFormat(J(),t).format(e)}function TZ(e,t){return new Intl.DateTimeFormat(J(),t).format(e)}function EZ(e){return dR({count:Number(e)})}function DZ(e,t){return e===t?_R():TZ(new Date(e+`T00:00:00Z`),{day:`numeric`,month:`short`,year:`numeric`,timeZone:`UTC`})}function iDe({selectedPreset:e,startKey:t,endKey:n,todayKey:r}){if(e)return EZ(e);if(PX(t)&&PX(n)){if(t>n)return EZ(`30`);let e=DZ(t,r);return t===n?e:bR({start:e,end:DZ(n,r)})}return PX(t)?CR({start:DZ(t,r)}):EZ(`30`)}function aDe({selectedPreset:e,startKey:t,endKey:n,followsToday:r,todayKey:i}){if(e)return EZ(e);if(!PX(t)||!PX(n)||t>n)return``;let a=FX(t,n);return r||n===i?a===1?_R():EZ(a):mR({count:a})}function oDe(e){switch(e){case`weekly`:return VR();case`monthly`:return WR();case`yearly`:return qR();default:return RR()}}var sDe=6e4,OZ=new class{#e=j(N(`30`));get days(){return R(this.#e)}set days(e){M(this.#e,e,!0)}#t=j(N(`30`));get selectedPreset(){return R(this.#t)}set selectedPreset(e){M(this.#t,e,!0)}#n=j(null);get customStartDate(){return R(this.#n)}set customStartDate(e){M(this.#n,e,!0)}#r=j(null);get customEndDate(){return R(this.#r)}set customEndDate(e){M(this.#r,e,!0)}#i=j(!1);get followsToday(){return R(this.#i)}set followsToday(e){M(this.#i,e,!0)}#a=j(`daily`);get interval(){return R(this.#a)}set interval(e){M(this.#a,e,!0)}#o=j(0);get syncTick(){return R(this.#o)}set syncTick(e){M(this.#o,e,!0)}init(){this.restore(),this.syncToToday(),typeof setInterval==`function`&&setInterval(()=>this.syncToToday(),sDe)}queryStr(){return this.customStartDate&&this.customEndDate?`start_date=`+hZ(this.customStartDate)+`&end_date=`+hZ(this.customEndDate):`days=`+this.days}selectPreset(e){this.selectedPreset=e,this.customStartDate=null,this.customEndDate=null,this.followsToday=!1,this.days=e,this.persist()}selectStart(e){this.selectedPreset=null,this.customStartDate=e,this.customEndDate&&this.customEndDatet.category===e);return t?t.count:0}get filteredModels(){if(!this.filter)return this.models;let e=this.filter.toLowerCase();return this.models.filter(t=>(t.model?.id??``).toLowerCase().includes(e)||(t.provider_name??``).toLowerCase().includes(e)||(t.provider_type??``).toLowerCase().includes(e)||(t.selector??``).toLowerCase().includes(e)||(t.model?.owned_by??``).toLowerCase().includes(e)||(t.model?.metadata?.modes??[]).join(`,`).toLowerCase().includes(e)||(t.model?.metadata?.categories??[]).join(`,`).toLowerCase().includes(e))}},cDe=B(``);function AZ(e,t){O(t,!0);var n=Or(),r=F(n),i=e=>{var t=cDe(),n=P(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i,!0);D(i),D(t),L((e,t)=>{H(r,e),H(a,t)},[()=>cL(),()=>MI()]),z(`click`,i,()=>Y.openDialog()),V(e,t)};U(r,e=>{Y.authError&&e(i)}),V(e,n),k()}xr([`click`]);function jZ(){return{total_requests:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,total_input_cost:null,total_output_cost:null,total_cost:null}}function MZ(){return{summary:{total_hits:0,exact_hits:0,semantic_hits:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,total_saved_cost:null},daily:[]}}var NZ=new class{#e=j(N(jZ()));get summary(){return R(this.#e)}set summary(e){M(this.#e,e,!0)}#t=j(N([]));get daily(){return R(this.#t)}set daily(e){M(this.#t,e,!0)}#n=j(N(MZ()));get cacheOverview(){return R(this.#n)}set cacheOverview(e){M(this.#n,e,!0)}#r=j(!1);get loading(){return R(this.#r)}set loading(e){M(this.#r,e,!0)}#i=null;#a=null;cacheAnalyticsEnabled(){return XX.cacheVisible()}async fetchUsage(){this.#i&&this.#i.abort();let e=new AbortController;this.#i=e,this.loading=!0;try{let t=OZ.queryStr()+`&interval=`+OZ.interval,[n,r]=await Promise.all([qX(`/admin/usage/summary?`+t,{label:`usage summary`,signal:e.signal}),qX(`/admin/usage/daily?`+t,{label:`usage daily`,signal:e.signal})]);if(n.stale||r.stale||e.signal.aborted)return;if(!n.ok||!r.ok){this.summary=jZ(),this.daily=[],this.cacheOverview=MZ();return}this.summary=n.data||jZ(),this.daily=Array.isArray(r.data)?r.data:[]}catch(e){if(YX(e))return;console.error(`Failed to fetch usage:`,e),this.summary=jZ(),this.daily=[]}finally{this.#i===e&&(this.#i=null,this.loading=!1)}}async fetchCacheOverview(e=``){if(await XX.ensureLoaded(),!this.cacheAnalyticsEnabled()){this.cacheOverview=MZ();return}this.#a&&this.#a.abort();let t=new AbortController;this.#a=t;try{let n=await qX(`/admin/cache/overview?`+(OZ.queryStr()+`&interval=`+OZ.interval+e),{label:`cache overview`,signal:t.signal});if(n.stale||t.signal.aborted)return;if(!n.ok){this.cacheOverview=MZ();return}let r=n.data&&typeof n.data==`object`?n.data:MZ();r.summary||=MZ().summary,Array.isArray(r.daily)||(r.daily=[]),this.cacheOverview=r}catch(e){if(YX(e))return;console.error(`Failed to fetch cache overview:`,e),this.cacheOverview=MZ()}finally{this.#a===t&&(this.#a=null)}}};function lDe(e,t,n){let r=e.getUTCFullYear(),i=e.getUTCMonth()+t,a=new Date(Date.UTC(r,i,1)),o=new Date(Date.UTC(r,i+1,0)),s=(a.getUTCDay()+6)%7,c=[],l=new Date(Date.UTC(r,i,0));for(let e=s-1;e>=0;e--){let t=l.getUTCDate()-e,a=new Date(Date.UTC(r,i-1,t));c.push({day:t,date:a,current:!1,key:`p-`+n(a)})}for(let e=1;e<=o.getUTCDate();e++){let t=new Date(Date.UTC(r,i,e));c.push({day:e,date:t,current:!0,key:`c-`+n(t)})}let u=42-c.length;for(let e=1;e<=u;e++){let t=new Date(Date.UTC(r,i+1,e));c.push({day:e,date:t,current:!1,key:`n-`+n(t)})}return c}function PZ(e,t,n){let r=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1));return n&&r.getTime()>n.getTime()?e:r}function uDe(e,t){return e.getUTCFullYear()===t.getUTCFullYear()&&e.getUTCMonth()===t.getUTCMonth()}var dDe=B(``),fDe=B(``),pDe=B(` `),mDe=B(``),hDe=B(`
                        `);function gDe(e,t){O(t,!0);let n=zi(t,`offset`,3,0),r=A(()=>lDe(t.calendarMonth,n(),e=>HX.dateToDateKey(e))),i=A(()=>uDe(t.calendarMonth,HX.todayDate())),a=A(()=>TZ(new Date(Date.UTC(t.calendarMonth.getUTCFullYear(),t.calendarMonth.getUTCMonth()+n(),1)),{month:`long`,year:`numeric`,timeZone:`UTC`})),o=Array.from({length:7},(e,t)=>TZ(new Date(Date.UTC(2024,0,1+t)),{weekday:`short`,timeZone:`UTC`})),s=e=>HX.dateToDateKey(e.date),c=e=>s(e)>HX.currentDateKey(),l=e=>e.current&&s(e)===HX.currentDateKey();function u(e,t){let n=t===`start`?OZ.rangeStart():OZ.rangeEnd();return e.current&&!!n&&s(e)===HX.dateToDateKey(n)}function d(e){let t=OZ.rangeStart(),n=OZ.rangeEnd();return!e.current||!t||!n?!1:s(e)>=HX.dateToDateKey(t)&&s(e)<=HX.dateToDateKey(n)}var f=hDe(),p=P(f),m=P(p);let h;var g=I(m,2),_=P(g,!0);D(g);var v=I(g,2),y=e=>{V(e,dDe())},b=e=>{var n=fDe();L(e=>{n.disabled=R(i),K(n,`aria-label`,e)},[()=>FR()]),z(`click`,n,function(...e){t.onnext?.apply(this,e)}),V(e,n)};U(v,e=>{n()===-1?e(y):e(b,-1)}),D(p);var x=I(p,2);W(x,21,()=>o,Ir,(e,t)=>{var n=pDe(),r=P(n,!0);D(n),L(()=>H(r,R(t))),V(e,n)}),D(x);var S=I(x,2);W(S,21,()=>R(r),e=>e.key,(e,n)=>{var r=mDe(),i=P(r,!0);D(r),L((e,t)=>{G(r,1,e,`svelte-g7ga4u`),r.disabled=t,H(i,R(n).day)},[()=>li([`dp-day`,{"other-month":!R(n).current,today:l(R(n)),"range-start":u(R(n),`start`),"range-end":u(R(n),`end`),"in-range":d(R(n)),disabled:c(R(n))}]),()=>c(R(n))||!R(n).current]),z(`click`,r,()=>t.onselect?.(R(n))),V(e,r)}),D(S),D(f),L(e=>{h=G(m,1,`dp-nav-btn svelte-g7ga4u`,null,h,{"dp-nav-prev-mobile":n()!==-1}),K(m,`aria-label`,e),H(_,R(a))},[()=>MR()]),z(`click`,m,function(...e){t.onprev?.apply(this,e)}),V(e,f),k()}xr([`click`]);var _De=B(``),vDe=B(`
                        `),yDe=Er(``),bDe=Er(``),xDe=B(`
                        `),SDe=B(`
                        `);function FZ(e,t){O(t,!0);let n=[`3`,`7`,`14`,`30`,`90`],r=j(!1),i=j(`start`),a=j(N(new Date)),o=j(N({show:!1,x:0,y:0}));function s(){M(r,!R(r)),R(r)&&(OZ.syncToToday(),M(a,HX.startOfMonthDate(OZ.customEndDate||HX.todayDate()),!0),M(i,`start`))}function c(){M(r,!1),M(o,{show:!1,x:0,y:0},!0)}let l=OZ.syncTick;mn(()=>{let e=OZ.syncTick;e!==l&&(l=e,t.onchange?.())});function u(e){OZ.selectPreset(e),M(i,`start`),t.onchange?.(),c()}let d=()=>M(a,PZ(R(a),-1),!0),f=()=>M(a,PZ(R(a),1,HX.startOfMonthDate(HX.todayDate())),!0);function p(e){let n=new Date(e.date);if(R(i)===`start`){OZ.selectStart(n),M(i,`end`),t.onchange?.();return}OZ.selectEnd(n),M(i,`start`),t.onchange?.(),c()}var m=SDe(),h=P(m),g=I(P(h),2),_=P(g,!0);D(g);var v=I(g,2);let y;D(h);var b=I(h,2),x=e=>{var t=vDe(),r=P(t);W(r,20,()=>n,e=>e,(e,t)=>{var n=_De();let r;var i=P(n,!0);D(n),L(e=>{r=G(n,1,`preset-btn svelte-ax7ma4`,null,r,{active:OZ.selectedPreset===t}),H(i,e)},[()=>dR({count:Number(t)})]),z(`click`,n,()=>u(t)),V(e,n)}),D(r);var i=I(r,2);W(i,20,()=>[-1,0],e=>e,(e,t)=>{gDe(e,{get calendarMonth(){return R(a)},get offset(){return t},onprev:d,onnext:f,onselect:p})}),D(i),D(t),z(`mousemove`,i,e=>M(o,{show:!0,x:e.clientX,y:e.clientY},!0)),br(`mouseleave`,i,()=>M(o,{show:!1,x:0,y:0},!0)),V(e,t)};U(b,e=>{R(r)&&e(x)});var S=I(b,2),C=e=>{var t=xDe(),n=P(t),r=e=>{V(e,yDe())},a=e=>{V(e,bDe())};U(n,e=>{R(i)===`start`?e(r):e(a,-1)});var s=I(n,2),c=P(s,!0);D(s),D(t),L(e=>{mi(t,`left:${R(o).x??``}px;top:${R(o).y??``}px`),H(c,e)},[()=>R(i)===`end`?kR():ER()]),V(e,t)};U(S,e=>{R(o).show&&e(C)}),D(m),si(m,()=>R(r)?OEe(c):void 0),L((e,t)=>{K(h,`title`,e),H(_,t),y=G(v,0,`date-picker-chevron svelte-ax7ma4`,null,y,{open:R(r)})},[()=>OZ.dateRangeSpanLabel(),()=>OZ.dateRangeLabel()]),z(`click`,h,s),V(e,m),k()}xr([`click`,`mousemove`]);function IZ(e){return e+.5|0}var LZ=(e,t,n)=>Math.max(Math.min(e,n),t);function RZ(e){return LZ(IZ(e*2.55),0,255)}function zZ(e){return LZ(IZ(e*255),0,255)}function BZ(e){return LZ(IZ(e/2.55)/100,0,1)}function VZ(e){return LZ(IZ(e*100),0,100)}var HZ={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},UZ=[...`0123456789ABCDEF`],CDe=e=>UZ[e&15],wDe=e=>UZ[(e&240)>>4]+UZ[e&15],WZ=e=>(e&240)>>4==(e&15),TDe=e=>WZ(e.r)&&WZ(e.g)&&WZ(e.b)&&WZ(e.a);function EDe(e){var t=e.length,n;return e[0]===`#`&&(t===4||t===5?n={r:255&HZ[e[1]]*17,g:255&HZ[e[2]]*17,b:255&HZ[e[3]]*17,a:t===5?HZ[e[4]]*17:255}:(t===7||t===9)&&(n={r:HZ[e[1]]<<4|HZ[e[2]],g:HZ[e[3]]<<4|HZ[e[4]],b:HZ[e[5]]<<4|HZ[e[6]],a:t===9?HZ[e[7]]<<4|HZ[e[8]]:255})),n}var DDe=(e,t)=>e<255?t(e):``;function ODe(e){var t=TDe(e)?CDe:wDe;return e?`#`+t(e.r)+t(e.g)+t(e.b)+DDe(e.a,t):void 0}var kDe=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function GZ(e,t,n){let r=t*Math.min(n,1-n),i=(t,i=(t+e/30)%12)=>n-r*Math.max(Math.min(i-3,9-i,1),-1);return[i(0),i(8),i(4)]}function ADe(e,t,n){let r=(r,i=(r+e/60)%6)=>n-n*t*Math.max(Math.min(i,4-i,1),0);return[r(5),r(3),r(1)]}function jDe(e,t,n){let r=GZ(e,1,.5),i;for(t+n>1&&(i=1/(t+n),t*=i,n*=i),i=0;i<3;i++)r[i]*=1-t-n,r[i]+=t;return r}function MDe(e,t,n,r,i){return e===i?(t-n)/r+(t.5?l/(2-i-a):l/(i+a),s=MDe(t,n,r,l,i),s=s*60+.5),[s|0,c||0,o]}function qZ(e,t,n,r){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,r)).map(zZ)}function JZ(e,t,n){return qZ(GZ,e,t,n)}function NDe(e,t,n){return qZ(jDe,e,t,n)}function PDe(e,t,n){return qZ(ADe,e,t,n)}function YZ(e){return(e%360+360)%360}function FDe(e){let t=kDe.exec(e),n=255,r;if(!t)return;t[5]!==r&&(n=t[6]?RZ(+t[5]):zZ(+t[5]));let i=YZ(+t[2]),a=t[3]/100,o=t[4]/100;return r=t[1]===`hwb`?NDe(i,a,o):t[1]===`hsv`?PDe(i,a,o):JZ(i,a,o),{r:r[0],g:r[1],b:r[2],a:n}}function IDe(e,t){var n=KZ(e);n[0]=YZ(n[0]+t),n=JZ(n),e.r=n[0],e.g=n[1],e.b=n[2]}function LDe(e){if(!e)return;let t=KZ(e),n=t[0],r=VZ(t[1]),i=VZ(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${i}%, ${BZ(e.a)})`:`hsl(${n}, ${r}%, ${i}%)`}var XZ={x:`dark`,Z:`light`,Y:`re`,X:`blu`,W:`gr`,V:`medium`,U:`slate`,A:`ee`,T:`ol`,S:`or`,B:`ra`,C:`lateg`,D:`ights`,R:`in`,Q:`turquois`,E:`hi`,P:`ro`,O:`al`,N:`le`,M:`de`,L:`yello`,F:`en`,K:`ch`,G:`arks`,H:`ea`,I:`ightg`,J:`wh`},ZZ={OiceXe:`f0f8ff`,antiquewEte:`faebd7`,aqua:`ffff`,aquamarRe:`7fffd4`,azuY:`f0ffff`,beige:`f5f5dc`,bisque:`ffe4c4`,black:`0`,blanKedOmond:`ffebcd`,Xe:`ff`,XeviTet:`8a2be2`,bPwn:`a52a2a`,burlywood:`deb887`,caMtXe:`5f9ea0`,KartYuse:`7fff00`,KocTate:`d2691e`,cSO:`ff7f50`,cSnflowerXe:`6495ed`,cSnsilk:`fff8dc`,crimson:`dc143c`,cyan:`ffff`,xXe:`8b`,xcyan:`8b8b`,xgTMnPd:`b8860b`,xWay:`a9a9a9`,xgYF:`6400`,xgYy:`a9a9a9`,xkhaki:`bdb76b`,xmagFta:`8b008b`,xTivegYF:`556b2f`,xSange:`ff8c00`,xScEd:`9932cc`,xYd:`8b0000`,xsOmon:`e9967a`,xsHgYF:`8fbc8f`,xUXe:`483d8b`,xUWay:`2f4f4f`,xUgYy:`2f4f4f`,xQe:`ced1`,xviTet:`9400d3`,dAppRk:`ff1493`,dApskyXe:`bfff`,dimWay:`696969`,dimgYy:`696969`,dodgerXe:`1e90ff`,fiYbrick:`b22222`,flSOwEte:`fffaf0`,foYstWAn:`228b22`,fuKsia:`ff00ff`,gaRsbSo:`dcdcdc`,ghostwEte:`f8f8ff`,gTd:`ffd700`,gTMnPd:`daa520`,Way:`808080`,gYF:`8000`,gYFLw:`adff2f`,gYy:`808080`,honeyMw:`f0fff0`,hotpRk:`ff69b4`,RdianYd:`cd5c5c`,Rdigo:`4b0082`,ivSy:`fffff0`,khaki:`f0e68c`,lavFMr:`e6e6fa`,lavFMrXsh:`fff0f5`,lawngYF:`7cfc00`,NmoncEffon:`fffacd`,ZXe:`add8e6`,ZcSO:`f08080`,Zcyan:`e0ffff`,ZgTMnPdLw:`fafad2`,ZWay:`d3d3d3`,ZgYF:`90ee90`,ZgYy:`d3d3d3`,ZpRk:`ffb6c1`,ZsOmon:`ffa07a`,ZsHgYF:`20b2aa`,ZskyXe:`87cefa`,ZUWay:`778899`,ZUgYy:`778899`,ZstAlXe:`b0c4de`,ZLw:`ffffe0`,lime:`ff00`,limegYF:`32cd32`,lRF:`faf0e6`,magFta:`ff00ff`,maPon:`800000`,VaquamarRe:`66cdaa`,VXe:`cd`,VScEd:`ba55d3`,VpurpN:`9370db`,VsHgYF:`3cb371`,VUXe:`7b68ee`,VsprRggYF:`fa9a`,VQe:`48d1cc`,VviTetYd:`c71585`,midnightXe:`191970`,mRtcYam:`f5fffa`,mistyPse:`ffe4e1`,moccasR:`ffe4b5`,navajowEte:`ffdead`,navy:`80`,Tdlace:`fdf5e6`,Tive:`808000`,TivedBb:`6b8e23`,Sange:`ffa500`,SangeYd:`ff4500`,ScEd:`da70d6`,pOegTMnPd:`eee8aa`,pOegYF:`98fb98`,pOeQe:`afeeee`,pOeviTetYd:`db7093`,papayawEp:`ffefd5`,pHKpuff:`ffdab9`,peru:`cd853f`,pRk:`ffc0cb`,plum:`dda0dd`,powMrXe:`b0e0e6`,purpN:`800080`,YbeccapurpN:`663399`,Yd:`ff0000`,Psybrown:`bc8f8f`,PyOXe:`4169e1`,saddNbPwn:`8b4513`,sOmon:`fa8072`,sandybPwn:`f4a460`,sHgYF:`2e8b57`,sHshell:`fff5ee`,siFna:`a0522d`,silver:`c0c0c0`,skyXe:`87ceeb`,UXe:`6a5acd`,UWay:`708090`,UgYy:`708090`,snow:`fffafa`,sprRggYF:`ff7f`,stAlXe:`4682b4`,tan:`d2b48c`,teO:`8080`,tEstN:`d8bfd8`,tomato:`ff6347`,Qe:`40e0d0`,viTet:`ee82ee`,JHt:`f5deb3`,wEte:`ffffff`,wEtesmoke:`f5f5f5`,Lw:`ffff00`,LwgYF:`9acd32`};function RDe(){let e={},t=Object.keys(ZZ),n=Object.keys(XZ),r,i,a,o,s;for(r=0;r>16&255,a>>8&255,a&255]}return e}var QZ;function zDe(e){QZ||(QZ=RDe(),QZ.transparent=[0,0,0,0]);let t=QZ[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var BDe=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function VDe(e){let t=BDe.exec(e),n=255,r,i,a;if(t){if(t[7]!==r){let e=+t[7];n=t[8]?RZ(e):LZ(e*255,0,255)}return r=+t[1],i=+t[3],a=+t[5],r=255&(t[2]?RZ(r):LZ(r,0,255)),i=255&(t[4]?RZ(i):LZ(i,0,255)),a=255&(t[6]?RZ(a):LZ(a,0,255)),{r,g:i,b:a,a:n}}}function HDe(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${BZ(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}var $Z=e=>e<=.0031308?e*12.92:e**(1/2.4)*1.055-.055,eQ=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function UDe(e,t,n){let r=eQ(BZ(e.r)),i=eQ(BZ(e.g)),a=eQ(BZ(e.b));return{r:zZ($Z(r+n*(eQ(BZ(t.r))-r))),g:zZ($Z(i+n*(eQ(BZ(t.g))-i))),b:zZ($Z(a+n*(eQ(BZ(t.b))-a))),a:e.a+n*(t.a-e.a)}}function tQ(e,t,n){if(e){let r=KZ(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,t===0?360:1)),r=JZ(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function nQ(e,t){return e&&Object.assign(t||{},e)}function rQ(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=zZ(e[3]))):(t=nQ(e,{r:0,g:0,b:0,a:1}),t.a=zZ(t.a)),t}function WDe(e){return e.charAt(0)===`r`?VDe(e):FDe(e)}var iQ=class e{constructor(t){if(t instanceof e)return t;let n=typeof t,r;n===`object`?r=rQ(t):n===`string`&&(r=EDe(t)||zDe(t)||WDe(t)),this._rgb=r,this._valid=!!r}get valid(){return this._valid}get rgb(){var e=nQ(this._rgb);return e&&(e.a=BZ(e.a)),e}set rgb(e){this._rgb=rQ(e)}rgbString(){return this._valid?HDe(this._rgb):void 0}hexString(){return this._valid?ODe(this._rgb):void 0}hslString(){return this._valid?LDe(this._rgb):void 0}mix(e,t){if(e){let n=this.rgb,r=e.rgb,i,a=t===i?.5:t,o=2*a-1,s=n.a-r.a,c=((o*s===-1?o:(o+s)/(1+o*s))+1)/2;i=1-c,n.r=255&c*n.r+i*r.r+.5,n.g=255&c*n.g+i*r.g+.5,n.b=255&c*n.b+i*r.b+.5,n.a=a*n.a+(1-a)*r.a,this.rgb=n}return this}interpolate(e,t){return e&&(this._rgb=UDe(this._rgb,e._rgb,t)),this}clone(){return new e(this.rgb)}alpha(e){return this._rgb.a=zZ(e),this}clearer(e){let t=this._rgb;return t.a*=1-e,this}greyscale(){let e=this._rgb;return e.r=e.g=e.b=IZ(e.r*.3+e.g*.59+e.b*.11),this}opaquer(e){let t=this._rgb;return t.a*=1+e,this}negate(){let e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return tQ(this._rgb,2,e),this}darken(e){return tQ(this._rgb,2,-e),this}saturate(e){return tQ(this._rgb,1,e),this}desaturate(e){return tQ(this._rgb,1,-e),this}rotate(e){return IDe(this._rgb,e),this}};function aQ(){}var GDe=(()=>{let e=0;return()=>e++})();function oQ(e){return e==null}function sQ(e){if(Array.isArray&&Array.isArray(e))return!0;let t=Object.prototype.toString.call(e);return t.slice(0,7)===`[object`&&t.slice(-6)===`Array]`}function cQ(e){return e!==null&&Object.prototype.toString.call(e)===`[object Object]`}function lQ(e){return(typeof e==`number`||e instanceof Number)&&isFinite(+e)}function uQ(e,t){return lQ(e)?e:t}function dQ(e,t){return e===void 0?t:e}var KDe=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100:+e/t,fQ=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100*t:+e;function pQ(e,t,n){if(e&&typeof e.call==`function`)return e.apply(n,t)}function mQ(e,t,n,r){let i,a,o;if(sQ(e))if(a=e.length,r)for(i=a-1;i>=0;i--)t.call(n,e[i],i);else for(i=0;ie,x:e=>e.x,y:e=>e.y};function YDe(e){let t=e.split(`.`),n=[],r=``;for(let e of t)r+=e,r.endsWith(`\\`)?r=r.slice(0,-1)+`.`:(n.push(r),r=``);return n}function XDe(e){let t=YDe(e);return e=>{for(let n of t){if(n===``)break;e&&=e[n]}return e}}function xQ(e,t){return(bQ[t]||(bQ[t]=XDe(t)))(e)}function SQ(e){return e.charAt(0).toUpperCase()+e.slice(1)}var CQ=e=>e!==void 0,wQ=e=>typeof e==`function`,TQ=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0};function ZDe(e){return e.type===`mouseup`||e.type===`click`||e.type===`contextmenu`}var EQ=Math.PI,DQ=2*EQ,QDe=DQ+EQ,OQ=1/0,$De=EQ/180,kQ=EQ/2,AQ=EQ/4,jQ=EQ*2/3,MQ=Math.log10,NQ=Math.sign;function PQ(e,t,n){return Math.abs(e-t)e-t).pop(),t}function tOe(e){return typeof e==`symbol`||typeof e==`object`&&!!e&&!(Symbol.toPrimitive in e||`toString`in e||`valueOf`in e)}function IQ(e){return!tOe(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function nOe(e,t){let n=Math.round(e);return n-t<=e&&n+t>=e}function LQ(e,t,n){let r,i,a;for(r=0,i=e.length;rc&&l=Math.min(t,n)-r&&e<=Math.max(t,n)+r}function qQ(e,t,n){n||=(n=>e[n]1;)a=i+r>>1,n(a)?i=a:r=a;return{lo:i,hi:r}}var JQ=(e,t,n,r)=>qQ(e,n,r?r=>{let i=e[r][t];return ie[r][t]qQ(e,n,r=>e[r][t]>=n);function oOe(e,t,n){let r=0,i=e.length;for(;rr&&e[i-1]>n;)i--;return r>0||i{let n=`_onData`+SQ(t),r=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value(...t){let i=r.apply(this,t);return e._chartjs.listeners.forEach(e=>{typeof e[n]==`function`&&e[n](...t)}),i}})})}function XQ(e,t){let n=e._chartjs;if(!n)return;let r=n.listeners,i=r.indexOf(t);i!==-1&&r.splice(i,1),!(r.length>0)&&(YQ.forEach(t=>{delete e[t]}),delete e._chartjs)}function ZQ(e){let t=new Set(e);return t.size===e.length?e:Array.from(t)}var QQ=function(){return typeof window>`u`?function(e){return e()}:window.requestAnimationFrame}();function $Q(e,t){let n=[],r=!1;return function(...i){n=i,r||(r=!0,QQ.call(window,()=>{r=!1,e.apply(t,n)}))}}function cOe(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}var e$=e=>e===`start`?`left`:e===`end`?`right`:`center`,t$=(e,t,n)=>e===`start`?t:e===`end`?n:(t+n)/2,lOe=(e,t,n,r)=>e===(r?`left`:`right`)?n:e===`center`?(t+n)/2:t;function n$(e,t,n){let r=t.length,i=0,a=r;if(e._sorted){let{iScale:o,vScale:s,_parsed:c}=e,l=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null,u=o.axis,{min:d,max:f,minDefined:p,maxDefined:m}=o.getUserBounds();if(p){if(i=Math.min(JQ(c,u,d).lo,n?r:JQ(t,u,o.getPixelForValue(d)).lo),l){let e=c.slice(0,i+1).reverse().findIndex(e=>!oQ(e[s.axis]));i-=Math.max(0,e)}i=GQ(i,0,r-1)}if(m){let e=Math.max(JQ(c,o.axis,f,!0).hi+1,n?0:JQ(t,u,o.getPixelForValue(f),!0).hi+1);if(l){let t=c.slice(e-1).findIndex(e=>!oQ(e[s.axis]));e+=Math.max(0,t)}a=GQ(e,i,r)-i}else a=r-i}return{start:i,count:a}}function r$(e){let{xScale:t,yScale:n,_scaleRanges:r}=e,i={xmin:t.min,xmax:t.max,ymin:n.min,ymax:n.max};if(!r)return e._scaleRanges=i,!0;let a=r.xmin!==t.min||r.xmax!==t.max||r.ymin!==n.min||r.ymax!==n.max;return Object.assign(r,i),a}var i$=e=>e===0||e===1,a$=(e,t,n)=>-(2**(10*--e)*Math.sin((e-t)*DQ/n)),o$=(e,t,n)=>2**(-10*e)*Math.sin((e-t)*DQ/n)+1,s$={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-(--e*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>--e*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>-Math.cos(e*kQ)+1,easeOutSine:e=>Math.sin(e*kQ),easeInOutSine:e=>-.5*(Math.cos(EQ*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:-(2**(-10*e))+1,easeInOutExpo:e=>i$(e)?e:e<.5?.5*2**(10*(e*2-1)):.5*(-(2**(-10*(e*2-1)))+2),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1- --e*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>i$(e)?e:a$(e,.075,.3),easeOutElastic:e=>i$(e)?e:o$(e,.075,.3),easeInOutElastic(e){let t=.1125,n=.45;return i$(e)?e:e<.5?.5*a$(e*2,t,n):.5+.5*o$(e*2-1,t,n)},easeInBack(e){return e*e*(2.70158*e-1.70158)},easeOutBack(e){return--e*e*(2.70158*e+1.70158)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?.5*(e*e*(((t*=1.525)+1)*e-t)):.5*((e-=2)*e*(((t*=1.525)+1)*e+t)+2)},easeInBounce:e=>1-s$.easeOutBounce(1-e),easeOutBounce(e){let t=7.5625,n=2.75;return e<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375},easeInOutBounce:e=>e<.5?s$.easeInBounce(e*2)*.5:s$.easeOutBounce(e*2-1)*.5+.5};function c$(e){if(e&&typeof e==`object`){let t=e.toString();return t===`[object CanvasPattern]`||t===`[object CanvasGradient]`}return!1}function l$(e){return c$(e)?e:new iQ(e)}function u$(e){return c$(e)?e:new iQ(e).saturate(.5).darken(.1).hexString()}var uOe=[`x`,`y`,`borderWidth`,`radius`,`tension`],dOe=[`color`,`borderColor`,`backgroundColor`];function fOe(e){e.set(`animation`,{delay:void 0,duration:1e3,easing:`easeOutQuart`,fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),e.describe(`animation`,{_fallback:!1,_indexable:!1,_scriptable:e=>e!==`onProgress`&&e!==`onComplete`&&e!==`fn`}),e.set(`animations`,{colors:{type:`color`,properties:dOe},numbers:{type:`number`,properties:uOe}}),e.describe(`animations`,{_fallback:`animation`}),e.set(`transitions`,{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:`transparent`},visible:{type:`boolean`,duration:0}}},hide:{animations:{colors:{to:`transparent`},visible:{type:`boolean`,easing:`linear`,fn:e=>e|0}}}})}function pOe(e){e.set(`layout`,{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}var d$=new Map;function mOe(e,t){t||={};let n=e+JSON.stringify(t),r=d$.get(n);return r||(r=new Intl.NumberFormat(e,t),d$.set(n,r)),r}function f$(e,t,n){return mOe(t,n).format(e)}var p$={values(e){return sQ(e)?e:``+e},numeric(e,t,n){if(e===0)return`0`;let r=this.chart.options.locale,i,a=e;if(n.length>1){let t=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(t<1e-4||t>0x38d7ea4c68000)&&(i=`scientific`),a=hOe(e,n)}let o=MQ(Math.abs(a)),s=isNaN(o)?1:Math.max(Math.min(-1*Math.floor(o),20),0),c={notation:i,minimumFractionDigits:s,maximumFractionDigits:s};return Object.assign(c,this.options.ticks.format),f$(e,r,c)},logarithmic(e,t,n){if(e===0)return`0`;let r=n[t].significand||e/10**Math.floor(MQ(e));return[1,2,3,5,10,15].includes(r)||t>.8*n.length?p$.numeric.call(this,e,t,n):``}};function hOe(e,t){let n=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(n)>=1&&e!==Math.floor(e)&&(n=e-Math.floor(e)),n}var m$={formatters:p$};function gOe(e){e.set(`scale`,{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:`ticks`,clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,t)=>t.lineWidth,tickColor:(e,t)=>t.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:``,padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:``,padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:m$.formatters.values,minor:{},major:{},align:`center`,crossAlign:`near`,showLabelBackdrop:!1,backdropColor:`rgba(255, 255, 255, 0.75)`,backdropPadding:2}}),e.route(`scale.ticks`,`color`,``,`color`),e.route(`scale.grid`,`color`,``,`borderColor`),e.route(`scale.border`,`color`,``,`borderColor`),e.route(`scale.title`,`color`,``,`color`),e.describe(`scale`,{_fallback:!1,_scriptable:e=>!e.startsWith(`before`)&&!e.startsWith(`after`)&&e!==`callback`&&e!==`parser`,_indexable:e=>e!==`borderDash`&&e!==`tickBorderDash`&&e!==`dash`}),e.describe(`scales`,{_fallback:`scale`}),e.describe(`scale.ticks`,{_scriptable:e=>e!==`backdropPadding`&&e!==`callback`,_indexable:e=>e!==`backdropPadding`})}var h$=Object.create(null),g$=Object.create(null);function _$(e,t){if(!t)return e;let n=t.split(`.`);for(let t=0,r=n.length;te.chart.platform.getDevicePixelRatio(),this.elements={},this.events=[`mousemove`,`mouseout`,`click`,`touchstart`,`touchmove`],this.font={family:`'Helvetica Neue', 'Helvetica', 'Arial', sans-serif`,size:12,style:`normal`,lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,t)=>u$(t.backgroundColor),this.hoverBorderColor=(e,t)=>u$(t.borderColor),this.hoverColor=(e,t)=>u$(t.color),this.indexAxis=`x`,this.interaction={mode:`nearest`,intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(t)}set(e,t){return v$(this,e,t)}get(e){return _$(this,e)}describe(e,t){return v$(g$,e,t)}override(e,t){return v$(h$,e,t)}route(e,t,n,r){let i=_$(this,e),a=_$(this,n),o=`_`+t;Object.defineProperties(i,{[o]:{value:i[t],writable:!0},[t]:{enumerable:!0,get(){let e=this[o],t=a[r];return cQ(e)?Object.assign({},t,e):dQ(e,t)},set(e){this[o]=e}}})}apply(e){e.forEach(e=>e(this))}}({_scriptable:e=>!e.startsWith(`on`),_indexable:e=>e!==`events`,hover:{_fallback:`interaction`},interaction:{_scriptable:!1,_indexable:!1}},[fOe,pOe,gOe]);function _Oe(e){return!e||oQ(e.size)||oQ(e.family)?null:(e.style?e.style+` `:``)+(e.weight?e.weight+` `:``)+e.size+`px `+e.family}function b$(e,t,n,r,i){let a=t[i];return a||(a=t[i]=e.measureText(i).width,n.push(i)),a>r&&(r=a),r}function vOe(e,t,n,r){r||={};let i=r.data=r.data||{},a=r.garbageCollect=r.garbageCollect||[];r.font!==t&&(i=r.data={},a=r.garbageCollect=[],r.font=t),e.save(),e.font=t;let o=0,s=n.length,c,l,u,d,f;for(c=0;cn.length){for(c=0;c0&&e.stroke()}}function T$(e,t,n){return n||=.5,!t||e&&e.x>t.left-n&&e.xt.top-n&&e.y0&&a.strokeColor!==``,c,l;for(e.save(),e.font=i.string,xOe(e,a),c=0;c+e||0;function A$(e,t){let n={},r=cQ(t),i=r?Object.keys(t):t,a=cQ(e)?r?n=>dQ(e[n],e[t[n]]):t=>e[t]:()=>e;for(let e of i)n[e]=DOe(a(e));return n}function j$(e){return A$(e,{top:`y`,right:`x`,bottom:`y`,left:`x`})}function M$(e){return A$(e,[`topLeft`,`topRight`,`bottomLeft`,`bottomRight`])}function N$(e){let t=j$(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function P$(e,t){e||={},t||=y$.font;let n=dQ(e.size,t.size);typeof n==`string`&&(n=parseInt(n,10));let r=dQ(e.style,t.style);r&&!(``+r).match(TOe)&&(console.warn(`Invalid font style specified: "`+r+`"`),r=void 0);let i={family:dQ(e.family,t.family),lineHeight:EOe(dQ(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:dQ(e.weight,t.weight),string:``};return i.string=_Oe(i),i}function F$(e,t,n,r){let i=!0,a,o,s;for(a=0,o=e.length;an&&e===0?0:e+t;return{min:o(r,-Math.abs(a)),max:o(i,a)}}function I$(e,t){return Object.assign(Object.create(e),t)}function L$(e,t=[``],n,r,i=()=>e[0]){let a=n||e;return r===void 0&&(r=G$(`_fallback`,e)),new Proxy({[Symbol.toStringTag]:`Object`,_cacheable:!0,_scopes:e,_rootScopes:a,_fallback:r,_getTarget:i,override:n=>L$([n,...e],t,a,r)},{deleteProperty(t,n){return delete t[n],delete t._keys,delete e[0][n],!0},get(n,r){return V$(n,r,()=>IOe(r,t,e,n))},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(e._scopes[0],t)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(e,t){return K$(e).includes(t)},ownKeys(e){return K$(e)},set(e,t,n){let r=e._storage||=i();return e[t]=r[t]=n,delete e._keys,!0}})}function R$(e,t,n,r){let i={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:z$(e,r),setContext:t=>R$(e,t,n,r),override:i=>R$(e.override(i),t,n,r)};return new Proxy(i,{deleteProperty(t,n){return delete t[n],delete e[n],!0},get(e,t,n){return V$(e,t,()=>AOe(e,t,n))},getOwnPropertyDescriptor(t,n){return t._descriptors.allKeys?Reflect.has(e,n)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,n)},getPrototypeOf(){return Reflect.getPrototypeOf(e)},has(t,n){return Reflect.has(e,n)},ownKeys(){return Reflect.ownKeys(e)},set(t,n,r){return e[n]=r,delete t[n],!0}})}function z$(e,t={scriptable:!0,indexable:!0}){let{_scriptable:n=t.scriptable,_indexable:r=t.indexable,_allKeys:i=t.allKeys}=e;return{allKeys:i,scriptable:n,indexable:r,isScriptable:wQ(n)?n:()=>n,isIndexable:wQ(r)?r:()=>r}}var kOe=(e,t)=>e?e+SQ(t):t,B$=(e,t)=>cQ(t)&&e!==`adapters`&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function V$(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t===`constructor`)return e[t];let r=n();return e[t]=r,r}function AOe(e,t,n){let{_proxy:r,_context:i,_subProxy:a,_descriptors:o}=e,s=r[t];return wQ(s)&&o.isScriptable(t)&&(s=jOe(t,s,e,n)),sQ(s)&&s.length&&(s=MOe(t,s,e,o.isIndexable)),B$(t,s)&&(s=R$(s,i,a&&a[t],o)),s}function jOe(e,t,n,r){let{_proxy:i,_context:a,_subProxy:o,_stack:s}=n;if(s.has(e))throw Error(`Recursion detected: `+Array.from(s).join(`->`)+`->`+e);s.add(e);let c=t(a,o||r);return s.delete(e),B$(e,c)&&(c=U$(i._scopes,i,e,c)),c}function MOe(e,t,n,r){let{_proxy:i,_context:a,_subProxy:o,_descriptors:s}=n;if(a.index!==void 0&&r(e))return t[a.index%t.length];if(cQ(t[0])){let n=t,r=i._scopes.filter(e=>e!==n);t=[];for(let c of n){let n=U$(r,i,e,c);t.push(R$(n,a,o&&o[e],s))}}return t}function H$(e,t,n){return wQ(e)?e(t,n):e}var NOe=(e,t)=>e===!0?t:typeof e==`string`?xQ(t,e):void 0;function POe(e,t,n,r,i){for(let a of t){let t=NOe(n,a);if(t){e.add(t);let a=H$(t._fallback,n,i);if(a!==void 0&&a!==n&&a!==r)return a}else if(t===!1&&r!==void 0&&n!==r)return null}return!1}function U$(e,t,n,r){let i=t._rootScopes,a=H$(t._fallback,n,r),o=[...e,...i],s=new Set;s.add(r);let c=W$(s,o,n,a||n,r);return c===null||a!==void 0&&a!==n&&(c=W$(s,o,a,c,r),c===null)?!1:L$(Array.from(s),[``],i,a,()=>FOe(t,n,r))}function W$(e,t,n,r,i){for(;n;)n=POe(e,t,n,r,i);return n}function FOe(e,t,n){let r=e._getTarget();t in r||(r[t]={});let i=r[t];return sQ(i)&&cQ(n)?n:i||{}}function IOe(e,t,n,r){let i;for(let a of t)if(i=G$(kOe(a,e),n),i!==void 0)return B$(e,i)?U$(n,r,e,i):i}function G$(e,t){for(let n of t){if(!n)continue;let t=n[e];if(t!==void 0)return t}}function K$(e){let t=e._keys;return t||=e._keys=LOe(e._scopes),t}function LOe(e){let t=new Set;for(let n of e)for(let e of Object.keys(n).filter(e=>!e.startsWith(`_`)))t.add(e);return Array.from(t)}function q$(e,t,n,r){let{iScale:i}=e,{key:a=`r`}=this._parsing,o=Array(r),s,c,l,u;for(s=0,c=r;ste===`x`?`y`:`x`;function zOe(e,t,n,r){let i=e.skip?t:e,a=t,o=n.skip?t:n,s=HQ(a,i),c=HQ(o,a),l=s/(s+c),u=c/(s+c);l=isNaN(l)?0:l,u=isNaN(u)?0:u;let d=r*l,f=r*u;return{previous:{x:a.x-d*(o.x-i.x),y:a.y-d*(o.y-i.y)},next:{x:a.x+f*(o.x-i.x),y:a.y+f*(o.y-i.y)}}}function BOe(e,t,n){let r=e.length,i,a,o,s,c,l=J$(e,0);for(let u=0;u!e.skip)),t.cubicInterpolationMode===`monotone`)HOe(e,i);else{let n=r?e[e.length-1]:e[0];for(a=0,o=e.length;ae.ownerDocument.defaultView.getComputedStyle(e,null);function GOe(e,t){return e1(e).getPropertyValue(t)}var KOe=[`top`,`right`,`bottom`,`left`];function t1(e,t,n){let r={};n=n?`-`+n:``;for(let i=0;i<4;i++){let a=KOe[i];r[a]=parseFloat(e[t+`-`+a+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}var qOe=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function JOe(e,t){let n=e.touches,r=n&&n.length?n[0]:e,{offsetX:i,offsetY:a}=r,o=!1,s,c;if(qOe(i,a,e.target))s=i,c=a;else{let e=t.getBoundingClientRect();s=r.clientX-e.left,c=r.clientY-e.top,o=!0}return{x:s,y:c,box:o}}function n1(e,t){if(`native`in e)return e;let{canvas:n,currentDevicePixelRatio:r}=t,i=e1(n),a=i.boxSizing===`border-box`,o=t1(i,`padding`),s=t1(i,`border`,`width`),{x:c,y:l,box:u}=JOe(e,n),d=o.left+(u&&s.left),f=o.top+(u&&s.top),{width:p,height:m}=t;return a&&(p-=o.width+s.width,m-=o.height+s.height),{x:Math.round((c-d)/p*n.width/r),y:Math.round((l-f)/m*n.height/r)}}function YOe(e,t,n){let r,i;if(t===void 0||n===void 0){let a=e&&Q$(e);if(!a)t=e.clientWidth,n=e.clientHeight;else{let e=a.getBoundingClientRect(),o=e1(a),s=t1(o,`border`,`width`),c=t1(o,`padding`);t=e.width-c.width-s.width,n=e.height-c.height-s.height,r=$$(o.maxWidth,a,`clientWidth`),i=$$(o.maxHeight,a,`clientHeight`)}}return{width:t,height:n,maxWidth:r||OQ,maxHeight:i||OQ}}var r1=e=>Math.round(e*10)/10;function XOe(e,t,n,r){let i=e1(e),a=t1(i,`margin`),o=$$(i.maxWidth,e,`clientWidth`)||OQ,s=$$(i.maxHeight,e,`clientHeight`)||OQ,c=YOe(e,t,n),{width:l,height:u}=c;if(i.boxSizing===`content-box`){let e=t1(i,`border`,`width`),t=t1(i,`padding`);l-=t.width+e.width,u-=t.height+e.height}return l=Math.max(0,l-a.width),u=Math.max(0,r?l/r:u-a.height),l=r1(Math.min(l,o,c.maxWidth)),u=r1(Math.min(u,s,c.maxHeight)),l&&!u&&(u=r1(l/2)),(t!==void 0||n!==void 0)&&r&&c.height&&u>c.height&&(u=c.height,l=r1(Math.floor(u*r))),{width:l,height:u}}function i1(e,t,n){let r=t||1,i=r1(e.height*r),a=r1(e.width*r);e.height=r1(e.height),e.width=r1(e.width);let o=e.canvas;return o.style&&(n||!o.style.height&&!o.style.width)&&(o.style.height=`${e.height}px`,o.style.width=`${e.width}px`),e.currentDevicePixelRatio!==r||o.height!==i||o.width!==a?(e.currentDevicePixelRatio=r,o.height=i,o.width=a,e.ctx.setTransform(r,0,0,r,0,0),!0):!1}var ZOe=function(){let e=!1;try{let t={get passive(){return e=!0,!1}};Z$()&&(window.addEventListener(`test`,null,t),window.removeEventListener(`test`,null,t))}catch{}return e}();function a1(e,t){let n=GOe(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function o1(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function QOe(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:r===`middle`?n<.5?e.y:t.y:r===`after`?n<1?e.y:t.y:n>0?t.y:e.y}}function $Oe(e,t,n,r){let i={x:e.cp2x,y:e.cp2y},a={x:t.cp1x,y:t.cp1y},o=o1(e,i,n),s=o1(i,a,n),c=o1(a,t,n);return o1(o1(o,s,n),o1(s,c,n),n)}var eke=function(e,t){return{x(n){return e+e+t-n},setWidth(e){t=e},textAlign(e){return e===`center`?e:e===`right`?`left`:`right`},xPlus(e,t){return e-t},leftForLtr(e,t){return e-t}}},tke=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function s1(e,t,n){return e?eke(t,n):tke()}function c1(e,t){let n,r;(t===`ltr`||t===`rtl`)&&(n=e.canvas.style,r=[n.getPropertyValue(`direction`),n.getPropertyPriority(`direction`)],n.setProperty(`direction`,t,`important`),e.prevTextDirection=r)}function l1(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty(`direction`,t[0],t[1]))}function u1(e){return e===`angle`?{between:WQ,compare:rOe,normalize:UQ}:{between:KQ,compare:(e,t)=>e-t,normalize:e=>e}}function d1({start:e,end:t,count:n,loop:r,style:i}){return{start:e%n,end:t%n,loop:r&&(t-e+1)%n===0,style:i}}function nke(e,t,n){let{property:r,start:i,end:a}=n,{between:o,normalize:s}=u1(r),c=t.length,{start:l,end:u,loop:d}=e,f,p;if(d){for(l+=c,u+=c,f=0,p=c;fc(i,y,_)&&s(i,y)!==0,x=()=>s(a,_)===0||c(a,y,_),S=()=>h||b(),C=()=>!h||x();for(let e=u,n=u;e<=d;++e)v=t[e%o],!v.skip&&(_=l(v[r]),_!==y&&(h=c(_,i,a),g===null&&S()&&(g=s(_,i)===0?e:n),g!==null&&C()&&(m.push(d1({start:g,end:e,loop:f,count:o,style:p})),g=null),n=e,y=_));return g!==null&&m.push(d1({start:g,end:d,loop:f,count:o,style:p})),m}function p1(e,t){let n=[],r=e.segments;for(let i=0;ii&&e[a%t].skip;)a--;return a%=t,{start:i,end:a}}function ike(e,t,n,r){let i=e.length,a=[],o=t,s=e[t],c;for(c=t+1;c<=n;++c){let n=e[c%i];n.skip||n.stop?s.skip||(r=!1,a.push({start:t%i,end:(c-1)%i,loop:r}),t=o=n.stop?c:null):(o=c,s.skip&&(t=c)),s=n}return o!==null&&a.push({start:t%i,end:o%i,loop:r}),a}function ake(e,t){let n=e.points,r=e.options.spanGaps,i=n.length;if(!i)return[];let a=!!e._loop,{start:o,end:s}=rke(n,i,a,r);return r===!0?m1(e,[{start:o,end:s,loop:a}],n,t):m1(e,ike(n,o,sr({chart:e,initial:t.initial,numSteps:a,currentStep:Math.min(n-t.start,a)}))}_refresh(){this._request||=(this._running=!0,QQ.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let t=0;this._charts.forEach((n,r)=>{if(!n.running||!n.items.length)return;let i=n.items,a=i.length-1,o=!1,s;for(;a>=0;--a)s=i[a],s._active?(s._total>n.duration&&(n.duration=s._total),s.tick(e),o=!0):(i[a]=i[i.length-1],i.pop());o&&(r.draw(),this._notify(r,n,e,`progress`)),i.length||(n.running=!1,this._notify(r,n,e,`complete`),n.initial=!1),t+=i.length}),this._lastDate=e,t===0&&(this._running=!1)}_getAnims(e){let t=this._charts,n=t.get(e);return n||(n={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(e,n)),n}listen(e,t,n){this._getAnims(e).listeners[t].push(n)}add(e,t){!t||!t.length||this._getAnims(e).items.push(...t)}has(e){return this._getAnims(e).items.length>0}start(e){let t=this._charts.get(e);t&&(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce((e,t)=>Math.max(e,t._duration),0),this._refresh())}running(e){if(!this._running)return!1;let t=this._charts.get(e);return!(!t||!t.running||!t.items.length)}stop(e){let t=this._charts.get(e);if(!t||!t.items.length)return;let n=t.items,r=n.length-1;for(;r>=0;--r)n[r].cancel();t.items=[],this._notify(e,t,Date.now(),`complete`)}remove(e){return this._charts.delete(e)}},y1=`transparent`,lke={boolean(e,t,n){return n>.5?t:e},color(e,t,n){let r=l$(e||y1),i=r.valid&&l$(t||y1);return i&&i.valid?i.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}},uke=class{constructor(e,t,n,r){let i=t[n];r=F$([e.to,r,i,e.from]);let a=F$([e.from,i,r]);this._active=!0,this._fn=e.fn||lke[e.type||typeof a],this._easing=s$[e.easing]||s$.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=t,this._prop=n,this._from=a,this._to=r,this._promises=void 0}active(){return this._active}update(e,t,n){if(this._active){this._notify(!1);let r=this._target[this._prop],i=n-this._start,a=this._duration-i;this._start=n,this._duration=Math.floor(Math.max(a,e.duration)),this._total+=i,this._loop=!!e.loop,this._to=F$([e.to,t,r,e.from]),this._from=F$([e.from,r,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){let t=e-this._start,n=this._duration,r=this._prop,i=this._from,a=this._loop,o=this._to,s;if(this._active=i!==o&&(a||t1?2-s:s,s=this._easing(Math.min(1,Math.max(0,s))),this._target[r]=this._fn(i,o,s)}wait(){let e=this._promises||=[];return new Promise((t,n)=>{e.push({res:t,rej:n})})}_notify(e){let t=e?`res`:`rej`,n=this._promises||[];for(let e=0;e{let i=e[r];if(!cQ(i))return;let a={};for(let e of t)a[e]=i[e];(sQ(i.properties)&&i.properties||[r]).forEach(e=>{(e===r||!n.has(e))&&n.set(e,a)})})}_animateOptions(e,t){let n=t.options,r=fke(e,n);if(!r)return[];let i=this._createAnimations(r,n);return n.$shared&&dke(e.options.$animations,n).then(()=>{e.options=n},()=>{}),i}_createAnimations(e,t){let n=this._properties,r=[],i=e.$animations||={},a=Object.keys(t),o=Date.now(),s;for(s=a.length-1;s>=0;--s){let c=a[s];if(c.charAt(0)===`$`)continue;if(c===`options`){r.push(...this._animateOptions(e,t));continue}let l=t[c],u=i[c],d=n.get(c);if(u)if(d&&u.active()){u.update(d,l,o);continue}else u.cancel();if(!d||!d.duration){e[c]=l;continue}i[c]=u=new uke(d,e,c,l),r.push(u)}return r}update(e,t){if(this._properties.size===0){Object.assign(e,t);return}let n=this._createAnimations(e,t);if(n.length)return v1.add(this._chart,n),!0}};function dke(e,t){let n=[],r=Object.keys(t);for(let t=0;t0||!n&&t<0)return i.index}return null}function E1(e,t){let{chart:n,_cachedMeta:r}=e,i=n._stacks||={},{iScale:a,vScale:o,index:s}=r,c=a.axis,l=o.axis,u=gke(a,o,r),d=t.length,f;for(let e=0;en[e].axis===t).shift()}function yke(e,t){return I$(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:`default`,type:`dataset`})}function bke(e,t,n){return I$(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:`default`,type:`data`})}function O1(e,t){let n=e.controller.index,r=e.vScale&&e.vScale.axis;if(r){t||=e._parsed;for(let e of t){let t=e._stacks;if(!t||t[r]===void 0||t[r][n]===void 0)return;delete t[r][n],t[r]._visualValues!==void 0&&t[r]._visualValues[n]!==void 0&&delete t[r]._visualValues[n]}}}var k1=e=>e===`reset`||e===`none`,A1=(e,t)=>t?e:Object.assign({},e),xke=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:S1(n,!0),values:null},j1=class{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,t){this.chart=e,this._ctx=e.ctx,this.index=t,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){let e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=w1(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled(`filler`)&&console.warn(`Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options`)}updateIndex(e){this.index!==e&&O1(this._cachedMeta),this.index=e}linkScales(){let e=this.chart,t=this._cachedMeta,n=this.getDataset(),r=(e,t,n,r)=>e===`x`?t:e===`r`?r:n,i=t.xAxisID=dQ(n.xAxisID,D1(e,`x`)),a=t.yAxisID=dQ(n.yAxisID,D1(e,`y`)),o=t.rAxisID=dQ(n.rAxisID,D1(e,`r`)),s=t.indexAxis,c=t.iAxisID=r(s,i,a,o),l=t.vAxisID=r(s,a,i,o);t.xScale=this.getScaleForId(i),t.yScale=this.getScaleForId(a),t.rScale=this.getScaleForId(o),t.iScale=this.getScaleForId(c),t.vScale=this.getScaleForId(l)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){let t=this._cachedMeta;return e===t.iScale?t.vScale:t.iScale}reset(){this._update(`reset`)}_destroy(){let e=this._cachedMeta;this._data&&XQ(this._data,this),e._stacked&&O1(e)}_dataCheck(){let e=this.getDataset(),t=e.data||=[],n=this._data;if(cQ(t)){let e=this._cachedMeta;this._data=hke(t,e)}else if(n!==t){if(n){XQ(n,this);let e=this._cachedMeta;O1(e),e._parsed=[]}t&&Object.isExtensible(t)&&sOe(t,this),this._syncList=[],this._data=t}}addElements(){let e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){let t=this._cachedMeta,n=this.getDataset(),r=!1;this._dataCheck();let i=t._stacked;t._stacked=w1(t.vScale,t),t.stack!==n.stack&&(r=!0,O1(t),t.stack=n.stack),this._resyncElements(e),(r||i!==t._stacked)&&(E1(this,t._parsed),t._stacked=w1(t.vScale,t))}configure(){let e=this.chart.config,t=e.datasetScopeKeys(this._type),n=e.getOptionScopes(this.getDataset(),t,!0);this.options=e.createResolver(n,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,t){let{_cachedMeta:n,_data:r}=this,{iScale:i,_stacked:a}=n,o=i.axis,s=e===0&&t===r.length||n._sorted,c=e>0&&n._parsed[e-1],l,u,d;if(this._parsing===!1)n._parsed=r,n._sorted=!0,d=r;else{d=sQ(r[e])?this.parseArrayData(n,r,e,t):cQ(r[e])?this.parseObjectData(n,r,e,t):this.parsePrimitiveData(n,r,e,t);let i=()=>u[o]===null||c&&u[o]t||u=0;--d)if(!p()){this.updateRangeFromParsed(c,e,f,s);break}}return c}getAllParsedValues(e){let t=this._cachedMeta._parsed,n=[],r,i,a;for(r=0,i=t.length;r=0&&ethis.getContext(n,r,t),u);return p.$shared&&(p.$shared=s,i[a]=Object.freeze(A1(p,s))),p}_resolveAnimations(e,t,n){let r=this.chart,i=this._cachedDataOpts,a=`animation-${t}`,o=i[a];if(o)return o;let s;if(r.options.animation!==!1){let r=this.chart.config,i=r.datasetAnimationScopeKeys(this._type,t),a=r.getOptionScopes(this.getDataset(),i);s=r.createResolver(a,this.getContext(e,n,t))}let c=new b1(r,s&&s.animations);return s&&s._cacheable&&(i[a]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||=Object.assign({},e)}includeOptions(e,t){return!t||k1(e)||this.chart._animationsDisabled}_getSharedOptions(e,t){let n=this.resolveDataElementOptions(e,t),r=this._sharedOptions,i=this.getSharedOptions(n),a=this.includeOptions(t,i)||i!==r;return this.updateSharedOptions(i,t,n),{sharedOptions:i,includeOptions:a}}updateElement(e,t,n,r){k1(r)?Object.assign(e,n):this._resolveAnimations(t,r).update(e,n)}updateSharedOptions(e,t,n){e&&!k1(t)&&this._resolveAnimations(void 0,t).update(e,n)}_setStyle(e,t,n,r){e.active=r;let i=this.getStyle(t,r);this._resolveAnimations(t,n,r).update(e,{options:!r&&this.getSharedOptions(i)||i})}removeHoverStyle(e,t,n){this._setStyle(e,n,`active`,!1)}setHoverStyle(e,t,n){this._setStyle(e,n,`active`,!0)}_removeDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,`active`,!1)}_setDatasetHoverStyle(){let e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,`active`,!0)}_resyncElements(e){let t=this._data,n=this._cachedMeta.data;for(let[e,t,n]of this._syncList)this[e](t,n);this._syncList=[];let r=n.length,i=t.length,a=Math.min(i,r);a&&this.parse(0,a),i>r?this._insertElements(r,i-r,e):i{for(e.length+=t,o=e.length-1;o>=a;o--)e[o]=e[o-t]};for(s(i),o=e;oe-t))}return e._cache.$bar}function Cke(e){let t=e.iScale,n=Ske(t,e.type),r=t._length,i,a,o,s,c=()=>{o===32767||o===-32768||(CQ(s)&&(r=Math.min(r,Math.abs(o-s)||r)),s=o)};for(i=0,a=n.length;i0?i[e-1]:null,s=eMath.abs(s)&&(c=s,l=o),t[n.axis]=l,t._custom={barStart:c,barEnd:l,start:i,end:a,min:o,max:s}}function M1(e,t,n,r){return sQ(e)?Eke(e,t,n,r):t[n.axis]=n.parse(e,r),t}function N1(e,t,n,r){let i=e.iScale,a=e.vScale,o=i.getLabels(),s=i===a,c=[],l,u,d,f;for(l=n,u=n+r;l=n?1:-1):NQ(e)}function Oke(e){let t,n,r,i,a;return e.horizontal?(t=e.base>e.x,n=`left`,r=`right`):(t=e.basee.controller.options.grouped),i=n.options.stacked,a=[],o=this._cachedMeta.controller.getParsed(t),s=o&&o[n.axis],c=e=>{let t=e._parsed.find(e=>e[n.axis]===s),r=t&&t[e.vScale.axis];if(oQ(r)||isNaN(r))return!0};for(let n of r)if(!(t!==void 0&&c(n))&&((i===!1||a.indexOf(n.stack)===-1||i===void 0&&n.stack===void 0)&&a.push(n.stack),n.index===e))break;return a.length||a.push(void 0),a}_getStackCount(e){return this._getStacks(void 0,e).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){let e=this.chart.scales,t=this.chart.options.indexAxis;return Object.keys(e).filter(n=>e[n].axis===t).shift()}_getAxis(){let e={},t=this.getFirstScaleIdForIndexAxis();for(let n of this.chart.data.datasets)e[dQ(this.chart.options.indexAxis===`x`?n.xAxisID:n.yAxisID,t)]=!0;return Object.keys(e)}_getStackIndex(e,t,n){let r=this._getStacks(e,n),i=t===void 0?-1:r.indexOf(t);return i===-1?r.length-1:i}_getRuler(){let e=this.options,t=this._cachedMeta,n=t.iScale,r=[],i,a;for(i=0,a=t.data.length;i=0;--n)t=Math.max(t,e[n].size(this.resolveDataElementOptions(n))/2);return t>0&&t}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart.data.labels||[],{xScale:r,yScale:i}=t,a=this.getParsed(e),o=r.getLabelForValue(a.x),s=i.getLabelForValue(a.y),c=a._custom;return{label:n[e]||``,value:`(`+o+`, `+s+(c?`, `+c:``)+`)`}}update(e){let t=this._cachedMeta.data;this.updateElements(t,0,t.length,e)}updateElements(e,t,n,r){let i=r===`reset`,{iScale:a,vScale:o}=this._cachedMeta,{sharedOptions:s,includeOptions:c}=this._getSharedOptions(t,r),l=a.axis,u=o.axis;for(let d=t;dWQ(e,s,c,!0)?1:Math.max(t,t*n,r,r*n),m=(e,t,r)=>WQ(e,s,c,!0)?-1:Math.min(t,t*n,r,r*n),h=p(0,l,d),g=p(kQ,u,f),_=m(EQ,l,d),v=m(EQ+kQ,u,f);r=(h-_)/2,i=(g-v)/2,a=-(h+_)/2,o=-(g+v)/2}return{ratioX:r,ratioY:i,offsetX:a,offsetY:o}}var L1=class extends j1{static id=`doughnut`;static defaults={datasetElementType:!1,dataElementType:`arc`,animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:`number`,properties:[`circumference`,`endAngle`,`innerRadius`,`outerRadius`,`startAngle`,`x`,`y`,`offset`,`borderWidth`,`spacing`]}},cutout:`50%`,rotation:0,circumference:360,radius:`100%`,spacing:0,indexAxis:`r`};static descriptors={_scriptable:e=>e!==`spacing`,_indexable:e=>e!==`spacing`&&!e.startsWith(`borderDash`)&&!e.startsWith(`hoverBorderDash`)};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){let t=e.data,{labels:{pointStyle:n,textAlign:r,color:i,useBorderRadius:a,borderRadius:o}}=e.legend.options;return t.labels.length&&t.datasets.length?t.labels.map((t,s)=>{let c=e.getDatasetMeta(0).controller.getStyle(s);return{text:t,fillStyle:c.backgroundColor,fontColor:i,hidden:!e.getDataVisibility(s),lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:c.borderWidth,strokeStyle:c.borderColor,textAlign:r,pointStyle:n,borderRadius:a&&(o||c.borderRadius),index:s}}):[]}},onClick(e,t,n){n.chart.toggleDataVisibility(t.index),n.chart.update()}}}};constructor(e,t){super(e,t),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,t){let n=this.getDataset().data,r=this._cachedMeta;if(this._parsing===!1)r._parsed=n;else{let i=e=>+n[e];if(cQ(n[e])){let{key:e=`value`}=this._parsing;i=t=>+xQ(n[t],e)}let a,o;for(a=e,o=e+t;a0&&!isNaN(e)?Math.abs(e)/t*DQ:0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=f$(t._parsed[e],n.options.locale);return{label:r[e]||``,value:i}}getMaxBorderWidth(e){let t=0,n=this.chart,r,i,a,o,s;if(!e){for(r=0,i=n.data.datasets.length;r0&&this.getParsed(t-1);for(let n=0;n=_){v.skip=!0;continue}let b=this.getParsed(n),x=oQ(b[f]),S=v[d]=a.getPixelForValue(b[d],n),C=v[f]=i||x?o.getBasePixel():o.getPixelForValue(s?this.applyStack(o,b,s):b[f],n);v.skip=isNaN(S)||isNaN(C)||x,v.stop=n>0&&Math.abs(b[d]-y[d])>h,m&&(v.parsed=b,v.raw=c.data[n]),u&&(v.options=l||this.resolveDataElementOptions(n,p.active?`active`:r)),g||this.updateElement(p,n,v,r),y=b}}getMaxOverflow(){let e=this._cachedMeta,t=e.dataset,n=t.options&&t.options.borderWidth||0,r=e.data||[];if(!r.length)return n;let i=r[0].size(this.resolveDataElementOptions(0)),a=r[r.length-1].size(this.resolveDataElementOptions(r.length-1));return Math.max(n,i,a)/2}draw(){let e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}},R1=class extends j1{static id=`polarArea`;static defaults={dataElementType:`arc`,animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:`number`,properties:[`x`,`y`,`startAngle`,`endAngle`,`innerRadius`,`outerRadius`]}},indexAxis:`r`,startAngle:0};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){let t=e.data;if(t.labels.length&&t.datasets.length){let{labels:{pointStyle:n,color:r}}=e.legend.options;return t.labels.map((t,i)=>{let a=e.getDatasetMeta(0).controller.getStyle(i);return{text:t,fillStyle:a.backgroundColor,strokeStyle:a.borderColor,fontColor:r,lineWidth:a.borderWidth,pointStyle:n,hidden:!e.getDataVisibility(i),index:i}})}return[]}},onClick(e,t,n){n.chart.toggleDataVisibility(t.index),n.chart.update()}}},scales:{r:{type:`radialLinear`,angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(e,t){super(e,t),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=f$(t._parsed[e].r,n.options.locale);return{label:r[e]||``,value:i}}parseObjectData(e,t,n,r){return q$.bind(this)(e,t,n,r)}update(e){let t=this._cachedMeta.data;this._updateRadius(),this.updateElements(t,0,t.length,e)}getMinMax(){let e=this._cachedMeta,t={min:1/0,max:-1/0};return e.data.forEach((e,n)=>{let r=this.getParsed(n).r;!isNaN(r)&&this.chart.getDataVisibility(n)&&(rt.max&&(t.max=r))}),t}_updateRadius(){let e=this.chart,t=e.chartArea,n=e.options,r=Math.min(t.right-t.left,t.bottom-t.top),i=Math.max(r/2,0),a=(i-Math.max(n.cutoutPercentage?i/100*n.cutoutPercentage:1,0))/e.getVisibleDatasetCount();this.outerRadius=i-a*this.index,this.innerRadius=this.outerRadius-a}updateElements(e,t,n,r){let i=r===`reset`,a=this.chart,o=a.options.animation,s=this._cachedMeta.rScale,c=s.xCenter,l=s.yCenter,u=s.getIndexAngle(0)-.5*EQ,d=u,f,p=360/this.countVisibleElements();for(f=0;f{!isNaN(this.getParsed(n).r)&&this.chart.getDataVisibility(n)&&t++}),t}_computeAngle(e,t,n){return this.chart.getDataVisibility(e)?RQ(this.resolveDataElementOptions(e,t).angle||n):0}},Ike=Object.freeze({__proto__:null,BarController:Mke,BubbleController:Nke,DoughnutController:L1,LineController:Fke,PieController:class extends L1{static id=`pie`;static defaults={cutout:0,rotation:0,circumference:360,radius:`100%`}},PolarAreaController:R1,RadarController:class extends j1{static id=`radar`;static defaults={datasetElementType:`line`,dataElementType:`point`,indexAxis:`r`,showLine:!0,elements:{line:{fill:`start`}}};static overrides={aspectRatio:1,scales:{r:{type:`radialLinear`}}};getLabelAndValue(e){let t=this._cachedMeta.vScale,n=this.getParsed(e);return{label:t.getLabels()[e],value:``+t.getLabelForValue(n[t.axis])}}parseObjectData(e,t,n,r){return q$.bind(this)(e,t,n,r)}update(e){let t=this._cachedMeta,n=t.dataset,r=t.data||[],i=t.iScale.getLabels();if(n.points=r,e!==`resize`){let t=this.resolveDatasetElementOptions(e);this.options.showLine||(t.borderWidth=0);let a={_loop:!0,_fullLoop:i.length===r.length,options:t};this.updateElement(n,void 0,a,e)}this.updateElements(r,0,r.length,e)}updateElements(e,t,n,r){let i=this._cachedMeta.rScale,a=r===`reset`;for(let o=t;o0&&this.getParsed(t-1);for(let l=t;l0&&Math.abs(n[f]-v[f])>g,h&&(m.parsed=n,m.raw=c.data[l]),d&&(m.options=u||this.resolveDataElementOptions(l,t.active?`active`:r)),_||this.updateElement(t,l,m,r),v=n}this.updateSharedOptions(u,r,l)}getMaxOverflow(){let e=this._cachedMeta,t=e.data||[];if(!this.options.showLine){let e=0;for(let n=t.length-1;n>=0;--n)e=Math.max(e,t[n].size(this.resolveDataElementOptions(n))/2);return e>0&&e}let n=e.dataset,r=n.options&&n.options.borderWidth||0;if(!t.length)return r;let i=t[0].size(this.resolveDataElementOptions(0)),a=t[t.length-1].size(this.resolveDataElementOptions(t.length-1));return Math.max(r,i,a)/2}}});function z1(){throw Error(`This method is not implemented: Check that a complete date adapter is provided.`)}var Lke={_date:class e{static override(t){Object.assign(e.prototype,t)}options;constructor(e){this.options=e||{}}init(){}formats(){return z1()}parse(){return z1()}format(){return z1()}add(){return z1()}diff(){return z1()}startOf(){return z1()}endOf(){return z1()}}};function Rke(e,t,n,r){let{controller:i,data:a,_sorted:o}=e,s=i._cachedMeta.iScale,c=e.dataset&&e.dataset.options?e.dataset.options.spanGaps:null;if(s&&t===s.axis&&t!==`r`&&o&&a.length){let o=s._reversePixels?aOe:JQ;if(!r){let r=o(a,t,n);if(c){let{vScale:t}=i._cachedMeta,{_parsed:n}=e,a=n.slice(0,r.lo+1).reverse().findIndex(e=>!oQ(e[t.axis]));r.lo-=Math.max(0,a);let o=n.slice(r.hi).findIndex(e=>!oQ(e[t.axis]));r.hi+=Math.max(0,o)}return r}else if(i._sharedOptions){let e=a[0],r=typeof e.getRange==`function`&&e.getRange(t);if(r){let e=o(a,t,n-r),i=o(a,t,n+r);return{lo:e.lo,hi:i.hi}}}}return{lo:0,hi:a.length-1}}function B1(e,t,n,r,i){let a=e.getSortedVisibleDatasetMetas(),o=n[t];for(let e=0,n=a.length;e{e[o]&&e[o](t[n],i)&&(a.push({element:e,datasetIndex:r,index:c}),s||=e.inRange(t.x,t.y,i))}),r&&!s?[]:a}var Hke={evaluateInteractionItems:B1,modes:{index(e,t,n,r){let i=n1(t,e),a=n.axis||`x`,o=n.includeInvisible||!1,s=n.intersect?V1(e,i,a,r,o):H1(e,i,a,!1,r,o),c=[];return s.length?(e.getSortedVisibleDatasetMetas().forEach(e=>{let t=s[0].index,n=e.data[t];n&&!n.skip&&c.push({element:n,datasetIndex:e.index,index:t})}),c):[]},dataset(e,t,n,r){let i=n1(t,e),a=n.axis||`xy`,o=n.includeInvisible||!1,s=n.intersect?V1(e,i,a,r,o):H1(e,i,a,!1,r,o);if(s.length>0){let t=s[0].datasetIndex,n=e.getDatasetMeta(t).data;s=[];for(let e=0;ee.pos===t)}function K1(e,t){return e.filter(e=>W1.indexOf(e.pos)===-1&&e.box.axis===t)}function q1(e,t){return e.sort((e,n)=>{let r=t?n:e,i=t?e:n;return r.weight===i.weight?r.index-i.index:r.weight-i.weight})}function Uke(e){let t=[],n,r,i,a,o,s;for(n=0,r=(e||[]).length;ne.box.fullSize),!0),r=q1(G1(t,`left`),!0),i=q1(G1(t,`right`)),a=q1(G1(t,`top`),!0),o=q1(G1(t,`bottom`)),s=K1(t,`x`),c=K1(t,`y`);return{fullSize:n,leftAndTop:r.concat(a),rightAndBottom:i.concat(c).concat(o).concat(s),chartArea:G1(t,`chartArea`),vertical:r.concat(i).concat(c),horizontal:a.concat(o).concat(s)}}function J1(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function Y1(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function qke(e,t,n,r){let{pos:i,box:a}=n,o=e.maxPadding;if(!cQ(i)){n.size&&(e[i]-=n.size);let t=r[n.stack]||{size:0,count:1};t.size=Math.max(t.size,n.horizontal?a.height:a.width),n.size=t.size/t.count,e[i]+=n.size}a.getPadding&&Y1(o,a.getPadding());let s=Math.max(0,t.outerWidth-J1(o,e,`left`,`right`)),c=Math.max(0,t.outerHeight-J1(o,e,`top`,`bottom`)),l=s!==e.w,u=c!==e.h;return e.w=s,e.h=c,n.horizontal?{same:l,other:u}:{same:u,other:l}}function Jke(e){let t=e.maxPadding;function n(n){let r=Math.max(t[n]-e[n],0);return e[n]+=r,r}e.y+=n(`top`),e.x+=n(`left`),n(`right`),n(`bottom`)}function Yke(e,t){let n=t.maxPadding;function r(e){let r={left:0,top:0,right:0,bottom:0};return e.forEach(e=>{r[e]=Math.max(t[e],n[e])}),r}return r(e?[`left`,`right`]:[`top`,`bottom`])}function X1(e,t,n,r){let i=[],a,o,s,c,l,u;for(a=0,o=e.length,l=0;a{typeof e.beforeLayout==`function`&&e.beforeLayout()});let u=c.reduce((e,t)=>t.box.options&&t.box.options.display===!1?e:e+1,0)||1,d=Object.freeze({outerWidth:t,outerHeight:n,padding:i,availableWidth:a,availableHeight:o,vBoxMaxWidth:a/2/u,hBoxMaxHeight:o/2}),f=Object.assign({},i);Y1(f,N$(r));let p=Object.assign({maxPadding:f,w:a,h:o,x:i.left,y:i.top},i),m=Gke(c.concat(l),d);X1(s.fullSize,p,d,m),X1(c,p,d,m),X1(l,p,d,m)&&X1(c,p,d,m),Jke(p),Q1(s.leftAndTop,p,d,m),p.x+=p.w,p.y+=p.h,Q1(s.rightAndBottom,p,d,m),e.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},mQ(s.chartArea,t=>{let n=t.box;Object.assign(n,e.chartArea),n.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}},e0=class{acquireContext(e,t){}releaseContext(e){return!1}addEventListener(e,t,n){}removeEventListener(e,t,n){}getDevicePixelRatio(){return 1}getMaximumSize(e,t,n,r){return t=Math.max(0,t||e.width),n||=e.height,{width:t,height:Math.max(0,r?Math.floor(t/r):n)}}isAttached(e){return!0}updateConfig(e){}},Xke=class extends e0{acquireContext(e){return e&&e.getContext&&e.getContext(`2d`)||null}updateConfig(e){e.options.animation=!1}},t0=`$chartjs`,Zke={touchstart:`mousedown`,touchmove:`mousemove`,touchend:`mouseup`,pointerenter:`mouseenter`,pointerdown:`mousedown`,pointermove:`mousemove`,pointerup:`mouseup`,pointerleave:`mouseout`,pointerout:`mouseout`},n0=e=>e===null||e===``;function Qke(e,t){let n=e.style,r=e.getAttribute(`height`),i=e.getAttribute(`width`);if(e[t0]={initial:{height:r,width:i,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||`block`,n.boxSizing=n.boxSizing||`border-box`,n0(i)){let t=a1(e,`width`);t!==void 0&&(e.width=t)}if(n0(r))if(e.style.height===``)e.height=e.width/(t||2);else{let t=a1(e,`height`);t!==void 0&&(e.height=t)}return e}var r0=ZOe?{passive:!0}:!1;function $ke(e,t,n){e&&e.addEventListener(t,n,r0)}function eAe(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,r0)}function tAe(e,t){let n=Zke[e.type]||e.type,{x:r,y:i}=n1(e,t);return{type:n,chart:t,native:e,x:r===void 0?null:r,y:i===void 0?null:i}}function i0(e,t){for(let n of e)if(n===t||n.contains(t))return!0}function nAe(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=i0(n.addedNodes,r),t&&=!i0(n.removedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}function rAe(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=i0(n.removedNodes,r),t&&=!i0(n.addedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}var a0=new Map,o0=0;function s0(){let e=window.devicePixelRatio;e!==o0&&(o0=e,a0.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function iAe(e,t){a0.size||window.addEventListener(`resize`,s0),a0.set(e,t)}function aAe(e){a0.delete(e),a0.size||window.removeEventListener(`resize`,s0)}function oAe(e,t,n){let r=e.canvas,i=r&&Q$(r);if(!i)return;let a=$Q((e,t)=>{let r=i.clientWidth;n(e,t),r{let t=e[0],n=t.contentRect.width,r=t.contentRect.height;n===0&&r===0||a(n,r)});return o.observe(i),iAe(e,a),o}function c0(e,t,n){n&&n.disconnect(),t===`resize`&&aAe(e)}function sAe(e,t,n){let r=e.canvas,i=$Q(t=>{e.ctx!==null&&n(tAe(t,e))},e);return $ke(r,t,i),i}var cAe=class extends e0{acquireContext(e,t){let n=e&&e.getContext&&e.getContext(`2d`);return n&&n.canvas===e?(Qke(e,t),n):null}releaseContext(e){let t=e.canvas;if(!t[t0])return!1;let n=t[t0].initial;[`height`,`width`].forEach(e=>{let r=n[e];oQ(r)?t.removeAttribute(e):t.setAttribute(e,r)});let r=n.style||{};return Object.keys(r).forEach(e=>{t.style[e]=r[e]}),t.width=t.width,delete t[t0],!0}addEventListener(e,t,n){this.removeEventListener(e,t);let r=e.$proxies||={};r[t]=({attach:nAe,detach:rAe,resize:oAe}[t]||sAe)(e,t,n)}removeEventListener(e,t){let n=e.$proxies||={},r=n[t];r&&(({attach:c0,detach:c0,resize:c0}[t]||eAe)(e,t,r),n[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,n,r){return XOe(e,t,n,r)}isAttached(e){let t=e&&Q$(e);return!!(t&&t.isConnected)}};function lAe(e){return!Z$()||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas?Xke:cAe}var l0=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(e){let{x:t,y:n}=this.getProps([`x`,`y`],e);return{x:t,y:n}}hasValue(){return IQ(this.x)&&IQ(this.y)}getProps(e,t){let n=this.$animations;if(!t||!n)return this;let r={};return e.forEach(e=>{r[e]=n[e]&&n[e].active()?n[e]._to:this[e]}),r}};function uAe(e,t){let n=e.options.ticks,r=dAe(e),i=Math.min(n.maxTicksLimit||r,r),a=n.major.enabled?pAe(t):[],o=a.length,s=a[0],c=a[o-1],l=[];if(o>i)return mAe(t,l,a,o/i),l;let u=fAe(a,t,i);if(o>0){let e,n,r=o>1?Math.round((c-s)/(o-1)):null;for(u0(t,l,u,oQ(r)?0:s-r,s),e=0,n=o-1;ei)return t}return Math.max(i,1)}function pAe(e){let t=[],n,r;for(n=0,r=e.length;ne===`left`?`right`:e===`right`?`left`:e,d0=(e,t,n)=>t===`top`||t===`left`?e[t]+n:e[t]-n,f0=(e,t)=>Math.min(t||e,e);function p0(e,t){let n=[],r=e.length/t,i=e.length,a=0;for(;ao+s)))return c}function vAe(e,t){mQ(e,e=>{let n=e.gc,r=n.length/2,i;if(r>t){for(i=0;in?n:t,n=r&&t>n?t:n,{min:uQ(t,uQ(n,t)),max:uQ(n,uQ(t,n))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||=this._computeLabelItems(e)}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){pQ(this.options.beforeUpdate,[this])}update(e,t,n){let{beginAtZero:r,grace:i,ticks:a}=this.options,o=a.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=t,this._margins=n=Object.assign({left:0,right:0,top:0,bottom:0},n),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+n.left+n.right:this.height+n.top+n.bottom,this._dataLimitsCached||=(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=OOe(this,i,r),!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let s=o=i||n<=1||!this.isHorizontal()){this.labelRotation=r;return}let l=this._getLabelSizes(),u=l.widest.width,d=l.highest.height,f=GQ(this.chart.width-u,0,this.maxWidth);o=e.offset?this.maxWidth/n:f/(n-1),u+6>o&&(o=f/(n-(e.offset?.5:1)),s=this.maxHeight-m0(e.grid)-t.padding-h0(e.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),a=zQ(Math.min(Math.asin(GQ((l.highest.height+6)/o,-1,1)),Math.asin(GQ(s/c,-1,1))-Math.asin(GQ(d/c,-1,1)))),a=Math.max(r,Math.min(i,a))),this.labelRotation=a}afterCalculateLabelRotation(){pQ(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){pQ(this.options.beforeFit,[this])}fit(){let e={width:0,height:0},{chart:t,options:{ticks:n,title:r,grid:i}}=this,a=this._isVisible(),o=this.isHorizontal();if(a){let a=h0(r,t.options.font);if(o?(e.width=this.maxWidth,e.height=m0(i)+a):(e.height=this.maxHeight,e.width=m0(i)+a),n.display&&this.ticks.length){let{first:t,last:r,widest:i,highest:a}=this._getLabelSizes(),s=n.padding*2,c=RQ(this.labelRotation),l=Math.cos(c),u=Math.sin(c);if(o){let t=n.mirror?0:u*i.width+l*a.height;e.height=Math.min(this.maxHeight,e.height+t+s)}else{let t=n.mirror?0:l*i.width+u*a.height;e.width=Math.min(this.maxWidth,e.width+t+s)}this._calculatePadding(t,r,u,l)}}this._handleMargins(),o?(this.width=this._length=t.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=t.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,t,n,r){let{ticks:{align:i,padding:a},position:o}=this.options,s=this.labelRotation!==0,c=o!==`top`&&this.axis===`x`;if(this.isHorizontal()){let o=this.getPixelForTick(0)-this.left,l=this.right-this.getPixelForTick(this.ticks.length-1),u=0,d=0;s?c?(u=r*e.width,d=n*t.height):(u=n*e.height,d=r*t.width):i===`start`?d=t.width:i===`end`?u=e.width:i!==`inner`&&(u=e.width/2,d=t.width/2),this.paddingLeft=Math.max((u-o+a)*this.width/(this.width-o),0),this.paddingRight=Math.max((d-l+a)*this.width/(this.width-l),0)}else{let n=t.height/2,r=e.height/2;i===`start`?(n=0,r=e.height):i===`end`&&(n=t.height,r=0),this.paddingTop=n+a,this.paddingBottom=r+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){pQ(this.options.afterFit,[this])}isHorizontal(){let{axis:e,position:t}=this.options;return t===`top`||t===`bottom`||e===`x`}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let t,n;for(t=0,n=e.length;t({width:a[e]||0,height:o[e]||0});return{first:C(0),last:C(t-1),widest:C(x),highest:C(S),widths:a,heights:o}}getLabelForValue(e){return e}getPixelForValue(e,t){return NaN}getValueForPixel(e){}getPixelForTick(e){let t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);let t=this._startPixel+e*this._length;return iOe(this._alignToPixels?x$(this.chart,t,0):t)}getDecimalForPixel(e){let t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:e,max:t}=this;return e<0&&t<0?t:e>0&&t>0?e:0}getContext(e){let t=this.ticks||[];if(e>=0&&eo*r?o/n:s/r:s*r0:!!e}_computeGridLineItems(e){let t=this.axis,n=this.chart,r=this.options,{grid:i,position:a,border:o}=r,s=i.offset,c=this.isHorizontal(),l=this.ticks.length+ +!!s,u=m0(i),d=[],f=o.setContext(this.getContext()),p=f.display?f.width:0,m=p/2,h=function(e){return x$(n,e,p)},g,_,v,y,b,x,S,C,w,T,ee,E;if(a===`top`)g=h(this.bottom),x=this.bottom-u,C=g-m,T=h(e.top)+m,E=e.bottom;else if(a===`bottom`)g=h(this.top),T=e.top,E=h(e.bottom)-m,x=g+m,C=this.top+u;else if(a===`left`)g=h(this.right),b=this.right-u,S=g-m,w=h(e.left)+m,ee=e.right;else if(a===`right`)g=h(this.left),w=e.left,ee=h(e.right)-m,b=g+m,S=this.left+u;else if(t===`x`){if(a===`center`)g=h((e.top+e.bottom)/2+.5);else if(cQ(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}T=e.top,E=e.bottom,x=g+m,C=x+u}else if(t===`y`){if(a===`center`)g=h((e.left+e.right)/2);else if(cQ(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}b=g-m,S=b-u,w=e.left,ee=e.right}let te=dQ(r.ticks.maxTicksLimit,l),ne=Math.max(1,Math.ceil(l/te));for(_=0;_0&&(a-=r/2);break}f={left:a,top:i,width:r+t.width,height:n+t.height,color:e.backdropColor}}h.push({label:y,font:w,textOffset:E,options:{rotation:m,color:n,strokeColor:s,strokeWidth:l,textAlign:d,textBaseline:te,translation:[b,x],backdrop:f}})}return h}_getXAxisLabelAlignment(){let{position:e,ticks:t}=this.options;if(-RQ(this.labelRotation))return e===`top`?`left`:`right`;let n=`center`;return t.align===`start`?n=`left`:t.align===`end`?n=`right`:t.align===`inner`&&(n=`inner`),n}_getYAxisLabelAlignment(e){let{position:t,ticks:{crossAlign:n,mirror:r,padding:i}}=this.options,a=this._getLabelSizes(),o=e+i,s=a.widest.width,c,l;return t===`left`?r?(l=this.right+i,n===`near`?c=`left`:n===`center`?(c=`center`,l+=s/2):(c=`right`,l+=s)):(l=this.right-o,n===`near`?c=`right`:n===`center`?(c=`center`,l-=s/2):(c=`left`,l=this.left)):t===`right`?r?(l=this.left+i,n===`near`?c=`right`:n===`center`?(c=`center`,l-=s/2):(c=`left`,l-=s)):(l=this.left+o,n===`near`?c=`left`:n===`center`?(c=`center`,l+=s/2):(c=`right`,l=this.right)):c=`right`,{textAlign:c,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;let e=this.chart,t=this.options.position;if(t===`left`||t===`right`)return{top:0,left:this.left,bottom:e.height,right:this.right};if(t===`top`||t===`bottom`)return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){let{ctx:e,options:{backgroundColor:t},left:n,top:r,width:i,height:a}=this;t&&(e.save(),e.fillStyle=t,e.fillRect(n,r,i,a),e.restore())}getLineWidthForValue(e){let t=this.options.grid;if(!this._isVisible()||!t.display)return 0;let n=this.ticks.findIndex(t=>t.value===e);return n>=0?t.setContext(this.getContext(n)).lineWidth:0}drawGrid(e){let t=this.options.grid,n=this.ctx,r=this._gridLineItems||=this._computeGridLineItems(e),i,a,o=(e,t,r)=>{!r.width||!r.color||(n.save(),n.lineWidth=r.width,n.strokeStyle=r.color,n.setLineDash(r.borderDash||[]),n.lineDashOffset=r.borderDashOffset,n.beginPath(),n.moveTo(e.x,e.y),n.lineTo(t.x,t.y),n.stroke(),n.restore())};if(t.display)for(i=0,a=r.length;i{this.draw(e)}}]:[{z:r,draw:e=>{this.drawBackground(),this.drawGrid(e),this.drawTitle()}},{z:i,draw:()=>{this.drawBorder()}},{z:n,draw:e=>{this.drawLabels(e)}}]}getMatchingVisibleMetas(e){let t=this.chart.getSortedVisibleDatasetMetas(),n=this.axis+`AxisID`,r=[],i,a;for(i=0,a=t.length;i{let r=n.split(`.`),i=r.pop(),a=[e].concat(r).join(`.`),o=t[n].split(`.`),s=o.pop(),c=o.join(`.`);y$.route(a,i,c,s)})}function TAe(e){return`id`in e&&`defaults`in e}var v0=new class{constructor(){this.controllers=new _0(j1,`datasets`,!0),this.elements=new _0(l0,`elements`),this.plugins=new _0(Object,`plugins`),this.scales=new _0(g0,`scales`),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each(`register`,e)}remove(...e){this._each(`unregister`,e)}addControllers(...e){this._each(`register`,e,this.controllers)}addElements(...e){this._each(`register`,e,this.elements)}addPlugins(...e){this._each(`register`,e,this.plugins)}addScales(...e){this._each(`register`,e,this.scales)}getController(e){return this._get(e,this.controllers,`controller`)}getElement(e){return this._get(e,this.elements,`element`)}getPlugin(e){return this._get(e,this.plugins,`plugin`)}getScale(e){return this._get(e,this.scales,`scale`)}removeControllers(...e){this._each(`unregister`,e,this.controllers)}removeElements(...e){this._each(`unregister`,e,this.elements)}removePlugins(...e){this._each(`unregister`,e,this.plugins)}removeScales(...e){this._each(`unregister`,e,this.scales)}_each(e,t,n){[...t].forEach(t=>{let r=n||this._getRegistryForType(t);n||r.isForType(t)||r===this.plugins&&t.id?this._exec(e,r,t):mQ(t,t=>{let r=n||this._getRegistryForType(t);this._exec(e,r,t)})})}_exec(e,t,n){let r=SQ(e);pQ(n[`before`+r],[],n),t[e](n),pQ(n[`after`+r],[],n)}_getRegistryForType(e){for(let t=0;te.filter(e=>!t.some(t=>e.plugin.id===t.plugin.id));this._notify(r(t,n),e,`stop`),this._notify(r(n,t),e,`start`)}};function DAe(e){let t={},n=[],r=Object.keys(v0.plugins.items);for(let e=0;e1&&b0(e[0].toLowerCase());if(t)return t}throw Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function S0(e,t,n){if(n[t+`AxisID`]===e)return{axis:t}}function PAe(e,t){if(t.data&&t.data.datasets){let n=t.data.datasets.filter(t=>t.xAxisID===e||t.yAxisID===e);if(n.length)return S0(e,`x`,n[0])||S0(e,`y`,n[0])}return{}}function FAe(e,t){let n=h$[e.type]||{scales:{}},r=t.scales||{},i=y0(e.type,t),a=Object.create(null);return Object.keys(r).forEach(t=>{let o=r[t];if(!cQ(o))return console.error(`Invalid scale configuration for scale: ${t}`);if(o._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);let s=x0(t,o,PAe(t,e),y$.scales[o.type]),c=MAe(s,i),l=n.scales||{};a[t]=yQ(Object.create(null),[{axis:s},o,l[s],l[c]])}),e.data.datasets.forEach(n=>{let i=n.type||e.type,o=n.indexAxis||y0(i,t),s=(h$[i]||{}).scales||{};Object.keys(s).forEach(e=>{let t=jAe(e,o),i=n[t+`AxisID`]||t;a[i]=a[i]||Object.create(null),yQ(a[i],[{axis:t},r[i],s[e]])})}),Object.keys(a).forEach(e=>{let t=a[e];yQ(t,[y$.scales[t.type],y$.scale])}),a}function C0(e){let t=e.options||={};t.plugins=dQ(t.plugins,{}),t.scales=FAe(e,t)}function w0(e){return e||={},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function IAe(e){return e||={},e.data=w0(e.data),C0(e),e}var T0=new Map,E0=new Set;function D0(e,t){let n=T0.get(e);return n||(n=t(),T0.set(e,n),E0.add(n)),n}var O0=(e,t,n)=>{let r=xQ(t,n);r!==void 0&&e.add(r)},LAe=class{constructor(e){this._config=IAe(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=w0(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){let e=this._config;this.clearCache(),C0(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return D0(e,()=>[[`datasets.${e}`,``]])}datasetAnimationScopeKeys(e,t){return D0(`${e}.transition.${t}`,()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,``]])}datasetElementScopeKeys(e,t){return D0(`${e}-${t}`,()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,``]])}pluginScopeKeys(e){let t=e.id,n=this.type;return D0(`${n}-plugin-${t}`,()=>[[`plugins.${t}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,t){let n=this._scopeCache,r=n.get(e);return(!r||t)&&(r=new Map,n.set(e,r)),r}getOptionScopes(e,t,n){let{options:r,type:i}=this,a=this._cachedScopes(e,n),o=a.get(t);if(o)return o;let s=new Set;t.forEach(t=>{e&&(s.add(e),t.forEach(t=>O0(s,e,t))),t.forEach(e=>O0(s,r,e)),t.forEach(e=>O0(s,h$[i]||{},e)),t.forEach(e=>O0(s,y$,e)),t.forEach(e=>O0(s,g$,e))});let c=Array.from(s);return c.length===0&&c.push(Object.create(null)),E0.has(t)&&a.set(t,c),c}chartOptionScopes(){let{options:e,type:t}=this;return[e,h$[t]||{},y$.datasets[t]||{},{type:t},y$,g$]}resolveNamedOptions(e,t,n,r=[``]){let i={$shared:!0},{resolver:a,subPrefixes:o}=k0(this._resolverCache,e,r),s=a;if(zAe(a,t)){i.$shared=!1,n=wQ(n)?n():n;let t=this.createResolver(e,n,o);s=R$(a,n,t)}for(let e of t)i[e]=s[e];return i}createResolver(e,t,n=[``],r){let{resolver:i}=k0(this._resolverCache,e,n);return cQ(t)?R$(i,t,void 0,r):i}};function k0(e,t,n){let r=e.get(t);r||(r=new Map,e.set(t,r));let i=n.join(),a=r.get(i);return a||(a={resolver:L$(t,n),subPrefixes:n.filter(e=>!e.toLowerCase().includes(`hover`))},r.set(i,a)),a}var RAe=e=>cQ(e)&&Object.getOwnPropertyNames(e).some(t=>wQ(e[t]));function zAe(e,t){let{isScriptable:n,isIndexable:r}=z$(e);for(let i of t){let t=n(i),a=r(i),o=(a||t)&&e[i];if(t&&(wQ(o)||RAe(o))||a&&sQ(o))return!0}return!1}var BAe=`4.5.1`,VAe=[`top`,`bottom`,`left`,`right`,`chartArea`];function A0(e,t){return e===`top`||e===`bottom`||VAe.indexOf(e)===-1&&t===`x`}function j0(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function M0(e){let t=e.chart,n=t.options.animation;t.notifyPlugins(`afterRender`),pQ(n&&n.onComplete,[e],t)}function HAe(e){let t=e.chart,n=t.options.animation;pQ(n&&n.onProgress,[e],t)}function N0(e){return Z$()&&typeof e==`string`?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}var P0={},F0=e=>{let t=N0(e);return Object.values(P0).filter(e=>e.canvas===t).pop()};function UAe(e,t,n){let r=Object.keys(e);for(let i of r){let r=+i;if(r>=t){let a=e[i];delete e[i],(n>0||r>t)&&(e[r+n]=a)}}}function WAe(e,t,n,r){return!n||e.type===`mouseout`?null:r?t:e}var I0=class{static defaults=y$;static instances=P0;static overrides=h$;static registry=v0;static version=BAe;static getChart=F0;static register(...e){v0.add(...e),L0()}static unregister(...e){v0.remove(...e),L0()}constructor(e,t){let n=this.config=new LAe(t),r=N0(e),i=F0(r);if(i)throw Error(`Canvas is already in use. Chart with ID '`+i.id+`' must be destroyed before the canvas with ID '`+i.canvas.id+`' can be reused.`);let a=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||(lAe(r))),this.platform.updateConfig(n);let o=this.platform.acquireContext(r,a.aspectRatio),s=o&&o.canvas,c=s&&s.height,l=s&&s.width;if(this.id=GDe(),this.ctx=o,this.canvas=s,this.width=l,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new EAe,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=cOe(e=>this.update(e),a.resizeDelay||0),this._dataChanges=[],P0[this.id]=this,!o||!s){console.error(`Failed to create chart: can't acquire context from the given item`);return}v1.listen(this,`complete`,M0),v1.listen(this,`progress`,HAe),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:e,maintainAspectRatio:t},width:n,height:r,_aspectRatio:i}=this;return oQ(e)?t&&i?i:r?n/r:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}get registry(){return v0}_initialize(){return this.notifyPlugins(`beforeInit`),this.options.responsive?this.resize():i1(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(`afterInit`),this}clear(){return S$(this.canvas,this.ctx),this}stop(){return v1.stop(this),this}resize(e,t){v1.running(this)?this._resizeBeforeDraw={width:e,height:t}:this._resize(e,t)}_resize(e,t){let n=this.options,r=this.canvas,i=n.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(r,e,t,i),o=n.devicePixelRatio||this.platform.getDevicePixelRatio(),s=this.width?`resize`:`attach`;this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,i1(this,o,!0)&&(this.notifyPlugins(`resize`,{size:a}),pQ(n.onResize,[this,a],this),this.attached&&this._doResize(s)&&this.render())}ensureScalesHaveIDs(){mQ(this.options.scales||{},(e,t)=>{e.id=t})}buildOrUpdateScales(){let e=this.options,t=e.scales,n=this.scales,r=Object.keys(n).reduce((e,t)=>(e[t]=!1,e),{}),i=[];t&&(i=i.concat(Object.keys(t).map(e=>{let n=t[e],r=x0(e,n),i=r===`r`,a=r===`x`;return{options:n,dposition:i?`chartArea`:a?`bottom`:`left`,dtype:i?`radialLinear`:a?`category`:`linear`}}))),mQ(i,t=>{let i=t.options,a=i.id,o=x0(a,i),s=dQ(i.type,t.dtype);(i.position===void 0||A0(i.position,o)!==A0(t.dposition))&&(i.position=t.dposition),r[a]=!0;let c=null;a in n&&n[a].type===s?c=n[a]:(c=new(v0.getScale(s))({id:a,type:s,ctx:this.ctx,chart:this}),n[c.id]=c),c.init(i,e)}),mQ(r,(e,t)=>{e||delete n[t]}),mQ(n,e=>{$1.configure(this,e,e.options),$1.addBox(this,e)})}_updateMetasets(){let e=this._metasets,t=this.data.datasets.length,n=e.length;if(e.sort((e,t)=>e.index-t.index),n>t){for(let e=t;et.length&&delete this._stacks,e.forEach((e,n)=>{t.filter(t=>t===e._dataset).length===0&&this._destroyDatasetMeta(n)})}buildOrUpdateControllers(){let e=[],t=this.data.datasets,n,r;for(this._removeUnreferencedMetasets(),n=0,r=t.length;n{this.getDatasetMeta(t).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins(`reset`)}update(e){let t=this.config;t.update();let n=this._options=t.createResolver(t.chartOptionScopes(),this.getContext()),r=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins(`beforeUpdate`,{mode:e,cancelable:!0})===!1)return;let i=this.buildOrUpdateControllers();this.notifyPlugins(`beforeElementsUpdate`);let a=0;for(let e=0,t=this.data.datasets.length;e{e.reset()}),this._updateDatasets(e),this.notifyPlugins(`afterUpdate`,{mode:e}),this._layers.sort(j0(`z`,`_idx`));let{_active:o,_lastEvent:s}=this;s?this._eventHandler(s,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){mQ(this.scales,e=>{$1.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let e=this.options;(!TQ(new Set(Object.keys(this._listeners)),new Set(e.events))||!!this._responsiveListeners!==e.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:e}=this,t=this._getUniformDataChanges()||[];for(let{method:n,start:r,count:i}of t)UAe(e,r,n===`_removeElements`?-i:i)}_getUniformDataChanges(){let e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];let t=this.data.datasets.length,n=t=>new Set(e.filter(e=>e[0]===t).map((e,t)=>t+`,`+e.splice(1).join(`,`))),r=n(0);for(let e=1;ee.split(`,`)).map(e=>({method:e[1],start:+e[2],count:+e[3]}))}_updateLayout(e){if(this.notifyPlugins(`beforeLayout`,{cancelable:!0})===!1)return;$1.update(this,this.width,this.height,e);let t=this.chartArea,n=t.width<=0||t.height<=0;this._layers=[],mQ(this.boxes,e=>{n&&e.position===`chartArea`||(e.configure&&e.configure(),this._layers.push(...e._layers()))},this),this._layers.forEach((e,t)=>{e._idx=t}),this.notifyPlugins(`afterLayout`)}_updateDatasets(e){if(this.notifyPlugins(`beforeDatasetsUpdate`,{mode:e,cancelable:!0})!==!1){for(let e=0,t=this.data.datasets.length;e=0;--t)this._drawDataset(e[t]);this.notifyPlugins(`afterDatasetsDraw`)}_drawDataset(e){let t=this.ctx,n={meta:e,index:e.index,cancelable:!0},r=_1(this,e);this.notifyPlugins(`beforeDatasetDraw`,n)!==!1&&(r&&E$(t,r),e.controller.draw(),r&&D$(t),n.cancelable=!1,this.notifyPlugins(`afterDatasetDraw`,n))}isPointInArea(e){return T$(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,n,r){let i=Hke.modes[t];return typeof i==`function`?i(this,e,n,r):[]}getDatasetMeta(e){let t=this.data.datasets[e],n=this._metasets,r=n.filter(e=>e&&e._dataset===t).pop();return r||(r={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t&&t.order||0,index:e,_dataset:t,_parsed:[],_sorted:!1},n.push(r)),r}getContext(){return this.$context||=I$(null,{chart:this,type:`chart`})}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){let t=this.data.datasets[e];if(!t)return!1;let n=this.getDatasetMeta(e);return typeof n.hidden==`boolean`?!n.hidden:!t.hidden}setDatasetVisibility(e,t){let n=this.getDatasetMeta(e);n.hidden=!t}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,t,n){let r=n?`show`:`hide`,i=this.getDatasetMeta(e),a=i.controller._resolveAnimations(void 0,r);CQ(t)?(i.data[t].hidden=!n,this.update()):(this.setDatasetVisibility(e,n),a.update(i,{visible:n}),this.update(t=>t.datasetIndex===e?r:void 0))}hide(e,t){this._updateVisibility(e,t,!1)}show(e,t){this._updateVisibility(e,t,!0)}_destroyDatasetMeta(e){let t=this._metasets[e];t&&t.controller&&t.controller._destroy(),delete this._metasets[e]}_stop(){let e,t;for(this.stop(),v1.remove(this),e=0,t=this.data.datasets.length;e{t.addEventListener(this,n,r),e[n]=r},r=(e,t,n)=>{e.offsetX=t,e.offsetY=n,this._eventHandler(e)};mQ(this.options.events,e=>n(e,r))}bindResponsiveEvents(){this._responsiveListeners||={};let e=this._responsiveListeners,t=this.platform,n=(n,r)=>{t.addEventListener(this,n,r),e[n]=r},r=(n,r)=>{e[n]&&(t.removeEventListener(this,n,r),delete e[n])},i=(e,t)=>{this.canvas&&this.resize(e,t)},a,o=()=>{r(`attach`,o),this.attached=!0,this.resize(),n(`resize`,i),n(`detach`,a)};a=()=>{this.attached=!1,r(`resize`,i),this._stop(),this._resize(0,0),n(`attach`,o)},t.isAttached(this.canvas)?o():a()}unbindEvents(){mQ(this._listeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._listeners={},mQ(this._responsiveListeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._responsiveListeners=void 0}updateHoverStyle(e,t,n){let r=n?`set`:`remove`,i,a,o,s;for(t===`dataset`&&(i=this.getDatasetMeta(e[0].datasetIndex),i.controller[`_`+r+`DatasetHoverStyle`]()),o=0,s=e.length;o{let n=this.getDatasetMeta(e);if(!n)throw Error(`No dataset found at index `+e);return{datasetIndex:e,element:n.data[t],index:t}});hQ(n,t)||(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,t))}notifyPlugins(e,t,n){return this._plugins.notify(this,e,t,n)}isPluginEnabled(e){return this._plugins._cache.filter(t=>t.plugin.id===e).length===1}_updateHoverStyles(e,t,n){let r=this.options.hover,i=(e,t)=>e.filter(e=>!t.some(t=>e.datasetIndex===t.datasetIndex&&e.index===t.index)),a=i(t,e),o=n?e:i(e,t);a.length&&this.updateHoverStyle(a,r.mode,!1),o.length&&r.mode&&this.updateHoverStyle(o,r.mode,!0)}_eventHandler(e,t){let n={event:e,replay:t,cancelable:!0,inChartArea:this.isPointInArea(e)},r=t=>(t.options.events||this.options.events).includes(e.native.type);if(this.notifyPlugins(`beforeEvent`,n,r)===!1)return;let i=this._handleEvent(e,t,n.inChartArea);return n.cancelable=!1,this.notifyPlugins(`afterEvent`,n,r),(i||n.changed)&&this.render(),this}_handleEvent(e,t,n){let{_active:r=[],options:i}=this,a=t,o=this._getActiveElements(e,r,n,a),s=ZDe(e),c=WAe(e,this._lastEvent,n,s);n&&(this._lastEvent=null,pQ(i.onHover,[e,o,this],this),s&&pQ(i.onClick,[e,o,this],this));let l=!hQ(o,r);return(l||t)&&(this._active=o,this._updateHoverStyles(o,r,t)),this._lastEvent=c,l}_getActiveElements(e,t,n,r){if(e.type===`mouseout`)return[];if(!n)return t;let i=this.options.hover;return this.getElementsAtEventForMode(e,i.mode,i,r)}};function L0(){return mQ(I0.instances,e=>e._plugins.invalidate())}function GAe(e,t,n){let{startAngle:r,x:i,y:a,outerRadius:o,innerRadius:s,options:c}=t,{borderWidth:l,borderJoinStyle:u}=c,d=Math.min(l/o,UQ(r-n));if(e.beginPath(),e.arc(i,a,o-l/2,r+d/2,n-d/2),s>0){let t=Math.min(l/s,UQ(r-n));e.arc(i,a,s+l/2,n-t/2,r+t/2,!0)}else{let t=Math.min(l/2,o*UQ(r-n));if(u===`round`)e.arc(i,a,t,n-EQ/2,r+EQ/2,!0);else if(u===`bevel`){let o=2*t*t,s=-o*Math.cos(n+EQ/2)+i,c=-o*Math.sin(n+EQ/2)+a,l=o*Math.cos(r+EQ/2)+i,u=o*Math.sin(r+EQ/2)+a;e.lineTo(s,c),e.lineTo(l,u)}}e.closePath(),e.moveTo(0,0),e.rect(0,0,e.canvas.width,e.canvas.height),e.clip(`evenodd`)}function KAe(e,t,n){let{startAngle:r,pixelMargin:i,x:a,y:o,outerRadius:s,innerRadius:c}=t,l=i/s;e.beginPath(),e.arc(a,o,s,r-l,n+l),c>i?(l=i/c,e.arc(a,o,c,n+l,r-l,!0)):e.arc(a,o,i,n+kQ,r-kQ),e.closePath(),e.clip()}function qAe(e){return A$(e,[`outerStart`,`outerEnd`,`innerStart`,`innerEnd`])}function JAe(e,t,n,r){let i=qAe(e.options.borderRadius),a=(n-t)/2,o=Math.min(a,r*t/2),s=e=>{let t=(n-Math.min(a,e))*r/2;return GQ(e,0,Math.min(a,t))};return{outerStart:s(i.outerStart),outerEnd:s(i.outerEnd),innerStart:GQ(i.innerStart,0,o),innerEnd:GQ(i.innerEnd,0,o)}}function R0(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function z0(e,t,n,r,i,a){let{x:o,y:s,startAngle:c,pixelMargin:l,innerRadius:u}=t,d=Math.max(t.outerRadius+r+n-l,0),f=u>0?u+r+n+l:0,p=0,m=i-c;if(r){let e=((u>0?u-r:0)+(d>0?d-r:0))/2;p=(m-(e===0?m:m*e/(e+r)))/2}let h=(m-Math.max(.001,m*d-n/EQ)/d)/2,g=c+h+p,_=i-h-p,{outerStart:v,outerEnd:y,innerStart:b,innerEnd:x}=JAe(t,f,d,_-g),S=d-v,C=d-y,w=g+v/S,T=_-y/C,ee=f+b,E=f+x,te=g+b/ee,ne=_-x/E;if(e.beginPath(),a){let t=(w+T)/2;if(e.arc(o,s,d,w,t),e.arc(o,s,d,t,T),y>0){let t=R0(C,T,o,s);e.arc(t.x,t.y,y,T,_+kQ)}let n=R0(E,_,o,s);if(e.lineTo(n.x,n.y),x>0){let t=R0(E,ne,o,s);e.arc(t.x,t.y,x,_+kQ,ne+Math.PI)}let r=(_-x/f+(g+b/f))/2;if(e.arc(o,s,f,_-x/f,r,!0),e.arc(o,s,f,r,g+b/f,!0),b>0){let t=R0(ee,te,o,s);e.arc(t.x,t.y,b,te+Math.PI,g-kQ)}let i=R0(S,g,o,s);if(e.lineTo(i.x,i.y),v>0){let t=R0(S,w,o,s);e.arc(t.x,t.y,v,g-kQ,w)}}else{e.moveTo(o,s);let t=Math.cos(w)*d+o,n=Math.sin(w)*d+s;e.lineTo(t,n);let r=Math.cos(T)*d+o,i=Math.sin(T)*d+s;e.lineTo(r,i)}e.closePath()}function YAe(e,t,n,r,i){let{fullCircles:a,startAngle:o,circumference:s}=t,c=t.endAngle;if(a){z0(e,t,n,r,c,i);for(let t=0;t=EQ&&p===0&&u!==`miter`&&GAe(e,t,h),a||(z0(e,t,n,r,h,i),e.stroke())}var ZAe=class extends l0{static id=`arc`;static defaults={borderAlign:`center`,borderColor:`#fff`,borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:`backgroundColor`};static descriptors={_scriptable:!0,_indexable:e=>e!==`borderDash`};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,t,n){let{angle:r,distance:i}=VQ(this.getProps([`x`,`y`],n),{x:e,y:t}),{startAngle:a,endAngle:o,innerRadius:s,outerRadius:c,circumference:l}=this.getProps([`startAngle`,`endAngle`,`innerRadius`,`outerRadius`,`circumference`],n),u=(this.options.spacing+this.options.borderWidth)/2,d=dQ(l,o-a),f=WQ(r,a,o)&&a!==o,p=d>=DQ||f,m=KQ(i,s+u,c+u);return p&&m}getCenterPoint(e){let{x:t,y:n,startAngle:r,endAngle:i,innerRadius:a,outerRadius:o}=this.getProps([`x`,`y`,`startAngle`,`endAngle`,`innerRadius`,`outerRadius`],e),{offset:s,spacing:c}=this.options,l=(r+i)/2,u=(a+o+c+s)/2;return{x:t+Math.cos(l)*u,y:n+Math.sin(l)*u}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){let{options:t,circumference:n}=this,r=(t.offset||0)/4,i=(t.spacing||0)/2,a=t.circular;if(this.pixelMargin=t.borderAlign===`inner`?.33:0,this.fullCircles=n>DQ?Math.floor(n/DQ):0,n===0||this.innerRadius<0||this.outerRadius<0)return;e.save();let o=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(o)*r,Math.sin(o)*r);let s=r*(1-Math.sin(Math.min(EQ,n||0)));e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor,YAe(e,this,s,i,a),XAe(e,this,s,i,a),e.restore()}};function B0(e,t,n=t){e.lineCap=dQ(n.borderCapStyle,t.borderCapStyle),e.setLineDash(dQ(n.borderDash,t.borderDash)),e.lineDashOffset=dQ(n.borderDashOffset,t.borderDashOffset),e.lineJoin=dQ(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=dQ(n.borderWidth,t.borderWidth),e.strokeStyle=dQ(n.borderColor,t.borderColor)}function QAe(e,t,n){e.lineTo(n.x,n.y)}function $Ae(e){return e.stepped?yOe:e.tension||e.cubicInterpolationMode===`monotone`?bOe:QAe}function V0(e,t,n={}){let r=e.length,{start:i=0,end:a=r-1}=n,{start:o,end:s}=t,c=Math.max(i,o),l=Math.min(a,s),u=is&&a>s;return{count:r,start:c,loop:t.loop,ilen:l(o+(l?s-e:e))%a,y=()=>{h!==g&&(e.lineTo(u,g),e.lineTo(u,h),e.lineTo(u,_))};for(c&&(p=i[v(0)],e.moveTo(p.x,p.y)),f=0;f<=s;++f){if(p=i[v(f)],p.skip)continue;let t=p.x,n=p.y,r=t|0;r===m?(ng&&(g=n),u=(d*u+t)/++d):(y(),e.lineTo(t,n),m=r,d=0,h=g=n),_=n}y()}function H0(e){let t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!==`monotone`&&!t.stepped&&!n?tje:eje}function nje(e){return e.stepped?QOe:e.tension||e.cubicInterpolationMode===`monotone`?$Oe:o1}function rje(e,t,n,r){let i=t._path;i||(i=t._path=new Path2D,t.path(i,n,r)&&i.closePath()),B0(e,t.options),e.stroke(i)}function ije(e,t,n,r){let{segments:i,options:a}=t,o=H0(t);for(let s of i)B0(e,a,s.style),e.beginPath(),o(e,t,s,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}var aje=typeof Path2D==`function`;function oje(e,t,n,r){aje&&!t.options.segment?rje(e,t,n,r):ije(e,t,n,r)}var U0=class extends l0{static id=`line`;static defaults={borderCapStyle:`butt`,borderDash:[],borderDashOffset:0,borderJoinStyle:`miter`,borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:`default`,fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:`backgroundColor`,borderColor:`borderColor`};static descriptors={_scriptable:!0,_indexable:e=>e!==`borderDash`&&e!==`fill`};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,t){let n=this.options;if((n.tension||n.cubicInterpolationMode===`monotone`)&&!n.stepped&&!this._pointsUpdated){let r=n.spanGaps?this._loop:this._fullLoop;WOe(this._points,n,e,r,t),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||=ake(this,this.options.segment)}first(){let e=this.segments,t=this.points;return e.length&&t[e[0].start]}last(){let e=this.segments,t=this.points,n=e.length;return n&&t[e[n-1].end]}interpolate(e,t){let n=this.options,r=e[t],i=this.points,a=p1(this,{property:t,start:r,end:r});if(!a.length)return;let o=[],s=nje(n),c,l;for(c=0,l=a.length;ce.replace(`rgb(`,`rgba(`).replace(`)`,`, 0.5)`));function Z0(e){return Y0[e%Y0.length]}function Q0(e){return X0[e%X0.length]}function mje(e,t){return e.borderColor=Z0(t),e.backgroundColor=Q0(t),++t}function hje(e,t){return e.backgroundColor=e.data.map(()=>Z0(t++)),t}function gje(e,t){return e.backgroundColor=e.data.map(()=>Q0(t++)),t}function _je(e){let t=0;return(n,r)=>{let i=e.getDatasetMeta(r).controller;i instanceof L1?t=hje(n,t):i instanceof R1?t=gje(n,t):i&&(t=mje(n,t))}}function $0(e){let t;for(t in e)if(e[t].borderColor||e[t].backgroundColor)return!0;return!1}function vje(e){return e&&(e.borderColor||e.backgroundColor)}function yje(){return y$.borderColor!==`rgba(0,0,0,0.1)`||y$.backgroundColor!==`rgba(0,0,0,0.1)`}var bje={id:`colors`,defaults:{enabled:!0,forceOverride:!1},beforeLayout(e,t,n){if(!n.enabled)return;let{data:{datasets:r},options:i}=e.config,{elements:a}=i,o=$0(r)||vje(i)||a&&$0(a)||yje();if(!n.forceOverride&&o)return;let s=_je(e);r.forEach(s)}};function xje(e,t,n,r,i){let a=i.samples||r;if(a>=n)return e.slice(t,t+n);let o=[],s=(n-2)/(a-2),c=0,l=t+n-1,u=t,d,f,p,m,h;for(o[c++]=e[u],d=0;dp&&(p=m,f=e[a],h=a);o[c++]=f,u=h}return o[c++]=e[l],o}function Sje(e,t,n,r){let i=0,a=0,o,s,c,l,u,d,f,p,m,h,g=[],_=t+n-1,v=e[t].x,y=e[_].x-v;for(o=t;oh&&(h=l,f=o),i=(a*i+s.x)/++a;else{let n=o-1;if(!oQ(d)&&!oQ(f)){let t=Math.min(d,f),r=Math.max(d,f);t!==p&&t!==n&&g.push({...e[t],x:i}),r!==p&&r!==n&&g.push({...e[r],x:i})}o>0&&n!==p&&g.push(e[n]),g.push(s),u=t,a=0,m=h=l,d=f=p=o}}return g}function e2(e){if(e._decimated){let t=e._data;delete e._decimated,delete e._data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,writable:!0,value:t})}}function t2(e){e.data.datasets.forEach(e=>{e2(e)})}function Cje(e,t){let n=t.length,r=0,i,{iScale:a}=e,{min:o,max:s,minDefined:c,maxDefined:l}=a.getUserBounds();return c&&(r=GQ(JQ(t,a.axis,o).lo,0,n-1)),i=l?GQ(JQ(t,a.axis,s).hi+1,r,n)-r:n-r,{start:r,count:i}}var wje={id:`decimation`,defaults:{algorithm:`min-max`,enabled:!1},beforeElementsUpdate:(e,t,n)=>{if(!n.enabled){t2(e);return}let r=e.width;e.data.datasets.forEach((t,i)=>{let{_data:a,indexAxis:o}=t,s=e.getDatasetMeta(i),c=a||t.data;if(F$([o,e.options.indexAxis])===`y`||!s.controller.supportsDecimation)return;let l=e.scales[s.xAxisID];if(l.type!==`linear`&&l.type!==`time`||e.options.parsing)return;let{start:u,count:d}=Cje(s,c);if(d<=(n.threshold||4*r)){e2(t);return}oQ(a)&&(t._data=c,delete t.data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(e){this._data=e}}));let f;switch(n.algorithm){case`lttb`:f=xje(c,u,d,r,n);break;case`min-max`:f=Sje(c,u,d,r);break;default:throw Error(`Unsupported decimation algorithm '${n.algorithm}'`)}t._decimated=f})},destroy(e){t2(e)}};function Tje(e,t,n){let r=e.segments,i=e.points,a=t.points,o=[];for(let e of r){let{start:r,end:s}=e;s=r2(r,s,i);let c=n2(n,i[r],i[s],e.loop);if(!t.segments){o.push({source:e,target:c,start:i[r],end:i[s]});continue}let l=p1(t,c);for(let t of l){let r=n2(n,a[t.start],a[t.end],t.loop),s=f1(e,i,r);for(let e of s)o.push({source:e,target:t,start:{[n]:i2(c,r,`start`,Math.max)},end:{[n]:i2(c,r,`end`,Math.min)}})}}return o}function n2(e,t,n,r){if(r)return;let i=t[e],a=n[e];return e===`angle`&&(i=UQ(i),a=UQ(a)),{property:e,start:i,end:a}}function Eje(e,t){let{x:n=null,y:r=null}=e||{},i=t.points,a=[];return t.segments.forEach(({start:e,end:t})=>{t=r2(e,t,i);let o=i[e],s=i[t];r===null?n!==null&&(a.push({x:n,y:o.y}),a.push({x:n,y:s.y})):(a.push({x:o.x,y:r}),a.push({x:s.x,y:r}))}),a}function r2(e,t,n){for(;t>e;t--){let e=n[t];if(!isNaN(e.x)&&!isNaN(e.y))break}return t}function i2(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function a2(e,t){let n=[],r=!1;return sQ(e)?(r=!0,n=e):n=Eje(e,t),n.length?new U0({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function o2(e){return e&&e.fill!==!1}function Dje(e,t,n){let r=e[t].fill,i=[t],a;if(!n)return r;for(;r!==!1&&i.indexOf(r)===-1;){if(!lQ(r))return r;if(a=e[r],!a)return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function Oje(e,t,n){let r=Mje(e);if(cQ(r))return!isNaN(r.value)&&r;let i=parseFloat(r);return lQ(i)&&Math.floor(i)===i?kje(r[0],t,i,n):[`origin`,`start`,`end`,`stack`,`shape`].indexOf(r)>=0&&r}function kje(e,t,n,r){return(e===`-`||e===`+`)&&(n=t+n),n===t||n<0||n>=r?!1:n}function Aje(e,t){let n=null;return e===`start`?n=t.bottom:e===`end`?n=t.top:cQ(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function jje(e,t,n){let r;return r=e===`start`?n:e===`end`?t.options.reverse?t.min:t.max:cQ(e)?e.value:t.getBaseValue(),r}function Mje(e){let t=e.options,n=t.fill,r=dQ(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?`origin`:r}function Nje(e){let{scale:t,index:n,line:r}=e,i=[],a=r.segments,o=r.points,s=Pje(t,n);s.push(a2({x:null,y:t.bottom},r));for(let e=0;e=0;--t){let n=i[t].$filler;n&&(n.line.updateControlPoints(a,n.axis),r&&n.fill&&c2(e.ctx,n,a))}},beforeDatasetsDraw(e,t,n){if(n.drawTime!==`beforeDatasetsDraw`)return;let r=e.getSortedVisibleDatasetMetas();for(let t=r.length-1;t>=0;--t){let n=r[t].$filler;o2(n)&&c2(e.ctx,n,e.chartArea)}},beforeDatasetDraw(e,t,n){let r=t.meta.$filler;!o2(r)||n.drawTime!==`beforeDatasetDraw`||c2(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:`beforeDatasetDraw`}},p2=(e,t)=>{let{boxHeight:n=t,boxWidth:r=t}=e;return e.usePointStyle&&(n=Math.min(n,t),r=e.pointStyleWidth||Math.min(r,t)),{boxWidth:r,boxHeight:n,itemHeight:Math.max(t,n)}},Gje=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index,m2=class extends l0{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t,n){this.maxWidth=e,this.maxHeight=t,this._margins=n,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let e=this.options.labels||{},t=pQ(e.generateLabels,[this.chart],this)||[];e.filter&&(t=t.filter(t=>e.filter(t,this.chart.data))),e.sort&&(t=t.sort((t,n)=>e.sort(t,n,this.chart.data))),this.options.reverse&&t.reverse(),this.legendItems=t}fit(){let{options:e,ctx:t}=this;if(!e.display){this.width=this.height=0;return}let n=e.labels,r=P$(n.font),i=r.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:s}=p2(n,i),c,l;t.font=r.string,this.isHorizontal()?(c=this.maxWidth,l=this._fitRows(a,i,o,s)+10):(l=this.maxHeight,c=this._fitCols(a,r,o,s)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(l,e.maxHeight||this.maxHeight)}_fitRows(e,t,n,r){let{ctx:i,maxWidth:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],c=this.lineWidths=[0],l=r+o,u=e;i.textAlign=`left`,i.textBaseline=`middle`;let d=-1,f=-l;return this.legendItems.forEach((e,p)=>{let m=n+t/2+i.measureText(e.text).width;(p===0||c[c.length-1]+m+2*o>a)&&(u+=l,c[c.length-(p>0?0:1)]=0,f+=l,d++),s[p]={left:0,top:f,row:d,width:m,height:r},c[c.length-1]+=m+o}),u}_fitCols(e,t,n,r){let{ctx:i,maxHeight:a,options:{labels:{padding:o}}}=this,s=this.legendHitBoxes=[],c=this.columnSizes=[],l=a-e,u=o,d=0,f=0,p=0,m=0;return this.legendItems.forEach((e,a)=>{let{itemWidth:h,itemHeight:g}=Kje(n,t,i,e,r);a>0&&f+g+2*o>l&&(u+=d+o,c.push({width:d,height:f}),p+=d+o,m++,d=f=0),s[a]={left:p,top:f,col:m,width:h,height:g},d=Math.max(d,h),f+=g+o}),u+=d,c.push({width:d,height:f}),u}adjustHitBoxes(){if(!this.options.display)return;let e=this._computeTitleHeight(),{legendHitBoxes:t,options:{align:n,labels:{padding:r},rtl:i}}=this,a=s1(i,this.left,this.width);if(this.isHorizontal()){let i=0,o=t$(n,this.left+r,this.right-this.lineWidths[i]);for(let s of t)i!==s.row&&(i=s.row,o=t$(n,this.left+r,this.right-this.lineWidths[i])),s.top+=this.top+e+r,s.left=a.leftForLtr(a.x(o),s.width),o+=s.width+r}else{let i=0,o=t$(n,this.top+e+r,this.bottom-this.columnSizes[i].height);for(let s of t)s.col!==i&&(i=s.col,o=t$(n,this.top+e+r,this.bottom-this.columnSizes[i].height)),s.top=o,s.left+=this.left+r,s.left=a.leftForLtr(a.x(s.left),s.width),o+=s.height+r}}isHorizontal(){return this.options.position===`top`||this.options.position===`bottom`}draw(){if(this.options.display){let e=this.ctx;E$(e,this),this._draw(),D$(e)}}_draw(){let{options:e,columnSizes:t,lineWidths:n,ctx:r}=this,{align:i,labels:a}=e,o=y$.color,s=s1(e.rtl,this.left,this.width),c=P$(a.font),{padding:l}=a,u=c.size,d=u/2,f;this.drawTitle(),r.textAlign=s.textAlign(`left`),r.textBaseline=`middle`,r.lineWidth=.5,r.font=c.string;let{boxWidth:p,boxHeight:m,itemHeight:h}=p2(a,u),g=function(e,t,n){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;r.save();let i=dQ(n.lineWidth,1);if(r.fillStyle=dQ(n.fillStyle,o),r.lineCap=dQ(n.lineCap,`butt`),r.lineDashOffset=dQ(n.lineDashOffset,0),r.lineJoin=dQ(n.lineJoin,`miter`),r.lineWidth=i,r.strokeStyle=dQ(n.strokeStyle,o),r.setLineDash(dQ(n.lineDash,[])),a.usePointStyle){let o={radius:m*Math.SQRT2/2,pointStyle:n.pointStyle,rotation:n.rotation,borderWidth:i},c=s.xPlus(e,p/2),l=t+d;w$(r,o,c,l,a.pointStyleWidth&&p)}else{let a=t+Math.max((u-m)/2,0),o=s.leftForLtr(e,p),c=M$(n.borderRadius);r.beginPath(),Object.values(c).some(e=>e!==0)?k$(r,{x:o,y:a,w:p,h:m,radius:c}):r.rect(o,a,p,m),r.fill(),i!==0&&r.stroke()}r.restore()},_=function(e,t,n){O$(r,n.text,e,t+h/2,c,{strikethrough:n.hidden,textAlign:s.textAlign(n.textAlign)})},v=this.isHorizontal(),y=this._computeTitleHeight();f=v?{x:t$(i,this.left+l,this.right-n[0]),y:this.top+l+y,line:0}:{x:this.left+l,y:t$(i,this.top+y+l,this.bottom-t[0].height),line:0},c1(this.ctx,e.textDirection);let b=h+l;this.legendItems.forEach((o,u)=>{r.strokeStyle=o.fontColor,r.fillStyle=o.fontColor;let m=r.measureText(o.text).width,h=s.textAlign(o.textAlign||=a.textAlign),x=p+d+m,S=f.x,C=f.y;s.setWidth(this.width),v?u>0&&S+x+l>this.right&&(C=f.y+=b,f.line++,S=f.x=t$(i,this.left+l,this.right-n[f.line])):u>0&&C+b>this.bottom&&(S=f.x=S+t[f.line].width+l,f.line++,C=f.y=t$(i,this.top+y+l,this.bottom-t[f.line].height));let w=s.x(S);if(g(w,C,o),S=lOe(h,S+p+d,v?S+x:this.right,e.rtl),_(s.x(S),C,o),v)f.x+=x+l;else if(typeof o.text!=`string`){let e=c.lineHeight;f.y+=h2(o,e)+l}else f.y+=b}),l1(this.ctx,e.textDirection)}drawTitle(){let e=this.options,t=e.title,n=P$(t.font),r=N$(t.padding);if(!t.display)return;let i=s1(e.rtl,this.left,this.width),a=this.ctx,o=t.position,s=n.size/2,c=r.top+s,l,u=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),l=this.top+c,u=t$(e.align,u,this.right-d);else{let t=this.columnSizes.reduce((e,t)=>Math.max(e,t.height),0);l=c+t$(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}let f=t$(o,u,u+d);a.textAlign=i.textAlign(e$(o)),a.textBaseline=`middle`,a.strokeStyle=t.color,a.fillStyle=t.color,a.font=n.string,O$(a,t.text,f,l,n)}_computeTitleHeight(){let e=this.options.title,t=P$(e.font),n=N$(e.padding);return e.display?t.lineHeight+n.height:0}_getLegendItemAt(e,t){let n,r,i;if(KQ(e,this.left,this.right)&&KQ(t,this.top,this.bottom)){for(i=this.legendHitBoxes,n=0;ne.length>t.length?e:t)),t+n.size/2+r.measureText(i).width}function Jje(e,t,n){let r=e;return typeof t.text!=`string`&&(r=h2(t,n)),r}function h2(e,t){return t*(e.text?e.text.length:0)}function Yje(e,t){return!!((e===`mousemove`||e===`mouseout`)&&(t.onHover||t.onLeave)||t.onClick&&(e===`click`||e===`mouseup`))}var Xje={id:`legend`,_element:m2,start(e,t,n){let r=e.legend=new m2({ctx:e.ctx,options:n,chart:e});$1.configure(e,r,n),$1.addBox(e,r)},stop(e){$1.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){let r=e.legend;$1.configure(e,r,n),r.options=n},afterUpdate(e){let t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:`top`,align:`center`,fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,n){let r=t.datasetIndex,i=n.chart;i.isDatasetVisible(r)?(i.hide(r),t.hidden=!0):(i.show(r),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){let t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:i,color:a,useBorderRadius:o,borderRadius:s}}=e.legend.options;return e._getSortedDatasetMetas().map(e=>{let c=e.controller.getStyle(n?0:void 0),l=N$(c.borderWidth);return{text:t[e.index].label,fillStyle:c.backgroundColor,fontColor:a,hidden:!e.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(l.width+l.height)/4,strokeStyle:c.borderColor,pointStyle:r||c.pointStyle,rotation:c.rotation,textAlign:i||c.textAlign,borderRadius:o&&(s||c.borderRadius),datasetIndex:e.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:`center`,text:``}},descriptors:{_scriptable:e=>!e.startsWith(`on`),labels:{_scriptable:e=>![`generateLabels`,`filter`,`sort`].includes(e)}}},g2=class extends l0{constructor(e){super(),this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t){let n=this.options;if(this.left=0,this.top=0,!n.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=e,this.height=this.bottom=t;let r=sQ(n.text)?n.text.length:1;this._padding=N$(n.padding);let i=r*P$(n.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=i:this.width=i}isHorizontal(){let e=this.options.position;return e===`top`||e===`bottom`}_drawArgs(e){let{top:t,left:n,bottom:r,right:i,options:a}=this,o=a.align,s=0,c,l,u;return this.isHorizontal()?(l=t$(o,n,i),u=t+e,c=i-n):(a.position===`left`?(l=n+e,u=t$(o,r,t),s=EQ*-.5):(l=i-e,u=t$(o,t,r),s=EQ*.5),c=r-t),{titleX:l,titleY:u,maxWidth:c,rotation:s}}draw(){let e=this.ctx,t=this.options;if(!t.display)return;let n=P$(t.font),r=n.lineHeight/2+this._padding.top,{titleX:i,titleY:a,maxWidth:o,rotation:s}=this._drawArgs(r);O$(e,t.text,0,0,n,{color:t.color,maxWidth:o,rotation:s,textAlign:e$(t.align),textBaseline:`middle`,translation:[i,a]})}};function Zje(e,t){let n=new g2({ctx:e.ctx,options:t,chart:e});$1.configure(e,n,t),$1.addBox(e,n),e.titleBlock=n}var Qje={id:`title`,_element:g2,start(e,t,n){Zje(e,n)},stop(e){let t=e.titleBlock;$1.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){let r=e.titleBlock;$1.configure(e,r,n),r.options=n},defaults:{align:`center`,display:!1,font:{weight:`bold`},fullSize:!0,padding:10,position:`top`,text:``,weight:2e3},defaultRoutes:{color:`color`},descriptors:{_scriptable:!0,_indexable:!1}},_2=new WeakMap,$je={id:`subtitle`,start(e,t,n){let r=new g2({ctx:e.ctx,options:n,chart:e});$1.configure(e,r,n),$1.addBox(e,r),_2.set(e,r)},stop(e){$1.removeBox(e,_2.get(e)),_2.delete(e)},beforeUpdate(e,t,n){let r=_2.get(e);$1.configure(e,r,n),r.options=n},defaults:{align:`center`,display:!1,font:{weight:`normal`},fullSize:!0,padding:0,position:`top`,text:``,weight:1500},defaultRoutes:{color:`color`},descriptors:{_scriptable:!0,_indexable:!1}},v2={average(e){if(!e.length)return!1;let t,n,r=new Set,i=0,a=0;for(t=0,n=e.length;te+t)/r.size,y:i/a}},nearest(e,t){if(!e.length)return!1;let n=t.x,r=t.y,i=1/0,a,o,s;for(a=0,o=e.length;a-1?e.split(` -`):e}function eMe(e,t){let{element:n,datasetIndex:r,index:i}=t,a=e.getDatasetMeta(r).controller,{label:o,value:s}=a.getLabelAndValue(i);return{chart:e,label:o,parsed:a.getParsed(i),raw:e.data.datasets[r].data[i],formattedValue:s,dataset:a.getDataset(),dataIndex:i,datasetIndex:r,element:n}}function x2(e,t){let n=e.chart.ctx,{body:r,footer:i,title:a}=e,{boxWidth:o,boxHeight:s}=t,c=P$(t.bodyFont),l=P$(t.titleFont),u=P$(t.footerFont),d=a.length,f=i.length,p=r.length,m=N$(t.padding),h=m.height,g=0,_=r.reduce((e,t)=>e+t.before.length+t.lines.length+t.after.length,0);if(_+=e.beforeBody.length+e.afterBody.length,d&&(h+=d*l.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),_){let e=t.displayColors?Math.max(s,c.lineHeight):c.lineHeight;h+=p*e+(_-p)*c.lineHeight+(_-1)*t.bodySpacing}f&&(h+=t.footerMarginTop+f*u.lineHeight+(f-1)*t.footerSpacing);let v=0,y=function(e){g=Math.max(g,n.measureText(e).width+v)};return n.save(),n.font=l.string,mQ(e.title,y),n.font=c.string,mQ(e.beforeBody.concat(e.afterBody),y),v=t.displayColors?o+2+t.boxPadding:0,mQ(r,e=>{mQ(e.before,y),mQ(e.lines,y),mQ(e.after,y)}),v=0,n.font=u.string,mQ(e.footer,y),n.restore(),g+=m.width,{width:g,height:h}}function tMe(e,t){let{y:n,height:r}=t;return ne.height-r/2?`bottom`:`center`}function nMe(e,t,n,r){let{x:i,width:a}=r,o=n.caretSize+n.caretPadding;if(e===`left`&&i+a+o>t.width||e===`right`&&i-a-o<0)return!0}function rMe(e,t,n,r){let{x:i,width:a}=n,{width:o,chartArea:{left:s,right:c}}=e,l=`center`;return r===`center`?l=i<=(s+c)/2?`left`:`right`:i<=a/2?l=`left`:i>=o-a/2&&(l=`right`),nMe(l,e,t,n)&&(l=`center`),l}function S2(e,t,n){let r=n.yAlign||t.yAlign||tMe(e,n);return{xAlign:n.xAlign||t.xAlign||rMe(e,t,n,r),yAlign:r}}function iMe(e,t){let{x:n,width:r}=e;return t===`right`?n-=r:t===`center`&&(n-=r/2),n}function aMe(e,t,n){let{y:r,height:i}=e;return t===`top`?r+=n:t===`bottom`?r-=i+n:r-=i/2,r}function C2(e,t,n,r){let{caretSize:i,caretPadding:a,cornerRadius:o}=e,{xAlign:s,yAlign:c}=n,l=i+a,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:p}=M$(o),m=iMe(t,s),h=aMe(t,c,l);return c===`center`?s===`left`?m+=l:s===`right`&&(m-=l):s===`left`?m-=Math.max(u,f)+i:s===`right`&&(m+=Math.max(d,p)+i),{x:GQ(m,0,r.width-t.width),y:GQ(h,0,r.height-t.height)}}function w2(e,t,n){let r=N$(n.padding);return t===`center`?e.x+e.width/2:t===`right`?e.x+e.width-r.right:e.x+r.left}function T2(e){return y2([],b2(e))}function oMe(e,t,n){return I$(e,{tooltip:t,tooltipItems:n,type:`tooltip`})}function E2(e,t){let n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}var D2={beforeTitle:aQ,title(e){if(e.length>0){let t=e[0],n=t.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode===`dataset`)return t.dataset.label||``;if(t.label)return t.label;if(r>0&&t.dataIndex{let t={before:[],lines:[],after:[]},i=E2(n,e);y2(t.before,b2(O2(i,`beforeLabel`,this,e))),y2(t.lines,O2(i,`label`,this,e)),y2(t.after,b2(O2(i,`afterLabel`,this,e))),r.push(t)}),r}getAfterBody(e,t){return T2(O2(t.callbacks,`afterBody`,this,e))}getFooter(e,t){let{callbacks:n}=t,r=O2(n,`beforeFooter`,this,e),i=O2(n,`footer`,this,e),a=O2(n,`afterFooter`,this,e),o=[];return o=y2(o,b2(r)),o=y2(o,b2(i)),o=y2(o,b2(a)),o}_createItems(e){let t=this._active,n=this.chart.data,r=[],i=[],a=[],o=[],s,c;for(s=0,c=t.length;se.filter(t,r,i,n))),e.itemSort&&(o=o.sort((t,r)=>e.itemSort(t,r,n))),mQ(o,t=>{let n=E2(e.callbacks,t);r.push(O2(n,`labelColor`,this,t)),i.push(O2(n,`labelPointStyle`,this,t)),a.push(O2(n,`labelTextColor`,this,t))}),this.labelColors=r,this.labelPointStyles=i,this.labelTextColors=a,this.dataPoints=o,o}update(e,t){let n=this.options.setContext(this.getContext()),r=this._active,i,a=[];if(!r.length)this.opacity!==0&&(i={opacity:0});else{let e=v2[n.position].call(this,r,this._eventPosition);a=this._createItems(n),this.title=this.getTitle(a,n),this.beforeBody=this.getBeforeBody(a,n),this.body=this.getBody(a,n),this.afterBody=this.getAfterBody(a,n),this.footer=this.getFooter(a,n);let t=this._size=x2(this,n),o=Object.assign({},e,t),s=S2(this.chart,n,o),c=C2(n,o,s,this.chart);this.xAlign=s.xAlign,this.yAlign=s.yAlign,i={opacity:1,x:c.x,y:c.y,width:t.width,height:t.height,caretX:e.x,caretY:e.y}}this._tooltipItems=a,this.$context=void 0,i&&this._resolveAnimations().update(this,i),e&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:t})}drawCaret(e,t,n,r){let i=this.getCaretPosition(e,n,r);t.lineTo(i.x1,i.y1),t.lineTo(i.x2,i.y2),t.lineTo(i.x3,i.y3)}getCaretPosition(e,t,n){let{xAlign:r,yAlign:i}=this,{caretSize:a,cornerRadius:o}=n,{topLeft:s,topRight:c,bottomLeft:l,bottomRight:u}=M$(o),{x:d,y:f}=e,{width:p,height:m}=t,h,g,_,v,y,b;return i===`center`?(y=f+m/2,r===`left`?(h=d,g=h-a,v=y+a,b=y-a):(h=d+p,g=h+a,v=y-a,b=y+a),_=h):(g=r===`left`?d+Math.max(s,l)+a:r===`right`?d+p-Math.max(c,u)-a:this.caretX,i===`top`?(v=f,y=v-a,h=g-a,_=g+a):(v=f+m,y=v+a,h=g+a,_=g-a),b=v),{x1:h,x2:g,x3:_,y1:v,y2:y,y3:b}}drawTitle(e,t,n){let r=this.title,i=r.length,a,o,s;if(i){let c=s1(n.rtl,this.x,this.width);for(e.x=w2(this,n.titleAlign,n),t.textAlign=c.textAlign(n.titleAlign),t.textBaseline=`middle`,a=P$(n.titleFont),o=n.titleSpacing,t.fillStyle=n.titleColor,t.font=a.string,s=0;se!==0)?(e.beginPath(),e.fillStyle=i.multiKeyBackground,k$(e,{x:t,y:p,w:c,h:s,radius:o}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),k$(e,{x:n,y:p+1,w:c-2,h:s-2,radius:o}),e.fill()):(e.fillStyle=i.multiKeyBackground,e.fillRect(t,p,c,s),e.strokeRect(t,p,c,s),e.fillStyle=a.backgroundColor,e.fillRect(n,p+1,c-2,s-2))}e.fillStyle=this.labelTextColors[n]}drawBody(e,t,n){let{body:r}=this,{bodySpacing:i,bodyAlign:a,displayColors:o,boxHeight:s,boxWidth:c,boxPadding:l}=n,u=P$(n.bodyFont),d=u.lineHeight,f=0,p=s1(n.rtl,this.x,this.width),m=function(n){t.fillText(n,p.x(e.x+f),e.y+d/2),e.y+=d+i},h=p.textAlign(a),g,_,v,y,b,x,S;for(t.textAlign=a,t.textBaseline=`middle`,t.font=u.string,e.x=w2(this,h,n),t.fillStyle=n.bodyColor,mQ(this.beforeBody,m),f=o&&h!==`right`?a===`center`?c/2+l:c+2+l:0,y=0,x=r.length;y0&&t.stroke()}_updateAnimationTarget(e){let t=this.chart,n=this.$animations,r=n&&n.x,i=n&&n.y;if(r||i){let n=v2[e.position].call(this,this._active,this._eventPosition);if(!n)return;let a=this._size=x2(this,e),o=Object.assign({},n,this._size),s=S2(t,e,o),c=C2(e,o,s,t);(r._to!==c.x||i._to!==c.y)&&(this.xAlign=s.xAlign,this.yAlign=s.yAlign,this.width=a.width,this.height=a.height,this.caretX=n.x,this.caretY=n.y,this._resolveAnimations().update(this,c))}}_willRender(){return!!this.opacity}draw(e){let t=this.options.setContext(this.getContext()),n=this.opacity;if(!n)return;this._updateAnimationTarget(t);let r={width:this.width,height:this.height},i={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;let a=N$(t.padding),o=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;t.enabled&&o&&(e.save(),e.globalAlpha=n,this.drawBackground(i,e,r,t),c1(e,t.textDirection),i.y+=a.top,this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),l1(e,t.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,t){let n=this._active,r=e.map(({datasetIndex:e,index:t})=>{let n=this.chart.getDatasetMeta(e);if(!n)throw Error(`Cannot find a dataset at index `+e);return{datasetIndex:e,element:n.data[t],index:t}}),i=!hQ(n,r),a=this._positionChanged(r,t);(i||a)&&(this._active=r,this._eventPosition=t,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,t,n=!0){if(t&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let r=this.options,i=this._active||[],a=this._getActiveElements(e,i,t,n),o=this._positionChanged(a,e),s=t||!hQ(a,i)||o;return s&&(this._active=a,(r.enabled||r.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,t))),s}_getActiveElements(e,t,n,r){let i=this.options;if(e.type===`mouseout`)return[];if(!r)return t.filter(e=>this.chart.data.datasets[e.datasetIndex]&&this.chart.getDatasetMeta(e.datasetIndex).controller.getParsed(e.index)!==void 0);let a=this.chart.getElementsAtEventForMode(e,i.mode,i,n);return i.reverse&&a.reverse(),a}_positionChanged(e,t){let{caretX:n,caretY:r,options:i}=this,a=v2[i.position].call(this,e,t);return a!==!1&&(n!==a.x||r!==a.y)}},sMe=Object.freeze({__proto__:null,Colors:bje,Decimation:wje,Filler:Wje,Legend:Xje,SubTitle:$je,Title:Qje,Tooltip:{id:`tooltip`,_element:k2,positioners:v2,afterInit(e,t,n){n&&(e.tooltip=new k2({chart:e,options:n}))},beforeUpdate(e,t,n){e.tooltip&&e.tooltip.initialize(n)},reset(e,t,n){e.tooltip&&e.tooltip.initialize(n)},afterDraw(e){let t=e.tooltip;if(t&&t._willRender()){let n={tooltip:t};if(e.notifyPlugins(`beforeTooltipDraw`,{...n,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins(`afterTooltipDraw`,n)}},afterEvent(e,t){if(e.tooltip){let n=t.replay;e.tooltip.handleEvent(t.event,n,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:`average`,backgroundColor:`rgba(0,0,0,0.8)`,titleColor:`#fff`,titleFont:{weight:`bold`},titleSpacing:2,titleMarginBottom:6,titleAlign:`left`,bodyColor:`#fff`,bodySpacing:2,bodyFont:{},bodyAlign:`left`,footerColor:`#fff`,footerSpacing:2,footerMarginTop:6,footerFont:{weight:`bold`},footerAlign:`left`,padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:`#fff`,displayColors:!0,boxPadding:0,borderColor:`rgba(0,0,0,0)`,borderWidth:0,animation:{duration:400,easing:`easeOutQuart`},animations:{numbers:{type:`number`,properties:[`x`,`y`,`width`,`height`,`caretX`,`caretY`]},opacity:{easing:`linear`,duration:200}},callbacks:D2},defaultRoutes:{bodyFont:`font`,footerFont:`font`,titleFont:`font`},descriptors:{_scriptable:e=>e!==`filter`&&e!==`itemSort`&&e!==`external`,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:`animation`}},additionalOptionScopes:[`interaction`]}}),cMe=(e,t,n,r)=>(typeof t==`string`?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function lMe(e,t,n,r){let i=e.indexOf(t);return i===-1?cMe(e,t,n,r):i===e.lastIndexOf(t)?i:n}var uMe=(e,t)=>e===null?null:GQ(Math.round(e),0,t);function A2(e){let t=this.getLabels();return e>=0&&et.length-1?null:this.getPixelForValue(t[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}};function fMe(e,t){let n=[],{bounds:r,step:i,min:a,max:o,precision:s,count:c,maxTicks:l,maxDigits:u,includeBounds:d}=e,f=i||1,p=l-1,{min:m,max:h}=t,g=!oQ(a),_=!oQ(o),v=!oQ(c),y=(h-m)/(u+1),b=FQ((h-m)/p/f)*f,x,S,C,w;if(b<1e-14&&!g&&!_)return[{value:m},{value:h}];w=Math.ceil(h/b)-Math.floor(m/b),w>p&&(b=FQ(w*b/p/f)*f),oQ(s)||(x=10**s,b=Math.ceil(b*x)/x),r===`ticks`?(S=Math.floor(m/b)*b,C=Math.ceil(h/b)*b):(S=m,C=h),g&&_&&i&&nOe((o-a)/i,b/1e3)?(w=Math.round(Math.min((o-a)/b,l)),b=(o-a)/w,S=a,C=o):v?(S=g?a:S,C=_?o:C,w=c-1,b=(C-S)/w):(w=(C-S)/b,w=PQ(w,Math.round(w),b/1e3)?Math.round(w):Math.ceil(w));let T=Math.max(BQ(b),BQ(S));x=10**(oQ(s)?T:s),S=Math.round(S*x)/x,C=Math.round(C*x)/x;let ee=0;for(g&&(d&&S!==a?(n.push({value:a}),So)break;n.push({value:e})}return _&&d&&C!==o?n.length&&PQ(n[n.length-1].value,o,j2(o,y,e))?n[n.length-1].value=o:n.push({value:o}):(!_||C===o)&&n.push({value:C}),n}function j2(e,t,{horizontal:n,minRotation:r}){let i=RQ(r),a=(n?Math.sin(i):Math.cos(i))||.001,o=.75*t*(``+e).length;return Math.min(t/a,o)}var M2=class extends g0{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,t){return oQ(e)||(typeof e==`number`||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){let{beginAtZero:e}=this.options,{minDefined:t,maxDefined:n}=this.getUserBounds(),{min:r,max:i}=this,a=e=>r=t?r:e,o=e=>i=n?i:e;if(e){let e=NQ(r),t=NQ(i);e<0&&t<0?o(0):e>0&&t>0&&a(0)}if(r===i){let t=i===0?1:Math.abs(i*.05);o(i+t),e||a(r-t)}this.min=r,this.max=i}getTickLimit(){let{maxTicksLimit:e,stepSize:t}=this.options.ticks,n;return t?(n=Math.ceil(this.max/t)-Math.floor(this.min/t)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${t} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),e||=11),e&&(n=Math.min(e,n)),n}computeTickLimit(){return 1/0}buildTicks(){let e=this.options,t=e.ticks,n=this.getTickLimit();n=Math.max(2,n);let r=fMe({maxTicks:n,bounds:e.bounds,min:e.min,max:e.max,precision:t.precision,step:t.stepSize,count:t.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:t.minRotation||0,includeBounds:t.includeBounds!==!1},this._range||this);return e.bounds===`ticks`&&LQ(r,this,`value`),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){let e=this.ticks,t=this.min,n=this.max;if(super.configure(),this.options.offset&&e.length){let r=(n-t)/Math.max(e.length-1,1)/2;t-=r,n+=r}this._startValue=t,this._endValue=n,this._valueRange=n-t}getLabelForValue(e){return f$(e,this.chart.options.locale,this.options.ticks.format)}},pMe=class extends M2{static id=`linear`;static defaults={ticks:{callback:m$.formatters.numeric}};determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=lQ(e)?e:0,this.max=lQ(t)?t:1,this.handleTickRangeOptions()}computeTickLimit(){let e=this.isHorizontal(),t=e?this.width:this.height,n=RQ(this.options.ticks.minRotation),r=(e?Math.sin(n):Math.cos(n))||.001,i=this._resolveTickFontOptions(0);return Math.ceil(t/Math.min(40,i.lineHeight/r))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}},N2=e=>Math.floor(MQ(e)),P2=(e,t)=>10**(N2(e)+t);function F2(e){return e/10**N2(e)==1}function I2(e,t,n){let r=10**n,i=Math.floor(e/r);return Math.ceil(t/r)-i}function mMe(e,t){let n=N2(t-e);for(;I2(e,t,n)>10;)n++;for(;I2(e,t,n)<10;)n--;return Math.min(n,N2(e))}function hMe(e,{min:t,max:n}){t=uQ(e.min,t);let r=[],i=N2(t),a=mMe(t,n),o=a<0?10**Math.abs(a):1,s=10**a,c=i>a?10**i:0,l=Math.round((t-c)*o)/o,u=Math.floor((t-c)/s/10)*s*10,d=Math.floor((l-u)/10**a),f=uQ(e.min,Math.round((c+u+d*10**a)*o)/o);for(;f=10?d=d<15?15:20:d++,d>=20&&(a++,d=2,o=a>=0?1:o),f=Math.round((c+u+d*10**a)*o)/o;let p=uQ(e.max,f);return r.push({value:p,major:F2(p),significand:d}),r}var gMe=class extends g0{static id=`logarithmic`;static defaults={ticks:{callback:m$.formatters.logarithmic,major:{enabled:!0}}};constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(e,t){let n=M2.prototype.parse.apply(this,[e,t]);if(n===0){this._zero=!0;return}return lQ(n)&&n>0?n:null}determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=lQ(e)?Math.max(0,e):null,this.max=lQ(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!lQ(this._userMin)&&(this.min=e===P2(this.min,0)?P2(this.min,-1):P2(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:e,maxDefined:t}=this.getUserBounds(),n=this.min,r=this.max,i=t=>n=e?n:t,a=e=>r=t?r:e;n===r&&(n<=0?(i(1),a(10)):(i(P2(n,-1)),a(P2(r,1)))),n<=0&&i(P2(r,-1)),r<=0&&a(P2(n,1)),this.min=n,this.max=r}buildTicks(){let e=this.options,t=hMe({min:this._userMin,max:this._userMax},this);return e.bounds===`ticks`&&LQ(t,this,`value`),e.reverse?(t.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),t}getLabelForValue(e){return e===void 0?`0`:f$(e,this.chart.options.locale,this.options.ticks.format)}configure(){let e=this.min;super.configure(),this._startValue=MQ(e),this._valueRange=MQ(this.max)-MQ(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(MQ(e)-this._startValue)/this._valueRange)}getValueForPixel(e){let t=this.getDecimalForPixel(e);return 10**(this._startValue+t*this._valueRange)}};function L2(e){let t=e.ticks;if(t.display&&e.display){let e=N$(t.backdropPadding);return dQ(t.font&&t.font.size,y$.font.size)+e.height}return 0}function _Me(e,t,n){return n=sQ(n)?n:[n],{w:vOe(e,t.string,n),h:n.length*t.lineHeight}}function R2(e,t,n,r,i){return e===r||e===i?{start:t-n/2,end:t+n/2}:ei?{start:t-n,end:t}:{start:t,end:t+n}}function vMe(e){let t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},n=Object.assign({},t),r=[],i=[],a=e._pointLabels.length,o=e.options.pointLabels,s=o.centerPointLabels?EQ/a:0;for(let c=0;ct.r&&(s=(r.end-t.r)/a,e.r=Math.max(e.r,t.r+s)),i.startt.b&&(c=(i.end-t.b)/o,e.b=Math.max(e.b,t.b+c))}function bMe(e,t,n){let r=e.drawingArea,{extra:i,additionalAngle:a,padding:o,size:s}=n,c=e.getPointPosition(t,r+i+o,a),l=Math.round(zQ(UQ(c.angle+kQ))),u=TMe(c.y,s.h,l),d=CMe(l),f=wMe(c.x,s.w,d);return{visible:!0,x:c.x,y:u,textAlign:d,left:f,top:u,right:f+s.w,bottom:u+s.h}}function xMe(e,t){if(!t)return!0;let{left:n,top:r,right:i,bottom:a}=e;return!(T$({x:n,y:r},t)||T$({x:n,y:a},t)||T$({x:i,y:r},t)||T$({x:i,y:a},t))}function SMe(e,t,n){let r=[],i=e._pointLabels.length,a=e.options,{centerPointLabels:o,display:s}=a.pointLabels,c={extra:L2(a)/2,additionalAngle:o?EQ/i:0},l;for(let a=0;a270||n<90)&&(e-=t),e}function EMe(e,t,n){let{left:r,top:i,right:a,bottom:o}=n,{backdropColor:s}=t;if(!oQ(s)){let n=M$(t.borderRadius),c=N$(t.backdropPadding);e.fillStyle=s;let l=r-c.left,u=i-c.top,d=a-r+c.width,f=o-i+c.height;Object.values(n).some(e=>e!==0)?(e.beginPath(),k$(e,{x:l,y:u,w:d,h:f,radius:n}),e.fill()):e.fillRect(l,u,d,f)}}function DMe(e,t){let{ctx:n,options:{pointLabels:r}}=e;for(let i=t-1;i>=0;i--){let t=e._pointLabelItems[i];if(!t.visible)continue;let a=r.setContext(e.getPointLabelContext(i));EMe(n,a,t);let o=P$(a.font),{x:s,y:c,textAlign:l}=t;O$(n,e._pointLabels[i],s,c+o.lineHeight/2,o,{color:a.color,textAlign:l,textBaseline:`middle`})}}function z2(e,t,n,r){let{ctx:i}=e;if(n)i.arc(e.xCenter,e.yCenter,t,0,DQ);else{let n=e.getPointPosition(0,t);i.moveTo(n.x,n.y);for(let a=1;a{let n=pQ(this.options.pointLabels.callback,[e,t],this);return n||n===0?n:``}).filter((e,t)=>this.chart.getDataVisibility(t))}fit(){let e=this.options;e.display&&e.pointLabels.display?vMe(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(e,t,n,r){this.xCenter+=Math.floor((e-t)/2),this.yCenter+=Math.floor((n-r)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(e,t,n,r))}getIndexAngle(e){let t=DQ/(this._pointLabels.length||1),n=this.options.startAngle||0;return UQ(e*t+RQ(n))}getDistanceFromCenterForValue(e){if(oQ(e))return NaN;let t=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-e)*t:(e-this.min)*t}getValueForDistanceFromCenter(e){if(oQ(e))return NaN;let t=e/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-t:this.min+t}getPointLabelContext(e){let t=this._pointLabels||[];if(e>=0&&e{if(t!==0||t===0&&this.min<0){s=this.getDistanceFromCenterForValue(e.value);let n=this.getContext(t),o=r.setContext(n),c=i.setContext(n);OMe(this,o,s,a,c)}}),n.display){for(e.save(),o=a-1;o>=0;o--){let r=n.setContext(this.getPointLabelContext(o)),{color:i,lineWidth:a}=r;!a||!i||(e.lineWidth=a,e.strokeStyle=i,e.setLineDash(r.borderDash),e.lineDashOffset=r.borderDashOffset,s=this.getDistanceFromCenterForValue(t.reverse?this.min:this.max),c=this.getPointPosition(o,s),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(c.x,c.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){let e=this.ctx,t=this.options,n=t.ticks;if(!n.display)return;let r=this.getIndexAngle(0),i,a;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(r),e.textAlign=`center`,e.textBaseline=`middle`,this.ticks.forEach((r,o)=>{if(o===0&&this.min>=0&&!t.reverse)return;let s=n.setContext(this.getContext(o)),c=P$(s.font);if(i=this.getDistanceFromCenterForValue(this.ticks[o].value),s.showLabelBackdrop){e.font=c.string,a=e.measureText(r.label).width,e.fillStyle=s.backdropColor;let t=N$(s.backdropPadding);e.fillRect(-a/2-t.left,-i-c.size/2-t.top,a+t.width,c.size+t.height)}O$(e,r.label,0,-i,c,{color:s.color,strokeColor:s.textStrokeColor,strokeWidth:s.textStrokeWidth})}),e.restore()}drawTitle(){}},B2={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},V2=Object.keys(B2);function H2(e,t){return e-t}function U2(e,t){if(oQ(t))return null;let n=e._adapter,{parser:r,round:i,isoWeekday:a}=e._parseOpts,o=t;return typeof r==`function`&&(o=r(o)),lQ(o)||(o=typeof r==`string`?n.parse(o,r):n.parse(o)),o===null?null:(i&&(o=i===`week`&&(IQ(a)||a===!0)?n.startOf(o,`isoWeek`,a):n.startOf(o,i)),+o)}function W2(e,t,n,r){let i=V2.length;for(let a=V2.indexOf(e);a=V2.indexOf(n);a--){let n=V2[a];if(B2[n].common&&e._adapter.diff(i,r,n)>=t-1)return n}return V2[n?V2.indexOf(n):0]}function MMe(e){for(let t=V2.indexOf(e)+1,n=V2.length;t=t?n[r]:n[i];e[a]=!0}}function NMe(e,t,n,r){let i=e._adapter,a=+i.startOf(t[0].value,r),o=t[t.length-1].value,s,c;for(s=a;s<=o;s=+i.add(s,1,r))c=n[s],c>=0&&(t[c].major=!0);return t}function K2(e,t,n){let r=[],i={},a=t.length,o,s;for(o=0;o+e.value))}initOffsets(e=[]){let t=0,n=0,r,i;this.options.offset&&e.length&&(r=this.getDecimalForValue(e[0]),t=e.length===1?1-r:(this.getDecimalForValue(e[1])-r)/2,i=this.getDecimalForValue(e[e.length-1]),n=e.length===1?i:(i-this.getDecimalForValue(e[e.length-2]))/2);let a=e.length<3?.5:.25;t=GQ(t,0,a),n=GQ(n,0,a),this._offsets={start:t,end:n,factor:1/(t+1+n)}}_generate(){let e=this._adapter,t=this.min,n=this.max,r=this.options,i=r.time,a=i.unit||W2(i.minUnit,t,n,this._getLabelCapacity(t)),o=dQ(r.ticks.stepSize,1),s=a===`week`&&i.isoWeekday,c=IQ(s)||s===!0,l={},u=t,d,f;if(c&&(u=+e.startOf(u,`isoWeek`,s)),u=+e.startOf(u,c?`day`:a),e.diff(n,t,a)>1e5*o)throw Error(t+` and `+n+` are too far apart with stepSize of `+o+` `+a);let p=r.ticks.source===`data`&&this.getDataTimestamps();for(d=u,f=0;d+e)}getLabelForValue(e){let t=this._adapter,n=this.options.time;return n.tooltipFormat?t.format(e,n.tooltipFormat):t.format(e,n.displayFormats.datetime)}format(e,t){let n=this.options.time.displayFormats,r=this._unit,i=t||n[r];return this._adapter.format(e,i)}_tickFormatFunction(e,t,n,r){let i=this.options,a=i.ticks.callback;if(a)return pQ(a,[e,t,n],this);let o=i.time.displayFormats,s=this._unit,c=this._majorUnit,l=s&&o[s],u=c&&o[c],d=n[t],f=c&&u&&d&&d.major;return this._adapter.format(e,r||(f?u:l))}generateTickLabels(e){let t,n,r;for(t=0,n=e.length;t0?o:1}getDataTimestamps(){let e=this._cache.data||[],t,n;if(e.length)return e;let r=this.getMatchingVisibleMetas();if(this._normalized&&r.length)return this._cache.data=r[0].controller.getAllParsedValues(this);for(t=0,n=r.length;t=e[r].pos&&t<=e[i].pos&&({lo:r,hi:i}=JQ(e,`pos`,t)),{pos:a,time:s}=e[r],{pos:o,time:c}=e[i]):(t>=e[r].time&&t<=e[i].time&&({lo:r,hi:i}=JQ(e,`time`,t)),{time:a,pos:s}=e[r],{time:o,pos:c}=e[i]);let l=o-a;return l?s+(c-s)*(t-a)/l:s}var PMe=class extends q2{static id=`timeseries`;static defaults=q2.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let e=this._getTimestampsForTable(),t=this._table=this.buildLookupTable(e);this._minPos=J2(t,this.min),this._tableRange=J2(t,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){let{min:t,max:n}=this,r=[],i=[],a,o,s,c,l;for(a=0,o=e.length;a=t&&c<=n&&r.push(c);if(r.length<2)return[{time:t,pos:0},{time:n,pos:1}];for(a=0,o=r.length;ae-t)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;let t=this.getDataTimestamps(),n=this.getLabelTimestamps();return e=t.length&&n.length?this.normalize(t.concat(n)):t.length?t:n,e=this._cache.all=e,e}getDecimalForValue(e){return(J2(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){let t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end;return J2(this._table,n*this._tableRange+this._minPos,!0)}},FMe=[Ike,pje,sMe,Object.freeze({__proto__:null,CategoryScale:dMe,LinearScale:pMe,LogarithmicScale:gMe,RadialLinearScale:AMe,TimeScale:q2,TimeSeriesScale:PMe})];I0.register(...FMe);var IMe=I0,LMe=B(``);function Y2(e,t){O(t,!0);let n=zi(t,`class`,3,``),r=zi(t,`ariaLabel`,3,``);function i(e){if(Yi.tick,typeof t.build!=`function`)return;let n=t.build();if(!n)return;let r=new IMe(e.getContext(`2d`),n);return()=>r.destroy()}var a=LMe();si(a,()=>i),L(()=>{G(a,1,li(n())),K(a,`aria-label`,r())}),V(e,a),k()}var RMe=B(``),zMe=B(`
                        `);function X2(e,t){O(t,!0);let n=zi(t,`options`,19,()=>[]),r=zi(t,`ariaLabel`,3,``),i=zi(t,`class`,3,``);var a=zMe();W(a,21,n,e=>e.value,(e,n)=>{var r=RMe();let i;var a=P(r,!0);D(r),L(()=>{i=G(r,1,`segmented-btn svelte-92fh5i`,null,i,{active:t.value===R(n).value}),K(r,`aria-pressed`,t.value===R(n).value),H(a,R(n).label)}),z(`click`,r,()=>t.onchange?.(R(n).value)),V(e,r)}),D(a),L(()=>{G(a,1,li([`segmented-control`,i()]),`svelte-92fh5i`),K(a,`aria-label`,r())}),V(e,a),k()}xr([`click`]);function Z2(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function Q2(){return{grid:Z2(`--chart-grid`),text:Z2(`--chart-text`),dayMarker:Z2(`--chart-day-marker`),tooltipBg:Z2(`--chart-tooltip-bg`),tooltipBorder:Z2(`--chart-tooltip-border`),tooltipText:Z2(`--chart-tooltip-text`)}}function $2(){return{size:11,family:`'SF Mono', Menlo, Consolas, monospace`}}function e4(e,t){return{backgroundColor:e.tooltipBg,borderColor:e.tooltipBorder,borderWidth:1,titleColor:e.tooltipText,bodyColor:e.tooltipText,callbacks:t}}function t4(e){if(typeof document>`u`||!document.body)return e;let t=document.createElement(`span`);t.style.display=`none`,t.style.color=e,document.body.appendChild(t);let n=getComputedStyle(t).color;return document.body.removeChild(t),n||e}var n4=[`#c2845a`,`#7a9e7e`,`#d4a574`,`#b8a98e`,`#8b9e6b`,`#7d8a97`,`#c47a5a`,`#6b8e6b`,`#a09486`,`#9b7ea4`,`#c49a6c`];function BMe(){return[...n4]}function r4(e){let t=5381,n=String(e||``);for(let e=0;epZ(e)}}var c4={seconds:{apiName:`second`,windowLabel:jl,refreshMs:2e3},minutes:{apiName:`minute`,windowLabel:Pl,refreshMs:5e3},hours:{apiName:`hour`,windowLabel:Ll,refreshMs:2e4},days:{apiName:`day`,windowLabel:Bl,refreshMs:6e4}};function HMe(){return[{value:`seconds`,label:yl()},{value:`minutes`,label:Sl()},{value:`hours`,label:Tl()},{value:`days`,label:Ol()}]}function l4(){return{input:0,output:0,prompt:0,local:0}}function u4(e){return String(e).padStart(2,`0`)}function d4(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:0}function UMe(e,t){if(!Number.isFinite(t))return``;let n=new Date(t);switch(e){case`seconds`:return u4(n.getHours())+`:`+u4(n.getMinutes())+`:`+u4(n.getSeconds());case`minutes`:return u4(n.getHours())+`:`+u4(n.getMinutes());case`hours`:return u4(n.getHours())+`:00`;default:return u4(n.getMonth()+1)+`-`+u4(n.getDate())}}function WMe(e,t){let n=[],r=[],i={input:[],output:[],prompt:[],local:[]},a=l4();for(let o of e||[]){let e=Date.parse(o&&o.start),s=d4(o&&o.input_tokens),c=d4(o&&o.output_tokens),l=d4(o&&o.prompt_cached_tokens),u=d4(o&&o.locally_cached_tokens);n.push(UMe(t,e)),r.push(Number.isFinite(e)?e:null),i.input.push(s),i.output.push(c),i.prompt.push(l),i.local.push(u),a.input+=s,a.output+=c,a.prompt+=l,a.local+=u}return{labels:n,stamps:r,cols:i,totals:a}}function GMe(e){let t=e||l4();return t.input+t.output+t.prompt+t.local>0}function f4(e,t){return pZ(Math.max(0,Math.round(e&&e[t]||0)))}function p4(e){return(c4[e]||c4.minutes).windowLabel()}function KMe(e,t){return Ou({window:p4(t).toLowerCase(),input:f4(e,`input`),output:f4(e,`output`),prompt:f4(e,`prompt`),local:f4(e,`local`)})}function qMe(e,t,n,r){let i=e=>pZ(Math.max(0,Math.round(e))),a=n.stamps,o=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderWidth:0,borderRadius:0,categoryPercentage:1,barPercentage:1,stack:`tokens`});return{type:`bar`,plugins:[{id:`liveTokensDayMarks`,afterDatasetsDraw:t=>{if(r===`days`)return;let n=t.getDatasetMeta(0),i=t.chartArea;if(!n||!n.data||!i)return;let o=t.ctx;o.save(),o.font=`10px 'SF Mono', Menlo, Consolas, monospace`;let s=null;for(let t=0;t{if(!e.length)return``;let t=a[e[0].dataIndex];if(!t)return e[0].label;let n=new Date(t);return r===`days`?n.toLocaleDateString():n.toLocaleString()},label:e=>e.dataset.label+`: `+i(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),Yl({total:i(t)})}})}}}}var JMe=900,m4=new class{#e=j(`minutes`);get granularity(){return R(this.#e)}set granularity(e){M(this.#e,e,!0)}#t=j(N([]));get buckets(){return R(this.#t)}set buckets(e){M(this.#t,e,!0)}#n=j(!1);get active(){return R(this.#n)}set active(e){M(this.#n,e,!0)}#r=null;#i=null;#a=null;#o=0;#s=null;#c=!1;start(){this.stop(),this.active=!0,this.fetch(),this.#l(),this.#u()}stop(){this.active=!1,this.#r&&=(clearInterval(this.#r),null),this.#i&&=(clearTimeout(this.#i),null),this.#a&&=(clearTimeout(this.#a),null),this.#o=0,this.#s&&=(this.#s.abort(),null),this.buckets=[]}setGranularity(e){!c4[e]||e===this.granularity||(this.granularity=e,this.buckets=[],this.#l(),this.fetch())}#l(){this.#r&&=(clearInterval(this.#r),null);let e=c4[this.granularity]||c4.minutes;this.#r=setInterval(()=>{this.active&&this.fetch()},e.refreshMs)}noteUsageEvent(e){!this.active||e!==`usage.flushed`||(this.#i||=setTimeout(()=>{this.#i=null,this.fetch()},JMe))}async fetch(){if(!this.active||this.#c)return;this.#c=!0;let e=this.granularity;try{let t=await qX(`/admin/usage/throughput?granularity=`+(c4[e]||c4.minutes).apiName,{label:`token throughput`});if(t.stale||!t.ok||this.granularity!==e)return;this.buckets=t.data&&Array.isArray(t.data.buckets)?t.data.buckets:[]}catch(e){if(YX(e))return;console.error(`Failed to fetch token throughput:`,e)}finally{this.#c=!1,this.active&&this.granularity!==e&&this.fetch()}}async#u(){await XX.ensureLoaded(),this.active&&XX.liveLogsVisible()&&(typeof ReadableStream>`u`||(this.#s&&this.#s.abort(),this.#s=new AbortController,this.#d(this.#s)))}async#d(e){let t=()=>{e.signal.aborted||this.#s!==e||this.#p()};try{let n=await GX(`/admin/live/logs?types=usage`,{signal:e.signal});if(!n.ok||!n.body||typeof n.body.getReader!=`function`){t();return}this.#o=0,await i4(n.body.getReader(),e=>this.#f(e)),t()}catch(n){if(YX(n)||e.signal.aborted)return;console.error(`Live usage stream failed:`,n),t()}}#f(e){if(!e||typeof e!=`object`)return;let t=String(e.type||``).trim();t.indexOf(`usage.`)===0&&this.noteUsageEvent(t)}#p(){if(!this.active||this.#a)return;let{attempt:e,delay:t}=o4(this.#o);this.#o=e,this.#a=setTimeout(()=>{this.#a=null,this.#u()},t)}},YMe=B(`
                        `),XMe=B(`
                        `),ZMe=B(`

                        `);function QMe(e,t){O(t,!0);let n=A(()=>WMe(m4.buckets,m4.granularity)),r=A(()=>R(n).totals);function i(){return{input:t4(`var(--token-input)`),output:t4(`var(--token-output)`),prompt:t4(`var(--token-prompt)`),local:t4(`var(--token-local)`)}}let a=[{metric:`input`,label:Ko,colorVar:`--token-input`},{metric:`output`,label:qo,colorVar:`--token-output`},{metric:`prompt`,label:Ul,colorVar:`--token-prompt`},{metric:`local`,label:Kl,colorVar:`--token-local`}];var o=ZMe(),s=P(o),c=P(s),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d);let p;var m=I(f,2),h=P(m,!0);D(m),D(d),D(c);var g=I(c,2);{let e=A(()=>pl()),t=A(HMe);X2(g,{get ariaLabel(){return R(e)},get options(){return R(t)},get value(){return m4.granularity},onchange:e=>m4.setGranularity(e)})}D(s);var _=I(s,2);W(_,21,()=>a,e=>e.metric,(e,t)=>{var n=YMe(),i=P(n),a=I(i,2),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(n),L((e,n)=>{mi(i,`background: var(${R(t).colorVar??``})`),H(o,e),H(c,n)},[()=>R(t).label(),()=>f4(R(r),R(t).metric)]),V(e,n)}),D(_);var v=I(_,2),y=P(v);{let e=A(()=>KMe(R(r),m4.granularity));Y2(y,{get ariaLabel(){return R(e)},build:()=>qMe(Q2(),i(),R(n),m4.granularity)})}var b=I(y,2),x=e=>{var t=XMe(),n=P(t),r=P(n,!0);D(n),D(t),L(e=>H(r,e),[()=>gl()]),V(e,t)},S=A(()=>!GMe(R(r)));U(b,e=>{R(S)&&e(x)}),D(v),D(o),L((e,t)=>{H(u,e),p=G(f,1,`live-dot`,null,p,{"is-streaming":m4.active}),H(h,t)},[()=>ul(),()=>p4(m4.granularity)]),V(e,o),k()}function $Me(e){let t=e||{};if(t.total_tokens!==null&&t.total_tokens!==void 0){let e=Number(t.total_tokens);if(Number.isFinite(e))return e}let n=Number(t.total_input_tokens||0),r=Number(t.total_output_tokens||0);return(Number.isFinite(n)?n:0)+(Number.isFinite(r)?r:0)}function h4(e,t){if(!t)return 0;let n=e&&e.summary?e.summary:{},r=Number(n.total_hits||0);return Number.isFinite(r)&&r>0?r:0}function g4(e,t,n){let r=Number(e&&e.total_requests||0);return(Number.isFinite(r)?r:0)+h4(t,n)}function eNe(e,t,n){let r=h4(t,n);return r<=0?``:Ql({provider:wZ(g4(e,t,n)-r),cache:wZ(r)})}function tNe(e){let t=e&&e.summary?e.summary:{},n=Number(t.total_input_tokens||0),r=Number(t.total_output_tokens||0);return(Number.isFinite(n)?n:0)+(Number.isFinite(r)?r:0)}function _4(e,t,n){let r=e=>{let t=Number(e||0);return Number.isFinite(t)&&t>0?t:0},i=e||{},a=r(i.uncached_input_tokens),o=r(i.cached_input_tokens),s=r(i.cache_write_input_tokens),c=t&&t.summary?t.summary:{},l=n?r(c.total_input_tokens):0;return[{key:`uncached`,label:gc(),tokens:a+s,colorVar:`--cache-meter-uncached`,note:s>0?yc({count:wZ(s)}):``},{key:`prompt`,label:Sc(),tokens:o,colorVar:`--cache-meter-prompt`,note:Tc()},{key:`local`,label:Oc(),tokens:l,colorVar:`--cache-meter-local`,note:jc()}]}function nNe(e,t,n){return _4(e,t,n).reduce((e,t)=>e+t.tokens,0)}function rNe(e,t,n){return nNe(e,t,n)>0}function v4(e,t,n){let r=_4(e,t,n),i=r.reduce((e,t)=>e+t.tokens,0);if(i<=0)return r.map(e=>Object.assign({},e,{pct:0}));let a=r.map(e=>{let t=e.tokens/i*100,n=Math.floor(t);return Object.assign({},e,{pct:n,remainder:t-n})}),o=100-a.reduce((e,t)=>e+t.pct,0);return a.map((e,t)=>({index:t,remainder:e.remainder,tokens:e.tokens})).filter(e=>e.tokens>0).sort((e,t)=>t.remainder-e.remainder).forEach(e=>{o>0&&(a[e.index].pct+=1,--o)}),a}function iNe(e,t,n){return v4(e,t,n).filter(e=>e.tokens>0)}function y4(e){let t=[tu({label:e.label,tokens:wZ(e.tokens),percent:e.pct})];return e.note&&t.push(e.note),t.join(` -`)}function aNe(e){let t=(e||[]).map(e=>e.label+` `+e.pct+`%`);return Pc({details:t.length?t.join(`, `):iu()})}function oNe(e){return e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`)}function b4(e,t,n,r){if(t!==`daily`||!n||!r)return e;let i={};(e||[]).forEach(e=>{i[e.date]=e});let a=[];for(let e=new Date(n);e<=r;e.setUTCDate(e.getUTCDate()+1)){let t=oNe(e);a.push(i[t]||{date:t,input_tokens:0,output_tokens:0,total_tokens:0,requests:0,input_cost:null,output_cost:null,total_cost:null})}return a}function sNe(e,t){let n=e=>Number(e)||0,r=e.map(e=>e.date),i=e.map(e=>n(e.uncached_input_tokens)+n(e.cache_write_input_tokens)+n(e.cached_input_tokens)>0?n(e.uncached_input_tokens)+n(e.cache_write_input_tokens):n(e.input_tokens)),a=e.map(e=>n(e.output_tokens)),o=e.map(e=>n(e.cached_input_tokens)),s={};return(t||[]).forEach(e=>{s[e.date]=e}),{labels:r,inputPaid:i,output:a,prompt:o,local:r.map(e=>{let t=s[e];return t?n(t.input_tokens)+n(t.output_tokens):0})}}function x4(e){let t=e||{},n=Math.max(0,Number(t.uncached_input_tokens)||0),r=Math.max(0,Number(t.cached_input_tokens)||0),i=Math.max(0,Number(t.cache_write_input_tokens)||0),a=n+r+i;return a>0?r/a*100:0}function cNe(e){let t=e||{};return(Number(t.uncached_input_tokens)||0)+(Number(t.cached_input_tokens)||0)+(Number(t.cache_write_input_tokens)||0)>0}function S4(e){return cNe(e)?Math.round(x4(e))+`%`:`—`}function lNe(e,t,n={}){let r=!!n.cacheEnabled,i=n.resolve||(e=>e),a=(e,t)=>i(`color-mix(in srgb, `+e+` `+t+`%, transparent)`),o=(e,t,n,r)=>Object.assign({label:e,data:t,borderColor:n,backgroundColor:n,fill:!1,tension:.3,borderWidth:2,pointRadius:0,pointHoverRadius:4},r||{}),s=[o(Ko(),t.inputPaid,i(`var(--token-input)`),{fill:`origin`}),o(qo(),t.output,i(`var(--token-output)`),{fill:`-1`}),o(Ul(),t.prompt,i(`var(--token-prompt)`),{fill:`-1`,borderDash:[6,4]})];return r&&s.push(o(Kl(),t.local,a(`var(--info)`,35),{fill:`-1`,borderDash:[2,3]})),{type:`line`,data:{labels:t.labels,datasets:s},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:e4(e,{label:e=>e.dataset.label+`: `+wZ(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),Yl({total:wZ(t)})}})},scales:{x:{stacked:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:$2(),maxRotation:0,autoSkip:!0,maxTicksLimit:10}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:s4(e)}}}}}function uNe(e,t,n){let r=Math.max(0,Math.min(100,e));return{type:`doughnut`,data:{datasets:[{data:[r,100-r],backgroundColor:[t,n],borderWidth:0,spacing:0}]},options:{rotation:-90,circumference:180,cutout:`84%`,responsive:!0,maintainAspectRatio:!1,animation:{duration:0},layout:{padding:1},events:[],plugins:{legend:{display:!1},tooltip:{enabled:!1}}}}}var C4=`gomodel_provider_status_details_expanded`,w4=`gomodel_provider_card_expanded_overrides`,dNe=3e3,fNe=`https://gomodel.enterpilot.io/docs/providers/`,pNe={anthropic:`anthropic`,azure:`azure`,bailian:`bailian`,bedrock:`bedrock`,"bedrock-mantle":`bedrock-mantle`,cohere:`cohere`,deepseek:`deepseek`,elevenlabs:`elevenlabs`,gemini:`gemini`,llmd:`llmd`,opencode_go:`opencode-go`,oracle:`oracle`,sglang:`sglang`,vertex:`vertex`,vllm:`vllm`,xiaomi:`xiaomi`};function T4(){return{summary:{total:0,healthy:0,degraded:0,unhealthy:0,overall_status:`degraded`},providers:[]}}function mNe(e){let t={detailsExpanded:!1,cardOverrides:{}};try{if(e){let n=e.getItem(C4);n===`true`||n===`false`?t.detailsExpanded=n===`true`:e.setItem(C4,`false`);let r=JSON.parse(e.getItem(w4)||`{}`);r&&typeof r==`object`&&!Array.isArray(r)&&(t.cardOverrides=r)}}catch{}return t}function hNe(e,t){if(e)try{e.setItem(C4,t?`true`:`false`)}catch{}}function E4(e,t){if(e)try{e.setItem(w4,JSON.stringify(t))}catch{}}function gNe(e,t,n){let r=n&&n.name?String(n.name):``;return r&&Object.prototype.hasOwnProperty.call(e,r)?e[r]===!0:t}function _Ne(e){return`is-`+(String(e&&e.overall_status||`degraded`).trim()||`degraded`)}function vNe(e){return`is-`+(String(e||`degraded`).trim()||`degraded`)}function yNe(e){let t=e||{};return String(t.healthy||0)+`/`+String(t.total||0)}function bNe(e){let t=e||{},n=Number(t.total||0),r=Number(t.healthy||0);return n>0&&rString(e&&e.status_label||``).trim().toLowerCase()===`starting`)}function D4(e){if(!e||!e.runtime)return``;let t=e.runtime.last_model_fetch_at||``,n=e.runtime.last_availability_check_at||``;return t?n&&Date.parse(n)>Date.parse(t)?n:t:n}function CNe(e,t){let n=D4(e);if(!n||typeof t!=`function`)return`-`;let r=t(n);if(!r||r===`-`)return`-`;let i=String(r).split(` `);return i.length>1?i.slice(1).join(` `):r}function wNe(e,t){let n=D4(e);return n?typeof t==`function`?t(n):String(n):``}function O4(e){if(!e)return``;let t=String(e.name||``).trim(),n=String(e.type||e.config&&e.config.type||``).trim();return!n||n===t?``:n}function k4(e){let t=String(e&&(e.type||e.config&&e.config.type)||``).trim().toLowerCase(),n=t?pNe[t]:``;return n?fNe+n+`?utm_source=gomodel_dashboard`:``}function TNe(e){let t=e&&e.config&&e.config.resilience?e.config.resilience.retry:null;return t?String(t.max_retries)+` retries, `+t.initial_backoff+` initial, `+t.max_backoff+` max, factor `+t.backoff_factor+`, jitter `+t.jitter_factor:`-`}function ENe(e){let t=e&&e.config&&e.config.resilience?e.config.resilience.circuit_breaker:null;return t?String(t.failure_threshold)+` fail, `+String(t.success_threshold)+` success, `+t.timeout+` timeout`:`-`}function DNe(e){let t=e&&e.config&&Array.isArray(e.config.models)?e.config.models.filter(Boolean):[];return t.length===0?tc():t.join(`, `)}function ONe(e){if(!e)return``;let t=[];return e.status_reason&&t.push(String(e.status_reason)),e.last_error&&t.push(ic({error:String(e.last_error)})),t.join(` - -`)}function A4(e){let t=e&&e.request_health;return t&&typeof t==`object`?t:null}function j4(e){let t=A4(e);return t?String(t.circuit_state||``).trim():``}function kNe(e){let t=j4(e);return t?t.charAt(0).toUpperCase()+t.slice(1):``}function ANe(e){let t=j4(e);return t===`open`?`is-unhealthy`:t===`half-open`?`is-degraded`:`is-healthy`}function jNe(e){let t=A4(e);if(!t)return``;let n=Number(t.requests||0),r=Number(t.errors||0),i=Math.round(Number(t.window_seconds||0)/60),a=i>0?`last `+i+` min`:`recent`;return String(n)+` request`+(n===1?``:`s`)+` · `+String(r)+` error`+(r===1?``:`s`)+` (`+a+`)`}function M4(e){let t=A4(e);return t&&Array.isArray(t.models)?t.models:[]}function MNe(e){return e?String(Number(e.errors||0))+`/`+String(Number(e.requests||0))+` failed`:``}function NNe(e){let t=e&&e.last_error;return!t||!t.message?``:(t.status_code?`HTTP `+String(t.status_code)+`: `:``)+t.message}function N4(){return{name:``,slug:``,url:``,transport:`http`,description:``,enabled:!0,headers:[],allowed_tools:``,disallowed_tools:``,user_paths:``,tool_timeout_seconds:``}}function P4(){return{server:``,status:``,instructions:``,tools:[],prompts:[],resources:[],templates:[]}}function F4(e){return String(e&&(e.slug||e.name)||``).trim()}function I4(e){return String(e&&e.status||``).trim()||`connecting`}function PNe(e){let t={connected:swe,degraded:uwe,connecting:pwe,disabled:gwe},n=I4(e);return t[n]?.()||n}function L4(e){switch(I4(e)){case`connected`:return`status-success`;case`degraded`:return String(e&&e.last_error||``).trim()?`status-error`:`status-warning`;case`connecting`:return`status-neutral`;default:return`status-unknown`}}function FNe(e,t){let n=I4(e),r=String(e&&e.last_error||``).trim();return r&&n!==`connected`?r:n===`connected`&&e&&e.connected_at?nV({date:(typeof t==`function`?t:String)(e.connected_at)}):``}function R4(e){return String(e&&e.transport||``)===`stdio`?aV():String(e&&e.url||``).trim()||`—`}function INe(e){return cV({prompts:Number(e&&e.prompt_count||0),resources:Number(e&&e.resource_count||0)})}function z4(e){let t=String(e||``).normalize(`NFKD`).toLowerCase(),n=t.replace(/[\u0300-\u036f]/g,``).replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,64).replace(/-+$/g,``);if(n)return n;let r=2166136261;for(let e of t)r=Math.imul((r^e.codePointAt(0))>>>0,16777619)>>>0;return`mcp-`+r.toString(16).padStart(8,`0`)}function LNe(e){return String(e||``).split(` -`).map(e=>e.trim()).filter(e=>e)}function RNe(e){return!e||typeof e!=`object`||Array.isArray(e)?[]:Object.keys(e).sort().map(t=>({name:t,value:String(e[t]||``)}))}function zNe(e){let t={};return(Array.isArray(e)?e:[]).forEach(e=>{let n=String(e&&e.name||``).trim();n&&(t[n]=String(e&&e.value||``))}),t}function BNe(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.slug,e.url,e.transport,e.description,e.status].some(e=>String(e||``).toLowerCase().includes(r)))}function VNe(e){return{name:String(e.name||``).trim(),slug:F4(e),url:String(e.url||``).trim(),transport:e.transport===`sse`?`sse`:`http`,description:String(e.description||``).trim(),enabled:e.enabled!==!1,headers:RNe(e.headers),allowed_tools:(Array.isArray(e.allowed_tools)?e.allowed_tools:[]).join(`, `),disallowed_tools:(Array.isArray(e.disallowed_tools)?e.disallowed_tools:[]).join(`, `),user_paths:(Array.isArray(e.user_paths)?e.user_paths:[]).join(` -`),tool_timeout_seconds:e.tool_timeout_seconds?String(e.tool_timeout_seconds):``}}function HNe(e,t,n){let r=String(e.name||``).trim(),i=String(e.slug||z4(r)).trim().toLowerCase(),a=String(e.url||``).trim(),o=e.transport===`sse`?`sse`:`http`;if(!r)return{error:dV()};if(!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(i))return{error:mV()};if(t===`create`&&(n||[]).some(e=>F4(e)===i))return{error:_V({slug:i})};if(!a)return{error:bV()};let s,c=String(e.tool_timeout_seconds||``).trim();if(c!==``){let e=Number(c);if(!Number.isSafeInteger(e)||e<0)return{error:CV()};s=e}return{payload:{name:r,slug:i,url:a,transport:o,headers:zNe(e.headers),description:String(e.description||``).trim(),enabled:!!e.enabled,allowed_tools:sZ(e.allowed_tools),disallowed_tools:sZ(e.disallowed_tools),user_paths:LNe(e.user_paths),tool_timeout_seconds:s}}}function UNe(e,t){let n=t&&typeof t==`object`&&!Array.isArray(t)?t:{},r=e=>(Array.isArray(e)?e:[]).filter(e=>e&&typeof e==`object`);return{server:String(n.server||e||``).trim(),status:String(n.status||``).trim(),instructions:String(n.instructions||``).trim(),tools:r(n.tools),prompts:r(n.prompts),resources:r(n.resources),templates:r(n.templates)}}function WNe(e,t){return String(e&&e.server||``)+`_`+String(t||``)}function B4(e){let t=e||P4(),n=(e,t)=>{let n=String(e||``).trim(),r=String(t||``).trim();return n&&r?n+` — `+r:r||n},r=e=>n=>({key:e+`:`+String(n.name||``),name:String(n.name||``),aggregated:WNe(t,n.name),description:String(n.description||``).trim()});return[{key:`tools`,title:EV(),items:(t.tools||[]).map(r(`tool`))},{key:`prompts`,title:kV(),items:(t.prompts||[]).map(r(`prompt`))},{key:`resources`,title:MV(),items:(t.resources||[]).map(e=>({key:`resource:`+String(e.uri||``),name:String(e.uri||``),aggregated:``,description:n(e.name,e.description)}))},{key:`templates`,title:FV(),items:(t.templates||[]).map(e=>({key:`template:`+String(e.uri_template||``),name:String(e.uri_template||``),aggregated:``,description:n(e.name,e.description)}))}].filter(e=>e.items.length>0)}function GNe(e){return B4(e).length===0}function V4(e){return(e||[]).length}function H4(e){return(e||[]).filter(e=>I4(e)===`connected`).length}function U4(e){return(e||[]).filter(e=>e&&e.enabled!==!1&&I4(e)===`degraded`).length}function KNe(e,t){return!!e&&V4(t)>0}function qNe(e){return String(H4(e))+`/`+String(V4(e))}function JNe(e){return U4(e)>0?`is-degraded`:`is-healthy`}function YNe(e){let t=U4(e);if(t>0)return uu({count:t});let n=V4(e),r=H4(e);return n>0&&r===n?sc():pu({connected:r,total:n})}function W4(){return{interval:`day`,buckets:[],summary:{requests:0},provider_latency:[]}}function XNe(e){let t=e&&typeof e==`object`?e:{};return{interval:t.interval===`hour`?`hour`:`day`,buckets:Array.isArray(t.buckets)?t.buckets:[],summary:t.summary&&typeof t.summary==`object`?t.summary:{requests:0},provider_latency:Array.isArray(t.provider_latency)?t.provider_latency:[]}}function ZNe(e){return Number(e&&e.summary&&e.summary.requests||0)>0}function QNe(e){return(e&&Array.isArray(e.provider_latency)?e.provider_latency:[]).length>0}function $Ne(e){let t=e&&e.summary?e.summary.success_rate:null;return t==null?`—`:(Math.round(Number(t)*1e3)/10).toFixed(1)+`%`}function G4(e,t){return Number(e&&e.summary&&e.summary[t]||0)}function K4(e){let t=Number(e);return Number.isFinite(t)?t>=6e4?(t/6e4).toFixed(1)+` min`:t>=1e3?(t/1e3).toFixed(2)+` s`:Math.round(t)+` ms`:`-`}function ePe(e){let t=e&&e.summary?e.summary.avg_duration_ms:null;return t==null?`—`:K4(Number(t))}function q4(e,t){try{let n={},r=J();return new Intl.DateTimeFormat(r,{timeZone:t,year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,hourCycle:`h23`}).formatToParts(e).forEach(e=>{n[e.type]=e.value}),{year:n.year,month:n.month,day:n.day,hour:Number(n.hour),shortDate:new Intl.DateTimeFormat(r,{timeZone:t,month:`short`,day:`numeric`}).format(e),fullDate:new Intl.DateTimeFormat(r,{timeZone:t,year:`numeric`,month:`short`,day:`numeric`}).format(e)}}catch{let t=new Intl.DateTimeFormat(J(),{month:`short`}).format(e);return{year:String(e.getFullYear()),month:t,day:String(e.getDate()),hour:e.getHours(),shortDate:t+` `+e.getDate(),fullDate:t+` `+e.getDate()+`, `+e.getFullYear()}}}function J4(e,t,n){let r=new Date(e.start);if(Number.isNaN(r.getTime()))return String(e.start||``);let i=q4(r,n),a=i.shortDate;return t!==`hour`||i.hour===0?a:String(i.hour).padStart(2,`0`)+`:00`}function Y4(e,t,n,r){let i=new Date(e.start);return Number.isNaN(i.getTime())?String(e.start||``):t===`hour`?r(e.start):q4(i,n).fullDate}function tPe(e){return{ok:e(`var(--success)`),clientError:e(`var(--warning)`),serverError:e(`var(--danger)`),other:e(`color-mix(in srgb, var(--text-muted) 55%, transparent)`)}}function nPe(e,t,n={}){let r=n.interval===`hour`?`hour`:`day`,i=n.zone,a=n.resolve||(e=>e),o=n.formatTimestamp||(e=>String(e)),s=t.map(e=>J4(e,r,i)),c=tPe(a),l=a(`var(--bg-surface)`),u=e=>Number(e)||0,d=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderColor:l,borderWidth:1,borderSkipped:!1,borderRadius:2,maxBarThickness:28}),f=[d(`2xx`,t.map(e=>u(e.status_2xx)),c.ok),d(`4xx`,t.map(e=>u(e.status_4xx)),c.clientError),d(`5xx`,t.map(e=>u(e.status_5xx)),c.serverError)];return t.some(e=>u(e.status_other)>0)&&f.push(d(ju(),t.map(e=>u(e.status_other)),c.other)),{type:`bar`,data:{labels:s,datasets:f},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:e4(e,{title:e=>e.length?Y4(t[e[0].dataIndex],r,i,o):``,label:e=>e.dataset.label+`: `+wZ(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),Yl({total:wZ(t)})}})},scales:{x:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:$2(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:$2(),precision:0,callback:e=>pZ(e)}}}}}}function X4(e=BMe()){let t={};return function(n){return n in t||(t[n]=e[Object.keys(t).length%e.length]),t[n]}}function rPe(e,t,n,r={}){let i=r.interval===`hour`?`hour`:`day`,a=r.zone,o=r.formatTimestamp||(e=>String(e)),s=r.providerColor||X4();return{type:`line`,data:{labels:t.map(e=>J4(e,i,a)),datasets:n.map(e=>({label:e.provider,data:(e.avg_duration_ms||[]).map(e=>e==null?null:Number(e)),borderColor:s(e.provider),backgroundColor:s(e.provider),fill:!1,tension:.3,borderWidth:2,pointRadius:0,pointHoverRadius:4,spanGaps:i===`hour`&&2}))},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:e4(e,{title:e=>e.length?Y4(t[e[0].dataIndex],i,a,o):``,label:e=>{let t=(n[e.datasetIndex]&&n[e.datasetIndex].requests||[])[e.dataIndex],r=Number(t)||0;return e.dataset.label+`: `+K4(e.parsed.y)+(r>0?` (`+r.toLocaleString()+` req)`:``)}})},scales:{x:{grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:$2(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:$2(),callback:e=>K4(e)}}}}}}var iPe=class{#e=j(N(T4()));get status(){return R(this.#e)}set status(e){M(this.#e,e,!0)}#t=j(!1);get loading(){return R(this.#t)}set loading(e){M(this.#t,e,!0)}#n=j(!1);get loadedOnce(){return R(this.#n)}set loadedOnce(e){M(this.#n,e,!0)}#r=j(!1);get detailsExpanded(){return R(this.#r)}set detailsExpanded(e){M(this.#r,e,!0)}#i=j(N({}));get cardOverrides(){return R(this.#i)}set cardOverrides(e){M(this.#i,e,!0)}#a=null;#o=null;#s=!1;initPreferences(){if(this.#s)return;this.#s=!0;let e=mNe(Wi());this.detailsExpanded=e.detailsExpanded,this.cardOverrides=e.cardOverrides}cardExpanded(e){return gNe(this.cardOverrides,this.detailsExpanded,e)}toggleCard(e){let t=e&&e.name?String(e.name):``;if(!t)return;let n={...this.cardOverrides};n[t]=!this.cardExpanded(e),this.cardOverrides=n,E4(Wi(),this.cardOverrides)}toggleDetails(){this.detailsExpanded=!this.detailsExpanded,this.cardOverrides={},hNe(Wi(),this.detailsExpanded),E4(Wi(),this.cardOverrides)}detailsToggleLabel(){return this.detailsExpanded?Qo():Vme()}async fetch(){this.initPreferences(),this.#a&&this.#a.abort();let e=new AbortController;this.#a=e,this.loading=!0;try{let t=await qX(`/admin/providers/status`,{label:`provider status`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.status=T4(),this.#l();return}let n=t.data&&typeof t.data==`object`?t.data:T4();n.summary||=T4().summary,Array.isArray(n.providers)||(n.providers=[]),this.status=n,this.#c()}catch(e){if(YX(e))return;console.error(`Failed to fetch provider status:`,e),this.status=T4(),this.#l()}finally{this.#a===e&&(this.#a=null,this.loading=!1,this.loadedOnce=!0)}}#c(){this.#l(),SNe(this.status.providers)&&(this.#o=setTimeout(()=>{this.#o=null,this.fetch()},dNe))}#l(){this.#o&&=(clearTimeout(this.#o),null)}stopPolling(){this.#l()}},aPe=class{#e=j(N(W4()));get stats(){return R(this.#e)}set stats(e){M(this.#e,e,!0)}#t=j(!1);get loading(){return R(this.#t)}set loading(e){M(this.#t,e,!0)}#n=0;async fetch(){let e=++this.#n;this.loading=!0;try{let t=await qX(`/admin/audit/stats?`+OZ.queryStr(),{label:`audit stats`});if(t.stale||e!==this.#n)return;if(!t.ok){this.stats=W4();return}this.stats=XNe(t.data)}catch(t){if(console.error(`Failed to fetch audit stats:`,t),e!==this.#n)return;this.stats=W4()}finally{e===this.#n&&(this.loading=!1)}}},oPe=class{#e=j(N([]));get servers(){return R(this.#e)}set servers(e){M(this.#e,e,!0)}#t=j(!1);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}async fetch(){if(await XX.ensureLoaded(),!XX.mcpVisible()){this.available=!1,this.servers=[];return}this.loading=!0;try{let e=await qX(`/admin/mcp-servers`,{label:`mcp servers`});if(e.stale)return;if(e.status===503||e.status===404){this.available=!1,this.servers=[];return}if(this.available=!0,!e.ok){this.servers=[];return}this.servers=Array.isArray(e.data)?e.data:[]}catch(e){console.error(`Failed to fetch MCP servers:`,e),this.servers=[]}finally{this.loading=!1}}},sPe=class{#e=j(N([]));get data(){return R(this.#e)}set data(e){M(this.#e,e,!0)}#t=j(`tokens`);get mode(){return R(this.#t)}set mode(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=null;async fetch(){this.#r&&this.#r.abort();let e=new AbortController;this.#r=e,this.loading=!0;try{let t=await qX(`/admin/usage/daily?days=365&interval=daily`,{label:`calendar`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.data=[];return}this.data=Array.isArray(t.data)?t.data:[]}catch(e){if(YX(e))return;console.error(`Failed to fetch calendar data:`,e),this.data=[]}finally{this.#r===e&&(this.#r=null,this.loading=!1)}}},Z4=new iPe,Q4=new aPe,$4=new oPe,e3=new sPe,t3=(e,t=f,n=f,r=f,i=f)=>{var a=cPe(),o=P(a),s=P(o,!0);D(o);var c=I(o,2),l=P(c),u=P(l),d=P(u,!0);D(u),Ve(),D(l);var p=I(l,4),m=P(p),h=P(m,!0);D(m),Ve(),D(p);var g=I(p,4),_=P(g,!0);D(g),D(c),D(a),L((e,n,r,i,a,o)=>{H(s,t()),K(l,`title`,e),H(d,n),K(p,`title`,r),H(h,i),K(g,`title`,a),H(_,o)},[()=>mZ(Spe(),n()),()=>pZ(n()),()=>mZ(Tpe(),r()),()=>pZ(r()),()=>mZ(Mpe(),i()),()=>pZ(i())]),V(e,a)},n3=(e,t=f,n=f,r=f,i=f,a=f,o=f)=>{var s=dPe(),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u);var p=I(u,2),m=e=>{var t=lPe(),n=P(t,!0);D(t),L(()=>{K(t,`aria-label`,o().title),K(t,`title`,o().title),H(n,a())}),z(`click`,t,function(...e){o().onclick?.apply(this,e)}),V(e,t)},h=e=>{var t=uPe(),n=P(t,!0);D(t),L(()=>H(n,a())),V(e,t)};U(p,e=>{o()?e(m):e(h,-1)}),D(s),L(()=>{G(s,1,`card provider-status-flag ${t()??``} ${n()??``}`,`svelte-6tr9cf`),H(l,r()),H(d,i())}),V(e,s)},cPe=B(`
                        i + o =
                        `),lPe=B(``),uPe=B(` `),dPe=B(`
                        `),fPe=B(`
                        `),pPe=B(`
                        `);function mPe(e,t){O(t,!0);let n=A(()=>NZ.summary),r=A(()=>NZ.cacheOverview),i=A(()=>NZ.cacheAnalyticsEnabled()),a=A(()=>Z4.status.summary);function o(){let e=document.getElementById(`provider-status-section`);e&&(e.scrollIntoView({behavior:`smooth`,block:`start`}),e.focus({preventScroll:!0}))}var s=pPe(),c=P(s);{let e=A(()=>Go()),t=A(()=>$Me(R(n)));t3(c,()=>R(e),()=>R(n).total_input_tokens,()=>R(n).total_output_tokens,()=>R(t))}var l=I(c,2),u=P(l),d=P(u,!0);D(u);var f=I(u,2),p=P(f,!0);D(f),D(l);var m=I(l,2),h=e=>{var t=fPe(),n=P(t),i=P(n,!0);D(n);var a=I(n,2),o=P(a,!0);D(a),D(t),L((e,t)=>{H(i,e),H(o,t)},[()=>Yo(),()=>lZ(R(r).summary.total_hits)]),V(e,t)};U(m,e=>{R(i)&&e(h)});var g=I(m,2),_=P(g),v=P(_,!0);D(_);var y=I(_,2),b=P(y,!0);D(y),D(g);var x=I(g,2),S=e=>{{let t=A(()=>Vpe()),n=A(()=>tNe(R(r)));t3(e,()=>R(t),()=>R(r).summary.total_input_tokens,()=>R(r).summary.total_output_tokens,()=>R(n))}};U(x,e=>{R(i)&&e(S)});var C=I(x,2),w=P(C),T=P(w,!0);D(w);var ee=I(w,2),E=P(ee);Y2(E,{build:()=>uNe(x4(R(n)),t4(`var(--token-prompt)`),t4(`var(--bg-surface-hover)`))});var te=I(E,2),ne=P(te,!0);D(te),D(ee),D(C);var re=I(C,2),ie=e=>{{let t=A(()=>_Ne(R(a))),n=A(()=>$pe()),r=A(()=>yNe(R(a))),i=A(()=>xNe(R(a))),s=A(()=>bNe(R(a))?{title:nme(),onclick:o}:null);n3(e,()=>`provider-status-overview-card`,()=>R(t),()=>R(n),()=>R(r),()=>R(i),()=>R(s))}};U(re,e=>{R(a).total>0&&e(ie)});var ae=I(re,2),oe=e=>{{let t=A(()=>JNe($4.servers)),n=A(()=>mo()),r=A(()=>qNe($4.servers)),i=A(()=>YNe($4.servers)),a=A(()=>({title:ame(),onclick:()=>CX.navigate(`mcp-servers`)}));n3(e,()=>`mcp-servers-flag`,()=>R(t),()=>R(n),()=>R(r),()=>R(i),()=>R(a))}},se=A(()=>KNe($4.available,$4.servers));U(ae,e=>{R(se)&&e(oe)}),D(s),L((e,t,n,r,i,a,o,s,c)=>{H(d,e),K(f,`title`,t),H(p,n),H(v,r),H(b,i),K(C,`title`,a),H(T,o),K(ee,`aria-label`,s),H(ne,c)},[()=>Jo(),()=>eNe(R(n),R(r),R(i)),()=>lZ(g4(R(n),R(r),R(i))),()=>Xo(),()=>uZ(R(n).total_cost),()=>qpe(),()=>Wpe(),()=>Xpe({rate:S4(R(n))}),()=>S4(R(n))]),V(e,s),k()}xr([`click`]);var hPe=B(` `),gPe=B(`
                        `),_Pe=B(` `),vPe=B(`
                        `),yPe=B(`

                        `);function bPe(e,t){O(t,!0);let n=A(()=>NZ.cacheAnalyticsEnabled()),r=A(()=>v4(NZ.summary,NZ.cacheOverview,R(n))),i=A(()=>iNe(NZ.summary,NZ.cacheOverview,R(n))),a=A(()=>rNe(NZ.summary,NZ.cacheOverview,R(n)));var o=yPe(),s=P(o),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u),D(s);var f=I(s,2);let p;var m=P(f);W(m,17,()=>R(i),e=>e.key,(e,t)=>{var n=gPe(),r=P(n),i=e=>{var n=hPe(),r=P(n);D(n),L(()=>H(r,`${R(t).pct??``}%`)),V(e,n)};U(r,e=>{R(t).pct>=8&&e(i)}),D(n),L(e=>{mi(n,`width: ${R(t).pct??``}%; background: var(${R(t).colorVar??``})`),K(n,`title`,e)},[()=>y4(R(t))]),V(e,n)});var h=I(m,2),g=e=>{var t=_Pe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>pc()]),V(e,t)};U(h,e=>{R(a)||e(g)}),D(f);var _=I(f,2);W(_,21,()=>R(r),e=>e.key,(e,t)=>{var n=vPe(),r=P(n),i=I(r,2),a=P(i,!0);D(i);var o=I(i,2),s=P(o);D(o);var c=I(o,2),l=P(c,!0);D(c),D(n),L((e,i)=>{K(n,`title`,e),mi(r,`background: var(${R(t).colorVar??``})`),H(a,R(t).label),H(s,`${R(t).pct??``}%`),H(l,i)},[()=>y4(R(t)),()=>lZ(R(t).tokens)]),V(e,n)}),D(_),D(o),L((e,t,n)=>{H(l,e),H(d,t),p=G(f,1,`cache-meter-bar svelte-1yzecxj`,null,p,{"is-empty":!R(a)}),K(f,`aria-label`,n)},[()=>Go(),()=>uc(),()=>aNe(R(i))]),V(e,o),k()}var xPe=B(``);function r3(e,t){let n=zi(t,`size`,3,16),r=zi(t,`label`,3,`Loading`),i=zi(t,`class`,3,``);var a=xPe();L(()=>{G(a,1,li([`spinner`,i()]),`svelte-b54l9o`),mi(a,`--spinner-size: ${n()??``}px`),K(a,`aria-label`,r())}),V(e,a)}var SPe=Er(` `),CPe=Er(``);function i3(e,t){let n=zi(t,`label`,3,`No data`);var r=CPe(),i=I(P(r),9),a=e=>{var t=SPe(),r=P(t,!0);D(t),L(()=>H(r,n())),V(e,t)};U(i,e=>{n()&&e(a)}),D(r),L(()=>{K(r,`role`,n()?`img`:void 0),K(r,`aria-label`,n()||void 0),K(r,`aria-hidden`,n()?void 0:`true`)}),V(e,r)}var a3=B(`
                        `),wPe=B(`

                        `);function TPe(e,t){O(t,!0);let n=[{value:`daily`,label:zee},{value:`weekly`,label:Hee},{value:`monthly`,label:Gee},{value:`yearly`,label:Jee}];function r(e){OZ.interval=e,t.onintervalchange?.()}function i(){let e=NZ.daily;if(e.length===0)return null;let t=OZ.rangeStart(),n=OZ.rangeEnd(),r=sNe(b4(e,OZ.interval,t,n),b4(Array.isArray(NZ.cacheOverview.daily)?NZ.cacheOverview.daily:[],OZ.interval,t,n));return lNe(Q2(),r,{cacheEnabled:NZ.cacheAnalyticsEnabled(),resolve:t4})}var a=wPe(),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s,2);{let e=A(()=>Iee()),t=A(()=>n.map(e=>({value:e.value,label:e.label()})));X2(l,{get ariaLabel(){return R(e)},get options(){return R(t)},get value(){return OZ.interval},onchange:r})}D(o);var u=I(o,2),d=P(u);Y2(d,{build:i});var f=I(d,2),p=e=>{var t=a3(),n=P(t);{let e=A(()=>Zee());r3(n,{size:24,get label(){return R(e)}})}D(t),V(e,t)},m=e=>{var t=a3();i3(P(t),{}),D(t),V(e,t)};U(f,e=>{NZ.daily.length===0&&NZ.loading?e(p):NZ.daily.length===0&&!Y.authError&&e(m,1)}),D(u),D(a),L(e=>H(c,e),[()=>OZ.chartTitle()]),V(e,a),k()}var o3=10,EPe=.7;function DPe(e,t){if(e<=0||t<=0)return 0;let n=(e/t)**+EPe,r=Math.ceil(n*o3);return r<1?1:r>o3?o3:r}function OPe(){let e=[];for(let t=0;t<=o3;t++)e.push(t);return e}function kPe(e,t,n){let r={};(e||[]).forEach(e=>{r[e.date]=e});let i=jX(NX(n,-364)),a=i.getUTCDay();i.setUTCDate(i.getUTCDate()-a);let o=[];for(let e=new Date(i);MX(e)<=n;e.setUTCDate(e.getUTCDate()+1)){let n=MX(e),i=r[n],a=0;i&&(a=t===`costs`?i.total_cost==null?0:i.total_cost:i.total_tokens||0),o.push({dateStr:n,value:a,level:0,empty:!1})}let s=0;for(let e=0;es&&(s=o[e].value);for(let e=0;e0){for(;l.length<7;)l.push({dateStr:``,value:0,level:0,empty:!0});c.push(l)}return c}function APe(e){let t=jX(NX(e,-364)),n=t.getUTCDay();t.setUTCDate(t.getUTCDate()-n);let r=new Intl.DateTimeFormat(J(),{month:`short`,timeZone:`UTC`}),i=[],a={},o=0;for(let n=new Date(t);MX(n)<=e;n.setUTCDate(n.getUTCDate()+7),o++){let t=null;if(o===0)t=new Date(n);else for(let r=0;r<7;r++){let i=new Date(n);if(i.setUTCDate(n.getUTCDate()+r),MX(i)>e)break;if(i.getUTCDate()===1){t=i;break}}if(!t)continue;let s=t.getUTCFullYear()+`-`+t.getUTCMonth();a[s]||(i.push({label:r.format(t),col:o,key:s}),a[s]=!0)}for(let e=0;e `),FPe=B(`
                        `),IPe=B(`
                        `),LPe=B(`
                        `),RPe=B(`
                        `),zPe=B(`

                        `,1);function BPe(e,t){O(t,!0);let n=j(N({show:!1,x:0,y:0,text:``})),r=A(()=>HX.currentDateKey()),i=A(()=>kPe(e3.data,e3.mode,R(r))),a=A(()=>APe(R(r)));function o(e,t){t.empty||M(n,{show:!0,x:e.clientX,y:e.clientY,text:NPe(t,e3.mode)},!0)}function s(){M(n,{show:!1,x:0,y:0,text:``},!0)}var c=zPe(),l=F(c),u=P(l),d=P(u),f=P(d,!0);D(d);var p=I(d,2),m=e=>{{let t=A(()=>Bc());r3(e,{size:14,get label(){return R(t)}})}};U(p,e=>{e3.loading&&e3.data.length===0&&e(m)});var h=I(p,2);{let e=A(()=>Uc()),t=A(()=>[{value:`tokens`,label:Go()},{value:`costs`,label:Kc()}]);X2(h,{get ariaLabel(){return R(e)},get options(){return R(t)},get value(){return e3.mode},onchange:e=>e3.mode=e})}D(u);var g=I(u,2),_=P(g),v=I(P(_),2),y=P(v,!0);D(v);var b=I(v,4),x=P(b,!0);D(b);var S=I(b,4),C=P(S,!0);D(S),Ve(2),D(_);var w=I(_,2),T=P(w);W(T,21,()=>R(a),e=>e.key,(e,t)=>{var n=PPe(),r=P(n,!0);D(n),L(()=>{mi(n,`grid-column: ${R(t).col+1} / span ${R(t).span??``}`),H(r,R(t).label)}),V(e,n)}),D(T);var ee=I(T,2);W(ee,21,()=>R(i),Ir,(e,t,n)=>{var r=IPe();W(r,23,()=>R(t),(e,t)=>n+`-`+t,(e,t)=>{var n=FPe();L(()=>G(n,1,li([`contribution-calendar-cell`,R(t).empty?`empty`:`level-${R(t).level}`]),`svelte-3hfxuq`)),br(`mouseenter`,n,e=>o(e,R(t))),br(`mouseleave`,n,s),V(e,n)}),D(r),V(e,r)}),D(ee),D(w),D(g);var E=I(g,2),te=P(E),ne=P(te),re=P(ne,!0);D(ne),D(te);var ie=I(te,2),ae=P(ie),oe=P(ae,!0);D(ae);var se=I(ae,2);W(se,16,OPe,e=>e,(e,t)=>{var n=LPe();L(()=>G(n,1,`contribution-calendar-cell level-${t??``}`,`svelte-3hfxuq`)),V(e,n)});var ce=I(se,2),le=P(ce,!0);D(ce),D(ie),D(E),D(l);var ue=I(l,2),de=e=>{var t=RPe(),r=P(t,!0);D(t),L(()=>{mi(t,`left: ${R(n).x??``}px; top: ${R(n).y-40}px`),H(r,R(n).text)}),V(e,t)};U(ue,e=>{R(n).show&&e(de)}),L((e,t,n,r,i,a,o)=>{H(f,e),H(y,t),H(x,n),H(C,r),H(re,i),H(oe,a),H(le,o)},[()=>Lc(),()=>Yc(),()=>Qc(),()=>tl(),()=>jPe(e3.data,e3.mode),()=>il(),()=>sl()]),V(e,c),k()}var VPe=B(``),HPe=B(`

                        `),UPe=B(`
                        `);function s3(e,t){O(t,!0);let n=zi(t,`label`,3,`help`),r=zi(t,`text`,3,``),i=zi(t,`open`,15,!1),a=zi(t,`external`,3,!1),o=A(()=>!!r()||!!t.help||a());var s=UPe(),c=P(s),l=P(c);Kr(l,()=>t.title??f);var u=I(l,2),d=e=>{var r=VPe();let a;L(()=>{a=G(r,1,`inline-help-toggle svelte-y40or3`,null,a,{"is-open":i()}),K(r,`aria-label`,(i()?`Hide `:`Show `)+n()),K(r,`aria-expanded`,i()),K(r,`aria-controls`,t.copyId)}),z(`click`,r,()=>i(!i())),V(e,r)};U(u,e=>{R(o)&&e(d)}),Kr(I(u,2),()=>t.extra??f),D(c);var p=I(c,2),m=e=>{var n=HPe(),i=P(n),a=e=>{var n=Or();Kr(F(n),()=>t.help),V(e,n)},o=e=>{var t=Dr();L(()=>H(t,r())),V(e,t)};U(i,e=>{t.help?e(a):e(o,-1)}),D(n),L(()=>K(n,`id`,t.copyId)),V(e,n)};U(p,e=>{i()&&R(o)&&!a()&&e(m)}),D(s),V(e,s),k()}xr([`click`]);var WPe=B(`

                        `),GPe=B(`
                        `),KPe=B(`

                        2xx 4xx 5xx
                        `,1);function qPe(e,t){O(t,!0);let n=X4(),r=A(()=>Q4.stats);function i(){return{interval:R(r).interval,zone:HX.effectiveTimezone(),resolve:t4,formatTimestamp:e=>HX.formatTimestamp(e)}}var a=Or(),o=F(a),s=e=>{var t=KPe(),a=F(t),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=P(l),d=P(u),f=P(d,!0);D(d);var p=I(d,2),m=P(p,!0);D(p),D(u);var h=I(u,2),g=I(P(h),4),_=P(g,!0);D(g),D(h);var v=I(h,2),y=I(P(v),4),b=P(y,!0);D(y),D(v);var x=I(v,2),S=I(P(x),4),C=P(S,!0);D(S),D(x),D(l),D(o);var w=I(o,2);Y2(P(w),{build:()=>nPe(Q2(),R(r).buckets,i())}),D(w),D(a);var T=I(a,2),ee=e=>{var t=GPe(),a=P(t),o=P(a);{let e=e=>{var t=WPe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>bme()]),V(e,t)},t=A(()=>Cme()),n=A(()=>Eme());s3(o,{copyId:`audit-latency-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var s=I(o,2),c=P(s),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d),D(c),D(s),D(a);var p=I(a,2);Y2(P(p),{build:()=>rPe(Q2(),R(r).buckets,R(r).provider_latency,{...i(),providerColor:n})}),D(p),D(t),L((e,t,n)=>{K(c,`title`,e),H(u,t),H(f,n)},[()=>kme(),()=>Mme(),()=>ePe(R(r))]),V(e,t)},E=A(()=>QNe(R(r)));U(T,e=>{R(E)&&e(ee)}),L((e,t,n,r,i,a,o,s)=>{H(c,e),K(l,`aria-label`,t),K(u,`title`,n),H(f,r),H(m,i),H(_,a),H(b,o),H(C,s)},[()=>cme(),()=>dme(),()=>mme(),()=>_me(),()=>$Ne(R(r)),()=>lZ(G4(R(r),`status_2xx`)),()=>lZ(G4(R(r),`status_4xx`)),()=>lZ(G4(R(r),`status_5xx`))]),V(e,t)},c=A(()=>ZNe(R(r)));U(o,e=>{R(c)&&e(s)}),V(e,a),k()}var c3=(e,t=f,n=f,r)=>{let i=yt(()=>h(r?.(),!1));var a=XPe(),o=P(a),s=P(o,!0);D(o);var c=I(o,2),l=e=>{var t=JPe(),r=P(t,!0);D(t),L(()=>H(r,n())),V(e,t)},u=e=>{var t=YPe(),r=P(t,!0);D(t),L(()=>H(r,n())),V(e,t)};U(c,e=>{R(i)?e(l):e(u,-1)}),D(a),L(()=>H(s,t())),V(e,a)},JPe=B(` `),YPe=B(` `),XPe=B(`
                        `),ZPe=B(`

                        `),QPe=B(`
                        `),$Pe=B(`
                        `),eFe=B(`
                        `),tFe=B(`
                        `),nFe=B(`

                        `);function rFe(e,t){O(t,!0);let n=A(()=>ANe(t.provider)),r=A(()=>[[Ss(),t.provider.config?.base_url],[Ts(),t.provider.config?.api_version]].filter(([,e])=>!!e));var i=nFe();let a;var o=P(i),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=e=>{var n=ZPe(),r=P(n,!0);D(n),L(()=>H(r,t.provider.last_error)),V(e,n)};U(l,e=>{t.provider.last_error&&e(u)});var d=I(l,2),f=e=>{var r=tFe(),i=P(r);{let e=A(()=>Os()),n=A(()=>jNe(t.provider));c3(i,()=>R(e),()=>R(n))}var a=I(i,2),o=e=>{var r=QPe(),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o),c=P(s,!0);D(s),D(o),D(r),L((e,t)=>{H(a,e),G(s,1,li([`provider-status-health-state`,R(n)]),`svelte-6y9wjv`),H(c,t)},[()=>js(),()=>kNe(t.provider)]),V(e,r)},s=A(()=>j4(t.provider));U(a,e=>{R(s)&&e(o)});var c=I(a,2),l=e=>{var n=eFe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>M4(t.provider),e=>e.model,(e,t)=>{var n=$Pe();let r;var i=P(n),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(n),L((e,i)=>{r=G(n,1,`provider-status-health-model svelte-6y9wjv`,null,r,{"is-flagged":R(t).flagged}),K(n,`title`,e),H(a,R(t).model),H(s,i)},[()=>NNe(R(t)),()=>MNe(R(t))]),V(e,n)}),D(a),D(n),L(e=>H(i,e),[()=>Ps()]),V(e,n)},u=A(()=>M4(t.provider).length>0);U(c,e=>{R(u)&&e(l)}),D(r),V(e,r)},p=A(()=>A4(t.provider));U(d,e=>{R(p)&&e(f)});var m=I(d,2),h=P(m);W(h,17,()=>R(r),([e,t])=>e,(e,t)=>{var n=A(()=>g(R(t),2));c3(e,()=>R(n)[0],()=>R(n)[1],()=>!0)});var _=I(h,2);{let e=A(()=>Ls()),n=A(()=>DNe(t.provider));c3(_,()=>R(e),()=>R(n))}var v=I(_,2);{let e=A(()=>Bs()),n=A(()=>TNe(t.provider));c3(v,()=>R(e),()=>R(n))}var y=I(v,2);{let e=A(()=>Us()),n=A(()=>ENe(t.provider));c3(y,()=>R(e),()=>R(n))}D(m),D(o),D(i),L(()=>{a=G(i,1,`provider-status-details svelte-6y9wjv`,null,a,{"is-expanded":t.expanded,"is-collapsed":!t.expanded}),K(i,`aria-hidden`,!t.expanded),H(c,t.provider.status_reason)}),V(e,i),k()}var iFe=B(` `),aFe=B(``),oFe=B(`

                        `);function sFe(e,t){O(t,!0);let n=A(()=>Z4.cardExpanded(t.provider)),r=e=>HX.formatTimestamp(e);var i=oFe(),a=P(i),o=P(a),s=P(o),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=e=>{var n=iFe(),r=P(n);D(n),L(e=>H(r,`(${e??``})`),[()=>O4(t.provider)]),V(e,n)},f=A(()=>O4(t.provider));U(u,e=>{R(f)&&e(d)});var p=I(u,2),m=e=>{var n=aFe();L((e,t,r)=>{K(n,`href`,e),K(n,`aria-label`,t),K(n,`title`,r)},[()=>k4(t.provider),()=>ts({provider:O4(t.provider)||t.provider.name}),()=>ts({provider:O4(t.provider)||t.provider.name})]),V(e,n)},h=A(()=>k4(t.provider));U(p,e=>{R(h)&&e(m)}),D(s),D(o);var g=I(o,2),_=P(g,!0);D(g),D(a);var v=I(a,2),y=P(v),b=P(y),x=P(b,!0);D(b);var S=I(b,2),C=P(S,!0);D(S),D(y);var w=I(y,2),T=P(w),ee=P(T,!0);D(T);var E=I(T,2),te=P(E,!0);D(E),D(w),D(v);var ne=I(v,2);rFe(ne,{get provider(){return t.provider},get expanded(){return R(n)}});var re=I(ne,2);let ie;q(P(re),{get icon(){return ZY},class:`provider-status-card-toggle-icon`}),D(re),D(i),L((e,r,i,a,o,s,c,u,d)=>{H(l,t.provider.name),G(g,1,`provider-status-pill ${e??``}`,`svelte-nopjmh`),K(g,`title`,r),H(_,t.provider.status_label),H(x,i),H(C,a),H(ee,o),K(E,`title`,s),H(te,c),ie=G(re,1,`provider-status-card-toggle svelte-nopjmh`,null,ie,{"is-expanded":R(n)}),K(re,`aria-expanded`,R(n)),K(re,`aria-label`,u),K(re,`title`,d)},[()=>vNe(t.provider.status),()=>ONe(t.provider),()=>is(),()=>lZ(t.provider.runtime?.discovered_model_count),()=>ss(),()=>wNe(t.provider,r),()=>CNe(t.provider,r),()=>R(n)?ps({provider:t.provider.name}):us({provider:t.provider.name}),()=>R(n)?ys():gs()]),z(`click`,re,()=>Z4.toggleCard(t.provider)),V(e,i),k()}xr([`click`]);var cFe=B(`

                        `),lFe=B(`
                        `);function uFe(e,t){O(t,!0);let n=A(()=>Z4.status.providers);var r=Or(),i=F(r),a=e=>{var t=cFe(),r=P(t),i=P(r),a=P(i),o=P(a,!0);D(a),D(i);var s=I(i,2),c=P(s),l=P(c,!0);D(c);var u=I(c,2);let d;D(s),D(r);var f=I(r,2);W(f,21,()=>R(n),e=>e.name,(e,t)=>{sFe(e,{get provider(){return R(t)}})}),D(f),D(t),L((e,t,n)=>{H(o,e),K(s,`aria-checked`,Z4.detailsExpanded),K(s,`title`,t),H(l,n),d=G(u,1,`provider-status-toggle-track svelte-1kx3uw4`,null,d,{"is-active":Z4.detailsExpanded})},[()=>Fme(),()=>Z4.detailsToggleLabel(),()=>Z4.detailsToggleLabel()]),z(`click`,s,()=>Z4.toggleDetails()),V(e,t)},o=e=>{var t=lFe(),n=P(t);{let e=A(()=>Rme());r3(n,{size:18,get label(){return R(e)}})}D(t),V(e,t)};U(i,e=>{R(n).length>0?e(a):Z4.loading&&!Z4.loadedOnce&&e(o,1)}),V(e,r),k()}xr([`click`]);var dFe=B(`
                        `);function l3(e,t){O(t,!0);function n(){NZ.fetchUsage(),NZ.fetchCacheOverview(``),Q4.fetch(),Z4.fetch(),$4.fetch(),e3.fetch()}function r(){NZ.fetchUsage(),NZ.fetchCacheOverview(``),Q4.fetch()}function i(){r(),e3.fetch()}mn(()=>{if(Y.refreshTick,CX.page===`overview`)return or(()=>{n(),m4.start()}),()=>{m4.stop(),Z4.stopPolling()}});var a=dFe(),o=P(a);QMe(o,{});var s=I(o,2),c=P(s),l=P(c,!0);D(c),D(s);var u=I(s,2);FZ(P(u),{onchange:i}),D(u);var d=I(u,2);AZ(d,{});var f=I(d,2);mPe(f,{});var p=I(f,2);bPe(p,{});var m=I(p,2);TPe(m,{onintervalchange:r});var h=I(m,2);BPe(h,{});var g=I(h,2);qPe(g,{}),uFe(I(g,2),{}),D(a),L(e=>H(l,e),[()=>Nee()]),V(e,a),k()}var fFe=`/admin/live/logs?types=audit,usage`;function u3(e,t,n){return!!t&&String(e&&e.id||``).trim()===t||!!n&&String(e&&e.request_id||``).trim()===n}function pFe(e){switch(e){case`date_range`:return Pce();case`filters`:return Lce();case`pagination`:return Bce();default:return``}}function mFe(e){let t=fFe,n=Number(e||0);return Number.isFinite(n)&&n>0&&(t+=`&cursor=`+encodeURIComponent(String(n))),t}function hFe(){return{async consumeLiveLogsBody(e){await i4(e,e=>this.applyLiveLogEvent(e))},applyLiveLogEvent(e){if(!e||typeof e!=`object`)return;let t=Number(e.seq||0);Number.isFinite(t)&&t>this.liveLogsLastSeq&&(this.liveLogsLastSeq=t);let n=String(e.type||``).trim();if(n!==`heartbeat`){if(n===`reset`){this.reloadLiveLogSources();return}if(n===`audit.removed`){this.removeLiveAuditEntry(e.data);return}if(n.indexOf(`audit.`)===0){this.mergeLiveAuditEntry(e.data||{},n);return}n.indexOf(`usage.`)===0&&(this.mergeLiveUsageEntry(e.data||{},n),typeof this.noteLiveTokenUsage==`function`&&this.noteLiveTokenUsage(n))}},reloadLiveLogSources(){typeof this.fetchUsage==`function`&&this.fetchUsage(),this.page===`audit-logs`&&typeof this.fetchAuditLog==`function`&&this.fetchAuditLog(!0)},auditLivePauseReason(){return!this.auditLog||this.auditLog.offset!==0?`pagination`:this.auditSearch||this.auditMethod||this.auditStatusCode||this.auditStream?`filters`:!this.followsToday&&(this.customStartDate||this.customEndDate)?`date_range`:null},auditLiveInsertAllowed(){return!this.auditLivePauseReason()},usageLiveInsertAllowed(){return this.usageLog&&this.usageLog.offset===0&&!this.usageLogSearch&&!this.usageFilterModel&&!this.usageFilterProvider&&!this.usageFilterLabel&&!this.usageFilterUserPath&&!this.usageFilterSession},mergeLiveAuditEntry(e,t){if(!e||typeof e!=`object`)return;let n=String(e.id||e.request_id||``).trim();if(!n)return;let r=String(e.request_id||``).trim(),i=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],a=i.findIndex(e=>u3(e,n,r)),o=a>=0&&i[a]||{},s=t===`audit.detail`,c=s?{...e,_detail_loaded:!0,_response_partial:!1,bodies_omitted:!1}:this.liveAuditPatch(o,e,t);if(a>=0){let e=this.mergeLiveAuditPatch(o,c);return i.splice(a,1,e),this.auditLog.entries=[...i],this.regroupLiveAuditHead(e),s||this.fetchExpandedAuditDetailIfReady(e),this.cacheMergedAuditRecord(e,t),e}let l=this.mergeLiveAuditChild(e,c);if(l)return s||this.fetchExpandedAuditDetailIfReady(l),this.cacheMergedAuditRecord(l,t),l;if(!this.auditLiveInsertAllowed()){this.cacheMergedAuditRecord(c,t);return}if(!s&&this.auditGroupSessions){let e=this.foldLiveAuditIntoThread(c);if(e)return this.fetchExpandedAuditDetailIfReady(e),this.cacheMergedAuditRecord(e,t),e}this.auditLog.entries=[this.mergeLiveAuditUsagePatch(c),...i].slice(0,this.auditLog.limit||25),this.auditLog.total=Number(this.auditLog.total||0)+1;let u=this.auditLog.entries[0];return s||this.fetchExpandedAuditDetailIfReady(u),this.cacheMergedAuditRecord(u,t),u},liveAuditPatch(e,t,n){let r=this.liveAuditStateAfter(e._live_state,n),i=this.liveAuditEventFlushed(e._live_state)||this.liveAuditEventFlushed(r),a={...t,_live:!0,_live_state:r,_audit_flushed:i,_live_pending:!i};return n===`audit.stream`?a._response_partial=!0:this.liveAuditStateSettled(n)&&(a._response_partial=!1),a},mergeLiveAuditChild(e,t){let n=this.auditThreadChildren;if(!n||typeof n!=`object`)return null;let r=String(e.id||``).trim(),i=String(e.request_id||``).trim(),a=Object.keys(n);for(let e=0;eu3(e,r,i));if(c<0)continue;let l=this.mergeLiveAuditPatch(s[c]||{},t),u=[...s];return u.splice(c,1,l),this.auditThreadChildren={...n,[a[e]]:{...o,entries:u}},l}return null},regroupLiveAuditHead(e){if(!this.auditGroupSessions)return null;let t=String(e&&e.session_id||``).trim();if(!t)return null;let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=String(e.id||``).trim(),i=n.findIndex(e=>String(e.id||``).trim()===r);if(i<0)return null;let a=n.findIndex((e,n)=>n!==i&&String(e.session_id||``).trim()===t);if(a<0)return null;let o=n[a],s=Date.parse(o&&o.timestamp),c=Date.parse(e&&e.timestamp),l=Number.isFinite(s)&&Number.isFinite(c)&&s>c,u=l?o:e,d=l?e:o,f={...u,session_count:Math.max(1,Number(o.session_count||1))+Math.max(1,Number(e.session_count||1))},p=n.filter((e,t)=>t!==i&&t!==a);return p.unshift(f),this.auditLog.entries=p,this.auditLog.total=Math.max(0,Number(this.auditLog.total||0)-1),this.prependLiveAuditThreadChild(t,d),f},foldLiveAuditIntoThread(e){let t=String(e&&e.session_id||``).trim();if(!t)return null;let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=n.findIndex(e=>String(e.session_id||``).trim()===t);if(r<0)return null;let i=n[r],a=Number(i.session_count),o=this.mergeLiveAuditUsagePatch({...e,session_count:(Number.isFinite(a)&&a>0?a:1)+1}),s=[...n];return s.splice(r,1),s.unshift(o),this.auditLog.entries=s,this.prependLiveAuditThreadChild(t,i),o},prependLiveAuditThreadChild(e,t){let n=this.auditThreadChildren||{},r=n[e],i={...t};delete i.session_count;let a=r&&Array.isArray(r.entries)?{...r,entries:[i,...r.entries],total:Number(r.total||r.entries.length)+1}:{loading:!1,loaded:!1,entries:[i],total:1};this.auditThreadChildren={...n,[e]:a}},removeLiveAuditThreadChild(e,t){let n=this.auditThreadChildren;!n||typeof n!=`object`||Object.keys(n).forEach(r=>{let i=n[r],a=i&&Array.isArray(i.entries)?i.entries:[],o=a.filter(n=>!u3(n,e,t)),s=a.length-o.length;s!==0&&(this.auditThreadChildren={...this.auditThreadChildren,[r]:{...i,entries:o,total:Math.max(0,Number(i.total||a.length)-s)}},this.decrementLiveAuditThreadCount(r,s))})},decrementLiveAuditThreadCount(e,t){let n=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],r=n.findIndex(t=>String(t.session_id||``).trim()===e);if(r<0)return;let i=n[r],a=[...n];a.splice(r,1,{...i,session_count:Math.max(1,Number(i.session_count||1)-t)}),this.auditLog.entries=a},mergeLiveAuditPatch(e,t){let n={...e,...t};return t.data===void 0&&e.data!==void 0?n.data=e.data:e.data&&t.data&&typeof e.data==`object`&&typeof t.data==`object`&&!Array.isArray(e.data)&&!Array.isArray(t.data)&&(n.data={...e.data,...t.data}),this.mergeLiveAuditUsagePatch(n)},mergeLiveAuditUsagePatch(e){let t=this.liveUsageEntryForAudit(e);if(!t)return e;let n=this.auditEntryWithLiveUsage(e,t);return this.removeSkippedLiveUsage(t),n},liveUsageEntryForAudit(e){let t=String(e&&e.request_id||``).trim();return t&&((this.usageLog&&Array.isArray(this.usageLog.entries)?this.usageLog.entries:[]).find(e=>String(e&&e.request_id||``).trim()===t)||this.skippedLiveUsageByRequestId&&this.skippedLiveUsageByRequestId[t])||null},cacheMergedAuditRecord(e,t){return e&&typeof this.cacheAuditRecord==`function`?this.cacheAuditRecord(e,t):e},fetchExpandedAuditDetailIfReady(e){!e||!this.isAuditEntryExpanded||!this.isAuditEntryExpanded(e)||String(e._live_state||``).trim()!==`audit.flushed`&&!e._audit_flushed||typeof this.fetchAuditEntryDetail==`function`&&this.fetchAuditEntryDetail(e)},liveAuditStateRank(e){switch(String(e||``).trim()){case`audit.started`:return 10;case`audit.updated`:case`audit.stream`:return 20;case`audit.completed`:return 30;case`audit.failed`:case`audit.flushed`:case`audit.detail`:return 40;default:return 0}},liveAuditStateAfter(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return this.liveAuditStateRank(n)>this.liveAuditStateRank(r)?n:r},liveAuditStateSettled(e){return this.liveAuditStateRank(e)>=this.liveAuditStateRank(`audit.completed`)},liveAuditEventFlushed(e){let t=String(e||``).trim();return t===`audit.failed`||t===`audit.flushed`||t===`audit.detail`},removeLiveAuditEntry(e){if(!e||!this.auditLog||!Array.isArray(this.auditLog.entries))return;let t=String(e.id||``).trim(),n=String(e.request_id||``).trim();if(!t&&!n)return;let r=this.auditLog.entries,i=[],a=0,o=0,s=!1;r.forEach(e=>{if(!u3(e,t,n)){i.push(e);return}a++;let r=String(e.session_id||``).trim(),c=Math.max(1,Number(e.session_count||1));if(!this.auditGroupSessions||!r||c<=1)return;o++;let l=this.auditThreadChildren&&this.auditThreadChildren[r],u=l&&Array.isArray(l.entries)?l.entries.filter(e=>!u3(e,t,n)):[];if(u.length===0){s=!0;return}let d={...u[0],session_id:r,session_count:c-1};i.push(d),this.auditThreadChildren={...this.auditThreadChildren,[r]:{...l,entries:u.slice(1),total:Math.max(0,Number(l.total||c)-1)}}}),a>0&&(this.auditLog.entries=i,this.auditLog.total=Math.max(0,Number(this.auditLog.total||0)-a+o)),this.removeLiveAuditThreadChild(t,n),s&&typeof this.fetchAuditLog==`function`&&this.fetchAuditLog(!0)},mergeLiveUsageEntry(e,t){if(!e||typeof e!=`object`)return;e={...e,_live_state:t||e._live_state||`usage.completed`};let n=String(e.id||``).trim();if(!n)return;let r=this.usageLog&&Array.isArray(this.usageLog.entries)?this.usageLog.entries:[],i=r.findIndex(e=>String(e.id||``).trim()===n);if(i>=0){let t=r[i]||{},n=this.mergeLiveUsagePatch(t,e);if(this.applyLiveUsageToAudit(n),this.liveUsageShouldSkip(n)){r.splice(i,1),this.usageLog.entries=[...r],this.usageLog.total=Math.max(0,Number(this.usageLog.total||0)-1),this.storeSkippedLiveUsage(n);return}r.splice(i,1,n),this.usageLog.entries=[...r],this.removeSkippedLiveUsage(n);return}let a=this.mergeLiveUsagePatch(this.liveUsageSeedForEntry(e),e);if(this.applyLiveUsageToAudit(a),this.liveUsageShouldSkip(a)){this.storeSkippedLiveUsage(a);return}this.removeSkippedLiveUsage(a),this.usageLog.entries=[a,...r].slice(0,this.usageLog.limit||50),this.usageLog.total=Number(this.usageLog.total||0)+1},mergeLiveUsagePatch(e,t){e=e&&typeof e==`object`?e:{};let n=this.liveUsageStateAfter(e._live_state,t&&t._live_state),r=this.liveUsageEventFlushed(e)||this.liveUsageEventFlushed({...t,_live_state:n});return{...e,...t,_live:!0,_live_state:n||`usage.completed`,_live_pending:!r,_usage_flushed:r}},liveUsageShouldSkip(e){return!!(this.usageLogHideCached&&this.liveUsageEntryCached(e))||!this.usageLiveInsertAllowed()},liveUsageSeedForEntry(e){return this.skippedLiveUsageForEntry(e)||this.auditLiveUsageForEntry(e)},skippedLiveUsageForEntry(e){let t=String(e&&e.request_id||``).trim();return t&&this.skippedLiveUsageByRequestId?this.skippedLiveUsageByRequestId[t]:null},auditLiveUsageForEntry(e){let t=String(e&&e.request_id||``).trim();if(!t||!this.auditLog||!Array.isArray(this.auditLog.entries))return null;let n=this.auditLog.entries.find(e=>String(e&&e.request_id||``).trim()===t),r=n&&n.usage&&typeof n.usage==`object`&&!Array.isArray(n.usage)?n.usage:null;return r?{id:e&&e.id,request_id:t,entries:r.entries,input_tokens:r.input_tokens,uncached_input_tokens:r.uncached_input_tokens,cached_input_tokens:r.cached_input_tokens,cache_write_input_tokens:r.cache_write_input_tokens,output_tokens:r.output_tokens,total_tokens:r.total_tokens,cached_input_ratio:r.cached_input_ratio,estimated_cached_characters:r.estimated_cached_characters,_live_state:n._usage_live_state,_live_pending:n._usage_live_pending,_usage_flushed:n._usage_flushed}:null},storeSkippedLiveUsage(e){let t=String(e&&e.request_id||``).trim();t&&((!this.skippedLiveUsageByRequestId||typeof this.skippedLiveUsageByRequestId!=`object`||Array.isArray(this.skippedLiveUsageByRequestId))&&(this.skippedLiveUsageByRequestId={}),this.skippedLiveUsageByRequestId[t]=e)},removeSkippedLiveUsage(e){let t=String(e&&e.request_id||``).trim();t&&this.skippedLiveUsageByRequestId&&delete this.skippedLiveUsageByRequestId[t]},liveUsageEntryCached(e){let t=String(e&&e.cache_type||``).trim().toLowerCase();return t===`exact`||t===`semantic`||!!(e&&e.cache_hit)},liveUsageEventFlushed(e){let t=String(e&&e._live_state||``).trim();return!!(e&&e._usage_flushed)||t===`usage.failed`||t===`usage.flushed`},liveUsageStateRank(e){switch(String(e||``).trim()){case`usage.completed`:return 10;case`usage.failed`:case`usage.flushed`:return 20;default:return 0}},liveUsageStateAfter(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return this.liveUsageStateRank(n)>this.liveUsageStateRank(r)?n:r},applyLiveUsageToAudit(e){let t=String(e&&e.request_id||``).trim();if(!t||!this.auditLog||!Array.isArray(this.auditLog.entries))return;let n=this.auditLog.entries.findIndex(e=>String(e.request_id||``).trim()===t);if(n>=0){let t=this.auditLog.entries[n];this.auditLog.entries.splice(n,1,this.auditEntryWithLiveUsage(t,e)),this.auditLog.entries=[...this.auditLog.entries]}let r=this.auditThreadChildren;if(!r||typeof r!=`object`)return;let i=r,a=!1;Object.keys(r).forEach(n=>{let r=i[n],o=r&&Array.isArray(r.entries)?r.entries:[],s=o.findIndex(e=>String(e.request_id||``).trim()===t);if(s<0)return;let c=[...o];c.splice(s,1,this.auditEntryWithLiveUsage(o[s],e)),i={...i,[n]:{...r,entries:c}},a=!0}),a&&(this.auditThreadChildren=i)},auditEntryWithLiveUsage(e,t){let n=this.liveUsageStateAfter(e._usage_live_state,t._live_state||`usage.completed`),r=this.liveUsageEventFlushed({_live_state:n,_usage_flushed:e._usage_flushed||t._usage_flushed});return{...e,usage:this.liveUsageSummary(t,e.usage),_usage_live_state:n||`usage.completed`,_usage_live_pending:!r,_usage_flushed:r}},liveUsageSummary(e,t){let n=t&&typeof t==`object`&&!Array.isArray(t)?t:{},r=this.liveNumber(e.input_tokens,this.liveNumber(n.input_tokens,0)),i=this.liveNumber(e.output_tokens,this.liveNumber(n.output_tokens,0)),a=this.liveNumber(e.uncached_input_tokens,this.liveNumber(n.uncached_input_tokens,0)),o=this.liveNumber(e.cached_input_tokens,this.liveNumber(n.cached_input_tokens,0)),s=this.liveNumber(e.cache_write_input_tokens,this.liveNumber(n.cache_write_input_tokens,0));r>0&&a+o+s===0&&(a=r);let c=a+o+s||r,l=c+i||this.liveNumber(e.total_tokens,this.liveNumber(n.total_tokens,0)),u=this.liveNumber(e.cached_input_ratio,this.liveNumber(n.cached_input_ratio,c>0?o/c:0));return{entries:Math.max(1,this.liveNumber(e.entries,this.liveNumber(n.entries,1))),input_tokens:c,uncached_input_tokens:a,cached_input_tokens:o,cache_write_input_tokens:s,output_tokens:i,total_tokens:l,cached_input_ratio:u,estimated_cached_characters:this.liveNumber(e.estimated_cached_characters,this.liveNumber(n.estimated_cached_characters,o*4))}},liveNumber(e,t){let n=Number(e);return Number.isFinite(n)?n:t},auditEntryShouldFetchDetail(e){return!e||e._detail_loading||e._detail_loaded||this.auditEntryLiveDetailPending(e)?!1:this.auditEntryNeedsPersistedLiveDetail(e)||e.bodies_omitted?!0:!this.auditEntryHasDetailData(e)},auditEntryLiveDetailPending(e){if(!e||!e._live)return!1;let t=String(e._live_state||``).trim();return t===`audit.failed`||!e._audit_flushed&&t!==`audit.flushed`&&t!==`audit.detail`},auditEntryNeedsPersistedLiveDetail(e){return!!(e&&e._live&&!e._detail_loaded)},auditEntryHasDetailData(e){let t=e&&e.data;return!t||typeof t!=`object`?!1:t.request_headers!==void 0||t.response_headers!==void 0||t.request_body!==void 0||t.response_body!==void 0||t.request_body_too_big_to_handle!==void 0||t.response_body_too_big_to_handle!==void 0||t.user_agent!==void 0||t.api_key_hash!==void 0||t.temperature!==void 0||t.max_tokens!==void 0||t.error_message!==void 0||t.error_code!==void 0},clearAuditDetailLoading(e){if(!e)return;let t=String(e.id||``).trim(),n=String(e.request_id||``).trim(),r=this.auditLog&&Array.isArray(this.auditLog.entries)?this.auditLog.entries:[],i=r.find(e=>t&&String(e.id||``).trim()===t?!0:!!(n&&String(e.request_id||``).trim()===n)),a=i||e;a._detail_loading=!1,i&&(this.auditLog.entries=[...r])}}}var d3={"audit.started":10,"audit.updated":20,"audit.stream":20,"audit.completed":30,"audit.failed":40,"audit.flushed":40,"audit.detail":40},gFe=new Set(Object.keys(d3));function f3(e){return String(e&&(e.id||e.request_id)||``).trim()}function _Fe(e,t){let n=e&&typeof e==`object`?e:{},r=t&&typeof t==`object`?t:{},i={...n,...r};r.data==null&&n.data!=null?i.data=n.data:p3(n.data)&&p3(r.data)&&(i.data={...n.data,...r.data});let a=String(n._live_state||``).trim(),o=String(r._live_state||``).trim();return(d3[a]||0)>(d3[o]||0)&&(i._live_state=a),n._audit_flushed&&(i._audit_flushed=!0),i._audit_flushed&&(i._live_pending=!1),n._detail_loaded&&!r._detail_loaded&&(i._detail_loaded=!0,i.bodies_omitted=!1),i.bodies_omitted&&p3(i.data)&&(i.data.request_body!==void 0||i.data.response_body!==void 0)&&(i.bodies_omitted=!1),i}function vFe(e,t){let n=Number(t||0);return(Array.isArray(e)?e:[]).filter(e=>Number(e&&e.version||0)>n)}function yFe(e){return gFe.has(String(e&&e.eventType||``).trim())}function p3(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}var m3=200,h3=class{#e=j(N({entries:[],total:0,limit:25,offset:0}));get auditLog(){return R(this.#e)}set auditLog(e){M(this.#e,e,!0)}#t=j(N({entries:[],total:0,limit:50,offset:0}));get usageLog(){return R(this.#t)}set usageLog(e){M(this.#t,e,!0)}#n=j(N({}));get auditRecords(){return R(this.#n)}set auditRecords(e){M(this.#n,e,!0)}#r=j(N([]));get auditRecordChanges(){return R(this.#r)}set auditRecordChanges(e){M(this.#r,e,!0)}auditRecordVersion=0;auditRecordPins=new Set;#i=j(``);get auditSearch(){return R(this.#i)}set auditSearch(e){M(this.#i,e,!0)}#a=j(``);get auditMethod(){return R(this.#a)}set auditMethod(e){M(this.#a,e,!0)}#o=j(``);get auditStatusCode(){return R(this.#o)}set auditStatusCode(e){M(this.#o,e,!0)}#s=j(``);get auditStream(){return R(this.#s)}set auditStream(e){M(this.#s,e,!0)}#c=j(Gi(`gomodel_audit_group_sessions`,`true`)!==`false`);get auditGroupSessions(){return R(this.#c)}set auditGroupSessions(e){M(this.#c,e,!0)}#l=j(N({}));get auditThreadChildren(){return R(this.#l)}set auditThreadChildren(e){M(this.#l,e,!0)}#u=j(``);get usageLogSearch(){return R(this.#u)}set usageLogSearch(e){M(this.#u,e,!0)}#d=j(``);get usageFilterModel(){return R(this.#d)}set usageFilterModel(e){M(this.#d,e,!0)}#f=j(``);get usageFilterProvider(){return R(this.#f)}set usageFilterProvider(e){M(this.#f,e,!0)}#p=j(``);get usageFilterLabel(){return R(this.#p)}set usageFilterLabel(e){M(this.#p,e,!0)}#m=j(``);get usageFilterUserPath(){return R(this.#m)}set usageFilterUserPath(e){M(this.#m,e,!0)}#h=j(``);get usageFilterSession(){return R(this.#h)}set usageFilterSession(e){M(this.#h,e,!0)}#g=j(!1);get usageLogHideCached(){return R(this.#g)}set usageLogHideCached(e){M(this.#g,e,!0)}#_=j(!1);get liveLogsStreaming(){return R(this.#_)}set liveLogsStreaming(e){M(this.#_,e,!0)}liveLogsLastSeq=0;liveLogsReconnectAttempts=0;liveLogsReconnectTimer=null;liveLogsController=null;skippedLiveUsageByRequestId=null;fetchUsage=null;fetchAuditLog=null;isAuditEntryExpanded=null;noteLiveTokenUsage=null;upsertAuditRecord(e,t=``){let n=f3(e);if(!n)return e;let r=_Fe(this.auditRecords[n],e);return this.auditRecords={...this.auditRecords,[n]:r},this.pruneAuditRecords(),this.auditRecordVersion++,this.auditRecordChanges=[...this.auditRecordChanges,{version:this.auditRecordVersion,key:n,eventType:t}].slice(-512),r}upsertAuditRecords(e,t=``){return(Array.isArray(e)?e:[]).map(e=>this.upsertAuditRecord(e,t))}auditRecord(e){let t=typeof e==`string`?String(e).trim():f3(e);return t&&this.auditRecords[t]||null}cacheAuditRecord(e,t){return this.upsertAuditRecord(e,t)}pinAuditRecords(e){this.auditRecordPins=new Set((Array.isArray(e)?e:[]).map(String))}pruneAuditRecords(){let e=Object.keys(this.auditRecords);if(e.length<=m3)return;let t={...this.auditRecords},n=e.length-m3;for(let r of e){if(n<=0)break;this.auditRecordPins.has(r)||(delete t[r],n--)}this.auditRecords=t}get page(){return CX.page}get customStartDate(){return OZ.customStartDate}get customEndDate(){return OZ.customEndDate}get followsToday(){return OZ.followsToday}liveLogsEnabled(){return XX.liveLogsVisible()}async startLiveLogs(){typeof fetch!=`function`||typeof ReadableStream>`u`||(await XX.ensureLoaded(),this.liveLogsEnabled()&&(this.stopLiveLogs(),this.liveLogsController=typeof AbortController==`function`?new AbortController:null,this.readLiveLogsStream(this.liveLogsController)))}stopLiveLogs(){this.liveLogsStreaming=!1,this.liveLogsReconnectTimer&&=(clearTimeout(this.liveLogsReconnectTimer),null),this.liveLogsController&&typeof this.liveLogsController.abort==`function`&&this.liveLogsController.abort(),this.liveLogsController=null}ensureLiveLogs(){this.liveLogsController||this.liveLogsReconnectTimer||this.startLiveLogs()}async readLiveLogsStream(e){let t={};e&&(t.signal=e.signal);let n=mFe(this.liveLogsLastSeq),r=Y.generation;try{let i=await GX(n,t);if(i.status===401){if(Y.handleUnauthorized(r),r{this.liveLogsReconnectTimer=null,this.startLiveLogs()},t)}async fetchAuditEntryDetail(e){if(!this.auditEntryShouldFetchDetail(e))return;let t=String(e.id||``).trim();if(!t)return;e._detail_loading=!0;let n=e;try{let e=await qX(`/admin/audit/detail?log_id=`+encodeURIComponent(t),{label:`audit detail`});if(e.stale||!e.ok)return;n=this.mergeLiveAuditEntry(e.data,`audit.detail`)||n}catch(e){console.error(`Failed to fetch audit detail:`,e)}finally{this.clearAuditDetailLoading(n)}}};Object.assign(h3.prototype,hFe());var g3=new h3;if(typeof window<`u`){let e=!1;window.addEventListener(`pagehide`,()=>{e=!!g3.liveLogsController,g3.stopLiveLogs()}),window.addEventListener(`pageshow`,t=>{t.persisted&&e&&g3.ensureLiveLogs()})}var _3=null;gn(()=>{mn(()=>{let e=Y.refreshTick;if(_3===null){_3=e;return}e!==_3&&(_3=e,or(()=>{g3.stopLiveLogs(),g3.startLiveLogs()}))})});function v3(){return{total_requests:0,total_input_tokens:0,total_output_tokens:0,total_tokens:0,uncached_input_tokens:0,cached_input_tokens:0,cache_write_input_tokens:0,total_input_cost:null,total_output_cost:null,total_cost:null,rewrite_tokens_saved:0,rewrite_cost_saved:null}}function y3(){return{entries:[],total:0,limit:50,offset:0}}function b3(){return{entries:[],total:0,limit:50,offset:0}}function x3(e){let t=String(e||``).trim();return t.length<=26?t||`-`:t.slice(0,15)+`…`+t.slice(-8)}function bFe(e,t){let n=[[`model`,e&&e.model],[`provider`,e&&e.provider],[`label`,e&&e.label],[`user_path`,e&&e.user_path],[`session_id`,e&&e.session_id]],r=``;for(let[e,i]of n)!i||e===t||(r+=`&`+e+`=`+encodeURIComponent(i));return r}function xFe({limit:e,offset:t,hideCached:n,search:r}){let i=`&limit=`+e+`&offset=`+t;return i+=`&cache_mode=`+(n?`uncached`:`all`),r&&(i+=`&search=`+encodeURIComponent(r)),i}function SFe({limit:e,offset:t}){return`&limit=`+e+`&offset=`+t}function S3(e,t){let n=new Set(e||[]);return t&&n.add(t),[...n].sort()}function CFe(e,t){let n=Number(t&&t.total_requests||0)-Number(e&&e.total_requests||0);return Number.isFinite(n)&&n>0?n:0}function wFe(e,t,n){let r=n?e:t,i=Number(r&&r.total_requests||0);return Number.isFinite(i)?i:0}function TFe(e,t,n){let r=CFe(e,t);return r<=0?``:n?kae({count:lZ(r)}):Mae({provider:lZ(Number(e&&e.total_requests||0)),cache:lZ(r)})}function EFe(e){let t=e||{};return t.total_input_cost===null||t.total_input_cost===void 0?``:Fae({input:uZ(t.total_input_cost),output:uZ(t.total_output_cost)})}function C3(e){let t=Number(e&&e.rewrite_tokens_saved||0);return Number.isFinite(t)&&t>0?t:0}function DFe(e){return C3(e)>0}function w3(e){let t=e||{};return t.rewrite_cost_saved===void 0?null:t.rewrite_cost_saved}function OFe(){return Rae()}function kFe(e,t){return t===`costs`?uZ(w3(e)):pZ(C3(e))}function AFe(e,t){let n=t===`costs`,r=n?Number(w3(e)):C3(e);if(!Number.isFinite(r)||r<=0)return null;let i=e&&(n?e.total_cost:e.total_input_tokens);if(i==null)return null;let a=Number(i);return!Number.isFinite(a)||a<0?null:r/(a+r)*100}function T3(e,t){let n=AFe(e,t);return n===null?``:Vae({percent:n<.1?`<0.1`:n.toFixed(1)})}function jFe(e,t){let n=C3(e);if(n<=0)return``;let r=[Wae({count:lZ(n)}),OFe(),qae()],i=w3(e);i!=null&&(r.push(Xae({cost:uZ(i)})),r.push($ae()));let a=T3(e,t);return a&&r.push(noe({percent:a,mode:t===`costs`?aoe():coe()})),r.join(` -`)}function E3(e){return String(e&&e.cost_source||``).trim()}function D3(e){let t=E3(e);return t===`openrouter_credits`||t===`xai_cost_in_usd_ticks`}function O3(e){switch(E3(e)){case`openrouter_credits`:return doe();case`xai_cost_in_usd_ticks`:return moe();default:return``}}function k3(e){return String(e&&e.cache_type||``).trim().toLowerCase()}function A3(e){let t=k3(e);return t===`exact`||t===`semantic`}function MFe(e){let t=k3(e);return t===`exact`?_oe():t===`semantic`?boe():`-`}function j3(e,t){let n=t?String(t):``;if(!A3(e))return n;let r=Coe();return n?r+` -`+n:r}function NFe(e){let t=Number(e&&e.cached_input_ratio);return!Number.isFinite(t)||t<=0?0:Math.min(1,t)}function M3(e){return Number(e&&e.cached_input_tokens||0)>0}function PFe(e){return M3(e)?(NFe(e)*100).toFixed(1)+`%`:``}function FFe(e){if(!M3(e))return``;let t=Number(e.cached_input_tokens||0),n=Number(e.uncached_input_tokens||0),r=Number(e.cache_write_input_tokens||0),i=t+n+r,a=[Eoe({cached:lZ(t),total:lZ(i)})];return r>0&&a.push(koe({count:lZ(r)})),a.join(` -`)}function N3(e){let t=[];if(O3(e)&&(t.push(O3(e)),t.push(``)),t.push(Moe({cost:uZ(e.input_cost)})),t.push(Foe({cost:uZ(e.output_cost)})),e.raw_data){t.push(``);for(let[n,r]of Object.entries(e.raw_data)){let e=n.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase()),i=r&&typeof r==`object`?JSON.stringify(r):lZ(r);t.push(e+`: `+i)}}return t.join(` -`)}function P3(e){return Array.isArray(e&&e.labels)?e.labels:[]}function IFe(e,t,n){return(e||[]).length>0||t?!0:(n||[]).some(e=>P3(e).length>0)}function F3(e){return e&&typeof e.total_tokens==`number`?e.total_tokens:(e&&e.input_tokens||0)+(e&&e.output_tokens||0)}function I3(e,t){return t?e.total_cost||0:F3(e)}function L3(e,t){return[...e||[]].sort((e,n)=>t?(n.total_cost||0)-(e.total_cost||0):I3(n,t)-I3(e,t))}function LFe(e){let t=Array.isArray(e)?e:[];if(t.length===0)return!1;if(t.length!==1)return!0;let n=String(t[0]&&t[0].user_path||``).trim();return n!==``&&n!==`/`}function R3(e){return(e||`chart`)===`chart`||e===`stacked`}function RFe(e,t,n){let r=L3(e,n),i=e=>Number(e)||0,a=e=>n?Math.min(i(e.cached_input_cost),i(e.input_cost)):i(e.cached_input_tokens),o=e=>n?i(e.input_cost)-a(e):i(e.uncached_input_tokens)+i(e.cached_input_tokens)+i(e.cache_write_input_tokens)>0?i(e.uncached_input_tokens)+i(e.cache_write_input_tokens):i(e.input_tokens),s=e=>i(n?e.output_cost:e.output_tokens),c=e=>n?0:i(e.local_cached_input_tokens),l=e=>n?0:i(e.local_cached_output_tokens),u=r.slice(0,10),d=r.slice(10),f=u.map(t),p=u.map(o),m=u.map(s),h=u.map(a),g=u.map(c),_=u.map(l);if(d.length>0){f.push(ju());let e=e=>d.reduce((t,n)=>t+e(n),0);p.push(e(o)),m.push(e(s)),h.push(e(a)),g.push(e(c)),_.push(e(l))}return{labels:f,inputs:p,outputs:m,prompts:h,localIns:g,localOuts:_}}function zFe(e){return Math.max(200,e*32+72)}var X=new class{#e=j(`tokens`);get usageMode(){return R(this.#e)}set usageMode(e){M(this.#e,e,!0)}get usageFilterModel(){return g3.usageFilterModel}set usageFilterModel(e){g3.usageFilterModel=e}get usageFilterProvider(){return g3.usageFilterProvider}set usageFilterProvider(e){g3.usageFilterProvider=e}get usageFilterLabel(){return g3.usageFilterLabel}set usageFilterLabel(e){g3.usageFilterLabel=e}get usageFilterUserPath(){return g3.usageFilterUserPath}set usageFilterUserPath(e){g3.usageFilterUserPath=e}get usageFilterSession(){return g3.usageFilterSession}set usageFilterSession(e){g3.usageFilterSession=e}#t=j(N({models:[],providers:[],labels:[]}));get usageFacetOptions(){return R(this.#t)}set usageFacetOptions(e){M(this.#t,e,!0)}#n=j(N(v3()));get usageSummary(){return R(this.#n)}set usageSummary(e){M(this.#n,e,!0)}#r=j(N(v3()));get usageSummaryAll(){return R(this.#r)}set usageSummaryAll(e){M(this.#r,e,!0)}#i=j(N([]));get modelUsage(){return R(this.#i)}set modelUsage(e){M(this.#i,e,!0)}#a=j(N([]));get userPathUsage(){return R(this.#a)}set userPathUsage(e){M(this.#a,e,!0)}#o=j(N([]));get labelUsage(){return R(this.#o)}set labelUsage(e){M(this.#o,e,!0)}#s=j(N(b3()));get sessionUsage(){return R(this.#s)}set sessionUsage(e){M(this.#s,e,!0)}get usageLog(){return g3.usageLog}set usageLog(e){g3.usageLog=e}get usageLogSearch(){return g3.usageLogSearch}set usageLogSearch(e){g3.usageLogSearch=e}get usageLogHideCached(){return g3.usageLogHideCached}set usageLogHideCached(e){g3.usageLogHideCached=e}#c=j(`chart`);get modelUsageView(){return R(this.#c)}set modelUsageView(e){M(this.#c,e,!0)}#l=j(`chart`);get userPathUsageView(){return R(this.#l)}set userPathUsageView(e){M(this.#l,e,!0)}#u=j(`chart`);get labelUsageView(){return R(this.#u)}set labelUsageView(e){M(this.#u,e,!0)}#d=j(`table`);get sessionUsageView(){return R(this.#d)}set sessionUsageView(e){M(this.#d,e,!0)}#f=j(!1);get summaryLoading(){return R(this.#f)}set summaryLoading(e){M(this.#f,e,!0)}#p=j(!1);get modelUsageLoading(){return R(this.#p)}set modelUsageLoading(e){M(this.#p,e,!0)}#m=j(!1);get userPathUsageLoading(){return R(this.#m)}set userPathUsageLoading(e){M(this.#m,e,!0)}#h=j(!1);get labelUsageLoading(){return R(this.#h)}set labelUsageLoading(e){M(this.#h,e,!0)}#g=j(!1);get sessionUsageLoading(){return R(this.#g)}set sessionUsageLoading(e){M(this.#g,e,!0)}#_=j(!1);get usageLogLoading(){return R(this.#_)}set usageLogLoading(e){M(this.#_,e,!0)}#v={};#y(e){this.#v[e]&&this.#v[e].abort();let t=new AbortController;return this.#v[e]=t,t}#b(e,t){this.#v[e]===t&&(this.#v[e]=null)}filterQueryStr(e){return bFe({model:this.usageFilterModel,provider:this.usageFilterProvider,label:this.usageFilterLabel,user_path:this.usageFilterUserPath,session_id:this.usageFilterSession},e)}onUsageFilterChanged(){this.fetchUsagePage()}toggleUsageLabelFilter(e){this.usageFilterLabel=this.usageFilterLabel===e?``:e,this.onUsageFilterChanged()}filterBySession(e,t=``){if(this.usageFilterModel=``,this.usageFilterProvider=``,this.usageFilterLabel=``,this.usageFilterUserPath=String(t||``).trim(),this.usageFilterSession=String(e||``).trim(),this.usageLogSearch=``,this.usageLog.offset=0,this.sessionUsage.offset=0,CX.page===`usage`){this.fetchUsagePage();return}CX.navigate(`usage`)}usageLabelChipTitle(e){return this.usageFilterLabel===e?Cae():Eae({label:e})}toggleUsageMode(e){this.usageMode=e,CX.navigate(`usage`,e===`costs`?`costs`:null)}toggleUsageChartView(e,t){e===`model`&&(this.modelUsageView=t),e===`userPath`&&(this.userPathUsageView=t),e===`label`&&(this.labelUsageView=t),e===`session`&&(this.sessionUsageView=t)}usageFilterModelOptions(){return S3(this.usageFacetOptions.models,this.usageFilterModel)}usageFilterProviderOptions(){return S3(this.usageFacetOptions.providers,this.usageFilterProvider)}usageFilterLabelOptions(){return S3(this.usageFacetOptions.labels,this.usageFilterLabel)}async fetchUsagePage(){await XX.ensureLoaded();let e=[this.fetchUsagePageSummary(),this.fetchUsageFacetOptions(),this.fetchModelUsage(),this.fetchUserPathUsage(),this.fetchLabelUsage(),this.fetchSessionUsage(!0),this.fetchUsageLog(!0)];NZ.cacheAnalyticsEnabled()&&e.push(NZ.fetchCacheOverview(this.filterQueryStr())),await Promise.all(e)}async fetchUsagePageSummary(){let e=this.#y(`summary`);this.summaryLoading=!0;try{let t=OZ.queryStr()+this.filterQueryStr(),[n,r]=await Promise.all([qX(`/admin/usage/summary?`+t+`&cache_mode=uncached`,{label:`usage page summary`,signal:e.signal}),qX(`/admin/usage/summary?`+t+`&cache_mode=all`,{label:`usage page summary (all)`,signal:e.signal})]);if(n.stale||r.stale||e.signal.aborted)return;if(!n.ok||!r.ok){this.usageSummary=v3(),this.usageSummaryAll=v3();return}this.usageSummary=n.data&&typeof n.data==`object`?n.data:v3(),this.usageSummaryAll=r.data&&typeof r.data==`object`?r.data:v3()}catch(e){if(YX(e))return;console.error(`Failed to fetch usage page summary:`,e),this.usageSummary=v3(),this.usageSummaryAll=v3()}finally{this.#b(`summary`,e),this.#v.summary===null&&(this.summaryLoading=!1)}}async fetchUsageFacetOptions(){let e=this.#y(`facets`);try{let t=async(t,n)=>{let r=await qX(t+`?`+OZ.queryStr()+this.filterQueryStr(n),{label:`usage facet options`,signal:e.signal});return r.stale?null:r.ok&&Array.isArray(r.data)?r.data:[]},n=t(`/admin/usage/models`,`model`),r=!this.usageFilterModel&&!this.usageFilterProvider,[i,a,o]=await Promise.all([n,r?n:t(`/admin/usage/models`,`provider`),t(`/admin/usage/labels`,`label`)]);if(e.signal.aborted||i===null||a===null||o===null)return;this.usageFacetOptions={models:i.map(e=>e&&e.model).filter(Boolean),providers:a.map(e=>_Z(e)).filter(Boolean),labels:o.map(e=>e&&e.label).filter(Boolean)}}catch(e){if(YX(e))return;console.error(`Failed to fetch usage facet options:`,e),this.usageFacetOptions={models:[],providers:[],labels:[]}}finally{this.#b(`facets`,e)}}async#x(e,t,n,r,i){let a=this.#y(e);i(!0);try{let e=await qX(t+`?`+OZ.queryStr()+this.filterQueryStr(),{label:n,signal:a.signal});if(e.stale||a.signal.aborted)return;if(!e.ok){r([]);return}r(Array.isArray(e.data)?e.data:[])}catch(e){if(YX(e))return;console.error(`Failed to fetch `+n+`:`,e),r([])}finally{this.#b(e,a),this.#v[e]===null&&i(!1)}}fetchModelUsage(){return this.#x(`modelUsage`,`/admin/usage/models`,`usage models`,e=>this.modelUsage=e,e=>this.modelUsageLoading=e)}fetchUserPathUsage(){return this.#x(`userPathUsage`,`/admin/usage/user-paths`,`usage user paths`,e=>this.userPathUsage=e,e=>this.userPathUsageLoading=e)}fetchLabelUsage(){return this.#x(`labelUsage`,`/admin/usage/labels`,`usage labels`,e=>this.labelUsage=e,e=>this.labelUsageLoading=e)}async fetchSessionUsage(e){let t=this.#y(`sessionUsage`);this.sessionUsageLoading=!0;try{e&&(this.sessionUsage.offset=0);let n=OZ.queryStr()+this.filterQueryStr();n+=SFe(this.sessionUsage);let r=await qX(`/admin/usage/sessions?`+n,{label:`usage sessions`,signal:t.signal});if(r.stale||t.signal.aborted)return;if(!r.ok||!r.data||typeof r.data!=`object`){this.sessionUsage=b3();return}let i=r.data;i.entries=Array.isArray(i.entries)?i.entries:[],this.sessionUsage=i}catch(e){if(YX(e))return;console.error(`Failed to fetch usage sessions:`,e),this.sessionUsage=b3()}finally{this.#b(`sessionUsage`,t),this.#v.sessionUsage===null&&(this.sessionUsageLoading=!1)}}sessionUsageNextPage(){this.sessionUsage.offset+this.sessionUsage.limit>=this.sessionUsage.total||(this.sessionUsage.offset+=this.sessionUsage.limit,this.fetchSessionUsage(!1))}sessionUsagePrevPage(){this.sessionUsage.offset<=0||(this.sessionUsage.offset=Math.max(0,this.sessionUsage.offset-this.sessionUsage.limit),this.fetchSessionUsage(!1))}async fetchUsageLog(e){let t=this.#y(`usageLog`);this.usageLogLoading=!0;try{e&&(this.usageLog.offset=0);let n=OZ.queryStr()+this.filterQueryStr();n+=xFe({limit:this.usageLog.limit,offset:this.usageLog.offset,hideCached:this.usageLogHideCached,search:this.usageLogSearch});let r=await qX(`/admin/usage/log?`+n,{label:`usage log`,signal:t.signal});if(r.stale||t.signal.aborted)return;if(!r.ok){this.usageLog=y3();return}let i=r.data&&typeof r.data==`object`?r.data:y3();i.entries||=[],this.usageLog=i}catch(e){if(YX(e))return;console.error(`Failed to fetch usage log:`,e),this.usageLog=y3()}finally{this.#b(`usageLog`,t),this.#v.usageLog===null&&(this.usageLogLoading=!1)}}usageLogNextPage(){this.usageLog.offset+this.usageLog.limit0&&(this.usageLog.offset=Math.max(0,this.usageLog.offset-this.usageLog.limit),this.fetchUsageLog(!1))}};g3.fetchUsage=()=>{CX.page===`usage`&&X.fetchUsagePage()};var BFe=B(`
                        `);function z3(e,t){O(t,!0);let n=zi(t,`value`,15,``),r=zi(t,`placeholder`,3,``),i=zi(t,`label`,3,``),a=zi(t,`id`,3,void 0),o=zi(t,`oninput`,3,void 0),s=zi(t,`class`,3,``);var c=BFe(),l=P(c);q(l,{get icon(){return KTe},class:`filter-input-icon`});var u=I(l,2);wi(u),D(c),L(()=>{G(c,1,li([`filter-input-wrap`,s()]),`svelte-30xz1k`),K(u,`id`,a()),K(u,`placeholder`,r()),K(u,`aria-label`,i())}),z(`input`,u,function(...e){o()?.apply(this,e)}),ji(u,n),V(e,c),k()}xr([`input`]);function B3(e,t=300){let n=null,r=(...r)=>{clearTimeout(n),n=setTimeout(()=>{n=null,e(...r)},t)};return r.cancel=()=>{clearTimeout(n),n=null},r}var V3=B(``),VFe=B(``),HFe=B(``),UFe=B(`
                        `);function WFe(e,t){O(t,!0);let n=B3(()=>X.onUsageFilterChanged()),r=B3(()=>X.onUsageFilterChanged());mn(()=>()=>{n.cancel(),r.cancel()});var i=UFe(),a=P(i),o=P(a),s=P(o,!0);D(o),o.value=o.__value=``,W(I(o),16,()=>X.usageFilterModelOptions(),e=>e,(e,t,n,r)=>{var i=V3(),a=P(i,!0);D(i);var o={};L(()=>{H(a,t),o!==(o=t)&&(i.value=(i.__value=t)??``)}),V(e,i)}),D(a);var c=I(a,2),l=P(c),u=P(l,!0);D(l),l.value=l.__value=``,W(I(l),16,()=>X.usageFilterProviderOptions(),e=>e,(e,t)=>{var n=V3(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(c);var d=I(c,2),f=e=>{var t=VFe(),n=P(t),r=P(n,!0);D(n),n.value=n.__value=``,W(I(n),16,()=>X.usageFilterLabelOptions(),e=>e,(e,t)=>{var n=V3(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(t),L((e,n)=>{K(t,`aria-label`,e),H(r,n)},[()=>hte(),()=>Hte()]),z(`change`,t,()=>X.onUsageFilterChanged()),_i(t,()=>X.usageFilterLabel,e=>X.usageFilterLabel=e),V(e,t)},p=A(()=>X.usageFilterLabelOptions().length>0);U(d,e=>{R(p)&&e(f)});var m=I(d,2);{let e=A(()=>xte()),t=A(()=>vte());z3(m,{class:`usage-page-filters-user-path`,get placeholder(){return R(e)},get label(){return R(t)},get oninput(){return n},get value(){return X.usageFilterUserPath},set value(e){X.usageFilterUserPath=e}})}var h=I(m,2);{let e=A(()=>Dte()),t=A(()=>wte());z3(h,{class:`usage-page-filters-session`,get placeholder(){return R(e)},get label(){return R(t)},get oninput(){return r},get value(){return X.usageFilterSession},set value(e){X.usageFilterSession=e}})}var g=I(h,2),_=e=>{var t=HFe(),n=P(t);D(t),L((e,r)=>{K(t,`title`,e),H(n,`${r??``} ×`)},[()=>Ate({session:X.usageFilterSession}),()=>Nte({session:x3(X.usageFilterSession)})]),z(`click`,t,()=>{X.usageFilterSession=``,X.onUsageFilterChanged()}),V(e,t)};U(g,e=>{X.usageFilterSession&&e(_)}),D(i),L((e,t,n,r,o)=>{K(i,`aria-label`,e),K(a,`aria-label`,t),H(s,n),K(c,`aria-label`,r),H(u,o)},[()=>ote(),()=>lte(),()=>Ite(),()=>fte(),()=>zte()]),z(`change`,a,()=>X.onUsageFilterChanged()),_i(a,()=>X.usageFilterModel,e=>X.usageFilterModel=e),z(`change`,c,()=>X.onUsageFilterChanged()),_i(c,()=>X.usageFilterProvider,e=>X.usageFilterProvider=e),V(e,i),k()}xr([`change`,`click`]);var GFe=B(`
                        `,1);function KFe(e,t){O(t,!0);var n=Or(),r=F(n),i=e=>{var t=GFe(),n=F(t),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a),D(n);var s=I(n,2),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u),D(s),L((e,t,n,r)=>{H(i,e),H(o,t),H(l,n),H(d,r)},[()=>Gte(),()=>uZ(NZ.cacheOverview.summary.total_saved_cost),()=>Yo(),()=>lZ(NZ.cacheOverview.summary.total_hits)]),V(e,t)},a=A(()=>NZ.cacheAnalyticsEnabled());U(r,e=>{R(a)&&e(i)}),V(e,n),k()}var qFe=B(` `),JFe=B(`
                        `),YFe=B(`
                        `);function XFe(e,t){O(t,!0);let n=A(()=>DFe(X.usageSummary)),r=A(()=>kFe(X.usageSummary,X.usageMode)),i=A(()=>T3(X.usageSummary,X.usageMode));var a=YFe(),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=P(l),d=e=>{{let t=A(()=>yo());r3(e,{size:18,get label(){return R(t)}})}},f=e=>{var t=Dr();L(e=>H(t,e),[()=>lZ(wFe(X.usageSummary,X.usageSummaryAll,X.usageLogHideCached))]),V(e,t)};U(u,e=>{X.summaryLoading?e(d):e(f,-1)}),D(l),D(o);var p=I(o,2),m=P(p),h=P(m,!0);D(m);var g=I(m,2),_=P(g),v=e=>{{let t=A(()=>yo());r3(e,{size:18,get label(){return R(t)}})}},y=e=>{var t=Dr();L(e=>H(t,e),[()=>uZ(X.usageSummary.total_cost)]),V(e,t)};U(_,e=>{X.summaryLoading?e(v):e(y,-1)}),D(g),D(p);var b=I(p,2),x=e=>{var t=JFe(),n=P(t),a=P(n,!0);D(n);var o=I(n,2),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=e=>{var t=qFe(),n=P(t,!0);D(t),L(()=>H(n,R(i))),V(e,t)};U(l,e=>{R(i)&&e(u)}),D(o),D(t),L((e,t)=>{H(a,e),K(o,`title`,t),H(c,R(r))},[()=>Jte(),()=>jFe(X.usageSummary,X.usageMode)]),V(e,t)};U(b,e=>{R(n)&&e(x)}),KFe(I(b,2),{}),D(a),L((e,t,n,r)=>{H(c,e),K(l,`title`,t),H(h,n),K(g,`title`,r)},[()=>Jo(),()=>TFe(X.usageSummary,X.usageSummaryAll,X.usageLogHideCached),()=>Xo(),()=>EFe(X.usageSummary)]),V(e,a),k()}var ZFe=B(``);function H3(e,t){O(t,!0);let n=zi(t,`total`,3,0),r=zi(t,`offset`,3,0),i=zi(t,`limit`,3,25);var a=Or(),o=F(a),s=e=>{var a=ZFe(),o=P(a),s=P(o,!0);D(o);var c=I(o,2),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d),D(c),D(a),L((e,t,a)=>{H(s,e),l.disabled=r()===0,H(u,t),d.disabled=r()+i()>=n(),H(f,a)},[()=>cR({start:wZ(r()+1),end:wZ(Math.min(r()+i(),n())),total:wZ(n())}),()=>ja(),()=>Oa()]),z(`click`,l,()=>t.onprev?.()),z(`click`,d,()=>t.onnext?.()),V(e,a)};U(o,e=>{n()>0&&e(s)}),V(e,a),k()}xr([`click`]);function QFe(e){let t=String(e??``),n=typeof navigator<`u`?navigator.clipboard:null;if(n&&typeof n.writeText==`function`)return n.writeText(t);let r=typeof document<`u`?document:null;if(!r||!r.body||typeof r.execCommand!=`function`)return Promise.reject(Error(`Clipboard API unavailable`));let i=r.createElement(`textarea`);i.value=t,i.setAttribute(`readonly`,``),i.style.position=`fixed`,i.style.top=`0`,i.style.left=`0`,i.style.opacity=`0`;try{if(r.body.appendChild(i),i.focus(),i.select(),i.setSelectionRange(0,i.value.length),!r.execCommand(`copy`))throw Error(`execCommand copy returned false`)}finally{i.parentNode&&i.parentNode.removeChild(i)}return Promise.resolve()}function U3({resetDelayMs:e=2e3,logPrefix:t}={}){let n=N({copied:!1,error:!1}),r=null;function i(){r!==null&&clearTimeout(r),r=null}function a(){i(),r=setTimeout(()=>{n.copied=!1,n.error=!1,r=null},e)}return{get copied(){return n.copied},get error(){return n.error},reset(){i(),n.copied=!1,n.error=!1},async copy(e,r){if(!(e==null||e===``)){i(),n.copied=!1,n.error=!1;try{await QFe(typeof r==`function`?r(e):String(e)),n.copied=!0,n.error=!1}catch(e){console.error(t||`Failed to copy text:`,e),n.copied=!1,n.error=!0}a()}}}}var $Fe=B(` `);function W3(e,t){O(t,!0);let n=zi(t,`active`,3,!1),r=zi(t,`onfilter`,3,null),i=zi(t,`compact`,3,!1),a=U3({logPrefix:`Failed to copy session ID:`});mn(()=>{t.sessionID,a.reset()});var o=$Fe();let s;var c=P(o),l=P(c,!0);D(c);var u=I(c,2);let d;var f=P(u);{let e=A(()=>a.copied?$Y:tX);q(f,{get icon(){return R(e)}})}D(u),D(o),L((e,t,r,f)=>{s=G(o,1,`session-id-chip svelte-1pkjhcn`,null,s,{active:n(),compact:i()}),K(c,`title`,e),H(l,t),d=G(u,1,`session-id-copy svelte-1pkjhcn`,null,d,{copied:a.copied}),K(u,`title`,r),K(u,`aria-label`,f)},[()=>Die({session:t.sessionID}),()=>x3(t.sessionID),()=>a.error?zie():a.copied?Iie():Aie(),()=>Nie({session:t.sessionID})]),z(`click`,c,()=>r()?.(t.sessionID)),z(`click`,u,()=>a.copy(t.sessionID)),V(e,o),k()}xr([`click`]);function eIe(e,t,n,r){let{stacked:i=!1,costs:a=!1,resolve:o=e=>e}=r||{},s=e=>a?`$`+Math.abs(e).toFixed(2):pZ(Math.abs(e)),c=e=>a?`$`+Math.abs(e).toFixed(4):Math.abs(e).toLocaleString(),l=e=>e.map(e=>i?Math.abs(e):-Math.abs(e)),u=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderColor:`transparent`,borderWidth:0,borderRadius:4,maxBarThickness:22}),d=e=>(e||[]).some(e=>Math.abs(e)>0),f=[u(a?Oo():To(),l(n.inputs),o(`var(--token-input)`)),u(a?ko():Eo(),n.outputs,o(`var(--token-output)`))];return d(n.prompts)&&f.push(u(a?Roe():Do(),l(n.prompts),o(`var(--token-prompt)`))),!a&&d(n.localIns)&&f.push(u(Voe(),l(n.localIns),o(`var(--token-local)`))),!a&&d(n.localOuts)&&f.push(u(Woe(),n.localOuts,o(`var(--token-local)`))),{type:`bar`,data:{labels:t,datasets:f},options:{indexAxis:`y`,responsive:!0,maintainAspectRatio:!1,animation:{duration:0},layout:{padding:{top:8}},scales:{x:{stacked:!0,beginAtZero:!0,grid:i?{color:e.grid}:{color:t=>t.tick&&t.tick.value===0?e.text:e.grid},border:{display:!1},ticks:{color:e.text,font:$2(),callback:e=>s(e)}},y:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:$2(),autoSkip:!1}}},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:e4(e,{label:e=>e.dataset.label+`: `+c(e.parsed.x),footer:e=>{let t=0;return e.forEach(e=>{t+=Math.abs(Number(e.parsed.x))||0}),Yl({total:c(t)})}})}}}}var tIe=B(`
                        `),nIe=B(`

                        `),rIe=B(`

                        `,1),iIe=B(`
                        `),aIe=B(` `,1),oIe=B(` `),sIe=B(` `,1),cIe=B(` `,1),lIe=B(` `,1),uIe=B(` `,1),dIe=B(` `),fIe=B(` `,1),pIe=B(` `,1),mIe=B(` `,1),hIe=B(` `),gIe=B(`
                        `),_Ie=B(`
                        `),vIe=B(`
                        `);function G3(e,t){O(t,!0);let n=e=>{var n=tIe(),r=P(n);let a;var o=I(r,2);let s;var l=I(o,2);let u;D(n),L((e,t,d,f,p,m)=>{K(n,`aria-label`,R(i).group),a=G(r,1,`chart-view-btn svelte-1kee4g8`,null,a,{active:R(c)===`chart`}),K(r,`aria-pressed`,R(c)===`chart`),K(r,`aria-label`,e),K(r,`title`,t),s=G(o,1,`chart-view-btn svelte-1kee4g8`,null,s,{active:R(c)===`stacked`}),K(o,`aria-pressed`,R(c)===`stacked`),K(o,`aria-label`,d),K(o,`title`,f),u=G(l,1,`chart-view-btn svelte-1kee4g8`,null,u,{active:R(c)===`table`}),K(l,`aria-pressed`,R(c)===`table`),K(l,`aria-label`,p),K(l,`title`,m)},[()=>qne({noun:R(i).noun}),()=>nre(),()=>Xne({noun:R(i).noun}),()=>are(),()=>$ne({noun:R(i).noun}),()=>cre()]),z(`click`,r,()=>X.toggleUsageChartView(t.kind,`chart`)),z(`click`,o,()=>X.toggleUsageChartView(t.kind,`stacked`)),z(`click`,l,()=>X.toggleUsageChartView(t.kind,`table`)),V(e,n)},r={model:{group:$te(),noun:dne(),tokensTitle:Cne(),costsTitle:Ene()},userPath:{group:nne(),noun:mne(),tokensTitle:kne(),costsTitle:Mne()},label:{group:ane(),noun:_ne(),tokensTitle:Fne(),costsTitle:Rne()},session:{group:cne(),noun:bne(),tokensTitle:Vne(),costsTitle:Wne()}},i=A(()=>r[t.kind]),a=A(()=>t.kind===`model`?e=>ZEe(e):t.kind===`userPath`?e=>e.user_path||`/`:t.kind===`label`?e=>e.label:e=>e.session_id);function o(e){return t.kind===`model`?(e.provider_name||e.provider||`-`)+`/`+e.model:t.kind===`userPath`?e.user_path||`/`:t.kind===`label`?e.label:JSON.stringify([e.session_id,e.user_path||`/`])}let s=A(()=>t.kind===`model`?X.modelUsage:t.kind===`userPath`?X.userPathUsage:t.kind===`label`?X.labelUsage:X.sessionUsage.entries),c=A(()=>t.kind===`model`?X.modelUsageView:t.kind===`userPath`?X.userPathUsageView:t.kind===`label`?X.labelUsageView:X.sessionUsageView),l=A(()=>t.kind===`model`?X.modelUsageLoading:t.kind===`userPath`?X.userPathUsageLoading:t.kind===`label`?X.labelUsageLoading:X.sessionUsageLoading),u=A(()=>X.usageMode===`costs`),d=A(()=>t.kind===`userPath`?LFe(R(s)):R(s).length>0),f=A(()=>R(u)?R(i).costsTitle:R(i).tokensTitle),p=A(()=>RFe(R(s),R(a),R(u))),m=A(()=>t.kind===`session`?R(s):L3(R(s),R(u)));function h(){return R3(R(c))?eIe(Q2(),R(p).labels,R(p),{stacked:R(c)===`stacked`,costs:R(u),resolve:t4}):null}let g=A(()=>t.kind+`-usage-help-copy`),_=A(()=>t.kind===`session`?Sre():gre());var v=Or(),y=F(v),b=e=>{var r=_Ie();let a;var s=P(r),u=P(s),d=e=>{{let n=e=>{var t=nIe(),n=P(t,!0);D(t),L(()=>H(n,R(f))),V(e,t)},r=e=>{var t=Or(),n=F(t),r=e=>{{let t=A(()=>bo({noun:R(i).noun}));r3(e,{size:14,get label(){return R(t)}})}};U(n,e=>{R(l)&&e(r)}),V(e,t)},a=A(()=>t.kind===`session`?yre():pre());s3(e,{get copyId(){return R(g)},get label(){return R(a)},get text(){return R(_)},title:n,extra:r,$$slots:{title:!0,extra:!0}})}},v=e=>{var t=rIe(),n=F(t),r=P(n,!0);D(n);var a=I(n,2),o=e=>{{let t=A(()=>bo({noun:R(i).noun}));r3(e,{size:14,get label(){return R(t)}})}};U(a,e=>{R(l)&&e(o)}),L(()=>H(r,R(f))),V(e,t)};U(u,e=>{t.kind===`label`||t.kind===`session`?e(d):e(v,-1)});var y=I(u,2);n(y),D(s);var b=I(s,2),x=e=>{var t=iIe();let n;Y2(P(t),{build:h}),D(t),L(e=>n=mi(t,``,n,e),[()=>({height:`${zFe(R(p).labels.length)??``}px`})]),V(e,t)},S=A(()=>R3(R(c))),C=e=>{var n=gIe(),r=P(n),i=P(r),a=P(i),s=P(a),c=e=>{var t=aIe(),n=F(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i,!0);D(i),L((e,t)=>{H(r,e),H(a,t)},[()=>xo(),()=>So()]),V(e,t)},l=e=>{var t=oIe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Co()]),V(e,t)},u=e=>{var t=sIe(),n=F(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i,!0);D(i),L((e,t)=>{H(r,e),H(a,t)},[()=>Lre(),()=>wo()]),V(e,t)},d=e=>{var t=cIe(),n=F(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),L((e,t,n)=>{H(r,e),H(a,t),H(s,n)},[()=>Pre(),()=>Co(),()=>wo()]),V(e,t)};U(s,e=>{t.kind===`model`?e(c):t.kind===`userPath`?e(l,1):t.kind===`label`?e(u,2):e(d,-1)});var f=I(s),p=P(f,!0);D(f);var h=I(f),g=P(h,!0);D(h);var _=I(h),v=e=>{var t=lIe(),n=F(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i,!0);D(i),L((e,t,o,s)=>{K(n,`title`,e),H(r,t),K(i,`title`,o),H(a,s)},[()=>oie(),()=>Do(),()=>lie(),()=>Jre()]),V(e,t)};U(_,e=>{t.kind!==`session`&&e(v)});var y=I(_),b=P(y,!0);D(y);var x=I(y),S=P(x,!0);D(x);var C=I(x),w=P(C,!0);D(C);var T=I(C),ee=P(T,!0);D(T),D(a),D(i);var E=I(i);W(E,21,()=>R(m),e=>o(e),(e,n)=>{var r=hIe(),i=P(r),a=e=>{var t=uIe(),r=F(t),i=P(r,!0);D(r);var a=I(r,2),o=P(a),s=P(o,!0);D(o),D(a),L(e=>{H(i,R(n).model||`-`),H(s,e)},[()=>_Z(R(n))||`-`]),V(e,t)},o=e=>{var t=dIe(),r=P(t,!0);D(t),L(()=>H(r,R(n).user_path||`/`)),V(e,t)},s=e=>{var t=fIe(),r=F(t),i=P(r);let a;var o=P(i,!0);D(i),D(r);var s=I(r,2),c=P(s,!0);D(s),L((e,t,r)=>{a=G(i,1,`usage-label-chip`,null,a,{active:X.usageFilterLabel===R(n).label}),mi(i,`--label-color: ${e??``}`),K(i,`title`,t),H(o,R(n).label),H(c,r)},[()=>r4(R(n).label),()=>X.usageLabelChipTitle(R(n).label),()=>lZ(R(n).requests)]),z(`click`,i,()=>X.toggleUsageLabelFilter(R(n).label)),V(e,t)},c=e=>{var t=pIe(),r=F(t),i=P(r);{let e=A(()=>X.usageFilterSession===R(n).session_id);W3(i,{get sessionID(){return R(n).session_id},get active(){return R(e)},onfilter:e=>X.filterBySession(e,R(n).user_path)})}D(r);var a=I(r,2),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),L(e=>{H(o,R(n).user_path||`/`),H(c,e)},[()=>lZ(R(n).requests)]),V(e,t)};U(i,e=>{t.kind===`model`?e(a):t.kind===`userPath`?e(o,1):t.kind===`label`?e(s,2):e(c,-1)});var l=I(i),u=P(l,!0);D(l);var d=I(l),f=P(d,!0);D(d);var p=I(d),m=e=>{var t=mIe(),r=F(t),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a),L((e,t,n,s)=>{K(r,`title`,e),H(i,t),K(a,`title`,n),H(o,s)},[()=>R(n).cached_input_cost==null?``:fie({cost:uZ(R(n).cached_input_cost)}),()=>lZ(R(n).cached_input_tokens||0),()=>hie({input:lZ(R(n).local_cached_input_tokens||0),output:lZ(R(n).local_cached_output_tokens||0)}),()=>lZ((R(n).local_cached_input_tokens||0)+(R(n).local_cached_output_tokens||0))]),V(e,t)};U(p,e=>{t.kind!==`session`&&e(m)});var h=I(p),g=P(h,!0);D(h);var _=I(h),v=P(_,!0);D(_);var y=I(_),b=P(y,!0);D(y);var x=I(y),S=P(x,!0);D(x),D(r),L((e,t,n,r,i,a)=>{H(u,e),H(f,t),H(g,n),H(v,r),H(b,i),H(S,a)},[()=>lZ(R(n).input_tokens),()=>lZ(R(n).output_tokens),()=>lZ(F3(R(n))),()=>uZ(R(n).input_cost),()=>uZ(R(n).output_cost),()=>uZ(R(n).total_cost)]),V(e,r)}),D(E),D(r),D(n),L((e,t,n,r,i,a)=>{H(p,e),H(g,t),H(b,n),H(S,r),H(w,i),H(ee,a)},[()=>To(),()=>Eo(),()=>Zre(),()=>Oo(),()=>ko(),()=>Ao()]),V(e,n)};U(b,e=>{R(S)?e(x):e(C,-1)});var w=I(b,2),T=e=>{H3(e,{get total(){return X.sessionUsage.total},get offset(){return X.sessionUsage.offset},get limit(){return X.sessionUsage.limit},onprev:()=>X.sessionUsagePrevPage(),onnext:()=>X.sessionUsageNextPage()})};U(w,e=>{t.kind===`session`&&e(T)}),D(r),L(()=>a=G(r,1,`model-chart-section`,null,a,{"session-usage-breakdown":t.kind===`session`})),V(e,r)},x=e=>{var t=vIe(),n=P(t);{let e=A(()=>bo({noun:R(i).noun}));r3(n,{size:20,get label(){return R(e)}})}D(t),V(e,t)};U(y,e=>{R(d)?e(b):R(l)&&e(x,1)}),V(e,v),k()}xr([`click`]);var yIe=(e,t=f)=>{var n=Or(),r=F(n),i=e=>{var n=xIe();W(n,20,()=>P3(t()),e=>e,(e,t)=>{var n=bIe();let r;var i=P(n,!0);D(n),L((e,a)=>{r=G(n,1,`usage-label-chip`,null,r,{active:X.usageFilterLabel===t}),mi(n,`--label-color: ${e??``}`),K(n,`title`,a),H(i,t)},[()=>r4(t),()=>X.usageLabelChipTitle(t)]),z(`click`,n,()=>X.toggleUsageLabelFilter(t)),V(e,n)}),D(n),V(e,n)},a=A(()=>P3(t()).length>0),o=e=>{V(e,K3())};U(r,e=>{R(a)?e(i):e(o,-1)}),V(e,n)},bIe=B(``),xIe=B(`
                        `),K3=B(`-`),SIe=B(` `),CIe=B(` `),wIe=B(``),TIe=B(` `),q3=B(``),EIe=B(` `),DIe=B(` `),OIe=B(`
                        `),kIe=B(`
                        `),AIe=B(`
                        `),jIe=B(`

                        `);function MIe(e,t){O(t,!0);let n=A(()=>X.usageMode===`costs`),r=A(()=>IFe(X.labelUsage,X.usageFilterLabel,X.usageLog.entries)),i=B3(()=>X.fetchUsageLog(!0));mn(()=>i.cancel);var a=jIe(),o=P(a),s=P(o,!0);D(o);var c=I(o,2),l=P(c),u=P(l);{let e=A(()=>xie()),t=A(()=>wie());z3(u,{get placeholder(){return R(e)},get label(){return R(t)},get oninput(){return i},get value(){return X.usageLogSearch},set value(e){X.usageLogSearch=e}})}D(l);var d=I(l,2),f=P(d),p=P(f);wi(p);var m=I(p,2),h=P(m,!0);D(m),D(f),D(d),D(c);var g=I(c,2),_=e=>{var t=OIe(),i=P(t),a=P(i),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s),u=P(l,!0);D(l);var d=I(l),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=P(h,!0);D(h);var _=I(h),v=e=>{var t=SIe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Jie()]),V(e,t)};U(_,e=>{R(r)&&e(v)});var y=I(_),b=P(y,!0);D(y);var x=I(y),S=P(x,!0);D(x);var C=I(x),w=P(C,!0);D(C);var T=I(C),ee=P(T,!0);D(T);var E=I(T),te=P(E,!0);D(E);var ne=I(E),re=e=>{var t=CIe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>hae()]),V(e,t)};U(ne,e=>{R(n)||e(re)}),D(o),D(a);var ie=I(a);W(ie,21,()=>X.usageLog.entries,e=>e.id,(e,t)=>{var i=DIe();let a;var o=P(i),s=P(o,!0);D(o);var c=I(o),l=P(c),u=P(l,!0);D(l),D(c);var d=I(c),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=P(h),_=e=>{{let n=A(()=>X.usageFilterSession===R(t).session_id);W3(e,{get sessionID(){return R(t).session_id},get active(){return R(n)},compact:!0,onfilter:e=>X.filterBySession(e,R(t).user_path)})}},v=e=>{V(e,K3())};U(g,e=>{R(t).session_id?e(_):e(v,-1)}),D(h);var y=I(h),b=e=>{var n=wIe();yIe(P(n),()=>R(t)),D(n),V(e,n)};U(y,e=>{R(r)&&e(b)});var x=I(y),S=P(x,!0);D(x);var C=I(x),w=P(C),T=e=>{var n=TIe(),r=P(n,!0);D(n),L(e=>H(r,e),[()=>PFe(R(t))]),V(e,n)},ee=A(()=>M3(R(t))),E=e=>{V(e,K3())};U(w,e=>{R(ee)?e(T):e(E,-1)}),D(C);var te=I(C),ne=P(te,!0);D(te);var re=I(te),ie=P(re,!0);D(re);var ae=I(re),oe=P(ae),se=P(oe,!0);D(oe);var ce=I(oe,2),le=e=>{{let n=A(()=>O3(R(t)));q(e,{get icon(){return eX},class:`cost-source-icon`,get title(){return R(n)}})}},ue=A(()=>R(n)&&D3(R(t)));U(ce,e=>{R(ue)&&e(le)});var de=I(ce,2),fe=e=>{q(e,{get icon(){return nX},class:`cache-savings-icon`})},pe=A(()=>R(n)&&A3(R(t)));U(de,e=>{R(pe)&&e(fe)});var me=I(de,2),he=e=>{var n=q3();L(()=>K(n,`title`,R(t).costs_calculation_caveat)),V(e,n)};U(me,e=>{R(n)&&R(t).costs_calculation_caveat&&e(he)}),D(ae);var ge=I(ae),_e=e=>{var n=EIe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=e=>{{let n=A(()=>O3(R(t)));q(e,{get icon(){return eX},class:`cost-source-icon`,get title(){return R(n)}})}},s=A(()=>D3(R(t)));U(a,e=>{R(s)&&e(o)});var c=I(a,2),l=e=>{q(e,{get icon(){return nX},class:`cache-savings-icon`})},u=A(()=>A3(R(t)));U(c,e=>{R(u)&&e(l)});var d=I(c,2),f=e=>{var n=q3();L(()=>K(n,`title`,R(t).costs_calculation_caveat)),V(e,n)};U(d,e=>{R(t).costs_calculation_caveat&&e(f)}),D(n),L((e,t)=>{K(n,`title`,e),H(i,t)},[()=>j3(R(t),N3(R(t))),()=>uZ(R(t).total_cost)]),V(e,n)};U(ge,e=>{R(n)||e(_e)}),D(i),L((e,n,r,c,l,d,p,h,g,_,v,y,b)=>{a=G(i,1,`svelte-hg4ill`,null,a,e),K(o,`title`,n),H(s,r),H(u,c),H(f,R(t).model),H(m,R(t).user_path||`-`),H(S,l),K(C,`title`,d),K(te,`title`,p),H(ne,h),K(re,`title`,g),H(ie,_),K(ae,`title`,v),K(oe,`title`,y),H(se,b)},[()=>({"usage-log-row-cached":A3(R(t))}),()=>gZ(R(t).timestamp),()=>HX.formatTimestamp(R(t).timestamp),()=>_Z(R(t))||`-`,()=>MFe(R(t)),()=>FFe(R(t)),()=>R(n)?jo({count:lZ(R(t).input_tokens)}):``,()=>R(n)?uZ(R(t).input_cost):lZ(R(t).input_tokens),()=>R(n)?jo({count:lZ(R(t).output_tokens)}):``,()=>R(n)?uZ(R(t).output_cost):lZ(R(t).output_tokens),()=>R(n)?j3(R(t),``):``,()=>R(n)?j3(R(t),jo({count:lZ(R(t).total_tokens)})+` -`+N3(R(t))):``,()=>R(n)?uZ(R(t).total_cost):lZ(R(t).total_tokens)]),V(e,i)}),D(ie),D(i),D(t),L((e,t,n,r,i,a,o,s,l,d,p)=>{H(c,e),H(u,t),H(f,n),H(m,r),H(g,i),H(b,a),K(x,`title`,o),H(S,s),H(w,l),H(ee,d),H(te,p)},[()=>Gie(),()=>So(),()=>xo(),()=>Co(),()=>jre(),()=>Zie(),()=>rae(),()=>eae(),()=>R(n)?Oo():oae(),()=>R(n)?ko():lae(),()=>R(n)?Ao():fae()]),V(e,t)},v=e=>{var t=kIe(),n=P(t);{let e=A(()=>bae());r3(n,{size:20,get label(){return R(e)}})}D(t),V(e,t)},y=e=>{var t=AIe();i3(P(t),{}),D(t),V(e,t)};U(g,e=>{X.usageLog.entries.length>0?e(_):X.usageLogLoading?e(v,1):e(y,-1)}),H3(I(g,2),{get total(){return X.usageLog.total},get offset(){return X.usageLog.offset},get limit(){return X.usageLog.limit},onprev:()=>X.usageLogPrevPage(),onnext:()=>X.usageLogNextPage()}),D(a),L((e,t)=>{H(s,e),H(h,t)},[()=>vie(),()=>Hie()]),z(`change`,p,()=>X.fetchUsageLog(!0)),Mi(p,()=>X.usageLogHideCached,e=>X.usageLogHideCached=e),V(e,a),k()}xr([`click`,`change`]);var NIe=B(`
                        `);function PIe(e,t){O(t,!0);let n=`usage`;mn(()=>{Y.refreshTick,CX.page===n&&(X.fetchUsagePage(),g3.ensureLiveLogs())}),mn(()=>{CX.page===n&&(X.usageMode=CX.sub===`costs`?`costs`:`tokens`)});var r=NIe(),i=P(r),a=P(i),o=P(a,!0);D(a),D(i);var s=I(i,2),c=P(s);{let e=A(()=>rte()),t=A(()=>[{value:`tokens`,label:Go()},{value:`costs`,label:Kc()}]);X2(c,{get ariaLabel(){return R(e)},get options(){return R(t)},get value(){return X.usageMode},onchange:e=>X.toggleUsageMode(e)})}FZ(I(c,2),{onchange:()=>X.fetchUsagePage()}),D(s);var l=I(s,2);WFe(l,{});var u=I(l,2);XFe(u,{});var d=I(u,2),f=P(d);G3(f,{kind:`model`});var p=I(f,2);G3(p,{kind:`userPath`}),G3(I(p,2),{kind:`label`}),D(d);var m=I(d,2);G3(P(m),{kind:`session`}),D(m),MIe(I(m,2),{}),D(r),L(e=>H(o,e),[()=>ete()]),V(e,r),k()}var FIe=B(`
                        `);function J3(e,t){let n=zi(t,`label`,3,`Loading...`),r=zi(t,`class`,3,``);var i=FIe(),a=I(P(i),2),o=P(a,!0);D(a),D(i),L(()=>{G(i,1,li([`loading-state`,r()]),`svelte-hzxv1d`),H(o,n())}),V(e,i)}var IIe=B(``);function Y3(e,t){let n=zi(t,`label`,3,``),r=zi(t,`class`,3,``),i=zi(t,`disabled`,3,!1);var a=IIe();Kr(P(a),()=>t.children??f),D(a),L(()=>{G(a,1,li([`table-action-btn`,r()])),K(a,`aria-label`,n()),K(a,`title`,n()),a.disabled=i()}),z(`click`,a,function(...e){t.onclick?.apply(this,e)}),V(e,a)}xr([`click`]);async function X3(e,{label:t,errorFallback:n=`Unable to load ${t}.`,unavailableStatuses:r=[503],normalize:i=e=>Array.isArray(e)?e:[],options:a}){let o;try{o=await qX(e,{...a||{},label:t})}catch(e){return YX(e)||console.error(`Failed to fetch ${t}:`,e),{status:`error`,items:[],error:n,result:null}}return o.stale?{status:`stale`,items:[],error:``,result:o}:r.includes(o.status)?{status:`unavailable`,items:[],error:``,result:o}:o.ok?{status:`ok`,items:i(o.data),error:``,result:o}:{status:`error`,items:[],error:o.status===401?``:UX(o.data,n),result:o}}async function Z3(e,t,n,{label:r,errorFallback:i=`Unable to ${r}.`,unavailableStatuses:a=[503],unavailableMessage:o=`This feature is unavailable on the gateway.`,options:s}){let c;try{c=await JX(e,t,n,{...s||{},label:r})}catch(e){return YX(e)||console.error(`Failed to ${r}:`,e),{status:`error`,error:i,result:null}}return c.stale?{status:`stale`,error:``,result:c}:a.includes(c.status)?{status:`unavailable`,error:o,result:c}:c.ok?{status:`ok`,error:``,result:c}:{status:`error`,error:c.status===401?`Authentication required.`:UX(c.data,i),result:c}}function Q3(){return{scope:`user_path`,subject:`/`,period:`daily`,period_seconds:86400,amount:``,source:`manual`}}function $3(e){let t={user_path:{label:$f(),chip:np(),fieldLabel:ap(),placeholder:`/team/alpha`},label:{label:cp(),chip:dp(),fieldLabel:cp(),placeholder:`Mobile-App-iOS`}};return t[e]||t.user_path}function LIe(){return[`user_path`,`label`].map(e=>({value:e,label:$3(e).label}))}function e6(e){return String(e&&e.scope||``).trim()||`user_path`}function t6(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function n6(e){return $3(e6(e)).chip}function RIe(e){return e6(e)===`label`?`budget-label`:`budget-user-path`}function zIe(e){return $3(String(e&&e.scope||``)).fieldLabel}function BIe(e){return $3(String(e&&e.scope||``)).placeholder}function VIe(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function HIe(){return[{value:`hourly`,label:mp()},{value:`daily`,label:_p()},{value:`weekly`,label:bp()},{value:`monthly`,label:Cp()},{value:`custom`,label:Ep()}]}function r6(e){switch(String(e||``).trim().toLowerCase()){case`hourly`:return 3600;case`daily`:return 86400;case`weekly`:return 604800;case`monthly`:return 2592e3;default:return 0}}function i6(e){switch(Number(e||0)){case 3600:return`hourly`;case 86400:return`daily`;case 604800:return`weekly`;case 2592e3:return`monthly`;default:return`custom`}}function a6(e){return e6(e)+`:`+t6(e)+`:`+String(e&&e.period_seconds||``)}function UIe(e,t){if(!t||!Array.isArray(e))return null;let n=a6(t);return e.find(e=>a6(e)===n)||null}function o6(e){let t=String(e||``).trim();if(!t)return kp();let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return Mp();if(t.includes(`:`))return Fp()}}return``}function WIe(e){if(o6(e))return``;let t=String(e||``).trim(),n=(t.startsWith(`/`)?t:`/`+t).split(`/`),r=[];for(let e of n){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function GIe(e){return`/`+String(e||``).trimStart().replace(/^\/+/,``)}function s6(e){return Array.isArray(e)?e:e&&Array.isArray(e.budgets)?e.budgets:[]}function KIe(e){let t=Number(e&&e.period_seconds||0);return[t6(e),n6(e),h6(e),i6(t),t?String(t)+`s`:``,t?String(t)+` seconds`:``].join(` `).toLowerCase()}var c6={user_path:0,label:1};function qIe(e,t){let n=Array.isArray(e)?e.slice():[],r=String(t||`subject`);return n.sort((e,t)=>{let n=(c6[e6(e)]||0)-(c6[e6(t)]||0),i=t6(e).localeCompare(t6(t)),a=Number(t&&t.period_seconds||0)-Number(e&&e.period_seconds||0);return r===`period`?a||n||i:n||i||a}),n}function JIe(e,t,n){let r=Array.isArray(e)?e:[],i=String(t||``).trim().toLowerCase();return qIe(i?r.filter(e=>KIe(e).includes(i)):r.slice(),n)}function YIe(e){let t=e||{},n=e6(t),r=String(t.subject||``).trim();if(n===`user_path`){let e=o6(r);if(e)return{payload:null,error:e}}else if(!r)return{payload:null,error:Rp()};let i=Number(t.amount);if(!Number.isFinite(i)||i<=0)return{payload:null,error:Vp()};let a=String(t.period||``).trim(),o=r6(a);return a===`custom`&&(o=Number(t.period_seconds)),!Number.isFinite(o)||o<=0?{payload:null,error:Wp()}:{payload:{scope:n,subject:n===`user_path`?WIe(r):r,period_seconds:Math.trunc(o),amount:i,source:String(t.source||`manual`).trim()||`manual`},error:``}}function XIe(e){return{scope:e6(e),subject:t6(e),budget_key:{period_seconds:e.period_seconds},amount:e.amount}}function ZIe(e){return{scope:e6(e),subject:t6(e),budget_key:{period_seconds:e.period_seconds}}}function QIe(e){return{scope:e6(e),subject:t6(e),period_seconds:e.period_seconds}}function l6(e){return uZ(e)}function $Ie(e,t){let n=e||{},r=t||{};return _h({label:(t6(n)||t6(r))+` `+h6({period_seconds:n.period_seconds||r.period_seconds,period_label:r.period_label}),current:l6(r.amount),next:l6(n.amount)})}function u6(e){let t=Number(e);return!Number.isFinite(t)||t<0?0:t}function d6(e,t){let n=u6(e);return Math.round((t?Math.min(n,1):n)*1e3)/10}function f6(e){return u6(e&&e.usage_ratio)}function p6(e){return d6(f6(e),!0)}function m6(e){return d6(e&&e.period_ratio,!0)}function eLe(e){return d6(f6(e),!1).toFixed(1).replace(/\.0$/,``)+`%`}function tLe(e){return m6(e).toFixed(1).replace(/\.0$/,``)+`%`}function h6(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return mp();case 86400:return _p();case 604800:return bp();case 2592e3:return Cp();default:return qp({period:String(e&&e.period_label||``).trim()||String(t||``)+`s`})}}function g6(e){switch(Number(e&&e.period_seconds||0)){case 3600:return`budget-period-label-hourly`;case 86400:return`budget-period-label-daily`;case 604800:return`budget-period-label-weekly`;case 2592e3:return`budget-period-label-monthly`;default:return`budget-period-label-custom`}}function nLe(e){return g6(e).replace(`budget-period-label-`,`budget-bar-fill-period-`)}function rLe(e){return g6(e).replace(`budget-period-label-`,`budget-bar-track-period-`)}function iLe(e){switch(Number(e&&e.period_seconds||0)){case 3600:return PTe;case 86400:return mX;case 604800:return DTe;case 2592e3:return OTe;default:return YTe}}function aLe(e){let t=Math.max(0,Math.trunc(Number(e||0)));return t===1?$p():Xp({count:t})}function _6(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return nm();case 86400:return am();case 604800:return cm();case 2592e3:return dm();default:return aLe(t)}}function v6(e){return String(e&&e.source||``).trim()||`manual`}function oLe(e){let t=v6(e).toLowerCase();return t===`manual`?mm():t===`config`?_m():bm({source:t})}function y6(e){let t=Number(e&&e.remaining);return Number.isFinite(t)?t<0?Em({amount:uZ(Math.abs(t))}):Cm({amount:uZ(t)}):``}var b6=new class{#e=j(N([]));get budgets(){return R(this.#e)}set budgets(e){M(this.#e,e,!0)}#t=j(!0);get budgetsAvailable(){return R(this.#t)}set budgetsAvailable(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get filter(){return R(this.#r)}set filter(e){M(this.#r,e,!0)}#i=j(`subject`);get sortBy(){return R(this.#i)}set sortBy(e){M(this.#i,e,!0)}#a=j(``);get error(){return R(this.#a)}set error(e){M(this.#a,e,!0)}#o=j(!1);get formOpen(){return R(this.#o)}set formOpen(e){M(this.#o,e,!0)}#s=j(!1);get formSubmitting(){return R(this.#s)}set formSubmitting(e){M(this.#s,e,!0)}#c=j(``);get formError(){return R(this.#c)}set formError(e){M(this.#c,e,!0)}#l=j(!1);get editing(){return R(this.#l)}set editing(e){M(this.#l,e,!0)}#u=j(N(Q3()));get form(){return R(this.#u)}set form(e){M(this.#u,e,!0)}#d=j(!1);get overrideDialogOpen(){return R(this.#d)}set overrideDialogOpen(e){M(this.#d,e,!0)}#f=j(null);get overridePendingPayload(){return R(this.#f)}set overridePendingPayload(e){M(this.#f,e,!0)}#p=j(null);get overrideExistingBudget(){return R(this.#p)}set overrideExistingBudget(e){M(this.#p,e,!0)}#m=j(``);get resettingKey(){return R(this.#m)}set resettingKey(e){M(this.#m,e,!0)}#h=j(``);get deletingKey(){return R(this.#h)}set deletingKey(e){M(this.#h,e,!0)}#g=j(!1);get resetAllLoading(){return R(this.#g)}set resetAllLoading(e){M(this.#g,e,!0)}#_=null;managementEnabled(){return XX.budgetsVisible()}filteredBudgets(){return JIe(this.budgets,this.filter,this.sortBy)}async fetchBudgetsPage(){if(await XX.ensureLoaded(),!this.managementEnabled()){this.budgets=[],this.budgetsAvailable=!1,this.error=``;return}return this.#_||=this.fetchBudgets().finally(()=>{this.#_=null}),this.#_}async fetchBudgets(){this.loading=!0,this.error=``;let e=await X3(`/admin/budgets`,{label:`budgets`,errorFallback:bh(),normalize:s6});if(this.loading=!1,e.status!==`stale`){if(e.status===`unavailable`){this.budgetsAvailable=!1,this.budgets=[];return}if(!e.result){this.budgets=[],this.error=e.error;return}if(this.budgetsAvailable=!0,e.status===`error`){this.error=e.error;return}this.budgets=e.items}}openForm(e){if(this.editing=!!e,this.formError=``,e){let t=Number(e.period_seconds||0);this.form={scope:e6(e),subject:t6(e),period:i6(t),period_seconds:t,amount:String(e.amount||``),source:String(e.source||`manual`)}}else this.form=Q3();this.formOpen=!0}syncPeriodSeconds(){let e=r6(String(this.form.period||``).trim());e>0&&(this.form.period_seconds=e)}setFormSubject(e){this.form.subject=this.form.scope===`label`?String(e??``):GIe(e)}syncScope(){VIe(this.form)}closeForm(){this.closeOverrideDialog(),this.formOpen=!1,this.formSubmitting=!1,this.formError=``,this.editing=!1,this.form=Q3()}async submitForm(){if(this.formSubmitting)return;let{payload:e,error:t}=YIe(this.form);if(!e){this.formError=t;return}if(!this.editing){let t=UIe(this.budgets,e);if(t){this.openOverrideDialog(t,e);return}}await this.saveBudgetPayload(e)}async saveBudgetPayload(e){if(this.formSubmitting||!e)return;this.formSubmitting=!0,this.formError=``;let t=await Z3(`/admin/budgets`,`PUT`,XIe(e),{label:`save budget`,errorFallback:Ch(),unavailableMessage:Bd()});if(this.formSubmitting=!1,t.status!==`stale`){if(t.status===`unavailable`){this.budgetsAvailable=!1,this.formError=t.error;return}if(t.status===`error`){this.formError=t.error;return}this.closeForm(),oZ.success(Eh()),this.fetchBudgets()}}openOverrideDialog(e,t){this.overrideExistingBudget=e||null,this.overridePendingPayload=t||null,this.overrideDialogOpen=!0}closeOverrideDialog(){this.overrideDialogOpen=!1,this.overridePendingPayload=null,this.overrideExistingBudget=null}async confirmOverride(){if(!this.overridePendingPayload){this.closeOverrideDialog();return}let e=this.overridePendingPayload;this.closeOverrideDialog(),await this.saveBudgetPayload(e)}async resetBudget(e){if(!e)return;let t=a6(e);if(this.resettingKey===t)return;let n=t6(e)+` `+h6(e);if(!confirm(kh({label:n})))return;this.resettingKey=t;let r=await Z3(`/admin/budgets/reset-one`,`POST`,QIe(e),{label:`reset budget`,errorFallback:Mh(),unavailableMessage:Bd()});if(this.resettingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,oZ.error(r.error);return}if(r.status===`error`){oZ.error(r.error);return}oZ.success(Fh()),this.fetchBudgets()}}async deleteBudget(e){if(!e)return;let t=a6(e);if(this.deletingKey===t)return;let n=t6(e)+` `+h6(e);if(!confirm(Rh({label:n})))return;this.deletingKey=t;let r=await Z3(`/admin/budgets`,`DELETE`,ZIe(e),{label:`delete budget`,errorFallback:Vh(),unavailableMessage:Bd()});if(this.deletingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,oZ.error(r.error);return}if(r.status===`error`){oZ.error(r.error);return}this.budgets=s6(r.result.data),oZ.success(Wh())}}openResetDialog(){eZ.open({title:qh(),titleId:`budgetResetDialogTitle`,inputId:`budget-reset-confirmation`,requiredText:`reset`,confirmLabel:Xh(),icon:dX,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.resetAllBudgets()})}async resetAllBudgets(){if(this.resetAllLoading)return;this.resetAllLoading=!0;let e=await Z3(`/admin/budgets/reset`,`POST`,{confirmation:`reset`},{label:`reset budgets`,errorFallback:$h(),unavailableStatuses:[]});if(this.resetAllLoading=!1,e.status!==`stale`){if(e.status!==`ok`){eZ.error=e.error;return}eZ.close(),oZ.success(ng()),CX.page===`budgets`&&this.fetchBudgets()}}},x6=B(` `,1),sLe=B(`
                        `),cLe=B(`
                        `);function lLe(e,t){O(t,!0);let n=zi(t,`budgets`,19,()=>[]);function r(e){if(!e)return``;let t=HX.formatTimestamp(e);return!t||t===`-`?``:t+` `+HX.effectiveTimeZoneLabel()}var i=cLe();W(i,21,n,e=>a6(e),(e,t)=>{var n=sLe(),i=P(n),a=P(i),o=P(a),s=P(o),c=e=>{q(e,{get icon(){return eEe},class:`budget-scope-icon`})},l=A(()=>e6(R(t))===`label`);U(s,e=>{R(l)&&e(c)});var u=I(s);D(o);var d=I(o,2),f=P(d),p=P(f);{let e=A(()=>iLe(R(t)));q(p,{get icon(){return R(e)},class:`budget-period-icon`})}var m=I(p,2),h=P(m,!0);D(m),D(f),D(d);var g=I(d,2),_=P(g),v=P(_),y=P(v,!0);D(v),D(_);var b=I(_,2),x=P(b);{let e=A(()=>Mm());Y3(x,{get label(){return R(e)},class:`budget-action-btn`,onclick:()=>b6.openForm(R(t)),children:(e,t)=>{var n=x6(),r=F(n);q(r,{get icon(){return cX},class:`budget-action-icon`});var i=I(r,2),a=P(i,!0);D(i),L(e=>H(a,e),[()=>km()]),V(e,n)},$$slots:{default:!0}})}var S=I(x,2);{let e=A(()=>b6.resettingKey===a6(R(t))?Wm():Vm()),n=A(()=>b6.resettingKey===a6(R(t)));Y3(S,{get label(){return R(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>b6.resetBudget(R(t)),get disabled(){return R(n)},children:(e,n)=>{var r=x6(),i=F(r);q(i,{get icon(){return dX},class:`budget-action-icon`});var a=I(i,2),o=P(a,!0);D(a),L(e=>H(o,e),[()=>b6.resettingKey===a6(R(t))?Rm():Fm()]),V(e,r)},$$slots:{default:!0}})}var C=I(S,2);{let e=A(()=>b6.deletingKey===a6(R(t))?nh():$m()),n=A(()=>b6.deletingKey===a6(R(t)));Y3(C,{get label(){return R(e)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>b6.deleteBudget(R(t)),get disabled(){return R(n)},children:(e,n)=>{var r=x6(),i=F(r);q(i,{get icon(){return gX},class:`budget-action-icon`});var a=I(i,2),o=P(a,!0);D(a),L(e=>H(o,e),[()=>b6.deletingKey===a6(R(t))?Xm():qm()]),V(e,r)},$$slots:{default:!0}})}D(b),D(g),D(a);var w=I(a,2),T=P(w),ee=P(T),E=P(ee),te=P(E,!0);D(E);var ne=I(E,2),re=P(ne,!0);D(ne),D(ee);var ie=I(ee,2),ae=P(ie);let oe;var se=I(ae,2),ce=P(se),le=P(ce,!0);D(ce);var ue=I(ce,2),de=P(ue,!0);D(ue),D(se);var fe=I(se,2),pe=P(fe),me=P(pe,!0);D(pe);var he=I(pe,2),ge=P(he,!0);D(he),D(fe),D(ie),D(T);var _e=I(T,2),ve=P(_e),ye=P(ve),be=P(ye,!0);D(ye);var xe=I(ye,2),Se=P(xe,!0);D(xe),D(ve);var Ce=I(ve,2),we=P(Ce),Te=I(we,2),Ee=P(Te),De=P(Ee,!0);D(Ee);var Oe=I(Ee,2),ke=P(Oe,!0);D(Oe);var Ae=I(Oe,2),je=P(Ae,!0);D(Ae),D(Te);var Me=I(Te,2),Ne=P(Me),Pe=P(Ne,!0);D(Ne);var Fe=I(Ne,2),Ie=P(Fe,!0);D(Fe);var Le=I(Fe,2),Re=P(Le,!0);D(Le),D(Me),D(Ce),D(_e),D(w),D(i),D(n),L((e,t,n,r,i,a,s,c,l,d,p,m,g,_,b,x,S,C,w,T,ee,E,ne,se,ce,ue,fe,pe,he,_e,ve,ye,xe)=>{G(o,1,`budget-scope-value ${e??``}`,`svelte-1jm56wo`),mi(o,t),K(o,`title`,n),H(u,` ${r??``}`),G(f,1,`budget-period-label ${i??``}`,`svelte-1jm56wo`),H(h,a),K(v,`title`,s),H(y,c),H(te,l),H(re,d),K(ie,`aria-valuenow`,p),K(ie,`aria-label`,m),mi(ie,`--budget-progress: ${g??``}%`),oe=G(ae,1,`budget-bar-fill budget-bar-fill-usage`,null,oe,_),H(le,b),H(de,x),H(me,S),H(ge,C),H(be,w),H(Se,T),G(Ce,1,`budget-bar-track ${ee??``}`,`svelte-1jm56wo`),K(Ce,`aria-label`,E),K(Ce,`aria-valuenow`,ne),mi(Ce,`--budget-progress: ${se??``}%`),G(we,1,`budget-bar-fill budget-bar-fill-period ${ce??``}`,`svelte-1jm56wo`),K(Ee,`title`,ue),H(De,fe),H(ke,pe),K(Ae,`title`,he),H(je,_e),H(Pe,ve),H(Ie,ye),H(Re,xe)},[()=>RIe(R(t)),()=>e6(R(t))===`label`?`--label-color: `+r4(t6(R(t))):void 0,()=>n6(R(t))+`: `+t6(R(t)),()=>t6(R(t)),()=>g6(R(t)),()=>h6(R(t)),()=>oLe(R(t)),()=>v6(R(t)),()=>ah(),()=>eLe(R(t)),()=>p6(R(t)),()=>ch({spent:uZ(R(t).spent),amount:uZ(R(t).amount),remaining:y6(R(t))}),()=>p6(R(t)),()=>({"budget-bar-fill-danger":f6(R(t))>=1}),()=>dh({spent:uZ(R(t).spent),amount:uZ(R(t).amount)}),()=>y6(R(t)),()=>dh({spent:uZ(R(t).spent),amount:uZ(R(t).amount)}),()=>y6(R(t)),()=>cf(),()=>tLe(R(t)),()=>rLe(R(t)),()=>mh(),()=>m6(R(t)),()=>m6(R(t)),()=>nLe(R(t)),()=>r(R(t).period_start),()=>HX.formatTimestamp(R(t).period_start),()=>_6(R(t)),()=>r(R(t).period_end),()=>HX.formatTimestamp(R(t).period_end),()=>HX.formatTimestamp(R(t).period_start),()=>_6(R(t)),()=>HX.formatTimestamp(R(t).period_end)]),V(e,n)}),D(i),V(e,i),k()}var uLe=B(`

                        `,1),dLe=B(``),fLe=B(``),pLe=B(`
                        `);function S6(e,t){O(t,!0);let n=zi(t,`open`,3,!1),r=zi(t,`title`,3,``),i=zi(t,`ariaLabel`,3,``),a=zi(t,`error`,3,``),o=zi(t,`submitting`,3,!1),s=zi(t,`submitDisabled`,3,!1),c=zi(t,`submitLabel`,3,`Save`),l=zi(t,`submittingLabel`,3,`Saving...`),u=zi(t,`submitIcon`,3,fX),d=zi(t,`cancel`,3,!0),p=zi(t,`dialogClass`,3,``),m=zi(t,`novalidate`,3,!1),h=zi(t,`canClose`,3,()=>!0);function g(){Y.dialogOpen||h()()&&t.onclose?.()}QX(e,{get open(){return n()},variant:`editor`,onclose:g,children:(e,n)=>{var h=pLe(),g=P(h),_=P(g),v=P(_),y=P(v),b=e=>{var n=Or();Kr(F(n),()=>t.header),V(e,n)},x=e=>{var n=uLe(),i=F(n),a=P(i,!0);D(i);var o=I(i,2),s=e=>{var n=Or();Kr(F(n),()=>t.headerHint),V(e,n)};U(o,e=>{t.headerHint&&e(s)}),L(()=>H(a,r())),V(e,n)};U(y,e=>{t.header?e(b):e(x,-1)}),D(v);var S=I(v,2);{let e=A(()=>`Close `+(i()||r()).toLowerCase());ZX(S,{get label(){return R(e)},onclick:()=>t.onclose?.()})}D(_);var C=I(_,2);Kr(C,()=>t.children??f);var w=I(C,2),T=e=>{var t=dLe(),n=P(t,!0);D(t),L(()=>H(n,a())),V(e,t)};U(w,e=>{a()&&e(T)});var ee=I(w,2),E=P(ee),te=e=>{var n=fLe();z(`click`,n,()=>t.onclose?.()),V(e,n)};U(E,e=>{d()&&e(te)});var ne=I(E,2),re=e=>{var n=Or();Kr(F(n),()=>t.extraActions),V(e,n)};U(ne,e=>{t.extraActions&&e(re)});var ie=I(ne,2),ae=P(ie);q(ae,{get icon(){return u()},class:`form-action-icon`});var oe=I(ae,2),se=P(oe,!0);D(oe),D(ie),D(ee),D(g),D(h),L(()=>{G(h,1,li([`model-editor`,p()])),K(h,`aria-label`,i()||r()),g.noValidate=m(),ie.disabled=o()||s(),H(se,o()?l():c())}),br(`submit`,g,e=>{e.preventDefault(),t.onsubmit?.()}),V(e,h)},$$slots:{default:!0}}),k()}xr([`click`]);var mLe=B(`
                        `);function C6(e,t){let n=zi(t,`label`,3,``);var r=mLe(),i=P(r),a=P(i,!0);D(i),Kr(I(i,2),()=>t.children??f),D(r),L(()=>{K(i,`for`,t.id),H(a,n())}),V(e,r)}var w6=B(``),hLe=B(``),gLe=B(``),_Le=B(``),vLe=B(``),yLe=B(``),bLe=B(`

                        `),xLe=B(`
                        `,1),SLe=B(``),CLe=B(` `,1);function wLe(e,t){O(t,!0);function n(e){b6.setFormSubject(e.target.value),e.target.value=b6.form.subject}var r=CLe(),i=F(r);{let e=A(()=>b6.editing?_f():bf()),t=A(()=>Cf()),r=A(()=>Ef());S6(i,{get open(){return b6.formOpen},get title(){return R(e)},get ariaLabel(){return R(t)},get error(){return b6.formError},get submitting(){return b6.formSubmitting},get submitLabel(){return R(r)},dialogClass:`budget-editor`,canClose:()=>!b6.overrideDialogOpen,onclose:()=>b6.closeForm(),onsubmit:()=>b6.submitForm(),children:(e,t)=>{var r=xLe(),i=F(r),a=P(i);{let e=A(()=>kf());C6(a,{id:`budget-scope`,get label(){return R(e)},children:(e,t)=>{var n=hLe();W(n,21,LIe,e=>e.value,(e,t)=>{var n=w6(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n),L(()=>n.disabled=b6.editing),z(`change`,n,()=>b6.syncScope()),_i(n,()=>b6.form.scope,e=>b6.form.scope=e),V(e,n)},$$slots:{default:!0}})}var o=I(a,2);{let e=A(()=>zIe(b6.form));C6(o,{id:`budget-subject`,get label(){return R(e)},children:(e,t)=>{var r=gLe();wi(r),L(e=>{K(r,`placeholder`,e),Ti(r,b6.form.subject),r.disabled=b6.editing,K(r,`data-modal-autofocus`,!b6.editing||void 0)},[()=>BIe(b6.form)]),z(`input`,r,n),V(e,r)},$$slots:{default:!0}})}var s=I(o,2);{let e=A(()=>cf());C6(s,{id:`budget-period`,get label(){return R(e)},children:(e,t)=>{var n=_Le();W(n,21,HIe,e=>e.value,(e,t)=>{var n=w6(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n),L(()=>n.disabled=b6.editing),z(`change`,n,()=>b6.syncPeriodSeconds()),_i(n,()=>b6.form.period,e=>b6.form.period=e),V(e,n)},$$slots:{default:!0}})}var c=I(s,2),l=e=>{{let t=A(()=>Mf());C6(e,{id:`budget-period-seconds`,get label(){return R(t)},children:(e,t)=>{var n=vLe();wi(n),L(()=>n.disabled=b6.editing),ji(n,()=>b6.form.period_seconds,e=>b6.form.period_seconds=e),V(e,n)},$$slots:{default:!0}})}};U(c,e=>{b6.form.period===`custom`&&e(l)});var u=I(c,2);{let e=A(()=>Ff());C6(u,{id:`budget-amount`,get label(){return R(e)},children:(e,t)=>{var n=yLe();wi(n),L(()=>K(n,`data-modal-autofocus`,b6.editing||void 0)),ji(n,()=>b6.form.amount,e=>b6.form.amount=e),V(e,n)},$$slots:{default:!0}})}D(i);var d=I(i,2),f=e=>{var t=bLe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Rf()]),V(e,t)};U(d,e=>{b6.editing&&e(f)}),V(e,r)},$$slots:{default:!0}})}QX(I(i,2),{get open(){return b6.overrideDialogOpen},variant:`auth`,onclose:()=>b6.closeOverrideDialog(),children:(e,t)=>{var n=SLe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2);{let e=A(()=>Wf());ZX(o,{get label(){return R(e)},onclick:()=>b6.closeOverrideDialog(),class:`auth-dialog-close`,iconClass:``})}D(r);var s=I(r,2),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u),f=P(d,!0);D(d);var p=I(d,2),m=P(p);q(m,{get icon(){return fX},class:`form-action-icon`});var h=I(m,2),g=P(h,!0);D(h),D(p),D(u),D(s),D(n),L((e,t,n,r)=>{H(a,e),H(l,t),H(f,n),p.disabled=b6.formSubmitting,H(g,r)},[()=>Vf(),()=>$Ie(b6.overridePendingPayload,b6.overrideExistingBudget),()=>Ta(),()=>b6.formSubmitting?qf():Xf()]),br(`submit`,s,e=>{e.preventDefault(),b6.confirmOverride()}),z(`click`,d,()=>b6.closeOverrideDialog()),V(e,n)},$$slots:{default:!0}}),V(e,r),k()}xr([`change`,`input`,`click`]);var TLe=B(`

                        `),ELe=B(``),DLe=B(`
                        `),OLe=B(``),kLe=B(`
                        `),T6=B(`

                        `),ALe=B(`
                        `);function jLe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`budgets`&&b6.fetchBudgetsPage()});let n=A(()=>b6.filteredBudgets());var r=ALe(),i=P(r),a=P(i),o=P(a);{let e=e=>{var t=TLe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Od()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>Pd()]),V(e,t)},n=A(()=>jd());s3(o,{copyId:`budgets-help-copy`,get label(){return R(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}D(a);var s=I(a,2),c=P(s),l=e=>{var t=ELe(),n=P(t);q(n,{get icon(){return lX},class:`form-action-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=b6.formSubmitting,H(i,e)},[()=>Ld()]),z(`click`,t,()=>b6.openForm()),V(e,t)},u=A(()=>b6.managementEnabled()&&b6.budgetsAvailable&&!Y.authError);U(c,e=>{R(u)&&e(l)}),D(s),D(i);var d=I(i,2);AZ(d,{});var f=I(d,2),p=e=>{var t=DLe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Bd()]),V(e,t)},m=A(()=>(!b6.managementEnabled()||!b6.budgetsAvailable)&&!Y.authError);U(f,e=>{R(m)&&e(p)});var h=I(f,2),g=e=>{var t=OLe(),n=P(t,!0);D(t),L(()=>H(n,b6.error)),V(e,t)};U(h,e=>{b6.error&&!Y.authError&&e(g)});var _=I(h,2),v=e=>{{let t=A(()=>Ud());J3(e,{get label(){return R(t)}})}};U(_,e=>{b6.loading&&!Y.authError&&e(v)});var y=I(_,2),b=e=>{var t=kLe(),n=P(t),r=P(n);{let e=A(()=>Kd()),t=A(()=>Yd());z3(r,{id:`budget-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return b6.filter},set value(e){b6.filter=e}})}D(n);var i=I(n,2),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s),l=P(c,!0);D(c),c.value=c.__value=`subject`;var u=I(c),d=P(u,!0);D(u),u.value=u.__value=`period`,D(s),D(i),D(t),L((e,t,n,r)=>{H(o,e),K(s,`aria-label`,t),H(l,n),H(d,r)},[()=>Qd(),()=>tf(),()=>af(),()=>cf()]),_i(s,()=>b6.sortBy,e=>b6.sortBy=e),V(e,t)};U(y,e=>{(b6.budgets.length>0||b6.filter)&&b6.budgetsAvailable&&!Y.authError&&!b6.formOpen&&e(b)});var x=I(y,2);wLe(x,{});var S=I(x,2),C=e=>{lLe(e,{get budgets(){return R(n)}})};U(S,e=>{R(n).length>0&&b6.budgetsAvailable&&!Y.authError&&e(C)});var w=I(S,2),T=e=>{var t=T6(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>df()]),V(e,t)},ee=A(()=>b6.budgets.length===0&&!b6.filter&&!b6.loading&&!Y.authError&&!b6.error&&b6.budgetsAvailable&&b6.managementEnabled());U(w,e=>{R(ee)&&e(T)});var E=I(w,2),te=e=>{var t=T6(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>mf()]),V(e,t)},ne=A(()=>b6.budgets.length>0&&R(n).length===0&&b6.filter&&!b6.loading&&!Y.authError&&!b6.error&&b6.budgetsAvailable&&b6.managementEnabled());U(E,e=>{R(ne)&&e(te)}),D(r),V(e,r),k()}xr([`click`]);function E6(){return{scope:`user_path`,subject:`/`,period:`minute`,period_seconds:60,max_requests:``,max_tokens:``,source:`manual`}}function D6(e){let t={user_path:{label:c_e(),chip:d_e(),fieldLabel:CA(),placeholder:`/team/alpha`},provider:{label:m_e(),chip:__e(),fieldLabel:b_e(),placeholder:`openai`},model:{label:SY(),chip:T_e(),fieldLabel:SY(),placeholder:`openai/gpt-4o`}};return t[e]||t.user_path}function MLe(){return[`user_path`,`provider`,`model`].map(e=>({value:e,label:D6(e).label}))}function O6(e){return String(e&&e.scope||``).trim()||`user_path`}function k6(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function A6(e){return D6(O6(e)).chip}function j6(e){return D6(String(e&&e.scope||``)).fieldLabel}function NLe(e){return D6(String(e&&e.scope||``)).placeholder}function PLe(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function FLe(){return[{value:`minute`,label:O_e()},{value:`hour`,label:j_e()},{value:`day`,label:P_e()},{value:`concurrent`,label:L_e()},{value:`custom`,label:B_e()}]}function M6(e){switch(String(e||``).trim().toLowerCase()){case`minute`:return 60;case`hour`:return 3600;case`day`:return 86400;case`concurrent`:return 0;default:return-1}}function N6(e){switch(Number(e||0)){case 60:return`minute`;case 3600:return`hour`;case 86400:return`day`;case 0:return`concurrent`;default:return`custom`}}function ILe(e){let t=String(e&&e.period||``).trim(),n=M6(t);n>=0&&(e.period_seconds=n),t===`concurrent`&&(e.max_tokens=``)}function P6(e){return O6(e)+`:`+k6(e)+`:`+String(e&&e.period_seconds||`0`)}function F6(e){return Number(e&&e.period_seconds||0)===0}function I6(e){return String(e&&e.period_label||``).trim()||N6(Number(e&&e.period_seconds||0))}function LLe(e){return String(e&&e.source||``)===`config`?`config`:`manual`}function RLe(e){return String(e&&e.source||``)===`config`}function L6(e){let t=Number(e);return Number.isFinite(t)?wZ(t):`0`}function R6(e,t){let n=Number(e),r=Number(t);if(!Number.isFinite(n)||!Number.isFinite(r)||r<=0)return 0;let i=Math.round(n/r*100);return Math.min(Math.max(i,0),100)}function zLe(e,t){let n=String(t||``).trim().toLowerCase(),r=Array.isArray(e)?e.slice():[],i={user_path:0,provider:1,model:2};return r.sort((e,t)=>{let n=(i[O6(e)]||0)-(i[O6(t)]||0);if(n!==0)return n;let r=k6(e).localeCompare(k6(t));return r===0?Number(e.period_seconds||0)-Number(t.period_seconds||0):r}),n?r.filter(e=>{let t=k6(e).toLowerCase(),r=A6(e).toLowerCase(),i=I6(e).toLowerCase();return t.includes(n)||r.includes(n)||i.includes(n)}):r}function z6(e){return!e||!Array.isArray(e.rate_limits)?[]:e.rate_limits}function B6(e,t,n){let r=String(t||``).trim();return r=e===`provider`||e===`model`?r.toLowerCase():`/`+r.split(`/`).map(e=>e.trim()).filter(Boolean).join(`/`),e+`:`+r+`:`+Number(n||0)}function BLe(e,t){return e?B6(t.scope,t.subject,t.limit_key.period_seconds)!==B6(e.scope,e.subject,e.period_seconds):!1}function VLe(e){let t=e||{},n=String(t.scope||`user_path`),r=String(t.subject||``).trim();if(n!==`user_path`&&!r)return{error:K_e({field:j6(t)})};let i=String(t.period||``)===`concurrent`,a=t.period_seconds;if(a===``||a==null)return{error:U_e()};let o=Number(a);if(!Number.isInteger(o)||o<0||o===0&&!i)return{error:Y_e()};let s=String(t.max_requests===void 0||t.max_requests===null?``:t.max_requests).trim(),c=String(t.max_tokens===void 0||t.max_tokens===null?``:t.max_tokens).trim();if(!s&&!c)return{error:Q_e()};if(i&&c)return{error:tve()};let l={scope:n,subject:r||`/`,limit_key:{period_seconds:o}};if(s){let e=Number(s);if(!Number.isInteger(e)||e<=0)return{error:ive()};l.max_requests=e}if(c){let e=Number(c);if(!Number.isInteger(e)||e<=0)return{error:sve()};l.max_tokens=e}return{payload:l}}function V6(e,t,n){if(O6(e)!==`model`)return!1;let r=String(k6(e)).toLowerCase(),i=String(n||``).trim().toLowerCase();if(!i)return!1;if(r===i)return!0;let a=String(t||``).trim().toLowerCase();return a?r===a+`/`+i||i.startsWith(a+`/`)&&r===i.slice(a.length+1):!1}function H6(e,t){return O6(e)===`provider`&&String(k6(e)).toLowerCase()===String(t||``).trim().toLowerCase()}function U6(e){let t=e||{},n=String(t.model||``),r=String(t.provider||``);return!r||n.toLowerCase().startsWith(r+`/`)?n:r+`/`+n}function HLe(e,t){let n=e||{},r=Array.isArray(t)?t:[],i=[];return n.kind===`model`&&i.push({key:`model`,title:uve(),scope:`model`,subject:U6(n),hint:``,items:r.filter(e=>V6(e,n.provider,n.model))}),i.push({key:`provider`,title:pve({provider:n.provider}),scope:`provider`,subject:n.provider,hint:n.kind===`model`?gve():``,items:r.filter(e=>H6(e,n.provider))}),i.push({key:`global`,title:yve(),scope:`user_path`,subject:`/`,hint:Sve(),items:r.filter(e=>O6(e)===`user_path`&&k6(e)===`/`)}),i}function W6(e){return F6(e)?R6(e.in_flight,e.max_requests):Math.max(R6(e.requests_used,e.max_requests),R6(e.tokens_used,e.max_tokens))}function ULe(e){return`--rate-limit-pressure: `+W6(e)+`%`}function WLe(e){let t=W6(e);return t>=100?`rate-limit-pressure-row rate-limit-pressure-full`:t>=75?`rate-limit-pressure-row rate-limit-pressure-high`:`rate-limit-pressure-row`}function G6(e){return(Array.isArray(e)?e:[]).some(e=>O6(e)===`user_path`&&k6(e)===`/`)}function GLe(e,t,n){let r=Array.isArray(e)?e:[];return r.some(e=>V6(e,t,n))?`table-action-btn-active`:r.some(e=>H6(e,t))||G6(r)?`rate-limit-gauge-inherited`:``}function KLe(e,t){let n=Array.isArray(e)?e:[];return n.some(e=>H6(e,t))?`table-action-btn-active`:G6(n)?`rate-limit-gauge-inherited`:``}function qLe(e,t){let n=Tve({subject:e});return t===`table-action-btn-active`?n+` (`+Ove()+`)`:t?n+` (`+jve()+`)`:n}function JLe(e){if(F6(e))return vY({used:L6(e.in_flight),limit:L6(e.max_requests)});let t=[];return e.max_requests!==null&&e.max_requests!==void 0&&t.push(L6(e.requests_used)+`/`+L6(e.max_requests)+` req`),e.max_tokens!==null&&e.max_tokens!==void 0&&t.push(L6(e.tokens_used)+`/`+L6(e.max_tokens)+` tok`),t.join(` · `)}var Z=new class{#e=j(N([]));get rateLimits(){return R(this.#e)}set rateLimits(e){M(this.#e,e,!0)}#t=j(!0);get rateLimitsAvailable(){return R(this.#t)}set rateLimitsAvailable(e){M(this.#t,e,!0)}#n=j(!1);get rateLimitsLoading(){return R(this.#n)}set rateLimitsLoading(e){M(this.#n,e,!0)}rateLimitFetchPromise=null;#r=j(``);get rateLimitFilter(){return R(this.#r)}set rateLimitFilter(e){M(this.#r,e,!0)}#i=j(``);get rateLimitError(){return R(this.#i)}set rateLimitError(e){M(this.#i,e,!0)}#a=j(!1);get rateLimitFormOpen(){return R(this.#a)}set rateLimitFormOpen(e){M(this.#a,e,!0)}#o=j(!1);get rateLimitFormSubmitting(){return R(this.#o)}set rateLimitFormSubmitting(e){M(this.#o,e,!0)}#s=j(``);get rateLimitFormError(){return R(this.#s)}set rateLimitFormError(e){M(this.#s,e,!0)}#c=j(!1);get rateLimitEditing(){return R(this.#c)}set rateLimitEditing(e){M(this.#c,e,!0)}rateLimitEditingOriginal=null;rateLimitFormReturnToInspector=!1;#l=j(``);get rateLimitResettingKey(){return R(this.#l)}set rateLimitResettingKey(e){M(this.#l,e,!0)}#u=j(``);get rateLimitDeletingKey(){return R(this.#u)}set rateLimitDeletingKey(e){M(this.#u,e,!0)}#d=j(!1);get rateLimitInspectorOpen(){return R(this.#d)}set rateLimitInspectorOpen(e){M(this.#d,e,!0)}#f=j(N({kind:``,provider:``,model:``,title:``}));get rateLimitInspector(){return R(this.#f)}set rateLimitInspector(e){M(this.#f,e,!0)}#p=j(N(E6()));get rateLimitForm(){return R(this.#p)}set rateLimitForm(e){M(this.#p,e,!0)}rateLimitsEnabled(){return XX.rateLimitsVisible()}defaultRateLimitForm(){return E6()}rateLimitScopeMeta(e){return D6(e)}rateLimitScopeOptions(){return MLe()}rateLimitScope(e){return O6(e)}rateLimitSubject(e){return k6(e)}rateLimitScopeLabel(e){return A6(e)}rateLimitSubjectFieldLabel(){return j6(this.rateLimitForm)}rateLimitSubjectPlaceholder(){return NLe(this.rateLimitForm)}syncRateLimitScope(){PLe(this.rateLimitForm)}rateLimitPeriodOptions(){return FLe()}rateLimitPeriodSeconds(e){return M6(e)}rateLimitPeriodFromSeconds(e){return N6(e)}syncRateLimitPeriodSeconds(){ILe(this.rateLimitForm)}rateLimitKey(e){return P6(e)}rateLimitIsConcurrent(e){return F6(e)}rateLimitPeriodLabel(e){return I6(e)}rateLimitSourceLabel(e){return LLe(e)}rateLimitIsReadOnly(e){return RLe(e)}formatRateLimitNumber(e){return L6(e)}rateLimitUsagePercent(e,t){return R6(e,t)}filteredRateLimits(){return zLe(this.rateLimits,this.rateLimitFilter)}normalizeRateLimitListPayload(e){return z6(e)}async fetchRateLimitsPage(){if(await XX.ensureLoaded(),!this.rateLimitsEnabled()){this.rateLimits=[],this.rateLimitsAvailable=!1,this.rateLimitError=``;return}return this.rateLimitFetchPromise||=this.fetchRateLimits().finally(()=>{this.rateLimitFetchPromise=null}),this.rateLimitFetchPromise}async fetchRateLimits(){this.rateLimitsLoading=!0,this.rateLimitError=``;let e=await X3(`/admin/rate-limits`,{label:`rate limits`,errorFallback:Fge(),normalize:z6});if(this.rateLimitsLoading=!1,e.status!==`stale`){if(e.status===`unavailable`){this.rateLimitsAvailable=!1,this.rateLimits=[];return}if(!e.result){this.rateLimits=[],this.rateLimitError=e.error;return}if(this.rateLimitsAvailable=!0,e.status===`error`){this.rateLimitError=e.error;return}this.rateLimits=e.items}}openRateLimitForm(e){if(this.rateLimitEditing=!!e,this.rateLimitFormError=``,e){let t=Number(e.period_seconds||0);this.rateLimitEditingOriginal={scope:O6(e),subject:k6(e),period_seconds:t},this.rateLimitForm={scope:O6(e),subject:k6(e),period:N6(t),period_seconds:t,max_requests:e.max_requests===null||e.max_requests===void 0?``:String(e.max_requests),max_tokens:e.max_tokens===null||e.max_tokens===void 0?``:String(e.max_tokens),source:String(e.source||`manual`)}}else this.rateLimitEditingOriginal=null,this.rateLimitForm=E6();this.rateLimitFormOpen=!0}closeRateLimitForm(){this.rateLimitFormOpen=!1,this.rateLimitFormSubmitting=!1,this.rateLimitFormError=``,this.rateLimitEditing=!1,this.rateLimitEditingOriginal=null,this.rateLimitForm=E6(),this.rateLimitFormReturnToInspector&&(this.rateLimitFormReturnToInspector=!1,this.rateLimitInspectorOpen=!0)}rateLimitNormalizedIdentity(e,t,n){return B6(e,t,n)}rateLimitIdentityMoved(e){return BLe(this.rateLimitEditingOriginal,e)}setRateLimitFormSubject(e){this.rateLimitForm.subject=String(e||``)}rateLimitFormPayload(){return VLe(this.rateLimitForm)}async submitRateLimitForm(){if(this.rateLimitFormSubmitting)return;let{payload:e,error:t}=this.rateLimitFormPayload();if(t){this.rateLimitFormError=t;return}let n=this.rateLimitIdentityMoved(e),r=this.rateLimitEditingOriginal;this.rateLimitFormSubmitting=!0,this.rateLimitFormError=``;try{let t=await Z3(`/admin/rate-limits`,`PUT`,e,{label:`save rate limit`,errorFallback:Rge(),unavailableStatuses:[]});if(t.status===`stale`)return;if(t.status!==`ok`){this.rateLimitFormError=t.error;return}if(this.rateLimits=z6(t.result.data),n&&!await this.deleteMovedRateLimitOriginal(r))return;this.closeRateLimitForm(),oZ.success(n?Vge():Wge())}finally{this.rateLimitFormSubmitting=!1}}async deleteMovedRateLimitOriginal(e){let t=await Z3(`/admin/rate-limits`,`DELETE`,{scope:e.scope,subject:e.subject,limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`remove the moved rate limit`,errorFallback:qge(),unavailableStatuses:[]});return t.status===`stale`?!1:t.status===`ok`?(this.rateLimits=z6(t.result.data),!0):(this.rateLimitFormError=t.error,!1)}async deleteRateLimit(e){let t=P6(e);if(this.rateLimitDeletingKey===t)return;this.rateLimitDeletingKey=t;let n=await Z3(`/admin/rate-limits`,`DELETE`,{scope:O6(e),subject:k6(e),limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`delete rate limit`,errorFallback:Xge(),unavailableStatuses:[]});if(this.rateLimitDeletingKey=``,n.status!==`stale`){if(n.status!==`ok`){oZ.error(n.error);return}this.rateLimits=z6(n.result.data),oZ.success($ge())}}async resetRateLimit(e){let t=P6(e);if(this.rateLimitResettingKey===t)return;this.rateLimitResettingKey=t;let n=await Z3(`/admin/rate-limits/reset-one`,`POST`,{scope:O6(e),subject:k6(e),period_seconds:Number(e.period_seconds||0)},{label:`reset rate limit`,errorFallback:n_e(),unavailableStatuses:[]});if(this.rateLimitResettingKey=``,n.status!==`stale`){if(n.status!==`ok`){oZ.error(n.error);return}this.rateLimits=z6(n.result.data),oZ.success(a_e())}}rateLimitInspectorModelID(e){return String(e&&e.model&&e.model.id||``).trim()}openRateLimitInspectorForModel(e){let t=this.rateLimitInspectorModelID(e),n=String(e&&e.provider_name||``).trim().toLowerCase();this.rateLimitInspector={kind:`model`,provider:n,model:t,title:String(e&&e.display_name||t)},this.showRateLimitInspector()}openRateLimitInspectorForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase();this.rateLimitInspector={kind:`provider`,provider:t,model:``,title:String(e&&e.display_name||t)},this.showRateLimitInspector()}showRateLimitInspector(){this.rateLimitInspectorOpen=!0,this.fetchRateLimitsPage()}closeRateLimitInspector(){this.rateLimitInspectorOpen=!1}rateLimitRuleMatchesModel(e,t,n){return V6(e,t,n)}rateLimitRuleMatchesProvider(e,t){return H6(e,t)}rateLimitInspectorQualifiedModel(){return U6(this.rateLimitInspector)}rateLimitInspectorSections(){return HLe(this.rateLimitInspector,this.rateLimits)}rateLimitPressurePercent(e){return W6(e)}rateLimitPressureStyle(e){return ULe(e)}rateLimitPressureClass(e){return WLe(e)}rateLimitGaugeCache={rules:null,states:{}};rateLimitGaugeMemo(e,t){this.rateLimitGaugeCache.rules!==this.rateLimits&&(this.rateLimitGaugeCache={rules:this.rateLimits,states:{}});let n=this.rateLimitGaugeCache.states;return e in n||(n[e]=t()),n[e]}rateLimitGaugeClassForModel(e){let t=this.rateLimitInspectorModelID(e),n=String(e&&e.provider_name||``).trim().toLowerCase(),r=this.rateLimits;return this.rateLimitGaugeMemo(`model:`+n+`/`+t,()=>GLe(r,n,t))}rateLimitGaugeClassForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase(),n=this.rateLimits;return this.rateLimitGaugeMemo(`provider:`+t,()=>KLe(n,t))}hasGlobalRateLimits(){let e=this.rateLimits;return this.rateLimitGaugeMemo(`global`,()=>G6(e))}rateLimitGaugeTitle(e,t){return qLe(e,t)}rateLimitInspectorSummary(e){return JLe(e)}openRateLimitFormFromInspector(e,t,n){this.rateLimitInspectorOpen=!1,this.rateLimitFormReturnToInspector=!0,this.openRateLimitForm(n||void 0),n||(this.rateLimitForm.scope=e,this.rateLimitForm.subject=t)}},K6=B(``),YLe=B(``),XLe=B(``),ZLe=B(``),QLe=B(``),$Le=B(``),eRe=B(``),tRe=B(`

                        `),nRe=B(`

                        `,1);function q6(e,t){O(t,!0);{let t=A(()=>Z.rateLimitEditing?Fj():qD()),n=A(()=>Rj()),r=A(()=>Vj());S6(e,{get open(){return Z.rateLimitFormOpen},get title(){return R(t)},get ariaLabel(){return R(n)},get error(){return Z.rateLimitFormError},get submitting(){return Z.rateLimitFormSubmitting},get submitLabel(){return R(r)},dialogClass:`budget-editor`,novalidate:!0,onclose:()=>Z.closeRateLimitForm(),onsubmit:()=>Z.submitRateLimitForm(),children:(e,t)=>{var n=nRe(),r=F(n),i=P(r);{let e=A(()=>Wj());C6(i,{id:`rate-limit-scope`,get label(){return R(e)},children:(e,t)=>{var n=YLe();W(n,21,()=>Z.rateLimitScopeOptions(),e=>e.value,(e,t)=>{var n=K6(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n),z(`change`,n,()=>Z.syncRateLimitScope()),_i(n,()=>Z.rateLimitForm.scope,e=>Z.rateLimitForm.scope=e),V(e,n)},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>Z.rateLimitSubjectFieldLabel());C6(a,{id:`rate-limit-subject`,get label(){return R(e)},children:(e,t)=>{var n=XLe();wi(n),L(e=>{K(n,`placeholder`,e),K(n,`data-modal-autofocus`,!Z.rateLimitEditing||void 0),Ti(n,Z.rateLimitForm.subject)},[()=>Z.rateLimitSubjectPlaceholder()]),z(`input`,n,e=>Z.setRateLimitFormSubject(e.currentTarget.value)),V(e,n)},$$slots:{default:!0}})}var o=I(a,2);{let e=A(()=>qj());C6(o,{id:`rate-limit-period`,get label(){return R(e)},children:(e,t)=>{var n=ZLe();W(n,21,()=>Z.rateLimitPeriodOptions(),e=>e.value,(e,t)=>{var n=K6(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n),z(`change`,n,()=>Z.syncRateLimitPeriodSeconds()),_i(n,()=>Z.rateLimitForm.period,e=>Z.rateLimitForm.period=e),V(e,n)},$$slots:{default:!0}})}var s=I(o,2),c=e=>{{let t=A(()=>Xj());C6(e,{id:`rate-limit-period-seconds`,get label(){return R(t)},children:(e,t)=>{var n=QLe();wi(n),ji(n,()=>Z.rateLimitForm.period_seconds,e=>Z.rateLimitForm.period_seconds=e),V(e,n)},$$slots:{default:!0}})}};U(s,e=>{Z.rateLimitForm.period===`custom`&&e(c)});var l=I(s,2);{let e=A(()=>Z.rateLimitForm.period===`concurrent`?$j():nM());C6(l,{id:`rate-limit-max-requests`,get label(){return R(e)},children:(e,t)=>{var n=$Le();wi(n),L(()=>K(n,`data-modal-autofocus`,Z.rateLimitEditing?!0:void 0)),ji(n,()=>Z.rateLimitForm.max_requests,e=>Z.rateLimitForm.max_requests=e),V(e,n)},$$slots:{default:!0}})}var u=I(l,2),d=e=>{{let t=A(()=>aM());C6(e,{id:`rate-limit-max-tokens`,get label(){return R(t)},children:(e,t)=>{var n=eRe();wi(n),ji(n,()=>Z.rateLimitForm.max_tokens,e=>Z.rateLimitForm.max_tokens=e),V(e,n)},$$slots:{default:!0}})}};U(u,e=>{Z.rateLimitForm.period!==`concurrent`&&e(d)}),D(r);var f=I(r,2),p=P(f,!0);D(f);var m=I(f,2),h=e=>{var t=tRe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>dM()]),V(e,t)};U(m,e=>{Z.rateLimitEditing&&e(h)}),L(e=>H(p,e),[()=>cM()]),V(e,n)},$$slots:{default:!0}})}k()}xr([`change`,`input`]);var rRe=B(` `),J6=B(` `,1),iRe=B(`
                        `),Y6=B(`
                        `),aRe=B(`
                        `),oRe=B(`
                        `);function sRe(e,t){O(t,!0);var n=oRe();W(n,21,()=>t.rules,e=>Z.rateLimitKey(e),(e,t)=>{var n=aRe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s),l=e=>{var n=rRe(),r=P(n);{let e=A(()=>Z.rateLimitScope(R(t))===`provider`?JTe:JY);q(r,{get icon(){return R(e)},class:`budget-period-icon`})}var i=I(r,2),a=P(i,!0);D(i),D(n),L((e,t)=>{K(n,`title`,e),H(a,t)},[()=>Ghe({scope:Z.rateLimitScopeLabel(R(t))}),()=>Z.rateLimitScopeLabel(R(t))]),V(e,n)},u=A(()=>Z.rateLimitScope(R(t))!==`user_path`);U(c,e=>{R(u)&&e(l)});var d=I(c,2),f=P(d);{let e=A(()=>Z.rateLimitIsConcurrent(R(t))?qY:hX);q(f,{get icon(){return R(e)},class:`budget-period-icon`})}var p=I(f,2),m=P(p,!0);D(p),D(d),D(s);var h=I(s,2),g=P(h),_=P(g),v=P(_,!0);D(_),D(g);var y=I(g,2),b=P(y),x=e=>{{let n=A(()=>ege());Y3(e,{get label(){return R(n)},class:`budget-action-btn`,onclick:()=>Z.openRateLimitForm(R(t)),children:(e,t)=>{var n=J6(),r=F(n);q(r,{get icon(){return cX},class:`budget-action-icon`});var i=I(r,2),a=P(i,!0);D(i),L(e=>H(a,e),[()=>bO()]),V(e,n)},$$slots:{default:!0}})}},S=A(()=>!Z.rateLimitIsReadOnly(R(t)));U(b,e=>{R(S)&&e(x)});var C=I(b,2);{let e=A(()=>Z.rateLimitResettingKey===Z.rateLimitKey(R(t))?rge():oge()),n=A(()=>Z.rateLimitResettingKey===Z.rateLimitKey(R(t)));Y3(C,{get label(){return R(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>Z.resetRateLimit(R(t)),get disabled(){return R(n)},children:(e,n)=>{var r=J6(),i=F(r);q(i,{get icon(){return dX},class:`budget-action-icon`});var a=I(i,2),o=P(a,!0);D(a),L(e=>H(o,e),[()=>Z.rateLimitResettingKey===Z.rateLimitKey(R(t))?lge():fge()]),V(e,r)},$$slots:{default:!0}})}var w=I(C,2),T=e=>{{let n=A(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(R(t))?hge():vge()),r=A(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(R(t)));Y3(e,{get label(){return R(n)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>Z.deleteRateLimit(R(t)),get disabled(){return R(r)},children:(e,n)=>{var r=J6(),i=F(r);q(i,{get icon(){return gX},class:`budget-action-icon`});var a=I(i,2),o=P(a,!0);D(a),L(e=>H(o,e),[()=>Z.rateLimitDeletingKey===Z.rateLimitKey(R(t))?xge():wge()]),V(e,r)},$$slots:{default:!0}})}},ee=A(()=>!Z.rateLimitIsReadOnly(R(t)));U(w,e=>{R(ee)&&e(T)}),D(y),D(h),D(i);var E=I(i,2),te=P(E),ne=e=>{var n=iRe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(r);var c=I(r,2),l=P(c);let u;var d=I(l,2),f=P(d),p=P(f,!0);D(f),D(d),D(c),D(n),L((e,t,n,r,i,o,d)=>{H(a,e),H(s,t),K(c,`aria-valuenow`,n),K(c,`aria-label`,r),mi(c,i),u=G(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),H(p,d)},[()=>CO(),()=>Z.rateLimitUsagePercent(R(t).in_flight,R(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(R(t).in_flight,R(t).max_requests),()=>vY({used:Z.formatRateLimitNumber(R(t).in_flight),limit:Z.formatRateLimitNumber(R(t).max_requests)}),()=>`--budget-progress: `+Z.rateLimitUsagePercent(R(t).in_flight,R(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(R(t).in_flight,R(t).max_requests)>=100}),()=>vY({used:Z.formatRateLimitNumber(R(t).in_flight),limit:Z.formatRateLimitNumber(R(t).max_requests)})]),V(e,n)},re=A(()=>Z.rateLimitIsConcurrent(R(t)));U(te,e=>{R(re)&&e(ne)});var ie=I(te,2),ae=e=>{var n=Y6(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(r);var c=I(r,2),l=P(c);let u;var d=I(l,2),f=P(d),p=P(f,!0);D(f);var m=I(f,2),h=P(m,!0);D(m),D(d),D(c),D(n),L((e,t,n,r,i,o,d,f)=>{H(a,e),H(s,t),K(c,`aria-valuenow`,n),K(c,`aria-label`,r),mi(c,i),u=G(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),H(p,d),H(h,f)},[()=>EO(),()=>Z.rateLimitUsagePercent(R(t).requests_used,R(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(R(t).requests_used,R(t).max_requests),()=>yY({used:Z.formatRateLimitNumber(R(t).requests_used),limit:Z.formatRateLimitNumber(R(t).max_requests)}),()=>`--budget-progress: `+Z.rateLimitUsagePercent(R(t).requests_used,R(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(R(t).requests_used,R(t).max_requests)>=100}),()=>yY({used:Z.formatRateLimitNumber(R(t).requests_used),limit:Z.formatRateLimitNumber(R(t).max_requests)}),()=>xY({count:Z.formatRateLimitNumber(R(t).requests_remaining)})]),V(e,n)},oe=A(()=>!Z.rateLimitIsConcurrent(R(t))&&R(t).max_requests);U(ie,e=>{R(oe)&&e(ae)});var se=I(ie,2),ce=e=>{var n=Y6(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(r);var c=I(r,2),l=P(c);let u;var d=I(l,2),f=P(d),p=P(f,!0);D(f);var m=I(f,2),h=P(m,!0);D(m),D(d),D(c),D(n),L((e,t,n,r,i,o,d,f)=>{H(a,e),H(s,t),K(c,`aria-valuenow`,n),K(c,`aria-label`,r),mi(c,i),u=G(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),H(p,d),H(h,f)},[()=>kO(),()=>Z.rateLimitUsagePercent(R(t).tokens_used,R(t).max_tokens)+`%`,()=>Z.rateLimitUsagePercent(R(t).tokens_used,R(t).max_tokens),()=>bY({used:Z.formatRateLimitNumber(R(t).tokens_used),limit:Z.formatRateLimitNumber(R(t).max_tokens)}),()=>`--budget-progress: `+Z.rateLimitUsagePercent(R(t).tokens_used,R(t).max_tokens)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(R(t).tokens_used,R(t).max_tokens)>=100}),()=>bY({used:Z.formatRateLimitNumber(R(t).tokens_used),limit:Z.formatRateLimitNumber(R(t).max_tokens)}),()=>xY({count:Z.formatRateLimitNumber(R(t).tokens_remaining)})]),V(e,n)},le=A(()=>!Z.rateLimitIsConcurrent(R(t))&&R(t).max_tokens);U(se,e=>{R(le)&&e(ce)}),D(E),D(r),D(n),L((e,t,n,r,i)=>{K(a,`title`,e),H(o,t),H(m,n),K(_,`title`,r),H(v,i)},[()=>Z.rateLimitScopeLabel(R(t))+`: `+Z.rateLimitSubject(R(t)),()=>Z.rateLimitSubject(R(t)),()=>Z.rateLimitPeriodLabel(R(t)),()=>Z.rateLimitIsReadOnly(R(t))?Jhe():Zhe(),()=>Z.rateLimitSourceLabel(R(t))]),V(e,n)}),D(n),V(e,n),k()}var cRe=B(`

                        `),lRe=B(``),uRe=B(`
                        `),dRe=B(``),fRe=B(`
                        `),X6=B(`

                        `),pRe=B(`
                        `);function mRe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`rate-limits`&&Z.fetchRateLimitsPage()});let n=A(()=>Z.filteredRateLimits());var r=pRe(),i=P(r),a=P(i);s3(P(a),{copyId:`rate-limits-help-copy`,label:`rate limits help`,text:`Rate limits cap requests, tokens, and in-flight concurrency for a user path subtree, a provider, or a model. Consumer (user path) breaches return 429 with Retry-After and x-ratelimit-* headers; saturated providers and models are skipped by load balancing and failover while capacity exists elsewhere. Counters are per gateway instance and reset on restart; token limits need usage tracking.`,title:e=>{var t=cRe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>WD()]),V(e,t)},$$slots:{title:!0}}),D(a);var o=I(a,2),s=P(o),c=e=>{var t=lRe(),n=P(t);q(n,{get icon(){return lX},class:`form-action-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=Z.rateLimitFormSubmitting,H(i,e)},[()=>qD()]),z(`click`,t,()=>Z.openRateLimitForm()),V(e,t)},l=A(()=>Z.rateLimitsEnabled()&&Z.rateLimitsAvailable&&!Y.authError);U(s,e=>{R(l)&&e(c)}),D(o),D(i);var u=I(i,2);AZ(u,{});var d=I(u,2),f=e=>{var t=uRe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XD()]),V(e,t)},p=A(()=>(!Z.rateLimitsEnabled()||!Z.rateLimitsAvailable)&&!Y.authError);U(d,e=>{R(p)&&e(f)});var m=I(d,2),h=e=>{var t=dRe(),n=P(t,!0);D(t),L(()=>H(n,Z.rateLimitError)),V(e,t)};U(m,e=>{Z.rateLimitError&&!Y.authError&&e(h)});var g=I(m,2),_=e=>{J3(e,{label:`Loading rate limits...`})};U(g,e=>{Z.rateLimitsLoading&&!Y.authError&&e(_)});var v=I(g,2),y=e=>{var t=fRe(),n=P(t),r=P(n);{let e=A(()=>$D()),t=A(()=>nO());z3(r,{id:`rate-limit-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return Z.rateLimitFilter},set value(e){Z.rateLimitFilter=e}})}D(n),D(t),V(e,t)};U(v,e=>{(Z.rateLimits.length>0||Z.rateLimitFilter)&&Z.rateLimitsAvailable&&!Y.authError&&!Z.rateLimitFormOpen&&e(y)});var b=I(v,2);q6(b,{});var x=I(b,2),S=e=>{sRe(e,{get rules(){return R(n)}})};U(x,e=>{R(n).length>0&&Z.rateLimitsAvailable&&!Y.authError&&e(S)});var C=I(x,2),w=e=>{var t=X6(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>aO()]),V(e,t)},T=A(()=>Z.rateLimits.length===0&&!Z.rateLimitFilter&&!Z.rateLimitsLoading&&!Y.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());U(C,e=>{R(T)&&e(w)});var ee=I(C,2),E=e=>{var t=X6(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>cO()]),V(e,t)},te=A(()=>Z.rateLimits.length>0&&R(n).length===0&&Z.rateLimitFilter&&!Z.rateLimitsLoading&&!Y.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());U(ee,e=>{R(te)&&e(E)}),D(r),V(e,r),k()}xr([`click`]);function Z6(e){return String(e||``).trim().toLowerCase()}function Q6(e){if(!e)return``;let t=String(e.selector||``).trim();if(t)return t;if(!e.model||!e.model.id)return``;let n=String(e.model.id||``).trim(),r=String(e.provider_name||``).trim();if(r)return r+`/`+n;let i=String(e.provider_type||``).trim();return!i||n.includes(`/`)?n:i+`/`+n}function hRe(e,t,n,r){let i=new Set,a=String(e||``).trim().toLowerCase(),o=String(t||``).trim().toLowerCase(),s=String(n||``).trim().toLowerCase(),c=String(r||``).trim().toLowerCase();if(c&&i.add(c),!a)return i;i.add(a),s&&i.add(s+`/`+a),o&&!a.includes(`/`)&&i.add(o+`/`+a);let l=a.split(`/`);return l.length===2&&l[1]&&i.add(l[1]),i}function $6(e){return hRe(e&&e.model?e.model.id:``,e?e.provider_type:``,e?e.provider_name:``,e?e.selector:``)}function gRe(e){let t=new Set,n=String(e.resolved_model||``).trim().toLowerCase(),r=String(e.target_model||``).trim().toLowerCase(),i=String(e.target_provider||``).trim().toLowerCase();if(n){t.add(n);let e=n.split(`/`);e.length===2&&e[1]&&t.add(e[1])}if(r){t.add(r);let e=r.split(`/`);e.length===2&&e[1]&&t.add(e[1])}return r&&i&&t.add(i+`/`+r),t}function e8(e){if(!e)return``;let t=String(e.provider||``).trim(),n=String(e.model||``).trim();return!t||!n||n===t||n.startsWith(t+`/`)?n:t+`/`+n}function _Re(e){if(e===``||e==null)return null;let t=Number(e);return!Number.isFinite(t)||t<=0?null:t}function t8(e,t){let n={model:e},r=_Re(t);return r!==null&&(n.weight=r),n}function n8(e){let t=Array.isArray(e)?e:[],n=[];for(let e of t){let t=String(e&&e.model||``).trim();t&&n.push(t8(t,e&&e.weight))}return n}function vRe(e){switch(String(e||``).toLowerCase()){case`cost`:return`lowest cost`;case`round_robin`:case``:return`round robin`;default:return e}}var yRe={round_robin:Pye(),cost:Lye(),adaptive:Bye()};function bRe(e,t){let n=Array.isArray(e)?[...e]:[],r=String(t||``).trim().toLowerCase();return r&&!n.includes(r)&&n.push(r),n.map(e=>({value:e,label:yRe[e]||e}))}function xRe(e){let t=Array.isArray(e.targets)?e.targets:[],n=t.length>0?t[0]:{},r=t.map(e=>{let t={provider:e.provider||``,model:e.model||``};return e.weight&&(t.weight=e.weight),t});return{name:e.source,target_provider:n.provider||``,target_model:n.model||``,targets:r,strategy:e.strategy||``,session_affinity:e.session_affinity!==!1,description:e.description||``,slowdown:e.slowdown==null?null:Number(e.slowdown),enabled:e.enabled!==!1,managed:!!e.managed,valid:!!e.valid,resolved_model:e.resolved_model||``,provider_type:e.provider_type||``,user_paths:Array.isArray(e.user_paths)?e.user_paths:[]}}function SRe(e){let t=Array.isArray(e)?e:[],n=[],r=[];for(let e of t)!e||typeof e!=`object`||(e.kind===`redirect`?n.push(xRe(e)):e.kind===`policy`&&r.push({selector:e.source,provider_name:e.provider_name||``,model:e.model||``,user_paths:Array.isArray(e.user_paths)?e.user_paths:[],description:e.description||``,slowdown:e.slowdown==null?null:Number(e.slowdown),enabled:e.enabled!==!1,managed:!!e.managed,scope_kind:e.scope_kind||``}));return{aliases:n,policies:r}}function r8(e){if(!e)return`—`;let t=Array.isArray(e.targets)?e.targets:[];return t.length>1?t.length+` targets · `+vRe(e.strategy):e.resolved_model?e.resolved_model:e.target_provider?e.target_provider+`/`+e.target_model:e.target_model||`—`}function i8(e){return e?e.enabled===!1?`is-disabled`:e.valid?`is-valid`:`is-invalid`:`is-invalid`}function CRe(e){return e?e.enabled===!1?Wg():e.valid?Gye():kY():kY()}function a8(e){return Array.isArray(e)&&e.length>0&&e.indexOf(`/`)===-1}function wRe(e,t){return!t||!e?``:e.effective_enabled===!1?`is-disabled`:a8(e.user_paths)?`is-restricted`:`is-enabled`}function TRe(e){if(!e)return``;let t=[];e.effective_enabled===!1&&t.push(e.default_enabled===!1?XK():Wg());let n=Array.isArray(e.user_paths)?e.user_paths:[];return n.length>0&&t.push($K({paths:n.join(`, `)})),t.join(` · `)}function ERe({models:e,aliases:t,virtualModelsAvailable:n,activeCategory:r}){let i=Array.isArray(e)?e:[],a=Array.isArray(t)?t:[],o=new Map;if(n)for(let e of a){let t=Z6(e&&e.name);!t||e.enabled===!1||!e.valid||o.set(t,e)}let s=new Map,c=i.map(e=>{let t=Q6(e),n=null;for(let t of $6(e))s.has(t)||s.set(t,e),!n&&o.has(t)&&(n=o.get(t));let r=e&&e.access?e.access:null;return{key:`model:`+t,display_name:t,secondary_name:``,provider_name:e.provider_name||``,provider_type:e.provider_type||``,model:e.model,selector:e.selector||``,is_alias:!1,alias:null,access:r,masking_alias:n,has_virtual_model:!!(n||r&&r.override),alias_state_class:``,alias_state_text:``}});if(!n)return c;for(let e of a){let t=s.get(Z6(e&&e.name));if(e&&e.enabled!==!1&&e.valid&&t)continue;let n=null;for(let t of gRe(e))if(n=s.get(t)||null,n)break;!n&&r&&r!==`all`||c.push({key:`alias:`+e.name,display_name:e.name,secondary_name:r8(e),provider_name:n&&n.provider_name||``,provider_type:n?n.provider_type||e.provider_type||``:e.provider_type||``,model:n?n.model:{id:e.name,object:`model`},selector:``,is_alias:!0,alias:e,access:null,masking_alias:null,source_model_exists:!!t,has_virtual_model:!0,alias_state_class:i8(e),alias_state_text:CRe(e)})}return c.sort((e,t)=>e.is_alias===t.is_alias?String(e.display_name||``).localeCompare(String(t.display_name||``)):e.is_alias?-1:1)}function DRe(e,t){if(!t)return e;let n=String(t).toLowerCase();return e.filter(e=>[e.display_name,e.secondary_name,e.provider_name,e.provider_type,e.model&&e.model.owned_by,e.alias&&e.alias.description,e.alias&&e.alias_state_text,e.model&&e.model.metadata&&e.model.metadata.modes?e.model.metadata.modes.join(`,`):``,e.model&&e.model.metadata&&e.model.metadata.categories?e.model.metadata.categories.join(`,`):``].some(e=>String(e||``).toLowerCase().includes(n)))}function o8(e,t){return String(e||``).trim()||String(t||``).trim()||Jye()}function s8(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return!r||r===n?``:r}function ORe(e){let t=String(e||``).trim();return t?t+`/`:``}function c8(e){let t=Array.isArray(e)?e:[],n=t.filter(e=>e&&!e.is_alias).length,r=t.filter(e=>e&&e.is_alias).length,i=[];return n>0&&i.push(nq({count:n})),r>0&&i.push(aq({count:r})),i.join(` · `)}function kRe(e,t,n){let r=String(t||``).trim(),i=String(n||``).trim();for(let t of Array.isArray(e)?e:[]){let e=String(t&&t.provider_name||``).trim(),n=String(t&&t.provider_type||``).trim();if(!(r&&e!==r)&&!(!r&&i&&n!==i)&&t&&t.access)return t.access.default_enabled!==!1}return!0}function l8(e){for(let t of Array.isArray(e)?e:[])if(t&&t.access)return t.access.default_enabled!==!1;return!0}function u8(e,t){let n=String(t||``).trim();if(!n)return null;for(let t of Array.isArray(e)?e:[])if(String(t&&t.selector||``).trim()===n)return t;return null}function ARe(e,t,n,r){let i=ORe(t),a=r&&r.get(`/`)||null,o=i&&r&&r.get(i)||null,s=kRe(e,t,n),c=o||a,l=c&&Array.isArray(c.user_paths)?Array.from(new Set(c.user_paths)).sort():[];return{selector:i,default_enabled:s,effective_enabled:c?c.enabled!==!1:s,user_paths:l,override:o}}function d8(e,t,n){if(!Array.isArray(e)||e.length===0)return[];let r=new Map;for(let e of Array.isArray(n)?n:[]){let t=String(e&&e.selector||``).trim();t&&r.set(t,e)}let i=[],a=new Map;for(let t of e){if(t&&t.is_alias){i.push(t);continue}let e=String(t&&t.provider_name||``).trim(),n=String(t&&t.provider_type||``).trim(),r=`provider-group:`+(e||n||`unassigned`);a.has(r)||a.set(r,{key:r,provider_name:e,provider_type:n,display_name:o8(e,n),type_label:s8(e,n),rows:[]});let o=a.get(r);!o.provider_name&&e&&(o.provider_name=e),!o.provider_type&&n&&(o.provider_type=n),o.display_name=o8(o.provider_name,o.provider_type),o.type_label=s8(o.provider_name,o.provider_type),o.rows.push(t)}let o=Array.from(a.values()).map(e=>{let n=ARe(t,e.provider_name,e.provider_type,r);return{...e,access:n,access_summary:TRe(n),item_count_label:c8(e.rows)}}).sort((e,t)=>String(e.display_name||``).localeCompare(String(t.display_name||``)));return i.length>0&&o.unshift({key:`virtual-model-group`,is_virtual_models:!0,provider_name:``,provider_type:``,display_name:WK(),type_label:``,rows:i,access:{selector:``},access_summary:``,item_count_label:c8(i)}),o}function jRe(e,t){let n=u8(t,`/`),r=l8(e),i=n&&Array.isArray(n.user_paths)?n.user_paths:[];return{key:`scope-global`,is_alias:!1,display_name:qK(),access:{selector:`/`,default_enabled:r,effective_enabled:n?n.enabled!==!1:r,user_paths:i,override:n}}}function f8(e){return e?String(e.access&&e.access.selector||``).trim()||String(e.override_selector||``).trim()||Q6(e):``}function MRe(e){if(!e)return[];let t=[];return e.is_alias?t.push(`alias-row`,i8(e.alias)):e.has_virtual_model&&t.push(`alias-row`,`is-valid`),!e.is_alias&&e.masking_alias&&t.push(`masked-model-row`),!e.is_alias&&e.access&&e.access.effective_enabled===!1&&t.push(`model-access-disabled-row`),t}function NRe(e){return!!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)}function PRe(e){return!!(e&&!e.is_alias&&e.masking_alias&&e.masking_alias.name&&!e.masking_alias.managed)}function FRe(e){return e&&e.is_alias&&e.alias&&e.alias.name?`alias-row-`+String(e.alias.name).replace(/[^a-zA-Z0-9_-]+/g,`-`):``}function p8(e){return e?e.is_alias?!!(e.alias&&e.alias.managed):!!(e.access&&e.access.override&&e.access.override.managed||e.masking_alias&&e.masking_alias.managed):!1}function m8(e){return!!(e&&e.override)}function h8(e){return e?`table-action-btn-active`:``}function g8(e,t){let n=String(e||aK());return t?VG({subject:n}):FG({subject:n})}function _8(){return{source:``,target_model:``,target_weight:1,targets:[],strategy:`round_robin`,session_affinity:!0,user_paths:``,description:``,slowdown:``,enabled:!0}}function IRe(e){return String(e&&e.target_model||``).trim()!==``}function v8(e){return String(e&&e.target_model||``).trim()?!0:n8(e&&e.targets).length>0}function LRe(e){if(v8(e))return!0;let t=String(e&&e.source||``).trim();return!!t&&t!==`/`&&!t.endsWith(`/`)}function y8(e){return!!e&&Array.isArray(e.targets)&&e.targets.length>0}function RRe(e){return y8(e)&&String(e&&e.strategy||``).toLowerCase()!==`cost`}function zRe(e){let t=Array.isArray(e.targets)?e.targets:[];if(t.length>0){let n=t.shift();e.target_model=n.model||``,e.target_weight=n.weight||1;return}e.target_model=``,e.target_weight=1}function BRe(e){let t=Array.isArray(e&&e.targets)?e.targets:[];return t.length>0?{primaryModel:e8(t[0]),primaryWeight:t[0].weight||1,extraTargets:t.slice(1).map(e=>({model:e8(e),weight:e.weight||1}))}:{primaryModel:e&&e.target_provider?e.target_provider+`/`+e.target_model:e&&e.target_model||``,primaryWeight:1,extraTargets:[]}}function b8(e){return String(e||``).split(/\r?\n|,/).map(e=>String(e||``).trim()).filter(Boolean)}function VRe(e,t,n){let r=String(e&&e.source||``).trim(),i=String(e&&e.target_model||``).trim(),a=n8(e&&e.targets),o=v8(e),s=String(t||``).trim(),c=n===`edit`&&!!s&&r!==s,l={source:r,user_paths:b8(e&&e.user_paths),description:String(e&&e.description||``).trim(),enabled:!!(e&&e.enabled)},u=e&&e.slowdown;if(u!==``&&u!=null){let e=Number(u);Number.isFinite(e)&&(l.slowdown=e)}if(c&&(l.old_source=s),o){let t=[];if(i&&t.push(t8(i,e.target_weight)),t.push(...a),t.length>1){let n=e.strategy||`round_robin`;l.targets=n===`cost`?t.map(e=>({model:e.model})):t,l.strategy=n,e&&e.session_affinity===!1&&(l.session_affinity=!1)}else l.target_model=t[0].model}return{payload:l,source:r,isRedirect:o,isRename:c}}function HRe(e){let t={source:e.name,description:String(e.description||``).trim(),user_paths:Array.isArray(e.user_paths)?e.user_paths:[],enabled:e.enabled===!1};if(e.slowdown!=null){let n=Number(e.slowdown);Number.isFinite(n)&&(t.slowdown=n)}let n=Array.isArray(e.targets)?e.targets:[];return n.length>1?(t.strategy=e.strategy||`round_robin`,e.session_affinity===!1&&(t.session_affinity=!1),t.targets=t.strategy===`cost`?n.map(e=>({model:e8(e)})):n.map(e=>t8(e8(e),e.weight))):n.length===1?t.target_model=e8(n[0]):t.target_model=e.target_provider?e.target_provider+`/`+e.target_model:e.target_model,t}function URe(e,t,n){let r=n||{},i=r.effective_enabled===!1,a=t&&Array.isArray(t.user_paths)?t.user_paths:[],o=String(t&&t.description||``).trim(),s=!!(t&&t.slowdown!=null),c=Number(s?t.slowdown:0),l={};o&&(l.description=o),s&&Number.isFinite(c)&&(l.slowdown=c);let u=`PUT`,d;return i===!1?d={source:e,enabled:!1,user_paths:a,...l}:t&&a.length===0&&!o&&!s&&r.default_enabled!==!1?(u=`DELETE`,d={source:e}):d={source:e,enabled:!0,user_paths:a,...l},{method:u,payload:d,desired:i}}function x8(e,t,n){let r=Math.max(1,Number(t||75)),i=Math.min(n,e+r);return{limit:i,rendering:iERe({models:kZ.models,aliases:this.aliases,virtualModelsAvailable:this.virtualModelsAvailable,activeCategory:kZ.activeCategory}));get displayModels(){return R(this.#T)}set displayModels(e){M(this.#T,e)}#E=A(()=>d8(this.displayModels,kZ.models,this.modelOverrideViews));get displayModelGroups(){return R(this.#E)}set displayModelGroups(e){M(this.#E,e)}#D=A(()=>DRe(this.displayModels,kZ.filter));get filteredDisplayModels(){return R(this.#D)}set filteredDisplayModels(e){M(this.#D,e)}#O=A(()=>{let e=this.filteredDisplayModels,t=Math.max(0,Math.min(Number(this.modelRenderLimit||0),e.length));return!kZ.filter&&t>=this.displayModels.length?this.displayModelGroups:d8(e.slice(0,t),kZ.models,this.modelOverrideViews)});get filteredDisplayModelGroups(){return R(this.#O)}set filteredDisplayModelGroups(e){M(this.#O,e)}#k=A(()=>jRe(kZ.models,this.modelOverrideViews));get globalScopeRow(){return R(this.#k)}set globalScopeRow(e){M(this.#k,e)}modelsBusy(){return!!(kZ.loading||this.modelsRendering)}modelLoadingText(){if(kZ.loading)return this.displayModels.length>0?n_():$g();let e=this.filteredDisplayModels.length;return a_({visible:Math.min(Number(this.modelRenderLimit||0),e),total:e})}restartModelRendering(e){let t=++this.#a,n=WRe(this.modelRenderBatchSize,e);this.modelRenderLimit=n.limit,this.modelsRendering=n.rendering,n.rendering&&this.#A(t)}stopModelRendering(){this.#a++,this.modelsRendering=!1}#A(e){let t=()=>{if(e!==this.#a)return;let t=x8(this.modelRenderLimit,this.modelRenderBatchSize,this.filteredDisplayModels.length);this.modelRenderLimit=t.limit,this.modelsRendering=t.rendering,t.rendering&&this.#A(e)};typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>setTimeout(t,0)):setTimeout(t,0)}async fetchVirtualModels(){this.aliasLoading=!0,this.aliasError=``;try{let e=await qX(`/admin/virtual-models`,{label:`virtual models`});if(e.status===503){this.virtualModelsAvailable=!1,this.aliases=[],this.modelOverrideViews=[];return}if(e.stale)return;if(this.virtualModelsAvailable=!0,!e.ok){this.aliases=[],this.modelOverrideViews=[];return}let{aliases:t,policies:n}=SRe(e.data);this.aliases=t,this.modelOverrideViews=n}catch(e){console.error(`Failed to fetch virtual models:`,e),this.aliases=[],this.modelOverrideViews=[],this.aliasError=Pve()}finally{this.aliasLoading=!1}}qualifiedModelName(e){return Q6(e)}findModelOverrideView(e){return u8(this.modelOverrideViews,e)}hasGlobalModelOverride(){return!!this.findModelOverrideView(`/`)}findExistingAliasByName(e){let t=Z6(e);if(!t)return null;for(let e of this.aliases)if(Z6(e&&e.name)===t)return e;return null}findConcreteModelByName(e){let t=Z6(e);if(!t)return null;for(let e of kZ.models)if($6(e).has(t))return e;return null}rowToggleEnabled(e){return e?e.is_alias?e.alias&&e.alias.enabled!==!1:!!(e.access&&e.access.effective_enabled!==!1):!1}rowToggleLabel(e){return this.rowTogglingKey&&this.rowTogglingKey===e.key?Xg():this.rowToggleRestricted(e)?qg():this.rowToggleEnabled(e)?Vg():Wg()}rowToggleRestricted(e){return!!e&&!e.is_alias&&wRe(e.access,this.virtualModelsAvailable)===`is-restricted`}rowToggleAriaLabel(e){if(!e)return``;let t;return t=e.is_alias?EG({name:String(e.alias&&e.alias.name||``)}):String(e.display_name||e.access&&e.access.selector||kG()),this.rowToggleEnabled(e)?CG({subject:t.trim()}):bG({subject:t.trim()})}async toggleRowEnabled(e){if(this.virtualModelsAvailable&&!(!e||this.rowTogglingKey===e.key)){if(p8(e)){oZ.success(MG());return}if(e.is_alias){await this.toggleAliasRow(e);return}await this.toggleModelRow(e)}}async toggleAliasRow(e){let t=e.alias;if(!t||!t.name)return;this.rowTogglingKey=e.key;let n=HRe(t);try{let e=await JX(`/admin/virtual-models`,`PUT`,n,{label:`alias state`});if(e.status===503){this.virtualModelsAvailable=!1,oZ.error(dg());return}if(e.stale)return;if(!e.ok){oZ.error(e.status===401?az():WX(e,CY()));return}oZ.success(n.enabled?zve():Hve()),this.fetchVirtualModels()}catch(e){console.error(`Failed to toggle alias state:`,e),oZ.error(CY())}finally{this.rowTogglingKey=``}}async toggleModelRow(e){let t=f8(e);if(!t)return;let{method:n,payload:r,desired:i}=URe(t,this.findModelOverrideView(t),e.access||{});this.rowTogglingKey=e.key;try{let e=await JX(`/admin/virtual-models`,n,r,{label:`model access`});if(e.status===503){this.virtualModelsAvailable=!1,oZ.error(dg());return}if(!(n===`DELETE`&&e.status===404)){if(e.stale)return;if(!e.ok){oZ.error(e.status===401?az():WX(e,wY()));return}}oZ.success(i?qve():Xve()),Promise.all([kZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to toggle model access:`,e),oZ.error(wY())}finally{this.rowTogglingKey=``}}async removeAliasRow(e){if(!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)||this.rowDeletingKey)return;let t=String(e.alias.name||``).trim();t&&await this.mutateVirtualModelRow({rowKey:e.key,confirmMessage:Qwe({source:t}),method:`DELETE`,payload:{source:t},operation:`virtual model`,failureMessage:TY(),notice:EY(),ignoreNotFound:!0})}async removeRedirectRow(e){let t=e&&e.masking_alias;if(!(e&&!e.is_alias&&t&&t.name&&!t.managed)||this.rowDeletingKey)return;let n=String(t.name||``).trim();n&&await this.mutateVirtualModelRow({rowKey:e.key,confirmMessage:tTe({source:n}),method:`PUT`,payload:{source:n,user_paths:Array.isArray(t.user_paths)?t.user_paths:[],description:String(t.description||``).trim(),enabled:t.enabled!==!1,...t.slowdown==null?{}:{slowdown:Number(t.slowdown)}},operation:`virtual model redirect`,failureMessage:rye(),notice:oye()})}async mutateVirtualModelRow(e){if(!this.rowDeletingKey&&window.confirm(e.confirmMessage)){this.rowDeletingKey=e.rowKey;try{let t=await JX(`/admin/virtual-models`,e.method,e.payload,{label:e.operation});if(t.status===503){this.virtualModelsAvailable=!1,oZ.error(dg());return}if(!(e.ignoreNotFound&&t.status===404)){if(t.stale)return;if(!t.ok){oZ.error(t.status===401?az():WX(t,e.failureMessage));return}}this.virtualModelsAvailable=!0,oZ.success(e.notice),Promise.all([kZ.fetchModels(),this.fetchVirtualModels()])}catch(t){console.error(e.failureMessage,t),oZ.error(e.failureMessage)}finally{this.rowDeletingKey=``}}}addVmTarget(){Array.isArray(this.vmForm.targets)||(this.vmForm.targets=[]),this.vmForm.targets.push({model:``,weight:1})}removeVmTarget(e){Array.isArray(this.vmForm.targets)&&this.vmForm.targets.splice(e,1)}removePrimaryTarget(){zRe(this.vmForm)}vmFormHasPrimaryTarget(){return IRe(this.vmForm)}vmFormShowStrategy(){return y8(this.vmForm)}vmStrategyOptions(){return bRe(XX.virtualModelStrategies(),this.vmForm.strategy)}vmFormShowWeights(){return RRe(this.vmForm)}vmFormSupportsSlowdown(){return LRe(this.vmForm)}vmFormToggleRestricted(){return!!(this.vmForm&&this.vmForm.enabled)&&a8(b8(this.vmForm.user_paths))}vmFormToggleLabel(){return!this.vmForm||!this.vmForm.enabled?Wg():this.vmFormToggleRestricted()?qg():Vg()}resetVirtualModelForm(){this.vmFormError=``,this.vmFormHelpOpen=!1,this.vmFormUserPathsHelpOpen=!1,this.vmSubmitting=!1,this.vmDeleting=!1,this.vmFormHasExisting=!1,this.vmFormDefaultEnabled=!0,this.vmFormEffectiveEnabled=!0,this.vmFormDisplayName=``,this.vmFormSourceLocked=!1,this.vmFormOriginalSource=``,this.vmFormManaged=!1,this.vmForm=_8()}closeVirtualModelForm(){this.vmFormOpen=!1,this.resetVirtualModelForm()}openVirtualModelCreate(e){this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`create`,this.vmFormSourceLocked=!1,this.vmFormDisplayName=bg(),e&&e.model&&e.model.id&&(this.vmForm.target_model=Q6(e))}openVirtualModelEditAlias(e){if(!e)return;this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!1,this.vmFormHasExisting=!0,this.vmFormManaged=!!e.managed,this.vmFormOriginalSource=e.name||``,this.vmFormDisplayName=e.name||``,this.vmFormDefaultEnabled=l8(kZ.models),this.vmFormEffectiveEnabled=e.enabled!==!1;let{primaryModel:t,primaryWeight:n,extraTargets:r}=BRe(e);this.vmForm={source:e.name||``,target_model:t,target_weight:n,targets:r,strategy:e.strategy||`round_robin`,session_affinity:e.session_affinity!==!1,user_paths:(Array.isArray(e.user_paths)?e.user_paths:[]).join(` -`),description:e.description||``,slowdown:e.slowdown??``,enabled:e.enabled!==!1}}openVirtualModelEditModel(e){if(!e||e.is_alias)return;let t=e.access||{},n=t.override||null,r=n&&Array.isArray(n.user_paths)?n.user_paths:Array.isArray(t.user_paths)?t.user_paths:[],i=f8(e);this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!0,this.vmFormHasExisting=!!n,this.vmFormOriginalSource=i;let a=n?n.enabled!==!1:t.effective_enabled!==!1;this.vmFormDefaultEnabled=t.default_enabled!==!1,this.vmFormEffectiveEnabled=a,this.vmFormManaged=!!(n&&n.managed),this.vmFormDisplayName=e.access_display_name||e.display_name||i||``,this.vmForm={source:i,target_model:``,target_weight:``,targets:[],strategy:`round_robin`,user_paths:r.join(` -`),description:n&&n.description?n.description:``,slowdown:n&&n.slowdown!=null?n.slowdown:``,enabled:a}}openGlobalModelOverrideEdit(){let e=this.findModelOverrideView(`/`),t=e&&Array.isArray(e.user_paths)?e.user_paths:[],n=l8(kZ.models);this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!0,this.vmFormHasExisting=!!e,this.vmFormOriginalSource=`/`,this.vmFormDefaultEnabled=n,this.vmFormEffectiveEnabled=e?e.enabled!==!1:n,this.vmFormManaged=!!(e&&e.managed),this.vmFormDisplayName=c_(),this.vmForm={source:`/`,target_model:``,target_weight:``,targets:[],strategy:`round_robin`,user_paths:t.join(` -`),description:e&&e.description?e.description:``,slowdown:e&&e.slowdown!=null?e.slowdown:``,enabled:e?e.enabled!==!1:n}}openProviderOverrideEdit(e){!e||!e.access||!e.access.selector||this.openVirtualModelEditModel({display_name:e.display_name,access_display_name:d_({provider:e.display_name}),provider_name:e.provider_name,provider_type:e.provider_type,access:e.access,override_selector:e.access.selector,is_alias:!1})}async submitVirtualModelForm(){if(this.vmFormManaged){this.vmFormError=lye();return}let{payload:e,source:t,isRedirect:n,isRename:r}=VRe(this.vmForm,this.vmFormOriginalSource,this.vmFormMode);if(!t){this.vmFormError=hye();return}if(this.vmFormError=``,this.vmFormMode!==`edit`){let e=this.findExistingAliasByName(t),r=e?null:this.findModelOverrideView(t);if(e||r){let n=e?iTe({name:e.name}):sTe({source:t});if(!window.confirm(n)){this.vmFormError=vye();return}}else if(n){let e=this.findConcreteModelByName(t);if(e){let t=Q6(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(uTe({name:t}))){this.vmFormError=DY();return}}}}else if(r){let e=(this.aliases||[]).find(e=>e&&e.name===t)||null,r=e?null:this.findModelOverrideView(t);if(e||r){this.vmFormError=pTe({source:t});return}if(n){let e=this.findConcreteModelByName(t);if(e){let t=Q6(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(gTe({name:t}))){this.vmFormError=DY();return}}}}this.vmSubmitting=!0;try{let t=await JX(`/admin/virtual-models`,`PUT`,e,{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=dg();return}if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?az():WX(t,OY());return}let r=!n&&t.status===204;this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),oZ.success(n?Tye():r?Oye():jye()),Promise.all([kZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to save virtual model:`,e),this.vmFormError=OY()}finally{this.vmSubmitting=!1}}async deleteVirtualModel(){if(this.vmFormManaged){this.vmFormError=fye();return}let e=String(this.vmForm.source||this.vmFormOriginalSource||``).trim();if(!(!e||!this.vmFormHasExisting)&&window.confirm(yTe({source:e}))){this.vmDeleting=!0,this.vmFormError=``;try{let t=await JX(`/admin/virtual-models`,`DELETE`,{source:e},{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=dg();return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?az():WX(t,TY());return}}this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),oZ.success(EY()),Promise.all([kZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to delete virtual model:`,e),this.vmFormError=TY()}finally{this.vmDeleting=!1}}}},C8=[{value:`input_per_mtok`,label:Mbe(),group:PY()},{value:`output_per_mtok`,label:Fbe(),group:PY()},{value:`cached_input_per_mtok`,label:Rbe(),group:PY()},{value:`cache_write_per_mtok`,label:Vbe(),group:PY()},{value:`reasoning_output_per_mtok`,label:Wbe(),group:PY()},{value:`batch_input_per_mtok`,label:qbe(),group:FY()},{value:`batch_output_per_mtok`,label:Xbe(),group:FY()},{value:`audio_input_per_mtok`,label:$be(),group:IY()},{value:`audio_output_per_mtok`,label:nxe(),group:IY()},{value:`per_image`,label:axe(),group:LY()},{value:`input_per_image`,label:cxe(),group:LY()},{value:`per_second_input`,label:dxe(),group:Pxe()},{value:`per_second_output`,label:mxe(),group:Lxe()},{value:`per_character_input`,label:_xe(),group:IY()},{value:`per_page`,label:bxe(),group:RY()},{value:`per_request`,label:Cxe(),group:RY()}];function w8(e){let t=C8.find(t=>t.value===e);return t?t.label:String(e||``).replace(/_/g,` `)}function T8(e){return e&&typeof e==`object`?JSON.parse(JSON.stringify(e)):{}}function GRe(e,t){let n=T8(e),r=t&&t.pricing?t.pricing:t;if(!r||typeof r!=`object`)return n;for(let e of C8)r[e.value]!==null&&r[e.value]!==void 0&&(n[e.value]=Number(r[e.value]));return Array.isArray(r.tiers)&&r.tiers.length>0&&(n.tiers=T8(r.tiers)),n}function KRe(e){switch(String(e||``).trim()){case`config_yaml`:return`config.yaml`;case`model_registry`:return zY();default:return e?String(e):Wxe()}}function qRe(e){let t=e&&e.pricing?e.pricing:{},n=e&&e.pricing_sources&&typeof e.pricing_sources==`object`?e.pricing_sources:{},r={};for(let e of C8)t[e.value]!==null&&t[e.value]!==void 0&&(r[e.value]=KRe(n[e.value]||`model_registry`));return r}function JRe(e){let t=String(e&&e.selector||``).trim();return t?Xxe({selector:t}):qxe()}function E8(e){let t=String(e||``).trim();return t?t+`/`:``}function D8(e){return String(e&&e.model&&e.model.id||``).trim()}function O8(e){let t=String(e&&e.provider_name||``).trim(),n=D8(e);return t&&n?t+`/`+n:n}function k8(e){return D8(e)}function A8(e){let t=new Map;for(let n of Array.isArray(e)?e:[]){let e=String(n&&n.selector||``).trim();e&&t.set(e,n)}return t}function YRe(e,t){let n=String(t||``).trim();return n&&A8(e).get(n)||null}function XRe(e,t,n){let r=A8(e),i=O8(t),a=k8(t),o=E8(t&&t.provider_name),s=String(n||``).trim();for(let e of[i,a,o,`/`]){if(!e||e===s)continue;let t=r.get(e);if(t)return t}return null}function j8(e,t,n){let r=e&&e.model&&e.model.metadata?e.model.metadata:null,i=T8(r&&r.pricing),a=qRe(r),o=XRe(t,e,n),s=o&&o.pricing?o.pricing:null;if(s){let e=JRe(o);for(let t of C8)s[t.value]!==null&&s[t.value]!==void 0&&(i[t.value]=Number(s[t.value]),a[t.value]=e);Array.isArray(s.tiers)&&s.tiers.length>0&&(i.tiers=T8(s.tiers),a.tiers=e)}return{pricing:i,sources:a}}function ZRe(e,t){let n=e&&e.pricing?e.pricing:{},r=[];for(let e of C8)n[e.value]!==null&&n[e.value]!==void 0&&r.push({id:t(),field:e.value,value:String(n[e.value])});return r}function M8(e,t){let n=new Set;for(let r of Array.isArray(e)?e:[]){if(t&&r.id===t)continue;let e=String(r.field||``).trim();e&&n.add(e)}return n}function QRe(e,t){let n=M8(e,t&&t.id);return C8.filter(e=>e.value===(t&&t.field)||!n.has(e.value))}function $Re(e,t){let n={},r=new Set;for(let t of Array.isArray(e)?e:[]){let e=String(t.field||``).trim();if(!e)return{error:$xe()};if(r.has(e))return{error:nSe()};r.add(e);let i=String(t.value||``).trim();if(i===``)return{error:aSe({field:w8(e)})};let a=Number(i);if(!Number.isFinite(a)||a<0)return{error:cSe()};n[e]=a}let i=Array.isArray(t)?t:[];return i.length>0&&(n.tiers=T8(i)),Object.keys(n).length===0?{error:dSe()}:{pricing:n}}function eze(e,t,n){let r=e||{},i=t||{},a=n||{},o=GRe(r,a);return C8.map(e=>{let t=a[e.value]!==null&&a[e.value]!==void 0,n=r[e.value]!==null&&r[e.value]!==void 0;return{field:e.value,label:e.label,value:o[e.value],source:t?mSe():n?i[e.value]||zY():BY()}}).filter(e=>e.source!==BY()||e.value!==void 0)}var N8=new class{#e=j(!0);get modelPricingOverridesAvailable(){return R(this.#e)}set modelPricingOverridesAvailable(e){M(this.#e,e,!0)}#t=j(N([]));get modelPricingOverrideViews(){return R(this.#t)}set modelPricingOverrideViews(e){M(this.#t,e,!0)}#n=j(``);get modelPricingOverrideError(){return R(this.#n)}set modelPricingOverrideError(e){M(this.#n,e,!0)}#r=j(!1);get modelPricingOverrideFormOpen(){return R(this.#r)}set modelPricingOverrideFormOpen(e){M(this.#r,e,!0)}#i=j(!1);get modelPricingOverrideSubmitting(){return R(this.#i)}set modelPricingOverrideSubmitting(e){M(this.#i,e,!0)}#a=j(!1);get modelPricingOverrideFormHasExistingOverride(){return R(this.#a)}set modelPricingOverrideFormHasExistingOverride(e){M(this.#a,e,!0)}#o=j(``);get modelPricingOverrideFormDisplayName(){return R(this.#o)}set modelPricingOverrideFormDisplayName(e){M(this.#o,e,!0)}#s=j(``);get modelPricingOverrideFormScope(){return R(this.#s)}set modelPricingOverrideFormScope(e){M(this.#s,e,!0)}#c=j(N([]));get modelPricingOverrideFormScopeOptions(){return R(this.#c)}set modelPricingOverrideFormScopeOptions(e){M(this.#c,e,!0)}#l=j(null);get modelPricingOverrideFormRow(){return R(this.#l)}set modelPricingOverrideFormRow(e){M(this.#l,e,!0)}#u=j(null);get modelPricingOverrideFormBasePricing(){return R(this.#u)}set modelPricingOverrideFormBasePricing(e){M(this.#u,e,!0)}#d=j(null);get modelPricingOverrideFormBasePricingSources(){return R(this.#d)}set modelPricingOverrideFormBasePricingSources(e){M(this.#d,e,!0)}#f=j(N([]));get modelPricingOverrideFormPreservedTiers(){return R(this.#f)}set modelPricingOverrideFormPreservedTiers(e){M(this.#f,e,!0)}#p=j(N([]));get modelPricingOverrideRows(){return R(this.#p)}set modelPricingOverrideRows(e){M(this.#p,e,!0)}#m=j(N({selector:``}));get modelPricingOverrideForm(){return R(this.#m)}set modelPricingOverrideForm(e){M(this.#m,e,!0)}_modelPricingOverrideRowID=0;pricingFieldOptions(){return C8}pricingFieldLabel(e){return w8(e)}async fetchModelPricingOverrides(){this.modelPricingOverrideError=``;try{let e=await qX(`/admin/model-pricing-overrides`,{label:`model pricing overrides`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideViews=[];return}if(e.stale)return;if(this.modelPricingOverridesAvailable=!0,!e.ok){this.modelPricingOverrideViews=[];return}this.modelPricingOverrideViews=Array.isArray(e.data)?e.data:[]}catch(e){console.error(`Failed to fetch model pricing overrides:`,e),this.modelPricingOverrideViews=[],this.modelPricingOverrideError=Zye()}}findModelPricingOverrideView(e){return YRe(this.modelPricingOverrideViews,e)}hasGlobalPricingOverride(){return!!this.findModelPricingOverrideView(`/`)}hasProviderPricingOverride(e){return!!this.findModelPricingOverrideView(E8(e&&e.provider_name))}hasModelPricingOverride(e){return!!this.findModelPricingOverrideView(O8(e))}modelPricingButtonClass(e){return e?`table-action-btn-active`:``}modelPricingButtonLabel(e,t){let n=String(e||XG());return t?RG({subject:n}):FG({subject:n})}modelRowPricing(e){return j8(e,this.modelPricingOverrideViews).pricing}openGlobalPricingOverrideEdit(){this.openModelPricingOverrideForm({displayName:AY(),selector:`/`,scope:`global`,scopeOptions:[{value:`global`,label:AY(),selector:`/`}],row:null})}openProviderPricingOverrideEdit(e){let t=E8(e&&e.provider_name);t&&this.openModelPricingOverrideForm({displayName:nbe({provider:e.display_name||e.provider_name||t}),selector:t,scope:`provider`,scopeOptions:[{value:`provider`,label:abe(),selector:t}],row:null})}openModelPricingOverrideEdit(e){if(!e||e.is_alias)return;let t=O8(e),n=k8(e),r=[{value:`exact`,label:cbe(),selector:t}];n&&n!==t&&r.push({value:`model`,label:dbe(),selector:n}),this.openModelPricingOverrideForm({displayName:e.display_name||t,selector:t,scope:`exact`,scopeOptions:r,row:e})}openModelPricingOverrideForm(e){let t=e||{};this.modelPricingOverrideFormOpen=!0,this.modelPricingOverrideError=``,this.modelPricingOverrideFormDisplayName=t.displayName||t.selector||mbe(),this.modelPricingOverrideFormScope=t.scope||``,this.modelPricingOverrideFormScopeOptions=Array.isArray(t.scopeOptions)?t.scopeOptions:[],this.modelPricingOverrideFormRow=t.row||null,this.modelPricingOverrideForm={selector:t.selector||``},this.loadModelPricingOverrideFormSelector(t.selector||``)}loadModelPricingOverrideFormSelector(e){e=String(e||``).trim();let t=this.findModelPricingOverrideView(e);this.modelPricingOverrideFormHasExistingOverride=!!t,this.modelPricingOverrideRows=ZRe(t,()=>this.nextModelPricingOverrideRowID()),this.modelPricingOverrideFormPreservedTiers=t&&t.pricing&&Array.isArray(t.pricing.tiers)?T8(t.pricing.tiers):[],this.modelPricingOverrideRows.length===0&&this.modelPricingOverrideFormPreservedTiers.length===0&&this.addModelPricingOverrideRow();let n=this.modelPricingOverrideFormRow,r=n?j8(n,this.modelPricingOverrideViews,e):{pricing:{},sources:{}};this.modelPricingOverrideFormBasePricing=r.pricing,this.modelPricingOverrideFormBasePricingSources=r.sources}setModelPricingOverrideScope(e){this.modelPricingOverrideFormScope=e;let t=this.modelPricingOverrideFormScopeOptions.find(t=>t.value===e);t&&(this.modelPricingOverrideForm.selector=t.selector,this.loadModelPricingOverrideFormSelector(t.selector))}nextModelPricingOverrideRowID(){return this._modelPricingOverrideRowID=(this._modelPricingOverrideRowID||0)+1,`pricing-row-`+this._modelPricingOverrideRowID}availablePricingFieldOptions(e){return QRe(this.modelPricingOverrideRows,e)}addModelPricingOverrideRow(){let e=M8(this.modelPricingOverrideRows),t=C8.find(t=>!e.has(t.value))||C8[0];t&&this.modelPricingOverrideRows.push({id:this.nextModelPricingOverrideRowID(),field:t.value,value:``})}removeModelPricingOverrideRow(e){this.modelPricingOverrideRows=this.modelPricingOverrideRows.filter(t=>t.id!==e.id),this.modelPricingOverrideRows.length===0&&this.modelPricingOverrideFormPreservedTiers.length===0&&this.addModelPricingOverrideRow()}modelPricingOverridePayload(){return $Re(this.modelPricingOverrideRows,this.modelPricingOverrideFormPreservedTiers)}modelPricingOverrideDraftPricing(){let e=this.modelPricingOverridePayload();return e&&e.pricing?e.pricing:{}}modelPricingEffectivePreviewRows(){return eze(this.modelPricingOverrideFormBasePricing,this.modelPricingOverrideFormBasePricingSources,this.modelPricingOverrideDraftPricing())}closeModelPricingOverrideForm(){this.modelPricingOverrideFormOpen=!1,this.modelPricingOverrideSubmitting=!1,this.modelPricingOverrideError=``,this.modelPricingOverrideFormHasExistingOverride=!1,this.modelPricingOverrideFormDisplayName=``,this.modelPricingOverrideFormScope=``,this.modelPricingOverrideFormScopeOptions=[],this.modelPricingOverrideFormRow=null,this.modelPricingOverrideFormBasePricing=null,this.modelPricingOverrideFormBasePricingSources=null,this.modelPricingOverrideFormPreservedTiers=[],this.modelPricingOverrideRows=[],this.modelPricingOverrideForm={selector:``}}async submitModelPricingOverrideForm(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!e){this.modelPricingOverrideError=_be();return}let t=this.modelPricingOverridePayload();if(t.error){this.modelPricingOverrideError=t.error;return}let n={selector:e,...t};this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let e=await JX(`/admin/model-pricing-overrides`,`PUT`,n,{label:`model pricing override`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=jY();return}if(e.stale)return;if(!e.ok){this.modelPricingOverrideError=e.status===401?az():WX(e,MY());return}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),oZ.success(wbe()),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to save model pricing override:`,e),this.modelPricingOverrideError=MY()}finally{this.modelPricingOverrideSubmitting=!1}}async deleteModelPricingOverride(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!(!e||!this.modelPricingOverrideFormHasExistingOverride)&&window.confirm(STe({selector:e}))){this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let t=await JX(`/admin/model-pricing-overrides`,`DELETE`,{selector:e},{label:`model pricing override`});if(t.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=jY();return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.modelPricingOverrideError=t.status===401?az():WX(t,NY());return}}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),oZ.success(kbe()),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to delete model pricing override:`,e),this.modelPricingOverrideError=NY()}finally{this.modelPricingOverrideSubmitting=!1}}}},tze=B(``);function P8(e,t){O(t,!0);var n=tze();let r;var i=I(P(n),2),a=P(i,!0);D(i),D(n),L((e,i,o)=>{r=G(n,1,`alias-toggle`,null,r,e),n.disabled=S8.rowTogglingKey===t.row.key||!S8.virtualModelsAvailable,K(n,`aria-label`,i),H(a,o)},[()=>({enabled:S8.rowToggleEnabled(t.row),restricted:S8.rowToggleRestricted(t.row)}),()=>S8.rowToggleAriaLabel(t.row),()=>S8.rowToggleLabel(t.row)]),z(`click`,n,()=>S8.toggleRowEnabled(t.row)),V(e,n),k()}xr([`click`]);var nze=B(`
                        `);function rze(e,t){O(t,!0);var n=nze(),r=P(n),i=e=>{P8(e,{get row(){return S8.globalScopeRow}})};U(r,e=>{S8.virtualModelsAvailable&&e(i)});var a=I(r,2),o=e=>{{let t=A(()=>N8.modelPricingButtonLabel(XG(),N8.hasGlobalPricingOverride())),n=A(()=>N8.modelPricingButtonClass(N8.hasGlobalPricingOverride()));Y3(e,{get label(){return R(t)},get class(){return`table-icon-btn ${R(n)??``}`},onclick:()=>N8.openGlobalPricingOverrideEdit(),children:(e,t)=>{q(e,{get icon(){return eX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(a,e=>{N8.modelPricingOverridesAvailable&&e(o)});var s=I(a,2),c=e=>{{let t=A(()=>g8(aK(),S8.hasGlobalModelOverride())),n=A(()=>h8(S8.hasGlobalModelOverride()));Y3(e,{get label(){return R(t)},get class(){return`table-icon-btn ${R(n)??``}`},onclick:()=>S8.openGlobalModelOverrideEdit(),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(s,e=>{S8.virtualModelsAvailable&&e(c)}),D(n),V(e,n),k()}function F8(e){return String(e&&(e.primary_model||e.source)||``).trim()}function I8(e){return Array.isArray(e&&e.fallback_models)?e.fallback_models:Array.isArray(e&&e.targets)?e.targets:[]}function L8(e){return Array.isArray(e)?e.map(e=>({...e,source:F8(e),targets:I8(e)})):[]}function ize(e){let t=I8(e);return t.length===0?`-`:t.join(`, `)}function aze(e){return e&&e.enabled===!1?Wv():e&&e.managed?C_():E_()}function R8(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>F8(e)===n)||null}function z8(e,t){if(!t||t.is_alias)return!1;let n=R8(e,Q6(t));return!!(n&&n.enabled!==!1&&I8(n).length>0)}function oze(e,t){return z8(e,t)?`table-action-btn-failover-active`:``}function sze(e,t){let n=t&&t.display_name?t.display_name:kG();return z8(e,t)?OCe({model:n}):TCe({model:n})}function B8(e){let t=[e&&e.target_model];return(Array.isArray(e&&e.targets)?e.targets:[]).forEach(e=>t.push(e&&e.model)),t.map(e=>String(e||``).trim()).filter(Boolean)}function cze(e){let t=Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(Boolean):[];return{target_model:t[0]||``,targets:t.slice(1).map(e=>({model:e}))}}function lze(e){return{primary_model:String(e&&e.source||``).trim(),fallback_models:B8(e),enabled:!(e&&e.enabled===!1)}}function V8(e){return F8(e)}function uze(e){let t={};return(Array.isArray(e)?e:[]).forEach(e=>{let n=V8(e);n&&(t[n]=!0)}),t}function H8(e,t){let n=V8(t);return!!(n&&e&&e[n])}function U8(e,t){return(Array.isArray(e)?e:[]).filter(e=>H8(t,e))}function dze(e,t){let n=Array.isArray(e)?e:[];return n.length>0&&U8(n,t).length===n.length}function W8(e){return[F8(e),I8(e).join(` `)].join(` `).toLowerCase()}function fze(e,t){let n=Array.isArray(e)?e:[],r=String(t||``).trim().toLowerCase();return r?n.filter(e=>W8(e).includes(r)):n}function pze(e){return{primary_model:F8(e),fallback_models:I8(e).map(e=>String(e||``).trim()).filter(Boolean),enabled:!!(e&&e.enabled!==!1)}}function G8(){return{source:``,target_model:``,targets:[],enabled:!0}}var Q=new class{#e=j(!0);get failoverAvailable(){return R(this.#e)}set failoverAvailable(e){M(this.#e,e,!0)}#t=j(N([]));get failoverRules(){return R(this.#t)}set failoverRules(e){M(this.#t,e,!0)}#n=j(!1);get failoverLoading(){return R(this.#n)}set failoverLoading(e){M(this.#n,e,!0)}#r=j(!1);get failoverSaving(){return R(this.#r)}set failoverSaving(e){M(this.#r,e,!0)}#i=j(!1);get failoverGenerating(){return R(this.#i)}set failoverGenerating(e){M(this.#i,e,!0)}#a=j(``);get failoverError(){return R(this.#a)}set failoverError(e){M(this.#a,e,!0)}#o=j(N([]));get failoverGeneratedRules(){return R(this.#o)}set failoverGeneratedRules(e){M(this.#o,e,!0)}#s=j(!1);get failoverDraftsOpen(){return R(this.#s)}set failoverDraftsOpen(e){M(this.#s,e,!0)}#c=j(N({}));get failoverDraftSelections(){return R(this.#c)}set failoverDraftSelections(e){M(this.#c,e,!0)}#l=j(``);get failoverDraftFilter(){return R(this.#l)}set failoverDraftFilter(e){M(this.#l,e,!0)}#u=j(!1);get failoverDraftSaving(){return R(this.#u)}set failoverDraftSaving(e){M(this.#u,e,!0)}#d=j(!1);get failoverFormOpen(){return R(this.#d)}set failoverFormOpen(e){M(this.#d,e,!0)}#f=j(`create`);get failoverFormMode(){return R(this.#f)}set failoverFormMode(e){M(this.#f,e,!0)}#p=j(!1);get failoverFormManaged(){return R(this.#p)}set failoverFormManaged(e){M(this.#p,e,!0)}#m=j(N(G8()));get failoverForm(){return R(this.#m)}set failoverForm(e){M(this.#m,e,!0)}failoverEnabled(){return XX.booleanFlag(`FAILOVER_ENABLED`,!0)}async fetchFailoverRules(){if(!this.failoverEnabled()){this.failoverAvailable=!1,this.failoverRules=[],this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,this.failoverError=``,this.failoverLoading=!1;return}this.failoverLoading=!0,this.failoverError=``;try{let e=await qX(`/admin/failover`,{label:`failover mappings`});if(e.status===503){this.failoverAvailable=!1,this.failoverRules=[];return}if(e.stale)return;if(this.failoverAvailable=!0,!e.ok){this.failoverRules=[];return}this.failoverRules=L8(e.data)}catch(e){console.error(`Failed to fetch failover mappings:`,e),this.failoverRules=[],this.failoverError=ySe()}finally{this.failoverLoading=!1}}resetFailoverForm(){this.failoverFormMode=`create`,this.failoverFormManaged=!1,this.failoverForm=G8()}openFailoverCreate(){this.resetFailoverForm(),this.failoverFormOpen=!0,this.focusFailoverEditor()}openFailoverEdit(e){if(!e)return;this.resetFailoverForm(),this.failoverFormMode=`edit`,this.failoverFormOpen=!0,this.failoverFormManaged=!!e.managed;let t=this.failoverPrimaryModel(e),n=this.failoverTargets(e);this.failoverForm={source:t,target_model:n[0]||``,targets:n.slice(1).map(e=>({model:e})),enabled:e.enabled!==!1},this.focusFailoverEditor()}openFailoverForModel(e){if(!e||e.is_alias)return;let t=this.qualifiedModelName(e),n=this.failoverRules.find(e=>this.failoverPrimaryModel(e)===t);if(n){this.openFailoverEdit(n);return}this.resetFailoverForm(),this.failoverFormMode=`create`,this.failoverFormOpen=!0,this.failoverForm.source=t,this.focusFailoverEditor()}closeFailoverForm(){this.failoverFormOpen=!1}closeFailoverDraftsModal(){this.failoverDraftSaving||(this.failoverDraftsOpen=!1)}failoverFormTargets(){return B8(this.failoverForm)}setFailoverFormTargets(e){let t=cze(e);this.failoverForm.target_model=t.target_model,this.failoverForm.targets=t.targets}addFailoverTarget(){Array.isArray(this.failoverForm.targets)||(this.failoverForm.targets=[]),this.failoverForm.targets.push({model:``}),this.focusFailoverEditor()}removeFailoverTarget(e){if(!Array.isArray(this.failoverForm.targets)){this.failoverForm.targets=[];return}this.failoverForm.targets.splice(e,1)}removePrimaryFailoverTarget(){let e=Array.isArray(this.failoverForm.targets)?this.failoverForm.targets:[];if(e.length>0){let t=e.shift();this.failoverForm.target_model=t&&t.model?t.model:``,this.failoverForm.targets=e;return}this.failoverForm.target_model=``}failoverRulePayload(){return lze(this.failoverForm)}async submitFailoverForm(){if(this.failoverSaving||this.failoverGenerating||this.failoverFormManaged)return;let e=this.failoverRulePayload();if(!e.primary_model){this.failoverError=VY();return}if(e.enabled&&e.fallback_models.length===0){this.failoverError=wSe();return}this.failoverSaving=!0,this.failoverError=``;try{let t=await JX(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(t.stale)return;if(!t.ok){this.failoverError=HY();return}oZ.success(kSe()),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to save failover mapping:`,e),this.failoverError=HY()}finally{this.failoverSaving=!1}}async deleteFailoverRule(e){let t=String(e&&this.failoverPrimaryModel(e)||this.failoverForm.source||``).trim();if(!(!t||this.failoverSaving||this.failoverGenerating)&&confirm(MSe({source:t}))){this.failoverSaving=!0,this.failoverError=``;try{let e=await JX(`/admin/failover`,`DELETE`,{primary_model:t},{label:`failover mapping`});if(e.stale)return;if(!e.ok){this.failoverError=UY();return}oZ.success(LSe()),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to remove failover mapping:`,e),this.failoverError=UY()}finally{this.failoverSaving=!1}}}async generateFailoverForForm(){if(this.failoverGenerating||this.failoverSaving||this.failoverFormManaged)return;let e=String(this.failoverForm.source||``).trim();if(!e){this.failoverError=VY();return}this.failoverGenerating=!0,this.failoverError=``;try{let t=await JX(`/admin/failover/generate`,`POST`,{primary_model:e},{label:`failover generation`});if(t.stale)return;if(!t.ok){this.failoverError=WY();return}let n=L8(t.data),r=n.find(t=>this.failoverPrimaryModel(t)===e)||n[0]||null,i=this.failoverTargets(r);if(i.length===0){this.failoverError=HSe();return}this.setFailoverFormTargets(i),oZ.success(GSe({count:i.length})),this.focusFailoverEditor()}catch(e){console.error(`Failed to generate failover mapping:`,e),this.failoverError=WY()}finally{this.failoverGenerating=!1}}openFailoverResetDialog(){eZ.open({title:JSe(),titleId:`failoverResetDialogTitle`,inputId:`failover-reset-confirmation`,message:ZSe(),requiredText:`remove`,confirmLabel:eCe(),icon:gX,dialogClass:`budget-reset-dialog`,onConfirm:async()=>{await this.resetFailoverRules(),this.failoverError&&(eZ.error=this.failoverError)}})}async resetFailoverRules(){if(!this.failoverSaving){this.failoverSaving=!0,this.failoverError=``;try{let e=await JX(`/admin/failover/reset`,`POST`,void 0,{label:`failover removal`});if(e.stale)return;if(!e.ok){this.failoverError=GY();return}this.failoverRules=L8(e.data),this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,oZ.success(aCe()),eZ.close()}catch(e){console.error(`Failed to remove failover mappings:`,e),this.failoverError=GY()}finally{this.failoverSaving=!1}}}async generateFailoverRules(){if(!(this.failoverGenerating||this.failoverDraftSaving)){this.failoverGenerating=!0,this.failoverError=``,this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!0;try{let e=await JX(`/admin/failover/generate`,`POST`,void 0,{label:`failover generation`});if(e.stale)return;if(!e.ok){this.failoverError=KY();return}this.failoverGeneratedRules=L8(e.data),this.selectAllFailoverDrafts(this.failoverGeneratedRules)}catch(e){console.error(`Failed to generate failover mappings:`,e),this.failoverError=KY()}finally{this.failoverGenerating=!1}}}failoverDraftKey(e){return V8(e)}selectAllFailoverDrafts(e){this.failoverDraftSelections=uze(e)}failoverDraftSelected(e){return H8(this.failoverDraftSelections,e)}setFailoverDraftSelected(e,t){let n=this.failoverDraftKey(e);n&&(this.failoverDraftSelections={...this.failoverDraftSelections,[n]:!!t})}selectedFailoverDrafts(){return U8(this.failoverGeneratedRules,this.failoverDraftSelections)}selectedFailoverDraftCount(){return this.selectedFailoverDrafts().length}failoverDraftCountLabel(){return uCe({selected:this.selectedFailoverDraftCount(),total:this.failoverGeneratedRules.length})}allFailoverDraftsSelected(){return dze(this.failoverGeneratedRules,this.failoverDraftSelections)}toggleAllFailoverDrafts(){if(!(this.failoverDraftSaving||this.failoverGenerating||this.failoverGeneratedRules.length===0)){if(this.allFailoverDraftsSelected()){this.failoverDraftSelections={};return}this.selectAllFailoverDrafts(this.failoverGeneratedRules)}}failoverDraftSearchText(e){return W8(e)}filteredFailoverDrafts(){return fze(this.failoverGeneratedRules,this.failoverDraftFilter)}failoverDraftPayload(e){return pze(e)}async saveSelectedFailoverDrafts(){if(this.failoverDraftSaving||this.failoverGenerating)return;let e=this.selectedFailoverDrafts();if(e.length===0){this.failoverError=pCe();return}this.failoverDraftSaving=!0,this.failoverError=``;try{for(let t of e){let e=this.failoverDraftPayload(t);if(!e.primary_model||e.fallback_models.length===0){this.failoverError=gCe();return}let n=await JX(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(n.stale)return;if(!n.ok){this.failoverError=HY();return}}oZ.success(yCe({count:e.length})),this.failoverDraftsOpen=!1,this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.fetchFailoverRules()}catch(e){console.error(`Failed to save generated failover mappings:`,e),this.failoverError=SCe()}finally{this.failoverDraftSaving=!1}}focusFailoverEditor(){setTimeout(()=>{let e=document.querySelector(`[data-failover-editor]`),t=e&&e.querySelector?e.querySelector(`[data-modal-autofocus], input:not([disabled]), textarea:not([disabled]), button:not([disabled])`):null;t&&typeof t.focus==`function`&&t.focus({preventScroll:!0})},0)}failoverTargetLabel(e){return ize(e)}failoverPrimaryModel(e){return F8(e)}failoverTargets(e){return I8(e)}findFailoverMapping(e){return R8(this.failoverRules,e)}hasActiveFailoverMapping(e){return z8(this.failoverRules,e)}failoverButtonClass(e){return oze(this.failoverRules,e)}failoverButtonLabel(e){return sze(this.failoverRules,e)}normalizeFailoverRules(e){return L8(e)}failoverRuleStatus(e){return aze(e)}qualifiedModelName(e){return Q6(e)}},mze=B(``),hze=B(``),gze=B(` `),K8=B(`
                        `),_ze=B(``),vze=B(`
                        `),yze=B(` `),bze=B(`
                        `),xze=B(`
                        `),Sze=B(`
                        `);function Cze(e,t){O(t,!0);let n=A(()=>N8.modelRowPricing(t.row)),r=A(()=>t.row.is_alias?t.row.alias&&t.row.alias.slowdown:t.row.masking_alias&&t.row.masking_alias.slowdown!=null?t.row.masking_alias.slowdown:t.row.access&&t.row.access.override&&t.row.access.override.slowdown),i=A(()=>Number(R(r)==null?0:R(r)));var a=Sze(),o=P(a),s=P(o),c=P(s),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=e=>{var t=mze();L((e,n)=>{K(t,`aria-label`,e),K(t,`title`,n)},[()=>m_(),()=>m_()]),V(e,t)};U(d,e=>{t.row.is_alias&&e(f)});var p=I(d,2),m=e=>{var t=hze();L((e,n)=>{K(t,`aria-label`,e),K(t,`title`,n)},[()=>__(),()=>__()]),V(e,t)};U(p,e=>{!t.row.is_alias&&t.row.masking_alias&&e(m)});var h=I(p,2),g=e=>{var t=gze(),n=P(t,!0);D(t),L((e,r)=>{K(t,`title`,e),H(n,r)},[()=>b_(),()=>C_()]),V(e,t)},_=A(()=>p8(t.row));U(h,e=>{R(_)&&e(g)}),D(c);var v=I(c,2),y=e=>{var n=K8(),r=P(n),i=I(r),a=P(i,!0);D(i),D(n),L(e=>{H(r,`${e??``} `),H(a,t.row.secondary_name)},[()=>k_()]),V(e,n)};U(v,e=>{t.row.is_alias&&e(y)});var b=I(v,2),x=e=>{var n=vze(),r=P(n),i=I(r),a=P(i,!0);D(i);var o=I(i,2),s=e=>{var n=_ze(),r=P(n);D(n),L((e,t,i,a)=>{K(n,`aria-label`,e),K(n,`title`,t),n.disabled=i,H(r,`[${a??``}]`)},[()=>S8.rowDeletingKey===t.row.key?V_({model:t.row.display_name}):R_({model:t.row.display_name}),()=>S8.rowDeletingKey===t.row.key?V_({model:t.row.display_name}):R_({model:t.row.display_name}),()=>!!S8.rowDeletingKey,()=>F_()]),z(`click`,n,()=>S8.removeRedirectRow(t.row)),V(e,n)},c=A(()=>S8.virtualModelsAvailable&&PRe(t.row));U(o,e=>{R(c)&&e(s)}),D(n),L((e,t)=>{H(r,`${e??``} `),H(a,t)},[()=>M_(),()=>r8(t.row.masking_alias)]),V(e,n)};U(b,e=>{!t.row.is_alias&&t.row.masking_alias&&e(x)});var S=I(b,2),C=e=>{var t=K8(),n=P(t),r=I(n),a=P(r,!0);D(r),D(t),L((e,t)=>{H(n,`${e??``} `),H(a,t)},[()=>W_(),()=>q_({value:R(i)})]),V(e,t)};U(S,e=>{R(i)>0&&e(C)}),D(s),D(o);var w=I(o);W(w,17,()=>t.columns,Ir,(e,r)=>{var i=yze(),a=P(i,!0);D(i),L(e=>{G(i,1,li(R(r).class),`svelte-1iynym`),H(a,e)},[()=>R(r).value(t.row,R(n))]),V(e,i)});var T=I(w),ee=P(T),E=e=>{var n=bze(),r=P(n);P8(r,{get row(){return t.row}});var i=I(r,2),a=e=>{{let n=A(()=>S8.rowDeletingKey===t.row.key?dK({name:t.row.alias.name}):cK({name:t.row.alias.name})),r=A(()=>!!S8.rowDeletingKey);Y3(e,{get label(){return R(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>S8.removeAliasRow(t.row),get disabled(){return R(r)},children:(e,t)=>{q(e,{get icon(){return gX},class:`table-icon-svg`})},$$slots:{default:!0}})}},o=A(()=>S8.virtualModelsAvailable&&NRe(t.row));U(i,e=>{R(o)&&e(a)});var s=I(i,2),c=e=>{{let n=A(()=>mK({name:t.row.alias.name}));Y3(e,{get label(){return R(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>S8.openVirtualModelEditAlias(t.row.alias),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(s,e=>{S8.virtualModelsAvailable&&e(c)}),D(n),V(e,n)},te=e=>{var n=xze(),r=P(n);P8(r,{get row(){return t.row}});var i=I(r,2),a=e=>{{let n=A(()=>N8.modelPricingButtonLabel(WG({name:t.row.display_name}),N8.hasModelPricingOverride(t.row))),r=A(()=>N8.modelPricingButtonClass(N8.hasModelPricingOverride(t.row)));Y3(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>N8.openModelPricingOverrideEdit(t.row),children:(e,t)=>{q(e,{get icon(){return eX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(i,e=>{N8.modelPricingOverridesAvailable&&e(a)});var o=I(i,2),s=e=>{{let n=A(()=>Q.failoverButtonLabel(t.row)),r=A(()=>Q.failoverButtonClass(t.row));Y3(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>Q.openFailoverForModel(t.row),children:(e,t)=>{q(e,{get icon(){return $Te},class:`table-icon-svg`})},$$slots:{default:!0}})}},c=A(()=>Q.failoverAvailable&&Q.failoverEnabled());U(o,e=>{R(c)&&e(s)});var l=I(o,2),u=e=>{{let n=A(()=>Z.rateLimitGaugeTitle(t.row.display_name,Z.rateLimitGaugeClassForModel(t.row))),r=A(()=>Z.rateLimitGaugeClassForModel(t.row));Y3(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>Z.openRateLimitInspectorForModel(t.row),children:(e,t)=>{q(e,{get icon(){return iX},class:`table-icon-svg`})},$$slots:{default:!0}})}},d=A(()=>Z.rateLimitsEnabled()&&Z.rateLimitInspectorModelID(t.row));U(l,e=>{R(d)&&e(u)});var f=I(l,2),p=e=>{{let n=A(()=>_K({name:t.row.display_name}));Y3(e,{get label(){return R(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>S8.openVirtualModelEditAlias(t.row.masking_alias),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(f,e=>{S8.virtualModelsAvailable&&t.row.masking_alias&&t.row.masking_alias.name&&e(p)});var m=I(f,2),h=e=>{{let n=A(()=>g8($G({name:t.row.display_name}),m8(t.row.access))),r=A(()=>h8(m8(t.row.access)));Y3(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>S8.openVirtualModelEditModel(t.row),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(m,e=>{S8.virtualModelsAvailable&&!t.row.masking_alias&&e(h)}),D(n),V(e,n)};U(ee,e=>{t.row.is_alias?e(E):e(te,-1)}),D(T),D(a),L((e,n)=>{K(a,`id`,e),G(a,1,n,`svelte-1iynym`),H(u,t.row.display_name)},[()=>FRe(t.row)||void 0,()=>li(MRe(t.row))]),V(e,a),k()}xr([`click`]);var wze={headerLines:[cq()],value:e=>(e.model?.metadata?.modes??[]).join(`, `)||`-`};function q8(e,t){return{headerLines:e,class:`col-price`,value:t}}var J8=q8([dq()],(e,t)=>dZ(t?.input_per_mtok)+` / `+dZ(t?.output_per_mtok)),Y8={all:[J8],text_generation:[wze,J8,q8([mq()],(e,t)=>dZ(t?.cached_input_per_mtok))],embedding:[q8([_q(),`$/MTok`],(e,t)=>dZ(t?.input_per_mtok))],image:[q8([bq()],(e,t)=>fZ(t?.per_image))],audio:[q8([Cq()],(e,t)=>fZ(t?.per_second_input)),q8([Eq()],(e,t)=>fZ(t?.per_character_input))],video:[q8([kq()],(e,t)=>fZ(t?.per_second_input)),q8([Mq()],(e,t)=>fZ(t?.per_second_output))],utility:[q8([Fq()],(e,t)=>fZ(t?.per_page)),q8([Rq()],(e,t)=>fZ(t?.per_request))]};function X8(e){return Y8[e]||Y8.all}function Tze(e){return X8(e).length+2}var Eze=B(`
                        `),Dze=B(` `,1),Oze=B(``),kze=B(` `),Aze=B(` `),jze=B(`
                        `),Mze=B(`
                        `),Nze=B(`
                        `);function Pze(e,t){O(t,!0);let n=A(()=>kZ.activeCategory||`all`),r=A(()=>X8(R(n))),i=A(()=>Tze(R(n)));var a=Nze(),o=P(a),s=P(o),c=P(s),l=P(c),u=P(l,!0);D(l);var d=I(l);W(d,17,()=>R(r),Ir,(e,t)=>{var n=Oze();W(n,21,()=>R(t).headerLines,Ir,(e,t,n)=>{var r=Dze(),i=F(r),a=e=>{V(e,Eze())};U(i,e=>{n>0&&e(a)});var o=I(i,1,!0);L(()=>H(o,R(t))),V(e,r)}),D(n),L(()=>G(n,1,li(R(t).class),`svelte-1911hy6`)),V(e,n)});var f=I(d);rze(P(f),{}),D(f),D(c),D(s),W(I(s),17,()=>S8.filteredDisplayModelGroups,e=>e.key,(e,t)=>{var n=Mze(),a=P(n),o=P(a),s=P(o),c=P(s),l=P(c),u=P(l),d=P(u,!0);D(u);var f=I(u,2),p=e=>{var n=kze(),r=P(n,!0);D(n),L(()=>H(r,`(`+R(t).type_label+`)`)),V(e,n)};U(f,e=>{R(t).type_label&&e(p)});var m=I(f,2),h=e=>{var n=Aze(),r=P(n,!0);D(n),L(()=>H(r,R(t).item_count_label)),V(e,n)};U(m,e=>{R(t).item_count_label&&e(h)}),D(l);var g=I(l,2),_=e=>{var n=jze(),r=P(n,!0);D(n),L(()=>H(r,R(t).access_summary)),V(e,n)};U(g,e=>{R(t).access_summary&&e(_)}),D(c);var v=I(c,2),y=P(v),b=e=>{P8(e,{get row(){return R(t)}})};U(y,e=>{R(t).access.selector&&e(b)});var x=I(y,2),S=e=>{{let n=A(()=>N8.modelPricingButtonLabel(qG({name:R(t).display_name}),N8.hasProviderPricingOverride(R(t)))),r=A(()=>N8.modelPricingButtonClass(N8.hasProviderPricingOverride(R(t))));Y3(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>N8.openProviderPricingOverrideEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return eX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(x,e=>{N8.modelPricingOverridesAvailable&&R(t).provider_name&&e(S)});var C=I(x,2),w=e=>{{let n=A(()=>Z.rateLimitGaugeTitle(`provider `+R(t).display_name,Z.rateLimitGaugeClassForProvider(R(t)))),r=A(()=>Z.rateLimitGaugeClassForProvider(R(t)));Y3(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>Z.openRateLimitInspectorForProvider(R(t)),children:(e,t)=>{q(e,{get icon(){return iX},class:`table-icon-svg`})},$$slots:{default:!0}})}},T=A(()=>Z.rateLimitsEnabled()&&R(t).provider_name);U(C,e=>{R(T)&&e(w)});var ee=I(C,2),E=e=>{{let n=A(()=>g8(nK({name:R(t).display_name}),m8(R(t).access))),r=A(()=>h8(m8(R(t).access)));Y3(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>S8.openProviderOverrideEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(ee,e=>{S8.virtualModelsAvailable&&R(t).access.selector&&e(E)}),D(v),D(s),D(o),D(a),W(I(a),17,()=>R(t).rows,e=>e.key,(e,t)=>{Cze(e,{get row(){return R(t)},get columns(){return R(r)}})}),D(n),L(()=>{K(o,`colspan`,R(i)),H(d,R(t).display_name)}),V(e,n)}),D(o),D(a),L(e=>H(u,e),[()=>Rg()]),V(e,a),k()}var Fze=B(``);function Z8(e,t){let n=zi(t,`enabled`,3,!1),r=zi(t,`label`,3,``),i=zi(t,`disabled`,3,!1),a=zi(t,`restricted`,3,!1);var o=Fze();let s;var c=I(P(o),2),l=P(c,!0);D(c),D(o),L(()=>{s=G(o,1,`alias-toggle`,null,s,{enabled:n(),restricted:a()}),o.disabled=i(),K(o,`aria-label`,(n()?`Disable `:`Enable `)+r()),H(l,t.text??(n()?`Enabled`:`Disabled`))}),z(`click`,o,function(...e){t.onclick?.apply(this,e)}),V(e,o)}xr([`click`]);var Ize=B(``),Lze=B(`
                        `);function Q8(e,t){O(t,!0);let n=zi(t,`model`,15,``),r=zi(t,`weight`,15),i=zi(t,`id`,3,void 0),a=zi(t,`placeholder`,3,`openai/gpt-4o`),o=zi(t,`showRemove`,3,!0);var s=Lze(),c=P(s);wi(c);var l=I(c,2),u=e=>{var t=Ize();wi(t),L((e,n)=>{K(t,`placeholder`,e),t.disabled=S8.vmFormManaged,K(t,`aria-label`,n)},[()=>dy(),()=>cy()]),ji(t,r),V(e,t)},d=A(()=>S8.vmFormShowWeights());U(l,e=>{R(d)&&e(u)});var f=I(l,2),p=e=>{{let n=A(()=>my());Y3(e,{get label(){return R(n)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,get onclick(){return t.onremove},get disabled(){return S8.vmFormManaged},children:(e,t)=>{q(e,{get icon(){return gX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(f,e=>{o()&&e(p)}),D(s),L(e=>{K(c,`id`,i()),K(c,`placeholder`,a()),c.disabled=S8.vmFormManaged,K(c,`aria-label`,e)},[()=>ay()]),ji(c,n),V(e,s),k()}var Rze=B(`

                        `),zze=B(``),Bze=B(`

                        `),Vze=B(``),$8=B(``),Hze=B(``),Uze=B(`
                        `,1),Wze=B(``),Gze=B(``),Kze=B(` `,1),qze=B(` `),Jze=B(`
                        `,1);function Yze(e,t){O(t,!0);let n=S8;mn(()=>{n.vmFormOpen&&XX.ensureLoaded()});{let t=e=>{{let t=e=>{var t=Rze(),r=P(t,!0);D(t),L(e=>H(r,e),[()=>n.vmFormDisplayName||n.vmForm.source||m_()]),V(e,t)},r=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>cv()]),V(e,t)},i=A(()=>av());s3(e,{copyId:`virtual-model-help-copy`,get label(){return R(i)},get open(){return n.vmFormHelpOpen},set open(e){n.vmFormHelpOpen=e},title:t,help:r,$$slots:{title:!0,help:!0}})}},r=e=>{var t=Or(),r=F(t),i=e=>{var t=zze();L(()=>t.disabled=n.vmDeleting||n.vmSubmitting),z(`click`,t,()=>n.deleteVirtualModel()),V(e,t)};U(r,e=>{n.vmFormHasExisting&&!n.vmFormManaged&&e(i)}),V(e,t)},i=A(()=>X_()),a=A(()=>n.vmDeleting||n.vmFormManaged),o=A(()=>n.vmFormMode===`edit`?$_():nv()),s=A(()=>n.vmFormMode===`edit`?fX:lX);S6(e,{get open(){return n.vmFormOpen},get ariaLabel(){return R(i)},get error(){return n.vmFormError},get submitting(){return n.vmSubmitting},get submitDisabled(){return R(a)},get submitLabel(){return R(o)},get submitIcon(){return R(s)},onclose:()=>n.closeVirtualModelForm(),onsubmit:()=>n.submitVirtualModelForm(),header:t,extraActions:r,children:(e,t)=>{var r=Jze(),i=F(r),a=e=>{var t=Bze(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>dv()]),V(e,t)};U(i,e=>{n.vmFormManaged&&e(a)});var o=I(i,2);{let e=A(()=>mv());C6(o,{id:`virtual-model-source`,get label(){return R(e)},children:(e,t)=>{var r=Vze();wi(r),L(()=>r.disabled=n.vmFormSourceLocked||n.vmFormManaged),ji(r,()=>n.vmForm.source,e=>n.vmForm.source=e),V(e,r)},$$slots:{default:!0}})}var s=I(o,2);W(s,21,()=>kZ.models,e=>Q6(e),(e,t,n,r)=>{var i=$8(),a=P(i,!0);D(i);var o={};L((e,t)=>{H(a,e),o!==(o=t)&&(i.value=(i.__value=t)??``)},[()=>Q6(R(t)),()=>Q6(R(t))]),V(e,i)}),D(s);var c=I(s,2),l=P(c),u=P(l,!0);D(l);var d=I(l,2);{let e=A(()=>n.vmFormHasPrimaryTarget());Q8(d,{id:`virtual-model-target`,get showRemove(){return R(e)},onremove:()=>n.removePrimaryTarget(),get model(){return n.vmForm.target_model},set model(e){n.vmForm.target_model=e},get weight(){return n.vmForm.target_weight},set weight(e){n.vmForm.target_weight=e}})}var f=I(d,2);W(f,17,()=>n.vmForm.targets,Ir,(e,t,r)=>{Q8(e,{placeholder:`groq/llama`,onremove:()=>n.removeVmTarget(r),get model(){return R(t).model},set model(e){R(t).model=e},get weight(){return R(t).weight},set weight(e){R(t).weight=e}})});var p=I(f,2),m=P(p),h=P(m);q(h,{get icon(){return lX},class:`form-action-icon`});var g=I(h,2),_=P(g,!0);D(g),D(m),D(p),D(c);var v=I(c,2),y=e=>{var t=Uze(),r=F(t);{let e=A(()=>bv());C6(r,{id:`virtual-model-strategy`,get label(){return R(e)},children:(e,t)=>{var r=Hze();W(r,21,()=>n.vmStrategyOptions(),e=>e.value,(e,t)=>{var n=$8(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(r),L(()=>r.disabled=n.vmFormManaged),_i(r,()=>n.vmForm.strategy,e=>n.vmForm.strategy=e),V(e,r)},$$slots:{default:!0}})}var i=I(r,2),a=P(i),o=P(a);wi(o);var s=I(o,2),c=P(s,!0);D(s),D(a),D(i),L(e=>{o.disabled=n.vmFormManaged,H(c,e)},[()=>Cv()]),Mi(o,()=>n.vmForm.session_affinity,e=>n.vmForm.session_affinity=e),V(e,t)},b=A(()=>n.vmFormShowStrategy());U(v,e=>{R(b)&&e(y)});var x=I(v,2),S=P(x);{let e=e=>{var t=Wze(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Ev()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>Mv()]),V(e,t)},r=A(()=>kv());s3(S,{copyId:`virtual-model-user-paths-help`,get label(){return R(r)},get open(){return n.vmFormUserPathsHelpOpen},set open(e){n.vmFormUserPathsHelpOpen=e},title:e,help:t,$$slots:{title:!0,help:!0}})}var C=I(S,2);at(C),K(C,`placeholder`,`/ -/team/alpha -/non-existing`),D(x);var w=I(x,2);{let e=A(()=>Fv());C6(w,{id:`virtual-model-description`,get label(){return R(e)},children:(e,t)=>{var r=Gze();at(r),L(e=>{K(r,`placeholder`,e),r.disabled=n.vmFormManaged},[()=>Rv()]),ji(r,()=>n.vmForm.description,e=>n.vmForm.description=e),V(e,r)},$$slots:{default:!0}})}var T=I(w,2),ee=e=>{{let t=A(()=>Vv());C6(e,{id:`virtual-model-slowdown`,get label(){return R(t)},children:(e,t)=>{var r=Kze(),i=F(r);wi(i);var a=I(i,2),o=P(a,!0);D(a),L((e,t)=>{K(i,`placeholder`,e),i.disabled=n.vmFormManaged,H(o,t)},[()=>Wv(),()=>qv()]),ji(i,()=>n.vmForm.slowdown,e=>n.vmForm.slowdown=e),V(e,r)},$$slots:{default:!0}})}},E=A(()=>n.vmFormSupportsSlowdown());U(T,e=>{R(E)&&e(ee)});var te=I(T,2),ne=P(te),re=e=>{var t=qze(),r=P(t,!0);D(t),L(e=>H(r,e),[()=>Xv({default:n.vmFormDefaultEnabled?$v():ny(),effective:n.vmFormEffectiveEnabled?$v():ny()})]),V(e,t)};U(ne,e=>{n.vmFormMode===`edit`&&e(re)});var ie=I(ne,2),ae=P(ie);{let e=A(()=>n.vmFormToggleRestricted()),t=A(()=>bK()),r=A(()=>n.vmFormToggleLabel());Z8(ae,{get enabled(){return n.vmForm.enabled},get restricted(){return R(e)},get label(){return R(t)},get disabled(){return n.vmFormManaged},get text(){return R(r)},onclick:()=>{n.vmFormManaged||(n.vmForm.enabled=!n.vmForm.enabled)}})}D(ie),D(te),L((e,t)=>{H(u,e),m.disabled=n.vmFormManaged,H(_,t),C.disabled=n.vmFormManaged},[()=>k_(),()=>_v()]),z(`click`,m,()=>n.addVmTarget()),ji(C,()=>n.vmForm.user_paths,e=>n.vmForm.user_paths=e),V(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}k()}xr([`click`]);var Xze=B(`

                        `,1),Zze=B(``),Qze=B(``),e5=B(``),$ze=B(``),eBe=B(`
                        `),tBe=B(`
                        `),nBe=B(`
                        `),rBe=B(`
                        `),iBe=B(`

                        USD
                        `,1);function aBe(e,t){O(t,!0);let n=N8;{let t=e=>{var t=Xze(),r=F(t),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a),L((e,t)=>{H(i,e),H(o,t)},[()=>Cy(),()=>n.modelPricingOverrideFormDisplayName||n.modelPricingOverrideForm.selector||Ey()]),V(e,t)},r=e=>{var t=Or(),r=F(t),i=e=>{var t=Zze(),r=P(t,!0);D(t),L(e=>{t.disabled=n.modelPricingOverrideSubmitting,H(r,e)},[()=>ab()]),z(`click`,t,()=>n.deleteModelPricingOverride()),V(e,t)};U(r,e=>{n.modelPricingOverrideFormHasExistingOverride&&e(i)}),V(e,t)},i=A(()=>_y()),a=A(()=>by());S6(e,{get open(){return n.modelPricingOverrideFormOpen},get ariaLabel(){return R(i)},dialogClass:`model-pricing-editor`,get error(){return n.modelPricingOverrideError},get submitting(){return n.modelPricingOverrideSubmitting},get submitLabel(){return R(a)},onclose:()=>n.closeModelPricingOverrideForm(),onsubmit:()=>n.submitModelPricingOverrideForm(),header:t,extraActions:r,children:(e,t)=>{var r=iBe(),i=F(r),a=P(i);{let e=A(()=>ky());C6(a,{id:`model-pricing-override-selector`,get label(){return R(e)},children:(e,t)=>{var r=Qze();wi(r),ji(r,()=>n.modelPricingOverrideForm.selector,e=>n.modelPricingOverrideForm.selector=e),V(e,r)},$$slots:{default:!0}})}var o=I(a,2),s=e=>{{let t=A(()=>My());C6(e,{id:`model-pricing-override-scope`,get label(){return R(t)},children:(e,t)=>{var r=$ze();W(r,21,()=>n.modelPricingOverrideFormScopeOptions,e=>e.value,(e,t)=>{var n=e5(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(r),z(`change`,r,()=>n.setModelPricingOverrideScope(n.modelPricingOverrideFormScope)),_i(r,()=>n.modelPricingOverrideFormScope,e=>n.modelPricingOverrideFormScope=e),V(e,r)},$$slots:{default:!0}})}};U(o,e=>{n.modelPricingOverrideFormScopeOptions.length>1&&e(s)}),D(i);var c=I(i,2),l=P(c,!0);D(c);var u=I(c,2);W(u,21,()=>n.modelPricingOverrideRows,e=>e.id,(e,t,r)=>{var i=eBe(),a=P(i),o=P(a),s=P(o,!0);D(o);var c=I(o,2);W(c,21,()=>n.availablePricingFieldOptions(R(t)),e=>e.value,(e,t)=>{var n=e5(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).group+` - `+R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(c),D(a);var l=I(a,2),u=P(l),d=P(u,!0);D(u);var f=I(u,2);wi(f),D(l);var p=I(l,2);{let e=A(()=>Wy({price:n.pricingFieldLabel(R(t).field)}));Y3(p,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn pricing-override-remove-row`,onclick:()=>n.removeModelPricingOverrideRow(R(t)),children:(e,t)=>{q(e,{get icon(){return yX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(i),L((e,n)=>{K(o,`for`,`pricing-type-`+R(t).id),H(s,e),K(c,`id`,`pricing-type-`+R(t).id),K(u,`for`,`pricing-value-`+R(t).id),H(d,n),K(f,`id`,`pricing-value-`+R(t).id)},[()=>Ry(),()=>Vy()]),_i(c,()=>R(t).field,e=>R(t).field=e),ji(f,()=>R(t).value,e=>R(t).value=e),V(e,i)}),D(u);var d=I(u,2),f=P(d),p=P(f);q(p,{get icon(){return lX},class:`form-action-icon`});var m=I(p,2),h=P(m,!0);D(m),D(f),D(d);var g=I(d,2),_=e=>{var t=tBe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Xy()]),V(e,t)};U(g,e=>{n.modelPricingOverrideFormPreservedTiers.length>0&&e(_)});var v=I(g,2),y=P(v),b=P(y),x=P(b,!0);D(b);var S=I(b,4),C=P(S,!0);D(S),D(y);var w=I(y,2),T=e=>{var t=nBe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>nb()]),V(e,t)},ee=A(()=>n.modelPricingEffectivePreviewRows().length===0);U(w,e=>{R(ee)&&e(T)}),W(I(w,2),17,()=>n.modelPricingEffectivePreviewRows(),e=>e.field,(e,t)=>{var n=rBe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(n),L(e=>{H(i,R(t).label),H(o,e),H(c,R(t).source)},[()=>R(t).value===null||R(t).value===void 0?`-`:fZ(Number(R(t).value))]),V(e,n)}),D(v),L((e,t,n,r)=>{H(l,e),H(h,t),H(x,n),H(C,r)},[()=>Fy(),()=>qy(),()=>Ry(),()=>$y()]),z(`click`,f,()=>n.addModelPricingOverrideRow()),V(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}k()}xr([`click`,`change`]);var oBe=B(`

                        `,1),sBe=B(``),cBe=B(`

                        `),lBe=B(``),uBe=B(`
                        `),dBe=B(`
                        `,1),fBe=B(`
                        `);function pBe(e,t){O(t,!0);{let t=e=>{var t=oBe(),n=F(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i,!0);D(i),L(e=>{H(r,e),H(a,Q.failoverForm.source||`Failover`)},[()=>db()]),V(e,t)},n=e=>{var t=Or(),n=F(t),r=e=>{var t=sBe(),n=P(t,!0);D(t),L(e=>{t.disabled=Q.failoverSaving||Q.failoverGenerating,H(n,e)},[()=>Fb()]),z(`click`,t,()=>Q.deleteFailoverRule()),V(e,t)};U(n,e=>{Q.failoverFormMode===`edit`&&!Q.failoverFormManaged&&e(r)}),V(e,t)},r=A(()=>cb()),i=A(()=>Q.failoverGenerating||Q.failoverFormManaged),a=A(()=>$_());S6(e,{get open(){return Q.failoverFormOpen},get ariaLabel(){return R(r)},get error(){return Q.failoverError},get submitting(){return Q.failoverSaving},get submitDisabled(){return R(i)},get submitLabel(){return R(a)},onclose:()=>Q.closeFailoverForm(),onsubmit:()=>Q.submitFailoverForm(),header:t,extraActions:n,children:(e,t)=>{var n=fBe(),r=P(n),i=e=>{var t=cBe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>mb()]),V(e,t)};U(r,e=>{Q.failoverFormManaged&&e(i)});var a=I(r,2);W(a,21,()=>kZ.models,Ir,(e,t,n,r)=>{var i=lBe(),a=P(i,!0);D(i);var o={};L((e,t)=>{H(a,e),o!==(o=t)&&(i.value=(i.__value=t)??``)},[()=>Q6(R(t)),()=>Q6(R(t))]),V(e,i)}),D(a);var o=I(a,2);{let e=A(()=>_b());C6(o,{id:`failover-target`,get label(){return R(e)},children:(e,t)=>{var n=dBe(),r=F(n),i=P(r),a=P(i);wi(a);var o=I(a,2),s=e=>{{let t=A(()=>Cb());Y3(e,{get label(){return R(t)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removePrimaryFailoverTarget(),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{q(e,{get icon(){return gX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(o,e=>{Q.failoverForm.target_model&&e(s)}),D(i),W(I(i,2),17,()=>Q.failoverForm.targets,Ir,(e,t,n)=>{var r=uBe(),i=P(r);wi(i);var a=I(i,2);{let e=A(()=>Cb());Y3(a,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removeFailoverTarget(n),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{q(e,{get icon(){return gX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r),L(e=>{i.disabled=Q.failoverFormManaged,K(i,`aria-label`,e)},[()=>bb()]),ji(i,()=>R(t).model,e=>R(t).model=e),V(e,r)}),D(r);var c=I(r,2),l=P(c),u=P(l);q(u,{get icon(){return lX},class:`form-action-icon`});var d=I(u,2),f=P(d,!0);D(d),D(l);var p=I(l,2),m=P(p);q(m,{get icon(){return vX},class:`form-action-icon`});var h=I(m,2),g=P(h,!0);D(h),D(p),D(c),L((e,t,n,r)=>{a.disabled=Q.failoverFormManaged,K(a,`aria-label`,e),l.disabled=Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving,H(f,t),p.disabled=n,H(g,r)},[()=>bb(),()=>Eb(),()=>Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving||!Q.failoverEnabled(),()=>Q.failoverGenerating?kb():Mb()]),ji(a,()=>Q.failoverForm.target_model,e=>Q.failoverForm.target_model=e),z(`click`,l,()=>Q.addFailoverTarget()),z(`click`,p,()=>Q.generateFailoverForForm()),V(e,n)},$$slots:{default:!0}})}var s=I(o,2),c=P(s);Z8(P(c),{get enabled(){return Q.failoverForm.enabled},label:`failover mapping`,get disabled(){return Q.failoverFormManaged},onclick:()=>{Q.failoverFormManaged||(Q.failoverForm.enabled=!Q.failoverForm.enabled)}}),D(c),D(s),D(n),V(e,n)},$$slots:{header:!0,extraActions:!0,default:!0}})}k()}xr([`click`]);var mBe=B(` `),hBe=B(`
                        `),gBe=B(``),_Be=B(`
                        `),t5=B(`

                        `),vBe=B(``),yBe=B(``);function n5(e,t){O(t,!0),QX(e,{get open(){return Q.failoverDraftsOpen},variant:`editor`,onclose:()=>Q.closeFailoverDraftsModal(),children:(e,t)=>{var n=yBe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(i);var l=I(i,2),u=P(l),d=e=>{var t=mBe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Q.failoverDraftCountLabel()]),V(e,t)};U(u,e=>{Q.failoverGeneratedRules.length>0&&e(d)});var f=I(u,2);{let e=A(()=>qb());ZX(f,{get label(){return R(e)},onclick:()=>Q.closeFailoverDraftsModal(),get disabled(){return Q.failoverDraftSaving}})}D(l),D(r);var p=I(r,2),m=e=>{{let t=A(()=>Xb());J3(e,{get label(){return R(t)},class:`failover-drafts-loading`})}};U(p,e=>{Q.failoverGenerating&&e(m)});var h=I(p,2),g=e=>{var t=hBe(),n=P(t);{let e=A(()=>$b()),t=A(()=>nx());z3(n,{get placeholder(){return R(e)},get label(){return R(t)},get value(){return Q.failoverDraftFilter},set value(e){Q.failoverDraftFilter=e}})}var r=I(n,2),i=P(r);q(i,{get icon(){return XY},class:`form-action-icon`});var a=I(i,2),o=P(a,!0);D(a),D(r),D(t),L(e=>{r.disabled=Q.failoverDraftSaving,H(o,e)},[()=>Q.allFailoverDraftsSelected()?cx():ax()]),z(`click`,r,()=>Q.toggleAllFailoverDrafts()),V(e,t)};U(h,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&e(g)});var _=I(h,2),v=e=>{var t=_Be();W(t,21,()=>Q.filteredFailoverDrafts(),e=>`failover-draft:`+Q.failoverPrimaryModel(e),(e,t)=>{var n=gBe(),r=P(n);wi(r);var i=I(r,2),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(i),D(n),L((e,t,n,i)=>{Ei(r,e),r.disabled=Q.failoverDraftSaving,K(r,`aria-label`,t),H(o,n),H(c,i)},[()=>Q.failoverDraftSelected(R(t)),()=>dx({model:Q.failoverPrimaryModel(R(t))}),()=>Q.failoverPrimaryModel(R(t)),()=>Q.failoverTargetLabel(R(t))]),z(`change`,r,e=>Q.setFailoverDraftSelected(R(t),e.currentTarget.checked)),V(e,n)}),D(t),V(e,t)},y=A(()=>!Q.failoverGenerating&&Q.filteredFailoverDrafts().length>0);U(_,e=>{R(y)&&e(v)});var b=I(_,2),x=e=>{var t=t5(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>mx()]),V(e,t)};U(b,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length===0&&!Q.failoverError&&e(x)});var S=I(b,2),C=e=>{var t=t5(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_x()]),V(e,t)},w=A(()=>!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&Q.filteredFailoverDrafts().length===0);U(S,e=>{R(w)&&e(C)});var T=I(S,2),ee=e=>{var t=vBe(),n=P(t,!0);D(t),L(()=>H(n,Q.failoverError)),V(e,t)};U(T,e=>{Q.failoverError&&e(ee)});var E=I(T,2),te=P(E),ne=P(te,!0);D(te);var re=I(te,2),ie=P(re);q(ie,{get icon(){return fX},class:`form-action-icon`});var ae=I(ie,2),oe=P(ae,!0);D(ae),D(re),D(E),D(n),L((e,t,r,i,a,s)=>{K(n,`aria-label`,e),H(o,t),H(c,r),te.disabled=Q.failoverDraftSaving,H(ne,i),re.disabled=a,H(oe,s)},[()=>Rb(),()=>Vb(),()=>Wb(),()=>Ta(),()=>Q.failoverGenerating||Q.failoverDraftSaving||Q.selectedFailoverDraftCount()===0,()=>Q.failoverDraftSaving?bx():Cx()]),z(`click`,te,()=>Q.closeFailoverDraftsModal()),z(`click`,re,()=>Q.saveSelectedFailoverDrafts()),V(e,n)},$$slots:{default:!0}}),k()}xr([`click`,`change`]);var bBe=B(`
                        `),r5=B(` `,1),xBe=B(`

                        `),SBe=B(`

                        `),CBe=B(`
                        `),wBe=B(`
                        `),TBe=B(`

                        `),EBe=B(``),DBe=B(``);function OBe(e,t){O(t,!0);function n(){Y.dialogOpen||Z.closeRateLimitInspector()}QX(e,{get open(){return Z.rateLimitInspectorOpen},variant:`editor`,onclose:n,children:(e,t)=>{var n=DBe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s),l=P(c,!0);D(c),D(s),D(i),ZX(I(i,2),{label:`Close rate limits inspector`,onclick:()=>Z.closeRateLimitInspector()}),D(r);var u=I(r,2),d=e=>{J3(e,{label:`Loading rate limits...`})},f=e=>{var t=bBe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XD()]),V(e,t)},p=e=>{var t=Or();W(F(t),17,()=>Z.rateLimitInspectorSections(),e=>e.key,(e,t)=>{var n=TBe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2);{let e=A(()=>`Add `+R(t).title.toLowerCase());Y3(o,{get label(){return R(e)},class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(R(t).scope,R(t).subject),children:(e,t)=>{var n=r5(),r=F(n);q(r,{get icon(){return lX},class:`table-icon-svg`});var i=I(r,2),a=P(i,!0);D(i),L(e=>H(a,e),[()=>mO()]),V(e,n)},$$slots:{default:!0}})}D(r);var s=I(r,2),c=e=>{var n=xBe(),r=P(n,!0);D(n),L(()=>H(r,R(t).hint)),V(e,n)};U(s,e=>{R(t).hint&&e(c)});var l=I(s,2),u=e=>{var t=SBe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_O()]),V(e,t)},d=e=>{var n=wBe();W(n,21,()=>R(t).items,e=>Z.rateLimitKey(e),(e,t)=>{var n=CBe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s),l=P(c);{let e=A(()=>Z.rateLimitIsConcurrent(R(t))?qY:hX);q(l,{get icon(){return R(e)},class:`budget-period-icon`})}var u=I(l,2),d=P(u,!0);D(u),D(c),D(s);var f=I(s,2),p=P(f),m=P(p),h=P(m,!0);D(m);var g=I(m,2),_=P(g,!0);D(g),D(p);var v=I(p,2),y=P(v),b=e=>{Y3(e,{label:`Edit rate limit`,class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(null,null,R(t)),children:(e,t)=>{var n=r5(),r=F(n);q(r,{get icon(){return cX},class:`budget-action-icon`});var i=I(r,2),a=P(i,!0);D(i),L(e=>H(a,e),[()=>bO()]),V(e,n)},$$slots:{default:!0}})},x=A(()=>!Z.rateLimitIsReadOnly(R(t)));U(y,e=>{R(x)&&e(b)}),D(v),D(f),D(i),D(r),D(n),L((e,t,r,i,a,s,c,l)=>{G(n,1,`budget-row ${e??``}`),mi(n,t),K(n,`title`,r),H(o,i),H(d,a),H(h,s),K(g,`title`,c),H(_,l)},[()=>Z.rateLimitPressureClass(R(t)),()=>Z.rateLimitPressureStyle(R(t)),()=>Z.rateLimitPressurePercent(R(t))+`% of the most constrained cap used`,()=>Z.rateLimitSubject(R(t)),()=>Z.rateLimitPeriodLabel(R(t)),()=>Z.rateLimitInspectorSummary(R(t)),()=>Z.rateLimitIsReadOnly(R(t))?`Declared in configuration; read-only in the dashboard`:`Managed via dashboard or admin API`,()=>Z.rateLimitSourceLabel(R(t))]),V(e,n)}),D(n),V(e,n)};U(l,e=>{R(t).items.length===0?e(u):e(d,-1)}),D(n),L(()=>H(a,R(t).title)),V(e,n)}),V(e,t)};U(u,e=>{Z.rateLimitsLoading?e(d):Z.rateLimitsAvailable?e(p,-1):e(f,1)});var m=I(u,2),h=P(m),g=I(h,2),_=e=>{var t=EBe();z(`click`,t,()=>{Z.closeRateLimitInspector(),CX.navigate(`rate-limits`)}),V(e,t)},v=A(()=>Z.rateLimitsEnabled());U(g,e=>{R(v)&&e(_)}),D(m),D(n),L((e,t)=>{K(n,`aria-label`,e),H(o,t),H(l,Z.rateLimitInspector.title)},[()=>dO(),()=>WD()]),z(`click`,h,()=>Z.closeRateLimitInspector()),V(e,n)},$$slots:{default:!0}}),k()}xr([`click`]);var kBe=B(`
                        `),i5=B(`
                        `),ABe=B(``),jBe=B(`
                        `),MBe=B(``),NBe=B(`
                        `),a5=B(`

                        `),PBe=B(`
                        `);function FBe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`models`&&(S8.fetchVirtualModels(),N8.fetchModelPricingOverrides(),Q.fetchFailoverRules(),Z.fetchRateLimitsPage())}),mn(()=>{let e=S8.filteredDisplayModels.length;return or(()=>S8.restartModelRendering(e)),()=>S8.stopModelRendering()});let n=A(()=>Y.needsAuth),r={all:CK,text_generation:EK,embedding:kK,image:MK,audio:FK,video:RK,utility:VK};function i(e){return r[e.category]?.()||e.display_name}var a=PBe(),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=e=>{var t=kBe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>cg({count:kZ.filter?S8.filteredDisplayModels.length+` / `+S8.displayModels.length:S8.displayModels.length})]),V(e,t)};U(l,e=>{S8.displayModels.length>0&&e(u)}),D(o);var d=I(o,2);AZ(d,{});var f=I(d,2),p=e=>{var t=i5(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>dg()]),V(e,t)};U(f,e=>{!S8.virtualModelsAvailable&&!R(n)&&e(p)});var m=I(f,2),h=e=>{var t=i5(),n=P(t,!0);D(t),L(()=>H(n,S8.aliasError)),V(e,t)};U(m,e=>{S8.aliasError&&!R(n)&&e(h)});var g=I(m,2),_=e=>{var t=i5(),n=P(t,!0);D(t),L(()=>H(n,N8.modelPricingOverrideError)),V(e,t)};U(g,e=>{N8.modelPricingOverrideError&&!R(n)&&!N8.modelPricingOverrideFormOpen&&e(_)});var v=I(g,2),y=e=>{var t=jBe();W(t,21,()=>kZ.categories,e=>e.category,(e,t)=>{var n=ABe();let r;var a=P(n),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(n),L(e=>{r=G(n,1,`category-tab svelte-scpjps`,null,r,{active:kZ.activeCategory===R(t).category}),H(o,e),H(c,R(t).count)},[()=>i(R(t))]),z(`click`,n,()=>kZ.selectCategory(R(t).category)),V(e,n)}),D(t),V(e,t)};U(v,e=>{kZ.categories.length>0&&e(y)});var b=I(v,2),x=e=>{var t=NBe(),n=P(t),r=P(n);{let e=A(()=>mg()),t=A(()=>_g());z3(r,{get placeholder(){return R(e)},get label(){return R(t)},get value(){return kZ.filter},set value(e){kZ.filter=e}})}D(n);var i=I(n,2),a=P(i),o=e=>{var t=MBe(),n=P(t);q(n,{get icon(){return lX},class:`alias-create-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L((e,n,r)=>{K(t,`aria-label`,e),K(t,`title`,n),H(i,r)},[()=>Cg(),()=>Eg(),()=>bg()]),z(`click`,t,()=>S8.openVirtualModelCreate()),V(e,t)};U(a,e=>{S8.virtualModelsAvailable&&e(o)}),D(i),D(t),V(e,t)};U(b,e=>{(S8.displayModels.length>0||kZ.filter||S8.virtualModelsAvailable)&&e(x)});var S=I(b,2),C=e=>{{let t=A(()=>S8.modelLoadingText());J3(e,{get label(){return R(t)},class:`models-loading-state`})}},w=A(()=>S8.modelsBusy()&&!R(n));U(S,e=>{R(w)&&e(C)});var T=I(S,2);Yze(T,{});var ee=I(T,2);aBe(ee,{});var E=I(ee,2),te=e=>{Pze(e,{})};U(E,e=>{(S8.displayModels.length>0||kZ.filter)&&e(te)});var ne=I(E,2),re=e=>{var t=a5(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>kg()]),V(e,t)};U(ne,e=>{S8.displayModels.length===0&&!kZ.loading&&!R(n)&&!kZ.filter&&(kZ.activeCategory===`all`||!kZ.activeCategory)&&e(re)});var ie=I(ne,2),ae=e=>{var t=a5(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mg()]),V(e,t)};U(ie,e=>{S8.displayModels.length===0&&!kZ.loading&&!R(n)&&!kZ.filter&&kZ.activeCategory&&kZ.activeCategory!==`all`&&e(ae)});var oe=I(ie,2),se=e=>{var t=a5(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Fg()]),V(e,t)};U(oe,e=>{S8.displayModels.length>0&&S8.filteredDisplayModels.length===0&&kZ.filter&&e(se)});var ce=I(oe,2);OBe(ce,{});var le=I(ce,2);q6(le,{});var ue=I(le,2);pBe(ue,{}),n5(I(ue,2),{}),D(a),L(e=>H(c,e),[()=>ag()]),V(e,a),k()}xr([`click`]);var IBe=`draft-workflow-preview`;function o5(){return{scope_provider:``,scope_model:``,scope_user_path:``,name:``,description:``,features:{cache:!0,audit:!0,usage:!0,budget:!0,guardrails:!1,failover:!0},guardrails:[]}}function s5(){return{scope_provider:``,scope_model:``,scope_user_path:``}}function LBe(e){return{ref:``,step:Number.isFinite(e)?e:10}}function c5(e){let t=e==null?``:String(e).trim();if(t===``)return NaN;let n=Number(t);return Number.isFinite(n)?n:NaN}function l5(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return n;let r=t.charAt(0).toUpperCase()+t.slice(1);for(let n of[t,r])if(Object.prototype.hasOwnProperty.call(e,n)&&e[n]!==null&&e[n]!==void 0)return e[n];return n}function RBe(e,t){return!e||typeof e!=`object`||Array.isArray(e)?!1:[t,t.charAt(0).toUpperCase()+t.slice(1)].some(t=>Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==null&&e[t]!==void 0)}function u5(e){return{cache:!!l5(e,`cache`,!1),audit:!!l5(e,`audit`,!1),usage:!!l5(e,`usage`,!1),budget:l5(e,`budget`,!0)!==!1,guardrails:!!l5(e,`guardrails`,!1),failover:l5(e,`failover`,!0)!==!1}}function d5(e,t){let n=u5(e),r=t||{},i=n.usage&&!!r.usage;return{cache:n.cache&&!!r.cache,audit:n.audit&&!!r.audit,usage:i,budget:i&&n.budget&&!!r.budget,guardrails:n.guardrails&&!!r.guardrails,failover:n.failover&&!!r.failover}}function f5(e,t){let n=e&&e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:e&&e.features?e.features:{};return{...d5((e&&e.effective_features&&typeof e.effective_features==`object`&&!Array.isArray(e.effective_features)?e.effective_features:null)||n,t),failover:u5(n).failover}}function zBe(e,t){return f5(e,t).failover?dJ():mJ()}function p5(e){return(Array.isArray(e&&e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:Array.isArray(e&&e.guardrails)?e.guardrails:[]).map(e=>({ref:String(e&&e.ref||``).trim(),step:c5(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0)}function BBe(e,t){return f5(e,t).guardrails&&Array.isArray(e&&e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[]}function m5(e){return String(e&&(e.scope_provider_name||e.scope_provider)||``).trim()}function h5(e){return String(e&&(e.provider_name||e.provider_type)||``).trim()}function g5(e,t){let n=new Set,r=String(t&&t.scope_provider||``).trim();return r&&n.add(r),(Array.isArray(e)?e:[]).forEach(e=>{let t=h5(e);t&&n.add(t)}),[...n].sort()}function _5(e,t,n){let r=String(t||``).trim(),i=new Set,a=String(n&&n.scope_provider||``).trim(),o=String(n&&n.scope_model||``).trim();return r&&r===a&&o&&i.add(o),(Array.isArray(e)?e:[]).forEach(e=>{if(r&&h5(e)!==r)return;let t=String(e&&e.model&&e.model.id||``).trim();t&&i.add(t)}),[...i].sort()}function VBe(e){let t=String(e&&e.scope_type||``).trim();return t===`provider_model`?nY():t===`provider_model_path`?aY():t===`provider_path`?cY():t===`path`?dY():t===`provider`?mY():_Y()}function v5(e){return String(e&&e.scope_display||`global`).trim()||`global`}function y5(e){let t=String(e&&e.name||``).trim();if(t)return t;let n=v5(e);return n===`global`?Gme():n}function b5(e){let t=String(e||``).trim();if(!t)return``;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return dB();if(t.includes(`:`))return mB()}}return``}function x5(e){if(b5(e))return``;let t=String(e||``).trim();if(!t)return``;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`),r=[];for(let e of n){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function S5(e){let t=e||o5(),n=String(t.scope_provider||``).trim(),r=x5(t.scope_user_path);return{scope_provider:n,scope_model:n?String(t.scope_model||``).trim():``,scope_user_path:r}}function C5(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=x5(e&&e.scope_user_path);return!t&&!r?`global`:!t&&r?`path`:!n&&!r?`provider`:!n&&r?`provider_path`:r?`provider_model_path`:`provider_model`}function HBe(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=x5(e&&e.scope_user_path),i=C5({scope_provider:t,scope_model:n,scope_user_path:r});return i===`global`?`global`:i===`path`?r:i===`provider`?t:i===`provider_path`?t+` @ `+r:i===`provider_model_path`?t+`/`+n+` @ `+r:t+`/`+n}function UBe(e,t){let n=t||s5(),r=m5(e&&e.scope),i=r?String(e&&e.scope&&e.scope.scope_model||``).trim():``,a=x5(e&&e.scope&&e.scope.scope_user_path);return r===String(n.scope_provider||``).trim()&&i===String(n.scope_model||``).trim()&&a===x5(n.scope_user_path)}function w5(e,t,n){let r=S5(t);return!(r.scope_provider!==``||r.scope_model!==``||r.scope_user_path!==``)&&!n?null:(Array.isArray(e)?e:[]).find(e=>UBe(e,r))||null}function T5(e){return String(e&&e.scope_type||``).trim()!==`global`}function WBe(e){let t=String(e||``).trim();return t?t.length<=14?t:t.slice(0,12)+`…`:`—`}function GBe(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.description,e.scope_display,e.scope_type,m5(e&&e.scope),e.scope&&e.scope.scope_model,e.scope&&e.scope.scope_user_path,e.workflow_hash,...Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails.map(e=>e.ref):[]].some(e=>String(e||``).toLowerCase().includes(r)))}function KBe(e,t){let n=e||o5(),r=S5(n),i=u5(n.features||{}),a=d5(i,t);a.failover=i.failover;let o=!!a.guardrails,s=o?p5(n):[];return{id:IBe,scope_type:C5(r),scope_display:HBe(r),scope:{scope_provider_name:r.scope_provider,scope_model:r.scope_model,...r.scope_user_path?{scope_user_path:r.scope_user_path}:{}},name:String(n.name||``).trim(),description:String(n.description||``).trim(),workflow_payload:{schema_version:1,features:{cache:!!a.cache,audit:!!a.audit,usage:!!a.usage,budget:!!a.budget,guardrails:o,failover:!!a.failover},guardrails:s}}}function qBe({form:e,caps:t,workflows:n=[],formHydrated:r=!1,hydratedScope:i=null}){let a=e||o5(),o=String(a.scope_provider||``).trim(),s=o?String(a.scope_model||``).trim():``,c=x5(a.scope_user_path),l=u5(a.features||{}),u=d5(l,t),d=w5(n,a,r),f=d&&d.workflow_payload&&d.workflow_payload.features,p=RBe(f,`failover`),m=p?l5(f,`failover`,!0)!==!1:null,h=i||s5(),g=String(h.scope_provider||``).trim()===o&&String(h.scope_model||``).trim()===s&&x5(h.scope_user_path)===x5(c),_=!!(t&&t.failover),v=_||!!r&&g&&Object.prototype.hasOwnProperty.call(l,`failover`)||!r&&!!d&&p,y=u.guardrails?(Array.isArray(a.guardrails)?a.guardrails:[]).map(e=>({ref:String(e&&e.ref||``).trim(),step:c5(e&&e.step)})):[],b={scope_provider_name:o,scope_model:s,...c?{scope_user_path:c}:{},name:String(a.name||``).trim(),description:String(a.description||``).trim(),workflow_payload:{schema_version:1,features:{cache:!!u.cache,audit:!!u.audit,usage:!!u.usage,budget:!!u.budget,guardrails:!!u.guardrails},guardrails:y}};return v&&(b.workflow_payload.features.failover=!_&&!r&&d&&p?m:!!l.failover),b}function JBe(e,{models:t=[],hydratedScope:n=null}={}){let r=n||s5(),i=String(r.scope_provider||``).trim(),a=String(r.scope_model||``).trim(),o=String(e&&(e.scope_provider_name||e.scope_provider)||``).trim(),s=String(e&&e.scope_model||``).trim();if(o&&!g5(t,r).includes(o)&&o!==i)return Jme();if(s&&!o)return Zme();if(s){let e=_5(t,o,r),n=o===i&&s===a;if(!e.includes(s)&&!n)return ehe()}let c=b5(e.scope_user_path);if(c)return c;let l=e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:{},u=Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[];if(!l.guardrails)return``;let d=new Set;for(let e of u){if(!e.ref)return rhe();if(!Number.isInteger(e.step)||e.step<0)return ohe();if(d.has(e.ref))return lhe();d.add(e.ref)}return``}var E5=new class{#e=j(N([]));get workflows(){return R(this.#e)}set workflows(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return R(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get submitting(){return R(this.#o)}set submitting(e){M(this.#o,e,!0)}#s=j(``);get deactivatingID(){return R(this.#s)}set deactivatingID(e){M(this.#s,e,!0)}#c=j(``);get formError(){return R(this.#c)}set formError(e){M(this.#c,e,!0)}#l=j(!1);get formHydrated(){return R(this.#l)}set formHydrated(e){M(this.#l,e,!0)}#u=j(N(s5()));get hydratedScope(){return R(this.#u)}set hydratedScope(e){M(this.#u,e,!0)}#d=j(N([]));get guardrailRefs(){return R(this.#d)}set guardrailRefs(e){M(this.#d,e,!0)}#f=j(N(o5()));get form(){return R(this.#f)}set form(e){M(this.#f,e,!0)}#p=null;failoverVisible(){return XX.booleanFlag(`FAILOVER_ENABLED`,!0)}featureCaps(){return{cache:XX.cacheVisible(),audit:XX.auditVisible(),usage:XX.usageVisible(),budget:XX.budgetsVisible(),guardrails:XX.guardrailsVisible(),failover:this.failoverVisible()}}get filteredWorkflows(){return GBe(this.workflows,this.filter)}providerOptions(){return g5(kZ.models,this.hydratedScope)}modelOptions(e){return _5(kZ.models,e,this.hydratedScope)}activeScopeMatch(){return w5(this.workflows,this.form,this.formHydrated)}submitMode(){return this.activeScopeMatch()?`save`:`create`}submitLabel(){return this.submitMode()===`save`?Vq():nA()}submittingLabel(){return this.submitMode()===`save`?Wq():qq()}preview(){return KBe(this.form,this.featureCaps())}openCreate(e){if(this.formOpen=!0,this.submitting=!1,this.formError=``,!e){this.formHydrated=!1,this.hydratedScope=s5(),this.form=o5();return}this.formHydrated=!0,this.hydratedScope={scope_provider:m5(e.scope),scope_model:String(e.scope&&e.scope.scope_model||``).trim(),scope_user_path:String(e.scope&&e.scope.scope_user_path||``).trim()};let t=e.workflow_payload&&e.workflow_payload.features?u5(e.workflow_payload.features):f5(e,this.featureCaps()),n=Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails.map(e=>({ref:String(e&&e.ref||``).trim(),step:c5(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0):p5(e);this.form={scope_provider:m5(e.scope),scope_model:String(e.scope&&e.scope.scope_model||``),scope_user_path:String(e.scope&&e.scope.scope_user_path||``),name:String(e.name||``),description:String(e.description||``),features:{cache:!!t.cache,audit:!!t.audit,usage:!!t.usage,budget:!!t.budget,guardrails:!!t.guardrails,failover:!!t.failover},guardrails:n.map(e=>({ref:String(e&&e.ref||``),step:Number.isFinite(e&&e.step)?e.step:10}))}}closeForm(){this.formOpen=!1,this.submitting=!1,this.formError=``,this.formHydrated=!1,this.hydratedScope=s5(),this.form=o5()}setProvider(e){if(this.form.scope_provider=String(e||``).trim(),!this.form.scope_provider){this.form.scope_model=``;return}this.modelOptions(this.form.scope_provider).includes(String(this.form.scope_model||``).trim())||(this.form.scope_model=``)}addGuardrailStep(){let e=(Array.isArray(this.form.guardrails)?this.form.guardrails:[]).reduce((e,t)=>{let n=Number(t&&t.step);return Number.isFinite(n)?Math.max(e,n):e},0)+10;this.form.guardrails.push(LBe(e))}removeGuardrailStep(e){Array.isArray(this.form.guardrails)&&this.form.guardrails.splice(e,1)}buildRequest(){return qBe({form:this.form,caps:this.featureCaps(),workflows:this.workflows,formHydrated:this.formHydrated,hydratedScope:this.hydratedScope})}async fetchWorkflows(){this.#p&&this.#p.abort();let e=new AbortController;this.#p=e,this.loading=!0,this.error=``;let t=setTimeout(()=>e.abort(),1e4),n=await X3(`/admin/workflows`,{label:`workflows`,options:{signal:e.signal}});if(clearTimeout(t),this.#p===e&&(this.#p=null,this.loading=!1,n.status!==`stale`)){if(n.status===`unavailable`){this.available=!1,this.workflows=[];return}if(n.result&&(this.available=!0),n.status===`error`){this.workflows=[],this.error=e.signal.aborted?$q():n.error;return}this.workflows=n.items}}async fetchGuardrailRefs(){let e=await X3(`/admin/workflows/guardrails`,{label:`workflow guardrails`});e.status!==`stale`&&(this.guardrailRefs=e.items)}async fetchPage(){await Promise.all([XX.ensureLoaded(),this.fetchWorkflows(),this.fetchGuardrailRefs()])}async submitForm(){if(this.submitting)return;this.formError=``;let e=this.buildRequest(),t=JBe(e,{models:kZ.models,hydratedScope:this.hydratedScope});if(t){this.formError=t;return}this.submitting=!0;try{let t=await Z3(`/admin/workflows`,`POST`,e,{label:`create workflow`,unavailableStatuses:[]});if(t.status===`stale`||t.result&&t.result.status===401)return;if(t.status===`error`){this.formError=t.error;return}oZ.success(nJ()),this.closeForm(),this.fetchPage()}finally{this.submitting=!1}}async deactivate(e){let t=String(e&&e.id||``).trim();if(!t||this.deactivatingID||!T5(e))return;let n=y5(e);if(confirm(aJ({name:n}))){this.deactivatingID=t;try{let e=await Z3(`/admin/workflows/`+encodeURIComponent(t)+`/deactivate`,`POST`,void 0,{label:`deactivate workflow`,unavailableStatuses:[]});if(e.status===`stale`||e.result&&e.result.status===401)return;if(e.status===`error`){oZ.error(e.error);return}oZ.success(cJ()),this.fetchPage()}finally{this.deactivatingID=``}}}},YBe=B(``);function XBe(e,t){O(t,!0);let n=zi(t,`workflowID`,3,``),r=U3({logPrefix:`Failed to copy workflow ID:`});mn(()=>{n(),r.reset()});let i=A(()=>r.error?`Unable to copy workflow ID`:r.copied?`Workflow ID copied`:`Copy workflow ID`),a=A(()=>n()?R(i)+` `+n():R(i));async function o(e){e.preventDefault(),n()&&await r.copy(n())}var s=YBe();let c;var l=I(P(s),4),u=P(l,!0);D(l);var d=I(l,2);q(P(d),{get icon(){return tX}}),D(d),D(s),L(()=>{c=G(s,1,`workflow-pipeline-meta mono svelte-1viff7o`,null,c,{"workflow-pipeline-meta-copied":r.copied,"workflow-pipeline-meta-error":r.error}),K(s,`title`,R(i)),K(s,`aria-label`,R(a)),H(u,n())}),z(`click`,s,o),V(e,s),k()}xr([`click`]);var D5=(e,t)=>{let n=()=>(t?.()).icon,r=()=>(t?.()).label,i=yt(()=>h((t?.()).variant,`workflow-node-feature`)),a=()=>(t?.()).state,o=()=>(t?.()).sub,s=()=>(t?.()).badge;var c=eVe(),l=P(c),u=e=>{var t=ZBe();let r;q(P(t),{get icon(){return n()}}),D(t),L(()=>r=G(t,1,`workflow-node-icon svelte-nbptrg`,null,r,{"workflow-node-icon-endpoint":R(i)===`workflow-node-endpoint`})),V(e,t)};U(l,e=>{n()&&e(u)});var d=I(l,2),f=P(d,!0);D(d);var p=I(d,2),m=e=>{var t=QBe(),n=P(t,!0);D(t),L(()=>H(n,s())),V(e,t)};U(p,e=>{s()&&e(m)});var g=I(p,2),_=e=>{var t=$Be(),n=P(t,!0);D(t),L(()=>H(n,o())),V(e,t)};U(g,e=>{o()&&e(_)}),D(c),L(()=>{G(c,1,li([`workflow-node`,R(i),a()]),`svelte-nbptrg`),H(f,r())}),V(e,c)},ZBe=B(`
                        `),QBe=B(` `),$Be=B(` `),eVe=B(`
                        `),O5=B(`
                        `,1),k5=B(`
                        `,1),tVe=B(`
                        `),nVe=B(`
                        `),rVe=B(`
                        `);function A5(e,t){O(t,!0);let n=zi(t,`chart`,19,()=>({}));var r=rVe();let i;var a=P(r),o=e=>{XBe(e,{get workflowID(){return n().workflowID}})};U(a,e=>{n().workflowID&&e(o)});var s=I(a,2),c=P(s);{let e=A(()=>({icon:rEe,label:Owe(),variant:`workflow-node-endpoint`}));D5(c,()=>R(e))}var l=I(c,4);{let e=A(()=>({icon:rX,label:jwe(),state:n().authNodeClass,sub:n().authNodeSublabel}));D5(l,()=>R(e))}var u=I(l,2),d=e=>{var t=O5(),r=F(t),i=I(r,2);{let e=A(()=>({icon:rX,label:VA(),state:n().cacheNodeClass,badge:n().cacheStatusLabel}));D5(i,()=>R(e))}L(()=>G(r,1,li([`workflow-conn`,n().cacheConnClass]),`svelte-nbptrg`)),V(e,t)};U(u,e=>{n().showCache&&e(d)});var f=I(u,2),p=e=>{var t=k5(),r=I(F(t),2);{let e=A(()=>({icon:_X,label:XA(),state:n().budgetNodeClass,badge:n().budgetStatusLabel}));D5(r,()=>R(e))}V(e,t)};U(f,e=>{n().showBudget&&e(p)});var m=I(f,2),h=e=>{var t=k5(),r=I(F(t),2);{let e=A(()=>({icon:QTe,label:qE(),sub:n().guardrailLabel}));D5(r,()=>R(e))}V(e,t)};U(m,e=>{n().showGuardrails&&e(h)});var g=I(m,2),_=I(g,2);D5(_,()=>({label:n().aiLabel,variant:`workflow-node-ai`,state:n().aiNodeClass,sub:n().aiSublabel}));var v=I(_,2),y=e=>{var t=O5(),r=F(t),i=I(r,2);{let e=A(()=>({icon:sX,label:$A(),state:n().failoverNodeClass,badge:n().failoverStatusLabel,sub:n().failoverTargetLabel}));D5(i,()=>R(e))}L(()=>G(r,1,li([`workflow-conn`,n().failoverConnClass]),`svelte-nbptrg`)),V(e,t)};U(v,e=>{n().showFailover&&e(y)});var b=I(v,2),x=I(b,2);{let e=A(()=>({icon:NTe,label:Pwe(),variant:`workflow-node-endpoint`,state:n().responseNodeClass,sub:n().responseNodeSublabel}));D5(x,()=>R(e))}D(s);var S=I(s,2),C=e=>{var t=nVe(),r=P(t),i=P(r),a=e=>{{let t=A(()=>({icon:kTe,label:qA(),variant:`workflow-node-feature workflow-node-async`,state:n().usageNodeClass}));D5(e,()=>R(t))}};U(i,e=>{n().showUsage&&e(a)});var o=I(i,2),s=e=>{V(e,tVe())};U(o,e=>{n().showUsage&&n().showAudit&&e(s)});var c=I(o,2),l=e=>{{let t=A(()=>({icon:FTe,label:Lwe(),variant:`workflow-node-feature workflow-node-async`,state:n().auditNodeClass}));D5(e,()=>R(t))}};U(c,e=>{n().showAudit&&e(l)}),D(r);var u=I(r,4),d=P(u,!0);D(u),D(t),L(e=>H(d,e),[()=>WE()]),V(e,t)};U(S,e=>{n().showAsync&&e(C)}),D(r),L(()=>{i=G(r,1,`workflow-pipeline svelte-nbptrg`,null,i,{"workflow-pipeline-has-meta":n().workflowID}),G(g,1,li([`workflow-conn`,n().aiConnClass]),`svelte-nbptrg`),G(b,1,li([`workflow-conn`,n().responseConnClass]),`svelte-nbptrg`)}),V(e,r),k()}function iVe(e){let t=p5(e).length;return t===0?``:t===1?CJ():bJ({count:t})}function aVe(e,t){return t&&t.provider?t.provider:m5(e&&e.scope)||`AI`}function oVe(e,t){return t&&t.model?t.model:e&&e.scope&&e.scope.scope_model||null}function sVe(e,t){let n=String(e&&e.id||``).trim();if(n&&n!==`draft-workflow-preview`)return n;let r=String(t&&t.workflow_version_id||``).trim();return r&&r!==`draft-workflow-preview`?r:null}function cVe(e){let t=e&&e.data&&e.data.workflow_features;return!t||typeof t!=`object`||Array.isArray(t)?null:u5(t)}function j5(e){let t=e&&e.data&&e.data.failover;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=String(t.target_model||t.targetModel||``).trim()||null;return n?{targetModel:n}:null}function M5(e,t=0){if(t>4||e==null)return``;if(typeof e==`string`){let n=e.trim();if(!n||n[0]!==`{`&&n[0]!==`[`)return``;try{return M5(JSON.parse(n),t+1)}catch{return``}}if(Array.isArray(e)){for(let n of e){let e=M5(n,t+1);if(e)return e}return``}return typeof e==`object`?String(e.code||``).trim()||(e.error===void 0?``:M5(e.error,t+1)):``}function lVe(e){let t=e&&e.data&&typeof e.data==`object`&&!Array.isArray(e.data)?e.data:{};return String(t.error_code||t.errorCode||``).trim()||M5(t.response_body)}function uVe(e){let t=String(e||``).trim();if(!t)return null;let n=t.indexOf(`/`);return n<=0||n>=t.length-1?null:{provider:t.slice(0,n),model:t.slice(n+1)}}function dVe(e,t){let n=String(e&&(e.requested_model||e.model)||``).trim(),r=j5(e);if(!(r&&r.targetModel))return{provider:String(e&&e.provider||``).trim()||null,model:n||null};let i=uVe(n);if(i)return i;let a=m5(t&&t.scope),o=a?String(t&&t.scope&&t.scope.scope_model||``).trim():``;return a||o?{provider:a||null,model:o||n||null}:{provider:null,model:n||null}}function fVe(e,t){if(!e)return null;let n=(()=>{let t=String(e.cache_type||``).trim().toLowerCase();return t===`exact`||t===`semantic`?t:null})(),r=(()=>{if(e.status_code===void 0||e.status_code===null)return null;let t=String(e.status_code).trim();if(!t)return null;let n=Number(t);return Number.isFinite(n)?n:null})(),i=n?!0:e.cache_hit!==void 0&&e.cache_hit!==null&&!!e.cache_hit,a=j5(e),o=dVe(e,t),s=Number.isFinite(r)&&r>=200&&r<300,c=String(e.error_type||``).trim().toLowerCase()===`authentication_error`,l=String(e.auth_method||``).trim().toLowerCase()||null,u=lVe(e).toLowerCase()===`budget_exceeded`;return{cacheHit:i,cacheType:n||null,failoverTarget:a&&a.targetModel?a.targetModel:null,provider:o.provider,model:o.model,statusCode:r,responseSuccess:s,aiSuccess:s&&!i,authError:c,authMethod:l,budgetExceeded:u}}function pVe(e){return!!(e&&e.cacheHit)}function mVe(e){return!!(e&&e.failoverTarget)}function N5(e){return!!(e&&e.budgetExceeded)}function hVe(e,t){return t?`workflow-node-current`:e&&e.cacheHit?`workflow-node-success`:``}function gVe(e){return e&&e.cacheHit?`workflow-conn-hit`:``}function _Ve(e){return!e||!e.cacheHit?null:e.cacheType===`semantic`?Bwe():Uwe()}function vVe(e,t,n,r){return e?N5(t)?`workflow-node-error`:r?`workflow-node-current`:n?`workflow-node-success`:``:``}function yVe(e){return N5(e)?Kwe():null}function bVe(e){return e&&e.cacheHit?`workflow-node-skipped`:e&&e.failoverTarget?`workflow-node-success`:``}function xVe(e){return e&&e.cacheHit?`workflow-conn-dim`:e&&e.failoverTarget?`workflow-conn-hit`:``}function SVe(e){return e&&e.failoverTarget?Ywe():null}function CVe(e){return e&&e.failoverTarget?e.failoverTarget:null}function P5(e){return e&&e.cacheHit?`workflow-conn-dim`:``}function wVe(e,t){return e?e.cacheHit?`workflow-node-skipped`:t?`workflow-node-current`:e.aiSuccess?`workflow-node-success`:``:``}function TVe(e,t){if(!e)return``;let n=e.statusCode;return!Number.isFinite(n)&&t?`workflow-node-current`:Number.isFinite(n)?n>=500?`workflow-node-error`:n>=400?`workflow-node-warning`:n>=300?`workflow-node-neutral`:n>=200?`workflow-node-success`:``:``}function EVe(e){return!e||!Number.isFinite(e.statusCode)?null:String(e.statusCode)}function DVe(e,t){return e?e.authError?`workflow-node-error`:t?`workflow-node-current`:e.authMethod===`api_key`||e.authMethod===`master_key`?`workflow-node-success`:``:``}function OVe(e){return!e||!e.authMethod?null:e.authMethod}function F5(e,t,n){return e?n?`workflow-node-current`:t?`workflow-node-success`:``:``}function I5(e,t){if(!e||!e._live)return!!t;let n=String(e._live_state||``).trim();return!!e._audit_flushed||n===`audit.flushed`||n===`audit.detail`}function kVe(e,t){if(!e)return!!t;let n=e.usage||{},r=Number(n.entries||0)>0;if(!e._live)return r;let i=String(e._usage_live_state||``).trim();return e._usage_flushed||i===`usage.flushed`?!0:!e._usage_live_pending&&r&&!e._live_pending}function L5(e){return!!(e&&e._live&&e._usage_live_pending&&!e._usage_flushed)}function R5(e,t){return!e||!e._live||I5(e,!1)?!1:String(e._live_state||``).trim()===`audit.completed`||!!(t&&Number.isFinite(t.statusCode))}function AVe(e,t,n){return!e||!e._live?``:L5(e)?`usage`:R5(e,t)?`audit`:I5(e,!1)&&!e._live_pending?``:t&&t.cacheHit?`cache`:t&&(t.provider||t.model)?`ai`:n&&n.budget&&(e.workflow_version_id||e.requested_model)?`budget`:t&&t.authMethod?``:`auth`}function z5(e,t,n,r){let i=n||{},a=i.features&&typeof i.features==`object`&&!Array.isArray(i.features)?u5(i.features):f5(e,r),o=!!i.forceAudit,s=!!i.highlightAsyncPresent,c=!!a.budget||N5(t),l=!!a.guardrails,u=!!a.usage,d=o||!!a.audit,f=!!i.forceAsync||!!(u||d),p=!!a.failover||mVe(t),m=sVe(e,i.entry),h=AVe(i.entry,t,a),g=L5(i.entry),_=R5(i.entry,t),v=I5(i.entry,s),y=kVe(i.entry,s);return{showBudget:c,budgetNodeClass:vVe(c,t,s,h===`budget`),budgetStatusLabel:yVe(t),showGuardrails:l,guardrailLabel:l?iVe(e):``,showCache:!!i.forceCache||!!a.cache||pVe(t),cacheNodeClass:hVe(t,h===`cache`),cacheConnClass:gVe(t),cacheStatusLabel:_Ve(t),showFailover:p,failoverNodeClass:p?bVe(t):``,failoverConnClass:p?xVe(t):``,failoverStatusLabel:p?SVe(t):null,failoverTargetLabel:p?CVe(t):null,aiLabel:aVe(e,t),aiSublabel:oVe(e,t),aiConnClass:P5(t),aiNodeClass:wVe(t,h===`ai`),responseConnClass:P5(t),responseNodeClass:TVe(t,h===`response`),responseNodeSublabel:EVe(t),authNodeClass:DVe(t,h===`auth`),authNodeSublabel:OVe(t),usageNodeClass:F5(u,y,g),auditNodeClass:F5(d,v,_),showAsync:f,showUsage:u,showAudit:d,workflowID:m}}function jVe(e,t){return z5(e,null,{forceCache:!1},t)}function MVe(e,t,n){return z5(t,fVe(e,t),{entry:e,features:cVe(e)||(t?f5(t,n):{cache:!1,audit:!1,usage:!1,budget:!1,guardrails:!1,failover:!1}),forceAudit:!0,forceAsync:!0,highlightAsyncPresent:!0},n)}var NVe=B(`

                        `),B5=B(`

                        `),PVe=B(`
                        `),FVe=B(`
                        `),IVe=B(`

                        `),LVe=B(``),RVe=B(`

                        `);function V5(e,t){O(t,!0);let n=zi(t,`preview`,3,!1),r=A(()=>E5.featureCaps()),i=A(()=>y5(t.workflow)),a=A(()=>BBe(t.workflow,R(r))),o=A(()=>jVe(t.workflow,R(r))),s=A(()=>n()?`draft-workflow-preview-guardrail-`:t.workflow.id+`-guardrail-`);var c=RVe();let l;var u=P(c),d=P(u),f=P(d),p=P(f,!0);D(f);var m=I(f,2),h=P(m,!0);D(m),D(d);var g=I(d,2),_=P(g),v=P(_,!0);D(_),D(g),D(u);var y=I(u,2),b=e=>{var n=NVe(),r=P(n,!0);D(n),L(()=>H(r,t.workflow.description)),V(e,n)};U(y,e=>{t.workflow.description&&e(b)});var x=I(y,2),S=e=>{var n=B5(),i=P(n);D(n),L((e,t)=>H(i,`${e??``}: ${t??``}`),[()=>$A(),()=>zBe(t.workflow,R(r))]),V(e,n)},C=A(()=>E5.failoverVisible());U(x,e=>{R(C)&&e(S)});var w=I(x,2);A5(w,{get chart(){return R(o)}});var T=I(w,2),ee=e=>{var t=IVe(),n=P(t),r=P(n),i=P(r,!0);D(r);var o=I(r,2),c=P(o,!0);D(o),D(n);var l=I(n,2),u=e=>{var t=FVe();W(t,23,()=>R(a),(e,t)=>R(s)+t,(e,t)=>{var n=PVe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a),D(n),L(e=>{H(i,R(t).ref),H(o,e)},[()=>EJ({number:R(t).step})]),V(e,n)}),D(t),V(e,t)},d=e=>{var t=B5(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XE()]),V(e,t)};U(l,e=>{R(a).length>0?e(u):e(d,-1)}),D(t),L((e,t)=>{H(i,e),H(c,t)},[()=>qE(),()=>R(a).length?bJ({count:R(a).length}):_J()]),V(e,t)},E=A(()=>XX.guardrailsVisible());U(T,e=>{R(E)&&e(ee)});var te=I(T,2),ne=e=>{var n=LVe(),r=P(n),a=P(r),o=P(a,!0);D(a);var s=I(a,2);{let e=A(()=>WJ({name:R(i)}));Y3(s,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>E5.openCreate(t.workflow),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r);var c=I(r,2),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d);var p=I(d,2),m=P(p,!0);D(p),D(c),D(n),L((e,t,n,r,i,s,c)=>{a.disabled=e,K(a,`aria-label`,t),K(a,`title`,n),H(o,r),H(u,i),H(f,s),H(m,c)},[()=>E5.deactivatingID===t.workflow.id||!T5(t.workflow),()=>kJ({name:R(i)}),()=>T5(t.workflow)?MJ():FJ(),()=>E5.deactivatingID===t.workflow.id?RJ():VJ(),()=>qJ({version:t.workflow.version}),()=>XJ({date:HX.formatTimestamp(t.workflow.created_at)}),()=>$J({hash:WBe(t.workflow.workflow_hash)})]),z(`click`,a,()=>E5.deactivate(t.workflow)),V(e,n)};U(te,e=>{n()||e(ne)}),D(c),L((e,t)=>{l=G(c,1,`workflow-card svelte-1fo9fvq`,null,l,{"workflow-preview-card":n()}),H(p,e),H(h,R(i)),H(v,t)},[()=>VBe(t.workflow),()=>v5(t.workflow)]),V(e,c),k()}xr([`click`]);var zVe=B(`

                        `),H5=B(``),BVe=B(``),VVe=B(``),HVe=B(``),UVe=B(``),WVe=B(``),U5=B(``),GVe=B(`
                        `),KVe=B(`
                        `),qVe=B(`
                        `),JVe=B(`

                        `),YVe=B(`

                        `),XVe=B(`

                        `,1);function ZVe(e,t){O(t,!0);{let t=e=>{{let t=e=>{var t=zVe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>E5.submitMode()===`save`?$k():nA()]),V(e,t)},n=A(()=>qk()),r=A(()=>Xk());s3(e,{copyId:`workflow-help-copy`,get label(){return R(n)},get text(){return R(r)},title:t,$$slots:{title:!0}})}},n=A(()=>Wk()),r=A(()=>E5.submitLabel()),i=A(()=>E5.submittingLabel()),a=A(()=>E5.submitMode()===`create`?lX:fX);S6(e,{get open(){return E5.formOpen},get ariaLabel(){return R(n)},get error(){return E5.formError},get submitting(){return E5.submitting},get submitLabel(){return R(r)},get submittingLabel(){return R(i)},get submitIcon(){return R(a)},dialogClass:`workflow-editor`,onclose:()=>E5.closeForm(),onsubmit:()=>E5.submitForm(),header:t,children:(e,t)=>{var n=XVe(),r=F(n),i=P(r);{let e=A(()=>aA());C6(i,{id:`workflow-scope-provider`,get label(){return R(e)},children:(e,t)=>{var n=BVe(),r=P(n),i=P(r,!0);D(r),r.value=r.__value=``,W(I(r),16,()=>E5.providerOptions(),e=>e,(e,t)=>{var n=H5(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(n),L(e=>H(i,e),[()=>cA()]),z(`change`,n,e=>E5.setProvider(e.currentTarget.value)),_i(n,()=>E5.form.scope_provider,e=>E5.form.scope_provider=e),V(e,n)},$$slots:{default:!0}})}var a=I(i,2),o=e=>{{let t=A(()=>dA());C6(e,{id:`workflow-scope-model`,get label(){return R(t)},children:(e,t)=>{var n=VVe(),r=P(n),i=P(r,!0);D(r),r.value=r.__value=``,W(I(r),17,()=>E5.modelOptions(E5.form.scope_provider),e=>E5.form.scope_provider+`-`+e,(e,t)=>{var n=H5(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t)),i!==(i=R(t))&&(n.value=(n.__value=R(t))??``)}),V(e,n)}),D(n),L(e=>H(i,e),[()=>mA()]),_i(n,()=>E5.form.scope_model,e=>E5.form.scope_model=e),V(e,n)},$$slots:{default:!0}})}};U(a,e=>{E5.form.scope_provider&&e(o)});var s=I(a,2);{let e=A(()=>_A());C6(s,{id:`workflow-name`,get label(){return R(e)},children:(e,t)=>{var n=HVe();wi(n),L(e=>K(n,`placeholder`,e),[()=>bA()]),ji(n,()=>E5.form.name,e=>E5.form.name=e),V(e,n)},$$slots:{default:!0}})}var c=I(s,2);{let e=A(()=>CA());C6(c,{id:`workflow-user-path`,get label(){return R(e)},children:(e,t)=>{var n=UVe();wi(n),ji(n,()=>E5.form.scope_user_path,e=>E5.form.scope_user_path=e),V(e,n)},$$slots:{default:!0}})}D(r);var l=I(r,2),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d);var p=I(d,2),m=P(p,!0);D(p);var h=I(p,2);{let e=A(()=>FA());C6(h,{id:`workflow-description`,get label(){return R(e)},children:(e,t)=>{var n=WVe();at(n),L(e=>K(n,`placeholder`,e),[()=>RA()]),ji(n,()=>E5.form.description,e=>E5.form.description=e),V(e,n)},$$slots:{default:!0}})}var g=I(h,2),_=P(g),v=e=>{var t=U5(),n=P(t);wi(n);var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>VA()]),Mi(n,()=>E5.form.features.cache,e=>E5.form.features.cache=e),V(e,t)},y=A(()=>XX.cacheVisible());U(_,e=>{R(y)&&e(v)});var b=I(_,2),x=e=>{var t=U5(),n=P(t);wi(n);var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>WA()]),Mi(n,()=>E5.form.features.audit,e=>E5.form.features.audit=e),V(e,t)},S=A(()=>XX.auditVisible());U(b,e=>{R(S)&&e(x)});var C=I(b,2),w=e=>{var t=U5(),n=P(t);wi(n);var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>qA()]),Mi(n,()=>E5.form.features.usage,e=>E5.form.features.usage=e),V(e,t)},T=A(()=>XX.usageVisible());U(C,e=>{R(T)&&e(w)});var ee=I(C,2),E=e=>{var t=U5(),n=P(t);wi(n);var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>XA()]),Mi(n,()=>E5.form.features.budget,e=>E5.form.features.budget=e),V(e,t)},te=A(()=>XX.budgetsVisible());U(ee,e=>{R(te)&&e(E)});var ne=I(ee,2),re=e=>{var t=U5(),n=P(t);wi(n);var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>qE()]),Mi(n,()=>E5.form.features.guardrails,e=>E5.form.features.guardrails=e),V(e,t)},ie=A(()=>XX.guardrailsVisible());U(ne,e=>{R(ie)&&e(re)});var ae=I(ne,2),oe=e=>{var t=U5(),n=P(t);wi(n);var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>$A()]),Mi(n,()=>E5.form.features.failover,e=>E5.form.features.failover=e),V(e,t)},se=A(()=>E5.failoverVisible());U(ae,e=>{R(se)&&e(oe)}),D(g);var ce=I(g,2),le=P(ce),ue=P(le),de=P(ue,!0);D(ue);var fe=I(ue,2),pe=P(fe,!0);D(fe),D(le);var me=I(le,2);{let e=A(()=>E5.preview());V5(me,{get workflow(){return R(e)},preview:!0})}D(ce);var he=I(ce,2),ge=e=>{var t=YVe(),n=P(t),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(r);var c=I(r,2),l=P(c,!0);D(c),D(n);var u=I(n,2),d=e=>{var t=GVe(),n=P(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i,!0);D(i),D(t),L((e,t)=>{H(r,e),H(a,t)},[()=>_j(),()=>bj()]),z(`click`,i,()=>CX.navigate(`guardrails`)),V(e,t)};U(u,e=>{E5.guardrailRefs.length===0&&e(d)});var f=I(u,2),p=e=>{var t=qVe();W(t,21,()=>E5.form.guardrails,Ir,(e,t,n)=>{var r=KVe(),i=P(r),a=P(i);K(a,`for`,`workflow-guardrail-ref-`+n);var o=P(a,!0);D(a);var s=I(a,2);wi(s),K(s,`id`,`workflow-guardrail-ref-`+n),D(i);var c=I(i,2),l=P(c);K(l,`for`,`workflow-guardrail-step-`+n);var u=P(l,!0);D(l);var d=I(l,2);wi(d),K(d,`id`,`workflow-guardrail-step-`+n),D(c);var f=I(c,2),p=P(f,!0);D(f),D(r),L((e,t,n,r,i,a,c)=>{H(o,e),K(s,`placeholder`,t),K(s,`aria-label`,n),H(u,r),K(d,`placeholder`,i),K(d,`aria-label`,a),H(p,c)},[()=>Cj(),()=>Cj(),()=>`${Cj()} ${n+1}`,()=>Ej(),()=>Ej(),()=>`${cj()} ${n+1}`,()=>kj()]),ji(s,()=>R(t).ref,e=>R(t).ref=e),ji(d,()=>R(t).step,e=>R(t).step=e),z(`click`,f,()=>E5.removeGuardrailStep(n)),V(e,r)}),D(t),V(e,t)},m=e=>{var t=JVe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mj()]),V(e,t)};U(f,e=>{E5.form.guardrails.length>0?e(p):e(m,-1)}),D(t),L((e,t,n)=>{H(a,e),H(s,t),H(l,n)},[()=>cj(),()=>dj(),()=>mj()]),z(`click`,c,()=>E5.addGuardrailStep()),V(e,t)},_e=A(()=>E5.form.features.guardrails&&XX.guardrailsVisible());U(he,e=>{R(_e)&&e(ge)}),L((e,t,n,r,i)=>{H(u,e),H(f,t),H(m,n),H(de,r),H(pe,i)},[()=>EA(),()=>kA(),()=>MA(),()=>nj(),()=>aj()]),V(e,n)},$$slots:{header:!0,default:!0}})}k()}xr([`change`,`click`]);var QVe=B(`

                        `),$Ve=B(`
                        `),W5=B(`

                        `),eHe=B(`
                        `);function tHe(e,t){O(t,!0);var n=eHe(),r=P(n),i=e=>{var t=QVe(),n=P(t);{let e=A(()=>Xq());r3(n,{size:16,get label(){return R(e)}})}var r=I(n);D(t),L(e=>H(r,` ${e??``}`),[()=>Xq()]),V(e,t)};U(r,e=>{E5.loading&&!Y.authError&&e(i)});var a=I(r,2),o=e=>{var t=$Ve();W(t,21,()=>E5.filteredWorkflows,e=>e.id,(e,t)=>{V5(e,{get workflow(){return R(t)}})}),D(t),V(e,t)};U(a,e=>{E5.filteredWorkflows.length>0&&e(o)});var s=I(a,2),c=e=>{var t=W5(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>RE()]),V(e,t)};U(s,e=>{E5.workflows.length===0&&!E5.loading&&!Y.authError&&E5.available&&e(c)});var l=I(s,2),u=e=>{var t=W5(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>VE()]),V(e,t)};U(l,e=>{E5.workflows.length>0&&E5.filteredWorkflows.length===0&&!E5.loading&&e(u)}),D(n),V(e,n),k()}var nHe=B(``),G5=B(`
                        `),rHe=B(`
                        `),iHe=B(``),aHe=B(`
                        `);function oHe(e,t){O(t,!0),mn(()=>{Y.refreshTick,E5.fetchPage()});var n=aHe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(i);var l=I(i,2),u=P(l),d=e=>{var t=nHe(),n=P(t);q(n,{get icon(){return lX},class:`form-action-icon`,"aria-hidden":`true`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>EE()]),z(`click`,t,()=>E5.openCreate()),V(e,t)};U(u,e=>{E5.available&&e(d)}),D(l),D(r);var f=I(r,2),p=e=>{var t=G5(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>kE()]),V(e,t)};U(f,e=>{!E5.available&&!Y.authError&&e(p)});var m=I(f,2),h=e=>{var t=G5(),n=P(t,!0);D(t),L(()=>H(n,E5.error)),V(e,t)};U(m,e=>{E5.error&&!Y.authError&&e(h)});var g=I(m,2),_=e=>{var t=rHe(),n=P(t),r=P(n);{let e=A(()=>ME()),t=A(()=>FE());z3(r,{get placeholder(){return R(e)},get label(){return R(t)},get value(){return E5.filter},set value(e){E5.filter=e}})}D(n);var i=I(n,2),a=P(i),o=P(a,!0);D(a),D(i),D(t),L(()=>H(o,E5.filteredWorkflows.length+` active scopes`)),V(e,t)};U(g,e=>{E5.available&&e(_)});var v=I(g,2);ZVe(v,{});var y=I(v,2);tHe(y,{});var b=I(y,2);W(b,20,()=>E5.guardrailRefs,e=>e,(e,t)=>{var n=iHe(),r={};L(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(b),D(n),L((e,t)=>{H(o,e),H(c,t)},[()=>bE(),()=>CE()]),V(e,n),k()}xr([`click`]);function sHe(e,{from:t,to:n},r={}){var{delay:i=0,duration:a=e=>Math.sqrt(e)*120,easing:o=aZ}=r,s=getComputedStyle(e),c=s.transform===`none`?``:s.transform,[l,u]=s.transformOrigin.split(` `).map(parseFloat);l/=e.clientWidth,u/=e.clientHeight;var d=cHe(e),f=e.clientWidth/n.width/d,p=e.clientHeight/n.height/d,m=t.left+t.width*l,h=t.top+t.height*u,g=n.left+n.width*l,_=n.top+n.height*u,v=(m-g)*f,y=(h-_)*p,b=t.width/n.width,x=t.height/n.height;return{delay:i,duration:typeof a==`function`?a(Math.sqrt(v*v+y*y)):a,easing:o,css:(e,t)=>`transform: ${c} translate(${t*v}px, ${t*y}px) scale(${e+t*b}, ${e+t*x});`}}function cHe(e){if(`currentCSSZoom`in e)return e.currentCSSZoom;for(var t=e,n=1;t!==null;)n*=+getComputedStyle(t).zoom,t=t.parentElement;return n}var K5=null;function lHe(){return K5===null&&(K5=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`)),!!(K5&&K5.matches)}function q5(e){return lHe()?0:e}function uHe(e,t){return!t||!t.live?{duration:0}:iZ(e,{duration:q5(150)})}var J5=new class{#e=j(N({}));get workflowVersionsByID(){return R(this.#e)}set workflowVersionsByID(e){M(this.#e,e,!0)}workflowVersionRequests={};workflowFeatureCaps(){return{cache:XX.cacheVisible(),audit:XX.auditVisible(),usage:XX.usageVisible(),budget:XX.budgetsVisible(),guardrails:XX.guardrailsVisible(),failover:XX.booleanFlag(`FAILOVER_ENABLED`,!0)}}cacheWorkflowVersion(e){let t=String(e&&e.id||``).trim();return t?(this.workflowVersionsByID={...this.workflowVersionsByID||{},[t]:e},e):null}cacheMissingWorkflowVersion(e){let t=String(e||``).trim();t&&(this.workflowVersionsByID={...this.workflowVersionsByID||{},[t]:null})}workflowVersionCacheHas(e){return Object.prototype.hasOwnProperty.call(this.workflowVersionsByID||{},String(e||``).trim())}workflowVersionByID(e){let t=String(e||``).trim();return t&&this.workflowVersionCacheHas(t)?this.workflowVersionsByID[t]:null}async fetchWorkflowVersion(e){let t=String(e||``).trim();if(!t)return null;if(this.workflowVersionCacheHas(t))return this.workflowVersionsByID[t];if(this.workflowVersionRequests[t])return this.workflowVersionRequests[t];let n=(async()=>{let e=typeof AbortController==`function`?new AbortController:null,n=e?setTimeout(()=>e.abort(),1e4):null;try{let n=await qX(`/admin/workflows/`+encodeURIComponent(t),{label:`workflow`,signal:e?e.signal:void 0});if(n.stale)return null;if(n.status===404)return this.cacheMissingWorkflowVersion(t),null;if(!n.ok)return null;let r=n.data;return!r||typeof r!=`object`||Array.isArray(r)?(this.cacheMissingWorkflowVersion(t),null):this.cacheWorkflowVersion(r)}catch(e){return e&&e.name===`AbortError`||console.error(`Failed to fetch workflow version:`,e),null}finally{n!==null&&clearTimeout(n),delete this.workflowVersionRequests[t]}})();return this.workflowVersionRequests[t]=n,n}async prefetchAuditWorkflows(e){let t=[...new Set((Array.isArray(e)?e:[]).map(e=>String(e&&e.workflow_version_id||``).trim()).filter(Boolean))];t.length!==0&&await Promise.all(t.map(e=>this.fetchWorkflowVersion(e)))}auditEntryWorkflow(e){let t=String(e&&e.workflow_version_id||``).trim();return t?this.workflowVersionByID(t):null}},Y5=6;function X5(e){if(typeof e!=`string`)return null;try{return JSON.parse(e)}catch{return null}}function Z5(e,t=0,n=null){let r=String(e||``).trim();if(!r)return``;if(t>Y5)return r;let i=X5(r);return i==null?r:Q5(i,t+1,n)||n&&n(i)||r}function Q5(e,t=0,n=null,r=null){if(e==null||t>Y5)return``;if(typeof e==`string`){let i=X5(e.trim());return i==null?``:Q5(i,t+1,n,r)}if(typeof e!=`object`)return``;let i=r||new Set;if(i.has(e))return``;if(i.add(e),Array.isArray(e)){for(let r=0;r=400||pHe(t&&t.response_body)}function hHe(e){let t=e&&e.data?e.data:null;return t?dHe(t.error_message)||(mHe(e,t)?Q5(t.response_body,0):``):``}function $5(e){if(e==null||String(e).trim()===``)return null;let t=Number(e);return!Number.isInteger(t)||t<0?null:t}function gHe(e){return $5(e)===null?``:e7(e)+t7(e)+`.`}function e7(e){let t=$5(e);return t===null?``:t===0?Sse():Tse()}function t7(e){let t=$5(e);return t===null?``:t===0?Ose():jse({count:t})}function _He({dateQuery:e,limit:t,offset:n,search:r,method:i,statusCode:a,stream:o}){let s=e;return s+=`&limit=`+t+`&offset=`+n,r&&(s+=`&search=`+encodeURIComponent(r)),i&&(s+=`&method=`+encodeURIComponent(i)),a&&(s+=`&status_code=`+encodeURIComponent(a)),o&&(s+=`&stream=`+encodeURIComponent(o)),s}function vHe({sessionId:e,limit:t}){return`session_id=`+encodeURIComponent(e)+`&limit=`+(t||100)+`&offset=0`}function n7(e){return String(e&&e.session_id||``).trim()}function r7(e){let t=Number(e&&e.session_count);return Number.isFinite(t)&&t>1?t:1}function yHe(e){return!!n7(e)&&r7(e)>1}function bHe(e){return{entries:(Array.isArray(e&&e.sessions)?e.sessions:[]).filter(e=>e&&e.latest).map(e=>({...e.latest,session_count:Math.max(1,Number(e.request_count)||1)})),total:Number(e&&e.total||0),limit:Number(e&&e.limit||25),offset:Number(e&&e.offset||0)}}function xHe(e,t,n){let r=new Set((Array.isArray(n)?n:[]).flatMap(e=>s7(e))),i=(Array.isArray(t)?t:[]).filter(e=>!s7(e).some(e=>r.has(e))),a=new Set([...r,...i.flatMap(e=>s7(e))]),o=(e&&Array.isArray(e.entries)?e.entries:[]).filter(e=>e&&e._live&&!s7(e).some(e=>a.has(e)));return{entries:[...o,...i],preservedCount:o.length}}function i7(e,t){let n=e||{};if(!t)return n;if(n[t]){let e={...n};return delete e[t],e}return{...n,[t]:!0}}function a7(e,t){let n=e||{},r=new Set((Array.isArray(t)?t:[]).map(e=>n7(e)).filter(Boolean)),i={},a=!1;return Object.keys(n).forEach(e=>{if(r.has(e)){i[e]=n[e];return}a=!0}),a?i:n}function o7(e){return String(e&&e.id||``).trim()}function s7(e){if(!e)return[];let t=[],n=String(e.id||``).trim(),r=String(e.request_id||``).trim();return n&&t.push(`id:`+n),r&&t.push(`request:`+r),t}function c7(e){return!!(e&&e._live&&e._live_pending&&!e._audit_flushed)}function SHe(e){let t=e&&e.customStartDate,n=e&&e.customEndDate;if(!t&&!n)return!0;let r=new Date;if(t){let e=new Date(t);if(e.setHours(0,0,0,0),Number.isFinite(e.getTime())&&re)return!1}return!0}function l7(e,t){return e&&Number(e.offset||0)===0&&!(t&&t.search)&&!(t&&t.method)&&!(t&&t.statusCode)&&!(t&&t.stream)&&SHe(t)}function CHe(e,t,n){let r=e&&typeof e==`object`?{...e}:{entries:[],total:0,limit:25,offset:0},i=Array.isArray(r.entries)?r.entries:[];if(r.entries=i,!l7(r,n))return r;let a=(Array.isArray(t)?t:[]).filter(e=>c7(e));if(a.length===0)return r;let o=new Set(i.flatMap(e=>s7(e))),s=[];return a.forEach(e=>{let t=s7(e);t.length!==0&&(t.some(e=>o.has(e))||(t.forEach(e=>o.add(e)),s.push(e)))}),s.length===0?r:(r.entries=[...s,...i].slice(0,r.limit||25),r.total=Number(r.total||0)+s.length,r)}function wHe(e,t,n){let r=e&&typeof e==`object`?{...e}:{entries:[],total:0,limit:25,offset:0},i=Array.isArray(r.entries)?r.entries:[];if(r.entries=i,!l7(r,n))return r;let a=(Array.isArray(t)?t:[]).filter(e=>c7(e));if(a.length===0)return r;let o=new Set(i.flatMap(e=>s7(e))),s=new Map;i.forEach((e,t)=>{let n=n7(e);n&&!s.has(n)&&s.set(n,t)});let c=[],l=i;return a.forEach(e=>{let t=s7(e);if(t.length===0||t.some(e=>o.has(e)))return;let n=n7(e);if(n&&s.has(n)){let r=s.get(n);l===i&&(l=[...i]);let a=r7(l[r]),c=Number(e&&e.session_count),u=Number.isFinite(c)&&c>1?c:null;l[r]={...e,session_count:u===null?a+1:Math.max(a,u)},t.forEach(e=>o.add(e));return}t.forEach(e=>o.add(e)),c.push(e)}),r.entries=[...c,...l].slice(0,r.limit||25),r.total=Number(r.total||0)+c.length,r}function THe(e,t){let n=o7(t),r=e||{};return n?r[n]?{}:{[n]:!0}:r}function EHe(e,t){let n=e||{},r=new Set((Array.isArray(t)?t:[]).map(e=>o7(e)).filter(Boolean)),i={},a=!1;return Object.keys(n).forEach(e=>{if(r.has(e)){i[e]=!0;return}a=!0}),a?i:n}function DHe(e){if(e==null)return`-`;let t=Number(e);return Number.isFinite(t)?t<=0?`pending`:t<1e6?Math.round(t/1e3)+` µs`:t<1e9?(t/1e6).toFixed(2)+` ms`:(t/1e9).toFixed(2)+` s`:`-`}function u7(e){if(e==null||e===``)return`status-unknown`;let t=Number(e);return Number.isFinite(t)?t>=500?`status-error`:t>=400?`status-warning`:t>=300?`status-neutral`:`status-success`:`status-unknown`}function d7(e){if(!e||!e._live||!e._live_pending)return!1;let t=String(e._live_state||``).trim();if(t===`audit.completed`||t===`audit.flushed`||t===`audit.detail`)return!1;if(e._response_partial)return!0;if(e.status_code!==null&&e.status_code!==void 0&&e.status_code!==``||Number(e.duration_ns||0)>0||e.error_type||e.error_message)return!1;let n=e.data||{};return!(n.response_headers||n.response_body||n.error_message)}function f7(e){let t=e&&e.data&&e.data.failover;return!t||typeof t!=`object`||Array.isArray(t)?null:String(t.target_model||t.targetModel||``).trim()||null}function p7(e){return(e&&e.data&&Array.isArray(e.data.attempts)?e.data.attempts:[]).map((e,t)=>({...e,seq:Number(e&&e.seq||t+1)})).sort((e,t)=>e.seq-t.seq)}function m7(e){let t=p7(e);return t.length>1||t.some(e=>!(e&&e.success))}function OHe(e){if(!e)return`-`;let t=e.status_code||e.status;return t?String(t):e.success?`ok`:`error`}function h7(e){return String(e&&e.kind||``).trim()||`attempt`}function kHe(e){if(!e)return`-`;let t=String(e.provider_name||``).trim(),n=String(e.provider_type||e.provider||``).trim();return t&&n&&t!==n?t+` (`+n+`)`:t||n||`-`}function AHe(e){return String(e&&e.model||``).trim()||`-`}function jHe(e){let t=p7(e);return t.length>1||t.some(e=>!(e&&e.success))?t:[]}function MHe(e){return p7(e).length+`×`}function NHe(e){let t=p7(e),n=t.filter(e=>!(e&&e.success)).length;return n>0?Zle({count:t.length,failed:n}):Jle({count:t.length})}function PHe(e){if(!e)return``;let t=[`#`+Number(e.seq||0)],n=h7(e);n&&n!==`attempt`&&t.push(n),t.push(OHe(e));let r=kHe(e);r&&r!==`-`&&t.push(r);let i=AHe(e);return i&&i!==`-`&&t.push(i),t.push(e.success?eue():rue()),t.join(` · `)}function FHe(e,t){if(!t)return null;if(t.success){let t=e&&e.data?e.data:null;return t&&t.response_body!=null?t.response_body:null}return t.response_body!=null&&t.response_body!==``?t.response_body:null}function IHe(e){if(!e||e.success)return``;let t=String(e.error_message||``).trim(),n=String(e.error_code||``).trim(),r=String(e.error_type||``).trim();return t&&n?n+`: `+t:t||n||r||Gle()}function LHe(e,t){if(!t)return null;if(t.success){let t=e&&e.data?e.data:null;return t?t.response_headers:null}return t.response_headers||null}function RHe(e){let t=Number(e&&e.status_code);return Number.isFinite(t)&&t>0?t:null}function zHe(e,t){let n=!!(t&&t.success),r=e&&e.data?e.data:null,i=FHe(e,t),a=LHe(e,t),o=IHe(t),s=i!=null&&i!==``,c=h7(t),l=p7(e).length<=1;return{title:Lo(),direction:`response`,seq:l?0:Number(t&&t.seq||0),kind:l||c===`attempt`?``:c,statusCode:l?null:RHe(t),layout:`split`,entry:e,copyHeaders:a,copyBody:i,showErrorMessage:!!o,errorMessage:o,showHeaders:!!a,headers:a,showBody:s,body:i,showEmpty:!o&&!s&&!a,emptyMessage:oue(),showTooLarge:!!(n&&r&&r.response_body_too_big_to_handle),tooLargeMessage:zo()}}function g7(e){return e&&e.data&&Array.isArray(e.data.request_revisions)?e.data.request_revisions:[]}function _7(e){return g7(e).filter(e=>!(e&&e.no_change))}function BHe(e){return g7(e).filter(e=>e&&e.no_change).map(e=>{let t=String(e.rewriter||`rewriter`);return{id:`step-`+Number(e.seq||0),rewriter:t,label:Oue({rewriter:t}),title:jue({rewriter:t})}})}function VHe(e){let t=Number(e&&e.bytes_before),n=Number(e&&e.bytes_after);if(!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n>=t)return``;let r=(1-n/t)*100;return`-`+(r>=10?String(Math.round(r)):r.toFixed(1))+`%`}function HHe(e,t){let n=t&&t.body,r=n!=null&&n!==``,i=_7(e).length<=1,a={rewriter:t&&t.rewriter||``,bytes:Number(t&&t.bytes_before||0)+` → `+Number(t&&t.bytes_after||0)};return t&&t.detail!=null&&(a.detail=t.detail),{title:zle(),direction:`request`,seq:i?0:Number(t&&t.seq||0),kind:t&&t.rewriter?String(t.rewriter):``,savingsLabel:VHe(t),layout:`split`,entry:e,copyHeaders:a,copyBody:n,showErrorMessage:!1,errorMessage:null,showHeaders:!0,headers:a,headersTitle:Hle(),showBody:r,body:n,showEmpty:!1,emptyMessage:``,showTooLarge:!r,tooLargeMessage:Tue()}}function v7(e){let t=e&&e.usage;return!t||typeof t!=`object`?null:t}function UHe(e){let t=v7(e);return Number(t&&t.cached_input_tokens||0)>0}function WHe(e){let t=v7(e),n=Number(t&&t.input_tokens||0),r=Number(t&&t.cached_input_tokens||0);return!Number.isFinite(n)||n<=0||!Number.isFinite(r)||r<=0?0:Math.max(0,Math.min(100,r/n*100))}function GHe(e){let t=v7(e);if(!t)return``;let n=Number(t.input_tokens||0),r=Number(t.cached_input_tokens||0);return n<=0?Pue({count:lZ(r)}):Lue({percent:WHe(e).toFixed(1)})}function KHe(e){return UHe(e)?GHe(e):``}function qHe(e,t){let n=v7(e);if(!n||!e||!e.data||!e.data.request_body)return null;let r=Number(n.estimated_cached_characters||0);if(!Number.isFinite(r)||r<=0||typeof t!=`function`)return null;let i=t(e.data.request_body);return!Array.isArray(i)||i.length===0?null:{characters:r,segments:i}}function JHe(e,t){let n=e&&e.data?e.data:null,r=!n||!n.request_headers&&!n.request_body,i=r&&d7(e);return{title:Ple(),direction:`request`,layout:`split`,entry:e,copyHeaders:n&&n.request_headers,copyBody:n&&n.request_body,showErrorMessage:!1,errorMessage:null,showHeaders:!!(n&&n.request_headers),headers:n&&n.request_headers,showBody:!!(n&&n.request_body),body:n&&n.request_body,bodyCacheRatioLabel:KHe(e),promptCacheHighlight:qHe(e,t),noChangeSteps:BHe(e),showEmpty:r&&!i,emptyMessage:lue(),showPending:i,pendingMessage:Ro(),showTooLarge:!!(n&&n.request_body_too_big_to_handle),tooLargeMessage:mue()}}function YHe(e){let t=e&&e.data?e.data:null,n=hHe(e),r=!t||!n&&!t.response_headers&&!t.response_body,i=r&&d7(e);return{title:Lo(),direction:`response`,layout:`split`,entry:e,copyHeaders:t&&t.response_headers,copyBody:t&&t.response_body,showErrorMessage:!!n,errorMessage:n,showHeaders:!!(t&&t.response_headers),headers:t&&t.response_headers,showBody:!!(t&&t.response_body),body:t&&t.response_body,streaming:!!(e&&e._response_partial&&t&&t.response_body)&&d7(e),showEmpty:r&&!i,emptyMessage:_ue(),showPending:i,pendingMessage:bue(),showTooLarge:!!(t&&t.response_body_too_big_to_handle),tooLargeMessage:zo()}}function y7(e,t){let n=[{id:`request`,pane:JHe(e,t)}];return _7(e).forEach(t=>{n.push({id:`revision-`+Number(t&&t.seq||0),pane:HHe(e,t)})}),m7(e)?p7(e).forEach(t=>{n.push({id:`response-`+Number(t&&t.seq||0),pane:zHe(e,t)})}):n.push({id:`response`,pane:YHe(e)}),n}function XHe(e){if(!m7(e))return`response`;let t=p7(e),n=null;return t.forEach(e=>{e&&e.success&&(n=e)}),n||=t[t.length-1],n?`response-`+Number(n.seq||0):`request`}function ZHe(e,t,n){return e&&(Array.isArray(n)?n:y7(t)).some(t=>t.id===e)?e:XHe(t)}function QHe(e,t,n){if(!t||!t.length)return null;let r=t.indexOf(n);r<0&&(r=0);let i;switch(e){case`ArrowRight`:case`ArrowDown`:i=(r+1)%t.length;break;case`ArrowLeft`:case`ArrowUp`:i=(r-1+t.length)%t.length;break;case`Home`:i=0;break;case`End`:i=t.length-1;break;default:return null}return t[i]}var $He=100;function b7(){return{entries:[],total:0,limit:25,offset:0}}var x7=new class{#e=j(N({}));get auditExpandedEntries(){return R(this.#e)}set auditExpandedEntries(e){M(this.#e,e,!0)}#t=j(N({}));get auditExpandedThreads(){return R(this.#t)}set auditExpandedThreads(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}auditFetchToken=0;get auditLog(){return g3.auditLog}set auditLog(e){g3.auditLog=e}get auditSearch(){return g3.auditSearch}set auditSearch(e){g3.auditSearch=e}get auditMethod(){return g3.auditMethod}set auditMethod(e){g3.auditMethod=e}get auditStatusCode(){return g3.auditStatusCode}set auditStatusCode(e){g3.auditStatusCode=e}get auditStream(){return g3.auditStream}set auditStream(e){g3.auditStream=e}get auditGroupSessions(){return g3.auditGroupSessions}liveFilters(){return{search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream,customStartDate:OZ.customStartDate,customEndDate:OZ.customEndDate}}toggleAuditGroupSessions(){g3.auditGroupSessions=!g3.auditGroupSessions,Ki(`gomodel_audit_group_sessions`,g3.auditGroupSessions),this.auditExpandedThreads={},g3.auditThreadChildren={},this.fetchAuditLog(!0)}async fetchAuditLog(e){let t=++this.auditFetchToken;this.loading=!0;try{e&&(this.auditLog.offset=0);let n=this.auditGroupSessions,r=_He({dateQuery:OZ.queryStr(),limit:this.auditLog.limit,offset:this.auditLog.offset,search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream}),i=await qX((n?`/admin/audit/sessions?`:`/admin/audit/log?`)+r,{label:`audit log`});if(i.stale||t!==this.auditFetchToken)return;if(!i.ok){this.auditLog=b7();return}let a=n?bHe(i.data):i.data,o=(n?wHe:CHe)(a,this.auditLog&&this.auditLog.entries,this.liveFilters());Array.isArray(o.entries)||(o.entries=[]),o.entries=g3.upsertAuditRecords(o.entries,`audit.list`),this.auditLog=o,this.auditExpandedThreads=a7(this.auditExpandedThreads,o.entries),g3.auditThreadChildren=a7(g3.auditThreadChildren,o.entries);let s=[...o.entries,...this.loadedThreadChildren()];this.auditExpandedEntries=EHe(this.auditExpandedEntries,s);try{await J5.prefetchAuditWorkflows(s)}catch(e){console.error(`Failed to prefetch audit workflows:`,e)}}catch(e){if(console.error(`Failed to fetch audit log:`,e),t!==this.auditFetchToken)return;this.auditLog=b7()}finally{t===this.auditFetchToken&&(this.loading=!1)}}loadedThreadChildren(){let e=g3.auditThreadChildren||{};return Object.keys(e).flatMap(t=>Array.isArray(e[t]&&e[t].entries)?e[t].entries:[])}isThreadExpanded(e){return!!(e&&this.auditExpandedThreads[e])}threadChildren(e){return e&&g3.auditThreadChildren[e]||null}async toggleThread(e){let t=n7(e);if(!t)return;let n=!this.isThreadExpanded(t);this.auditExpandedThreads=i7(this.auditExpandedThreads,t);let r=g3.auditThreadChildren[t];n&&!(r&&(r.loaded||r.loading))&&await this.fetchThreadEntries(e)}async fetchThreadEntries(e){let t=n7(e);if(!t)return;let n=g3.auditThreadChildren[t];g3.auditThreadChildren={...g3.auditThreadChildren,[t]:{loading:!0,loaded:!1,entries:n&&Array.isArray(n.entries)?n.entries:[],total:Number(n&&n.total||0)}};let r=()=>{let e={...g3.auditThreadChildren},n=e[t],r=n&&Array.isArray(n.entries)?n.entries:[];r.length>0?e[t]={loading:!1,loaded:!1,entries:r,total:r.length}:(delete e[t],this.auditExpandedThreads[t]&&(this.auditExpandedThreads=i7(this.auditExpandedThreads,t))),g3.auditThreadChildren=e};try{let n=await qX(`/admin/audit/log?`+vHe({sessionId:t,limit:$He}),{label:`audit session`});if(n.stale){r();return}if(!n.ok)throw Error(`audit session fetch failed`);let i=g3.auditThreadChildren[t],a=this.auditLog.entries.find(e=>n7(e)===t),o=xHe(i,n.data.entries,a?[a]:[e]);o.entries=g3.upsertAuditRecords(o.entries,`audit.thread`),g3.auditThreadChildren={...g3.auditThreadChildren,[t]:{loading:!1,loaded:!0,entries:o.entries,total:Number(n.data.total||0)+o.preservedCount}}}catch(e){console.error(`Failed to fetch audit session entries:`,e),r()}}clearAuditFilters(){this.auditSearch=``,this.auditMethod=``,this.auditStatusCode=``,this.auditStream=``,this.fetchAuditLog(!0)}auditLogNextPage(){this.auditLog.offset+this.auditLog.limit0&&(this.auditLog.offset=Math.max(0,this.auditLog.offset-this.auditLog.limit),this.fetchAuditLog(!1))}isAuditEntryExpanded(e){let t=o7(e);return t?!!(this.auditExpandedEntries&&this.auditExpandedEntries[t]):!1}toggleAuditEntryExpanded(e){this.auditExpandedEntries=THe(this.auditExpandedEntries,e);let t=this.isAuditEntryExpanded(e);return t&&typeof g3.fetchAuditEntryDetail==`function`&&g3.fetchAuditEntryDetail(e),t}expandAuditEntry(e){this.isAuditEntryExpanded(e)||this.toggleAuditEntryExpanded(e)}};g3.fetchAuditLog=e=>x7.fetchAuditLog(e),g3.isAuditEntryExpanded=e=>x7.isAuditEntryExpanded(e);var eUe=B(`
                        `);function tUe(e,t){O(t,!0);let n=B3(()=>x7.fetchAuditLog(!0));mn(()=>n.cancel);var r=eUe(),i=P(r),a=P(i);{let e=A(()=>Qse()),t=A(()=>tce());z3(a,{id:`audit-filter-search`,get placeholder(){return R(e)},get label(){return R(t)},get oninput(){return n},get value(){return x7.auditSearch},set value(e){x7.auditSearch=e}})}D(i);var o=I(i,2),s=P(o),c=P(s),l=P(c,!0);D(c),c.value=c.__value=``;var u=I(c);u.value=u.__value=`GET`;var d=I(u);d.value=d.__value=`POST`;var f=I(d);f.value=f.__value=`PUT`;var p=I(f);p.value=p.__value=`PATCH`;var m=I(p);m.value=m.__value=`DELETE`,D(s);var h=I(s,2),g=P(h),_=P(g,!0);D(g),g.value=g.__value=``;var v=I(g);v.value=v.__value=`200`;var y=I(v);y.value=y.__value=`201`;var b=I(y);b.value=b.__value=`400`;var x=I(b);x.value=x.__value=`401`;var S=I(x);S.value=S.__value=`403`;var C=I(S);C.value=C.__value=`404`;var w=I(C);w.value=w.__value=`429`;var T=I(w);T.value=T.__value=`500`;var ee=I(T);ee.value=ee.__value=`502`;var E=I(ee);E.value=E.__value=`503`;var te=I(E);te.value=te.__value=`504`,D(h);var ne=I(h,2),re=P(ne),ie=P(re,!0);D(re),re.value=re.__value=``;var ae=I(re),oe=P(ae,!0);D(ae),ae.value=ae.__value=`true`;var se=I(ae),ce=P(se,!0);D(se),se.value=se.__value=`false`,D(ne);var le=I(ne,2),ue=P(le);q(ue,{get icon(){return yX},class:`table-icon-svg`});var de=I(ue,2),fe=P(de,!0);D(de),D(le),D(o),D(r),L((e,t,n,r,i,a,o,c,u)=>{K(s,`aria-label`,e),H(l,t),K(h,`aria-label`,n),H(_,r),K(ne,`aria-label`,i),H(ie,a),H(oe,o),H(ce,c),H(fe,u)},[()=>ice(),()=>sce(),()=>uce(),()=>pce(),()=>gce(),()=>yce(),()=>Sce(),()=>Tce(),()=>Xoe()]),z(`change`,s,()=>x7.fetchAuditLog(!0)),_i(s,()=>x7.auditMethod,e=>x7.auditMethod=e),z(`change`,h,()=>x7.fetchAuditLog(!0)),_i(h,()=>x7.auditStatusCode,e=>x7.auditStatusCode=e),z(`change`,ne,()=>x7.fetchAuditLog(!0)),_i(ne,()=>x7.auditStream,e=>x7.auditStream=e),z(`click`,le,()=>x7.clearAuditFilters()),V(e,r),k()}xr([`change`,`click`]);var S7=B(` `),nUe=B(` `),rUe=B(` `);function iUe(e,t){O(t,!0);let n=A(()=>g3.auditLivePauseReason()),r=A(()=>g3.liveLogsStreaming&&!R(n));var i=Or(),a=F(i),o=e=>{var t=rUe(),i=P(t);let a;var o=I(i,2),s=e=>{var t=S7(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Oce()]),V(e,t)},c=e=>{var t=S7(),r=P(t,!0);D(t),L(e=>H(r,e),[()=>pFe(R(n))]),V(e,t)},l=e=>{var t=nUe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>jce()]),V(e,t)};U(o,e=>{g3.liveLogsStreaming?R(n)?e(c,1):e(l,-1):e(s)}),D(t),L(()=>a=G(i,1,`live-dot svelte-tve6yv`,null,a,{"is-streaming":R(r)})),V(e,t)},s=A(()=>XX.liveLogsVisible());U(a,e=>{R(s)&&e(o)}),V(e,i),k()}var aUe=B(``),oUe=B(` `),sUe=B(``);function cUe(e,t){O(t,!0);let n=A(()=>[{key:`provider`,text:_Z(t.entry)||`-`},{key:`model`,text:t.entry.requested_model||t.entry.model||`-`,mono:!0},{key:`user_path`,text:t.entry.user_path,mono:!0},{key:`session_id`,text:t.entry.session_id&&`session: `+t.entry.session_id,mono:!0},{key:`request_id`,text:`request_id: `+(t.entry.request_id||`-`),mono:!0},{key:`ip`,text:t.entry.client_ip&&`ip: `+t.entry.client_ip,mono:!0},{key:`auth_key_id`,text:t.entry.auth_key_id&&`auth_key_id: `+t.entry.auth_key_id,mono:!0},{key:`alias`,text:t.entry.alias_used&&`alias`,class:`audit-alias-badge`},{key:`resolved`,text:t.entry.alias_used&&t.entry.resolved_model&&`resolved: `+yZ(t.entry),mono:!0},{key:`failover`,text:f7(t.entry)&&`failover: `+f7(t.entry),mono:!0},{key:`stream`,text:t.entry.stream&&`stream`},{key:`error_type`,text:t.entry.error_type}].filter(e=>!!e.text));var r=sUe(),i=P(r),a=P(i,!0);D(i);var o=I(i,2);W(o,21,()=>R(n),e=>e.key,(e,n)=>{var r=Or(),i=F(r),a=e=>{var r=aUe(),i=P(r,!0);D(r),L(e=>{K(r,`title`,e),H(i,R(n).text)},[()=>Io()]),z(`click`,r,()=>X.filterBySession(t.entry.session_id,t.entry.user_path)),V(e,r)},o=e=>{var t=oUe(),r=P(t,!0);D(t),L(()=>{G(t,1,li([`provider-badge`,R(n).class,{mono:R(n).mono}]),`svelte-hyopt0`),H(r,R(n).text)}),V(e,t)};U(i,e=>{R(n).key===`session_id`?e(a):e(o,-1)}),V(e,r)}),D(o),D(r),L(e=>H(a,e),[()=>ale()]),V(e,r),k()}xr([`click`]);var lUe=B(``),uUe=B(` `);function dUe(e,t){O(t,!0);let n=A(()=>jHe(t.entry)),r=A(()=>R(n).length>0?NHe(t.entry):``),i=A(()=>R(n).length>0?MHe(t.entry):``);var a=Or(),o=F(a),s=e=>{var a=uUe(),o=P(a);W(o,21,()=>R(n),e=>t.entry.id+`-pip-`+e.seq,(e,t)=>{var n=lUe();let r;L(e=>{r=G(n,1,`audit-attempt-pip svelte-1eu22xn`,null,r,{"audit-attempt-success":!!(R(t)&&R(t).success),"audit-attempt-error":!(R(t)&&R(t).success)}),K(n,`title`,e)},[()=>PHe(R(t))]),V(e,n)}),D(o);var s=I(o,2),c=P(s,!0);D(s),D(a),L(()=>{K(a,`title`,R(r)),K(a,`aria-label`,R(r)),H(c,R(i))}),V(e,a)};U(o,e=>{R(n).length>0&&e(s)}),V(e,a),k()}var fUe=new Set([`instructions`,`messages`,`input`,`previous_response_id`,`choices`,`output`]);function pUe(e){if(!e||typeof e!=`object`)return``;let t=String(e.type||``).toLowerCase();if(t===`image`||t===`image_url`||t===`input_image`||t===`output_image`)return Wfe();if(t===`audio`||t===`input_audio`||t===`output_audio`)return qfe();if(t===`file`||t===`input_file`||t===`output_file`){let t=String(e.filename||e.name||``).trim();return t?$fe({name:t}):Xfe()}return typeof e.refusal==`string`?e.refusal:``}function C7(e){if(e==null)return``;if(typeof e==`string`)return e.trim();if(Array.isArray(e))return e.map(e=>typeof e==`string`?e:!e||typeof e!=`object`?``:typeof e.text==`string`?e.text:typeof e.output_text==`string`?e.output_text:pUe(e)).filter(Boolean).join(` -`).trim();if(typeof e==`object`){if(typeof e.text==`string`)return e.text.trim();try{return JSON.stringify(e,null,2)}catch{return``}}return String(e).trim()}function w7(e){return!e||typeof e!=`object`?``:C7(e.content)||(typeof e.refusal==`string`?e.refusal.trim():``)}function T7(e){if(e==null)return[];if(typeof e==`string`)return e?[e]:[];if(Array.isArray(e))return e.flatMap(e=>typeof e==`string`?e?[e]:[]:!e||typeof e!=`object`?[]:typeof e.text==`string`?e.text?[e.text]:[]:typeof e.output_text==`string`&&e.output_text?[e.output_text]:[]);if(typeof e==`object`)return typeof e.text==`string`&&e.text?[e.text]:[];let t=String(e);return t?[t]:[]}function E7(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(E7);if(typeof e==`object`)return Object.entries(e).flatMap(([e,t])=>[e,...E7(t)]);let t=String(e);return t?[t]:[]}function D7(e){return V7(e).flatMap(e=>[...e.name?[String(e.name)]:[],...E7(e.arguments)])}function O7(e){return Array.isArray(e)?e.flatMap(e=>e&&typeof e==`object`&&e.type===`tool_use`?D7([e]):T7(e)):T7(e)}function mUe(e){let t=e&&e.usage?e.usage.estimated_cached_characters:null;if(t==null)return null;let n=Number(t);return Number.isFinite(n)&&n>0?Math.floor(n):0}function hUe(e,t){if(!e)return null;let n=(Array.isArray(t)?t:[]).reduce((e,t)=>e+String(t||``).length,0),r=Math.min(String(e).length,n);return r>0?{total:r}:null}function gUe(e){let t=e&&e.arguments!==void 0?e.arguments:``,n=``;if(typeof t==`string`)n=t;else try{n=JSON.stringify(t)}catch{n=String(t)}return(String(e&&e.name||``)+`(`+n+`)`).length}function k7(e){return{characters:(Array.isArray(e)?e:[]).map(gUe)}}function _Ue(e,t){let n=Math.max(0,Number(t||0));return e.map(e=>{if(!e||e.role===`error`)return e;let t=Math.max(0,Number(e._promptTextCharacters||0)),r=Math.min(n,t);n-=r;let i=0;(Array.isArray(e._toolPromptCharacters)?e._toolPromptCharacters:[]).forEach(e=>{let t=Math.max(0,Number(e||0)),r=Math.min(n,t);n-=r,i+=r});let a=t+(e._toolPromptCharacters||[]).reduce((e,t)=>e+Math.max(0,Number(t||0)),0);return{...e,promptCacheRatio:a>0?(r+i)/a:0}})}function vUe(e){if(e==null)return[];if(typeof e==`string`){let t=e.trim();return t?[{role:`user`,text:t}]:[]}if(!Array.isArray(e)){let t=C7(e);return t?[{role:`user`,text:t}]:[]}return e.map(e=>{if(!e||typeof e!=`object`)return null;let t=String(e.role||`user`).toLowerCase(),n=C7(e.content);return n?{role:t,text:n}:null}).filter(Boolean)}function yUe(e){return w7(e)}function bUe(e){if(!e||typeof e!=`object`)return[];let t=[];return t.push(...T7(e.instructions)),Array.isArray(e.messages)&&e.messages.forEach(e=>{!e||typeof e!=`object`||(t.push(...O7(e.content)),t.push(...D7(e.tool_calls)))}),typeof e.input==`string`?t.push(e.input):Array.isArray(e.input)?e.input.forEach(e=>{if(!(!e||typeof e!=`object`)){if(e.type===`function_call`||e.type===`tool_use`){t.push(...D7([e]));return}t.push(...O7(e.content)),typeof e.text==`string`&&t.push(e.text)}}):e.input&&typeof e.input==`object`&&(t.push(...T7(e.input.content)),typeof e.input.text==`string`&&t.push(e.input.text)),t.map(e=>String(e||``)).filter(e=>e.length>0)}var A7=e=>C7(e);function xUe(e){if(!e||!e.data)return``;let t=Q5(e.data.response_body,0,A7);if(t)return t;let n=e.data.error_message;if(n==null)return``;if(typeof n==`string`){let e=n.trim();return e?Q5(X5(e),0,A7)||e:``}return Q5(n,0,A7)||C7(n)}function SUe(e){return Array.isArray(e)?e.some(e=>!e||typeof e!=`object`?!1:e.type===`message`||e.role===`assistant`||e.role===`user`||e.role===`system`?!0:Array.isArray(e.content)?e.content.some(e=>!e||typeof e!=`object`?!1:typeof e.text==`string`||e.type===`output_text`||e.type===`input_text`):!1):!1}function CUe(e){if(!e)return!1;let t=String(e).toLowerCase();return t===`/v1/embeddings`||t===`/v1/embeddings/`||t.startsWith(`/v1/embeddings?`)||t.startsWith(`/v1/embeddings/`)}function wUe(e){return e?!!j7(e):!1}function TUe(e){let t=String(e||``).trim().split(`?`)[0].replace(/\/+$/,``).toLowerCase();return t.startsWith(`/v1/`)?t.slice(3):t}function j7(e){switch(TUe(e)){case`/chat/completions`:return`chat`;case`/responses`:return`responses`;case`/messages`:return`messages`;default:return``}}function M7(e){if(!e||typeof e!=`object`)return null;try{return JSON.parse(JSON.stringify(e))}catch{return null}}function N7(e,t){if(!t||typeof t!=`object`)return;let n=e[e.length-1];try{if(n&&JSON.stringify(n)===JSON.stringify(t))return}catch{}e.push(t)}function EUe(e){let t=j7(e&&e.path),n=e&&e.data&&e.data.request_body;return!t||!n||typeof n!=`object`?!1:t!==`responses`||(e.data&&e.data.response_body&&typeof e.data.response_body.id==`string`?e.data.response_body.id.trim():``)!==``||G7(n)!==``}function DUe(e,t){let n=String(t||``).trim(),r=j7(e&&e.path),i=M7(e&&e.data&&e.data.request_body);if(!n||!r||!i)return null;let a=e&&e.data?e.data.response_body:null;if(r===`responses`){let e=a&&typeof a.id==`string`?a.id.trim():``,t=G7(i);return!e&&!t?null:(i.input=n,e&&!t?i.previous_response_id=e:delete i.previous_response_id,i)}let o=Array.isArray(i.messages)?i.messages:[];if(r===`chat`){let e=a&&Array.isArray(a.choices)?a.choices[0]:null;e&&e.message&&N7(o,M7(e.message)),o.push({role:`user`,content:n})}else a&&a.content!==void 0&&N7(o,{role:String(a.role||`assistant`),content:M7(a.content)||a.content}),o.push({role:`user`,content:n});return i.messages=o,i}var OUe=new Set(`authorization.proxy-authorization.cookie.content-type.content-length.host.accept.connection.accept-encoding.content-encoding.transfer-encoding.user-agent.date.expect.upgrade.via.te.trailer.keep-alive.origin.referer.forwarded.x-real-ip.traceparent.tracestate.x-request-id.idempotency-key.x-idempotency-key.x-gomodel-timezone.x-gomodel-interaction-parent`.split(`.`));function kUe(e,t,n=``){let r=e&&e.data&&e.data.request_headers,i={};return r&&typeof r==`object`&&Object.keys(r).forEach(e=>{let t=String(e).toLowerCase(),n=String(r[e]==null?``:r[e]);!e||!n||n===`[REDACTED]`||OUe.has(t)||t.startsWith(`sec-`)||t.startsWith(`cf-`)||t.startsWith(`x-forwarded-`)||(i[e]=n)}),i[`X-GoModel-Interaction-Parent`]=String(t||e&&e.id||``).trim(),String(n||``).trim()&&(i[`X-Request-ID`]=String(n).trim()),i}function AUe(e,t){let n=String(t||``).trim();return!n||!Array.isArray(e)?null:e.find(e=>String(e&&e.request_id||``).trim()===n)||null}function jUe(e,t,n,r,i){let a=Array.isArray(e)?e:[],o=String(i&&i.id||``).trim(),s=String(i&&i.request_id||``).trim(),c=String(i&&i.session_id||``).trim(),l=String(r||``).trim(),u=P7(i),d=a.some(e=>o&&String(e&&e.id||``).trim()===o||s&&String(e&&e.request_id||``).trim()===s),f=!!l&&s===l,p=!!n&&c===String(n).trim(),m=!!u&&(u===String(t||``).trim()||a.some(e=>String(e&&e.id||``).trim()===u)),h=d||f||!l&&(p||m);return{accepted:h,submittedChild:f,followUpRequestID:h&&f&&o?``:l}}function P7(e){let t=e&&e.data&&e.data.request_headers;if(!t||typeof t!=`object`)return``;let n=Object.keys(t).find(e=>e.toLowerCase()===`x-gomodel-interaction-parent`);return n?String(t[n]||``).trim():``}function MUe(e,t){return!Array.isArray(e)||!t?null:e.find(e=>String(e&&e.id||``)===String(t))||null}function F7(e){return!Array.isArray(e)||e.length===0?null:e.reduce((e,t)=>e?K7(t,e)>=0?t:e:t,null)}function NUe(e,t){let n=new Set(Array.isArray(t)?t.map(String):[]);return F7((Array.isArray(e)?e:[]).filter(e=>{let t=String(e&&e.id||``);return n.has(t)&&e&&e.data&&e.data.request_body!=null}))}function PUe(e,t){let n=F7(e);return!!n&&String(n.id||``)===String(t||``)}function FUe(e,t,n){return String(e||``).trim()===`audit.flushed`&&String(t||``).trim()!==``&&String(t||``).trim()===String(n||``).trim()}function I7(e,t){let n=Array.isArray(e)?e.filter(Boolean).map(String):[];return(Array.isArray(t)?t:[]).forEach(e=>{let t=String(e&&(e.id||e.request_id)||``).trim();t&&!n.includes(t)&&n.push(t)}),n}function IUe(e){if(e&&e.conversation_payload)return!0;let t=e&&e.data?e.data.request_body:null,n=e&&e.data?e.data.response_body:null,r=t&&(Array.isArray(t.messages)||t.input!==void 0||typeof t.instructions==`string`||typeof t.previous_response_id==`string`),i=n&&(Array.isArray(n.choices)||SUe(n.output));return!!(r||i)}function LUe(e){return!e||CUe(e.path)?!1:wUe(e.path)||IUe(e)}function L7(e){let t=0,n=!1,r=!1,i=String(e||``);for(let e=0;e0&&a+1`,`>`).replaceAll(`"`,`"`).replaceAll(`'`,`'`)}function BUe(e){return!!(e&&typeof e==`object`&&e.__audio__===!0)}function VUe(e){let t=Number(e||0);if(!Number.isFinite(t)||t<=0)return`0 B`;let n=[`B`,`KB`,`MB`,`GB`],r=0,i=t;for(;i>=1024&&r`
                        `+R7(t)+``+R7(UUe(e[t]))+`
                        `);return t.length?``:``}function GUe(e){let t=HUe(e.content_type),n=R7(t+` · `+VUe(e.bytes)),r=WUe(e.meta);if(e.stored&&e.encoding===`base64`&&e.data){let i=String(e.data).replace(/[^A-Za-z0-9+/=]/g,``);return`
                        `+n+`
                        `+r+`
                        `}let i=e.too_large?Bue():Uue();return`
                        `+n+`
                        `+R7(i)+`
                        `+r+`
                        `}function z7(e){try{return JSON.stringify(String(e)).slice(1,-1)}catch{return``}}function KUe(e){if(!e||typeof e!=`object`)return null;let t=Number(e.characters||0);if(!Number.isFinite(t)||t<=0)return null;let n=Array.isArray(e.segments)?e.segments.map(e=>String(e||``)).filter(Boolean):[];return n.length===0?null:{remaining:Math.floor(t),segments:n,segmentIndex:0}}function B7(e,t){if(!t||t.remaining<=0||t.segmentIndex>=t.segments.length)return R7(e);let n=``,r=0,i=0;for(;t.remaining>0&&t.segmentIndex`+R7(l)+``,r=s+l.length,i=s+o.length,t.remaining-=c,c>=a.length){t.segmentIndex++;continue}break}return n?n+R7(e.slice(r)):R7(e)}function qUe(e,t,n){let r=n&&typeof n.formatJSON==`function`?n.formatJSON:e=>String(e),i=n&&typeof n.canShowConversation==`function`?n.canShowConversation:()=>!1,a=KUe(n&&n.promptCacheHighlight),o=r(t);if(!o||o===`Not captured`)return R7(o);if(!i(e))return o.split(` -`).map(e=>B7(e,a)).join(` -`);let s=o.split(` -`),c=[],l=0;for(;lB7(e,a)).join(` -`);c.push(``+o+``),l=r+1;continue}c.push(B7(e,a)),l++}return c.join(` -`)}function JUe(e){let t=String(e||``).toLowerCase();return t===`system`||t===`developer`?{role:`system`,label:Efe(),className:`role-system`}:t===`assistant`?{role:`assistant`,label:kfe(),className:`role-assistant`}:t===`error`?{role:`error`,label:Mfe(),className:`role-error`}:t===`function_call`?{role:`function_call`,label:Ffe(),className:`role-function-call`}:t===`function_result`?{role:`function_result`,label:Rfe(),className:`role-function-result`}:{role:`user`,label:Vfe(),className:`role-user`}}function YUe(e,t,{timestamp:n,entryID:r,isAnchor:i,isAfterAnchor:a,index:o,toolCalls:s,functionName:c,functionCallID:l,promptCache:u,toolPromptCache:d}){let f=JUe(e),p=u&&Number.isFinite(Number(u.total))?Math.max(0,Number(u.total)):u===null?0:String(t||``).length,m=d&&Array.isArray(d.characters)?d.characters:k7(s).characters;return{uid:r+`-`+o,entryID:r,timestamp:n,text:t,role:f.role,roleLabel:f.label,roleClass:f.className,isAnchor:i,isAfterAnchor:a,toolCalls:Array.isArray(s)&&s.length>0?s:null,functionName:c||``,functionCallID:l||``,promptCacheRatio:0,_promptTextCharacters:p,_toolPromptCharacters:m}}function V7(e){return Array.isArray(e)?e.map(e=>{if(!e)return null;let t=e.function||e,n=``;return t.arguments===void 0?e.arguments===void 0?t.input===void 0?e.input!==void 0&&(n=e.input):n=t.input:n=e.arguments:n=t.arguments,{name:t.name||e.name||``,arguments:n,id:e.call_id||e.id||``}}).filter(Boolean):[]}function H7(e){return Array.isArray(e)?V7(e.filter(e=>e&&typeof e==`object`&&e.type===`tool_use`)):[]}function XUe(e){return Array.isArray(e)?e.filter(e=>e&&typeof e==`object`&&e.type===`tool_result`).map(e=>({id:e.tool_use_id||e.call_id||``,text:C7(e.content)})):[]}function U7(e,t,n){!t||!n||[t.call_id,t.id].forEach(t=>{t&&(e[t]=n)})}function ZUe(e,t,n){if(t&&Array.isArray(t.messages)&&t.messages.forEach(t=>{t&&[...Array.isArray(t.tool_calls)?t.tool_calls:[],...Array.isArray(t.content)?t.content.filter(e=>e&&e.type===`tool_use`):[]].forEach(t=>{t&&U7(e,t,(t.function||t).name||t.name||``)})}),t&&Array.isArray(t.input)&&t.input.forEach(t=>{!t||typeof t!=`object`||t.type!==`function_call`&&t.type!==`tool_use`||U7(e,t,t.name||``)}),n&&Array.isArray(n.choices)){let t=n.choices[0];t&&t.message&&Array.isArray(t.message.tool_calls)&&t.message.tool_calls.forEach(t=>{t&&U7(e,t,(t.function||t).name||t.name||``)})}n&&Array.isArray(n.output)&&n.output.forEach(t=>{!t||t.type!==`function_call`&&t.type!==`tool_use`||U7(e,t,t.name||``)}),n&&Array.isArray(n.content)&&n.content.forEach(t=>{!t||t.type!==`tool_use`||U7(e,t,t.name||``)})}function W7(e){return Array.isArray(e)?`[`+e.map(W7).join(`,`)+`]`:e&&typeof e==`object`?`{`+Object.keys(e).sort().map(t=>JSON.stringify(t)+`:`+W7(e[t])).join(`,`)+`}`:JSON.stringify(e)}function QUe(e){if(!e||typeof e!=`object`)return null;let t=[];if(e.system!==void 0&&t.push({system:e.system}),e.instructions!==void 0&&t.push({instructions:e.instructions}),Array.isArray(e.messages))t.push(...e.messages);else if(Array.isArray(e.input)&&e.previous_response_id==null&&e.conversation==null)t.push(...e.input);else return null;return t.map(W7)}function G7(e){let t=e&&e.conversation;return typeof t==`string`?t.trim():t&&typeof t.id==`string`?t.id.trim():``}function K7(e,t){let n=new Date(e&&e.timestamp).getTime(),r=new Date(t&&t.timestamp).getTime();if(Number.isFinite(n)&&Number.isFinite(r)&&n!==r)return n-r;let i=String(e&&e.timestamp||``).localeCompare(String(t&&t.timestamp||``));if(i!==0)return i;let a=String(e&&e.id||``),o=String(t&&t.id||``);return ao)}function q7(e,t){if(!Array.isArray(e)||e.length===0)return{messages:[],entryIDs:[]};let n=[...e].sort(K7),r={};n.forEach(e=>{let t=e.data&&e.data.request_body?e.data.request_body:null,n=e.data&&e.data.response_body?e.data.response_body:null;ZUe(r,t,n)});let i=[],a=new Set,o=new Set,s=new Set,c=[],l=null,u=0,d=n.findIndex(e=>e.id===t),f=e=>JSON.stringify({role:e.role,text:e.text,toolCalls:e.toolCalls,functionName:e.functionName,functionCallID:e.functionCallID});return n.forEach((e,n)=>{let p=e.id===t,m=d>=0&&n>d,h=e.timestamp,g=e.data&&e.data.request_body?e.data.request_body:null,_=e.data&&e.data.response_body?e.data.response_body:null,v=i.length,y=(e,t)=>hUe(e,t),b=e=>k7(e),x=(t,n,{toolCalls:r,functionName:i,functionCallID:a,promptCache:o,toolPromptCache:s}={})=>YUe(t,n,{timestamp:h,entryID:e.id,isAnchor:p,isAfterAnchor:m,index:++u,toolCalls:r,functionName:i,functionCallID:a,promptCache:o,toolPromptCache:s});if(g&&g.system!==void 0){let e=C7(g.system);e&&i.push(x(`system`,e,{promptCache:y(e,T7(g.system))}))}if(g&&g.instructions!==void 0){let e=C7(g.instructions);e&&i.push(x(`system`,e,{promptCache:y(e,T7(g.instructions))}))}g&&Array.isArray(g.messages)&&g.messages.forEach(e=>{if(!e)return;let t=(e.role||`user`).toLowerCase();if(t===`tool`){let t=C7(e.content),n=e.name||r[e.tool_call_id]||``;t&&i.push(x(`function_result`,t,{functionName:n,functionCallID:e.tool_call_id||``,promptCache:y(t,T7(e.content))}));return}if(t===`assistant`){let n=w7(e),r=[...V7(e.tool_calls),...H7(e.content)];if(n||r.length>0){let a=y(n,T7(e.content));i.push(x(t,n,{toolCalls:r,promptCache:a,toolPromptCache:b(r)}))}return}XUe(e.content).forEach(e=>{e.text&&i.push(x(`function_result`,e.text,{functionName:r[e.id]||``,functionCallID:e.id,promptCache:y(e.text,[e.text])}))});let n=w7(e);n&&i.push(x(t,n,{promptCache:y(n,T7(e.content))}))}),g&&g.input!==void 0&&(Array.isArray(g.input)?g.input.forEach(e=>{if(!(!e||typeof e!=`object`)){if(e.type===`function_call_output`||e.type===`tool_result`){let t=e.type===`tool_result`,n=t?e.content:e.output,a=t?e.tool_use_id||e.call_id||``:e.call_id||``,o=typeof n==`string`?n:C7(n);o&&i.push(x(`function_result`,o,{functionName:r[a]||e.name||``,functionCallID:a,promptCache:y(o,t?T7(e.content):[o])}))}else if(e.type===`function_call`||e.type===`tool_use`){let t=V7([e]);i.push(x(`function_call`,``,{toolCalls:t,toolPromptCache:b(t)}))}else if(e.role){let t=String(e.role).toLowerCase(),n=C7(e.content);n&&i.push(x(t,n,{promptCache:y(n,T7(e.content))}))}}}):vUe(g.input).forEach(e=>{if(!e.text)return;let t=[];typeof g.input==`string`?t=[g.input]:g.input&&typeof g.input==`object`&&(t=T7(g.input.content),typeof g.input.text==`string`&&t.push(g.input.text)),i.push(x(e.role,e.text,{promptCache:y(e.text,t)}))}));let S=i.splice(v),C=S.map(f),w=QUe(g),T=w!==null,ee=P7(e),E=!!ee&&a.has(ee),te=String(g&&g.previous_response_id||``).trim(),ne=G7(g),re=E||!!te&&o.has(te)||!!ne&&s.has(ne);if(m){let e=T&&l&&l.length>0&&l.every((e,t)=>w[t]===e);if(T&&!e&&!E||!T&&!re)return}p&&T&&(l=[...w]);let ie=String(e.id||``).trim();p&&(a.clear(),o.clear(),s.clear()),ie&&(p||m)&&a.add(ie),ne&&s.add(ne);let ae=0;for(;ae0;){let t=c.slice(-e),n=C.slice(0,e);if(t.every((e,t)=>e===n[t]))break;e--}i.push(...S.slice(e)),c.push(...C.slice(e))}let oe=mUe(e);if(g&&oe!==null&&i.splice(0,i.length,..._Ue(i,oe)),_&&Array.isArray(_.choices)){let e=_.choices[0];if(e&&e.message){let t=(e.message.role||`assistant`).toLowerCase(),n=w7(e.message),r=V7(e.message.tool_calls);if(n||r.length>0){let e=x(t,n,{toolCalls:r});i.push(e),c.push(f(e))}}}if(_&&Array.isArray(_.output)&&_.output.forEach(e=>{if(!e)return;if(e.type===`function_call`||e.type===`tool_use`){let t=x(`function_call`,``,{toolCalls:V7([e])});i.push(t),c.push(f(t));return}let t=(e.role||`assistant`).toLowerCase(),n=yUe(e);if(n){let e=x(t,n);i.push(e),c.push(f(e))}}),_&&_.content!==void 0&&!Array.isArray(_.choices)&&!Array.isArray(_.output)){let e=String(_.role||`assistant`).toLowerCase(),t=C7(_.content),n=H7(_.content);if(t||n.length>0){let r=x(e,t,{toolCalls:n});i.push(r),c.push(f(r))}}let se=xUe(e);se&&i.push(x(`error`,se));let ce=String(_&&_.id||``).trim();ce&&o.add(ce)}),{messages:i,entryIDs:[...a]}}function J7(e){return e.role===`function_call`?(e.toolCalls||[]).map(function(e){return e.name+`(`+Y7(e)+`)`}).join(` - -`):e.text||``}function $Ue(e){return e?[String(e.text||``),Array.isArray(e.toolCalls)&&e.toolCalls.length>0?J7({role:`function_call`,toolCalls:e.toolCalls}):``].filter(Boolean).join(` - -`):``}function Y7(e){let t=e&&e.arguments!==void 0?e.arguments:``;if(typeof t!=`string`)try{return JSON.stringify(t,null,2)}catch{return String(t)}try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}var eWe=600*1e3,tWe=15*1e3,nWe=250,rWe=class{#e=j(!1);get conversationOpen(){return R(this.#e)}set conversationOpen(e){M(this.#e,e,!0)}#t=j(!1);get conversationLoading(){return R(this.#t)}set conversationLoading(e){M(this.#t,e,!0)}#n=j(``);get conversationError(){return R(this.#n)}set conversationError(e){M(this.#n,e,!0)}#r=j(``);get conversationAnchorID(){return R(this.#r)}set conversationAnchorID(e){M(this.#r,e,!0)}#i=j(N([]));get conversationEntryIDs(){return R(this.#i)}set conversationEntryIDs(e){M(this.#i,e,!0)}#a=j(``);get conversationSessionID(){return R(this.#a)}set conversationSessionID(e){M(this.#a,e,!0)}#o=j(!1);get conversationTruncated(){return R(this.#o)}set conversationTruncated(e){M(this.#o,e,!0)}#s=j(!1);get conversationFollowLatest(){return R(this.#s)}set conversationFollowLatest(e){M(this.#s,e,!0)}#c=j(``);get conversationOpenedFromID(){return R(this.#c)}set conversationOpenedFromID(e){M(this.#c,e,!0)}#l=j(``);get followUpText(){return R(this.#l)}set followUpText(e){M(this.#l,e,!0)}#u=j(!1);get followUpSending(){return R(this.#u)}set followUpSending(e){M(this.#u,e,!0)}#d=j(``);get followUpError(){return R(this.#d)}set followUpError(e){M(this.#d,e,!0)}followUpRequestID=``;followUpAbort=null;conversationRequestToken=0;conversationReturnFocusEl=null;bodyPointerStart=null;#f=j(null);get conversationDialogEl(){return R(this.#f)}set conversationDialogEl(e){M(this.#f,e,!0)}#p=j(null);get conversationCloseBtnEl(){return R(this.#p)}set conversationCloseBtnEl(e){M(this.#p,e,!0)}#m=j(null);get conversationThreadEl(){return R(this.#m)}set conversationThreadEl(e){M(this.#m,e,!0)}get conversationEntries(){return(this.conversationEntryIDs||[]).map(e=>g3.auditRecord(e)).filter(Boolean)}#h=A(()=>q7(this.conversationEntries,this.conversationAnchorID));get conversationView(){return R(this.#h)}set conversationView(e){M(this.#h,e)}get conversationMessages(){return this.conversationView.messages}get conversationBranchEntryIDs(){return this.conversationView.entryIDs}_setConversationEntryIDs(e){this.conversationEntryIDs=[...new Set((Array.isArray(e)?e:[]).filter(Boolean))],g3.pinAuditRecords(this.conversationEntryIDs)}canShowConversation(e){return LUe(e)}startBodyInteraction(e){this.bodyPointerStart={x:e.clientX,y:e.clientY}}_isBodyDrag(e){if(!this.bodyPointerStart)return!1;let t=Math.abs(e.clientX-this.bodyPointerStart.x),n=Math.abs(e.clientY-this.bodyPointerStart.y);return t>4||n>4}_hasActiveSelection(){let e=window.getSelection?window.getSelection():null;return!e||e.isCollapsed?!1:String(e.toString()||``).trim().length>0}handleBodyConversationClick(e,t){let n=this._isBodyDrag(e);if(this.bodyPointerStart=null,n||this._hasActiveSelection()||!this.canShowConversation(t))return;let r=e.target&&e.target.closest?e.target.closest(`[data-conversation-trigger="1"]`):null;r&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,r))}handleErrorConversationClick(e,t){let n=this._isBodyDrag(e);this.bodyPointerStart=null,!n&&(this._hasActiveSelection()||this.canShowConversation(t)&&(e.preventDefault(),e.stopPropagation(),this.openConversation(t,e.currentTarget)))}formatJSON(e){return cZ(e)}renderBodyWithConversationHighlights(e,t,n){return qUe(e,t,{formatJSON:e=>this.formatJSON(e),canShowConversation:e=>this.canShowConversation(e),promptCacheHighlight:n&&n.promptCacheHighlight})}async openConversation(e,t){if(!e||!e.id||!this.canShowConversation(e))return;let n=document.activeElement instanceof HTMLElement?document.activeElement:null;t instanceof HTMLElement?this.conversationReturnFocusEl=t:n&&n!==document.body&&(this.conversationReturnFocusEl=n);let r=++this.conversationRequestToken;if(this.conversationOpen=!0,this.conversationError=``,this.conversationAnchorID=e.id,this.conversationOpenedFromID=e.id,this.conversationSessionID=String(e.session_id||``).trim(),this._setConversationEntryIDs([]),this.conversationTruncated=!1,this.conversationFollowLatest=!1,this.followUpText=``,this.followUpError=``,this.followUpRequestID=``,requestAnimationFrame(()=>this._focusConversationDrawer()),this._conversationEntryLivePending(e)){this.conversationFollowLatest=!0,this.conversationLoading=!1,this._addConversationRecord(g3.upsertAuditRecord(e,`conversation.live`));return}this.conversationLoading=!0,await this.fetchConversation(e.id,r,!0,!0)}_conversationEntryLivePending(e){return typeof g3.auditEntryLiveDetailPending==`function`&&g3.auditEntryLiveDetailPending(e)}_applyConversationView(){let e=this.conversationEntries,t=q7(e,this.conversationAnchorID);if(this.conversationFollowLatest){let n=NUe(e,t.entryIDs);n&&n.id&&String(n.id)!==this.conversationAnchorID&&(this.conversationAnchorID=String(n.id))}}handleAuditRecordChange(e,t){if(!this.conversationOpen||!e)return;let n=String(e.id||``).trim(),r=jUe(this.conversationEntries,this.conversationAnchorID,this.conversationSessionID,this.followUpRequestID,e);if(r.accepted&&(this.followUpRequestID=r.followUpRequestID,n&&r.submittedChild&&(this.conversationAnchorID=n,this.conversationFollowLatest=!0),this._addConversationRecord(e),FUe(String(t||e._live_state||``).trim(),n,this.conversationAnchorID))){this.conversationMessages.length===0&&(this.conversationLoading=!0);let e=++this.conversationRequestToken;this.fetchConversation(n,e,!1)}}_addConversationRecord(e){let t=f3(e);t&&!this.conversationEntryIDs.includes(t)&&this._setConversationEntryIDs([...this.conversationEntryIDs,t]),!this.conversationSessionID&&e.session_id&&(this.conversationSessionID=String(e.session_id).trim()),this._applyConversationView(),this.conversationFollowLatest&&this._scheduleLatestScroll()}conversationLiveWaiting(){if(!this.conversationOpen)return!1;let e=new Set(this.conversationBranchEntryIDs||[]);return(this.conversationEntries||[]).some(t=>e.has(String(t&&t.id||``))&&t._live&&(typeof g3.liveAuditStateSettled!=`function`||!g3.liveAuditStateSettled(t._live_state)))}conversationLiveStatusText(){return(this.conversationMessages||[]).length>0?afe():Ro()}closeConversation(){this.followUpAbort&&this.followUpAbort.abort(),this.conversationOpen=!1,this.conversationRequestToken++,this.conversationSessionID=``,this._setConversationEntryIDs([]),this.conversationFollowLatest=!1,this.conversationOpenedFromID=``,this.followUpRequestID=``,this.followUpSending=!1;let e=this.conversationReturnFocusEl;this.conversationReturnFocusEl=null,e&&typeof e.focus==`function`&&document.contains(e)&&requestAnimationFrame(()=>e.focus())}_focusConversationDrawer(){if(!this.conversationOpen)return;let e=this.conversationCloseBtnEl;if(e&&typeof e.focus==`function`){e.focus();return}let t=this.conversationDialogEl;t&&typeof t.focus==`function`&&t.focus()}async fetchConversation(e,t,n=!0,r=!1){try{let i=await qX(`/admin/audit/conversation?`+(`log_id=`+encodeURIComponent(e)+`&limit=120`),{label:`audit conversation`});if(t!==this.conversationRequestToken||i.stale)return;if(!i.ok){this.conversationError=cfe();return}let a=i.data||{},o=a.anchor_id||e,s=Array.isArray(a.entries)?a.entries:[],c=g3.upsertAuditRecords(s,`conversation.hydrated`),l=I7(this.conversationEntryIDs,c);l.length>this.conversationEntryIDs.length&&this._setConversationEntryIDs(l),r&&(this.conversationFollowLatest=PUe(c,o)),this.conversationAnchorID=o;let u=this.conversationEntries.find(e=>e.id===this.conversationAnchorID);u&&u.session_id&&(this.conversationSessionID=String(u.session_id).trim()),this.conversationTruncated=!!a.truncated,this._applyConversationView(),this.conversationFollowLatest?this._scheduleLatestScroll():n&&this._scheduleAnchorScroll()}catch(e){if(t!==this.conversationRequestToken)return;console.error(`Failed to fetch audit conversation:`,e),this.conversationError=dfe()}finally{t===this.conversationRequestToken&&(this.conversationLoading=!1)}}selectedConversationEntry(){return MUe(this.conversationEntries,this.conversationAnchorID)}followUpKind(){let e=this.selectedConversationEntry();return EUe(e)?j7(e.path):``}canSendFollowUp(){return!!this.followUpKind()&&!!String(this.followUpText||``).trim()&&!this.followUpSending&&!this.conversationLiveWaiting()}async sendFollowUp(){if(!this.canSendFollowUp())return;let e=this.selectedConversationEntry(),t=DUe(e,this.followUpText);if(!e||!t)return;let n=this.conversationAnchorID,r=aWe(),i=new AbortController,a=!1,o=setTimeout(()=>{a=!0,i.abort()},eWe);this.followUpSending=!0,this.followUpError=``,this.followUpRequestID=r,this.followUpAbort=i;try{let a=kUe(e,n,r),o=await GX(e.path,{method:`POST`,headers:a,body:JSON.stringify(t),signal:i.signal}),s=String(o.headers.get(`X-Request-ID`)||``).trim();if(s&&this.followUpRequestID&&(this.followUpRequestID=s),!o.ok){let e=mfe();try{let t=await o.json();e=t&&t.error&&t.error.message||e}catch{}this.followUpError=e,(this.followUpRequestID===r||this.followUpRequestID===s)&&(this.followUpRequestID=``);return}if(this.followUpText=``,await iWe(o),!g3.liveLogsStreaming&&this.conversationOpen){let e=++this.conversationRequestToken;await this._selectPersistedFollowUp(n,this.followUpRequestID,e,i.signal)}}catch(e){YX(e)||i.signal.aborted?a&&this.conversationOpen&&(this.followUpError=_fe()):(console.error(`Failed to send interaction follow-up:`,e),this.followUpError=bfe())}finally{clearTimeout(o),this.followUpAbort===i&&(this.followUpAbort=null,this.followUpSending=!1)}}async _selectPersistedFollowUp(e,t,n,r){let i=Date.now()+tWe;for(;this.conversationOpen&&n===this.conversationRequestToken&&Date.now(){let e=this.conversationThreadEl;if(!e)return;let t=e.querySelectorAll(`[data-conversation-anchor="true"]`),n=t[t.length-1];n&&typeof n.scrollIntoView==`function`&&n.scrollIntoView({block:`center`})})}_scheduleLatestScroll(){requestAnimationFrame(()=>{let e=this.conversationThreadEl;if(!e)return;let t=e.lastElementChild;t&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`end`})})}};async function iWe(e){let t=e&&e.body&&typeof e.body.getReader==`function`?e.body.getReader():null;if(!t){await e.text();return}for(;!(await t.read()).done;);}function aWe(){return globalThis.crypto&&typeof globalThis.crypto.randomUUID==`function`?globalThis.crypto.randomUUID():`dashboard-`+Date.now().toString(36)+`-`+Math.random().toString(36).slice(2)}function oWe(e,t){return new Promise((n,r)=>{let i,a=()=>{clearTimeout(i),r(new DOMException(`Aborted`,`AbortError`))};if(i=setTimeout(()=>{t&&t.removeEventListener(`abort`,a),n()},e),t){if(t.aborted){a();return}t.addEventListener(`abort`,a,{once:!0})}})}var X7=new rWe,Z7=0;gn(()=>{mn(()=>{let e=vFe(g3.auditRecordChanges,Z7);e.length!==0&&(Z7=Number(e[e.length-1].version||0),or(()=>{e.forEach(e=>{if(!yFe(e))return;let t=g3.auditRecord(e.key);X7.handleAuditRecordChange(t,e.eventType)})}))})});var sWe=B(``),cWe=B(``),lWe=B(` `),uWe=B(` `),dWe=B(``),fWe=B(`
                        `);function pWe(e,t){O(t,!0);let n=zi(t,`thread`,3,null),r=zi(t,`expanded`,3,!1),i=zi(t,`onactivate`,3,null),a=zi(t,`onusage`,3,null),o=zi(t,`hidePath`,3,!1),s=A(()=>HX.formatTimestamp(t.entry.timestamp)),c=A(()=>R(s)===`-`?R(s):R(s).slice(R(s).lastIndexOf(` `)+1)),l=A(()=>X7.conversationOpen&&String(X7.conversationAnchorID||``)===String(t.entry.id||``));function u(e){e.preventDefault(),i()&&i()()}function d(e){e.stopPropagation(),e.preventDefault(),n().ontoggle()}function f(e){e.stopPropagation(),e.preventDefault(),a()?.()}function p(){return Uce({count:Number(n().count||1)})}function m(e){if(e.stopPropagation(),e.preventDefault(),R(l)){X7.closeConversation();return}X7.openConversation(t.entry,e.currentTarget)}var h=fWe();let g;var _=P(h),v=P(_),y=e=>{var t=sWe(),r=P(t);{let e=A(()=>n().expanded?ZY:QY);q(r,{get icon(){return R(e)},class:`audit-thread-expander-svg`})}var i=I(r,2),a=P(i,!0);D(i),D(t),L((e,r)=>{K(t,`aria-expanded`,n().expanded),K(t,`title`,e),K(t,`aria-label`,r),H(a,n().count)},[()=>p(),()=>p()+`, `+(n().expanded?nse():$oe())]),z(`click`,t,d),V(e,t)};U(v,e=>{n()&&e(y)});var b=I(v,2),x=e=>{var t=cWe();q(P(t),{get icon(){return jTe},class:`audit-session-usage-svg`}),D(t),L((e,n)=>{K(t,`title`,e),K(t,`aria-label`,n)},[()=>Io(),()=>Io()]),z(`click`,t,f),V(e,t)};U(b,e=>{a()&&e(x)});var S=I(b,2),C=P(S),w=P(C,!0);D(C);var T=I(C,2),ee=P(T,!0);D(T),D(S);var E=I(S,2),te=e=>{var n=lWe(),r=P(n,!0);D(n),L(e=>H(r,e),[()=>QEe(t.entry)]),V(e,n)};U(E,e=>{(t.entry.requested_model||t.entry.model)&&e(te)});var ne=I(E,2),re=e=>{var n=uWe(),r=P(n,!0);D(n),L(()=>H(r,t.entry.path||`-`)),V(e,n)};U(ne,e=>{o()||e(re)}),D(_);var ie=I(_,2),ae=P(ie);dUe(ae,{get entry(){return t.entry}});var oe=I(ae,2),se=P(oe),ce=P(se,!0);D(se);var le=I(se,2),ue=P(le,!0);D(le),D(oe);var de=I(oe,2),fe=P(de,!0);D(de);var pe=I(de,2),me=e=>{var t=dWe();let n;var r=P(t);{let e=A(()=>R(l)?MTe:QY);q(r,{get icon(){return R(e)},class:`audit-conversation-trigger-svg`})}D(t),L((e,r)=>{n=G(t,1,`audit-conversation-trigger svelte-17mysgz`,null,n,{"audit-conversation-trigger-active":R(l)}),K(t,`title`,e),K(t,`aria-label`,r),K(t,`aria-pressed`,R(l))},[()=>R(l)?Fo():Po(),()=>R(l)?Fo():Po()]),z(`click`,t,m),V(e,t)},he=A(()=>X7.canShowConversation(t.entry));U(pe,e=>{R(he)&&e(me)}),D(ie),D(h),L((e,n,i,a,o)=>{g=G(h,1,`audit-entry-summary svelte-17mysgz`,null,g,e),K(h,`aria-expanded`,r()),G(S,1,`audit-status-badge audit-request-badge ${n??``}`,`svelte-17mysgz`),K(S,`title`,i),K(S,`aria-label`,(t.entry.status_code||`-`)+` `+(t.entry.method||`-`)),H(w,t.entry.status_code||`-`),H(ee,t.entry.method||`-`),K(oe,`title`,a),K(oe,`aria-label`,R(s)),H(ce,R(s)),H(ue,R(c)),H(fe,o)},[()=>({"audit-entry-summary-live-in-progress":d7(t.entry),"audit-entry-summary-has-interactions":X7.canShowConversation(t.entry)}),()=>u7(t.entry.status_code),()=>Kce({status:t.entry.status_code||`-`,method:t.entry.method||`-`}),()=>gZ(t.entry.timestamp),()=>DHe(t.entry.duration_ns)]),z(`click`,h,u),V(e,h),k()}xr([`click`]);var mWe=B(``);function Q7(e,t){O(t,!0);let n=zi(t,`label`,3,`Copy`),r=zi(t,`copiedLabel`,3,`Copied`),i=zi(t,`errorLabel`,3,``),a=zi(t,`class`,3,`btn`),o=A(()=>t.state.error&&i()?i():t.state.copied?r():n());var s=mWe();let c;var l=P(s),u=e=>{q(e,{get icon(){return $Y},width:`14`,height:`14`,"stroke-width":`2.5`})},d=e=>{q(e,{get icon(){return tX},width:`14`,height:`14`})};U(l,e=>{t.state.copied?e(u):e(d,-1)});var f=I(l,2),p=P(f,!0);D(f),D(s),L(()=>{c=G(s,1,li([`copy-feedback-btn`,a()]),null,c,{"copy-feedback-btn-copied":t.state.copied}),H(p,R(o))}),z(`click`,s,e=>{e.preventDefault(),t.onclick?.(e)}),V(e,s),k()}xr([`click`]);var hWe=B(`
                         
                        `),gWe=B(`
                         
                        `),_We=B(` `),vWe=B(` `),yWe=B(`
                        `),bWe=B(`

                        `),xWe=B(`

                        `),SWe=B(`

                        `),CWe=B(`
                        `);function wWe(e,t){O(t,!0);let n=U3({logPrefix:`Failed to copy audit payload:`}),r=U3({logPrefix:`Failed to copy audit payload:`}),i=A(()=>t.pane&&t.pane.showHeaders?cZ(t.pane.headers):``),a=A(()=>!t.pane||!t.pane.showBody?``:BUe(t.pane.body)?GUe(t.pane.body):X7.renderBodyWithConversationHighlights(t.pane.entry,t.pane.body,{promptCacheHighlight:t.pane.promptCacheHighlight})),o=A(()=>!!(t.pane&&X7.canShowConversation(t.pane.entry)));function s(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),X7.handleErrorConversationClick(e,t.pane.entry))}var c=CWe();let l;var u=P(c),d=e=>{var n=hWe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);let c;var l=P(a,!0);D(a),D(n),L(e=>{H(i,e),c=G(a,1,`audit-json audit-pane-error-message svelte-1h5puht`,null,c,{"audit-pane-clickable-preview":R(o)}),K(a,`role`,R(o)?`button`:null),K(a,`tabindex`,R(o)?0:null),H(l,t.pane.errorMessage)},[()=>ule()]),z(`mousedown`,a,e=>X7.startBodyInteraction(e)),z(`keydown`,a,s),z(`click`,a,e=>X7.handleErrorConversationClick(e,t.pane.entry)),V(e,n)};U(u,e=>{t.pane.showErrorMessage&&e(d)});var f=I(u,2),p=e=>{var n=gWe(),a=P(n),o=P(a),s=P(o,!0);D(o);var c=I(o,2);{let e=A(()=>gle()),n=A(()=>Mo());Q7(c,{get state(){return r},get label(){return R(e)},get errorLabel(){return R(n)},class:`audit-copy-btn`,onclick:()=>r.copy(t.pane.copyHeaders,cZ)})}D(a);var l=I(a,2),u=P(l,!0);D(l),D(n),L(e=>{H(s,e),H(u,R(i))},[()=>t.pane.headersTitle||ple()]),V(e,n)};U(f,e=>{t.pane.showHeaders&&e(p)});var m=I(f,2),h=e=>{var r=yWe(),i=P(r),o=P(i),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=e=>{var n=_We(),r=P(n,!0);D(n),L(()=>H(r,t.pane.bodyCacheRatioLabel)),V(e,n)};U(l,e=>{t.pane.bodyCacheRatioLabel&&e(u)});var d=I(l,2),f=e=>{var t=vWe(),n=I(P(t),2),r=P(n,!0);D(n),D(t),L(e=>H(r,e),[()=>Sle()]),V(e,t)};U(d,e=>{t.pane.streaming&&e(f)}),D(o);var p=I(o,2);{let e=A(()=>Tle()),r=A(()=>Mo());Q7(p,{get state(){return n},get label(){return R(e)},get errorLabel(){return R(r)},class:`audit-copy-btn`,onclick:()=>n.copy(t.pane.copyBody,cZ)})}D(i);var m=I(i,2);Gr(m,()=>R(a),!0),D(m),D(r),L(e=>H(c,e),[()=>yle()]),z(`mousedown`,m,e=>X7.startBodyInteraction(e)),z(`click`,m,e=>X7.handleBodyConversationClick(e,t.pane.entry)),V(e,r)};U(m,e=>{t.pane.showBody&&e(h)});var g=I(m,2),_=e=>{var n=bWe(),r=P(n,!0);D(n),L(()=>H(r,t.pane.emptyMessage)),V(e,n)};U(g,e=>{t.pane.showEmpty&&e(_)});var v=I(g,2),y=e=>{var n=xWe(),r=I(P(n),2),i=P(r,!0);D(r),D(n),L(()=>H(i,t.pane.pendingMessage)),V(e,n)};U(v,e=>{t.pane.showPending&&e(y)});var b=I(v,2),x=e=>{var n=SWe(),r=P(n,!0);D(n),L(()=>H(r,t.pane.tooLargeMessage)),V(e,n)};U(b,e=>{t.pane.showTooLarge&&e(x)}),D(c),L(()=>l=G(c,1,`audit-pane svelte-1h5puht`,null,l,{"audit-pane-split":t.pane&&t.pane.layout===`split`,"audit-pane-split-single":t.pane&&t.pane.layout===`split`&&!(t.pane.showHeaders&&t.pane.showBody)})),V(e,c),k()}xr([`mousedown`,`keydown`,`click`]);var TWe=B(` `),$7=B(` `),EWe=B(` `),DWe=B(` `),OWe=B(``),kWe=B(`
                        `),AWe=B(`
                        `);function jWe(e,t){O(t,!0);let n=zi(t,`panes`,19,()=>[]),r=j(null),i=A(()=>ZHe(R(r),t.entry,n())),a=e=>`audit-tab-`+t.entry.id+`-`+e,o=e=>`audit-tabpanel-`+t.entry.id+`-`+e;function s(e,t){let i=n().map(e=>e.id),a=QHe(e.key,i,t);a!=null&&(e.preventDefault(),((e.currentTarget?.closest?.(`.audit-pane-tablist`))?.querySelectorAll(`.audit-pane-tab`)[i.indexOf(a)])?.focus?.(),M(r,a,!0))}var c=AWe(),l=P(c);W(l,21,n,e=>e.id,(e,t)=>{var n=OWe();let c;var l=P(n),u=P(l),d=e=>{q(e,{get icon(){return TTe}})},f=e=>{q(e,{get icon(){return wTe}})};U(u,e=>{R(t).pane.direction===`request`?e(d):R(t).pane.direction===`response`&&e(f,1)}),D(l);var p=I(l,2),m=P(p,!0);D(p);var h=I(p,2),g=e=>{var n=TWe(),r=P(n);D(n),L(()=>H(r,`#${R(t).pane.seq??``}`)),V(e,n)};U(h,e=>{R(t).pane.seq&&e(g)});var _=I(h,2),v=e=>{var n=$7(),r=P(n,!0);D(n),L(()=>{G(n,1,`provider-badge audit-pane-kind audit-pane-kind-${R(t).pane.kind??``}`,`svelte-1bc5vi5`),H(r,R(t).pane.kind)}),V(e,n)};U(_,e=>{R(t).pane.kind&&e(v)});var y=I(_,2);W(y,17,()=>R(t).pane.noChangeSteps||[],e=>e.id,(e,t)=>{var n=EWe(),r=P(n,!0);D(n),L(()=>{K(n,`title`,R(t).title),H(r,R(t).label)}),V(e,n)});var b=I(y,2),x=e=>{var n=DWe(),r=P(n,!0);D(n),L(e=>{K(n,`title`,e),H(r,R(t).pane.savingsLabel)},[()=>jle()]),V(e,n)};U(b,e=>{R(t).pane.savingsLabel&&e(x)});var S=I(b,2),C=e=>{var n=$7(),r=P(n,!0);D(n),L(e=>{G(n,1,`audit-status-badge ${e??``}`,`svelte-1bc5vi5`),H(r,R(t).pane.statusCode)},[()=>u7(R(t).pane.statusCode)]),V(e,n)};U(S,e=>{R(t).pane.statusCode&&e(C)}),D(n),L((e,r)=>{c=G(n,1,`audit-pane-tab svelte-1bc5vi5`,null,c,{"audit-pane-tab-active":R(i)===R(t).id}),K(n,`aria-selected`,R(i)===R(t).id),K(n,`id`,e),K(n,`aria-controls`,r),K(n,`tabindex`,R(i)===R(t).id?0:-1),G(l,1,li([`audit-pane-icon`,R(t).pane.direction&&`audit-pane-icon-${R(t).pane.direction}`]),`svelte-1bc5vi5`),H(m,R(t).pane.title)},[()=>a(R(t).id),()=>o(R(t).id)]),z(`keydown`,n,e=>s(e,R(t).id)),z(`click`,n,()=>M(r,R(t).id,!0)),V(e,n)}),D(l),W(I(l,2),17,n,e=>e.id,(e,t)=>{var n=kWe();let r;wWe(P(n),{get pane(){return R(t).pane}}),D(n),L((e,a)=>{K(n,`id`,e),K(n,`aria-labelledby`,a),r=mi(n,``,r,{display:R(i)===R(t).id?null:`none`})},[()=>o(R(t).id),()=>a(R(t).id)]),V(e,n)}),D(c),L(e=>K(l,`aria-label`,e),[()=>Ole()]),V(e,c),k()}xr([`keydown`,`click`]);var MWe=B(`
                        `),NWe=B(`
                        `);function e9(e,t){O(t,!0);let n=zi(t,`thread`,3,null),r=zi(t,`hidePath`,3,!1),i=A(()=>x7.isAuditEntryExpanded(t.entry)),a=A(()=>X7.conversationOpen&&String(X7.conversationAnchorID||``)===String(t.entry.id||``)),o=A(()=>R(i)?y7(t.entry,bUe):[]),s=A(()=>R(i)?MVe(t.entry,J5.auditEntryWorkflow(t.entry),J5.workflowFeatureCaps()):null);function c(){x7.toggleAuditEntryExpanded(t.entry)}var l=NWe();let u;var d=P(l);{let e=A(()=>t.entry.session_id?()=>X.filterBySession(t.entry.session_id,t.entry.user_path):null);pWe(d,{get entry(){return t.entry},get thread(){return n()},get expanded(){return R(i)},get hidePath(){return r()},onactivate:c,get onusage(){return R(e)}})}var f=I(d,2),p=e=>{var n=MWe(),r=P(n),i=e=>{A5(e,{get chart(){return R(s)}})};U(r,e=>{R(s)&&e(i)});var a=I(r,2);jWe(a,{get entry(){return t.entry},get panes(){return R(o)}}),cUe(I(a,2),{get entry(){return t.entry}}),D(n),ai(3,n,()=>rZ,()=>({y:-6,duration:q5(150)})),V(e,n)};U(f,e=>{R(i)&&e(p)}),D(l),L(()=>u=G(l,1,`audit-entry svelte-cmjgwr`,null,u,{"audit-entry-interactions-open":R(a)})),V(e,l),k()}var PWe=B(`
                        `),FWe=B(`
                        `),IWe=B(`

                        `),LWe=B(`
                        `),RWe=B(`
                        `);function zWe(e,t){O(t,!0);let n=A(()=>n7(t.entry)),r=A(()=>x7.isThreadExpanded(R(n))),i=A(()=>x7.threadChildren(R(n))),a=A(()=>R(i)&&!R(i).loading&&Number(R(i).total||0)>R(i).entries.length+1);var o=Or(),s=F(o),c=e=>{e9(e,{get entry(){return t.entry}})},l=A(()=>!yHe(t.entry)),u=e=>{var n=RWe(),o=P(n);{let e=A(()=>({count:r7(t.entry),expanded:R(r),ontoggle:()=>x7.toggleThread(t.entry)}));e9(o,{get entry(){return t.entry},get thread(){return R(e)}})}var s=I(o,2),c=e=>{var n=LWe(),r=P(n),o=e=>{var t=PWe(),n=P(t);{let e=A(()=>$ce());r3(n,{size:14,get label(){return R(e)}})}D(t),V(e,t)};U(r,e=>{R(i)&&R(i).loading&&e(o)});var s=I(r,2);W(s,17,()=>R(i)&&R(i).entries||[],e=>e.id,(e,n)=>{var r=FWe(),i=P(r);{let e=A(()=>R(n).path===t.entry.path);e9(i,{get entry(){return R(n)},get hidePath(){return R(e)}})}D(r),V(e,r)});var c=I(s,2),l=e=>{var t=IWe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>nle({shown:R(i).entries.length+1,total:R(i).total})]),V(e,t)};U(c,e=>{R(a)&&e(l)}),D(n),ai(3,n,()=>iZ,()=>({duration:q5(150)})),V(e,n)};U(s,e=>{R(r)&&e(c)}),D(n),V(e,n)};U(s,e=>{R(l)?e(c):e(u,-1)}),V(e,o),k()}var BWe=B(`

                        .

                        `),VWe=B(`
                        LOGGING_ENABLED=true
                        `),HWe=B(`

                        `),UWe=B(`
                        `),WWe=B(`
                        `),GWe=B(`
                        `),KWe=B(`
                        `),qWe=B(`
                        `);function JWe(e,t){O(t,!0);let n=A(()=>XX.config&&XX.config.LOGGING_RETENTION_DAYS);mn(()=>{if(Y.refreshTick,CX.page===`audit-logs`)return or(()=>r())});function r(){let e=!1;return(async()=>{try{await XX.ensureLoaded()}finally{await x7.fetchAuditLog(!0),!e&&XX.liveLogsVisible()&&g3.ensureLiveLogs()}})(),()=>{e=!0,g3.stopLiveLogs()}}var i=qWe(),a=P(i),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=e=>{{let t=e=>{var t=BWe(),r=P(t,!0),i=I(r),a=P(i,!0);D(i),Ve(),D(t),L((e,t)=>{H(r,e),H(a,t)},[()=>e7(R(n)),()=>t7(R(n))]),V(e,t)},r=A(()=>gse()),i=A(()=>yse());s3(e,{copyId:`audit-retention-help-copy`,get label(){return R(r)},get text(){return R(i)},title:t,$$slots:{title:!0}})}},d=A(()=>gHe(R(n)));U(l,e=>{R(d)&&e(u)}),D(o),D(a);var f=I(a,2);FZ(P(f),{onchange:()=>x7.fetchAuditLog(!0)}),D(f);var p=I(f,2);AZ(p,{});var m=I(p,2),h=e=>{var t=VWe(),n=P(t,!0),r=I(n,2,!0);D(t),L((e,t)=>{H(n,e),H(r,t)},[()=>Pse(),()=>Lse()]),V(e,t)},g=A(()=>XX.loaded&&!XX.auditVisible()&&!Y.needsAuth);U(m,e=>{R(g)&&e(h)});var _=I(m,2),v=P(_);tUe(v,{});var y=I(v,2),b=P(y),x=P(b),S=e=>{var t=HWe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>x7.auditGroupSessions?Bse({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total}):Use({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total})]),V(e,t)};U(x,e=>{x7.auditLog.total>0&&e(S)});var C=I(x,2),w=P(C);wi(w);var T=I(w,2),ee=P(T,!0);D(T),D(C),D(b),iUe(I(b,2),{}),D(y);var E=I(y,2),te=e=>{var t=UWe(),n=P(t);{let e=A(()=>Yse());r3(n,{size:18,get label(){return R(e)}})}D(t),V(e,t)},ne=e=>{var t=GWe();W(t,29,()=>x7.auditLog.entries,e=>e.id,(e,t)=>{var n=WWe(),r=P(n),i=e=>{zWe(e,{get entry(){return R(t)}})},a=e=>{e9(e,{get entry(){return R(t)}})};U(r,e=>{x7.auditGroupSessions?e(i):e(a,-1)}),D(n),ii(n,()=>sHe,()=>({duration:q5(150)})),ai(1,n,()=>uHe,()=>({live:R(t)._live})),V(e,n)}),D(t),V(e,t)};U(E,e=>{x7.loading&&x7.auditLog.entries.length===0?e(te):x7.auditLog.entries.length>0&&e(ne,1)});var re=I(E,2),ie=e=>{var t=KWe();i3(P(t),{}),D(t),V(e,t)};U(re,e=>{x7.auditLog.entries.length===0&&!x7.loading&&!Y.needsAuth&&e(ie)}),H3(I(re,2),{get total(){return x7.auditLog.total},get offset(){return x7.auditLog.offset},get limit(){return x7.auditLog.limit},onprev:()=>x7.auditLogPrevPage(),onnext:()=>x7.auditLogNextPage()}),D(_),D(i),L((e,t)=>{H(c,e),Ei(w,x7.auditGroupSessions),H(ee,t)},[()=>pse(),()=>Kse()]),z(`change`,w,()=>x7.toggleAuditGroupSessions()),V(e,i),k()}xr([`change`]);function t9(e){try{let t=JSON.parse(JSON.stringify(e||{}));return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}catch{return{}}}function n9(e){return Array.isArray(e)?e.map(e=>String(e||``).trim()).filter(e=>e):e==null?[]:String(e).split(`,`).map(e=>e.trim()).filter(e=>e)}function r9(e,t){let n=String(t||``).trim();return(e||[]).find(e=>String(e&&e.type||``).trim()===n)||null}function i9(e){return Array.isArray(e)&&e.length>0&&String(e[0].type||``).trim()||`system_prompt`}function a9(e,t){let n=String(t||``).trim();return n&&r9(e,n)?n:i9(e)}function o9(e,t){let n=r9(e,t);return!n||!n.defaults?{}:t9(n.defaults)}function s9(e,t,n){return{...o9(e,n),...t9(t)}}function c9(e,t){let n=a9(e,t);return{name:``,type:n,description:``,user_path:``,config:o9(e,n)}}function YWe(e,t){if(!t)return e||[];let n=String(t).toLowerCase();return(e||[]).filter(e=>[e.name,e.type,e.user_path,e.description,e.summary].some(e=>String(e||``).toLowerCase().includes(n)))}function XWe(e,t){let n=r9(e,t);return n&&n.label?n.label:t||fhe()}function ZWe(e,t){let n=r9(e,t);return Array.isArray(n&&n.fields)?n.fields:[]}function l9(e,t){if(!t||!e)return t&&t.input===`checkboxes`?[]:``;let n=e[t.key];return n==null?t.input===`checkboxes`?[]:``:t.input===`checkboxes`?n9(n):n}function u9(e,t,n){if(!t)return e;let r=t9(e);if(t.input===`number`){let e=String(n||``).trim();if(e===``)delete r[t.key];else{let n=Number(e);r[t.key]=Number.isFinite(n)?n:e}}else t.input===`checkboxes`?r[t.key]=n9(n):r[t.key]=n;return r}function QWe(e,t,n){return l9(e,t).includes(String(n||``).trim())}function $We(e,t,n,r){let i=n9(l9(e,t)),a=String(n||``).trim();return a?u9(e,t,r?Array.from(new Set([...i,a])):i.filter(e=>e!==a)):e}function eGe(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),description:String(e&&e.description||``).trim()||void 0,user_path:String(e&&e.user_path||``).trim()||void 0,config:t9(e&&e.config)}}var d9=new class{#e=j(N([]));get guardrails(){return R(this.#e)}set guardrails(e){M(this.#e,e,!0)}#t=j(N([]));get types(){return R(this.#t)}set types(e){M(this.#t,e,!0)}#n=j(!0);get available(){return R(this.#n)}set available(e){M(this.#n,e,!0)}#r=j(!1);get loading(){return R(this.#r)}set loading(e){M(this.#r,e,!0)}#i=j(!1);get typesLoading(){return R(this.#i)}set typesLoading(e){M(this.#i,e,!0)}#a=j(``);get error(){return R(this.#a)}set error(e){M(this.#a,e,!0)}#o=j(``);get filter(){return R(this.#o)}set filter(e){M(this.#o,e,!0)}#s=j(!1);get formOpen(){return R(this.#s)}set formOpen(e){M(this.#s,e,!0)}#c=j(!1);get formSubmitting(){return R(this.#c)}set formSubmitting(e){M(this.#c,e,!0)}#l=j(``);get deletingName(){return R(this.#l)}set deletingName(e){M(this.#l,e,!0)}#u=j(`create`);get formMode(){return R(this.#u)}set formMode(e){M(this.#u,e,!0)}#d=j(``);get formOriginalName(){return R(this.#d)}set formOriginalName(e){M(this.#d,e,!0)}#f=j(N({name:``,type:``,description:``,user_path:``,config:{}}));get form(){return R(this.#f)}set form(e){M(this.#f,e,!0)}get filtered(){return YWe(this.guardrails,this.filter)}typeLabel(e){return XWe(this.types,e)}typeFields(e){return ZWe(this.types,e)}fieldValue(e){return l9(this.form&&this.form.config,e)}setFieldValue(e,t){this.form={...this.form,config:u9(this.form.config,e,t)}}arrayFieldSelected(e,t){return QWe(this.form&&this.form.config,e,t)}toggleArrayFieldValue(e,t,n){this.form={...this.form,config:$We(this.form.config,e,t,n)}}openCreate(){this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=c9(this.types,i9(this.types)),this.formOpen=!0}openEdit(e){let t=a9(this.types,e&&e.type);this.formMode=`edit`,this.formOriginalName=String(e&&e.name||``).trim(),this.error=``,this.form={name:this.formOriginalName,type:t,description:String(e&&e.description||``).trim(),user_path:String(e&&e.user_path||``).trim(),config:s9(this.types,e&&e.config,t)},this.formOpen=!0}closeForm(){this.formOpen=!1,this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=c9(this.types,i9(this.types))}changeType(e){let t=a9(this.types,e);this.form={...this.form,type:t,config:o9(this.types,t)}}async fetchTypes(){this.typesLoading=!0;try{let e=await X3(`/admin/guardrails/types`,{label:`guardrail types`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.types=[];return}if(e.result&&(this.available=!0),this.types=e.items,e.status===`error`){this.error=e.error;return}let t=a9(this.types,this.form.type);this.form={...this.form,type:t,config:s9(this.types,this.form.config,t)}}finally{this.typesLoading=!1}}async fetchGuardrails(){this.loading=!0,this.error=``;try{let e=await X3(`/admin/guardrails`,{label:`guardrails`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.guardrails=[];return}e.result&&(this.available=!0),this.guardrails=e.items,this.error=e.error}finally{this.loading=!1}}async fetchPage(){await Promise.all([this.fetchTypes(),this.fetchGuardrails()])}async submitForm(){let e=String(this.form.name||``).trim(),t=String(this.form.type||``).trim();if(!e){this.error=hhe();return}if(!t){this.error=vhe();return}this.error=``,this.formSubmitting=!0;let n=eGe(this.form);try{let t=await Z3(`/admin/guardrails`,`PUT`,n,{label:`save guardrail`,errorFallback:xhe(),unavailableMessage:XO()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}oZ.success(whe({name:e})),this.closeForm(),this.fetchGuardrails()}finally{this.formSubmitting=!1}}async deleteGuardrail(e){let t=String(e&&e.name||``).trim();if(!(!t||this.deletingName)&&window.confirm(Ihe({name:t}))){this.deletingName=t;try{let e=await Z3(`/admin/guardrails`,`DELETE`,{name:t},{label:`delete guardrail`,errorFallback:zhe(),unavailableMessage:XO()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,oZ.error(e.error);return}if(e.status===`error`){oZ.error(e.error);return}oZ.success(Hhe({name:t})),this.formOpen&&this.formOriginalName===t&&this.closeForm(),this.fetchGuardrails()}finally{this.deletingName=``}}}},tGe=B(`
                        `),nGe=B(`

                        `),rGe=B(`
                        `),iGe=B(`
                        `),aGe=B(`
                        `),oGe=B(`

                        `),sGe=B(`

                        `);function cGe(e,t){O(t,!0);var n=sGe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(i);var l=I(i,2),u=P(l);q(u,{get icon(){return lX},class:`form-action-icon`});var d=I(u,2),f=P(d,!0);D(d),D(l),D(r);var p=I(r,2),m=e=>{var t=tGe(),n=P(t),r=P(n);{let e=A(()=>nk()),t=A(()=>ak());z3(r,{id:`guardrail-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return d9.filter},set value(e){d9.filter=e}})}D(n),D(t),V(e,t)};U(p,e=>{d9.available&&e(m)});var h=I(p,2),g=e=>{var t=nGe(),n=P(t);{let e=A(()=>Rk());r3(n,{size:16,get label(){return R(e)}})}var r=I(n);D(t),L(e=>H(r,` ${e??``}`),[()=>Rk()]),V(e,t)};U(h,e=>{d9.loading&&d9.filtered.length===0&&e(g)});var _=I(h,2),v=e=>{var t=aGe(),n=P(t),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a),c=P(s,!0);D(s);var l=I(s),u=P(l,!0);D(l);var d=I(l),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p),D(i),D(r);var h=I(r);W(h,21,()=>d9.filtered,e=>e.name,(e,t)=>{var n=iGe(),r=P(n),i=P(r,!0);D(r);var a=I(r),o=P(a),s=P(o,!0);D(o),D(a);var c=I(a),l=P(c,!0);D(c);var u=I(c),d=P(u),f=P(d,!0);D(d);var p=I(d,2),m=e=>{var n=rGe(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(p,e=>{R(t).description&&e(m)}),D(u);var h=I(u),g=P(h),_=P(g);{let e=A(()=>Dhe({name:R(t).name}));Y3(_,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>d9.openEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}var v=I(_,2);{let e=A(()=>d9.deletingName===R(t).name?Nhe({name:R(t).name}):Ahe({name:R(t).name})),n=A(()=>d9.deletingName===R(t).name);Y3(v,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>d9.deleteGuardrail(R(t)),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return yX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(g),D(h),D(n),L((e,n)=>{H(i,R(t).name),H(s,e),H(l,R(t).user_path||`—`),H(f,n)},[()=>d9.typeLabel(R(t).type),()=>R(t).summary||R(t).description||Vk()]),V(e,n)}),D(h),D(n),D(t),L((e,t,n,r,i)=>{H(o,e),H(c,t),H(u,n),H(f,r),H(m,i)},[()=>ck(),()=>dk(),()=>mk(),()=>_k(),()=>bk()]),V(e,t)};U(_,e=>{d9.filtered.length>0&&e(v)});var y=I(_,2),b=e=>{var t=oGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Ck()]),V(e,t)};U(y,e=>{d9.filtered.length===0&&!d9.loading&&d9.available&&!d9.error&&!Y.authError&&e(b)}),D(n),L((e,t,n)=>{H(o,e),H(c,t),l.disabled=d9.typesLoading||d9.formSubmitting||!d9.available,H(f,n)},[()=>VO(),()=>Fk(),()=>$O()]),z(`click`,l,()=>d9.openCreate()),V(e,n),k()}xr([`click`]);var lGe=B(`

                        `),uGe=B(``),f9=B(``),dGe=B(``),fGe=B(``),pGe=B(``),mGe=B(``),hGe=B(``),gGe=B(``),_Ge=B(``),vGe=B(`
                        `),yGe=B(``),bGe=B(` `),xGe=B(`
                        `),SGe=B(`
                        `);function CGe(e,t){O(t,!0);let n=A(()=>d9.formMode===`edit`);{let t=e=>{var t=lGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>CM()]),V(e,t)},r=A(()=>R(n)?mM():$O()),i=A(()=>_M()),a=A(()=>bM());S6(e,{get open(){return d9.formOpen},get title(){return R(r)},get ariaLabel(){return R(i)},get error(){return d9.error},get submitting(){return d9.formSubmitting},get submitLabel(){return R(a)},dialogClass:`settings-guardrails-editor guardrails-editor-wide`,onclose:()=>d9.closeForm(),onsubmit:()=>d9.submitForm(),headerHint:t,children:(e,t)=>{var r=SGe(),i=P(r);{let e=A(()=>ck());C6(i,{id:`guardrail-name`,get label(){return R(e)},children:(e,t)=>{var r=uGe();wi(r),L(()=>{r.disabled=R(n),K(r,`data-modal-autofocus`,!R(n)||void 0)}),ji(r,()=>d9.form.name,e=>d9.form.name=e),V(e,r)},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>dk());C6(a,{id:`guardrail-type`,get label(){return R(e)},children:(e,t)=>{var r=dGe();W(r,21,()=>d9.types,e=>e.type,(e,t)=>{var n=f9(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).type)&&(n.value=(n.__value=R(t).type)??``)}),V(e,n)}),D(r);var i;gi(r),L(()=>{r.disabled=R(n),i!==(i=d9.form.type)&&(r.value=(r.__value=d9.form.type)??``,hi(r,d9.form.type))}),z(`change`,r,e=>d9.changeType(e.currentTarget.value)),V(e,r)},$$slots:{default:!0}})}var o=I(a,2);{let e=A(()=>EM());C6(o,{id:`guardrail-description`,get label(){return R(e)},children:(e,t)=>{var r=fGe();wi(r),L(e=>{K(r,`placeholder`,e),K(r,`data-modal-autofocus`,R(n)?!0:void 0)},[()=>kM()]),ji(r,()=>d9.form.description,e=>d9.form.description=e),V(e,r)},$$slots:{default:!0}})}var s=I(o,2),c=P(s);{let e=e=>{var t=pGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>mk()]),V(e,t)},t=A(()=>MM()),n=A(()=>FM());s3(c,{copyId:`guardrail-user-path-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var l=I(c,2);wi(l),D(s),W(I(s,2),17,()=>d9.typeFields(d9.form.type),e=>e.key,(e,t)=>{var n=Or(),r=F(n),i=e=>{var n=vGe(),r=P(n);{let e=e=>{var n=mGe(),r=P(n,!0);D(n),L(()=>{K(n,`for`,`guardrail-field-`+R(t).key),H(r,R(t).label)}),V(e,n)},n=A(()=>`guardrail-field-help-`+R(t).key),i=A(()=>R(t).label+` help`),a=A(()=>R(t).help||``);s3(r,{get copyId(){return R(n)},get label(){return R(i)},get text(){return R(a)},title:e,$$slots:{title:!0}})}var i=I(r,2),a=e=>{var n=hGe();W(n,21,()=>R(t).options||[],e=>e.value,(e,t)=>{var n=f9(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n);var r;gi(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0),r!==(r=e)&&(n.value=(n.__value=e)??``,hi(n,e))},[()=>d9.fieldValue(R(t))]),z(`change`,n,e=>d9.setFieldValue(R(t),e.currentTarget.value)),V(e,n)},o=e=>{var n=gGe();at(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`placeholder`,R(t).placeholder||``),Ti(n,e),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0)},[()=>d9.fieldValue(R(t))]),z(`input`,n,e=>d9.setFieldValue(R(t),e.currentTarget.value)),V(e,n)},s=e=>{var n=_Ge();wi(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`type`,R(t).input||`text`),K(n,`placeholder`,R(t).placeholder||``),Ti(n,e),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0)},[()=>d9.fieldValue(R(t))]),z(`input`,n,e=>d9.setFieldValue(R(t),e.currentTarget.value)),V(e,n)};U(i,e=>{R(t).input===`select`?e(a):R(t).input===`textarea`?e(o,1):e(s,-1)}),D(n),V(e,n)},a=e=>{var n=xGe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>R(t).options||[],e=>R(t).key+`-`+e.value,(e,n)=>{var r=yGe(),i=P(r);wi(i);var a=I(i,2),o=P(a,!0);D(a),D(r),L(e=>{Ei(i,e),H(o,R(n).label)},[()=>d9.arrayFieldSelected(R(t),R(n).value)]),z(`change`,i,e=>d9.toggleArrayFieldValue(R(t),R(n).value,e.currentTarget.checked)),V(e,r)}),D(a);var o=I(a,2),s=e=>{var n=bGe(),r=P(n,!0);D(n),L(()=>{K(n,`id`,`guardrail-field-help-`+R(t).key),H(r,R(t).help)}),V(e,n)};U(o,e=>{R(t).help&&e(s)}),D(n),L(()=>{K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0),H(i,R(t).label)}),V(e,n)};U(r,e=>{R(t).input===`checkboxes`?e(a,-1):e(i)}),V(e,n)}),D(r),L(e=>K(l,`aria-label`,e),[()=>mk()]),ji(l,()=>d9.form.user_path,e=>d9.form.user_path=e),V(e,r)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`change`,`input`]);var wGe=B(`

                        `),p9=B(`
                        `),TGe=B(`

                        `);function EGe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`guardrails`&&(XX.ensureLoaded(),d9.fetchPage())});var n=TGe(),r=P(n),i=P(r),a=P(i);{let e=e=>{var t=wGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>MO()]),V(e,t)},t=A(()=>Ek()),n=A(()=>kk());s3(a,{copyId:`guardrails-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}D(i),D(r);var o=I(r,2),s=P(o),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u);var f=I(u,2),p=P(f,!0);D(f),D(s);var m=I(s,2),h=P(m),g=P(h),_=P(g,!0);D(g);var v=I(g,2),y=P(v,!0);D(v),D(h);var b=I(h,2),x=P(b),S=P(x,!0);D(x);var C=I(x,2),w=P(C,!0);D(C),D(b),D(m),D(o);var T=I(o,2);AZ(T,{});var ee=I(T,2),E=e=>{var t=p9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>qO()]),V(e,t)},te=A(()=>!XX.guardrailsVisible());U(ee,e=>{R(te)&&e(E)});var ne=I(ee,2),re=e=>{var t=p9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XO()]),V(e,t)};U(ne,e=>{!Y.authError&&!d9.available&&e(re)});var ie=I(ne,2),ae=e=>{var t=p9(),n=P(t,!0);D(t),L(()=>H(n,d9.error)),V(e,t)};U(ie,e=>{!Y.authError&&d9.error&&!d9.formOpen&&e(ae)});var oe=I(ie,2);CGe(oe,{}),cGe(I(oe,2),{}),D(n),L((e,t,n,r,i,a,o)=>{H(l,e),H(d,t),H(p,n),H(_,r),H(y,i),H(S,a),H(w,o)},[()=>FO(),()=>RO(),()=>Mk(),()=>VO(),()=>lZ(d9.guardrails.length),()=>WO(),()=>lZ(d9.types.length)]),V(e,n),k()}var $=new class{#e=j(N([]));get servers(){return R(this.#e)}set servers(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return R(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get formSubmitting(){return R(this.#o)}set formSubmitting(e){M(this.#o,e,!0)}#s=j(`create`);get formMode(){return R(this.#s)}set formMode(e){M(this.#s,e,!0)}#c=j(!1);get slugEdited(){return R(this.#c)}set slugEdited(e){M(this.#c,e,!0)}#l=j(!1);get advancedOpen(){return R(this.#l)}set advancedOpen(e){M(this.#l,e,!0)}#u=j(N(N4()));get form(){return R(this.#u)}set form(e){M(this.#u,e,!0)}#d=j(``);get deletingName(){return R(this.#d)}set deletingName(e){M(this.#d,e,!0)}#f=j(``);get reconnectingName(){return R(this.#f)}set reconnectingName(e){M(this.#f,e,!0)}#p=j(!1);get catalogOpen(){return R(this.#p)}set catalogOpen(e){M(this.#p,e,!0)}#m=j(!1);get catalogLoading(){return R(this.#m)}set catalogLoading(e){M(this.#m,e,!0)}#h=j(``);get catalogError(){return R(this.#h)}set catalogError(e){M(this.#h,e,!0)}#g=j(N(P4()));get catalog(){return R(this.#g)}set catalog(e){M(this.#g,e,!0)}#_=A(()=>BNe(this.servers,this.filter));get filtered(){return R(this.#_)}set filtered(e){M(this.#_,e)}async fetchServers(){if(await XX.ensureLoaded(),!XX.mcpVisible()){this.available=!1,this.servers=[],this.error=``,this.loading=!1;return}this.loading=!0,this.error=``;try{let e=await X3(`/admin/mcp-servers`,{label:`mcp servers`,errorFallback:RV(),unavailableStatuses:[503,404]});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.servers=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.servers=[],this.error=e.error;return}this.available=!0,this.servers=e.items}finally{this.loading=!1}}openCreate(){this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=N4(),this.formOpen=!0}openEdit(e){!e||e.managed||(this.formMode=`edit`,this.slugEdited=!0,this.advancedOpen=!1,this.error=``,this.form=VNe(e),this.formOpen=!0)}closeForm(){this.formOpen=!1,this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=N4()}syncSlugFromName(){this.formMode===`create`&&!this.slugEdited&&(this.form.slug=z4(this.form.name))}markSlugEdited(){this.formMode===`create`&&(this.slugEdited=!0)}addHeader(){this.form.headers.push({name:``,value:``})}removeHeader(e){this.form.headers.splice(e,1)}async submitForm(){let e=HNe(this.form,this.formMode,this.servers);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await Z3(`/admin/mcp-servers`,`PUT`,e.payload,{label:`save mcp server`,errorFallback:VV(),unavailableMessage:_w()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}oZ.success(WV({name:e.payload.name})),this.closeForm(),this.fetchServers()}finally{this.formSubmitting=!1}}async deleteServer(e){let t=String(e&&e.name||``).trim(),n=F4(e);if(!(!n||this.deletingName||e&&e.managed)&&confirm(qV({name:t}))){this.deletingName=n;try{let e=await Z3(`/admin/mcp-servers/`+encodeURIComponent(n),`DELETE`,void 0,{label:`delete mcp server`,errorFallback:XV(),unavailableMessage:_w()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,oZ.error(e.error);return}if(e.status===`error`){oZ.error(e.error);return}oZ.success($V({name:t})),this.formOpen&&this.form.slug===n&&this.closeForm(),this.fetchServers()}finally{this.deletingName=``}}}async reconnectServer(e){let t=String(e&&e.name||``).trim(),n=F4(e);if(!(!n||this.reconnectingName)){this.reconnectingName=n;try{let e=await Z3(`/admin/mcp-servers/`+encodeURIComponent(n)+`/reconnect`,`POST`,void 0,{label:`reconnect mcp server`,errorFallback:nH(),unavailableMessage:_w()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,oZ.error(e.error);return}if(e.status===`error`){oZ.error(e.error);return}let r=e.result.data,i=I4(r);i===`connected`?oZ.success(aH({name:t})):i===`disabled`?oZ.success(cH({name:t})):oZ.error(dH({name:t,status:i})),r&&r.name?this.servers=(this.servers||[]).map(e=>F4(e)===F4(r)?r:e):this.fetchServers()}finally{this.reconnectingName=``}}}async openCatalog(e){let t=String(e&&e.name||``).trim(),n=F4(e);if(n){this.catalogOpen=!0,this.catalogLoading=!0,this.catalogError=``,this.catalog={...P4(),server:n,status:I4(e)};try{let e=await qX(`/admin/mcp-servers/`+encodeURIComponent(n)+`/catalog`,{label:`mcp server catalog`});if(e.stale)return;if(e.status===503){this.available=!1,this.catalogError=_w();return}if(e.status===404){this.catalogError=mH({name:t});return}if(!e.ok){this.catalogError=e.status===401?az():UX(e.data,_H());return}this.catalog=UNe(n,e.data)}catch(e){console.error(`Failed to load MCP server catalog:`,e),this.catalogError=_H()}finally{this.catalogLoading=!1}}}closeCatalog(){this.catalogOpen=!1,this.catalogLoading=!1,this.catalogError=``,this.catalog=P4()}},DGe=B(``),OGe=B(`

                        `),kGe=B(`
                        `),AGe=B(`

                        `),jGe=B(`
                      • `),MGe=B(`

                          `),NGe=B(`

                          `),PGe=B(` `,1),FGe=B(``);function IGe(e,t){O(t,!0);let n=A(()=>B4($.catalog));QX(e,{get open(){return $.catalogOpen},variant:`editor`,onclose:()=>$.closeCatalog(),children:(e,t)=>{var r=FGe(),i=P(r),a=P(i),o=P(a),s=P(o,!0);D(o);var c=I(o,2),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d),D(c),D(a);var p=I(a,2);{let e=A(()=>Vw());ZX(p,{get label(){return R(e)},onclick:()=>$.closeCatalog()})}D(i);var m=I(i,2),h=e=>{{let t=A(()=>Ww());J3(e,{get label(){return R(t)}})}},g=e=>{var t=DGe(),n=P(t,!0);D(t),L(()=>H(n,$.catalogError)),V(e,t)},_=e=>{var t=PGe(),r=F(t),i=e=>{var t=OGe(),n=P(t,!0);D(t),L(()=>H(n,$.catalog.instructions)),V(e,t)};U(r,e=>{$.catalog.instructions&&e(i)});var a=I(r,2);W(a,17,()=>R(n),e=>e.key,(e,t)=>{var n=MGe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>R(t).items,e=>e.key,(e,t)=>{var n=jGe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=e=>{var n=kGe(),r=P(n,!0);D(n),L(e=>{K(n,`title`,e),H(r,R(t).aggregated)},[()=>qw({name:R(t).aggregated})]),V(e,n)};U(a,e=>{R(t).aggregated&&e(o)});var s=I(a,2),c=e=>{var n=AGe(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(s,e=>{R(t).description&&e(c)}),D(n),L(()=>{K(r,`title`,R(t).aggregated||R(t).name),H(i,R(t).name)}),V(e,n)}),D(a),D(n),L(()=>H(i,R(t).title)),V(e,n)});var o=I(a,2),s=e=>{var t=NGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Xw()]),V(e,t)},c=A(()=>GNe($.catalog));U(o,e=>{R(c)&&e(s)}),V(e,t)};U(m,e=>{$.catalogLoading?e(h):$.catalogError?e(g,1):e(_,-1)});var v=I(m,2),y=P(v),b=P(y,!0);D(y),D(v),D(r),L((e,t,n,i,a)=>{K(r,`aria-label`,e),H(s,t),H(u,$.catalog.server),G(d,1,`audit-status-badge ${n??``}`,`svelte-1xqrzco`),H(f,i),H(b,a)},[()=>Fw(),()=>Rw(),()=>L4($.catalog),()=>I4($.catalog),()=>$w()]),z(`click`,y,()=>$.closeCatalog()),V(e,r)},$$slots:{default:!0}}),k()}xr([`click`]);var LGe=B(`

                          `),RGe=B(` `,1),m9=B(` `),zGe=B(` `,1),BGe=B(` `,1),VGe=B(``),HGe=B(`
                          `),UGe=B(`
                          `,1);function WGe(e,t){O(t,!0);{let t=e=>{var t=LGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>cT()]),V(e,t)},n=A(()=>$.formMode===`edit`?nT():mw()),r=A(()=>aT());S6(e,{get open(){return $.formOpen},get title(){return R(n)},get ariaLabel(){return R(r)},get error(){return $.error},get submitting(){return $.formSubmitting},onclose:()=>$.closeForm(),onsubmit:()=>$.submitForm(),headerHint:t,children:(e,t)=>{var n=UGe(),r=F(n);{let e=A(()=>dT());C6(r,{id:`mcp-server-name`,get label(){return R(e)},children:(e,t)=>{var n=RGe(),r=F(n);wi(r);var i=I(r,2),a=P(i,!0);D(i),L(e=>H(a,e),[()=>mT()]),z(`input`,r,()=>$.syncSlugFromName()),ji(r,()=>$.form.name,e=>$.form.name=e),V(e,n)},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>_T());C6(i,{id:`mcp-server-slug`,get label(){return R(e)},children:(e,t)=>{var n=zGe(),r=F(n);wi(r);var i=I(r,2),a=e=>{var t=m9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>bT()]),V(e,t)},o=e=>{var t=m9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>CT()]),V(e,t)};U(i,e=>{$.formMode===`create`?e(a):e(o,-1)}),L(()=>r.disabled=$.formMode===`edit`),z(`input`,r,()=>$.markSlugEdited()),ji(r,()=>$.form.slug,e=>$.form.slug=e),V(e,n)},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>ET());C6(a,{id:`mcp-server-transport`,get label(){return R(e)},children:(e,t)=>{var n=BGe(),r=F(n),i=P(r);i.value=i.__value=`http`;var a=I(i);a.value=a.__value=`sse`,D(r);var o=I(r,2),s=P(o,!0);D(o),L(e=>H(s,e),[()=>kT()]),_i(r,()=>$.form.transport,e=>$.form.transport=e),V(e,n)},$$slots:{default:!0}})}var o=I(a,2);C6(o,{id:`mcp-server-url`,label:`URL`,children:(e,t)=>{var n=VGe();wi(n),ji(n,()=>$.form.url,e=>$.form.url=e),V(e,n)},$$slots:{default:!0}});var s=I(o,2),c=P(s),l=P(c,!0);D(c);var u=I(c,2);W(u,21,()=>$.form.headers,Ir,(e,t,n)=>{var r=HGe(),i=P(r);wi(i);var a=I(i,2);wi(a);var o=I(a,2);{let e=A(()=>VT());Y3(o,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>$.removeHeader(n),children:(e,t)=>{q(e,{get icon(){return gX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r),L((e,t)=>{K(i,`aria-label`,e),K(a,`aria-label`,t)},[()=>FT(),()=>RT()]),ji(i,()=>R(t).name,e=>R(t).name=e),ji(a,()=>R(t).value,e=>R(t).value=e),V(e,r)}),D(u);var d=I(u,2),f=P(d),p=P(f);q(p,{get icon(){return lX},class:`form-action-icon`});var m=I(p,2),h=P(m,!0);D(m),D(f),D(d);var g=I(d,2),_=P(g,!0);D(g),D(s);var v=I(s,2),y=P(v);Z8(P(y),{get enabled(){return $.form.enabled},label:`MCP server`,onclick:()=>$.form.enabled=!$.form.enabled}),D(y),D(v);var b=I(v,2),x=P(b),S=P(x),C=P(S),w=P(C,!0);D(C);var T=I(C,2),ee=P(T,!0);D(T),D(S),D(x);var E=I(x,2),te=P(E),ne=P(te),re=P(ne,!0);D(ne);var ie=I(ne,2);wi(ie),D(te);var ae=I(te,2),oe=P(ae),se=P(oe,!0);D(oe);var ce=I(oe,2);wi(ce),D(ae);var le=I(ae,2),ue=P(le),de=P(ue,!0);D(ue);var fe=I(ue,2);wi(fe),D(le);var pe=I(le,2),me=P(pe),he=P(me,!0);D(me);var ge=I(me,2);at(ge),K(ge,`placeholder`,`/ -/team/alpha`),D(pe);var _e=I(pe,2),ve=P(_e),ye=P(ve,!0);D(ve);var be=I(ve,2);wi(be),D(_e),D(E),D(b),L((e,t,n,r,i,a,o,s,c,u,d,f,p,m)=>{H(l,e),H(h,t),H(_,n),b.open=$.advancedOpen,H(w,r),H(ee,i),H(re,a),K(ie,`placeholder`,o),H(se,s),K(ce,`placeholder`,c),H(de,u),K(fe,`placeholder`,d),H(he,f),H(ye,p),K(be,`placeholder`,m)},[()=>MT(),()=>WT(),()=>qT(),()=>XT(),()=>$T(),()=>nE(),()=>ywe(),()=>aE(),()=>Swe(),()=>cE(),()=>Twe(),()=>dE(),()=>mE(),()=>_E()]),z(`click`,f,()=>$.addHeader()),br(`toggle`,b,e=>$.advancedOpen=e.currentTarget.open),ji(ie,()=>$.form.description,e=>$.form.description=e),ji(ce,()=>$.form.allowed_tools,e=>$.form.allowed_tools=e),ji(fe,()=>$.form.disallowed_tools,e=>$.form.disallowed_tools=e),ji(ge,()=>$.form.user_paths,e=>$.form.user_paths=e),ji(be,()=>$.form.tool_timeout_seconds,e=>$.form.tool_timeout_seconds=e),V(e,n)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`input`,`click`]);var GGe=B(` `),KGe=B(`
                          `),qGe=B(`
                          `),JGe=B(`
                          `);function YGe(e,t){O(t,!0);function n(e){return FNe(e,e=>HX.formatTimestamp(e))}var r=JGe(),i=P(r),a=P(i),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s),u=P(l,!0);D(l);var d=I(l),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=P(h,!0);D(h);var _=I(h),v=P(_,!0);D(_);var y=I(_),b=P(y,!0);D(y),D(o),D(a);var x=I(a);W(x,21,()=>$.filtered,e=>F4(e),(e,t)=>{var r=qGe(),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=e=>{var t=GGe(),n=P(t,!0);D(t),L((e,r)=>{K(t,`title`,e),H(n,r)},[()=>FB(),()=>nz()]),V(e,t)};U(s,e=>{R(t).managed&&e(c)});var l=I(s,2),u=P(l,!0);D(l),D(i);var d=I(i),f=P(d),p=P(f,!0);D(f),D(d);var m=I(d),h=P(m,!0);D(m);var g=I(m),_=P(g),v=P(_,!0);D(_);var y=I(_,2),b=e=>{var n=KGe(),r=P(n,!0);D(n),L(()=>H(r,R(t).last_error)),V(e,n)},x=A(()=>I4(R(t))===`degraded`&&R(t).last_error);U(y,e=>{R(x)&&e(b)}),D(g);var S=I(g),C=P(S),w=P(C,!0);D(C);var T=I(C,2),ee=P(T,!0);D(T),D(S);var E=I(S),te=P(E),ne=P(te,!0);D(te),D(E);var re=I(E),ie=P(re),ae=P(ie),oe=e=>{{let n=A(()=>RB({name:R(t).name}));Y3(e,{get label(){return R(n)},class:`table-icon-btn`,onclick:()=>$.openEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(ae,e=>{R(t).managed||e(oe)});var se=I(ae,2);{let e=A(()=>VB({name:R(t).name}));Y3(se,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>$.openCatalog(R(t)),children:(e,t)=>{q(e,{get icon(){return zTe},class:`form-action-icon`})},$$slots:{default:!0}})}var ce=I(se,2);{let e=A(()=>$.reconnectingName===F4(R(t))?qB({name:R(t).name}):WB({name:R(t).name})),n=A(()=>$.reconnectingName===F4(R(t)));Y3(ce,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>$.reconnectServer(R(t)),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return uX},class:`form-action-icon`})},$$slots:{default:!0}})}var le=I(ce,2),ue=e=>{{let n=A(()=>$.deletingName===F4(R(t))?$B({name:R(t).name}):XB({name:R(t).name})),r=A(()=>$.deletingName===F4(R(t)));Y3(e,{get label(){return R(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>$.deleteServer(R(t)),get disabled(){return R(r)},children:(e,t)=>{q(e,{get icon(){return yX},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(le,e=>{R(t).managed||e(ue)}),D(ie),D(re),D(r),L((e,n,r,i,a,s,c,l,d)=>{H(o,R(t).name),H(u,e),H(p,R(t).transport||`http`),K(m,`title`,n),H(h,r),G(_,1,`audit-status-badge ${i??``}`,`svelte-ah8nrt`),K(_,`title`,a),H(v,s),H(w,c),H(ee,l),G(te,1,li([`auth-key-status-badge`,R(t).enabled?`auth-key-status-active`:`auth-key-status-inactive`])),H(ne,d)},[()=>F4(R(t)),()=>R4(R(t)),()=>R4(R(t)),()=>L4(R(t)),()=>n(R(t)),()=>PNe(R(t)),()=>lZ(R(t).tool_count||0),()=>INe(R(t)),()=>R(t).enabled?XR():$R()]),V(e,r)}),D(x),D(i),D(r),L((e,t,n,r,i,a,o)=>{H(c,e),H(u,t),H(f,n),H(m,r),H(g,i),H(v,a),H(b,o)},[()=>dT(),()=>_B(),()=>bB(),()=>CB(),()=>EB(),()=>kB(),()=>MB()]),V(e,r),k()}var XGe=B(`

                          `),ZGe=B(``),QGe=B(`
                          `),$Ge=B(``),eKe=B(`
                          `),h9=B(`

                          `),tKe=B(`
                          `);function nKe(e,t){O(t,!0);let n=dw();mn(()=>{Y.refreshTick,CX.page===`mcp-servers`&&$.fetchServers()});var r=tKe(),i=P(r),a=P(i),o=P(a);{let e=e=>{var t=XGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>aw()]),V(e,t)},t=A(()=>cw());s3(o,{copyId:`mcp-servers-help-copy`,get label(){return R(t)},get text(){return n},title:e,$$slots:{title:!0}})}D(a);var s=I(a,2),c=P(s),l=e=>{var t=ZGe(),n=P(t);q(n,{get icon(){return lX},class:`form-action-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=$.formSubmitting,H(i,e)},[()=>mw()]),z(`click`,t,()=>$.openCreate()),V(e,t)};U(c,e=>{$.available&&!Y.authError&&e(l)}),D(s),D(i);var u=I(i,2),d=e=>{var t=QGe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_w()]),V(e,t)};U(u,e=>{!$.available&&!Y.authError&&e(d)});var f=I(u,2),p=e=>{var t=$Ge(),n=P(t,!0);D(t),L(()=>H(n,$.error)),V(e,t)};U(f,e=>{$.error&&!Y.authError&&!$.formOpen&&e(p)});var m=I(f,2),h=e=>{{let t=A(()=>bw());J3(e,{get label(){return R(t)}})}};U(m,e=>{$.loading&&!Y.authError&&e(h)});var g=I(m,2),_=e=>{var t=eKe(),n=P(t),r=P(n);{let e=A(()=>Cw()),t=A(()=>Ew());z3(r,{id:`mcp-server-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return $.filter},set value(e){$.filter=e}})}D(n),D(t),V(e,t)};U(g,e=>{($.servers.length>0||$.filter)&&$.available&&!Y.authError&&e(_)});var v=I(g,2);WGe(v,{});var y=I(v,2);IGe(y,{});var b=I(y,2),x=e=>{YGe(e,{})};U(b,e=>{$.filtered.length>0&&$.available&&!Y.authError&&e(x)});var S=I(b,2),C=e=>{var t=h9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>kw()]),V(e,t)};U(S,e=>{$.servers.length===0&&!$.filter&&!$.loading&&!Y.authError&&!$.error&&$.available&&e(C)});var w=I(S,2),T=e=>{var t=h9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mw()]),V(e,t)};U(w,e=>{$.servers.length>0&&$.filtered.length===0&&$.filter&&!$.loading&&!Y.authError&&$.available&&e(T)}),D(r),V(e,r),k()}xr([`click`]);var g9=`api_keys`,_9=`session_sticky_keys`,v9=`base_url`,y9=`service_account_json`,b9=`models`,x9=[g9,_9,v9,`api_version`,`backend`,`auth_type`,`api_mode`,`vertex_project`,`vertex_location`,`service_account_file`,y9,`service_account_json_base64`,`gcp_scope`,b9];function rKe(){return{[g9]:{label:RU(),control:`keys`,hint:EW()},[_9]:{label:VU(),control:`checkbox`,hint:kW()},[v9]:{label:WU(),control:`text`},api_version:{label:qU(),control:`text`,placeholder:`e.g. 2024-10-01-preview`,hint:MW()},backend:{label:XU(),control:`select`,hint:FW()},auth_type:{label:$U(),control:`select`,hint:RW()},api_mode:{label:nW(),control:`select`,hint:VW()},vertex_project:{label:aW(),control:`text`,placeholder:`my-gcp-project`},vertex_location:{label:cW(),control:`text`,placeholder:`us-central1`},service_account_file:{label:dW(),control:`text`,placeholder:`/path/to/service-account.json`,hint:WW()},[y9]:{label:mW(),control:`textarea`,placeholder:jCe(),hint:qW()},service_account_json_base64:{label:_W(),control:`text`,hint:XW()},gcp_scope:{label:bW(),control:`text`,placeholder:`https://www.googleapis.com/auth/cloud-platform`},[b9]:{label:CW(),control:`text`,placeholder:`gpt-4o, gpt-4o-mini`,hint:$W()}}}function iKe(e){return rKe()[e]||{label:String(e||``).split(`_`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),control:`text`}}function S9(){return{name:``,type:``,api_keys:[],session_sticky_keys:!0,base_url:``,api_version:``,backend:``,auth_type:``,api_mode:``,vertex_project:``,vertex_location:``,service_account_file:``,service_account_json:``,service_account_json_base64:``,gcp_scope:``,models:``,enabled:!0}}function aKe(e,t){let n=Array.isArray(e)?e:[];if(!t)return n;let r=String(t).toLowerCase();return n.filter(e=>[e.name,e.type,e.base_url].some(e=>String(e||``).toLowerCase().includes(r)))}function oKe(e,t){let n=(Array.isArray(e)?e:[]).map(e=>String(e&&e.type||``).trim()).filter(Boolean),r=String(t||``).trim();return r&&!n.includes(r)&&n.push(r),n}function sKe(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>String(e&&e.type||``).trim()===n)||null}function C9(e,t){let n=e&&Array.isArray(e.fields)&&e.fields.length>0?e.fields:x9.map(e=>({name:e,advanced:e!==g9})),r=t||e&&e.default_base_url||``,i=[],a=[];for(let e of n){let t=String(e&&e.name||``).trim();if(!t)continue;let n={...iKe(t),name:t,required:!!(e&&e.required),options:Array.isArray(e&&e.options)?e.options:[]};t===`base_url`&&r&&(n.placeholder=r,n.hint=nG({value:r})),n.options.length>0&&(n.control=`select`),(e&&e.advanced?a:i).push(n)}return{primary:i,advanced:a}}var cKe=new Set([`name`,`type`,`enabled`]);function lKe(e,t){let n=new Set([...t.primary||[],...t.advanced||[]].map(e=>e.name)),r=S9(),i={...e};for(let e of Object.keys(r))!cKe.has(e)&&!n.has(e)&&(i[e]=r[e]);return i}function uKe(e){let t=Array.isArray(e&&e.api_keys)?e.api_keys.length:0;return t>0?aG({count:t}):String(e&&e.service_account_json||``).trim()||String(e&&e.service_account_json_base64||``).trim()||String(e&&e.service_account_file||``).trim()?cG():String(e&&e.vertex_project||``).trim()?`ADC`:dG()}function dKe(e){let t=Array.isArray(e&&e.models)?e.models:[];return t.length===0?mG():_G({count:t.length})}function fKe(e){return(Array.isArray(e)?e:[]).map(e=>({value:String(e||``)}))}function w9(e){return(Array.isArray(e)?e:[]).map(e=>String(e&&e.value||``))}function pKe(e,t){let n=String(t||``).trim();if(!n)return``;let r=new Set((Array.isArray(e)?e:[]).map(e=>String(e&&e.name||``).trim()));if(!r.has(n))return n;let i=1;for(;r.has(n+`-`+i);)i+=1;return n+`-`+i}function mKe(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),api_keys:fKe(e&&e.api_keys),session_sticky_keys:!e||e.session_sticky_keys!==!1,base_url:String(e&&e.base_url||``),api_version:String(e&&e.api_version||``),backend:String(e&&e.backend||``),auth_type:String(e&&e.auth_type||``),api_mode:String(e&&e.api_mode||``),vertex_project:String(e&&e.vertex_project||``),vertex_location:String(e&&e.vertex_location||``),service_account_file:String(e&&e.service_account_file||``),service_account_json:String(e&&e.service_account_json||``),service_account_json_base64:String(e&&e.service_account_json_base64||``),gcp_scope:String(e&&e.gcp_scope||``),models:(Array.isArray(e&&e.models)?e.models:[]).join(`, `),enabled:!e||e.enabled!==!1}}function hKe(e){let t=String(e||``).trim();return t.length>=3&&/^\*+$/.test(t)}function gKe(e,t,n,r){let i={},a=String(e&&e.name||``).trim();String(e&&e.type||``).trim()||(i.type=PCe()),a?a.includes(`/`)?i.name=BCe():t===`create`&&(Array.isArray(n)?n:[]).some(e=>String(e&&e.name||``).trim()===a)&&(i.name=twe({name:a})):i.name=LCe();let{primary:o,advanced:s}=C9(r);for(let t of[...o,...s]){let n=_Ke(e,t);n&&(i[t.name]=n)}return i}function _Ke(e,t){if(t.name===`api_keys`){let n=w9(e&&e.api_keys);return t.required&&!n.some(e=>e.trim())?UCe():n.some(e=>!e.trim())?KCe():``}let n=String(e&&e[t.name]||``).trim();if(t.required&&!n)return iwe({field:t.label});if(!n)return``;if(t.name===`base_url`&&!n.includes(`://`)&&/[./]/.test(n))return YCe({value:n});if(t.name===`service_account_json`&&!hKe(n))try{JSON.parse(n)}catch{return QCe()}return``}function vKe(e,t){let n={name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),enabled:!!(e&&e.enabled)},{primary:r,advanced:i}=C9(t),a=!!(t&&Array.isArray(t.fields)&&t.fields.length>0),o=new Set;for(let t of[...r,...i])!a&&t.name===`session_sticky_keys`||(o.add(t.name),n[t.name]=T9(e,t.name));for(let t of x9){if(o.has(t)||t===`session_sticky_keys`)continue;let r=T9(e,t);(Array.isArray(r)?r.length>0:String(r).trim()!==``)&&(n[t]=r)}return n}function T9(e,t){switch(t){case g9:return w9(e&&e.api_keys);case b9:return sZ(e&&e.models);case _9:return!!(e&&e.session_sticky_keys);case y9:return e&&e.service_account_json||``;default:return String(e&&e[t]||``).trim()}}var E9=new class{#e=j(N([]));get rows(){return R(this.#e)}set rows(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return R(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get formSubmitting(){return R(this.#o)}set formSubmitting(e){M(this.#o,e,!0)}#s=j(`create`);get formMode(){return R(this.#s)}set formMode(e){M(this.#s,e,!0)}#c=j(!1);get advancedOpen(){return R(this.#c)}set advancedOpen(e){M(this.#c,e,!0)}#l=j(N(S9()));get form(){return R(this.#l)}set form(e){M(this.#l,e,!0)}#u=j(N({}));get fieldErrors(){return R(this.#u)}set fieldErrors(e){M(this.#u,e,!0)}#d=j(``);get focusField(){return R(this.#d)}set focusField(e){M(this.#d,e,!0)}#f=j(``);get deletingName(){return R(this.#f)}set deletingName(e){M(this.#f,e,!0)}#p=j(!1);get deleteSubmitting(){return R(this.#p)}set deleteSubmitting(e){M(this.#p,e,!0)}#m=j(N([]));get types(){return R(this.#m)}set types(e){M(this.#m,e,!0)}#h=j(!1);get typesLoaded(){return R(this.#h)}set typesLoaded(e){M(this.#h,e,!0)}#g=null;get filteredRows(){return aKe(this.rows,this.filter)}get schema(){return sKe(this.types,this.form.type)}get formFields(){if(!String(this.form.type||``).trim())return{primary:[],advanced:[]};let e=this.schema;return C9(e,e&&e.default_base_url)}async fetchTypes(){let e=await X3(`/admin/provider-credentials/types`,{label:`provider credential types`});e.status===`ok`&&(this.types=e.items,this.typesLoaded=!0)}async fetchPage(){this.#g&&this.#g.abort();let e=new AbortController;this.#g=e,this.loading=!0,this.error=``;try{let t=await X3(`/admin/provider-credentials`,{label:`provider credentials`,errorFallback:_U(),unavailableStatuses:[503,404],options:{signal:e.signal}});if(t.status===`stale`||e.signal.aborted)return;if(t.status===`unavailable`){this.available=!1,this.rows=[];return}if(t.status===`error`){t.result&&(this.available=!0),this.rows=[],this.error=t.error;return}this.available=!0,this.rows=t.items,this.typesLoaded||await this.fetchTypes()}finally{this.#g===e&&(this.#g=null,this.loading=!1)}}#_(e,t){this.formMode=e,this.form=t,this.advancedOpen=!1,this.error=``,this.fieldErrors={},this.focusField=``}openCreate(){this.#_(`create`,S9()),this.formOpen=!0,this.typesLoaded||this.fetchTypes()}openEdit(e){!e||e.managed||(this.#_(`edit`,mKe(e)),this.formOpen=!0,this.typesLoaded||this.fetchTypes())}closeForm(){this.formOpen=!1,this.#_(`create`,S9())}selectType(){this.fieldErrors={};let e=this.formFields;this.formMode===`create`&&(this.form=lKe(this.form,e));let t=e.primary.find(e=>e.name===`api_keys`);t&&t.required&&this.form.api_keys.length===0&&(this.form.api_keys=[{value:``}])}clearFieldError(e){if(this.fieldErrors[e]===void 0)return;let{[e]:t,...n}=this.fieldErrors;this.fieldErrors=n}addApiKeyRow(){this.form.api_keys.push({value:``}),this.clearFieldError(`api_keys`)}removeApiKeyRow(e){this.form.api_keys.splice(e,1),this.clearFieldError(`api_keys`)}#v(e){let t=UX(e,bU()),n=String(e&&e.error&&typeof e.error==`object`&&e.error.param||``).trim();if(n&&this.#y(n)){this.fieldErrors={...this.fieldErrors,[n]:t},this.error=``,this.#b();return}this.error=t}#y(e){if(e===`name`||e===`type`)return!0;let{primary:t,advanced:n}=this.formFields;return[...t,...n].some(t=>t.name===e)}#b(){let e=Object.keys(this.fieldErrors);if(e.length===0)return;let{primary:t,advanced:n}=this.formFields;n.some(t=>e.includes(t.name))&&(this.advancedOpen=!0);let r=[`type`,`name`,...t.map(e=>e.name),...n.map(e=>e.name)];this.focusField=r.find(t=>e.includes(t))||e[0]}#x(){kZ.fetchModels(),kZ.fetchCategories()}async submitForm(){let e=this.schema,t=gKe(this.form,this.formMode,this.rows,e);if(Object.keys(t).length>0){this.fieldErrors=t,this.error=``,this.#b();return}let n=vKe(this.form,e);this.error=``,this.fieldErrors={},this.formSubmitting=!0;try{let e=await Z3(`/admin/provider-credentials`,`PUT`,n,{label:`save provider credential`,errorFallback:bU(),unavailableMessage:aD()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.error=e.error;return}if(e.status===`error`){e.result&&e.result.status!==401?this.#v(e.result.data):this.error=e.error;return}oZ.success(CU({name:n.name})),this.closeForm(),this.#x(),this.fetchPage()}finally{this.formSubmitting=!1}}async performDelete(e){this.deleteSubmitting=!0,this.deletingName=e;try{let t=await Z3(`/admin/provider-credentials/`+encodeURIComponent(e),`DELETE`,void 0,{label:`delete provider credential`,errorFallback:EU(),unavailableMessage:aD()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,eZ.error=t.error;return}if(t.status===`error`){eZ.error=t.error;return}oZ.success(kU({name:e})),eZ.close(),this.formOpen&&this.form.name===e&&this.closeForm(),this.#x(),this.fetchPage()}finally{this.deleteSubmitting=!1,this.deletingName=``}}requestDelete(e){let t=String(e||``).trim();if(!t||this.deleteSubmitting)return;let n=(this.rows||[]).find(e=>String(e&&e.name||``).trim()===t);n&&n.managed||eZ.open({title:MU(),titleId:`providerCredentialDeleteDialogTitle`,inputId:`provider-credential-delete-confirmation`,message:FU({name:t}),requiredText:t,confirmLabel:MU(),icon:gX,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.performDelete(t)})}},yKe=B(` `),bKe=B(` `,1),xKe=B(`
                          `),SKe=B(`
                          `);function CKe(e,t){O(t,!0);var n=SKe(),r=P(n),i=P(r),a=P(i),o=P(a),s=P(o,!0);D(o);var c=I(o),l=P(c,!0);D(c);var u=I(c),d=P(u,!0);D(u);var f=I(u),p=P(f,!0);D(f);var m=I(f),h=P(m,!0);D(m);var g=I(m),_=P(g,!0);D(g);var v=I(g),y=P(v,!0);D(v);var b=I(v),x=P(b,!0);D(b),D(a),D(i);var S=I(i);W(S,21,()=>E9.filteredRows,e=>e.name,(e,t)=>{var n=xKe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=e=>{var t=yKe(),n=P(t,!0);D(t),L((e,r)=>{K(t,`title`,e),H(n,r)},[()=>VD(),()=>nz()]),V(e,t)};U(o,e=>{R(t).managed&&e(s)}),D(r);var c=I(r),l=P(c),u=P(l,!0);D(l),D(c);var d=I(c),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=P(h,!0);D(h);var _=I(h),v=P(_);let y;var b=P(v,!0);D(v),D(_);var x=I(_),S=P(x,!0);D(x);var C=I(x),w=P(C),T=P(w),ee=e=>{var n=bKe(),r=F(n);{let e=A(()=>cU({name:R(t).name}));Y3(r,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>E9.openEdit(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>E9.deletingName===R(t).name?mU({name:R(t).name}):dU({name:R(t).name})),n=A(()=>E9.deletingName===R(t).name);Y3(i,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>E9.requestDelete(R(t).name),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return yX},class:`table-icon-svg`})},$$slots:{default:!0}})}V(e,n)};U(T,e=>{R(t).managed||e(ee)}),D(w),D(C),D(n),L((e,n,r,i)=>{H(a,R(t).name),H(u,R(t).type),K(d,`title`,R(t).base_url||``),H(f,R(t).base_url||`—`),H(m,e),H(g,n),y=G(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":R(t).enabled,"auth-key-status-inactive":!R(t).enabled}),H(b,r),H(S,i)},[()=>uKe(R(t)),()=>dKe(R(t)),()=>R(t).enabled?XR():$R(),()=>HX.formatTimestamp(R(t).updated_at)]),V(e,n)}),D(S),D(r),D(n),L((e,t,n,r,i,a,o,c)=>{H(s,e),H(l,t),H(d,n),H(p,r),H(h,i),H(_,a),H(y,o),H(x,c)},[()=>bD(),()=>CD(),()=>Ss(),()=>ED(),()=>kD(),()=>MD(),()=>FD(),()=>RD()]),V(e,n),k()}var wKe=B(``),TKe=B(`
                          `),EKe=B(`
                          `,1),DKe=B(``),OKe=B(``),kKe=B(``),AKe=B(``),jKe=B(``),MKe=B(` `),NKe=B(` `),PKe=B(`
                          `);function D9(e,t){O(t,!0);let n=A(()=>`provider-credential-`+t.field.name),r=A(()=>E9.fieldErrors[t.field.name]||``),i=A(()=>R(r)?R(n)+`-error`:t.field.hint?R(n)+`-hint`:void 0),a=A(()=>{let e=String(E9.form[t.field.name]||``).trim();return!e||t.field.options.includes(e)?t.field.options:[...t.field.options,e]});function o(){E9.clearFieldError(t.field.name)}var s=PKe(),c=P(s),l=P(c),u=I(l),d=e=>{V(e,wKe())};U(u,e=>{t.field.required&&e(d)}),D(c);var f=I(c,2),p=e=>{var t=EKe(),a=F(t);W(a,21,()=>E9.form.api_keys,Ir,(e,t,a)=>{var s=TKe(),c=P(s);wi(c);var l=I(c,2);{let e=A(()=>$H({number:a+1}));Y3(l,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>E9.removeApiKeyRow(a),children:(e,t)=>{q(e,{get icon(){return gX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(s),L(e=>{K(c,`id`,a===0?R(n):R(n)+`-`+a),K(c,`aria-label`,e),K(c,`aria-invalid`,R(r)?`true`:void 0),K(c,`aria-describedby`,a===0?R(i):void 0)},[()=>XH({number:a+1})]),z(`input`,c,o),ji(c,()=>R(t).value,e=>R(t).value=e),V(e,s)}),D(a);var s=I(a,2),c=P(s),l=P(c);q(l,{get icon(){return lX},class:`form-action-icon`});var u=I(l,2),d=P(u,!0);D(u),D(c),D(s),L(e=>{K(c,`id`,E9.form.api_keys.length===0?R(n):void 0),H(d,e)},[()=>nU()]),z(`click`,c,()=>E9.addApiKeyRow()),V(e,t)},m=e=>{var s=OKe(),c=P(s),l=P(c,!0);D(c),c.value=c.__value=``,W(I(c),16,()=>R(a),e=>e,(e,t)=>{var n=DKe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(s),L(e=>{K(s,`id`,R(n)),K(s,`aria-invalid`,R(r)?`true`:void 0),K(s,`aria-describedby`,R(i)),H(l,e)},[()=>aU()]),z(`change`,s,o),_i(s,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,s)},h=e=>{var a=kKe();wi(a),L(()=>{K(a,`id`,R(n)),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`change`,a,o),Mi(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,a)},g=e=>{var a=AKe();at(a),L(()=>{K(a,`id`,R(n)),K(a,`placeholder`,t.field.placeholder||``),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`input`,a,o),ji(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,a)},_=e=>{var a=jKe();wi(a),L(()=>{K(a,`id`,R(n)),K(a,`placeholder`,t.field.placeholder||``),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`input`,a,o),ji(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),V(e,a)};U(f,e=>{t.field.control===`keys`?e(p):t.field.control===`select`?e(m,1):t.field.control===`checkbox`?e(h,2):t.field.control===`textarea`?e(g,3):e(_,-1)});var v=I(f,2),y=e=>{var t=MKe(),i=P(t,!0);D(t),L(()=>{K(t,`id`,R(n)+`-error`),H(i,R(r))}),V(e,t)},b=e=>{var r=NKe(),i=P(r,!0);D(r),L(()=>{K(r,`id`,R(n)+`-hint`),H(i,t.field.hint)}),V(e,r)};U(v,e=>{R(r)?e(y):t.field.hint&&e(b,1)}),D(s),L(()=>{K(c,`for`,R(n)),H(l,`${t.field.label??``} `)}),V(e,s),k()}xr([`input`,`click`,`change`]);var O9=B(`

                          `),FKe=B(``),IKe=B(` `),LKe=B(` `),RKe=B(` `),k9=B(` `),zKe=B(`
                          `),BKe=B(`
                          `,1);function VKe(e,t){O(t,!0);let n=A(()=>oKe(E9.types,E9.form.type)),r=A(()=>E9.formFields),i=A(()=>E9.fieldErrors.name||``),a=A(()=>E9.fieldErrors.type||``);function o(){E9.selectType(),E9.formMode===`create`&&(E9.form.name=pKe(E9.rows,E9.form.type))}mn(()=>{let e=E9.focusField;if(!e)return;E9.focusField=``;let t=document.getElementById(`provider-credential-`+e);t&&(t.scrollIntoView({block:`center`}),t.focus({preventScroll:!0}))});{let t=e=>{var t=O9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>EH()]),V(e,t)},s=A(()=>E9.formMode===`edit`?bH():nD()),c=A(()=>CH());S6(e,{get open(){return E9.formOpen},get title(){return R(s)},get ariaLabel(){return R(c)},get error(){return E9.error},get submitting(){return E9.formSubmitting},novalidate:!0,onclose:()=>E9.closeForm(),onsubmit:()=>E9.submitForm(),headerHint:t,children:(e,t)=>{var s=BKe(),c=F(s),l=P(c),u=P(l,!0);Ve(),D(l);var d=I(l,2),f=P(d),p=P(f,!0);D(f),f.value=f.__value=``,W(I(f),16,()=>R(n),e=>e,(e,t)=>{var n=FKe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(d);var m=I(d,2),h=e=>{var t=IKe(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)},g=e=>{var t=LKe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>MH()]),V(e,t)};U(m,e=>{R(a)?e(h):e(g,-1)}),D(c);var _=I(c,2),v=P(_),y=P(v,!0);Ve(),D(v);var b=I(v,2);wi(b);var x=I(b,2),S=e=>{var t=RKe(),n=P(t,!0);D(t),L(()=>H(n,R(i))),V(e,t)},C=e=>{var t=k9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>FH()]),V(e,t)},w=e=>{var t=k9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>RH()]),V(e,t)};U(x,e=>{R(i)?e(S):E9.formMode===`create`?e(C,1):e(w,-1)}),D(_);var T=I(_,2),ee=e=>{var t=O9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>VH()]),V(e,t)};U(T,e=>{E9.form.type||e(ee)});var E=I(T,2);W(E,17,()=>R(r).primary,e=>e.name,(e,t)=>{D9(e,{get field(){return R(t)}})});var te=I(E,2),ne=P(te),re=P(ne);{let e=A(()=>WH());Z8(re,{get enabled(){return E9.form.enabled},get label(){return R(e)},onclick:()=>E9.form.enabled=!E9.form.enabled})}D(ne),D(te);var ie=I(te,2),ae=e=>{var t=zKe(),n=P(t),i=P(n),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(i),D(n);var l=I(n,2);W(l,21,()=>R(r).advanced,e=>e.name,(e,t)=>{D9(e,{get field(){return R(t)}})}),D(l),D(t),L((e,n)=>{t.open=E9.advancedOpen,H(o,e),H(c,n)},[()=>qH(),()=>R(r).advanced.map(e=>e.label).join(`, `)]),br(`toggle`,t,e=>E9.advancedOpen=e.currentTarget.open),V(e,t)};U(ie,e=>{R(r).advanced.length>0&&e(ae)}),L((e,t,n)=>{H(u,e),d.disabled=E9.formMode===`edit`,K(d,`aria-invalid`,R(a)?`true`:void 0),K(d,`aria-describedby`,R(a)?`provider-credential-type-error`:`provider-credential-type-hint`),H(p,t),H(y,n),b.disabled=E9.formMode===`edit`,K(b,`aria-invalid`,R(i)?`true`:void 0),K(b,`aria-describedby`,R(i)?`provider-credential-name-error`:`provider-credential-name-hint`)},[()=>CD(),()=>kH(),()=>bD()]),z(`change`,d,o),_i(d,()=>E9.form.type,e=>E9.form.type=e),z(`input`,b,()=>E9.clearFieldError(`name`)),ji(b,()=>E9.form.name,e=>E9.form.name=e),V(e,s)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`change`,`input`]);var HKe=B(`

                          `),UKe=B(``),WKe=B(`
                          `),GKe=B(``),KKe=B(`
                          `),A9=B(`

                          `),qKe=B(`
                          `);function JKe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`providers-config`&&E9.fetchPage()});var n=qKe(),r=P(n),i=P(r);s3(P(i),{copyId:`providers-config-help-copy`,label:`model providers help`,title:e=>{var t=HKe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>$E()]),V(e,t)},help:e=>{Ve(),V(e,Dr(`Configure LLM provider credentials here instead of setting API keys as - environment variables. Providers declared in config.yaml or env vars - are read-only (Config badge) and cannot be edited or deleted from the - dashboard. Keys are masked after saving.`))},$$slots:{title:!0,help:!0}}),D(i);var a=I(i,2),o=P(a),s=e=>{var t=UKe(),n=P(t);q(n,{get icon(){return lX},class:`form-action-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=E9.formSubmitting,H(i,e)},[()=>nD()]),z(`click`,t,()=>E9.openCreate()),V(e,t)};U(o,e=>{E9.available&&!Y.needsAuth&&e(s)}),D(a),D(r);var c=I(r,2),l=e=>{var t=WKe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>aD()]),V(e,t)};U(c,e=>{!E9.available&&!Y.needsAuth&&e(l)});var u=I(c,2),d=e=>{var t=GKe(),n=P(t,!0);D(t),L(()=>H(n,E9.error)),V(e,t)};U(u,e=>{E9.error&&!Y.needsAuth&&!E9.formOpen&&e(d)});var f=I(u,2),p=e=>{J3(e,{label:`Loading providers...`})};U(f,e=>{E9.loading&&!Y.needsAuth&&e(p)});var m=I(f,2),h=e=>{var t=KKe(),n=P(t),r=P(n);{let e=A(()=>cD()),t=A(()=>dD());z3(r,{id:`provider-credential-filter`,get placeholder(){return R(e)},get label(){return R(t)},get value(){return E9.filter},set value(e){E9.filter=e}})}D(n),D(t),V(e,t)};U(m,e=>{(E9.rows.length>0||E9.filter)&&E9.available&&!Y.needsAuth&&e(h)});var g=I(m,2);VKe(g,{});var _=I(g,2),v=e=>{CKe(e,{})};U(_,e=>{E9.filteredRows.length>0&&E9.available&&!Y.needsAuth&&e(v)});var y=I(_,2),b=e=>{var t=A9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>mD()]),V(e,t)};U(y,e=>{E9.rows.length===0&&!E9.filter&&!E9.loading&&!Y.needsAuth&&!E9.error&&E9.available&&e(b)});var x=I(y,2),S=e=>{var t=A9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_D()]),V(e,t)};U(x,e=>{E9.rows.length>0&&E9.filteredRows.length===0&&E9.filter&&!E9.loading&&!Y.needsAuth&&E9.available&&e(S)}),D(n),V(e,n),k()}xr([`click`]);function j9(){return{name:``,description:``,user_path:``,labels:``,dashboard_access:!1,expires_at:``}}function M9(e){let t=[];for(let n of String(e||``).split(`,`)){let e=n.trim();e&&!t.includes(e)&&t.push(e)}return t}function N9(e){let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t;for(let e of n.split(`/`)){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return dB();if(t.includes(`:`))return mB()}}return``}function YKe(e){if(N9(e))return``;let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t,r=[];for(let e of n.split(`/`)){let t=String(e||``).trim();t&&r.push(t)}return r.length?`/`+r.join(`/`):`/`}function XKe(e){let t=e||{},n=String(t.name||``).trim();if(!n)return{error:cB()};let r=N9(t.user_path);if(r)return{error:r};let i=YKe(t.user_path),a=M9(t.labels),o={name:n,description:String(t.description||``).trim()||void 0,user_path:i||void 0,labels:a.length?a:void 0,dashboard_access:t.dashboard_access?!0:void 0};return t.expires_at&&(o.expires_at=t.expires_at+`T23:59:59Z`),{payload:o}}function P9(e,t=Date.now()){let n=e&&e.expires_at;if(!n)return!1;let r=Date.parse(n);return Number.isFinite(r)&&r<=t}function F9(e){return e?!!e.deactivated_at||e.enabled===!1:!1}function I9(e,t=Date.now()){return!e||e.active===!1||F9(e)?!1:!P9(e,t)}function ZKe(e){return[e.name,e.description,e.user_path,e.redacted_value,...e.labels||[]].filter(Boolean).join(` `).toLowerCase()}function QKe(e,t={}){let{query:n=``,showInactive:r=!1,now:i=Date.now()}=t,a=String(n||``).trim().toLowerCase();return(Array.isArray(e)?e:[]).filter(e=>!r&&!I9(e,i)?!1:!a||ZKe(e).includes(a))}function L9(e,t){return F9(e)?2:+!I9(e,t)}function R9(e){let t=e&&e.expires_at;if(!t)return 1/0;let n=Date.parse(t);return Number.isFinite(n)?n:1/0}function z9(e){let t=Date.parse(e&&e.deactivated_at||``);return Number.isFinite(t)?t:-1/0}function $Ke(e,t=Date.now()){return(Array.isArray(e)?e.slice():[]).sort((e,n)=>{let r=L9(e,t),i=L9(n,t);if(r!==i)return r-i;let[a,o]=r===2?[z9(e),z9(n)]:[R9(e),R9(n)];return a===o?String(e.name||``).localeCompare(String(n.name||``)):a>o?-1:1})}function eqe(e,t=Date.now()){return(Array.isArray(e)?e:[]).reduce((e,n)=>e+ +!I9(n,t),0)}function B9(){return{open:!1,id:``,name:``,value:``,submitting:!1,error:``}}var V9=new class{#e=j(N([]));get keys(){return R(this.#e)}set keys(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get showInactive(){return R(this.#a)}set showInactive(e){M(this.#a,e,!0)}#o=A(()=>$Ke(QKe(this.keys,{query:this.filter,showInactive:this.showInactive})));get visibleKeys(){return R(this.#o)}set visibleKeys(e){M(this.#o,e)}#s=A(()=>eqe(this.keys));get inactiveCount(){return R(this.#s)}set inactiveCount(e){M(this.#s,e)}#c=j(!1);get formOpen(){return R(this.#c)}set formOpen(e){M(this.#c,e,!0)}#l=j(!1);get formSubmitting(){return R(this.#l)}set formSubmitting(e){M(this.#l,e,!0)}#u=j(``);get issuedValue(){return R(this.#u)}set issuedValue(e){M(this.#u,e,!0)}#d=j(``);get deactivatingID(){return R(this.#d)}set deactivatingID(e){M(this.#d,e,!0)}#f=j(``);get dashboardAccessID(){return R(this.#f)}set dashboardAccessID(e){M(this.#f,e,!0)}#p=j(N(j9()));get form(){return R(this.#p)}set form(e){M(this.#p,e,!0)}#m=j(N(B9()));get labelsEditor(){return R(this.#m)}set labelsEditor(e){M(this.#m,e,!0)}copyState=U3({logPrefix:`Failed to copy auth key:`});async fetchKeys(){this.loading=!0,this.error=``;try{let e=await X3(`/admin/auth-keys`,{label:`auth keys`,errorFallback:kz()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.keys=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.error=e.error;return}this.available=!0,this.keys=e.items}finally{this.loading=!1}}openForm(){this.formSubmitting||this.formOpen||(this.formOpen=!0,this.error=``,this.issuedValue||(this.copyState.reset(),this.form=j9()))}closeForm(){this.formOpen&&(this.formOpen=!1,this.error=``,this.copyState.reset(),!this.formSubmitting&&!this.issuedValue&&(this.form=j9()))}copyIssuedValue(){return this.copyState.copy(this.issuedValue)}dismissIssuedKey(){this.issuedValue=``,this.copyState.reset(),this.form=j9()}async submitForm(){let e=XKe(this.form);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await Z3(`/admin/auth-keys`,`POST`,e.payload,{label:`create API key`,errorFallback:Mz(),unavailableMessage:Fz()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error,t.result&&t.result.status!==401&&console.error(`Failed to create API key:`,t.result.status,this.error);return}let n=t.result.data||{};this.issuedValue=n.value||``,this.formOpen=!0,this.copyState.reset(),this.form=j9(),this.fetchKeys()}finally{this.formSubmitting=!1}}openLabelsEditor(e){!e||this.labelsEditor.submitting||(this.labelsEditor={open:!0,id:e.id,name:e.name||``,value:(e.labels||[]).join(`, `),submitting:!1,error:``})}closeLabelsEditor(){!this.labelsEditor.open||this.labelsEditor.submitting||(this.labelsEditor=B9())}async submitLabelsEditor(){let e=this.labelsEditor;if(!e.open||e.submitting||!e.id)return;e.submitting=!0,e.error=``;let t={labels:M9(e.value)};try{let n=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/labels`,`PUT`,t,{label:`update API key labels`,errorFallback:Rz(),unavailableMessage:Fz()});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,e.error=n.error;return}if(n.status===`error`){e.error=n.error,n.result&&n.result.status!==401&&console.error(`Failed to update auth key labels:`,n.result.status,e.error);return}oZ.success(Vz({name:e.name})),e.submitting=!1,this.closeLabelsEditor(),this.fetchKeys()}finally{e.submitting=!1}}async toggleDashboardAccess(e){if(!e||!e.active||this.dashboardAccessID)return;let t=!e.dashboard_access;this.dashboardAccessID=e.id;try{let n=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/dashboard-access`,`PUT`,{dashboard_access:t},{label:`update API key dashboard access`,errorFallback:Wz(),unavailableMessage:Fz()});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,oZ.error(n.error);return}if(n.status===`error`){n.result&&n.result.status!==401&&console.error(`Failed to update auth key dashboard access:`,n.result.status,n.error),oZ.error(n.error);return}oZ.success(t?qz({name:e.name}):Xz({name:e.name})),this.fetchKeys()}finally{this.dashboardAccessID=``}}async deactivateKey(e){if(!(!e||!e.active)&&window.confirm($z({name:e.name}))){this.deactivatingID=e.id;try{let t=await Z3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/deactivate`,`POST`,void 0,{label:`deactivate API key`,errorFallback:nB(),unavailableMessage:Fz()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,oZ.error(t.error);return}if(t.status===`error`){t.result&&t.result.status!==401&&console.error(`Failed to deactivate auth key:`,t.result.status,t.error),oZ.error(t.error);return}oZ.success(aB({name:e.name})),this.fetchKeys()}finally{this.deactivatingID=``}}}},tqe=B(``),nqe=B(`

                          `),rqe=B(``),iqe=B(``),aqe=B(``),oqe=B(``),sqe=B(`
                          `);function cqe(e,t){O(t,!0);{let t=A(()=>kx()),n=A(()=>aS()),r=A(()=>V9.issuedValue?``:V9.error),i=A(()=>V9.issuedValue?cS():kx()),a=A(()=>dS()),o=A(()=>V9.issuedValue?XY:lX);S6(e,{get open(){return V9.formOpen},get title(){return R(t)},get ariaLabel(){return R(n)},get error(){return R(r)},get submitting(){return V9.formSubmitting},get submitLabel(){return R(i)},get submittingLabel(){return R(a)},get submitIcon(){return R(o)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>V9.closeForm(),onsubmit:()=>V9.issuedValue?V9.dismissIssuedKey():V9.submitForm(),children:(e,t)=>{var n=Or(),r=F(n),i=e=>{var t=nqe(),n=P(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i),o=P(a,!0);D(a),Q7(I(a,2),{get state(){return V9.copyState},onclick:()=>V9.copyIssuedValue()}),D(i);var s=I(i,2),c=e=>{var t=tqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>_S()]),V(e,t)};U(s,e=>{V9.copyState.error&&e(c)}),D(t),L(e=>{H(r,e),H(o,V9.issuedValue)},[()=>mS()]),V(e,t)},a=e=>{var t=sqe(),n=P(t),r=P(n),i=P(r),a=P(i),o=I(a),s=P(o);D(o),D(i);var c=I(i,2);wi(c),D(r);var l=I(r,2),u=P(l),d=P(u),f=I(d),p=P(f);D(f),D(u);var m=I(u,2);wi(m),D(l),D(n);var h=I(n,2),g=P(h);{let e=e=>{var t=rqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>MS()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>RS()]),V(e,t)},n=A(()=>FS());s3(g,{copyId:`auth-key-user-path-help-copy`,get label(){return R(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var _=I(g,2);wi(_),D(h);var v=I(h,2),y=P(v);{let e=e=>{var t=iqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>VS()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>qS()]),V(e,t)},n=A(()=>WS());s3(y,{copyId:`auth-key-labels-help-copy`,get label(){return R(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var b=I(y,2);wi(b),D(v);var x=I(v,2),S=P(x);{let e=e=>{var t=aqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XS()]),V(e,t)},t=e=>{Ve();var t=Dr();L(e=>H(t,e),[()=>nC()]),V(e,t)},n=A(()=>$S());s3(S,{copyId:`auth-key-dashboard-access-help-copy`,get label(){return R(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var C=I(S,2),w=P(C);wi(w);var T=I(w,2),ee=P(T,!0);D(T),D(C),D(x);var E=I(x,2);{let e=A(()=>cC());C6(E,{id:`auth-key-description`,get label(){return R(e)},children:(e,t)=>{var n=oqe();at(n),L(e=>K(n,`placeholder`,e),[()=>dC()]),ji(n,()=>V9.form.description,e=>V9.form.description=e),V(e,n)},$$slots:{default:!0}})}D(t),L((e,t,n,r,i)=>{H(a,`${e??``} `),H(s,`(${t??``})`),H(d,`${n??``} `),H(p,`(${r??``})`),H(ee,i)},[()=>bS(),()=>CS(),()=>ES(),()=>kS(),()=>aC()]),ji(c,()=>V9.form.name,e=>V9.form.name=e),ji(m,()=>V9.form.expires_at,e=>V9.form.expires_at=e),ji(_,()=>V9.form.user_path,e=>V9.form.user_path=e),ji(b,()=>V9.form.labels,e=>V9.form.labels=e),Mi(w,()=>V9.form.dashboard_access,e=>V9.form.dashboard_access=e),V(e,t)};U(r,e=>{V9.issuedValue?e(i):e(a,-1)}),V(e,n)},$$slots:{default:!0}})}k()}var lqe=B(`

                          `),uqe=B(`

                          `,1);function dqe(e,t){O(t,!0);{let t=e=>{var t=lqe(),n=P(t,!0);D(t),L(()=>H(n,V9.labelsEditor.name)),V(e,t)},n=A(()=>WC()),r=A(()=>qC()),i=A(()=>XC());S6(e,{get open(){return V9.labelsEditor.open},get title(){return R(n)},get ariaLabel(){return R(r)},get error(){return V9.labelsEditor.error},get submitting(){return V9.labelsEditor.submitting},get submitLabel(){return R(i)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>V9.closeLabelsEditor(),onsubmit:()=>V9.submitLabelsEditor(),headerHint:t,children:(e,t)=>{{let t=A(()=>$C());C6(e,{id:`auth-key-labels-edit`,get label(){return R(t)},children:(e,t)=>{var n=uqe(),r=F(n);wi(r);var i=I(r,2),a=P(i,!0);D(i),L(e=>H(a,e),[()=>nw()]),ji(r,()=>V9.labelsEditor.value,e=>V9.labelsEditor.value=e),V(e,n)},$$slots:{default:!0}})}},$$slots:{headerHint:!0,default:!0}})}k()}var fqe=B(` `),pqe=B(`
                          `),mqe=B(``),H9=B(` `),hqe=B(` `),gqe=B(` `,1),_qe=B(`
                          `),vqe=B(`
                          `);function yqe(e,t){O(t,!0);var n=vqe(),r=P(n),i=P(r),a=P(i),o=P(a),s=P(o,!0);D(o);var c=I(o),l=P(c,!0);D(c);var u=I(c),d=P(u,!0);D(u);var f=I(u),p=P(f,!0);D(f);var m=I(f),h=P(m,!0);D(m);var g=I(m),_=P(g),v=P(_);q(I(v),{get icon(){return LTe},width:`13`,height:`13`}),D(_),D(g);var y=I(g),b=P(y,!0);D(y);var x=I(y),S=P(x,!0);D(x);var C=I(x);D(a),D(i);var w=I(i);W(w,21,()=>V9.visibleKeys,e=>e.id,(e,t)=>{var n=_qe();let r;var i=P(n),a=P(i,!0);D(i);var o=I(i),s=P(o,!0);D(o);var c=I(o),l=P(c,!0);D(c);var u=I(c),d=P(u),f=e=>{var n=pqe();W(n,20,()=>R(t).labels||[],e=>e,(e,t)=>{var n=fqe(),r=P(n,!0);D(n),L(e=>{mi(n,e),H(r,t)},[()=>VMe(t)]),V(e,n)}),D(n),V(e,n)},p=e=>{V(e,mqe())};U(d,e=>{(R(t).labels||[]).length>0?e(f):e(p,-1)}),D(u);var m=I(u),h=P(m),g=P(h,!0);D(h),D(m);var _=I(m),v=P(_);let y;var b=P(v,!0);D(v),D(_);var x=I(_),S=P(x),C=e=>{var n=hqe(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=e=>{var t=H9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>RC()]),V(e,t)},s=A(()=>P9(R(t)));U(a,e=>{R(s)&&e(o)}),D(n),L(e=>H(i,e),[()=>YEe(R(t).expires_at)]),V(e,n)},w=e=>{V(e,Dr(`—`))};U(S,e=>{R(t).expires_at?e(C):e(w,-1)}),D(x);var T=I(x),ee=P(T,!0);D(T);var E=I(T),te=P(E),ne=P(te),re=e=>{var n=gqe(),r=F(n);{let e=A(()=>R(t).dashboard_access?mz({name:R(t).name}):dz({name:R(t).name})),n=A(()=>!!V9.dashboardAccessID);Y3(r,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>V9.toggleDashboardAccess(R(t)),get disabled(){return R(n)},children:(e,n)=>{{let n=A(()=>R(t).dashboard_access?ZTe:pX);q(e,{get icon(){return R(n)},class:`table-icon-svg`})}},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>_z({name:R(t).name}));Y3(i,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>V9.openLabelsEditor(R(t)),children:(e,t)=>{q(e,{get icon(){return cX},class:`table-icon-svg`})},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>V9.deactivatingID===R(t).id?Cz({name:R(t).name}):bz({name:R(t).name})),n=A(()=>V9.deactivatingID===R(t).id);Y3(a,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>V9.deactivateKey(R(t)),get disabled(){return R(n)},children:(e,t)=>{q(e,{get icon(){return GTe},class:`table-icon-svg`})},$$slots:{default:!0}})}V(e,n)},ie=e=>{var n=H9(),r=P(n,!0);D(n),L((e,t)=>{K(n,`title`,e),H(r,t)},[()=>R(t).deactivated_at?Ez({date:gZ(R(t).deactivated_at)}):VC(),()=>VC()]),V(e,n)},ae=A(()=>F9(R(t)));U(ne,e=>{R(t).active?e(re):R(ae)&&e(ie,1)}),D(te),D(E),D(n),L((e,i,o,c)=>{r=G(n,1,`svelte-nf0ldb`,null,r,e),H(a,R(t).name),H(s,R(t).description||`—`),H(l,R(t).user_path||`—`),H(g,R(t).redacted_value),y=G(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":R(t).dashboard_access,"auth-key-status-inactive":!R(t).dashboard_access}),H(b,i),K(x,`title`,o),H(ee,c)},[()=>({"auth-key-row-deactivated":F9(R(t))}),()=>R(t).dashboard_access?MC():FC(),()=>R(t).expires_at?gZ(R(t).expires_at):``,()=>HX.formatTimestamp(R(t).created_at)]),V(e,n)}),D(w),D(r),D(n),L((e,t,n,r,i,a,o,c,u,f)=>{H(s,e),H(l,t),H(d,n),H(p,r),H(h,i),K(_,`title`,a),H(v,`${o??``} `),H(b,c),H(S,u),K(C,`aria-label`,f)},[()=>bS(),()=>mC(),()=>_C(),()=>bC(),()=>CC(),()=>cz(),()=>XS(),()=>ES(),()=>EC(),()=>kC()]),V(e,n),k()}var bqe=B(``),xqe=B(`
                          `),Sqe=B(``),Cqe=B(`

                          `),wqe=B(`
                          `),Tqe=B(`
                          `),U9=B(`

                          `),Eqe=B(`
                          `);function Dqe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`auth-keys`&&V9.fetchKeys()});var n=Eqe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o),c=e=>{var t=bqe(),n=P(t);q(n,{get icon(){return lX},class:`table-icon-svg`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(e=>{t.disabled=V9.formSubmitting,H(i,e)},[()=>kx()]),z(`click`,t,()=>{V9.formSubmitting||V9.openForm()}),V(e,t)};U(s,e=>{V9.available&&!Y.authError&&e(c)}),D(o),D(r);var l=I(r,2),u=e=>{var t=xqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mx()]),V(e,t)};U(l,e=>{!V9.available&&!Y.authError&&e(u)});var d=I(l,2),f=e=>{var t=Sqe(),n=P(t,!0);D(t),L(()=>H(n,V9.error)),V(e,t)};U(d,e=>{V9.error&&!Y.authError&&!V9.formOpen&&e(f)});var p=I(d,2),m=e=>{var t=Cqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Fx()]),V(e,t)};U(p,e=>{V9.available&&!Y.authError&&e(m)});var h=I(p,2);cqe(h,{});var g=I(h,2);dqe(g,{});var _=I(g,2),v=e=>{var t=wqe(),n=P(t);{let e=A(()=>Rx());r3(n,{size:18,get label(){return R(e)}})}D(t),V(e,t)};U(_,e=>{V9.loading&&V9.keys.length===0&&e(v)});var y=I(_,2),b=e=>{var t=Tqe(),n=P(t),r=P(n);{let e=A(()=>Vx()),t=A(()=>Wx());z3(r,{get placeholder(){return R(e)},get label(){return R(t)},get value(){return V9.filter},set value(e){V9.filter=e}})}D(n);var i=I(n,2),a=P(i),o=P(a);wi(o);var s=I(o,2),c=P(s),l=I(c),u=e=>{var t=Dr();L(()=>H(t,`(${V9.inactiveCount??``})`)),V(e,t)};U(l,e=>{V9.inactiveCount>0&&e(u)}),D(s),D(a),D(i),D(t),L(e=>H(c,`${e??``} `),[()=>qx()]),Mi(o,()=>V9.showInactive,e=>V9.showInactive=e),V(e,t)};U(y,e=>{V9.keys.length>0&&V9.available&&e(b)});var x=I(y,2),S=e=>{yqe(e,{})};U(x,e=>{V9.visibleKeys.length>0&&V9.available&&e(S)});var C=I(x,2),w=e=>{var t=U9(),n=P(t);D(t),L((e,t)=>H(n,`${e??``}${t??``}`),[()=>Xx(),()=>V9.inactiveCount>0&&!V9.showInactive?` `+$x({count:V9.inactiveCount}):``]),V(e,t)};U(C,e=>{V9.keys.length>0&&V9.visibleKeys.length===0&&V9.available&&e(w)});var T=I(C,2),ee=e=>{var t=U9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>nS()]),V(e,t)};U(T,e=>{V9.keys.length===0&&!V9.loading&&!Y.authError&&!V9.error&&V9.available&&e(ee)}),D(n),L(e=>H(a,e),[()=>Ex()]),V(e,n),k()}xr([`click`]);var Oqe=B(``),kqe=B(`
                          `);function Aqe(e,t){O(t,!0);let n=$i.map(e=>({value:e,label:rDe(e)}));var r=Or(),i=F(r),a=e=>{var t=kqe(),r=P(t),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>n,e=>e.value,(e,t)=>{var n=Oqe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(a);var o;gi(a),D(t),L((e,t,n)=>{H(i,e),K(a,`aria-label`,t),o!==(o=n)&&(a.value=(a.__value=n)??``,hi(a,n))},[()=>aL(),()=>aL(),()=>J()]),z(`change`,a,e=>ca(e.currentTarget.value)),V(e,t)};U(i,e=>{n.length>1&&e(a)}),V(e,r),k()}xr([`change`]);var jqe=B(`

                          `),Mqe=B(``),Nqe=B(``),Pqe=B(`
                          `,1);function Fqe(e,t){O(t,!0);function n(){HX.saveOverride(),Y.refresh()}function r(){HX.clearOverride(),Y.refresh()}var i=Pqe(),a=F(i),o=P(a);{let e=e=>{var t=jqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Pu()]),V(e,t)},t=A(()=>Lu()),n=A(()=>Bu());s3(o,{copyId:`timezone-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}D(a);var s=I(a,2),c=P(s),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d),p=P(f,!0);D(f),f.value=f.__value=``,W(I(f),17,()=>HX.options,e=>e.value,(e,t)=>{var n=Mqe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(d),D(c),D(s);var m=I(s,2),h=P(m),g=e=>{var t=Nqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Yu()]),z(`click`,t,r),V(e,t)};U(h,e=>{HX.override&&e(g)}),D(m),L((e,t)=>{H(u,e),H(p,t)},[()=>Uu(),()=>Ku({timezone:HX.detectedTimeZoneLabel()})]),br(`focus`,d,()=>HX.ensureOptions()),z(`change`,d,n),_i(d,()=>HX.override,e=>HX.override=e),V(e,i),k()}xr([`change`,`click`]);var Iqe=B(``),Lqe=B(`

                          `,1);function Rqe(e,t){O(t,!0);let n=A(()=>Q.failoverSaving||Q.failoverGenerating||Q.failoverDraftSaving||!Q.failoverAvailable||!Q.failoverEnabled());var r=Lqe(),i=F(r),a=P(i),o=P(a),s=P(o,!0);D(o),D(a);var c=I(a,2),l=P(c),u=P(l);q(u,{get icon(){return vX},class:`form-action-icon`});var d=I(u,2),f=P(d,!0);D(d),D(l);var p=I(l,2),m=P(p);q(m,{get icon(){return gX},class:`form-action-icon`});var h=I(m,2),g=P(h,!0);D(h),D(p),D(c),D(i);var _=I(i,2),v=P(_),y=e=>{var t=Iqe(),n=P(t,!0);D(t),L(()=>H(n,Q.failoverError)),V(e,t)};U(v,e=>{Q.failoverError&&e(y)}),D(_),n5(I(_,2),{}),L((e,t,r)=>{H(s,e),l.disabled=R(n),H(f,t),p.disabled=R(n),H(g,r)},[()=>Qu(),()=>Q.failoverGenerating?td():id(),()=>sd()]),z(`click`,l,()=>Q.generateFailoverRules()),z(`click`,p,()=>Q.openFailoverResetDialog()),V(e,r),k()}xr([`click`]);function zqe(){return{daily_reset_hour:0,daily_reset_minute:0,weekly_reset_weekday:1,weekly_reset_hour:0,weekly_reset_minute:0,monthly_reset_day:1,monthly_reset_hour:0,monthly_reset_minute:0}}function W9(e,t){let n=t||{},r=(e,t)=>{if(e===``)return t;let n=Number(e);return Number.isFinite(n)&&Number.isInteger(n)?Math.trunc(n):t},i=(e,t)=>r(n[e],t),a=(t,n)=>e?r(e[t],n):n;return{daily_reset_hour:a(`daily_reset_hour`,i(`daily_reset_hour`,0)),daily_reset_minute:a(`daily_reset_minute`,i(`daily_reset_minute`,0)),weekly_reset_weekday:a(`weekly_reset_weekday`,i(`weekly_reset_weekday`,1)),weekly_reset_hour:a(`weekly_reset_hour`,i(`weekly_reset_hour`,0)),weekly_reset_minute:a(`weekly_reset_minute`,i(`weekly_reset_minute`,0)),monthly_reset_day:a(`monthly_reset_day`,i(`monthly_reset_day`,1)),monthly_reset_hour:a(`monthly_reset_hour`,i(`monthly_reset_hour`,0)),monthly_reset_minute:a(`monthly_reset_minute`,i(`monthly_reset_minute`,0))}}function Bqe(){return[{value:0,label:EN()},{value:1,label:kN()},{value:2,label:MN()},{value:3,label:FN()},{value:4,label:RN()},{value:5,label:VN()},{value:6,label:WN()}]}var Vqe=B(`

                          `),Hqe=B(``),Uqe=B(`

                          `),Wqe=B(``),Gqe=B(``),Kqe=B(`
                          `,1);function qqe(e,t){O(t,!0);let n=j(N(zqe())),r=j(!1),i=j(!1),a=j(``),o=j(!1),s=A(()=>XX.budgetsVisible());async function c(){if(await XX.ensureLoaded(),!XX.budgetsVisible()){M(a,``);return}M(r,!0),M(a,``);try{let e=await qX(`/admin/budgets/settings`,{label:`budget settings`});if(e.stale)return;if(!e.ok){M(a,_N(),!0);return}M(n,W9(e.data,R(n)),!0)}catch(e){console.error(`Failed to fetch budget settings:`,e),M(a,_N(),!0)}finally{M(r,!1)}}async function l(){if(!R(i)){M(i,!0);try{let e=await JX(`/admin/budgets/settings`,`PUT`,W9(R(n),R(n)),{label:`budget settings`});if(e.stale)return;if(!e.ok){oZ.error(bN());return}M(n,W9(e.data,R(n)),!0),M(a,``),oZ.success(CN())}catch(e){console.error(`Failed to save budget settings:`,e),oZ.error(bN())}finally{M(i,!1)}}}mn(()=>{Y.refreshTick,c()});var u=Or(),d=F(u),f=e=>{var t=Kqe(),s=F(t),c=P(s);{let e=e=>{var t=Vqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Td()]),V(e,t)},t=A(()=>yd()),n=A(()=>Sd());s3(c,{copyId:`budget-settings-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var u=I(c,2),d=P(u),f=P(d),p=P(f,!0);D(f);var m=I(f,2),h=P(m);{let e=e=>{var t=Hqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>XM()]),V(e,t)},t=A(()=>qM());s3(h,{copyId:`budget-monthly-day-help-copy`,get label(){return R(t)},external:!0,get open(){return R(o)},set open(e){M(o,e,!0)},title:e,$$slots:{title:!0}})}var g=I(h,2);wi(g),D(m);var _=I(m,2),v=P(_),y=P(v,!0);D(v);var b=I(v,2);wi(b),D(_);var x=I(_,2),S=P(x),C=P(S,!0);D(S);var w=I(S,2);wi(w),D(x);var T=I(x,2),ee=P(T),E=e=>{var t=Uqe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>$M()]),V(e,t)};U(ee,e=>{R(o)&&e(E)}),D(T),D(d);var te=I(d,2),ne=P(te),re=P(ne,!0);D(ne);var ie=I(ne,2),ae=P(ie),oe=P(ae,!0);D(ae);var se=I(ae,2);W(se,21,Bqe,e=>e.value,(e,t)=>{var n=Wqe(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(se),D(ie);var ce=I(ie,2),le=P(ce),ue=P(le,!0);D(le);var de=I(le,2);wi(de),D(ce);var fe=I(ce,2),pe=P(fe),me=P(pe,!0);D(pe);var he=I(pe,2);wi(he),D(fe),Ve(2),D(te);var ge=I(te,2),_e=P(ge),ve=P(_e,!0);D(_e);var ye=I(_e,4),be=P(ye),xe=P(be,!0);D(be);var Se=I(be,2);wi(Se),D(ye);var Ce=I(ye,2),we=P(Ce),Te=P(we,!0);D(we);var Ee=I(we,2);wi(Ee),D(Ce),Ve(2),D(ge),D(u);var De=I(u,2),Oe=P(De),ke=P(Oe);q(ke,{get icon(){return fX},class:`form-action-icon`});var Ae=I(ke,2),je=P(Ae,!0);D(Ae),D(Oe);var Me=I(Oe,2),Ne=e=>{{let t=A(()=>mN());r3(e,{size:16,get label(){return R(t)}})}};U(Me,e=>{R(r)&&e(Ne)}),D(De),D(s);var Pe=I(s,2),Fe=P(Pe),Ie=e=>{var t=Gqe(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)};U(Fe,e=>{R(a)&&e(Ie)}),D(Pe),L((e,t,n,a,o,s,c,l,u,d,f)=>{H(p,e),H(y,t),H(C,n),H(re,a),H(oe,o),H(ue,s),H(me,c),H(ve,l),H(xe,u),H(Te,d),Oe.disabled=R(i)||R(r),K(Oe,`aria-busy`,R(i)?`true`:`false`),H(je,f)},[()=>RM(),()=>aN(),()=>cN(),()=>VM(),()=>nN(),()=>aN(),()=>cN(),()=>WM(),()=>aN(),()=>cN(),()=>dN()]),ji(g,()=>R(n).monthly_reset_day,e=>R(n).monthly_reset_day=e),ji(b,()=>R(n).monthly_reset_hour,e=>R(n).monthly_reset_hour=e),ji(w,()=>R(n).monthly_reset_minute,e=>R(n).monthly_reset_minute=e),_i(se,()=>R(n).weekly_reset_weekday,e=>R(n).weekly_reset_weekday=e),ji(de,()=>R(n).weekly_reset_hour,e=>R(n).weekly_reset_hour=e),ji(he,()=>R(n).weekly_reset_minute,e=>R(n).weekly_reset_minute=e),ji(Se,()=>R(n).daily_reset_hour,e=>R(n).daily_reset_hour=e),ji(Ee,()=>R(n).daily_reset_minute,e=>R(n).daily_reset_minute=e),z(`click`,Oe,l),V(e,t)};U(d,e=>{R(s)&&e(f)}),V(e,u),k()}xr([`click`]);var Jqe=B(`

                          `);function Yqe(e,t){O(t,!0);var n=Or(),r=F(n),i=e=>{var t=Jqe(),n=P(t),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a),D(n);var s=I(n,2),c=P(s),l=P(c);q(l,{get icon(){return dX},class:`form-action-icon`});var u=I(l,2),d=P(u,!0);D(u),D(c),D(s),D(t),L((e,t,n)=>{H(i,e),H(o,t),c.disabled=b6.resetAllLoading,H(d,n)},[()=>ud(),()=>pd(),()=>gd()]),z(`click`,c,()=>b6.openResetDialog()),V(e,t)},a=A(()=>XX.budgetsVisible());U(r,e=>{R(a)&&e(i)}),V(e,n),k()}xr([`click`]);function Xqe(){return{header:``,prefix:``,do_not_pass:!1,delimiter:``,managed:!1}}function G9(e){return(e&&Array.isArray(e.headers)?e.headers:[]).map(e=>({header:typeof e.header==`string`?e.header:``,prefix:typeof e.prefix==`string`?e.prefix:``,do_not_pass:e.do_not_pass===!0,delimiter:typeof e.delimiter==`string`&&e.delimiter!==`,`?e.delimiter:``,managed:e.managed===!0}))}function Zqe(e){return{headers:(Array.isArray(e)?e:[]).filter(e=>!e.managed&&e.header.trim()!==``).map(e=>({header:e.header.trim(),prefix:e.prefix,do_not_pass:e.do_not_pass,delimiter:e.delimiter}))}}function Qqe(e){return e&&e.error&&e.error.message?e.error.message:``}var $qe=B(`

                          `),eJe=B(`config`),tJe=B(``),nJe=B(`
                          `),rJe=B(`

                          `),iJe=B(``),aJe=B(`
                          `,1);function oJe(e,t){O(t,!0);let n=j(N([])),r=j(!0),i=j(!1),a=j(!1),o=j(``);function s(){R(n).push(Xqe())}function c(e){let t=R(n)[e];!t||t.managed||R(n).splice(e,1)}async function l(){M(i,!0),M(o,``);try{let e=await qX(`/admin/tagging/settings`,{label:`tagging settings`});if(e.stale)return;if(!e.ok){M(o,FP(),!0);return}M(n,G9(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0)}catch(e){console.error(`Failed to fetch tagging settings:`,e),M(o,FP(),!0)}finally{M(i,!1)}}async function u(){if(!(R(a)||!R(r))){M(a,!0);try{let e=await JX(`/admin/tagging/settings`,`PUT`,Zqe(R(n)),{label:`tagging settings`});if(e.stale)return;if(!e.ok){oZ.error(e.status!==401&&Qqe(e.data)||RP());return}M(n,G9(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0),M(o,``),oZ.success(VP())}catch(e){console.error(`Failed to save tagging settings:`,e),oZ.error(RP())}finally{M(a,!1)}}}mn(()=>{Y.refreshTick,l()});var d=aJe(),f=F(d),p=P(f);{let e=e=>{var t=$qe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>qN()]),V(e,t)},t=A(()=>XN()),n=A(()=>$N());s3(p,{copyId:`tagging-settings-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var m=I(p,2),h=P(m);W(h,17,()=>R(n),Ir,(e,t,n)=>{var i=nJe(),a=P(i),o=P(a);K(o,`for`,`tagging-header-`+n);var s=P(o,!0);D(o);var l=I(o,2);wi(l),K(l,`id`,`tagging-header-`+n),D(a);var u=I(a,2),d=P(u);K(d,`for`,`tagging-prefix-`+n);var f=P(d,!0);D(d);var p=I(d,2);wi(p),K(p,`id`,`tagging-prefix-`+n),D(u);var m=I(u,2),h=P(m);K(h,`for`,`tagging-delimiter-`+n);var g=P(h,!0);D(h);var _=I(h,2);wi(_),K(_,`id`,`tagging-delimiter-`+n),D(m);var v=I(m,2),y=P(v);wi(y);var b=I(y,2),x=P(b,!0);D(b),D(v);var S=I(v,2),C=P(S),w=e=>{var t=eJe();L(e=>K(t,`title`,e),[()=>mP()]),V(e,t)},T=e=>{var i=tJe(),a=P(i,!0);D(i),L((e,t)=>{i.disabled=!R(r),K(i,`aria-label`,e),H(a,t)},[()=>bP({header:R(t).header||n+1}),()=>_P()]),z(`click`,i,()=>c(n)),V(e,i)};U(C,e=>{R(t).managed?e(w):e(T,-1)}),D(S),D(i),L((e,n,i,a)=>{H(s,e),l.disabled=R(t).managed||!R(r),H(f,n),p.disabled=R(t).managed||!R(r),H(g,i),_.disabled=R(t).managed||!R(r),y.disabled=R(t).managed||!R(r),H(x,a)},[()=>nP(),()=>aP(),()=>cP(),()=>dP()]),ji(l,()=>R(t).header,e=>R(t).header=e),ji(p,()=>R(t).prefix,e=>R(t).prefix=e),ji(_,()=>R(t).delimiter,e=>R(t).delimiter=e),Mi(y,()=>R(t).do_not_pass,e=>R(t).do_not_pass=e),V(e,i)});var g=I(h,2),_=e=>{{let t=A(()=>CP());r3(e,{size:16,get label(){return R(t)}})}};U(g,e=>{R(i)&&e(_)});var v=I(g,2),y=e=>{var t=rJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>EP()]),V(e,t)};U(v,e=>{!R(i)&&R(n).length===0&&e(y)}),D(m);var b=I(m,2),x=P(b),S=P(x);q(S,{get icon(){return lX},class:`form-action-icon`});var C=I(S,2),w=P(C,!0);D(C),D(x);var T=I(x,2),ee=P(T);q(ee,{get icon(){return fX},class:`form-action-icon`});var E=I(ee,2),te=P(E,!0);D(E),D(T),D(b),D(f);var ne=I(f,2),re=P(ne),ie=e=>{var t=iJe(),n=P(t,!0);D(t),L(()=>H(n,R(o))),V(e,t)};U(re,e=>{R(o)&&e(ie)}),D(ne),L((e,t)=>{x.disabled=!R(r)||R(a)||R(i),H(w,e),T.disabled=!R(r)||R(a)||R(i),K(T,`aria-busy`,R(a)?`true`:`false`),H(te,t)},[()=>kP(),()=>MP()]),z(`click`,x,s),z(`click`,T,u),V(e,d),k()}xr([`click`]);function sJe(e){let t=e||{};if(t.selectedPreset)return{days:parseInt(t.selectedPreset,10)||30};let n=t.customStartDate?hZ(t.customStartDate):``,r=t.customEndDate||t.today||null;return{start_date:n,end_date:r?hZ(r):``}}function cJe(e,t,n,r){return{...sJe(e),user_path:String(t||``).trim(),selector:String(n||``).trim(),confirmation:r}}function lJe(e){let t=Number(e&&e.matched||0),n=Number(e&&e.recalculated||0),r=Number(e&&e.without_pricing||0),i=CI({matched:t,recalculated:n});return r>0&&(i+=` `+EI({count:r})),i}var uJe=B(`

                          `),dJe=B(`
                          `);function fJe(e,t){O(t,!0);let n=j(``),r=j(``),i=j(!1),a=A(()=>XX.booleanFlag(`USAGE_PRICING_RECALCULATION_ENABLED`,!1));function o(){if(!R(a)){oZ.error(dI());return}R(i)||eZ.open({title:cI(),titleId:`pricingRecalculateDialogTitle`,inputId:`pricing-recalculate-confirmation`,requiredText:mI(),confirmLabel:cI(),icon:YY,dialogClass:`pricing-recalculate-dialog`,message:_I(),onConfirm:()=>s()})}async function s(){if(!R(a)){oZ.error(dI());return}if(!R(i)){M(i,!0);try{let e=await JX(`/admin/usage/recalculate-pricing`,`POST`,cJe({selectedPreset:OZ.selectedPreset,customStartDate:OZ.customStartDate,customEndDate:OZ.customEndDate,today:HX.todayDate()},R(n),R(r),mI()),{label:`pricing recalculation`});if(e.stale)return;if(!e.ok){eZ.error=bI();return}eZ.close(),oZ.success(lJe(e.data)),NZ.fetchUsage()}catch(e){console.error(`Failed to recalculate pricing:`,e),eZ.error=bI()}finally{M(i,!1)}}}var c=Or(),l=F(c),u=e=>{var t=dJe(),s=P(t);{let e=e=>{var t=uJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>VF()]),V(e,t)},t=A(()=>WF()),n=A(()=>qF());s3(s,{copyId:`pricing-recalculate-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var c=I(s,2),l=P(c),u=P(l),d=P(u,!0);D(u);var f=I(u,2);FZ(P(f),{}),D(f),D(l);var p=I(l,2),m=P(p),h=P(m,!0);D(m);var g=I(m,2);wi(g),D(p);var _=I(p,2),v=P(_),y=P(v,!0);D(v);var b=I(v,2);wi(b),D(_),D(c);var x=I(c,2),S=P(x),C=P(S);q(C,{get icon(){return YY},class:`form-action-icon`});var w=I(C,2),T=P(w,!0);D(w),D(S),D(x),D(t),L((e,t,n,r,o)=>{H(d,e),H(h,t),H(y,n),K(b,`placeholder`,r),S.disabled=R(i)||!R(a),K(S,`aria-busy`,R(i)?`true`:`false`),H(T,o)},[()=>XF(),()=>$F(),()=>nI(),()=>aI(),()=>cI()]),ji(g,()=>R(n),e=>M(n,e)),ji(b,()=>R(r),e=>M(r,e)),z(`click`,S,o),V(e,t)};U(l,e=>{R(a)&&e(u)}),V(e,c),k()}xr([`click`]);function K9(e){return String(e&&e.status||`ok`).toLowerCase()}function q9(e){if(!e||typeof e!=`object`)return nF();let t=Number(e.model_count||0),n=Number(e.provider_count||0),r=K9(e);return mF({status:r===`ok`?aF():r===`partial`?cF():dF(),models:_F({count:t}),providers:bF({count:n})})}function pJe(e){return!!e&&K9(e)===`ok`}function J9(e){let t=e&&e.steps;return Array.isArray(t)?t:[]}function mJe(e){let t=String(e&&e.name||``).replace(/_/g,` `),n=String(e&&e.status||``).trim(),r=String(e&&(e.error||e.message)||``).trim();return t?r?t+`: `+n+` - `+r:t+`: `+n:r||n||``}var hJe=B(`

                          `),gJe=B(`
                        • `),_Je=B(`
                            `),vJe=B(`
                            `,1);function yJe(e,t){O(t,!0);let n=j(!1),r=j(null);async function i(){if(!R(n)){M(n,!0),M(r,null);try{let e=await JX(`/admin/runtime/refresh`,`POST`,void 0,{label:`runtime refresh`});if(e.stale)return;if(!e.ok){oZ.error(dF());return}M(r,e.data&&typeof e.data==`object`?e.data:null,!0),pJe(R(r))?oZ.success(q9(R(r))):oZ.error(q9(R(r))),Y.refresh()}catch(e){console.error(`Failed to refresh runtime:`,e),oZ.error(dF())}finally{M(n,!1)}}}var a=vJe(),o=F(a),s=P(o);{let e=e=>{var t=hJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>WP()]),V(e,t)},t=A(()=>qP()),n=A(()=>XP());s3(s,{copyId:`runtime-refresh-help-copy`,get label(){return R(t)},get text(){return R(n)},title:e,$$slots:{title:!0}})}var c=I(s,2),l=P(c);let u;var d=P(l);q(d,{get icon(){return uX},class:`settings-refresh-icon`});var f=I(d,2),p=P(f,!0);D(f),D(l),D(c),D(o);var m=I(o,2),h=P(m),g=e=>{var t=_Je();W(t,21,()=>J9(R(r)),e=>e.name,(e,t)=>{var n=gJe(),r=P(n,!0);D(n),L(e=>{G(n,1,`runtime-refresh-step is-${R(t).status??``}`,`svelte-yeq2mp`),H(r,e)},[()=>mJe(R(t))]),V(e,n)}),D(t),V(e,t)},_=A(()=>J9(R(r)).length>0);U(h,e=>{R(_)&&e(g)}),D(m),L(e=>{u=G(l,1,`btn btn-primary btn-with-icon settings-refresh-btn`,null,u,{"is-refreshing":R(n)}),l.disabled=R(n),K(l,`aria-busy`,R(n)?`true`:`false`),H(p,e)},[()=>$P()]),z(`click`,l,i),V(e,a),k()}xr([`click`]);var bJe=B(``),xJe=B(`

                            `),SJe=B(`

                            `),CJe=B(``),wJe=B(`
                            `),TJe=B(`

                            `);function EJe(e,t){O(t,!0);let n=j(N([])),r=j(!1),i=j(``),a=j(``);async function o(){M(r,!0),M(a,``);try{let e=await qX(`/admin/runtime/settings`,{label:`runtime settings`});if(e.stale)return;if(!e.ok){M(a,EF(),!0);return}M(n,Array.isArray(e.data?.settings)?e.data.settings:[],!0)}catch(e){console.error(`Failed to load runtime settings:`,e),M(a,EF(),!0)}finally{M(r,!1)}}async function s(e,t,r){if(!(e.locked||R(i))){M(i,e.key,!0);try{let i=await JX(`/admin/runtime/settings/${encodeURIComponent(e.key)}`,`PUT`,{value:t},{label:`save ${e.label}`});if(i.stale){r.value=e.value;return}if(!i.ok){r.value=e.value,oZ.error(kF({setting:e.label}));return}M(n,R(n).map(t=>t.key===e.key?i.data:t),!0),oZ.success(MF({setting:e.label}))}catch(t){r.value=e.value,console.error(`Failed to save runtime setting:`,t),oZ.error(kF({setting:e.label}))}finally{M(i,``)}}}mn(()=>{Y.refreshTick,o()});var c=Or(),l=F(c),u=e=>{var t=TJe(),o=P(t),c=P(o),l=P(c,!0);D(c);var u=I(c,2),d=e=>{var t=bJe(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)};U(u,e=>{R(a)&&e(d)}),D(o);var f=I(o,2);W(f,21,()=>R(n),e=>e.key,(e,t)=>{var n=wJe(),r=P(n),a=P(r),o=P(a,!0);D(a);var c=I(a,2),l=e=>{var n=xJe(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(c,e=>{R(t).description&&e(l)});var u=I(c,2),d=e=>{var n=SJe(),r=P(n,!0);D(n),L(e=>H(r,e),[()=>FF({source:R(t).managed_by||RF()})]),V(e,n)};U(u,e=>{R(t).locked&&e(d)}),D(r);var f=I(r,2);W(f,21,()=>R(t).options||[],e=>e.value,(e,t)=>{var n=CJe(),r=P(n,!0);D(n);var i={};L(()=>{K(n,`title`,R(t).description||``),H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(f);var p;gi(f),D(n),L(()=>{K(a,`for`,`runtime-setting-${R(t).key}`),H(o,R(t).label),K(f,`id`,`runtime-setting-${R(t).key}`),f.disabled=R(t).locked||R(i)!==``,p!==(p=R(t).value)&&(f.value=(f.__value=R(t).value)??``,hi(f,R(t).value))}),z(`change`,f,e=>s(R(t),e.currentTarget.value,e.currentTarget)),V(e,n)}),D(f),D(t),L(e=>{H(l,e),K(f,`aria-busy`,R(r)?`true`:`false`)},[()=>CF()]),V(e,t)};U(l,e=>{(R(n).length>0||R(a))&&e(u)}),V(e,c),k()}xr([`change`]);var DJe=B(`
                            `);function OJe(e,t){O(t,!0),mn(()=>{Y.refreshTick,CX.page===`settings`&&(HX.ensureOptions(),XX.ensureLoaded())});var n=DJe(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a),D(i),D(r);var s=I(r,2),c=P(s);Fqe(c,{});var l=I(c,2);Aqe(l,{});var u=I(l,2);Rqe(u,{});var d=I(u,2);qqe(d,{});var f=I(d,2);Yqe(f,{});var p=I(f,2);oJe(p,{});var m=I(p,2);EJe(m,{});var h=I(m,2);fJe(h,{}),yJe(I(h,2),{}),D(s);var g=I(s,2),_=P(g,!0);D(g),D(n),L((e,t)=>{H(o,e),H(_,t)},[()=>qoe(),()=>lEe()]),V(e,n),k()}var Y9=B(`
                            `),kJe=B(`
                             
                            `),AJe=B(`
                             
                            `),jJe=B(`
                             
                            `),MJe=B(`
                            `),NJe=B(`
                            `,1),PJe=B(`
                            `);function FJe(e,t){O(t,!0);let n=zi(t,`showPromptCache`,3,!0),r=U3({logPrefix:`Failed to copy interaction message:`}),i=A(()=>t.msg.role===`function_call`||t.msg.role===`function_result`);function a(e){return(Math.max(0,Math.min(1,Number(e||0)))*100).toFixed(1)+`%`}function o(e){let t=Math.max(0,Math.min(1,Number(e||0)));return t>0?spe({percent:Math.round(t*100)}):void 0}function s(e){return e.role===`function_call`?(e.toolCalls||[]).map(e=>e.name+`()`).join(`, `):(e.functionName?e.functionName+`: `:``)+e.text}var c=PJe();let l;var u=P(c),d=e=>{var r=kJe(),i=P(r),a=P(i),c=P(a,!0);D(a);var l=I(a,2),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d),D(i);var p=I(i,2),m=e=>{var n=Y9(),r=P(n);D(n),L(e=>H(r,`${e??``}: ${t.msg.functionCallID??``}`),[()=>Uo()]),V(e,n)};U(p,e=>{t.msg.functionCallID&&e(m)});var h=I(p,2),g=e=>{var n=Or();W(F(n),17,()=>t.msg.toolCalls,Ir,(e,n)=>{var r=Or(),i=F(r),a=e=>{var r=Y9(),i=P(r);D(r),L(e=>H(i,`${e??``}: ${R(n).id??``}`),[()=>t.msg.toolCalls.length>1?fpe({name:R(n).name}):Uo()]),V(e,r)};U(i,e=>{R(n).id&&e(a)}),V(e,r)}),V(e,n)};U(h,e=>{t.msg.role===`function_call`&&t.msg.toolCalls&&e(g)});var _=I(h,2),v=P(_,!0);D(_),D(r),L((e,n,i,a)=>{K(r,`title`,e),H(c,t.msg.roleLabel),H(u,n),H(f,i),H(v,a)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>s(t.msg),()=>HX.formatTimestamp(t.msg.timestamp),()=>J7(t.msg)]),V(e,r)},f=e=>{var r=NJe(),i=F(r),a=P(i),s=P(a,!0);D(a);var c=I(a,2),l=P(c,!0);D(c),D(i);var u=I(i,2),d=e=>{var r=AJe(),i=P(r,!0);D(r),L(e=>{K(r,`title`,e),H(i,t.msg.text)},[()=>n()?o(t.msg.promptCacheRatio):void 0]),V(e,r)};U(u,e=>{t.msg.text&&e(d)});var f=I(u,2),p=e=>{var n=MJe();W(n,23,()=>t.msg.toolCalls,(e,t)=>e.name+`-`+t,(e,t)=>{var n=jJe(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(r);var c=I(r,2),l=e=>{var n=Y9(),r=P(n);D(n),L(e=>H(r,`${e??``}: ${R(t).id??``}`),[()=>Uo()]),V(e,n)};U(c,e=>{R(t).id&&e(l)});var u=I(c,2),d=P(u,!0);D(u),D(n),L((e,n)=>{H(a,R(t).name+`()`),H(s,e),H(d,n)},[()=>Y7(R(t))||Wo(),()=>Y7(R(t))||Wo()]),V(e,n)}),D(n),V(e,n)};U(f,e=>{t.msg.toolCalls&&e(p)}),L((e,n)=>{K(i,`title`,e),H(s,t.msg.roleLabel),H(l,n)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>HX.formatTimestamp(t.msg.timestamp)]),V(e,r)};U(u,e=>{R(i)?e(d):e(f,-1)});var p=I(u,2);let m;var h=P(p);{let e=A(()=>r.copied?$Y:tX);q(h,{get icon(){return R(e)},width:`14`,height:`14`})}D(p),D(c),L((e,n,a)=>{G(c,1,li([R(i)?`chat-function-note`:`chat-message`,t.msg.roleClass,{"is-anchor":t.msg.isAnchor,"is-after-anchor":t.msg.isAfterAnchor}]),`svelte-12s99s5`),K(c,`data-conversation-anchor`,t.msg.isAnchor?`true`:void 0),K(c,`data-entry-id`,t.msg.entryID),l=mi(c,``,l,e),m=G(p,1,`chat-message-copy svelte-12s99s5`,null,m,{"is-copied":r.copied}),K(p,`aria-label`,n),K(p,`title`,a)},[()=>({"--prompt-cache-fill":a(t.msg.promptCacheRatio),"--prompt-cache-visibility":n()&&t.msg.promptCacheRatio>0?`1`:`0`}),()=>r.copied?npe():Ho(),()=>r.copied?_pe():Ho()]),z(`click`,p,e=>{e.stopPropagation(),r.copy($Ue(t.msg))}),V(e,c),k()}xr([`click`]);function X9(e,t=0){let n=Math.max(0,Q9(e)-Math.max(0,Q9(t))),r=Math.min(320,Math.max(180,Math.floor(n*.58))),i=Math.min(360,Math.max(128,Math.floor(n*.35)));return{min:r,max:Math.max(r,n-i)}}function Z9(e,t,n=0){let r=X9(t,n),i=Q9(e)||520;return Math.min(r.max,Math.max(r.min,Math.round(i)))}function IJe(e,t,n=0){return Z9(Q9(t)-Q9(e),t,n)}function LJe(e,t,n,r){if(!Array.isArray(e)||e.length===0)return{index:-1,align:`start`};let i=Q9(t),a=0;e.forEach((e,t)=>{Q9(e)<=i+1&&(a=t)});let o=Number(r)<0?-1:1,s=Math.min(e.length-1,Math.max(0,a+o)),c=e.length-1,l=Q9(e[c])0&&s===c&&l?`end`:`start`}}function Q9(e){let t=Number(e);return Number.isFinite(t)?t:0}var RJe=B(`
                            `),zJe=B(`
                            `),$9=B(`

                            `),BJe=B(``),VJe=B(`
                            `,1),HJe=B(`

                            `),UJe=B(`
                            `),WJe=B(``),GJe=B(``),KJe=B(``);function qJe(e,t){O(t,!0);let n=X7,r=Number(Gi(`gomodel_interactions_panel_width`)),i=`gomodel_interactions_prompt_cache_fill`,a=Number.isFinite(r)&&r>0?r:520,o=j(N(a)),s=j(320),c=j(760),l=j(!1),u=j(!1),d=j(Gi(i,`true`)!==`false`),f=null;function p(e,{fullscreen:t,revealWithoutSlide:n=!1}){let r=q5(180);return t?rZ(e,{x:R(o),duration:r,easing:aZ}):n?{duration:0}:iZ(e,{axis:`x`,duration:r,easing:aZ})}async function m(e){if(e===R(l))return;let t=R(l)&&!e;M(u,t,!0),M(l,e,!0),t&&(await rr(),M(u,!1))}function h(){M(d,!R(d)),Ki(i,R(d))}function g(){return(document.querySelector(`.sidebar`)?.getBoundingClientRect().width||0)+(document.querySelector(`.sidebar-toggle`)?.getBoundingClientRect().width||0)}function _(){let e=g(),t=X9(window.innerWidth,e);M(s,t.min,!0),M(c,t.max,!0),M(o,Z9(a,window.innerWidth,e),!0)}function v(e){M(o,IJe(e,window.innerWidth,g()),!0),a=R(o)}function y(e){e.button===0&&(e.preventDefault(),f=e.pointerId,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`conversation-panel-resizing`),v(e.clientX))}function b(e){e.pointerId===f&&v(e.clientX)}function x(e){f===null||e.pointerId!==void 0&&e.pointerId!==f||(f=null,document.body.classList.remove(`conversation-panel-resizing`),Ki(`gomodel_interactions_panel_width`,a))}function S(e){e.key!==`ArrowLeft`&&e.key!==`ArrowRight`||(e.preventDefault(),a=R(o)+(e.key===`ArrowLeft`?24:-24),_(),a=R(o),Ki(`gomodel_interactions_panel_width`,a))}function C(e){let t=document.getElementById(`interactions-drawer-content`),r=n.conversationThreadEl;if(!t||!r)return;let i=[...r.querySelectorAll(`[data-conversation-message="true"]`)],a=t.getBoundingClientRect(),o=a.top+14,s=LJe(i.map(e=>e.getBoundingClientRect().top),o,a.bottom,e),c=i[s.index];if(!c)return;let l=s.align===`end`?t.scrollHeight:t.scrollTop+c.getBoundingClientRect().top-a.top-14;t.scrollTo({top:l,behavior:q5(1)>0?`smooth`:`auto`})}function w(){return[document.querySelector(`.sidebar`),document.querySelector(`.sidebar-toggle`),document.getElementById(`dashboard-content`)].filter(Boolean)}mn(()=>{if(!n.conversationOpen)return;_();let e=document.querySelector(`.sidebar`),t=new ResizeObserver(_);e&&t.observe(e);let r=e=>{e.key===`Escape`&&!Zi.anyOpen&&(R(l)?m(!1):n.closeConversation())};return window.addEventListener(`keydown`,r),window.addEventListener(`resize`,_),()=>{x({}),t.disconnect(),window.removeEventListener(`keydown`,r),window.removeEventListener(`resize`,_)}}),mn(()=>{n.conversationOpen||M(l,!1)}),mn(()=>{if(!R(l))return;let e=w().map(e=>({element:e,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}));return e.forEach(({element:e})=>{e.inert=!0,e.setAttribute(`aria-hidden`,`true`)}),()=>{e.forEach(({element:e,inert:t,ariaHidden:n})=>{e.inert=t,n===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,n)})}}),mn(()=>{CX.page!==`audit-logs`&&n.conversationOpen&&n.closeConversation()});var T=Or(),ee=F(T),E=e=>{var t=Or();W(F(t),16,()=>[R(l)],e=>e,(e,t)=>{var r=KJe();let i,a;var l=P(r),f=I(l,2),g=P(f),_=P(g),v=P(_,!0);D(_);var w=I(_,2),T=P(w);let ee;D(w),D(g);var E=I(g,2),te=P(E),ne=P(te);{let e=A(()=>t?VTe:sX);q(ne,{get icon(){return R(e)},class:`table-icon-svg`})}D(te);var re=I(te,2);{let e=A(()=>Sde());ZX(re,{get label(){return R(e)},onclick:()=>n.closeConversation(),get el(){return n.conversationCloseBtnEl},set el(e){n.conversationCloseBtnEl=e}})}D(E),D(f);var ie=I(f,2),ae=P(ie),oe=e=>{var t=RJe(),n=P(t);q(P(n),{get icon(){return ETe},width:`14`,height:`14`}),D(n);var r=I(n,2);q(P(r),{get icon(){return CTe},width:`14`,height:`14`}),D(r),D(t),L((e,i,a,o,s)=>{K(t,`aria-label`,e),K(n,`aria-label`,i),K(n,`title`,a),K(r,`aria-label`,o),K(r,`title`,s)},[()=>Tde(),()=>Bo(),()=>Bo(),()=>Vo(),()=>Vo()]),z(`click`,n,()=>C(-1)),z(`click`,r,()=>C(1)),V(e,t)};U(ae,e=>{n.conversationMessages.length>1&&e(oe)});var se=I(ae,2),ce=e=>{var t=zJe(),r=P(t,!0);D(t),L(()=>H(r,n.conversationError)),V(e,t)};U(se,e=>{n.conversationError&&e(ce)});var le=I(se,2),ue=e=>{var t=$9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Mde()]),V(e,t)};U(le,e=>{n.conversationLoading&&e(ue)});var de=I(le,2),fe=e=>{var t=$9(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Fde()]),V(e,t)},pe=A(()=>!n.conversationLoading&&!n.followUpSending&&!n.conversationError&&n.conversationMessages.length===0&&!n.conversationLiveWaiting());U(de,e=>{R(pe)&&e(fe)});var me=I(de,2),he=e=>{var t=VJe(),r=F(t),i=e=>{var t=BJe(),n=P(t);let r;var i=I(n,2),a=P(i),o=I(a),s=P(o,!0);D(o),D(i),D(t),L((e,i,o)=>{K(t,`aria-checked`,R(d)),K(t,`title`,e),r=G(n,1,`conversation-cache-switch svelte-ssrzja`,null,r,{"is-active":R(d)}),H(a,`${i??``} `),H(s,o)},[()=>R(d)?Rde():Vde(),()=>Wde(),()=>qde()]),z(`click`,t,h),V(e,t)},a=A(()=>n.conversationMessages.some(e=>Number(e.promptCacheRatio||0)>0));U(r,e=>{R(a)&&e(i)});var o=I(r,2);W(o,21,()=>n.conversationMessages,e=>e.uid,(e,t)=>{FJe(e,{get msg(){return R(t)},get showPromptCache(){return R(d)}})}),D(o),Ii(o,e=>n.conversationThreadEl=e,()=>n?.conversationThreadEl),V(e,t)};U(me,e=>{n.conversationMessages.length>0&&e(he)});var ge=I(me,2),_e=e=>{var t=HJe(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Xde()]),V(e,t)};U(ge,e=>{n.conversationTruncated&&e(_e)});var ve=I(ge,2),ye=e=>{var t=UJe(),r=I(P(t),2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>n.conversationLiveStatusText()]),V(e,t)},be=A(()=>n.conversationLiveWaiting());U(ve,e=>{R(be)&&e(ye)}),D(ie);var xe=I(ie,2),Se=e=>{var t=GJe(),r=P(t),i=P(r);at(i);var a=I(i,2),o=e=>{var t=WJe(),r=P(t,!0);D(t),L(()=>H(r,n.followUpError)),V(e,t)};U(a,e=>{n.followUpError&&e(o)});var s=I(a,2),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u),D(s),D(r),D(t),L((e,t,n,r,a,o)=>{K(i,`aria-label`,e),K(i,`placeholder`,t),i.disabled=n,H(l,r),u.disabled=a,H(d,o)},[()=>$de(),()=>nfe(),()=>n.followUpSending||n.conversationLiveWaiting(),()=>n.selectedConversationEntry()?.path||``,()=>!n.canSendFollowUp(),()=>n.followUpSending?cse():ase()]),br(`submit`,r,e=>{e.preventDefault(),n.sendFollowUp()}),ji(i,()=>n.followUpText,e=>n.followUpText=e),V(e,t)},Ce=A(()=>n.conversationAnchorID&&n.followUpKind());U(xe,e=>{R(Ce)&&e(Se)}),D(r),Ii(r,e=>n.conversationDialogEl=e,()=>n?.conversationDialogEl),L((e,u,d,f,p,m)=>{i=G(r,1,`conversation-drawer svelte-ssrzja`,null,i,{"conversation-drawer-fullscreen":t}),K(r,`role`,t?`dialog`:void 0),K(r,`aria-modal`,t?`true`:void 0),a=mi(r,``,a,{"--conversation-panel-width":R(o)+`px`}),K(l,`aria-label`,e),K(l,`aria-valuemin`,R(s)),K(l,`aria-valuemax`,R(c)),K(l,`aria-valuenow`,R(o)),H(v,u),K(w,`aria-label`,d),K(w,`title`,f),ee=G(T,1,`live-dot`,null,ee,{"is-streaming":n.conversationFollowLatest}),K(te,`aria-label`,p),K(te,`title`,m),K(te,`aria-pressed`,t)},[()=>Kue(),()=>Yue(),()=>n.conversationFollowLatest?Que():tde(),()=>n.conversationFollowLatest?ide():sde(),()=>t?ude():pde(),()=>t?gde():yde()]),z(`pointerdown`,l,y),z(`pointermove`,l,b),z(`pointerup`,l,x),br(`pointercancel`,l,x),br(`lostpointercapture`,l,x),z(`keydown`,l,S),z(`click`,te,()=>m(!t)),ai(7,r,()=>p,()=>({fullscreen:t,revealWithoutSlide:!t&&R(u)})),V(e,r)}),V(e,t)};U(ee,e=>{n.conversationOpen&&e(E)}),V(e,T),k()}xr([`pointerdown`,`pointermove`,`pointerup`,`keydown`,`click`]);var JJe=B(`
                            `,1);function YJe(e,t){O(t,!0);let n={overview:l3,usage:PIe,budgets:jLe,"rate-limits":mRe,models:FBe,workflows:oHe,"audit-logs":JWe,guardrails:EGe,"mcp-servers":nKe,"providers-config":JKe,"auth-keys":Dqe,settings:OJe};nDe(),HX.init(),OZ.init(),Y.init(),Yi.init(),Xi.init(),CX.init(),mn(()=>{Y.refreshTick,XX.fetch(),kZ.fetchModels(),kZ.fetchCategories()}),mn(()=>{document.body.classList.toggle(`dashboard-modal-open`,Zi.anyOpen)});let r=A(()=>n[CX.page]||l3);var i=JJe(),a=F(i);EEe(a,{});var o=I(a,2);let s;var c=P(o);JEe(c,{}),qr(I(c,2),()=>R(r),(e,t)=>{t(e,{})}),D(o);var l=I(o,2);qJe(l,{});var u=I(l,2);PEe(u,{});var d=I(u,2);REe(d,{}),KEe(I(d,2),{}),L(()=>s=G(o,1,`content`,null,s,{"interactions-open":X7.conversationOpen})),V(e,i),k()}jr(YJe,{target:document.getElementById(`app`)}); \ No newline at end of file diff --git a/internal/admin/dashboard/static/dist/assets/index-BvA7IwHw.css b/internal/admin/dashboard/static/dist/assets/index-ELPJycWb.css similarity index 53% rename from internal/admin/dashboard/static/dist/assets/index-BvA7IwHw.css rename to internal/admin/dashboard/static/dist/assets/index-ELPJycWb.css index bb733fbb5..a8b941d15 100644 --- a/internal/admin/dashboard/static/dist/assets/index-BvA7IwHw.css +++ b/internal/admin/dashboard/static/dist/assets/index-ELPJycWb.css @@ -1 +1 @@ -:root{--bg:#111110;--bg-surface:#1e1d1c;--bg-surface-hover:#2a2420;--border:#2a2826;--text:#e8e0d6;--text-muted:#9a918a;--accent:#b8956e;--accent-hover:#d4b896;--success:#34d399;--info:#3b82f6;--warning:#f59e0b;--danger:#ef4444;--prompt-cache-color:color-mix(in srgb, var(--info) 72%, #fff);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 24%, var(--bg-surface));--cache-meter-uncached:var(--token-input);--cache-meter-local:var(--token-local);--cache-meter-prompt:var(--token-prompt);--token-input:#c0824a;--token-output:#ddb27a;--token-prompt:color-mix(in srgb, var(--info) 60%, transparent);--token-local:color-mix(in srgb, var(--info) 20%, transparent);--sidebar-width:240px;--radius:8px;--chart-grid:#2a2826;--chart-text:#9a918a;--chart-day-marker:var(--text);--chart-tooltip-bg:#1e1d1c;--chart-tooltip-border:#2a2826;--chart-tooltip-text:#e8e0d6;--cal-level-0:#161b22;--cal-level-1:color-mix(in srgb, var(--info) 15%, var(--bg-surface));--cal-level-2:color-mix(in srgb, var(--info) 25%, var(--bg-surface));--cal-level-3:color-mix(in srgb, var(--info) 36%, var(--bg-surface));--cal-level-4:color-mix(in srgb, var(--info) 48%, var(--bg-surface));--cal-level-5:color-mix(in srgb, var(--info) 60%, var(--bg-surface));--cal-level-6:color-mix(in srgb, var(--info) 73%, var(--bg-surface));--cal-level-7:color-mix(in srgb, var(--info) 87%, var(--bg-surface));--cal-level-8:var(--info);--cal-level-9:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-10:color-mix(in srgb, var(--info) 62%, #fff);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface-hover) 86%, #fff 14%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface-hover) 72%, #fff 28%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}body.dashboard-modal-open{overflow:hidden}.app{height:100vh;min-height:0;display:flex;overflow:hidden}.badge{background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.auth-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:min(440px,100%);padding:22px;box-shadow:0 24px 70px #00000061}.auth-dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.auth-dialog h2{margin-top:2px;font-size:22px;line-height:1.2}.auth-dialog-close{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.auth-dialog-close:hover{color:var(--text);background:var(--bg-surface-hover)}.auth-dialog-close:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-hint{color:var(--text-muted);font-size:13px}.auth-dialog-error{color:var(--danger);font-size:13px;font-weight:600}.auth-dialog-form{gap:10px;margin-top:18px;display:grid}.auth-dialog-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.content{-webkit-overflow-scrolling:touch;flex:1 1 0;width:100%;min-width:0;min-height:0;padding:32px;transition:width .2s;overflow-y:auto;container:dashboard-content/inline-size}.content>*{width:100%;max-width:1336px;margin-inline:auto}body.dashboard-modal-open .content{overflow-y:hidden}.content.interactions-open>*{max-width:none}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h2{letter-spacing:-.3px;font-size:22px;font-weight:700}.page-header-controls{align-items:center;gap:12px;display:flex}.page-with-sticky-date{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:12px;display:grid}.page-with-sticky-date>*{grid-column:1/-1}.page-with-sticky-date>.date-range-page-header{grid-column:1}.page-with-sticky-date>.sticky-date-range{z-index:8;grid-column:2;justify-self:end;position:sticky;top:16px}.model-count{color:var(--text-muted);font-size:14px}.provider-status-section{margin-top:28px;scroll-margin-top:24px}.cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px;display:grid}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:600}.card-value{letter-spacing:-.5px;font-size:28px;font-weight:700}.cache-meter{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:28px;padding:24px}.chart-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.chart-container h3{margin-bottom:16px;font-size:16px;font-weight:600}.chart-container-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.chart-container-header h3{margin-bottom:0}.chart-wrapper{height:210px;position:relative}.live-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.live-dot.is-streaming{background:var(--success);position:relative}.live-dot.is-streaming:after{content:"";z-index:-1;background:color-mix(in srgb, var(--success) 55%, transparent);border-radius:50%;animation:1.8s ease-out infinite live-dot-pulse;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.live-dot.is-streaming:after{opacity:0;animation:none}}@keyframes live-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(2.5)}to{opacity:0;transform:scale(2.5)}}.alert{border-radius:var(--radius);margin-bottom:20px;padding:12px 16px;font-size:14px}.alert-warning{color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b4d}.table-toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.table-toolbar-main{flex:1;min-width:0}.table-toolbar-actions{justify-content:flex-end;margin-left:auto;display:flex}input:is([type=text],[type=date],[type=number]){background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:8px 12px;font-family:inherit;font-size:13px}input:is([type=text],[type=date],[type=number]):focus{border-color:var(--accent)}input:is([type=text],[type=date],[type=number]):disabled,textarea:disabled,.form-input:disabled{opacity:.6;cursor:not-allowed}.table-wrapper{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;font-weight:600}.data-table th.model-actions-header{text-align:right;white-space:nowrap;width:1%;min-width:156px}.data-table td{border-bottom:1px solid var(--border);padding:10px 16px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-surface-hover)}.mono{font-family:SF Mono,Menlo,Consolas,monospace}.font-size-md{font-size:13px}.col-price,.data-table th.col-price{text-align:right}td.col-price{color:var(--text-muted);white-space:nowrap;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.provider-badge{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.empty-state{text-align:center;color:var(--text-muted);padding:48px 0;font-size:14px}.empty-state-icon{width:auto;height:auto;max-height:160px;color:var(--text-muted);margin:0 auto;display:block}.empty-state-icon text{fill:var(--text-muted);font-family:inherit;font-weight:600}.chart-empty-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chart-empty-overlay .empty-state-icon{width:auto;max-width:90%;height:auto;max-height:195px}.loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.table-action-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.table-action-btn:hover:not(:disabled){background:var(--bg-surface-hover)}.table-action-btn:disabled{opacity:.45;cursor:default}.table-action-btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.table-action-btn-active{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 38%, var(--border))}.table-action-btn-active:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, var(--bg-surface-hover))}.table-action-btn-failover-active{color:var(--info);background:color-mix(in srgb, var(--cache-meter-prompt) 35%, var(--bg));border-color:color-mix(in srgb, var(--info) 45%, var(--border));position:relative}.table-action-btn-failover-active:hover:not(:disabled){background:color-mix(in srgb, var(--cache-meter-prompt) 45%, var(--bg-surface-hover))}.table-icon-btn{border-radius:6px;gap:0;width:32px;min-width:32px;height:32px;padding:0}.table-icon-btn.table-action-btn-active{position:relative}.table-icon-btn.table-action-btn-active:after{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-btn.table-action-btn-failover-active:after{content:"";background:var(--info);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-svg{flex-shrink:0;width:14px;height:14px}.model-editor{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:24px}.alias-kind-badge{border:1px solid var(--border);background:var(--bg);min-height:24px;color:var(--accent);letter-spacing:.2px;text-transform:uppercase;border-color:color-mix(in srgb, var(--accent) 55%, var(--border));border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.form h3{font-size:20px;font-weight:700}.form-kicker,.form-hint{color:var(--text-muted);font-size:13px}.alias-actions-cell{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.model-list-actions{white-space:nowrap;flex-wrap:nowrap}.model-list-actions .table-icon-btn{flex:0 0 32px}.model-list-actions .alias-toggle{flex:none}.alias-toggle{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-family:inherit;font-size:12px;transition:all .15s;display:inline-flex}.alias-toggle:hover:not(:disabled){background:var(--bg-surface-hover)}.alias-toggle:disabled{opacity:.45;cursor:default}.alias-toggle-track{background:color-mix(in srgb, var(--border) 80%, var(--bg));border-radius:6px;width:34px;height:18px;transition:background .15s;position:relative}.alias-toggle-thumb{background:var(--text-muted);border-radius:6px;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:1px;left:2px}.alias-toggle.enabled{border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.alias-toggle.enabled .alias-toggle-track{background:color-mix(in srgb, var(--success) 55%, var(--bg))}.alias-toggle.enabled .alias-toggle-thumb{background:#fff;transform:translate(14px)}.alias-toggle.restricted{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:color-mix(in srgb, var(--accent) 70%, var(--text))}.alias-toggle.restricted .alias-toggle-track{background:color-mix(in srgb, var(--accent) 55%, var(--bg))}.editor-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.form{flex-direction:column;gap:16px;display:flex}.auth-key-editor{background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg) 18%)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-field{flex-direction:column;gap:8px;display:flex}.form-field-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:12px;font-weight:600;display:inline-block}.vm-target-row{align-items:center;gap:8px;display:flex}.vm-target-row .vm-target-model{flex:auto;min-width:0}.vm-target-row .vm-target-weight{flex:0 0 88px;width:88px}.vm-status-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.vm-status-row .vm-status-toggle{margin-left:auto}.form-error{border:1px solid color-mix(in srgb, var(--danger) 42%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface));color:var(--danger);overflow-wrap:anywhere;margin:0;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.4}.form-error:empty{display:none}.form-field-error{color:var(--danger);overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:1.4}.form-field-required{color:var(--danger);margin-left:3px}:is(input,textarea,select)[aria-invalid=true]{border-color:color-mix(in srgb, var(--danger) 60%, var(--border))}:is(input,textarea,select)[aria-invalid=true]:focus{border-color:var(--danger)}textarea{resize:vertical;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:60px;color:var(--text);outline:none;padding:10px 12px;font-family:inherit;font-size:13px}textarea:focus{border-color:var(--accent)}.form-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:38px;color:var(--text);outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.form-input:focus{border-color:var(--accent)}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.failover-target-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.data-table tr.alias-row.is-valid td{background:var(--alias-row-valid-bg)}.data-table tr.alias-row.is-valid:hover td{background:var(--alias-row-valid-bg-hover)}.data-table tr.alias-row:not(.is-valid) td{background:color-mix(in srgb, var(--accent) 10%, var(--bg-surface))}.data-table tr.alias-row:not(.is-valid):hover td{background:color-mix(in srgb, var(--accent) 16%, var(--bg-surface-hover))}.data-table tr.alias-row.is-disabled td{background:var(--bg-surface);opacity:.58}.data-table tr.alias-row.is-disabled:hover td{background:var(--bg-surface-hover);opacity:.72}.data-table tr.model-access-disabled-row td{background:color-mix(in srgb, var(--danger) 6%, var(--bg-surface))}.data-table tr.model-access-disabled-row:hover td{background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface-hover))}.workflow-section-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-section-head h4{font-size:14px;font-weight:700}.workflow-preview{flex-direction:column;gap:12px;display:flex}.workflow-feature-toggles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.workflow-feature-toggle{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.workflow-feature-toggle input{width:16px;height:16px}.model-chart-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;padding:24px}.model-chart-section h3{margin:0;font-size:16px;font-weight:600}.model-chart-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.bar-chart-wrap{width:100%;height:180px;position:relative}.form-select,.usage-log-select{appearance:none;background-color:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px;outline:none;min-width:140px;padding:8px 34px 8px 12px;font-family:inherit;font-size:13px}.form-select:disabled,.usage-log-select:disabled{cursor:not-allowed;opacity:.6}.form-select:focus,.usage-log-select:focus{border-color:var(--accent)}.form-select{width:100%;min-width:0}.usage-label-chips{flex-wrap:wrap;gap:4px;max-width:280px;display:inline-flex}.usage-label-chip{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg));min-height:20px;color:var(--text);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;padding:1px 9px;font-family:inherit;font-size:11px;font-style:normal;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s;display:inline-flex}.usage-label-chip:hover{background:color-mix(in srgb, var(--label-color,var(--accent)) 26%, var(--bg))}.usage-label-chip.active{background:color-mix(in srgb, var(--label-color,var(--accent)) 32%, var(--bg));border-color:var(--label-color,var(--accent));box-shadow:0 0 0 1px color-mix(in srgb, var(--label-color,var(--accent)) 55%, transparent)}@keyframes audit-live-summary-stripe-blink{0%,to{opacity:.9}50%{opacity:.28}}.audit-status-badge{border:1px solid var(--border);letter-spacing:.2px;background:var(--bg-surface);border-radius:999px;justify-content:center;align-items:center;min-width:46px;height:24px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.audit-status-badge.status-success{color:var(--success);border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.audit-status-badge.status-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.audit-status-badge.status-error{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.audit-status-badge.status-neutral{color:var(--text-muted)}.audit-status-badge.status-unknown{color:var(--text-muted);border-color:color-mix(in srgb, var(--border) 75%, transparent)}.audit-pane{border:1px solid var(--border);background:var(--bg);border-top:0;border-radius:0 0 8px 8px;min-width:0;padding:12px}.audit-pane h5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:11px;font-weight:600}.audit-prompt-cache-pill{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);min-height:20px;color:var(--prompt-cache-color);letter-spacing:.02em;text-transform:none;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.audit-prompt-cache-highlight{color:var(--prompt-cache-color);font-weight:700}.audit-audio{white-space:normal;flex-direction:column;gap:8px;display:flex}.audit-audio-player{width:100%;max-width:420px;height:36px}.audit-audio-meta{color:var(--text-muted);font-size:12px}.audit-audio-empty{align-items:flex-start;padding:4px 0}.audit-audio-icon{font-size:20px;line-height:1}.audit-audio-note{color:var(--text-muted);font-size:12px}.audit-audio-metadata{flex-direction:column;gap:2px;margin-top:4px;font-size:12px;display:flex}.audit-audio-meta-row{gap:8px;display:flex}.audit-audio-meta-key{color:var(--text-muted);min-width:120px}.conversation-body-highlight{border-left:2px solid color-mix(in srgb, var(--accent) 70%, var(--border));background:color-mix(in srgb, var(--accent) 10%, transparent);cursor:pointer;line-height:inherit;border-radius:2px;margin:0 0 0 -2px;padding:0 0 0 2px;display:inline}.conversation-body-highlight:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.conversation-body-highlight.conversation-system{border-left-color:color-mix(in srgb, var(--warning) 70%, var(--border));background:color-mix(in srgb, var(--warning) 10%, transparent)}.conversation-body-highlight.conversation-user{border-left-color:color-mix(in srgb, var(--accent) 75%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent)}.conversation-body-highlight.conversation-assistant{border-left-color:color-mix(in srgb, var(--success) 65%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}#interactions-drawer-content{flex:1;min-height:0;overflow-y:auto}.pagination{justify-content:space-between;align-items:center;padding:12px 0 0;display:flex}.btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 16px;font-family:inherit;font-size:13px;transition:all .15s}.btn:hover:not(:disabled){background:var(--bg-surface-hover)}.btn-primary{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 70%, #000 10%);color:#fff;font-weight:600;box-shadow:0 10px 22px #3b82f62e}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 90%, #fff 10%);border-color:color-mix(in srgb, var(--accent) 78%, #000 12%)}.btn-danger-outline{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:0 0;font-weight:600}.btn-danger-outline:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 75%, var(--border))}.btn-danger{color:#fff;border-color:color-mix(in srgb, var(--danger) 76%, #000 12%);background:var(--danger);box-shadow:0 10px 22px color-mix(in srgb, var(--danger) 20%, transparent);font-weight:600}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 90%, #fff 10%);border-color:color-mix(in srgb, var(--danger) 82%, #000 14%)}.btn-with-icon{justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn-with-icon .table-icon-svg{width:16px;height:16px}.btn:disabled{opacity:.4;cursor:default}.settings-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.inline-help-section{flex-direction:column;gap:2px;display:flex}.inline-help-title-row{align-items:center;gap:10px;display:inline-flex}.inline-help-title-row h2,.inline-help-title-row h3{margin-bottom:0}.inline-help-title-row h2:empty,.inline-help-title-row h3:empty{display:none}.inline-help-toggle{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));width:16px;height:16px;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:color .18s,border-color .18s;display:inline-flex;position:relative}.inline-help-toggle:before{content:"";pointer-events:auto;background:0 0;width:32px;height:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.inline-help-toggle:hover{border-color:color-mix(in srgb, var(--accent) 48%, var(--border));color:var(--text);background:0 0}.inline-help-toggle:active{background:0 0}.inline-help-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.inline-help-toggle-icon{justify-content:center;align-items:center;width:100%;height:100%;padding-bottom:1px;font-size:13px;font-weight:700;line-height:1;transition:transform .52s cubic-bezier(.22,.72,.12,1);display:inline-flex;transform:rotate(0)}.inline-help-copy{max-width:780px;color:var(--text-muted);margin-top:2px;font-size:14px}.settings-select{width:100%}.settings-refresh-section{border-top:1px solid var(--border);justify-items:start;gap:12px;margin-top:24px;padding-top:22px;display:grid}.settings-refresh-section h3{font-size:18px}.settings-refresh-section p{max-width:720px;color:var(--text-muted);font-size:14px;line-height:1.55}.budget-list{gap:10px;padding:10px 0;display:grid}.budget-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;display:grid}.budget-row-main{min-width:0}.budget-row-head{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.budget-scope-value{width:fit-content;max-width:100%;min-height:24px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;justify-self:start;align-items:center;gap:5px;padding:2px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;display:inline-flex;overflow:hidden}.budget-user-path{border:1px solid color-mix(in srgb, var(--accent) 32%, var(--border));background:color-mix(in srgb, var(--accent) 9%, var(--bg))}.budget-label{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.budget-scope-icon{stroke-width:2.2px;opacity:.85;flex:0 0 12px;width:12px;height:12px}.budget-row-meta{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.budget-source{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:999px;padding:2px 7px;font-size:11px}.budget-row-period{justify-content:center;min-width:0;display:flex}.budget-row-controls{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.budget-bars{gap:6px;margin-top:10px;display:grid}.budget-bar-line{grid-template-columns:118px minmax(0,1fr);align-items:center;gap:10px;display:grid}.budget-bar-label{color:var(--text-muted);justify-content:space-between;align-items:center;gap:6px;font-size:11px;line-height:1;display:flex}.budget-bar-percent{font-weight:700}.budget-bar-track{background:color-mix(in srgb, var(--border) 75%, var(--bg));border-radius:999px;height:16px;position:relative;overflow:hidden}.budget-bar-fill{border-radius:inherit;min-width:0;height:100%;transition:width .2s}.budget-bar-fill-usage{background:color-mix(in srgb, var(--success) 82%, var(--accent))}.budget-bar-fill-danger{background:var(--danger)}.budget-bar-text-row{z-index:1;pointer-events:none;color:var(--text);position:absolute;inset:0}.budget-bar-text{text-overflow:ellipsis;white-space:nowrap;max-width:min(44%,190px);font-size:11px;font-weight:700;line-height:12px;position:absolute;top:50%;overflow:hidden}.budget-bar-text-center{max-width:min(46%,240px);left:50%;transform:translate(-50%,-50%)}.budget-bar-text-end{text-align:right;max-width:min(34%,180px);right:8px;transform:translateY(-50%)}.budget-period-label{border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.budget-period-icon{stroke-width:2.2px;flex:0 0 12px;width:12px;height:12px}.budget-period-label-monthly{border-color:color-mix(in srgb, #30302c 62%, var(--border));background:color-mix(in srgb, #30302c 12%, var(--bg));color:color-mix(in srgb, #30302c 34%, var(--text) 66%)}.budget-period-label-weekly{border-color:color-mix(in srgb, #68765c 62%, var(--border));background:color-mix(in srgb, #68765c 12%, var(--bg));color:color-mix(in srgb, #68765c 34%, var(--text) 66%)}.budget-period-label-daily{border-color:color-mix(in srgb, #b5652d 62%, var(--border));background:color-mix(in srgb, #b5652d 12%, var(--bg));color:color-mix(in srgb, #b5652d 34%, var(--text) 66%)}.budget-period-label-hourly{border-color:color-mix(in srgb, #783f22 62%, var(--border));background:color-mix(in srgb, #783f22 12%, var(--bg));color:color-mix(in srgb, #783f22 34%, var(--text) 66%)}.budget-period-label-custom{border-style:dashed;border-color:color-mix(in srgb, #bfa584 68%, var(--border));background:color-mix(in srgb, #bfa584 16%, var(--bg));color:color-mix(in srgb, #8b6f4f 34%, var(--text) 66%)}[data-theme=light] .budget-period-label-monthly{color:#30302c}[data-theme=light] .budget-period-label-weekly{color:#68765c}[data-theme=light] .budget-period-label-daily{color:#b5652d}[data-theme=light] .budget-period-label-hourly{color:#783f22}[data-theme=light] .budget-period-label-custom{color:#8b6f4f}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .budget-period-label-monthly{color:#30302c}:root:not([data-theme=dark]) .budget-period-label-weekly{color:#68765c}:root:not([data-theme=dark]) .budget-period-label-daily{color:#b5652d}:root:not([data-theme=dark]) .budget-period-label-hourly{color:#783f22}:root:not([data-theme=dark]) .budget-period-label-custom{color:#8b6f4f}}.budget-row-actions{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.budget-action-btn{white-space:nowrap;justify-content:center;gap:0;width:28px;min-width:0;height:28px;padding:0;transition:width .18s,border-color .15s,background .15s,color .15s;overflow:hidden}.budget-action-btn:hover,.budget-action-btn:focus-visible{gap:6px;width:82px;padding:0 9px}.budget-action-label{opacity:0;max-width:0;transition:max-width .18s,opacity .12s;overflow:hidden}.budget-action-btn:hover .budget-action-label,.budget-action-btn:focus-visible .budget-action-label{opacity:1;max-width:58px}.budget-action-btn-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.budget-action-icon{flex:0 0 14px;width:14px;height:14px}.budget-editor{background:color-mix(in srgb, var(--bg-surface) 86%, var(--bg) 14%)}.budget-settings-actions{flex-wrap:wrap;gap:10px;display:flex}.budget-reset-dialog{max-width:460px}.form-action-icon{flex:0 0 16px;width:16px;height:16px}.settings-refresh-alert{margin-top:16px;margin-bottom:0}@media (width<=768px){.badge{display:none}.content{width:100%;margin:0 auto;padding:20px}.auth-dialog{padding:18px}.auth-dialog-actions{flex-direction:column-reverse}.auth-dialog-actions .btn{width:100%}.cards{grid-template-columns:repeat(2,1fr)}.page-header{flex-wrap:wrap;gap:12px}.page-header h2{width:100%}.page-header-controls{flex-wrap:wrap;justify-content:space-between;width:100%}.page-with-sticky-date{grid-template-columns:minmax(0,1fr)}.page-with-sticky-date>.date-range-page-header,.page-with-sticky-date>.sticky-date-range{grid-column:1}.page-with-sticky-date>.date-range-page-header{margin-bottom:12px}.page-with-sticky-date>.sticky-date-range{width:100%;margin-bottom:24px;top:10px}.sticky-date-range .date-picker-trigger{justify-content:space-between;width:100%}.usage-log-select{min-width:0}.budget-row{grid-template-columns:1fr}.budget-row-controls{flex-wrap:wrap}.budget-bar-line{grid-template-columns:1fr;gap:5px}.form-grid,.workflow-feature-toggles{grid-template-columns:1fr}.workflow-section-head{flex-direction:column;align-items:flex-start}.table-toolbar{flex-direction:column;align-items:stretch}.table-toolbar-actions{justify-content:stretch;margin-left:0}.table-toolbar-actions .btn{width:100%}.model-editor{padding:16px}.alias-actions-cell,.editor-header{flex-direction:column;align-items:flex-start}.alias-actions-cell .table-action-btn,.editor-header .table-action-btn{width:100%}.alias-actions-cell .table-icon-btn,.editor-header .table-icon-btn{width:36px}.model-list-actions{flex-flow:row;align-items:center}.model-list-actions .table-action-btn{width:auto}.model-list-actions .table-icon-btn{flex-basis:32px;width:32px}.model-editor .editor-header{flex-direction:row;align-items:flex-start}.model-editor .editor-header>:first-child{flex:1;min-width:0}.model-editor .editor-header .dialog-close-btn{flex:0 0 32px;align-self:flex-start;width:32px;min-width:32px}.settings-panel{padding:18px}.budget-settings-actions,.budget-settings-actions .btn{width:100%}}.workflow-conn{background:color-mix(in srgb, var(--accent) 44%, var(--border));flex:1 1 0;width:auto;min-width:13px;height:2px;position:relative}.workflow-conn:after{content:"";background:color-mix(in srgb, var(--accent) 44%, var(--border));clip-path:polygon(0 0,100% 50%,0 100%);width:7px;height:9px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)}.workflow-node{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-surface);text-align:center;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;min-width:72px;padding:8px 12px;display:flex}.auth-key-description{color:var(--text-muted);max-width:220px;font-size:13px}.auth-key-status-badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.auth-key-status-active{background:color-mix(in srgb, var(--success) 12%, var(--bg));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));color:var(--success)}.auth-key-status-inactive{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));color:var(--danger)}.mcp-server-advanced{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg-surface) 72%, var(--bg) 28%);overflow:hidden}.mcp-server-advanced>summary{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;list-style:none;display:flex}.mcp-server-advanced>summary::-webkit-details-marker{display:none}.mcp-server-advanced>summary:after{border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);content:"";flex:none;width:7px;height:7px;transition:transform .15s;transform:rotate(45deg)}.mcp-server-advanced[open]>summary:after{transform:rotate(225deg)}.mcp-server-advanced-summary-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.mcp-server-advanced-title{font-size:13px;font-weight:600}.mcp-server-advanced-fields{border-top:1px solid var(--border);flex-direction:column;gap:16px;padding:14px;display:flex}.copy-feedback-btn{align-items:center;gap:6px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.rate-limit-pressure-row{background-image:linear-gradient(to right, color-mix(in srgb, var(--success) 16%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-high{background-image:linear-gradient(to right, color-mix(in srgb, var(--warning) 20%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-full{background-image:linear-gradient(to right, color-mix(in srgb, var(--danger) 22%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.table-icon-btn.rate-limit-gauge-inherited{color:var(--accent-strong,var(--accent));background:linear-gradient(to right, color-mix(in srgb, var(--accent) 22%, var(--bg)) 50%, var(--bg) 50%);border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.auth-dialog-input-icon{width:16px;height:16px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.auth-dialog-input-shell:focus-within .auth-dialog-input-icon{color:var(--accent)}.auth-dialog-submit-icon{flex:0 0 16px;width:16px;height:16px}.nav-icon{flex:0 0 18px;width:18px;height:18px}.api-key-open-icon{flex:0 0 15px;width:15px;height:15px}.theme-icon{flex:0 0 14px;width:14px;height:14px}.theme-toggle-mobile .theme-icon{flex-basis:16px;width:16px;height:16px}@media (width<=768px){.sidebar-footer .api-key-open-icon{flex-basis:16px;width:16px;height:16px}}.failover-drafts-loading{min-height:96px}.models-loading-state{top:16px;left:var(--sidebar-width);z-index:110;pointer-events:none;--loading-state-min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);width:fit-content;box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);margin:0 auto;padding:10px 14px;position:fixed;right:0}@media (width<=768px){.models-loading-state{left:60px}}.sidebar.sidebar-collapsed~.content .models-loading-state{left:60px}.alias-create-icon{flex:0 0 16px;width:16px;height:16px}.pricing-override-remove-row{margin-bottom:1px}@media (width<=768px){.pricing-override-remove-row{margin-bottom:0}}.pricing-recalculate-dialog{max-width:480px}.settings-refresh-btn.is-refreshing .settings-refresh-icon{transform-origin:50%;animation:.8s linear infinite loading-spin}.cost-source-icon{width:14px;height:14px;color:var(--success);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.cache-savings-icon{width:14px;height:14px;color:var(--accent);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.theme-toggle.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;margin-bottom:10px;padding:2px;display:inline-flex}.theme-btn.svelte-1keql7b{width:28px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.theme-btn.svelte-1keql7b:hover{color:var(--text)}.theme-btn.active.svelte-1keql7b{background:var(--accent);color:#fff}.theme-btn.svelte-1keql7b:focus-visible,.theme-toggle-mobile.svelte-1keql7b:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.theme-toggle-mobile.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:none}.theme-toggle-mobile.svelte-1keql7b:hover{color:var(--text)}.theme-toggle.is-compact.svelte-1keql7b{display:none}.theme-toggle-mobile.is-compact.svelte-1keql7b{margin:0 auto;display:flex}@media (width<=768px){.theme-toggle.svelte-1keql7b{display:none}.theme-toggle-mobile.svelte-1keql7b{margin:0 auto;display:flex}}.sidebar.svelte-1nwtzae{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);-webkit-overflow-scrolling:touch;z-index:10;flex-direction:column;max-height:100vh;transition:flex-basis .2s,width .2s;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar.sidebar-resizing.svelte-1nwtzae{transition:none}.sidebar-header.svelte-1nwtzae{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:20px;display:flex}.sidebar-logo.svelte-1nwtzae{width:28px;height:28px;color:var(--accent);flex-shrink:0}.sidebar-logo.svelte-1nwtzae svg{width:100%;height:100%}.sidebar-header.svelte-1nwtzae h1{letter-spacing:-.3px;font-size:18px;font-weight:700}.sidebar-nav.svelte-1nwtzae{flex-direction:column;flex:1;gap:4px;padding:12px;display:flex}.nav-item.svelte-1nwtzae{border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item.svelte-1nwtzae:hover{background:var(--bg-surface-hover);color:var(--text)}.nav-item.active.svelte-1nwtzae{background:var(--accent);color:#fff}.nav-label.svelte-1nwtzae{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-footer.svelte-1nwtzae{border-top:1px solid var(--border);padding:16px}.api-key-section.svelte-1nwtzae{gap:8px;display:grid}.external-auth-section.svelte-1nwtzae{gap:8px;margin-top:8px;display:grid}.external-auth-user.svelte-1nwtzae{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.external-auth-user.svelte-1nwtzae span:where(.svelte-1nwtzae){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.api-key-open-btn.svelte-1nwtzae{border:1px solid var(--accent);border-radius:var(--radius);width:100%;color:var(--accent);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.api-key-open-btn.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 78%, var(--text));color:color-mix(in srgb, var(--accent) 78%, var(--text))}.api-key-open-btn.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.sidebar-toggle.svelte-1nwtzae{cursor:ew-resize;z-index:11;background:0 0;border:none;flex:0 0 6px;width:6px;height:100vh;padding:0;transition:background .15s;position:sticky;top:0}.sidebar-toggle.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 15%, transparent)}.sidebar-toggle.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}body.sidebar-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae){justify-content:center;padding:16px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae) h1,.sidebar.sidebar-collapsed.svelte-1nwtzae .badge{display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae){padding:8px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:none}@media (width<=768px){.sidebar.svelte-1nwtzae{flex-basis:60px;width:60px}.sidebar-header.svelte-1nwtzae{justify-content:center;padding:16px}.sidebar-header.svelte-1nwtzae h1{display:none}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar-footer.svelte-1nwtzae{gap:8px;padding:8px;display:grid}.sidebar-footer.svelte-1nwtzae .api-key-section:where(.svelte-1nwtzae),.sidebar-footer.svelte-1nwtzae .external-auth-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .external-auth-user:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae){justify-self:center;width:36px;height:36px;min-height:36px;padding:0}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae) span,.sidebar-toggle.svelte-1nwtzae{display:none}}.dialog-close-btn.svelte-11l1bb5{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.dialog-close-btn.svelte-11l1bb5:hover{color:var(--text);background:var(--bg-surface-hover)}.dialog-close-btn.svelte-11l1bb5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-backdrop.svelte-17e0w4c,.editor-modal-backdrop.svelte-17e0w4c{z-index:80;background:#0000007a;position:fixed;inset:0}.auth-dialog-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.editor-modal-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.editor-modal-shell.svelte-17e0w4c>*{overscroll-behavior:contain;width:min(760px,100%);max-height:min(100vh - 40px,960px);margin:0;overflow:auto;box-shadow:0 24px 70px #00000061}@media (width<=768px){.auth-dialog-shell.svelte-17e0w4c,.editor-modal-shell.svelte-17e0w4c{align-items:end;padding:12px}.editor-modal-shell.svelte-17e0w4c>*{max-height:calc(100vh - 24px)}}.external-login-btn.svelte-1dsu6u0{justify-content:center;width:100%;text-decoration:none}.auth-dialog-separator.svelte-1dsu6u0{color:var(--text-muted);align-items:center;gap:10px;font-size:12px;display:flex}.auth-dialog-separator.svelte-1dsu6u0:before,.auth-dialog-separator.svelte-1dsu6u0:after{content:"";border-top:1px solid var(--border);flex:1}.auth-dialog-input-shell.svelte-1dsu6u0{position:relative}.auth-dialog-input.svelte-1dsu6u0{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:11px 12px 11px 38px;font-family:inherit;font-size:14px}.auth-dialog-input.svelte-1dsu6u0:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.flash-region.svelte-1i257xg{top:16px;left:var(--sidebar-width);z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;right:0}.sidebar.sidebar-collapsed~.flash-region.svelte-1i257xg{left:60px}@media (width<=768px){.flash-region.svelte-1i257xg{left:60px}}.flash-toast.svelte-1i257xg{border-radius:var(--radius);pointer-events:auto;align-items:flex-start;gap:10px;width:max-content;max-width:min(480px,100% - 32px);padding:12px 12px 12px 16px;font-size:14px;animation:.9s ease-out svelte-1i257xg-flash-toast-glow;display:flex;box-shadow:0 10px 30px #00000059}@keyframes svelte-1i257xg-flash-toast-glow{0%{box-shadow:0 0 0 4px color-mix(in srgb, currentColor 45%, transparent), 0 10px 30px #00000059}to{box-shadow:0 0 0 4px #0000,0 10px 30px #00000059}}@media (prefers-reduced-motion:reduce){.flash-toast.svelte-1i257xg{animation:none}}.flash-toast-success.svelte-1i257xg{background:color-mix(in srgb, var(--success) 14%, var(--bg-surface));color:var(--success);border:1px solid #34d39959}.flash-toast-error.svelte-1i257xg{background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--warning);border:1px solid #f59e0b66}.flash-toast-text.svelte-1i257xg{overflow-wrap:anywhere;flex:1;min-width:0}.flash-toast-dismiss.svelte-1i257xg{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;flex-shrink:0;padding:0 2px;font-size:18px;line-height:1}.flash-toast-dismiss.svelte-1i257xg:hover{opacity:1}.demo-mode-banner.svelte-1s3mcn8{border:1px solid color-mix(in srgb, var(--warning) 55%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--text);box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:grid}.demo-mode-banner-icon.svelte-1s3mcn8{width:20px;height:20px;color:var(--warning);flex:0 0 20px}.demo-mode-banner-copy.svelte-1s3mcn8{align-items:baseline;gap:8px;min-width:0;font-size:13px;display:flex}.demo-mode-banner.svelte-1s3mcn8 strong{color:var(--warning);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;font-size:12px}.demo-mode-banner-links.svelte-1s3mcn8{justify-content:flex-end;align-items:center;gap:6px;display:flex}.demo-mode-banner-links.svelte-1s3mcn8 a{border:1px solid color-mix(in srgb, var(--warning) 42%, var(--border));border-radius:var(--radius);min-height:28px;color:var(--text);white-space:nowrap;align-items:center;padding:4px 8px;font-size:12px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.demo-mode-banner-links.svelte-1s3mcn8 a:hover{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 16%, transparent);color:var(--text)}.demo-mode-banner-links.svelte-1s3mcn8 a:focus-visible{outline:2px solid color-mix(in srgb, var(--warning) 42%, transparent);outline-offset:2px}@media (width<=768px){.demo-mode-banner.svelte-1s3mcn8{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.demo-mode-banner-copy.svelte-1s3mcn8{gap:2px;display:grid}.demo-mode-banner-links.svelte-1s3mcn8{flex-wrap:wrap;grid-column:2;justify-content:flex-start}}.auth-banner.svelte-1c5yh36{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dp-calendar.svelte-g7ga4u{flex-shrink:0;width:224px}.dp-cal-header.svelte-g7ga4u{justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px;display:flex}.dp-cal-title.svelte-g7ga4u{font-size:13px;font-weight:600}.dp-nav-btn.svelte-g7ga4u{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.dp-nav-btn.svelte-g7ga4u:hover{background:var(--bg-surface-hover);color:var(--text)}.dp-nav-btn.svelte-g7ga4u:disabled{opacity:.3;cursor:default;pointer-events:none}.dp-nav-prev-mobile.svelte-g7ga4u{display:none}.dp-weekdays.svelte-g7ga4u{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.dp-weekdays.svelte-g7ga4u span:where(.svelte-g7ga4u){color:var(--text-muted);padding:4px 0;font-size:11px;font-weight:600}.dp-days.svelte-g7ga4u{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.dp-day.svelte-g7ga4u{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-family:inherit;font-size:12px;transition:all .1s;display:flex}.dp-day.svelte-g7ga4u:hover:not(.disabled):not(.other-month){background:var(--bg-surface-hover)}.dp-day.other-month.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default}.dp-day.today.svelte-g7ga4u{color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}.dp-day.in-range.svelte-g7ga4u{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:0}.dp-day.range-start.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:6px 0 0 6px;font-weight:600}.dp-day.range-end.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:0 6px 6px 0;font-weight:600}.dp-day.range-start.range-end.svelte-g7ga4u{border-radius:6px}.dp-day.range-start.today.svelte-g7ga4u,.dp-day.range-end.today.svelte-g7ga4u{box-shadow:none}.dp-day.disabled.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default;pointer-events:none}@media (width<=768px){.dp-nav-prev-mobile.svelte-g7ga4u{display:flex}}.date-picker.svelte-ax7ma4{position:relative}.date-picker-trigger.svelte-ax7ma4{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s;display:inline-flex}.date-picker-trigger.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.date-picker-trigger.svelte-ax7ma4 svg:where(.svelte-ax7ma4){color:var(--text-muted);flex-shrink:0}.date-picker-chevron.svelte-ax7ma4{transition:transform .15s}.date-picker-chevron.open.svelte-ax7ma4{transform:rotate(180deg)}.date-picker-dropdown.svelte-ax7ma4{z-index:100;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000040}.date-picker-presets.svelte-ax7ma4{border-right:1px solid var(--border);flex-direction:column;gap:2px;min-width:140px;padding:8px;display:flex}.preset-btn.svelte-ax7ma4{color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s}.preset-btn.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.preset-btn.active.svelte-ax7ma4{background:var(--accent);color:#fff}.date-picker-calendars.svelte-ax7ma4{flex-wrap:nowrap;gap:16px;padding:12px;display:flex}.dp-cursor-hint.svelte-ax7ma4{pointer-events:none;z-index:101;background:var(--bg-surface);color:var(--text);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:500;display:flex;position:fixed;transform:translate(12px,-50%)}.dp-cursor-hint.svelte-ax7ma4 svg:where(.svelte-ax7ma4){width:12px;height:12px;color:var(--accent);flex-shrink:0}@media (width<=768px){.date-picker-dropdown.svelte-ax7ma4{border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto}.date-picker-presets.svelte-ax7ma4{-webkit-overflow-scrolling:touch;border-right:none;border-bottom:1px solid var(--border);flex-flow:row;min-width:0;overflow-x:auto}.date-picker-calendars.svelte-ax7ma4{justify-content:center}.date-picker-calendars.svelte-ax7ma4>.dp-calendar:first-child{display:none}}.segmented-control.svelte-92fh5i{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.segmented-btn.svelte-92fh5i{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.segmented-btn.svelte-92fh5i:hover{color:var(--text)}.segmented-btn.active.svelte-92fh5i{background:var(--accent);color:#fff}@media (width<=768px){.segmented-btn.svelte-92fh5i{padding:4px 8px;font-size:11px}}.live-tokens.svelte-17qr2ta{margin-bottom:28px}.live-tokens-heading.svelte-17qr2ta{flex-direction:column;gap:2px;display:flex}.live-tokens-subtitle.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.live-tokens-legend.svelte-17qr2ta{flex-wrap:wrap;gap:8px 18px;margin-bottom:16px;display:flex}.live-tokens-legend-item.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:7px;font-size:12px;display:inline-flex}.live-tokens-swatch.svelte-17qr2ta{border-radius:2px;flex-shrink:0;width:10px;height:10px}.live-tokens-legend-value.svelte-17qr2ta{color:var(--text);font-weight:600}.live-tokens-empty.svelte-17qr2ta .live-tokens-empty-text:where(.svelte-17qr2ta){color:var(--text-muted);font-size:13px}.provider-status-flag.svelte-6tr9cf{grid-column:span 2}.provider-status-overview-card.svelte-6tr9cf{grid-column:span 1}.provider-status-flag.is-healthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, var(--bg-surface))}.provider-status-flag.is-degraded.svelte-6tr9cf{border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-flag.is-unhealthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface))}.provider-status-value.svelte-6tr9cf{margin-bottom:8px}.provider-status-card-link.svelte-6tr9cf{color:var(--accent-strong,var(--accent));font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:13px;font-weight:600}.provider-status-card-link.svelte-6tr9cf:hover{color:var(--text);text-decoration:underline}.provider-status-card-link.svelte-6tr9cf:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:3px;border-radius:4px}.provider-status-card-note.svelte-6tr9cf{color:var(--text-muted);font-size:13px;display:block}@media (width>=720px){.card-wide.svelte-6tr9cf{grid-column:span 2}}.cache-token-value.svelte-6tr9cf{flex-wrap:wrap;align-items:center;gap:6px;line-height:1;display:flex}.cache-token-part.svelte-6tr9cf{align-items:center;display:inline-flex}.cache-token-operator.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;font-size:24px;font-weight:600;line-height:1}.cache-token-marker.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;margin-left:2px;font-size:14px;font-weight:700}.prompt-cache-gauge.svelte-6tr9cf{width:120px;height:60px;margin:8px auto 0;position:relative;overflow:hidden}.prompt-cache-gauge.svelte-6tr9cf canvas{display:block}.prompt-cache-gauge-value.svelte-6tr9cf{text-align:center;color:var(--text);font-size:18px;font-weight:700;line-height:1;position:absolute;bottom:4px;left:0;right:0}@media (width<=768px){.provider-status-flag.svelte-6tr9cf{grid-column:span 1}}.mcp-servers-flag.svelte-6tr9cf{grid-column:span 1}.cache-meter-header.svelte-1yzecxj{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:16px;display:flex}.cache-meter-header.svelte-1yzecxj h3{font-size:16px;font-weight:600}.cache-meter-subtitle.svelte-1yzecxj{color:var(--text-muted);font-size:13px}.cache-meter-bar.svelte-1yzecxj{background:var(--bg-surface-hover);border-radius:6px;width:100%;height:28px;display:flex;overflow:hidden}.cache-meter-segment.svelte-1yzecxj{justify-content:center;align-items:center;min-width:3px;height:100%;transition:width .3s;display:flex;overflow:hidden}.cache-meter-segment-label.svelte-1yzecxj{color:#fff;white-space:nowrap;text-shadow:0 1px 2px #00000073;font-size:12px;font-weight:600;line-height:1}.cache-meter-segment.svelte-1yzecxj+.cache-meter-segment:where(.svelte-1yzecxj){box-shadow:-1px 0 0 var(--bg-surface)}.cache-meter-bar.is-empty.svelte-1yzecxj{background:var(--bg-surface-hover);justify-content:center;align-items:center;height:auto;min-height:28px;padding:6px 12px}.cache-meter-legend.svelte-1yzecxj{flex-wrap:wrap;gap:10px 24px;margin-top:16px;display:flex}.cache-meter-legend-item.svelte-1yzecxj{align-items:center;gap:8px;font-size:13px;display:flex}.cache-meter-swatch.svelte-1yzecxj{border-radius:3px;flex-shrink:0;width:12px;height:12px}.cache-meter-legend-label.svelte-1yzecxj{color:var(--text)}.cache-meter-legend-pct.svelte-1yzecxj{color:var(--text);font-weight:600}.cache-meter-legend-tokens.svelte-1yzecxj{color:var(--text-muted)}.cache-meter-empty.svelte-1yzecxj{color:var(--text-muted);text-align:center;font-size:13px}.spinner.svelte-b54l9o{width:var(--spinner-size);height:var(--spinner-size);border:2px solid var(--border,#80808059);border-top-color:var(--accent,currentColor);border-radius:50%;flex:none;animation:.7s linear infinite svelte-b54l9o-spinner-rotate;display:inline-block}@keyframes svelte-b54l9o-spinner-rotate{to{transform:rotate(360deg)}}.contribution-calendar-section.svelte-3hfxuq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:24px;padding:24px}.contribution-calendar-header.svelte-3hfxuq{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.contribution-calendar-header.svelte-3hfxuq h3{font-size:16px;font-weight:600}.contribution-calendar-grid-wrapper.svelte-3hfxuq{gap:8px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq{flex-direction:column;gap:2px;padding-top:22px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq span{height:13px;color:var(--text-muted);text-align:right;min-width:28px;font-size:10px;line-height:13px}.contribution-calendar-scroll.svelte-3hfxuq{--contribution-week-size:13px;--contribution-week-gap:2px;flex:1;min-width:0;overflow-x:auto}.contribution-calendar-months.svelte-3hfxuq{grid-auto-columns:var(--contribution-week-size);gap:var(--contribution-week-gap);grid-auto-flow:column;height:16px;margin-bottom:6px;display:grid}.contribution-calendar-month-label.svelte-3hfxuq{color:var(--text-muted);white-space:nowrap;font-size:10px}.contribution-calendar-grid.svelte-3hfxuq{gap:var(--contribution-week-gap);display:flex}.contribution-calendar-week.svelte-3hfxuq{flex-direction:column;gap:2px;display:flex}.contribution-calendar-cell.svelte-3hfxuq{width:var(--contribution-week-size);height:var(--contribution-week-size);background:var(--cal-level-0);border-radius:2px}.contribution-calendar-cell.level-1.svelte-3hfxuq{background:var(--cal-level-1)}.contribution-calendar-cell.level-2.svelte-3hfxuq{background:var(--cal-level-2)}.contribution-calendar-cell.level-3.svelte-3hfxuq{background:var(--cal-level-3)}.contribution-calendar-cell.level-4.svelte-3hfxuq{background:var(--cal-level-4)}.contribution-calendar-cell.level-5.svelte-3hfxuq{background:var(--cal-level-5)}.contribution-calendar-cell.level-6.svelte-3hfxuq{background:var(--cal-level-6)}.contribution-calendar-cell.level-7.svelte-3hfxuq{background:var(--cal-level-7)}.contribution-calendar-cell.level-8.svelte-3hfxuq{background:var(--cal-level-8)}.contribution-calendar-cell.level-9.svelte-3hfxuq{background:var(--cal-level-9)}.contribution-calendar-cell.level-10.svelte-3hfxuq{background:var(--cal-level-10)}.contribution-calendar-cell.empty.svelte-3hfxuq{background:0 0}.contribution-calendar-footer.svelte-3hfxuq{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.contribution-calendar-meta.svelte-3hfxuq{flex-direction:column;gap:4px;display:flex}.contribution-calendar-summary.svelte-3hfxuq{color:var(--text-muted);font-size:12px}.contribution-calendar-legend.svelte-3hfxuq{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.contribution-calendar-legend.svelte-3hfxuq .contribution-calendar-cell:where(.svelte-3hfxuq){cursor:default;width:11px;height:11px}.contribution-calendar-tooltip.svelte-3hfxuq{z-index:200;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);white-space:nowrap;pointer-events:none;border-radius:4px;padding:4px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;position:fixed;transform:translate(-50%);box-shadow:0 4px 12px #0003}@media (width<=768px){.contribution-calendar-day-labels.svelte-3hfxuq{display:none}.contribution-calendar-section.svelte-3hfxuq{padding:16px}.contribution-calendar-footer.svelte-3hfxuq{flex-direction:column;align-items:flex-start}}.inline-help-toggle.is-open.svelte-y40or3{color:var(--text);background:0 0}.inline-help-toggle.is-open.svelte-y40or3 .inline-help-toggle-icon{transform:rotate(540deg)}.audit-stats-section.svelte-14e9yan{margin-top:24px}.audit-stats-header.svelte-14e9yan{align-items:flex-start}.audit-stats-kpis.svelte-14e9yan{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.audit-stats-kpi.svelte-14e9yan{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.audit-stats-kpi-value.svelte-14e9yan{color:var(--text);font-size:13px}.audit-stats-kpi-dot.svelte-14e9yan{border-radius:2px;flex-shrink:0;width:8px;height:8px}.audit-stats-dot-2xx.svelte-14e9yan{background:var(--success)}.audit-stats-dot-4xx.svelte-14e9yan{background:var(--warning)}.audit-stats-dot-5xx.svelte-14e9yan{background:var(--danger)}.provider-status-details.svelte-6y9wjv{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .28s,opacity .22s;display:grid}.provider-status-details.is-expanded.svelte-6y9wjv{opacity:1;grid-template-rows:1fr}.provider-status-details.is-collapsed.svelte-6y9wjv{pointer-events:none}.provider-status-details-inner.svelte-6y9wjv{flex-direction:column;gap:14px;min-height:0;display:flex;overflow:hidden}.provider-status-reason.svelte-6y9wjv{color:var(--text-muted);font-size:13px}.provider-status-error.svelte-6y9wjv{color:var(--danger);overflow-wrap:break-word;font-size:12px}.provider-status-config-label.svelte-6y9wjv{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-config.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}.provider-status-config-row.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-config-value.svelte-6y9wjv{color:var(--text);overflow-wrap:break-word;font-size:13px;display:block}.provider-status-health.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-bottom:12px;padding-top:12px;display:flex}.provider-status-health-state.svelte-6y9wjv{border:1px solid var(--border);border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.provider-status-health-state.is-healthy.svelte-6y9wjv{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-health-state.is-degraded.svelte-6y9wjv{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-health-state.is-unhealthy.svelte-6y9wjv{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-health-models.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-health-model.svelte-6y9wjv{color:var(--text);justify-content:space-between;gap:8px;font-size:13px;display:flex}.provider-status-health-model.is-flagged.svelte-6y9wjv{color:var(--danger)}.provider-status-health-model-name.svelte-6y9wjv{overflow-wrap:anywhere}.provider-status-health-model-stats.svelte-6y9wjv{white-space:nowrap;color:var(--text-muted)}.provider-status-health-model.is-flagged.svelte-6y9wjv .provider-status-health-model-stats:where(.svelte-6y9wjv){color:var(--danger);font-weight:700}.provider-status-card.svelte-nopjmh{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:18px;display:flex}.provider-status-card-toggle.svelte-nopjmh{border:0;border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin:auto -18px -18px;padding:7px 0;transition:background .15s,color .15s;display:flex}.provider-status-card-toggle.svelte-nopjmh:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text)}.provider-status-card-toggle.svelte-nopjmh:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:-2px}.provider-status-card-toggle.svelte-nopjmh .provider-status-card-toggle-icon{width:16px;height:16px;transition:transform .28s;display:block}.provider-status-card-toggle.is-expanded.svelte-nopjmh .provider-status-card-toggle-icon{transform:rotate(180deg)}.provider-status-card-head.svelte-nopjmh{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.provider-status-name.svelte-nopjmh{letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:16px;font-weight:700;display:flex}.provider-doc-help.svelte-nopjmh{align-self:center;text-decoration:none}.provider-status-name-type.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-pill.svelte-nopjmh{border:1px solid var(--border);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.provider-status-pill.is-healthy.svelte-nopjmh{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-pill.is-degraded.svelte-nopjmh{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-pill.is-unhealthy.svelte-nopjmh{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-meta.svelte-nopjmh{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.provider-status-meta-item.svelte-nopjmh{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.provider-status-meta-label.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-meta-value.svelte-nopjmh{color:var(--text);font-size:14px}@media (width<=768px){.provider-status-meta.svelte-nopjmh{grid-template-columns:1fr}}.provider-status-section-loading.svelte-1kx3uw4{justify-content:center;padding:24px 0;display:flex}.provider-status-section-header.svelte-1kx3uw4{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.provider-status-toggle.svelte-1kx3uw4{background:var(--bg-surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.provider-status-toggle.svelte-1kx3uw4:hover{background:var(--bg-surface-hover)}.provider-status-toggle.svelte-1kx3uw4:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.provider-status-toggle-copy.svelte-1kx3uw4{white-space:nowrap}.provider-status-toggle-track.svelte-1kx3uw4{background:color-mix(in srgb, var(--text-muted) 35%, var(--border));border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background-color .2s;position:relative}.provider-status-toggle-track.is-active.svelte-1kx3uw4{background:color-mix(in srgb, var(--accent) 82%, var(--bg-surface))}.provider-status-toggle-thumb.svelte-1kx3uw4{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000003d}.provider-status-toggle-track.is-active.svelte-1kx3uw4 .provider-status-toggle-thumb:where(.svelte-1kx3uw4){transform:translate(14px)}.provider-status-grid.svelte-1kx3uw4{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:16px;display:grid}@media (width<=768px){.provider-status-section-header.svelte-1kx3uw4{flex-direction:column;align-items:flex-start}.provider-status-toggle.svelte-1kx3uw4{justify-content:space-between;width:100%}}.filter-input-wrap.svelte-30xz1k{flex:1;width:100%;min-width:min(400px,100%);display:flex;position:relative}.filter-input.svelte-30xz1k{flex:1;width:100%;min-width:0;padding-left:34px}.filter-input-wrap.svelte-30xz1k .filter-input-icon{width:14px;height:14px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.usage-page-filters.svelte-1oi6ywk{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.usage-page-filters.svelte-1oi6ywk .usage-log-select{flex:0 auto}.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-session{flex:220px;min-width:180px;max-width:360px}.active-session-filter.svelte-1oi6ywk{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent-strong,var(--accent));cursor:pointer;white-space:nowrap;border-radius:999px;align-self:center;padding:6px 10px;font-size:12px}.active-session-filter.svelte-1oi6ywk:hover{background:color-mix(in srgb, var(--accent) 25%, var(--bg))}@media (width<=768px){.usage-page-filters.svelte-1oi6ywk .usage-log-select,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-session{flex:100%;max-width:none}}.pro-saved-value.svelte-1qiwzdu{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.pro-saved-delta.svelte-1qiwzdu{color:var(--success);letter-spacing:0;font-size:13px;font-weight:600}.pagination-info.svelte-1imew3q{color:var(--text-muted);font-size:13px}.pagination-buttons.svelte-1imew3q{gap:8px;display:flex}.session-id-chip.svelte-1pkjhcn{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg));max-width:290px;color:var(--accent-strong,var(--accent));vertical-align:middle;border-radius:999px;align-items:stretch;display:inline-flex;overflow:hidden}.session-id-chip.svelte-1pkjhcn:hover,.session-id-chip.active.svelte-1pkjhcn{background:color-mix(in srgb, var(--accent) 20%, var(--bg));border-color:var(--accent)}.session-id-filter.svelte-1pkjhcn,.session-id-copy.svelte-1pkjhcn{color:inherit;cursor:pointer;background:0 0;border:0}.session-id-filter.svelte-1pkjhcn{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:4px 8px;font-size:12px;overflow:hidden}.session-id-copy.svelte-1pkjhcn{border-left:1px solid color-mix(in srgb, var(--accent) 25%, var(--border));justify-content:center;align-items:center;width:28px;padding:0 7px;display:inline-flex}.session-id-copy.svelte-1pkjhcn:hover,.session-id-copy.copied.svelte-1pkjhcn{background:color-mix(in srgb, var(--accent) 18%, transparent)}.session-id-copy.svelte-1pkjhcn svg{width:13px;height:13px}.session-id-chip.compact.svelte-1pkjhcn{max-width:220px}.session-id-chip.compact.svelte-1pkjhcn .session-id-filter:where(.svelte-1pkjhcn){padding:3px 7px;font-size:11px}.session-id-chip.compact.svelte-1pkjhcn .session-id-copy:where(.svelte-1pkjhcn){width:25px;padding:0 6px}.usage-breakdown-loading.svelte-1kee4g8{justify-content:center;align-items:center;min-height:120px;display:flex}.chart-view-toggle.svelte-1kee4g8{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.chart-view-btn.svelte-1kee4g8{width:30px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.chart-view-btn.svelte-1kee4g8:hover{color:var(--text)}.chart-view-btn.active.svelte-1kee4g8{background:var(--accent);color:#fff}.chart-view-btn.svelte-1kee4g8 svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.usage-chart-table-wrapper.svelte-1kee4g8{-webkit-overflow-scrolling:touch;margin-top:0;overflow-x:auto}.usage-chart-data-table.svelte-1kee4g8{min-width:max-content}.usage-chart-data-table.svelte-1kee4g8 th,.usage-chart-data-table.svelte-1kee4g8 td{white-space:nowrap}.usage-log-loading.svelte-hg4ill{justify-content:center;align-items:center;min-height:120px;display:flex}.usage-log-section.svelte-hg4ill{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.usage-log-section.svelte-hg4ill h3{margin-bottom:16px;font-size:16px;font-weight:600}.usage-log-section.svelte-hg4ill .table-wrapper{overflow-x:auto}.usage-log-toolbar.svelte-hg4ill{gap:12px;margin-bottom:16px;display:grid}.usage-filter-row.svelte-hg4ill{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:12px;display:grid}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1/-1}.usage-filter-row-options.svelte-hg4ill{grid-template-columns:1fr}.usage-log-checkbox.svelte-hg4ill{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.usage-log-checkbox.svelte-hg4ill input{cursor:pointer;width:16px;height:16px}.usage-ts.svelte-hg4ill{white-space:nowrap;font-size:12px}.usage-log-row-cached.svelte-hg4ill td{opacity:.75;font-style:italic}.usage-log-row-cached.svelte-hg4ill .usage-log-cache-cell:where(.svelte-hg4ill){font-weight:700}.caveat-icon.svelte-hg4ill{color:var(--warning);cursor:help;margin-left:4px;font-size:14px}@media (width<=768px){.usage-log-toolbar.svelte-hg4ill{gap:10px}.usage-filter-row.svelte-hg4ill{grid-template-columns:1fr}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1}.usage-log-table.svelte-hg4ill{display:block;overflow-x:auto}}.usage-sticky-controls.svelte-spwie6{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.usage-charts-grid.svelte-spwie6{flex-wrap:wrap;gap:24px;margin-bottom:24px;display:flex}.usage-charts-grid.svelte-spwie6 .model-chart-section{flex:calc(50% - 24px);min-width:420px;margin-bottom:0}.usage-session-breakdown-wrap.svelte-spwie6{margin-bottom:24px}.usage-session-breakdown-wrap.svelte-spwie6 .session-usage-breakdown{width:100%;margin-bottom:0}@media (width<=520px){.usage-charts-grid.svelte-spwie6 .model-chart-section{min-width:0}}.loading-state.svelte-hzxv1d{min-height:var(--loading-state-min-height,64px);color:var(--text-muted);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.budget-bar-text-row-on-fill.svelte-1jm56wo{color:#fff;clip-path:inset(0 calc(100% - var(--budget-progress,0%)) 0 0)}.budget-bar-text-start.svelte-1jm56wo{left:8px;transform:translateY(-50%)}.budget-bar-track-period-custom.svelte-1jm56wo .budget-bar-text-row-on-fill:where(.svelte-1jm56wo){color:#3f332a}.budget-override-dialog.svelte-13ryo7h{max-width:460px}.budget-sort-control.svelte-1752fqe{align-items:center;gap:8px}.budget-sort-control.svelte-1752fqe label{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.budget-sort-select.svelte-1752fqe{background-color:var(--bg-surface);min-width:132px}.budget-sort-select.svelte-1752fqe:hover{background-color:var(--bg-surface-hover)}.model-name-cell.svelte-1iynym{flex-direction:column;gap:8px;display:flex}.model-name-primary.svelte-1iynym{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.model-name-secondary.svelte-1iynym{color:var(--text-muted);font-size:12px}.model-redirect-remove-btn.svelte-1iynym{appearance:none;color:var(--danger);cursor:pointer;background:0 0;border:0;margin-left:4px;padding:0;font-size:11px}.model-redirect-remove-btn.svelte-1iynym:hover:not(:disabled){text-decoration:underline}.model-redirect-remove-btn.svelte-1iynym:disabled{opacity:.45;cursor:default}.model-kind-icon.svelte-1iynym{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border));background:var(--bg);width:24px;height:24px;color:var(--accent);border-radius:999px;flex:0 0 24px;justify-content:center;align-items:center;display:inline-flex}.model-kind-icon-svg.svelte-1iynym{width:14px;height:14px}.model-row-actions.svelte-1iynym{text-align:right;width:170px}@media (width<=768px){.model-name-primary.svelte-1iynym{flex-direction:column;align-items:flex-start}}.provider-group-row.svelte-1911hy6 td{background:color-mix(in srgb, var(--accent) 6%, var(--bg));padding-top:12px;padding-bottom:12px}.provider-group-row.svelte-1911hy6:hover td{background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.provider-group-header.svelte-1911hy6{justify-content:space-between;align-items:center;gap:16px;display:flex}.provider-group-meta.svelte-1911hy6{flex-direction:column;gap:4px;min-width:0;display:flex}.provider-group-title.svelte-1911hy6{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.provider-group-type.svelte-1911hy6,.provider-group-count.svelte-1911hy6,.provider-group-summary.svelte-1911hy6{color:var(--text-muted);font-size:12px}@media (width<=768px){.provider-group-header.svelte-1911hy6{flex-direction:column;align-items:flex-start}}.vm-session-affinity-checkbox.svelte-d1j6xw{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.vm-session-affinity-checkbox.svelte-d1j6xw input:where(.svelte-d1j6xw){accent-color:var(--accent);cursor:pointer}.pricing-override-rows.svelte-u8snes{gap:12px;display:grid}.pricing-override-row.svelte-u8snes{grid-template-columns:minmax(220px,1fr) minmax(130px,180px) 32px;align-items:end;gap:12px;display:grid}.pricing-override-row-actions.svelte-u8snes{justify-content:flex-start;display:flex}.pricing-override-tier-note.svelte-u8snes{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:6px;padding:10px 12px;font-size:13px}.pricing-preview.svelte-u8snes{border:1px solid var(--border);border-radius:6px;overflow:hidden}.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:minmax(150px,1fr) minmax(90px,auto) minmax(130px,.8fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.pricing-preview-header.svelte-u8snes{background:var(--bg);color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.pricing-preview-row.svelte-u8snes{border-top:1px solid var(--border);font-size:13px}.pricing-preview-row-empty.svelte-u8snes{color:var(--text-muted);grid-template-columns:1fr}@media (width<=768px){.pricing-override-row.svelte-u8snes,.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:1fr}}.failover-drafts-editor.svelte-1n87bip{flex-direction:column;gap:16px;display:flex}.failover-draft-header-actions.svelte-1n87bip{flex:none;align-items:center;gap:10px;display:flex}.failover-draft-counter.svelte-1n87bip{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.failover-draft-toolbar.svelte-1n87bip{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.failover-draft-toolbar.svelte-1n87bip .filter-input-wrap,.failover-draft-toolbar.svelte-1n87bip .filter-input{min-width:0}.failover-draft-toggle-all.svelte-1n87bip{flex:none}.failover-draft-list.svelte-1n87bip{flex-direction:column;gap:8px;max-height:min(52vh,430px);padding-right:4px;display:flex;overflow-y:auto}.failover-draft-row.svelte-1n87bip{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:10px;display:grid}.failover-draft-row.svelte-1n87bip:hover{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));background:var(--bg-surface-hover)}.failover-draft-row.svelte-1n87bip input{width:16px;height:16px;margin-top:2px}.failover-draft-copy.svelte-1n87bip{gap:4px;min-width:0;display:grid}.failover-draft-source.svelte-1n87bip,.failover-draft-targets.svelte-1n87bip{overflow-wrap:anywhere}.failover-draft-targets.svelte-1n87bip{color:var(--text-muted);font-size:12px}.failover-drafts-empty.svelte-1n87bip{align-items:center;min-height:96px;display:flex}.failover-draft-actions.svelte-1n87bip{margin-top:0}.category-tabs.svelte-scpjps{-webkit-overflow-scrolling:touch;align-items:center;gap:4px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.category-tab.svelte-scpjps{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.category-tab.svelte-scpjps:hover{color:var(--text);background:var(--bg-surface-hover)}.category-tab.active.svelte-scpjps{background:var(--accent);color:#fff;border-color:var(--accent)}.category-tab.svelte-scpjps .tab-count:where(.svelte-scpjps){background:#ffffff26;border-radius:9px;justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 5px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.category-tab.svelte-scpjps:not(.active) .tab-count:where(.svelte-scpjps){background:var(--bg)}@media (width<=768px){.category-tabs.svelte-scpjps{gap:4px}.category-tab.svelte-scpjps{padding:5px 10px;font-size:12px}}.workflow-pipeline-meta.svelte-1viff7o{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 86%, transparent);min-width:0;max-width:calc(100% - 28px);color:var(--text-muted);white-space:nowrap;appearance:none;cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:0;padding:2px 10px;font-size:12px;font-weight:500;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex;position:absolute;top:12px;right:14px;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover,.workflow-pipeline-meta.svelte-1viff7o:focus-visible{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface));color:color-mix(in srgb, var(--accent) 74%, var(--text))}.workflow-pipeline-meta.svelte-1viff7o:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.workflow-pipeline-meta-label.svelte-1viff7o{flex:none;font-weight:700}.workflow-pipeline-meta-placeholder.svelte-1viff7o{opacity:1;flex:none;max-width:3ch;margin-left:4px;transition:max-width .18s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta-value.svelte-1viff7o{opacity:0;text-overflow:clip;flex:0 auto;max-width:0;margin-left:0;transition:max-width .22s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o){opacity:0;max-width:0;margin-left:0}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o){opacity:1;max-width:42ch;margin-left:4px}.workflow-pipeline-meta-icon.svelte-1viff7o{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:14px;margin-left:0;line-height:0;transition:width .18s,margin-left .18s,opacity .15s,transform .18s;display:inline-flex;overflow:hidden;transform:translate(4px)translateY(1px)scale(.84)}.workflow-pipeline-meta-icon.svelte-1viff7o svg{width:14px;height:14px}.workflow-pipeline-meta-copied.svelte-1viff7o,.workflow-pipeline-meta-copied.svelte-1viff7o:hover,.workflow-pipeline-meta-copied.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-icon:where(.svelte-1viff7o){opacity:1;width:14px;margin-left:6px;transform:translateY(1px)}.workflow-pipeline-meta-error.svelte-1viff7o,.workflow-pipeline-meta-error.svelte-1viff7o:hover,.workflow-pipeline-meta-error.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 34%, var(--border));color:var(--danger)}.workflow-pipeline.svelte-nbptrg{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);flex-direction:column;gap:0;margin-bottom:12px;padding:18px 20px 20px;display:flex;position:relative}.workflow-pipeline-has-meta.svelte-nbptrg{padding-top:42px}.workflow-pipeline-row.svelte-nbptrg{align-items:center;width:100%;min-width:0;display:flex;overflow-x:auto}.workflow-node-icon.svelte-nbptrg{border-radius:var(--radius);background:var(--bg);width:28px;height:28px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.workflow-node-icon.svelte-nbptrg svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.workflow-node-label.svelte-nbptrg{letter-spacing:.03em;color:var(--text);white-space:nowrap;font-size:11px;font-weight:700;line-height:1.2}.workflow-node-sub.svelte-nbptrg{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:120px;font-size:10px;font-weight:500;line-height:1.2;font-family:var(--font-mono,ui-monospace, monospace);overflow:hidden}.workflow-node-badge.svelte-nbptrg{border-radius:var(--radius);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);align-items:center;padding:2px 7px;font-size:9px;font-weight:800;line-height:1.5;display:inline-flex}.workflow-node-endpoint.svelte-nbptrg{border-radius:var(--radius);border-color:var(--border);background:var(--bg-surface);flex-direction:row;gap:7px;min-width:auto;padding:10px 14px}.workflow-node-icon-endpoint.svelte-nbptrg{border-radius:var(--radius);width:auto;height:auto;color:var(--text-muted);background:0 0;justify-content:flex-start;padding:0}.workflow-node-icon-endpoint.svelte-nbptrg svg{width:14px;height:14px}.workflow-node-endpoint.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted);font-size:11px;font-weight:600}.workflow-node-feature.svelte-nbptrg{border-color:color-mix(in srgb, var(--accent) 46%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface))}.workflow-node-feature.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--accent) 70%, var(--text-muted))}.workflow-node-ai.svelte-nbptrg{border-radius:var(--radius);gap:6px;min-width:96px;padding:12px 16px}.workflow-async-section.svelte-nbptrg{justify-content:flex-end;align-items:center;gap:0;width:100%;min-width:0;margin-top:10px;display:flex}.workflow-async-turn.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 60px;height:2px;position:relative}.workflow-async-turn.svelte-nbptrg:before{content:"";background:color-mix(in srgb, var(--text-muted) 40%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);width:7px;height:9px;position:absolute;top:50%;left:-7px;transform:translateY(-50%)}.workflow-async-turn.svelte-nbptrg:after{content:"";border-right:2px dashed color-mix(in srgb, var(--text-muted) 40%, var(--border));height:16px;position:absolute;bottom:1px;right:0}.workflow-async-row.svelte-nbptrg{align-items:center;min-width:0;margin-right:7px;display:flex}.workflow-conn-async.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 24px;width:24px}.workflow-conn-async.svelte-nbptrg:after{background:color-mix(in srgb, var(--text-muted) 45%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);left:-1px;right:auto}.workflow-node-async.svelte-nbptrg{border-radius:var(--radius);border-style:dashed;flex-direction:row;gap:7px;min-width:auto;padding:7px 12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){border-radius:var(--radius);width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg) svg{width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){font-size:10px;font-weight:700}.workflow-async-label.svelte-nbptrg{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);opacity:.55;white-space:nowrap;flex-shrink:0;align-items:center;margin-left:8px;font-size:9px;font-weight:800;display:inline-flex}.workflow-node-success.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 18%, var(--bg));color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 85%, var(--text))}.workflow-node-success.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 74%, var(--text-muted))}.workflow-node-success.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 14%, var(--bg));border-color:color-mix(in srgb, var(--success) 38%, var(--border));color:var(--success)}.workflow-node-current.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 16%, var(--bg));color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 85%, var(--text))}.workflow-node-current.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 72%, var(--text-muted))}.workflow-node-current.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 13%, var(--bg));border-color:color-mix(in srgb, var(--info) 36%, var(--border));color:var(--info)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 85%, var(--text))}.workflow-node-warning.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 72%, var(--text-muted))}.workflow-node-warning.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 38%, var(--border));color:var(--warning)}.workflow-node-error.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--danger) 14%, var(--bg));color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 85%, var(--text))}.workflow-node-error.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 72%, var(--text-muted))}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 12%, var(--bg));color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg),.workflow-node-neutral.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--text-muted) 84%, var(--border))}.workflow-node-neutral.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 10%, var(--bg));border-color:color-mix(in srgb, var(--text-muted) 28%, var(--border));color:var(--text-muted)}.workflow-conn-hit.svelte-nbptrg,.workflow-conn-hit.svelte-nbptrg:after{background:color-mix(in srgb, var(--success) 58%, var(--border))}.workflow-conn-dim.svelte-nbptrg,.workflow-conn-dim.svelte-nbptrg:after{background:color-mix(in srgb, var(--border) 75%, transparent)}.workflow-node-success.svelte-nbptrg{border-color:color-mix(in srgb, var(--success) 52%, var(--border));background:color-mix(in srgb, var(--success) 9%, var(--bg-surface))}.workflow-node-current.svelte-nbptrg{border-color:color-mix(in srgb, var(--info) 56%, var(--border));background:color-mix(in srgb, var(--info) 10%, var(--bg-surface))}.workflow-node-warning.svelte-nbptrg{border-color:color-mix(in srgb, var(--warning) 52%, var(--border));background:color-mix(in srgb, var(--warning) 9%, var(--bg-surface))}.workflow-node-error.svelte-nbptrg{border-color:color-mix(in srgb, var(--danger) 52%, var(--border));background:color-mix(in srgb, var(--danger) 9%, var(--bg-surface))}.workflow-node-neutral.svelte-nbptrg{border-color:color-mix(in srgb, var(--text-muted) 40%, var(--border));background:color-mix(in srgb, var(--text-muted) 8%, var(--bg-surface))}.workflow-node-skipped.svelte-nbptrg{opacity:.28;position:relative}.workflow-card.svelte-1fo9fvq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:20px;display:flex}.workflow-card-head.svelte-1fo9fvq{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-card-footer.svelte-1fo9fvq{flex-direction:column;align-items:stretch;gap:10px;display:flex}.workflow-card-head.svelte-1fo9fvq h3{font-size:18px;font-weight:700}.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.workflow-card-meta-footer.svelte-1fo9fvq{justify-content:flex-start}.workflow-card-footer.svelte-1fo9fvq .alias-actions-cell{align-self:flex-end}.workflow-card-description.svelte-1fo9fvq{color:var(--text-muted);font-size:14px}.workflow-guardrails.svelte-1fo9fvq{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list.svelte-1fo9fvq{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-item.svelte-1fo9fvq{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}@media (width<=768px){.workflow-card-head.svelte-1fo9fvq,.workflow-card-footer.svelte-1fo9fvq,.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq,.workflow-guardrail-item.svelte-1fo9fvq{flex-direction:column;align-items:flex-start}}.model-editor.workflow-editor{width:min(1080px,100%);margin-bottom:0}.alert-inline-actions.svelte-1bcpzh1{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.workflow-guardrail-editor.svelte-1bcpzh1{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list-editor.svelte-1bcpzh1{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-row.svelte-1bcpzh1{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:stretch;align-items:center;gap:12px;padding:10px 12px;display:flex}.workflow-guardrail-field.svelte-1bcpzh1{flex:auto;min-width:0}.workflow-guardrail-step-field.svelte-1bcpzh1{flex:0 0 120px}.workflow-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-step-input.svelte-1bcpzh1{max-width:120px}@media (width<=768px){.workflow-guardrail-row.svelte-1bcpzh1{flex-direction:column;align-items:flex-start}.workflow-step-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-guardrail-field.svelte-1bcpzh1,.workflow-guardrail-step-field.svelte-1bcpzh1{flex-basis:auto;width:100%}}.workflow-list-loading.svelte-ie2kfk{justify-content:center;align-items:center;gap:8px;display:flex}.workflows-list.svelte-ie2kfk{min-width:0}.workflow-card-grid.svelte-ie2kfk{grid-template-columns:1fr;gap:16px;display:grid}.workflow-page-note.svelte-l8kr26{color:var(--text-muted);margin-top:6px;font-size:14px}.audit-log-toolbar.svelte-1pwbpcm{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;display:grid}.audit-filter-select.svelte-1pwbpcm{grid-column:span 2;min-width:0}.audit-filter-row-search.svelte-1pwbpcm .filter-input-wrap{grid-column:1/-1;max-width:none}.audit-filter-row-controls.svelte-1pwbpcm .audit-filter-select:where(.svelte-1pwbpcm){grid-column:span 2}.audit-filter-row-controls.svelte-1pwbpcm .btn{grid-column:11/-1;justify-self:end;min-width:108px}.audit-clear-btn.svelte-1pwbpcm{justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.audit-clear-btn.svelte-1pwbpcm .table-icon-svg{width:12px;height:12px}@media (width<=768px){.audit-log-toolbar.svelte-1pwbpcm{gap:8px}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:1fr}.audit-filter-row.svelte-1pwbpcm .filter-input-wrap,.audit-filter-row.svelte-1pwbpcm .filter-input,.audit-filter-select.svelte-1pwbpcm,.audit-filter-row.svelte-1pwbpcm .btn{grid-column:auto}}.audit-live-status.svelte-tve6yv{color:var(--text-muted);align-items:center;gap:10px;margin-left:16px;padding-left:6px;font-size:12px;display:inline-flex}.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:1.8s ease-out infinite svelte-tve6yv-audit-live-dot-throb}@keyframes svelte-tve6yv-audit-live-dot-throb{0%{transform:scale(1)}35%{transform:scale(1.35)}70%{transform:scale(1)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:none}}.audit-live-status-text.is-live.svelte-tve6yv{color:var(--success);font-weight:600}.audit-entry-metadata.svelte-hyopt0{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.audit-entry-metadata-label.svelte-hyopt0{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:12px;font-weight:700}.audit-entry-context.svelte-hyopt0{flex-wrap:wrap;flex:auto;gap:8px;display:flex}.audit-alias-badge.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 28%, var(--border));color:var(--accent-strong,var(--accent))}.audit-session-usage-link.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 35%, var(--border));color:var(--accent-strong,var(--accent));cursor:pointer}.audit-session-usage-link.svelte-hyopt0:hover{background:color-mix(in srgb, var(--accent) 22%, var(--bg));border-color:var(--accent)}@media (width<=768px){.audit-entry-metadata.svelte-hyopt0{flex-direction:column;align-items:flex-start;gap:8px}}.audit-attempt-track.svelte-1eu22xn{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.audit-attempt-track-pips.svelte-1eu22xn{align-items:center;gap:3px;display:inline-flex}.audit-attempt-pip.svelte-1eu22xn{background:var(--text-muted);border-radius:2px;width:8px;height:8px}.audit-attempt-pip.audit-attempt-success.svelte-1eu22xn{background:var(--success)}.audit-attempt-pip.audit-attempt-error.svelte-1eu22xn{background:var(--danger)}.audit-attempt-track-count.svelte-1eu22xn{color:var(--text-muted);font-size:11px}.audit-entry-summary.svelte-17mysgz{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;list-style:none;display:flex;position:relative}.audit-entry-summary.svelte-17mysgz::-webkit-details-marker{display:none}.audit-entry-summary-live-in-progress.svelte-17mysgz{background:color-mix(in srgb, var(--info) 7%, var(--bg))}.audit-entry-summary-has-interactions.svelte-17mysgz{padding-right:44px}.audit-entry-summary-live-in-progress.svelte-17mysgz:before{content:"";background:var(--info);pointer-events:none;width:3px;animation:1.2s ease-in-out infinite audit-live-summary-stripe-blink;position:absolute;inset:0 auto 0 0}@media (prefers-reduced-motion:reduce){.audit-entry-summary-live-in-progress.svelte-17mysgz:before{opacity:.78;animation:none}}.audit-entry-left.svelte-17mysgz{align-items:center;gap:8px;min-width:0;display:flex}.audit-entry-right.svelte-17mysgz{color:var(--text-muted);flex-shrink:0;align-items:center;gap:10px;min-height:28px;display:inline-flex}.audit-thread-expander.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);min-width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:3px;padding:0 7px 0 4px;transition:background .1s ease-out,color .1s ease-out;display:inline-flex}.audit-thread-expander.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 12%, var(--bg));color:var(--accent)}.audit-thread-expander.svelte-17mysgz .audit-thread-expander-svg{width:14px;height:14px}.audit-thread-count.svelte-17mysgz{font-size:11px;font-weight:600}.audit-session-usage.svelte-17mysgz{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg));width:28px;height:28px;color:var(--accent-strong,var(--accent));cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.audit-session-usage.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg));border-color:var(--accent)}.audit-session-usage.svelte-17mysgz .audit-session-usage-svg{width:14px;height:14px}.audit-conversation-trigger.svelte-17mysgz{border:0;border-left:1px solid var(--border);background:color-mix(in srgb, var(--accent) 12%, var(--bg));width:32px;height:100%;color:var(--accent);cursor:pointer;border-radius:0;justify-content:center;align-items:center;margin:0;transition:background .1s ease-out,color .1s ease-out;display:inline-flex;position:absolute;inset:0 0 0 auto}.audit-conversation-trigger.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg))}.audit-conversation-trigger-active.svelte-17mysgz{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 28%, var(--bg));border-left:0}.audit-conversation-trigger-active.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 34%, var(--bg))}.audit-conversation-trigger.svelte-17mysgz .audit-conversation-trigger-svg{stroke-linecap:butt;stroke-linejoin:miter;width:18px;height:18px}.audit-path.svelte-17mysgz{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.audit-request-badge.svelte-17mysgz{white-space:nowrap;gap:6px;min-width:0}.audit-timestamp-time.svelte-17mysgz{display:none}.audit-provider-model.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);height:24px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:420px;padding:0 10px;font-size:12px;display:inline-flex;overflow:hidden}@container dashboard-content (width<=699px){.audit-entry-summary.svelte-17mysgz{flex-direction:column;align-items:flex-start}.audit-entry-right.svelte-17mysgz{justify-content:space-between;width:100%}.audit-request-status.svelte-17mysgz,.audit-timestamp-full.svelte-17mysgz{display:none}.audit-timestamp-time.svelte-17mysgz{display:inline}}.audit-pane-split.svelte-1h5puht{grid-template-columns:1fr 2fr;align-items:start;gap:10px 14px;display:grid}.audit-pane-split-single.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}@container dashboard-content (width<=699px){.audit-pane-split.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}}.audit-pane-split.svelte-1h5puht .audit-pane-block-error:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-pane-empty:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-size-warning:where(.svelte-1h5puht){grid-column:1/-1}.audit-pane-block.svelte-1h5puht{min-width:0}.audit-pane-block.svelte-1h5puht>h5{margin-bottom:6px}.audit-pane-block-head.svelte-1h5puht{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.audit-pane-block-title.svelte-1h5puht{align-items:center;gap:8px;min-width:0;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn{background-color:var(--bg-surface);border:1px solid color-mix(in srgb, var(--border) 70%, var(--text) 30%);color:var(--text);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:6px;padding:4px 8px;font-family:inherit;font-size:12px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn:hover:not(:disabled){background:color-mix(in srgb, var(--bg-surface) 80%, var(--text) 20%);border-color:color-mix(in srgb, var(--border) 45%, var(--text) 55%)}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 18%, var(--bg-surface))}.audit-json.svelte-1h5puht{background:var(--bg-surface);border:1px solid var(--border);box-sizing:border-box;white-space:pre;max-width:100%;max-height:220px;color:var(--text);border-radius:6px;padding:10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;overflow:auto}.audit-pane-error-message.svelte-1h5puht{color:var(--danger)}.audit-pane-clickable-preview.svelte-1h5puht{cursor:pointer}.audit-pane-clickable-preview.svelte-1h5puht:hover{background:color-mix(in srgb, var(--danger) 8%, transparent)}.audit-json-body.svelte-1h5puht{white-space:pre;overflow-wrap:normal}.audit-pane-empty.svelte-1h5puht{text-align:left;padding:8px 0 0}.audit-pane-pending.svelte-1h5puht{align-items:center;gap:8px;display:flex}.audit-pane-streaming.svelte-1h5puht{letter-spacing:.02em;color:var(--text-muted);align-items:center;gap:7px;padding-left:4px;font-size:11px;font-weight:600;display:inline-flex}.audit-size-warning.svelte-1h5puht{color:var(--warning);margin-top:8px;font-size:12px}.audit-request-response.svelte-1bc5vi5{margin-top:4px}.audit-pane-tablist.svelte-1bc5vi5{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;display:flex}.audit-pane-tab.svelte-1bc5vi5{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-bottom-color:#0000;border-radius:6px 6px 0 0;align-items:center;gap:8px;margin-bottom:-1px;margin-right:12px;padding:8px 12px;font-family:inherit;font-size:13px;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.audit-pane-tab.svelte-1bc5vi5:not(.audit-pane-tab-active):hover{color:var(--text);background:color-mix(in srgb, var(--text) 5%, transparent)}.audit-pane-tab-active.svelte-1bc5vi5{color:var(--text);border-color:var(--border);border-bottom-color:var(--bg);background:var(--bg)}.audit-pane-tab-label.svelte-1bc5vi5{font-weight:600}.audit-pane-tabpanel.svelte-1bc5vi5{min-width:0}.audit-pane-icon.svelte-1bc5vi5{color:var(--text-muted);flex:none;align-items:center;display:inline-flex}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-request{color:var(--accent)}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-response{color:var(--info)}.audit-pane-icon.svelte-1bc5vi5 svg{width:16px;height:16px}.audit-pane-seq.svelte-1bc5vi5{color:var(--text-muted);font-size:12px}.audit-pane-kind.svelte-1bc5vi5{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-primary{color:var(--text-muted)}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-failover{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-retry{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 30%, var(--border))}.audit-savings-pill.svelte-1bc5vi5{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);color:var(--prompt-cache-color);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;font-weight:700;display:inline-flex}.audit-step-pill.svelte-1bc5vi5{border:1px dashed var(--border);color:var(--text-muted);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;display:inline-flex}.audit-entry.svelte-cmjgwr{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);transition:background .12s ease-out,border-color .12s ease-out;overflow:hidden}.audit-entry-interactions-open.svelte-cmjgwr{border-width:2px;border-color:color-mix(in srgb, var(--prompt-cache-color) 38%, var(--border))}.audit-entry-details.svelte-cmjgwr{border-top:1px solid var(--border);background:var(--bg-surface);padding:12px;overflow:hidden}.audit-thread.svelte-pneivi{flex-direction:column;gap:10px;display:flex}.audit-thread-children.svelte-pneivi{flex-direction:column;gap:10px;margin-left:26px;display:flex}.audit-thread-child.svelte-pneivi,.audit-thread-loading.svelte-pneivi{position:relative}.audit-thread-child.svelte-pneivi:before,.audit-thread-loading.svelte-pneivi:before{content:"";border-left:1px solid var(--border);border-bottom:1px solid var(--border);pointer-events:none;border-bottom-left-radius:6px;width:12px;height:calc(50% + 10px);position:absolute;top:-10px;left:-14px}.audit-thread-child.svelte-pneivi:not(:last-child):after{content:"";border-left:1px solid var(--border);pointer-events:none;position:absolute;top:50%;bottom:-10px;left:-14px}.audit-thread-loading.svelte-pneivi{padding:6px 0 6px 4px;display:flex}.audit-thread-more.svelte-pneivi{color:var(--text-muted);padding-left:4px;font-size:12px}.audit-log-loading.svelte-1nhcbov{justify-content:center;padding:2rem 0;display:flex}.audit-list-toolbar.svelte-1nhcbov{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.audit-list-toolbar-left.svelte-1nhcbov{flex-wrap:wrap;align-items:center;gap:16px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov input:where(.svelte-1nhcbov){accent-color:var(--accent);cursor:pointer}.audit-retention-note.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-retention-highlight.svelte-1nhcbov{color:var(--text);font-weight:600}.audit-log-section.svelte-1nhcbov{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.audit-log-summary.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-log-list.svelte-1nhcbov{flex-direction:column;gap:10px;display:flex}.settings-guardrails-list.svelte-1bvx512{min-width:0}.settings-guardrail-type-pill.svelte-1bvx512{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.settings-guardrail-summary.svelte-1bvx512{color:var(--text);font-size:14px;line-height:1.45}.settings-guardrail-description.svelte-1bvx512{color:var(--text-muted);margin-top:6px;font-size:12px}.model-editor.guardrails-editor-wide{width:min(1080px,100%)}.form-field-fieldset.svelte-s964s3{border:0;min-inline-size:0;margin:0;padding:0}.form-field-legend.svelte-s964s3{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;padding:0;font-size:12px;font-weight:600}.model-editor.settings-guardrails-editor{min-width:0}.settings-guardrails-hero.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));border-radius:var(--radius);background:radial-gradient(circle at top right, color-mix(in srgb, var(--accent-hover) 18%, transparent), transparent 42%), radial-gradient(circle at bottom left, color-mix(in srgb, var(--accent) 16%, transparent), transparent 40%), var(--bg-surface);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding:24px;display:flex}.settings-kicker.svelte-5x874c{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.settings-guardrails-hero.svelte-5x874c h3{margin-bottom:8px}.settings-guardrails-hero.svelte-5x874c p:last-child{color:var(--text-muted);margin-bottom:0}.settings-guardrails-meta.svelte-5x874c{gap:12px;display:flex}.settings-guardrails-stat.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));background:color-mix(in srgb, var(--bg-surface-hover) 76%, transparent);border-radius:16px;min-width:110px;padding:14px 16px}.settings-guardrails-stat-label.svelte-5x874c{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.settings-guardrails-stat.svelte-5x874c strong{font-size:24px;font-weight:700}@media (width<=768px){.settings-guardrails-hero.svelte-5x874c{flex-direction:column}.settings-guardrails-meta.svelte-5x874c{width:100%}.settings-guardrails-stat.svelte-5x874c{flex:1 1 0}}.mcp-catalog-section.svelte-1xqrzco{margin-top:18px}.mcp-catalog-section.svelte-1xqrzco .form-field-label{margin-bottom:8px}.mcp-catalog-subtitle.svelte-1xqrzco{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mcp-catalog-list.svelte-1xqrzco{flex-direction:column;gap:12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.mcp-catalog-item-name.svelte-1xqrzco{overflow-wrap:anywhere;font-size:13px}.mcp-catalog-item-aggregated.svelte-1xqrzco{color:var(--text-muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px}.mcp-catalog-item-description.svelte-1xqrzco{color:var(--text-muted);margin:2px 0 0;font-size:13px;font-weight:400}.mcp-server-sub-counts.svelte-ah8nrt{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:280px;margin-top:4px;font-size:11px;overflow:hidden}.mcp-server-table-wrapper.svelte-ah8nrt{overflow-x:auto}.mcp-server-table-wrapper.svelte-ah8nrt .data-table{min-width:860px}.auth-key-form-fields.svelte-1gswxes>.form-field{margin-bottom:4px}.auth-key-dashboard-toggle.svelte-1gswxes{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-key-issued-banner.svelte-1gswxes{background:color-mix(in srgb, var(--success) 8%, var(--bg-surface));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));border-radius:var(--radius);margin-bottom:20px;padding:16px}.auth-key-issued-warning.svelte-1gswxes{color:color-mix(in srgb, var(--success) 80%, var(--text));margin-bottom:12px;font-size:13px;font-weight:600}.auth-key-issued-value-row.svelte-1gswxes{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.auth-key-issued-token.svelte-1gswxes{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;flex:1;min-width:0;padding:8px 12px;font-size:13px;overflow-x:auto}.usage-label-chip-static.svelte-nf0ldb,.usage-label-chip-static.svelte-nf0ldb:hover{cursor:default;background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.auth-key-redacted.svelte-nf0ldb{color:var(--text-muted);font-size:13px}.auth-key-actions-cell.svelte-nf0ldb{white-space:nowrap}.auth-key-row-deactivated.svelte-nf0ldb td:where(.svelte-nf0ldb):not(.auth-key-actions-cell){opacity:.55}.auth-key-expiry.svelte-nf0ldb{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.auth-key-th-help.svelte-nf0ldb{cursor:help;align-items:center;gap:4px;display:inline-flex}.auth-key-row-actions.svelte-nf0ldb{align-items:center;gap:6px;display:inline-flex}.auth-keys-loading.svelte-1xpdcqx{justify-content:center;align-items:center;padding:32px 0;display:flex}.auth-keys-help-notice.svelte-1xpdcqx{margin-bottom:20px}.auth-keys-inactive-toggle.svelte-1xpdcqx{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-keys-inactive-toggle.svelte-1xpdcqx input:where(.svelte-1xpdcqx){width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.locale-settings.svelte-hr6ahz{grid-template-columns:minmax(280px,420px)}.locale-selector-label.svelte-hr6ahz{color:var(--text);font-size:18px;font-weight:600}.settings-panel-header.svelte-15kyv2y{justify-content:space-between;gap:16px;margin-bottom:20px;display:flex}.settings-panel-header.svelte-15kyv2y h3{font-size:18px}.settings-form-grid.svelte-15kyv2y{grid-template-columns:minmax(280px,420px);gap:16px;display:grid}@media (width<=768px){.settings-form-grid.svelte-15kyv2y{grid-template-columns:1fr}}.budget-settings-section.svelte-a747ys{width:100%}.budget-settings-grid.svelte-a747ys{gap:12px;display:grid}.budget-settings-row.svelte-a747ys{grid-template-columns:96px minmax(170px,1fr) minmax(110px,140px) minmax(110px,140px) minmax(220px,280px);align-items:start;gap:12px;display:grid}.budget-settings-period.svelte-a747ys{color:var(--text);letter-spacing:0;text-transform:uppercase;align-self:end;min-height:35px;padding-bottom:9px;font-size:12px;font-weight:700}.budget-settings-spacer.svelte-a747ys{min-height:1px}.budget-settings-help-cell.svelte-a747ys{align-self:start;min-width:0;min-height:35px}.budget-settings-help-cell.svelte-a747ys .inline-help-copy{max-width:280px;margin:22px 0 0;font-size:12px;line-height:1.35}@media (width<=768px){.budget-settings-grid.svelte-a747ys,.budget-settings-row.svelte-a747ys{grid-template-columns:1fr}.budget-settings-spacer.svelte-a747ys{display:none}}.tagging-settings-grid.svelte-18e8yem{gap:12px;display:grid}.tagging-settings-row.svelte-18e8yem{grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) minmax(80px,110px) auto minmax(90px,auto);align-items:end;gap:12px;display:grid}.tagging-do-not-pass.svelte-18e8yem{color:var(--text);white-space:nowrap;align-items:center;gap:6px;min-height:35px;font-size:13px;display:flex}.tagging-row-trailer.svelte-18e8yem{align-items:center;gap:8px;min-height:35px;display:flex}.tagging-settings-empty.svelte-18e8yem{color:var(--text-muted);margin:0}.tagging-settings-actions.svelte-18e8yem{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.tagging-settings-row.svelte-18e8yem{grid-template-columns:1fr;align-items:stretch}.tagging-settings-actions.svelte-18e8yem,.tagging-settings-actions.svelte-18e8yem .btn{width:100%}}.pricing-recalculate-section.svelte-1cdxzyk{width:100%}.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:minmax(220px,320px) minmax(260px,360px);justify-content:start;align-items:end;gap:12px;width:100%;display:grid}.pricing-recalculate-date-field.svelte-1cdxzyk{grid-column:1/-1;width:100%;max-width:320px}.pricing-recalculate-filter-field.svelte-1cdxzyk{width:100%;max-width:360px}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker{width:100%}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-trigger{justify-content:space-between;width:100%}.pricing-recalculate-actions.svelte-1cdxzyk{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:1fr}.pricing-recalculate-actions.svelte-1cdxzyk,.pricing-recalculate-actions.svelte-1cdxzyk .btn{width:100%}}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-dropdown{inset:auto auto calc(100% + 6px) 0}.settings-refresh-icon.svelte-yeq2mp{flex:0 0 16px;width:16px;height:16px}.runtime-refresh-steps.svelte-yeq2mp{color:var(--text-muted);gap:8px;margin-top:14px;padding-left:18px;font-size:13px;display:grid}.runtime-refresh-step.is-ok.svelte-yeq2mp{color:var(--success)}.runtime-refresh-step.is-partial.svelte-yeq2mp{color:var(--warning)}.runtime-refresh-step.is-failed.svelte-yeq2mp{color:var(--danger)}.runtime-settings-copy.svelte-tldbe5{min-width:180px}.runtime-settings-fields.svelte-tldbe5{gap:16px;width:min(560px,100%);display:grid}.runtime-setting-row.svelte-tldbe5{grid-template-columns:minmax(220px,1fr) 180px;align-items:center;gap:20px;display:grid}.runtime-setting-description.svelte-tldbe5,.runtime-setting-managed.svelte-tldbe5{color:var(--text-muted);margin:4px 0 0;font-size:12px}.runtime-setting-managed.svelte-tldbe5{color:var(--warning)}@media (width<=720px){.runtime-setting-row.svelte-tldbe5{grid-template-columns:1fr;gap:8px}}.settings-version-footer.svelte-3naq7u{color:var(--text-muted);text-align:right;margin-top:24px;font-size:12px}.chat-message.svelte-12s99s5{border:1px solid var(--border);background:var(--bg);border-radius:10px;max-width:94%;padding:10px 42px 10px 12px;position:relative;overflow:hidden}.chat-message.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.chat-message.is-after-anchor.svelte-12s99s5,.chat-function-note.is-after-anchor.svelte-12s99s5{opacity:.46}.chat-message.role-user.svelte-12s99s5{align-self:flex-start}.chat-message.role-assistant.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 18%, var(--bg));align-self:flex-end}.chat-message.role-system.svelte-12s99s5{background:color-mix(in srgb, var(--warning) 10%, var(--bg));align-self:center;width:100%;max-width:100%}.chat-message.role-error.svelte-12s99s5{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg));align-self:flex-end}.chat-message.role-error.svelte-12s99s5 .chat-role:where(.svelte-12s99s5){color:color-mix(in srgb, var(--danger) 75%, var(--text-muted))}.chat-message-meta.svelte-12s99s5{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.chat-role.svelte-12s99s5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:12px;font-weight:700}.chat-time.svelte-12s99s5{color:var(--text-muted);white-space:nowrap;font-size:11px}.chat-content.svelte-12s99s5{white-space:pre-wrap;overflow-wrap:break-word;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.5}.chat-message.svelte-12s99s5:before,.chat-function-note.svelte-12s99s5:before{content:"";z-index:0;pointer-events:none;opacity:var(--prompt-cache-visibility);background:linear-gradient(90deg, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) 0, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) var(--prompt-cache-fill), transparent var(--prompt-cache-fill), transparent 100%);transition:opacity .15s;position:absolute;inset:0}.chat-message.svelte-12s99s5>:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5>:where(.svelte-12s99s5){z-index:1;position:relative}.chat-message-copy.svelte-12s99s5{z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 92%, transparent);width:26px;height:26px;color:var(--text-muted);opacity:0;pointer-events:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:opacity .12s,transform .12s,color .12s,background-color .12s,border-color .12s;display:inline-flex;position:absolute;bottom:6px;right:6px;transform:translateY(3px)}.chat-message.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-message.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-message-copy.is-copied.svelte-12s99s5{opacity:1;pointer-events:auto;transform:translateY(0)}.chat-message-copy.svelte-12s99s5:hover{color:var(--text);background:var(--bg-surface-hover)}.chat-message-copy.svelte-12s99s5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.chat-message-copy.is-copied.svelte-12s99s5{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border))}.chat-tool-calls.svelte-12s99s5{border-top:1px solid var(--border);flex-direction:column;gap:3px;margin-top:8px;padding-top:6px;display:flex}.chat-tool-call.svelte-12s99s5{color:var(--text-muted);border-radius:5px;min-width:0;padding:3px 5px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;position:relative;overflow:hidden}.chat-tool-call-summary.svelte-12s99s5{cursor:pointer;align-items:baseline;gap:6px;min-width:0;display:flex}.chat-tool-call-preview.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;opacity:.8;flex:1;min-width:0;overflow:hidden}.chat-tool-call-arguments.svelte-12s99s5{background:color-mix(in srgb, var(--border) 45%, transparent);color:var(--text);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;max-height:200px;margin-top:5px;padding:6px 8px;line-height:1.45;overflow:auto}.chat-tool-call-name.svelte-12s99s5:before{content:"⚡"}.chat-function-note.svelte-12s99s5{max-width:94%;color:var(--text-muted);background:color-mix(in srgb, var(--border) 40%, transparent);border:1px dashed var(--border);border-radius:12px;align-self:center;padding:4px 42px 4px 12px;font-size:12px;position:relative;overflow:hidden}.chat-function-note.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-inner.svelte-12s99s5{align-items:baseline;gap:6px;min-height:26px;display:flex;overflow:hidden}.chat-function-note-inner.svelte-12s99s5 .chat-time:where(.svelte-12s99s5){flex-shrink:0;margin-left:auto}.chat-function-call-id.svelte-12s99s5{color:var(--text-muted);overflow-wrap:anywhere;margin-top:6px;font-size:10px}.chat-function-label.svelte-12s99s5{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}.chat-function-label.svelte-12s99s5:before{content:"▸";margin-right:4px;transition:transform .12s;display:inline-block}.chat-function-note-details[open].svelte-12s99s5 .chat-function-label:where(.svelte-12s99s5):before{transform:rotate(90deg)}.chat-function-detail.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;overflow:hidden}.chat-function-note.role-function-call.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));align-self:flex-end}.chat-function-note.role-function-result.svelte-12s99s5{background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 30%, var(--border));align-self:flex-start}.chat-function-note.is-anchor.role-function-call.svelte-12s99s5,.chat-function-note.is-anchor.role-function-result.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-details.svelte-12s99s5{width:100%}.chat-function-note-details.svelte-12s99s5>summary{cursor:pointer;list-style:none}.chat-function-note-details.svelte-12s99s5>summary::-webkit-details-marker{display:none}.chat-function-expanded.svelte-12s99s5{border-top:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);max-height:200px;margin-top:6px;padding-top:6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;overflow:auto}@media (width<=768px){.chat-message.svelte-12s99s5{max-width:100%}}@media (hover:none){.chat-message-copy.svelte-12s99s5{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.chat-message-copy.svelte-12s99s5{transition:none}}.conversation-drawer.svelte-ssrzja{width:var(--conversation-panel-width);background:var(--bg-surface);border-left:1px solid var(--border);z-index:12;flex-direction:column;flex:none;min-width:0;height:100vh;display:flex;position:sticky;top:0}.conversation-drawer-fullscreen.svelte-ssrzja{z-index:70;border-left:0;flex-basis:auto;width:100vw;height:100dvh;position:fixed;inset:0}.conversation-drawer-fullscreen.svelte-ssrzja .conversation-resize-handle:where(.svelte-ssrzja){display:none}.conversation-resize-handle.svelte-ssrzja{z-index:2;cursor:col-resize;touch-action:none;background:0 0;border:0;border-radius:0;outline:none;width:10px;padding:0;position:absolute;top:0;bottom:0;left:-5px}.conversation-resize-handle.svelte-ssrzja:after{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:4px}.conversation-resize-handle.svelte-ssrzja:hover:after,.conversation-resize-handle.svelte-ssrzja:focus-visible:after{background:color-mix(in srgb, var(--accent) 70%, var(--border))}body.conversation-panel-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.conversation-drawer-header.svelte-ssrzja{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.conversation-drawer-header-actions.svelte-ssrzja{align-items:center;gap:6px;display:flex}.conversation-drawer-title.svelte-ssrzja{align-items:center;gap:9px;min-width:0;display:flex}.conversation-follow-status.svelte-ssrzja{justify-content:center;align-items:center;margin:-4px;padding:4px;display:inline-flex}.conversation-drawer-header.svelte-ssrzja h3{font-size:16px;font-weight:700}#interactions-drawer-content.svelte-ssrzja{position:relative}.conversation-message-navigation.svelte-ssrzja{z-index:4;opacity:0;pointer-events:none;flex-direction:column;gap:4px;width:max-content;height:0;margin-left:auto;margin-right:12px;transition:opacity .12s,transform .12s;display:flex;position:sticky;top:12px;transform:translateY(-3px)}#interactions-drawer-content.svelte-ssrzja:hover .conversation-message-navigation:where(.svelte-ssrzja),.conversation-message-navigation.svelte-ssrzja:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja){border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 94%, transparent);width:30px;height:30px;min-height:30px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 1px 3px #00000029}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):hover{color:var(--text);background:var(--bg-surface-hover)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.conversation-drawer-footer.svelte-ssrzja{border-top:1px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;gap:9px;padding:10px 16px;display:flex}.conversation-composer.svelte-ssrzja{flex-direction:column;gap:7px;display:flex}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja){resize:vertical;border:1px solid var(--border);background:var(--bg);width:100%;min-height:50px;color:var(--text);font:inherit;border-radius:7px;padding:9px 10px;line-height:1.45}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):focus{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:1px}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):disabled{opacity:.65}.conversation-composer-actions.svelte-ssrzja{justify-content:space-between;align-items:center;gap:10px;display:flex}.conversation-endpoint.svelte-ssrzja{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:11px;overflow:hidden}.conversation-send-error.svelte-ssrzja{color:var(--danger);font-size:12px}.conversation-truncated.svelte-ssrzja{color:var(--text-muted);padding:0 16px 14px;font-size:12px}.conversation-cache-legend.svelte-ssrzja{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin:12px 16px 0;padding:0;font-family:inherit;font-size:11px;display:flex}.conversation-cache-legend.svelte-ssrzja:hover{color:var(--text)}.conversation-cache-legend.svelte-ssrzja:focus-visible{outline:2px solid color-mix(in srgb, var(--prompt-cache-color) 35%, transparent);outline-offset:3px;border-radius:3px}.conversation-cache-switch.svelte-ssrzja{background:color-mix(in srgb, var(--text-muted) 30%, var(--border));border-radius:999px;flex:none;width:28px;height:16px;transition:background-color .15s;position:relative}.conversation-cache-switch.is-active.svelte-ssrzja{background:color-mix(in srgb, var(--prompt-cache-color) 80%, var(--bg))}.conversation-cache-switch-thumb.svelte-ssrzja{background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000003d}.conversation-cache-switch.is-active.svelte-ssrzja .conversation-cache-switch-thumb:where(.svelte-ssrzja){transform:translate(12px)}.conversation-cache-estimate.svelte-ssrzja{opacity:.75}.conversation-thread.svelte-ssrzja{flex-direction:column;gap:10px;padding:14px 16px 20px;display:flex}.conversation-live-status.svelte-ssrzja{color:var(--text-muted);align-items:center;gap:10px;padding:4px 16px 20px;font-size:13px;display:flex}@media (hover:none){.conversation-message-navigation.svelte-ssrzja{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.conversation-message-navigation.svelte-ssrzja{transition:none}} +:root{--bg:#111110;--bg-surface:#1e1d1c;--bg-surface-hover:#2a2420;--border:#2a2826;--text:#e8e0d6;--text-muted:#9a918a;--accent:#b8956e;--accent-hover:#d4b896;--success:#34d399;--info:#3b82f6;--warning:#f59e0b;--danger:#ef4444;--prompt-cache-color:color-mix(in srgb, var(--info) 72%, #fff);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 24%, var(--bg-surface));--cache-meter-uncached:var(--token-input);--cache-meter-local:var(--token-local);--cache-meter-prompt:var(--token-prompt);--token-input:#c0824a;--token-output:#ddb27a;--token-prompt:color-mix(in srgb, var(--info) 60%, transparent);--token-local:color-mix(in srgb, var(--info) 20%, transparent);--sidebar-width:240px;--radius:8px;--chart-grid:#2a2826;--chart-text:#9a918a;--chart-day-marker:var(--text);--chart-tooltip-bg:#1e1d1c;--chart-tooltip-border:#2a2826;--chart-tooltip-text:#e8e0d6;--cal-level-0:#161b22;--cal-level-1:color-mix(in srgb, var(--info) 15%, var(--bg-surface));--cal-level-2:color-mix(in srgb, var(--info) 25%, var(--bg-surface));--cal-level-3:color-mix(in srgb, var(--info) 36%, var(--bg-surface));--cal-level-4:color-mix(in srgb, var(--info) 48%, var(--bg-surface));--cal-level-5:color-mix(in srgb, var(--info) 60%, var(--bg-surface));--cal-level-6:color-mix(in srgb, var(--info) 73%, var(--bg-surface));--cal-level-7:color-mix(in srgb, var(--info) 87%, var(--bg-surface));--cal-level-8:var(--info);--cal-level-9:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-10:color-mix(in srgb, var(--info) 62%, #fff);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface-hover) 86%, #fff 14%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface-hover) 72%, #fff 28%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f5f0ea;--bg-surface:#fff;--bg-surface-hover:#ece5dc;--border:#e8e0d6;--text:#2d2519;--text-muted:#7a7068;--accent:#755c3d;--accent-hover:#9a7d5a;--success:#34d399;--info:#2563eb;--warning:#d97706;--danger:#dc2626;--prompt-cache-color:color-mix(in srgb, var(--info) 84%, #0f172a);--prompt-cache-color-bg:color-mix(in srgb, var(--token-prompt) 18%, var(--bg-surface));--chart-grid:#e8e0d6;--chart-text:#7a7068;--chart-day-marker:var(--text);--chart-tooltip-bg:#fff;--chart-tooltip-border:#e8e0d6;--chart-tooltip-text:#2d2519;--cal-level-0:#ebedf0;--cal-level-1:color-mix(in srgb, var(--info) 12%, #fff);--cal-level-2:color-mix(in srgb, var(--info) 24%, #fff);--cal-level-3:color-mix(in srgb, var(--info) 37%, #fff);--cal-level-4:color-mix(in srgb, var(--info) 50%, #fff);--cal-level-5:color-mix(in srgb, var(--info) 64%, #fff);--cal-level-6:color-mix(in srgb, var(--info) 80%, #fff);--cal-level-7:var(--info);--cal-level-8:color-mix(in srgb, var(--info) 85%, #000);--cal-level-9:color-mix(in srgb, var(--info) 72%, #000);--cal-level-10:color-mix(in srgb, var(--info) 60%, #000);--alias-row-valid-bg:color-mix(in srgb, var(--bg-surface) 96%, var(--accent) 4%);--alias-row-valid-bg-hover:color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}body.dashboard-modal-open{overflow:hidden}.app{height:100vh;min-height:0;display:flex;overflow:hidden}.badge{background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.auth-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:min(440px,100%);padding:22px;box-shadow:0 24px 70px #00000061}.auth-dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.auth-dialog h2{margin-top:2px;font-size:22px;line-height:1.2}.auth-dialog-close{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.auth-dialog-close:hover{color:var(--text);background:var(--bg-surface-hover)}.auth-dialog-close:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-hint{color:var(--text-muted);font-size:13px}.auth-dialog-error{color:var(--danger);font-size:13px;font-weight:600}.auth-dialog-form{gap:10px;margin-top:18px;display:grid}.auth-dialog-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.content{-webkit-overflow-scrolling:touch;flex:1 1 0;width:100%;min-width:0;min-height:0;padding:32px;transition:width .2s;overflow-y:auto;container:dashboard-content/inline-size}.content>*{width:100%;max-width:1336px;margin-inline:auto}body.dashboard-modal-open .content{overflow-y:hidden}.content.interactions-open>*{max-width:none}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h2{letter-spacing:-.3px;font-size:22px;font-weight:700}.page-header-controls{align-items:center;gap:12px;display:flex}.page-with-sticky-date{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:12px;display:grid}.page-with-sticky-date>*{grid-column:1/-1}.page-with-sticky-date>.date-range-page-header{grid-column:1}.page-with-sticky-date>.sticky-date-range{z-index:8;grid-column:2;justify-self:end;position:sticky;top:16px}.model-count{color:var(--text-muted);font-size:14px}.provider-status-section{margin-top:28px;scroll-margin-top:24px}.cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px;display:grid}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:600}.card-value{letter-spacing:-.5px;font-size:28px;font-weight:700}.cache-meter{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:28px;padding:24px}.chart-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.chart-container h3{margin-bottom:16px;font-size:16px;font-weight:600}.chart-container-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.chart-container-header h3{margin-bottom:0}.chart-wrapper{height:210px;position:relative}.live-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.live-dot.is-streaming{background:var(--success);position:relative}.live-dot.is-streaming:after{content:"";z-index:-1;background:color-mix(in srgb, var(--success) 55%, transparent);border-radius:50%;animation:1.8s ease-out infinite live-dot-pulse;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.live-dot.is-streaming:after{opacity:0;animation:none}}@keyframes live-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(2.5)}to{opacity:0;transform:scale(2.5)}}.alert{border-radius:var(--radius);margin-bottom:20px;padding:12px 16px;font-size:14px}.alert-warning{color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b4d}.table-toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.table-toolbar-main{flex:1;min-width:0}.table-toolbar-actions{justify-content:flex-end;margin-left:auto;display:flex}input:is([type=text],[type=date],[type=number]){background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:8px 12px;font-family:inherit;font-size:13px}input:is([type=text],[type=date],[type=number]):focus{border-color:var(--accent)}input:is([type=text],[type=date],[type=number]):disabled,textarea:disabled,.form-input:disabled{opacity:.6;cursor:not-allowed}.table-wrapper{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;font-weight:600}.data-table th.model-actions-header{text-align:right;white-space:nowrap;width:1%;min-width:156px}.data-table td{border-bottom:1px solid var(--border);padding:10px 16px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-surface-hover)}.mono{font-family:SF Mono,Menlo,Consolas,monospace}.font-size-md{font-size:13px}.col-price,.data-table th.col-price{text-align:right}td.col-price{color:var(--text-muted);white-space:nowrap;font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.provider-badge{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.empty-state{text-align:center;color:var(--text-muted);padding:48px 0;font-size:14px}.empty-state-icon{width:auto;height:auto;max-height:160px;color:var(--text-muted);margin:0 auto;display:block}.empty-state-icon text{fill:var(--text-muted);font-family:inherit;font-weight:600}.chart-empty-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chart-empty-overlay .empty-state-icon{width:auto;max-width:90%;height:auto;max-height:195px}.loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.table-action-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.table-action-btn:hover:not(:disabled){background:var(--bg-surface-hover)}.table-action-btn:disabled{opacity:.45;cursor:default}.table-action-btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.table-action-btn-active{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 38%, var(--border))}.table-action-btn-active:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, var(--bg-surface-hover))}.table-action-btn-failover-active{color:var(--info);background:color-mix(in srgb, var(--cache-meter-prompt) 35%, var(--bg));border-color:color-mix(in srgb, var(--info) 45%, var(--border));position:relative}.table-action-btn-failover-active:hover:not(:disabled){background:color-mix(in srgb, var(--cache-meter-prompt) 45%, var(--bg-surface-hover))}.table-icon-btn{border-radius:6px;gap:0;width:32px;min-width:32px;height:32px;padding:0}.table-icon-btn.table-action-btn-active{position:relative}.table-icon-btn.table-action-btn-active:after{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-btn.table-action-btn-failover-active:after{content:"";background:var(--info);width:6px;height:6px;box-shadow:0 0 0 2px var(--bg-surface);border-radius:999px;position:absolute;top:4px;right:4px}.table-icon-svg{flex-shrink:0;width:14px;height:14px}.model-editor{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:24px}.alias-kind-badge{border:1px solid var(--border);background:var(--bg);min-height:24px;color:var(--accent);letter-spacing:.2px;text-transform:uppercase;border-color:color-mix(in srgb, var(--accent) 55%, var(--border));border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.form h3{font-size:20px;font-weight:700}.form-kicker,.form-hint{color:var(--text-muted);font-size:13px}.alias-actions-cell{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.model-list-actions{white-space:nowrap;flex-wrap:nowrap}.model-list-actions .table-icon-btn{flex:0 0 32px}.model-list-actions .alias-toggle{flex:none}.alias-toggle{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-family:inherit;font-size:12px;transition:all .15s;display:inline-flex}.alias-toggle:hover:not(:disabled){background:var(--bg-surface-hover)}.alias-toggle:disabled{opacity:.45;cursor:default}.alias-toggle-track{background:color-mix(in srgb, var(--border) 80%, var(--bg));border-radius:6px;width:34px;height:18px;transition:background .15s;position:relative}.alias-toggle-thumb{background:var(--text-muted);border-radius:6px;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:1px;left:2px}.alias-toggle.enabled{border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.alias-toggle.enabled .alias-toggle-track{background:color-mix(in srgb, var(--success) 55%, var(--bg))}.alias-toggle.enabled .alias-toggle-thumb{background:#fff;transform:translate(14px)}.alias-toggle.restricted{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:color-mix(in srgb, var(--accent) 70%, var(--text))}.alias-toggle.restricted .alias-toggle-track{background:color-mix(in srgb, var(--accent) 55%, var(--bg))}.editor-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.form{flex-direction:column;gap:16px;display:flex}.auth-key-editor{background:color-mix(in srgb, var(--bg-surface) 82%, var(--bg) 18%)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-field{flex-direction:column;gap:8px;display:flex}.form-field-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:12px;font-weight:600;display:inline-block}.vm-target-row{align-items:center;gap:8px;display:flex}.vm-target-row .vm-target-model{flex:auto;min-width:0}.vm-target-row .vm-target-weight{flex:0 0 88px;width:88px}.vm-status-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.vm-status-row .vm-status-toggle{margin-left:auto}.form-error{border:1px solid color-mix(in srgb, var(--danger) 42%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface));color:var(--danger);overflow-wrap:anywhere;margin:0;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.4}.form-error:empty{display:none}.form-field-error{color:var(--danger);overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:1.4}.form-field-required{color:var(--danger);margin-left:3px}:is(input,textarea,select)[aria-invalid=true]{border-color:color-mix(in srgb, var(--danger) 60%, var(--border))}:is(input,textarea,select)[aria-invalid=true]:focus{border-color:var(--danger)}textarea{resize:vertical;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:60px;color:var(--text);outline:none;padding:10px 12px;font-family:inherit;font-size:13px}textarea:focus{border-color:var(--accent)}.form-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:38px;color:var(--text);outline:none;padding:8px 10px;font-family:inherit;font-size:13px}.form-input:focus{border-color:var(--accent)}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.failover-target-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.data-table tr.alias-row.is-valid td{background:var(--alias-row-valid-bg)}.data-table tr.alias-row.is-valid:hover td{background:var(--alias-row-valid-bg-hover)}.data-table tr.alias-row:not(.is-valid) td{background:color-mix(in srgb, var(--accent) 10%, var(--bg-surface))}.data-table tr.alias-row:not(.is-valid):hover td{background:color-mix(in srgb, var(--accent) 16%, var(--bg-surface-hover))}.data-table tr.alias-row.is-disabled td{background:var(--bg-surface);opacity:.58}.data-table tr.alias-row.is-disabled:hover td{background:var(--bg-surface-hover);opacity:.72}.data-table tr.model-access-disabled-row td{background:color-mix(in srgb, var(--danger) 6%, var(--bg-surface))}.data-table tr.model-access-disabled-row:hover td{background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface-hover))}.workflow-section-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-section-head h4{font-size:14px;font-weight:700}.workflow-preview{flex-direction:column;gap:12px;display:flex}.workflow-feature-toggles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.workflow-feature-toggle{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.workflow-feature-toggle input{width:16px;height:16px}.model-chart-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;padding:24px}.model-chart-section h3{margin:0;font-size:16px;font-weight:600}.model-chart-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.bar-chart-wrap{width:100%;height:180px;position:relative}.form-select,.usage-log-select{appearance:none;background-color:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px;outline:none;min-width:140px;padding:8px 34px 8px 12px;font-family:inherit;font-size:13px}.form-select:disabled,.usage-log-select:disabled{cursor:not-allowed;opacity:.6}.form-select:focus,.usage-log-select:focus{border-color:var(--accent)}.form-select{width:100%;min-width:0}.usage-label-chips{flex-wrap:wrap;gap:4px;max-width:280px;display:inline-flex}.usage-label-chip{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg));min-height:20px;color:var(--text);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;padding:1px 9px;font-family:inherit;font-size:11px;font-style:normal;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s;display:inline-flex}.usage-label-chip:hover{background:color-mix(in srgb, var(--label-color,var(--accent)) 26%, var(--bg))}.usage-label-chip.active{background:color-mix(in srgb, var(--label-color,var(--accent)) 32%, var(--bg));border-color:var(--label-color,var(--accent));box-shadow:0 0 0 1px color-mix(in srgb, var(--label-color,var(--accent)) 55%, transparent)}@keyframes audit-live-summary-stripe-blink{0%,to{opacity:.9}50%{opacity:.28}}.audit-status-badge{border:1px solid var(--border);letter-spacing:.2px;background:var(--bg-surface);border-radius:999px;justify-content:center;align-items:center;min-width:46px;height:24px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.audit-status-badge.status-success{color:var(--success);border-color:color-mix(in srgb, var(--success) 50%, var(--border))}.audit-status-badge.status-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.audit-status-badge.status-error{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.audit-status-badge.status-neutral{color:var(--text-muted)}.audit-status-badge.status-unknown{color:var(--text-muted);border-color:color-mix(in srgb, var(--border) 75%, transparent)}.audit-pane{border:1px solid var(--border);background:var(--bg);border-top:0;border-radius:0 0 8px 8px;min-width:0;padding:12px}.audit-pane h5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:11px;font-weight:600}.audit-prompt-cache-pill{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);min-height:20px;color:var(--prompt-cache-color);letter-spacing:.02em;text-transform:none;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.audit-prompt-cache-highlight{color:var(--prompt-cache-color);font-weight:700}.audit-audio{white-space:normal;flex-direction:column;gap:8px;display:flex}.audit-audio-player{width:100%;max-width:420px;height:36px}.audit-audio-meta{color:var(--text-muted);font-size:12px}.audit-audio-empty{align-items:flex-start;padding:4px 0}.audit-audio-icon{font-size:20px;line-height:1}.audit-audio-note{color:var(--text-muted);font-size:12px}.audit-audio-metadata{flex-direction:column;gap:2px;margin-top:4px;font-size:12px;display:flex}.audit-audio-meta-row{gap:8px;display:flex}.audit-audio-meta-key{color:var(--text-muted);min-width:120px}.conversation-body-highlight{border-left:2px solid color-mix(in srgb, var(--accent) 70%, var(--border));background:color-mix(in srgb, var(--accent) 10%, transparent);cursor:pointer;line-height:inherit;border-radius:2px;margin:0 0 0 -2px;padding:0 0 0 2px;display:inline}.conversation-body-highlight:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.conversation-body-highlight.conversation-system{border-left-color:color-mix(in srgb, var(--warning) 70%, var(--border));background:color-mix(in srgb, var(--warning) 10%, transparent)}.conversation-body-highlight.conversation-user{border-left-color:color-mix(in srgb, var(--accent) 75%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent)}.conversation-body-highlight.conversation-assistant{border-left-color:color-mix(in srgb, var(--success) 65%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}#interactions-drawer-content{flex:1;min-height:0;overflow-y:auto}.pagination{justify-content:space-between;align-items:center;padding:12px 0 0;display:flex}.btn{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 16px;font-family:inherit;font-size:13px;transition:all .15s}.btn:hover:not(:disabled){background:var(--bg-surface-hover)}.btn-primary{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 70%, #000 10%);color:#fff;font-weight:600;box-shadow:0 10px 22px #3b82f62e}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 90%, #fff 10%);border-color:color-mix(in srgb, var(--accent) 78%, #000 12%)}.btn-danger-outline{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:0 0;font-weight:600}.btn-danger-outline:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 75%, var(--border))}.btn-danger{color:#fff;border-color:color-mix(in srgb, var(--danger) 76%, #000 12%);background:var(--danger);box-shadow:0 10px 22px color-mix(in srgb, var(--danger) 20%, transparent);font-weight:600}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 90%, #fff 10%);border-color:color-mix(in srgb, var(--danger) 82%, #000 14%)}.btn-with-icon{justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn-with-icon .table-icon-svg{width:16px;height:16px}.btn:disabled{opacity:.4;cursor:default}.settings-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.inline-help-section{flex-direction:column;gap:2px;display:flex}.inline-help-title-row{align-items:center;gap:10px;display:inline-flex}.inline-help-title-row h2,.inline-help-title-row h3{margin-bottom:0}.inline-help-title-row h2:empty,.inline-help-title-row h3:empty{display:none}.inline-help-toggle{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));width:16px;height:16px;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:color .18s,border-color .18s;display:inline-flex;position:relative}.inline-help-toggle:before{content:"";pointer-events:auto;background:0 0;width:32px;height:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.inline-help-toggle:hover{border-color:color-mix(in srgb, var(--accent) 48%, var(--border));color:var(--text);background:0 0}.inline-help-toggle:active{background:0 0}.inline-help-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.inline-help-toggle-icon{justify-content:center;align-items:center;width:100%;height:100%;padding-bottom:1px;font-size:13px;font-weight:700;line-height:1;transition:transform .52s cubic-bezier(.22,.72,.12,1);display:inline-flex;transform:rotate(0)}.inline-help-copy{max-width:780px;color:var(--text-muted);margin-top:2px;font-size:14px}.settings-select{width:100%}.settings-refresh-section{border-top:1px solid var(--border);justify-items:start;gap:12px;margin-top:24px;padding-top:22px;display:grid}.settings-refresh-section h3{font-size:18px}.settings-refresh-section p{max-width:720px;color:var(--text-muted);font-size:14px;line-height:1.55}.budget-list{gap:10px;padding:10px 0;display:grid}.budget-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr);align-items:center;gap:16px;padding:12px 14px;display:grid}.budget-row-main{min-width:0}.budget-row-head{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.budget-scope-value{width:fit-content;max-width:100%;min-height:24px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;justify-self:start;align-items:center;gap:5px;padding:2px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;display:inline-flex;overflow:hidden}.budget-user-path{border:1px solid color-mix(in srgb, var(--accent) 32%, var(--border));background:color-mix(in srgb, var(--accent) 9%, var(--bg))}.budget-label{border:1px solid color-mix(in srgb, var(--label-color,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.budget-scope-icon{stroke-width:2.2px;opacity:.85;flex:0 0 12px;width:12px;height:12px}.budget-row-meta{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.budget-source{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:999px;padding:2px 7px;font-size:11px}.budget-row-period{justify-content:center;min-width:0;display:flex}.budget-row-controls{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.budget-bars{gap:6px;margin-top:10px;display:grid}.budget-bar-line{grid-template-columns:118px minmax(0,1fr);align-items:center;gap:10px;display:grid}.budget-bar-label{color:var(--text-muted);justify-content:space-between;align-items:center;gap:6px;font-size:11px;line-height:1;display:flex}.budget-bar-percent{font-weight:700}.budget-bar-track{background:color-mix(in srgb, var(--border) 75%, var(--bg));border-radius:999px;height:16px;position:relative;overflow:hidden}.budget-bar-fill{border-radius:inherit;min-width:0;height:100%;transition:width .2s}.budget-bar-fill-usage{background:color-mix(in srgb, var(--success) 82%, var(--accent))}.budget-bar-fill-danger{background:var(--danger)}.budget-bar-text-row{z-index:1;pointer-events:none;color:var(--text);position:absolute;inset:0}.budget-bar-text{text-overflow:ellipsis;white-space:nowrap;max-width:min(44%,190px);font-size:11px;font-weight:700;line-height:12px;position:absolute;top:50%;overflow:hidden}.budget-bar-text-center{max-width:min(46%,240px);left:50%;transform:translate(-50%,-50%)}.budget-bar-text-end{text-align:right;max-width:min(34%,180px);right:8px;transform:translateY(-50%)}.budget-period-label{border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.budget-period-icon{stroke-width:2.2px;flex:0 0 12px;width:12px;height:12px}.budget-period-label-monthly{border-color:color-mix(in srgb, #30302c 62%, var(--border));background:color-mix(in srgb, #30302c 12%, var(--bg));color:color-mix(in srgb, #30302c 34%, var(--text) 66%)}.budget-period-label-weekly{border-color:color-mix(in srgb, #68765c 62%, var(--border));background:color-mix(in srgb, #68765c 12%, var(--bg));color:color-mix(in srgb, #68765c 34%, var(--text) 66%)}.budget-period-label-daily{border-color:color-mix(in srgb, #b5652d 62%, var(--border));background:color-mix(in srgb, #b5652d 12%, var(--bg));color:color-mix(in srgb, #b5652d 34%, var(--text) 66%)}.budget-period-label-hourly{border-color:color-mix(in srgb, #783f22 62%, var(--border));background:color-mix(in srgb, #783f22 12%, var(--bg));color:color-mix(in srgb, #783f22 34%, var(--text) 66%)}.budget-period-label-custom{border-style:dashed;border-color:color-mix(in srgb, #bfa584 68%, var(--border));background:color-mix(in srgb, #bfa584 16%, var(--bg));color:color-mix(in srgb, #8b6f4f 34%, var(--text) 66%)}[data-theme=light] .budget-period-label-monthly{color:#30302c}[data-theme=light] .budget-period-label-weekly{color:#68765c}[data-theme=light] .budget-period-label-daily{color:#b5652d}[data-theme=light] .budget-period-label-hourly{color:#783f22}[data-theme=light] .budget-period-label-custom{color:#8b6f4f}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .budget-period-label-monthly{color:#30302c}:root:not([data-theme=dark]) .budget-period-label-weekly{color:#68765c}:root:not([data-theme=dark]) .budget-period-label-daily{color:#b5652d}:root:not([data-theme=dark]) .budget-period-label-hourly{color:#783f22}:root:not([data-theme=dark]) .budget-period-label-custom{color:#8b6f4f}}.budget-row-actions{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.budget-action-btn{white-space:nowrap;justify-content:center;gap:0;width:28px;min-width:0;height:28px;padding:0;transition:width .18s,border-color .15s,background .15s,color .15s;overflow:hidden}.budget-action-btn:hover,.budget-action-btn:focus-visible{gap:6px;width:82px;padding:0 9px}.budget-action-label{opacity:0;max-width:0;transition:max-width .18s,opacity .12s;overflow:hidden}.budget-action-btn:hover .budget-action-label,.budget-action-btn:focus-visible .budget-action-label{opacity:1;max-width:58px}.budget-action-btn-warning{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 50%, var(--border))}.budget-action-icon{flex:0 0 14px;width:14px;height:14px}.budget-editor{background:color-mix(in srgb, var(--bg-surface) 86%, var(--bg) 14%)}.budget-settings-actions{flex-wrap:wrap;gap:10px;display:flex}.budget-reset-dialog{max-width:460px}.form-action-icon{flex:0 0 16px;width:16px;height:16px}.settings-refresh-alert{margin-top:16px;margin-bottom:0}@media (width<=768px){.badge{display:none}.content{width:100%;margin:0 auto;padding:20px}.auth-dialog{padding:18px}.auth-dialog-actions{flex-direction:column-reverse}.auth-dialog-actions .btn{width:100%}.cards{grid-template-columns:repeat(2,1fr)}.page-header{flex-wrap:wrap;gap:12px}.page-header h2{width:100%}.page-header-controls{flex-wrap:wrap;justify-content:space-between;width:100%}.page-with-sticky-date{grid-template-columns:minmax(0,1fr)}.page-with-sticky-date>.date-range-page-header,.page-with-sticky-date>.sticky-date-range{grid-column:1}.page-with-sticky-date>.date-range-page-header{margin-bottom:12px}.page-with-sticky-date>.sticky-date-range{width:100%;margin-bottom:24px;top:10px}.sticky-date-range .date-picker-trigger{justify-content:space-between;width:100%}.usage-log-select{min-width:0}.budget-row{grid-template-columns:1fr}.budget-row-controls{flex-wrap:wrap}.budget-bar-line{grid-template-columns:1fr;gap:5px}.form-grid,.workflow-feature-toggles{grid-template-columns:1fr}.workflow-section-head{flex-direction:column;align-items:flex-start}.table-toolbar{flex-direction:column;align-items:stretch}.table-toolbar-actions{justify-content:stretch;margin-left:0}.table-toolbar-actions .btn{width:100%}.model-editor{padding:16px}.alias-actions-cell,.editor-header{flex-direction:column;align-items:flex-start}.alias-actions-cell .table-action-btn,.editor-header .table-action-btn{width:100%}.alias-actions-cell .table-icon-btn,.editor-header .table-icon-btn{width:36px}.model-list-actions{flex-flow:row;align-items:center}.model-list-actions .table-action-btn{width:auto}.model-list-actions .table-icon-btn{flex-basis:32px;width:32px}.model-editor .editor-header{flex-direction:row;align-items:flex-start}.model-editor .editor-header>:first-child{flex:1;min-width:0}.model-editor .editor-header .dialog-close-btn{flex:0 0 32px;align-self:flex-start;width:32px;min-width:32px}.settings-panel{padding:18px}.budget-settings-actions,.budget-settings-actions .btn{width:100%}}.workflow-conn{background:color-mix(in srgb, var(--accent) 44%, var(--border));flex:1 1 0;width:auto;min-width:13px;height:2px;position:relative}.workflow-conn:after{content:"";background:color-mix(in srgb, var(--accent) 44%, var(--border));clip-path:polygon(0 0,100% 50%,0 100%);width:7px;height:9px;position:absolute;top:50%;right:-1px;transform:translateY(-50%)}.workflow-node{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-surface);text-align:center;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;min-width:72px;padding:8px 12px;display:flex}.auth-key-description{color:var(--text-muted);max-width:220px;font-size:13px}.auth-key-status-badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.auth-key-status-active{background:color-mix(in srgb, var(--success) 12%, var(--bg));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));color:var(--success)}.auth-key-status-inactive{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));color:var(--danger)}.mcp-server-advanced{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg-surface) 72%, var(--bg) 28%);overflow:hidden}.mcp-server-advanced>summary{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;list-style:none;display:flex}.mcp-server-advanced>summary::-webkit-details-marker{display:none}.mcp-server-advanced>summary:after{border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);content:"";flex:none;width:7px;height:7px;transition:transform .15s;transform:rotate(45deg)}.mcp-server-advanced[open]>summary:after{transform:rotate(225deg)}.mcp-server-advanced-summary-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.mcp-server-advanced-title{font-size:13px;font-weight:600}.mcp-server-advanced-fields{border-top:1px solid var(--border);flex-direction:column;gap:16px;padding:14px;display:flex}.copy-feedback-btn{align-items:center;gap:6px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.rate-limit-pressure-row{background-image:linear-gradient(to right, color-mix(in srgb, var(--success) 16%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-high{background-image:linear-gradient(to right, color-mix(in srgb, var(--warning) 20%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.rate-limit-pressure-row.rate-limit-pressure-full{background-image:linear-gradient(to right, color-mix(in srgb, var(--danger) 22%, transparent) var(--rate-limit-pressure,0%), transparent var(--rate-limit-pressure,0%))}.table-icon-btn.rate-limit-gauge-inherited{color:var(--accent-strong,var(--accent));background:linear-gradient(to right, color-mix(in srgb, var(--accent) 22%, var(--bg)) 50%, var(--bg) 50%);border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.auth-dialog-input-icon{width:16px;height:16px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.auth-dialog-input-shell:focus-within .auth-dialog-input-icon{color:var(--accent)}.auth-dialog-submit-icon{flex:0 0 16px;width:16px;height:16px}.nav-icon{flex:0 0 18px;width:18px;height:18px}.api-key-open-icon{flex:0 0 15px;width:15px;height:15px}.theme-icon{flex:0 0 14px;width:14px;height:14px}.theme-toggle-mobile .theme-icon{flex-basis:16px;width:16px;height:16px}@media (width<=768px){.sidebar-footer .api-key-open-icon{flex-basis:16px;width:16px;height:16px}}.failover-drafts-loading{min-height:96px}.models-loading-state{top:16px;left:var(--sidebar-width);z-index:110;pointer-events:none;--loading-state-min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);width:fit-content;box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);margin:0 auto;padding:10px 14px;position:fixed;right:0}@media (width<=768px){.models-loading-state{left:60px}}.sidebar.sidebar-collapsed~.content .models-loading-state{left:60px}.alias-create-icon{flex:0 0 16px;width:16px;height:16px}.pricing-override-remove-row{margin-bottom:1px}@media (width<=768px){.pricing-override-remove-row{margin-bottom:0}}.pricing-recalculate-dialog{max-width:480px}.settings-refresh-btn.is-refreshing .settings-refresh-icon{transform-origin:50%;animation:.8s linear infinite loading-spin}.cost-source-icon{width:14px;height:14px;color:var(--success);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.cache-savings-icon{width:14px;height:14px;color:var(--accent);cursor:help;vertical-align:-2px;stroke-width:2px;margin-left:4px}.theme-toggle.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;margin-bottom:10px;padding:2px;display:inline-flex}.theme-btn.svelte-1keql7b{width:28px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.theme-btn.svelte-1keql7b:hover{color:var(--text)}.theme-btn.active.svelte-1keql7b{background:var(--accent);color:#fff}.theme-btn.svelte-1keql7b:focus-visible,.theme-toggle-mobile.svelte-1keql7b:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.theme-toggle-mobile.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:none}.theme-toggle-mobile.svelte-1keql7b:hover{color:var(--text)}.theme-toggle.is-compact.svelte-1keql7b{display:none}.theme-toggle-mobile.is-compact.svelte-1keql7b{margin:0 auto;display:flex}@media (width<=768px){.theme-toggle.svelte-1keql7b{display:none}.theme-toggle-mobile.svelte-1keql7b{margin:0 auto;display:flex}}.sidebar.svelte-1nwtzae{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);-webkit-overflow-scrolling:touch;z-index:10;flex-direction:column;max-height:100vh;transition:flex-basis .2s,width .2s;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar.sidebar-resizing.svelte-1nwtzae{transition:none}.sidebar-header.svelte-1nwtzae{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:20px;display:flex}.sidebar-logo.svelte-1nwtzae{width:28px;height:28px;color:var(--accent);flex-shrink:0}.sidebar-logo.svelte-1nwtzae svg{width:100%;height:100%}.sidebar-header.svelte-1nwtzae h1{letter-spacing:-.3px;font-size:18px;font-weight:700}.sidebar-nav.svelte-1nwtzae{flex-direction:column;flex:1;gap:4px;padding:12px;display:flex}.nav-item.svelte-1nwtzae{border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item.svelte-1nwtzae:hover{background:var(--bg-surface-hover);color:var(--text)}.nav-item.active.svelte-1nwtzae{background:var(--accent);color:#fff}.nav-label.svelte-1nwtzae{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-footer.svelte-1nwtzae{border-top:1px solid var(--border);padding:16px}.api-key-section.svelte-1nwtzae{gap:8px;display:grid}.external-auth-section.svelte-1nwtzae{gap:8px;margin-top:8px;display:grid}.external-auth-user.svelte-1nwtzae{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.external-auth-user.svelte-1nwtzae span:where(.svelte-1nwtzae){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.api-key-open-btn.svelte-1nwtzae{border:1px solid var(--accent);border-radius:var(--radius);width:100%;color:var(--accent);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.api-key-open-btn.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 78%, var(--text));color:color-mix(in srgb, var(--accent) 78%, var(--text))}.api-key-open-btn.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.sidebar-toggle.svelte-1nwtzae{cursor:ew-resize;z-index:11;background:0 0;border:none;flex:0 0 6px;width:6px;height:100vh;padding:0;transition:background .15s;position:sticky;top:0}.sidebar-toggle.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 15%, transparent)}.sidebar-toggle.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}body.sidebar-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae){justify-content:center;padding:16px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae) h1,.sidebar.sidebar-collapsed.svelte-1nwtzae .badge{display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae){padding:8px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:none}@media (width<=768px){.sidebar.svelte-1nwtzae{flex-basis:60px;width:60px}.sidebar-header.svelte-1nwtzae{justify-content:center;padding:16px}.sidebar-header.svelte-1nwtzae h1{display:none}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar-footer.svelte-1nwtzae{gap:8px;padding:8px;display:grid}.sidebar-footer.svelte-1nwtzae .api-key-section:where(.svelte-1nwtzae),.sidebar-footer.svelte-1nwtzae .external-auth-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .external-auth-user:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae){justify-self:center;width:36px;height:36px;min-height:36px;padding:0}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae) span,.sidebar-toggle.svelte-1nwtzae{display:none}}.dialog-close-btn.svelte-11l1bb5{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.dialog-close-btn.svelte-11l1bb5:hover{color:var(--text);background:var(--bg-surface-hover)}.dialog-close-btn.svelte-11l1bb5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-backdrop.svelte-17e0w4c,.editor-modal-backdrop.svelte-17e0w4c{z-index:80;background:#0000007a;position:fixed;inset:0}.auth-dialog-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.editor-modal-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.editor-modal-shell.svelte-17e0w4c>*{overscroll-behavior:contain;width:min(760px,100%);max-height:min(100vh - 40px,960px);margin:0;overflow:auto;box-shadow:0 24px 70px #00000061}@media (width<=768px){.auth-dialog-shell.svelte-17e0w4c,.editor-modal-shell.svelte-17e0w4c{align-items:end;padding:12px}.editor-modal-shell.svelte-17e0w4c>*{max-height:calc(100vh - 24px)}}.external-login-btn.svelte-1dsu6u0{justify-content:center;width:100%;text-decoration:none}.auth-dialog-separator.svelte-1dsu6u0{color:var(--text-muted);align-items:center;gap:10px;font-size:12px;display:flex}.auth-dialog-separator.svelte-1dsu6u0:before,.auth-dialog-separator.svelte-1dsu6u0:after{content:"";border-top:1px solid var(--border);flex:1}.auth-dialog-input-shell.svelte-1dsu6u0{position:relative}.auth-dialog-input.svelte-1dsu6u0{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:11px 12px 11px 38px;font-family:inherit;font-size:14px}.auth-dialog-input.svelte-1dsu6u0:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.flash-region.svelte-1i257xg{top:16px;left:var(--sidebar-width);z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;right:0}.sidebar.sidebar-collapsed~.flash-region.svelte-1i257xg{left:60px}@media (width<=768px){.flash-region.svelte-1i257xg{left:60px}}.flash-toast.svelte-1i257xg{border-radius:var(--radius);pointer-events:auto;align-items:flex-start;gap:10px;width:max-content;max-width:min(480px,100% - 32px);padding:12px 12px 12px 16px;font-size:14px;animation:.9s ease-out svelte-1i257xg-flash-toast-glow;display:flex;box-shadow:0 10px 30px #00000059}@keyframes svelte-1i257xg-flash-toast-glow{0%{box-shadow:0 0 0 4px color-mix(in srgb, currentColor 45%, transparent), 0 10px 30px #00000059}to{box-shadow:0 0 0 4px #0000,0 10px 30px #00000059}}@media (prefers-reduced-motion:reduce){.flash-toast.svelte-1i257xg{animation:none}}.flash-toast-success.svelte-1i257xg{background:color-mix(in srgb, var(--success) 14%, var(--bg-surface));color:var(--success);border:1px solid #34d39959}.flash-toast-error.svelte-1i257xg{background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--warning);border:1px solid #f59e0b66}.flash-toast-text.svelte-1i257xg{overflow-wrap:anywhere;flex:1;min-width:0}.flash-toast-dismiss.svelte-1i257xg{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;flex-shrink:0;padding:0 2px;font-size:18px;line-height:1}.flash-toast-dismiss.svelte-1i257xg:hover{opacity:1}.demo-mode-banner.svelte-1s3mcn8{border:1px solid color-mix(in srgb, var(--warning) 55%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--text);box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:grid}.demo-mode-banner-icon.svelte-1s3mcn8{width:20px;height:20px;color:var(--warning);flex:0 0 20px}.demo-mode-banner-copy.svelte-1s3mcn8{align-items:baseline;gap:8px;min-width:0;font-size:13px;display:flex}.demo-mode-banner.svelte-1s3mcn8 strong{color:var(--warning);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;font-size:12px}.demo-mode-banner-links.svelte-1s3mcn8{justify-content:flex-end;align-items:center;gap:6px;display:flex}.demo-mode-banner-links.svelte-1s3mcn8 a{border:1px solid color-mix(in srgb, var(--warning) 42%, var(--border));border-radius:var(--radius);min-height:28px;color:var(--text);white-space:nowrap;align-items:center;padding:4px 8px;font-size:12px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.demo-mode-banner-links.svelte-1s3mcn8 a:hover{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 16%, transparent);color:var(--text)}.demo-mode-banner-links.svelte-1s3mcn8 a:focus-visible{outline:2px solid color-mix(in srgb, var(--warning) 42%, transparent);outline-offset:2px}@media (width<=768px){.demo-mode-banner.svelte-1s3mcn8{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.demo-mode-banner-copy.svelte-1s3mcn8{gap:2px;display:grid}.demo-mode-banner-links.svelte-1s3mcn8{flex-wrap:wrap;grid-column:2;justify-content:flex-start}}.auth-banner.svelte-1c5yh36{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dp-calendar.svelte-g7ga4u{flex-shrink:0;width:224px}.dp-cal-header.svelte-g7ga4u{justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px;display:flex}.dp-cal-title.svelte-g7ga4u{font-size:13px;font-weight:600}.dp-nav-btn.svelte-g7ga4u{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.dp-nav-btn.svelte-g7ga4u:hover{background:var(--bg-surface-hover);color:var(--text)}.dp-nav-btn.svelte-g7ga4u:disabled{opacity:.3;cursor:default;pointer-events:none}.dp-nav-prev-mobile.svelte-g7ga4u{display:none}.dp-weekdays.svelte-g7ga4u{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.dp-weekdays.svelte-g7ga4u span:where(.svelte-g7ga4u){color:var(--text-muted);padding:4px 0;font-size:11px;font-weight:600}.dp-days.svelte-g7ga4u{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.dp-day.svelte-g7ga4u{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-family:inherit;font-size:12px;transition:all .1s;display:flex}.dp-day.svelte-g7ga4u:hover:not(.disabled):not(.other-month){background:var(--bg-surface-hover)}.dp-day.other-month.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default}.dp-day.today.svelte-g7ga4u{color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}.dp-day.in-range.svelte-g7ga4u{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:0}.dp-day.range-start.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:6px 0 0 6px;font-weight:600}.dp-day.range-end.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:0 6px 6px 0;font-weight:600}.dp-day.range-start.range-end.svelte-g7ga4u{border-radius:6px}.dp-day.range-start.today.svelte-g7ga4u,.dp-day.range-end.today.svelte-g7ga4u{box-shadow:none}.dp-day.disabled.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default;pointer-events:none}@media (width<=768px){.dp-nav-prev-mobile.svelte-g7ga4u{display:flex}}.date-picker.svelte-ax7ma4{position:relative}.date-picker-trigger.svelte-ax7ma4{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s;display:inline-flex}.date-picker-trigger.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.date-picker-trigger.svelte-ax7ma4 svg:where(.svelte-ax7ma4){color:var(--text-muted);flex-shrink:0}.date-picker-chevron.svelte-ax7ma4{transition:transform .15s}.date-picker-chevron.open.svelte-ax7ma4{transform:rotate(180deg)}.date-picker-dropdown.svelte-ax7ma4{z-index:100;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000040}.date-picker-presets.svelte-ax7ma4{border-right:1px solid var(--border);flex-direction:column;gap:2px;min-width:140px;padding:8px;display:flex}.preset-btn.svelte-ax7ma4{color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s}.preset-btn.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.preset-btn.active.svelte-ax7ma4{background:var(--accent);color:#fff}.date-picker-calendars.svelte-ax7ma4{flex-wrap:nowrap;gap:16px;padding:12px;display:flex}.dp-cursor-hint.svelte-ax7ma4{pointer-events:none;z-index:101;background:var(--bg-surface);color:var(--text);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:500;display:flex;position:fixed;transform:translate(12px,-50%)}.dp-cursor-hint.svelte-ax7ma4 svg:where(.svelte-ax7ma4){width:12px;height:12px;color:var(--accent);flex-shrink:0}@media (width<=768px){.date-picker-dropdown.svelte-ax7ma4{border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto}.date-picker-presets.svelte-ax7ma4{-webkit-overflow-scrolling:touch;border-right:none;border-bottom:1px solid var(--border);flex-flow:row;min-width:0;overflow-x:auto}.date-picker-calendars.svelte-ax7ma4{justify-content:center}.date-picker-calendars.svelte-ax7ma4>.dp-calendar:first-child{display:none}}.segmented-control.svelte-92fh5i{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.segmented-btn.svelte-92fh5i{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.segmented-btn.svelte-92fh5i:hover{color:var(--text)}.segmented-btn.active.svelte-92fh5i{background:var(--accent);color:#fff}@media (width<=768px){.segmented-btn.svelte-92fh5i{padding:4px 8px;font-size:11px}}.live-tokens.svelte-17qr2ta{margin-bottom:28px}.live-tokens-heading.svelte-17qr2ta{flex-direction:column;gap:2px;display:flex}.live-tokens-subtitle.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.live-tokens-legend.svelte-17qr2ta{flex-wrap:wrap;gap:8px 18px;margin-bottom:16px;display:flex}.live-tokens-legend-item.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:7px;font-size:12px;display:inline-flex}.live-tokens-swatch.svelte-17qr2ta{border-radius:2px;flex-shrink:0;width:10px;height:10px}.live-tokens-legend-value.svelte-17qr2ta{color:var(--text);font-weight:600}.live-tokens-empty.svelte-17qr2ta .live-tokens-empty-text:where(.svelte-17qr2ta){color:var(--text-muted);font-size:13px}.provider-status-flag.svelte-6tr9cf{grid-column:span 2}.provider-status-overview-card.svelte-6tr9cf{grid-column:span 1}.provider-status-flag.is-healthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, var(--bg-surface))}.provider-status-flag.is-degraded.svelte-6tr9cf{border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-flag.is-unhealthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface))}.provider-status-value.svelte-6tr9cf{margin-bottom:8px}.provider-status-card-link.svelte-6tr9cf{color:var(--accent-strong,var(--accent));font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:13px;font-weight:600}.provider-status-card-link.svelte-6tr9cf:hover{color:var(--text);text-decoration:underline}.provider-status-card-link.svelte-6tr9cf:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:3px;border-radius:4px}.provider-status-card-note.svelte-6tr9cf{color:var(--text-muted);font-size:13px;display:block}@media (width>=720px){.card-wide.svelte-6tr9cf{grid-column:span 2}}.cache-token-value.svelte-6tr9cf{flex-wrap:wrap;align-items:center;gap:6px;line-height:1;display:flex}.cache-token-part.svelte-6tr9cf{align-items:center;display:inline-flex}.cache-token-operator.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;font-size:24px;font-weight:600;line-height:1}.cache-token-marker.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;margin-left:2px;font-size:14px;font-weight:700}.prompt-cache-gauge.svelte-6tr9cf{width:120px;height:60px;margin:8px auto 0;position:relative;overflow:hidden}.prompt-cache-gauge.svelte-6tr9cf canvas{display:block}.prompt-cache-gauge-value.svelte-6tr9cf{text-align:center;color:var(--text);font-size:18px;font-weight:700;line-height:1;position:absolute;bottom:4px;left:0;right:0}@media (width<=768px){.provider-status-flag.svelte-6tr9cf{grid-column:span 1}}.mcp-servers-flag.svelte-6tr9cf{grid-column:span 1}.cache-meter-header.svelte-1yzecxj{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:16px;display:flex}.cache-meter-header.svelte-1yzecxj h3{font-size:16px;font-weight:600}.cache-meter-subtitle.svelte-1yzecxj{color:var(--text-muted);font-size:13px}.cache-meter-bar.svelte-1yzecxj{background:var(--bg-surface-hover);border-radius:6px;width:100%;height:28px;display:flex;overflow:hidden}.cache-meter-segment.svelte-1yzecxj{justify-content:center;align-items:center;min-width:3px;height:100%;transition:width .3s;display:flex;overflow:hidden}.cache-meter-segment-label.svelte-1yzecxj{color:#fff;white-space:nowrap;text-shadow:0 1px 2px #00000073;font-size:12px;font-weight:600;line-height:1}.cache-meter-segment.svelte-1yzecxj+.cache-meter-segment:where(.svelte-1yzecxj){box-shadow:-1px 0 0 var(--bg-surface)}.cache-meter-bar.is-empty.svelte-1yzecxj{background:var(--bg-surface-hover);justify-content:center;align-items:center;height:auto;min-height:28px;padding:6px 12px}.cache-meter-legend.svelte-1yzecxj{flex-wrap:wrap;gap:10px 24px;margin-top:16px;display:flex}.cache-meter-legend-item.svelte-1yzecxj{align-items:center;gap:8px;font-size:13px;display:flex}.cache-meter-swatch.svelte-1yzecxj{border-radius:3px;flex-shrink:0;width:12px;height:12px}.cache-meter-legend-label.svelte-1yzecxj{color:var(--text)}.cache-meter-legend-pct.svelte-1yzecxj{color:var(--text);font-weight:600}.cache-meter-legend-tokens.svelte-1yzecxj{color:var(--text-muted)}.cache-meter-empty.svelte-1yzecxj{color:var(--text-muted);text-align:center;font-size:13px}.spinner.svelte-b54l9o{width:var(--spinner-size);height:var(--spinner-size);border:2px solid var(--border,#80808059);border-top-color:var(--accent,currentColor);border-radius:50%;flex:none;animation:.7s linear infinite svelte-b54l9o-spinner-rotate;display:inline-block}@keyframes svelte-b54l9o-spinner-rotate{to{transform:rotate(360deg)}}.contribution-calendar-section.svelte-3hfxuq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:24px;padding:24px}.contribution-calendar-header.svelte-3hfxuq{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.contribution-calendar-header.svelte-3hfxuq h3{font-size:16px;font-weight:600}.contribution-calendar-grid-wrapper.svelte-3hfxuq{gap:8px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq{flex-direction:column;gap:2px;padding-top:22px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq span{height:13px;color:var(--text-muted);text-align:right;min-width:28px;font-size:10px;line-height:13px}.contribution-calendar-scroll.svelte-3hfxuq{--contribution-week-size:13px;--contribution-week-gap:2px;flex:1;min-width:0;overflow-x:auto}.contribution-calendar-months.svelte-3hfxuq{grid-auto-columns:var(--contribution-week-size);gap:var(--contribution-week-gap);grid-auto-flow:column;height:16px;margin-bottom:6px;display:grid}.contribution-calendar-month-label.svelte-3hfxuq{color:var(--text-muted);white-space:nowrap;font-size:10px}.contribution-calendar-grid.svelte-3hfxuq{gap:var(--contribution-week-gap);display:flex}.contribution-calendar-week.svelte-3hfxuq{flex-direction:column;gap:2px;display:flex}.contribution-calendar-cell.svelte-3hfxuq{width:var(--contribution-week-size);height:var(--contribution-week-size);background:var(--cal-level-0);border-radius:2px}.contribution-calendar-cell.level-1.svelte-3hfxuq{background:var(--cal-level-1)}.contribution-calendar-cell.level-2.svelte-3hfxuq{background:var(--cal-level-2)}.contribution-calendar-cell.level-3.svelte-3hfxuq{background:var(--cal-level-3)}.contribution-calendar-cell.level-4.svelte-3hfxuq{background:var(--cal-level-4)}.contribution-calendar-cell.level-5.svelte-3hfxuq{background:var(--cal-level-5)}.contribution-calendar-cell.level-6.svelte-3hfxuq{background:var(--cal-level-6)}.contribution-calendar-cell.level-7.svelte-3hfxuq{background:var(--cal-level-7)}.contribution-calendar-cell.level-8.svelte-3hfxuq{background:var(--cal-level-8)}.contribution-calendar-cell.level-9.svelte-3hfxuq{background:var(--cal-level-9)}.contribution-calendar-cell.level-10.svelte-3hfxuq{background:var(--cal-level-10)}.contribution-calendar-cell.empty.svelte-3hfxuq{background:0 0}.contribution-calendar-footer.svelte-3hfxuq{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.contribution-calendar-meta.svelte-3hfxuq{flex-direction:column;gap:4px;display:flex}.contribution-calendar-summary.svelte-3hfxuq{color:var(--text-muted);font-size:12px}.contribution-calendar-legend.svelte-3hfxuq{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.contribution-calendar-legend.svelte-3hfxuq .contribution-calendar-cell:where(.svelte-3hfxuq){cursor:default;width:11px;height:11px}.contribution-calendar-tooltip.svelte-3hfxuq{z-index:200;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);white-space:nowrap;pointer-events:none;border-radius:4px;padding:4px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;position:fixed;transform:translate(-50%);box-shadow:0 4px 12px #0003}@media (width<=768px){.contribution-calendar-day-labels.svelte-3hfxuq{display:none}.contribution-calendar-section.svelte-3hfxuq{padding:16px}.contribution-calendar-footer.svelte-3hfxuq{flex-direction:column;align-items:flex-start}}.inline-help-toggle.is-open.svelte-y40or3{color:var(--text);background:0 0}.inline-help-toggle.is-open.svelte-y40or3 .inline-help-toggle-icon{transform:rotate(540deg)}.audit-stats-section.svelte-14e9yan{margin-top:24px}.audit-stats-header.svelte-14e9yan{align-items:flex-start}.audit-stats-kpis.svelte-14e9yan{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.audit-stats-kpi.svelte-14e9yan{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.audit-stats-kpi-value.svelte-14e9yan{color:var(--text);font-size:13px}.audit-stats-kpi-dot.svelte-14e9yan{border-radius:2px;flex-shrink:0;width:8px;height:8px}.audit-stats-dot-2xx.svelte-14e9yan{background:var(--success)}.audit-stats-dot-4xx.svelte-14e9yan{background:var(--warning)}.audit-stats-dot-5xx.svelte-14e9yan{background:var(--danger)}.provider-status-details.svelte-6y9wjv{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .28s,opacity .22s;display:grid}.provider-status-details.is-expanded.svelte-6y9wjv{opacity:1;grid-template-rows:1fr}.provider-status-details.is-collapsed.svelte-6y9wjv{pointer-events:none}.provider-status-details-inner.svelte-6y9wjv{flex-direction:column;gap:14px;min-height:0;display:flex;overflow:hidden}.provider-status-reason.svelte-6y9wjv{color:var(--text-muted);font-size:13px}.provider-status-error.svelte-6y9wjv{color:var(--danger);overflow-wrap:break-word;font-size:12px}.provider-status-config-label.svelte-6y9wjv{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-config.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}.provider-status-config-row.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-config-value.svelte-6y9wjv{color:var(--text);overflow-wrap:break-word;font-size:13px;display:block}.provider-status-health.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-bottom:12px;padding-top:12px;display:flex}.provider-status-health-state.svelte-6y9wjv{border:1px solid var(--border);border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.provider-status-health-state.is-healthy.svelte-6y9wjv{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-health-state.is-degraded.svelte-6y9wjv{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-health-state.is-unhealthy.svelte-6y9wjv{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-health-models.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-health-model.svelte-6y9wjv{color:var(--text);justify-content:space-between;gap:8px;font-size:13px;display:flex}.provider-status-health-model.is-flagged.svelte-6y9wjv{color:var(--danger)}.provider-status-health-model-name.svelte-6y9wjv{overflow-wrap:anywhere}.provider-status-health-model-stats.svelte-6y9wjv{white-space:nowrap;color:var(--text-muted)}.provider-status-health-model.is-flagged.svelte-6y9wjv .provider-status-health-model-stats:where(.svelte-6y9wjv){color:var(--danger);font-weight:700}.provider-status-card.svelte-nopjmh{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:18px;display:flex}.provider-status-card-toggle.svelte-nopjmh{border:0;border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin:auto -18px -18px;padding:7px 0;transition:background .15s,color .15s;display:flex}.provider-status-card-toggle.svelte-nopjmh:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text)}.provider-status-card-toggle.svelte-nopjmh:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:-2px}.provider-status-card-toggle.svelte-nopjmh .provider-status-card-toggle-icon{width:16px;height:16px;transition:transform .28s;display:block}.provider-status-card-toggle.is-expanded.svelte-nopjmh .provider-status-card-toggle-icon{transform:rotate(180deg)}.provider-status-card-head.svelte-nopjmh{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.provider-status-name.svelte-nopjmh{letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:16px;font-weight:700;display:flex}.provider-doc-help.svelte-nopjmh{align-self:center;text-decoration:none}.provider-status-name-type.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-pill.svelte-nopjmh{border:1px solid var(--border);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.provider-status-pill.is-healthy.svelte-nopjmh{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-pill.is-degraded.svelte-nopjmh{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-pill.is-unhealthy.svelte-nopjmh{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-meta.svelte-nopjmh{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.provider-status-meta-item.svelte-nopjmh{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.provider-status-meta-label.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-meta-value.svelte-nopjmh{color:var(--text);font-size:14px}@media (width<=768px){.provider-status-meta.svelte-nopjmh{grid-template-columns:1fr}}.provider-status-section-loading.svelte-1kx3uw4{justify-content:center;padding:24px 0;display:flex}.provider-status-section-header.svelte-1kx3uw4{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.provider-status-toggle.svelte-1kx3uw4{background:var(--bg-surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.provider-status-toggle.svelte-1kx3uw4:hover{background:var(--bg-surface-hover)}.provider-status-toggle.svelte-1kx3uw4:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.provider-status-toggle-copy.svelte-1kx3uw4{white-space:nowrap}.provider-status-toggle-track.svelte-1kx3uw4{background:color-mix(in srgb, var(--text-muted) 35%, var(--border));border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background-color .2s;position:relative}.provider-status-toggle-track.is-active.svelte-1kx3uw4{background:color-mix(in srgb, var(--accent) 82%, var(--bg-surface))}.provider-status-toggle-thumb.svelte-1kx3uw4{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000003d}.provider-status-toggle-track.is-active.svelte-1kx3uw4 .provider-status-toggle-thumb:where(.svelte-1kx3uw4){transform:translate(14px)}.provider-status-grid.svelte-1kx3uw4{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:16px;display:grid}@media (width<=768px){.provider-status-section-header.svelte-1kx3uw4{flex-direction:column;align-items:flex-start}.provider-status-toggle.svelte-1kx3uw4{justify-content:space-between;width:100%}}.filter-input-wrap.svelte-30xz1k{flex:1;width:100%;min-width:min(400px,100%);display:flex;position:relative}.filter-input.svelte-30xz1k{flex:1;width:100%;min-width:0;padding-left:34px}.filter-input-clearable.svelte-30xz1k{padding-right:34px}.filter-input-wrap.svelte-30xz1k .filter-input-icon{width:14px;height:14px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.filter-input-clear.svelte-30xz1k{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.filter-input-clear.svelte-30xz1k:hover{background:var(--bg-surface-hover);color:var(--text)}.filter-input-clear.svelte-30xz1k svg{width:14px;height:14px}.usage-page-filters.svelte-1oi6ywk{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.usage-page-filters.svelte-1oi6ywk .usage-log-select{flex:0 auto}.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-session{flex:220px;min-width:180px;max-width:360px}@media (width<=768px){.usage-page-filters.svelte-1oi6ywk .usage-log-select,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-session{flex:100%;max-width:none}}.pro-saved-value.svelte-1qiwzdu{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.pro-saved-delta.svelte-1qiwzdu{color:var(--success);letter-spacing:0;font-size:13px;font-weight:600}.pagination-info.svelte-1imew3q{color:var(--text-muted);font-size:13px}.pagination-buttons.svelte-1imew3q{gap:8px;display:flex}.session-id-chip.svelte-1pkjhcn{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg));max-width:290px;color:var(--accent-strong,var(--accent));vertical-align:middle;border-radius:999px;align-items:stretch;display:inline-flex;overflow:hidden}.session-id-chip.svelte-1pkjhcn:hover,.session-id-chip.active.svelte-1pkjhcn{background:color-mix(in srgb, var(--accent) 20%, var(--bg));border-color:var(--accent)}.session-id-filter.svelte-1pkjhcn,.session-id-copy.svelte-1pkjhcn{color:inherit;cursor:pointer;background:0 0;border:0}.session-id-filter.svelte-1pkjhcn{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:4px 8px;font-size:12px;overflow:hidden}.session-id-copy.svelte-1pkjhcn{border-left:1px solid color-mix(in srgb, var(--accent) 25%, var(--border));justify-content:center;align-items:center;width:28px;padding:0 7px;display:inline-flex}.session-id-copy.svelte-1pkjhcn:hover,.session-id-copy.copied.svelte-1pkjhcn{background:color-mix(in srgb, var(--accent) 18%, transparent)}.session-id-copy.svelte-1pkjhcn svg{width:13px;height:13px}.session-id-chip.compact.svelte-1pkjhcn{max-width:220px}.session-id-chip.compact.svelte-1pkjhcn .session-id-filter:where(.svelte-1pkjhcn){padding:3px 7px;font-size:11px}.session-id-chip.compact.svelte-1pkjhcn .session-id-copy:where(.svelte-1pkjhcn){width:25px;padding:0 6px}.usage-breakdown-loading.svelte-1kee4g8{justify-content:center;align-items:center;min-height:120px;display:flex}.chart-view-toggle.svelte-1kee4g8{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.chart-view-btn.svelte-1kee4g8{width:30px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.chart-view-btn.svelte-1kee4g8:hover{color:var(--text)}.chart-view-btn.active.svelte-1kee4g8{background:var(--accent);color:#fff}.chart-view-btn.svelte-1kee4g8 svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.usage-chart-table-wrapper.svelte-1kee4g8{-webkit-overflow-scrolling:touch;margin-top:0;overflow-x:auto}.usage-chart-data-table.svelte-1kee4g8{min-width:max-content}.usage-chart-data-table.svelte-1kee4g8 th,.usage-chart-data-table.svelte-1kee4g8 td{white-space:nowrap}.usage-log-loading.svelte-hg4ill{justify-content:center;align-items:center;min-height:120px;display:flex}.usage-log-section.svelte-hg4ill{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.usage-log-section.svelte-hg4ill h3{margin-bottom:16px;font-size:16px;font-weight:600}.usage-log-section.svelte-hg4ill .table-wrapper{overflow-x:auto}.usage-log-toolbar.svelte-hg4ill{gap:12px;margin-bottom:16px;display:grid}.usage-filter-row.svelte-hg4ill{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:12px;display:grid}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1/-1}.usage-filter-row-options.svelte-hg4ill{grid-template-columns:1fr}.usage-log-checkbox.svelte-hg4ill{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.usage-log-checkbox.svelte-hg4ill input{cursor:pointer;width:16px;height:16px}.usage-ts.svelte-hg4ill{white-space:nowrap;font-size:12px}.usage-log-row-cached.svelte-hg4ill td{opacity:.75;font-style:italic}.usage-log-row-cached.svelte-hg4ill .usage-log-cache-cell:where(.svelte-hg4ill){font-weight:700}.caveat-icon.svelte-hg4ill{color:var(--warning);cursor:help;margin-left:4px;font-size:14px}@media (width<=768px){.usage-log-toolbar.svelte-hg4ill{gap:10px}.usage-filter-row.svelte-hg4ill{grid-template-columns:1fr}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1}.usage-log-table.svelte-hg4ill{display:block;overflow-x:auto}}.usage-sticky-controls.svelte-spwie6{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.usage-charts-grid.svelte-spwie6{flex-wrap:wrap;gap:24px;margin-bottom:24px;display:flex}.usage-charts-grid.svelte-spwie6 .model-chart-section{flex:calc(50% - 24px);min-width:420px;margin-bottom:0}.usage-session-breakdown-wrap.svelte-spwie6{margin-bottom:24px}.usage-session-breakdown-wrap.svelte-spwie6 .session-usage-breakdown{width:100%;margin-bottom:0}@media (width<=520px){.usage-charts-grid.svelte-spwie6 .model-chart-section{min-width:0}}.loading-state.svelte-hzxv1d{min-height:var(--loading-state-min-height,64px);color:var(--text-muted);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.budget-bar-text-row-on-fill.svelte-1jm56wo{color:#fff;clip-path:inset(0 calc(100% - var(--budget-progress,0%)) 0 0)}.budget-bar-text-start.svelte-1jm56wo{left:8px;transform:translateY(-50%)}.budget-bar-track-period-custom.svelte-1jm56wo .budget-bar-text-row-on-fill:where(.svelte-1jm56wo){color:#3f332a}.budget-override-dialog.svelte-13ryo7h{max-width:460px}.budget-sort-control.svelte-1752fqe{align-items:center;gap:8px}.budget-sort-control.svelte-1752fqe label{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.budget-sort-select.svelte-1752fqe{background-color:var(--bg-surface);min-width:132px}.budget-sort-select.svelte-1752fqe:hover{background-color:var(--bg-surface-hover)}.model-name-cell.svelte-1iynym{flex-direction:column;gap:8px;display:flex}.model-name-primary.svelte-1iynym{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.model-name-secondary.svelte-1iynym{color:var(--text-muted);font-size:12px}.model-redirect-remove-btn.svelte-1iynym{appearance:none;color:var(--danger);cursor:pointer;background:0 0;border:0;margin-left:4px;padding:0;font-size:11px}.model-redirect-remove-btn.svelte-1iynym:hover:not(:disabled){text-decoration:underline}.model-redirect-remove-btn.svelte-1iynym:disabled{opacity:.45;cursor:default}.model-kind-icon.svelte-1iynym{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border));background:var(--bg);width:24px;height:24px;color:var(--accent);border-radius:999px;flex:0 0 24px;justify-content:center;align-items:center;display:inline-flex}.model-kind-icon-svg.svelte-1iynym{width:14px;height:14px}.model-row-actions.svelte-1iynym{text-align:right;width:170px}@media (width<=768px){.model-name-primary.svelte-1iynym{flex-direction:column;align-items:flex-start}}.provider-group-row.svelte-1911hy6 td{background:color-mix(in srgb, var(--accent) 6%, var(--bg));padding-top:12px;padding-bottom:12px}.provider-group-row.svelte-1911hy6:hover td{background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.provider-group-header.svelte-1911hy6{justify-content:space-between;align-items:center;gap:16px;display:flex}.provider-group-meta.svelte-1911hy6{flex-direction:column;gap:4px;min-width:0;display:flex}.provider-group-title.svelte-1911hy6{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.provider-group-type.svelte-1911hy6,.provider-group-count.svelte-1911hy6,.provider-group-summary.svelte-1911hy6{color:var(--text-muted);font-size:12px}@media (width<=768px){.provider-group-header.svelte-1911hy6{flex-direction:column;align-items:flex-start}}.vm-session-affinity-checkbox.svelte-d1j6xw{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.vm-session-affinity-checkbox.svelte-d1j6xw input:where(.svelte-d1j6xw){accent-color:var(--accent);cursor:pointer}.pricing-override-rows.svelte-u8snes{gap:12px;display:grid}.pricing-override-row.svelte-u8snes{grid-template-columns:minmax(220px,1fr) minmax(130px,180px) 32px;align-items:end;gap:12px;display:grid}.pricing-override-row-actions.svelte-u8snes{justify-content:flex-start;display:flex}.pricing-override-tier-note.svelte-u8snes{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:6px;padding:10px 12px;font-size:13px}.pricing-preview.svelte-u8snes{border:1px solid var(--border);border-radius:6px;overflow:hidden}.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:minmax(150px,1fr) minmax(90px,auto) minmax(130px,.8fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.pricing-preview-header.svelte-u8snes{background:var(--bg);color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.pricing-preview-row.svelte-u8snes{border-top:1px solid var(--border);font-size:13px}.pricing-preview-row-empty.svelte-u8snes{color:var(--text-muted);grid-template-columns:1fr}@media (width<=768px){.pricing-override-row.svelte-u8snes,.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:1fr}}.failover-drafts-editor.svelte-1n87bip{flex-direction:column;gap:16px;display:flex}.failover-draft-header-actions.svelte-1n87bip{flex:none;align-items:center;gap:10px;display:flex}.failover-draft-counter.svelte-1n87bip{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.failover-draft-toolbar.svelte-1n87bip{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.failover-draft-toolbar.svelte-1n87bip .filter-input-wrap,.failover-draft-toolbar.svelte-1n87bip .filter-input{min-width:0}.failover-draft-toggle-all.svelte-1n87bip{flex:none}.failover-draft-list.svelte-1n87bip{flex-direction:column;gap:8px;max-height:min(52vh,430px);padding-right:4px;display:flex;overflow-y:auto}.failover-draft-row.svelte-1n87bip{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:10px;display:grid}.failover-draft-row.svelte-1n87bip:hover{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));background:var(--bg-surface-hover)}.failover-draft-row.svelte-1n87bip input{width:16px;height:16px;margin-top:2px}.failover-draft-copy.svelte-1n87bip{gap:4px;min-width:0;display:grid}.failover-draft-source.svelte-1n87bip,.failover-draft-targets.svelte-1n87bip{overflow-wrap:anywhere}.failover-draft-targets.svelte-1n87bip{color:var(--text-muted);font-size:12px}.failover-drafts-empty.svelte-1n87bip{align-items:center;min-height:96px;display:flex}.failover-draft-actions.svelte-1n87bip{margin-top:0}.category-tabs.svelte-scpjps{-webkit-overflow-scrolling:touch;align-items:center;gap:4px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.category-tab.svelte-scpjps{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.category-tab.svelte-scpjps:hover{color:var(--text);background:var(--bg-surface-hover)}.category-tab.active.svelte-scpjps{background:var(--accent);color:#fff;border-color:var(--accent)}.category-tab.svelte-scpjps .tab-count:where(.svelte-scpjps){background:#ffffff26;border-radius:9px;justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 5px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.category-tab.svelte-scpjps:not(.active) .tab-count:where(.svelte-scpjps){background:var(--bg)}@media (width<=768px){.category-tabs.svelte-scpjps{gap:4px}.category-tab.svelte-scpjps{padding:5px 10px;font-size:12px}}.workflow-pipeline-meta.svelte-1viff7o{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 86%, transparent);min-width:0;max-width:calc(100% - 28px);color:var(--text-muted);white-space:nowrap;appearance:none;cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:0;padding:2px 10px;font-size:12px;font-weight:500;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex;position:absolute;top:12px;right:14px;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover,.workflow-pipeline-meta.svelte-1viff7o:focus-visible{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface));color:color-mix(in srgb, var(--accent) 74%, var(--text))}.workflow-pipeline-meta.svelte-1viff7o:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.workflow-pipeline-meta-label.svelte-1viff7o{flex:none;font-weight:700}.workflow-pipeline-meta-placeholder.svelte-1viff7o{opacity:1;flex:none;max-width:3ch;margin-left:4px;transition:max-width .18s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta-value.svelte-1viff7o{opacity:0;text-overflow:clip;flex:0 auto;max-width:0;margin-left:0;transition:max-width .22s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o){opacity:0;max-width:0;margin-left:0}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o){opacity:1;max-width:42ch;margin-left:4px}.workflow-pipeline-meta-icon.svelte-1viff7o{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:14px;margin-left:0;line-height:0;transition:width .18s,margin-left .18s,opacity .15s,transform .18s;display:inline-flex;overflow:hidden;transform:translate(4px)translateY(1px)scale(.84)}.workflow-pipeline-meta-icon.svelte-1viff7o svg{width:14px;height:14px}.workflow-pipeline-meta-copied.svelte-1viff7o,.workflow-pipeline-meta-copied.svelte-1viff7o:hover,.workflow-pipeline-meta-copied.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-icon:where(.svelte-1viff7o){opacity:1;width:14px;margin-left:6px;transform:translateY(1px)}.workflow-pipeline-meta-error.svelte-1viff7o,.workflow-pipeline-meta-error.svelte-1viff7o:hover,.workflow-pipeline-meta-error.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 34%, var(--border));color:var(--danger)}.workflow-pipeline.svelte-nbptrg{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);flex-direction:column;gap:0;margin-bottom:12px;padding:18px 20px 20px;display:flex;position:relative}.workflow-pipeline-has-meta.svelte-nbptrg{padding-top:42px}.workflow-pipeline-row.svelte-nbptrg{align-items:center;width:100%;min-width:0;display:flex;overflow-x:auto}.workflow-node-icon.svelte-nbptrg{border-radius:var(--radius);background:var(--bg);width:28px;height:28px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.workflow-node-icon.svelte-nbptrg svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.workflow-node-label.svelte-nbptrg{letter-spacing:.03em;color:var(--text);white-space:nowrap;font-size:11px;font-weight:700;line-height:1.2}.workflow-node-sub.svelte-nbptrg{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:120px;font-size:10px;font-weight:500;line-height:1.2;font-family:var(--font-mono,ui-monospace, monospace);overflow:hidden}.workflow-node-badge.svelte-nbptrg{border-radius:var(--radius);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);align-items:center;padding:2px 7px;font-size:9px;font-weight:800;line-height:1.5;display:inline-flex}.workflow-node-endpoint.svelte-nbptrg{border-radius:var(--radius);border-color:var(--border);background:var(--bg-surface);flex-direction:row;gap:7px;min-width:auto;padding:10px 14px}.workflow-node-icon-endpoint.svelte-nbptrg{border-radius:var(--radius);width:auto;height:auto;color:var(--text-muted);background:0 0;justify-content:flex-start;padding:0}.workflow-node-icon-endpoint.svelte-nbptrg svg{width:14px;height:14px}.workflow-node-endpoint.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted);font-size:11px;font-weight:600}.workflow-node-feature.svelte-nbptrg{border-color:color-mix(in srgb, var(--accent) 46%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface))}.workflow-node-feature.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--accent) 70%, var(--text-muted))}.workflow-node-ai.svelte-nbptrg{border-radius:var(--radius);gap:6px;min-width:96px;padding:12px 16px}.workflow-async-section.svelte-nbptrg{justify-content:flex-end;align-items:center;gap:0;width:100%;min-width:0;margin-top:10px;display:flex}.workflow-async-turn.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 60px;height:2px;position:relative}.workflow-async-turn.svelte-nbptrg:before{content:"";background:color-mix(in srgb, var(--text-muted) 40%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);width:7px;height:9px;position:absolute;top:50%;left:-7px;transform:translateY(-50%)}.workflow-async-turn.svelte-nbptrg:after{content:"";border-right:2px dashed color-mix(in srgb, var(--text-muted) 40%, var(--border));height:16px;position:absolute;bottom:1px;right:0}.workflow-async-row.svelte-nbptrg{align-items:center;min-width:0;margin-right:7px;display:flex}.workflow-conn-async.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 24px;width:24px}.workflow-conn-async.svelte-nbptrg:after{background:color-mix(in srgb, var(--text-muted) 45%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);left:-1px;right:auto}.workflow-node-async.svelte-nbptrg{border-radius:var(--radius);border-style:dashed;flex-direction:row;gap:7px;min-width:auto;padding:7px 12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){border-radius:var(--radius);width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg) svg{width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){font-size:10px;font-weight:700}.workflow-async-label.svelte-nbptrg{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);opacity:.55;white-space:nowrap;flex-shrink:0;align-items:center;margin-left:8px;font-size:9px;font-weight:800;display:inline-flex}.workflow-node-success.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 18%, var(--bg));color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 85%, var(--text))}.workflow-node-success.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 74%, var(--text-muted))}.workflow-node-success.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 14%, var(--bg));border-color:color-mix(in srgb, var(--success) 38%, var(--border));color:var(--success)}.workflow-node-current.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 16%, var(--bg));color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 85%, var(--text))}.workflow-node-current.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 72%, var(--text-muted))}.workflow-node-current.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 13%, var(--bg));border-color:color-mix(in srgb, var(--info) 36%, var(--border));color:var(--info)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 85%, var(--text))}.workflow-node-warning.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 72%, var(--text-muted))}.workflow-node-warning.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 38%, var(--border));color:var(--warning)}.workflow-node-error.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--danger) 14%, var(--bg));color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 85%, var(--text))}.workflow-node-error.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 72%, var(--text-muted))}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 12%, var(--bg));color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg),.workflow-node-neutral.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--text-muted) 84%, var(--border))}.workflow-node-neutral.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 10%, var(--bg));border-color:color-mix(in srgb, var(--text-muted) 28%, var(--border));color:var(--text-muted)}.workflow-conn-hit.svelte-nbptrg,.workflow-conn-hit.svelte-nbptrg:after{background:color-mix(in srgb, var(--success) 58%, var(--border))}.workflow-conn-dim.svelte-nbptrg,.workflow-conn-dim.svelte-nbptrg:after{background:color-mix(in srgb, var(--border) 75%, transparent)}.workflow-node-success.svelte-nbptrg{border-color:color-mix(in srgb, var(--success) 52%, var(--border));background:color-mix(in srgb, var(--success) 9%, var(--bg-surface))}.workflow-node-current.svelte-nbptrg{border-color:color-mix(in srgb, var(--info) 56%, var(--border));background:color-mix(in srgb, var(--info) 10%, var(--bg-surface))}.workflow-node-warning.svelte-nbptrg{border-color:color-mix(in srgb, var(--warning) 52%, var(--border));background:color-mix(in srgb, var(--warning) 9%, var(--bg-surface))}.workflow-node-error.svelte-nbptrg{border-color:color-mix(in srgb, var(--danger) 52%, var(--border));background:color-mix(in srgb, var(--danger) 9%, var(--bg-surface))}.workflow-node-neutral.svelte-nbptrg{border-color:color-mix(in srgb, var(--text-muted) 40%, var(--border));background:color-mix(in srgb, var(--text-muted) 8%, var(--bg-surface))}.workflow-node-skipped.svelte-nbptrg{opacity:.28;position:relative}.workflow-card.svelte-1fo9fvq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:20px;display:flex}.workflow-card-head.svelte-1fo9fvq{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-card-footer.svelte-1fo9fvq{flex-direction:column;align-items:stretch;gap:10px;display:flex}.workflow-card-head.svelte-1fo9fvq h3{font-size:18px;font-weight:700}.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.workflow-card-meta-footer.svelte-1fo9fvq{justify-content:flex-start}.workflow-card-footer.svelte-1fo9fvq .alias-actions-cell{align-self:flex-end}.workflow-card-description.svelte-1fo9fvq{color:var(--text-muted);font-size:14px}.workflow-guardrails.svelte-1fo9fvq{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list.svelte-1fo9fvq{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-item.svelte-1fo9fvq{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}@media (width<=768px){.workflow-card-head.svelte-1fo9fvq,.workflow-card-footer.svelte-1fo9fvq,.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq,.workflow-guardrail-item.svelte-1fo9fvq{flex-direction:column;align-items:flex-start}}.model-editor.workflow-editor{width:min(1080px,100%);margin-bottom:0}.alert-inline-actions.svelte-1bcpzh1{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.workflow-guardrail-editor.svelte-1bcpzh1{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list-editor.svelte-1bcpzh1{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-row.svelte-1bcpzh1{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:stretch;align-items:center;gap:12px;padding:10px 12px;display:flex}.workflow-guardrail-field.svelte-1bcpzh1{flex:auto;min-width:0}.workflow-guardrail-step-field.svelte-1bcpzh1{flex:0 0 120px}.workflow-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-step-input.svelte-1bcpzh1{max-width:120px}@media (width<=768px){.workflow-guardrail-row.svelte-1bcpzh1{flex-direction:column;align-items:flex-start}.workflow-step-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-guardrail-field.svelte-1bcpzh1,.workflow-guardrail-step-field.svelte-1bcpzh1{flex-basis:auto;width:100%}}.workflow-list-loading.svelte-ie2kfk{justify-content:center;align-items:center;gap:8px;display:flex}.workflows-list.svelte-ie2kfk{min-width:0}.workflow-card-grid.svelte-ie2kfk{grid-template-columns:1fr;gap:16px;display:grid}.workflow-page-note.svelte-l8kr26{color:var(--text-muted);margin-top:6px;font-size:14px}.audit-log-toolbar.svelte-1pwbpcm{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;display:grid}.audit-filter-select.svelte-1pwbpcm{grid-column:span 2;min-width:0}.audit-filter-row-search.svelte-1pwbpcm .filter-input-wrap{grid-column:1/-1;max-width:none}.audit-filter-row-controls.svelte-1pwbpcm .audit-filter-select:where(.svelte-1pwbpcm){grid-column:span 2}.audit-filter-row-controls.svelte-1pwbpcm .btn{grid-column:11/-1;justify-self:end;min-width:108px}.audit-clear-btn.svelte-1pwbpcm{justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.audit-clear-btn.svelte-1pwbpcm .table-icon-svg{width:12px;height:12px}@media (width<=768px){.audit-log-toolbar.svelte-1pwbpcm{gap:8px}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:1fr}.audit-filter-row.svelte-1pwbpcm .filter-input-wrap,.audit-filter-row.svelte-1pwbpcm .filter-input,.audit-filter-select.svelte-1pwbpcm,.audit-filter-row.svelte-1pwbpcm .btn{grid-column:auto}}.audit-live-status.svelte-tve6yv{color:var(--text-muted);align-items:center;gap:10px;margin-left:16px;padding-left:6px;font-size:12px;display:inline-flex}.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:1.8s ease-out infinite svelte-tve6yv-audit-live-dot-throb}@keyframes svelte-tve6yv-audit-live-dot-throb{0%{transform:scale(1)}35%{transform:scale(1.35)}70%{transform:scale(1)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:none}}.audit-live-status-text.is-live.svelte-tve6yv{color:var(--success);font-weight:600}.audit-entry-metadata.svelte-hyopt0{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.audit-entry-metadata-label.svelte-hyopt0{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:12px;font-weight:700}.audit-entry-context.svelte-hyopt0{flex-wrap:wrap;flex:auto;gap:8px;display:flex}.audit-alias-badge.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 28%, var(--border));color:var(--accent-strong,var(--accent))}.audit-session-usage-link.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 12%, var(--bg));border-color:color-mix(in srgb, var(--accent) 35%, var(--border));color:var(--accent-strong,var(--accent));cursor:pointer}.audit-session-usage-link.svelte-hyopt0:hover{background:color-mix(in srgb, var(--accent) 22%, var(--bg));border-color:var(--accent)}@media (width<=768px){.audit-entry-metadata.svelte-hyopt0{flex-direction:column;align-items:flex-start;gap:8px}}.audit-attempt-track.svelte-1eu22xn{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.audit-attempt-track-pips.svelte-1eu22xn{align-items:center;gap:3px;display:inline-flex}.audit-attempt-pip.svelte-1eu22xn{background:var(--text-muted);border-radius:2px;width:8px;height:8px}.audit-attempt-pip.audit-attempt-success.svelte-1eu22xn{background:var(--success)}.audit-attempt-pip.audit-attempt-error.svelte-1eu22xn{background:var(--danger)}.audit-attempt-track-count.svelte-1eu22xn{color:var(--text-muted);font-size:11px}.audit-entry-summary.svelte-17mysgz{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;list-style:none;display:flex;position:relative}.audit-entry-summary.svelte-17mysgz::-webkit-details-marker{display:none}.audit-entry-summary-live-in-progress.svelte-17mysgz{background:color-mix(in srgb, var(--info) 7%, var(--bg))}.audit-entry-summary-has-interactions.svelte-17mysgz{padding-right:44px}.audit-entry-summary-live-in-progress.svelte-17mysgz:before{content:"";background:var(--info);pointer-events:none;width:3px;animation:1.2s ease-in-out infinite audit-live-summary-stripe-blink;position:absolute;inset:0 auto 0 0}@media (prefers-reduced-motion:reduce){.audit-entry-summary-live-in-progress.svelte-17mysgz:before{opacity:.78;animation:none}}.audit-entry-left.svelte-17mysgz{align-items:center;gap:8px;min-width:0;display:flex}.audit-entry-right.svelte-17mysgz{color:var(--text-muted);flex-shrink:0;align-items:center;gap:10px;min-height:28px;display:inline-flex}.audit-thread-expander.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);min-width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:3px;padding:0 7px 0 4px;transition:background .1s ease-out,color .1s ease-out;display:inline-flex}.audit-thread-expander.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 12%, var(--bg));color:var(--accent)}.audit-thread-expander.svelte-17mysgz .audit-thread-expander-svg{width:14px;height:14px}.audit-thread-count.svelte-17mysgz{font-size:11px;font-weight:600}.audit-session-usage.svelte-17mysgz{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg));width:28px;height:28px;color:var(--accent-strong,var(--accent));cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.audit-session-usage.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg));border-color:var(--accent)}.audit-session-usage.svelte-17mysgz .audit-session-usage-svg{width:14px;height:14px}.audit-conversation-trigger.svelte-17mysgz{border:0;border-left:1px solid var(--border);background:color-mix(in srgb, var(--accent) 12%, var(--bg));width:32px;height:100%;color:var(--accent);cursor:pointer;border-radius:0;justify-content:center;align-items:center;margin:0;transition:background .1s ease-out,color .1s ease-out;display:inline-flex;position:absolute;inset:0 0 0 auto}.audit-conversation-trigger.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg))}.audit-conversation-trigger-active.svelte-17mysgz{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 28%, var(--bg));border-left:0}.audit-conversation-trigger-active.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 34%, var(--bg))}.audit-conversation-trigger.svelte-17mysgz .audit-conversation-trigger-svg{stroke-linecap:butt;stroke-linejoin:miter;width:18px;height:18px}.audit-path.svelte-17mysgz{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.audit-request-badge.svelte-17mysgz{white-space:nowrap;gap:6px;min-width:0}.audit-timestamp-time.svelte-17mysgz{display:none}.audit-provider-model.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);height:24px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:420px;padding:0 10px;font-size:12px;display:inline-flex;overflow:hidden}@container dashboard-content (width<=699px){.audit-entry-summary.svelte-17mysgz{flex-direction:column;align-items:flex-start}.audit-entry-right.svelte-17mysgz{justify-content:space-between;width:100%}.audit-request-status.svelte-17mysgz,.audit-timestamp-full.svelte-17mysgz{display:none}.audit-timestamp-time.svelte-17mysgz{display:inline}}.audit-pane-split.svelte-1h5puht{grid-template-columns:1fr 2fr;align-items:start;gap:10px 14px;display:grid}.audit-pane-split-single.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}@container dashboard-content (width<=699px){.audit-pane-split.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}}.audit-pane-split.svelte-1h5puht .audit-pane-block-error:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-pane-empty:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-size-warning:where(.svelte-1h5puht){grid-column:1/-1}.audit-pane-block.svelte-1h5puht{min-width:0}.audit-pane-block.svelte-1h5puht>h5{margin-bottom:6px}.audit-pane-block-head.svelte-1h5puht{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.audit-pane-block-title.svelte-1h5puht{align-items:center;gap:8px;min-width:0;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn{background-color:var(--bg-surface);border:1px solid color-mix(in srgb, var(--border) 70%, var(--text) 30%);color:var(--text);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:6px;padding:4px 8px;font-family:inherit;font-size:12px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn:hover:not(:disabled){background:color-mix(in srgb, var(--bg-surface) 80%, var(--text) 20%);border-color:color-mix(in srgb, var(--border) 45%, var(--text) 55%)}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 18%, var(--bg-surface))}.audit-json.svelte-1h5puht{background:var(--bg-surface);border:1px solid var(--border);box-sizing:border-box;white-space:pre;max-width:100%;max-height:220px;color:var(--text);border-radius:6px;padding:10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;overflow:auto}.audit-pane-error-message.svelte-1h5puht{color:var(--danger)}.audit-pane-clickable-preview.svelte-1h5puht{cursor:pointer}.audit-pane-clickable-preview.svelte-1h5puht:hover{background:color-mix(in srgb, var(--danger) 8%, transparent)}.audit-json-body.svelte-1h5puht{white-space:pre;overflow-wrap:normal}.audit-pane-empty.svelte-1h5puht{text-align:left;padding:8px 0 0}.audit-pane-pending.svelte-1h5puht{align-items:center;gap:8px;display:flex}.audit-pane-streaming.svelte-1h5puht{letter-spacing:.02em;color:var(--text-muted);align-items:center;gap:7px;padding-left:4px;font-size:11px;font-weight:600;display:inline-flex}.audit-size-warning.svelte-1h5puht{color:var(--warning);margin-top:8px;font-size:12px}.audit-request-response.svelte-1bc5vi5{margin-top:4px}.audit-pane-tablist.svelte-1bc5vi5{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;display:flex}.audit-pane-tab.svelte-1bc5vi5{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-bottom-color:#0000;border-radius:6px 6px 0 0;align-items:center;gap:8px;margin-bottom:-1px;margin-right:12px;padding:8px 12px;font-family:inherit;font-size:13px;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.audit-pane-tab.svelte-1bc5vi5:not(.audit-pane-tab-active):hover{color:var(--text);background:color-mix(in srgb, var(--text) 5%, transparent)}.audit-pane-tab-active.svelte-1bc5vi5{color:var(--text);border-color:var(--border);border-bottom-color:var(--bg);background:var(--bg)}.audit-pane-tab-label.svelte-1bc5vi5{font-weight:600}.audit-pane-tabpanel.svelte-1bc5vi5{min-width:0}.audit-pane-icon.svelte-1bc5vi5{color:var(--text-muted);flex:none;align-items:center;display:inline-flex}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-request{color:var(--accent)}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-response{color:var(--info)}.audit-pane-icon.svelte-1bc5vi5 svg{width:16px;height:16px}.audit-pane-seq.svelte-1bc5vi5{color:var(--text-muted);font-size:12px}.audit-pane-kind.svelte-1bc5vi5{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-primary{color:var(--text-muted)}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-failover{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-retry{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 30%, var(--border))}.audit-savings-pill.svelte-1bc5vi5{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);color:var(--prompt-cache-color);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;font-weight:700;display:inline-flex}.audit-step-pill.svelte-1bc5vi5{border:1px dashed var(--border);color:var(--text-muted);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;display:inline-flex}.audit-entry.svelte-cmjgwr{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);transition:background .12s ease-out,border-color .12s ease-out;overflow:hidden}.audit-entry-interactions-open.svelte-cmjgwr{border-width:2px;border-color:color-mix(in srgb, var(--prompt-cache-color) 38%, var(--border))}.audit-entry-details.svelte-cmjgwr{border-top:1px solid var(--border);background:var(--bg-surface);padding:12px;overflow:hidden}.audit-thread.svelte-pneivi{flex-direction:column;gap:10px;display:flex}.audit-thread-children.svelte-pneivi{flex-direction:column;gap:10px;margin-left:26px;display:flex}.audit-thread-child.svelte-pneivi,.audit-thread-loading.svelte-pneivi{position:relative}.audit-thread-child.svelte-pneivi:before,.audit-thread-loading.svelte-pneivi:before{content:"";border-left:1px solid var(--border);border-bottom:1px solid var(--border);pointer-events:none;border-bottom-left-radius:6px;width:12px;height:calc(50% + 10px);position:absolute;top:-10px;left:-14px}.audit-thread-child.svelte-pneivi:not(:last-child):after{content:"";border-left:1px solid var(--border);pointer-events:none;position:absolute;top:50%;bottom:-10px;left:-14px}.audit-thread-loading.svelte-pneivi{padding:6px 0 6px 4px;display:flex}.audit-thread-more.svelte-pneivi{color:var(--text-muted);padding-left:4px;font-size:12px}.audit-log-loading.svelte-1nhcbov{justify-content:center;padding:2rem 0;display:flex}.audit-list-toolbar.svelte-1nhcbov{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.audit-list-toolbar-left.svelte-1nhcbov{flex-wrap:wrap;align-items:center;gap:16px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov input:where(.svelte-1nhcbov){accent-color:var(--accent);cursor:pointer}.audit-retention-note.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-retention-highlight.svelte-1nhcbov{color:var(--text);font-weight:600}.audit-log-section.svelte-1nhcbov{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.audit-log-summary.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-log-list.svelte-1nhcbov{flex-direction:column;gap:10px;display:flex}.settings-guardrails-list.svelte-1bvx512{min-width:0}.settings-guardrail-type-pill.svelte-1bvx512{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.settings-guardrail-summary.svelte-1bvx512{color:var(--text);font-size:14px;line-height:1.45}.settings-guardrail-description.svelte-1bvx512{color:var(--text-muted);margin-top:6px;font-size:12px}.model-editor.guardrails-editor-wide{width:min(1080px,100%)}.form-field-fieldset.svelte-s964s3{border:0;min-inline-size:0;margin:0;padding:0}.form-field-legend.svelte-s964s3{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;padding:0;font-size:12px;font-weight:600}.model-editor.settings-guardrails-editor{min-width:0}.settings-guardrails-hero.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));border-radius:var(--radius);background:radial-gradient(circle at top right, color-mix(in srgb, var(--accent-hover) 18%, transparent), transparent 42%), radial-gradient(circle at bottom left, color-mix(in srgb, var(--accent) 16%, transparent), transparent 40%), var(--bg-surface);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding:24px;display:flex}.settings-kicker.svelte-5x874c{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.settings-guardrails-hero.svelte-5x874c h3{margin-bottom:8px}.settings-guardrails-hero.svelte-5x874c p:last-child{color:var(--text-muted);margin-bottom:0}.settings-guardrails-meta.svelte-5x874c{gap:12px;display:flex}.settings-guardrails-stat.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));background:color-mix(in srgb, var(--bg-surface-hover) 76%, transparent);border-radius:16px;min-width:110px;padding:14px 16px}.settings-guardrails-stat-label.svelte-5x874c{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.settings-guardrails-stat.svelte-5x874c strong{font-size:24px;font-weight:700}@media (width<=768px){.settings-guardrails-hero.svelte-5x874c{flex-direction:column}.settings-guardrails-meta.svelte-5x874c{width:100%}.settings-guardrails-stat.svelte-5x874c{flex:1 1 0}}.mcp-catalog-section.svelte-1xqrzco{margin-top:18px}.mcp-catalog-section.svelte-1xqrzco .form-field-label{margin-bottom:8px}.mcp-catalog-subtitle.svelte-1xqrzco{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mcp-catalog-list.svelte-1xqrzco{flex-direction:column;gap:12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.mcp-catalog-item-name.svelte-1xqrzco{overflow-wrap:anywhere;font-size:13px}.mcp-catalog-item-aggregated.svelte-1xqrzco{color:var(--text-muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px}.mcp-catalog-item-description.svelte-1xqrzco{color:var(--text-muted);margin:2px 0 0;font-size:13px;font-weight:400}.mcp-server-sub-counts.svelte-ah8nrt{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:280px;margin-top:4px;font-size:11px;overflow:hidden}.mcp-server-table-wrapper.svelte-ah8nrt{overflow-x:auto}.mcp-server-table-wrapper.svelte-ah8nrt .data-table{min-width:860px}.auth-key-form-fields.svelte-1gswxes>.form-field{margin-bottom:4px}.auth-key-dashboard-toggle.svelte-1gswxes{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-key-issued-banner.svelte-1gswxes{background:color-mix(in srgb, var(--success) 8%, var(--bg-surface));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));border-radius:var(--radius);margin-bottom:20px;padding:16px}.auth-key-issued-warning.svelte-1gswxes{color:color-mix(in srgb, var(--success) 80%, var(--text));margin-bottom:12px;font-size:13px;font-weight:600}.auth-key-issued-value-row.svelte-1gswxes{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.auth-key-issued-token.svelte-1gswxes{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;flex:1;min-width:0;padding:8px 12px;font-size:13px;overflow-x:auto}.usage-label-chip-static.svelte-nf0ldb,.usage-label-chip-static.svelte-nf0ldb:hover{cursor:default;background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.auth-key-redacted.svelte-nf0ldb{color:var(--text-muted);font-size:13px}.auth-key-actions-cell.svelte-nf0ldb{white-space:nowrap}.auth-key-row-deactivated.svelte-nf0ldb td:where(.svelte-nf0ldb):not(.auth-key-actions-cell){opacity:.55}.auth-key-expiry.svelte-nf0ldb{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.auth-key-th-help.svelte-nf0ldb{cursor:help;align-items:center;gap:4px;display:inline-flex}.auth-key-row-actions.svelte-nf0ldb{align-items:center;gap:6px;display:inline-flex}.auth-keys-loading.svelte-1xpdcqx{justify-content:center;align-items:center;padding:32px 0;display:flex}.auth-keys-help-notice.svelte-1xpdcqx{margin-bottom:20px}.auth-keys-inactive-toggle.svelte-1xpdcqx{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-keys-inactive-toggle.svelte-1xpdcqx input:where(.svelte-1xpdcqx){width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.locale-settings.svelte-hr6ahz{grid-template-columns:minmax(280px,420px)}.locale-selector-label.svelte-hr6ahz{color:var(--text);font-size:18px;font-weight:600}.settings-panel-header.svelte-15kyv2y{justify-content:space-between;gap:16px;margin-bottom:20px;display:flex}.settings-panel-header.svelte-15kyv2y h3{font-size:18px}.settings-form-grid.svelte-15kyv2y{grid-template-columns:minmax(280px,420px);gap:16px;display:grid}@media (width<=768px){.settings-form-grid.svelte-15kyv2y{grid-template-columns:1fr}}.budget-settings-section.svelte-a747ys{width:100%}.budget-settings-grid.svelte-a747ys{gap:12px;display:grid}.budget-settings-row.svelte-a747ys{grid-template-columns:96px minmax(170px,1fr) minmax(110px,140px) minmax(110px,140px) minmax(220px,280px);align-items:start;gap:12px;display:grid}.budget-settings-period.svelte-a747ys{color:var(--text);letter-spacing:0;text-transform:uppercase;align-self:end;min-height:35px;padding-bottom:9px;font-size:12px;font-weight:700}.budget-settings-spacer.svelte-a747ys{min-height:1px}.budget-settings-help-cell.svelte-a747ys{align-self:start;min-width:0;min-height:35px}.budget-settings-help-cell.svelte-a747ys .inline-help-copy{max-width:280px;margin:22px 0 0;font-size:12px;line-height:1.35}@media (width<=768px){.budget-settings-grid.svelte-a747ys,.budget-settings-row.svelte-a747ys{grid-template-columns:1fr}.budget-settings-spacer.svelte-a747ys{display:none}}.tagging-settings-grid.svelte-18e8yem{gap:12px;display:grid}.tagging-settings-row.svelte-18e8yem{grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) minmax(80px,110px) auto minmax(90px,auto);align-items:end;gap:12px;display:grid}.tagging-do-not-pass.svelte-18e8yem{color:var(--text);white-space:nowrap;align-items:center;gap:6px;min-height:35px;font-size:13px;display:flex}.tagging-row-trailer.svelte-18e8yem{align-items:center;gap:8px;min-height:35px;display:flex}.tagging-settings-empty.svelte-18e8yem{color:var(--text-muted);margin:0}.tagging-settings-actions.svelte-18e8yem{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.tagging-settings-row.svelte-18e8yem{grid-template-columns:1fr;align-items:stretch}.tagging-settings-actions.svelte-18e8yem,.tagging-settings-actions.svelte-18e8yem .btn{width:100%}}.pricing-recalculate-section.svelte-1cdxzyk{width:100%}.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:minmax(220px,320px) minmax(260px,360px);justify-content:start;align-items:end;gap:12px;width:100%;display:grid}.pricing-recalculate-date-field.svelte-1cdxzyk{grid-column:1/-1;width:100%;max-width:320px}.pricing-recalculate-filter-field.svelte-1cdxzyk{width:100%;max-width:360px}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker{width:100%}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-trigger{justify-content:space-between;width:100%}.pricing-recalculate-actions.svelte-1cdxzyk{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:1fr}.pricing-recalculate-actions.svelte-1cdxzyk,.pricing-recalculate-actions.svelte-1cdxzyk .btn{width:100%}}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-dropdown{inset:auto auto calc(100% + 6px) 0}.settings-refresh-icon.svelte-yeq2mp{flex:0 0 16px;width:16px;height:16px}.runtime-refresh-steps.svelte-yeq2mp{color:var(--text-muted);gap:8px;margin-top:14px;padding-left:18px;font-size:13px;display:grid}.runtime-refresh-step.is-ok.svelte-yeq2mp{color:var(--success)}.runtime-refresh-step.is-partial.svelte-yeq2mp{color:var(--warning)}.runtime-refresh-step.is-failed.svelte-yeq2mp{color:var(--danger)}.runtime-settings-copy.svelte-tldbe5{min-width:180px}.runtime-settings-fields.svelte-tldbe5{gap:16px;width:min(560px,100%);display:grid}.runtime-setting-row.svelte-tldbe5{grid-template-columns:minmax(220px,1fr) 180px;align-items:center;gap:20px;display:grid}.runtime-setting-description.svelte-tldbe5,.runtime-setting-managed.svelte-tldbe5{color:var(--text-muted);margin:4px 0 0;font-size:12px}.runtime-setting-managed.svelte-tldbe5{color:var(--warning)}@media (width<=720px){.runtime-setting-row.svelte-tldbe5{grid-template-columns:1fr;gap:8px}}.settings-version-footer.svelte-3naq7u{color:var(--text-muted);text-align:right;margin-top:24px;font-size:12px}.chat-message.svelte-12s99s5{border:1px solid var(--border);background:var(--bg);border-radius:10px;max-width:94%;padding:10px 42px 10px 12px;position:relative;overflow:hidden}.chat-message.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.chat-message.is-after-anchor.svelte-12s99s5,.chat-function-note.is-after-anchor.svelte-12s99s5{opacity:.46}.chat-message.role-user.svelte-12s99s5{align-self:flex-start}.chat-message.role-assistant.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 18%, var(--bg));align-self:flex-end}.chat-message.role-system.svelte-12s99s5{background:color-mix(in srgb, var(--warning) 10%, var(--bg));align-self:center;width:100%;max-width:100%}.chat-message.role-error.svelte-12s99s5{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg));align-self:flex-end}.chat-message.role-error.svelte-12s99s5 .chat-role:where(.svelte-12s99s5){color:color-mix(in srgb, var(--danger) 75%, var(--text-muted))}.chat-message-meta.svelte-12s99s5{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.chat-role.svelte-12s99s5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:12px;font-weight:700}.chat-time.svelte-12s99s5{color:var(--text-muted);white-space:nowrap;font-size:11px}.chat-content.svelte-12s99s5{white-space:pre-wrap;overflow-wrap:break-word;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.5}.chat-message.svelte-12s99s5:before,.chat-function-note.svelte-12s99s5:before{content:"";z-index:0;pointer-events:none;opacity:var(--prompt-cache-visibility);background:linear-gradient(90deg, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) 0, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) var(--prompt-cache-fill), transparent var(--prompt-cache-fill), transparent 100%);transition:opacity .15s;position:absolute;inset:0}.chat-message.svelte-12s99s5>:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5>:where(.svelte-12s99s5){z-index:1;position:relative}.chat-message-copy.svelte-12s99s5{z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 92%, transparent);width:26px;height:26px;color:var(--text-muted);opacity:0;pointer-events:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:opacity .12s,transform .12s,color .12s,background-color .12s,border-color .12s;display:inline-flex;position:absolute;bottom:6px;right:6px;transform:translateY(3px)}.chat-message.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-message.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-message-copy.is-copied.svelte-12s99s5{opacity:1;pointer-events:auto;transform:translateY(0)}.chat-message-copy.svelte-12s99s5:hover{color:var(--text);background:var(--bg-surface-hover)}.chat-message-copy.svelte-12s99s5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.chat-message-copy.is-copied.svelte-12s99s5{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border))}.chat-tool-calls.svelte-12s99s5{border-top:1px solid var(--border);flex-direction:column;gap:3px;margin-top:8px;padding-top:6px;display:flex}.chat-tool-call.svelte-12s99s5{color:var(--text-muted);border-radius:5px;min-width:0;padding:3px 5px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;position:relative;overflow:hidden}.chat-tool-call-summary.svelte-12s99s5{cursor:pointer;align-items:baseline;gap:6px;min-width:0;display:flex}.chat-tool-call-preview.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;opacity:.8;flex:1;min-width:0;overflow:hidden}.chat-tool-call-arguments.svelte-12s99s5{background:color-mix(in srgb, var(--border) 45%, transparent);color:var(--text);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;max-height:200px;margin-top:5px;padding:6px 8px;line-height:1.45;overflow:auto}.chat-tool-call-name.svelte-12s99s5:before{content:"⚡"}.chat-function-note.svelte-12s99s5{max-width:94%;color:var(--text-muted);background:color-mix(in srgb, var(--border) 40%, transparent);border:1px dashed var(--border);border-radius:12px;align-self:center;padding:4px 42px 4px 12px;font-size:12px;position:relative;overflow:hidden}.chat-function-note.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-inner.svelte-12s99s5{align-items:baseline;gap:6px;min-height:26px;display:flex;overflow:hidden}.chat-function-note-inner.svelte-12s99s5 .chat-time:where(.svelte-12s99s5){flex-shrink:0;margin-left:auto}.chat-function-call-id.svelte-12s99s5{color:var(--text-muted);overflow-wrap:anywhere;margin-top:6px;font-size:10px}.chat-function-label.svelte-12s99s5{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}.chat-function-label.svelte-12s99s5:before{content:"▸";margin-right:4px;transition:transform .12s;display:inline-block}.chat-function-note-details[open].svelte-12s99s5 .chat-function-label:where(.svelte-12s99s5):before{transform:rotate(90deg)}.chat-function-detail.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;overflow:hidden}.chat-function-note.role-function-call.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));align-self:flex-end}.chat-function-note.role-function-result.svelte-12s99s5{background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 30%, var(--border));align-self:flex-start}.chat-function-note.is-anchor.role-function-call.svelte-12s99s5,.chat-function-note.is-anchor.role-function-result.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-details.svelte-12s99s5{width:100%}.chat-function-note-details.svelte-12s99s5>summary{cursor:pointer;list-style:none}.chat-function-note-details.svelte-12s99s5>summary::-webkit-details-marker{display:none}.chat-function-expanded.svelte-12s99s5{border-top:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);max-height:200px;margin-top:6px;padding-top:6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;overflow:auto}@media (width<=768px){.chat-message.svelte-12s99s5{max-width:100%}}@media (hover:none){.chat-message-copy.svelte-12s99s5{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.chat-message-copy.svelte-12s99s5{transition:none}}.conversation-drawer.svelte-ssrzja{width:var(--conversation-panel-width);background:var(--bg-surface);border-left:1px solid var(--border);z-index:12;flex-direction:column;flex:none;min-width:0;height:100vh;display:flex;position:sticky;top:0}.conversation-drawer-fullscreen.svelte-ssrzja{z-index:70;border-left:0;flex-basis:auto;width:100vw;height:100dvh;position:fixed;inset:0}.conversation-drawer-fullscreen.svelte-ssrzja .conversation-resize-handle:where(.svelte-ssrzja){display:none}.conversation-resize-handle.svelte-ssrzja{z-index:2;cursor:col-resize;touch-action:none;background:0 0;border:0;border-radius:0;outline:none;width:10px;padding:0;position:absolute;top:0;bottom:0;left:-5px}.conversation-resize-handle.svelte-ssrzja:after{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:4px}.conversation-resize-handle.svelte-ssrzja:hover:after,.conversation-resize-handle.svelte-ssrzja:focus-visible:after{background:color-mix(in srgb, var(--accent) 70%, var(--border))}body.conversation-panel-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.conversation-drawer-header.svelte-ssrzja{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.conversation-drawer-header-actions.svelte-ssrzja{align-items:center;gap:6px;display:flex}.conversation-drawer-title.svelte-ssrzja{align-items:center;gap:9px;min-width:0;display:flex}.conversation-follow-status.svelte-ssrzja{justify-content:center;align-items:center;margin:-4px;padding:4px;display:inline-flex}.conversation-drawer-header.svelte-ssrzja h3{font-size:16px;font-weight:700}#interactions-drawer-content.svelte-ssrzja{position:relative}.conversation-message-navigation.svelte-ssrzja{z-index:4;opacity:0;pointer-events:none;flex-direction:column;gap:4px;width:max-content;height:0;margin-left:auto;margin-right:12px;transition:opacity .12s,transform .12s;display:flex;position:sticky;top:12px;transform:translateY(-3px)}#interactions-drawer-content.svelte-ssrzja:hover .conversation-message-navigation:where(.svelte-ssrzja),.conversation-message-navigation.svelte-ssrzja:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja){border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 94%, transparent);width:30px;height:30px;min-height:30px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 1px 3px #00000029}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):hover{color:var(--text);background:var(--bg-surface-hover)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.conversation-drawer-footer.svelte-ssrzja{border-top:1px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;gap:9px;padding:10px 16px;display:flex}.conversation-composer.svelte-ssrzja{flex-direction:column;gap:7px;display:flex}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja){resize:vertical;border:1px solid var(--border);background:var(--bg);width:100%;min-height:50px;color:var(--text);font:inherit;border-radius:7px;padding:9px 10px;line-height:1.45}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):focus{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:1px}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):disabled{opacity:.65}.conversation-composer-actions.svelte-ssrzja{justify-content:space-between;align-items:center;gap:10px;display:flex}.conversation-endpoint.svelte-ssrzja{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:11px;overflow:hidden}.conversation-send-error.svelte-ssrzja{color:var(--danger);font-size:12px}.conversation-truncated.svelte-ssrzja{color:var(--text-muted);padding:0 16px 14px;font-size:12px}.conversation-cache-legend.svelte-ssrzja{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin:12px 16px 0;padding:0;font-family:inherit;font-size:11px;display:flex}.conversation-cache-legend.svelte-ssrzja:hover{color:var(--text)}.conversation-cache-legend.svelte-ssrzja:focus-visible{outline:2px solid color-mix(in srgb, var(--prompt-cache-color) 35%, transparent);outline-offset:3px;border-radius:3px}.conversation-cache-switch.svelte-ssrzja{background:color-mix(in srgb, var(--text-muted) 30%, var(--border));border-radius:999px;flex:none;width:28px;height:16px;transition:background-color .15s;position:relative}.conversation-cache-switch.is-active.svelte-ssrzja{background:color-mix(in srgb, var(--prompt-cache-color) 80%, var(--bg))}.conversation-cache-switch-thumb.svelte-ssrzja{background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000003d}.conversation-cache-switch.is-active.svelte-ssrzja .conversation-cache-switch-thumb:where(.svelte-ssrzja){transform:translate(12px)}.conversation-cache-estimate.svelte-ssrzja{opacity:.75}.conversation-thread.svelte-ssrzja{flex-direction:column;gap:10px;padding:14px 16px 20px;display:flex}.conversation-live-status.svelte-ssrzja{color:var(--text-muted);align-items:center;gap:10px;padding:4px 16px 20px;font-size:13px;display:flex}@media (hover:none){.conversation-message-navigation.svelte-ssrzja{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.conversation-message-navigation.svelte-ssrzja{transition:none}} diff --git a/internal/admin/dashboard/static/dist/index.html b/internal/admin/dashboard/static/dist/index.html index 219229fed..749c3d1c0 100644 --- a/internal/admin/dashboard/static/dist/index.html +++ b/internal/admin/dashboard/static/dist/index.html @@ -7,8 +7,8 @@ GoModel Dashboard - - + +
                            diff --git a/web/dashboard/messages/en.json b/web/dashboard/messages/en.json index 70e12b590..f1cb9a12b 100644 --- a/web/dashboard/messages/en.json +++ b/web/dashboard/messages/en.json @@ -34,7 +34,6 @@ "usage_filter_session": "Filter by session ID", "usage_filter_session_placeholder": "Session ID", "usage_clear_session_filter": "Clear session filter {session}", - "usage_session_filter": "Session: {session}", "usage_all_models": "All Models", "usage_all_providers": "All Providers", "usage_all_labels": "All Labels", diff --git a/web/dashboard/messages/pl.json b/web/dashboard/messages/pl.json index 5813d64b0..f99399894 100644 --- a/web/dashboard/messages/pl.json +++ b/web/dashboard/messages/pl.json @@ -34,7 +34,6 @@ "usage_filter_session": "Filtruj według ID sesji", "usage_filter_session_placeholder": "ID sesji", "usage_clear_session_filter": "Wyczyść filtr sesji {session}", - "usage_session_filter": "Sesja: {session}", "usage_all_models": "Wszystkie modele", "usage_all_providers": "Wszyscy dostawcy", "usage_all_labels": "Wszystkie etykiety", diff --git a/web/dashboard/src/lib/components/molecules/FilterInput.svelte b/web/dashboard/src/lib/components/molecules/FilterInput.svelte index eac2f51b8..dfe848316 100644 --- a/web/dashboard/src/lib/components/molecules/FilterInput.svelte +++ b/web/dashboard/src/lib/components/molecules/FilterInput.svelte @@ -1,8 +1,8 @@
                            @@ -22,9 +29,21 @@ {id} {placeholder} aria-label={label} + class:filter-input-clearable={!!onclear} bind:value {oninput} /> + {#if onclear && value} + + {/if}
                            diff --git a/web/dashboard/src/pages/usage/FacetFilters.svelte b/web/dashboard/src/pages/usage/FacetFilters.svelte index 47aa6b96f..a7049d533 100644 --- a/web/dashboard/src/pages/usage/FacetFilters.svelte +++ b/web/dashboard/src/pages/usage/FacetFilters.svelte @@ -4,7 +4,6 @@ import FilterInput from "$lib/components/molecules/FilterInput.svelte"; import { debounced } from "$lib/utils/debounce.js"; import { usagePage } from "./usage.svelte.js"; - import { shortSessionID } from "./usage-helpers.js"; import * as m from "$lib/paraglide/messages.js"; const onUserPathInput = debounced(() => usagePage.onUsageFilterChanged()); @@ -64,18 +63,12 @@ label={m.usage_filter_session()} bind:value={usagePage.usageFilterSession} oninput={onSessionInput} + clearLabel={m.usage_clear_session_filter({ session: usagePage.usageFilterSession })} + onclear={() => { + onSessionInput.cancel(); + usagePage.onUsageFilterChanged(); + }} /> - {#if usagePage.usageFilterSession} - - {/if}