diff --git a/cmd/gomodel/docs/docs.go b/cmd/gomodel/docs/docs.go index d9d600f73..15af44249 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", @@ -10871,6 +11012,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": { @@ -10978,6 +11174,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 2b98b74e7..ebc95e01a 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. @@ -106,6 +109,52 @@ appear and which matching request represents each thread. matching audit-log entry. `GET /admin/audit/log?session_id=…` returns all requests in an expanded session. +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 6c29efd45..cc593ffba 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -1110,6 +1110,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", @@ -3115,6 +3123,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", @@ -3237,6 +3253,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", @@ -3375,7 +3399,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": { @@ -3500,6 +3532,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", @@ -3649,6 +3689,141 @@ } } }, + "/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", + "title": "Get usage breakdown by detected session", + "description": "GoModel API reference for GET /admin/usage/sessions: Get usage breakdown by detected session." + } + } + } + }, "/admin/usage/summary": { "get": { "tags": [ @@ -3704,6 +3879,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", @@ -3886,6 +4069,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", @@ -14355,6 +14546,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": { @@ -14462,6 +14708,9 @@ "rewrite_tokens_saved": { "type": "integer" }, + "session_id": { + "type": "string" + }, "timestamp": { "type": "string" }, diff --git a/internal/admin/dashboard/static/dist/assets/index-BMuHCiY5.js b/internal/admin/dashboard/static/dist/assets/index-BMuHCiY5.js deleted file mode 100644 index bd15d1319..000000000 --- a/internal/admin/dashboard/static/dist/assets/index-BMuHCiY5.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,E=1<<19,D=1<<20,ee=1<<25,te=65536,ne=1<<21,re=1<<22,ie=1<<23,ae=Symbol(`$state`),oe=Symbol(`legacy props`),se=Symbol(``),ce=Symbol(`attributes`),le=Symbol(`class`),ue=Symbol(`style`),de=Symbol(`text`),fe=Symbol(`form reset`),pe=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},me=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function he(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function ge(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function _e(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function ve(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function ye(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function be(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function xe(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function Se(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Ce(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function we(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Te(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Ee={},De=Symbol(`uninitialized`),Oe=`http://www.w3.org/1999/xhtml`,ke=`http://www.w3.org/2000/svg`,Ae=`http://www.w3.org/1998/Math/MathML`;function je(){console.warn(`https://svelte.dev/e/derived_inert`)}function Me(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Ne(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Pe(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var Fe=!1;function Ie(e){Fe=e}var Le;function Re(e){if(e===null)throw Me(),Ee;return Le=e}function ze(){return Re(nn(Le))}function O(e){if(Fe){if(nn(Le)!==null)throw Me(),Ee;Le=e}}function Be(e=1){if(Fe){for(var t=e,n=Le;t--;)n=nn(n);Le=n}}function Ve(e=!0){for(var t=0,n=Le;;){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=nn(n);e&&n.remove(),n=i}}function He(e){if(!e||e.nodeType!==8)throw Me(),Ee;return e.data}function Ue(e){return e===this.v}function eee(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function We(e){return!eee(e,this.v)}var Ge=null;function Ke(e){Ge=e}function k(e,t=!1,n){Ge={p:Ge,i:!1,c:null,e:null,s:e,x:null,r:Rn,l:null}}function A(e){var t=Ge,n=t.e;if(n!==null){t.e=null;for(var r of n)mn(r)}return e!==void 0&&(t.x=e),t.i=!0,Ge=t.p,e??{}}function qe(){return!0}var Je=[];function Ye(){var e=Je;Je=[],p(e)}function Xe(e){if(Je.length===0&&!Ot){var t=Je;queueMicrotask(()=>{t===Je&&Ye()})}Je.push(e)}function tee(){for(;Je.length>0;)Ye()}function Ze(e){var t=Rn;if(t===null)return Fn.f|=ie,e;if(!(t.f&32768)&&!(t.f&4))throw e;Qe(e,t)}function Qe(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 $e(e,t){e.f=e.f&nee|t}function et(e){e.f&512||e.deps===null?$e(e,v):$e(e,b)}function tt(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=te,tt(t.deps))}function nt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),tt(e.deps),$e(e,v)}var rt=!1;function ree(e){var t=rt;try{return rt=!1,[e(),rt]}finally{rt=t}}function iee(e,t){if(t){let t=document.body;e.autofocus=!0,Xe(()=>{document.activeElement===t&&e.focus()})}}function it(e){Fe&&tn(e)!==null&&rn(e)}var at=!1;function ot(){at||(at=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[fe]?.()})},{capture:!0}))}function st(e){var t=Fn,n=Rn;Ln(null),zn(null);try{return e()}finally{Ln(t),zn(n)}}function ct(e,t,n,r=n){e.addEventListener(t,()=>st(n));let i=e[fe];i?e[fe]=()=>{i(),r(!0)}:e[fe]=()=>r(!0),ot()}function lt(e){let t=0,n=Wt(0),r;return()=>{dn()&&(z(n),_n(()=>(t===0&&(r=ar(()=>e(()=>qt(n)))),t+=1,()=>{Xe(()=>{--t,t===0&&(r?.(),r=void 0,qt(n))})})))}}var ut=T|E;function dt(e,t,n,r){new aee(e,t,n,r)}var aee=class{parent;is_pending=!1;transform_error;#e;#t=Fe?Le: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=lt(()=>(this.#m=Wt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=Rn;t.b=this,t.f|=128,n(e)},this.parent=Rn.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=vn(()=>{if(Fe){let e=this.#t;ze();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()},ut),Fe&&(this.#e=Le)}#g(){try{this.#a=bn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=bn(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=bn(()=>e(this.#e)),Xe(()=>{var e=this.#c=document.createDocumentFragment(),t=en();e.append(t),this.#a=this.#x(()=>bn(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,En(this.#o,()=>{this.#o=null}),this.#b(wt))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=bn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();An(this.#a,e);let t=this.#n.pending;this.#o=bn(()=>t(this.#e))}else this.#b(wt)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){nt(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=Rn,n=Fn,r=Ge;zn(this.#i),Ln(this.#i),Ke(this.#i.ctx);try{return Pt.ensure(),e()}catch(e){return Ze(e),null}finally{zn(t),Ln(n),Ke(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&&En(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,Xe(()=>{this.#d=!1,this.#m&&Kt(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),z(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;wt?.is_fork?(this.#a&&wt.skip_effect(this.#a),this.#o&&wt.skip_effect(this.#o),this.#s&&wt.skip_effect(this.#s),wt.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(Cn(this.#a),null),this.#o&&=(Cn(this.#o),null),this.#s&&=(Cn(this.#s),null),Fe&&(Re(this.#t),Be(),Re(Ve()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Pe();return}r=!0,i&&Te(),this.#s!==null&&En(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){Qe(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return bn(()=>{var t=Rn;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return Qe(e,this.#i.parent),null}}))};Xe(()=>{var t;try{t=this.transform_error(e)}catch(e){Qe(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>Qe(e,this.#i&&this.#i.parent)):o(t)})}};function ft(e,t,n,r){let i=qe()?ht:vt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=Rn,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){Qe(e,s)}pt()}}var d=mt();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>_t(e))).then(u).catch(e=>Qe(e,s)).finally(d)}l?l.then(()=>{c(),f(),pt()}):f()}function oee(){var e=Rn,t=Fn,n=Ge,r=wt;return function(i=!0){zn(e),Ln(t),Ke(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function pt(e=!0){zn(null),Ln(null),Ke(null),e&&wt?.deactivate()}function mt(){var e=Rn,t=e.b,n=wt,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 ht(e){var t=2|y;return Rn!==null&&(Rn.f|=E),{ctx:Ge,deps:null,effects:null,equals:Ue,f:t,fn:e,reactions:null,rv:0,v:De,wv:0,parent:Rn,ac:null}}var gt=Symbol(`obsolete`);function _t(e,t,n){let r=Rn;r===null&&he();var i=void 0,a=Wt(De),o=!Fn,s=new Set;return hee(()=>{var t=Rn,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==pe&&n.reject(e)}).finally(pt)}catch(e){n.reject(e),pt()}var c=wt;if(o){if(t.f&32768)var l=mt();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(gt);else for(let e of s.values())e.reject(gt);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==gt&&(c.activate(),t?(a.f|=ie,Kt(a,t)):(a.f&8388608&&(a.f^=ie),Kt(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),fn(()=>{for(let e of s)e.reject(gt)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function j(e){let t=ht(e);return Vn(t),t}function vt(e){let t=ht(e);return t.equals=We,t}function yt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n{t.ac.abort(pe),t.ac=null}),t.fn!==null&&(t.teardown=f),er(t,0),Sn(t))}function St(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&tr(t)}var Ct=null,wt=null,Tt=null,Et=null,Dt=null,Ot=!1,kt=!1,At=null,jt=null,Mt=0,Nt=1,Pt=class e{id=Nt++;#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(){Ct===null?Ct=this:(Ct.#n=this,this.#t=Ct),Ct=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)$e(r,y),t(r);for(r of n.m)$e(r,b),t(r)}this.#p.add(e)}#g(){this.#e=!0,Mt++>1e3&&(this.#x(),lee());for(let e of this.#u)this.#d.delete(e),$e(e,y),this.schedule(e);for(let e of this.#d)$e(e,b),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=At=[],r=[],i=jt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw Bt(e),this.#h()||this.discard(),t}if(wt=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(At=null,jt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)zt(e,t);i.length>0&&wt.#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(),Tt=this,It(r),It(n),Tt=null,this.#s?.resolve();var s=wt;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):Xn(r)&&(i&16&&this.#d.add(r),tr(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),$e(i,y),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),wt=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(wt===null){let t=wt=new e;!kt&&!Ot&&Xe(()=>{t.#e||t.flush()})}return wt}apply(){Et=null}schedule(e){if(Dt=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(At!==null&&t===Rn&&(Fn===null||!(Fn.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?Ct=e:t.#t=e,this.linked=!1}}};function cee(e){var t=Ot;Ot=!0;try{var n;for(e&&(wt!==null&&!wt.is_fork&&wt.flush(),n=e());;){if(tee(),wt===null)return n;wt.flush()}}finally{Ot=t}}function lee(){try{be()}catch(e){Qe(e,Dt)}}var Ft=null;function It(e){var t=e.length;if(t!==0){for(var n=0;n0)){Ht.clear();for(let e of Ft){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Ft.has(n)&&(Ft.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||tr(n)}}Ft.clear()}}Ft=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)&&Lt(i,t,r)&&($e(i,y),Rt(i))}}function Lt(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&&Lt(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Rt(e){wt.schedule(e)}function zt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),$e(e,v);for(var n=e.first;n!==null;)zt(n,t),n=n.next}}function Bt(e){$e(e,v);for(var t=e.first;t!==null;)Bt(t),t=t.next}var Vt=new Set,Ht=new Map,Ut=!1;function Wt(e,t){return{f:0,v:e,reactions:null,equals:Ue,rv:0,wv:0}}function M(e,t){let n=Wt(e,t);return Vn(n),n}function Gt(e,t=!1,n=!0){let r=Wt(e);return t||(r.equals=We),r}function N(e,t,n=!1){return Fn!==null&&(!In||Fn.f&131072)&&qe()&&Fn.f&4325394&&(Bn===null||!Bn.has(e))&&we(),Kt(e,n?P(t):t,jt)}function Kt(e,t,n=null){if(!e.equals(t)){Ht.set(e,Nn?t:e.v);var r=Pt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&bt(t),Et===null&&et(t)}e.wv=Yn(),Jt(e,y,n),qe()&&Rn!==null&&Rn.f&1024&&!(Rn.f&96)&&(Wn===null?_ee([e]):Wn.push(e)),!r.is_fork&&Vt.size>0&&!Ut&&dee()}return t}function dee(){Ut=!1;for(let e of Vt){e.f&1024&&$e(e,b);let t;try{t=Xn(e)}catch{t=!0}t&&tr(e)}Vt.clear()}function qt(e){N(e,e.v+1)}function Jt(e,t,n){var r=e.reactions;if(r!==null)for(var i=qe(),a=r.length,o=0;o{if(qn===d)return e();var t=Fn,n=qn;Ln(null),Jn(d);var r=e();return Ln(t),Jn(n),r};return i&&r.set(`length`,M(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&Se();var i=r.get(t);return i===void 0?f(()=>{var e=M(n.value,u);return r.set(t,e),e}):N(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>M(De,u));r.set(t,e),qt(o)}}else N(n,De),qt(o);return!0},get(e,n,i){if(n===ae)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>M(P(s?e[n]:De),u)),r.set(n,o)),o!==void 0){var c=z(o);return c===De?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=z(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==De)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===ae)return!0;var n=r.get(t),i=n!==void 0&&n.v!==De||Reflect.has(e,t);return(n!==void 0||Rn!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>M(i?P(e[t]):De,u)),r.set(t,n)),z(n)===De)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;dM(De,u)),r.set(d+``,p)):N(p,De)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>M(void 0,u)),N(c,P(n)),r.set(t,c));else{l=c.v!==De;var m=f(()=>P(n));N(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&&N(g,_+1)}qt(o)}return!0},ownKeys(e){z(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==De});for(var[n,i]of r)i.v!==De&&!(n in e)&&t.push(n);return t},setPrototypeOf(){Ce()}})}function Yt(e){try{if(typeof e==`object`&&e&&ae in e)return e[ae]}catch{}return e}function fee(e,t){return Object.is(Yt(e),Yt(t))}var Xt,Zt,Qt,$t;function pee(){if(Xt===void 0){Xt=window,Zt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Qt=a(t,`firstChild`).get,$t=a(t,`nextSibling`).get,u(e)&&(e[le]=void 0,e[ce]=null,e[ue]=void 0,e.__e=void 0),u(n)&&(n[de]=void 0)}}function en(e=``){return document.createTextNode(e)}function tn(e){return Qt.call(e)}function nn(e){return $t.call(e)}function F(e,t){if(!Fe)return tn(e);var n=tn(Le);if(n===null)n=Le.appendChild(en());else if(t&&n.nodeType!==3){var r=en();return n?.before(r),Re(r),r}return t&&sn(n),Re(n),n}function I(e,t=!1){if(!Fe){var n=tn(e);return n instanceof Comment&&n.data===``?nn(n):n}if(t){if(Le?.nodeType!==3){var r=en();return Le?.before(r),Re(r),r}sn(Le)}return Le}function L(e,t=1,n=!1){let r=Fe?Le:e;for(var i;t--;)i=r,r=nn(r);if(!Fe)return r;if(n){if(r?.nodeType!==3){var a=en();return r===null?i?.after(a):r.before(a),Re(a),a}sn(r)}return Re(r),r}function rn(e){e.textContent=``}function an(){return!1}function on(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 sn(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 cn(e){Rn===null&&(Fn===null&&ye(e),ve()),Nn&&_e(e)}function ln(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function un(e,t){var n=Rn;n!==null&&n.f&8192&&(e|=x);var r={ctx:Ge,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};wt?.register_created_effect(r);var i=r;if(e&4)At===null?Pt.ensure().schedule(r):At.push(r);else if(t!==null){try{tr(r)}catch(e){throw Cn(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&&ln(i,n),Fn!==null&&Fn.f&2&&!(e&64))){var a=Fn;(a.effects??=[]).push(i)}return r}function dn(){return Fn!==null&&!In}function fn(e){let t=un(8,null);return $e(t,v),t.teardown=e,t}function pn(e){cn(`$effect`);var t=Rn.f;if(!Fn&&t&32&&Ge!==null&&!Ge.i){var n=Ge;(n.e??=[]).push(e)}else return mn(e)}function mn(e){return un(4|D,e)}function hn(e){Pt.ensure();let t=un(64|E,e);return()=>{Cn(t)}}function mee(e){Pt.ensure();let t=un(64|E,e);return(e={})=>new Promise(n=>{e.outro?En(t,()=>{Cn(t),n(void 0)}):(Cn(t),n(void 0))})}function gn(e){return un(4,e)}function hee(e){return un(re|E,e)}function _n(e,t=0){return un(8|t,e)}function R(e,t=[],n=[],r=[]){ft(r,t,n,t=>{un(8,()=>{e(...t.map(z))})})}function vn(e,t=0){return un(16|t,e)}function yn(e,t=0){return un(_|t,e)}function bn(e){return un(32|E,e)}function xn(e){var t=e.teardown;if(t!==null){let e=Nn,n=Fn;Pn(!0),Ln(null);try{t.call(null)}finally{Pn(e),Ln(n)}}}function Sn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&st(()=>{e.abort(pe)});var r=n.next;n.f&64?n.parent=null:Cn(n,t),n=r}}function gee(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Cn(t),t=n}}function Cn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(wn(e.nodes.start,e.nodes.end),n=!0),e.f|=w,Sn(e,t&&!n),er(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();xn(e),e.f^=w,e.f|=S;var i=e.parent;i!==null&&i.first!==null&&Tn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function wn(e,t){for(;e!==null;){var n=e===t?null:nn(e);e.remove(),e=n}}function Tn(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 En(e,t,n=!0){var r=[];Dn(e,r,!0);var i=()=>{n&&Cn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Dn(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;Dn(i,t,o?n:!1)}i=a}}}function On(e){kn(e,!0)}function kn(e,t){if(e.f&8192){e.f^=x,e.f&1024||($e(e,y),Pt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;kn(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 An(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:nn(n);t.append(n),n=i}}var jn=null,Mn=!1,Nn=!1;function Pn(e){Nn=e}var Fn=null,In=!1;function Ln(e){Fn=e}var Rn=null;function zn(e){Rn=e}var Bn=null;function Vn(e){Fn!==null&&(Bn??=new Set).add(e)}var Hn=null,Un=0,Wn=null;function _ee(e){Wn=e}var Gn=1,Kn=0,qn=Kn;function Jn(e){qn=e}function Yn(){return++Gn}function Xn(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~te),t&4096){for(var n=e.deps,r=n.length,i=0;ie.wv)return!0}t&512&&Et===null&&$e(e,v)}return!1}function Zn(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Bn!==null&&Bn.has(e)))for(var i=0;i{e.ac.abort(pe)}),e.ac=null);try{e.f|=ne;var u=e.fn,d=u();e.f|=C;var f=e.deps,p=wt?.is_fork;if(Hn!==null){var m;if(p||er(e,Un),f!==null&&Un>0)for(f.length=Un+Hn.length,m=0;m{s.ac.abort(pe),s.ac=null,$e(s,y)}),see(s),er(s,0)}}function er(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`?Xe(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function yr(e,t,n,r,i){var a={capture:r,passive:i},o=vr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&fn(()=>{t.removeEventListener(e,o,a)})}function B(e,t,n){(t[hr]??={})[e]=n}function br(e){for(var t=0;t{throw e});throw p}}finally{e[hr]=t,delete e.currentTarget,Ln(d),zn(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 Cr(e){var t=on(`template`);return t.innerHTML=bee(e.replaceAll(``,``)),t.content}function wr(e,t){var n=Rn;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function V(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(``);return()=>{if(Fe)return wr(Le,null),Le;i===void 0&&(i=Cr(a?e:``+e),n||(i=tn(i)));var t=r||Zt?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=tn(t),s=t.lastChild;wr(o,s)}else wr(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(Fe)return wr(Le,null),Le;if(!o){var e=tn(Cr(a));if(i)for(o=document.createDocumentFragment();tn(e);)o.appendChild(tn(e));else o=tn(e)}var t=o.cloneNode(!0);if(i){var n=tn(t),r=t.lastChild;wr(n,r)}else wr(t,t);return t}}function Tr(e,t){return xee(e,t,`svg`)}function Er(e=``){if(!Fe){var t=en(e+``);return wr(t,t),t}var n=Le;return n.nodeType===3?sn(n):(n.before(n=en()),Re(n)),wr(n,n),n}function Dr(){if(Fe)return wr(Le,null),Le;var e=document.createDocumentFragment(),t=document.createComment(``),n=en();return e.append(t,n),wr(t,n),e}function H(e,t){if(Fe){var n=Rn;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=Le),ze();return}e!==null&&e.before(t)}var Or=!0;function kr(e){Or=e}function U(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[de]??=e.nodeValue)&&(e[de]=n,e.nodeValue=`${n}`)}function Ar(e,t){return Mr(e,t)}var jr=new Map;function Mr(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(en());dt(u,{pending:()=>{}},t=>{k({});var n=Ge;if(o&&(n.c=o),a&&(i.$$events=a),Fe&&wr(t,null),Or=s,l=e(t,i)||{},Or=!0,Fe&&(Rn.nodes.end=Le,Le===null||Le.nodeType!==8||Le.data!==`]`))throw Me(),Ee;A()},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=jr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Sr),r.delete(e),r.size===0&&jr.delete(n)):r.set(e,i)}_r.delete(f),u!==n&&u.parentNode?.removeChild(u)}});return Nr.set(l,u),l}var Nr=new WeakMap,Pr=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)On(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(On(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&&(Cn(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();An(r,t),t.append(en()),this.#n.set(e,{effect:r,fragment:t})}else Cn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),En(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)||(Cn(n.effect),this.#n.delete(e))};ensure(e,t){var n=wt,r=an();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=en();i.append(a),this.#n.set(e,{effect:bn(()=>t(a)),fragment:i})}else this.#t.set(e,bn(()=>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 Fe&&(this.anchor=Le),this.#a(n)}};function W(e,t,n=!1){var r;Fe&&(r=Le,ze());var i=new Pr(e),a=n?T:0;function o(e,t){if(Fe){var n=He(r);if(e!==parseInt(n.substring(1))){var a=Ve();Re(a),i.anchor=a,Ie(!1),i.ensure(e,t),Ie(!0);return}}i.ensure(e,t)}vn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Fr(e,t){return t}function Ir(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;Lr(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;rn(d),d.append(u),e.items.clear()}Lr(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function Lr(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,Br(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=ee,Hr(d,null,c)):On(d):En(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:vn(()=>{p=z(f);var e=p.length;let t=!1;Fe&&He(c)===`[!`!=(e===0)&&(c=Ve(),Re(c),Ie(!1),t=!0);for(var r=new Set,u=wt,v=an(),y=0;ys(c)):(d=bn(()=>s(Rr??=en())),d.f|=ee)),e>r.size&&ge(``,``,``),Fe&&e>0&&Re(Ve()),!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&&Ie(!0),z(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,Fe&&(c=Le)}function zr(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function Br(e,t,n,i,a){var o=(i&8)!=0,s=t.length,c=e.items,l=zr(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v0){var E=i&4&&s===0?n:null;if(o){for(v=0;v{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Vr(e,t,n,r,i,a,o,s){var c=o&1?o&16?Wt(n):Gt(n,!1,!1):null,l=o&2?Wt(i):null;return{v:c,i:l,e:bn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function Hr(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=nn(r);if(a.before(r),r===i)return;r=o}}function Ur(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Wr(e,t,n=!1,r=!1,i=!1,a=!1){var o=e,s=``;if(n){var c=e;Fe&&(o=Re(tn(c)))}R(()=>{var e=Rn;if(s===(s=t()??``)){Fe&&ze();return}if(n&&!Fe){e.nodes=null,c.innerHTML=s,s!==``&&wr(tn(c),c.lastChild);return}if(e.nodes!==null&&(wn(e.nodes.start,e.nodes.end),e.nodes=null),s!==``){if(Fe){for(var a=Le.data,l=ze(),u=l;l!==null&&(l.nodeType!==8||l.data!==``);)u=l,l=nn(l);if(l===null)throw Me(),Ee;wr(Le,u),o=Re(l);return}var d=on(r?`svg`:i?`math`:`template`,r?ke:i?Ae:void 0);d.innerHTML=s;var f=r||i?d:d.content;if(wr(tn(f),f.lastChild),r||i)for(;tn(f);)o.before(tn(f));else o.before(f)}})}function Gr(e,t,...n){var r=new Pr(e);vn(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},T)}function Kr(e,t,n){var r;Fe&&(r=Le,ze());var i=new Pr(e);vn(()=>{var e=t()??null;if(Fe&&He(r)===`[`!=(e!==null)){var a=Ve();Re(a),i.anchor=a,Ie(!1),i.ensure(e,e&&(t=>n(t,e))),Ie(!0);return}i.ensure(e,e&&(t=>n(t,e)))},T)}var qr=()=>performance.now(),Jr={tick:e=>requestAnimationFrame(e),now:()=>qr(),tasks:new Set};function Yr(){let e=Jr.now();Jr.tasks.forEach(t=>{t.c(e)||(Jr.tasks.delete(t),t.f())}),Jr.tasks.size!==0&&Jr.tick(Yr)}function Xr(e){let t;return Jr.tasks.size===0&&Jr.tick(Yr),{promise:new Promise(n=>{Jr.tasks.add(t={c:e,f:n})}),abort(){Jr.tasks.delete(t)}}}function Zr(e,t){st(()=>{e.dispatchEvent(new CustomEvent(t))})}function Qr(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 $r(e){let t={},n=e.split(`;`);for(let e of n){let[n,r]=e.split(`:`);if(!n||r===void 0)break;let i=Qr(n.trim());t[i]=r.trim()}return t}var ei=e=>e,ti=null;function ni(e){ti=e}function ri(e,t,n){var r=(ti??Rn).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=ai(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 ii(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 st(()=>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=ai(t,m(),p,1,()=>{Zr(t,`introstart`)},()=>{Zr(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=ai(t,m(),f,0,()=>{Zr(t,`outrostart`)},()=>{Zr(t,`outroend`),e?.()})},stop:()=>{f?.abort(),p?.abort()}},g=Rn;if((g.nodes.t??=[]).push(h),i&&Or){var _=s;if(!_){for(var v=g.parent;v&&v.f&65536;)for(;(v=v.parent)&&!(v.f&16););_=!v||(v.f&32768)!=0}_&&gn(()=>{ar(()=>h.in())})}}function ai(e,t,n,r,i,a){var o=r===1;if(d(t)){var s,c=!1;return Xe(()=>{c||(s=ai(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=ei}=t;var h=[];if(o&&n===void 0&&(p&&p(0,1),u)){var g=$r(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=$r(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&&Xr(()=>{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=Fe;Fe&&ze();var s=null;Fe&&Le.nodeType===1&&(s=Le,ze());var c=Fe?Le:e,l=Rn,u=new Pr(c,!1);vn(()=>{let e=t()||null;var a=i?i():n||e===`svg`?ke:void 0;if(e===null){u.ensure(null,null),kr(!0);return}return u.ensure(e,t=>{if(e){if(s=Fe?s:on(e,a),wr(s,s),r){var n=null;Fe&&vee(e)&&s.append(n=document.createComment(``));var i=Fe?tn(s):s.appendChild(en());Fe&&(i===null?Ie(!1):Re(i)),ni(l),r(s,i),n?.remove(),ni(null)}Rn.nodes.end=s,t.before(s)}Fe&&Re(t)}),kr(!0),()=>{e&&kr(!1)}},T),fn(()=>{kr(!0)}),o&&(Ie(!0),Re(c))}function oi(e,t){var n=void 0,r;yn(()=>{n!==(n=t())&&(r&&=(Cn(r),null),n&&(r=bn(()=>{gn(()=>n(e))})))})}function si(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||li.includes(r[o-1]))&&(s===r.length||li.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function ui(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 di(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(di)),i&&c.push(...Object.keys(i).map(di));var l=0,u=-1;let t=e.length;for(var d=0;d{mi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),fn(()=>{t.disconnect()})}function gi(e,t,n=t){var r=new WeakSet,i=!0;ct(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),_i);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&_i(o)}n(a),e.__value=a,wt!==null&&r.add(wt)}),gn(()=>{var a=t();if(e===document.activeElement){var o=wt;if(r.has(o))return}if(mi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=_i(s),n(a))}e.__value=a,i=!1}),hi(e)}function _i(e){return`__value`in e?e.__value:e.value}var vi=Symbol(`class`),yi=Symbol(`style`),bi=Symbol(`is custom element`),xi=Symbol(`is html`),Eee=me?`link`:`LINK`,Si=me?`input`:`INPUT`,Dee=me?`option`:`OPTION`,Oee=me?`select`:`SELECT`,kee=me?`progress`:`PROGRESS`;function Ci(e){if(Fe){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;q(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;q(e,`checked`,null),e.checked=r}}};e[fe]=n,Xe(n),ot()}}function wi(e,t){var n=Di(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==kee)||(e.value=t??``)}function Ti(e,t){var n=Di(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 q(e,t,n,r){var i=Di(e);Fe&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Eee)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[se]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&ki(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function jee(e,t,n,r,i=!1,a=!1){if(Fe&&i&&e.nodeName===Si){var o=e;(o.type===`checkbox`?`defaultChecked`:`defaultValue`)in n||Ci(o)}var s=Di(e),c=s[bi],l=!s[xi];let u=Fe&&c;u&&Ie(!1);var d=t||{},f=e.nodeName===Dee;for(var p in t)p in n||(n[p]=null);n.class?n.class=ci(n.class):(r||n[vi])&&(n.class=null),n[yi]&&(n.style??=null);var m=ki(e);if(e.nodeName===Si&&`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,q(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`){K(e,e.namespaceURI===`http://www.w3.org/1999/xhtml`,o,r,t?.[vi],n[vi]),d[i]=o,d[vi]=n[vi];continue}if(i===`style`){pi(e,o,t?.[yi],n[yi]),d[i]=o,d[yi]=n[yi];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=cr(r);if(or(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)B(r,e,o),br([r]);else if(o!=null){function a(e){d[i].call(this,e)}d[n]=vr(r,e,a,t)}}else if(i===`style`)q(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=dr(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]=De)):typeof o!=`function`&&q(e,y,o,a)}}}return u&&Ie(!0),d}function Ei(e,t,n=[],r=[],i=[],a,o=!1,s=!1){ft(i,n,r,n=>{var r=void 0,i={},c=e.nodeName===Oee,l=!1;if(yn(()=>{var u=t(...n.map(z)),d=jee(e,r,u,a,o,s);l&&c&&`value`in u&&mi(e,u.value);for(let e of Object.getOwnPropertySymbols(i))u[e]||Cn(i[e]);for(let t of Object.getOwnPropertySymbols(u)){var f=u[t];t.description===`@attach`&&(!r||f!==r[t])&&(i[t]&&Cn(i[t]),i[t]=bn(()=>oi(e,()=>f))),d[t]=f}r=d}),c){var u=e;gn(()=>{mi(u,r.value,!0),hi(u)})}l=!0})}function Di(e){return e[ce]??={[bi]:e.nodeName.includes(`-`),[xi]:e.namespaceURI===Oe}}var Oi=new Map;function ki(e){var t=e.getAttribute(`is`)||e.nodeName,n=Oi.get(t);if(n)return n;Oi.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 Ai(e,t,n=t){var r=new WeakSet;ct(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Mi(e)?Ni(a):a,n(a),wt!==null&&r.add(wt),await nr(),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))}}}),(Fe&&e.defaultValue!==e.value||ar(t)==null&&e.value)&&(n(Mi(e)?Ni(e.value):e.value),wt!==null&&r.add(wt)),_n(()=>{var n=t();if(e===document.activeElement){var i=wt;if(r.has(i))return}Mi(e)&&n===Ni(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function ji(e,t,n=t){ct(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(Fe&&e.defaultChecked!==e.checked||ar(t)==null)&&n(e.checked),_n(()=>{e.checked=!!t()})}function Mi(e){var t=e.type;return t===`number`||t===`range`}function Ni(e){return e===``?null:+e}function Pi(e,t){return e===t||e?.[ae]===t}function Fi(e={},t,n,r){var i=Ge.r,a=Rn;return gn(()=>{var o,s;return _n(()=>{o=s,s=r?.()||[],ar(()=>{Pi(n(...s),e)||(t(e,...s),o&&Pi(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&&Pi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}var Ii={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 Li(e,t,n){return new Proxy({props:e,exclude:t},Ii)}function Ri(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??=ht(r),z(u)):(l&&(l=!1,c=s?ar(r):r),c);let f;if(o){var p=ae in e||oe 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&&xe(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?ht:vt)(()=>(v=!1,g()));o&&z(y);var b=Rn;return(function(e,t){if(arguments.length>0){let n=t?z(y):i&&o?P(e):e;return N(y,n),v=!0,c!==void 0&&(c=n),e}return Nn&&v||b.f&16384?y.v:z(y)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var zi=new Set([`$$slots`,`$$events`,`$$legacy`,`icon`,`class`]),Bi=Tr(``);function J(e,t){let n=Ri(t,`icon`,19,()=>[]),r=Ri(t,`class`,3,``),i=Li(t,zi);var a=Bi();Ei(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=Dr();G(I(r),17,n,Fr,(t,n)=>{var r=j(()=>g(z(n),3));let i=()=>z(r)[0],a=()=>z(r)[1],o=()=>z(r)[2];var s=Dr();See(I(s),i,!0,(t,n)=>{Ei(t,()=>({xmlns:`http://www.w3.org/2000/svg`,...a()}));var r=Dr(),i=I(r),s=t=>{e(t,o)},c=j(()=>Array.isArray(o()));W(i,e=>{z(c)&&e(s)}),H(n,r)}),H(t,s)}),H(t,r)};e(F(a),n),O(a)}H(e,a)}var Vi=Tr(``);function Hi(e){H(e,Vi())}function Ui(){try{return typeof window>`u`?null:window.localStorage}catch{return null}}function Wi(e,t=null){let n=Ui();if(!n)return t;try{return n.getItem(e)??t}catch{return t}}function Gi(e,t){let n=Ui();if(n)try{n.setItem(e,String(t))}catch{}}function Ki(e){let t=Number(e);return Number.isFinite(t)?Math.min(240,Math.max(60,Math.round(t))):240}function qi(e,t,n){return Ki(Number(e)+Number(n)-Number(t))}var Ji=new class{#e=M(`system`);get theme(){return z(this.#e)}set theme(e){N(this.#e,e,!0)}#t=M(0);get tick(){return z(this.#t)}set tick(e){N(this.#t,e,!0)}init(){this.theme=Wi(`gomodel_theme`,`system`),this.apply(),window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{this.theme===`system`&&this.tick++})}set(e){this.theme=e,Gi(`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)}},Yi=new class{#e=M(P(240));get width(){return z(this.#e)}set width(e){N(this.#e,e,!0)}get collapsed(){return this.width===60}init(){let e=Wi(`gomodel_sidebar_width`),t=Wi(`gomodel_sidebar_collapsed`)===`true`;this.setWidth(e??(t?60:240))}toggle(){this.setWidth(this.collapsed?240:60,!0)}setWidth(e,t=!1){this.width=Ki(e),typeof document<`u`&&document.documentElement.style.setProperty(`--sidebar-width`,`${this.width}px`),t&&(Gi(`gomodel_sidebar_width`,this.width),Gi(`gomodel_sidebar_collapsed`,this.collapsed))}},Xi=new class{#e=M(P([]));get stack(){return z(this.#e)}set stack(e){N(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}},Zi={},Qi=[`en`,`pl`],$i=`PARAGLIDE_LOCALE`,ea=[`custom-dashboard`,`preferredLanguage`,`baseLocale`],ta=[];globalThis.__paraglide=globalThis.__paraglide??{},globalThis.__paraglide.ssr=globalThis.__paraglide.ssr??{};var na=!1,Y=()=>{let e=ea;typeof window<`u`&&window.location?.href&&(e=va(window.location.href));let t=ra(e,typeof window<`u`?window.location?.href:void 0);if(t)return na||(na=!0,sa(t,{reload:!1})),t;throw Error(`No locale found. Read the docs https://paraglidejs.com/errors#no-locale-found`)};function ra(e,t){let n;for(let t of e){if(t===`baseLocale`)n=`en`;else if(t===`preferredLanguage`)n=fa();else if(ba(t)&&ya.has(t)){let e=ya.get(t);if(e){let t=e.getLocale();if(t instanceof Promise)continue;if(t!==void 0)return ua(t)}}let e=la(n);if(e)return e}}var ia=new Set([`ar`,`dv`,`fa`,`he`,`ks`,`ku`,`ps`,`sd`,`ug`,`ur`,`yi`]);function aa(e=Y()){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 ia.has(t??``)?`rtl`:`ltr`}var oa=e=>{e?window.location.href=e:window.location.reload()},sa=(e,t)=>{let n={reload:!0,...t},r;try{r=Y()}catch{}let i=[],a=ea;typeof window<`u`&&window.location?.href&&(a=va(window.location.href));for(let t of a)if(t===`baseLocale`)continue;else if(ba(t)&&ya.has(t)){let n=ya.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&&oa(void 0)};if(i.length)return Promise.all(i).then(()=>{o()});o()},ca=()=>typeof window<`u`?window.location.origin:`http://fallback.com`;function la(e){if(typeof e!=`string`)return;let t=e.toLowerCase();for(let e of Qi)if(e.toLowerCase()===t)return e}function ua(e){let t=la(e);if(t)return t;throw Error(`Invalid locale: ${e}. Expected one of: ${Qi.join(`, `)}`)}var da=$i.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);RegExp(`(?:^|;\\s*)${da}=([^;]*)`);function fa(){if(!navigator?.languages?.length)return;let e=navigator.languages.map(e=>({fullTag:e,baseTag:e.split(`-`)[0]}));for(let t of e){let e=la(t.fullTag);if(e)return e;let n=la(t.baseTag);if(n)return n}}function pa(e){return ma(e)}function ma(e){let t=typeof e==`string`?new URL(e,ca()):new URL(e),n=t.pathname.split(`/`).filter(Boolean);return n.length>0&&la(n[0])&&(t.pathname=`/`+n.slice(1).join(`/`)),t}var ha,ga;function _a(e){if(ta.length===0)return;let t=typeof e==`string`?e:e.href;if(ha===t)return ga;let n=new URL(t,`http://example.com`),r=pa(n),i=r.href===n.href?[n]:[n,r],a;for(let e of i){for(let t of ta)if(new Zi(t.match,e.href).exec(e.href)){a=t;break}if(a)break}return ha=t,ga=a,a}function va(e){let t=_a(e);return t&&t.exclude!==!0&&Array.isArray(t.strategy)?t.strategy:ea}var ya=new Map;function ba(e){return typeof e==`string`&&/^custom-[A-Za-z0-9_-]+$/.test(e)}function xa(e,t){if(!ba(e))throw Error(`Invalid custom strategy: "${e}". Must be a custom strategy following the pattern custom-name.`);ya.set(e,t)}var Sa=()=>`Cancel`,Ca=()=>`Anuluj`,wa=((e={},t={})=>(t.locale??Y())===`pl`?Ca(e):Sa(e)),Ta=()=>`Next`,Ea=()=>`Dalej`,Da=((e={},t={})=>(t.locale??Y())===`pl`?Ea(e):Ta(e)),Oa=()=>`Previous`,ka=()=>`Wstecz`,Aa=((e={},t={})=>(t.locale??Y())===`pl`?ka(e):Oa(e)),ja=()=>`Admin`,Ma=()=>`Admin`,Na=((e={},t={})=>(t.locale??Y())===`pl`?Ma(e):ja(e)),Pa=()=>`Overview`,Fa=()=>`Przegląd`,Ia=((e={},t={})=>(t.locale??Y())===`pl`?Fa(e):Pa(e)),La=()=>`Providers`,Ra=()=>`Dostawcy`,za=((e={},t={})=>(t.locale??Y())===`pl`?Ra(e):La(e)),Ba=()=>`Models`,Va=()=>`Modele`,Ha=((e={},t={})=>(t.locale??Y())===`pl`?Va(e):Ba(e)),Ua=()=>`Audit Logs`,Wa=()=>`Logi audytowe`,Ga=((e={},t={})=>(t.locale??Y())===`pl`?Wa(e):Ua(e)),Ka=()=>`Usage`,qa=()=>`Zużycie`,Ja=((e={},t={})=>(t.locale??Y())===`pl`?qa(e):Ka(e)),Ya=()=>`Budgets`,Xa=()=>`Budżety`,Za=((e={},t={})=>(t.locale??Y())===`pl`?Xa(e):Ya(e)),Qa=()=>`Rate Limits`,$a=()=>`Limity zapytań`,eo=((e={},t={})=>(t.locale??Y())===`pl`?$a(e):Qa(e)),to=()=>`API Keys`,no=()=>`Klucze API`,ro=((e={},t={})=>(t.locale??Y())===`pl`?no(e):to(e)),io=()=>`Workflows`,ao=()=>`Workflows`,oo=((e={},t={})=>(t.locale??Y())===`pl`?ao(e):io(e)),so=()=>`Guardrails (experimental)`,co=()=>`Guardrails (eksperymentalne)`,lo=((e={},t={})=>(t.locale??Y())===`pl`?co(e):so(e)),uo=()=>`MCP Servers`,fo=()=>`Serwery MCP`,po=((e={},t={})=>(t.locale??Y())===`pl`?fo(e):uo(e)),mo=()=>`Settings`,ho=()=>`Ustawienia`,go=((e={},t={})=>(t.locale??Y())===`pl`?ho(e):mo(e)),Mee=()=>`Usage Overview`,Nee=()=>`Przegląd zużycia`,Pee=((e={},t={})=>(t.locale??Y())===`pl`?Nee(e):Mee(e)),Fee=()=>`Usage chart interval`,Iee=()=>`Interwał wykresu zużycia`,Lee=((e={},t={})=>(t.locale??Y())===`pl`?Iee(e):Fee(e)),Ree=()=>`Daily`,zee=()=>`Dziennie`,Bee=((e={},t={})=>(t.locale??Y())===`pl`?zee(e):Ree(e)),Vee=()=>`Weekly`,Hee=()=>`Tygodniowo`,Uee=((e={},t={})=>(t.locale??Y())===`pl`?Hee(e):Vee(e)),Wee=()=>`Monthly`,Gee=()=>`Miesięcznie`,Kee=((e={},t={})=>(t.locale??Y())===`pl`?Gee(e):Wee(e)),qee=()=>`Yearly`,Jee=()=>`Rocznie`,Yee=((e={},t={})=>(t.locale??Y())===`pl`?Jee(e):qee(e)),Xee=()=>`Loading usage`,Zee=()=>`Wczytywanie danych o zużyciu`,Qee=((e={},t={})=>(t.locale??Y())===`pl`?Zee(e):Xee(e)),$ee=()=>`Usage Analytics`,ete=()=>`Analityka zużycia`,tte=((e={},t={})=>(t.locale??Y())===`pl`?ete(e):$ee(e)),nte=()=>`Usage mode`,rte=()=>`Tryb zużycia`,ite=((e={},t={})=>(t.locale??Y())===`pl`?rte(e):nte(e)),ate=()=>`Usage data filters`,ote=()=>`Filtry danych o zużyciu`,ste=((e={},t={})=>(t.locale??Y())===`pl`?ote(e):ate(e)),cte=()=>`Filter by model`,lte=()=>`Filtruj według modelu`,ute=((e={},t={})=>(t.locale??Y())===`pl`?lte(e):cte(e)),dte=()=>`Filter by provider`,fte=()=>`Filtruj według dostawcy`,pte=((e={},t={})=>(t.locale??Y())===`pl`?fte(e):dte(e)),mte=()=>`Filter by label`,hte=()=>`Filtruj według etykiety`,gte=((e={},t={})=>(t.locale??Y())===`pl`?hte(e):mte(e)),_te=()=>`Filter by user path`,vte=()=>`Filtruj według User Path`,yte=((e={},t={})=>(t.locale??Y())===`pl`?vte(e):_te(e)),bte=()=>`User path /team/alpha`,xte=()=>`User Path /team/alpha`,Ste=((e={},t={})=>(t.locale??Y())===`pl`?xte(e):bte(e)),Cte=()=>`All Models`,wte=()=>`Wszystkie modele`,Tte=((e={},t={})=>(t.locale??Y())===`pl`?wte(e):Cte(e)),Ete=()=>`All Providers`,Dte=()=>`Wszyscy dostawcy`,Ote=((e={},t={})=>(t.locale??Y())===`pl`?Dte(e):Ete(e)),kte=()=>`All Labels`,Ate=()=>`Wszystkie etykiety`,jte=((e={},t={})=>(t.locale??Y())===`pl`?Ate(e):kte(e)),Mte=()=>`Cache Saved`,Nte=()=>`Oszczędność z cache`,Pte=((e={},t={})=>(t.locale??Y())===`pl`?Nte(e):Mte(e)),Fte=()=>`Pro Saved`,Ite=()=>`Oszczędność Pro`,Lte=((e={},t={})=>(t.locale??Y())===`pl`?Ite(e):Fte(e)),Rte=()=>`Loading usage summary`,zte=()=>`Wczytywanie podsumowania zużycia`,_o=((e={},t={})=>(t.locale??Y())===`pl`?zte(e):Rte(e)),Bte=()=>`Model usage view`,Vte=()=>`Widok zużycia według modelu`,Hte=((e={},t={})=>(t.locale??Y())===`pl`?Vte(e):Bte(e)),Ute=()=>`User path usage view`,Wte=()=>`Widok zużycia według User Path`,Gte=((e={},t={})=>(t.locale??Y())===`pl`?Wte(e):Ute(e)),Kte=()=>`Label usage view`,qte=()=>`Widok zużycia według etykiety`,Jte=((e={},t={})=>(t.locale??Y())===`pl`?qte(e):Kte(e)),Yte=()=>`model usage`,Xte=()=>`zużycia według modelu`,Zte=((e={},t={})=>(t.locale??Y())===`pl`?Xte(e):Yte(e)),Qte=()=>`user path usage`,$te=()=>`zużycia według User Path`,ene=((e={},t={})=>(t.locale??Y())===`pl`?$te(e):Qte(e)),tne=()=>`label usage`,nne=()=>`zużycia według etykiety`,rne=((e={},t={})=>(t.locale??Y())===`pl`?nne(e):tne(e)),ine=()=>`Token Usage by Model`,ane=()=>`Zużycie tokenów według modelu`,one=((e={},t={})=>(t.locale??Y())===`pl`?ane(e):ine(e)),sne=()=>`Cost by Model`,cne=()=>`Koszt według modelu`,lne=((e={},t={})=>(t.locale??Y())===`pl`?cne(e):sne(e)),une=()=>`Usage by User Path`,dne=()=>`Zużycie według User Path`,fne=((e={},t={})=>(t.locale??Y())===`pl`?dne(e):une(e)),pne=()=>`Cost by User Path`,mne=()=>`Koszt według User Path`,hne=((e={},t={})=>(t.locale??Y())===`pl`?mne(e):pne(e)),gne=()=>`Usage by Label`,_ne=()=>`Zużycie według etykiety`,vne=((e={},t={})=>(t.locale??Y())===`pl`?_ne(e):gne(e)),yne=()=>`Cost by Label`,bne=()=>`Koszt według etykiety`,xne=((e={},t={})=>(t.locale??Y())===`pl`?bne(e):yne(e)),Sne=e=>`Show ${e?.noun} chart`,Cne=e=>`Pokaż wykres ${e?.noun}`,wne=((e,t={})=>(t.locale??Y())===`pl`?Cne(e):Sne(e)),Tne=e=>`Show ${e?.noun} stacked chart`,Ene=e=>`Pokaż skumulowany wykres ${e?.noun}`,Dne=((e,t={})=>(t.locale??Y())===`pl`?Ene(e):Tne(e)),One=e=>`Show ${e?.noun} table`,kne=e=>`Pokaż tabelę ${e?.noun}`,Ane=((e,t={})=>(t.locale??Y())===`pl`?kne(e):One(e)),jne=()=>`Chart`,Mne=()=>`Wykres`,Nne=((e={},t={})=>(t.locale??Y())===`pl`?Mne(e):jne(e)),Pne=()=>`Stacked`,Fne=()=>`Skumulowany`,Ine=((e={},t={})=>(t.locale??Y())===`pl`?Fne(e):Pne(e)),Lne=()=>`Table`,Rne=()=>`Tabela`,zne=((e={},t={})=>(t.locale??Y())===`pl`?Rne(e):Lne(e)),Bne=e=>`Loading ${e?.noun}`,Vne=e=>`Wczytywanie ${e?.noun}`,vo=((e,t={})=>(t.locale??Y())===`pl`?Vne(e):Bne(e)),Hne=()=>`Label usage help`,Une=()=>`Pomoc dotycząca zużycia według etykiet`,Wne=((e={},t={})=>(t.locale??Y())===`pl`?Une(e):Hne(e)),Gne=()=>`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.`,Kne=()=>`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.`,qne=((e={},t={})=>(t.locale??Y())===`pl`?Kne(e):Gne(e)),Jne=()=>`Model`,Yne=()=>`Model`,yo=((e={},t={})=>(t.locale??Y())===`pl`?Yne(e):Jne(e)),Xne=()=>`Provider`,Zne=()=>`Dostawca`,bo=((e={},t={})=>(t.locale??Y())===`pl`?Zne(e):Xne(e)),Qne=()=>`User Path`,$ne=()=>`User Path`,xo=((e={},t={})=>(t.locale??Y())===`pl`?$ne(e):Qne(e)),ere=()=>`Label`,tre=()=>`Etykieta`,nre=((e={},t={})=>(t.locale??Y())===`pl`?tre(e):ere(e)),rre=()=>`Requests`,ire=()=>`Requesty`,are=((e={},t={})=>(t.locale??Y())===`pl`?ire(e):rre(e)),ore=()=>`Input Tokens`,sre=()=>`Input Tokens`,So=((e={},t={})=>(t.locale??Y())===`pl`?sre(e):ore(e)),cre=()=>`Output Tokens`,lre=()=>`Output Tokens`,Co=((e={},t={})=>(t.locale??Y())===`pl`?lre(e):cre(e)),ure=()=>`Prompt Cached`,dre=()=>`Prompt z cache`,wo=((e={},t={})=>(t.locale??Y())===`pl`?dre(e):ure(e)),fre=()=>`Local Cached`,pre=()=>`Lokalny cache`,mre=((e={},t={})=>(t.locale??Y())===`pl`?pre(e):fre(e)),hre=()=>`Total Tokens`,gre=()=>`Wszystkie tokeny`,_re=((e={},t={})=>(t.locale??Y())===`pl`?gre(e):hre(e)),vre=()=>`Input Cost`,yre=()=>`Koszt wejścia`,To=((e={},t={})=>(t.locale??Y())===`pl`?yre(e):vre(e)),bre=()=>`Output Cost`,xre=()=>`Koszt wyjścia`,Eo=((e={},t={})=>(t.locale??Y())===`pl`?xre(e):bre(e)),Sre=()=>`Total Cost`,Cre=()=>`Łączny koszt`,Do=((e={},t={})=>(t.locale??Y())===`pl`?Cre(e):Sre(e)),wre=()=>`Provider prompt-cache reads included in the input tokens`,Tre=()=>`Odczyty z prompt cache dostawcy uwzględnione w input tokens`,Ere=((e={},t={})=>(t.locale??Y())===`pl`?Tre(e):wre(e)),Dre=()=>`Tokens served from GoModel's local response cache (excluded from the other columns)`,Ore=()=>`Tokeny obsłużone przez lokalny response cache GoModel (wyłączone z pozostałych kolumn)`,kre=((e={},t={})=>(t.locale??Y())===`pl`?Ore(e):Dre(e)),Are=e=>`~${e?.cost} at current cached-input pricing`,jre=e=>`~${e?.cost} według bieżącej ceny wejścia z cache`,Mre=((e,t={})=>(t.locale??Y())===`pl`?jre(e):Are(e)),Nre=e=>`${e?.input} input + ${e?.output} output`,Pre=e=>`${e?.input} input tokens + ${e?.output} output tokens`,Fre=((e,t={})=>(t.locale??Y())===`pl`?Pre(e):Nre(e)),Ire=()=>`Request Log`,Lre=()=>`Dziennik Request'ów`,Rre=((e={},t={})=>(t.locale??Y())===`pl`?Lre(e):Ire(e)),zre=()=>`Search by request ID, model, provider...`,Bre=()=>`Szukaj według ID Requestu, modelu lub dostawcy...`,Vre=((e={},t={})=>(t.locale??Y())===`pl`?Bre(e):zre(e)),Hre=()=>`Search by request ID, model, provider`,Ure=()=>`Szukaj według ID Requestu, modelu lub dostawcy`,Wre=((e={},t={})=>(t.locale??Y())===`pl`?Ure(e):Hre(e)),Gre=()=>`Hide cached requests`,Kre=()=>`Ukryj Requesty z cache`,qre=((e={},t={})=>(t.locale??Y())===`pl`?Kre(e):Gre(e)),Jre=()=>`Timestamp`,Yre=()=>`Znacznik czasu`,Xre=((e={},t={})=>(t.locale??Y())===`pl`?Yre(e):Jre(e)),Zre=()=>`Labels`,Qre=()=>`Etykiety`,$re=((e={},t={})=>(t.locale??Y())===`pl`?Qre(e):Zre(e)),eie=()=>`Cache`,tie=()=>`Cache`,nie=((e={},t={})=>(t.locale??Y())===`pl`?tie(e):eie(e)),rie=()=>`Provider Cache`,iie=()=>`Cache dostawcy`,aie=((e={},t={})=>(t.locale??Y())===`pl`?iie(e):rie(e)),oie=()=>`Share of input tokens served from the provider's prompt cache`,sie=()=>`Część input tokens obsłużona przez prompt cache dostawcy`,cie=((e={},t={})=>(t.locale??Y())===`pl`?sie(e):oie(e)),lie=()=>`Input`,uie=()=>`Wejście`,die=((e={},t={})=>(t.locale??Y())===`pl`?uie(e):lie(e)),fie=()=>`Output`,pie=()=>`Wyjście`,mie=((e={},t={})=>(t.locale??Y())===`pl`?pie(e):fie(e)),hie=()=>`Total`,gie=()=>`Łącznie`,_ie=((e={},t={})=>(t.locale??Y())===`pl`?gie(e):hie(e)),vie=()=>`Cost`,yie=()=>`Koszt`,bie=((e={},t={})=>(t.locale??Y())===`pl`?yie(e):vie(e)),xie=e=>`${e?.count} tokens`,Sie=e=>`${e?.count} tokenów`,Oo=((e,t={})=>(t.locale??Y())===`pl`?Sie(e):xie(e)),Cie=()=>`Loading request log`,wie=()=>`Wczytywanie dziennika Request'ów`,Tie=((e={},t={})=>(t.locale??Y())===`pl`?wie(e):Cie(e)),Eie=()=>`Clear label filter`,Die=()=>`Wyczyść filtr etykiety`,Oie=((e={},t={})=>(t.locale??Y())===`pl`?Die(e):Eie(e)),kie=e=>`Filter usage by "${e?.label}"`,Aie=e=>`Filtruj zużycie według etykiety "${e?.label}"`,jie=((e,t={})=>(t.locale??Y())===`pl`?Aie(e):kie(e)),Mie=e=>`${e?.count} cached requests hidden`,Nie=e=>`Ukryte Requesty z cache: ${e?.count}`,Pie=((e,t={})=>(t.locale??Y())===`pl`?Nie(e):Mie(e)),Fie=e=>`${e?.provider} to providers + ${e?.cache} from cache`,Iie=e=>`${e?.provider} do dostawców + ${e?.cache} z cache`,Lie=((e,t={})=>(t.locale??Y())===`pl`?Iie(e):Fie(e)),Rie=e=>`${e?.input} input + ${e?.output} output`,zie=e=>`${e?.input} wejście + ${e?.output} wyjście`,Bie=((e,t={})=>(t.locale??Y())===`pl`?zie(e):Rie(e)),Vie=()=>`Estimated at 4 net characters removed per token`,Hie=()=>`Szacunek: 4 usunięte znaki netto na token`,Uie=((e={},t={})=>(t.locale??Y())===`pl`?Hie(e):Vie(e)),Wie=e=>`${e?.percent}% less`,Gie=e=>`o ${e?.percent}% mniej`,Kie=((e,t={})=>(t.locale??Y())===`pl`?Gie(e):Wie(e)),qie=e=>`${e?.count} estimated prompt token-transmissions removed across provider requests`,Jie=e=>`Szacowana liczba transmisji tokenów promptu usuniętych z Request'ów do dostawców: ${e?.count}`,Yie=((e,t={})=>(t.locale??Y())===`pl`?Jie(e):qie(e)),Xie=()=>`Savings are summed per provider request; resent conversation history is counted again`,Zie=()=>`Oszczędności są sumowane dla każdego Requestu do dostawcy; ponownie wysłana historia rozmowy jest liczona ponownie`,Qie=((e={},t={})=>(t.locale??Y())===`pl`?Zie(e):Xie(e)),$ie=e=>`${e?.cost} estimated gross input cost avoided`,eae=e=>`Szacowany uniknięty koszt brutto wejścia: ${e?.cost}`,tae=((e,t={})=>(t.locale??Y())===`pl`?eae(e):$ie(e)),nae=()=>`Prompt-cache changes caused by rewriting are not included`,rae=()=>`Nie uwzględniono zmian prompt cache wynikających z przepisywania`,iae=((e={},t={})=>(t.locale??Y())===`pl`?rae(e):nae(e)),aae=e=>`${e?.percent} than the same traffic without rewriting (${e?.mode})`,oae=e=>`${e?.percent} niż dla tego samego ruchu bez przepisywania (${e?.mode})`,sae=((e,t={})=>(t.locale??Y())===`pl`?oae(e):aae(e)),cae=()=>`cost`,lae=()=>`koszt`,uae=((e={},t={})=>(t.locale??Y())===`pl`?lae(e):cae(e)),dae=()=>`tokens`,fae=()=>`tokeny`,pae=((e={},t={})=>(t.locale??Y())===`pl`?fae(e):dae(e)),mae=()=>`Costs from OpenRouter USD-based credits.`,hae=()=>`Koszty na podstawie kredytów OpenRouter w USD.`,gae=((e={},t={})=>(t.locale??Y())===`pl`?hae(e):mae(e)),_ae=()=>`Costs from xAI usage.cost_in_usd_ticks.`,vae=()=>`Koszty na podstawie xAI usage.cost_in_usd_ticks.`,yae=((e={},t={})=>(t.locale??Y())===`pl`?vae(e):_ae(e)),bae=()=>`Exact`,xae=()=>`Dokładny`,Sae=((e={},t={})=>(t.locale??Y())===`pl`?xae(e):bae(e)),Cae=()=>`Semantic`,wae=()=>`Semantyczny`,Tae=((e={},t={})=>(t.locale??Y())===`pl`?wae(e):Cae(e)),Eae=()=>`Saved by cache — not charged`,Dae=()=>`Oszczędzone dzięki cache — bez opłaty`,Oae=((e={},t={})=>(t.locale??Y())===`pl`?Dae(e):Eae(e)),kae=e=>`${e?.cached} cached / ${e?.total} input tokens`,Aae=e=>`${e?.cached} z cache / ${e?.total} input tokens`,jae=((e,t={})=>(t.locale??Y())===`pl`?Aae(e):kae(e)),Mae=e=>`${e?.count} cache write`,Nae=e=>`Zapis do cache: ${e?.count}`,Pae=((e,t={})=>(t.locale??Y())===`pl`?Nae(e):Mae(e)),Fae=e=>`Input: ${e?.cost}`,Iae=e=>`Wejście: ${e?.cost}`,Lae=((e,t={})=>(t.locale??Y())===`pl`?Iae(e):Fae(e)),Rae=e=>`Output: ${e?.cost}`,zae=e=>`Wyjście: ${e?.cost}`,Bae=((e,t={})=>(t.locale??Y())===`pl`?zae(e):Rae(e)),Vae=()=>`Prompt Cached Cost`,Hae=()=>`Koszt promptu z cache`,Uae=((e={},t={})=>(t.locale??Y())===`pl`?Hae(e):Vae(e)),Wae=()=>`Locally Cached (Input)`,Gae=()=>`Lokalny cache (wejście)`,Kae=((e={},t={})=>(t.locale??Y())===`pl`?Gae(e):Wae(e)),qae=()=>`Locally Cached (Output)`,Jae=()=>`Lokalny cache (wyjście)`,Yae=((e={},t={})=>(t.locale??Y())===`pl`?Jae(e):qae(e)),Xae=()=>`Settings`,Zae=()=>`Ustawienia`,Qae=((e={},t={})=>(t.locale??Y())===`pl`?Zae(e):Xae(e)),$ae=()=>`Clear`,eoe=()=>`Wyczyść`,toe=((e={},t={})=>(t.locale??Y())===`pl`?eoe(e):$ae(e)),noe=()=>`expand`,roe=()=>`rozwiń`,ioe=((e={},t={})=>(t.locale??Y())===`pl`?roe(e):noe(e)),aoe=()=>`collapse`,ooe=()=>`zwiń`,soe=((e={},t={})=>(t.locale??Y())===`pl`?ooe(e):aoe(e)),coe=()=>`Send`,loe=()=>`Wyślij`,uoe=((e={},t={})=>(t.locale??Y())===`pl`?loe(e):coe(e)),doe=()=>`Sending…`,foe=()=>`Wysyłanie…`,poe=((e={},t={})=>(t.locale??Y())===`pl`?foe(e):doe(e)),moe=()=>`Copy failed`,hoe=()=>`Kopiowanie nie powiodło się`,ko=((e={},t={})=>(t.locale??Y())===`pl`?hoe(e):moe(e)),goe=()=>`Audit Logs`,_oe=()=>`Logi audytowe`,voe=((e={},t={})=>(t.locale??Y())===`pl`?_oe(e):goe(e)),yoe=()=>`Retention help`,boe=()=>`Pomoc dotycząca retencji`,xoe=((e={},t={})=>(t.locale??Y())===`pl`?boe(e):yoe(e)),Soe=()=>`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.`,Coe=()=>`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.`,woe=((e={},t={})=>(t.locale??Y())===`pl`?Coe(e):Soe(e)),Toe=()=>`Audit logs are retained `,Eoe=()=>`Logi audytowe są przechowywane `,Doe=((e={},t={})=>(t.locale??Y())===`pl`?Eoe(e):Toe(e)),Ooe=()=>`Audit logs are retained for `,koe=()=>`Logi audytowe są przechowywane przez `,Aoe=((e={},t={})=>(t.locale??Y())===`pl`?koe(e):Ooe(e)),joe=()=>`indefinitely`,Moe=()=>`czas nieokreślony`,Noe=((e={},t={})=>(t.locale??Y())===`pl`?Moe(e):joe(e));function Ao(e,t,n){return new Intl.PluralRules(e,n).select(Number(t))}var Poe=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} day`:`${e?.count} days`,Foe=e=>{let t=Ao(`pl`,e?.count,{});return t===`one`?`${e?.count} dzień`:t===`few`||t===`many`?`${e?.count} dni`:`${e?.count} dnia`},Ioe=((e,t={})=>(t.locale??Y())===`pl`?Foe(e):Poe(e)),Loe=()=>`Audit logging is off. Live entries are temporary and disappear after refresh. Set `,Roe=()=>`Rejestrowanie audytu jest wyłączone. Wpisy Live są tymczasowe i znikają po odświeżeniu. Ustaw `,zoe=((e={},t={})=>(t.locale??Y())===`pl`?Roe(e):Loe(e)),Boe=()=>` to persist them.`,Voe=()=>`, aby je zachować.`,Hoe=((e={},t={})=>(t.locale??Y())===`pl`?Voe(e):Boe(e)),Uoe=e=>`Showing ${e?.start}–${e?.end} of ${e?.total} sessions`,Woe=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total} sesji`,Goe=((e,t={})=>(t.locale??Y())===`pl`?Woe(e):Uoe(e)),Koe=e=>`Showing ${e?.start}–${e?.end} of ${e?.total} logs`,qoe=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total} logów`,Joe=((e,t={})=>(t.locale??Y())===`pl`?qoe(e):Koe(e)),Yoe=()=>`Group by session`,Xoe=()=>`Grupuj według sesji`,Zoe=((e={},t={})=>(t.locale??Y())===`pl`?Xoe(e):Yoe(e)),Qoe=()=>`Loading audit logs`,$oe=()=>`Wczytywanie logów audytowych`,ese=((e={},t={})=>(t.locale??Y())===`pl`?$oe(e):Qoe(e)),tse=()=>`Search by request ID, model, provider, path, user path, or error…`,nse=()=>`Szukaj według ID Requestu, modelu, dostawcy, ścieżki, User Path lub błędu…`,rse=((e={},t={})=>(t.locale??Y())===`pl`?nse(e):tse(e)),ise=()=>`Search by request ID, model, provider, path, user path, or error`,ase=()=>`Szukaj według ID Requestu, modelu, dostawcy, ścieżki, User Path lub błędu`,ose=((e={},t={})=>(t.locale??Y())===`pl`?ase(e):ise(e)),sse=()=>`HTTP method filter`,cse=()=>`Filtr metody HTTP`,lse=((e={},t={})=>(t.locale??Y())===`pl`?cse(e):sse(e)),use=()=>`All Methods`,dse=()=>`Wszystkie metody`,fse=((e={},t={})=>(t.locale??Y())===`pl`?dse(e):use(e)),pse=()=>`Status code filter`,mse=()=>`Filtr kodu statusu`,hse=((e={},t={})=>(t.locale??Y())===`pl`?mse(e):pse(e)),gse=()=>`All Statuses`,_se=()=>`Wszystkie statusy`,vse=((e={},t={})=>(t.locale??Y())===`pl`?_se(e):gse(e)),yse=()=>`Streaming mode filter`,bse=()=>`Filtr trybu streamingu`,xse=((e={},t={})=>(t.locale??Y())===`pl`?bse(e):yse(e)),Sse=()=>`All Modes`,Cse=()=>`Wszystkie tryby`,wse=((e={},t={})=>(t.locale??Y())===`pl`?Cse(e):Sse(e)),Tse=()=>`Streaming`,Ese=()=>`Streaming`,Dse=((e={},t={})=>(t.locale??Y())===`pl`?Ese(e):Tse(e)),Ose=()=>`Non-streaming`,kse=()=>`Bez streamingu`,Ase=((e={},t={})=>(t.locale??Y())===`pl`?kse(e):Ose(e)),jse=()=>`Live stream connecting…`,Mse=()=>`Łączenie ze strumieniem Live…`,Nse=((e={},t={})=>(t.locale??Y())===`pl`?Mse(e):jse(e)),Pse=()=>`Live`,Fse=()=>`Live`,Ise=((e={},t={})=>(t.locale??Y())===`pl`?Fse(e):Pse(e)),Lse=()=>`Live paused — the selected date range does not include today. Set it to today to resume.`,Rse=()=>`Live wstrzymany — wybrany zakres dat nie obejmuje dzisiaj. Ustaw datę dzisiejszą, aby wznowić.`,zse=((e={},t={})=>(t.locale??Y())===`pl`?Rse(e):Lse(e)),Bse=()=>`Live paused while filters are active. Clear them to resume.`,Vse=()=>`Live wstrzymany, gdy filtry są aktywne. Wyczyść je, aby wznowić.`,Hse=((e={},t={})=>(t.locale??Y())===`pl`?Vse(e):Bse(e)),Use=()=>`Live paused on later pages. Go to the first page to resume.`,Wse=()=>`Live wstrzymany na dalszych stronach. Przejdź do pierwszej strony, aby wznowić.`,Gse=((e={},t={})=>(t.locale??Y())===`pl`?Wse(e):Use(e)),Kse=e=>Ao(`en`,e?.count,{})===`one`?`Session with ${e?.count} request`:`Session with ${e?.count} requests`,qse=e=>{let t=Ao(`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`},Jse=((e,t={})=>(t.locale??Y())===`pl`?qse(e):Kse(e)),Yse=e=>`Status ${e?.status} · ${e?.method}`,Xse=e=>`Status ${e?.status} · ${e?.method}`,Zse=((e,t={})=>(t.locale??Y())===`pl`?Xse(e):Yse(e)),Qse=()=>`Open interactions`,$se=()=>`Otwórz interakcje`,jo=((e={},t={})=>(t.locale??Y())===`pl`?$se(e):Qse(e)),ece=()=>`Close interactions`,tce=()=>`Zamknij interakcje`,Mo=((e={},t={})=>(t.locale??Y())===`pl`?tce(e):ece(e)),nce=()=>`Loading session requests`,rce=()=>`Wczytywanie Request'ów sesji`,ice=((e={},t={})=>(t.locale??Y())===`pl`?rce(e):nce(e)),ace=e=>`Showing the latest ${e?.shown} of ${e?.total} requests in this session.`,oce=e=>`Wyświetlanie najnowszych ${e?.shown} z ${e?.total} Request'ów w tej sesji.`,sce=((e,t={})=>(t.locale??Y())===`pl`?oce(e):ace(e)),cce=()=>`Metadata:`,lce=()=>`Metadane:`,uce=((e={},t={})=>(t.locale??Y())===`pl`?lce(e):cce(e)),dce=()=>`Error Message`,fce=()=>`Komunikat błędu`,pce=((e={},t={})=>(t.locale??Y())===`pl`?fce(e):dce(e)),mce=()=>`Headers`,hce=()=>`Nagłówki`,gce=((e={},t={})=>(t.locale??Y())===`pl`?hce(e):mce(e)),_ce=()=>`Copy Headers`,vce=()=>`Kopiuj nagłówki`,yce=((e={},t={})=>(t.locale??Y())===`pl`?vce(e):_ce(e)),bce=()=>`Body`,xce=()=>`Treść`,Sce=((e={},t={})=>(t.locale??Y())===`pl`?xce(e):bce(e)),Cce=()=>`streaming`,wce=()=>`streaming`,Tce=((e={},t={})=>(t.locale??Y())===`pl`?wce(e):Cce(e)),Ece=()=>`Copy Body`,Dce=()=>`Kopiuj treść`,Oce=((e={},t={})=>(t.locale??Y())===`pl`?Dce(e):Ece(e)),kce=()=>`Request and response`,Ace=()=>`Request i odpowiedź`,jce=((e={},t={})=>(t.locale??Y())===`pl`?Ace(e):kce(e)),Mce=()=>`Share of the request body removed by this rewrite`,Nce=()=>`Część treści Requestu usunięta podczas tego przetwarzania`,Pce=((e={},t={})=>(t.locale??Y())===`pl`?Nce(e):Mce(e)),Fce=()=>`Request`,Ice=()=>`Request`,Lce=((e={},t={})=>(t.locale??Y())===`pl`?Ice(e):Fce(e)),Rce=()=>`Response`,zce=()=>`Odpowiedź`,No=((e={},t={})=>(t.locale??Y())===`pl`?zce(e):Rce(e)),Bce=()=>`Rewritten`,Vce=()=>`Po przetworzeniu`,Hce=((e={},t={})=>(t.locale??Y())===`pl`?Vce(e):Bce(e)),Uce=()=>`What changed`,Wce=()=>`Co się zmieniło`,Gce=((e={},t={})=>(t.locale??Y())===`pl`?Wce(e):Uce(e)),Kce=()=>`Provider attempt failed`,qce=()=>`Próba dostawcy nie powiodła się`,Jce=((e={},t={})=>(t.locale??Y())===`pl`?qce(e):Kce(e)),Yce=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} provider attempt`:`${e?.count} provider attempts`,Xce=e=>{let t=Ao(`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`},Zce=((e,t={})=>(t.locale??Y())===`pl`?Xce(e):Yce(e)),Qce=e=>`${e?.count} provider attempts · ${e?.failed} failed`,$ce=e=>`Próby dostawców: ${e?.count} · nieudane: ${e?.failed}`,ele=((e,t={})=>(t.locale??Y())===`pl`?$ce(e):Qce(e)),tle=()=>`succeeded`,nle=()=>`powodzenie`,rle=((e={},t={})=>(t.locale??Y())===`pl`?nle(e):tle(e)),ile=()=>`failed`,ale=()=>`niepowodzenie`,ole=((e={},t={})=>(t.locale??Y())===`pl`?ale(e):ile(e)),sle=()=>`No response was captured for this attempt.`,cle=()=>`Nie zapisano odpowiedzi dla tej próby.`,lle=((e={},t={})=>(t.locale??Y())===`pl`?cle(e):sle(e)),ule=()=>`Request details were not captured.`,dle=()=>`Nie zapisano szczegółów Requestu.`,fle=((e={},t={})=>(t.locale??Y())===`pl`?dle(e):ule(e)),ple=()=>`Waiting for request data…`,mle=()=>`Oczekiwanie na dane Requestu…`,Po=((e={},t={})=>(t.locale??Y())===`pl`?mle(e):ple(e)),hle=()=>`Request body was too large to capture.`,gle=()=>`Treść Requestu była zbyt duża, aby ją zapisać.`,_le=((e={},t={})=>(t.locale??Y())===`pl`?gle(e):hle(e)),vle=()=>`Response details were not captured.`,yle=()=>`Nie zapisano szczegółów odpowiedzi.`,ble=((e={},t={})=>(t.locale??Y())===`pl`?yle(e):vle(e)),xle=()=>`Response in progress…`,Sle=()=>`Odpowiedź w toku…`,Cle=((e={},t={})=>(t.locale??Y())===`pl`?Sle(e):xle(e)),wle=()=>`Response body was too large to capture.`,Tle=()=>`Treść odpowiedzi była zbyt duża, aby ją zapisać.`,Fo=((e={},t={})=>(t.locale??Y())===`pl`?Tle(e):wle(e)),Ele=()=>`Rewritten body not captured (body logging disabled or body too large).`,Dle=()=>`Nie zapisano przetworzonej treści (rejestrowanie treści jest wyłączone lub treść jest zbyt duża).`,Ole=((e={},t={})=>(t.locale??Y())===`pl`?Dle(e):Ele(e)),kle=e=>`${e?.rewriter}: no change`,Ale=e=>`${e?.rewriter}: bez zmian`,jle=((e,t={})=>(t.locale??Y())===`pl`?Ale(e):kle(e)),Mle=e=>`${e?.rewriter} ran and forwarded the request unchanged`,Nle=e=>`${e?.rewriter} uruchomił się i przekazał Request bez zmian`,Ple=((e,t={})=>(t.locale??Y())===`pl`?Nle(e):Mle(e)),Fle=e=>`${e?.count} cached`,Ile=e=>`${e?.count} z cache`,Lle=((e,t={})=>(t.locale??Y())===`pl`?Ile(e):Fle(e)),Rle=e=>`${e?.percent}% cached`,zle=e=>`${e?.percent}% z cache`,Ble=((e,t={})=>(t.locale??Y())===`pl`?zle(e):Rle(e)),Vle=()=>`Audio too large to store.`,Hle=()=>`Audio jest zbyt duże, aby je zapisać.`,Ule=((e={},t={})=>(t.locale??Y())===`pl`?Hle(e):Vle(e)),Wle=()=>`Audio not logged. Set LOGGING_LOG_AUDIO_BODIES=true to capture playable audio.`,Gle=()=>`Audio nie zostało zapisane. Ustaw LOGGING_LOG_AUDIO_BODIES=true, aby zapisywać audio możliwe do odtworzenia.`,Kle=((e={},t={})=>(t.locale??Y())===`pl`?Gle(e):Wle(e)),qle=()=>`Resize interactions panel`,Jle=()=>`Zmień szerokość panelu interakcji`,Yle=((e={},t={})=>(t.locale??Y())===`pl`?Jle(e):qle(e)),Xle=()=>`Interactions`,Zle=()=>`Interakcje`,Qle=((e={},t={})=>(t.locale??Y())===`pl`?Zle(e):Xle(e)),$le=()=>`Following the latest interaction`,eue=()=>`Śledzenie najnowszej interakcji`,tue=((e={},t={})=>(t.locale??Y())===`pl`?eue(e):$le(e)),nue=()=>`Viewing a historical interaction`,rue=()=>`Wyświetlanie historycznej interakcji`,iue=((e={},t={})=>(t.locale??Y())===`pl`?rue(e):nue(e)),aue=()=>`Following the latest interaction as new events arrive`,oue=()=>`Śledzenie najnowszej interakcji w miarę pojawiania się nowych zdarzeń`,sue=((e={},t={})=>(t.locale??Y())===`pl`?oue(e):aue(e)),cue=()=>`Viewing a historical interaction; live updates are not followed`,lue=()=>`Wyświetlanie historycznej interakcji; aktualizacje Live nie są śledzone`,uue=((e={},t={})=>(t.locale??Y())===`pl`?lue(e):cue(e)),due=()=>`Exit fullscreen interactions`,fue=()=>`Wyłącz pełny ekran interakcji`,pue=((e={},t={})=>(t.locale??Y())===`pl`?fue(e):due(e)),mue=()=>`Show interactions fullscreen`,hue=()=>`Wyświetl interakcje na pełnym ekranie`,gue=((e={},t={})=>(t.locale??Y())===`pl`?hue(e):mue(e)),_ue=()=>`Exit fullscreen`,vue=()=>`Wyłącz pełny ekran`,yue=((e={},t={})=>(t.locale??Y())===`pl`?vue(e):_ue(e)),bue=()=>`Fullscreen`,xue=()=>`Pełny ekran`,Sue=((e={},t={})=>(t.locale??Y())===`pl`?xue(e):bue(e)),Cue=()=>`Close interactions`,wue=()=>`Zamknij interakcje`,Tue=((e={},t={})=>(t.locale??Y())===`pl`?wue(e):Cue(e)),Eue=()=>`Navigate interaction messages`,Due=()=>`Nawigacja między wiadomościami interakcji`,Oue=((e={},t={})=>(t.locale??Y())===`pl`?Due(e):Eue(e)),kue=()=>`Previous message`,Aue=()=>`Poprzednia wiadomość`,Io=((e={},t={})=>(t.locale??Y())===`pl`?Aue(e):kue(e)),jue=()=>`Next message`,Mue=()=>`Następna wiadomość`,Lo=((e={},t={})=>(t.locale??Y())===`pl`?Mue(e):jue(e)),Nue=()=>`Loading interactions…`,Pue=()=>`Wczytywanie interakcji…`,Fue=((e={},t={})=>(t.locale??Y())===`pl`?Pue(e):Nue(e)),Iue=()=>`No interaction data available for this entry.`,Lue=()=>`Brak danych interakcji dla tego wpisu.`,Rue=((e={},t={})=>(t.locale??Y())===`pl`?Lue(e):Iue(e)),zue=()=>`Hide estimated provider prompt-cache fill`,Bue=()=>`Ukryj szacowane wykorzystanie prompt cache dostawcy`,Vue=((e={},t={})=>(t.locale??Y())===`pl`?Bue(e):zue(e)),Hue=()=>`Show estimated provider prompt-cache fill`,Uue=()=>`Pokaż szacowane wykorzystanie prompt cache dostawcy`,Wue=((e={},t={})=>(t.locale??Y())===`pl`?Uue(e):Hue(e)),Gue=()=>`Blue fill shows cached prompt share`,Kue=()=>`Niebieskie wypełnienie pokazuje część promptu z cache`,que=((e={},t={})=>(t.locale??Y())===`pl`?Kue(e):Gue(e)),Jue=()=>`(estimated)`,Yue=()=>`(szacunkowo)`,Xue=((e={},t={})=>(t.locale??Y())===`pl`?Yue(e):Jue(e)),Zue=()=>`Showing the newest part of this session and the selected log.`,Que=()=>`Wyświetlanie najnowszej części tej sesji i wybranego logu.`,$ue=((e={},t={})=>(t.locale??Y())===`pl`?Que(e):Zue(e)),ede=()=>`Send a message`,tde=()=>`Wyślij wiadomość`,nde=((e={},t={})=>(t.locale??Y())===`pl`?tde(e):ede(e)),rde=()=>`Continue this interaction…`,ide=()=>`Kontynuuj tę interakcję…`,ade=((e={},t={})=>(t.locale??Y())===`pl`?ide(e):rde(e)),ode=()=>`Model is responding…`,sde=()=>`Model odpowiada…`,cde=((e={},t={})=>(t.locale??Y())===`pl`?sde(e):ode(e)),lde=()=>`Unable to load interactions.`,ude=()=>`Nie można wczytać interakcji.`,dde=((e={},t={})=>(t.locale??Y())===`pl`?ude(e):lde(e)),fde=()=>`Failed to load interactions.`,pde=()=>`Wczytywanie interakcji nie powiodło się.`,mde=((e={},t={})=>(t.locale??Y())===`pl`?pde(e):fde(e)),hde=()=>`Unable to send message.`,gde=()=>`Nie można wysłać wiadomości.`,_de=((e={},t={})=>(t.locale??Y())===`pl`?gde(e):hde(e)),vde=()=>`The request timed out.`,yde=()=>`Upłynął limit czasu Requestu.`,bde=((e={},t={})=>(t.locale??Y())===`pl`?yde(e):vde(e)),xde=()=>`Failed to send message.`,Sde=()=>`Wysyłanie wiadomości nie powiodło się.`,Cde=((e={},t={})=>(t.locale??Y())===`pl`?Sde(e):xde(e)),wde=()=>`Message sent, but its saved interaction is not available yet.`,Tde=()=>`Wiadomość została wysłana, ale jej zapisana interakcja nie jest jeszcze dostępna.`,Ede=((e={},t={})=>(t.locale??Y())===`pl`?Tde(e):wde(e)),Dde=()=>`System Prompt`,Ode=()=>`Prompt systemowy`,kde=((e={},t={})=>(t.locale??Y())===`pl`?Ode(e):Dde(e)),Ade=()=>`Agent`,jde=()=>`Agent`,Mde=((e={},t={})=>(t.locale??Y())===`pl`?jde(e):Ade(e)),Nde=()=>`Error`,Pde=()=>`Błąd`,Fde=((e={},t={})=>(t.locale??Y())===`pl`?Pde(e):Nde(e)),Ide=()=>`Function Call`,Lde=()=>`Wywołanie funkcji`,Rde=((e={},t={})=>(t.locale??Y())===`pl`?Lde(e):Ide(e)),zde=()=>`Function Result`,Bde=()=>`Wynik funkcji`,Vde=((e={},t={})=>(t.locale??Y())===`pl`?Bde(e):zde(e)),Hde=()=>`User`,Ude=()=>`Użytkownik`,Wde=((e={},t={})=>(t.locale??Y())===`pl`?Ude(e):Hde(e)),Gde=()=>`[Image]`,Kde=()=>`[Obraz]`,qde=((e={},t={})=>(t.locale??Y())===`pl`?Kde(e):Gde(e)),Jde=()=>`[Audio]`,Yde=()=>`[Audio]`,Xde=((e={},t={})=>(t.locale??Y())===`pl`?Yde(e):Jde(e)),Zde=()=>`[File]`,Qde=()=>`[Plik]`,$de=((e={},t={})=>(t.locale??Y())===`pl`?Qde(e):Zde(e)),efe=e=>`[File: ${e?.name}]`,tfe=e=>`[Plik: ${e?.name}]`,nfe=((e,t={})=>(t.locale??Y())===`pl`?tfe(e):efe(e)),rfe=()=>`Message copied`,ife=()=>`Wiadomość skopiowana`,afe=((e={},t={})=>(t.locale??Y())===`pl`?ife(e):rfe(e)),ofe=()=>`Copy message`,sfe=()=>`Kopiuj wiadomość`,Ro=((e={},t={})=>(t.locale??Y())===`pl`?sfe(e):ofe(e)),cfe=e=>`${e?.percent}% of this visible prompt item is estimated provider-cached`,lfe=e=>`Szacuje się, że ${e?.percent}% tego widocznego elementu promptu pochodzi z cache dostawcy`,ufe=((e,t={})=>(t.locale??Y())===`pl`?lfe(e):cfe(e)),dfe=()=>`Call ID`,ffe=()=>`ID wywołania`,zo=((e={},t={})=>(t.locale??Y())===`pl`?ffe(e):dfe(e)),pfe=e=>`Call ID (${e?.name})`,mfe=e=>`ID wywołania (${e?.name})`,hfe=((e,t={})=>(t.locale??Y())===`pl`?mfe(e):pfe(e)),gfe=()=>`No arguments`,_fe=()=>`Brak argumentów`,Bo=((e={},t={})=>(t.locale??Y())===`pl`?_fe(e):gfe(e)),vfe=()=>`Copied`,yfe=()=>`Skopiowano`,bfe=((e={},t={})=>(t.locale??Y())===`pl`?yfe(e):vfe(e)),xfe=()=>`Tokens`,Sfe=()=>`Tokeny`,Vo=((e={},t={})=>(t.locale??Y())===`pl`?Sfe(e):xfe(e)),Cfe=()=>`Input tokens`,wfe=()=>`Input Tokens`,Tfe=((e={},t={})=>(t.locale??Y())===`pl`?wfe(e):Cfe(e)),Efe=()=>`Output tokens`,Dfe=()=>`Output Tokens`,Ofe=((e={},t={})=>(t.locale??Y())===`pl`?Dfe(e):Efe(e)),kfe=()=>`Input Tokens`,Afe=()=>`Input Tokens`,Ho=((e={},t={})=>(t.locale??Y())===`pl`?Afe(e):kfe(e)),jfe=()=>`Output Tokens`,Mfe=()=>`Output Tokens`,Uo=((e={},t={})=>(t.locale??Y())===`pl`?Mfe(e):jfe(e)),Nfe=()=>`Total tokens`,Pfe=()=>`Wszystkie tokeny`,Ffe=((e={},t={})=>(t.locale??Y())===`pl`?Pfe(e):Nfe(e)),Ife=()=>`Total Requests`,Lfe=()=>`Łączna liczba Request'ów`,Wo=((e={},t={})=>(t.locale??Y())===`pl`?Lfe(e):Ife(e)),Rfe=()=>`Cache Hits`,zfe=()=>`Trafienia cache`,Go=((e={},t={})=>(t.locale??Y())===`pl`?zfe(e):Rfe(e)),Bfe=()=>`Estimated Cost`,Vfe=()=>`Szacowany koszt`,Ko=((e={},t={})=>(t.locale??Y())===`pl`?Vfe(e):Bfe(e)),Hfe=()=>`Local Cache`,Ufe=()=>`Lokalny cache`,Wfe=((e={},t={})=>(t.locale??Y())===`pl`?Ufe(e):Hfe(e)),Gfe=()=>`Prompt Cache Rate`,Kfe=()=>`Wskaźnik prompt cache`,qfe=((e={},t={})=>(t.locale??Y())===`pl`?Kfe(e):Gfe(e)),Jfe=()=>`Share of input tokens served from the provider prompt cache over the selected period`,Yfe=()=>`Część input tokens obsłużona przez prompt cache dostawcy w wybranym okresie`,Xfe=((e={},t={})=>(t.locale??Y())===`pl`?Yfe(e):Jfe(e)),Zfe=e=>`Prompt cache rate ${e?.rate}`,Qfe=e=>`Wskaźnik prompt cache: ${e?.rate}`,$fe=((e,t={})=>(t.locale??Y())===`pl`?Qfe(e):Zfe(e)),epe=()=>`Provider Status`,tpe=()=>`Status provider'ów`,npe=((e={},t={})=>(t.locale??Y())===`pl`?tpe(e):epe(e)),rpe=()=>`View providers overview`,ipe=()=>`Zobacz przegląd dostawców`,ape=((e={},t={})=>(t.locale??Y())===`pl`?ipe(e):rpe(e)),ope=()=>`View MCP servers`,spe=()=>`Zobacz serwery MCP`,cpe=((e={},t={})=>(t.locale??Y())===`pl`?spe(e):ope(e)),lpe=()=>`Requests by Status`,upe=()=>`Requesty według statusu`,dpe=((e={},t={})=>(t.locale??Y())===`pl`?upe(e):lpe(e)),fpe=()=>`Request status summary`,ppe=()=>`Podsumowanie statusów Request'ów`,mpe=((e={},t={})=>(t.locale??Y())===`pl`?ppe(e):fpe(e)),hpe=()=>`Share of requests answered with a 2xx status`,gpe=()=>`Część Request'ów zakończonych statusem 2xx`,_pe=((e={},t={})=>(t.locale??Y())===`pl`?gpe(e):hpe(e)),vpe=()=>`Success`,ype=()=>`Powodzenie`,bpe=((e={},t={})=>(t.locale??Y())===`pl`?ype(e):vpe(e)),xpe=()=>`Provider Latency`,Spe=()=>`Opóźnienie dostawców`,Cpe=((e={},t={})=>(t.locale??Y())===`pl`?Spe(e):xpe(e)),wpe=()=>`Provider latency help`,Tpe=()=>`Pomoc dotycząca opóźnienia dostawców`,Epe=((e={},t={})=>(t.locale??Y())===`pl`?Tpe(e):wpe(e)),Dpe=()=>`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.`,Ope=()=>`Ś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.`,kpe=((e={},t={})=>(t.locale??Y())===`pl`?Ope(e):Dpe(e)),Ape=()=>`Average duration of successful, uncached requests across all providers`,jpe=()=>`Średni czas trwania udanych Request'ów bez cache dla wszystkich dostawców`,Mpe=((e={},t={})=>(t.locale??Y())===`pl`?jpe(e):Ape(e)),Npe=()=>`Avg`,Ppe=()=>`Śr.`,Fpe=((e={},t={})=>(t.locale??Y())===`pl`?Ppe(e):Npe(e)),Ipe=()=>`Providers Overview`,Lpe=()=>`Przegląd dostawców`,Rpe=((e={},t={})=>(t.locale??Y())===`pl`?Lpe(e):Ipe(e)),zpe=()=>`Loading provider status`,Bpe=()=>`Wczytywanie statusu dostawców`,Vpe=((e={},t={})=>(t.locale??Y())===`pl`?Bpe(e):zpe(e)),Hpe=()=>`Show Details`,Upe=()=>`Pokaż szczegóły`,Wpe=((e={},t={})=>(t.locale??Y())===`pl`?Upe(e):Hpe(e)),Gpe=()=>`Hide Details`,Kpe=()=>`Ukryj szczegóły`,qpe=((e={},t={})=>(t.locale??Y())===`pl`?Kpe(e):Gpe(e)),Jpe=e=>`View ${e?.provider} provider docs`,Ype=e=>`Zobacz dokumentację dostawcy ${e?.provider}`,qo=((e,t={})=>(t.locale??Y())===`pl`?Ype(e):Jpe(e)),Xpe=()=>`Models Available`,Zpe=()=>`Dostępne modele`,Qpe=((e={},t={})=>(t.locale??Y())===`pl`?Zpe(e):Xpe(e)),$pe=()=>`Last Checked`,eme=()=>`Ostatnio sprawdzono`,tme=((e={},t={})=>(t.locale??Y())===`pl`?eme(e):$pe(e)),nme=e=>`Expand ${e?.provider} details`,rme=e=>`Rozwiń szczegóły dostawcy ${e?.provider}`,ime=((e,t={})=>(t.locale??Y())===`pl`?rme(e):nme(e)),ame=e=>`Collapse ${e?.provider} details`,ome=e=>`Zwiń szczegóły dostawcy ${e?.provider}`,sme=((e,t={})=>(t.locale??Y())===`pl`?ome(e):ame(e)),cme=()=>`Expand details`,lme=()=>`Rozwiń szczegóły`,ume=((e={},t={})=>(t.locale??Y())===`pl`?lme(e):cme(e)),dme=()=>`Collapse details`,fme=()=>`Zwiń szczegóły`,pme=((e={},t={})=>(t.locale??Y())===`pl`?fme(e):dme(e)),mme=()=>`Base URL`,hme=()=>`Bazowy URL`,Jo=((e={},t={})=>(t.locale??Y())===`pl`?hme(e):mme(e)),gme=()=>`API Version`,_me=()=>`Wersja API`,vme=((e={},t={})=>(t.locale??Y())===`pl`?_me(e):gme(e)),yme=()=>`Recent Requests`,bme=()=>`Ostatnie Requesty`,xme=((e={},t={})=>(t.locale??Y())===`pl`?bme(e):yme(e)),Sme=()=>`Breaker State`,Cme=()=>`Stan circuit breakera`,wme=((e={},t={})=>(t.locale??Y())===`pl`?Cme(e):Sme(e)),Tme=()=>`Models (Recent Traffic)`,Eme=()=>`Modele (ostatni ruch)`,Dme=((e={},t={})=>(t.locale??Y())===`pl`?Eme(e):Tme(e)),Ome=()=>`Configured Models`,kme=()=>`Skonfigurowane modele`,Ame=((e={},t={})=>(t.locale??Y())===`pl`?kme(e):Ome(e)),jme=()=>`Retry`,Mme=()=>`Retry`,Nme=((e={},t={})=>(t.locale??Y())===`pl`?Mme(e):jme(e)),Pme=()=>`Circuit Breaker`,Fme=()=>`Circuit Breaker`,Ime=((e={},t={})=>(t.locale??Y())===`pl`?Fme(e):Pme(e)),Lme=()=>`None configured`,Rme=()=>`Brak konfiguracji`,Yo=((e={},t={})=>(t.locale??Y())===`pl`?Rme(e):Lme(e)),Xo=()=>`All healthy`,Zo=()=>`Wszystkie działają prawidłowo`,Qo=((e={},t={})=>(t.locale??Y())===`pl`?Zo(e):Xo(e)),$o=()=>`None healthy`,es=()=>`Żaden nie działa prawidłowo`,ts=((e={},t={})=>(t.locale??Y())===`pl`?es(e):$o(e)),ns=()=>`Automatic`,rs=()=>`Automatycznie`,is=((e={},t={})=>(t.locale??Y())===`pl`?rs(e):ns(e)),as=e=>`Last error: ${e?.error}`,os=e=>`Ostatni błąd: ${e?.error}`,ss=((e,t={})=>(t.locale??Y())===`pl`?os(e):as(e)),cs=()=>`All MCP servers connected`,ls=()=>`Wszystkie serwery MCP są połączone`,us=((e={},t={})=>(t.locale??Y())===`pl`?ls(e):cs(e)),ds=()=>`Share of input tokens over the selected period`,fs=()=>`Udział input tokens w wybranym okresie`,ps=((e={},t={})=>(t.locale??Y())===`pl`?fs(e):ds(e)),ms=()=>`No usage in the selected period yet`,hs=()=>`Brak danych o zużyciu w wybranym okresie`,gs=((e={},t={})=>(t.locale??Y())===`pl`?hs(e):ms(e)),_s=()=>`Regular`,vs=()=>`Standardowe`,ys=((e={},t={})=>(t.locale??Y())===`pl`?vs(e):_s(e)),bs=e=>`Includes ${e?.count} cache-write tokens`,xs=e=>`Obejmuje ${e?.count} tokenów zapisu do cache`,Ss=((e,t={})=>(t.locale??Y())===`pl`?xs(e):bs(e)),Cs=()=>`Prompt cached`,ws=()=>`Prompt cache`,Ts=((e={},t={})=>(t.locale??Y())===`pl`?ws(e):Cs(e)),Es=()=>`Provider prompt-cache reads`,Ds=()=>`Odczyty z prompt cache dostawcy`,Os=((e={},t={})=>(t.locale??Y())===`pl`?Ds(e):Es(e)),ks=()=>`Locally cached`,As=()=>`Lokalny cache`,js=((e={},t={})=>(t.locale??Y())===`pl`?As(e):ks(e)),Ms=()=>`Served from GoModel response cache`,Ns=()=>`Obsłużone przez response cache GoModel`,Ps=((e={},t={})=>(t.locale??Y())===`pl`?Ns(e):Ms(e)),Fs=e=>`Cache breakdown of input tokens — ${e?.details}`,Is=e=>`Podział input tokens według cache — ${e?.details}`,Ls=((e,t={})=>(t.locale??Y())===`pl`?Is(e):Fs(e)),Rs=()=>`Activity`,zs=()=>`Aktywność`,Bs=((e={},t={})=>(t.locale??Y())===`pl`?zs(e):Rs(e)),Vs=()=>`Loading activity`,Hs=()=>`Wczytywanie aktywności`,Us=((e={},t={})=>(t.locale??Y())===`pl`?Hs(e):Vs(e)),Ws=()=>`Activity calendar mode`,Gs=()=>`Tryb kalendarza aktywności`,Ks=((e={},t={})=>(t.locale??Y())===`pl`?Gs(e):Ws(e)),qs=()=>`Costs`,Js=()=>`Koszty`,Ys=((e={},t={})=>(t.locale??Y())===`pl`?Js(e):qs(e)),Xs=()=>`Mon`,Zs=()=>`Pon`,Qs=((e={},t={})=>(t.locale??Y())===`pl`?Zs(e):Xs(e)),$s=()=>`Wed`,ec=()=>`Śr`,tc=((e={},t={})=>(t.locale??Y())===`pl`?ec(e):$s(e)),nc=()=>`Fri`,rc=()=>`Pt`,ic=((e={},t={})=>(t.locale??Y())===`pl`?rc(e):nc(e)),ac=()=>`Less`,oc=()=>`Mniej`,sc=((e={},t={})=>(t.locale??Y())===`pl`?oc(e):ac(e)),cc=()=>`More`,lc=()=>`Więcej`,uc=((e={},t={})=>(t.locale??Y())===`pl`?lc(e):cc(e)),dc=()=>`Live Token Throughput`,fc=()=>`Przepływ tokenów`,pc=((e={},t={})=>(t.locale??Y())===`pl`?fc(e):dc(e)),mc=()=>`Live token throughput granularity`,hc=()=>`Ziarnistość przepływu tokenów`,gc=((e={},t={})=>(t.locale??Y())===`pl`?hc(e):mc(e)),_c=()=>`Waiting for live requests…`,vc=()=>`Oczekiwanie na Requesty Live…`,yc=((e={},t={})=>(t.locale??Y())===`pl`?vc(e):_c(e)),bc=()=>`Seconds`,xc=()=>`Sekundy`,Sc=((e={},t={})=>(t.locale??Y())===`pl`?xc(e):bc(e)),Cc=()=>`Minutes`,wc=()=>`Minuty`,Tc=((e={},t={})=>(t.locale??Y())===`pl`?wc(e):Cc(e)),Ec=()=>`Hours`,Dc=()=>`Godziny`,Oc=((e={},t={})=>(t.locale??Y())===`pl`?Dc(e):Ec(e)),kc=()=>`Days`,Ac=()=>`Dni`,jc=((e={},t={})=>(t.locale??Y())===`pl`?Ac(e):kc(e)),Mc=()=>`Last 60 seconds`,Nc=()=>`Ostatnie 60 sekund`,Pc=((e={},t={})=>(t.locale??Y())===`pl`?Nc(e):Mc(e)),Fc=()=>`Last 60 minutes`,Ic=()=>`Ostatnie 60 minut`,Lc=((e={},t={})=>(t.locale??Y())===`pl`?Ic(e):Fc(e)),Rc=()=>`Last 24 hours`,zc=()=>`Ostatnie 24 godziny`,Bc=((e={},t={})=>(t.locale??Y())===`pl`?zc(e):Rc(e)),Vc=()=>`Last 30 days`,Hc=()=>`Ostatnie 30 dni`,Uc=((e={},t={})=>(t.locale??Y())===`pl`?Hc(e):Vc(e)),Wc=()=>`Prompt (Input) Cached`,Gc=()=>`Prompt (wejście) z cache`,Kc=((e={},t={})=>(t.locale??Y())===`pl`?Gc(e):Wc(e)),qc=()=>`Locally Cached`,Jc=()=>`Lokalny cache`,Yc=((e={},t={})=>(t.locale??Y())===`pl`?Jc(e):qc(e)),Xc=e=>`Total: ${e?.total}`,Zc=e=>`Łącznie: ${e?.total}`,Qc=((e,t={})=>(t.locale??Y())===`pl`?Zc(e):Xc(e)),$c=e=>`${e?.provider} to providers + ${e?.cache} from cache`,el=e=>`${e?.provider} do dostawców + ${e?.cache} z cache`,tl=((e,t={})=>(t.locale??Y())===`pl`?el(e):$c(e)),nl=e=>`${e?.label}: ${e?.tokens} input tokens (${e?.percent}%)`,rl=e=>`${e?.label}: ${e?.tokens} input tokens (${e?.percent}%)`,il=((e,t={})=>(t.locale??Y())===`pl`?rl(e):nl(e)),al=()=>`no data`,ol=()=>`brak danych`,sl=((e={},t={})=>(t.locale??Y())===`pl`?ol(e):al(e)),cl=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} needs attention`:`${e?.count} need attention`,ll=e=>{let t=Ao(`pl`,e?.count,{});return t===`one`?`${e?.count} wymaga uwagi`:t===`few`?`${e?.count} wymagają uwagi`:`${e?.count} wymaga uwagi`},ul=((e,t={})=>(t.locale??Y())===`pl`?ll(e):cl(e)),dl=e=>`${e?.count} servers need attention`,fl=e=>`Serwery wymagające uwagi: ${e?.count}`,pl=((e,t={})=>(t.locale??Y())===`pl`?fl(e):dl(e)),ml=e=>`${e?.connected} of ${e?.total} servers connected`,hl=e=>`Połączone serwery: ${e?.connected} z ${e?.total}`,gl=((e,t={})=>(t.locale??Y())===`pl`?hl(e):ml(e)),_l=e=>`$${e?.total} in the last year`,vl=e=>`$${e?.total} w ostatnim roku`,yl=((e,t={})=>(t.locale??Y())===`pl`?vl(e):_l(e)),bl=e=>`${e?.total} tokens in the last year`,xl=e=>`${e?.total} tokenów w ostatnim roku`,Sl=((e,t={})=>(t.locale??Y())===`pl`?xl(e):bl(e)),Cl=e=>`$${e?.total} on ${e?.date}`,wl=e=>`$${e?.total} dnia ${e?.date}`,Tl=((e,t={})=>(t.locale??Y())===`pl`?wl(e):Cl(e)),El=e=>`${e?.total} tokens on ${e?.date}`,Dl=e=>`${e?.total} tokenów dnia ${e?.date}`,Ol=((e,t={})=>(t.locale??Y())===`pl`?Dl(e):El(e)),kl=e=>`Live token throughput, ${e?.window}. Input ${e?.input}, output ${e?.output}, prompt cached ${e?.prompt}, locally cached ${e?.local} tokens.`,Al=e=>`Przepływ tokenów, ${e?.window}. Input ${e?.input}, output ${e?.output}, prompt cache ${e?.prompt}, lokalny cache ${e?.local} tokenów.`,jl=((e,t={})=>(t.locale??Y())===`pl`?Al(e):kl(e)),Ml=()=>`Other`,Nl=()=>`Inne`,Pl=((e={},t={})=>(t.locale??Y())===`pl`?Nl(e):Ml(e)),Fl=()=>`Timezone`,Il=()=>`Strefa czasowa`,Ll=((e={},t={})=>(t.locale??Y())===`pl`?Il(e):Fl(e)),Rl=()=>`Timezone help`,zl=()=>`Pomoc dotycząca strefy czasowej`,Bl=((e={},t={})=>(t.locale??Y())===`pl`?zl(e):Rl(e)),Vl=()=>`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.`,Hl=()=>`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.`,Ul=((e={},t={})=>(t.locale??Y())===`pl`?Hl(e):Vl(e)),Wl=()=>`Timezone Override`,Gl=()=>`Nadpisanie strefy czasowej`,Kl=((e={},t={})=>(t.locale??Y())===`pl`?Gl(e):Wl(e)),ql=e=>`Automatic (${e?.timezone})`,Jl=e=>`Automatycznie (${e?.timezone})`,Yl=((e,t={})=>(t.locale??Y())===`pl`?Jl(e):ql(e)),Xl=()=>`Use Browser Timezone`,Zl=()=>`Użyj strefy czasowej przeglądarki`,Ql=((e={},t={})=>(t.locale??Y())===`pl`?Zl(e):Xl(e)),$l=()=>`Failover`,eu=()=>`Failover`,tu=((e={},t={})=>(t.locale??Y())===`pl`?eu(e):$l(e)),nu=()=>`Generating…`,ru=()=>`Generowanie…`,iu=((e={},t={})=>(t.locale??Y())===`pl`?ru(e):nu(e)),au=()=>`Generate failover models automatically`,ou=()=>`Wygeneruj modele failover automatycznie`,su=((e={},t={})=>(t.locale??Y())===`pl`?ou(e):au(e)),cu=()=>`Remove all failover models`,lu=()=>`Usuń wszystkie modele failover`,uu=((e={},t={})=>(t.locale??Y())===`pl`?lu(e):cu(e)),du=()=>`Reset All Budgets`,fu=()=>`Zresetuj wszystkie budżety`,pu=((e={},t={})=>(t.locale??Y())===`pl`?fu(e):du(e)),mu=()=>`Start new budget periods for every configured budget without changing the limits.`,hu=()=>`Rozpocznij nowe okresy dla wszystkich skonfigurowanych budżetów bez zmiany limitów.`,gu=((e={},t={})=>(t.locale??Y())===`pl`?hu(e):mu(e)),_u=()=>`Reset Budgets`,vu=()=>`Resetuj budżety`,yu=((e={},t={})=>(t.locale??Y())===`pl`?vu(e):_u(e)),bu=()=>`Budget help`,xu=()=>`Pomoc dotycząca budżetów`,Su=((e={},t={})=>(t.locale??Y())===`pl`?xu(e):bu(e)),Cu=()=>`Budget reset anchors are stored in the database and evaluated in UTC. Hourly budgets reset at the top of each hour.`,wu=()=>`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.`,Tu=((e={},t={})=>(t.locale??Y())===`pl`?wu(e):Cu(e)),Eu=()=>`Budget Resets`,Du=()=>`Resetowanie budżetów`,Ou=((e={},t={})=>(t.locale??Y())===`pl`?Du(e):Eu(e)),ku=()=>`Budgets`,Au=()=>`Budżety`,ju=((e={},t={})=>(t.locale??Y())===`pl`?Au(e):ku(e)),Mu=()=>`Budgets help`,Nu=()=>`Pomoc dotycząca budżetów`,Pu=((e={},t={})=>(t.locale??Y())===`pl`?Nu(e):Mu(e)),Fu=()=>`Budgets are evaluated from tracked usage cost records for each user path subtree. Enforcement runs only when Budget is enabled for the active workflow.`,Iu=()=>`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.`,Lu=((e={},t={})=>(t.locale??Y())===`pl`?Iu(e):Fu(e)),Ru=()=>`Create Budget`,zu=()=>`Utwórz budżet`,Bu=((e={},t={})=>(t.locale??Y())===`pl`?zu(e):Ru(e)),Vu=()=>`Budget management is unavailable.`,Hu=()=>`Zarządzanie budżetami jest niedostępne.`,Uu=((e={},t={})=>(t.locale??Y())===`pl`?Hu(e):Vu(e)),Wu=()=>`Loading budgets...`,Gu=()=>`Wczytywanie budżetów...`,Ku=((e={},t={})=>(t.locale??Y())===`pl`?Gu(e):Wu(e)),qu=()=>`Filter by user path, label, or period...`,Ju=()=>`Filtruj według User Path, etykiety lub okresu...`,Yu=((e={},t={})=>(t.locale??Y())===`pl`?Ju(e):qu(e)),Xu=()=>`Filter budgets by user path, label, or period`,Zu=()=>`Filtruj budżety według User Path, etykiety lub okresu`,Qu=((e={},t={})=>(t.locale??Y())===`pl`?Zu(e):Xu(e)),$u=()=>`Sort by`,ed=()=>`Sortuj według`,td=((e={},t={})=>(t.locale??Y())===`pl`?ed(e):$u(e)),nd=()=>`Sort budgets by`,rd=()=>`Sortuj budżety według`,id=((e={},t={})=>(t.locale??Y())===`pl`?rd(e):nd(e)),ad=()=>`Scope & Subject`,od=()=>`Zakres i podmiot`,sd=((e={},t={})=>(t.locale??Y())===`pl`?od(e):ad(e)),cd=()=>`Period`,ld=()=>`Okres`,ud=((e={},t={})=>(t.locale??Y())===`pl`?ld(e):cd(e)),dd=()=>`No budgets configured yet.`,fd=()=>`Nie skonfigurowano jeszcze budżetów.`,pd=((e={},t={})=>(t.locale??Y())===`pl`?fd(e):dd(e)),md=()=>`No budgets match your filter.`,hd=()=>`Żaden budżet nie pasuje do filtra.`,gd=((e={},t={})=>(t.locale??Y())===`pl`?hd(e):md(e)),_d=()=>`Edit Budget`,vd=()=>`Edytuj budżet`,yd=((e={},t={})=>(t.locale??Y())===`pl`?vd(e):_d(e)),bd=()=>`Create Budget`,xd=()=>`Utwórz budżet`,Sd=((e={},t={})=>(t.locale??Y())===`pl`?xd(e):bd(e)),Cd=()=>`Budget editor`,wd=()=>`Edytor budżetu`,Td=((e={},t={})=>(t.locale??Y())===`pl`?wd(e):Cd(e)),Ed=()=>`Save Budget`,Dd=()=>`Zapisz budżet`,Od=((e={},t={})=>(t.locale??Y())===`pl`?Dd(e):Ed(e)),kd=()=>`Scope`,Ad=()=>`Zakres`,jd=((e={},t={})=>(t.locale??Y())===`pl`?Ad(e):kd(e)),Md=()=>`Period Seconds`,Nd=()=>`Okres w sekundach`,Pd=((e={},t={})=>(t.locale??Y())===`pl`?Nd(e):Md(e)),Fd=()=>`Amount`,Id=()=>`Kwota`,Ld=((e={},t={})=>(t.locale??Y())===`pl`?Id(e):Fd(e)),Rd=()=>`Editing a budget updates its limit only. Use Reset to start a new budget period.`,zd=()=>`Edycja budżetu zmienia tylko jego limit. Użyj Reset, aby rozpocząć nowy okres budżetowy.`,Bd=((e={},t={})=>(t.locale??Y())===`pl`?zd(e):Rd(e)),Vd=()=>`Override Existing Budget`,Hd=()=>`Nadpisz istniejący budżet`,Ud=((e={},t={})=>(t.locale??Y())===`pl`?Hd(e):Vd(e)),Wd=()=>`Close budget override dialog`,Gd=()=>`Zamknij okno nadpisywania budżetu`,Kd=((e={},t={})=>(t.locale??Y())===`pl`?Gd(e):Wd(e)),qd=()=>`Saving...`,Jd=()=>`Zapisywanie...`,Yd=((e={},t={})=>(t.locale??Y())===`pl`?Jd(e):qd(e)),Xd=()=>`Override Budget`,Zd=()=>`Nadpisz budżet`,Qd=((e={},t={})=>(t.locale??Y())===`pl`?Zd(e):Xd(e)),$d=()=>`User path`,ef=()=>`User Path`,tf=((e={},t={})=>(t.locale??Y())===`pl`?ef(e):$d(e)),nf=()=>`user path`,rf=()=>`User Path`,af=((e={},t={})=>(t.locale??Y())===`pl`?rf(e):nf(e)),of=()=>`User Path`,sf=()=>`User Path`,cf=((e={},t={})=>(t.locale??Y())===`pl`?sf(e):of(e)),lf=()=>`Label`,uf=()=>`Etykieta`,df=((e={},t={})=>(t.locale??Y())===`pl`?uf(e):lf(e)),ff=()=>`label`,pf=()=>`etykieta`,mf=((e={},t={})=>(t.locale??Y())===`pl`?pf(e):ff(e)),hf=()=>`Hourly`,gf=()=>`Co godzinę`,_f=((e={},t={})=>(t.locale??Y())===`pl`?gf(e):hf(e)),vf=()=>`Daily`,yf=()=>`Codziennie`,bf=((e={},t={})=>(t.locale??Y())===`pl`?yf(e):vf(e)),xf=()=>`Weekly`,Sf=()=>`Co tydzień`,Cf=((e={},t={})=>(t.locale??Y())===`pl`?Sf(e):xf(e)),wf=()=>`Monthly`,Tf=()=>`Co miesiąc`,Ef=((e={},t={})=>(t.locale??Y())===`pl`?Tf(e):wf(e)),Df=()=>`Custom seconds`,Of=()=>`Niestandardowa liczba sekund`,kf=((e={},t={})=>(t.locale??Y())===`pl`?Of(e):Df(e)),Af=()=>`User path is required.`,jf=()=>`User Path jest wymagany.`,Mf=((e={},t={})=>(t.locale??Y())===`pl`?jf(e):Af(e)),Nf=()=>`User path cannot contain "." or ".." segments.`,Pf=()=>`User Path nie może zawierać segmentów "." ani "..".`,Ff=((e={},t={})=>(t.locale??Y())===`pl`?Pf(e):Nf(e)),If=()=>`User path cannot contain ":" segments.`,Lf=()=>`User Path nie może zawierać segmentów z ":".`,Rf=((e={},t={})=>(t.locale??Y())===`pl`?Lf(e):If(e)),zf=()=>`Label is required.`,Bf=()=>`Etykieta jest wymagana.`,Vf=((e={},t={})=>(t.locale??Y())===`pl`?Bf(e):zf(e)),Hf=()=>`Amount must be greater than 0.`,Uf=()=>`Kwota musi być większa od 0.`,Wf=((e={},t={})=>(t.locale??Y())===`pl`?Uf(e):Hf(e)),Gf=()=>`Period seconds must be greater than 0.`,Kf=()=>`Okres w sekundach musi być większy od 0.`,qf=((e={},t={})=>(t.locale??Y())===`pl`?Kf(e):Gf(e)),Jf=e=>`Custom ${e?.period}`,Yf=e=>`Niestandardowy okres: ${e?.period}`,Xf=((e,t={})=>(t.locale??Y())===`pl`?Yf(e):Jf(e)),Zf=e=>`${e?.count} seconds`,Qf=e=>`${e?.count} s`,$f=((e,t={})=>(t.locale??Y())===`pl`?Qf(e):Zf(e)),ep=()=>`1 second`,tp=()=>`1 sekunda`,np=((e={},t={})=>(t.locale??Y())===`pl`?tp(e):ep(e)),rp=()=>`1 hour`,ip=()=>`1 godzina`,ap=((e={},t={})=>(t.locale??Y())===`pl`?ip(e):rp(e)),op=()=>`1 day`,sp=()=>`1 dzień`,cp=((e={},t={})=>(t.locale??Y())===`pl`?sp(e):op(e)),lp=()=>`1 week`,up=()=>`1 tydzień`,dp=((e={},t={})=>(t.locale??Y())===`pl`?up(e):lp(e)),fp=()=>`1 month`,pp=()=>`1 miesiąc`,mp=((e={},t={})=>(t.locale??Y())===`pl`?pp(e):fp(e)),hp=()=>`Created from the dashboard.`,gp=()=>`Utworzono w dashboardzie.`,_p=((e={},t={})=>(t.locale??Y())===`pl`?gp(e):hp(e)),vp=()=>`Loaded from configuration.`,yp=()=>`Wczytano z konfiguracji.`,bp=((e={},t={})=>(t.locale??Y())===`pl`?yp(e):vp(e)),xp=e=>`Budget source: ${e?.source}`,Sp=e=>`Źródło budżetu: ${e?.source}`,Cp=((e,t={})=>(t.locale??Y())===`pl`?Sp(e):xp(e)),wp=e=>`${e?.amount} remaining`,Tp=e=>`Pozostało ${e?.amount}`,Ep=((e,t={})=>(t.locale??Y())===`pl`?Tp(e):wp(e)),Dp=e=>`${e?.amount} over`,Op=e=>`Przekroczono o ${e?.amount}`,kp=((e,t={})=>(t.locale??Y())===`pl`?Op(e):Dp(e)),Ap=()=>`Edit`,jp=()=>`Edytuj`,Mp=((e={},t={})=>(t.locale??Y())===`pl`?jp(e):Ap(e)),Np=()=>`Edit budget`,Pp=()=>`Edytuj budżet`,Fp=((e={},t={})=>(t.locale??Y())===`pl`?Pp(e):Np(e)),Ip=()=>`Reset`,Lp=()=>`Reset`,Rp=((e={},t={})=>(t.locale??Y())===`pl`?Lp(e):Ip(e)),zp=()=>`Resetting`,Bp=()=>`Resetowanie`,Vp=((e={},t={})=>(t.locale??Y())===`pl`?Bp(e):zp(e)),Hp=()=>`Reset budget`,Up=()=>`Zresetuj budżet`,Wp=((e={},t={})=>(t.locale??Y())===`pl`?Up(e):Hp(e)),Gp=()=>`Resetting budget`,Kp=()=>`Resetowanie budżetu`,qp=((e={},t={})=>(t.locale??Y())===`pl`?Kp(e):Gp(e)),Jp=()=>`Delete`,Yp=()=>`Usuń`,Xp=((e={},t={})=>(t.locale??Y())===`pl`?Yp(e):Jp(e)),Zp=()=>`Deleting`,Qp=()=>`Usuwanie`,$p=((e={},t={})=>(t.locale??Y())===`pl`?Qp(e):Zp(e)),em=()=>`Delete budget`,tm=()=>`Usuń budżet`,nm=((e={},t={})=>(t.locale??Y())===`pl`?tm(e):em(e)),rm=()=>`Deleting budget`,im=()=>`Usuwanie budżetu`,am=((e={},t={})=>(t.locale??Y())===`pl`?im(e):rm(e)),om=()=>`Usage`,sm=()=>`Zużycie`,cm=((e={},t={})=>(t.locale??Y())===`pl`?sm(e):om(e)),lm=e=>`Budget usage: ${e?.spent} of ${e?.amount}, ${e?.remaining}`,um=e=>`Zużycie budżetu: ${e?.spent} z ${e?.amount}, ${e?.remaining}`,dm=((e,t={})=>(t.locale??Y())===`pl`?um(e):lm(e)),fm=e=>`${e?.spent} of ${e?.amount}`,pm=e=>`${e?.spent} z ${e?.amount}`,mm=((e,t={})=>(t.locale??Y())===`pl`?pm(e):fm(e)),hm=()=>`Budget period elapsed`,gm=()=>`Upływ okresu budżetowego`,_m=((e={},t={})=>(t.locale??Y())===`pl`?gm(e):hm(e)),vm=e=>`A budget for "${e?.label}" already exists. Saving will override the current ${e?.current} limit with ${e?.next}.`,ym=e=>`Budżet dla "${e?.label}" już istnieje. Zapisanie nadpisze bieżący limit ${e?.current} wartością ${e?.next}.`,bm=((e,t={})=>(t.locale??Y())===`pl`?ym(e):vm(e)),xm=()=>`Unable to load budgets.`,Sm=()=>`Nie udało się wczytać budżetów.`,Cm=((e={},t={})=>(t.locale??Y())===`pl`?Sm(e):xm(e)),wm=()=>`Unable to save budget.`,Tm=()=>`Nie udało się zapisać budżetu.`,Em=((e={},t={})=>(t.locale??Y())===`pl`?Tm(e):wm(e)),Dm=()=>`Budget saved.`,Om=()=>`Budżet zapisany.`,km=((e={},t={})=>(t.locale??Y())===`pl`?Om(e):Dm(e)),Am=e=>`Reset budget "${e?.label}"?`,jm=e=>`Zresetować budżet "${e?.label}"?`,Mm=((e,t={})=>(t.locale??Y())===`pl`?jm(e):Am(e)),Nm=()=>`Unable to reset budget.`,Pm=()=>`Nie udało się zresetować budżetu.`,Fm=((e={},t={})=>(t.locale??Y())===`pl`?Pm(e):Nm(e)),Im=()=>`Budget reset.`,Lm=()=>`Budżet zresetowany.`,Rm=((e={},t={})=>(t.locale??Y())===`pl`?Lm(e):Im(e)),zm=e=>`Delete budget "${e?.label}"? This cannot be undone.`,Bm=e=>`Usunąć budżet "${e?.label}"? Tej operacji nie można cofnąć.`,Vm=((e,t={})=>(t.locale??Y())===`pl`?Bm(e):zm(e)),Hm=()=>`Unable to delete budget.`,Um=()=>`Nie udało się usunąć budżetu.`,Wm=((e={},t={})=>(t.locale??Y())===`pl`?Um(e):Hm(e)),Gm=()=>`Budget deleted.`,Km=()=>`Budżet usunięty.`,qm=((e={},t={})=>(t.locale??Y())===`pl`?Km(e):Gm(e)),Jm=()=>`Reset Budgets`,Ym=()=>`Resetowanie budżetów`,Xm=((e={},t={})=>(t.locale??Y())===`pl`?Ym(e):Jm(e)),Zm=()=>`Reset All Budgets`,Qm=()=>`Zresetuj wszystkie budżety`,$m=((e={},t={})=>(t.locale??Y())===`pl`?Qm(e):Zm(e)),eh=()=>`Unable to reset budgets.`,th=()=>`Nie udało się zresetować budżetów.`,nh=((e={},t={})=>(t.locale??Y())===`pl`?th(e):eh(e)),rh=()=>`Budgets reset.`,ih=()=>`Budżety zresetowane.`,ah=((e={},t={})=>(t.locale??Y())===`pl`?ih(e):rh(e)),oh=()=>`Models`,sh=()=>`Modele`,ch=((e={},t={})=>(t.locale??Y())===`pl`?sh(e):oh(e)),lh=e=>`${e?.count} models`,uh=e=>`Modele: ${e?.count}`,dh=((e,t={})=>(t.locale??Y())===`pl`?uh(e):lh(e)),fh=()=>`Virtual models feature is unavailable.`,ph=()=>`Funkcja modeli wirtualnych jest niedostępna.`,mh=((e={},t={})=>(t.locale??Y())===`pl`?ph(e):fh(e)),hh=()=>`Filter by provider, provider/model, alias, or owner...`,gh=()=>`Filtruj według dostawcy, dostawcy/modelu, aliasu lub właściciela...`,_h=((e={},t={})=>(t.locale??Y())===`pl`?gh(e):hh(e)),vh=()=>`Filter models by provider, provider/model, alias, or owner`,yh=()=>`Filtruj modele według dostawcy, dostawcy/modelu, aliasu lub właściciela`,bh=((e={},t={})=>(t.locale??Y())===`pl`?yh(e):vh(e)),xh=()=>`New virtual model`,Sh=()=>`Nowy model wirtualny`,Ch=((e={},t={})=>(t.locale??Y())===`pl`?Sh(e):xh(e)),wh=()=>`New virtual model alias`,Th=()=>`Nowy alias modelu wirtualnego`,Eh=((e={},t={})=>(t.locale??Y())===`pl`?Th(e):wh(e)),Dh=()=>`Alias`,Oh=()=>`Alias`,kh=((e={},t={})=>(t.locale??Y())===`pl`?Oh(e):Dh(e)),Ah=()=>`No models registered.`,jh=()=>`Nie zarejestrowano modeli.`,Mh=((e={},t={})=>(t.locale??Y())===`pl`?jh(e):Ah(e)),Nh=()=>`No models in this category.`,Ph=()=>`Brak modeli w tej kategorii.`,Fh=((e={},t={})=>(t.locale??Y())===`pl`?Ph(e):Nh(e)),Ih=()=>`No models match your filter.`,Lh=()=>`Żaden model nie pasuje do filtra.`,Rh=((e={},t={})=>(t.locale??Y())===`pl`?Lh(e):Ih(e)),zh=()=>`Model`,Bh=()=>`Model`,Vh=((e={},t={})=>(t.locale??Y())===`pl`?Bh(e):zh(e)),Hh=()=>`Enabled`,Uh=()=>`Włączony`,Wh=((e={},t={})=>(t.locale??Y())===`pl`?Uh(e):Hh(e)),Gh=()=>`Disabled`,Kh=()=>`Wyłączony`,qh=((e={},t={})=>(t.locale??Y())===`pl`?Kh(e):Gh(e)),Jh=()=>`Restricted`,Yh=()=>`Ograniczony`,Xh=((e={},t={})=>(t.locale??Y())===`pl`?Yh(e):Jh(e)),Zh=()=>`Updating...`,Qh=()=>`Aktualizowanie...`,$h=((e={},t={})=>(t.locale??Y())===`pl`?Qh(e):Zh(e)),eg=()=>`Loading models...`,tg=()=>`Wczytywanie modeli...`,ng=((e={},t={})=>(t.locale??Y())===`pl`?tg(e):eg(e)),rg=()=>`Refreshing models...`,ig=()=>`Odświeżanie modeli...`,ag=((e={},t={})=>(t.locale??Y())===`pl`?ig(e):rg(e)),og=e=>`Rendering models... ${e?.visible} / ${e?.total}`,sg=e=>`Renderowanie modeli... ${e?.visible} / ${e?.total}`,cg=((e,t={})=>(t.locale??Y())===`pl`?sg(e):og(e)),lg=()=>`All providers and models`,ug=()=>`Wszyscy dostawcy i modele`,dg=((e={},t={})=>(t.locale??Y())===`pl`?ug(e):lg(e)),fg=e=>`All models in ${e?.provider}`,pg=e=>`Wszystkie modele dostawcy ${e?.provider}`,mg=((e,t={})=>(t.locale??Y())===`pl`?pg(e):fg(e)),hg=()=>`Virtual model`,gg=()=>`Model wirtualny`,_g=((e={},t={})=>(t.locale??Y())===`pl`?gg(e):hg(e)),vg=()=>`Redirect`,yg=()=>`Przekierowanie`,bg=((e={},t={})=>(t.locale??Y())===`pl`?yg(e):vg(e)),xg=()=>`Managed by config.yaml / VIRTUAL_MODELS`,Sg=()=>`Zarządzane przez config.yaml / VIRTUAL_MODELS`,Cg=((e={},t={})=>(t.locale??Y())===`pl`?Sg(e):xg(e)),wg=()=>`Config`,Tg=()=>`Config`,Eg=((e={},t={})=>(t.locale??Y())===`pl`?Tg(e):wg(e)),Dg=()=>`On`,Og=()=>`Włączone`,kg=((e={},t={})=>(t.locale??Y())===`pl`?Og(e):Dg(e)),Ag=()=>`Targets`,jg=()=>`Cele`,Mg=((e={},t={})=>(t.locale??Y())===`pl`?jg(e):Ag(e)),Ng=()=>`Redirects to`,Pg=()=>`Przekierowuje do`,Fg=((e={},t={})=>(t.locale??Y())===`pl`?Pg(e):Ng(e)),Ig=()=>`remove`,Lg=()=>`usuń`,Rg=((e={},t={})=>(t.locale??Y())===`pl`?Lg(e):Ig(e)),zg=e=>`Remove redirect for ${e?.model}`,Bg=e=>`Usuń przekierowanie dla ${e?.model}`,Vg=((e,t={})=>(t.locale??Y())===`pl`?Bg(e):zg(e)),Hg=e=>`Removing redirect for ${e?.model}`,Ug=e=>`Usuwanie przekierowania dla ${e?.model}`,Wg=((e,t={})=>(t.locale??Y())===`pl`?Ug(e):Hg(e)),Gg=()=>`Slowdown`,Kg=()=>`Spowolnienie`,qg=((e={},t={})=>(t.locale??Y())===`pl`?Kg(e):Gg(e)),Jg=e=>`+${e?.value}× inference time`,Yg=e=>`+${e?.value}× czasu inferencji`,Xg=((e,t={})=>(t.locale??Y())===`pl`?Yg(e):Jg(e)),Zg=()=>`Virtual model editor`,Qg=()=>`Edytor modelu wirtualnego`,$g=((e={},t={})=>(t.locale??Y())===`pl`?Qg(e):Zg(e)),e_=()=>`Save`,t_=()=>`Zapisz`,n_=((e={},t={})=>(t.locale??Y())===`pl`?t_(e):e_(e)),r_=()=>`Create`,i_=()=>`Utwórz`,a_=((e={},t={})=>(t.locale??Y())===`pl`?i_(e):r_(e)),o_=()=>`Virtual model help`,s_=()=>`Pomoc dotycząca modeli wirtualnych`,c_=((e={},t={})=>(t.locale??Y())===`pl`?s_(e):o_(e)),l_=()=>`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.`,u_=()=>`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.`,d_=((e={},t={})=>(t.locale??Y())===`pl`?u_(e):l_(e)),f_=()=>`This virtual model is defined in configuration and is read-only here. Edit your configuration to change it.`,p_=()=>`Ten model wirtualny jest zdefiniowany w konfiguracji i tutaj jest tylko do odczytu. Aby go zmienić, edytuj konfigurację.`,m_=((e={},t={})=>(t.locale??Y())===`pl`?p_(e):f_(e)),h_=()=>`Source`,g_=()=>`Źródło`,__=((e={},t={})=>(t.locale??Y())===`pl`?g_(e):h_(e)),v_=()=>`Add target (load balancing)`,y_=()=>`Dodaj cel (równoważenie obciążenia)`,b_=((e={},t={})=>(t.locale??Y())===`pl`?y_(e):v_(e)),x_=()=>`Load-balancing strategy`,S_=()=>`Strategia równoważenia obciążenia`,C_=((e={},t={})=>(t.locale??Y())===`pl`?S_(e):x_(e)),w_=()=>`Session keeping (route a detected client session to the target that served it)`,T_=()=>`Utrzymywanie sesji (kieruj wykrytą sesję klienta do celu, który ją obsłużył)`,E_=((e={},t={})=>(t.locale??Y())===`pl`?T_(e):w_(e)),D_=()=>`User Paths`,O_=()=>`User Paths`,k_=((e={},t={})=>(t.locale??Y())===`pl`?O_(e):D_(e)),A_=()=>`User paths help`,j_=()=>`Pomoc dotycząca ścieżek użytkownika`,M_=((e={},t={})=>(t.locale??Y())===`pl`?j_(e):A_(e)),N_=()=>`Use / to allow every user path. Use a team path to restrict to that subtree, or an unused path to make the selector unavailable.`,P_=()=>`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.`,F_=((e={},t={})=>(t.locale??Y())===`pl`?P_(e):N_(e)),I_=()=>`Description`,L_=()=>`Opis`,R_=((e={},t={})=>(t.locale??Y())===`pl`?L_(e):I_(e)),z_=()=>`Optional description`,B_=()=>`Opcjonalny opis`,V_=((e={},t={})=>(t.locale??Y())===`pl`?B_(e):z_(e)),H_=()=>`Slowdown (extra inference time)`,U_=()=>`Spowolnienie (dodatkowy czas inferencji)`,W_=((e={},t={})=>(t.locale??Y())===`pl`?U_(e):H_(e)),G_=()=>`Off`,K_=()=>`Wyłączone`,q_=((e={},t={})=>(t.locale??Y())===`pl`?K_(e):G_(e)),J_=()=>`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.`,Y_=()=>`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.`,X_=((e={},t={})=>(t.locale??Y())===`pl`?Y_(e):J_(e)),Z_=e=>`Default enabled: ${e?.default} · Effective now: ${e?.effective}`,Q_=e=>`Domyślnie włączony: ${e?.default} · Obecnie aktywny: ${e?.effective}`,$_=((e,t={})=>(t.locale??Y())===`pl`?Q_(e):Z_(e)),ev=()=>`yes`,tv=()=>`tak`,nv=((e={},t={})=>(t.locale??Y())===`pl`?tv(e):ev(e)),rv=()=>`no`,iv=()=>`nie`,av=((e={},t={})=>(t.locale??Y())===`pl`?iv(e):rv(e)),ov=()=>`Target model`,sv=()=>`Model docelowy`,cv=((e={},t={})=>(t.locale??Y())===`pl`?sv(e):ov(e)),lv=()=>`Target weight`,uv=()=>`Waga celu`,dv=((e={},t={})=>(t.locale??Y())===`pl`?uv(e):lv(e)),fv=()=>`weight`,pv=()=>`waga`,mv=((e={},t={})=>(t.locale??Y())===`pl`?pv(e):fv(e)),hv=()=>`Remove target`,gv=()=>`Usuń cel`,_v=((e={},t={})=>(t.locale??Y())===`pl`?gv(e):hv(e)),vv=()=>`Model pricing editor`,yv=()=>`Edytor cen modelu`,bv=((e={},t={})=>(t.locale??Y())===`pl`?yv(e):vv(e)),xv=()=>`Save Pricing`,Sv=()=>`Zapisz ceny`,Cv=((e={},t={})=>(t.locale??Y())===`pl`?Sv(e):xv(e)),wv=()=>`Pricing override`,Tv=()=>`Nadpisanie cen`,Ev=((e={},t={})=>(t.locale??Y())===`pl`?Tv(e):wv(e)),Dv=()=>`Pricing`,Ov=()=>`Ceny`,kv=((e={},t={})=>(t.locale??Y())===`pl`?Ov(e):Dv(e)),Av=()=>`Selector`,jv=()=>`Selektor`,Mv=((e={},t={})=>(t.locale??Y())===`pl`?jv(e):Av(e)),Nv=()=>`Scope`,Pv=()=>`Zakres`,Fv=((e={},t={})=>(t.locale??Y())===`pl`?Pv(e):Nv(e)),Iv=()=>`Currency is USD. Saved fields override model registry and config.yaml pricing for this selector; unset fields continue to inherit.`,Lv=()=>`Walutą jest USD. Zapisane pola nadpisują ceny z rejestru modeli i config.yaml dla tego selektora; nieustawione pola nadal są dziedziczone.`,Rv=((e={},t={})=>(t.locale??Y())===`pl`?Lv(e):Iv(e)),zv=()=>`Price Type`,Bv=()=>`Typ ceny`,Vv=((e={},t={})=>(t.locale??Y())===`pl`?Bv(e):zv(e)),Hv=()=>`USD Value`,Uv=()=>`Wartość USD`,Wv=((e={},t={})=>(t.locale??Y())===`pl`?Uv(e):Hv(e)),Gv=e=>`Remove ${e?.price}`,Kv=e=>`Usuń ${e?.price}`,qv=((e,t={})=>(t.locale??Y())===`pl`?Kv(e):Gv(e)),Jv=()=>`Add Price`,Yv=()=>`Dodaj cenę`,Xv=((e={},t={})=>(t.locale??Y())===`pl`?Yv(e):Jv(e)),Zv=()=>`Tiered pricing exists for this override and will be preserved. Tier editing can be added without a database migration.`,Qv=()=>`Dla tego nadpisania istnieją ceny progowe i zostaną zachowane. Edycję progów można dodać bez migracji bazy danych.`,$v=((e={},t={})=>(t.locale??Y())===`pl`?Qv(e):Zv(e)),ey=()=>`Source`,ty=()=>`Źródło`,ny=((e={},t={})=>(t.locale??Y())===`pl`?ty(e):ey(e)),ry=()=>`No pricing fields set.`,iy=()=>`Nie ustawiono pól cenowych.`,ay=((e={},t={})=>(t.locale??Y())===`pl`?iy(e):ry(e)),oy=()=>`Remove Override`,sy=()=>`Usuń nadpisanie`,cy=((e={},t={})=>(t.locale??Y())===`pl`?sy(e):oy(e)),ly=()=>`Failover editor`,uy=()=>`Edytor Failover`,dy=((e={},t={})=>(t.locale??Y())===`pl`?uy(e):ly(e)),fy=()=>`Failover mapping`,py=()=>`Mapowanie Failover`,my=((e={},t={})=>(t.locale??Y())===`pl`?py(e):fy(e)),hy=()=>`This failover mapping is defined in configuration and is read-only here.`,gy=()=>`To mapowanie Failover jest zdefiniowane w konfiguracji i tutaj jest tylko do odczytu.`,_y=((e={},t={})=>(t.locale??Y())===`pl`?gy(e):hy(e)),vy=()=>`Fallback models`,yy=()=>`Modele Fallback`,by=((e={},t={})=>(t.locale??Y())===`pl`?yy(e):vy(e)),xy=()=>`Fallback model`,Sy=()=>`Model Fallback`,Cy=((e={},t={})=>(t.locale??Y())===`pl`?Sy(e):xy(e)),wy=()=>`Remove fallback model`,Ty=()=>`Usuń model Fallback`,Ey=((e={},t={})=>(t.locale??Y())===`pl`?Ty(e):wy(e)),Dy=()=>`Add fallback model`,Oy=()=>`Dodaj model Fallback`,ky=((e={},t={})=>(t.locale??Y())===`pl`?Oy(e):Dy(e)),Ay=()=>`Generating...`,jy=()=>`Generowanie...`,My=((e={},t={})=>(t.locale??Y())===`pl`?jy(e):Ay(e)),Ny=()=>`Generate automatically`,Py=()=>`Generuj automatycznie`,Fy=((e={},t={})=>(t.locale??Y())===`pl`?Py(e):Ny(e)),Iy=()=>`Remove`,Ly=()=>`Usuń`,Ry=((e={},t={})=>(t.locale??Y())===`pl`?Ly(e):Iy(e)),zy=()=>`Generated failover drafts`,By=()=>`Wygenerowane propozycje Failover`,Vy=((e={},t={})=>(t.locale??Y())===`pl`?By(e):zy(e)),Hy=()=>`Generated drafts`,Uy=()=>`Wygenerowane propozycje`,Wy=((e={},t={})=>(t.locale??Y())===`pl`?Uy(e):Hy(e)),Gy=()=>`Failover models`,Ky=()=>`Modele Failover`,qy=((e={},t={})=>(t.locale??Y())===`pl`?Ky(e):Gy(e)),Jy=()=>`Close failover drafts`,Yy=()=>`Zamknij propozycje Failover`,Xy=((e={},t={})=>(t.locale??Y())===`pl`?Yy(e):Jy(e)),Zy=()=>`Generating failover drafts...`,Qy=()=>`Generowanie propozycji Failover...`,$y=((e={},t={})=>(t.locale??Y())===`pl`?Qy(e):Zy(e)),eb=()=>`Filter failover drafts...`,tb=()=>`Filtruj propozycje Failover...`,nb=((e={},t={})=>(t.locale??Y())===`pl`?tb(e):eb(e)),rb=()=>`Filter failover drafts`,ib=()=>`Filtruj propozycje Failover`,ab=((e={},t={})=>(t.locale??Y())===`pl`?ib(e):rb(e)),ob=()=>`Select all`,sb=()=>`Zaznacz wszystkie`,cb=((e={},t={})=>(t.locale??Y())===`pl`?sb(e):ob(e)),lb=()=>`Deselect all`,ub=()=>`Odznacz wszystkie`,db=((e={},t={})=>(t.locale??Y())===`pl`?ub(e):lb(e)),fb=e=>`Select failover draft for ${e?.model}`,pb=e=>`Zaznacz propozycję Failover dla ${e?.model}`,mb=((e,t={})=>(t.locale??Y())===`pl`?pb(e):fb(e)),hb=()=>`No failover suggestions were generated.`,gb=()=>`Nie wygenerowano propozycji Failover.`,_b=((e={},t={})=>(t.locale??Y())===`pl`?gb(e):hb(e)),vb=()=>`No failover drafts match the filter.`,yb=()=>`Żadna propozycja Failover nie pasuje do filtra.`,bb=((e={},t={})=>(t.locale??Y())===`pl`?yb(e):vb(e)),xb=()=>`Saving...`,Sb=()=>`Zapisywanie...`,Cb=((e={},t={})=>(t.locale??Y())===`pl`?Sb(e):xb(e)),wb=()=>`Save selected`,Tb=()=>`Zapisz zaznaczone`,Eb=((e={},t={})=>(t.locale??Y())===`pl`?Tb(e):wb(e)),Db=()=>`API Keys`,Ob=()=>`Klucze API`,kb=((e={},t={})=>(t.locale??Y())===`pl`?Ob(e):Db(e)),Ab=()=>`Create API Key`,jb=()=>`Utwórz klucz API`,Mb=((e={},t={})=>(t.locale??Y())===`pl`?jb(e):Ab(e)),Nb=()=>`API key management is unavailable.`,Pb=()=>`Zarządzanie kluczami API jest niedostępne.`,Fb=((e={},t={})=>(t.locale??Y())===`pl`?Pb(e):Nb(e)),Ib=()=>`Managed API keys authenticate requests to the gateway. Deactivation is permanent — create a new key if access needs to be restored.`,Lb=()=>`Zarządzane klucze API uwierzytelniają Requesty do gatewaya. Dezaktywacja jest trwała — aby przywrócić dostęp, utwórz nowy klucz.`,Rb=((e={},t={})=>(t.locale??Y())===`pl`?Lb(e):Ib(e)),zb=()=>`Loading API keys`,Bb=()=>`Wczytywanie kluczy API`,Vb=((e={},t={})=>(t.locale??Y())===`pl`?Bb(e):zb(e)),Hb=()=>`Filter by name, description, user path, label, or token...`,Ub=()=>`Filtruj według nazwy, opisu, User Path, etykiety lub tokenu...`,Wb=((e={},t={})=>(t.locale??Y())===`pl`?Ub(e):Hb(e)),Gb=()=>`Filter API keys by name, description, user path, label, or token`,Kb=()=>`Filtruj klucze API według nazwy, opisu, User Path, etykiety lub tokenu`,qb=((e={},t={})=>(t.locale??Y())===`pl`?Kb(e):Gb(e)),Jb=()=>`Show inactive`,Yb=()=>`Pokaż nieaktywne`,Xb=((e={},t={})=>(t.locale??Y())===`pl`?Yb(e):Jb(e)),Zb=()=>`No API keys match the current filter.`,Qb=()=>`Żaden klucz API nie pasuje do bieżącego filtra.`,$b=((e={},t={})=>(t.locale??Y())===`pl`?Qb(e):Zb(e)),ex=e=>`${e?.count} inactive keys are hidden.`,tx=e=>`Ukryte nieaktywne klucze: ${e?.count}.`,nx=((e,t={})=>(t.locale??Y())===`pl`?tx(e):ex(e)),rx=()=>`No API keys yet. Issue a key to get started.`,ix=()=>`Nie ma jeszcze kluczy API. Utwórz klucz, aby rozpocząć.`,ax=((e={},t={})=>(t.locale??Y())===`pl`?ix(e):rx(e)),ox=()=>`API key editor`,sx=()=>`Edytor klucza API`,cx=((e={},t={})=>(t.locale??Y())===`pl`?sx(e):ox(e)),lx=()=>`Done, I’ve stored it`,ux=()=>`Gotowe, klucz został zapisany`,dx=((e={},t={})=>(t.locale??Y())===`pl`?ux(e):lx(e)),fx=()=>`Creating...`,px=()=>`Tworzenie...`,mx=((e={},t={})=>(t.locale??Y())===`pl`?px(e):fx(e)),hx=()=>`Store this key securely — it won’t be shown again.`,gx=()=>`Przechowuj ten klucz bezpiecznie — nie zostanie pokazany ponownie.`,_x=((e={},t={})=>(t.locale??Y())===`pl`?gx(e):hx(e)),vx=()=>`Unable to copy the key automatically. Copy it manually.`,yx=()=>`Nie udało się automatycznie skopiować klucza. Skopiuj go ręcznie.`,bx=((e={},t={})=>(t.locale??Y())===`pl`?yx(e):vx(e)),xx=()=>`Name`,Sx=()=>`Nazwa`,Cx=((e={},t={})=>(t.locale??Y())===`pl`?Sx(e):xx(e)),wx=()=>`required`,Tx=()=>`wymagane`,Ex=((e={},t={})=>(t.locale??Y())===`pl`?Tx(e):wx(e)),Dx=()=>`Expires`,Ox=()=>`Wygasa`,kx=((e={},t={})=>(t.locale??Y())===`pl`?Ox(e):Dx(e)),Ax=()=>`optional, valid through the selected date`,jx=()=>`opcjonalne, ważne do końca wybranego dnia`,Mx=((e={},t={})=>(t.locale??Y())===`pl`?jx(e):Ax(e)),Nx=()=>`User Path (optional)`,Px=()=>`User Path (opcjonalny)`,Fx=((e={},t={})=>(t.locale??Y())===`pl`?Px(e):Nx(e)),Ix=()=>`API key user path help`,Lx=()=>`Pomoc dotycząca User Path klucza API`,Rx=((e={},t={})=>(t.locale??Y())===`pl`?Lx(e):Ix(e)),zx=()=>`When set, this key overrides the configured user path request header for audit logging and downstream request context.`,Bx=()=>`Po ustawieniu klucz nadpisuje skonfigurowany nagłówek User Path na potrzeby logów audytowych i kontekstu dalszych Request'ów.`,Vx=((e={},t={})=>(t.locale??Y())===`pl`?Bx(e):zx(e)),Hx=()=>`Labels (optional, comma-separated)`,Ux=()=>`Etykiety (opcjonalne, rozdzielone przecinkami)`,Wx=((e={},t={})=>(t.locale??Y())===`pl`?Ux(e):Hx(e)),Gx=()=>`API key labels help`,Kx=()=>`Pomoc dotycząca etykiet klucza API`,qx=((e={},t={})=>(t.locale??Y())===`pl`?Kx(e):Gx(e)),Jx=()=>`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.`,Yx=()=>`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.`,Xx=((e={},t={})=>(t.locale??Y())===`pl`?Yx(e):Jx(e)),Zx=()=>`Dashboard Access`,Qx=()=>`Dostęp do dashboardu`,$x=((e={},t={})=>(t.locale??Y())===`pl`?Qx(e):Zx(e)),eS=()=>`API key dashboard access help`,tS=()=>`Pomoc dotycząca dostępu klucza API do dashboardu`,nS=((e={},t={})=>(t.locale??Y())===`pl`?tS(e):eS(e)),rS=()=>`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.`,iS=()=>`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.`,aS=((e={},t={})=>(t.locale??Y())===`pl`?iS(e):rS(e)),oS=()=>`Allow this key to use the dashboard and /admin API`,sS=()=>`Zezwól temu kluczowi na korzystanie z dashboardu i /admin API`,cS=((e={},t={})=>(t.locale??Y())===`pl`?sS(e):oS(e)),lS=()=>`Description (optional)`,uS=()=>`Opis (opcjonalny)`,dS=((e={},t={})=>(t.locale??Y())===`pl`?uS(e):lS(e)),fS=()=>`What is this key used for?`,pS=()=>`Do czego służy ten klucz?`,mS=((e={},t={})=>(t.locale??Y())===`pl`?pS(e):fS(e)),hS=()=>`Description`,gS=()=>`Opis`,_S=((e={},t={})=>(t.locale??Y())===`pl`?gS(e):hS(e)),vS=()=>`User Path`,yS=()=>`User Path`,bS=((e={},t={})=>(t.locale??Y())===`pl`?yS(e):vS(e)),xS=()=>`Labels`,SS=()=>`Etykiety`,CS=((e={},t={})=>(t.locale??Y())===`pl`?SS(e):xS(e)),wS=()=>`Token`,TS=()=>`Token`,ES=((e={},t={})=>(t.locale??Y())===`pl`?TS(e):wS(e)),DS=()=>`Created`,OS=()=>`Utworzono`,kS=((e={},t={})=>(t.locale??Y())===`pl`?OS(e):DS(e)),AS=()=>`Actions`,jS=()=>`Akcje`,MS=((e={},t={})=>(t.locale??Y())===`pl`?jS(e):AS(e)),NS=()=>`Allowed`,PS=()=>`Dozwolony`,FS=((e={},t={})=>(t.locale??Y())===`pl`?PS(e):NS(e)),IS=()=>`Denied`,LS=()=>`Zablokowany`,RS=((e={},t={})=>(t.locale??Y())===`pl`?LS(e):IS(e)),zS=()=>`Expired`,BS=()=>`Wygasł`,VS=((e={},t={})=>(t.locale??Y())===`pl`?BS(e):zS(e)),HS=()=>`Deactivated`,US=()=>`Dezaktywowany`,WS=((e={},t={})=>(t.locale??Y())===`pl`?US(e):HS(e)),GS=()=>`Edit Labels`,KS=()=>`Edytuj etykiety`,qS=((e={},t={})=>(t.locale??Y())===`pl`?KS(e):GS(e)),JS=()=>`API key labels editor`,YS=()=>`Edytor etykiet klucza API`,XS=((e={},t={})=>(t.locale??Y())===`pl`?YS(e):JS(e)),ZS=()=>`Save Labels`,QS=()=>`Zapisz etykiety`,$S=((e={},t={})=>(t.locale??Y())===`pl`?QS(e):ZS(e)),eC=()=>`Labels (comma-separated)`,tC=()=>`Etykiety (rozdzielone przecinkami)`,nC=((e={},t={})=>(t.locale??Y())===`pl`?tC(e):eC(e)),rC=()=>`Applies to new requests made with this key. Leave empty to remove all labels.`,iC=()=>`Dotyczy nowych Request'ów wykonywanych tym kluczem. Pozostaw puste, aby usunąć wszystkie etykiety.`,aC=((e={},t={})=>(t.locale??Y())===`pl`?iC(e):rC(e)),oC=()=>`MCP Servers`,sC=()=>`Serwery MCP`,cC=((e={},t={})=>(t.locale??Y())===`pl`?sC(e):oC(e)),lC=()=>`MCP servers help`,uC=()=>`Pomoc dotycząca serwerów MCP`,dC=((e={},t={})=>(t.locale??Y())===`pl`?uC(e):lC(e)),fC=()=>`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.`,pC=()=>`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.`,mC=((e={},t={})=>(t.locale??Y())===`pl`?pC(e):fC(e)),hC=()=>`Add MCP Server`,gC=()=>`Dodaj serwer MCP`,_C=((e={},t={})=>(t.locale??Y())===`pl`?gC(e):hC(e)),vC=()=>`MCP server management is unavailable.`,yC=()=>`Zarządzanie serwerami MCP jest niedostępne.`,bC=((e={},t={})=>(t.locale??Y())===`pl`?yC(e):vC(e)),xC=()=>`Loading MCP servers...`,SC=()=>`Wczytywanie serwerów MCP...`,CC=((e={},t={})=>(t.locale??Y())===`pl`?SC(e):xC(e)),wC=()=>`Filter by name, slug, URL, transport, or status...`,TC=()=>`Filtruj według nazwy, sluga, URL, transportu lub statusu...`,EC=((e={},t={})=>(t.locale??Y())===`pl`?TC(e):wC(e)),DC=()=>`Filter MCP servers by name, slug, URL, transport, or status`,OC=()=>`Filtruj serwery MCP według nazwy, sluga, URL, transportu lub statusu`,kC=((e={},t={})=>(t.locale??Y())===`pl`?OC(e):DC(e)),AC=()=>`No MCP servers yet. Add one here, or declare servers in config.yaml under mcp.servers.`,jC=()=>`Nie ma jeszcze serwerów MCP. Dodaj serwer tutaj albo zadeklaruj go w config.yaml w mcp.servers.`,MC=((e={},t={})=>(t.locale??Y())===`pl`?jC(e):AC(e)),NC=()=>`No MCP servers match your filter.`,PC=()=>`Żaden serwer MCP nie pasuje do filtra.`,FC=((e={},t={})=>(t.locale??Y())===`pl`?PC(e):NC(e)),IC=()=>`MCP server catalog`,LC=()=>`Katalog serwera MCP`,RC=((e={},t={})=>(t.locale??Y())===`pl`?LC(e):IC(e)),zC=()=>`Server Catalog`,BC=()=>`Katalog serwera`,VC=((e={},t={})=>(t.locale??Y())===`pl`?BC(e):zC(e)),HC=()=>`Close MCP server catalog`,UC=()=>`Zamknij katalog serwera MCP`,WC=((e={},t={})=>(t.locale??Y())===`pl`?UC(e):HC(e)),GC=()=>`Loading catalog...`,KC=()=>`Wczytywanie katalogu...`,qC=((e={},t={})=>(t.locale??Y())===`pl`?KC(e):GC(e)),JC=e=>`Exposed on the aggregated /mcp endpoint as ${e?.name}`,YC=e=>`Udostępnione w zbiorczym endpoincie /mcp jako ${e?.name}`,XC=((e,t={})=>(t.locale??Y())===`pl`?YC(e):JC(e)),ZC=()=>`No tools listed — the server may still be connecting or degraded.`,QC=()=>`Brak narzędzi — serwer może nadal się łączyć albo działać w trybie zdegradowanym.`,$C=((e={},t={})=>(t.locale??Y())===`pl`?QC(e):ZC(e)),ew=()=>`Close`,tw=()=>`Zamknij`,nw=((e={},t={})=>(t.locale??Y())===`pl`?tw(e):ew(e)),rw=()=>`Edit MCP Server`,iw=()=>`Edytuj serwer MCP`,aw=((e={},t={})=>(t.locale??Y())===`pl`?iw(e):rw(e)),ow=()=>`MCP server editor`,sw=()=>`Edytor serwera MCP`,cw=((e={},t={})=>(t.locale??Y())===`pl`?sw(e):ow(e)),lw=()=>`The display name can change. The slug is the stable client-facing identity.`,uw=()=>`Wyświetlaną nazwę można zmienić. Slug jest stałą tożsamością widoczną dla klienta.`,dw=((e={},t={})=>(t.locale??Y())===`pl`?uw(e):lw(e)),fw=()=>`Name`,pw=()=>`Nazwa`,mw=((e={},t={})=>(t.locale??Y())===`pl`?pw(e):fw(e)),hw=()=>`Human-readable and Unicode-friendly. You can change it later.`,gw=()=>`Czytelna dla człowieka i zgodna z Unicode. Możesz ją później zmienić.`,_w=((e={},t={})=>(t.locale??Y())===`pl`?gw(e):hw(e)),vw=()=>`Slug`,yw=()=>`Slug`,bw=((e={},t={})=>(t.locale??Y())===`pl`?yw(e):vw(e)),xw=()=>`Derived from the name. You may edit it before saving.`,Sw=()=>`Tworzony z nazwy. Możesz go zmienić przed zapisem.`,Cw=((e={},t={})=>(t.locale??Y())===`pl`?Sw(e):xw(e)),ww=()=>`Immutable because it is used in URLs, scope headers, and aggregated tool names.`,Tw=()=>`Niezmienny, ponieważ jest używany w URL-ach, nagłówkach zakresu i zbiorczych nazwach narzędzi.`,Ew=((e={},t={})=>(t.locale??Y())===`pl`?Tw(e):ww(e)),Dw=()=>`Transport`,Ow=()=>`Transport`,kw=((e={},t={})=>(t.locale??Y())===`pl`?Ow(e):Dw(e)),Aw=()=>`Connect to a remote MCP server over Streamable HTTP or legacy SSE.`,jw=()=>`Połącz ze zdalnym serwerem MCP przez Streamable HTTP lub starszy protokół SSE.`,Mw=((e={},t={})=>(t.locale??Y())===`pl`?jw(e):Aw(e)),Nw=()=>`Headers`,Pw=()=>`Nagłówki`,Fw=((e={},t={})=>(t.locale??Y())===`pl`?Pw(e):Nw(e)),Iw=()=>`Header name`,Lw=()=>`Nazwa nagłówka`,Rw=((e={},t={})=>(t.locale??Y())===`pl`?Lw(e):Iw(e)),zw=()=>`Header value`,Bw=()=>`Wartość nagłówka`,Vw=((e={},t={})=>(t.locale??Y())===`pl`?Bw(e):zw(e)),Hw=()=>`Remove header`,Uw=()=>`Usuń nagłówek`,Ww=((e={},t={})=>(t.locale??Y())===`pl`?Uw(e):Hw(e)),Gw=()=>`Add header`,Kw=()=>`Dodaj nagłówek`,qw=((e={},t={})=>(t.locale??Y())===`pl`?Kw(e):Gw(e)),Jw=()=>`Sent only to the configured server origin. Leave masked values unchanged to keep the stored value.`,Yw=()=>`Wysyłane tylko do skonfigurowanego originu serwera. Pozostaw zamaskowane wartości bez zmian, aby zachować zapisane dane.`,Xw=((e={},t={})=>(t.locale??Y())===`pl`?Yw(e):Jw(e)),Zw=()=>`Advanced settings`,Qw=()=>`Ustawienia zaawansowane`,$w=((e={},t={})=>(t.locale??Y())===`pl`?Qw(e):Zw(e)),eT=()=>`Description, access rules, and timeout`,tT=()=>`Opis, reguły dostępu i timeout`,nT=((e={},t={})=>(t.locale??Y())===`pl`?tT(e):eT(e)),rT=()=>`Description`,iT=()=>`Opis`,aT=((e={},t={})=>(t.locale??Y())===`pl`?iT(e):rT(e)),oT=()=>`Allowed tools`,sT=()=>`Dozwolone narzędzia`,cT=((e={},t={})=>(t.locale??Y())===`pl`?sT(e):oT(e)),lT=()=>`Disallowed tools`,uT=()=>`Zabronione narzędzia`,dT=((e={},t={})=>(t.locale??Y())===`pl`?uT(e):lT(e)),fT=()=>`User paths (empty means all)`,pT=()=>`User Paths (puste oznacza wszystkie)`,mT=((e={},t={})=>(t.locale??Y())===`pl`?pT(e):fT(e)),hT=()=>`Tool timeout (seconds)`,gT=()=>`Timeout narzędzia (sekundy)`,_T=((e={},t={})=>(t.locale??Y())===`pl`?gT(e):hT(e)),vT=()=>`Default timeout when empty`,yT=()=>`Domyślny timeout, gdy pole jest puste`,bT=((e={},t={})=>(t.locale??Y())===`pl`?yT(e):vT(e)),xT=()=>`Workflows`,ST=()=>`Workflows`,CT=((e={},t={})=>(t.locale??Y())===`pl`?ST(e):xT(e)),wT=()=>`Active workflows are matched path-first: deepest user path wins first, then provider name and model specificity, then broader matches, then global.`,TT=()=>`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.`,ET=((e={},t={})=>(t.locale??Y())===`pl`?TT(e):wT(e)),DT=()=>`New Workflow`,OT=()=>`Nowy Workflow`,kT=((e={},t={})=>(t.locale??Y())===`pl`?OT(e):DT(e)),AT=()=>`Workflows feature is unavailable.`,jT=()=>`Funkcja Workflows jest niedostępna.`,MT=((e={},t={})=>(t.locale??Y())===`pl`?jT(e):AT(e)),NT=()=>`Filter by scope, name, hash, or guardrail...`,PT=()=>`Filtruj według zakresu, nazwy, hasha lub Guardrail...`,FT=((e={},t={})=>(t.locale??Y())===`pl`?PT(e):NT(e)),IT=()=>`Filter workflows`,LT=()=>`Filtruj Workflows`,RT=((e={},t={})=>(t.locale??Y())===`pl`?LT(e):IT(e)),zT=()=>`No active workflows found.`,BT=()=>`Nie znaleziono aktywnych Workflows.`,VT=((e={},t={})=>(t.locale??Y())===`pl`?BT(e):zT(e)),HT=()=>`No workflows match your filter.`,UT=()=>`Żaden Workflow nie pasuje do filtra.`,WT=((e={},t={})=>(t.locale??Y())===`pl`?UT(e):HT(e)),GT=()=>`Async`,KT=()=>`Asynchronicznie`,qT=((e={},t={})=>(t.locale??Y())===`pl`?KT(e):GT(e)),JT=()=>`Guardrails`,YT=()=>`Guardrails`,XT=((e={},t={})=>(t.locale??Y())===`pl`?YT(e):JT(e)),ZT=()=>`No guardrails configured for this workflow.`,QT=()=>`W tym Workflow nie skonfigurowano Guardrails.`,$T=((e={},t={})=>(t.locale??Y())===`pl`?QT(e):ZT(e)),eE=()=>`Providers`,tE=()=>`Dostawcy`,nE=((e={},t={})=>(t.locale??Y())===`pl`?tE(e):eE(e)),rE=()=>`Add Provider`,iE=()=>`Dodaj dostawcę`,aE=((e={},t={})=>(t.locale??Y())===`pl`?iE(e):rE(e)),oE=()=>`Provider credential management is unavailable.`,sE=()=>`Zarządzanie danymi dostępowymi dostawców jest niedostępne.`,cE=((e={},t={})=>(t.locale??Y())===`pl`?sE(e):oE(e)),lE=()=>`Filter by name, type, or base URL...`,uE=()=>`Filtruj według nazwy, typu lub bazowego URL...`,dE=((e={},t={})=>(t.locale??Y())===`pl`?uE(e):lE(e)),fE=()=>`Filter providers by name, type, or base URL`,pE=()=>`Filtruj dostawców według nazwy, typu lub bazowego URL`,mE=((e={},t={})=>(t.locale??Y())===`pl`?pE(e):fE(e)),hE=()=>`No dashboard-managed providers yet. Add one here, or declare providers in config.yaml or environment variables.`,gE=()=>`Nie ma jeszcze dostawców zarządzanych w dashboardzie. Dodaj dostawcę tutaj albo zadeklaruj go w config.yaml lub zmiennych środowiskowych.`,_E=((e={},t={})=>(t.locale??Y())===`pl`?gE(e):hE(e)),vE=()=>`No providers match your filter.`,yE=()=>`Żaden dostawca nie pasuje do filtra.`,bE=((e={},t={})=>(t.locale??Y())===`pl`?yE(e):vE(e)),xE=()=>`Name`,SE=()=>`Nazwa`,CE=((e={},t={})=>(t.locale??Y())===`pl`?SE(e):xE(e)),wE=()=>`Type`,TE=()=>`Typ`,EE=((e={},t={})=>(t.locale??Y())===`pl`?TE(e):wE(e)),DE=()=>`Auth`,OE=()=>`Uwierzytelnianie`,kE=((e={},t={})=>(t.locale??Y())===`pl`?OE(e):DE(e)),AE=()=>`Models`,jE=()=>`Modele`,ME=((e={},t={})=>(t.locale??Y())===`pl`?jE(e):AE(e)),NE=()=>`Enabled`,PE=()=>`Włączony`,FE=((e={},t={})=>(t.locale??Y())===`pl`?PE(e):NE(e)),IE=()=>`Updated`,LE=()=>`Zaktualizowano`,RE=((e={},t={})=>(t.locale??Y())===`pl`?LE(e):IE(e)),zE=()=>`Actions`,BE=()=>`Akcje`,VE=((e={},t={})=>(t.locale??Y())===`pl`?BE(e):zE(e)),HE=()=>`Declared in configuration (config.yaml or env vars); read-only in the dashboard`,UE=()=>`Zadeklarowano w konfiguracji (config.yaml lub zmienne środowiskowe); tylko do odczytu w dashboardzie`,WE=((e={},t={})=>(t.locale??Y())===`pl`?UE(e):HE(e)),GE=()=>`Rate Limits`,KE=()=>`Rate Limits`,qE=((e={},t={})=>(t.locale??Y())===`pl`?KE(e):GE(e)),JE=()=>`Create Rate Limit`,YE=()=>`Utwórz Rate Limit`,XE=((e={},t={})=>(t.locale??Y())===`pl`?YE(e):JE(e)),ZE=()=>`Rate limit management is unavailable.`,QE=()=>`Zarządzanie Rate Limitami jest niedostępne.`,$E=((e={},t={})=>(t.locale??Y())===`pl`?QE(e):ZE(e)),eD=()=>`Filter by subject, scope, or period...`,tD=()=>`Filtruj według podmiotu, zakresu lub okresu...`,nD=((e={},t={})=>(t.locale??Y())===`pl`?tD(e):eD(e)),rD=()=>`Filter rate limits by subject, scope, or period`,iD=()=>`Filtruj Rate Limity według podmiotu, zakresu lub okresu`,aD=((e={},t={})=>(t.locale??Y())===`pl`?iD(e):rD(e)),oD=()=>`No rate limits configured yet.`,sD=()=>`Nie skonfigurowano jeszcze Rate Limitów.`,cD=((e={},t={})=>(t.locale??Y())===`pl`?sD(e):oD(e)),lD=()=>`No rate limits match your filter.`,uD=()=>`Żaden Rate Limit nie pasuje do filtra.`,dD=((e={},t={})=>(t.locale??Y())===`pl`?uD(e):lD(e)),fD=()=>`Effective rate limits`,pD=()=>`Efektywne Rate Limity`,mD=((e={},t={})=>(t.locale??Y())===`pl`?pD(e):fD(e)),hD=()=>`Add`,gD=()=>`Dodaj`,_D=((e={},t={})=>(t.locale??Y())===`pl`?gD(e):hD(e)),vD=()=>`No rules.`,yD=()=>`Brak reguł.`,bD=((e={},t={})=>(t.locale??Y())===`pl`?yD(e):vD(e)),xD=()=>`Edit`,SD=()=>`Edytuj`,CD=((e={},t={})=>(t.locale??Y())===`pl`?SD(e):xD(e)),wD=()=>`In-flight`,TD=()=>`W toku`,ED=((e={},t={})=>(t.locale??Y())===`pl`?TD(e):wD(e)),DD=()=>`Requests`,OD=()=>`Requesty`,kD=((e={},t={})=>(t.locale??Y())===`pl`?OD(e):DD(e)),AD=()=>`Tokens`,jD=()=>`Tokeny`,MD=((e={},t={})=>(t.locale??Y())===`pl`?jD(e):AD(e)),ND=()=>`Guardrails`,PD=()=>`Guardrails`,FD=((e={},t={})=>(t.locale??Y())===`pl`?PD(e):ND(e)),ID=()=>`Reusable Policy Objects`,LD=()=>`Obiekty polityk wielokrotnego użytku`,RD=((e={},t={})=>(t.locale??Y())===`pl`?LD(e):ID(e)),zD=()=>`Guardrail Library`,BD=()=>`Biblioteka Guardrails`,VD=((e={},t={})=>(t.locale??Y())===`pl`?BD(e):zD(e)),HD=()=>`Instances`,UD=()=>`Instancje`,WD=((e={},t={})=>(t.locale??Y())===`pl`?UD(e):HD(e)),GD=()=>`Types`,KD=()=>`Typy`,qD=((e={},t={})=>(t.locale??Y())===`pl`?KD(e):GD(e)),JD=()=>`GUARDRAILS_ENABLED is disabled. You can still manage Guardrails, but they will not run.`,YD=()=>`GUARDRAILS_ENABLED jest wyłączone. Nadal możesz zarządzać Guardrails, ale nie będą uruchamiane.`,XD=((e={},t={})=>(t.locale??Y())===`pl`?YD(e):JD(e)),ZD=()=>`Guardrails feature is unavailable.`,QD=()=>`Funkcja Guardrails jest niedostępna.`,$D=((e={},t={})=>(t.locale??Y())===`pl`?QD(e):ZD(e)),eO=()=>`Create Guardrail`,tO=()=>`Utwórz Guardrail`,nO=((e={},t={})=>(t.locale??Y())===`pl`?tO(e):eO(e)),rO=()=>`Filter by name, type, user path, summary...`,iO=()=>`Filtruj według nazwy, typu, User Path lub podsumowania...`,aO=((e={},t={})=>(t.locale??Y())===`pl`?iO(e):rO(e)),oO=()=>`Filter Guardrails`,sO=()=>`Filtruj Guardrails`,cO=((e={},t={})=>(t.locale??Y())===`pl`?sO(e):oO(e)),lO=()=>`Name`,uO=()=>`Nazwa`,dO=((e={},t={})=>(t.locale??Y())===`pl`?uO(e):lO(e)),fO=()=>`Type`,pO=()=>`Typ`,mO=((e={},t={})=>(t.locale??Y())===`pl`?pO(e):fO(e)),hO=()=>`User Path`,gO=()=>`User Path`,_O=((e={},t={})=>(t.locale??Y())===`pl`?gO(e):hO(e)),vO=()=>`Summary`,yO=()=>`Podsumowanie`,bO=((e={},t={})=>(t.locale??Y())===`pl`?yO(e):vO(e)),xO=()=>`Actions`,SO=()=>`Akcje`,CO=((e={},t={})=>(t.locale??Y())===`pl`?SO(e):xO(e)),wO=()=>`No Guardrails defined yet.`,TO=()=>`Nie zdefiniowano jeszcze Guardrails.`,EO=((e={},t={})=>(t.locale??Y())===`pl`?TO(e):wO(e)),DO=()=>`Guardrails help`,OO=()=>`Pomoc dotycząca Guardrails`,kO=((e={},t={})=>(t.locale??Y())===`pl`?OO(e):DO(e)),AO=()=>`Reusable policy objects stored in the database and kept hot in memory for Workflow execution.`,jO=()=>`Obiekty polityk wielokrotnego użytku zapisane w bazie danych i utrzymywane w pamięci na potrzeby wykonywania Workflows.`,MO=((e={},t={})=>(t.locale??Y())===`pl`?jO(e):AO(e)),NO=()=>`Store Guardrails in the database, keep them hot in memory, and attach them to Workflows by reference.`,PO=()=>`Przechowuj Guardrails w bazie danych, utrzymuj je w pamięci i dołączaj do Workflows przez referencję.`,FO=((e={},t={})=>(t.locale??Y())===`pl`?PO(e):NO(e)),IO=()=>`Each instance has a reusable name, a type, an optional user path for visibility scoping, and a JSON-backed config payload.`,LO=()=>`Każda instancja ma nazwę wielokrotnego użytku, typ, opcjonalny User Path do ograniczania widoczności i konfigurację JSON.`,RO=((e={},t={})=>(t.locale??Y())===`pl`?LO(e):IO(e)),zO=()=>`Loading Guardrails...`,BO=()=>`Wczytywanie Guardrails...`,VO=((e={},t={})=>(t.locale??Y())===`pl`?BO(e):zO(e)),HO=()=>`No summary yet.`,UO=()=>`Brak podsumowania.`,WO=((e={},t={})=>(t.locale??Y())===`pl`?UO(e):HO(e)),GO=()=>`Workflow editor`,KO=()=>`Edytor Workflow`,qO=((e={},t={})=>(t.locale??Y())===`pl`?KO(e):GO(e)),JO=()=>`Workflow help`,YO=()=>`Pomoc dotycząca Workflow`,XO=((e={},t={})=>(t.locale??Y())===`pl`?YO(e):JO(e)),ZO=()=>`Create an immutable version. Submitting activates it for the selected scope.`,QO=()=>`Utwórz niezmienną wersję. Zapisanie aktywuje ją dla wybranego zakresu.`,$O=((e={},t={})=>(t.locale??Y())===`pl`?QO(e):ZO(e)),ek=()=>`Edit Workflow`,tk=()=>`Edytuj Workflow`,nk=((e={},t={})=>(t.locale??Y())===`pl`?tk(e):ek(e)),rk=()=>`Create Workflow`,ik=()=>`Utwórz Workflow`,ak=((e={},t={})=>(t.locale??Y())===`pl`?ik(e):rk(e)),ok=()=>`Provider Name`,sk=()=>`Nazwa dostawcy`,ck=((e={},t={})=>(t.locale??Y())===`pl`?sk(e):ok(e)),lk=()=>`All providers and models`,uk=()=>`Wszyscy dostawcy i modele`,dk=((e={},t={})=>(t.locale??Y())===`pl`?uk(e):lk(e)),fk=()=>`Model`,pk=()=>`Model`,mk=((e={},t={})=>(t.locale??Y())===`pl`?pk(e):fk(e)),hk=()=>`All models for provider`,gk=()=>`Wszystkie modele dostawcy`,_k=((e={},t={})=>(t.locale??Y())===`pl`?gk(e):hk(e)),vk=()=>`Name`,yk=()=>`Nazwa`,bk=((e={},t={})=>(t.locale??Y())===`pl`?yk(e):vk(e)),xk=()=>`Optional. Defaults to scope label.`,Sk=()=>`Opcjonalna. Domyślnie etykieta zakresu.`,Ck=((e={},t={})=>(t.locale??Y())===`pl`?Sk(e):xk(e)),wk=()=>`User Path`,Tk=()=>`User Path`,Ek=((e={},t={})=>(t.locale??Y())===`pl`?Tk(e):wk(e)),Dk=()=>`Leave provider name empty to target all providers and models. Select a provider without a model to target all its models.`,Ok=()=>`Pozostaw nazwę dostawcy pustą, aby objąć wszystkich dostawców i modele. Wybierz dostawcę bez modelu, aby objąć wszystkie jego modele.`,kk=((e={},t={})=>(t.locale??Y())===`pl`?Ok(e):Dk(e)),Ak=()=>`Add a path to scope the Workflow to that subtree. Leading slashes are optional and normalized. The deepest user path matches first.`,jk=()=>`Dodaj ścieżkę, aby ograniczyć Workflow do jej poddrzewa. Początkowe ukośniki są opcjonalne i normalizowane. Najgłębsza ścieżka ma pierwszeństwo.`,Mk=((e={},t={})=>(t.locale??Y())===`pl`?jk(e):Ak(e)),Nk=()=>`If the name is empty, the Workflow displays as its matched scope or All models.`,Pk=()=>`Jeśli nazwa jest pusta, Workflow wyświetla dopasowany zakres lub Wszystkie modele.`,Fk=((e={},t={})=>(t.locale??Y())===`pl`?Pk(e):Nk(e)),Ik=()=>`Description`,Lk=()=>`Opis`,Rk=((e={},t={})=>(t.locale??Y())===`pl`?Lk(e):Ik(e)),zk=()=>`Optional operator note for why this version exists.`,Bk=()=>`Opcjonalna notatka operatora opisująca powód utworzenia wersji.`,Vk=((e={},t={})=>(t.locale??Y())===`pl`?Bk(e):zk(e)),Hk=()=>`Cache`,Uk=()=>`Cache`,Wk=((e={},t={})=>(t.locale??Y())===`pl`?Uk(e):Hk(e)),Gk=()=>`Audit Logs`,Kk=()=>`Logi audytowe`,qk=((e={},t={})=>(t.locale??Y())===`pl`?Kk(e):Gk(e)),Jk=()=>`Usage`,Yk=()=>`Zużycie`,Xk=((e={},t={})=>(t.locale??Y())===`pl`?Yk(e):Jk(e)),Zk=()=>`Budget`,Qk=()=>`Budżet`,$k=((e={},t={})=>(t.locale??Y())===`pl`?Qk(e):Zk(e)),eA=()=>`Failover`,tA=()=>`Failover`,nA=((e={},t={})=>(t.locale??Y())===`pl`?tA(e):eA(e)),rA=()=>`Preview`,iA=()=>`Podgląd`,aA=((e={},t={})=>(t.locale??Y())===`pl`?iA(e):rA(e)),oA=()=>`Live`,sA=()=>`Live`,cA=((e={},t={})=>(t.locale??Y())===`pl`?sA(e):oA(e)),lA=()=>`Guardrail Steps`,uA=()=>`Kroki Guardrails`,dA=((e={},t={})=>(t.locale??Y())===`pl`?uA(e):lA(e)),fA=()=>`Guardrails in the same numeric step run together. Later steps wait for earlier ones to finish.`,pA=()=>`Guardrails w tym samym kroku numerycznym działają razem. Późniejsze kroki czekają na zakończenie wcześniejszych.`,mA=((e={},t={})=>(t.locale??Y())===`pl`?pA(e):fA(e)),hA=()=>`Add Step`,gA=()=>`Dodaj krok`,_A=((e={},t={})=>(t.locale??Y())===`pl`?gA(e):hA(e)),vA=()=>`No named Guardrails are currently registered. You can still draft a Workflow, but creation may be rejected.`,yA=()=>`Nie zarejestrowano nazwanych Guardrails. Nadal możesz przygotować Workflow, ale jego utworzenie może zostać odrzucone.`,bA=((e={},t={})=>(t.locale??Y())===`pl`?yA(e):vA(e)),xA=()=>`Open Guardrails`,SA=()=>`Otwórz Guardrails`,CA=((e={},t={})=>(t.locale??Y())===`pl`?SA(e):xA(e)),wA=()=>`Guardrail reference`,TA=()=>`Referencja Guardrail`,EA=((e={},t={})=>(t.locale??Y())===`pl`?TA(e):wA(e)),DA=()=>`Step`,OA=()=>`Krok`,kA=((e={},t={})=>(t.locale??Y())===`pl`?OA(e):DA(e)),AA=()=>`Remove`,jA=()=>`Usuń`,MA=((e={},t={})=>(t.locale??Y())===`pl`?jA(e):AA(e)),NA=()=>`No Guardrail steps configured yet.`,PA=()=>`Nie skonfigurowano jeszcze kroków Guardrails.`,FA=((e={},t={})=>(t.locale??Y())===`pl`?PA(e):NA(e)),IA=()=>`Edit Rate Limit`,LA=()=>`Edytuj Rate Limit`,RA=((e={},t={})=>(t.locale??Y())===`pl`?LA(e):IA(e)),zA=()=>`Rate limit editor`,BA=()=>`Edytor Rate Limitu`,VA=((e={},t={})=>(t.locale??Y())===`pl`?BA(e):zA(e)),HA=()=>`Save Rate Limit`,UA=()=>`Zapisz Rate Limit`,WA=((e={},t={})=>(t.locale??Y())===`pl`?UA(e):HA(e)),GA=()=>`Scope`,KA=()=>`Zakres`,qA=((e={},t={})=>(t.locale??Y())===`pl`?KA(e):GA(e)),JA=()=>`Period`,YA=()=>`Okres`,XA=((e={},t={})=>(t.locale??Y())===`pl`?YA(e):JA(e)),ZA=()=>`Period Seconds`,QA=()=>`Okres w sekundach`,$A=((e={},t={})=>(t.locale??Y())===`pl`?QA(e):ZA(e)),ej=()=>`Max In-Flight Requests`,tj=()=>`Maksymalna liczba Request'ów w toku`,nj=((e={},t={})=>(t.locale??Y())===`pl`?tj(e):ej(e)),rj=()=>`Max Requests`,ij=()=>`Maksymalna liczba Request'ów`,aj=((e={},t={})=>(t.locale??Y())===`pl`?ij(e):rj(e)),oj=()=>`Max Tokens`,sj=()=>`Maksymalna liczba tokenów`,cj=((e={},t={})=>(t.locale??Y())===`pl`?sj(e):oj(e)),lj=()=>`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.`,uj=()=>`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.`,dj=((e={},t={})=>(t.locale??Y())===`pl`?uj(e):lj(e)),fj=()=>`Scope, subject, and period identify the rule. Changing any of them moves the rule and restarts its live counters.`,pj=()=>`Zakres, podmiot i okres identyfikują regułę. Ich zmiana przenosi regułę i restartuje liczniki Live.`,mj=((e={},t={})=>(t.locale??Y())===`pl`?pj(e):fj(e)),hj=()=>`Edit Guardrail`,gj=()=>`Edytuj Guardrail`,_j=((e={},t={})=>(t.locale??Y())===`pl`?gj(e):hj(e)),vj=()=>`Guardrail editor`,yj=()=>`Edytor Guardrail`,bj=((e={},t={})=>(t.locale??Y())===`pl`?yj(e):vj(e)),xj=()=>`Save Guardrail`,Sj=()=>`Zapisz Guardrail`,Cj=((e={},t={})=>(t.locale??Y())===`pl`?Sj(e):xj(e)),wj=()=>`Workflows reference these names directly, so renames are intentionally avoided after creation.`,Tj=()=>`Workflows odwołują się bezpośrednio do tych nazw, dlatego po utworzeniu celowo nie można ich zmieniać.`,Ej=((e={},t={})=>(t.locale??Y())===`pl`?Tj(e):wj(e)),Dj=()=>`Description`,Oj=()=>`Opis`,kj=((e={},t={})=>(t.locale??Y())===`pl`?Oj(e):Dj(e)),Aj=()=>`What this Guardrail is meant to do`,jj=()=>`Przeznaczenie tego Guardrail`,Mj=((e={},t={})=>(t.locale??Y())===`pl`?jj(e):Aj(e)),Nj=()=>`Guardrail user path help`,Pj=()=>`Pomoc dotycząca User Path Guardrail`,Fj=((e={},t={})=>(t.locale??Y())===`pl`?Pj(e):Nj(e)),Ij=()=>`Only used for auxiliary rewrite Guardrails; ignored for other Guardrail types.`,Lj=()=>`Używane tylko przez pomocnicze Guardrails przepisujące; ignorowane przez pozostałe typy.`,Rj=((e={},t={})=>(t.locale??Y())===`pl`?Lj(e):Ij(e)),zj=()=>`Monthly`,Bj=()=>`Miesięcznie`,Vj=((e={},t={})=>(t.locale??Y())===`pl`?Bj(e):zj(e)),Hj=()=>`Weekly`,Uj=()=>`Tygodniowo`,Wj=((e={},t={})=>(t.locale??Y())===`pl`?Uj(e):Hj(e)),Gj=()=>`Daily`,Kj=()=>`Dziennie`,qj=((e={},t={})=>(t.locale??Y())===`pl`?Kj(e):Gj(e)),Jj=()=>`Day of month help`,Yj=()=>`Pomoc dotycząca dnia miesiąca`,Xj=((e={},t={})=>(t.locale??Y())===`pl`?Yj(e):Jj(e)),Zj=()=>`Day of Month`,Qj=()=>`Dzień miesiąca`,$j=((e={},t={})=>(t.locale??Y())===`pl`?Qj(e):Zj(e)),eM=()=>`If the selected day does not exist in a month, the reset runs on the last day of that month.`,tM=()=>`Jeśli wybrany dzień nie występuje w danym miesiącu, reset nastąpi w ostatnim dniu tego miesiąca.`,nM=((e={},t={})=>(t.locale??Y())===`pl`?tM(e):eM(e)),rM=()=>`Day of Week`,iM=()=>`Dzień tygodnia`,aM=((e={},t={})=>(t.locale??Y())===`pl`?iM(e):rM(e)),oM=()=>`Hour`,sM=()=>`Godzina`,cM=((e={},t={})=>(t.locale??Y())===`pl`?sM(e):oM(e)),lM=()=>`Minute`,uM=()=>`Minuta`,dM=((e={},t={})=>(t.locale??Y())===`pl`?uM(e):lM(e)),fM=()=>`Save Budget Settings`,pM=()=>`Zapisz ustawienia budżetów`,mM=((e={},t={})=>(t.locale??Y())===`pl`?pM(e):fM(e)),hM=()=>`Loading budget settings`,gM=()=>`Wczytywanie ustawień budżetów`,_M=((e={},t={})=>(t.locale??Y())===`pl`?gM(e):hM(e)),vM=()=>`Unable to load budget settings.`,yM=()=>`Nie można wczytać ustawień budżetów.`,bM=((e={},t={})=>(t.locale??Y())===`pl`?yM(e):vM(e)),xM=()=>`Unable to save budget settings.`,SM=()=>`Nie można zapisać ustawień budżetów.`,CM=((e={},t={})=>(t.locale??Y())===`pl`?SM(e):xM(e)),wM=()=>`Budget settings saved.`,TM=()=>`Ustawienia budżetów zapisane.`,EM=((e={},t={})=>(t.locale??Y())===`pl`?TM(e):wM(e)),DM=()=>`Sunday`,OM=()=>`Niedziela`,kM=((e={},t={})=>(t.locale??Y())===`pl`?OM(e):DM(e)),AM=()=>`Monday`,jM=()=>`Poniedziałek`,MM=((e={},t={})=>(t.locale??Y())===`pl`?jM(e):AM(e)),NM=()=>`Tuesday`,PM=()=>`Wtorek`,FM=((e={},t={})=>(t.locale??Y())===`pl`?PM(e):NM(e)),IM=()=>`Wednesday`,LM=()=>`Środa`,RM=((e={},t={})=>(t.locale??Y())===`pl`?LM(e):IM(e)),zM=()=>`Thursday`,BM=()=>`Czwartek`,VM=((e={},t={})=>(t.locale??Y())===`pl`?BM(e):zM(e)),HM=()=>`Friday`,UM=()=>`Piątek`,WM=((e={},t={})=>(t.locale??Y())===`pl`?UM(e):HM(e)),GM=()=>`Saturday`,KM=()=>`Sobota`,qM=((e={},t={})=>(t.locale??Y())===`pl`?KM(e):GM(e)),JM=()=>`Tagging based on headers`,YM=()=>`Tagowanie na podstawie nagłówków`,XM=((e={},t={})=>(t.locale??Y())===`pl`?YM(e):JM(e)),ZM=()=>`Tagging help`,QM=()=>`Pomoc dotycząca tagowania`,$M=((e={},t={})=>(t.locale??Y())===`pl`?QM(e):ZM(e)),eN=()=>`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.`,tN=()=>`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.`,nN=((e={},t={})=>(t.locale??Y())===`pl`?tN(e):eN(e)),rN=()=>`Header`,iN=()=>`Nagłówek`,aN=((e={},t={})=>(t.locale??Y())===`pl`?iN(e):rN(e)),oN=()=>`Prefix to trim (optional)`,sN=()=>`Prefiks do usunięcia (opcjonalnie)`,cN=((e={},t={})=>(t.locale??Y())===`pl`?sN(e):oN(e)),lN=()=>`Delimiter`,uN=()=>`Separator`,dN=((e={},t={})=>(t.locale??Y())===`pl`?uN(e):lN(e)),fN=()=>`Do not pass upstream`,pN=()=>`Nie przekazuj dalej`,mN=((e={},t={})=>(t.locale??Y())===`pl`?pN(e):fN(e)),hN=()=>`Declared in config.yaml or TAGGING_HEADER_* environment variables; read-only here.`,gN=()=>`Zdefiniowane w config.yaml lub zmiennych środowiskowych TAGGING_HEADER_*; tutaj tylko do odczytu.`,_N=((e={},t={})=>(t.locale??Y())===`pl`?gN(e):hN(e)),vN=()=>`Remove`,yN=()=>`Usuń`,bN=((e={},t={})=>(t.locale??Y())===`pl`?yN(e):vN(e)),xN=e=>`Remove tagging header ${e?.header}`,SN=e=>`Usuń nagłówek tagowania ${e?.header}`,CN=((e,t={})=>(t.locale??Y())===`pl`?SN(e):xN(e)),wN=()=>`Loading tagging settings`,TN=()=>`Wczytywanie ustawień tagowania`,EN=((e={},t={})=>(t.locale??Y())===`pl`?TN(e):wN(e)),DN=()=>`No tagging headers configured. Requests are not labelled.`,ON=()=>`Nie skonfigurowano nagłówków tagowania. Requesty nie otrzymują etykiet.`,kN=((e={},t={})=>(t.locale??Y())===`pl`?ON(e):DN(e)),AN=()=>`Add Header`,jN=()=>`Dodaj nagłówek`,MN=((e={},t={})=>(t.locale??Y())===`pl`?jN(e):AN(e)),NN=()=>`Save Tagging Settings`,PN=()=>`Zapisz ustawienia tagowania`,FN=((e={},t={})=>(t.locale??Y())===`pl`?PN(e):NN(e)),IN=()=>`Unable to load tagging settings.`,LN=()=>`Nie można wczytać ustawień tagowania.`,RN=((e={},t={})=>(t.locale??Y())===`pl`?LN(e):IN(e)),zN=()=>`Unable to save tagging settings.`,BN=()=>`Nie można zapisać ustawień tagowania.`,VN=((e={},t={})=>(t.locale??Y())===`pl`?BN(e):zN(e)),HN=()=>`Tagging settings saved.`,UN=()=>`Ustawienia tagowania zapisane.`,WN=((e={},t={})=>(t.locale??Y())===`pl`?UN(e):HN(e)),GN=()=>`Runtime Refresh`,KN=()=>`Odświeżenie runtime`,qN=((e={},t={})=>(t.locale??Y())===`pl`?KN(e):GN(e)),JN=()=>`Runtime refresh help`,YN=()=>`Pomoc dotycząca odświeżenia runtime`,XN=((e={},t={})=>(t.locale??Y())===`pl`?YN(e):JN(e)),ZN=()=>`Pull the latest model metadata, provider inventory, API keys, aliases, model access rules, Guardrails, and Workflows.`,QN=()=>`Pobierz najnowsze metadane modeli, listę dostawców, klucze API, aliasy, reguły dostępu do modeli, Guardrails i Workflows.`,$N=((e={},t={})=>(t.locale??Y())===`pl`?QN(e):ZN(e)),eP=()=>`Refresh`,tP=()=>`Odśwież`,nP=((e={},t={})=>(t.locale??Y())===`pl`?tP(e):eP(e)),rP=()=>`Runtime refresh completed.`,iP=()=>`Odświeżenie runtime zakończone.`,aP=((e={},t={})=>(t.locale??Y())===`pl`?iP(e):rP(e)),oP=()=>`Runtime refreshed.`,sP=()=>`Runtime odświeżony.`,cP=((e={},t={})=>(t.locale??Y())===`pl`?sP(e):oP(e)),lP=()=>`Runtime refresh completed with warnings.`,uP=()=>`Odświeżenie runtime zakończone z ostrzeżeniami.`,dP=((e={},t={})=>(t.locale??Y())===`pl`?uP(e):lP(e)),fP=()=>`Runtime refresh failed.`,pP=()=>`Odświeżenie runtime nie powiodło się.`,mP=((e={},t={})=>(t.locale??Y())===`pl`?pP(e):fP(e)),hP=e=>`${e?.status} ${e?.models} · ${e?.providers}.`,gP=e=>`${e?.status} ${e?.models} · ${e?.providers}.`,_P=((e,t={})=>(t.locale??Y())===`pl`?gP(e):hP(e)),vP=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,yP=e=>{let t=Ao(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},bP=((e,t={})=>(t.locale??Y())===`pl`?yP(e):vP(e)),xP=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} provider`:`${e?.count} providers`,SP=e=>{let t=Ao(`pl`,e?.count,{});return t===`one`?`${e?.count} dostawca`:t===`few`||t===`many`?`${e?.count} dostawców`:`${e?.count} dostawcy`},CP=((e,t={})=>(t.locale??Y())===`pl`?SP(e):xP(e)),wP=()=>`AI Processing`,TP=()=>`Przetwarzanie AI`,EP=((e={},t={})=>(t.locale??Y())===`pl`?TP(e):wP(e)),DP=()=>`Unable to load runtime settings.`,OP=()=>`Nie można wczytać ustawień runtime.`,kP=((e={},t={})=>(t.locale??Y())===`pl`?OP(e):DP(e)),AP=e=>`Unable to save ${e?.setting}.`,jP=e=>`Nie można zapisać ustawienia ${e?.setting}.`,MP=((e,t={})=>(t.locale??Y())===`pl`?jP(e):AP(e)),NP=e=>`${e?.setting} saved.`,PP=e=>`Zapisano ustawienie ${e?.setting}.`,FP=((e,t={})=>(t.locale??Y())===`pl`?PP(e):NP(e)),IP=e=>`Managed by ${e?.source}`,LP=e=>`Zarządzane przez: ${e?.source}`,RP=((e,t={})=>(t.locale??Y())===`pl`?LP(e):IP(e)),zP=()=>`environment`,BP=()=>`środowisko`,VP=((e={},t={})=>(t.locale??Y())===`pl`?BP(e):zP(e)),HP=()=>`Usage Pricing Recalculation`,UP=()=>`Ponowne przeliczenie cen zużycia`,WP=((e={},t={})=>(t.locale??Y())===`pl`?UP(e):HP(e)),GP=()=>`Pricing recalculation help`,KP=()=>`Pomoc dotycząca przeliczania cen`,qP=((e={},t={})=>(t.locale??Y())===`pl`?KP(e):GP(e)),JP=()=>`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.`,YP=()=>`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.`,XP=((e={},t={})=>(t.locale??Y())===`pl`?YP(e):JP(e)),ZP=()=>`Date Range`,QP=()=>`Zakres dat`,$P=((e={},t={})=>(t.locale??Y())===`pl`?QP(e):ZP(e)),eF=()=>`User Path (optional)`,tF=()=>`User Path (opcjonalny)`,nF=((e={},t={})=>(t.locale??Y())===`pl`?tF(e):eF(e)),rF=()=>`Provider/Model or Alias (optional)`,iF=()=>`Dostawca/model lub alias (opcjonalnie)`,aF=((e={},t={})=>(t.locale??Y())===`pl`?iF(e):rF(e)),oF=()=>`openai/gpt-4o or smart`,sF=()=>`openai/gpt-4o lub smart`,cF=((e={},t={})=>(t.locale??Y())===`pl`?sF(e):oF(e)),lF=()=>`Recalculate Pricing`,uF=()=>`Przelicz ceny`,dF=((e={},t={})=>(t.locale??Y())===`pl`?uF(e):lF(e)),fF=()=>`Usage pricing recalculation is unavailable.`,pF=()=>`Ponowne przeliczanie cen zużycia jest niedostępne.`,mF=((e={},t={})=>(t.locale??Y())===`pl`?pF(e):fF(e)),hF=()=>`recalculate`,gF=()=>`przelicz`,_F=((e={},t={})=>(t.locale??Y())===`pl`?gF(e):hF(e)),vF=()=>`Stored usage cost fields matching the selected filters will be overwritten.`,yF=()=>`Zapisane pola kosztów zużycia pasujące do wybranych filtrów zostaną nadpisane.`,bF=((e={},t={})=>(t.locale??Y())===`pl`?yF(e):vF(e)),xF=()=>`Unable to recalculate pricing.`,SF=()=>`Nie można przeliczyć cen.`,CF=((e={},t={})=>(t.locale??Y())===`pl`?SF(e):xF(e)),wF=e=>Ao(`en`,e?.matched,{})===`one`?`Pricing recalculated for ${e?.recalculated} of ${e?.matched} usage record.`:`Pricing recalculated for ${e?.recalculated} of ${e?.matched} usage records.`,TF=e=>{let t=Ao(`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.`},EF=((e,t={})=>(t.locale??Y())===`pl`?TF(e):wF(e)),DF=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} usage record still lacks pricing metadata.`:`${e?.count} usage records still lack pricing metadata.`,OF=e=>{let t=Ao(`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.`},kF=((e,t={})=>(t.locale??Y())===`pl`?OF(e):DF(e)),AF=()=>`Sign out`,jF=()=>`Wyloguj się`,MF=((e={},t={})=>(t.locale??Y())===`pl`?jF(e):AF(e)),NF=()=>`Enter API key`,PF=()=>`Wprowadź klucz API`,FF=((e={},t={})=>(t.locale??Y())===`pl`?PF(e):NF(e)),IF=()=>`Change API key`,LF=()=>`Zmień klucz API`,RF=((e={},t={})=>(t.locale??Y())===`pl`?LF(e):IF(e)),zF=()=>`Resize sidebar`,BF=()=>`Zmień szerokość paska bocznego`,VF=((e={},t={})=>(t.locale??Y())===`pl`?BF(e):zF(e)),HF=()=>`Drag to resize; click to collapse or expand`,UF=()=>`Przeciągnij, aby zmienić szerokość; kliknij, aby zwinąć lub rozwinąć`,WF=((e={},t={})=>(t.locale??Y())===`pl`?UF(e):HF(e)),GF=()=>`Theme`,KF=()=>`Motyw`,qF=((e={},t={})=>(t.locale??Y())===`pl`?KF(e):GF(e)),JF=()=>`Light theme`,YF=()=>`Jasny motyw`,XF=((e={},t={})=>(t.locale??Y())===`pl`?YF(e):JF(e)),ZF=()=>`System theme`,QF=()=>`Motyw systemowy`,$F=((e={},t={})=>(t.locale??Y())===`pl`?QF(e):ZF(e)),eI=()=>`Dark theme`,tI=()=>`Ciemny motyw`,nI=((e={},t={})=>(t.locale??Y())===`pl`?tI(e):eI(e)),rI=e=>`Change theme (currently ${e?.theme})`,iI=e=>`Zmień motyw (obecnie: ${e?.theme})`,aI=((e,t={})=>(t.locale??Y())===`pl`?iI(e):rI(e)),oI=()=>`Language`,sI=()=>`Język`,cI=((e={},t={})=>(t.locale??Y())===`pl`?sI(e):oI(e)),lI=()=>`Authentication required for dashboard data.`,uI=()=>`Dostęp do danych panelu wymaga uwierzytelnienia.`,dI=((e={},t={})=>(t.locale??Y())===`pl`?uI(e):lI(e)),fI=()=>`Dashboard locked`,pI=()=>`Panel zablokowany`,mI=((e={},t={})=>(t.locale??Y())===`pl`?pI(e):fI(e)),hI=()=>`Change API key`,gI=()=>`Zmień klucz API`,_I=((e={},t={})=>(t.locale??Y())===`pl`?gI(e):hI(e)),vI=()=>`Close authentication dialog`,yI=()=>`Zamknij okno uwierzytelniania`,bI=((e={},t={})=>(t.locale??Y())===`pl`?yI(e):vI(e)),xI=()=>`Sign in with SSO`,SI=()=>`Zaloguj się przez SSO`,CI=((e={},t={})=>(t.locale??Y())===`pl`?SI(e):xI(e)),wI=()=>`or use an API key`,TI=()=>`lub użyj klucza API`,EI=((e={},t={})=>(t.locale??Y())===`pl`?TI(e):wI(e)),DI=()=>`API key`,OI=()=>`Klucz API`,kI=((e={},t={})=>(t.locale??Y())===`pl`?OI(e):DI(e)),AI=()=>`Master key or bearer token`,jI=()=>`Klucz główny lub token Bearer`,MI=((e={},t={})=>(t.locale??Y())===`pl`?jI(e):AI(e)),NI=()=>`Enter a valid API key to continue.`,PI=()=>`Aby kontynuować, wprowadź prawidłowy klucz API.`,FI=((e={},t={})=>(t.locale??Y())===`pl`?PI(e):NI(e)),II=()=>`Stored in this browser. Requests use the Authorization bearer header.`,LI=()=>`Klucz jest przechowywany w tej przeglądarce. Requesty używają nagłówka Authorization typu Bearer.`,RI=((e={},t={})=>(t.locale??Y())===`pl`?LI(e):II(e)),zI=()=>`Unlock dashboard`,BI=()=>`Odblokuj panel`,VI=((e={},t={})=>(t.locale??Y())===`pl`?BI(e):zI(e)),HI=()=>`Save API key`,UI=()=>`Zapisz klucz API`,WI=((e={},t={})=>(t.locale??Y())===`pl`?UI(e):HI(e)),GI=()=>`Close confirmation dialog`,KI=()=>`Zamknij okno potwierdzenia`,qI=((e={},t={})=>(t.locale??Y())===`pl`?KI(e):GI(e)),JI=()=>`Dismiss notification`,YI=()=>`Zamknij powiadomienie`,XI=((e={},t={})=>(t.locale??Y())===`pl`?YI(e):JI(e)),ZI=()=>`Demo mode notice`,QI=()=>`Informacja o trybie demo`,$I=((e={},t={})=>(t.locale??Y())===`pl`?QI(e):ZI(e)),eL=()=>`Public demo`,tL=()=>`Publiczne demo`,nL=((e={},t={})=>(t.locale??Y())===`pl`?tL(e):eL(e)),rL=()=>`Do not enter sensitive or personal data. Demo data is reset regularly.`,iL=()=>`Nie wprowadzaj danych poufnych ani osobowych. Dane demonstracyjne są regularnie resetowane.`,aL=((e={},t={})=>(t.locale??Y())===`pl`?iL(e):rL(e)),oL=()=>`GoModel website`,sL=()=>`Strona GoModel`,cL=((e={},t={})=>(t.locale??Y())===`pl`?sL(e):oL(e)),lL=e=>`Showing ${e?.start}–${e?.end} of ${e?.total}`,uL=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total}`,dL=((e,t={})=>(t.locale??Y())===`pl`?uL(e):lL(e)),fL=e=>Ao(`en`,e?.count,{})===`one`?`Last ${e?.count} day`:`Last ${e?.count} days`,pL=e=>{let t=Ao(`pl`,e?.count,{});return t===`one`?`Ostatni ${e?.count} dzień`:t===`few`||t===`many`?`Ostatnie ${e?.count} dni`:`Ostatnie ${e?.count} dnia`},mL=((e,t={})=>(t.locale??Y())===`pl`?pL(e):fL(e)),hL=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} day`:`${e?.count} days`,gL=e=>{let t=Ao(`pl`,e?.count,{});return t===`one`?`${e?.count} dzień`:t===`few`||t===`many`?`${e?.count} dni`:`${e?.count} dnia`},_L=((e,t={})=>(t.locale??Y())===`pl`?gL(e):hL(e)),vL=()=>`Today`,yL=()=>`Dzisiaj`,bL=((e={},t={})=>(t.locale??Y())===`pl`?yL(e):vL(e)),xL=e=>`${e?.start} – ${e?.end}`,SL=e=>`${e?.start} – ${e?.end}`,CL=((e,t={})=>(t.locale??Y())===`pl`?SL(e):xL(e)),wL=e=>`${e?.start} – ...`,TL=e=>`${e?.start} – ...`,EL=((e,t={})=>(t.locale??Y())===`pl`?TL(e):wL(e)),DL=()=>`Select start date`,OL=()=>`Wybierz datę początkową`,kL=((e={},t={})=>(t.locale??Y())===`pl`?OL(e):DL(e)),AL=()=>`Select end date`,jL=()=>`Wybierz datę końcową`,ML=((e={},t={})=>(t.locale??Y())===`pl`?jL(e):AL(e)),NL=()=>`Previous month`,PL=()=>`Poprzedni miesiąc`,FL=((e={},t={})=>(t.locale??Y())===`pl`?PL(e):NL(e)),IL=()=>`Next month`,LL=()=>`Następny miesiąc`,RL=((e={},t={})=>(t.locale??Y())===`pl`?LL(e):IL(e)),zL=()=>`Daily Token Usage`,BL=()=>`Dzienne zużycie tokenów`,VL=((e={},t={})=>(t.locale??Y())===`pl`?BL(e):zL(e)),HL=()=>`Weekly Token Usage`,UL=()=>`Tygodniowe zużycie tokenów`,WL=((e={},t={})=>(t.locale??Y())===`pl`?UL(e):HL(e)),GL=()=>`Monthly Token Usage`,KL=()=>`Miesięczne zużycie tokenów`,qL=((e={},t={})=>(t.locale??Y())===`pl`?KL(e):GL(e)),JL=()=>`Yearly Token Usage`,YL=()=>`Roczne zużycie tokenów`,XL=((e={},t={})=>(t.locale??Y())===`pl`?YL(e):JL(e)),ZL=()=>`Enabled`,QL=()=>`Włączony`,$L=((e={},t={})=>(t.locale??Y())===`pl`?QL(e):ZL(e)),eR=()=>`Disabled`,tR=()=>`Wyłączony`,nR=((e={},t={})=>(t.locale??Y())===`pl`?tR(e):eR(e)),rR=()=>`Config`,iR=()=>`Config`,aR=((e={},t={})=>(t.locale??Y())===`pl`?iR(e):rR(e)),oR=()=>`Authentication required.`,sR=()=>`Wymagane uwierzytelnienie.`,cR=((e={},t={})=>(t.locale??Y())===`pl`?sR(e):oR(e)),lR=()=>`Keys without dashboard access are denied the dashboard and every /admin API endpoint. Model endpoints and GET /v1/usage stay available to all keys.`,uR=()=>`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.`,dR=((e={},t={})=>(t.locale??Y())===`pl`?uR(e):lR(e)),fR=e=>`Grant dashboard access to API key ${e?.name}`,pR=e=>`Przyznaj dostęp do dashboardu kluczowi API ${e?.name}`,mR=((e,t={})=>(t.locale??Y())===`pl`?pR(e):fR(e)),hR=e=>`Revoke dashboard access for API key ${e?.name}`,gR=e=>`Odbierz dostęp do dashboardu kluczowi API ${e?.name}`,_R=((e,t={})=>(t.locale??Y())===`pl`?gR(e):hR(e)),vR=e=>`Edit labels for API key ${e?.name}`,yR=e=>`Edytuj etykiety klucza API ${e?.name}`,bR=((e,t={})=>(t.locale??Y())===`pl`?yR(e):vR(e)),xR=e=>`Deactivate API key ${e?.name}`,SR=e=>`Dezaktywuj klucz API ${e?.name}`,CR=((e,t={})=>(t.locale??Y())===`pl`?SR(e):xR(e)),wR=e=>`Deactivating API key ${e?.name}`,TR=e=>`Dezaktywowanie klucza API ${e?.name}`,ER=((e,t={})=>(t.locale??Y())===`pl`?TR(e):wR(e)),DR=e=>`Deactivated on ${e?.date}`,OR=e=>`Dezaktywowano ${e?.date}`,kR=((e,t={})=>(t.locale??Y())===`pl`?OR(e):DR(e)),AR=()=>`Unable to load API keys.`,jR=()=>`Nie udało się wczytać kluczy API.`,MR=((e={},t={})=>(t.locale??Y())===`pl`?jR(e):AR(e)),NR=()=>`Failed to create API key.`,PR=()=>`Nie udało się utworzyć klucza API.`,FR=((e={},t={})=>(t.locale??Y())===`pl`?PR(e):NR(e)),IR=()=>`Auth keys feature is unavailable.`,LR=()=>`Funkcja kluczy API jest niedostępna.`,RR=((e={},t={})=>(t.locale??Y())===`pl`?LR(e):IR(e)),zR=()=>`Failed to update labels.`,BR=()=>`Nie udało się zaktualizować etykiet.`,VR=((e={},t={})=>(t.locale??Y())===`pl`?BR(e):zR(e)),HR=e=>`Labels updated for key "${e?.name}".`,UR=e=>`Zaktualizowano etykiety klucza „${e?.name}”.`,WR=((e,t={})=>(t.locale??Y())===`pl`?UR(e):HR(e)),GR=()=>`Failed to update dashboard access.`,KR=()=>`Nie udało się zaktualizować dostępu do dashboardu.`,qR=((e={},t={})=>(t.locale??Y())===`pl`?KR(e):GR(e)),JR=e=>`Dashboard access granted to key "${e?.name}".`,YR=e=>`Przyznano dostęp do dashboardu kluczowi „${e?.name}”.`,XR=((e,t={})=>(t.locale??Y())===`pl`?YR(e):JR(e)),ZR=e=>`Dashboard access revoked for key "${e?.name}".`,QR=e=>`Odebrano dostęp do dashboardu kluczowi „${e?.name}”.`,$R=((e,t={})=>(t.locale??Y())===`pl`?QR(e):ZR(e)),ez=e=>`Deactivate key "${e?.name}"? This cannot be undone.`,tz=e=>`Dezaktywować klucz „${e?.name}”? Tej operacji nie można cofnąć.`,nz=((e,t={})=>(t.locale??Y())===`pl`?tz(e):ez(e)),rz=()=>`Failed to deactivate key.`,iz=()=>`Nie udało się dezaktywować klucza.`,az=((e={},t={})=>(t.locale??Y())===`pl`?iz(e):rz(e)),oz=e=>`Key "${e?.name}" deactivated.`,sz=e=>`Dezaktywowano klucz „${e?.name}”.`,cz=((e,t={})=>(t.locale??Y())===`pl`?sz(e):oz(e)),lz=()=>`Name is required.`,uz=()=>`Nazwa jest wymagana.`,dz=((e={},t={})=>(t.locale??Y())===`pl`?uz(e):lz(e)),fz=()=>`User path cannot contain "." or ".." segments.`,pz=()=>`User Path nie może zawierać segmentów "." ani "..".`,mz=((e={},t={})=>(t.locale??Y())===`pl`?pz(e):fz(e)),hz=()=>`User path cannot contain ":" segments.`,gz=()=>`User Path nie może zawierać segmentów z ":".`,_z=((e={},t={})=>(t.locale??Y())===`pl`?gz(e):hz(e)),vz=()=>`Transport`,yz=()=>`Transport`,bz=((e={},t={})=>(t.locale??Y())===`pl`?yz(e):vz(e)),xz=()=>`Endpoint`,Sz=()=>`Endpoint`,Cz=((e={},t={})=>(t.locale??Y())===`pl`?Sz(e):xz(e)),wz=()=>`Status`,Tz=()=>`Status`,Ez=((e={},t={})=>(t.locale??Y())===`pl`?Tz(e):wz(e)),Dz=()=>`Tools`,Oz=()=>`Narzędzia`,kz=((e={},t={})=>(t.locale??Y())===`pl`?Oz(e):Dz(e)),Az=()=>`Enabled`,jz=()=>`Włączony`,Mz=((e={},t={})=>(t.locale??Y())===`pl`?jz(e):Az(e)),Nz=()=>`Actions`,Pz=()=>`Akcje`,Fz=((e={},t={})=>(t.locale??Y())===`pl`?Pz(e):Nz(e)),Iz=()=>`Declared in configuration (config.yaml mcp.servers); read-only in the dashboard`,Lz=()=>`Zadeklarowano w konfiguracji (config.yaml mcp.servers); tylko do odczytu w dashboardzie`,Rz=((e={},t={})=>(t.locale??Y())===`pl`?Lz(e):Iz(e)),zz=e=>`Edit MCP server ${e?.name}`,Bz=e=>`Edytuj serwer MCP ${e?.name}`,Vz=((e,t={})=>(t.locale??Y())===`pl`?Bz(e):zz(e)),Hz=e=>`Inspect catalog of MCP server ${e?.name}`,Uz=e=>`Sprawdź katalog serwera MCP ${e?.name}`,Wz=((e,t={})=>(t.locale??Y())===`pl`?Uz(e):Hz(e)),Gz=e=>`Reconnect MCP server ${e?.name}`,Kz=e=>`Połącz ponownie serwer MCP ${e?.name}`,qz=((e,t={})=>(t.locale??Y())===`pl`?Kz(e):Gz(e)),Jz=e=>`Reconnecting MCP server ${e?.name}`,Yz=e=>`Ponowne łączenie serwera MCP ${e?.name}`,Xz=((e,t={})=>(t.locale??Y())===`pl`?Yz(e):Jz(e)),Zz=e=>`Delete MCP server ${e?.name}`,Qz=e=>`Usuń serwer MCP ${e?.name}`,$z=((e,t={})=>(t.locale??Y())===`pl`?Qz(e):Zz(e)),eB=e=>`Deleting MCP server ${e?.name}`,tB=e=>`Usuwanie serwera MCP ${e?.name}`,nB=((e,t={})=>(t.locale??Y())===`pl`?tB(e):eB(e)),rB=e=>`Connected since ${e?.date}`,iB=e=>`Połączono od ${e?.date}`,aB=((e,t={})=>(t.locale??Y())===`pl`?iB(e):rB(e)),oB=()=>`local command`,sB=()=>`komenda lokalna`,cB=((e={},t={})=>(t.locale??Y())===`pl`?sB(e):oB(e)),lB=e=>`${e?.prompts} prompts · ${e?.resources} resources`,uB=e=>`Prompty: ${e?.prompts} · zasoby: ${e?.resources}`,dB=((e,t={})=>(t.locale??Y())===`pl`?uB(e):lB(e)),fB=()=>`Name is required.`,pB=()=>`Nazwa jest wymagana.`,mB=((e={},t={})=>(t.locale??Y())===`pl`?pB(e):fB(e)),hB=()=>`Slug must use 1–64 lowercase ASCII letters, numbers, hyphens, or underscores.`,gB=()=>`Slug musi zawierać 1–64 małych liter ASCII, cyfr, łączników lub podkreśleń.`,_B=((e={},t={})=>(t.locale??Y())===`pl`?gB(e):hB(e)),vB=e=>`Slug "${e?.slug}" is already in use.`,yB=e=>`Slug „${e?.slug}” jest już używany.`,bB=((e,t={})=>(t.locale??Y())===`pl`?yB(e):vB(e)),xB=()=>`URL is required.`,SB=()=>`URL jest wymagany.`,CB=((e={},t={})=>(t.locale??Y())===`pl`?SB(e):xB(e)),wB=()=>`Tool timeout must be a non-negative whole number of seconds.`,TB=()=>`Timeout narzędzia musi być nieujemną całkowitą liczbą sekund.`,EB=((e={},t={})=>(t.locale??Y())===`pl`?TB(e):wB(e)),DB=()=>`Tools`,OB=()=>`Narzędzia`,kB=((e={},t={})=>(t.locale??Y())===`pl`?OB(e):DB(e)),AB=()=>`Prompts`,jB=()=>`Prompty`,MB=((e={},t={})=>(t.locale??Y())===`pl`?jB(e):AB(e)),NB=()=>`Resources`,PB=()=>`Zasoby`,FB=((e={},t={})=>(t.locale??Y())===`pl`?PB(e):NB(e)),IB=()=>`Resource templates`,LB=()=>`Szablony zasobów`,RB=((e={},t={})=>(t.locale??Y())===`pl`?LB(e):IB(e)),zB=()=>`Failed to load MCP servers.`,BB=()=>`Nie udało się wczytać serwerów MCP.`,VB=((e={},t={})=>(t.locale??Y())===`pl`?BB(e):zB(e)),HB=()=>`Failed to save MCP server.`,UB=()=>`Nie udało się zapisać serwera MCP.`,WB=((e={},t={})=>(t.locale??Y())===`pl`?UB(e):HB(e)),GB=e=>`MCP server "${e?.name}" saved.`,KB=e=>`Zapisano serwer MCP „${e?.name}”.`,qB=((e,t={})=>(t.locale??Y())===`pl`?KB(e):GB(e)),JB=e=>`Delete MCP server "${e?.name}"? Clients lose access to its tools immediately.`,YB=e=>`Usunąć serwer MCP „${e?.name}”? Klienci natychmiast utracą dostęp do jego narzędzi.`,XB=((e,t={})=>(t.locale??Y())===`pl`?YB(e):JB(e)),ZB=()=>`Failed to delete MCP server.`,QB=()=>`Nie udało się usunąć serwera MCP.`,$B=((e={},t={})=>(t.locale??Y())===`pl`?QB(e):ZB(e)),eV=e=>`MCP server "${e?.name}" deleted.`,tV=e=>`Usunięto serwer MCP „${e?.name}”.`,nV=((e,t={})=>(t.locale??Y())===`pl`?tV(e):eV(e)),rV=()=>`Failed to reconnect MCP server.`,iV=()=>`Nie udało się ponownie połączyć serwera MCP.`,aV=((e={},t={})=>(t.locale??Y())===`pl`?iV(e):rV(e)),oV=e=>`MCP server "${e?.name}" reconnected.`,sV=e=>`Ponownie połączono serwer MCP „${e?.name}”.`,cV=((e,t={})=>(t.locale??Y())===`pl`?sV(e):oV(e)),lV=e=>`MCP server "${e?.name}" is disabled; no connection was attempted.`,uV=e=>`Serwer MCP „${e?.name}” jest wyłączony; nie podjęto próby połączenia.`,dV=((e,t={})=>(t.locale??Y())===`pl`?uV(e):lV(e)),fV=e=>`Reconnect attempted, but MCP server "${e?.name}" is still ${e?.status}.`,pV=e=>`Podjęto próbę ponownego połączenia, ale status serwera MCP „${e?.name}” to nadal ${e?.status}.`,mV=((e,t={})=>(t.locale??Y())===`pl`?pV(e):fV(e)),hV=e=>`MCP server "${e?.name}" was not found.`,gV=e=>`Nie znaleziono serwera MCP „${e?.name}”.`,_V=((e,t={})=>(t.locale??Y())===`pl`?gV(e):hV(e)),vV=()=>`Failed to load MCP server catalog.`,yV=()=>`Nie udało się wczytać katalogu serwera MCP.`,bV=((e={},t={})=>(t.locale??Y())===`pl`?yV(e):vV(e)),xV=()=>`Edit Provider`,SV=()=>`Edytuj dostawcę`,CV=((e={},t={})=>(t.locale??Y())===`pl`?SV(e):xV(e)),wV=()=>`Provider credential editor`,TV=()=>`Edytor danych dostawcy`,EV=((e={},t={})=>(t.locale??Y())===`pl`?TV(e):wV(e)),DV=()=>`The name is the stable identity used for routing and cannot change once created.`,OV=()=>`Nazwa jest stałą tożsamością używaną do routingu i po utworzeniu nie można jej zmienić.`,kV=((e={},t={})=>(t.locale??Y())===`pl`?OV(e):DV(e)),AV=()=>`Select a provider type…`,jV=()=>`Wybierz typ dostawcy…`,MV=((e={},t={})=>(t.locale??Y())===`pl`?jV(e):AV(e)),NV=()=>`Determines which fields the gateway uses to build requests.`,PV=()=>`Określa pola używane przez gateway do tworzenia Request'ów.`,FV=((e={},t={})=>(t.locale??Y())===`pl`?PV(e):NV(e)),IV=()=>`Suggested from the selected type; used to route requests to this provider instance and editable before saving.`,LV=()=>`Sugerowana na podstawie typu; używana do kierowania Request'ów do tej instancji i edytowalna przed zapisem.`,RV=((e={},t={})=>(t.locale??Y())===`pl`?LV(e):IV(e)),zV=()=>`Immutable once created.`,BV=()=>`Po utworzeniu nie można jej zmienić.`,VV=((e={},t={})=>(t.locale??Y())===`pl`?BV(e):zV(e)),HV=()=>`Pick a type to configure its credentials — each provider type asks for different settings.`,UV=()=>`Wybierz typ, aby skonfigurować dane dostępowe — każdy typ dostawcy wymaga innych ustawień.`,WV=((e={},t={})=>(t.locale??Y())===`pl`?UV(e):HV(e)),GV=()=>`provider`,KV=()=>`dostawca`,qV=((e={},t={})=>(t.locale??Y())===`pl`?KV(e):GV(e)),JV=()=>`Advanced settings`,YV=()=>`Ustawienia zaawansowane`,XV=((e={},t={})=>(t.locale??Y())===`pl`?YV(e):JV(e)),ZV=e=>`API key ${e?.number}`,QV=e=>`Klucz API ${e?.number}`,$V=((e,t={})=>(t.locale??Y())===`pl`?QV(e):ZV(e)),eH=e=>`Remove API key ${e?.number}`,tH=e=>`Usuń klucz API ${e?.number}`,nH=((e,t={})=>(t.locale??Y())===`pl`?tH(e):eH(e)),rH=()=>`Add key`,iH=()=>`Dodaj klucz`,aH=((e={},t={})=>(t.locale??Y())===`pl`?iH(e):rH(e)),oH=()=>`Provider default`,sH=()=>`Domyślne dostawcy`,cH=((e={},t={})=>(t.locale??Y())===`pl`?sH(e):oH(e)),lH=e=>`Edit provider ${e?.name}`,uH=e=>`Edytuj dostawcę ${e?.name}`,dH=((e,t={})=>(t.locale??Y())===`pl`?uH(e):lH(e)),fH=e=>`Delete provider ${e?.name}`,pH=e=>`Usuń dostawcę ${e?.name}`,mH=((e,t={})=>(t.locale??Y())===`pl`?pH(e):fH(e)),hH=e=>`Deleting provider ${e?.name}`,gH=e=>`Usuwanie dostawcy ${e?.name}`,_H=((e,t={})=>(t.locale??Y())===`pl`?gH(e):hH(e)),vH=()=>`Failed to load provider credentials.`,yH=()=>`Nie udało się wczytać danych dostawców.`,bH=((e={},t={})=>(t.locale??Y())===`pl`?yH(e):vH(e)),xH=()=>`Failed to save provider credential.`,SH=()=>`Nie udało się zapisać danych dostawcy.`,CH=((e={},t={})=>(t.locale??Y())===`pl`?SH(e):xH(e)),wH=e=>`Provider "${e?.name}" saved.`,TH=e=>`Zapisano dostawcę „${e?.name}”.`,EH=((e,t={})=>(t.locale??Y())===`pl`?TH(e):wH(e)),DH=()=>`Failed to delete provider credential.`,OH=()=>`Nie udało się usunąć danych dostawcy.`,kH=((e={},t={})=>(t.locale??Y())===`pl`?OH(e):DH(e)),AH=e=>`Provider "${e?.name}" deleted.`,jH=e=>`Usunięto dostawcę „${e?.name}”.`,MH=((e,t={})=>(t.locale??Y())===`pl`?jH(e):AH(e)),NH=()=>`Delete Provider`,PH=()=>`Usuń dostawcę`,FH=((e={},t={})=>(t.locale??Y())===`pl`?PH(e):NH(e)),IH=e=>`Type "${e?.name}" to permanently delete this provider credential. Requests routed to it will fail until it is reconfigured.`,LH=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.`,RH=((e,t={})=>(t.locale??Y())===`pl`?LH(e):IH(e)),zH=()=>`API Keys`,BH=()=>`Klucze API`,VH=((e={},t={})=>(t.locale??Y())===`pl`?BH(e):zH(e)),HH=()=>`Session-sticky API keys`,UH=()=>`Klucze API przypisane do sesji`,WH=((e={},t={})=>(t.locale??Y())===`pl`?UH(e):HH(e)),GH=()=>`Base URL`,KH=()=>`Bazowy URL`,qH=((e={},t={})=>(t.locale??Y())===`pl`?KH(e):GH(e)),JH=()=>`API Version`,YH=()=>`Wersja API`,XH=((e={},t={})=>(t.locale??Y())===`pl`?YH(e):JH(e)),ZH=()=>`Backend`,QH=()=>`Backend`,$H=((e={},t={})=>(t.locale??Y())===`pl`?QH(e):ZH(e)),eU=()=>`Auth Type`,tU=()=>`Typ uwierzytelniania`,nU=((e={},t={})=>(t.locale??Y())===`pl`?tU(e):eU(e)),rU=()=>`API Mode`,iU=()=>`Tryb API`,aU=((e={},t={})=>(t.locale??Y())===`pl`?iU(e):rU(e)),oU=()=>`Vertex Project`,sU=()=>`Projekt Vertex`,cU=((e={},t={})=>(t.locale??Y())===`pl`?sU(e):oU(e)),lU=()=>`Vertex Location`,uU=()=>`Lokalizacja Vertex`,dU=((e={},t={})=>(t.locale??Y())===`pl`?uU(e):lU(e)),fU=()=>`Service Account File`,pU=()=>`Plik Service Account`,mU=((e={},t={})=>(t.locale??Y())===`pl`?pU(e):fU(e)),hU=()=>`Service Account JSON`,gU=()=>`Service Account JSON`,_U=((e={},t={})=>(t.locale??Y())===`pl`?gU(e):hU(e)),vU=()=>`Service Account JSON (base64)`,yU=()=>`Service Account JSON (base64)`,bU=((e={},t={})=>(t.locale??Y())===`pl`?yU(e):vU(e)),xU=()=>`GCP Scope`,SU=()=>`Zakres GCP`,CU=((e={},t={})=>(t.locale??Y())===`pl`?SU(e):xU(e)),wU=()=>`Models (comma-separated)`,TU=()=>`Modele (oddzielone przecinkami)`,EU=((e={},t={})=>(t.locale??Y())===`pl`?TU(e):wU(e)),DU=()=>`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.`,OU=()=>`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.`,kU=((e={},t={})=>(t.locale??Y())===`pl`?OU(e):DU(e)),AU=()=>`Keep each identified conversation on one API key to preserve provider prompt-cache affinity. Turn off to rotate keys round-robin on every request.`,jU=()=>`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.`,MU=((e={},t={})=>(t.locale??Y())===`pl`?jU(e):AU(e)),NU=()=>`Leave empty for the provider default. Realtime endpoints may need a newer version.`,PU=()=>`Pozostaw puste, aby użyć wartości domyślnej dostawcy. Endpointy Realtime mogą wymagać nowszej wersji.`,FU=((e={},t={})=>(t.locale??Y())===`pl`?PU(e):NU(e)),IU=()=>`Which Google surface to call. Vertex authenticates with Google credentials instead of an API key.`,LU=()=>`Określa usługę Google. Vertex uwierzytelnia się danymi Google zamiast kluczem API.`,RU=((e={},t={})=>(t.locale??Y())===`pl`?LU(e):IU(e)),zU=()=>`How to obtain Google credentials. Leave on the default to use Application Default Credentials.`,BU=()=>`Sposób uzyskania danych Google. Pozostaw wartość domyślną, aby użyć Application Default Credentials.`,VU=((e={},t={})=>(t.locale??Y())===`pl`?BU(e):zU(e)),HU=()=>`Which request shape to send upstream.`,UU=()=>`Format Requestu wysyłanego upstream.`,WU=((e={},t={})=>(t.locale??Y())===`pl`?UU(e):HU(e)),GU=()=>`Path readable by the gateway process.`,KU=()=>`Ścieżka dostępna do odczytu przez proces gateway.`,qU=((e={},t={})=>(t.locale??Y())===`pl`?KU(e):GU(e)),JU=()=>`Saved values are masked; leave the asterisks unchanged to keep the stored value, or clear it to remove.`,YU=()=>`Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować wartość, lub wyczyść pole, aby ją usunąć.`,XU=((e={},t={})=>(t.locale??Y())===`pl`?YU(e):JU(e)),ZU=()=>`Saved values are masked; leave the asterisks unchanged to keep the stored value.`,QU=()=>`Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować wartość.`,$U=((e={},t={})=>(t.locale??Y())===`pl`?QU(e):ZU(e)),eW=()=>`Leave empty to auto-discover models from the provider's /models endpoint where supported.`,tW=()=>`Pozostaw puste, aby automatycznie wykryć modele z endpointu /models dostawcy, jeśli jest obsługiwany.`,nW=((e={},t={})=>(t.locale??Y())===`pl`?tW(e):eW(e)),rW=e=>`Defaults to ${e?.value}`,iW=e=>`Domyślnie: ${e?.value}`,aW=((e,t={})=>(t.locale??Y())===`pl`?iW(e):rW(e)),oW=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} key`:`${e?.count} keys`,sW=e=>{let t=Ao(`pl`,e?.count,{});return t===`one`?`${e?.count} klucz`:t===`few`?`${e?.count} klucze`:t===`many`?`${e?.count} kluczy`:`${e?.count} klucza`},cW=((e,t={})=>(t.locale??Y())===`pl`?sW(e):oW(e)),lW=()=>`service account`,uW=()=>`Service Account`,dW=((e={},t={})=>(t.locale??Y())===`pl`?uW(e):lW(e)),fW=()=>`keyless`,pW=()=>`bez klucza`,mW=((e={},t={})=>(t.locale??Y())===`pl`?pW(e):fW(e)),hW=()=>`auto-discovered`,gW=()=>`wykrywane automatycznie`,_W=((e={},t={})=>(t.locale??Y())===`pl`?gW(e):hW(e)),vW=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,yW=e=>{let t=Ao(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},bW=((e,t={})=>(t.locale??Y())===`pl`?yW(e):vW(e)),xW=e=>`Enable ${e?.subject}`,SW=e=>`Włącz ${e?.subject}`,CW=((e,t={})=>(t.locale??Y())===`pl`?SW(e):xW(e)),wW=e=>`Disable ${e?.subject}`,TW=e=>`Wyłącz ${e?.subject}`,EW=((e,t={})=>(t.locale??Y())===`pl`?TW(e):wW(e)),DW=e=>`alias ${e?.name}`,OW=e=>`alias ${e?.name}`,kW=((e,t={})=>(t.locale??Y())===`pl`?OW(e):DW(e)),AW=()=>`model`,jW=()=>`model`,MW=((e={},t={})=>(t.locale??Y())===`pl`?jW(e):AW(e)),NW=()=>`This virtual model is managed by configuration and is read-only.`,PW=()=>`Ten model wirtualny jest zarządzany przez konfigurację i tutaj jest tylko do odczytu.`,FW=((e={},t={})=>(t.locale??Y())===`pl`?PW(e):NW(e)),IW=e=>`Edit ${e?.subject}`,LW=e=>`Edytuj ${e?.subject}`,RW=((e,t={})=>(t.locale??Y())===`pl`?LW(e):IW(e)),zW=e=>`Edit ${e?.subject} (override exists)`,BW=e=>`Edytuj ${e?.subject} (nadpisanie istnieje)`,VW=((e,t={})=>(t.locale??Y())===`pl`?BW(e):zW(e)),HW=e=>`Edit ${e?.subject} (virtual model exists)`,UW=e=>`Edytuj ${e?.subject} (model wirtualny istnieje)`,WW=((e,t={})=>(t.locale??Y())===`pl`?UW(e):HW(e)),GW=e=>`model pricing for ${e?.name}`,KW=e=>`ceny modelu ${e?.name}`,qW=((e,t={})=>(t.locale??Y())===`pl`?KW(e):GW(e)),JW=e=>`provider pricing for ${e?.name}`,YW=e=>`ceny dostawcy ${e?.name}`,XW=((e,t={})=>(t.locale??Y())===`pl`?YW(e):JW(e)),ZW=()=>`global model pricing`,QW=()=>`globalne ceny modeli`,$W=((e={},t={})=>(t.locale??Y())===`pl`?QW(e):ZW(e)),eG=e=>`model settings for ${e?.name}`,tG=e=>`ustawienia modelu ${e?.name}`,nG=((e,t={})=>(t.locale??Y())===`pl`?tG(e):eG(e)),rG=e=>`provider access for ${e?.name}`,iG=e=>`dostęp dostawcy ${e?.name}`,aG=((e,t={})=>(t.locale??Y())===`pl`?iG(e):rG(e)),oG=()=>`global model access`,sG=()=>`globalny dostęp do modeli`,cG=((e={},t={})=>(t.locale??Y())===`pl`?sG(e):oG(e)),lG=e=>`Remove alias ${e?.name}`,uG=e=>`Usuń alias ${e?.name}`,dG=((e,t={})=>(t.locale??Y())===`pl`?uG(e):lG(e)),fG=e=>`Removing alias ${e?.name}`,pG=e=>`Usuwanie aliasu ${e?.name}`,mG=((e,t={})=>(t.locale??Y())===`pl`?pG(e):fG(e)),hG=e=>`Edit alias ${e?.name}`,gG=e=>`Edytuj alias ${e?.name}`,_G=((e,t={})=>(t.locale??Y())===`pl`?gG(e):hG(e)),vG=e=>`Edit redirect for ${e?.name}`,yG=e=>`Edytuj przekierowanie dla ${e?.name}`,bG=((e,t={})=>(t.locale??Y())===`pl`?yG(e):vG(e)),xG=()=>`virtual model`,SG=()=>`model wirtualny`,CG=((e={},t={})=>(t.locale??Y())===`pl`?SG(e):xG(e)),wG=()=>`Models`,TG=()=>`Modele`,EG=((e={},t={})=>(t.locale??Y())===`pl`?TG(e):wG(e)),DG=()=>`Text generation`,OG=()=>`Generowanie tekstu`,kG=((e={},t={})=>(t.locale??Y())===`pl`?OG(e):DG(e)),AG=()=>`Embeddings`,jG=()=>`Embeddingi`,MG=((e={},t={})=>(t.locale??Y())===`pl`?jG(e):AG(e)),NG=()=>`Image`,PG=()=>`Obrazy`,FG=((e={},t={})=>(t.locale??Y())===`pl`?PG(e):NG(e)),IG=()=>`Audio`,LG=()=>`Audio`,RG=((e={},t={})=>(t.locale??Y())===`pl`?LG(e):IG(e)),zG=()=>`Video`,BG=()=>`Wideo`,VG=((e={},t={})=>(t.locale??Y())===`pl`?BG(e):zG(e)),HG=()=>`Utility`,UG=()=>`Narzędziowe`,WG=((e={},t={})=>(t.locale??Y())===`pl`?UG(e):HG(e)),GG=()=>`Virtual models`,KG=()=>`Modele wirtualne`,qG=((e={},t={})=>(t.locale??Y())===`pl`?KG(e):GG(e)),JG=()=>`all providers and models`,YG=()=>`wszyscy dostawcy i modele`,XG=((e={},t={})=>(t.locale??Y())===`pl`?YG(e):JG(e)),ZG=()=>`Disabled by default`,QG=()=>`Domyślnie wyłączony`,$G=((e={},t={})=>(t.locale??Y())===`pl`?QG(e):ZG(e)),eK=e=>`Allowed for ${e?.paths}`,tK=e=>`Dozwolony dla: ${e?.paths}`,nK=((e,t={})=>(t.locale??Y())===`pl`?tK(e):eK(e)),rK=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,iK=e=>{let t=Ao(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},aK=((e,t={})=>(t.locale??Y())===`pl`?iK(e):rK(e)),oK=e=>Ao(`en`,e?.count,{})===`one`?`${e?.count} alias`:`${e?.count} aliases`,sK=e=>{let t=Ao(`pl`,e?.count,{});return t===`one`?`${e?.count} alias`:t===`few`?`${e?.count} aliasy`:t===`many`?`${e?.count} aliasów`:`${e?.count} aliasu`},cK=((e,t={})=>(t.locale??Y())===`pl`?sK(e):oK(e)),lK=()=>`Modes`,uK=()=>`Tryby`,dK=((e={},t={})=>(t.locale??Y())===`pl`?uK(e):lK(e)),fK=()=>`Input / Output ($/MTok)`,pK=()=>`Wejście / wyjście ($/MTok)`,mK=((e={},t={})=>(t.locale??Y())===`pl`?pK(e):fK(e)),hK=()=>`Cached $/MTok`,gK=()=>`Cache $/MTok`,_K=((e={},t={})=>(t.locale??Y())===`pl`?gK(e):hK(e)),vK=()=>`Input`,yK=()=>`Wejście`,bK=((e={},t={})=>(t.locale??Y())===`pl`?yK(e):vK(e)),xK=()=>`$/Image`,SK=()=>`$/obraz`,CK=((e={},t={})=>(t.locale??Y())===`pl`?SK(e):xK(e)),wK=()=>`$/Second`,TK=()=>`$/sekundę`,EK=((e={},t={})=>(t.locale??Y())===`pl`?TK(e):wK(e)),DK=()=>`$/Character`,OK=()=>`$/znak`,kK=((e={},t={})=>(t.locale??Y())===`pl`?OK(e):DK(e)),AK=()=>`$/Second (In)`,jK=()=>`$/sekundę (wejście)`,MK=((e={},t={})=>(t.locale??Y())===`pl`?jK(e):AK(e)),NK=()=>`$/Second (Out)`,PK=()=>`$/sekundę (wyjście)`,FK=((e={},t={})=>(t.locale??Y())===`pl`?PK(e):NK(e)),IK=()=>`$/Page`,LK=()=>`$/stronę`,RK=((e={},t={})=>(t.locale??Y())===`pl`?LK(e):IK(e)),zK=()=>`$/Request`,BK=()=>`$/Request`,VK=((e={},t={})=>(t.locale??Y())===`pl`?BK(e):zK(e)),HK=()=>`Save`,UK=()=>`Zapisz`,WK=((e={},t={})=>(t.locale??Y())===`pl`?UK(e):HK(e)),GK=()=>`Saving...`,KK=()=>`Zapisywanie...`,qK=((e={},t={})=>(t.locale??Y())===`pl`?KK(e):GK(e)),JK=()=>`Creating...`,YK=()=>`Tworzenie...`,XK=((e={},t={})=>(t.locale??Y())===`pl`?YK(e):JK(e)),ZK=()=>`Loading workflows...`,QK=()=>`Wczytywanie Workflows...`,$K=((e={},t={})=>(t.locale??Y())===`pl`?QK(e):ZK(e)),eq=()=>`Loading workflows timed out.`,tq=()=>`Przekroczono czas wczytywania Workflows.`,nq=((e={},t={})=>(t.locale??Y())===`pl`?tq(e):eq(e)),rq=()=>`Workflow created and activated.`,iq=()=>`Workflow został utworzony i aktywowany.`,aq=((e={},t={})=>(t.locale??Y())===`pl`?iq(e):rq(e)),oq=e=>`Deactivate Workflow "${e?.name}"? Requests will fall back to the next active Workflow for this scope.`,sq=e=>`Dezaktywować Workflow „${e?.name}”? Requesty użyją następnego aktywnego Workflow dla tego zakresu.`,cq=((e,t={})=>(t.locale??Y())===`pl`?sq(e):oq(e)),lq=()=>`Workflow deactivated.`,uq=()=>`Workflow został dezaktywowany.`,dq=((e={},t={})=>(t.locale??Y())===`pl`?uq(e):lq(e)),fq=()=>`On`,pq=()=>`Włączony`,mq=((e={},t={})=>(t.locale??Y())===`pl`?pq(e):fq(e)),hq=()=>`Off`,gq=()=>`Wyłączony`,_q=((e={},t={})=>(t.locale??Y())===`pl`?gq(e):hq(e)),vq=()=>`None`,yq=()=>`Brak`,bq=((e={},t={})=>(t.locale??Y())===`pl`?yq(e):vq(e)),xq=e=>`${e?.count} steps`,Sq=e=>`Kroki: ${e?.count}`,Cq=((e,t={})=>(t.locale??Y())===`pl`?Sq(e):xq(e)),wq=()=>`1 step`,Tq=()=>`1 krok`,Eq=((e={},t={})=>(t.locale??Y())===`pl`?Tq(e):wq(e)),Dq=e=>`step ${e?.number}`,Oq=e=>`krok ${e?.number}`,kq=((e,t={})=>(t.locale??Y())===`pl`?Oq(e):Dq(e)),Aq=e=>`Deactivate Workflow ${e?.name}`,jq=e=>`Dezaktywuj Workflow ${e?.name}`,Mq=((e,t={})=>(t.locale??Y())===`pl`?jq(e):Aq(e)),Nq=()=>`Deactivate active Workflow`,Pq=()=>`Dezaktywuj aktywny Workflow`,Fq=((e={},t={})=>(t.locale??Y())===`pl`?Pq(e):Nq(e)),Iq=()=>`The global Workflow cannot be deactivated.`,Lq=()=>`Globalnego Workflow nie można dezaktywować.`,Rq=((e={},t={})=>(t.locale??Y())===`pl`?Lq(e):Iq(e)),zq=()=>`Deactivating...`,Bq=()=>`Dezaktywowanie...`,Vq=((e={},t={})=>(t.locale??Y())===`pl`?Bq(e):zq(e)),Hq=()=>`Deactivate`,Uq=()=>`Dezaktywuj`,Wq=((e={},t={})=>(t.locale??Y())===`pl`?Uq(e):Hq(e)),Gq=e=>`Edit Workflow ${e?.name}`,Kq=e=>`Edytuj Workflow ${e?.name}`,qq=((e,t={})=>(t.locale??Y())===`pl`?Kq(e):Gq(e)),Jq=e=>`version: v${e?.version}`,Yq=e=>`wersja: v${e?.version}`,Xq=((e,t={})=>(t.locale??Y())===`pl`?Yq(e):Jq(e)),Zq=e=>`created: ${e?.date}`,Qq=e=>`utworzono: ${e?.date}`,$q=((e,t={})=>(t.locale??Y())===`pl`?Qq(e):Zq(e)),eJ=e=>`hash: ${e?.hash}`,tJ=e=>`hash: ${e?.hash}`,nJ=((e,t={})=>(t.locale??Y())===`pl`?tJ(e):eJ(e)),rJ=()=>`Provider Name + Model`,iJ=()=>`Nazwa dostawcy + model`,aJ=((e={},t={})=>(t.locale??Y())===`pl`?iJ(e):rJ(e)),oJ=()=>`Provider Name + Model + Path`,sJ=()=>`Nazwa dostawcy + model + Path`,cJ=((e={},t={})=>(t.locale??Y())===`pl`?sJ(e):oJ(e)),lJ=()=>`Provider Name + Path`,uJ=()=>`Nazwa dostawcy + Path`,dJ=((e={},t={})=>(t.locale??Y())===`pl`?uJ(e):lJ(e)),fJ=()=>`Path`,pJ=()=>`Path`,mJ=((e={},t={})=>(t.locale??Y())===`pl`?pJ(e):fJ(e)),hJ=()=>`Provider Name`,gJ=()=>`Nazwa dostawcy`,_J=((e={},t={})=>(t.locale??Y())===`pl`?gJ(e):hJ(e)),vJ=()=>`Global`,yJ=()=>`Globalny`,bJ=((e={},t={})=>(t.locale??Y())===`pl`?yJ(e):vJ(e)),xJ=()=>`All models`,SJ=()=>`Wszystkie modele`,CJ=((e={},t={})=>(t.locale??Y())===`pl`?SJ(e):xJ(e)),wJ=()=>`Choose a registered provider name.`,TJ=()=>`Wybierz zarejestrowaną nazwę dostawcy.`,EJ=((e={},t={})=>(t.locale??Y())===`pl`?TJ(e):wJ(e)),DJ=()=>`Model selection requires a provider name.`,OJ=()=>`Wybór modelu wymaga nazwy dostawcy.`,kJ=((e={},t={})=>(t.locale??Y())===`pl`?OJ(e):DJ(e)),AJ=()=>`Choose a registered model for the selected provider name.`,jJ=()=>`Wybierz zarejestrowany model dla wybranego dostawcy.`,MJ=((e={},t={})=>(t.locale??Y())===`pl`?jJ(e):AJ(e)),NJ=()=>`Each guardrail step needs a guardrail ref.`,PJ=()=>`Każdy krok Guardrail wymaga referencji Guardrail.`,FJ=((e={},t={})=>(t.locale??Y())===`pl`?PJ(e):NJ(e)),IJ=()=>`Each guardrail step must use a non-negative integer step number.`,LJ=()=>`Każdy krok Guardrail musi mieć nieujemny całkowity numer.`,RJ=((e={},t={})=>(t.locale??Y())===`pl`?LJ(e):IJ(e)),zJ=()=>`Each guardrail ref may appear only once in a workflow.`,BJ=()=>`Każda referencja Guardrail może wystąpić tylko raz w Workflow.`,VJ=((e={},t={})=>(t.locale??Y())===`pl`?BJ(e):zJ(e)),HJ=()=>`Unknown`,UJ=()=>`Nieznany`,WJ=((e={},t={})=>(t.locale??Y())===`pl`?UJ(e):HJ(e)),GJ=()=>`Name is required.`,KJ=()=>`Nazwa jest wymagana.`,qJ=((e={},t={})=>(t.locale??Y())===`pl`?KJ(e):GJ(e)),JJ=()=>`Type is required.`,YJ=()=>`Typ jest wymagany.`,XJ=((e={},t={})=>(t.locale??Y())===`pl`?YJ(e):JJ(e)),ZJ=()=>`Failed to save Guardrail.`,QJ=()=>`Nie udało się zapisać Guardrail.`,$J=((e={},t={})=>(t.locale??Y())===`pl`?QJ(e):ZJ(e)),eY=e=>`Guardrail "${e?.name}" saved.`,tY=e=>`Zapisano Guardrail „${e?.name}”.`,nY=((e,t={})=>(t.locale??Y())===`pl`?tY(e):eY(e)),rY=e=>`Edit Guardrail ${e?.name}`,iY=e=>`Edytuj Guardrail ${e?.name}`,aY=((e,t={})=>(t.locale??Y())===`pl`?iY(e):rY(e)),oY=e=>`Delete Guardrail ${e?.name}`,sY=e=>`Usuń Guardrail ${e?.name}`,cY=((e,t={})=>(t.locale??Y())===`pl`?sY(e):oY(e)),lY=e=>`Deleting Guardrail ${e?.name}`,uY=e=>`Usuwanie Guardrail ${e?.name}`,dY=((e,t={})=>(t.locale??Y())===`pl`?uY(e):lY(e)),fY=e=>`Delete Guardrail "${e?.name}"? Workflows that still reference it must be updated first.`,pY=e=>`Usunąć Guardrail „${e?.name}”? Workflows, które nadal się do niego odwołują, muszą zostać najpierw zaktualizowane.`,mY=((e,t={})=>(t.locale??Y())===`pl`?pY(e):fY(e)),hY=()=>`Failed to delete Guardrail.`,gY=()=>`Nie udało się usunąć Guardrail.`,_Y=((e={},t={})=>(t.locale??Y())===`pl`?gY(e):hY(e)),vY=e=>`Guardrail "${e?.name}" deleted.`,yY=e=>`Usunięto Guardrail „${e?.name}”.`,zme=((e,t={})=>(t.locale??Y())===`pl`?yY(e):vY(e)),Bme=e=>`Rule scope: ${e?.scope}`,Vme=e=>`Zakres reguły: ${e?.scope}`,Hme=((e,t={})=>(t.locale??Y())===`pl`?Vme(e):Bme(e)),Ume=()=>`Declared in configuration; read-only in the dashboard`,Wme=()=>`Zadeklarowano w konfiguracji; tylko do odczytu w dashboardzie`,Gme=((e={},t={})=>(t.locale??Y())===`pl`?Wme(e):Ume(e)),Kme=()=>`Managed via dashboard or admin API`,qme=()=>`Zarządzane przez dashboard lub admin API`,Jme=((e={},t={})=>(t.locale??Y())===`pl`?qme(e):Kme(e)),Yme=()=>`Edit rate limit`,Xme=()=>`Edytuj Rate Limit`,Zme=((e={},t={})=>(t.locale??Y())===`pl`?Xme(e):Yme(e)),Qme=()=>`Resetting counters`,$me=()=>`Resetowanie liczników`,ehe=((e={},t={})=>(t.locale??Y())===`pl`?$me(e):Qme(e)),the=()=>`Reset counters`,nhe=()=>`Resetuj liczniki`,rhe=((e={},t={})=>(t.locale??Y())===`pl`?nhe(e):the(e)),ihe=()=>`Resetting`,ahe=()=>`Resetowanie`,ohe=((e={},t={})=>(t.locale??Y())===`pl`?ahe(e):ihe(e)),she=()=>`Reset`,che=()=>`Resetuj`,lhe=((e={},t={})=>(t.locale??Y())===`pl`?che(e):she(e)),uhe=()=>`Deleting rate limit`,dhe=()=>`Usuwanie Rate Limitu`,fhe=((e={},t={})=>(t.locale??Y())===`pl`?dhe(e):uhe(e)),phe=()=>`Delete rate limit`,mhe=()=>`Usuń Rate Limit`,hhe=((e={},t={})=>(t.locale??Y())===`pl`?mhe(e):phe(e)),ghe=()=>`Deleting`,_he=()=>`Usuwanie`,vhe=((e={},t={})=>(t.locale??Y())===`pl`?_he(e):ghe(e)),yhe=()=>`Delete`,bhe=()=>`Usuń`,xhe=((e={},t={})=>(t.locale??Y())===`pl`?bhe(e):yhe(e)),She=e=>`${e?.used} of ${e?.limit} in flight`,Che=e=>`${e?.used} z ${e?.limit} w toku`,bY=((e,t={})=>(t.locale??Y())===`pl`?Che(e):She(e)),whe=e=>`${e?.used} of ${e?.limit} requests`,The=e=>`${e?.used} z ${e?.limit} Request'ów`,xY=((e,t={})=>(t.locale??Y())===`pl`?The(e):whe(e)),Ehe=e=>`${e?.used} of ${e?.limit} tokens`,Dhe=e=>`${e?.used} z ${e?.limit} tokenów`,SY=((e,t={})=>(t.locale??Y())===`pl`?Dhe(e):Ehe(e)),Ohe=e=>`${e?.count} left`,khe=e=>`Pozostało: ${e?.count}`,CY=((e,t={})=>(t.locale??Y())===`pl`?khe(e):Ohe(e)),Ahe=()=>`Unable to load rate limits.`,jhe=()=>`Nie udało się wczytać Rate Limitów.`,Mhe=((e={},t={})=>(t.locale??Y())===`pl`?jhe(e):Ahe(e)),Nhe=()=>`Unable to save rate limit.`,Phe=()=>`Nie udało się zapisać Rate Limitu.`,Fhe=((e={},t={})=>(t.locale??Y())===`pl`?Phe(e):Nhe(e)),Ihe=()=>`Rate limit moved; Live counters restarted.`,Lhe=()=>`Rate Limit został przeniesiony; liczniki Live zresetowano.`,Rhe=((e={},t={})=>(t.locale??Y())===`pl`?Lhe(e):Ihe(e)),zhe=()=>`Rate limit saved.`,Bhe=()=>`Zapisano Rate Limit.`,Vhe=((e={},t={})=>(t.locale??Y())===`pl`?Bhe(e):zhe(e)),Hhe=()=>`The new rule was saved, but the previous one could not be removed. Delete it manually.`,Uhe=()=>`Nowa reguła została zapisana, ale poprzedniej nie udało się usunąć. Usuń ją ręcznie.`,Whe=((e={},t={})=>(t.locale??Y())===`pl`?Uhe(e):Hhe(e)),Ghe=()=>`Unable to delete rate limit.`,Khe=()=>`Nie udało się usunąć Rate Limitu.`,qhe=((e={},t={})=>(t.locale??Y())===`pl`?Khe(e):Ghe(e)),Jhe=()=>`Rate limit deleted.`,Yhe=()=>`Usunięto Rate Limit.`,Xhe=((e={},t={})=>(t.locale??Y())===`pl`?Yhe(e):Jhe(e)),Zhe=()=>`Unable to reset rate limit.`,Qhe=()=>`Nie udało się zresetować Rate Limitu.`,$he=((e={},t={})=>(t.locale??Y())===`pl`?Qhe(e):Zhe(e)),ege=()=>`Rate limit counters reset.`,tge=()=>`Zresetowano liczniki Rate Limitu.`,nge=((e={},t={})=>(t.locale??Y())===`pl`?tge(e):ege(e)),rge=()=>`User path`,ige=()=>`User Path`,age=((e={},t={})=>(t.locale??Y())===`pl`?ige(e):rge(e)),oge=()=>`user path`,sge=()=>`User Path`,cge=((e={},t={})=>(t.locale??Y())===`pl`?sge(e):oge(e)),lge=()=>`Provider`,uge=()=>`Dostawca`,dge=((e={},t={})=>(t.locale??Y())===`pl`?uge(e):lge(e)),fge=()=>`provider`,pge=()=>`dostawca`,mge=((e={},t={})=>(t.locale??Y())===`pl`?pge(e):fge(e)),hge=()=>`Provider Name`,gge=()=>`Nazwa dostawcy`,_ge=((e={},t={})=>(t.locale??Y())===`pl`?gge(e):hge(e)),vge=()=>`Model`,yge=()=>`Model`,wY=((e={},t={})=>(t.locale??Y())===`pl`?yge(e):vge(e)),bge=()=>`model`,xge=()=>`model`,Sge=((e={},t={})=>(t.locale??Y())===`pl`?xge(e):bge(e)),Cge=()=>`Per minute`,wge=()=>`Na minutę`,Tge=((e={},t={})=>(t.locale??Y())===`pl`?wge(e):Cge(e)),Ege=()=>`Per hour`,Dge=()=>`Na godzinę`,Oge=((e={},t={})=>(t.locale??Y())===`pl`?Dge(e):Ege(e)),kge=()=>`Per day`,Age=()=>`Na dzień`,jge=((e={},t={})=>(t.locale??Y())===`pl`?Age(e):kge(e)),Mge=()=>`Concurrent (in-flight)`,Nge=()=>`Równoczesne (w toku)`,Pge=((e={},t={})=>(t.locale??Y())===`pl`?Nge(e):Mge(e)),Fge=()=>`Custom seconds`,Ige=()=>`Niestandardowa liczba sekund`,Lge=((e={},t={})=>(t.locale??Y())===`pl`?Ige(e):Fge(e)),Rge=()=>`Period seconds is required.`,zge=()=>`Liczba sekund okresu jest wymagana.`,Bge=((e={},t={})=>(t.locale??Y())===`pl`?zge(e):Rge(e)),Vge=e=>`${e?.field} is required.`,Hge=e=>`Pole ${e?.field} jest wymagane.`,Uge=((e,t={})=>(t.locale??Y())===`pl`?Hge(e):Vge(e)),Wge=()=>`Period seconds must be a positive integer (0 only for the concurrent period).`,Gge=()=>`Liczba sekund okresu musi być dodatnią liczbą całkowitą (0 tylko dla okresu równoczesnego).`,Kge=((e={},t={})=>(t.locale??Y())===`pl`?Gge(e):Wge(e)),qge=()=>`Set max requests, max tokens, or both.`,Jge=()=>`Ustaw maksymalną liczbę Request'ów, tokenów lub oba limity.`,Yge=((e={},t={})=>(t.locale??Y())===`pl`?Jge(e):qge(e)),Xge=()=>`Token limits are not valid for the concurrent period.`,Zge=()=>`Limit tokenów nie jest dostępny dla okresu równoczesnego.`,Qge=((e={},t={})=>(t.locale??Y())===`pl`?Zge(e):Xge(e)),$ge=()=>`Max requests must be a positive integer.`,e_e=()=>`Maksymalna liczba Request'ów musi być dodatnią liczbą całkowitą.`,t_e=((e={},t={})=>(t.locale??Y())===`pl`?e_e(e):$ge(e)),n_e=()=>`Max tokens must be a positive integer.`,r_e=()=>`Maksymalna liczba tokenów musi być dodatnią liczbą całkowitą.`,i_e=((e={},t={})=>(t.locale??Y())===`pl`?r_e(e):n_e(e)),a_e=()=>`Model limits`,o_e=()=>`Rate Limity modelu`,s_e=((e={},t={})=>(t.locale??Y())===`pl`?o_e(e):a_e(e)),c_e=e=>`Provider limits (${e?.provider})`,l_e=e=>`Rate Limity dostawcy (${e?.provider})`,u_e=((e,t={})=>(t.locale??Y())===`pl`?l_e(e):c_e(e)),d_e=()=>`Shared by every model routed to this provider.`,f_e=()=>`Współdzielone przez wszystkie modele kierowane do tego dostawcy.`,p_e=((e={},t={})=>(t.locale??Y())===`pl`?f_e(e):d_e(e)),m_e=()=>`Global limits`,h_e=()=>`Globalne Rate Limity`,g_e=((e={},t={})=>(t.locale??Y())===`pl`?h_e(e):m_e(e)),__e=()=>`Root User Path rules throttle all traffic. Narrower User Path rules also apply, per consumer.`,v_e=()=>`Reguły głównego User Path ograniczają cały ruch. Węższe reguły User Path również obowiązują dla danego klienta.`,y_e=((e={},t={})=>(t.locale??Y())===`pl`?v_e(e):__e(e)),b_e=e=>`Rate limits for ${e?.subject}`,x_e=e=>`Rate Limity dla ${e?.subject}`,S_e=((e,t={})=>(t.locale??Y())===`pl`?x_e(e):b_e(e)),C_e=()=>`direct limits configured`,w_e=()=>`skonfigurowano bezpośrednie Rate Limity`,T_e=((e={},t={})=>(t.locale??Y())===`pl`?w_e(e):C_e(e)),E_e=()=>`inherited limits apply`,D_e=()=>`obowiązują dziedziczone Rate Limity`,O_e=((e={},t={})=>(t.locale??Y())===`pl`?D_e(e):E_e(e)),k_e=()=>`Unable to load virtual models.`,A_e=()=>`Nie udało się wczytać modeli wirtualnych.`,j_e=((e={},t={})=>(t.locale??Y())===`pl`?A_e(e):k_e(e)),M_e=()=>`Failed to update alias state.`,N_e=()=>`Nie udało się zaktualizować stanu aliasu.`,TY=((e={},t={})=>(t.locale??Y())===`pl`?N_e(e):M_e(e)),P_e=()=>`Alias enabled.`,F_e=()=>`Alias został włączony.`,I_e=((e={},t={})=>(t.locale??Y())===`pl`?F_e(e):P_e(e)),L_e=()=>`Alias disabled.`,R_e=()=>`Alias został wyłączony.`,z_e=((e={},t={})=>(t.locale??Y())===`pl`?R_e(e):L_e(e)),B_e=()=>`Failed to update model access.`,V_e=()=>`Nie udało się zaktualizować dostępu do modelu.`,EY=((e={},t={})=>(t.locale??Y())===`pl`?V_e(e):B_e(e)),H_e=()=>`Model enabled.`,U_e=()=>`Model został włączony.`,W_e=((e={},t={})=>(t.locale??Y())===`pl`?U_e(e):H_e(e)),G_e=()=>`Model disabled.`,K_e=()=>`Model został wyłączony.`,q_e=((e={},t={})=>(t.locale??Y())===`pl`?K_e(e):G_e(e)),J_e=()=>`Failed to remove virtual model.`,Y_e=()=>`Nie udało się usunąć modelu wirtualnego.`,DY=((e={},t={})=>(t.locale??Y())===`pl`?Y_e(e):J_e(e)),X_e=()=>`Virtual model removed.`,Z_e=()=>`Usunięto model wirtualny.`,OY=((e={},t={})=>(t.locale??Y())===`pl`?Z_e(e):X_e(e)),Q_e=()=>`Failed to remove redirect.`,$_e=()=>`Nie udało się usunąć przekierowania.`,eve=((e={},t={})=>(t.locale??Y())===`pl`?$_e(e):Q_e(e)),tve=()=>`Redirect removed. Other virtual model settings were preserved.`,nve=()=>`Usunięto przekierowanie. Pozostałe ustawienia modelu wirtualnego zostały zachowane.`,rve=((e={},t={})=>(t.locale??Y())===`pl`?nve(e):tve(e)),ive=()=>`This virtual model is managed by configuration and cannot be edited here.`,ave=()=>`Ten model wirtualny jest zarządzany przez konfigurację i nie można go tutaj edytować.`,ove=((e={},t={})=>(t.locale??Y())===`pl`?ave(e):ive(e)),sve=()=>`This virtual model is managed by configuration and cannot be removed here.`,cve=()=>`Ten model wirtualny jest zarządzany przez konfigurację i nie można go tutaj usunąć.`,lve=((e={},t={})=>(t.locale??Y())===`pl`?cve(e):sve(e)),uve=()=>`Source is required.`,dve=()=>`Źródło jest wymagane.`,fve=((e={},t={})=>(t.locale??Y())===`pl`?dve(e):uve(e)),pve=()=>`Choose a different Source or edit the existing virtual model.`,mve=()=>`Wybierz inne Źródło lub edytuj istniejący model wirtualny.`,hve=((e={},t={})=>(t.locale??Y())===`pl`?mve(e):pve(e)),gve=()=>`Choose a different Source to avoid masking an existing model.`,_ve=()=>`Wybierz inne Źródło, aby nie przesłaniać istniejącego modelu.`,kY=((e={},t={})=>(t.locale??Y())===`pl`?_ve(e):gve(e)),vve=()=>`Failed to save virtual model.`,yve=()=>`Nie udało się zapisać modelu wirtualnego.`,AY=((e={},t={})=>(t.locale??Y())===`pl`?yve(e):vve(e)),bve=()=>`Alias saved.`,xve=()=>`Zapisano alias.`,Sve=((e={},t={})=>(t.locale??Y())===`pl`?xve(e):bve(e)),Cve=()=>`Model access reset to inherited/default.`,wve=()=>`Przywrócono dziedziczony/domyślny dostęp do modelu.`,Tve=((e={},t={})=>(t.locale??Y())===`pl`?wve(e):Cve(e)),Eve=()=>`Model access saved.`,Dve=()=>`Zapisano dostęp do modelu.`,Ove=((e={},t={})=>(t.locale??Y())===`pl`?Dve(e):Eve(e)),kve=()=>`Round-robin (rotate across targets; honors weights)`,Ave=()=>`Round-robin (rotacja między celami z uwzględnieniem wag)`,jve=((e={},t={})=>(t.locale??Y())===`pl`?Ave(e):kve(e)),Mve=()=>`Lowest cost (cheapest target per request)`,Nve=()=>`Najniższy koszt (najtańszy cel dla Requestu)`,Pve=((e={},t={})=>(t.locale??Y())===`pl`?Nve(e):Mve(e)),Fve=()=>`Adaptive (target chosen by the registered routing extension)`,Ive=()=>`Adaptive (cel wybierany przez zarejestrowane rozszerzenie routingu)`,Lve=((e={},t={})=>(t.locale??Y())===`pl`?Ive(e):Fve(e)),Rve=()=>`Invalid`,zve=()=>`Nieprawidłowy`,jY=((e={},t={})=>(t.locale??Y())===`pl`?zve(e):Rve(e)),Bve=()=>`Active`,Vve=()=>`Aktywny`,Hve=((e={},t={})=>(t.locale??Y())===`pl`?Vve(e):Bve(e)),Uve=()=>`Unassigned`,Wve=()=>`Nieprzypisany`,Gve=((e={},t={})=>(t.locale??Y())===`pl`?Wve(e):Uve(e)),Kve=()=>`Unable to load model pricing overrides.`,qve=()=>`Nie udało się wczytać nadpisań cen modeli.`,Jve=((e={},t={})=>(t.locale??Y())===`pl`?qve(e):Kve(e)),Yve=()=>`All providers and models`,Xve=()=>`Wszyscy dostawcy i modele`,MY=((e={},t={})=>(t.locale??Y())===`pl`?Xve(e):Yve(e)),Zve=e=>`All models in ${e?.provider}`,Qve=e=>`Wszystkie modele dostawcy ${e?.provider}`,$ve=((e,t={})=>(t.locale??Y())===`pl`?Qve(e):Zve(e)),eye=()=>`Provider`,tye=()=>`Dostawca`,nye=((e={},t={})=>(t.locale??Y())===`pl`?tye(e):eye(e)),rye=()=>`This provider and model`,iye=()=>`Ten dostawca i model`,aye=((e={},t={})=>(t.locale??Y())===`pl`?iye(e):rye(e)),oye=()=>`This model across providers`,sye=()=>`Ten model u wszystkich dostawców`,cye=((e={},t={})=>(t.locale??Y())===`pl`?sye(e):oye(e)),lye=()=>`Pricing`,uye=()=>`Ceny`,dye=((e={},t={})=>(t.locale??Y())===`pl`?uye(e):lye(e)),fye=()=>`Model pricing selector is required.`,pye=()=>`Selektor cen modelu jest wymagany.`,mye=((e={},t={})=>(t.locale??Y())===`pl`?pye(e):fye(e)),hye=()=>`Model pricing overrides feature is unavailable.`,gye=()=>`Funkcja nadpisywania cen modeli jest niedostępna.`,NY=((e={},t={})=>(t.locale??Y())===`pl`?gye(e):hye(e)),_ye=()=>`Failed to save model pricing.`,vye=()=>`Nie udało się zapisać cen modelu.`,PY=((e={},t={})=>(t.locale??Y())===`pl`?vye(e):_ye(e)),yye=()=>`Model pricing saved.`,bye=()=>`Zapisano ceny modelu.`,xye=((e={},t={})=>(t.locale??Y())===`pl`?bye(e):yye(e)),Sye=()=>`Failed to remove model pricing override.`,Cye=()=>`Nie udało się usunąć nadpisania cen modelu.`,FY=((e={},t={})=>(t.locale??Y())===`pl`?Cye(e):Sye(e)),wye=()=>`Model pricing override removed.`,Tye=()=>`Usunięto nadpisanie cen modelu.`,Eye=((e={},t={})=>(t.locale??Y())===`pl`?Tye(e):wye(e)),Dye=()=>`Input $/MTok`,Oye=()=>`Wejście $/MTok`,kye=((e={},t={})=>(t.locale??Y())===`pl`?Oye(e):Dye(e)),Aye=()=>`Output $/MTok`,jye=()=>`Wyjście $/MTok`,Mye=((e={},t={})=>(t.locale??Y())===`pl`?jye(e):Aye(e)),Nye=()=>`Cached input $/MTok`,Pye=()=>`Wejście z cache $/MTok`,Fye=((e={},t={})=>(t.locale??Y())===`pl`?Pye(e):Nye(e)),Iye=()=>`Cache write $/MTok`,Lye=()=>`Zapis cache $/MTok`,Rye=((e={},t={})=>(t.locale??Y())===`pl`?Lye(e):Iye(e)),zye=()=>`Reasoning output $/MTok`,Bye=()=>`Wyjście reasoning $/MTok`,Vye=((e={},t={})=>(t.locale??Y())===`pl`?Bye(e):zye(e)),Hye=()=>`Batch input $/MTok`,Uye=()=>`Wejście Batch $/MTok`,Wye=((e={},t={})=>(t.locale??Y())===`pl`?Uye(e):Hye(e)),Gye=()=>`Batch output $/MTok`,Kye=()=>`Wyjście Batch $/MTok`,qye=((e={},t={})=>(t.locale??Y())===`pl`?Kye(e):Gye(e)),Jye=()=>`Audio input $/MTok`,Yye=()=>`Wejście Audio $/MTok`,Xye=((e={},t={})=>(t.locale??Y())===`pl`?Yye(e):Jye(e)),Zye=()=>`Audio output $/MTok`,Qye=()=>`Wyjście Audio $/MTok`,$ye=((e={},t={})=>(t.locale??Y())===`pl`?Qye(e):Zye(e)),ebe=()=>`$/Image`,tbe=()=>`$/obraz`,nbe=((e={},t={})=>(t.locale??Y())===`pl`?tbe(e):ebe(e)),rbe=()=>`Input $/Image`,ibe=()=>`Wejście $/obraz`,abe=((e={},t={})=>(t.locale??Y())===`pl`?ibe(e):rbe(e)),obe=()=>`Input $/Second`,sbe=()=>`Wejście $/sekundę`,cbe=((e={},t={})=>(t.locale??Y())===`pl`?sbe(e):obe(e)),lbe=()=>`Output $/Second`,ube=()=>`Wyjście $/sekundę`,dbe=((e={},t={})=>(t.locale??Y())===`pl`?ube(e):lbe(e)),fbe=()=>`$/Character`,pbe=()=>`$/znak`,mbe=((e={},t={})=>(t.locale??Y())===`pl`?pbe(e):fbe(e)),hbe=()=>`$/Page`,gbe=()=>`$/stronę`,_be=((e={},t={})=>(t.locale??Y())===`pl`?gbe(e):hbe(e)),vbe=()=>`$/Request`,ybe=()=>`$/Request`,bbe=((e={},t={})=>(t.locale??Y())===`pl`?ybe(e):vbe(e)),xbe=()=>`Tokens`,Sbe=()=>`Tokeny`,IY=((e={},t={})=>(t.locale??Y())===`pl`?Sbe(e):xbe(e)),Cbe=()=>`Batch`,wbe=()=>`Batch`,LY=((e={},t={})=>(t.locale??Y())===`pl`?wbe(e):Cbe(e)),Tbe=()=>`Audio`,Ebe=()=>`Audio`,RY=((e={},t={})=>(t.locale??Y())===`pl`?Ebe(e):Tbe(e)),Dbe=()=>`Image`,Obe=()=>`Obraz`,zY=((e={},t={})=>(t.locale??Y())===`pl`?Obe(e):Dbe(e)),kbe=()=>`Audio/Video`,Abe=()=>`Audio/Wideo`,jbe=((e={},t={})=>(t.locale??Y())===`pl`?Abe(e):kbe(e)),Mbe=()=>`Video`,Nbe=()=>`Wideo`,Pbe=((e={},t={})=>(t.locale??Y())===`pl`?Nbe(e):Mbe(e)),Fbe=()=>`Utility`,Ibe=()=>`Narzędziowe`,BY=((e={},t={})=>(t.locale??Y())===`pl`?Ibe(e):Fbe(e)),Lbe=()=>`Model registry`,Rbe=()=>`Rejestr modeli`,VY=((e={},t={})=>(t.locale??Y())===`pl`?Rbe(e):Lbe(e)),zbe=()=>`Unknown`,Bbe=()=>`Nieznane`,Vbe=((e={},t={})=>(t.locale??Y())===`pl`?Bbe(e):zbe(e)),Hbe=()=>`Dashboard/API override`,Ube=()=>`Nadpisanie Dashboard/API`,Wbe=((e={},t={})=>(t.locale??Y())===`pl`?Ube(e):Hbe(e)),Gbe=e=>`Dashboard/API override (${e?.selector})`,Kbe=e=>`Nadpisanie Dashboard/API (${e?.selector})`,qbe=((e,t={})=>(t.locale??Y())===`pl`?Kbe(e):Gbe(e)),Jbe=()=>`Choose a price type for every row.`,Ybe=()=>`Wybierz typ ceny dla każdego wiersza.`,Xbe=((e={},t={})=>(t.locale??Y())===`pl`?Ybe(e):Jbe(e)),Zbe=()=>`Each price type can only be used once.`,Qbe=()=>`Każdy typ ceny może zostać użyty tylko raz.`,$be=((e={},t={})=>(t.locale??Y())===`pl`?Qbe(e):Zbe(e)),exe=e=>`Enter a value for ${e?.field}.`,txe=e=>`Wprowadź wartość dla: ${e?.field}.`,nxe=((e,t={})=>(t.locale??Y())===`pl`?txe(e):exe(e)),rxe=()=>`Pricing values must be numbers greater than or equal to 0.`,ixe=()=>`Ceny muszą być liczbami większymi lub równymi 0.`,axe=((e={},t={})=>(t.locale??Y())===`pl`?ixe(e):rxe(e)),oxe=()=>`Add at least one pricing field before saving.`,sxe=()=>`Przed zapisem dodaj co najmniej jedno pole ceny.`,cxe=((e={},t={})=>(t.locale??Y())===`pl`?sxe(e):oxe(e)),lxe=()=>`Form/API value`,uxe=()=>`Wartość Form/API`,dxe=((e={},t={})=>(t.locale??Y())===`pl`?uxe(e):lxe(e)),fxe=()=>`Unset`,pxe=()=>`Nieustawione`,HY=((e={},t={})=>(t.locale??Y())===`pl`?pxe(e):fxe(e)),mxe=()=>`Unable to load Failover mappings.`,hxe=()=>`Nie udało się wczytać mapowań Failover.`,gxe=((e={},t={})=>(t.locale??Y())===`pl`?hxe(e):mxe(e)),_xe=()=>`Primary model is required.`,vxe=()=>`Model główny jest wymagany.`,UY=((e={},t={})=>(t.locale??Y())===`pl`?vxe(e):_xe(e)),yxe=()=>`Add at least one Failover target.`,bxe=()=>`Dodaj co najmniej jeden cel Failover.`,xxe=((e={},t={})=>(t.locale??Y())===`pl`?bxe(e):yxe(e)),Sxe=()=>`Failed to save Failover mapping.`,Cxe=()=>`Nie udało się zapisać mapowania Failover.`,WY=((e={},t={})=>(t.locale??Y())===`pl`?Cxe(e):Sxe(e)),wxe=()=>`Failover mapping saved.`,Txe=()=>`Zapisano mapowanie Failover.`,Exe=((e={},t={})=>(t.locale??Y())===`pl`?Txe(e):wxe(e)),Dxe=e=>`Remove Failover mapping for "${e?.source}"?`,Oxe=e=>`Usunąć mapowanie Failover dla „${e?.source}”?`,kxe=((e,t={})=>(t.locale??Y())===`pl`?Oxe(e):Dxe(e)),Axe=()=>`Failed to remove Failover mapping.`,jxe=()=>`Nie udało się usunąć mapowania Failover.`,GY=((e={},t={})=>(t.locale??Y())===`pl`?jxe(e):Axe(e)),Mxe=()=>`Failover mapping removed.`,Nxe=()=>`Usunięto mapowanie Failover.`,Pxe=((e={},t={})=>(t.locale??Y())===`pl`?Nxe(e):Mxe(e)),Fxe=()=>`Failed to generate Failover mapping.`,Ixe=()=>`Nie udało się wygenerować mapowania Failover.`,KY=((e={},t={})=>(t.locale??Y())===`pl`?Ixe(e):Fxe(e)),Lxe=()=>`No Failover suggestions were generated for this model.`,Rxe=()=>`Nie wygenerowano propozycji Failover dla tego modelu.`,zxe=((e={},t={})=>(t.locale??Y())===`pl`?Rxe(e):Lxe(e)),Bxe=e=>Ao(`en`,e?.count,{})===`one`?`Generated ${e?.count} Fallback model.`:`Generated ${e?.count} Fallback models.`,Vxe=e=>{let t=Ao(`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.`},Hxe=((e,t={})=>(t.locale??Y())===`pl`?Vxe(e):Bxe(e)),Uxe=()=>`Remove Failover models`,Wxe=()=>`Usuń modele Failover`,Gxe=((e={},t={})=>(t.locale??Y())===`pl`?Wxe(e):Uxe(e)),Kxe=()=>`Remove every dashboard-managed Failover mapping. Configuration-managed mappings remain active.`,qxe=()=>`Usuń wszystkie mapowania Failover zarządzane przez dashboard. Mapowania zarządzane przez konfigurację pozostaną aktywne.`,Jxe=((e={},t={})=>(t.locale??Y())===`pl`?qxe(e):Kxe(e)),Yxe=()=>`Remove Failover`,Xxe=()=>`Usuń Failover`,Zxe=((e={},t={})=>(t.locale??Y())===`pl`?Xxe(e):Yxe(e)),Qxe=()=>`Failed to remove Failover mappings.`,$xe=()=>`Nie udało się usunąć mapowań Failover.`,qY=((e={},t={})=>(t.locale??Y())===`pl`?$xe(e):Qxe(e)),eSe=()=>`Dashboard-managed Failover mappings removed.`,tSe=()=>`Usunięto mapowania Failover zarządzane przez dashboard.`,nSe=((e={},t={})=>(t.locale??Y())===`pl`?tSe(e):eSe(e)),rSe=()=>`Failed to generate Failover mappings.`,iSe=()=>`Nie udało się wygenerować mapowań Failover.`,JY=((e={},t={})=>(t.locale??Y())===`pl`?iSe(e):rSe(e)),aSe=e=>`${e?.selected} / ${e?.total} selected`,oSe=e=>`Wybrano ${e?.selected} / ${e?.total}`,sSe=((e,t={})=>(t.locale??Y())===`pl`?oSe(e):aSe(e)),cSe=()=>`Select at least one Failover draft.`,lSe=()=>`Wybierz co najmniej jedną propozycję Failover.`,uSe=((e={},t={})=>(t.locale??Y())===`pl`?lSe(e):cSe(e)),dSe=()=>`Generated Failover draft is missing model data.`,fSe=()=>`Wygenerowana propozycja Failover nie zawiera danych modelu.`,pSe=((e={},t={})=>(t.locale??Y())===`pl`?fSe(e):dSe(e)),mSe=e=>Ao(`en`,e?.count,{})===`one`?`Saved ${e?.count} Failover mapping.`:`Saved ${e?.count} Failover mappings.`,hSe=e=>{let t=Ao(`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.`},gSe=((e,t={})=>(t.locale??Y())===`pl`?hSe(e):mSe(e)),_Se=()=>`Failed to save Failover mappings.`,vSe=()=>`Nie udało się zapisać mapowań Failover.`,ySe=((e={},t={})=>(t.locale??Y())===`pl`?vSe(e):_Se(e)),bSe=e=>`Edit failover for ${e?.model}`,xSe=e=>`Edytuj Failover dla ${e?.model}`,SSe=((e,t={})=>(t.locale??Y())===`pl`?xSe(e):bSe(e)),CSe=e=>`Edit failover for ${e?.model} (active)`,wSe=e=>`Edytuj Failover dla ${e?.model} (aktywny)`,TSe=((e,t={})=>(t.locale??Y())===`pl`?wSe(e):CSe(e)),ESe=()=>`Paste service account JSON`,DSe=()=>`Wklej Service Account JSON`,OSe=((e={},t={})=>(t.locale??Y())===`pl`?DSe(e):ESe(e)),kSe=()=>`Select a provider type.`,ASe=()=>`Wybierz typ dostawcy.`,jSe=((e={},t={})=>(t.locale??Y())===`pl`?ASe(e):kSe(e)),MSe=()=>`Name is required.`,NSe=()=>`Nazwa jest wymagana.`,PSe=((e={},t={})=>(t.locale??Y())===`pl`?NSe(e):MSe(e)),FSe=()=>`Name cannot contain '/' — it separates the provider from the model.`,ISe=()=>`Nazwa nie może zawierać znaku „/” — oddziela on dostawcę od modelu.`,LSe=((e={},t={})=>(t.locale??Y())===`pl`?ISe(e):FSe(e)),RSe=()=>`At least one API key is required for this provider type.`,zSe=()=>`Ten typ dostawcy wymaga co najmniej jednego klucza API.`,BSe=((e={},t={})=>(t.locale??Y())===`pl`?zSe(e):RSe(e)),VSe=()=>`Remove the empty row instead of leaving a key blank.`,HSe=()=>`Usuń pusty wiersz zamiast pozostawiać pusty klucz.`,USe=((e={},t={})=>(t.locale??Y())===`pl`?HSe(e):VSe(e)),WSe=e=>`Include the scheme, e.g. https://${e?.value}`,GSe=e=>`Dodaj schemat, np. https://${e?.value}`,KSe=((e,t={})=>(t.locale??Y())===`pl`?GSe(e):WSe(e)),qSe=()=>`Paste the service account JSON file's contents — this is not valid JSON.`,JSe=()=>`Wklej zawartość pliku Service Account JSON — podana wartość nie jest prawidłowym JSON.`,YSe=((e={},t={})=>(t.locale??Y())===`pl`?JSe(e):qSe(e)),XSe=e=>`Provider "${e?.name}" already exists.`,ZSe=e=>`Dostawca „${e?.name}” już istnieje.`,QSe=((e,t={})=>(t.locale??Y())===`pl`?ZSe(e):XSe(e)),$Se=e=>`${e?.field} is required for this provider type.`,eCe=e=>`Pole ${e?.field} jest wymagane dla tego typu dostawcy.`,tCe=((e,t={})=>(t.locale??Y())===`pl`?eCe(e):$Se(e)),nCe=()=>`Connected`,rCe=()=>`Połączony`,iCe=((e={},t={})=>(t.locale??Y())===`pl`?rCe(e):nCe(e)),aCe=()=>`Degraded`,oCe=()=>`Zdegradowany`,sCe=((e={},t={})=>(t.locale??Y())===`pl`?oCe(e):aCe(e)),cCe=()=>`Connecting`,lCe=()=>`Łączenie`,uCe=((e={},t={})=>(t.locale??Y())===`pl`?lCe(e):cCe(e)),dCe=()=>`Disabled`,fCe=()=>`Wyłączony`,pCe=((e={},t={})=>(t.locale??Y())===`pl`?fCe(e):dCe(e)),mCe=()=>`Optional description`,hCe=()=>`Opcjonalny opis`,gCe=((e={},t={})=>(t.locale??Y())===`pl`?hCe(e):mCe(e)),_Ce=()=>`search_issues, get_file (comma-separated; empty allows all)`,vCe=()=>`search_issues, get_file (oddzielone przecinkami; puste zezwala na wszystkie)`,yCe=((e={},t={})=>(t.locale??Y())===`pl`?vCe(e):_Ce(e)),bCe=()=>`delete_repo (comma-separated)`,xCe=()=>`delete_repo (oddzielone przecinkami)`,SCe=((e={},t={})=>(t.locale??Y())===`pl`?xCe(e):bCe(e)),CCe=()=>`Client`,wCe=()=>`Klient`,TCe=((e={},t={})=>(t.locale??Y())===`pl`?wCe(e):CCe(e)),ECe=()=>`Auth`,DCe=()=>`Uwierzytelnianie`,OCe=((e={},t={})=>(t.locale??Y())===`pl`?DCe(e):ECe(e)),kCe=()=>`Response`,ACe=()=>`Odpowiedź`,jCe=((e={},t={})=>(t.locale??Y())===`pl`?ACe(e):kCe(e)),MCe=()=>`Audit Log`,NCe=()=>`Log audytowy`,PCe=((e={},t={})=>(t.locale??Y())===`pl`?NCe(e):MCe(e)),FCe=()=>`Hit (Semantic)`,ICe=()=>`Trafienie (Semantic)`,LCe=((e={},t={})=>(t.locale??Y())===`pl`?ICe(e):FCe(e)),RCe=()=>`Hit (Exact)`,zCe=()=>`Trafienie (Exact)`,BCe=((e={},t={})=>(t.locale??Y())===`pl`?zCe(e):RCe(e)),VCe=()=>`Exceeded`,HCe=()=>`Przekroczony`,UCe=((e={},t={})=>(t.locale??Y())===`pl`?HCe(e):VCe(e)),WCe=()=>`Redirected`,GCe=()=>`Przekierowano`,KCe=((e={},t={})=>(t.locale??Y())===`pl`?GCe(e):WCe(e)),qCe=e=>`Remove the virtual model alias "${e?.source}"?`,JCe=e=>`Usunąć alias modelu wirtualnego „${e?.source}”?`,YCe=((e,t={})=>(t.locale??Y())===`pl`?JCe(e):qCe(e)),XCe=e=>`Remove the redirect for "${e?.source}"? Other virtual model settings will be preserved.`,ZCe=e=>`Usunąć przekierowanie dla „${e?.source}”? Pozostałe ustawienia modelu wirtualnego zostaną zachowane.`,QCe=((e,t={})=>(t.locale??Y())===`pl`?ZCe(e):XCe(e)),$Ce=e=>`A virtual model named "${e?.name}" already exists. Saving will update that virtual model. Continue?`,ewe=e=>`Model wirtualny „${e?.name}” już istnieje. Zapis zaktualizuje ten model. Kontynuować?`,twe=((e,t={})=>(t.locale??Y())===`pl`?ewe(e):$Ce(e)),nwe=e=>`An access policy for "${e?.source}" already exists. Saving will update that virtual model. Continue?`,rwe=e=>`Polityka dostępu dla „${e?.source}” już istnieje. Zapis zaktualizuje ten model wirtualny. Kontynuować?`,iwe=((e,t={})=>(t.locale??Y())===`pl`?rwe(e):nwe(e)),awe=e=>`A model named "${e?.name}" already exists. Creating this alias will mask that model in the list. Continue?`,owe=e=>`Model „${e?.name}” już istnieje. Utworzenie aliasu przesłoni go na liście. Kontynuować?`,swe=((e,t={})=>(t.locale??Y())===`pl`?owe(e):awe(e)),cwe=e=>`A virtual model for "${e?.source}" already exists. Choose a different Source.`,lwe=e=>`Model wirtualny dla „${e?.source}” już istnieje. Wybierz inne Źródło.`,uwe=((e,t={})=>(t.locale??Y())===`pl`?lwe(e):cwe(e)),dwe=e=>`A model named "${e?.name}" already exists. Renaming to that name will mask the model in the list. Continue?`,fwe=e=>`Model „${e?.name}” już istnieje. Zmiana nazwy przesłoni go na liście. Kontynuować?`,pwe=((e,t={})=>(t.locale??Y())===`pl`?fwe(e):dwe(e)),mwe=e=>`Remove the virtual model for "${e?.source}"? This reverts to inherited/default behavior.`,hwe=e=>`Usunąć model wirtualny dla „${e?.source}”? Przywróci to zachowanie dziedziczone/domyślne.`,gwe=((e,t={})=>(t.locale??Y())===`pl`?hwe(e):mwe(e)),_we=e=>`Remove the model pricing override for "${e?.selector}"?`,vwe=e=>`Usunąć nadpisanie cen modelu dla „${e?.selector}”?`,ywe=((e,t={})=>(t.locale??Y())===`pl`?vwe(e):_we(e)),YY=[[`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`}]],bwe=[[`path`,{d:`M12 5v14`}],[`path`,{d:`m19 12-7 7-7-7`}]],xwe=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]],Swe=[[`path`,{d:`M5 12h14`}],[`path`,{d:`m12 5 7 7-7 7`}]],Cwe=[[`path`,{d:`m5 12 7-7 7 7`}],[`path`,{d:`M12 19V5`}]],XY=[[`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`}]],ZY=[[`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`}]],wwe=[[`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`}]],Twe=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}]],Ewe=[[`path`,{d:`M13 17V9`}],[`path`,{d:`M18 17V5`}],[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M8 17v-3`}]],Dwe=[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M18 17V9`}],[`path`,{d:`M13 17V5`}],[`path`,{d:`M8 17v-3`}]],QY=[[`path`,{d:`M20 6 9 17l-5-5`}]],$Y=[[`path`,{d:`m6 9 6 6 6-6`}]],Owe=[[`path`,{d:`m15 18-6-6 6-6`}]],eX=[[`path`,{d:`m9 18 6-6-6-6`}]],kwe=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`}],[`path`,{d:`m9 11 3 3L22 4`}]],tX=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m9 12 2 2 4-4`}]],nX=[[`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`}]],Awe=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 6v6l4 2`}]],rX=[[`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`}]],iX=[[`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`}]],aX=[[`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`}]],jwe=[[`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`}]],oX=[[`path`,{d:`m12 14 4-4`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`}]],Mwe=[[`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`}]],Nwe=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]],sX=[[`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`}]],Pwe=[[`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`}]],Fwe=[[`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`}]],cX=[[`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`}]],Iwe=[[`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`}]],lX=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`m21 3-7 7`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M9 21H3v-6`}]],Lwe=[[`path`,{d:`m14 10 7-7`}],[`path`,{d:`M20 10h-6V4`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M4 14h6v6`}]],Rwe=[[`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`}]],zwe=[[`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`}]],uX=[[`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`}]],Bwe=[[`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`}]],dX=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]],Vwe=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]],fX=[[`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`}]],pX=[[`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`}]],mX=[[`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`}]],Hwe=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]],Uwe=[[`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`}]],Wwe=[[`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`}]],Gwe=[[`path`,{d:`M14 17H5`}],[`path`,{d:`M19 7h-9`}],[`circle`,{cx:`17`,cy:`17`,r:`3`}],[`circle`,{cx:`7`,cy:`7`,r:`3`}]],Kwe=[[`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`}]],hX=[[`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`}]],qwe=[[`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`}]],Jwe=[[`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`}]],Ywe=[[`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`}]],gX=[[`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`}]],Xwe=[[`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`}]],_X=[[`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`}]],vX=[[`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`}]],Zwe=[[`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`}]],Qwe=[[`circle`,{cx:`12`,cy:`8`,r:`5`}],[`path`,{d:`M20 21a8 8 0 0 0-16 0`}]],$we=[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`}],[`circle`,{cx:`12`,cy:`7`,r:`4`}]],yX=[[`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`}]],bX=[[`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`}]],eTe=[[`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`}]],xX=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]],tTe=V(``),nTe=V(`
`,1);function rTe(e,t){k(t,!0);let n=Ri(t,`compact`,3,!1),r=[{value:`light`,icon:gX,label:XF()},{value:`system`,icon:Rwe,label:$F()},{value:`dark`,icon:zwe,label:nI()}],i=j(()=>r.find(e=>e.value===Ji.theme)||r[1]),a=j(()=>aI({theme:z(i).label}));var o=nTe(),s=I(o);let c;G(s,21,()=>r,e=>e.value,(e,t)=>{var n=tTe();let r;J(F(n),{get icon(){return z(t).icon},class:`theme-icon`}),O(n),R(()=>{r=K(n,1,`theme-btn svelte-1keql7b`,null,r,{active:Ji.theme===z(t).value}),q(n,`aria-pressed`,Ji.theme===z(t).value),q(n,`title`,z(t).label),q(n,`aria-label`,z(t).label)}),B(`click`,n,()=>Ji.set(z(t).value)),H(e,n)}),O(s);var l=L(s,2);let u;J(F(l),{get icon(){return z(i).icon},class:`theme-icon`}),O(l),R(e=>{c=K(s,1,`theme-toggle svelte-1keql7b`,null,c,{"is-compact":n()}),q(s,`aria-label`,e),u=K(l,1,`theme-toggle-mobile svelte-1keql7b`,null,u,{"is-compact":n()}),q(l,`title`,z(a)),q(l,`aria-label`,z(a))},[()=>qF()]),B(`click`,l,()=>Ji.toggle()),H(e,o),A()}br([`click`]);function SX(){return typeof window>`u`?`/`:window.GOMODEL_BASE_PATH||`/`}function CX(e){let t=SX();return!e||e.charAt(0)!==`/`||e.indexOf(`//`)===0||t===`/`||e===t||e.indexOf(t+`/`)===0?e:t+e}function iTe(e){let t=SX();return t===`/`||!e?e:e===t?`/`:e.indexOf(t+`/`)===0?e.slice(t.length)||`/`:e}function aTe(){return typeof window>`u`?``:window.GOMODEL_VERSION||``}function oTe(){return typeof window>`u`?!1:window.GOMODEL_DEMO_MODE===!0}var sTe=[`overview`,`usage`,`budgets`,`rate-limits`,`models`,`workflows`,`audit-logs`,`guardrails`,`mcp-servers`,`providers-config`,`auth-keys`,`settings`];function cTe(e){return e.startsWith(`/admin/static/`)?`/`+e.slice(14).replace(/^\/+/,``):e}function wX(e){let t=cTe(iTe(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=sTe.includes(n)?n:`overview`,{page:n,sub:r})}var TX=new class{#e=M(`overview`);get page(){return z(this.#e)}set page(e){N(this.#e,e,!0)}#t=M(null);get sub(){return z(this.#t)}set sub(e){N(this.#t,e,!0)}init(){let{page:e,sub:t}=wX(window.location.pathname);this.page=e,this.sub=t,window.addEventListener(`popstate`,()=>{let{page:e,sub:t}=wX(window.location.pathname);this.page=e,this.sub=t})}navigate(e,t=null){let n=t?`/`+t:``;history.pushState(null,``,CX(`/admin/dashboard/`+e+n)),this.page=e,this.sub=t}},EX=`X-GoModel-Auth-Login`,DX=`X-GoModel-Auth-Logout`,OX=`X-GoModel-Auth-User`;function kX(e){let t=String(e||``).trim();return!t.startsWith(`/`)||t.startsWith(`//`)||t.includes(`\\`)?``:t}function lTe(e,t=globalThis.location){let n=kX(e),r=kX(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 uTe(e){let t=e?.headers;if(!t||typeof t.has!=`function`)return null;let n={};return t.has(EX)&&(n.loginURL=kX(t.get(EX))),t.has(DX)&&(n.logoutURL=kX(t.get(DX))),t.has(OX)&&(n.user=String(t.get(OX)||``).trim().slice(0,256)),n}var AX=`gomodel_api_key`;function jX(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 X=new class{#e=M(``);get apiKey(){return z(this.#e)}set apiKey(e){N(this.#e,e,!0)}#t=M(!1);get needsAuth(){return z(this.#t)}set needsAuth(e){N(this.#t,e,!0)}#n=M(!1);get authError(){return z(this.#n)}set authError(e){N(this.#n,e,!0)}#r=M(``);get authErrorMessage(){return z(this.#r)}set authErrorMessage(e){N(this.#r,e,!0)}#i=M(!1);get dialogOpen(){return z(this.#i)}set dialogOpen(e){N(this.#i,e,!0)}#a=M(``);get externalLoginURL(){return z(this.#a)}set externalLoginURL(e){N(this.#a,e,!0)}#o=M(``);get externalLogoutURL(){return z(this.#o)}set externalLogoutURL(e){N(this.#o,e,!0)}#s=M(``);get externalUser(){return z(this.#s)}set externalUser(e){N(this.#s,e,!0)}#c=M(0);get generation(){return z(this.#c)}set generation(e){N(this.#c,e,!0)}#l=M(0);get refreshTick(){return z(this.#l)}set refreshTick(e){N(this.#l,e,!0)}init(){try{this.apiKey=jX(localStorage.getItem(AX)||``)}catch{this.apiKey=``}}hasApiKey(){return jX(this.apiKey)!==``}save(){this.apiKey=jX(this.apiKey);try{localStorage.setItem(AX,this.apiKey)}catch{}}selectExternalAuthentication(){this.apiKey=``;try{localStorage.removeItem(AX)}catch{}this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!0}openDialog(){this.dialogOpen=!0}closeDialog(){this.dialogOpen=!1}submit(){let e=jX(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=uTe(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=HX(`en-CA`,{timeZone:UX(t)?t:RX,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 NX(e)}dateToDateKey(e){return PX(e)}addDaysToDateKey(e,t){return FX(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=UX(e)?e:RX;try{let e=HX(`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=[]}[RX,this.detectedTimezone,this.override].forEach(e=>{e&&t.indexOf(e)===-1&&UX(e)&&t.push(e)}),t=t.filter(e=>UX(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=Ui();if(e)if(this.override&&UX(this.override))try{e.setItem(zX,this.override)}catch{}else{try{e.removeItem(zX)}catch{}this.override=``}this.optionsLoaded=!1,this.ensureOptions()}clearOverride(){let e=Ui();if(e)try{e.removeItem(zX)}catch{}this.override=``}calendarTimeZoneText(){let e=this.override?`manual override`:`auto-detected`;return`Activity grouped by `+this.effectiveTimeZoneLabel()+` (`+e+`)`}};function GX(e,t){let n=e&&typeof e==`object`&&e.error&&e.error.message;return(typeof n==`string`?n.trim():``)||t}function KX(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 pTe(){let e={"Content-Type":`application/json`},t=jX(X.apiKey);return t&&(e.Authorization=`Bearer `+t),e[`X-GoModel-Timezone`]=WX.effectiveTimezone(),e}function qX(e,t={}){return fetch(CX(e),{...t,headers:{...pTe(),...t.headers||{}}})}async function JX(e,t,{label:n=e,parse:r=!0}={}){let i=X.generation,a=await qX(e,t),o=ie.trim()).filter(Boolean);return e.length>0?e:hTe}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 YX(`/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 mTe)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)}}},gTe=[{page:`overview`,label:Ia,icon:Pwe},{page:`providers-config`,label:za,icon:Uwe},{page:`models`,label:Ha,icon:XY},{page:`audit-logs`,label:Ga,icon:Mwe},{page:`usage`,label:Ja,icon:Dwe},{page:`budgets`,label:Za,icon:yX,visible:()=>QX.budgetsVisible()},{page:`rate-limits`,label:eo,icon:oX,visible:()=>QX.rateLimitsVisible()},{page:`auth-keys`,label:ro,icon:sX},{page:`workflows`,label:oo,icon:eTe},{page:`guardrails`,label:lo,icon:hX,visible:()=>QX.guardrailsVisible()},{page:`mcp-servers`,label:po,icon:Bwe,visible:()=>QX.mcpVisible()},{page:`settings`,label:go,icon:Kwe}],_Te=V(` `),vTe=V(`
`),yTe=V(``),bTe=V(`
`),xTe=V(` `,1);function STe(e,t){k(t,!0);let n=j(()=>gTe.filter(e=>!e.visible||e.visible())),r=M(null),i=0,a=0,o=!1;function s(e){e.button===0&&(e.preventDefault(),N(r,e.pointerId,!0),i=e.clientX,a=Yi.width,o=!1,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`sidebar-resizing`))}function c(e){e.pointerId===z(r)&&(!o&&Math.abs(e.clientX-i)<=4||(o=!0,Yi.setWidth(qi(a,i,e.clientX))))}function l(e){z(r)===null||e.pointerId!==void 0&&e.pointerId!==z(r)||(N(r,null),document.body.classList.remove(`sidebar-resizing`),Yi.setWidth(Yi.width,!0))}function u(){if(o){o=!1;return}Yi.toggle()}function d(e){let t;if(e.key===`ArrowLeft`)t=Yi.width-12;else if(e.key===`ArrowRight`)t=Yi.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(),Yi.toggle();return}else return;e.preventDefault(),Yi.setWidth(t,!0)}var f=xTe(),p=I(f);let m;var h=F(p),g=F(h);Hi(F(g),{}),O(g);var _=L(g,4),v=F(_,!0);O(_),O(h);var y=L(h,2);G(y,21,()=>z(n),e=>e.page,(e,t)=>{var n=_Te();let r;var i=F(n);J(i,{get icon(){return z(t).icon},class:`nav-icon`});var a=L(i,2),o=F(a,!0);O(a),O(n),R((e,i,a)=>{q(n,`href`,e),r=K(n,1,`nav-item svelte-1nwtzae`,null,r,{active:TX.page===z(t).page}),q(n,`title`,i),U(o,a)},[()=>CX(`/admin/dashboard/`+z(t).page),()=>z(t).label(),()=>z(t).label()]),B(`click`,n,e=>{e.preventDefault(),TX.navigate(z(t).page)}),H(e,n)}),O(y);var b=L(y,2),x=F(b);rTe(x,{get compact(){return Yi.collapsed}});var S=L(x,2),C=e=>{var t=yTe(),n=F(t),r=e=>{var t=vTe(),n=F(t);J(n,{get icon(){return Qwe},class:`api-key-open-icon`});var r=L(n,2),i=F(r,!0);O(r),O(t),R(()=>{q(t,`title`,X.externalUser),U(i,X.externalUser)}),H(e,t)};W(n,e=>{X.externalUser&&e(r)});var i=L(n,2),a=F(i);J(a,{get icon(){return Iwe},class:`api-key-open-icon`});var o=L(a,2),s=F(o,!0);O(o),O(i),O(t),R((e,t,n)=>{q(i,`href`,e),q(i,`aria-label`,t),U(s,n)},[()=>CX(X.externalLogoutURL),()=>MF(),()=>MF()]),H(e,t)};W(S,e=>{X.externalLogoutURL&&e(C)});var w=L(S,2),T=e=>{var t=bTe(),n=F(t),r=F(n);J(r,{get icon(){return cX},class:`api-key-open-icon`});var i=L(r,2),a=F(i,!0);O(i),O(n),O(t),R((e,t)=>{q(n,`aria-label`,e),U(a,t)},[()=>X.needsAuth?FF():RF(),()=>X.needsAuth?FF():RF()]),B(`click`,n,()=>X.openDialog()),H(e,t)},E=j(()=>X.needsAuth||X.hasApiKey());W(w,e=>{z(E)&&e(T)}),O(b),O(p);var D=L(p,2);R((e,t,n)=>{m=K(p,1,`sidebar svelte-1nwtzae`,null,m,{"sidebar-collapsed":Yi.collapsed,"sidebar-resizing":z(r)!==null}),U(v,e),q(D,`title`,t),q(D,`aria-label`,n),q(D,`aria-valuemin`,60),q(D,`aria-valuemax`,240),q(D,`aria-valuenow`,Yi.width)},[()=>Na(),()=>WF(),()=>VF()]),B(`pointerdown`,D,s),B(`pointermove`,D,c),B(`pointerup`,D,l),yr(`pointercancel`,D,l),yr(`lostpointercapture`,D,l),B(`keydown`,D,d),B(`click`,D,u),H(e,f),A()}br([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var CTe=V(``);function $X(e,t){k(t,!0);let n=Ri(t,`label`,3,`Close`),r=Ri(t,`class`,3,``),i=Ri(t,`iconClass`,3,`table-icon-svg`),a=Ri(t,`disabled`,3,!1),o=Ri(t,`el`,15,null);var s=CTe();J(F(s),{get icon(){return xX},get class(){return i()}}),O(s),Fi(s,e=>o(e),()=>o()),R(()=>{K(s,1,ci([`dialog-close-btn`,r()]),`svelte-11l1bb5`),q(s,`aria-label`,n()),s.disabled=a()}),B(`click`,s,function(...e){t.onclick?.apply(this,e)}),H(e,s),A()}br([`click`]);function wTe(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 TTe(e=`[data-modal-autofocus]`){return t=>{let n=t.querySelector(e);n&&typeof n.focus==`function`&&n.focus()}}var ETe=V(`
`,1);function eZ(e,t){k(t,!0);let n=Ri(t,`open`,3,!1),r=Ri(t,`variant`,3,`editor`),i=Ri(t,`closeOnBackdrop`,3,!0),a=j(()=>r()===`auth`?`auth-dialog-backdrop`:`editor-modal-backdrop`),o=j(()=>r()===`auth`?`auth-dialog-shell`:`editor-modal-shell`);pn(()=>{if(!n())return;let e=ar(()=>Xi.opened()),r=n=>{n.key===`Escape`&&Xi.isTop(e)&&t.onclose?.()};return window.addEventListener(`keydown`,r),()=>{Xi.closed(e),window.removeEventListener(`keydown`,r)}});function s(e){i()&&e.target===e.currentTarget&&t.onclose?.()}var c=Dr(),l=I(c),u=e=>{var n=ETe(),r=I(n),i=L(r,2);Gr(F(i),()=>t.children??f),O(i),oi(i,TTe),R(()=>{K(r,1,ci(z(a)),`svelte-17e0w4c`),K(i,1,ci(z(o)),`svelte-17e0w4c`)}),B(`click`,i,s),H(e,n)};W(l,e=>{n()&&e(u)}),H(e,c),A()}br([`click`]);var DTe=V(`
`,1),OTe=V(``),kTe=V(``);function ATe(e,t){k(t,!0),eZ(e,{get open(){return X.dialogOpen},variant:`auth`,onclose:()=>X.closeDialog(),children:(e,t)=>{var n=kTe(),r=F(n),i=F(r),a=F(i),o=F(a,!0);O(a),O(i);var s=L(i,2);{let e=j(()=>bI());$X(s,{get label(){return z(e)},onclick:()=>X.closeDialog(),class:`auth-dialog-close`,iconClass:``})}O(r);var c=L(r,2),l=F(c),u=e=>{var t=DTe(),n=I(t),r=F(n);J(r,{get icon(){return sX}});var i=L(r,2),a=F(i,!0);O(i),O(n);var o=L(n,2),s=F(o),c=F(s,!0);O(s),O(o),R((e,t,r)=>{q(n,`href`,e),U(a,t),U(c,r)},[()=>lTe(CX(X.externalLoginURL)),()=>CI(),()=>EI()]),B(`click`,n,()=>X.selectExternalAuthentication()),H(e,t)};W(l,e=>{X.externalLoginURL&&e(u)});var d=L(l,2),f=F(d);J(f,{get icon(){return cX},class:`auth-dialog-input-icon`});var p=L(f,2);Ci(p),O(d);var m=L(d,2),h=e=>{var t=OTe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>X.authErrorMessage||FI()]),H(e,t)};W(m,e=>{X.authError&&e(h)});var g=L(m,2),_=F(g,!0);O(g);var v=L(g,2),y=F(v),b=F(y);J(b,{get icon(){return QY},class:`auth-dialog-submit-icon`});var x=L(b,2),S=F(x,!0);O(x),O(y),O(v),O(c),O(n),R((e,t,n,r,i)=>{U(o,e),q(p,`placeholder`,t),q(p,`aria-label`,n),U(_,r),U(S,i)},[()=>X.needsAuth?mI():_I(),()=>MI(),()=>kI(),()=>RI(),()=>X.needsAuth?VI():WI()]),yr(`submit`,c,e=>{e.preventDefault(),X.submit()}),Ai(p,()=>X.apiKey,e=>X.apiKey=e),H(e,n)},$$slots:{default:!0}}),A()}br([`click`]);function tZ(){return{open:!1,title:``,titleId:`typedConfirmationDialogTitle`,inputId:`typed-confirmation-input`,message:``,requiredText:``,value:``,confirmLabel:`Confirm`,icon:Zwe,dialogClass:``,loading:!1,onConfirm:null,onClose:null}}var nZ=new class{#e=M(P(tZ()));get state(){return z(this.#e)}set state(e){N(this.#e,e,!0)}#t=M(``);get error(){return z(this.#t)}set error(e){N(this.#t,e,!0)}open(e){this.error=``,this.state={...tZ(),open:!0,...e||{}}}close(){let e=this.state;typeof e.onClose==`function`&&e.onClose(),this.state=tZ(),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}}}},jTe=V(`

`),MTe=V(``),NTe=V(`

`);function PTe(e,t){k(t,!0);let n=j(()=>nZ.state);eZ(e,{get open(){return z(n).open},variant:`auth`,onclose:()=>nZ.close(),children:(e,t)=>{var r=NTe(),i=F(r),a=F(i),o=F(a,!0);O(a);var s=L(a,2);{let e=j(()=>qI());$X(s,{get label(){return z(e)},onclick:()=>nZ.close(),class:`auth-dialog-close`,iconClass:``})}O(i);var c=L(i,2),l=F(c),u=e=>{var t=jTe(),r=F(t,!0);O(t),R(()=>U(r,z(n).message)),H(e,t)};W(l,e=>{z(n).message&&e(u)});var d=L(l,2),f=F(d),p=F(f,!0);O(f);var m=L(f,2);Ci(m),O(d);var h=L(d,2),g=e=>{var t=MTe(),n=F(t,!0);O(t),R(()=>U(n,nZ.error)),H(e,t)};W(h,e=>{nZ.error&&e(g)});var _=L(h,2),v=F(_),y=F(v,!0);O(v);var b=L(v,2),x=F(b);J(x,{get icon(){return z(n).icon},class:`form-action-icon`});var S=L(x,2),C=F(S,!0);O(S),O(b),O(_),O(c),O(r),R((e,t,i)=>{K(r,1,`auth-dialog ${z(n).dialogClass??``}`),q(r,`aria-labelledby`,z(n).titleId),q(a,`id`,z(n).titleId),U(o,z(n).title),q(f,`for`,z(n).inputId),U(p,e),q(m,`id`,z(n).inputId),U(y,t),b.disabled=i,U(C,z(n).confirmLabel)},[()=>nZ.inputLabel(),()=>wa(),()=>z(n).loading||!nZ.ready()]),yr(`submit`,c,e=>{e.preventDefault(),nZ.submit()}),Ai(m,()=>nZ.state.value,e=>nZ.state.value=e),B(`click`,v,()=>nZ.close()),H(e,r)},$$slots:{default:!0}}),A()}br([`click`]);var FTe=e=>e;function rZ(e){let t=e-1;return t*t*t+1}function iZ(e){let t=typeof e==`string`&&e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);return t?[parseFloat(t[1]),t[2]||`px`]:[e,`px`]}function ITe(e,{delay:t=0,duration:n=400,easing:r=FTe}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function aZ(e,{delay:t=0,duration:n=400,easing:r=rZ,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]=iZ(i),[p,m]=iZ(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 oZ(e,{delay:t=0,duration:n=400,easing:r=rZ,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 LTe(e){return--e*e*(2.70158*e+1.70158)+1}function sZ(e){let t=e-1;return t*t*t+1}var RTe=5e3,zTe=8e3,cZ=new class{#e=M(P([]));get toasts(){return z(this.#e)}set toasts(e){N(this.#e,e,!0)}#t=0;#n=new Map;success(e){this.#r(`success`,e,RTe)}error(e){this.#r(`error`,e,zTe)}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))}},BTe=V(`
`),VTe=V(`
`);function HTe(e,t){k(t,!0);var n=VTe();G(n,21,()=>cZ.toasts,e=>e.id,(e,t)=>{var n=BTe();let r;var i=F(n),a=F(i,!0);O(i);var o=L(i,2);O(n),R(e=>{r=K(n,1,`flash-toast svelte-1i257xg`,null,r,{"flash-toast-success":z(t).kind===`success`,"flash-toast-error":z(t).kind===`error`}),q(n,`role`,z(t).kind===`error`?`alert`:`status`),q(n,`aria-live`,z(t).kind===`error`?`assertive`:`polite`),U(a,z(t).text),q(o,`aria-label`,e)},[()=>XI()]),B(`click`,o,()=>cZ.dismiss(z(t).id)),ii(1,n,()=>aZ,()=>({y:-24,duration:360,easing:LTe})),ii(2,n,()=>ITe,()=>({duration:150})),H(e,n)}),O(n),H(e,n),A()}br([`click`]);var UTe=V(``);function WTe(e,t){k(t,!0);var n=Dr(),r=I(n),i=e=>{var t=UTe(),n=L(F(t),2),r=F(n),i=F(r,!0);O(r);var a=L(r,2),o=F(a,!0);O(a),O(n);var s=L(n,2);O(t),R((e,n,r,a)=>{q(t,`aria-label`,e),U(i,n),U(o,r),q(s,`aria-label`,a)},[()=>$I(),()=>nL(),()=>aL(),()=>cL()]),H(e,t)},a=j(()=>oTe());W(r,e=>{z(a)&&e(i)}),H(e,n),A()}function lZ(e){return String(e||``).split(`,`).map(e=>e.trim()).filter(e=>e)}function uZ(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 dZ(e){return e==null||e===void 0?`-`:e.toLocaleString()}function fZ(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 pZ(e){return e==null||e===void 0?`—`:`$`+e.toFixed(2)}function mZ(e){return e==null||e===void 0?`—`:e<.01?`$`+e.toFixed(6):`$`+e.toFixed(4)}function hZ(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 gZ(e,t){let n=t==null||t===``?NaN:Number(t),r=Number.isFinite(n)?dZ(n):`-`;return String(e||`Tokens`)+`: `+r}function _Z(e){return e?typeof e==`string`?e:e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`):``}function GTe(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 vZ(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 KTe(e){return String(e&&e.provider||``).trim()}function yZ(e){return String(e&&e.provider_name||``).trim()||KTe(e)}function bZ(e,t){let n=String(t||``).trim();if(!n)return`-`;let r=yZ(e);return!r||n===r||n.startsWith(r+`/`)?n:r+`/`+n}function qTe(e){return bZ(e,e&&e.model)}function xZ(e){return bZ(e,e&&e.resolved_model)}function JTe(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=xZ(e);if(n&&n!==`-`&&n!==t)return t+` ⮕ `+n}return t}var SZ=`gomodel_date_range`,CZ=1;function wZ(e){return/^[1-9]\d*$/.test(String(e??``))}function YTe({selectedPreset:e,startKey:t,endKey:n,followsToday:r}){return e&&wZ(e)?{v:CZ,mode:`preset`,days:String(e)}:e?null:IX(t)&&IX(n)?{v:CZ,mode:`custom`,start:t,end:n,follow:r===!0}:null}function XTe(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`?wZ(t.days)?{mode:`preset`,days:String(t.days)}:null:t.mode===`custom`&&IX(t.start)&&IX(t.end)&&t.start<=t.end?{mode:`custom`,start:t.start,end:t.end,follow:t.follow===!0}:null}function ZTe(e,t,n){let r=LX(e,t);return r<1||!IX(n)?{start:e,end:t}:{start:FX(n,-(r-1)),end:n}}var TZ=`gomodel_locale`;xa(`custom-dashboard`,{getLocale:()=>Wi(TZ)||void 0,setLocale:e=>Gi(TZ,e)});function QTe(){let e=Y();document.documentElement.lang=e,document.documentElement.dir=aa(e)}function $Te(e){return typeof Intl.DisplayNames==`function`&&new Intl.DisplayNames([e],{type:`language`}).of(e)||e}function EZ(e,t){return new Intl.NumberFormat(Y(),t).format(e)}function DZ(e,t){return new Intl.DateTimeFormat(Y(),t).format(e)}function OZ(e){return mL({count:Number(e)})}function kZ(e,t){return e===t?bL():DZ(new Date(e+`T00:00:00Z`),{day:`numeric`,month:`short`,year:`numeric`,timeZone:`UTC`})}function eEe({selectedPreset:e,startKey:t,endKey:n,todayKey:r}){if(e)return OZ(e);if(IX(t)&&IX(n)){if(t>n)return OZ(`30`);let e=kZ(t,r);return t===n?e:CL({start:e,end:kZ(n,r)})}return IX(t)?EL({start:kZ(t,r)}):OZ(`30`)}function tEe({selectedPreset:e,startKey:t,endKey:n,followsToday:r,todayKey:i}){if(e)return OZ(e);if(!IX(t)||!IX(n)||t>n)return``;let a=LX(t,n);return r||n===i?a===1?bL():OZ(a):_L({count:a})}function nEe(e){switch(e){case`weekly`:return WL();case`monthly`:return qL();case`yearly`:return XL();default:return VL()}}var rEe=6e4,AZ=new class{#e=M(P(`30`));get days(){return z(this.#e)}set days(e){N(this.#e,e,!0)}#t=M(P(`30`));get selectedPreset(){return z(this.#t)}set selectedPreset(e){N(this.#t,e,!0)}#n=M(null);get customStartDate(){return z(this.#n)}set customStartDate(e){N(this.#n,e,!0)}#r=M(null);get customEndDate(){return z(this.#r)}set customEndDate(e){N(this.#r,e,!0)}#i=M(!1);get followsToday(){return z(this.#i)}set followsToday(e){N(this.#i,e,!0)}#a=M(`daily`);get interval(){return z(this.#a)}set interval(e){N(this.#a,e,!0)}#o=M(0);get syncTick(){return z(this.#o)}set syncTick(e){N(this.#o,e,!0)}init(){this.restore(),this.syncToToday(),typeof setInterval==`function`&&setInterval(()=>this.syncToToday(),rEe)}queryStr(){return this.customStartDate&&this.customEndDate?`start_date=`+_Z(this.customStartDate)+`&end_date=`+_Z(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))}},iEe=V(``);function MZ(e,t){k(t,!0);var n=Dr(),r=I(n),i=e=>{var t=iEe(),n=F(t),r=F(n,!0);O(n);var i=L(n,2),a=F(i,!0);O(i),O(t),R((e,t)=>{U(r,e),U(a,t)},[()=>dI(),()=>FF()]),B(`click`,i,()=>X.openDialog()),H(e,t)};W(r,e=>{X.authError&&e(i)}),H(e,n),A()}br([`click`]);function NZ(){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 PZ(){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 FZ=new class{#e=M(P(NZ()));get summary(){return z(this.#e)}set summary(e){N(this.#e,e,!0)}#t=M(P([]));get daily(){return z(this.#t)}set daily(e){N(this.#t,e,!0)}#n=M(P(PZ()));get cacheOverview(){return z(this.#n)}set cacheOverview(e){N(this.#n,e,!0)}#r=M(!1);get loading(){return z(this.#r)}set loading(e){N(this.#r,e,!0)}#i=null;#a=null;cacheAnalyticsEnabled(){return QX.cacheVisible()}async fetchUsage(){this.#i&&this.#i.abort();let e=new AbortController;this.#i=e,this.loading=!0;try{let t=AZ.queryStr()+`&interval=`+AZ.interval,[n,r]=await Promise.all([YX(`/admin/usage/summary?`+t,{label:`usage summary`,signal:e.signal}),YX(`/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=NZ(),this.daily=[],this.cacheOverview=PZ();return}this.summary=n.data||NZ(),this.daily=Array.isArray(r.data)?r.data:[]}catch(e){if(ZX(e))return;console.error(`Failed to fetch usage:`,e),this.summary=NZ(),this.daily=[]}finally{this.#i===e&&(this.#i=null,this.loading=!1)}}async fetchCacheOverview(e=``){if(await QX.ensureLoaded(),!this.cacheAnalyticsEnabled()){this.cacheOverview=PZ();return}this.#a&&this.#a.abort();let t=new AbortController;this.#a=t;try{let n=await YX(`/admin/cache/overview?`+(AZ.queryStr()+`&interval=`+AZ.interval+e),{label:`cache overview`,signal:t.signal});if(n.stale||t.signal.aborted)return;if(!n.ok){this.cacheOverview=PZ();return}let r=n.data&&typeof n.data==`object`?n.data:PZ();r.summary||=PZ().summary,Array.isArray(r.daily)||(r.daily=[]),this.cacheOverview=r}catch(e){if(ZX(e))return;console.error(`Failed to fetch cache overview:`,e),this.cacheOverview=PZ()}finally{this.#a===t&&(this.#a=null)}}};function aEe(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 IZ(e,t,n){let r=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1));return n&&r.getTime()>n.getTime()?e:r}function oEe(e,t){return e.getUTCFullYear()===t.getUTCFullYear()&&e.getUTCMonth()===t.getUTCMonth()}var sEe=V(``),cEe=V(``),lEe=V(` `),uEe=V(``),dEe=V(`
`);function fEe(e,t){k(t,!0);let n=Ri(t,`offset`,3,0),r=j(()=>aEe(t.calendarMonth,n(),e=>WX.dateToDateKey(e))),i=j(()=>oEe(t.calendarMonth,WX.todayDate())),a=j(()=>DZ(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)=>DZ(new Date(Date.UTC(2024,0,1+t)),{weekday:`short`,timeZone:`UTC`})),s=e=>WX.dateToDateKey(e.date),c=e=>s(e)>WX.currentDateKey(),l=e=>e.current&&s(e)===WX.currentDateKey();function u(e,t){let n=t===`start`?AZ.rangeStart():AZ.rangeEnd();return e.current&&!!n&&s(e)===WX.dateToDateKey(n)}function d(e){let t=AZ.rangeStart(),n=AZ.rangeEnd();return!e.current||!t||!n?!1:s(e)>=WX.dateToDateKey(t)&&s(e)<=WX.dateToDateKey(n)}var f=dEe(),p=F(f),m=F(p);let h;var g=L(m,2),_=F(g,!0);O(g);var v=L(g,2),y=e=>{H(e,sEe())},b=e=>{var n=cEe();R(e=>{n.disabled=z(i),q(n,`aria-label`,e)},[()=>RL()]),B(`click`,n,function(...e){t.onnext?.apply(this,e)}),H(e,n)};W(v,e=>{n()===-1?e(y):e(b,-1)}),O(p);var x=L(p,2);G(x,21,()=>o,Fr,(e,t)=>{var n=lEe(),r=F(n,!0);O(n),R(()=>U(r,z(t))),H(e,n)}),O(x);var S=L(x,2);G(S,21,()=>z(r),e=>e.key,(e,n)=>{var r=uEe(),i=F(r,!0);O(r),R((e,t)=>{K(r,1,e,`svelte-g7ga4u`),r.disabled=t,U(i,z(n).day)},[()=>ci([`dp-day`,{"other-month":!z(n).current,today:l(z(n)),"range-start":u(z(n),`start`),"range-end":u(z(n),`end`),"in-range":d(z(n)),disabled:c(z(n))}]),()=>c(z(n))||!z(n).current]),B(`click`,r,()=>t.onselect?.(z(n))),H(e,r)}),O(S),O(f),R(e=>{h=K(m,1,`dp-nav-btn svelte-g7ga4u`,null,h,{"dp-nav-prev-mobile":n()!==-1}),q(m,`aria-label`,e),U(_,z(a))},[()=>FL()]),B(`click`,m,function(...e){t.onprev?.apply(this,e)}),H(e,f),A()}br([`click`]);var pEe=V(``),mEe=V(`
`),hEe=Tr(``),gEe=Tr(``),_Ee=V(`
`),vEe=V(`
`);function LZ(e,t){k(t,!0);let n=[`3`,`7`,`14`,`30`,`90`],r=M(!1),i=M(`start`),a=M(P(new Date)),o=M(P({show:!1,x:0,y:0}));function s(){N(r,!z(r)),z(r)&&(AZ.syncToToday(),N(a,WX.startOfMonthDate(AZ.customEndDate||WX.todayDate()),!0),N(i,`start`))}function c(){N(r,!1),N(o,{show:!1,x:0,y:0},!0)}let l=AZ.syncTick;pn(()=>{let e=AZ.syncTick;e!==l&&(l=e,t.onchange?.())});function u(e){AZ.selectPreset(e),N(i,`start`),t.onchange?.(),c()}let d=()=>N(a,IZ(z(a),-1),!0),f=()=>N(a,IZ(z(a),1,WX.startOfMonthDate(WX.todayDate())),!0);function p(e){let n=new Date(e.date);if(z(i)===`start`){AZ.selectStart(n),N(i,`end`),t.onchange?.();return}AZ.selectEnd(n),N(i,`start`),t.onchange?.(),c()}var m=vEe(),h=F(m),g=L(F(h),2),_=F(g,!0);O(g);var v=L(g,2);let y;O(h);var b=L(h,2),x=e=>{var t=mEe(),r=F(t);G(r,20,()=>n,e=>e,(e,t)=>{var n=pEe();let r;var i=F(n,!0);O(n),R(e=>{r=K(n,1,`preset-btn svelte-ax7ma4`,null,r,{active:AZ.selectedPreset===t}),U(i,e)},[()=>mL({count:Number(t)})]),B(`click`,n,()=>u(t)),H(e,n)}),O(r);var i=L(r,2);G(i,20,()=>[-1,0],e=>e,(e,t)=>{fEe(e,{get calendarMonth(){return z(a)},get offset(){return t},onprev:d,onnext:f,onselect:p})}),O(i),O(t),B(`mousemove`,i,e=>N(o,{show:!0,x:e.clientX,y:e.clientY},!0)),yr(`mouseleave`,i,()=>N(o,{show:!1,x:0,y:0},!0)),H(e,t)};W(b,e=>{z(r)&&e(x)});var S=L(b,2),C=e=>{var t=_Ee(),n=F(t),r=e=>{H(e,hEe())},a=e=>{H(e,gEe())};W(n,e=>{z(i)===`start`?e(r):e(a,-1)});var s=L(n,2),c=F(s,!0);O(s),O(t),R(e=>{pi(t,`left:${z(o).x??``}px;top:${z(o).y??``}px`),U(c,e)},[()=>z(i)===`end`?ML():kL()]),H(e,t)};W(S,e=>{z(o).show&&e(C)}),O(m),oi(m,()=>z(r)?wTe(c):void 0),R((e,t)=>{q(h,`title`,e),U(_,t),y=K(v,0,`date-picker-chevron svelte-ax7ma4`,null,y,{open:z(r)})},[()=>AZ.dateRangeSpanLabel(),()=>AZ.dateRangeLabel()]),B(`click`,h,s),H(e,m),A()}br([`click`,`mousemove`]);function RZ(e){return e+.5|0}var zZ=(e,t,n)=>Math.max(Math.min(e,n),t);function BZ(e){return zZ(RZ(e*2.55),0,255)}function VZ(e){return zZ(RZ(e*255),0,255)}function HZ(e){return zZ(RZ(e/2.55)/100,0,1)}function UZ(e){return zZ(RZ(e*100),0,100)}var WZ={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},GZ=[...`0123456789ABCDEF`],yEe=e=>GZ[e&15],bEe=e=>GZ[(e&240)>>4]+GZ[e&15],KZ=e=>(e&240)>>4==(e&15),xEe=e=>KZ(e.r)&&KZ(e.g)&&KZ(e.b)&&KZ(e.a);function SEe(e){var t=e.length,n;return e[0]===`#`&&(t===4||t===5?n={r:255&WZ[e[1]]*17,g:255&WZ[e[2]]*17,b:255&WZ[e[3]]*17,a:t===5?WZ[e[4]]*17:255}:(t===7||t===9)&&(n={r:WZ[e[1]]<<4|WZ[e[2]],g:WZ[e[3]]<<4|WZ[e[4]],b:WZ[e[5]]<<4|WZ[e[6]],a:t===9?WZ[e[7]]<<4|WZ[e[8]]:255})),n}var CEe=(e,t)=>e<255?t(e):``;function wEe(e){var t=xEe(e)?yEe:bEe;return e?`#`+t(e.r)+t(e.g)+t(e.b)+CEe(e.a,t):void 0}var TEe=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function qZ(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 EEe(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 DEe(e,t,n){let r=qZ(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 OEe(e,t,n,r,i){return e===i?(t-n)/r+(t.5?l/(2-i-a):l/(i+a),s=OEe(t,n,r,l,i),s=s*60+.5),[s|0,c||0,o]}function YZ(e,t,n,r){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,r)).map(VZ)}function XZ(e,t,n){return YZ(qZ,e,t,n)}function kEe(e,t,n){return YZ(DEe,e,t,n)}function AEe(e,t,n){return YZ(EEe,e,t,n)}function ZZ(e){return(e%360+360)%360}function jEe(e){let t=TEe.exec(e),n=255,r;if(!t)return;t[5]!==r&&(n=t[6]?BZ(+t[5]):VZ(+t[5]));let i=ZZ(+t[2]),a=t[3]/100,o=t[4]/100;return r=t[1]===`hwb`?kEe(i,a,o):t[1]===`hsv`?AEe(i,a,o):XZ(i,a,o),{r:r[0],g:r[1],b:r[2],a:n}}function MEe(e,t){var n=JZ(e);n[0]=ZZ(n[0]+t),n=XZ(n),e.r=n[0],e.g=n[1],e.b=n[2]}function NEe(e){if(!e)return;let t=JZ(e),n=t[0],r=UZ(t[1]),i=UZ(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${i}%, ${HZ(e.a)})`:`hsl(${n}, ${r}%, ${i}%)`}var QZ={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`},$Z={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 PEe(){let e={},t=Object.keys($Z),n=Object.keys(QZ),r,i,a,o,s;for(r=0;r>16&255,a>>8&255,a&255]}return e}var eQ;function FEe(e){eQ||(eQ=PEe(),eQ.transparent=[0,0,0,0]);let t=eQ[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var IEe=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function LEe(e){let t=IEe.exec(e),n=255,r,i,a;if(t){if(t[7]!==r){let e=+t[7];n=t[8]?BZ(e):zZ(e*255,0,255)}return r=+t[1],i=+t[3],a=+t[5],r=255&(t[2]?BZ(r):zZ(r,0,255)),i=255&(t[4]?BZ(i):zZ(i,0,255)),a=255&(t[6]?BZ(a):zZ(a,0,255)),{r,g:i,b:a,a:n}}}function REe(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${HZ(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}var tQ=e=>e<=.0031308?e*12.92:e**(1/2.4)*1.055-.055,nQ=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function zEe(e,t,n){let r=nQ(HZ(e.r)),i=nQ(HZ(e.g)),a=nQ(HZ(e.b));return{r:VZ(tQ(r+n*(nQ(HZ(t.r))-r))),g:VZ(tQ(i+n*(nQ(HZ(t.g))-i))),b:VZ(tQ(a+n*(nQ(HZ(t.b))-a))),a:e.a+n*(t.a-e.a)}}function rQ(e,t,n){if(e){let r=JZ(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,t===0?360:1)),r=XZ(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function iQ(e,t){return e&&Object.assign(t||{},e)}function aQ(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=VZ(e[3]))):(t=iQ(e,{r:0,g:0,b:0,a:1}),t.a=VZ(t.a)),t}function BEe(e){return e.charAt(0)===`r`?LEe(e):jEe(e)}var oQ=class e{constructor(t){if(t instanceof e)return t;let n=typeof t,r;n===`object`?r=aQ(t):n===`string`&&(r=SEe(t)||FEe(t)||BEe(t)),this._rgb=r,this._valid=!!r}get valid(){return this._valid}get rgb(){var e=iQ(this._rgb);return e&&(e.a=HZ(e.a)),e}set rgb(e){this._rgb=aQ(e)}rgbString(){return this._valid?REe(this._rgb):void 0}hexString(){return this._valid?wEe(this._rgb):void 0}hslString(){return this._valid?NEe(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=zEe(this._rgb,e._rgb,t)),this}clone(){return new e(this.rgb)}alpha(e){return this._rgb.a=VZ(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=RZ(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 rQ(this._rgb,2,e),this}darken(e){return rQ(this._rgb,2,-e),this}saturate(e){return rQ(this._rgb,1,e),this}desaturate(e){return rQ(this._rgb,1,-e),this}rotate(e){return MEe(this._rgb,e),this}};function sQ(){}var VEe=(()=>{let e=0;return()=>e++})();function cQ(e){return e==null}function lQ(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 uQ(e){return e!==null&&Object.prototype.toString.call(e)===`[object Object]`}function dQ(e){return(typeof e==`number`||e instanceof Number)&&isFinite(+e)}function fQ(e,t){return dQ(e)?e:t}function pQ(e,t){return e===void 0?t:e}var HEe=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100:+e/t,mQ=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100*t:+e;function hQ(e,t,n){if(e&&typeof e.call==`function`)return e.apply(n,t)}function gQ(e,t,n,r){let i,a,o;if(lQ(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 GEe(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 KEe(e){let t=GEe(e);return e=>{for(let n of t){if(n===``)break;e&&=e[n]}return e}}function CQ(e,t){return(SQ[t]||(SQ[t]=KEe(t)))(e)}function wQ(e){return e.charAt(0).toUpperCase()+e.slice(1)}var TQ=e=>e!==void 0,EQ=e=>typeof e==`function`,DQ=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0};function qEe(e){return e.type===`mouseup`||e.type===`click`||e.type===`contextmenu`}var OQ=Math.PI,kQ=2*OQ,JEe=kQ+OQ,AQ=1/0,YEe=OQ/180,jQ=OQ/2,MQ=OQ/4,NQ=OQ*2/3,PQ=Math.log10,FQ=Math.sign;function IQ(e,t,n){return Math.abs(e-t)e-t).pop(),t}function ZEe(e){return typeof e==`symbol`||typeof e==`object`&&!!e&&!(Symbol.toPrimitive in e||`toString`in e||`valueOf`in e)}function RQ(e){return!ZEe(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function QEe(e,t){let n=Math.round(e);return n-t<=e&&n+t>=e}function zQ(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 YQ(e,t,n){n||=(n=>e[n]1;)a=i+r>>1,n(a)?i=a:r=a;return{lo:i,hi:r}}var XQ=(e,t,n,r)=>YQ(e,n,r?r=>{let i=e[r][t];return ie[r][t]YQ(e,n,r=>e[r][t]>=n);function nDe(e,t,n){let r=0,i=e.length;for(;rr&&e[i-1]>n;)i--;return r>0||i{let n=`_onData`+wQ(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 QQ(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)&&(ZQ.forEach(t=>{delete e[t]}),delete e._chartjs)}function $Q(e){let t=new Set(e);return t.size===e.length?e:Array.from(t)}var e$=function(){return typeof window>`u`?function(e){return e()}:window.requestAnimationFrame}();function t$(e,t){let n=[],r=!1;return function(...i){n=i,r||(r=!0,e$.call(window,()=>{r=!1,e.apply(t,n)}))}}function iDe(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}var n$=e=>e===`start`?`left`:e===`end`?`right`:`center`,r$=(e,t,n)=>e===`start`?t:e===`end`?n:(t+n)/2,aDe=(e,t,n,r)=>e===(r?`left`:`right`)?n:e===`center`?(t+n)/2:t;function i$(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(XQ(c,u,d).lo,n?r:XQ(t,u,o.getPixelForValue(d)).lo),l){let e=c.slice(0,i+1).reverse().findIndex(e=>!cQ(e[s.axis]));i-=Math.max(0,e)}i=qQ(i,0,r-1)}if(m){let e=Math.max(XQ(c,o.axis,f,!0).hi+1,n?0:XQ(t,u,o.getPixelForValue(f),!0).hi+1);if(l){let t=c.slice(e-1).findIndex(e=>!cQ(e[s.axis]));e+=Math.max(0,t)}a=qQ(e,i,r)-i}else a=r-i}return{start:i,count:a}}function a$(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 o$=e=>e===0||e===1,s$=(e,t,n)=>-(2**(10*--e)*Math.sin((e-t)*kQ/n)),c$=(e,t,n)=>2**(-10*e)*Math.sin((e-t)*kQ/n)+1,l$={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*jQ)+1,easeOutSine:e=>Math.sin(e*jQ),easeInOutSine:e=>-.5*(Math.cos(OQ*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:-(2**(-10*e))+1,easeInOutExpo:e=>o$(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=>o$(e)?e:s$(e,.075,.3),easeOutElastic:e=>o$(e)?e:c$(e,.075,.3),easeInOutElastic(e){let t=.1125,n=.45;return o$(e)?e:e<.5?.5*s$(e*2,t,n):.5+.5*c$(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-l$.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?l$.easeInBounce(e*2)*.5:l$.easeOutBounce(e*2-1)*.5+.5};function u$(e){if(e&&typeof e==`object`){let t=e.toString();return t===`[object CanvasPattern]`||t===`[object CanvasGradient]`}return!1}function d$(e){return u$(e)?e:new oQ(e)}function f$(e){return u$(e)?e:new oQ(e).saturate(.5).darken(.1).hexString()}var oDe=[`x`,`y`,`borderWidth`,`radius`,`tension`],sDe=[`color`,`borderColor`,`backgroundColor`];function cDe(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:sDe},numbers:{type:`number`,properties:oDe}}),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 lDe(e){e.set(`layout`,{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}var p$=new Map;function uDe(e,t){t||={};let n=e+JSON.stringify(t),r=p$.get(n);return r||(r=new Intl.NumberFormat(e,t),p$.set(n,r)),r}function m$(e,t,n){return uDe(t,n).format(e)}var h$={values(e){return lQ(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=dDe(e,n)}let o=PQ(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),m$(e,r,c)},logarithmic(e,t,n){if(e===0)return`0`;let r=n[t].significand||e/10**Math.floor(PQ(e));return[1,2,3,5,10,15].includes(r)||t>.8*n.length?h$.numeric.call(this,e,t,n):``}};function dDe(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 g$={formatters:h$};function fDe(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:g$.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 _$=Object.create(null),v$=Object.create(null);function y$(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)=>f$(t.backgroundColor),this.hoverBorderColor=(e,t)=>f$(t.borderColor),this.hoverColor=(e,t)=>f$(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 b$(this,e,t)}get(e){return y$(this,e)}describe(e,t){return b$(v$,e,t)}override(e,t){return b$(_$,e,t)}route(e,t,n,r){let i=y$(this,e),a=y$(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 uQ(e)?Object.assign({},t,e):pQ(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}},[cDe,lDe,fDe]);function pDe(e){return!e||cQ(e.size)||cQ(e.family)?null:(e.style?e.style+` `:``)+(e.weight?e.weight+` `:``)+e.size+`px `+e.family}function S$(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 mDe(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 D$(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,_De(e,a),c=0;c+e||0;function M$(e,t){let n={},r=uQ(t),i=r?Object.keys(t):t,a=uQ(e)?r?n=>pQ(e[n],e[t[n]]):t=>e[t]:()=>e;for(let e of i)n[e]=CDe(a(e));return n}function N$(e){return M$(e,{top:`y`,right:`x`,bottom:`y`,left:`x`})}function P$(e){return M$(e,[`topLeft`,`topRight`,`bottomLeft`,`bottomRight`])}function F$(e){let t=N$(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function I$(e,t){e||={},t||=x$.font;let n=pQ(e.size,t.size);typeof n==`string`&&(n=parseInt(n,10));let r=pQ(e.style,t.style);r&&!(``+r).match(xDe)&&(console.warn(`Invalid font style specified: "`+r+`"`),r=void 0);let i={family:pQ(e.family,t.family),lineHeight:SDe(pQ(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:pQ(e.weight,t.weight),string:``};return i.string=pDe(i),i}function L$(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 R$(e,t){return Object.assign(Object.create(e),t)}function z$(e,t=[``],n,r,i=()=>e[0]){let a=n||e;return r===void 0&&(r=q$(`_fallback`,e)),new Proxy({[Symbol.toStringTag]:`Object`,_cacheable:!0,_scopes:e,_rootScopes:a,_fallback:r,_getTarget:i,override:n=>z$([n,...e],t,a,r)},{deleteProperty(t,n){return delete t[n],delete t._keys,delete e[0][n],!0},get(n,r){return U$(n,r,()=>MDe(r,t,e,n))},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(e._scopes[0],t)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(e,t){return J$(e).includes(t)},ownKeys(e){return J$(e)},set(e,t,n){let r=e._storage||=i();return e[t]=r[t]=n,delete e._keys,!0}})}function B$(e,t,n,r){let i={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:V$(e,r),setContext:t=>B$(e,t,n,r),override:i=>B$(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 U$(e,t,()=>EDe(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 V$(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:EQ(n)?n:()=>n,isIndexable:EQ(r)?r:()=>r}}var TDe=(e,t)=>e?e+wQ(t):t,H$=(e,t)=>uQ(t)&&e!==`adapters`&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function U$(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t===`constructor`)return e[t];let r=n();return e[t]=r,r}function EDe(e,t,n){let{_proxy:r,_context:i,_subProxy:a,_descriptors:o}=e,s=r[t];return EQ(s)&&o.isScriptable(t)&&(s=DDe(t,s,e,n)),lQ(s)&&s.length&&(s=ODe(t,s,e,o.isIndexable)),H$(t,s)&&(s=B$(s,i,a&&a[t],o)),s}function DDe(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),H$(e,c)&&(c=G$(i._scopes,i,e,c)),c}function ODe(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(uQ(t[0])){let n=t,r=i._scopes.filter(e=>e!==n);t=[];for(let c of n){let n=G$(r,i,e,c);t.push(B$(n,a,o&&o[e],s))}}return t}function W$(e,t,n){return EQ(e)?e(t,n):e}var kDe=(e,t)=>e===!0?t:typeof e==`string`?CQ(t,e):void 0;function ADe(e,t,n,r,i){for(let a of t){let t=kDe(n,a);if(t){e.add(t);let a=W$(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 G$(e,t,n,r){let i=t._rootScopes,a=W$(t._fallback,n,r),o=[...e,...i],s=new Set;s.add(r);let c=K$(s,o,n,a||n,r);return c===null||a!==void 0&&a!==n&&(c=K$(s,o,a,c,r),c===null)?!1:z$(Array.from(s),[``],i,a,()=>jDe(t,n,r))}function K$(e,t,n,r,i){for(;n;)n=ADe(e,t,n,r,i);return n}function jDe(e,t,n){let r=e._getTarget();t in r||(r[t]={});let i=r[t];return lQ(i)&&uQ(n)?n:i||{}}function MDe(e,t,n,r){let i;for(let a of t)if(i=q$(TDe(a,e),n),i!==void 0)return H$(e,i)?G$(n,r,e,i):i}function q$(e,t){for(let n of t){if(!n)continue;let t=n[e];if(t!==void 0)return t}}function J$(e){let t=e._keys;return t||=e._keys=NDe(e._scopes),t}function NDe(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 Y$(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 FDe(e,t,n,r){let i=e.skip?t:e,a=t,o=n.skip?t:n,s=WQ(a,i),c=WQ(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 IDe(e,t,n){let r=e.length,i,a,o,s,c,l=X$(e,0);for(let u=0;u!e.skip)),t.cubicInterpolationMode===`monotone`)RDe(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 VDe(e,t){return n1(e).getPropertyValue(t)}var HDe=[`top`,`right`,`bottom`,`left`];function r1(e,t,n){let r={};n=n?`-`+n:``;for(let i=0;i<4;i++){let a=HDe[i];r[a]=parseFloat(e[t+`-`+a+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}var UDe=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function WDe(e,t){let n=e.touches,r=n&&n.length?n[0]:e,{offsetX:i,offsetY:a}=r,o=!1,s,c;if(UDe(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 i1(e,t){if(`native`in e)return e;let{canvas:n,currentDevicePixelRatio:r}=t,i=n1(n),a=i.boxSizing===`border-box`,o=r1(i,`padding`),s=r1(i,`border`,`width`),{x:c,y:l,box:u}=WDe(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 GDe(e,t,n){let r,i;if(t===void 0||n===void 0){let a=e&&e1(e);if(!a)t=e.clientWidth,n=e.clientHeight;else{let e=a.getBoundingClientRect(),o=n1(a),s=r1(o,`border`,`width`),c=r1(o,`padding`);t=e.width-c.width-s.width,n=e.height-c.height-s.height,r=t1(o.maxWidth,a,`clientWidth`),i=t1(o.maxHeight,a,`clientHeight`)}}return{width:t,height:n,maxWidth:r||AQ,maxHeight:i||AQ}}var a1=e=>Math.round(e*10)/10;function KDe(e,t,n,r){let i=n1(e),a=r1(i,`margin`),o=t1(i.maxWidth,e,`clientWidth`)||AQ,s=t1(i.maxHeight,e,`clientHeight`)||AQ,c=GDe(e,t,n),{width:l,height:u}=c;if(i.boxSizing===`content-box`){let e=r1(i,`border`,`width`),t=r1(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=a1(Math.min(l,o,c.maxWidth)),u=a1(Math.min(u,s,c.maxHeight)),l&&!u&&(u=a1(l/2)),(t!==void 0||n!==void 0)&&r&&c.height&&u>c.height&&(u=c.height,l=a1(Math.floor(u*r))),{width:l,height:u}}function o1(e,t,n){let r=t||1,i=a1(e.height*r),a=a1(e.width*r);e.height=a1(e.height),e.width=a1(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 qDe=function(){let e=!1;try{let t={get passive(){return e=!0,!1}};$$()&&(window.addEventListener(`test`,null,t),window.removeEventListener(`test`,null,t))}catch{}return e}();function s1(e,t){let n=VDe(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function c1(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function JDe(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 YDe(e,t,n,r){let i={x:e.cp2x,y:e.cp2y},a={x:t.cp1x,y:t.cp1y},o=c1(e,i,n),s=c1(i,a,n),c=c1(a,t,n);return c1(c1(o,s,n),c1(s,c,n),n)}var XDe=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}}},ZDe=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function l1(e,t,n){return e?XDe(t,n):ZDe()}function u1(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 d1(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty(`direction`,t[0],t[1]))}function f1(e){return e===`angle`?{between:KQ,compare:$Ee,normalize:GQ}:{between:JQ,compare:(e,t)=>e-t,normalize:e=>e}}function p1({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 QDe(e,t,n){let{property:r,start:i,end:a}=n,{between:o,normalize:s}=f1(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(p1({start:g,end:e,loop:f,count:o,style:p})),g=null),n=e,y=_));return g!==null&&m.push(p1({start:g,end:d,loop:f,count:o,style:p})),m}function h1(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 eOe(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 tOe(e,t){let n=e.points,r=e.options.spanGaps,i=n.length;if(!i)return[];let a=!!e._loop,{start:o,end:s}=$De(n,i,a,r);return r===!0?g1(e,[{start:o,end:s,loop:a}],n,t):g1(e,eOe(n,o,sr({chart:e,initial:t.initial,numSteps:a,currentStep:Math.min(n-t.start,a)}))}_refresh(){this._request||=(this._running=!0,e$.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)}},x1=`transparent`,aOe={boolean(e,t,n){return n>.5?t:e},color(e,t,n){let r=d$(e||x1),i=r.valid&&d$(t||x1);return i&&i.valid?i.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}},oOe=class{constructor(e,t,n,r){let i=t[n];r=L$([e.to,r,i,e.from]);let a=L$([e.from,i,r]);this._active=!0,this._fn=e.fn||aOe[e.type||typeof a],this._easing=l$[e.easing]||l$.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=L$([e.to,t,r,e.from]),this._from=L$([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(!uQ(i))return;let a={};for(let e of t)a[e]=i[e];(lQ(i.properties)&&i.properties||[r]).forEach(e=>{(e===r||!n.has(e))&&n.set(e,a)})})}_animateOptions(e,t){let n=t.options,r=cOe(e,n);if(!r)return[];let i=this._createAnimations(r,n);return n.$shared&&sOe(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 oOe(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 b1.add(this._chart,n),!0}};function sOe(e,t){let n=[],r=Object.keys(t);for(let t=0;t0||!n&&t<0)return i.index}return null}function O1(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=fOe(a,o,r),d=t.length,f;for(let e=0;en[e].axis===t).shift()}function hOe(e,t){return R$(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:`default`,type:`dataset`})}function gOe(e,t,n){return R$(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:`default`,type:`data`})}function A1(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 j1=e=>e===`reset`||e===`none`,M1=(e,t)=>t?e:Object.assign({},e),_Oe=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:w1(n,!0),values:null},N1=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=E1(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&&A1(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=pQ(n.xAxisID,k1(e,`x`)),a=t.yAxisID=pQ(n.yAxisID,k1(e,`y`)),o=t.rAxisID=pQ(n.rAxisID,k1(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&&QQ(this._data,this),e._stacked&&A1(e)}_dataCheck(){let e=this.getDataset(),t=e.data||=[],n=this._data;if(uQ(t)){let e=this._cachedMeta;this._data=dOe(t,e)}else if(n!==t){if(n){QQ(n,this);let e=this._cachedMeta;A1(e),e._parsed=[]}t&&Object.isExtensible(t)&&rDe(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=E1(t.vScale,t),t.stack!==n.stack&&(r=!0,A1(t),t.stack=n.stack),this._resyncElements(e),(r||i!==t._stacked)&&(O1(this,t._parsed),t._stacked=E1(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=lQ(r[e])?this.parseArrayData(n,r,e,t):uQ(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(M1(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 S1(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||j1(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){j1(r)?Object.assign(e,n):this._resolveAnimations(t,r).update(e,n)}updateSharedOptions(e,t,n){e&&!j1(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 yOe(e){let t=e.iScale,n=vOe(t,e.type),r=t._length,i,a,o,s,c=()=>{o===32767||o===-32768||(TQ(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 P1(e,t,n,r){return lQ(e)?SOe(e,t,n,r):t[n.axis]=n.parse(e,r),t}function F1(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):FQ(e)}function wOe(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(cQ(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[pQ(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;dKQ(e,s,c,!0)?1:Math.max(t,t*n,r,r*n),m=(e,t,r)=>KQ(e,s,c,!0)?-1:Math.min(t,t*n,r,r*n),h=p(0,l,d),g=p(jQ,u,f),_=m(OQ,l,d),v=m(OQ+jQ,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 z1=class extends N1{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(uQ(n[e])){let{key:e=`value`}=this._parsing;i=t=>+CQ(n[t],e)}let a,o;for(a=e,o=e+t;a0&&!isNaN(e)?Math.abs(e)/t*kQ:0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=m$(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=cQ(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()}},B1=class extends N1{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=m$(t._parsed[e].r,n.options.locale);return{label:r[e]||``,value:i}}parseObjectData(e,t,n,r){return Y$.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*OQ,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)?BQ(this.resolveDataElementOptions(e,t).angle||n):0}},MOe=Object.freeze({__proto__:null,BarController:OOe,BubbleController:kOe,DoughnutController:z1,LineController:jOe,PieController:class extends z1{static id=`pie`;static defaults={cutout:0,rotation:0,circumference:360,radius:`100%`}},PolarAreaController:B1,RadarController:class extends N1{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 Y$.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 V1(){throw Error(`This method is not implemented: Check that a complete date adapter is provided.`)}var NOe={_date:class e{static override(t){Object.assign(e.prototype,t)}options;constructor(e){this.options=e||{}}init(){}formats(){return V1()}parse(){return V1()}format(){return V1()}add(){return V1()}diff(){return V1()}startOf(){return V1()}endOf(){return V1()}}};function POe(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?tDe:XQ;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=>!cQ(e[t.axis]));r.lo-=Math.max(0,a);let o=n.slice(r.hi).findIndex(e=>!cQ(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 H1(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 ROe={evaluateInteractionItems:H1,modes:{index(e,t,n,r){let i=i1(t,e),a=n.axis||`x`,o=n.includeInvisible||!1,s=n.intersect?U1(e,i,a,r,o):W1(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=i1(t,e),a=n.axis||`xy`,o=n.includeInvisible||!1,s=n.intersect?U1(e,i,a,r,o):W1(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 J1(e,t){return e.filter(e=>K1.indexOf(e.pos)===-1&&e.box.axis===t)}function Y1(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 zOe(e){let t=[],n,r,i,a,o,s;for(n=0,r=(e||[]).length;ne.box.fullSize),!0),r=Y1(q1(t,`left`),!0),i=Y1(q1(t,`right`)),a=Y1(q1(t,`top`),!0),o=Y1(q1(t,`bottom`)),s=J1(t,`x`),c=J1(t,`y`);return{fullSize:n,leftAndTop:r.concat(a),rightAndBottom:i.concat(c).concat(o).concat(s),chartArea:q1(t,`chartArea`),vertical:r.concat(i).concat(c),horizontal:a.concat(o).concat(s)}}function X1(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function Z1(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 UOe(e,t,n,r){let{pos:i,box:a}=n,o=e.maxPadding;if(!uQ(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&&Z1(o,a.getPadding());let s=Math.max(0,t.outerWidth-X1(o,e,`left`,`right`)),c=Math.max(0,t.outerHeight-X1(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 WOe(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 GOe(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 Q1(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);Z1(f,F$(r));let p=Object.assign({maxPadding:f,w:a,h:o,x:i.left,y:i.top},i),m=VOe(c.concat(l),d);Q1(s.fullSize,p,d,m),Q1(c,p,d,m),Q1(l,p,d,m)&&Q1(c,p,d,m),WOe(p),e0(s.leftAndTop,p,d,m),p.x+=p.w,p.y+=p.h,e0(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},gQ(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})})}},n0=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){}},KOe=class extends n0{acquireContext(e){return e&&e.getContext&&e.getContext(`2d`)||null}updateConfig(e){e.options.animation=!1}},r0=`$chartjs`,qOe={touchstart:`mousedown`,touchmove:`mousemove`,touchend:`mouseup`,pointerenter:`mouseenter`,pointerdown:`mousedown`,pointermove:`mousemove`,pointerup:`mouseup`,pointerleave:`mouseout`,pointerout:`mouseout`},i0=e=>e===null||e===``;function JOe(e,t){let n=e.style,r=e.getAttribute(`height`),i=e.getAttribute(`width`);if(e[r0]={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`,i0(i)){let t=s1(e,`width`);t!==void 0&&(e.width=t)}if(i0(r))if(e.style.height===``)e.height=e.width/(t||2);else{let t=s1(e,`height`);t!==void 0&&(e.height=t)}return e}var a0=qDe?{passive:!0}:!1;function YOe(e,t,n){e&&e.addEventListener(t,n,a0)}function XOe(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,a0)}function ZOe(e,t){let n=qOe[e.type]||e.type,{x:r,y:i}=i1(e,t);return{type:n,chart:t,native:e,x:r===void 0?null:r,y:i===void 0?null:i}}function o0(e,t){for(let n of e)if(n===t||n.contains(t))return!0}function QOe(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=o0(n.addedNodes,r),t&&=!o0(n.removedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}function $Oe(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=o0(n.removedNodes,r),t&&=!o0(n.addedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}var s0=new Map,c0=0;function l0(){let e=window.devicePixelRatio;e!==c0&&(c0=e,s0.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function eke(e,t){s0.size||window.addEventListener(`resize`,l0),s0.set(e,t)}function tke(e){s0.delete(e),s0.size||window.removeEventListener(`resize`,l0)}function nke(e,t,n){let r=e.canvas,i=r&&e1(r);if(!i)return;let a=t$((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),eke(e,a),o}function u0(e,t,n){n&&n.disconnect(),t===`resize`&&tke(e)}function rke(e,t,n){let r=e.canvas,i=t$(t=>{e.ctx!==null&&n(ZOe(t,e))},e);return YOe(r,t,i),i}var ike=class extends n0{acquireContext(e,t){let n=e&&e.getContext&&e.getContext(`2d`);return n&&n.canvas===e?(JOe(e,t),n):null}releaseContext(e){let t=e.canvas;if(!t[r0])return!1;let n=t[r0].initial;[`height`,`width`].forEach(e=>{let r=n[e];cQ(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[r0],!0}addEventListener(e,t,n){this.removeEventListener(e,t);let r=e.$proxies||={};r[t]=({attach:QOe,detach:$Oe,resize:nke}[t]||rke)(e,t,n)}removeEventListener(e,t){let n=e.$proxies||={},r=n[t];r&&(({attach:u0,detach:u0,resize:u0}[t]||XOe)(e,t,r),n[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,n,r){return KDe(e,t,n,r)}isAttached(e){let t=e&&e1(e);return!!(t&&t.isConnected)}};function ake(e){return!$$()||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas?KOe:ike}var d0=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 RQ(this.x)&&RQ(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 oke(e,t){let n=e.options.ticks,r=ske(e),i=Math.min(n.maxTicksLimit||r,r),a=n.major.enabled?lke(t):[],o=a.length,s=a[0],c=a[o-1],l=[];if(o>i)return uke(t,l,a,o/i),l;let u=cke(a,t,i);if(o>0){let e,n,r=o>1?Math.round((c-s)/(o-1)):null;for(f0(t,l,u,cQ(r)?0:s-r,s),e=0,n=o-1;ei)return t}return Math.max(i,1)}function lke(e){let t=[],n,r;for(n=0,r=e.length;ne===`left`?`right`:e===`right`?`left`:e,p0=(e,t,n)=>t===`top`||t===`left`?e[t]+n:e[t]-n,m0=(e,t)=>Math.min(t||e,e);function h0(e,t){let n=[],r=e.length/t,i=e.length,a=0;for(;ao+s)))return c}function mke(e,t){gQ(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:fQ(t,fQ(n,t)),max:fQ(n,fQ(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(){hQ(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=wDe(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=qQ(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-g0(e.grid)-t.padding-_0(e.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),a=VQ(Math.min(Math.asin(qQ((l.highest.height+6)/o,-1,1)),Math.asin(qQ(s/c,-1,1))-Math.asin(qQ(d/c,-1,1)))),a=Math.max(r,Math.min(i,a))),this.labelRotation=a}afterCalculateLabelRotation(){hQ(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){hQ(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=_0(r,t.options.font);if(o?(e.width=this.maxWidth,e.height=g0(i)+a):(e.height=this.maxHeight,e.width=g0(i)+a),n.display&&this.ticks.length){let{first:t,last:r,widest:i,highest:a}=this._getLabelSizes(),s=n.padding*2,c=BQ(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(){hQ(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 eDe(this._alignToPixels?C$(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=g0(i),d=[],f=o.setContext(this.getContext()),p=f.display?f.width:0,m=p/2,h=function(e){return C$(n,e,p)},g,_,v,y,b,x,S,C,w,T,E,D;if(a===`top`)g=h(this.bottom),x=this.bottom-u,C=g-m,T=h(e.top)+m,D=e.bottom;else if(a===`bottom`)g=h(this.top),T=e.top,D=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,E=e.right;else if(a===`right`)g=h(this.left),w=e.left,E=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(uQ(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}T=e.top,D=e.bottom,x=g+m,C=x+u}else if(t===`y`){if(a===`center`)g=h((e.left+e.right)/2);else if(uQ(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,E=e.right}let ee=pQ(r.ticks.maxTicksLimit,l),te=Math.max(1,Math.ceil(l/ee));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:D,options:{rotation:m,color:n,strokeColor:s,strokeWidth:l,textAlign:d,textBaseline:ee,translation:[b,x],backdrop:f}})}return h}_getXAxisLabelAlignment(){let{position:e,ticks:t}=this.options;if(-BQ(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(`.`);x$.route(a,i,c,s)})}function xke(e){return`id`in e&&`defaults`in e}var b0=new class{constructor(){this.controllers=new y0(N1,`datasets`,!0),this.elements=new y0(d0,`elements`),this.plugins=new y0(Object,`plugins`),this.scales=new y0(v0,`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):gQ(t,t=>{let r=n||this._getRegistryForType(t);this._exec(e,r,t)})})}_exec(e,t,n){let r=wQ(e);hQ(n[`before`+r],[],n),t[e](n),hQ(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 Cke(e){let t={},n=[],r=Object.keys(b0.plugins.items);for(let e=0;e1&&S0(e[0].toLowerCase());if(t)return t}throw Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function w0(e,t,n){if(n[t+`AxisID`]===e)return{axis:t}}function Ake(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 w0(e,`x`,n[0])||w0(e,`y`,n[0])}return{}}function jke(e,t){let n=_$[e.type]||{scales:{}},r=t.scales||{},i=x0(e.type,t),a=Object.create(null);return Object.keys(r).forEach(t=>{let o=r[t];if(!uQ(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=C0(t,o,Ake(t,e),x$.scales[o.type]),c=Oke(s,i),l=n.scales||{};a[t]=xQ(Object.create(null),[{axis:s},o,l[s],l[c]])}),e.data.datasets.forEach(n=>{let i=n.type||e.type,o=n.indexAxis||x0(i,t),s=(_$[i]||{}).scales||{};Object.keys(s).forEach(e=>{let t=Dke(e,o),i=n[t+`AxisID`]||t;a[i]=a[i]||Object.create(null),xQ(a[i],[{axis:t},r[i],s[e]])})}),Object.keys(a).forEach(e=>{let t=a[e];xQ(t,[x$.scales[t.type],x$.scale])}),a}function T0(e){let t=e.options||={};t.plugins=pQ(t.plugins,{}),t.scales=jke(e,t)}function E0(e){return e||={},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function Mke(e){return e||={},e.data=E0(e.data),T0(e),e}var D0=new Map,O0=new Set;function k0(e,t){let n=D0.get(e);return n||(n=t(),D0.set(e,n),O0.add(n)),n}var A0=(e,t,n)=>{let r=CQ(t,n);r!==void 0&&e.add(r)},Nke=class{constructor(e){this._config=Mke(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=E0(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(),T0(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return k0(e,()=>[[`datasets.${e}`,``]])}datasetAnimationScopeKeys(e,t){return k0(`${e}.transition.${t}`,()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,``]])}datasetElementScopeKeys(e,t){return k0(`${e}-${t}`,()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,``]])}pluginScopeKeys(e){let t=e.id,n=this.type;return k0(`${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=>A0(s,e,t))),t.forEach(e=>A0(s,r,e)),t.forEach(e=>A0(s,_$[i]||{},e)),t.forEach(e=>A0(s,x$,e)),t.forEach(e=>A0(s,v$,e))});let c=Array.from(s);return c.length===0&&c.push(Object.create(null)),O0.has(t)&&a.set(t,c),c}chartOptionScopes(){let{options:e,type:t}=this;return[e,_$[t]||{},x$.datasets[t]||{},{type:t},x$,v$]}resolveNamedOptions(e,t,n,r=[``]){let i={$shared:!0},{resolver:a,subPrefixes:o}=j0(this._resolverCache,e,r),s=a;if(Fke(a,t)){i.$shared=!1,n=EQ(n)?n():n;let t=this.createResolver(e,n,o);s=B$(a,n,t)}for(let e of t)i[e]=s[e];return i}createResolver(e,t,n=[``],r){let{resolver:i}=j0(this._resolverCache,e,n);return uQ(t)?B$(i,t,void 0,r):i}};function j0(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:z$(t,n),subPrefixes:n.filter(e=>!e.toLowerCase().includes(`hover`))},r.set(i,a)),a}var Pke=e=>uQ(e)&&Object.getOwnPropertyNames(e).some(t=>EQ(e[t]));function Fke(e,t){let{isScriptable:n,isIndexable:r}=V$(e);for(let i of t){let t=n(i),a=r(i),o=(a||t)&&e[i];if(t&&(EQ(o)||Pke(o))||a&&lQ(o))return!0}return!1}var Ike=`4.5.1`,Lke=[`top`,`bottom`,`left`,`right`,`chartArea`];function M0(e,t){return e===`top`||e===`bottom`||Lke.indexOf(e)===-1&&t===`x`}function N0(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function P0(e){let t=e.chart,n=t.options.animation;t.notifyPlugins(`afterRender`),hQ(n&&n.onComplete,[e],t)}function Rke(e){let t=e.chart,n=t.options.animation;hQ(n&&n.onProgress,[e],t)}function F0(e){return $$()&&typeof e==`string`?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}var I0={},L0=e=>{let t=F0(e);return Object.values(I0).filter(e=>e.canvas===t).pop()};function zke(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 Bke(e,t,n,r){return!n||e.type===`mouseout`?null:r?t:e}var R0=class{static defaults=x$;static instances=I0;static overrides=_$;static registry=b0;static version=Ike;static getChart=L0;static register(...e){b0.add(...e),z0()}static unregister(...e){b0.remove(...e),z0()}constructor(e,t){let n=this.config=new Nke(t),r=F0(e),i=L0(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||(ake(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=VEe(),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 Ske,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=iDe(e=>this.update(e),a.resizeDelay||0),this._dataChanges=[],I0[this.id]=this,!o||!s){console.error(`Failed to create chart: can't acquire context from the given item`);return}b1.listen(this,`complete`,P0),b1.listen(this,`progress`,Rke),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:e,maintainAspectRatio:t},width:n,height:r,_aspectRatio:i}=this;return cQ(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 b0}_initialize(){return this.notifyPlugins(`beforeInit`),this.options.responsive?this.resize():o1(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(`afterInit`),this}clear(){return w$(this.canvas,this.ctx),this}stop(){return b1.stop(this),this}resize(e,t){b1.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,o1(this,o,!0)&&(this.notifyPlugins(`resize`,{size:a}),hQ(n.onResize,[this,a],this),this.attached&&this._doResize(s)&&this.render())}ensureScalesHaveIDs(){gQ(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=C0(e,n),i=r===`r`,a=r===`x`;return{options:n,dposition:i?`chartArea`:a?`bottom`:`left`,dtype:i?`radialLinear`:a?`category`:`linear`}}))),gQ(i,t=>{let i=t.options,a=i.id,o=C0(a,i),s=pQ(i.type,t.dtype);(i.position===void 0||M0(i.position,o)!==M0(t.dposition))&&(i.position=t.dposition),r[a]=!0;let c=null;a in n&&n[a].type===s?c=n[a]:(c=new(b0.getScale(s))({id:a,type:s,ctx:this.ctx,chart:this}),n[c.id]=c),c.init(i,e)}),gQ(r,(e,t)=>{e||delete n[t]}),gQ(n,e=>{t0.configure(this,e,e.options),t0.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(N0(`z`,`_idx`));let{_active:o,_lastEvent:s}=this;s?this._eventHandler(s,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){gQ(this.scales,e=>{t0.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let e=this.options;(!DQ(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)zke(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;t0.update(this,this.width,this.height,e);let t=this.chartArea,n=t.width<=0||t.height<=0;this._layers=[],gQ(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=y1(this,e);this.notifyPlugins(`beforeDatasetDraw`,n)!==!1&&(r&&O$(t,r),e.controller.draw(),r&&k$(t),n.cancelable=!1,this.notifyPlugins(`afterDatasetDraw`,n))}isPointInArea(e){return D$(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,n,r){let i=ROe.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||=R$(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);TQ(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(),b1.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)};gQ(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(){gQ(this._listeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._listeners={},gQ(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}});_Q(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=qEe(e),c=Bke(e,this._lastEvent,n,s);n&&(this._lastEvent=null,hQ(i.onHover,[e,o,this],this),s&&hQ(i.onClick,[e,o,this],this));let l=!_Q(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 z0(){return gQ(R0.instances,e=>e._plugins.invalidate())}function Vke(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,GQ(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,GQ(r-n));e.arc(i,a,s+l/2,n-t/2,r+t/2,!0)}else{let t=Math.min(l/2,o*GQ(r-n));if(u===`round`)e.arc(i,a,t,n-OQ/2,r+OQ/2,!0);else if(u===`bevel`){let o=2*t*t,s=-o*Math.cos(n+OQ/2)+i,c=-o*Math.sin(n+OQ/2)+a,l=o*Math.cos(r+OQ/2)+i,u=o*Math.sin(r+OQ/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 Hke(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+jQ,r-jQ),e.closePath(),e.clip()}function Uke(e){return M$(e,[`outerStart`,`outerEnd`,`innerStart`,`innerEnd`])}function Wke(e,t,n,r){let i=Uke(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 qQ(e,0,Math.min(a,t))};return{outerStart:s(i.outerStart),outerEnd:s(i.outerEnd),innerStart:qQ(i.innerStart,0,o),innerEnd:qQ(i.innerEnd,0,o)}}function B0(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function V0(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/OQ)/d)/2,g=c+h+p,_=i-h-p,{outerStart:v,outerEnd:y,innerStart:b,innerEnd:x}=Wke(t,f,d,_-g),S=d-v,C=d-y,w=g+v/S,T=_-y/C,E=f+b,D=f+x,ee=g+b/E,te=_-x/D;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=B0(C,T,o,s);e.arc(t.x,t.y,y,T,_+jQ)}let n=B0(D,_,o,s);if(e.lineTo(n.x,n.y),x>0){let t=B0(D,te,o,s);e.arc(t.x,t.y,x,_+jQ,te+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=B0(E,ee,o,s);e.arc(t.x,t.y,b,ee+Math.PI,g-jQ)}let i=B0(S,g,o,s);if(e.lineTo(i.x,i.y),v>0){let t=B0(S,w,o,s);e.arc(t.x,t.y,v,g-jQ,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 Gke(e,t,n,r,i){let{fullCircles:a,startAngle:o,circumference:s}=t,c=t.endAngle;if(a){V0(e,t,n,r,c,i);for(let t=0;t=OQ&&p===0&&u!==`miter`&&Vke(e,t,h),a||(V0(e,t,n,r,h,i),e.stroke())}var qke=class extends d0{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}=UQ(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=pQ(l,o-a),f=KQ(r,a,o)&&a!==o,p=d>=kQ||f,m=JQ(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>kQ?Math.floor(n/kQ):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(OQ,n||0)));e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor,Gke(e,this,s,i,a),Kke(e,this,s,i,a),e.restore()}};function H0(e,t,n=t){e.lineCap=pQ(n.borderCapStyle,t.borderCapStyle),e.setLineDash(pQ(n.borderDash,t.borderDash)),e.lineDashOffset=pQ(n.borderDashOffset,t.borderDashOffset),e.lineJoin=pQ(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=pQ(n.borderWidth,t.borderWidth),e.strokeStyle=pQ(n.borderColor,t.borderColor)}function Jke(e,t,n){e.lineTo(n.x,n.y)}function Yke(e){return e.stepped?hDe:e.tension||e.cubicInterpolationMode===`monotone`?gDe:Jke}function U0(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 W0(e){let t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!==`monotone`&&!t.stepped&&!n?Zke:Xke}function Qke(e){return e.stepped?JDe:e.tension||e.cubicInterpolationMode===`monotone`?YDe:c1}function $ke(e,t,n,r){let i=t._path;i||(i=t._path=new Path2D,t.path(i,n,r)&&i.closePath()),H0(e,t.options),e.stroke(i)}function eAe(e,t,n,r){let{segments:i,options:a}=t,o=W0(t);for(let s of i)H0(e,a,s.style),e.beginPath(),o(e,t,s,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}var tAe=typeof Path2D==`function`;function nAe(e,t,n,r){tAe&&!t.options.segment?$ke(e,t,n,r):eAe(e,t,n,r)}var G0=class extends d0{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;BDe(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||=tOe(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=h1(this,{property:t,start:r,end:r});if(!a.length)return;let o=[],s=Qke(n),c,l;for(c=0,l=a.length;ce.replace(`rgb(`,`rgba(`).replace(`)`,`, 0.5)`));function $0(e){return Z0[e%Z0.length]}function e2(e){return Q0[e%Q0.length]}function uAe(e,t){return e.borderColor=$0(t),e.backgroundColor=e2(t),++t}function dAe(e,t){return e.backgroundColor=e.data.map(()=>$0(t++)),t}function fAe(e,t){return e.backgroundColor=e.data.map(()=>e2(t++)),t}function pAe(e){let t=0;return(n,r)=>{let i=e.getDatasetMeta(r).controller;i instanceof z1?t=dAe(n,t):i instanceof B1?t=fAe(n,t):i&&(t=uAe(n,t))}}function t2(e){let t;for(t in e)if(e[t].borderColor||e[t].backgroundColor)return!0;return!1}function mAe(e){return e&&(e.borderColor||e.backgroundColor)}function hAe(){return x$.borderColor!==`rgba(0,0,0,0.1)`||x$.backgroundColor!==`rgba(0,0,0,0.1)`}var gAe={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=t2(r)||mAe(i)||a&&t2(a)||hAe();if(!n.forceOverride&&o)return;let s=pAe(e);r.forEach(s)}};function _Ae(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 vAe(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(!cQ(d)&&!cQ(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 n2(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 r2(e){e.data.datasets.forEach(e=>{n2(e)})}function yAe(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=qQ(XQ(t,a.axis,o).lo,0,n-1)),i=l?qQ(XQ(t,a.axis,s).hi+1,r,n)-r:n-r,{start:r,count:i}}var bAe={id:`decimation`,defaults:{algorithm:`min-max`,enabled:!1},beforeElementsUpdate:(e,t,n)=>{if(!n.enabled){r2(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(L$([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}=yAe(s,c);if(d<=(n.threshold||4*r)){n2(t);return}cQ(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=_Ae(c,u,d,r,n);break;case`min-max`:f=vAe(c,u,d,r);break;default:throw Error(`Unsupported decimation algorithm '${n.algorithm}'`)}t._decimated=f})},destroy(e){r2(e)}};function xAe(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=a2(r,s,i);let c=i2(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=h1(t,c);for(let t of l){let r=i2(n,a[t.start],a[t.end],t.loop),s=m1(e,i,r);for(let e of s)o.push({source:e,target:t,start:{[n]:o2(c,r,`start`,Math.max)},end:{[n]:o2(c,r,`end`,Math.min)}})}}return o}function i2(e,t,n,r){if(r)return;let i=t[e],a=n[e];return e===`angle`&&(i=GQ(i),a=GQ(a)),{property:e,start:i,end:a}}function SAe(e,t){let{x:n=null,y:r=null}=e||{},i=t.points,a=[];return t.segments.forEach(({start:e,end:t})=>{t=a2(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 a2(e,t,n){for(;t>e;t--){let e=n[t];if(!isNaN(e.x)&&!isNaN(e.y))break}return t}function o2(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function s2(e,t){let n=[],r=!1;return lQ(e)?(r=!0,n=e):n=SAe(e,t),n.length?new G0({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function c2(e){return e&&e.fill!==!1}function CAe(e,t,n){let r=e[t].fill,i=[t],a;if(!n)return r;for(;r!==!1&&i.indexOf(r)===-1;){if(!dQ(r))return r;if(a=e[r],!a)return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function wAe(e,t,n){let r=OAe(e);if(uQ(r))return!isNaN(r.value)&&r;let i=parseFloat(r);return dQ(i)&&Math.floor(i)===i?TAe(r[0],t,i,n):[`origin`,`start`,`end`,`stack`,`shape`].indexOf(r)>=0&&r}function TAe(e,t,n,r){return(e===`-`||e===`+`)&&(n=t+n),n===t||n<0||n>=r?!1:n}function EAe(e,t){let n=null;return e===`start`?n=t.bottom:e===`end`?n=t.top:uQ(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function DAe(e,t,n){let r;return r=e===`start`?n:e===`end`?t.options.reverse?t.min:t.max:uQ(e)?e.value:t.getBaseValue(),r}function OAe(e){let t=e.options,n=t.fill,r=pQ(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?`origin`:r}function kAe(e){let{scale:t,index:n,line:r}=e,i=[],a=r.segments,o=r.points,s=AAe(t,n);s.push(s2({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&&u2(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;c2(n)&&u2(e.ctx,n,e.chartArea)}},beforeDatasetDraw(e,t,n){let r=t.meta.$filler;!c2(r)||n.drawTime!==`beforeDatasetDraw`||u2(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:`beforeDatasetDraw`}},h2=(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)}},VAe=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index,g2=class extends d0{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=hQ(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=I$(n.font),i=r.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:s}=h2(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}=HAe(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=l1(i,this.left,this.width);if(this.isHorizontal()){let i=0,o=r$(n,this.left+r,this.right-this.lineWidths[i]);for(let s of t)i!==s.row&&(i=s.row,o=r$(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=r$(n,this.top+e+r,this.bottom-this.columnSizes[i].height);for(let s of t)s.col!==i&&(i=s.col,o=r$(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;O$(e,this),this._draw(),k$(e)}}_draw(){let{options:e,columnSizes:t,lineWidths:n,ctx:r}=this,{align:i,labels:a}=e,o=x$.color,s=l1(e.rtl,this.left,this.width),c=I$(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}=h2(a,u),g=function(e,t,n){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;r.save();let i=pQ(n.lineWidth,1);if(r.fillStyle=pQ(n.fillStyle,o),r.lineCap=pQ(n.lineCap,`butt`),r.lineDashOffset=pQ(n.lineDashOffset,0),r.lineJoin=pQ(n.lineJoin,`miter`),r.lineWidth=i,r.strokeStyle=pQ(n.strokeStyle,o),r.setLineDash(pQ(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;E$(r,o,c,l,a.pointStyleWidth&&p)}else{let a=t+Math.max((u-m)/2,0),o=s.leftForLtr(e,p),c=P$(n.borderRadius);r.beginPath(),Object.values(c).some(e=>e!==0)?j$(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){A$(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:r$(i,this.left+l,this.right-n[0]),y:this.top+l+y,line:0}:{x:this.left+l,y:r$(i,this.top+y+l,this.bottom-t[0].height),line:0},u1(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=r$(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=r$(i,this.top+y+l,this.bottom-t[f.line].height));let w=s.x(S);if(g(w,C,o),S=aDe(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+=_2(o,e)+l}else f.y+=b}),d1(this.ctx,e.textDirection)}drawTitle(){let e=this.options,t=e.title,n=I$(t.font),r=F$(t.padding);if(!t.display)return;let i=l1(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=r$(e.align,u,this.right-d);else{let t=this.columnSizes.reduce((e,t)=>Math.max(e,t.height),0);l=c+r$(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}let f=r$(o,u,u+d);a.textAlign=i.textAlign(n$(o)),a.textBaseline=`middle`,a.strokeStyle=t.color,a.fillStyle=t.color,a.font=n.string,A$(a,t.text,f,l,n)}_computeTitleHeight(){let e=this.options.title,t=I$(e.font),n=F$(e.padding);return e.display?t.lineHeight+n.height:0}_getLegendItemAt(e,t){let n,r,i;if(JQ(e,this.left,this.right)&&JQ(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 WAe(e,t,n){let r=e;return typeof t.text!=`string`&&(r=_2(t,n)),r}function _2(e,t){return t*(e.text?e.text.length:0)}function GAe(e,t){return!!((e===`mousemove`||e===`mouseout`)&&(t.onHover||t.onLeave)||t.onClick&&(e===`click`||e===`mouseup`))}var KAe={id:`legend`,_element:g2,start(e,t,n){let r=e.legend=new g2({ctx:e.ctx,options:n,chart:e});t0.configure(e,r,n),t0.addBox(e,r)},stop(e){t0.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){let r=e.legend;t0.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=F$(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)}}},v2=class extends d0{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=lQ(n.text)?n.text.length:1;this._padding=F$(n.padding);let i=r*I$(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=r$(o,n,i),u=t+e,c=i-n):(a.position===`left`?(l=n+e,u=r$(o,r,t),s=OQ*-.5):(l=i-e,u=r$(o,t,r),s=OQ*.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=I$(t.font),r=n.lineHeight/2+this._padding.top,{titleX:i,titleY:a,maxWidth:o,rotation:s}=this._drawArgs(r);A$(e,t.text,0,0,n,{color:t.color,maxWidth:o,rotation:s,textAlign:n$(t.align),textBaseline:`middle`,translation:[i,a]})}};function qAe(e,t){let n=new v2({ctx:e.ctx,options:t,chart:e});t0.configure(e,n,t),t0.addBox(e,n),e.titleBlock=n}var JAe={id:`title`,_element:v2,start(e,t,n){qAe(e,n)},stop(e){let t=e.titleBlock;t0.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){let r=e.titleBlock;t0.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}},y2=new WeakMap,YAe={id:`subtitle`,start(e,t,n){let r=new v2({ctx:e.ctx,options:n,chart:e});t0.configure(e,r,n),t0.addBox(e,r),y2.set(e,r)},stop(e){t0.removeBox(e,y2.get(e)),y2.delete(e)},beforeUpdate(e,t,n){let r=y2.get(e);t0.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}},b2={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 XAe(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 C2(e,t){let n=e.chart.ctx,{body:r,footer:i,title:a}=e,{boxWidth:o,boxHeight:s}=t,c=I$(t.bodyFont),l=I$(t.titleFont),u=I$(t.footerFont),d=a.length,f=i.length,p=r.length,m=F$(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,gQ(e.title,y),n.font=c.string,gQ(e.beforeBody.concat(e.afterBody),y),v=t.displayColors?o+2+t.boxPadding:0,gQ(r,e=>{gQ(e.before,y),gQ(e.lines,y),gQ(e.after,y)}),v=0,n.font=u.string,gQ(e.footer,y),n.restore(),g+=m.width,{width:g,height:h}}function ZAe(e,t){let{y:n,height:r}=t;return ne.height-r/2?`bottom`:`center`}function QAe(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 $Ae(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`),QAe(l,e,t,n)&&(l=`center`),l}function w2(e,t,n){let r=n.yAlign||t.yAlign||ZAe(e,n);return{xAlign:n.xAlign||t.xAlign||$Ae(e,t,n,r),yAlign:r}}function eje(e,t){let{x:n,width:r}=e;return t===`right`?n-=r:t===`center`&&(n-=r/2),n}function tje(e,t,n){let{y:r,height:i}=e;return t===`top`?r+=n:t===`bottom`?r-=i+n:r-=i/2,r}function T2(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}=P$(o),m=eje(t,s),h=tje(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:qQ(m,0,r.width-t.width),y:qQ(h,0,r.height-t.height)}}function E2(e,t,n){let r=F$(n.padding);return t===`center`?e.x+e.width/2:t===`right`?e.x+e.width-r.right:e.x+r.left}function D2(e){return x2([],S2(e))}function nje(e,t,n){return R$(e,{tooltip:t,tooltipItems:n,type:`tooltip`})}function O2(e,t){let n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}var k2={beforeTitle:sQ,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=O2(n,e);x2(t.before,S2(A2(i,`beforeLabel`,this,e))),x2(t.lines,A2(i,`label`,this,e)),x2(t.after,S2(A2(i,`afterLabel`,this,e))),r.push(t)}),r}getAfterBody(e,t){return D2(A2(t.callbacks,`afterBody`,this,e))}getFooter(e,t){let{callbacks:n}=t,r=A2(n,`beforeFooter`,this,e),i=A2(n,`footer`,this,e),a=A2(n,`afterFooter`,this,e),o=[];return o=x2(o,S2(r)),o=x2(o,S2(i)),o=x2(o,S2(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))),gQ(o,t=>{let n=O2(e.callbacks,t);r.push(A2(n,`labelColor`,this,t)),i.push(A2(n,`labelPointStyle`,this,t)),a.push(A2(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=b2[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=C2(this,n),o=Object.assign({},e,t),s=w2(this.chart,n,o),c=T2(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}=P$(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=l1(n.rtl,this.x,this.width);for(e.x=E2(this,n.titleAlign,n),t.textAlign=c.textAlign(n.titleAlign),t.textBaseline=`middle`,a=I$(n.titleFont),o=n.titleSpacing,t.fillStyle=n.titleColor,t.font=a.string,s=0;se!==0)?(e.beginPath(),e.fillStyle=i.multiKeyBackground,j$(e,{x:t,y:p,w:c,h:s,radius:o}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),j$(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=I$(n.bodyFont),d=u.lineHeight,f=0,p=l1(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=E2(this,h,n),t.fillStyle=n.bodyColor,gQ(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=b2[e.position].call(this,this._active,this._eventPosition);if(!n)return;let a=this._size=C2(this,e),o=Object.assign({},n,this._size),s=w2(t,e,o),c=T2(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=F$(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),u1(e,t.textDirection),i.y+=a.top,this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),d1(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=!_Q(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||!_Q(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=b2[i.position].call(this,e,t);return a!==!1&&(n!==a.x||r!==a.y)}},rje=Object.freeze({__proto__:null,Colors:gAe,Decimation:bAe,Filler:BAe,Legend:KAe,SubTitle:YAe,Title:JAe,Tooltip:{id:`tooltip`,_element:j2,positioners:b2,afterInit(e,t,n){n&&(e.tooltip=new j2({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:k2},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`]}}),ije=(e,t,n,r)=>(typeof t==`string`?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function aje(e,t,n,r){let i=e.indexOf(t);return i===-1?ije(e,t,n,r):i===e.lastIndexOf(t)?i:n}var oje=(e,t)=>e===null?null:qQ(Math.round(e),0,t);function M2(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 cje(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=!cQ(a),_=!cQ(o),v=!cQ(c),y=(h-m)/(u+1),b=LQ((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=LQ(w*b/p/f)*f),cQ(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&&QEe((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=IQ(w,Math.round(w),b/1e3)?Math.round(w):Math.ceil(w));let T=Math.max(HQ(b),HQ(S));x=10**(cQ(s)?T:s),S=Math.round(S*x)/x,C=Math.round(C*x)/x;let E=0;for(g&&(d&&S!==a?(n.push({value:a}),So)break;n.push({value:e})}return _&&d&&C!==o?n.length&&IQ(n[n.length-1].value,o,N2(o,y,e))?n[n.length-1].value=o:n.push({value:o}):(!_||C===o)&&n.push({value:C}),n}function N2(e,t,{horizontal:n,minRotation:r}){let i=BQ(r),a=(n?Math.sin(i):Math.cos(i))||.001,o=.75*t*(``+e).length;return Math.min(t/a,o)}var P2=class extends v0{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 cQ(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=FQ(r),t=FQ(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=cje({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`&&zQ(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 m$(e,this.chart.options.locale,this.options.ticks.format)}},lje=class extends P2{static id=`linear`;static defaults={ticks:{callback:g$.formatters.numeric}};determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=dQ(e)?e:0,this.max=dQ(t)?t:1,this.handleTickRangeOptions()}computeTickLimit(){let e=this.isHorizontal(),t=e?this.width:this.height,n=BQ(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}},F2=e=>Math.floor(PQ(e)),I2=(e,t)=>10**(F2(e)+t);function L2(e){return e/10**F2(e)==1}function R2(e,t,n){let r=10**n,i=Math.floor(e/r);return Math.ceil(t/r)-i}function uje(e,t){let n=F2(t-e);for(;R2(e,t,n)>10;)n++;for(;R2(e,t,n)<10;)n--;return Math.min(n,F2(e))}function dje(e,{min:t,max:n}){t=fQ(e.min,t);let r=[],i=F2(t),a=uje(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=fQ(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=fQ(e.max,f);return r.push({value:p,major:L2(p),significand:d}),r}var fje=class extends v0{static id=`logarithmic`;static defaults={ticks:{callback:g$.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=P2.prototype.parse.apply(this,[e,t]);if(n===0){this._zero=!0;return}return dQ(n)&&n>0?n:null}determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=dQ(e)?Math.max(0,e):null,this.max=dQ(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!dQ(this._userMin)&&(this.min=e===I2(this.min,0)?I2(this.min,-1):I2(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(I2(n,-1)),a(I2(r,1)))),n<=0&&i(I2(r,-1)),r<=0&&a(I2(n,1)),this.min=n,this.max=r}buildTicks(){let e=this.options,t=dje({min:this._userMin,max:this._userMax},this);return e.bounds===`ticks`&&zQ(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`:m$(e,this.chart.options.locale,this.options.ticks.format)}configure(){let e=this.min;super.configure(),this._startValue=PQ(e),this._valueRange=PQ(this.max)-PQ(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(PQ(e)-this._startValue)/this._valueRange)}getValueForPixel(e){let t=this.getDecimalForPixel(e);return 10**(this._startValue+t*this._valueRange)}};function z2(e){let t=e.ticks;if(t.display&&e.display){let e=F$(t.backdropPadding);return pQ(t.font&&t.font.size,x$.font.size)+e.height}return 0}function pje(e,t,n){return n=lQ(n)?n:[n],{w:mDe(e,t.string,n),h:n.length*t.lineHeight}}function B2(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 mje(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?OQ/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 gje(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(VQ(GQ(c.angle+jQ))),u=xje(c.y,s.h,l),d=yje(l),f=bje(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 _je(e,t){if(!t)return!0;let{left:n,top:r,right:i,bottom:a}=e;return!(D$({x:n,y:r},t)||D$({x:n,y:a},t)||D$({x:i,y:r},t)||D$({x:i,y:a},t))}function vje(e,t,n){let r=[],i=e._pointLabels.length,a=e.options,{centerPointLabels:o,display:s}=a.pointLabels,c={extra:z2(a)/2,additionalAngle:o?OQ/i:0},l;for(let a=0;a270||n<90)&&(e-=t),e}function Sje(e,t,n){let{left:r,top:i,right:a,bottom:o}=n,{backdropColor:s}=t;if(!cQ(s)){let n=P$(t.borderRadius),c=F$(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(),j$(e,{x:l,y:u,w:d,h:f,radius:n}),e.fill()):e.fillRect(l,u,d,f)}}function Cje(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));Sje(n,a,t);let o=I$(a.font),{x:s,y:c,textAlign:l}=t;A$(n,e._pointLabels[i],s,c+o.lineHeight/2,o,{color:a.color,textAlign:l,textBaseline:`middle`})}}function V2(e,t,n,r){let{ctx:i}=e;if(n)i.arc(e.xCenter,e.yCenter,t,0,kQ);else{let n=e.getPointPosition(0,t);i.moveTo(n.x,n.y);for(let a=1;a{let n=hQ(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?mje(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=kQ/(this._pointLabels.length||1),n=this.options.startAngle||0;return GQ(e*t+BQ(n))}getDistanceFromCenterForValue(e){if(cQ(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(cQ(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);wje(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=I$(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=F$(s.backdropPadding);e.fillRect(-a/2-t.left,-i-c.size/2-t.top,a+t.width,c.size+t.height)}A$(e,r.label,0,-i,c,{color:s.color,strokeColor:s.textStrokeColor,strokeWidth:s.textStrokeWidth})}),e.restore()}drawTitle(){}},H2={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}},U2=Object.keys(H2);function W2(e,t){return e-t}function G2(e,t){if(cQ(t))return null;let n=e._adapter,{parser:r,round:i,isoWeekday:a}=e._parseOpts,o=t;return typeof r==`function`&&(o=r(o)),dQ(o)||(o=typeof r==`string`?n.parse(o,r):n.parse(o)),o===null?null:(i&&(o=i===`week`&&(RQ(a)||a===!0)?n.startOf(o,`isoWeek`,a):n.startOf(o,i)),+o)}function K2(e,t,n,r){let i=U2.length;for(let a=U2.indexOf(e);a=U2.indexOf(n);a--){let n=U2[a];if(H2[n].common&&e._adapter.diff(i,r,n)>=t-1)return n}return U2[n?U2.indexOf(n):0]}function Oje(e){for(let t=U2.indexOf(e)+1,n=U2.length;t=t?n[r]:n[i];e[a]=!0}}function kje(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 J2(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=qQ(t,0,a),n=qQ(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||K2(i.minUnit,t,n,this._getLabelCapacity(t)),o=pQ(r.ticks.stepSize,1),s=a===`week`&&i.isoWeekday,c=RQ(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 hQ(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}=XQ(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}=XQ(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 Aje=class extends Y2{static id=`timeseries`;static defaults=Y2.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=X2(t,this.min),this._tableRange=X2(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(X2(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){let t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end;return X2(this._table,n*this._tableRange+this._minPos,!0)}},jje=[MOe,lAe,rje,Object.freeze({__proto__:null,CategoryScale:sje,LinearScale:lje,LogarithmicScale:fje,RadialLinearScale:Eje,TimeScale:Y2,TimeSeriesScale:Aje})];R0.register(...jje);var Mje=R0,Nje=V(``);function Z2(e,t){k(t,!0);let n=Ri(t,`class`,3,``),r=Ri(t,`ariaLabel`,3,``);function i(e){if(Ji.tick,typeof t.build!=`function`)return;let n=t.build();if(!n)return;let r=new Mje(e.getContext(`2d`),n);return()=>r.destroy()}var a=Nje();oi(a,()=>i),R(()=>{K(a,1,ci(n())),q(a,`aria-label`,r())}),H(e,a),A()}var Pje=V(``),Fje=V(`
`);function Q2(e,t){k(t,!0);let n=Ri(t,`options`,19,()=>[]),r=Ri(t,`ariaLabel`,3,``),i=Ri(t,`class`,3,``);var a=Fje();G(a,21,n,e=>e.value,(e,n)=>{var r=Pje();let i;var a=F(r,!0);O(r),R(()=>{i=K(r,1,`segmented-btn svelte-92fh5i`,null,i,{active:t.value===z(n).value}),q(r,`aria-pressed`,t.value===z(n).value),U(a,z(n).label)}),B(`click`,r,()=>t.onchange?.(z(n).value)),H(e,r)}),O(a),R(()=>{K(a,1,ci([`segmented-control`,i()]),`svelte-92fh5i`),q(a,`aria-label`,r())}),H(e,a),A()}br([`click`]);function $2(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function e4(){return{grid:$2(`--chart-grid`),text:$2(`--chart-text`),dayMarker:$2(`--chart-day-marker`),tooltipBg:$2(`--chart-tooltip-bg`),tooltipBorder:$2(`--chart-tooltip-border`),tooltipText:$2(`--chart-tooltip-text`)}}function t4(){return{size:11,family:`'SF Mono', Menlo, Consolas, monospace`}}function n4(e,t){return{backgroundColor:e.tooltipBg,borderColor:e.tooltipBorder,borderWidth:1,titleColor:e.tooltipText,bodyColor:e.tooltipText,callbacks:t}}function r4(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 i4=[`#c2845a`,`#7a9e7e`,`#d4a574`,`#b8a98e`,`#8b9e6b`,`#7d8a97`,`#c47a5a`,`#6b8e6b`,`#a09486`,`#9b7ea4`,`#c49a6c`];function Ije(){return[...i4]}function a4(e){let t=5381,n=String(e||``);for(let e=0;ehZ(e)}}var u4={seconds:{apiName:`second`,windowLabel:Pc,refreshMs:2e3},minutes:{apiName:`minute`,windowLabel:Lc,refreshMs:5e3},hours:{apiName:`hour`,windowLabel:Bc,refreshMs:2e4},days:{apiName:`day`,windowLabel:Uc,refreshMs:6e4}};function Rje(){return[{value:`seconds`,label:Sc()},{value:`minutes`,label:Tc()},{value:`hours`,label:Oc()},{value:`days`,label:jc()}]}function d4(){return{input:0,output:0,prompt:0,local:0}}function f4(e){return String(e).padStart(2,`0`)}function p4(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:0}function zje(e,t){if(!Number.isFinite(t))return``;let n=new Date(t);switch(e){case`seconds`:return f4(n.getHours())+`:`+f4(n.getMinutes())+`:`+f4(n.getSeconds());case`minutes`:return f4(n.getHours())+`:`+f4(n.getMinutes());case`hours`:return f4(n.getHours())+`:00`;default:return f4(n.getMonth()+1)+`-`+f4(n.getDate())}}function Bje(e,t){let n=[],r=[],i={input:[],output:[],prompt:[],local:[]},a=d4();for(let o of e||[]){let e=Date.parse(o&&o.start),s=p4(o&&o.input_tokens),c=p4(o&&o.output_tokens),l=p4(o&&o.prompt_cached_tokens),u=p4(o&&o.locally_cached_tokens);n.push(zje(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 Vje(e){let t=e||d4();return t.input+t.output+t.prompt+t.local>0}function m4(e,t){return hZ(Math.max(0,Math.round(e&&e[t]||0)))}function h4(e){return(u4[e]||u4.minutes).windowLabel()}function Hje(e,t){return jl({window:h4(t).toLowerCase(),input:m4(e,`input`),output:m4(e,`output`),prompt:m4(e,`prompt`),local:m4(e,`local`)})}function Uje(e,t,n,r){let i=e=>hZ(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}),Qc({total:i(t)})}})}}}}var Wje=900,g4=new class{#e=M(`minutes`);get granularity(){return z(this.#e)}set granularity(e){N(this.#e,e,!0)}#t=M(P([]));get buckets(){return z(this.#t)}set buckets(e){N(this.#t,e,!0)}#n=M(!1);get active(){return z(this.#n)}set active(e){N(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){!u4[e]||e===this.granularity||(this.granularity=e,this.buckets=[],this.#l(),this.fetch())}#l(){this.#r&&=(clearInterval(this.#r),null);let e=u4[this.granularity]||u4.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()},Wje))}async fetch(){if(!this.active||this.#c)return;this.#c=!0;let e=this.granularity;try{let t=await YX(`/admin/usage/throughput?granularity=`+(u4[e]||u4.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(ZX(e))return;console.error(`Failed to fetch token throughput:`,e)}finally{this.#c=!1,this.active&&this.granularity!==e&&this.fetch()}}async#u(){await QX.ensureLoaded(),this.active&&QX.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 qX(`/admin/live/logs?types=usage`,{signal:e.signal});if(!n.ok||!n.body||typeof n.body.getReader!=`function`){t();return}this.#o=0,await o4(n.body.getReader(),e=>this.#f(e)),t()}catch(n){if(ZX(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}=c4(this.#o);this.#o=e,this.#a=setTimeout(()=>{this.#a=null,this.#u()},t)}},Gje=V(`
`),Kje=V(`
`),qje=V(`

`);function Jje(e,t){k(t,!0);let n=j(()=>Bje(g4.buckets,g4.granularity)),r=j(()=>z(n).totals);function i(){return{input:r4(`var(--token-input)`),output:r4(`var(--token-output)`),prompt:r4(`var(--token-prompt)`),local:r4(`var(--token-local)`)}}let a=[{metric:`input`,label:Ho,colorVar:`--token-input`},{metric:`output`,label:Uo,colorVar:`--token-output`},{metric:`prompt`,label:Kc,colorVar:`--token-prompt`},{metric:`local`,label:Yc,colorVar:`--token-local`}];var o=qje(),s=F(o),c=F(s),l=F(c),u=F(l,!0);O(l);var d=L(l,2),f=F(d);let p;var m=L(f,2),h=F(m,!0);O(m),O(d),O(c);var g=L(c,2);{let e=j(()=>gc()),t=j(Rje);Q2(g,{get ariaLabel(){return z(e)},get options(){return z(t)},get value(){return g4.granularity},onchange:e=>g4.setGranularity(e)})}O(s);var _=L(s,2);G(_,21,()=>a,e=>e.metric,(e,t)=>{var n=Gje(),i=F(n),a=L(i,2),o=F(a,!0);O(a);var s=L(a,2),c=F(s,!0);O(s),O(n),R((e,n)=>{pi(i,`background: var(${z(t).colorVar??``})`),U(o,e),U(c,n)},[()=>z(t).label(),()=>m4(z(r),z(t).metric)]),H(e,n)}),O(_);var v=L(_,2),y=F(v);{let e=j(()=>Hje(z(r),g4.granularity));Z2(y,{get ariaLabel(){return z(e)},build:()=>Uje(e4(),i(),z(n),g4.granularity)})}var b=L(y,2),x=e=>{var t=Kje(),n=F(t),r=F(n,!0);O(n),O(t),R(e=>U(r,e),[()=>yc()]),H(e,t)},S=j(()=>!Vje(z(r)));W(b,e=>{z(S)&&e(x)}),O(v),O(o),R((e,t)=>{U(u,e),p=K(f,1,`live-dot`,null,p,{"is-streaming":g4.active}),U(h,t)},[()=>pc(),()=>h4(g4.granularity)]),H(e,o),A()}function Yje(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 _4(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 v4(e,t,n){let r=Number(e&&e.total_requests||0);return(Number.isFinite(r)?r:0)+_4(t,n)}function Xje(e,t,n){let r=_4(t,n);return r<=0?``:tl({provider:EZ(v4(e,t,n)-r),cache:EZ(r)})}function Zje(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 y4(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:ys(),tokens:a+s,colorVar:`--cache-meter-uncached`,note:s>0?Ss({count:EZ(s)}):``},{key:`prompt`,label:Ts(),tokens:o,colorVar:`--cache-meter-prompt`,note:Os()},{key:`local`,label:js(),tokens:l,colorVar:`--cache-meter-local`,note:Ps()}]}function Qje(e,t,n){return y4(e,t,n).reduce((e,t)=>e+t.tokens,0)}function $je(e,t,n){return Qje(e,t,n)>0}function b4(e,t,n){let r=y4(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 eMe(e,t,n){return b4(e,t,n).filter(e=>e.tokens>0)}function x4(e){let t=[il({label:e.label,tokens:EZ(e.tokens),percent:e.pct})];return e.note&&t.push(e.note),t.join(` -`)}function tMe(e){let t=(e||[]).map(e=>e.label+` `+e.pct+`%`);return Ls({details:t.length?t.join(`, `):sl()})}function nMe(e){return e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`)}function S4(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=nMe(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 rMe(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 C4(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 iMe(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 w4(e){return iMe(e)?Math.round(C4(e))+`%`:`—`}function aMe(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(Ho(),t.inputPaid,i(`var(--token-input)`),{fill:`origin`}),o(Uo(),t.output,i(`var(--token-output)`),{fill:`-1`}),o(Kc(),t.prompt,i(`var(--token-prompt)`),{fill:`-1`,borderDash:[6,4]})];return r&&s.push(o(Yc(),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:n4(e,{label:e=>e.dataset.label+`: `+EZ(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),Qc({total:EZ(t)})}})},scales:{x:{stacked:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:t4(),maxRotation:0,autoSkip:!0,maxTicksLimit:10}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:l4(e)}}}}}function oMe(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 T4=`gomodel_provider_status_details_expanded`,E4=`gomodel_provider_card_expanded_overrides`,sMe=3e3,cMe=`https://gomodel.enterpilot.io/docs/providers/`,lMe={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 D4(){return{summary:{total:0,healthy:0,degraded:0,unhealthy:0,overall_status:`degraded`},providers:[]}}function uMe(e){let t={detailsExpanded:!1,cardOverrides:{}};try{if(e){let n=e.getItem(T4);n===`true`||n===`false`?t.detailsExpanded=n===`true`:e.setItem(T4,`false`);let r=JSON.parse(e.getItem(E4)||`{}`);r&&typeof r==`object`&&!Array.isArray(r)&&(t.cardOverrides=r)}}catch{}return t}function dMe(e,t){if(e)try{e.setItem(T4,t?`true`:`false`)}catch{}}function O4(e,t){if(e)try{e.setItem(E4,JSON.stringify(t))}catch{}}function fMe(e,t,n){let r=n&&n.name?String(n.name):``;return r&&Object.prototype.hasOwnProperty.call(e,r)?e[r]===!0:t}function pMe(e){return`is-`+(String(e&&e.overall_status||`degraded`).trim()||`degraded`)}function mMe(e){return`is-`+(String(e||`degraded`).trim()||`degraded`)}function hMe(e){let t=e||{};return String(t.healthy||0)+`/`+String(t.total||0)}function gMe(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 k4(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 yMe(e,t){let n=k4(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 bMe(e,t){let n=k4(e);return n?typeof t==`function`?t(n):String(n):``}function A4(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 j4(e){let t=String(e&&(e.type||e.config&&e.config.type)||``).trim().toLowerCase(),n=t?lMe[t]:``;return n?cMe+n+`?utm_source=gomodel_dashboard`:``}function xMe(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 SMe(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 CMe(e){let t=e&&e.config&&Array.isArray(e.config.models)?e.config.models.filter(Boolean):[];return t.length===0?is():t.join(`, `)}function wMe(e){if(!e)return``;let t=[];return e.status_reason&&t.push(String(e.status_reason)),e.last_error&&t.push(ss({error:String(e.last_error)})),t.join(` - -`)}function M4(e){let t=e&&e.request_health;return t&&typeof t==`object`?t:null}function N4(e){let t=M4(e);return t?String(t.circuit_state||``).trim():``}function TMe(e){let t=N4(e);return t?t.charAt(0).toUpperCase()+t.slice(1):``}function EMe(e){let t=N4(e);return t===`open`?`is-unhealthy`:t===`half-open`?`is-degraded`:`is-healthy`}function DMe(e){let t=M4(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 P4(e){let t=M4(e);return t&&Array.isArray(t.models)?t.models:[]}function OMe(e){return e?String(Number(e.errors||0))+`/`+String(Number(e.requests||0))+` failed`:``}function kMe(e){let t=e&&e.last_error;return!t||!t.message?``:(t.status_code?`HTTP `+String(t.status_code)+`: `:``)+t.message}function F4(){return{name:``,slug:``,url:``,transport:`http`,description:``,enabled:!0,headers:[],allowed_tools:``,disallowed_tools:``,user_paths:``,tool_timeout_seconds:``}}function I4(){return{server:``,status:``,instructions:``,tools:[],prompts:[],resources:[],templates:[]}}function L4(e){return String(e&&(e.slug||e.name)||``).trim()}function R4(e){return String(e&&e.status||``).trim()||`connecting`}function AMe(e){let t={connected:iCe,degraded:sCe,connecting:uCe,disabled:pCe},n=R4(e);return t[n]?.()||n}function z4(e){switch(R4(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 jMe(e,t){let n=R4(e),r=String(e&&e.last_error||``).trim();return r&&n!==`connected`?r:n===`connected`&&e&&e.connected_at?aB({date:(typeof t==`function`?t:String)(e.connected_at)}):``}function B4(e){return String(e&&e.transport||``)===`stdio`?cB():String(e&&e.url||``).trim()||`—`}function MMe(e){return dB({prompts:Number(e&&e.prompt_count||0),resources:Number(e&&e.resource_count||0)})}function V4(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 NMe(e){return String(e||``).split(` -`).map(e=>e.trim()).filter(e=>e)}function PMe(e){return!e||typeof e!=`object`||Array.isArray(e)?[]:Object.keys(e).sort().map(t=>({name:t,value:String(e[t]||``)}))}function FMe(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 IMe(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 LMe(e){return{name:String(e.name||``).trim(),slug:L4(e),url:String(e.url||``).trim(),transport:e.transport===`sse`?`sse`:`http`,description:String(e.description||``).trim(),enabled:e.enabled!==!1,headers:PMe(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 RMe(e,t,n){let r=String(e.name||``).trim(),i=String(e.slug||V4(r)).trim().toLowerCase(),a=String(e.url||``).trim(),o=e.transport===`sse`?`sse`:`http`;if(!r)return{error:mB()};if(!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(i))return{error:_B()};if(t===`create`&&(n||[]).some(e=>L4(e)===i))return{error:bB({slug:i})};if(!a)return{error:CB()};let s,c=String(e.tool_timeout_seconds||``).trim();if(c!==``){let e=Number(c);if(!Number.isSafeInteger(e)||e<0)return{error:EB()};s=e}return{payload:{name:r,slug:i,url:a,transport:o,headers:FMe(e.headers),description:String(e.description||``).trim(),enabled:!!e.enabled,allowed_tools:lZ(e.allowed_tools),disallowed_tools:lZ(e.disallowed_tools),user_paths:NMe(e.user_paths),tool_timeout_seconds:s}}}function zMe(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 BMe(e,t){return String(e&&e.server||``)+`_`+String(t||``)}function H4(e){let t=e||I4(),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:BMe(t,n.name),description:String(n.description||``).trim()});return[{key:`tools`,title:kB(),items:(t.tools||[]).map(r(`tool`))},{key:`prompts`,title:MB(),items:(t.prompts||[]).map(r(`prompt`))},{key:`resources`,title:FB(),items:(t.resources||[]).map(e=>({key:`resource:`+String(e.uri||``),name:String(e.uri||``),aggregated:``,description:n(e.name,e.description)}))},{key:`templates`,title:RB(),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 VMe(e){return H4(e).length===0}function U4(e){return(e||[]).length}function W4(e){return(e||[]).filter(e=>R4(e)===`connected`).length}function G4(e){return(e||[]).filter(e=>e&&e.enabled!==!1&&R4(e)===`degraded`).length}function HMe(e,t){return!!e&&U4(t)>0}function UMe(e){return String(W4(e))+`/`+String(U4(e))}function WMe(e){return G4(e)>0?`is-degraded`:`is-healthy`}function GMe(e){let t=G4(e);if(t>0)return pl({count:t});let n=U4(e),r=W4(e);return n>0&&r===n?us():gl({connected:r,total:n})}function K4(){return{interval:`day`,buckets:[],summary:{requests:0},provider_latency:[]}}function KMe(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 qMe(e){return Number(e&&e.summary&&e.summary.requests||0)>0}function JMe(e){return(e&&Array.isArray(e.provider_latency)?e.provider_latency:[]).length>0}function YMe(e){let t=e&&e.summary?e.summary.success_rate:null;return t==null?`—`:(Math.round(Number(t)*1e3)/10).toFixed(1)+`%`}function q4(e,t){return Number(e&&e.summary&&e.summary[t]||0)}function J4(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 XMe(e){let t=e&&e.summary?e.summary.avg_duration_ms:null;return t==null?`—`:J4(Number(t))}function Y4(e,t){try{let n={},r=Y();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(Y(),{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 X4(e,t,n){let r=new Date(e.start);if(Number.isNaN(r.getTime()))return String(e.start||``);let i=Y4(r,n),a=i.shortDate;return t!==`hour`||i.hour===0?a:String(i.hour).padStart(2,`0`)+`:00`}function Z4(e,t,n,r){let i=new Date(e.start);return Number.isNaN(i.getTime())?String(e.start||``):t===`hour`?r(e.start):Y4(i,n).fullDate}function ZMe(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 QMe(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=>X4(e,r,i)),c=ZMe(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(Pl(),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:n4(e,{title:e=>e.length?Z4(t[e[0].dataIndex],r,i,o):``,label:e=>e.dataset.label+`: `+EZ(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),Qc({total:EZ(t)})}})},scales:{x:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:t4(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:t4(),precision:0,callback:e=>hZ(e)}}}}}}function Q4(e=Ije()){let t={};return function(n){return n in t||(t[n]=e[Object.keys(t).length%e.length]),t[n]}}function $Me(e,t,n,r={}){let i=r.interval===`hour`?`hour`:`day`,a=r.zone,o=r.formatTimestamp||(e=>String(e)),s=r.providerColor||Q4();return{type:`line`,data:{labels:t.map(e=>X4(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:n4(e,{title:e=>e.length?Z4(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+`: `+J4(e.parsed.y)+(r>0?` (`+r.toLocaleString()+` req)`:``)}})},scales:{x:{grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:t4(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:t4(),callback:e=>J4(e)}}}}}}var eNe=class{#e=M(P(D4()));get status(){return z(this.#e)}set status(e){N(this.#e,e,!0)}#t=M(!1);get loading(){return z(this.#t)}set loading(e){N(this.#t,e,!0)}#n=M(!1);get loadedOnce(){return z(this.#n)}set loadedOnce(e){N(this.#n,e,!0)}#r=M(!1);get detailsExpanded(){return z(this.#r)}set detailsExpanded(e){N(this.#r,e,!0)}#i=M(P({}));get cardOverrides(){return z(this.#i)}set cardOverrides(e){N(this.#i,e,!0)}#a=null;#o=null;#s=!1;initPreferences(){if(this.#s)return;this.#s=!0;let e=uMe(Ui());this.detailsExpanded=e.detailsExpanded,this.cardOverrides=e.cardOverrides}cardExpanded(e){return fMe(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,O4(Ui(),this.cardOverrides)}toggleDetails(){this.detailsExpanded=!this.detailsExpanded,this.cardOverrides={},dMe(Ui(),this.detailsExpanded),O4(Ui(),this.cardOverrides)}detailsToggleLabel(){return this.detailsExpanded?qpe():Wpe()}async fetch(){this.initPreferences(),this.#a&&this.#a.abort();let e=new AbortController;this.#a=e,this.loading=!0;try{let t=await YX(`/admin/providers/status`,{label:`provider status`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.status=D4(),this.#l();return}let n=t.data&&typeof t.data==`object`?t.data:D4();n.summary||=D4().summary,Array.isArray(n.providers)||(n.providers=[]),this.status=n,this.#c()}catch(e){if(ZX(e))return;console.error(`Failed to fetch provider status:`,e),this.status=D4(),this.#l()}finally{this.#a===e&&(this.#a=null,this.loading=!1,this.loadedOnce=!0)}}#c(){this.#l(),vMe(this.status.providers)&&(this.#o=setTimeout(()=>{this.#o=null,this.fetch()},sMe))}#l(){this.#o&&=(clearTimeout(this.#o),null)}stopPolling(){this.#l()}},tNe=class{#e=M(P(K4()));get stats(){return z(this.#e)}set stats(e){N(this.#e,e,!0)}#t=M(!1);get loading(){return z(this.#t)}set loading(e){N(this.#t,e,!0)}#n=0;async fetch(){let e=++this.#n;this.loading=!0;try{let t=await YX(`/admin/audit/stats?`+AZ.queryStr(),{label:`audit stats`});if(t.stale||e!==this.#n)return;if(!t.ok){this.stats=K4();return}this.stats=KMe(t.data)}catch(t){if(console.error(`Failed to fetch audit stats:`,t),e!==this.#n)return;this.stats=K4()}finally{e===this.#n&&(this.loading=!1)}}},nNe=class{#e=M(P([]));get servers(){return z(this.#e)}set servers(e){N(this.#e,e,!0)}#t=M(!1);get available(){return z(this.#t)}set available(e){N(this.#t,e,!0)}#n=M(!1);get loading(){return z(this.#n)}set loading(e){N(this.#n,e,!0)}async fetch(){if(await QX.ensureLoaded(),!QX.mcpVisible()){this.available=!1,this.servers=[];return}this.loading=!0;try{let e=await YX(`/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}}},rNe=class{#e=M(P([]));get data(){return z(this.#e)}set data(e){N(this.#e,e,!0)}#t=M(`tokens`);get mode(){return z(this.#t)}set mode(e){N(this.#t,e,!0)}#n=M(!1);get loading(){return z(this.#n)}set loading(e){N(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 YX(`/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(ZX(e))return;console.error(`Failed to fetch calendar data:`,e),this.data=[]}finally{this.#r===e&&(this.#r=null,this.loading=!1)}}},$4=new eNe,e3=new tNe,t3=new nNe,n3=new rNe,r3=(e,t=f,n=f,r=f,i=f)=>{var a=iNe(),o=F(a),s=F(o,!0);O(o);var c=L(o,2),l=F(c),u=F(l),d=F(u,!0);O(u),Be(),O(l);var p=L(l,4),m=F(p),h=F(m,!0);O(m),Be(),O(p);var g=L(p,4),_=F(g,!0);O(g),O(c),O(a),R((e,n,r,i,a,o)=>{U(s,t()),q(l,`title`,e),U(d,n),q(p,`title`,r),U(h,i),q(g,`title`,a),U(_,o)},[()=>gZ(Tfe(),n()),()=>hZ(n()),()=>gZ(Ofe(),r()),()=>hZ(r()),()=>gZ(Ffe(),i()),()=>hZ(i())]),H(e,a)},i3=(e,t=f,n=f,r=f,i=f,a=f,o=f)=>{var s=sNe(),c=F(s),l=F(c,!0);O(c);var u=L(c,2),d=F(u,!0);O(u);var p=L(u,2),m=e=>{var t=aNe(),n=F(t,!0);O(t),R(()=>{q(t,`aria-label`,o().title),q(t,`title`,o().title),U(n,a())}),B(`click`,t,function(...e){o().onclick?.apply(this,e)}),H(e,t)},h=e=>{var t=oNe(),n=F(t,!0);O(t),R(()=>U(n,a())),H(e,t)};W(p,e=>{o()?e(m):e(h,-1)}),O(s),R(()=>{K(s,1,`card provider-status-flag ${t()??``} ${n()??``}`,`svelte-6tr9cf`),U(l,r()),U(d,i())}),H(e,s)},iNe=V(`
i + o =
`),aNe=V(``),oNe=V(` `),sNe=V(`
`),cNe=V(`
`),lNe=V(`
`);function uNe(e,t){k(t,!0);let n=j(()=>FZ.summary),r=j(()=>FZ.cacheOverview),i=j(()=>FZ.cacheAnalyticsEnabled()),a=j(()=>$4.status.summary);function o(){let e=document.getElementById(`provider-status-section`);e&&(e.scrollIntoView({behavior:`smooth`,block:`start`}),e.focus({preventScroll:!0}))}var s=lNe(),c=F(s);{let e=j(()=>Vo()),t=j(()=>Yje(z(n)));r3(c,()=>z(e),()=>z(n).total_input_tokens,()=>z(n).total_output_tokens,()=>z(t))}var l=L(c,2),u=F(l),d=F(u,!0);O(u);var f=L(u,2),p=F(f,!0);O(f),O(l);var m=L(l,2),h=e=>{var t=cNe(),n=F(t),i=F(n,!0);O(n);var a=L(n,2),o=F(a,!0);O(a),O(t),R((e,t)=>{U(i,e),U(o,t)},[()=>Go(),()=>dZ(z(r).summary.total_hits)]),H(e,t)};W(m,e=>{z(i)&&e(h)});var g=L(m,2),_=F(g),v=F(_,!0);O(_);var y=L(_,2),b=F(y,!0);O(y),O(g);var x=L(g,2),S=e=>{{let t=j(()=>Wfe()),n=j(()=>Zje(z(r)));r3(e,()=>z(t),()=>z(r).summary.total_input_tokens,()=>z(r).summary.total_output_tokens,()=>z(n))}};W(x,e=>{z(i)&&e(S)});var C=L(x,2),w=F(C),T=F(w,!0);O(w);var E=L(w,2),D=F(E);Z2(D,{build:()=>oMe(C4(z(n)),r4(`var(--token-prompt)`),r4(`var(--bg-surface-hover)`))});var ee=L(D,2),te=F(ee,!0);O(ee),O(E),O(C);var ne=L(C,2),re=e=>{{let t=j(()=>pMe(z(a))),n=j(()=>npe()),r=j(()=>hMe(z(a))),i=j(()=>_Me(z(a))),s=j(()=>gMe(z(a))?{title:ape(),onclick:o}:null);i3(e,()=>`provider-status-overview-card`,()=>z(t),()=>z(n),()=>z(r),()=>z(i),()=>z(s))}};W(ne,e=>{z(a).total>0&&e(re)});var ie=L(ne,2),ae=e=>{{let t=j(()=>WMe(t3.servers)),n=j(()=>po()),r=j(()=>UMe(t3.servers)),i=j(()=>GMe(t3.servers)),a=j(()=>({title:cpe(),onclick:()=>TX.navigate(`mcp-servers`)}));i3(e,()=>`mcp-servers-flag`,()=>z(t),()=>z(n),()=>z(r),()=>z(i),()=>z(a))}},oe=j(()=>HMe(t3.available,t3.servers));W(ie,e=>{z(oe)&&e(ae)}),O(s),R((e,t,n,r,i,a,o,s,c)=>{U(d,e),q(f,`title`,t),U(p,n),U(v,r),U(b,i),q(C,`title`,a),U(T,o),q(E,`aria-label`,s),U(te,c)},[()=>Wo(),()=>Xje(z(n),z(r),z(i)),()=>dZ(v4(z(n),z(r),z(i))),()=>Ko(),()=>fZ(z(n).total_cost),()=>Xfe(),()=>qfe(),()=>$fe({rate:w4(z(n))}),()=>w4(z(n))]),H(e,s),A()}br([`click`]);var dNe=V(` `),fNe=V(`
`),pNe=V(` `),mNe=V(`
`),hNe=V(`

`);function gNe(e,t){k(t,!0);let n=j(()=>FZ.cacheAnalyticsEnabled()),r=j(()=>b4(FZ.summary,FZ.cacheOverview,z(n))),i=j(()=>eMe(FZ.summary,FZ.cacheOverview,z(n))),a=j(()=>$je(FZ.summary,FZ.cacheOverview,z(n)));var o=hNe(),s=F(o),c=F(s),l=F(c,!0);O(c);var u=L(c,2),d=F(u,!0);O(u),O(s);var f=L(s,2);let p;var m=F(f);G(m,17,()=>z(i),e=>e.key,(e,t)=>{var n=fNe(),r=F(n),i=e=>{var n=dNe(),r=F(n);O(n),R(()=>U(r,`${z(t).pct??``}%`)),H(e,n)};W(r,e=>{z(t).pct>=8&&e(i)}),O(n),R(e=>{pi(n,`width: ${z(t).pct??``}%; background: var(${z(t).colorVar??``})`),q(n,`title`,e)},[()=>x4(z(t))]),H(e,n)});var h=L(m,2),g=e=>{var t=pNe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>gs()]),H(e,t)};W(h,e=>{z(a)||e(g)}),O(f);var _=L(f,2);G(_,21,()=>z(r),e=>e.key,(e,t)=>{var n=mNe(),r=F(n),i=L(r,2),a=F(i,!0);O(i);var o=L(i,2),s=F(o);O(o);var c=L(o,2),l=F(c,!0);O(c),O(n),R((e,i)=>{q(n,`title`,e),pi(r,`background: var(${z(t).colorVar??``})`),U(a,z(t).label),U(s,`${z(t).pct??``}%`),U(l,i)},[()=>x4(z(t)),()=>dZ(z(t).tokens)]),H(e,n)}),O(_),O(o),R((e,t,n)=>{U(l,e),U(d,t),p=K(f,1,`cache-meter-bar svelte-1yzecxj`,null,p,{"is-empty":!z(a)}),q(f,`aria-label`,n)},[()=>Vo(),()=>ps(),()=>tMe(z(i))]),H(e,o),A()}var _Ne=V(``);function a3(e,t){let n=Ri(t,`size`,3,16),r=Ri(t,`label`,3,`Loading`),i=Ri(t,`class`,3,``);var a=_Ne();R(()=>{K(a,1,ci([`spinner`,i()]),`svelte-b54l9o`),pi(a,`--spinner-size: ${n()??``}px`),q(a,`aria-label`,r())}),H(e,a)}var vNe=Tr(` `),yNe=Tr(``);function o3(e,t){let n=Ri(t,`label`,3,`No data`);var r=yNe(),i=L(F(r),9),a=e=>{var t=vNe(),r=F(t,!0);O(t),R(()=>U(r,n())),H(e,t)};W(i,e=>{n()&&e(a)}),O(r),R(()=>{q(r,`role`,n()?`img`:void 0),q(r,`aria-label`,n()||void 0),q(r,`aria-hidden`,n()?void 0:`true`)}),H(e,r)}var s3=V(`
`),bNe=V(`

`);function xNe(e,t){k(t,!0);let n=[{value:`daily`,label:Bee},{value:`weekly`,label:Uee},{value:`monthly`,label:Kee},{value:`yearly`,label:Yee}];function r(e){AZ.interval=e,t.onintervalchange?.()}function i(){let e=FZ.daily;if(e.length===0)return null;let t=AZ.rangeStart(),n=AZ.rangeEnd(),r=rMe(S4(e,AZ.interval,t,n),S4(Array.isArray(FZ.cacheOverview.daily)?FZ.cacheOverview.daily:[],AZ.interval,t,n));return aMe(e4(),r,{cacheEnabled:FZ.cacheAnalyticsEnabled(),resolve:r4})}var a=bNe(),o=F(a),s=F(o),c=F(s,!0);O(s);var l=L(s,2);{let e=j(()=>Lee()),t=j(()=>n.map(e=>({value:e.value,label:e.label()})));Q2(l,{get ariaLabel(){return z(e)},get options(){return z(t)},get value(){return AZ.interval},onchange:r})}O(o);var u=L(o,2),d=F(u);Z2(d,{build:i});var f=L(d,2),p=e=>{var t=s3(),n=F(t);{let e=j(()=>Qee());a3(n,{size:24,get label(){return z(e)}})}O(t),H(e,t)},m=e=>{var t=s3();o3(F(t),{}),O(t),H(e,t)};W(f,e=>{FZ.daily.length===0&&FZ.loading?e(p):FZ.daily.length===0&&!X.authError&&e(m,1)}),O(u),O(a),R(e=>U(c,e),[()=>AZ.chartTitle()]),H(e,a),A()}var c3=10,SNe=.7;function CNe(e,t){if(e<=0||t<=0)return 0;let n=(e/t)**+SNe,r=Math.ceil(n*c3);return r<1?1:r>c3?c3:r}function wNe(){let e=[];for(let t=0;t<=c3;t++)e.push(t);return e}function TNe(e,t,n){let r={};(e||[]).forEach(e=>{r[e.date]=e});let i=NX(FX(n,-364)),a=i.getUTCDay();i.setUTCDate(i.getUTCDate()-a);let o=[];for(let e=new Date(i);PX(e)<=n;e.setUTCDate(e.getUTCDate()+1)){let n=PX(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 ENe(e){let t=NX(FX(e,-364)),n=t.getUTCDay();t.setUTCDate(t.getUTCDate()-n);let r=new Intl.DateTimeFormat(Y(),{month:`short`,timeZone:`UTC`}),i=[],a={},o=0;for(let n=new Date(t);PX(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),PX(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 `),jNe=V(`
`),MNe=V(`
`),NNe=V(`
`),PNe=V(`
`),FNe=V(`

`,1);function INe(e,t){k(t,!0);let n=M(P({show:!1,x:0,y:0,text:``})),r=j(()=>WX.currentDateKey()),i=j(()=>TNe(n3.data,n3.mode,z(r))),a=j(()=>ENe(z(r)));function o(e,t){t.empty||N(n,{show:!0,x:e.clientX,y:e.clientY,text:kNe(t,n3.mode)},!0)}function s(){N(n,{show:!1,x:0,y:0,text:``},!0)}var c=FNe(),l=I(c),u=F(l),d=F(u),f=F(d,!0);O(d);var p=L(d,2),m=e=>{{let t=j(()=>Us());a3(e,{size:14,get label(){return z(t)}})}};W(p,e=>{n3.loading&&n3.data.length===0&&e(m)});var h=L(p,2);{let e=j(()=>Ks()),t=j(()=>[{value:`tokens`,label:Vo()},{value:`costs`,label:Ys()}]);Q2(h,{get ariaLabel(){return z(e)},get options(){return z(t)},get value(){return n3.mode},onchange:e=>n3.mode=e})}O(u);var g=L(u,2),_=F(g),v=L(F(_),2),y=F(v,!0);O(v);var b=L(v,4),x=F(b,!0);O(b);var S=L(b,4),C=F(S,!0);O(S),Be(2),O(_);var w=L(_,2),T=F(w);G(T,21,()=>z(a),e=>e.key,(e,t)=>{var n=ANe(),r=F(n,!0);O(n),R(()=>{pi(n,`grid-column: ${z(t).col+1} / span ${z(t).span??``}`),U(r,z(t).label)}),H(e,n)}),O(T);var E=L(T,2);G(E,21,()=>z(i),Fr,(e,t,n)=>{var r=MNe();G(r,23,()=>z(t),(e,t)=>n+`-`+t,(e,t)=>{var n=jNe();R(()=>K(n,1,ci([`contribution-calendar-cell`,z(t).empty?`empty`:`level-${z(t).level}`]),`svelte-3hfxuq`)),yr(`mouseenter`,n,e=>o(e,z(t))),yr(`mouseleave`,n,s),H(e,n)}),O(r),H(e,r)}),O(E),O(w),O(g);var D=L(g,2),ee=F(D),te=F(ee),ne=F(te,!0);O(te),O(ee);var re=L(ee,2),ie=F(re),ae=F(ie,!0);O(ie);var oe=L(ie,2);G(oe,16,wNe,e=>e,(e,t)=>{var n=NNe();R(()=>K(n,1,`contribution-calendar-cell level-${t??``}`,`svelte-3hfxuq`)),H(e,n)});var se=L(oe,2),ce=F(se,!0);O(se),O(re),O(D),O(l);var le=L(l,2),ue=e=>{var t=PNe(),r=F(t,!0);O(t),R(()=>{pi(t,`left: ${z(n).x??``}px; top: ${z(n).y-40}px`),U(r,z(n).text)}),H(e,t)};W(le,e=>{z(n).show&&e(ue)}),R((e,t,n,r,i,a,o)=>{U(f,e),U(y,t),U(x,n),U(C,r),U(ne,i),U(ae,a),U(ce,o)},[()=>Bs(),()=>Qs(),()=>tc(),()=>ic(),()=>DNe(n3.data,n3.mode),()=>sc(),()=>uc()]),H(e,c),A()}var LNe=V(``),RNe=V(`

`),zNe=V(`
`);function l3(e,t){k(t,!0);let n=Ri(t,`label`,3,`help`),r=Ri(t,`text`,3,``),i=Ri(t,`open`,15,!1),a=Ri(t,`external`,3,!1),o=j(()=>!!r()||!!t.help||a());var s=zNe(),c=F(s),l=F(c);Gr(l,()=>t.title??f);var u=L(l,2),d=e=>{var r=LNe();let a;R(()=>{a=K(r,1,`inline-help-toggle svelte-y40or3`,null,a,{"is-open":i()}),q(r,`aria-label`,(i()?`Hide `:`Show `)+n()),q(r,`aria-expanded`,i()),q(r,`aria-controls`,t.copyId)}),B(`click`,r,()=>i(!i())),H(e,r)};W(u,e=>{z(o)&&e(d)}),Gr(L(u,2),()=>t.extra??f),O(c);var p=L(c,2),m=e=>{var n=RNe(),i=F(n),a=e=>{var n=Dr();Gr(I(n),()=>t.help),H(e,n)},o=e=>{var t=Er();R(()=>U(t,r())),H(e,t)};W(i,e=>{t.help?e(a):e(o,-1)}),O(n),R(()=>q(n,`id`,t.copyId)),H(e,n)};W(p,e=>{i()&&z(o)&&!a()&&e(m)}),O(s),H(e,s),A()}br([`click`]);var BNe=V(`

`),VNe=V(`
`),HNe=V(`

2xx 4xx 5xx
`,1);function UNe(e,t){k(t,!0);let n=Q4(),r=j(()=>e3.stats);function i(){return{interval:z(r).interval,zone:WX.effectiveTimezone(),resolve:r4,formatTimestamp:e=>WX.formatTimestamp(e)}}var a=Dr(),o=I(a),s=e=>{var t=HNe(),a=I(t),o=F(a),s=F(o),c=F(s,!0);O(s);var l=L(s,2),u=F(l),d=F(u),f=F(d,!0);O(d);var p=L(d,2),m=F(p,!0);O(p),O(u);var h=L(u,2),g=L(F(h),4),_=F(g,!0);O(g),O(h);var v=L(h,2),y=L(F(v),4),b=F(y,!0);O(y),O(v);var x=L(v,2),S=L(F(x),4),C=F(S,!0);O(S),O(x),O(l),O(o);var w=L(o,2);Z2(F(w),{build:()=>QMe(e4(),z(r).buckets,i())}),O(w),O(a);var T=L(a,2),E=e=>{var t=VNe(),a=F(t),o=F(a);{let e=e=>{var t=BNe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Cpe()]),H(e,t)},t=j(()=>Epe()),n=j(()=>kpe());l3(o,{copyId:`audit-latency-help-copy`,get label(){return z(t)},get text(){return z(n)},title:e,$$slots:{title:!0}})}var s=L(o,2),c=F(s),l=F(c),u=F(l,!0);O(l);var d=L(l,2),f=F(d,!0);O(d),O(c),O(s),O(a);var p=L(a,2);Z2(F(p),{build:()=>$Me(e4(),z(r).buckets,z(r).provider_latency,{...i(),providerColor:n})}),O(p),O(t),R((e,t,n)=>{q(c,`title`,e),U(u,t),U(f,n)},[()=>Mpe(),()=>Fpe(),()=>XMe(z(r))]),H(e,t)},D=j(()=>JMe(z(r)));W(T,e=>{z(D)&&e(E)}),R((e,t,n,r,i,a,o,s)=>{U(c,e),q(l,`aria-label`,t),q(u,`title`,n),U(f,r),U(m,i),U(_,a),U(b,o),U(C,s)},[()=>dpe(),()=>mpe(),()=>_pe(),()=>bpe(),()=>YMe(z(r)),()=>dZ(q4(z(r),`status_2xx`)),()=>dZ(q4(z(r),`status_4xx`)),()=>dZ(q4(z(r),`status_5xx`))]),H(e,t)},c=j(()=>qMe(z(r)));W(o,e=>{z(c)&&e(s)}),H(e,a),A()}var u3=(e,t=f,n=f,r)=>{let i=vt(()=>h(r?.(),!1));var a=KNe(),o=F(a),s=F(o,!0);O(o);var c=L(o,2),l=e=>{var t=WNe(),r=F(t,!0);O(t),R(()=>U(r,n())),H(e,t)},u=e=>{var t=GNe(),r=F(t,!0);O(t),R(()=>U(r,n())),H(e,t)};W(c,e=>{z(i)?e(l):e(u,-1)}),O(a),R(()=>U(s,t())),H(e,a)},WNe=V(` `),GNe=V(` `),KNe=V(`
`),qNe=V(`

`),JNe=V(`
`),YNe=V(`
`),XNe=V(`
`),ZNe=V(`
`),QNe=V(`

`);function $Ne(e,t){k(t,!0);let n=j(()=>EMe(t.provider)),r=j(()=>[[Jo(),t.provider.config?.base_url],[vme(),t.provider.config?.api_version]].filter(([,e])=>!!e));var i=QNe();let a;var o=F(i),s=F(o),c=F(s,!0);O(s);var l=L(s,2),u=e=>{var n=qNe(),r=F(n,!0);O(n),R(()=>U(r,t.provider.last_error)),H(e,n)};W(l,e=>{t.provider.last_error&&e(u)});var d=L(l,2),f=e=>{var r=ZNe(),i=F(r);{let e=j(()=>xme()),n=j(()=>DMe(t.provider));u3(i,()=>z(e),()=>z(n))}var a=L(i,2),o=e=>{var r=JNe(),i=F(r),a=F(i,!0);O(i);var o=L(i,2),s=F(o),c=F(s,!0);O(s),O(o),O(r),R((e,t)=>{U(a,e),K(s,1,ci([`provider-status-health-state`,z(n)]),`svelte-6y9wjv`),U(c,t)},[()=>wme(),()=>TMe(t.provider)]),H(e,r)},s=j(()=>N4(t.provider));W(a,e=>{z(s)&&e(o)});var c=L(a,2),l=e=>{var n=XNe(),r=F(n),i=F(r,!0);O(r);var a=L(r,2);G(a,21,()=>P4(t.provider),e=>e.model,(e,t)=>{var n=YNe();let r;var i=F(n),a=F(i,!0);O(i);var o=L(i,2),s=F(o,!0);O(o),O(n),R((e,i)=>{r=K(n,1,`provider-status-health-model svelte-6y9wjv`,null,r,{"is-flagged":z(t).flagged}),q(n,`title`,e),U(a,z(t).model),U(s,i)},[()=>kMe(z(t)),()=>OMe(z(t))]),H(e,n)}),O(a),O(n),R(e=>U(i,e),[()=>Dme()]),H(e,n)},u=j(()=>P4(t.provider).length>0);W(c,e=>{z(u)&&e(l)}),O(r),H(e,r)},p=j(()=>M4(t.provider));W(d,e=>{z(p)&&e(f)});var m=L(d,2),h=F(m);G(h,17,()=>z(r),([e,t])=>e,(e,t)=>{var n=j(()=>g(z(t),2));u3(e,()=>z(n)[0],()=>z(n)[1],()=>!0)});var _=L(h,2);{let e=j(()=>Ame()),n=j(()=>CMe(t.provider));u3(_,()=>z(e),()=>z(n))}var v=L(_,2);{let e=j(()=>Nme()),n=j(()=>xMe(t.provider));u3(v,()=>z(e),()=>z(n))}var y=L(v,2);{let e=j(()=>Ime()),n=j(()=>SMe(t.provider));u3(y,()=>z(e),()=>z(n))}O(m),O(o),O(i),R(()=>{a=K(i,1,`provider-status-details svelte-6y9wjv`,null,a,{"is-expanded":t.expanded,"is-collapsed":!t.expanded}),q(i,`aria-hidden`,!t.expanded),U(c,t.provider.status_reason)}),H(e,i),A()}var ePe=V(` `),tPe=V(``),nPe=V(`

`);function rPe(e,t){k(t,!0);let n=j(()=>$4.cardExpanded(t.provider)),r=e=>WX.formatTimestamp(e);var i=nPe(),a=F(i),o=F(a),s=F(o),c=F(s),l=F(c,!0);O(c);var u=L(c,2),d=e=>{var n=ePe(),r=F(n);O(n),R(e=>U(r,`(${e??``})`),[()=>A4(t.provider)]),H(e,n)},f=j(()=>A4(t.provider));W(u,e=>{z(f)&&e(d)});var p=L(u,2),m=e=>{var n=tPe();R((e,t,r)=>{q(n,`href`,e),q(n,`aria-label`,t),q(n,`title`,r)},[()=>j4(t.provider),()=>qo({provider:A4(t.provider)||t.provider.name}),()=>qo({provider:A4(t.provider)||t.provider.name})]),H(e,n)},h=j(()=>j4(t.provider));W(p,e=>{z(h)&&e(m)}),O(s),O(o);var g=L(o,2),_=F(g,!0);O(g),O(a);var v=L(a,2),y=F(v),b=F(y),x=F(b,!0);O(b);var S=L(b,2),C=F(S,!0);O(S),O(y);var w=L(y,2),T=F(w),E=F(T,!0);O(T);var D=L(T,2),ee=F(D,!0);O(D),O(w),O(v);var te=L(v,2);$Ne(te,{get provider(){return t.provider},get expanded(){return z(n)}});var ne=L(te,2);let re;J(F(ne),{get icon(){return $Y},class:`provider-status-card-toggle-icon`}),O(ne),O(i),R((e,r,i,a,o,s,c,u,d)=>{U(l,t.provider.name),K(g,1,`provider-status-pill ${e??``}`,`svelte-nopjmh`),q(g,`title`,r),U(_,t.provider.status_label),U(x,i),U(C,a),U(E,o),q(D,`title`,s),U(ee,c),re=K(ne,1,`provider-status-card-toggle svelte-nopjmh`,null,re,{"is-expanded":z(n)}),q(ne,`aria-expanded`,z(n)),q(ne,`aria-label`,u),q(ne,`title`,d)},[()=>mMe(t.provider.status),()=>wMe(t.provider),()=>Qpe(),()=>dZ(t.provider.runtime?.discovered_model_count),()=>tme(),()=>bMe(t.provider,r),()=>yMe(t.provider,r),()=>z(n)?sme({provider:t.provider.name}):ime({provider:t.provider.name}),()=>z(n)?pme():ume()]),B(`click`,ne,()=>$4.toggleCard(t.provider)),H(e,i),A()}br([`click`]);var iPe=V(`

`),aPe=V(`
`);function oPe(e,t){k(t,!0);let n=j(()=>$4.status.providers);var r=Dr(),i=I(r),a=e=>{var t=iPe(),r=F(t),i=F(r),a=F(i),o=F(a,!0);O(a),O(i);var s=L(i,2),c=F(s),l=F(c,!0);O(c);var u=L(c,2);let d;O(s),O(r);var f=L(r,2);G(f,21,()=>z(n),e=>e.name,(e,t)=>{rPe(e,{get provider(){return z(t)}})}),O(f),O(t),R((e,t,n)=>{U(o,e),q(s,`aria-checked`,$4.detailsExpanded),q(s,`title`,t),U(l,n),d=K(u,1,`provider-status-toggle-track svelte-1kx3uw4`,null,d,{"is-active":$4.detailsExpanded})},[()=>Rpe(),()=>$4.detailsToggleLabel(),()=>$4.detailsToggleLabel()]),B(`click`,s,()=>$4.toggleDetails()),H(e,t)},o=e=>{var t=aPe(),n=F(t);{let e=j(()=>Vpe());a3(n,{size:18,get label(){return z(e)}})}O(t),H(e,t)};W(i,e=>{z(n).length>0?e(a):$4.loading&&!$4.loadedOnce&&e(o,1)}),H(e,r),A()}br([`click`]);var sPe=V(`
`);function d3(e,t){k(t,!0);function n(){FZ.fetchUsage(),FZ.fetchCacheOverview(``),e3.fetch(),$4.fetch(),t3.fetch(),n3.fetch()}function r(){FZ.fetchUsage(),FZ.fetchCacheOverview(``),e3.fetch()}function i(){r(),n3.fetch()}pn(()=>{if(X.refreshTick,TX.page===`overview`)return ar(()=>{n(),g4.start()}),()=>{g4.stop(),$4.stopPolling()}});var a=sPe(),o=F(a);Jje(o,{});var s=L(o,2),c=F(s),l=F(c,!0);O(c),O(s);var u=L(s,2);LZ(F(u),{onchange:i}),O(u);var d=L(u,2);MZ(d,{});var f=L(d,2);uNe(f,{});var p=L(f,2);gNe(p,{});var m=L(p,2);xNe(m,{onintervalchange:r});var h=L(m,2);INe(h,{});var g=L(h,2);UNe(g,{}),oPe(L(g,2),{}),O(a),R(e=>U(l,e),[()=>Pee()]),H(e,a),A()}var cPe=`/admin/live/logs?types=audit,usage`;function f3(e,t,n){return!!t&&String(e&&e.id||``).trim()===t||!!n&&String(e&&e.request_id||``).trim()===n}function lPe(e){switch(e){case`date_range`:return zse();case`filters`:return Hse();case`pagination`:return Gse();default:return``}}function uPe(e){let t=cPe,n=Number(e||0);return Number.isFinite(n)&&n>0&&(t+=`&cursor=`+encodeURIComponent(String(n))),t}function dPe(){return{async consumeLiveLogsBody(e){await o4(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=>f3(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;ef3(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=>!f3(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(!f3(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=>!f3(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 p3={"audit.started":10,"audit.updated":20,"audit.stream":20,"audit.completed":30,"audit.failed":40,"audit.flushed":40,"audit.detail":40},fPe=new Set(Object.keys(p3));function m3(e){return String(e&&(e.id||e.request_id)||``).trim()}function pPe(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:h3(n.data)&&h3(r.data)&&(i.data={...n.data,...r.data});let a=String(n._live_state||``).trim(),o=String(r._live_state||``).trim();return(p3[a]||0)>(p3[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&&h3(i.data)&&(i.data.request_body!==void 0||i.data.response_body!==void 0)&&(i.bodies_omitted=!1),i}function mPe(e,t){let n=Number(t||0);return(Array.isArray(e)?e:[]).filter(e=>Number(e&&e.version||0)>n)}function hPe(e){return fPe.has(String(e&&e.eventType||``).trim())}function h3(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}var g3=200,_3=class{#e=M(P({entries:[],total:0,limit:25,offset:0}));get auditLog(){return z(this.#e)}set auditLog(e){N(this.#e,e,!0)}#t=M(P({entries:[],total:0,limit:50,offset:0}));get usageLog(){return z(this.#t)}set usageLog(e){N(this.#t,e,!0)}#n=M(P({}));get auditRecords(){return z(this.#n)}set auditRecords(e){N(this.#n,e,!0)}#r=M(P([]));get auditRecordChanges(){return z(this.#r)}set auditRecordChanges(e){N(this.#r,e,!0)}auditRecordVersion=0;auditRecordPins=new Set;#i=M(``);get auditSearch(){return z(this.#i)}set auditSearch(e){N(this.#i,e,!0)}#a=M(``);get auditMethod(){return z(this.#a)}set auditMethod(e){N(this.#a,e,!0)}#o=M(``);get auditStatusCode(){return z(this.#o)}set auditStatusCode(e){N(this.#o,e,!0)}#s=M(``);get auditStream(){return z(this.#s)}set auditStream(e){N(this.#s,e,!0)}#c=M(Wi(`gomodel_audit_group_sessions`,`true`)!==`false`);get auditGroupSessions(){return z(this.#c)}set auditGroupSessions(e){N(this.#c,e,!0)}#l=M(P({}));get auditThreadChildren(){return z(this.#l)}set auditThreadChildren(e){N(this.#l,e,!0)}#u=M(``);get usageLogSearch(){return z(this.#u)}set usageLogSearch(e){N(this.#u,e,!0)}#d=M(``);get usageFilterModel(){return z(this.#d)}set usageFilterModel(e){N(this.#d,e,!0)}#f=M(``);get usageFilterProvider(){return z(this.#f)}set usageFilterProvider(e){N(this.#f,e,!0)}#p=M(``);get usageFilterLabel(){return z(this.#p)}set usageFilterLabel(e){N(this.#p,e,!0)}#m=M(``);get usageFilterUserPath(){return z(this.#m)}set usageFilterUserPath(e){N(this.#m,e,!0)}#h=M(!1);get usageLogHideCached(){return z(this.#h)}set usageLogHideCached(e){N(this.#h,e,!0)}#g=M(!1);get liveLogsStreaming(){return z(this.#g)}set liveLogsStreaming(e){N(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=m3(e);if(!n)return e;let r=pPe(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():m3(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<=g3)return;let t={...this.auditRecords},n=e.length-g3;for(let r of e){if(n<=0)break;this.auditRecordPins.has(r)||(delete t[r],n--)}this.auditRecords=t}get page(){return TX.page}get customStartDate(){return AZ.customStartDate}get customEndDate(){return AZ.customEndDate}get followsToday(){return AZ.followsToday}liveLogsEnabled(){return QX.liveLogsVisible()}async startLiveLogs(){typeof fetch!=`function`||typeof ReadableStream>`u`||(await QX.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=uPe(this.liveLogsLastSeq),r=X.generation;try{let i=await qX(n,t);if(i.status===401){if(X.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 YX(`/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(_3.prototype,dPe());var v3=new _3;if(typeof window<`u`){let e=!1;window.addEventListener(`pagehide`,()=>{e=!!v3.liveLogsController,v3.stopLiveLogs()}),window.addEventListener(`pageshow`,t=>{t.persisted&&e&&v3.ensureLiveLogs()})}var y3=null;hn(()=>{pn(()=>{let e=X.refreshTick;if(y3===null){y3=e;return}e!==y3&&(y3=e,ar(()=>{v3.stopLiveLogs(),v3.startLiveLogs()}))})});function b3(){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 x3(){return{entries:[],total:0,limit:50,offset:0}}function gPe(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 _Pe({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 S3(e,t){let n=new Set(e||[]);return t&&n.add(t),[...n].sort()}function vPe(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 yPe(e,t,n){let r=n?e:t,i=Number(r&&r.total_requests||0);return Number.isFinite(i)?i:0}function bPe(e,t,n){let r=vPe(e,t);return r<=0?``:n?Pie({count:dZ(r)}):Lie({provider:dZ(Number(e&&e.total_requests||0)),cache:dZ(r)})}function xPe(e){let t=e||{};return t.total_input_cost===null||t.total_input_cost===void 0?``:Bie({input:fZ(t.total_input_cost),output:fZ(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 SPe(e){return C3(e)>0}function w3(e){let t=e||{};return t.rewrite_cost_saved===void 0?null:t.rewrite_cost_saved}function CPe(){return Uie()}function wPe(e,t){return t===`costs`?fZ(w3(e)):hZ(C3(e))}function TPe(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=TPe(e,t);return n===null?``:Kie({percent:n<.1?`<0.1`:n.toFixed(1)})}function EPe(e,t){let n=C3(e);if(n<=0)return``;let r=[Yie({count:dZ(n)}),CPe(),Qie()],i=w3(e);i!=null&&(r.push(tae({cost:fZ(i)})),r.push(iae()));let a=T3(e,t);return a&&r.push(sae({percent:a,mode:t===`costs`?uae():pae()})),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 gae();case`xai_cost_in_usd_ticks`:return yae();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 DPe(e){let t=k3(e);return t===`exact`?Sae():t===`semantic`?Tae():`-`}function j3(e,t){let n=t?String(t):``;if(!A3(e))return n;let r=Oae();return n?r+` -`+n:r}function OPe(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 kPe(e){return M3(e)?(OPe(e)*100).toFixed(1)+`%`:``}function APe(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=[jae({cached:dZ(t),total:dZ(i)})];return r>0&&a.push(Pae({count:dZ(r)})),a.join(` -`)}function N3(e){let t=[];if(O3(e)&&(t.push(O3(e)),t.push(``)),t.push(Lae({cost:fZ(e.input_cost)})),t.push(Bae({cost:fZ(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):dZ(r);t.push(e+`: `+i)}}return t.join(` -`)}function P3(e){return Array.isArray(e&&e.labels)?e.labels:[]}function jPe(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 MPe(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 NPe(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(Pl());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 PPe(e){return Math.max(200,e*32+72)}var z3=new class{#e=M(`tokens`);get usageMode(){return z(this.#e)}set usageMode(e){N(this.#e,e,!0)}get usageFilterModel(){return v3.usageFilterModel}set usageFilterModel(e){v3.usageFilterModel=e}get usageFilterProvider(){return v3.usageFilterProvider}set usageFilterProvider(e){v3.usageFilterProvider=e}get usageFilterLabel(){return v3.usageFilterLabel}set usageFilterLabel(e){v3.usageFilterLabel=e}get usageFilterUserPath(){return v3.usageFilterUserPath}set usageFilterUserPath(e){v3.usageFilterUserPath=e}#t=M(P({models:[],providers:[],labels:[]}));get usageFacetOptions(){return z(this.#t)}set usageFacetOptions(e){N(this.#t,e,!0)}#n=M(P(b3()));get usageSummary(){return z(this.#n)}set usageSummary(e){N(this.#n,e,!0)}#r=M(P(b3()));get usageSummaryAll(){return z(this.#r)}set usageSummaryAll(e){N(this.#r,e,!0)}#i=M(P([]));get modelUsage(){return z(this.#i)}set modelUsage(e){N(this.#i,e,!0)}#a=M(P([]));get userPathUsage(){return z(this.#a)}set userPathUsage(e){N(this.#a,e,!0)}#o=M(P([]));get labelUsage(){return z(this.#o)}set labelUsage(e){N(this.#o,e,!0)}get usageLog(){return v3.usageLog}set usageLog(e){v3.usageLog=e}get usageLogSearch(){return v3.usageLogSearch}set usageLogSearch(e){v3.usageLogSearch=e}get usageLogHideCached(){return v3.usageLogHideCached}set usageLogHideCached(e){v3.usageLogHideCached=e}#s=M(`chart`);get modelUsageView(){return z(this.#s)}set modelUsageView(e){N(this.#s,e,!0)}#c=M(`chart`);get userPathUsageView(){return z(this.#c)}set userPathUsageView(e){N(this.#c,e,!0)}#l=M(`chart`);get labelUsageView(){return z(this.#l)}set labelUsageView(e){N(this.#l,e,!0)}#u=M(!1);get summaryLoading(){return z(this.#u)}set summaryLoading(e){N(this.#u,e,!0)}#d=M(!1);get modelUsageLoading(){return z(this.#d)}set modelUsageLoading(e){N(this.#d,e,!0)}#f=M(!1);get userPathUsageLoading(){return z(this.#f)}set userPathUsageLoading(e){N(this.#f,e,!0)}#p=M(!1);get labelUsageLoading(){return z(this.#p)}set labelUsageLoading(e){N(this.#p,e,!0)}#m=M(!1);get usageLogLoading(){return z(this.#m)}set usageLogLoading(e){N(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 gPe({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?Oie():jie({label:e})}toggleUsageMode(e){this.usageMode=e,TX.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 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 QX.ensureLoaded();let e=[this.fetchUsagePageSummary(),this.fetchUsageFacetOptions(),this.fetchModelUsage(),this.fetchUserPathUsage(),this.fetchLabelUsage(),this.fetchUsageLog(!0)];FZ.cacheAnalyticsEnabled()&&e.push(FZ.fetchCacheOverview(this.filterQueryStr())),await Promise.all(e)}async fetchUsagePageSummary(){let e=this.#g(`summary`);this.summaryLoading=!0;try{let t=AZ.queryStr()+this.filterQueryStr(),[n,r]=await Promise.all([YX(`/admin/usage/summary?`+t+`&cache_mode=uncached`,{label:`usage page summary`,signal:e.signal}),YX(`/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=b3(),this.usageSummaryAll=b3();return}this.usageSummary=n.data&&typeof n.data==`object`?n.data:b3(),this.usageSummaryAll=r.data&&typeof r.data==`object`?r.data:b3()}catch(e){if(ZX(e))return;console.error(`Failed to fetch usage page summary:`,e),this.usageSummary=b3(),this.usageSummaryAll=b3()}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 YX(t+`?`+AZ.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=>yZ(e)).filter(Boolean),labels:o.map(e=>e&&e.label).filter(Boolean)}}catch(e){if(ZX(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 YX(t+`?`+AZ.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(ZX(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=AZ.queryStr()+this.filterQueryStr();n+=_Pe({limit:this.usageLog.limit,offset:this.usageLog.offset,hideCached:this.usageLogHideCached,search:this.usageLogSearch});let r=await YX(`/admin/usage/log?`+n,{label:`usage log`,signal:t.signal});if(r.stale||t.signal.aborted)return;if(!r.ok){this.usageLog=x3();return}let i=r.data&&typeof r.data==`object`?r.data:x3();i.entries||=[],this.usageLog=i}catch(e){if(ZX(e))return;console.error(`Failed to fetch usage log:`,e),this.usageLog=x3()}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))}};v3.fetchUsage=()=>{TX.page===`usage`&&z3.fetchUsagePage()};var FPe=V(`
`);function B3(e,t){k(t,!0);let n=Ri(t,`value`,15,``),r=Ri(t,`placeholder`,3,``),i=Ri(t,`label`,3,``),a=Ri(t,`id`,3,void 0),o=Ri(t,`oninput`,3,void 0),s=Ri(t,`class`,3,``);var c=FPe(),l=F(c);J(l,{get icon(){return Hwe},class:`filter-input-icon`});var u=L(l,2);Ci(u),O(c),R(()=>{K(c,1,ci([`filter-input-wrap`,s()]),`svelte-30xz1k`),q(u,`id`,a()),q(u,`placeholder`,r()),q(u,`aria-label`,i())}),B(`input`,u,function(...e){o()?.apply(this,e)}),Ai(u,n),H(e,c),A()}br([`input`]);function V3(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 H3=V(``),IPe=V(``),LPe=V(`
`);function RPe(e,t){k(t,!0);let n=V3(()=>z3.onUsageFilterChanged());pn(()=>n.cancel);var r=LPe(),i=F(r),a=F(i),o=F(a,!0);O(a),a.value=a.__value=``,G(L(a),16,()=>z3.usageFilterModelOptions(),e=>e,(e,t,n,r)=>{var i=H3(),a=F(i,!0);O(i);var o={};R(()=>{U(a,t),o!==(o=t)&&(i.value=(i.__value=t)??``)}),H(e,i)}),O(i);var s=L(i,2),c=F(s),l=F(c,!0);O(c),c.value=c.__value=``,G(L(c),16,()=>z3.usageFilterProviderOptions(),e=>e,(e,t)=>{var n=H3(),r=F(n,!0);O(n);var i={};R(()=>{U(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),H(e,n)}),O(s);var u=L(s,2),d=e=>{var t=IPe(),n=F(t),r=F(n,!0);O(n),n.value=n.__value=``,G(L(n),16,()=>z3.usageFilterLabelOptions(),e=>e,(e,t)=>{var n=H3(),r=F(n,!0);O(n);var i={};R(()=>{U(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),H(e,n)}),O(t),R((e,n)=>{q(t,`aria-label`,e),U(r,n)},[()=>gte(),()=>jte()]),B(`change`,t,()=>z3.onUsageFilterChanged()),gi(t,()=>z3.usageFilterLabel,e=>z3.usageFilterLabel=e),H(e,t)},f=j(()=>z3.usageFilterLabelOptions().length>0);W(u,e=>{z(f)&&e(d)});var p=L(u,2);{let e=j(()=>Ste()),t=j(()=>yte());B3(p,{class:`usage-page-filters-user-path`,get placeholder(){return z(e)},get label(){return z(t)},get oninput(){return n},get value(){return z3.usageFilterUserPath},set value(e){z3.usageFilterUserPath=e}})}O(r),R((e,t,n,a,c)=>{q(r,`aria-label`,e),q(i,`aria-label`,t),U(o,n),q(s,`aria-label`,a),U(l,c)},[()=>ste(),()=>ute(),()=>Tte(),()=>pte(),()=>Ote()]),B(`change`,i,()=>z3.onUsageFilterChanged()),gi(i,()=>z3.usageFilterModel,e=>z3.usageFilterModel=e),B(`change`,s,()=>z3.onUsageFilterChanged()),gi(s,()=>z3.usageFilterProvider,e=>z3.usageFilterProvider=e),H(e,r),A()}br([`change`]);var zPe=V(`
`,1);function BPe(e,t){k(t,!0);var n=Dr(),r=I(n),i=e=>{var t=zPe(),n=I(t),r=F(n),i=F(r,!0);O(r);var a=L(r,2),o=F(a,!0);O(a),O(n);var s=L(n,2),c=F(s),l=F(c,!0);O(c);var u=L(c,2),d=F(u,!0);O(u),O(s),R((e,t,n,r)=>{U(i,e),U(o,t),U(l,n),U(d,r)},[()=>Pte(),()=>fZ(FZ.cacheOverview.summary.total_saved_cost),()=>Go(),()=>dZ(FZ.cacheOverview.summary.total_hits)]),H(e,t)},a=j(()=>FZ.cacheAnalyticsEnabled());W(r,e=>{z(a)&&e(i)}),H(e,n),A()}var VPe=V(` `),HPe=V(`
`),UPe=V(`
`);function WPe(e,t){k(t,!0);let n=j(()=>SPe(z3.usageSummary)),r=j(()=>wPe(z3.usageSummary,z3.usageMode)),i=j(()=>T3(z3.usageSummary,z3.usageMode));var a=UPe(),o=F(a),s=F(o),c=F(s,!0);O(s);var l=L(s,2),u=F(l),d=e=>{{let t=j(()=>_o());a3(e,{size:18,get label(){return z(t)}})}},f=e=>{var t=Er();R(e=>U(t,e),[()=>dZ(yPe(z3.usageSummary,z3.usageSummaryAll,z3.usageLogHideCached))]),H(e,t)};W(u,e=>{z3.summaryLoading?e(d):e(f,-1)}),O(l),O(o);var p=L(o,2),m=F(p),h=F(m,!0);O(m);var g=L(m,2),_=F(g),v=e=>{{let t=j(()=>_o());a3(e,{size:18,get label(){return z(t)}})}},y=e=>{var t=Er();R(e=>U(t,e),[()=>fZ(z3.usageSummary.total_cost)]),H(e,t)};W(_,e=>{z3.summaryLoading?e(v):e(y,-1)}),O(g),O(p);var b=L(p,2),x=e=>{var t=HPe(),n=F(t),a=F(n,!0);O(n);var o=L(n,2),s=F(o),c=F(s,!0);O(s);var l=L(s,2),u=e=>{var t=VPe(),n=F(t,!0);O(t),R(()=>U(n,z(i))),H(e,t)};W(l,e=>{z(i)&&e(u)}),O(o),O(t),R((e,t)=>{U(a,e),q(o,`title`,t),U(c,z(r))},[()=>Lte(),()=>EPe(z3.usageSummary,z3.usageMode)]),H(e,t)};W(b,e=>{z(n)&&e(x)}),BPe(L(b,2),{}),O(a),R((e,t,n,r)=>{U(c,e),q(l,`title`,t),U(h,n),q(g,`title`,r)},[()=>Wo(),()=>bPe(z3.usageSummary,z3.usageSummaryAll,z3.usageLogHideCached),()=>Ko(),()=>xPe(z3.usageSummary)]),H(e,a),A()}function GPe(e,t,n,r){let{stacked:i=!1,costs:a=!1,resolve:o=e=>e}=r||{},s=e=>a?`$`+Math.abs(e).toFixed(2):hZ(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?To():So(),l(n.inputs),o(`var(--token-input)`)),u(a?Eo():Co(),n.outputs,o(`var(--token-output)`))];return d(n.prompts)&&f.push(u(a?Uae():wo(),l(n.prompts),o(`var(--token-prompt)`))),!a&&d(n.localIns)&&f.push(u(Kae(),l(n.localIns),o(`var(--token-local)`))),!a&&d(n.localOuts)&&f.push(u(Yae(),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:t4(),callback:e=>s(e)}},y:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:t4(),autoSkip:!1}}},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:n4(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}),Qc({total:c(t)})}})}}}}var KPe=V(`
`),qPe=V(`

`),JPe=V(`

`,1),YPe=V(`
`),XPe=V(` `,1),ZPe=V(` `),QPe=V(` `,1),$Pe=V(` `,1),eFe=V(` `),tFe=V(` `,1),nFe=V(` `),rFe=V(`
`),iFe=V(`
`),aFe=V(`
`);function U3(e,t){k(t,!0);let n=e=>{var n=KPe(),r=F(n);let a;var o=L(r,2);let s;var l=L(o,2);let u;O(n),R((e,t,d,f,p,m)=>{q(n,`aria-label`,z(i).group),a=K(r,1,`chart-view-btn svelte-1kee4g8`,null,a,{active:z(c)===`chart`}),q(r,`aria-pressed`,z(c)===`chart`),q(r,`aria-label`,e),q(r,`title`,t),s=K(o,1,`chart-view-btn svelte-1kee4g8`,null,s,{active:z(c)===`stacked`}),q(o,`aria-pressed`,z(c)===`stacked`),q(o,`aria-label`,d),q(o,`title`,f),u=K(l,1,`chart-view-btn svelte-1kee4g8`,null,u,{active:z(c)===`table`}),q(l,`aria-pressed`,z(c)===`table`),q(l,`aria-label`,p),q(l,`title`,m)},[()=>wne({noun:z(i).noun}),()=>Nne(),()=>Dne({noun:z(i).noun}),()=>Ine(),()=>Ane({noun:z(i).noun}),()=>zne()]),B(`click`,r,()=>z3.toggleUsageChartView(t.kind,`chart`)),B(`click`,o,()=>z3.toggleUsageChartView(t.kind,`stacked`)),B(`click`,l,()=>z3.toggleUsageChartView(t.kind,`table`)),H(e,n)},r={model:{group:Hte(),noun:Zte(),tokensTitle:one(),costsTitle:lne()},userPath:{group:Gte(),noun:ene(),tokensTitle:fne(),costsTitle:hne()},label:{group:Jte(),noun:rne(),tokensTitle:vne(),costsTitle:xne()}},i=j(()=>r[t.kind]),a=j(()=>t.kind===`model`?e=>qTe(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=j(()=>t.kind===`model`?z3.modelUsage:t.kind===`userPath`?z3.userPathUsage:z3.labelUsage),c=j(()=>t.kind===`model`?z3.modelUsageView:t.kind===`userPath`?z3.userPathUsageView:z3.labelUsageView),l=j(()=>t.kind===`model`?z3.modelUsageLoading:t.kind===`userPath`?z3.userPathUsageLoading:z3.labelUsageLoading),u=j(()=>z3.usageMode===`costs`),d=j(()=>t.kind===`userPath`?MPe(z(s)):z(s).length>0),f=j(()=>z(u)?z(i).costsTitle:z(i).tokensTitle),p=j(()=>NPe(z(s),z(a),z(u))),m=j(()=>L3(z(s),z(u)));function h(){return R3(z(c))?GPe(e4(),z(p).labels,z(p),{stacked:z(c)===`stacked`,costs:z(u),resolve:r4}):null}let g=qne();var _=Dr(),v=I(_),y=e=>{var r=iFe(),a=F(r),s=F(a),u=e=>{{let t=e=>{var t=qPe(),n=F(t,!0);O(t),R(()=>U(n,z(f))),H(e,t)},n=e=>{var t=Dr(),n=I(t),r=e=>{{let t=j(()=>vo({noun:z(i).noun}));a3(e,{size:14,get label(){return z(t)}})}};W(n,e=>{z(l)&&e(r)}),H(e,t)},r=j(()=>Wne());l3(e,{copyId:`label-usage-help-copy`,get label(){return z(r)},get text(){return g},title:t,extra:n,$$slots:{title:!0,extra:!0}})}},d=e=>{var t=JPe(),n=I(t),r=F(n,!0);O(n);var a=L(n,2),o=e=>{{let t=j(()=>vo({noun:z(i).noun}));a3(e,{size:14,get label(){return z(t)}})}};W(a,e=>{z(l)&&e(o)}),R(()=>U(r,z(f))),H(e,t)};W(s,e=>{t.kind===`label`?e(u):e(d,-1)});var _=L(s,2);n(_),O(a);var v=L(a,2),y=e=>{var t=YPe();let n;Z2(F(t),{build:h}),O(t),R(e=>n=pi(t,``,n,e),[()=>({height:`${PPe(z(p).labels.length)??``}px`})]),H(e,t)},b=j(()=>R3(z(c))),x=e=>{var n=rFe(),r=F(n),i=F(r),a=F(i),s=F(a),c=e=>{var t=XPe(),n=I(t),r=F(n,!0);O(n);var i=L(n,2),a=F(i,!0);O(i),R((e,t)=>{U(r,e),U(a,t)},[()=>yo(),()=>bo()]),H(e,t)},l=e=>{var t=ZPe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>xo()]),H(e,t)},u=e=>{var t=QPe(),n=I(t),r=F(n,!0);O(n);var i=L(n,2),a=F(i,!0);O(i),R((e,t)=>{U(r,e),U(a,t)},[()=>nre(),()=>are()]),H(e,t)};W(s,e=>{t.kind===`model`?e(c):t.kind===`userPath`?e(l,1):e(u,-1)});var d=L(s),f=F(d,!0);O(d);var p=L(d),h=F(p,!0);O(p);var g=L(p),_=F(g,!0);O(g);var v=L(g),y=F(v,!0);O(v);var b=L(v),x=F(b,!0);O(b);var S=L(b),C=F(S,!0);O(S);var w=L(S),T=F(w,!0);O(w);var E=L(w),D=F(E,!0);O(E),O(a),O(i);var ee=L(i);G(ee,21,()=>z(m),e=>o(e),(e,n)=>{var r=nFe(),i=F(r),a=e=>{var t=$Pe(),r=I(t),i=F(r,!0);O(r);var a=L(r,2),o=F(a),s=F(o,!0);O(o),O(a),R(e=>{U(i,z(n).model||`-`),U(s,e)},[()=>yZ(z(n))||`-`]),H(e,t)},o=e=>{var t=eFe(),r=F(t,!0);O(t),R(()=>U(r,z(n).user_path||`/`)),H(e,t)},s=e=>{var t=tFe(),r=I(t),i=F(r);let a;var o=F(i,!0);O(i),O(r);var s=L(r,2),c=F(s,!0);O(s),R((e,t,r)=>{a=K(i,1,`usage-label-chip`,null,a,{active:z3.usageFilterLabel===z(n).label}),pi(i,`--label-color: ${e??``}`),q(i,`title`,t),U(o,z(n).label),U(c,r)},[()=>a4(z(n).label),()=>z3.usageLabelChipTitle(z(n).label),()=>dZ(z(n).requests)]),B(`click`,i,()=>z3.toggleUsageLabelFilter(z(n).label)),H(e,t)};W(i,e=>{t.kind===`model`?e(a):t.kind===`userPath`?e(o,1):e(s,-1)});var c=L(i),l=F(c,!0);O(c);var u=L(c),d=F(u,!0);O(u);var f=L(u),p=F(f,!0);O(f);var m=L(f),h=F(m,!0);O(m);var g=L(m),_=F(g,!0);O(g);var v=L(g),y=F(v,!0);O(v);var b=L(v),x=F(b,!0);O(b);var S=L(b),C=F(S,!0);O(S),O(r),R((e,t,n,r,i,a,o,s,c,u)=>{U(l,e),U(d,t),q(f,`title`,n),U(p,r),q(m,`title`,i),U(h,a),U(_,o),U(y,s),U(x,c),U(C,u)},[()=>dZ(z(n).input_tokens),()=>dZ(z(n).output_tokens),()=>z(n).cached_input_cost==null?``:Mre({cost:fZ(z(n).cached_input_cost)}),()=>dZ(z(n).cached_input_tokens||0),()=>Fre({input:dZ(z(n).local_cached_input_tokens||0),output:dZ(z(n).local_cached_output_tokens||0)}),()=>dZ((z(n).local_cached_input_tokens||0)+(z(n).local_cached_output_tokens||0)),()=>dZ(F3(z(n))),()=>fZ(z(n).input_cost),()=>fZ(z(n).output_cost),()=>fZ(z(n).total_cost)]),H(e,r)}),O(ee),O(r),O(n),R((e,t,n,r,i,a,o,s,c,l)=>{U(f,e),U(h,t),q(g,`title`,n),U(_,r),q(v,`title`,i),U(y,a),U(x,o),U(C,s),U(T,c),U(D,l)},[()=>So(),()=>Co(),()=>Ere(),()=>wo(),()=>kre(),()=>mre(),()=>_re(),()=>To(),()=>Eo(),()=>Do()]),H(e,n)};W(v,e=>{z(b)?e(y):e(x,-1)}),O(r),H(e,r)},b=e=>{var t=aFe(),n=F(t);{let e=j(()=>vo({noun:z(i).noun}));a3(n,{size:20,get label(){return z(e)}})}O(t),H(e,t)};W(v,e=>{z(d)?e(y):z(l)&&e(b,1)}),H(e,_),A()}br([`click`]);var oFe=V(``);function W3(e,t){k(t,!0);let n=Ri(t,`total`,3,0),r=Ri(t,`offset`,3,0),i=Ri(t,`limit`,3,25);var a=Dr(),o=I(a),s=e=>{var a=oFe(),o=F(a),s=F(o,!0);O(o);var c=L(o,2),l=F(c),u=F(l,!0);O(l);var d=L(l,2),f=F(d,!0);O(d),O(c),O(a),R((e,t,a)=>{U(s,e),l.disabled=r()===0,U(u,t),d.disabled=r()+i()>=n(),U(f,a)},[()=>dL({start:EZ(r()+1),end:EZ(Math.min(r()+i(),n())),total:EZ(n())}),()=>Aa(),()=>Da()]),B(`click`,l,()=>t.onprev?.()),B(`click`,d,()=>t.onnext?.()),H(e,a)};W(o,e=>{n()>0&&e(s)}),H(e,a),A()}br([`click`]);var sFe=(e,t=f)=>{var n=Dr(),r=I(n),i=e=>{var n=lFe();G(n,20,()=>P3(t()),e=>e,(e,t)=>{var n=cFe();let r;var i=F(n,!0);O(n),R((e,a)=>{r=K(n,1,`usage-label-chip`,null,r,{active:z3.usageFilterLabel===t}),pi(n,`--label-color: ${e??``}`),q(n,`title`,a),U(i,t)},[()=>a4(t),()=>z3.usageLabelChipTitle(t)]),B(`click`,n,()=>z3.toggleUsageLabelFilter(t)),H(e,n)}),O(n),H(e,n)},a=j(()=>P3(t()).length>0),o=e=>{H(e,G3())};W(r,e=>{z(a)?e(i):e(o,-1)}),H(e,n)},cFe=V(``),lFe=V(`
`),G3=V(`-`),uFe=V(` `),dFe=V(` `),fFe=V(``),pFe=V(` `),K3=V(``),mFe=V(` `),hFe=V(` `),gFe=V(`
`),_Fe=V(`
`),vFe=V(`
`),yFe=V(`

`);function bFe(e,t){k(t,!0);let n=j(()=>z3.usageMode===`costs`),r=j(()=>jPe(z3.labelUsage,z3.usageFilterLabel,z3.usageLog.entries)),i=V3(()=>z3.fetchUsageLog(!0));pn(()=>i.cancel);var a=yFe(),o=F(a),s=F(o,!0);O(o);var c=L(o,2),l=F(c),u=F(l);{let e=j(()=>Vre()),t=j(()=>Wre());B3(u,{get placeholder(){return z(e)},get label(){return z(t)},get oninput(){return i},get value(){return z3.usageLogSearch},set value(e){z3.usageLogSearch=e}})}O(l);var d=L(l,2),f=F(d),p=F(f);Ci(p);var m=L(p,2),h=F(m,!0);O(m),O(f),O(d),O(c);var g=L(c,2),_=e=>{var t=gFe(),i=F(t),a=F(i),o=F(a),s=F(o),c=F(s,!0);O(s);var l=L(s),u=F(l,!0);O(l);var d=L(l),f=F(d,!0);O(d);var p=L(d),m=F(p,!0);O(p);var h=L(p),g=e=>{var t=uFe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>$re()]),H(e,t)};W(h,e=>{z(r)&&e(g)});var _=L(h),v=F(_,!0);O(_);var y=L(_),b=F(y,!0);O(y);var x=L(y),S=F(x,!0);O(x);var C=L(x),w=F(C,!0);O(C);var T=L(C),E=F(T,!0);O(T);var D=L(T),ee=e=>{var t=dFe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>bie()]),H(e,t)};W(D,e=>{z(n)||e(ee)}),O(o),O(a);var te=L(a);G(te,21,()=>z3.usageLog.entries,e=>e.id,(e,t)=>{var i=hFe();let a;var o=F(i),s=F(o,!0);O(o);var c=L(o),l=F(c),u=F(l,!0);O(l),O(c);var d=L(c),f=F(d,!0);O(d);var p=L(d),m=F(p,!0);O(p);var h=L(p),g=e=>{var n=fFe();sFe(F(n),()=>z(t)),O(n),H(e,n)};W(h,e=>{z(r)&&e(g)});var _=L(h),v=F(_,!0);O(_);var y=L(_),b=F(y),x=e=>{var n=pFe(),r=F(n,!0);O(n),R(e=>U(r,e),[()=>kPe(z(t))]),H(e,n)},S=j(()=>M3(z(t))),C=e=>{H(e,G3())};W(b,e=>{z(S)?e(x):e(C,-1)}),O(y);var w=L(y),T=F(w,!0);O(w);var E=L(w),D=F(E,!0);O(E);var ee=L(E),te=F(ee),ne=F(te,!0);O(te);var re=L(te,2),ie=e=>{{let n=j(()=>O3(z(t)));J(e,{get icon(){return nX},class:`cost-source-icon`,get title(){return z(n)}})}},ae=j(()=>z(n)&&D3(z(t)));W(re,e=>{z(ae)&&e(ie)});var oe=L(re,2),se=e=>{J(e,{get icon(){return iX},class:`cache-savings-icon`})},ce=j(()=>z(n)&&A3(z(t)));W(oe,e=>{z(ce)&&e(se)});var le=L(oe,2),ue=e=>{var n=K3();R(()=>q(n,`title`,z(t).costs_calculation_caveat)),H(e,n)};W(le,e=>{z(n)&&z(t).costs_calculation_caveat&&e(ue)}),O(ee);var de=L(ee),fe=e=>{var n=mFe(),r=F(n),i=F(r,!0);O(r);var a=L(r,2),o=e=>{{let n=j(()=>O3(z(t)));J(e,{get icon(){return nX},class:`cost-source-icon`,get title(){return z(n)}})}},s=j(()=>D3(z(t)));W(a,e=>{z(s)&&e(o)});var c=L(a,2),l=e=>{J(e,{get icon(){return iX},class:`cache-savings-icon`})},u=j(()=>A3(z(t)));W(c,e=>{z(u)&&e(l)});var d=L(c,2),f=e=>{var n=K3();R(()=>q(n,`title`,z(t).costs_calculation_caveat)),H(e,n)};W(d,e=>{z(t).costs_calculation_caveat&&e(f)}),O(n),R((e,t)=>{q(n,`title`,e),U(i,t)},[()=>j3(z(t),N3(z(t))),()=>fZ(z(t).total_cost)]),H(e,n)};W(de,e=>{z(n)||e(fe)}),O(i),R((e,n,r,c,l,d,p,h,g,_,b,x,S)=>{a=K(i,1,`svelte-hg4ill`,null,a,e),q(o,`title`,n),U(s,r),U(u,c),U(f,z(t).model),U(m,z(t).user_path||`-`),U(v,l),q(y,`title`,d),q(w,`title`,p),U(T,h),q(E,`title`,g),U(D,_),q(ee,`title`,b),q(te,`title`,x),U(ne,S)},[()=>({"usage-log-row-cached":A3(z(t))}),()=>vZ(z(t).timestamp),()=>WX.formatTimestamp(z(t).timestamp),()=>yZ(z(t))||`-`,()=>DPe(z(t)),()=>APe(z(t)),()=>z(n)?Oo({count:dZ(z(t).input_tokens)}):``,()=>z(n)?fZ(z(t).input_cost):dZ(z(t).input_tokens),()=>z(n)?Oo({count:dZ(z(t).output_tokens)}):``,()=>z(n)?fZ(z(t).output_cost):dZ(z(t).output_tokens),()=>z(n)?j3(z(t),``):``,()=>z(n)?j3(z(t),Oo({count:dZ(z(t).total_tokens)})+` -`+N3(z(t))):``,()=>z(n)?fZ(z(t).total_cost):dZ(z(t).total_tokens)]),H(e,i)}),O(te),O(i),O(t),R((e,t,n,r,i,a,o,s,l,d)=>{U(c,e),U(u,t),U(f,n),U(m,r),U(v,i),q(y,`title`,a),U(b,o),U(S,s),U(w,l),U(E,d)},[()=>Xre(),()=>bo(),()=>yo(),()=>xo(),()=>nie(),()=>cie(),()=>aie(),()=>z(n)?To():die(),()=>z(n)?Eo():mie(),()=>z(n)?Do():_ie()]),H(e,t)},v=e=>{var t=_Fe(),n=F(t);{let e=j(()=>Tie());a3(n,{size:20,get label(){return z(e)}})}O(t),H(e,t)},y=e=>{var t=vFe();o3(F(t),{}),O(t),H(e,t)};W(g,e=>{z3.usageLog.entries.length>0?e(_):z3.usageLogLoading?e(v,1):e(y,-1)}),W3(L(g,2),{get total(){return z3.usageLog.total},get offset(){return z3.usageLog.offset},get limit(){return z3.usageLog.limit},onprev:()=>z3.usageLogPrevPage(),onnext:()=>z3.usageLogNextPage()}),O(a),R((e,t)=>{U(s,e),U(h,t)},[()=>Rre(),()=>qre()]),B(`change`,p,()=>z3.fetchUsageLog(!0)),ji(p,()=>z3.usageLogHideCached,e=>z3.usageLogHideCached=e),H(e,a),A()}br([`click`,`change`]);var xFe=V(`
`);function SFe(e,t){k(t,!0);let n=`usage`;pn(()=>{X.refreshTick,TX.page===n&&(z3.fetchUsagePage(),v3.ensureLiveLogs())}),pn(()=>{TX.page===n&&(z3.usageMode=TX.sub===`costs`?`costs`:`tokens`)});var r=xFe(),i=F(r),a=F(i),o=F(a,!0);O(a),O(i);var s=L(i,2),c=F(s);{let e=j(()=>ite()),t=j(()=>[{value:`tokens`,label:Vo()},{value:`costs`,label:Ys()}]);Q2(c,{get ariaLabel(){return z(e)},get options(){return z(t)},get value(){return z3.usageMode},onchange:e=>z3.toggleUsageMode(e)})}LZ(L(c,2),{onchange:()=>z3.fetchUsagePage()}),O(s);var l=L(s,2);RPe(l,{});var u=L(l,2);WPe(u,{});var d=L(u,2),f=F(d);U3(f,{kind:`model`});var p=L(f,2);U3(p,{kind:`userPath`}),U3(L(p,2),{kind:`label`}),O(d),bFe(L(d,2),{}),O(r),R(e=>U(o,e),[()=>tte()]),H(e,r),A()}var CFe=V(`
`);function q3(e,t){let n=Ri(t,`label`,3,`Loading...`),r=Ri(t,`class`,3,``);var i=CFe(),a=L(F(i),2),o=F(a,!0);O(a),O(i),R(()=>{K(i,1,ci([`loading-state`,r()]),`svelte-hzxv1d`),U(o,n())}),H(e,i)}var wFe=V(``);function J3(e,t){let n=Ri(t,`label`,3,``),r=Ri(t,`class`,3,``),i=Ri(t,`disabled`,3,!1);var a=wFe();Gr(F(a),()=>t.children??f),O(a),R(()=>{K(a,1,ci([`table-action-btn`,r()])),q(a,`aria-label`,n()),q(a,`title`,n()),a.disabled=i()}),B(`click`,a,function(...e){t.onclick?.apply(this,e)}),H(e,a)}br([`click`]);async function Y3(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 YX(e,{...a||{},label:t})}catch(e){return ZX(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?``:GX(o.data,n),result:o}}async function X3(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 XX(e,t,n,{...s||{},label:r})}catch(e){return ZX(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.`:GX(c.data,i),result:c}}function Z3(){return{scope:`user_path`,subject:`/`,period:`daily`,period_seconds:86400,amount:``,source:`manual`}}function Q3(e){let t={user_path:{label:tf(),chip:af(),fieldLabel:cf(),placeholder:`/team/alpha`},label:{label:df(),chip:mf(),fieldLabel:df(),placeholder:`Mobile-App-iOS`}};return t[e]||t.user_path}function TFe(){return[`user_path`,`label`].map(e=>({value:e,label:Q3(e).label}))}function $3(e){return String(e&&e.scope||``).trim()||`user_path`}function e6(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function t6(e){return Q3($3(e)).chip}function EFe(e){return $3(e)===`label`?`budget-label`:`budget-user-path`}function DFe(e){return Q3(String(e&&e.scope||``)).fieldLabel}function OFe(e){return Q3(String(e&&e.scope||``)).placeholder}function kFe(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function AFe(){return[{value:`hourly`,label:_f()},{value:`daily`,label:bf()},{value:`weekly`,label:Cf()},{value:`monthly`,label:Ef()},{value:`custom`,label:kf()}]}function n6(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 r6(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 i6(e){return $3(e)+`:`+e6(e)+`:`+String(e&&e.period_seconds||``)}function jFe(e,t){if(!t||!Array.isArray(e))return null;let n=i6(t);return e.find(e=>i6(e)===n)||null}function a6(e){let t=String(e||``).trim();if(!t)return Mf();let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return Ff();if(t.includes(`:`))return Rf()}}return``}function MFe(e){if(a6(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 NFe(e){return`/`+String(e||``).trimStart().replace(/^\/+/,``)}function o6(e){return Array.isArray(e)?e:e&&Array.isArray(e.budgets)?e.budgets:[]}function PFe(e){let t=Number(e&&e.period_seconds||0);return[e6(e),t6(e),m6(e),r6(t),t?String(t)+`s`:``,t?String(t)+` seconds`:``].join(` `).toLowerCase()}var s6={user_path:0,label:1};function FFe(e,t){let n=Array.isArray(e)?e.slice():[],r=String(t||`subject`);return n.sort((e,t)=>{let n=(s6[$3(e)]||0)-(s6[$3(t)]||0),i=e6(e).localeCompare(e6(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 IFe(e,t,n){let r=Array.isArray(e)?e:[],i=String(t||``).trim().toLowerCase();return FFe(i?r.filter(e=>PFe(e).includes(i)):r.slice(),n)}function LFe(e){let t=e||{},n=$3(t),r=String(t.subject||``).trim();if(n===`user_path`){let e=a6(r);if(e)return{payload:null,error:e}}else if(!r)return{payload:null,error:Vf()};let i=Number(t.amount);if(!Number.isFinite(i)||i<=0)return{payload:null,error:Wf()};let a=String(t.period||``).trim(),o=n6(a);return a===`custom`&&(o=Number(t.period_seconds)),!Number.isFinite(o)||o<=0?{payload:null,error:qf()}:{payload:{scope:n,subject:n===`user_path`?MFe(r):r,period_seconds:Math.trunc(o),amount:i,source:String(t.source||`manual`).trim()||`manual`},error:``}}function RFe(e){return{scope:$3(e),subject:e6(e),budget_key:{period_seconds:e.period_seconds},amount:e.amount}}function zFe(e){return{scope:$3(e),subject:e6(e),budget_key:{period_seconds:e.period_seconds}}}function BFe(e){return{scope:$3(e),subject:e6(e),period_seconds:e.period_seconds}}function c6(e){return fZ(e)}function VFe(e,t){let n=e||{},r=t||{};return bm({label:(e6(n)||e6(r))+` `+m6({period_seconds:n.period_seconds||r.period_seconds,period_label:r.period_label}),current:c6(r.amount),next:c6(n.amount)})}function l6(e){let t=Number(e);return!Number.isFinite(t)||t<0?0:t}function u6(e,t){let n=l6(e);return Math.round((t?Math.min(n,1):n)*1e3)/10}function d6(e){return l6(e&&e.usage_ratio)}function f6(e){return u6(d6(e),!0)}function p6(e){return u6(e&&e.period_ratio,!0)}function HFe(e){return u6(d6(e),!1).toFixed(1).replace(/\.0$/,``)+`%`}function UFe(e){return p6(e).toFixed(1).replace(/\.0$/,``)+`%`}function m6(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return _f();case 86400:return bf();case 604800:return Cf();case 2592e3:return Ef();default:return Xf({period:String(e&&e.period_label||``).trim()||String(t||``)+`s`})}}function h6(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 WFe(e){return h6(e).replace(`budget-period-label-`,`budget-bar-fill-period-`)}function GFe(e){return h6(e).replace(`budget-period-label-`,`budget-bar-track-period-`)}function KFe(e){switch(Number(e&&e.period_seconds||0)){case 3600:return Awe;case 86400:return gX;case 604800:return wwe;case 2592e3:return Twe;default:return Gwe}}function qFe(e){let t=Math.max(0,Math.trunc(Number(e||0)));return t===1?np():$f({count:t})}function g6(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return ap();case 86400:return cp();case 604800:return dp();case 2592e3:return mp();default:return qFe(t)}}function _6(e){return String(e&&e.source||``).trim()||`manual`}function JFe(e){let t=_6(e).toLowerCase();return t===`manual`?_p():t===`config`?bp():Cp({source:t})}function v6(e){let t=Number(e&&e.remaining);return Number.isFinite(t)?t<0?kp({amount:fZ(Math.abs(t))}):Ep({amount:fZ(t)}):``}var y6=new class{#e=M(P([]));get budgets(){return z(this.#e)}set budgets(e){N(this.#e,e,!0)}#t=M(!0);get budgetsAvailable(){return z(this.#t)}set budgetsAvailable(e){N(this.#t,e,!0)}#n=M(!1);get loading(){return z(this.#n)}set loading(e){N(this.#n,e,!0)}#r=M(``);get filter(){return z(this.#r)}set filter(e){N(this.#r,e,!0)}#i=M(`subject`);get sortBy(){return z(this.#i)}set sortBy(e){N(this.#i,e,!0)}#a=M(``);get error(){return z(this.#a)}set error(e){N(this.#a,e,!0)}#o=M(!1);get formOpen(){return z(this.#o)}set formOpen(e){N(this.#o,e,!0)}#s=M(!1);get formSubmitting(){return z(this.#s)}set formSubmitting(e){N(this.#s,e,!0)}#c=M(``);get formError(){return z(this.#c)}set formError(e){N(this.#c,e,!0)}#l=M(!1);get editing(){return z(this.#l)}set editing(e){N(this.#l,e,!0)}#u=M(P(Z3()));get form(){return z(this.#u)}set form(e){N(this.#u,e,!0)}#d=M(!1);get overrideDialogOpen(){return z(this.#d)}set overrideDialogOpen(e){N(this.#d,e,!0)}#f=M(null);get overridePendingPayload(){return z(this.#f)}set overridePendingPayload(e){N(this.#f,e,!0)}#p=M(null);get overrideExistingBudget(){return z(this.#p)}set overrideExistingBudget(e){N(this.#p,e,!0)}#m=M(``);get resettingKey(){return z(this.#m)}set resettingKey(e){N(this.#m,e,!0)}#h=M(``);get deletingKey(){return z(this.#h)}set deletingKey(e){N(this.#h,e,!0)}#g=M(!1);get resetAllLoading(){return z(this.#g)}set resetAllLoading(e){N(this.#g,e,!0)}#_=null;managementEnabled(){return QX.budgetsVisible()}filteredBudgets(){return IFe(this.budgets,this.filter,this.sortBy)}async fetchBudgetsPage(){if(await QX.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 Y3(`/admin/budgets`,{label:`budgets`,errorFallback:Cm(),normalize:o6});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:$3(e),subject:e6(e),period:r6(t),period_seconds:t,amount:String(e.amount||``),source:String(e.source||`manual`)}}else this.form=Z3();this.formOpen=!0}syncPeriodSeconds(){let e=n6(String(this.form.period||``).trim());e>0&&(this.form.period_seconds=e)}setFormSubject(e){this.form.subject=this.form.scope===`label`?String(e??``):NFe(e)}syncScope(){kFe(this.form)}closeForm(){this.closeOverrideDialog(),this.formOpen=!1,this.formSubmitting=!1,this.formError=``,this.editing=!1,this.form=Z3()}async submitForm(){if(this.formSubmitting)return;let{payload:e,error:t}=LFe(this.form);if(!e){this.formError=t;return}if(!this.editing){let t=jFe(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 X3(`/admin/budgets`,`PUT`,RFe(e),{label:`save budget`,errorFallback:Em(),unavailableMessage:Uu()});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(),cZ.success(km()),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=i6(e);if(this.resettingKey===t)return;let n=e6(e)+` `+m6(e);if(!confirm(Mm({label:n})))return;this.resettingKey=t;let r=await X3(`/admin/budgets/reset-one`,`POST`,BFe(e),{label:`reset budget`,errorFallback:Fm(),unavailableMessage:Uu()});if(this.resettingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,cZ.error(r.error);return}if(r.status===`error`){cZ.error(r.error);return}cZ.success(Rm()),this.fetchBudgets()}}async deleteBudget(e){if(!e)return;let t=i6(e);if(this.deletingKey===t)return;let n=e6(e)+` `+m6(e);if(!confirm(Vm({label:n})))return;this.deletingKey=t;let r=await X3(`/admin/budgets`,`DELETE`,zFe(e),{label:`delete budget`,errorFallback:Wm(),unavailableMessage:Uu()});if(this.deletingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,cZ.error(r.error);return}if(r.status===`error`){cZ.error(r.error);return}this.budgets=o6(r.result.data),cZ.success(qm())}}openResetDialog(){nZ.open({title:Xm(),titleId:`budgetResetDialogTitle`,inputId:`budget-reset-confirmation`,requiredText:`reset`,confirmLabel:$m(),icon:pX,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.resetAllBudgets()})}async resetAllBudgets(){if(this.resetAllLoading)return;this.resetAllLoading=!0;let e=await X3(`/admin/budgets/reset`,`POST`,{confirmation:`reset`},{label:`reset budgets`,errorFallback:nh(),unavailableStatuses:[]});if(this.resetAllLoading=!1,e.status!==`stale`){if(e.status!==`ok`){nZ.error=e.error;return}nZ.close(),cZ.success(ah()),TX.page===`budgets`&&this.fetchBudgets()}}},b6=V(` `,1),YFe=V(`
`),XFe=V(`
`);function ZFe(e,t){k(t,!0);let n=Ri(t,`budgets`,19,()=>[]);function r(e){if(!e)return``;let t=WX.formatTimestamp(e);return!t||t===`-`?``:t+` `+WX.effectiveTimeZoneLabel()}var i=XFe();G(i,21,n,e=>i6(e),(e,t)=>{var n=YFe(),i=F(n),a=F(i),o=F(a),s=F(o),c=e=>{J(e,{get icon(){return Xwe},class:`budget-scope-icon`})},l=j(()=>$3(z(t))===`label`);W(s,e=>{z(l)&&e(c)});var u=L(s);O(o);var d=L(o,2),f=F(d),p=F(f);{let e=j(()=>KFe(z(t)));J(p,{get icon(){return z(e)},class:`budget-period-icon`})}var m=L(p,2),h=F(m,!0);O(m),O(f),O(d);var g=L(d,2),_=F(g),v=F(_),y=F(v,!0);O(v),O(_);var b=L(_,2),x=F(b);{let e=j(()=>Fp());J3(x,{get label(){return z(e)},class:`budget-action-btn`,onclick:()=>y6.openForm(z(t)),children:(e,t)=>{var n=b6(),r=I(n);J(r,{get icon(){return uX},class:`budget-action-icon`});var i=L(r,2),a=F(i,!0);O(i),R(e=>U(a,e),[()=>Mp()]),H(e,n)},$$slots:{default:!0}})}var S=L(x,2);{let e=j(()=>y6.resettingKey===i6(z(t))?qp():Wp()),n=j(()=>y6.resettingKey===i6(z(t)));J3(S,{get label(){return z(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>y6.resetBudget(z(t)),get disabled(){return z(n)},children:(e,n)=>{var r=b6(),i=I(r);J(i,{get icon(){return pX},class:`budget-action-icon`});var a=L(i,2),o=F(a,!0);O(a),R(e=>U(o,e),[()=>y6.resettingKey===i6(z(t))?Vp():Rp()]),H(e,r)},$$slots:{default:!0}})}var C=L(S,2);{let e=j(()=>y6.deletingKey===i6(z(t))?am():nm()),n=j(()=>y6.deletingKey===i6(z(t)));J3(C,{get label(){return z(e)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>y6.deleteBudget(z(t)),get disabled(){return z(n)},children:(e,n)=>{var r=b6(),i=I(r);J(i,{get icon(){return vX},class:`budget-action-icon`});var a=L(i,2),o=F(a,!0);O(a),R(e=>U(o,e),[()=>y6.deletingKey===i6(z(t))?$p():Xp()]),H(e,r)},$$slots:{default:!0}})}O(b),O(g),O(a);var w=L(a,2),T=F(w),E=F(T),D=F(E),ee=F(D,!0);O(D);var te=L(D,2),ne=F(te,!0);O(te),O(E);var re=L(E,2),ie=F(re);let ae;var oe=L(ie,2),se=F(oe),ce=F(se,!0);O(se);var le=L(se,2),ue=F(le,!0);O(le),O(oe);var de=L(oe,2),fe=F(de),pe=F(fe,!0);O(fe);var me=L(fe,2),he=F(me,!0);O(me),O(de),O(re),O(T);var ge=L(T,2),_e=F(ge),ve=F(_e),ye=F(ve,!0);O(ve);var be=L(ve,2),xe=F(be,!0);O(be),O(_e);var Se=L(_e,2),Ce=F(Se),we=L(Ce,2),Te=F(we),Ee=F(Te,!0);O(Te);var De=L(Te,2),Oe=F(De,!0);O(De);var ke=L(De,2),Ae=F(ke,!0);O(ke),O(we);var je=L(we,2),Me=F(je),Ne=F(Me,!0);O(Me);var Pe=L(Me,2),Fe=F(Pe,!0);O(Pe);var Ie=L(Pe,2),Le=F(Ie,!0);O(Ie),O(je),O(Se),O(ge),O(w),O(i),O(n),R((e,t,n,r,i,a,s,c,l,d,p,m,g,_,b,x,S,C,w,T,E,D,te,oe,se,le,de,fe,me,ge,_e,ve,be)=>{K(o,1,`budget-scope-value ${e??``}`,`svelte-1jm56wo`),pi(o,t),q(o,`title`,n),U(u,` ${r??``}`),K(f,1,`budget-period-label ${i??``}`,`svelte-1jm56wo`),U(h,a),q(v,`title`,s),U(y,c),U(ee,l),U(ne,d),q(re,`aria-valuenow`,p),q(re,`aria-label`,m),pi(re,`--budget-progress: ${g??``}%`),ae=K(ie,1,`budget-bar-fill budget-bar-fill-usage`,null,ae,_),U(ce,b),U(ue,x),U(pe,S),U(he,C),U(ye,w),U(xe,T),K(Se,1,`budget-bar-track ${E??``}`,`svelte-1jm56wo`),q(Se,`aria-label`,D),q(Se,`aria-valuenow`,te),pi(Se,`--budget-progress: ${oe??``}%`),K(Ce,1,`budget-bar-fill budget-bar-fill-period ${se??``}`,`svelte-1jm56wo`),q(Te,`title`,le),U(Ee,de),U(Oe,fe),q(ke,`title`,me),U(Ae,ge),U(Ne,_e),U(Fe,ve),U(Le,be)},[()=>EFe(z(t)),()=>$3(z(t))===`label`?`--label-color: `+a4(e6(z(t))):void 0,()=>t6(z(t))+`: `+e6(z(t)),()=>e6(z(t)),()=>h6(z(t)),()=>m6(z(t)),()=>JFe(z(t)),()=>_6(z(t)),()=>cm(),()=>HFe(z(t)),()=>f6(z(t)),()=>dm({spent:fZ(z(t).spent),amount:fZ(z(t).amount),remaining:v6(z(t))}),()=>f6(z(t)),()=>({"budget-bar-fill-danger":d6(z(t))>=1}),()=>mm({spent:fZ(z(t).spent),amount:fZ(z(t).amount)}),()=>v6(z(t)),()=>mm({spent:fZ(z(t).spent),amount:fZ(z(t).amount)}),()=>v6(z(t)),()=>ud(),()=>UFe(z(t)),()=>GFe(z(t)),()=>_m(),()=>p6(z(t)),()=>p6(z(t)),()=>WFe(z(t)),()=>r(z(t).period_start),()=>WX.formatTimestamp(z(t).period_start),()=>g6(z(t)),()=>r(z(t).period_end),()=>WX.formatTimestamp(z(t).period_end),()=>WX.formatTimestamp(z(t).period_start),()=>g6(z(t)),()=>WX.formatTimestamp(z(t).period_end)]),H(e,n)}),O(i),H(e,i),A()}var QFe=V(`

`,1),$Fe=V(``),eIe=V(``),tIe=V(`
`);function x6(e,t){k(t,!0);let n=Ri(t,`open`,3,!1),r=Ri(t,`title`,3,``),i=Ri(t,`ariaLabel`,3,``),a=Ri(t,`error`,3,``),o=Ri(t,`submitting`,3,!1),s=Ri(t,`submitDisabled`,3,!1),c=Ri(t,`submitLabel`,3,`Save`),l=Ri(t,`submittingLabel`,3,`Saving...`),u=Ri(t,`submitIcon`,3,mX),d=Ri(t,`cancel`,3,!0),p=Ri(t,`dialogClass`,3,``),m=Ri(t,`novalidate`,3,!1),h=Ri(t,`canClose`,3,()=>!0);function g(){X.dialogOpen||h()()&&t.onclose?.()}eZ(e,{get open(){return n()},variant:`editor`,onclose:g,children:(e,n)=>{var h=tIe(),g=F(h),_=F(g),v=F(_),y=F(v),b=e=>{var n=Dr();Gr(I(n),()=>t.header),H(e,n)},x=e=>{var n=QFe(),i=I(n),a=F(i,!0);O(i);var o=L(i,2),s=e=>{var n=Dr();Gr(I(n),()=>t.headerHint),H(e,n)};W(o,e=>{t.headerHint&&e(s)}),R(()=>U(a,r())),H(e,n)};W(y,e=>{t.header?e(b):e(x,-1)}),O(v);var S=L(v,2);{let e=j(()=>`Close `+(i()||r()).toLowerCase());$X(S,{get label(){return z(e)},onclick:()=>t.onclose?.()})}O(_);var C=L(_,2);Gr(C,()=>t.children??f);var w=L(C,2),T=e=>{var t=$Fe(),n=F(t,!0);O(t),R(()=>U(n,a())),H(e,t)};W(w,e=>{a()&&e(T)});var E=L(w,2),D=F(E),ee=e=>{var n=eIe();B(`click`,n,()=>t.onclose?.()),H(e,n)};W(D,e=>{d()&&e(ee)});var te=L(D,2),ne=e=>{var n=Dr();Gr(I(n),()=>t.extraActions),H(e,n)};W(te,e=>{t.extraActions&&e(ne)});var re=L(te,2),ie=F(re);J(ie,{get icon(){return u()},class:`form-action-icon`});var ae=L(ie,2),oe=F(ae,!0);O(ae),O(re),O(E),O(g),O(h),R(()=>{K(h,1,ci([`model-editor`,p()])),q(h,`aria-label`,i()||r()),g.noValidate=m(),re.disabled=o()||s(),U(oe,o()?l():c())}),yr(`submit`,g,e=>{e.preventDefault(),t.onsubmit?.()}),H(e,h)},$$slots:{default:!0}}),A()}br([`click`]);var nIe=V(`
`);function S6(e,t){let n=Ri(t,`label`,3,``);var r=nIe(),i=F(r),a=F(i,!0);O(i),Gr(L(i,2),()=>t.children??f),O(r),R(()=>{q(i,`for`,t.id),U(a,n())}),H(e,r)}var C6=V(``),rIe=V(``),iIe=V(``),aIe=V(``),oIe=V(``),sIe=V(``),cIe=V(`

`),lIe=V(`
`,1),uIe=V(``),dIe=V(` `,1);function fIe(e,t){k(t,!0);function n(e){y6.setFormSubject(e.target.value),e.target.value=y6.form.subject}var r=dIe(),i=I(r);{let e=j(()=>y6.editing?yd():Sd()),t=j(()=>Td()),r=j(()=>Od());x6(i,{get open(){return y6.formOpen},get title(){return z(e)},get ariaLabel(){return z(t)},get error(){return y6.formError},get submitting(){return y6.formSubmitting},get submitLabel(){return z(r)},dialogClass:`budget-editor`,canClose:()=>!y6.overrideDialogOpen,onclose:()=>y6.closeForm(),onsubmit:()=>y6.submitForm(),children:(e,t)=>{var r=lIe(),i=I(r),a=F(i);{let e=j(()=>jd());S6(a,{id:`budget-scope`,get label(){return z(e)},children:(e,t)=>{var n=rIe();G(n,21,TFe,e=>e.value,(e,t)=>{var n=C6(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(n),R(()=>n.disabled=y6.editing),B(`change`,n,()=>y6.syncScope()),gi(n,()=>y6.form.scope,e=>y6.form.scope=e),H(e,n)},$$slots:{default:!0}})}var o=L(a,2);{let e=j(()=>DFe(y6.form));S6(o,{id:`budget-subject`,get label(){return z(e)},children:(e,t)=>{var r=iIe();Ci(r),R(e=>{q(r,`placeholder`,e),wi(r,y6.form.subject),r.disabled=y6.editing,q(r,`data-modal-autofocus`,!y6.editing||void 0)},[()=>OFe(y6.form)]),B(`input`,r,n),H(e,r)},$$slots:{default:!0}})}var s=L(o,2);{let e=j(()=>ud());S6(s,{id:`budget-period`,get label(){return z(e)},children:(e,t)=>{var n=aIe();G(n,21,AFe,e=>e.value,(e,t)=>{var n=C6(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(n),R(()=>n.disabled=y6.editing),B(`change`,n,()=>y6.syncPeriodSeconds()),gi(n,()=>y6.form.period,e=>y6.form.period=e),H(e,n)},$$slots:{default:!0}})}var c=L(s,2),l=e=>{{let t=j(()=>Pd());S6(e,{id:`budget-period-seconds`,get label(){return z(t)},children:(e,t)=>{var n=oIe();Ci(n),R(()=>n.disabled=y6.editing),Ai(n,()=>y6.form.period_seconds,e=>y6.form.period_seconds=e),H(e,n)},$$slots:{default:!0}})}};W(c,e=>{y6.form.period===`custom`&&e(l)});var u=L(c,2);{let e=j(()=>Ld());S6(u,{id:`budget-amount`,get label(){return z(e)},children:(e,t)=>{var n=sIe();Ci(n),R(()=>q(n,`data-modal-autofocus`,y6.editing||void 0)),Ai(n,()=>y6.form.amount,e=>y6.form.amount=e),H(e,n)},$$slots:{default:!0}})}O(i);var d=L(i,2),f=e=>{var t=cIe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Bd()]),H(e,t)};W(d,e=>{y6.editing&&e(f)}),H(e,r)},$$slots:{default:!0}})}eZ(L(i,2),{get open(){return y6.overrideDialogOpen},variant:`auth`,onclose:()=>y6.closeOverrideDialog(),children:(e,t)=>{var n=uIe(),r=F(n),i=F(r),a=F(i,!0);O(i);var o=L(i,2);{let e=j(()=>Kd());$X(o,{get label(){return z(e)},onclick:()=>y6.closeOverrideDialog(),class:`auth-dialog-close`,iconClass:``})}O(r);var s=L(r,2),c=F(s),l=F(c,!0);O(c);var u=L(c,2),d=F(u),f=F(d,!0);O(d);var p=L(d,2),m=F(p);J(m,{get icon(){return mX},class:`form-action-icon`});var h=L(m,2),g=F(h,!0);O(h),O(p),O(u),O(s),O(n),R((e,t,n,r)=>{U(a,e),U(l,t),U(f,n),p.disabled=y6.formSubmitting,U(g,r)},[()=>Ud(),()=>VFe(y6.overridePendingPayload,y6.overrideExistingBudget),()=>wa(),()=>y6.formSubmitting?Yd():Qd()]),yr(`submit`,s,e=>{e.preventDefault(),y6.confirmOverride()}),B(`click`,d,()=>y6.closeOverrideDialog()),H(e,n)},$$slots:{default:!0}}),H(e,r),A()}br([`change`,`input`,`click`]);var pIe=V(`

`),mIe=V(``),hIe=V(`
`),gIe=V(``),_Ie=V(`
`),w6=V(`

`),vIe=V(`
`);function yIe(e,t){k(t,!0),pn(()=>{X.refreshTick,TX.page===`budgets`&&y6.fetchBudgetsPage()});let n=j(()=>y6.filteredBudgets());var r=vIe(),i=F(r),a=F(i),o=F(a);{let e=e=>{var t=pIe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>ju()]),H(e,t)},t=e=>{Be();var t=Er();R(e=>U(t,e),[()=>Lu()]),H(e,t)},n=j(()=>Pu());l3(o,{copyId:`budgets-help-copy`,get label(){return z(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}O(a);var s=L(a,2),c=F(s),l=e=>{var t=mIe(),n=F(t);J(n,{get icon(){return dX},class:`form-action-icon`});var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>{t.disabled=y6.formSubmitting,U(i,e)},[()=>Bu()]),B(`click`,t,()=>y6.openForm()),H(e,t)},u=j(()=>y6.managementEnabled()&&y6.budgetsAvailable&&!X.authError);W(c,e=>{z(u)&&e(l)}),O(s),O(i);var d=L(i,2);MZ(d,{});var f=L(d,2),p=e=>{var t=hIe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Uu()]),H(e,t)},m=j(()=>(!y6.managementEnabled()||!y6.budgetsAvailable)&&!X.authError);W(f,e=>{z(m)&&e(p)});var h=L(f,2),g=e=>{var t=gIe(),n=F(t,!0);O(t),R(()=>U(n,y6.error)),H(e,t)};W(h,e=>{y6.error&&!X.authError&&e(g)});var _=L(h,2),v=e=>{{let t=j(()=>Ku());q3(e,{get label(){return z(t)}})}};W(_,e=>{y6.loading&&!X.authError&&e(v)});var y=L(_,2),b=e=>{var t=_Ie(),n=F(t),r=F(n);{let e=j(()=>Yu()),t=j(()=>Qu());B3(r,{id:`budget-filter`,get placeholder(){return z(e)},get label(){return z(t)},get value(){return y6.filter},set value(e){y6.filter=e}})}O(n);var i=L(n,2),a=F(i),o=F(a,!0);O(a);var s=L(a,2),c=F(s),l=F(c,!0);O(c),c.value=c.__value=`subject`;var u=L(c),d=F(u,!0);O(u),u.value=u.__value=`period`,O(s),O(i),O(t),R((e,t,n,r)=>{U(o,e),q(s,`aria-label`,t),U(l,n),U(d,r)},[()=>td(),()=>id(),()=>sd(),()=>ud()]),gi(s,()=>y6.sortBy,e=>y6.sortBy=e),H(e,t)};W(y,e=>{(y6.budgets.length>0||y6.filter)&&y6.budgetsAvailable&&!X.authError&&!y6.formOpen&&e(b)});var x=L(y,2);fIe(x,{});var S=L(x,2),C=e=>{ZFe(e,{get budgets(){return z(n)}})};W(S,e=>{z(n).length>0&&y6.budgetsAvailable&&!X.authError&&e(C)});var w=L(S,2),T=e=>{var t=w6(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>pd()]),H(e,t)},E=j(()=>y6.budgets.length===0&&!y6.filter&&!y6.loading&&!X.authError&&!y6.error&&y6.budgetsAvailable&&y6.managementEnabled());W(w,e=>{z(E)&&e(T)});var D=L(w,2),ee=e=>{var t=w6(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>gd()]),H(e,t)},te=j(()=>y6.budgets.length>0&&z(n).length===0&&y6.filter&&!y6.loading&&!X.authError&&!y6.error&&y6.budgetsAvailable&&y6.managementEnabled());W(D,e=>{z(te)&&e(ee)}),O(r),H(e,r),A()}br([`click`]);function T6(){return{scope:`user_path`,subject:`/`,period:`minute`,period_seconds:60,max_requests:``,max_tokens:``,source:`manual`}}function E6(e){let t={user_path:{label:age(),chip:cge(),fieldLabel:Ek(),placeholder:`/team/alpha`},provider:{label:dge(),chip:mge(),fieldLabel:_ge(),placeholder:`openai`},model:{label:wY(),chip:Sge(),fieldLabel:wY(),placeholder:`openai/gpt-4o`}};return t[e]||t.user_path}function bIe(){return[`user_path`,`provider`,`model`].map(e=>({value:e,label:E6(e).label}))}function D6(e){return String(e&&e.scope||``).trim()||`user_path`}function O6(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function k6(e){return E6(D6(e)).chip}function A6(e){return E6(String(e&&e.scope||``)).fieldLabel}function xIe(e){return E6(String(e&&e.scope||``)).placeholder}function SIe(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function CIe(){return[{value:`minute`,label:Tge()},{value:`hour`,label:Oge()},{value:`day`,label:jge()},{value:`concurrent`,label:Pge()},{value:`custom`,label:Lge()}]}function j6(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 M6(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 wIe(e){let t=String(e&&e.period||``).trim(),n=j6(t);n>=0&&(e.period_seconds=n),t===`concurrent`&&(e.max_tokens=``)}function N6(e){return D6(e)+`:`+O6(e)+`:`+String(e&&e.period_seconds||`0`)}function P6(e){return Number(e&&e.period_seconds||0)===0}function F6(e){return String(e&&e.period_label||``).trim()||M6(Number(e&&e.period_seconds||0))}function TIe(e){return String(e&&e.source||``)===`config`?`config`:`manual`}function EIe(e){return String(e&&e.source||``)===`config`}function I6(e){let t=Number(e);return Number.isFinite(t)?EZ(t):`0`}function L6(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 DIe(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[D6(e)]||0)-(i[D6(t)]||0);if(n!==0)return n;let r=O6(e).localeCompare(O6(t));return r===0?Number(e.period_seconds||0)-Number(t.period_seconds||0):r}),n?r.filter(e=>{let t=O6(e).toLowerCase(),r=k6(e).toLowerCase(),i=F6(e).toLowerCase();return t.includes(n)||r.includes(n)||i.includes(n)}):r}function R6(e){return!e||!Array.isArray(e.rate_limits)?[]:e.rate_limits}function z6(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 OIe(e,t){return e?z6(t.scope,t.subject,t.limit_key.period_seconds)!==z6(e.scope,e.subject,e.period_seconds):!1}function kIe(e){let t=e||{},n=String(t.scope||`user_path`),r=String(t.subject||``).trim();if(n!==`user_path`&&!r)return{error:Uge({field:A6(t)})};let i=String(t.period||``)===`concurrent`,a=t.period_seconds;if(a===``||a==null)return{error:Bge()};let o=Number(a);if(!Number.isInteger(o)||o<0||o===0&&!i)return{error:Kge()};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:Yge()};if(i&&c)return{error:Qge()};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:t_e()};l.max_requests=e}if(c){let e=Number(c);if(!Number.isInteger(e)||e<=0)return{error:i_e()};l.max_tokens=e}return{payload:l}}function B6(e,t,n){if(D6(e)!==`model`)return!1;let r=String(O6(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 V6(e,t){return D6(e)===`provider`&&String(O6(e)).toLowerCase()===String(t||``).trim().toLowerCase()}function H6(e){let t=e||{},n=String(t.model||``),r=String(t.provider||``);return!r||n.toLowerCase().startsWith(r+`/`)?n:r+`/`+n}function AIe(e,t){let n=e||{},r=Array.isArray(t)?t:[],i=[];return n.kind===`model`&&i.push({key:`model`,title:s_e(),scope:`model`,subject:H6(n),hint:``,items:r.filter(e=>B6(e,n.provider,n.model))}),i.push({key:`provider`,title:u_e({provider:n.provider}),scope:`provider`,subject:n.provider,hint:n.kind===`model`?p_e():``,items:r.filter(e=>V6(e,n.provider))}),i.push({key:`global`,title:g_e(),scope:`user_path`,subject:`/`,hint:y_e(),items:r.filter(e=>D6(e)===`user_path`&&O6(e)===`/`)}),i}function U6(e){return P6(e)?L6(e.in_flight,e.max_requests):Math.max(L6(e.requests_used,e.max_requests),L6(e.tokens_used,e.max_tokens))}function jIe(e){return`--rate-limit-pressure: `+U6(e)+`%`}function MIe(e){let t=U6(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 W6(e){return(Array.isArray(e)?e:[]).some(e=>D6(e)===`user_path`&&O6(e)===`/`)}function NIe(e,t,n){let r=Array.isArray(e)?e:[];return r.some(e=>B6(e,t,n))?`table-action-btn-active`:r.some(e=>V6(e,t))||W6(r)?`rate-limit-gauge-inherited`:``}function PIe(e,t){let n=Array.isArray(e)?e:[];return n.some(e=>V6(e,t))?`table-action-btn-active`:W6(n)?`rate-limit-gauge-inherited`:``}function FIe(e,t){let n=S_e({subject:e});return t===`table-action-btn-active`?n+` (`+T_e()+`)`:t?n+` (`+O_e()+`)`:n}function IIe(e){if(P6(e))return bY({used:I6(e.in_flight),limit:I6(e.max_requests)});let t=[];return e.max_requests!==null&&e.max_requests!==void 0&&t.push(I6(e.requests_used)+`/`+I6(e.max_requests)+` req`),e.max_tokens!==null&&e.max_tokens!==void 0&&t.push(I6(e.tokens_used)+`/`+I6(e.max_tokens)+` tok`),t.join(` · `)}var Z=new class{#e=M(P([]));get rateLimits(){return z(this.#e)}set rateLimits(e){N(this.#e,e,!0)}#t=M(!0);get rateLimitsAvailable(){return z(this.#t)}set rateLimitsAvailable(e){N(this.#t,e,!0)}#n=M(!1);get rateLimitsLoading(){return z(this.#n)}set rateLimitsLoading(e){N(this.#n,e,!0)}rateLimitFetchPromise=null;#r=M(``);get rateLimitFilter(){return z(this.#r)}set rateLimitFilter(e){N(this.#r,e,!0)}#i=M(``);get rateLimitError(){return z(this.#i)}set rateLimitError(e){N(this.#i,e,!0)}#a=M(!1);get rateLimitFormOpen(){return z(this.#a)}set rateLimitFormOpen(e){N(this.#a,e,!0)}#o=M(!1);get rateLimitFormSubmitting(){return z(this.#o)}set rateLimitFormSubmitting(e){N(this.#o,e,!0)}#s=M(``);get rateLimitFormError(){return z(this.#s)}set rateLimitFormError(e){N(this.#s,e,!0)}#c=M(!1);get rateLimitEditing(){return z(this.#c)}set rateLimitEditing(e){N(this.#c,e,!0)}rateLimitEditingOriginal=null;rateLimitFormReturnToInspector=!1;#l=M(``);get rateLimitResettingKey(){return z(this.#l)}set rateLimitResettingKey(e){N(this.#l,e,!0)}#u=M(``);get rateLimitDeletingKey(){return z(this.#u)}set rateLimitDeletingKey(e){N(this.#u,e,!0)}#d=M(!1);get rateLimitInspectorOpen(){return z(this.#d)}set rateLimitInspectorOpen(e){N(this.#d,e,!0)}#f=M(P({kind:``,provider:``,model:``,title:``}));get rateLimitInspector(){return z(this.#f)}set rateLimitInspector(e){N(this.#f,e,!0)}#p=M(P(T6()));get rateLimitForm(){return z(this.#p)}set rateLimitForm(e){N(this.#p,e,!0)}rateLimitsEnabled(){return QX.rateLimitsVisible()}defaultRateLimitForm(){return T6()}rateLimitScopeMeta(e){return E6(e)}rateLimitScopeOptions(){return bIe()}rateLimitScope(e){return D6(e)}rateLimitSubject(e){return O6(e)}rateLimitScopeLabel(e){return k6(e)}rateLimitSubjectFieldLabel(){return A6(this.rateLimitForm)}rateLimitSubjectPlaceholder(){return xIe(this.rateLimitForm)}syncRateLimitScope(){SIe(this.rateLimitForm)}rateLimitPeriodOptions(){return CIe()}rateLimitPeriodSeconds(e){return j6(e)}rateLimitPeriodFromSeconds(e){return M6(e)}syncRateLimitPeriodSeconds(){wIe(this.rateLimitForm)}rateLimitKey(e){return N6(e)}rateLimitIsConcurrent(e){return P6(e)}rateLimitPeriodLabel(e){return F6(e)}rateLimitSourceLabel(e){return TIe(e)}rateLimitIsReadOnly(e){return EIe(e)}formatRateLimitNumber(e){return I6(e)}rateLimitUsagePercent(e,t){return L6(e,t)}filteredRateLimits(){return DIe(this.rateLimits,this.rateLimitFilter)}normalizeRateLimitListPayload(e){return R6(e)}async fetchRateLimitsPage(){if(await QX.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 Y3(`/admin/rate-limits`,{label:`rate limits`,errorFallback:Mhe(),normalize:R6});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:D6(e),subject:O6(e),period_seconds:t},this.rateLimitForm={scope:D6(e),subject:O6(e),period:M6(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=T6();this.rateLimitFormOpen=!0}closeRateLimitForm(){this.rateLimitFormOpen=!1,this.rateLimitFormSubmitting=!1,this.rateLimitFormError=``,this.rateLimitEditing=!1,this.rateLimitEditingOriginal=null,this.rateLimitForm=T6(),this.rateLimitFormReturnToInspector&&(this.rateLimitFormReturnToInspector=!1,this.rateLimitInspectorOpen=!0)}rateLimitNormalizedIdentity(e,t,n){return z6(e,t,n)}rateLimitIdentityMoved(e){return OIe(this.rateLimitEditingOriginal,e)}setRateLimitFormSubject(e){this.rateLimitForm.subject=String(e||``)}rateLimitFormPayload(){return kIe(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 X3(`/admin/rate-limits`,`PUT`,e,{label:`save rate limit`,errorFallback:Fhe(),unavailableStatuses:[]});if(t.status===`stale`)return;if(t.status!==`ok`){this.rateLimitFormError=t.error;return}if(this.rateLimits=R6(t.result.data),n&&!await this.deleteMovedRateLimitOriginal(r))return;this.closeRateLimitForm(),cZ.success(n?Rhe():Vhe())}finally{this.rateLimitFormSubmitting=!1}}async deleteMovedRateLimitOriginal(e){let t=await X3(`/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:Whe(),unavailableStatuses:[]});return t.status===`stale`?!1:t.status===`ok`?(this.rateLimits=R6(t.result.data),!0):(this.rateLimitFormError=t.error,!1)}async deleteRateLimit(e){let t=N6(e);if(this.rateLimitDeletingKey===t)return;this.rateLimitDeletingKey=t;let n=await X3(`/admin/rate-limits`,`DELETE`,{scope:D6(e),subject:O6(e),limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`delete rate limit`,errorFallback:qhe(),unavailableStatuses:[]});if(this.rateLimitDeletingKey=``,n.status!==`stale`){if(n.status!==`ok`){cZ.error(n.error);return}this.rateLimits=R6(n.result.data),cZ.success(Xhe())}}async resetRateLimit(e){let t=N6(e);if(this.rateLimitResettingKey===t)return;this.rateLimitResettingKey=t;let n=await X3(`/admin/rate-limits/reset-one`,`POST`,{scope:D6(e),subject:O6(e),period_seconds:Number(e.period_seconds||0)},{label:`reset rate limit`,errorFallback:$he(),unavailableStatuses:[]});if(this.rateLimitResettingKey=``,n.status!==`stale`){if(n.status!==`ok`){cZ.error(n.error);return}this.rateLimits=R6(n.result.data),cZ.success(nge())}}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 B6(e,t,n)}rateLimitRuleMatchesProvider(e,t){return V6(e,t)}rateLimitInspectorQualifiedModel(){return H6(this.rateLimitInspector)}rateLimitInspectorSections(){return AIe(this.rateLimitInspector,this.rateLimits)}rateLimitPressurePercent(e){return U6(e)}rateLimitPressureStyle(e){return jIe(e)}rateLimitPressureClass(e){return MIe(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,()=>NIe(r,n,t))}rateLimitGaugeClassForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase(),n=this.rateLimits;return this.rateLimitGaugeMemo(`provider:`+t,()=>PIe(n,t))}hasGlobalRateLimits(){let e=this.rateLimits;return this.rateLimitGaugeMemo(`global`,()=>W6(e))}rateLimitGaugeTitle(e,t){return FIe(e,t)}rateLimitInspectorSummary(e){return IIe(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)}},G6=V(``),LIe=V(``),RIe=V(``),zIe=V(``),BIe=V(``),VIe=V(``),HIe=V(``),UIe=V(`

`),WIe=V(`

`,1);function K6(e,t){k(t,!0);{let t=j(()=>Z.rateLimitEditing?RA():XE()),n=j(()=>VA()),r=j(()=>WA());x6(e,{get open(){return Z.rateLimitFormOpen},get title(){return z(t)},get ariaLabel(){return z(n)},get error(){return Z.rateLimitFormError},get submitting(){return Z.rateLimitFormSubmitting},get submitLabel(){return z(r)},dialogClass:`budget-editor`,novalidate:!0,onclose:()=>Z.closeRateLimitForm(),onsubmit:()=>Z.submitRateLimitForm(),children:(e,t)=>{var n=WIe(),r=I(n),i=F(r);{let e=j(()=>qA());S6(i,{id:`rate-limit-scope`,get label(){return z(e)},children:(e,t)=>{var n=LIe();G(n,21,()=>Z.rateLimitScopeOptions(),e=>e.value,(e,t)=>{var n=G6(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(n),B(`change`,n,()=>Z.syncRateLimitScope()),gi(n,()=>Z.rateLimitForm.scope,e=>Z.rateLimitForm.scope=e),H(e,n)},$$slots:{default:!0}})}var a=L(i,2);{let e=j(()=>Z.rateLimitSubjectFieldLabel());S6(a,{id:`rate-limit-subject`,get label(){return z(e)},children:(e,t)=>{var n=RIe();Ci(n),R(e=>{q(n,`placeholder`,e),q(n,`data-modal-autofocus`,!Z.rateLimitEditing||void 0),wi(n,Z.rateLimitForm.subject)},[()=>Z.rateLimitSubjectPlaceholder()]),B(`input`,n,e=>Z.setRateLimitFormSubject(e.currentTarget.value)),H(e,n)},$$slots:{default:!0}})}var o=L(a,2);{let e=j(()=>XA());S6(o,{id:`rate-limit-period`,get label(){return z(e)},children:(e,t)=>{var n=zIe();G(n,21,()=>Z.rateLimitPeriodOptions(),e=>e.value,(e,t)=>{var n=G6(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(n),B(`change`,n,()=>Z.syncRateLimitPeriodSeconds()),gi(n,()=>Z.rateLimitForm.period,e=>Z.rateLimitForm.period=e),H(e,n)},$$slots:{default:!0}})}var s=L(o,2),c=e=>{{let t=j(()=>$A());S6(e,{id:`rate-limit-period-seconds`,get label(){return z(t)},children:(e,t)=>{var n=BIe();Ci(n),Ai(n,()=>Z.rateLimitForm.period_seconds,e=>Z.rateLimitForm.period_seconds=e),H(e,n)},$$slots:{default:!0}})}};W(s,e=>{Z.rateLimitForm.period===`custom`&&e(c)});var l=L(s,2);{let e=j(()=>Z.rateLimitForm.period===`concurrent`?nj():aj());S6(l,{id:`rate-limit-max-requests`,get label(){return z(e)},children:(e,t)=>{var n=VIe();Ci(n),R(()=>q(n,`data-modal-autofocus`,Z.rateLimitEditing?!0:void 0)),Ai(n,()=>Z.rateLimitForm.max_requests,e=>Z.rateLimitForm.max_requests=e),H(e,n)},$$slots:{default:!0}})}var u=L(l,2),d=e=>{{let t=j(()=>cj());S6(e,{id:`rate-limit-max-tokens`,get label(){return z(t)},children:(e,t)=>{var n=HIe();Ci(n),Ai(n,()=>Z.rateLimitForm.max_tokens,e=>Z.rateLimitForm.max_tokens=e),H(e,n)},$$slots:{default:!0}})}};W(u,e=>{Z.rateLimitForm.period!==`concurrent`&&e(d)}),O(r);var f=L(r,2),p=F(f,!0);O(f);var m=L(f,2),h=e=>{var t=UIe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>mj()]),H(e,t)};W(m,e=>{Z.rateLimitEditing&&e(h)}),R(e=>U(p,e),[()=>dj()]),H(e,n)},$$slots:{default:!0}})}A()}br([`change`,`input`]);var GIe=V(` `),q6=V(` `,1),KIe=V(`
`),J6=V(`
`),qIe=V(`
`),JIe=V(`
`);function YIe(e,t){k(t,!0);var n=JIe();G(n,21,()=>t.rules,e=>Z.rateLimitKey(e),(e,t)=>{var n=qIe(),r=F(n),i=F(r),a=F(i),o=F(a,!0);O(a);var s=L(a,2),c=F(s),l=e=>{var n=GIe(),r=F(n);{let e=j(()=>Z.rateLimitScope(z(t))===`provider`?Wwe:XY);J(r,{get icon(){return z(e)},class:`budget-period-icon`})}var i=L(r,2),a=F(i,!0);O(i),O(n),R((e,t)=>{q(n,`title`,e),U(a,t)},[()=>Hme({scope:Z.rateLimitScopeLabel(z(t))}),()=>Z.rateLimitScopeLabel(z(t))]),H(e,n)},u=j(()=>Z.rateLimitScope(z(t))!==`user_path`);W(c,e=>{z(u)&&e(l)});var d=L(c,2),f=F(d);{let e=j(()=>Z.rateLimitIsConcurrent(z(t))?YY:_X);J(f,{get icon(){return z(e)},class:`budget-period-icon`})}var p=L(f,2),m=F(p,!0);O(p),O(d),O(s);var h=L(s,2),g=F(h),_=F(g),v=F(_,!0);O(_),O(g);var y=L(g,2),b=F(y),x=e=>{{let n=j(()=>Zme());J3(e,{get label(){return z(n)},class:`budget-action-btn`,onclick:()=>Z.openRateLimitForm(z(t)),children:(e,t)=>{var n=q6(),r=I(n);J(r,{get icon(){return uX},class:`budget-action-icon`});var i=L(r,2),a=F(i,!0);O(i),R(e=>U(a,e),[()=>CD()]),H(e,n)},$$slots:{default:!0}})}},S=j(()=>!Z.rateLimitIsReadOnly(z(t)));W(b,e=>{z(S)&&e(x)});var C=L(b,2);{let e=j(()=>Z.rateLimitResettingKey===Z.rateLimitKey(z(t))?ehe():rhe()),n=j(()=>Z.rateLimitResettingKey===Z.rateLimitKey(z(t)));J3(C,{get label(){return z(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>Z.resetRateLimit(z(t)),get disabled(){return z(n)},children:(e,n)=>{var r=q6(),i=I(r);J(i,{get icon(){return pX},class:`budget-action-icon`});var a=L(i,2),o=F(a,!0);O(a),R(e=>U(o,e),[()=>Z.rateLimitResettingKey===Z.rateLimitKey(z(t))?ohe():lhe()]),H(e,r)},$$slots:{default:!0}})}var w=L(C,2),T=e=>{{let n=j(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(z(t))?fhe():hhe()),r=j(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(z(t)));J3(e,{get label(){return z(n)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>Z.deleteRateLimit(z(t)),get disabled(){return z(r)},children:(e,n)=>{var r=q6(),i=I(r);J(i,{get icon(){return vX},class:`budget-action-icon`});var a=L(i,2),o=F(a,!0);O(a),R(e=>U(o,e),[()=>Z.rateLimitDeletingKey===Z.rateLimitKey(z(t))?vhe():xhe()]),H(e,r)},$$slots:{default:!0}})}},E=j(()=>!Z.rateLimitIsReadOnly(z(t)));W(w,e=>{z(E)&&e(T)}),O(y),O(h),O(i);var D=L(i,2),ee=F(D),te=e=>{var n=KIe(),r=F(n),i=F(r),a=F(i,!0);O(i);var o=L(i,2),s=F(o,!0);O(o),O(r);var c=L(r,2),l=F(c);let u;var d=L(l,2),f=F(d),p=F(f,!0);O(f),O(d),O(c),O(n),R((e,t,n,r,i,o,d)=>{U(a,e),U(s,t),q(c,`aria-valuenow`,n),q(c,`aria-label`,r),pi(c,i),u=K(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),U(p,d)},[()=>ED(),()=>Z.rateLimitUsagePercent(z(t).in_flight,z(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(z(t).in_flight,z(t).max_requests),()=>bY({used:Z.formatRateLimitNumber(z(t).in_flight),limit:Z.formatRateLimitNumber(z(t).max_requests)}),()=>`--budget-progress: `+Z.rateLimitUsagePercent(z(t).in_flight,z(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(z(t).in_flight,z(t).max_requests)>=100}),()=>bY({used:Z.formatRateLimitNumber(z(t).in_flight),limit:Z.formatRateLimitNumber(z(t).max_requests)})]),H(e,n)},ne=j(()=>Z.rateLimitIsConcurrent(z(t)));W(ee,e=>{z(ne)&&e(te)});var re=L(ee,2),ie=e=>{var n=J6(),r=F(n),i=F(r),a=F(i,!0);O(i);var o=L(i,2),s=F(o,!0);O(o),O(r);var c=L(r,2),l=F(c);let u;var d=L(l,2),f=F(d),p=F(f,!0);O(f);var m=L(f,2),h=F(m,!0);O(m),O(d),O(c),O(n),R((e,t,n,r,i,o,d,f)=>{U(a,e),U(s,t),q(c,`aria-valuenow`,n),q(c,`aria-label`,r),pi(c,i),u=K(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),U(p,d),U(h,f)},[()=>kD(),()=>Z.rateLimitUsagePercent(z(t).requests_used,z(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(z(t).requests_used,z(t).max_requests),()=>xY({used:Z.formatRateLimitNumber(z(t).requests_used),limit:Z.formatRateLimitNumber(z(t).max_requests)}),()=>`--budget-progress: `+Z.rateLimitUsagePercent(z(t).requests_used,z(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(z(t).requests_used,z(t).max_requests)>=100}),()=>xY({used:Z.formatRateLimitNumber(z(t).requests_used),limit:Z.formatRateLimitNumber(z(t).max_requests)}),()=>CY({count:Z.formatRateLimitNumber(z(t).requests_remaining)})]),H(e,n)},ae=j(()=>!Z.rateLimitIsConcurrent(z(t))&&z(t).max_requests);W(re,e=>{z(ae)&&e(ie)});var oe=L(re,2),se=e=>{var n=J6(),r=F(n),i=F(r),a=F(i,!0);O(i);var o=L(i,2),s=F(o,!0);O(o),O(r);var c=L(r,2),l=F(c);let u;var d=L(l,2),f=F(d),p=F(f,!0);O(f);var m=L(f,2),h=F(m,!0);O(m),O(d),O(c),O(n),R((e,t,n,r,i,o,d,f)=>{U(a,e),U(s,t),q(c,`aria-valuenow`,n),q(c,`aria-label`,r),pi(c,i),u=K(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),U(p,d),U(h,f)},[()=>MD(),()=>Z.rateLimitUsagePercent(z(t).tokens_used,z(t).max_tokens)+`%`,()=>Z.rateLimitUsagePercent(z(t).tokens_used,z(t).max_tokens),()=>SY({used:Z.formatRateLimitNumber(z(t).tokens_used),limit:Z.formatRateLimitNumber(z(t).max_tokens)}),()=>`--budget-progress: `+Z.rateLimitUsagePercent(z(t).tokens_used,z(t).max_tokens)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(z(t).tokens_used,z(t).max_tokens)>=100}),()=>SY({used:Z.formatRateLimitNumber(z(t).tokens_used),limit:Z.formatRateLimitNumber(z(t).max_tokens)}),()=>CY({count:Z.formatRateLimitNumber(z(t).tokens_remaining)})]),H(e,n)},ce=j(()=>!Z.rateLimitIsConcurrent(z(t))&&z(t).max_tokens);W(oe,e=>{z(ce)&&e(se)}),O(D),O(r),O(n),R((e,t,n,r,i)=>{q(a,`title`,e),U(o,t),U(m,n),q(_,`title`,r),U(v,i)},[()=>Z.rateLimitScopeLabel(z(t))+`: `+Z.rateLimitSubject(z(t)),()=>Z.rateLimitSubject(z(t)),()=>Z.rateLimitPeriodLabel(z(t)),()=>Z.rateLimitIsReadOnly(z(t))?Gme():Jme(),()=>Z.rateLimitSourceLabel(z(t))]),H(e,n)}),O(n),H(e,n),A()}var XIe=V(`

`),ZIe=V(``),QIe=V(`
`),$Ie=V(``),eLe=V(`
`),Y6=V(`

`),tLe=V(`
`);function nLe(e,t){k(t,!0),pn(()=>{X.refreshTick,TX.page===`rate-limits`&&Z.fetchRateLimitsPage()});let n=j(()=>Z.filteredRateLimits());var r=tLe(),i=F(r),a=F(i);l3(F(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=XIe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>qE()]),H(e,t)},$$slots:{title:!0}}),O(a);var o=L(a,2),s=F(o),c=e=>{var t=ZIe(),n=F(t);J(n,{get icon(){return dX},class:`form-action-icon`});var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>{t.disabled=Z.rateLimitFormSubmitting,U(i,e)},[()=>XE()]),B(`click`,t,()=>Z.openRateLimitForm()),H(e,t)},l=j(()=>Z.rateLimitsEnabled()&&Z.rateLimitsAvailable&&!X.authError);W(s,e=>{z(l)&&e(c)}),O(o),O(i);var u=L(i,2);MZ(u,{});var d=L(u,2),f=e=>{var t=QIe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>$E()]),H(e,t)},p=j(()=>(!Z.rateLimitsEnabled()||!Z.rateLimitsAvailable)&&!X.authError);W(d,e=>{z(p)&&e(f)});var m=L(d,2),h=e=>{var t=$Ie(),n=F(t,!0);O(t),R(()=>U(n,Z.rateLimitError)),H(e,t)};W(m,e=>{Z.rateLimitError&&!X.authError&&e(h)});var g=L(m,2),_=e=>{q3(e,{label:`Loading rate limits...`})};W(g,e=>{Z.rateLimitsLoading&&!X.authError&&e(_)});var v=L(g,2),y=e=>{var t=eLe(),n=F(t),r=F(n);{let e=j(()=>nD()),t=j(()=>aD());B3(r,{id:`rate-limit-filter`,get placeholder(){return z(e)},get label(){return z(t)},get value(){return Z.rateLimitFilter},set value(e){Z.rateLimitFilter=e}})}O(n),O(t),H(e,t)};W(v,e=>{(Z.rateLimits.length>0||Z.rateLimitFilter)&&Z.rateLimitsAvailable&&!X.authError&&!Z.rateLimitFormOpen&&e(y)});var b=L(v,2);K6(b,{});var x=L(b,2),S=e=>{YIe(e,{get rules(){return z(n)}})};W(x,e=>{z(n).length>0&&Z.rateLimitsAvailable&&!X.authError&&e(S)});var C=L(x,2),w=e=>{var t=Y6(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>cD()]),H(e,t)},T=j(()=>Z.rateLimits.length===0&&!Z.rateLimitFilter&&!Z.rateLimitsLoading&&!X.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());W(C,e=>{z(T)&&e(w)});var E=L(C,2),D=e=>{var t=Y6(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>dD()]),H(e,t)},ee=j(()=>Z.rateLimits.length>0&&z(n).length===0&&Z.rateLimitFilter&&!Z.rateLimitsLoading&&!X.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());W(E,e=>{z(ee)&&e(D)}),O(r),H(e,r),A()}br([`click`]);function X6(e){return String(e||``).trim().toLowerCase()}function Z6(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 rLe(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 Q6(e){return rLe(e&&e.model?e.model.id:``,e?e.provider_type:``,e?e.provider_name:``,e?e.selector:``)}function iLe(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 $6(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 aLe(e){if(e===``||e==null)return null;let t=Number(e);return!Number.isFinite(t)||t<=0?null:t}function e8(e,t){let n={model:e},r=aLe(t);return r!==null&&(n.weight=r),n}function t8(e){let t=Array.isArray(e)?e:[],n=[];for(let e of t){let t=String(e&&e.model||``).trim();t&&n.push(e8(t,e&&e.weight))}return n}function oLe(e){switch(String(e||``).toLowerCase()){case`cost`:return`lowest cost`;case`round_robin`:case``:return`round robin`;default:return e}}var sLe={round_robin:jve(),cost:Pve(),adaptive:Lve()};function cLe(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:sLe[e]||e}))}function lLe(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 uLe(e){let t=Array.isArray(e)?e:[],n=[],r=[];for(let e of t)!e||typeof e!=`object`||(e.kind===`redirect`?n.push(lLe(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 n8(e){if(!e)return`—`;let t=Array.isArray(e.targets)?e.targets:[];return t.length>1?t.length+` targets · `+oLe(e.strategy):e.resolved_model?e.resolved_model:e.target_provider?e.target_provider+`/`+e.target_model:e.target_model||`—`}function r8(e){return e?e.enabled===!1?`is-disabled`:e.valid?`is-valid`:`is-invalid`:`is-invalid`}function dLe(e){return e?e.enabled===!1?qh():e.valid?Hve():jY():jY()}function i8(e){return Array.isArray(e)&&e.length>0&&e.indexOf(`/`)===-1}function fLe(e,t){return!t||!e?``:e.effective_enabled===!1?`is-disabled`:i8(e.user_paths)?`is-restricted`:`is-enabled`}function pLe(e){if(!e)return``;let t=[];e.effective_enabled===!1&&t.push(e.default_enabled===!1?$G():qh());let n=Array.isArray(e.user_paths)?e.user_paths:[];return n.length>0&&t.push(nK({paths:n.join(`, `)})),t.join(` · `)}function mLe({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=X6(e&&e.name);!t||e.enabled===!1||!e.valid||o.set(t,e)}let s=new Map,c=i.map(e=>{let t=Z6(e),n=null;for(let t of Q6(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(X6(e&&e.name));if(e&&e.enabled!==!1&&e.valid&&t)continue;let n=null;for(let t of iLe(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:n8(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:r8(e),alias_state_text:dLe(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 hLe(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 a8(e,t){return String(e||``).trim()||String(t||``).trim()||Gve()}function o8(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return!r||r===n?``:r}function gLe(e){let t=String(e||``).trim();return t?t+`/`:``}function s8(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(aK({count:n})),r>0&&i.push(cK({count:r})),i.join(` · `)}function _Le(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 c8(e){for(let t of Array.isArray(e)?e:[])if(t&&t.access)return t.access.default_enabled!==!1;return!0}function l8(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 vLe(e,t,n,r){let i=gLe(t),a=r&&r.get(`/`)||null,o=i&&r&&r.get(i)||null,s=_Le(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 u8(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:a8(e,n),type_label:o8(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=a8(o.provider_name,o.provider_type),o.type_label=o8(o.provider_name,o.provider_type),o.rows.push(t)}let o=Array.from(a.values()).map(e=>{let n=vLe(t,e.provider_name,e.provider_type,r);return{...e,access:n,access_summary:pLe(n),item_count_label:s8(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:qG(),type_label:``,rows:i,access:{selector:``},access_summary:``,item_count_label:s8(i)}),o}function yLe(e,t){let n=l8(t,`/`),r=c8(e),i=n&&Array.isArray(n.user_paths)?n.user_paths:[];return{key:`scope-global`,is_alias:!1,display_name:XG(),access:{selector:`/`,default_enabled:r,effective_enabled:n?n.enabled!==!1:r,user_paths:i,override:n}}}function d8(e){return e?String(e.access&&e.access.selector||``).trim()||String(e.override_selector||``).trim()||Z6(e):``}function bLe(e){if(!e)return[];let t=[];return e.is_alias?t.push(`alias-row`,r8(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 xLe(e){return!!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)}function SLe(e){return!!(e&&!e.is_alias&&e.masking_alias&&e.masking_alias.name&&!e.masking_alias.managed)}function CLe(e){return e&&e.is_alias&&e.alias&&e.alias.name?`alias-row-`+String(e.alias.name).replace(/[^a-zA-Z0-9_-]+/g,`-`):``}function f8(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 p8(e){return!!(e&&e.override)}function m8(e){return e?`table-action-btn-active`:``}function h8(e,t){let n=String(e||cG());return t?WW({subject:n}):RW({subject:n})}function g8(){return{source:``,target_model:``,target_weight:1,targets:[],strategy:`round_robin`,session_affinity:!0,user_paths:``,description:``,slowdown:``,enabled:!0}}function wLe(e){return String(e&&e.target_model||``).trim()!==``}function _8(e){return String(e&&e.target_model||``).trim()?!0:t8(e&&e.targets).length>0}function TLe(e){if(_8(e))return!0;let t=String(e&&e.source||``).trim();return!!t&&t!==`/`&&!t.endsWith(`/`)}function v8(e){return!!e&&Array.isArray(e.targets)&&e.targets.length>0}function ELe(e){return v8(e)&&String(e&&e.strategy||``).toLowerCase()!==`cost`}function DLe(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 OLe(e){let t=Array.isArray(e&&e.targets)?e.targets:[];return t.length>0?{primaryModel:$6(t[0]),primaryWeight:t[0].weight||1,extraTargets:t.slice(1).map(e=>({model:$6(e),weight:e.weight||1}))}:{primaryModel:e&&e.target_provider?e.target_provider+`/`+e.target_model:e&&e.target_model||``,primaryWeight:1,extraTargets:[]}}function y8(e){return String(e||``).split(/\r?\n|,/).map(e=>String(e||``).trim()).filter(Boolean)}function kLe(e,t,n){let r=String(e&&e.source||``).trim(),i=String(e&&e.target_model||``).trim(),a=t8(e&&e.targets),o=_8(e),s=String(t||``).trim(),c=n===`edit`&&!!s&&r!==s,l={source:r,user_paths:y8(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(e8(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 ALe(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:$6(e)})):n.map(e=>e8($6(e),e.weight))):n.length===1?t.target_model=$6(n[0]):t.target_model=e.target_provider?e.target_provider+`/`+e.target_model:e.target_model,t}function jLe(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 b8(e,t,n){let r=Math.max(1,Number(t||75)),i=Math.min(n,e+r);return{limit:i,rendering:imLe({models:jZ.models,aliases:this.aliases,virtualModelsAvailable:this.virtualModelsAvailable,activeCategory:jZ.activeCategory}));get displayModels(){return z(this.#T)}set displayModels(e){N(this.#T,e)}#E=j(()=>u8(this.displayModels,jZ.models,this.modelOverrideViews));get displayModelGroups(){return z(this.#E)}set displayModelGroups(e){N(this.#E,e)}#D=j(()=>hLe(this.displayModels,jZ.filter));get filteredDisplayModels(){return z(this.#D)}set filteredDisplayModels(e){N(this.#D,e)}#O=j(()=>{let e=this.filteredDisplayModels,t=Math.max(0,Math.min(Number(this.modelRenderLimit||0),e.length));return!jZ.filter&&t>=this.displayModels.length?this.displayModelGroups:u8(e.slice(0,t),jZ.models,this.modelOverrideViews)});get filteredDisplayModelGroups(){return z(this.#O)}set filteredDisplayModelGroups(e){N(this.#O,e)}#k=j(()=>yLe(jZ.models,this.modelOverrideViews));get globalScopeRow(){return z(this.#k)}set globalScopeRow(e){N(this.#k,e)}modelsBusy(){return!!(jZ.loading||this.modelsRendering)}modelLoadingText(){if(jZ.loading)return this.displayModels.length>0?ag():ng();let e=this.filteredDisplayModels.length;return cg({visible:Math.min(Number(this.modelRenderLimit||0),e),total:e})}restartModelRendering(e){let t=++this.#a,n=MLe(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=b8(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 YX(`/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}=uLe(e.data);this.aliases=t,this.modelOverrideViews=n}catch(e){console.error(`Failed to fetch virtual models:`,e),this.aliases=[],this.modelOverrideViews=[],this.aliasError=j_e()}finally{this.aliasLoading=!1}}qualifiedModelName(e){return Z6(e)}findModelOverrideView(e){return l8(this.modelOverrideViews,e)}hasGlobalModelOverride(){return!!this.findModelOverrideView(`/`)}findExistingAliasByName(e){let t=X6(e);if(!t)return null;for(let e of this.aliases)if(X6(e&&e.name)===t)return e;return null}findConcreteModelByName(e){let t=X6(e);if(!t)return null;for(let e of jZ.models)if(Q6(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?$h():this.rowToggleRestricted(e)?Xh():this.rowToggleEnabled(e)?Wh():qh()}rowToggleRestricted(e){return!!e&&!e.is_alias&&fLe(e.access,this.virtualModelsAvailable)===`is-restricted`}rowToggleAriaLabel(e){if(!e)return``;let t;return t=e.is_alias?kW({name:String(e.alias&&e.alias.name||``)}):String(e.display_name||e.access&&e.access.selector||MW()),this.rowToggleEnabled(e)?EW({subject:t.trim()}):CW({subject:t.trim()})}async toggleRowEnabled(e){if(this.virtualModelsAvailable&&!(!e||this.rowTogglingKey===e.key)){if(f8(e)){cZ.success(FW());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=ALe(t);try{let e=await XX(`/admin/virtual-models`,`PUT`,n,{label:`alias state`});if(e.status===503){this.virtualModelsAvailable=!1,cZ.error(mh());return}if(e.stale)return;if(!e.ok){cZ.error(e.status===401?cR():KX(e,TY()));return}cZ.success(n.enabled?I_e():z_e()),this.fetchVirtualModels()}catch(e){console.error(`Failed to toggle alias state:`,e),cZ.error(TY())}finally{this.rowTogglingKey=``}}async toggleModelRow(e){let t=d8(e);if(!t)return;let{method:n,payload:r,desired:i}=jLe(t,this.findModelOverrideView(t),e.access||{});this.rowTogglingKey=e.key;try{let e=await XX(`/admin/virtual-models`,n,r,{label:`model access`});if(e.status===503){this.virtualModelsAvailable=!1,cZ.error(mh());return}if(!(n===`DELETE`&&e.status===404)){if(e.stale)return;if(!e.ok){cZ.error(e.status===401?cR():KX(e,EY()));return}}cZ.success(i?W_e():q_e()),Promise.all([jZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to toggle model access:`,e),cZ.error(EY())}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:YCe({source:t}),method:`DELETE`,payload:{source:t},operation:`virtual model`,failureMessage:DY(),notice:OY(),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:QCe({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:eve(),notice:rve()})}async mutateVirtualModelRow(e){if(!this.rowDeletingKey&&window.confirm(e.confirmMessage)){this.rowDeletingKey=e.rowKey;try{let t=await XX(`/admin/virtual-models`,e.method,e.payload,{label:e.operation});if(t.status===503){this.virtualModelsAvailable=!1,cZ.error(mh());return}if(!(e.ignoreNotFound&&t.status===404)){if(t.stale)return;if(!t.ok){cZ.error(t.status===401?cR():KX(t,e.failureMessage));return}}this.virtualModelsAvailable=!0,cZ.success(e.notice),Promise.all([jZ.fetchModels(),this.fetchVirtualModels()])}catch(t){console.error(e.failureMessage,t),cZ.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(){DLe(this.vmForm)}vmFormHasPrimaryTarget(){return wLe(this.vmForm)}vmFormShowStrategy(){return v8(this.vmForm)}vmStrategyOptions(){return cLe(QX.virtualModelStrategies(),this.vmForm.strategy)}vmFormShowWeights(){return ELe(this.vmForm)}vmFormSupportsSlowdown(){return TLe(this.vmForm)}vmFormToggleRestricted(){return!!(this.vmForm&&this.vmForm.enabled)&&i8(y8(this.vmForm.user_paths))}vmFormToggleLabel(){return!this.vmForm||!this.vmForm.enabled?qh():this.vmFormToggleRestricted()?Xh():Wh()}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=g8()}closeVirtualModelForm(){this.vmFormOpen=!1,this.resetVirtualModelForm()}openVirtualModelCreate(e){this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`create`,this.vmFormSourceLocked=!1,this.vmFormDisplayName=Ch(),e&&e.model&&e.model.id&&(this.vmForm.target_model=Z6(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=c8(jZ.models),this.vmFormEffectiveEnabled=e.enabled!==!1;let{primaryModel:t,primaryWeight:n,extraTargets:r}=OLe(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=d8(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=c8(jZ.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=dg(),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:mg({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=ove();return}let{payload:e,source:t,isRedirect:n,isRename:r}=kLe(this.vmForm,this.vmFormOriginalSource,this.vmFormMode);if(!t){this.vmFormError=fve();return}if(this.vmFormError=``,this.vmFormMode!==`edit`){let e=this.findExistingAliasByName(t),r=e?null:this.findModelOverrideView(t);if(e||r){let n=e?twe({name:e.name}):iwe({source:t});if(!window.confirm(n)){this.vmFormError=hve();return}}else if(n){let e=this.findConcreteModelByName(t);if(e){let t=Z6(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(swe({name:t}))){this.vmFormError=kY();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=uwe({source:t});return}if(n){let e=this.findConcreteModelByName(t);if(e){let t=Z6(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(pwe({name:t}))){this.vmFormError=kY();return}}}}this.vmSubmitting=!0;try{let t=await XX(`/admin/virtual-models`,`PUT`,e,{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=mh();return}if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?cR():KX(t,AY());return}let r=!n&&t.status===204;this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),cZ.success(n?Sve():r?Tve():Ove()),Promise.all([jZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to save virtual model:`,e),this.vmFormError=AY()}finally{this.vmSubmitting=!1}}async deleteVirtualModel(){if(this.vmFormManaged){this.vmFormError=lve();return}let e=String(this.vmForm.source||this.vmFormOriginalSource||``).trim();if(!(!e||!this.vmFormHasExisting)&&window.confirm(gwe({source:e}))){this.vmDeleting=!0,this.vmFormError=``;try{let t=await XX(`/admin/virtual-models`,`DELETE`,{source:e},{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=mh();return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?cR():KX(t,DY());return}}this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),cZ.success(OY()),Promise.all([jZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to delete virtual model:`,e),this.vmFormError=DY()}finally{this.vmDeleting=!1}}}},S8=[{value:`input_per_mtok`,label:kye(),group:IY()},{value:`output_per_mtok`,label:Mye(),group:IY()},{value:`cached_input_per_mtok`,label:Fye(),group:IY()},{value:`cache_write_per_mtok`,label:Rye(),group:IY()},{value:`reasoning_output_per_mtok`,label:Vye(),group:IY()},{value:`batch_input_per_mtok`,label:Wye(),group:LY()},{value:`batch_output_per_mtok`,label:qye(),group:LY()},{value:`audio_input_per_mtok`,label:Xye(),group:RY()},{value:`audio_output_per_mtok`,label:$ye(),group:RY()},{value:`per_image`,label:nbe(),group:zY()},{value:`input_per_image`,label:abe(),group:zY()},{value:`per_second_input`,label:cbe(),group:jbe()},{value:`per_second_output`,label:dbe(),group:Pbe()},{value:`per_character_input`,label:mbe(),group:RY()},{value:`per_page`,label:_be(),group:BY()},{value:`per_request`,label:bbe(),group:BY()}];function C8(e){let t=S8.find(t=>t.value===e);return t?t.label:String(e||``).replace(/_/g,` `)}function w8(e){return e&&typeof e==`object`?JSON.parse(JSON.stringify(e)):{}}function NLe(e,t){let n=w8(e),r=t&&t.pricing?t.pricing:t;if(!r||typeof r!=`object`)return n;for(let e of S8)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=w8(r.tiers)),n}function PLe(e){switch(String(e||``).trim()){case`config_yaml`:return`config.yaml`;case`model_registry`:return VY();default:return e?String(e):Vbe()}}function FLe(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 S8)t[e.value]!==null&&t[e.value]!==void 0&&(r[e.value]=PLe(n[e.value]||`model_registry`));return r}function ILe(e){let t=String(e&&e.selector||``).trim();return t?qbe({selector:t}):Wbe()}function T8(e){let t=String(e||``).trim();return t?t+`/`:``}function E8(e){return String(e&&e.model&&e.model.id||``).trim()}function D8(e){let t=String(e&&e.provider_name||``).trim(),n=E8(e);return t&&n?t+`/`+n:n}function O8(e){return E8(e)}function k8(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 LLe(e,t){let n=String(t||``).trim();return n&&k8(e).get(n)||null}function RLe(e,t,n){let r=k8(e),i=D8(t),a=O8(t),o=T8(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 A8(e,t,n){let r=e&&e.model&&e.model.metadata?e.model.metadata:null,i=w8(r&&r.pricing),a=FLe(r),o=RLe(t,e,n),s=o&&o.pricing?o.pricing:null;if(s){let e=ILe(o);for(let t of S8)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=w8(s.tiers),a.tiers=e)}return{pricing:i,sources:a}}function zLe(e,t){let n=e&&e.pricing?e.pricing:{},r=[];for(let e of S8)n[e.value]!==null&&n[e.value]!==void 0&&r.push({id:t(),field:e.value,value:String(n[e.value])});return r}function j8(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 BLe(e,t){let n=j8(e,t&&t.id);return S8.filter(e=>e.value===(t&&t.field)||!n.has(e.value))}function VLe(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:Xbe()};if(r.has(e))return{error:$be()};r.add(e);let i=String(t.value||``).trim();if(i===``)return{error:nxe({field:C8(e)})};let a=Number(i);if(!Number.isFinite(a)||a<0)return{error:axe()};n[e]=a}let i=Array.isArray(t)?t:[];return i.length>0&&(n.tiers=w8(i)),Object.keys(n).length===0?{error:cxe()}:{pricing:n}}function HLe(e,t,n){let r=e||{},i=t||{},a=n||{},o=NLe(r,a);return S8.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?dxe():n?i[e.value]||VY():HY()}}).filter(e=>e.source!==HY()||e.value!==void 0)}var M8=new class{#e=M(!0);get modelPricingOverridesAvailable(){return z(this.#e)}set modelPricingOverridesAvailable(e){N(this.#e,e,!0)}#t=M(P([]));get modelPricingOverrideViews(){return z(this.#t)}set modelPricingOverrideViews(e){N(this.#t,e,!0)}#n=M(``);get modelPricingOverrideError(){return z(this.#n)}set modelPricingOverrideError(e){N(this.#n,e,!0)}#r=M(!1);get modelPricingOverrideFormOpen(){return z(this.#r)}set modelPricingOverrideFormOpen(e){N(this.#r,e,!0)}#i=M(!1);get modelPricingOverrideSubmitting(){return z(this.#i)}set modelPricingOverrideSubmitting(e){N(this.#i,e,!0)}#a=M(!1);get modelPricingOverrideFormHasExistingOverride(){return z(this.#a)}set modelPricingOverrideFormHasExistingOverride(e){N(this.#a,e,!0)}#o=M(``);get modelPricingOverrideFormDisplayName(){return z(this.#o)}set modelPricingOverrideFormDisplayName(e){N(this.#o,e,!0)}#s=M(``);get modelPricingOverrideFormScope(){return z(this.#s)}set modelPricingOverrideFormScope(e){N(this.#s,e,!0)}#c=M(P([]));get modelPricingOverrideFormScopeOptions(){return z(this.#c)}set modelPricingOverrideFormScopeOptions(e){N(this.#c,e,!0)}#l=M(null);get modelPricingOverrideFormRow(){return z(this.#l)}set modelPricingOverrideFormRow(e){N(this.#l,e,!0)}#u=M(null);get modelPricingOverrideFormBasePricing(){return z(this.#u)}set modelPricingOverrideFormBasePricing(e){N(this.#u,e,!0)}#d=M(null);get modelPricingOverrideFormBasePricingSources(){return z(this.#d)}set modelPricingOverrideFormBasePricingSources(e){N(this.#d,e,!0)}#f=M(P([]));get modelPricingOverrideFormPreservedTiers(){return z(this.#f)}set modelPricingOverrideFormPreservedTiers(e){N(this.#f,e,!0)}#p=M(P([]));get modelPricingOverrideRows(){return z(this.#p)}set modelPricingOverrideRows(e){N(this.#p,e,!0)}#m=M(P({selector:``}));get modelPricingOverrideForm(){return z(this.#m)}set modelPricingOverrideForm(e){N(this.#m,e,!0)}_modelPricingOverrideRowID=0;pricingFieldOptions(){return S8}pricingFieldLabel(e){return C8(e)}async fetchModelPricingOverrides(){this.modelPricingOverrideError=``;try{let e=await YX(`/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=Jve()}}findModelPricingOverrideView(e){return LLe(this.modelPricingOverrideViews,e)}hasGlobalPricingOverride(){return!!this.findModelPricingOverrideView(`/`)}hasProviderPricingOverride(e){return!!this.findModelPricingOverrideView(T8(e&&e.provider_name))}hasModelPricingOverride(e){return!!this.findModelPricingOverrideView(D8(e))}modelPricingButtonClass(e){return e?`table-action-btn-active`:``}modelPricingButtonLabel(e,t){let n=String(e||$W());return t?VW({subject:n}):RW({subject:n})}modelRowPricing(e){return A8(e,this.modelPricingOverrideViews).pricing}openGlobalPricingOverrideEdit(){this.openModelPricingOverrideForm({displayName:MY(),selector:`/`,scope:`global`,scopeOptions:[{value:`global`,label:MY(),selector:`/`}],row:null})}openProviderPricingOverrideEdit(e){let t=T8(e&&e.provider_name);t&&this.openModelPricingOverrideForm({displayName:$ve({provider:e.display_name||e.provider_name||t}),selector:t,scope:`provider`,scopeOptions:[{value:`provider`,label:nye(),selector:t}],row:null})}openModelPricingOverrideEdit(e){if(!e||e.is_alias)return;let t=D8(e),n=O8(e),r=[{value:`exact`,label:aye(),selector:t}];n&&n!==t&&r.push({value:`model`,label:cye(),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||dye(),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=zLe(t,()=>this.nextModelPricingOverrideRowID()),this.modelPricingOverrideFormPreservedTiers=t&&t.pricing&&Array.isArray(t.pricing.tiers)?w8(t.pricing.tiers):[],this.modelPricingOverrideRows.length===0&&this.modelPricingOverrideFormPreservedTiers.length===0&&this.addModelPricingOverrideRow();let n=this.modelPricingOverrideFormRow,r=n?A8(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 BLe(this.modelPricingOverrideRows,e)}addModelPricingOverrideRow(){let e=j8(this.modelPricingOverrideRows),t=S8.find(t=>!e.has(t.value))||S8[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 VLe(this.modelPricingOverrideRows,this.modelPricingOverrideFormPreservedTiers)}modelPricingOverrideDraftPricing(){let e=this.modelPricingOverridePayload();return e&&e.pricing?e.pricing:{}}modelPricingEffectivePreviewRows(){return HLe(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=mye();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 XX(`/admin/model-pricing-overrides`,`PUT`,n,{label:`model pricing override`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=NY();return}if(e.stale)return;if(!e.ok){this.modelPricingOverrideError=e.status===401?cR():KX(e,PY());return}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),cZ.success(xye()),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to save model pricing override:`,e),this.modelPricingOverrideError=PY()}finally{this.modelPricingOverrideSubmitting=!1}}async deleteModelPricingOverride(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!(!e||!this.modelPricingOverrideFormHasExistingOverride)&&window.confirm(ywe({selector:e}))){this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let t=await XX(`/admin/model-pricing-overrides`,`DELETE`,{selector:e},{label:`model pricing override`});if(t.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=NY();return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.modelPricingOverrideError=t.status===401?cR():KX(t,FY());return}}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),cZ.success(Eye()),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to delete model pricing override:`,e),this.modelPricingOverrideError=FY()}finally{this.modelPricingOverrideSubmitting=!1}}}},ULe=V(``);function N8(e,t){k(t,!0);var n=ULe();let r;var i=L(F(n),2),a=F(i,!0);O(i),O(n),R((e,i,o)=>{r=K(n,1,`alias-toggle`,null,r,e),n.disabled=x8.rowTogglingKey===t.row.key||!x8.virtualModelsAvailable,q(n,`aria-label`,i),U(a,o)},[()=>({enabled:x8.rowToggleEnabled(t.row),restricted:x8.rowToggleRestricted(t.row)}),()=>x8.rowToggleAriaLabel(t.row),()=>x8.rowToggleLabel(t.row)]),B(`click`,n,()=>x8.toggleRowEnabled(t.row)),H(e,n),A()}br([`click`]);var WLe=V(`
`);function GLe(e,t){k(t,!0);var n=WLe(),r=F(n),i=e=>{N8(e,{get row(){return x8.globalScopeRow}})};W(r,e=>{x8.virtualModelsAvailable&&e(i)});var a=L(r,2),o=e=>{{let t=j(()=>M8.modelPricingButtonLabel($W(),M8.hasGlobalPricingOverride())),n=j(()=>M8.modelPricingButtonClass(M8.hasGlobalPricingOverride()));J3(e,{get label(){return z(t)},get class(){return`table-icon-btn ${z(n)??``}`},onclick:()=>M8.openGlobalPricingOverrideEdit(),children:(e,t)=>{J(e,{get icon(){return nX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(a,e=>{M8.modelPricingOverridesAvailable&&e(o)});var s=L(a,2),c=e=>{{let t=j(()=>h8(cG(),x8.hasGlobalModelOverride())),n=j(()=>m8(x8.hasGlobalModelOverride()));J3(e,{get label(){return z(t)},get class(){return`table-icon-btn ${z(n)??``}`},onclick:()=>x8.openGlobalModelOverrideEdit(),children:(e,t)=>{J(e,{get icon(){return uX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(s,e=>{x8.virtualModelsAvailable&&e(c)}),O(n),H(e,n),A()}function P8(e){return String(e&&(e.primary_model||e.source)||``).trim()}function F8(e){return Array.isArray(e&&e.fallback_models)?e.fallback_models:Array.isArray(e&&e.targets)?e.targets:[]}function I8(e){return Array.isArray(e)?e.map(e=>({...e,source:P8(e),targets:F8(e)})):[]}function KLe(e){let t=F8(e);return t.length===0?`-`:t.join(`, `)}function qLe(e){return e&&e.enabled===!1?q_():e&&e.managed?Eg():kg()}function L8(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>P8(e)===n)||null}function R8(e,t){if(!t||t.is_alias)return!1;let n=L8(e,Z6(t));return!!(n&&n.enabled!==!1&&F8(n).length>0)}function JLe(e,t){return R8(e,t)?`table-action-btn-failover-active`:``}function YLe(e,t){let n=t&&t.display_name?t.display_name:MW();return R8(e,t)?TSe({model:n}):SSe({model:n})}function z8(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 XLe(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 ZLe(e){return{primary_model:String(e&&e.source||``).trim(),fallback_models:z8(e),enabled:!(e&&e.enabled===!1)}}function B8(e){return P8(e)}function QLe(e){let t={};return(Array.isArray(e)?e:[]).forEach(e=>{let n=B8(e);n&&(t[n]=!0)}),t}function V8(e,t){let n=B8(t);return!!(n&&e&&e[n])}function H8(e,t){return(Array.isArray(e)?e:[]).filter(e=>V8(t,e))}function $Le(e,t){let n=Array.isArray(e)?e:[];return n.length>0&&H8(n,t).length===n.length}function U8(e){return[P8(e),F8(e).join(` `)].join(` `).toLowerCase()}function eRe(e,t){let n=Array.isArray(e)?e:[],r=String(t||``).trim().toLowerCase();return r?n.filter(e=>U8(e).includes(r)):n}function tRe(e){return{primary_model:P8(e),fallback_models:F8(e).map(e=>String(e||``).trim()).filter(Boolean),enabled:!!(e&&e.enabled!==!1)}}function W8(){return{source:``,target_model:``,targets:[],enabled:!0}}var Q=new class{#e=M(!0);get failoverAvailable(){return z(this.#e)}set failoverAvailable(e){N(this.#e,e,!0)}#t=M(P([]));get failoverRules(){return z(this.#t)}set failoverRules(e){N(this.#t,e,!0)}#n=M(!1);get failoverLoading(){return z(this.#n)}set failoverLoading(e){N(this.#n,e,!0)}#r=M(!1);get failoverSaving(){return z(this.#r)}set failoverSaving(e){N(this.#r,e,!0)}#i=M(!1);get failoverGenerating(){return z(this.#i)}set failoverGenerating(e){N(this.#i,e,!0)}#a=M(``);get failoverError(){return z(this.#a)}set failoverError(e){N(this.#a,e,!0)}#o=M(P([]));get failoverGeneratedRules(){return z(this.#o)}set failoverGeneratedRules(e){N(this.#o,e,!0)}#s=M(!1);get failoverDraftsOpen(){return z(this.#s)}set failoverDraftsOpen(e){N(this.#s,e,!0)}#c=M(P({}));get failoverDraftSelections(){return z(this.#c)}set failoverDraftSelections(e){N(this.#c,e,!0)}#l=M(``);get failoverDraftFilter(){return z(this.#l)}set failoverDraftFilter(e){N(this.#l,e,!0)}#u=M(!1);get failoverDraftSaving(){return z(this.#u)}set failoverDraftSaving(e){N(this.#u,e,!0)}#d=M(!1);get failoverFormOpen(){return z(this.#d)}set failoverFormOpen(e){N(this.#d,e,!0)}#f=M(`create`);get failoverFormMode(){return z(this.#f)}set failoverFormMode(e){N(this.#f,e,!0)}#p=M(!1);get failoverFormManaged(){return z(this.#p)}set failoverFormManaged(e){N(this.#p,e,!0)}#m=M(P(W8()));get failoverForm(){return z(this.#m)}set failoverForm(e){N(this.#m,e,!0)}failoverEnabled(){return QX.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 YX(`/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=I8(e.data)}catch(e){console.error(`Failed to fetch failover mappings:`,e),this.failoverRules=[],this.failoverError=gxe()}finally{this.failoverLoading=!1}}resetFailoverForm(){this.failoverFormMode=`create`,this.failoverFormManaged=!1,this.failoverForm=W8()}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 z8(this.failoverForm)}setFailoverFormTargets(e){let t=XLe(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 ZLe(this.failoverForm)}async submitFailoverForm(){if(this.failoverSaving||this.failoverGenerating||this.failoverFormManaged)return;let e=this.failoverRulePayload();if(!e.primary_model){this.failoverError=UY();return}if(e.enabled&&e.fallback_models.length===0){this.failoverError=xxe();return}this.failoverSaving=!0,this.failoverError=``;try{let t=await XX(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(t.stale)return;if(!t.ok){this.failoverError=WY();return}cZ.success(Exe()),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to save failover mapping:`,e),this.failoverError=WY()}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(kxe({source:t}))){this.failoverSaving=!0,this.failoverError=``;try{let e=await XX(`/admin/failover`,`DELETE`,{primary_model:t},{label:`failover mapping`});if(e.stale)return;if(!e.ok){this.failoverError=GY();return}cZ.success(Pxe()),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to remove failover mapping:`,e),this.failoverError=GY()}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=UY();return}this.failoverGenerating=!0,this.failoverError=``;try{let t=await XX(`/admin/failover/generate`,`POST`,{primary_model:e},{label:`failover generation`});if(t.stale)return;if(!t.ok){this.failoverError=KY();return}let n=I8(t.data),r=n.find(t=>this.failoverPrimaryModel(t)===e)||n[0]||null,i=this.failoverTargets(r);if(i.length===0){this.failoverError=zxe();return}this.setFailoverFormTargets(i),cZ.success(Hxe({count:i.length})),this.focusFailoverEditor()}catch(e){console.error(`Failed to generate failover mapping:`,e),this.failoverError=KY()}finally{this.failoverGenerating=!1}}openFailoverResetDialog(){nZ.open({title:Gxe(),titleId:`failoverResetDialogTitle`,inputId:`failover-reset-confirmation`,message:Jxe(),requiredText:`remove`,confirmLabel:Zxe(),icon:vX,dialogClass:`budget-reset-dialog`,onConfirm:async()=>{await this.resetFailoverRules(),this.failoverError&&(nZ.error=this.failoverError)}})}async resetFailoverRules(){if(!this.failoverSaving){this.failoverSaving=!0,this.failoverError=``;try{let e=await XX(`/admin/failover/reset`,`POST`,void 0,{label:`failover removal`});if(e.stale)return;if(!e.ok){this.failoverError=qY();return}this.failoverRules=I8(e.data),this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,cZ.success(nSe()),nZ.close()}catch(e){console.error(`Failed to remove failover mappings:`,e),this.failoverError=qY()}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 XX(`/admin/failover/generate`,`POST`,void 0,{label:`failover generation`});if(e.stale)return;if(!e.ok){this.failoverError=JY();return}this.failoverGeneratedRules=I8(e.data),this.selectAllFailoverDrafts(this.failoverGeneratedRules)}catch(e){console.error(`Failed to generate failover mappings:`,e),this.failoverError=JY()}finally{this.failoverGenerating=!1}}}failoverDraftKey(e){return B8(e)}selectAllFailoverDrafts(e){this.failoverDraftSelections=QLe(e)}failoverDraftSelected(e){return V8(this.failoverDraftSelections,e)}setFailoverDraftSelected(e,t){let n=this.failoverDraftKey(e);n&&(this.failoverDraftSelections={...this.failoverDraftSelections,[n]:!!t})}selectedFailoverDrafts(){return H8(this.failoverGeneratedRules,this.failoverDraftSelections)}selectedFailoverDraftCount(){return this.selectedFailoverDrafts().length}failoverDraftCountLabel(){return sSe({selected:this.selectedFailoverDraftCount(),total:this.failoverGeneratedRules.length})}allFailoverDraftsSelected(){return $Le(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 U8(e)}filteredFailoverDrafts(){return eRe(this.failoverGeneratedRules,this.failoverDraftFilter)}failoverDraftPayload(e){return tRe(e)}async saveSelectedFailoverDrafts(){if(this.failoverDraftSaving||this.failoverGenerating)return;let e=this.selectedFailoverDrafts();if(e.length===0){this.failoverError=uSe();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=pSe();return}let n=await XX(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(n.stale)return;if(!n.ok){this.failoverError=WY();return}}cZ.success(gSe({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=ySe()}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 KLe(e)}failoverPrimaryModel(e){return P8(e)}failoverTargets(e){return F8(e)}findFailoverMapping(e){return L8(this.failoverRules,e)}hasActiveFailoverMapping(e){return R8(this.failoverRules,e)}failoverButtonClass(e){return JLe(this.failoverRules,e)}failoverButtonLabel(e){return YLe(this.failoverRules,e)}normalizeFailoverRules(e){return I8(e)}failoverRuleStatus(e){return qLe(e)}qualifiedModelName(e){return Z6(e)}},nRe=V(``),rRe=V(``),iRe=V(` `),G8=V(`
`),aRe=V(``),oRe=V(`
`),sRe=V(` `),cRe=V(`
`),lRe=V(`
`),uRe=V(`
`);function dRe(e,t){k(t,!0);let n=j(()=>M8.modelRowPricing(t.row)),r=j(()=>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=j(()=>Number(z(r)==null?0:z(r)));var a=uRe(),o=F(a),s=F(o),c=F(s),l=F(c),u=F(l,!0);O(l);var d=L(l,2),f=e=>{var t=nRe();R((e,n)=>{q(t,`aria-label`,e),q(t,`title`,n)},[()=>_g(),()=>_g()]),H(e,t)};W(d,e=>{t.row.is_alias&&e(f)});var p=L(d,2),m=e=>{var t=rRe();R((e,n)=>{q(t,`aria-label`,e),q(t,`title`,n)},[()=>bg(),()=>bg()]),H(e,t)};W(p,e=>{!t.row.is_alias&&t.row.masking_alias&&e(m)});var h=L(p,2),g=e=>{var t=iRe(),n=F(t,!0);O(t),R((e,r)=>{q(t,`title`,e),U(n,r)},[()=>Cg(),()=>Eg()]),H(e,t)},_=j(()=>f8(t.row));W(h,e=>{z(_)&&e(g)}),O(c);var v=L(c,2),y=e=>{var n=G8(),r=F(n),i=L(r),a=F(i,!0);O(i),O(n),R(e=>{U(r,`${e??``} `),U(a,t.row.secondary_name)},[()=>Mg()]),H(e,n)};W(v,e=>{t.row.is_alias&&e(y)});var b=L(v,2),x=e=>{var n=oRe(),r=F(n),i=L(r),a=F(i,!0);O(i);var o=L(i,2),s=e=>{var n=aRe(),r=F(n);O(n),R((e,t,i,a)=>{q(n,`aria-label`,e),q(n,`title`,t),n.disabled=i,U(r,`[${a??``}]`)},[()=>x8.rowDeletingKey===t.row.key?Wg({model:t.row.display_name}):Vg({model:t.row.display_name}),()=>x8.rowDeletingKey===t.row.key?Wg({model:t.row.display_name}):Vg({model:t.row.display_name}),()=>!!x8.rowDeletingKey,()=>Rg()]),B(`click`,n,()=>x8.removeRedirectRow(t.row)),H(e,n)},c=j(()=>x8.virtualModelsAvailable&&SLe(t.row));W(o,e=>{z(c)&&e(s)}),O(n),R((e,t)=>{U(r,`${e??``} `),U(a,t)},[()=>Fg(),()=>n8(t.row.masking_alias)]),H(e,n)};W(b,e=>{!t.row.is_alias&&t.row.masking_alias&&e(x)});var S=L(b,2),C=e=>{var t=G8(),n=F(t),r=L(n),a=F(r,!0);O(r),O(t),R((e,t)=>{U(n,`${e??``} `),U(a,t)},[()=>qg(),()=>Xg({value:z(i)})]),H(e,t)};W(S,e=>{z(i)>0&&e(C)}),O(s),O(o);var w=L(o);G(w,17,()=>t.columns,Fr,(e,r)=>{var i=sRe(),a=F(i,!0);O(i),R(e=>{K(i,1,ci(z(r).class),`svelte-1iynym`),U(a,e)},[()=>z(r).value(t.row,z(n))]),H(e,i)});var T=L(w),E=F(T),D=e=>{var n=cRe(),r=F(n);N8(r,{get row(){return t.row}});var i=L(r,2),a=e=>{{let n=j(()=>x8.rowDeletingKey===t.row.key?mG({name:t.row.alias.name}):dG({name:t.row.alias.name})),r=j(()=>!!x8.rowDeletingKey);J3(e,{get label(){return z(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>x8.removeAliasRow(t.row),get disabled(){return z(r)},children:(e,t)=>{J(e,{get icon(){return vX},class:`table-icon-svg`})},$$slots:{default:!0}})}},o=j(()=>x8.virtualModelsAvailable&&xLe(t.row));W(i,e=>{z(o)&&e(a)});var s=L(i,2),c=e=>{{let n=j(()=>_G({name:t.row.alias.name}));J3(e,{get label(){return z(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>x8.openVirtualModelEditAlias(t.row.alias),children:(e,t)=>{J(e,{get icon(){return uX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(s,e=>{x8.virtualModelsAvailable&&e(c)}),O(n),H(e,n)},ee=e=>{var n=lRe(),r=F(n);N8(r,{get row(){return t.row}});var i=L(r,2),a=e=>{{let n=j(()=>M8.modelPricingButtonLabel(qW({name:t.row.display_name}),M8.hasModelPricingOverride(t.row))),r=j(()=>M8.modelPricingButtonClass(M8.hasModelPricingOverride(t.row)));J3(e,{get label(){return z(n)},get class(){return`table-icon-btn ${z(r)??``}`},onclick:()=>M8.openModelPricingOverrideEdit(t.row),children:(e,t)=>{J(e,{get icon(){return nX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(i,e=>{M8.modelPricingOverridesAvailable&&e(a)});var o=L(i,2),s=e=>{{let n=j(()=>Q.failoverButtonLabel(t.row)),r=j(()=>Q.failoverButtonClass(t.row));J3(e,{get label(){return z(n)},get class(){return`table-icon-btn ${z(r)??``}`},onclick:()=>Q.openFailoverForModel(t.row),children:(e,t)=>{J(e,{get icon(){return Ywe},class:`table-icon-svg`})},$$slots:{default:!0}})}},c=j(()=>Q.failoverAvailable&&Q.failoverEnabled());W(o,e=>{z(c)&&e(s)});var l=L(o,2),u=e=>{{let n=j(()=>Z.rateLimitGaugeTitle(t.row.display_name,Z.rateLimitGaugeClassForModel(t.row))),r=j(()=>Z.rateLimitGaugeClassForModel(t.row));J3(e,{get label(){return z(n)},get class(){return`table-icon-btn ${z(r)??``}`},onclick:()=>Z.openRateLimitInspectorForModel(t.row),children:(e,t)=>{J(e,{get icon(){return oX},class:`table-icon-svg`})},$$slots:{default:!0}})}},d=j(()=>Z.rateLimitsEnabled()&&Z.rateLimitInspectorModelID(t.row));W(l,e=>{z(d)&&e(u)});var f=L(l,2),p=e=>{{let n=j(()=>bG({name:t.row.display_name}));J3(e,{get label(){return z(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>x8.openVirtualModelEditAlias(t.row.masking_alias),children:(e,t)=>{J(e,{get icon(){return uX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(f,e=>{x8.virtualModelsAvailable&&t.row.masking_alias&&t.row.masking_alias.name&&e(p)});var m=L(f,2),h=e=>{{let n=j(()=>h8(nG({name:t.row.display_name}),p8(t.row.access))),r=j(()=>m8(p8(t.row.access)));J3(e,{get label(){return z(n)},get class(){return`table-icon-btn ${z(r)??``}`},onclick:()=>x8.openVirtualModelEditModel(t.row),children:(e,t)=>{J(e,{get icon(){return uX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(m,e=>{x8.virtualModelsAvailable&&!t.row.masking_alias&&e(h)}),O(n),H(e,n)};W(E,e=>{t.row.is_alias?e(D):e(ee,-1)}),O(T),O(a),R((e,n)=>{q(a,`id`,e),K(a,1,n,`svelte-1iynym`),U(u,t.row.display_name)},[()=>CLe(t.row)||void 0,()=>ci(bLe(t.row))]),H(e,a),A()}br([`click`]);var fRe={headerLines:[dK()],value:e=>(e.model?.metadata?.modes??[]).join(`, `)||`-`};function K8(e,t){return{headerLines:e,class:`col-price`,value:t}}var q8=K8([mK()],(e,t)=>pZ(t?.input_per_mtok)+` / `+pZ(t?.output_per_mtok)),J8={all:[q8],text_generation:[fRe,q8,K8([_K()],(e,t)=>pZ(t?.cached_input_per_mtok))],embedding:[K8([bK(),`$/MTok`],(e,t)=>pZ(t?.input_per_mtok))],image:[K8([CK()],(e,t)=>mZ(t?.per_image))],audio:[K8([EK()],(e,t)=>mZ(t?.per_second_input)),K8([kK()],(e,t)=>mZ(t?.per_character_input))],video:[K8([MK()],(e,t)=>mZ(t?.per_second_input)),K8([FK()],(e,t)=>mZ(t?.per_second_output))],utility:[K8([RK()],(e,t)=>mZ(t?.per_page)),K8([VK()],(e,t)=>mZ(t?.per_request))]};function Y8(e){return J8[e]||J8.all}function pRe(e){return Y8(e).length+2}var mRe=V(`
`),hRe=V(` `,1),gRe=V(``),_Re=V(` `),vRe=V(` `),yRe=V(`
`),bRe=V(`
`),xRe=V(`
`);function SRe(e,t){k(t,!0);let n=j(()=>jZ.activeCategory||`all`),r=j(()=>Y8(z(n))),i=j(()=>pRe(z(n)));var a=xRe(),o=F(a),s=F(o),c=F(s),l=F(c),u=F(l,!0);O(l);var d=L(l);G(d,17,()=>z(r),Fr,(e,t)=>{var n=gRe();G(n,21,()=>z(t).headerLines,Fr,(e,t,n)=>{var r=hRe(),i=I(r),a=e=>{H(e,mRe())};W(i,e=>{n>0&&e(a)});var o=L(i,1,!0);R(()=>U(o,z(t))),H(e,r)}),O(n),R(()=>K(n,1,ci(z(t).class),`svelte-1911hy6`)),H(e,n)});var f=L(d);GLe(F(f),{}),O(f),O(c),O(s),G(L(s),17,()=>x8.filteredDisplayModelGroups,e=>e.key,(e,t)=>{var n=bRe(),a=F(n),o=F(a),s=F(o),c=F(s),l=F(c),u=F(l),d=F(u,!0);O(u);var f=L(u,2),p=e=>{var n=_Re(),r=F(n,!0);O(n),R(()=>U(r,`(`+z(t).type_label+`)`)),H(e,n)};W(f,e=>{z(t).type_label&&e(p)});var m=L(f,2),h=e=>{var n=vRe(),r=F(n,!0);O(n),R(()=>U(r,z(t).item_count_label)),H(e,n)};W(m,e=>{z(t).item_count_label&&e(h)}),O(l);var g=L(l,2),_=e=>{var n=yRe(),r=F(n,!0);O(n),R(()=>U(r,z(t).access_summary)),H(e,n)};W(g,e=>{z(t).access_summary&&e(_)}),O(c);var v=L(c,2),y=F(v),b=e=>{N8(e,{get row(){return z(t)}})};W(y,e=>{z(t).access.selector&&e(b)});var x=L(y,2),S=e=>{{let n=j(()=>M8.modelPricingButtonLabel(XW({name:z(t).display_name}),M8.hasProviderPricingOverride(z(t)))),r=j(()=>M8.modelPricingButtonClass(M8.hasProviderPricingOverride(z(t))));J3(e,{get label(){return z(n)},get class(){return`table-icon-btn ${z(r)??``}`},onclick:()=>M8.openProviderPricingOverrideEdit(z(t)),children:(e,t)=>{J(e,{get icon(){return nX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(x,e=>{M8.modelPricingOverridesAvailable&&z(t).provider_name&&e(S)});var C=L(x,2),w=e=>{{let n=j(()=>Z.rateLimitGaugeTitle(`provider `+z(t).display_name,Z.rateLimitGaugeClassForProvider(z(t)))),r=j(()=>Z.rateLimitGaugeClassForProvider(z(t)));J3(e,{get label(){return z(n)},get class(){return`table-icon-btn ${z(r)??``}`},onclick:()=>Z.openRateLimitInspectorForProvider(z(t)),children:(e,t)=>{J(e,{get icon(){return oX},class:`table-icon-svg`})},$$slots:{default:!0}})}},T=j(()=>Z.rateLimitsEnabled()&&z(t).provider_name);W(C,e=>{z(T)&&e(w)});var E=L(C,2),D=e=>{{let n=j(()=>h8(aG({name:z(t).display_name}),p8(z(t).access))),r=j(()=>m8(p8(z(t).access)));J3(e,{get label(){return z(n)},get class(){return`table-icon-btn ${z(r)??``}`},onclick:()=>x8.openProviderOverrideEdit(z(t)),children:(e,t)=>{J(e,{get icon(){return uX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(E,e=>{x8.virtualModelsAvailable&&z(t).access.selector&&e(D)}),O(v),O(s),O(o),O(a),G(L(a),17,()=>z(t).rows,e=>e.key,(e,t)=>{dRe(e,{get row(){return z(t)},get columns(){return z(r)}})}),O(n),R(()=>{q(o,`colspan`,z(i)),U(d,z(t).display_name)}),H(e,n)}),O(o),O(a),R(e=>U(u,e),[()=>Vh()]),H(e,a),A()}var CRe=V(``);function X8(e,t){let n=Ri(t,`enabled`,3,!1),r=Ri(t,`label`,3,``),i=Ri(t,`disabled`,3,!1),a=Ri(t,`restricted`,3,!1);var o=CRe();let s;var c=L(F(o),2),l=F(c,!0);O(c),O(o),R(()=>{s=K(o,1,`alias-toggle`,null,s,{enabled:n(),restricted:a()}),o.disabled=i(),q(o,`aria-label`,(n()?`Disable `:`Enable `)+r()),U(l,t.text??(n()?`Enabled`:`Disabled`))}),B(`click`,o,function(...e){t.onclick?.apply(this,e)}),H(e,o)}br([`click`]);var wRe=V(``),TRe=V(`
`);function Z8(e,t){k(t,!0);let n=Ri(t,`model`,15,``),r=Ri(t,`weight`,15),i=Ri(t,`id`,3,void 0),a=Ri(t,`placeholder`,3,`openai/gpt-4o`),o=Ri(t,`showRemove`,3,!0);var s=TRe(),c=F(s);Ci(c);var l=L(c,2),u=e=>{var t=wRe();Ci(t),R((e,n)=>{q(t,`placeholder`,e),t.disabled=x8.vmFormManaged,q(t,`aria-label`,n)},[()=>mv(),()=>dv()]),Ai(t,r),H(e,t)},d=j(()=>x8.vmFormShowWeights());W(l,e=>{z(d)&&e(u)});var f=L(l,2),p=e=>{{let n=j(()=>_v());J3(e,{get label(){return z(n)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,get onclick(){return t.onremove},get disabled(){return x8.vmFormManaged},children:(e,t)=>{J(e,{get icon(){return vX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(f,e=>{o()&&e(p)}),O(s),R(e=>{q(c,`id`,i()),q(c,`placeholder`,a()),c.disabled=x8.vmFormManaged,q(c,`aria-label`,e)},[()=>cv()]),Ai(c,n),H(e,s),A()}var ERe=V(`

`),DRe=V(``),ORe=V(`

`),kRe=V(``),Q8=V(``),ARe=V(``),jRe=V(`
`,1),MRe=V(``),NRe=V(``),PRe=V(` `,1),FRe=V(` `),IRe=V(`
`,1);function LRe(e,t){k(t,!0);let n=x8;pn(()=>{n.vmFormOpen&&QX.ensureLoaded()});{let t=e=>{{let t=e=>{var t=ERe(),r=F(t,!0);O(t),R(e=>U(r,e),[()=>n.vmFormDisplayName||n.vmForm.source||_g()]),H(e,t)},r=e=>{Be();var t=Er();R(e=>U(t,e),[()=>d_()]),H(e,t)},i=j(()=>c_());l3(e,{copyId:`virtual-model-help-copy`,get label(){return z(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=Dr(),r=I(t),i=e=>{var t=DRe();R(()=>t.disabled=n.vmDeleting||n.vmSubmitting),B(`click`,t,()=>n.deleteVirtualModel()),H(e,t)};W(r,e=>{n.vmFormHasExisting&&!n.vmFormManaged&&e(i)}),H(e,t)},i=j(()=>$g()),a=j(()=>n.vmDeleting||n.vmFormManaged),o=j(()=>n.vmFormMode===`edit`?n_():a_()),s=j(()=>n.vmFormMode===`edit`?mX:dX);x6(e,{get open(){return n.vmFormOpen},get ariaLabel(){return z(i)},get error(){return n.vmFormError},get submitting(){return n.vmSubmitting},get submitDisabled(){return z(a)},get submitLabel(){return z(o)},get submitIcon(){return z(s)},onclose:()=>n.closeVirtualModelForm(),onsubmit:()=>n.submitVirtualModelForm(),header:t,extraActions:r,children:(e,t)=>{var r=IRe(),i=I(r),a=e=>{var t=ORe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>m_()]),H(e,t)};W(i,e=>{n.vmFormManaged&&e(a)});var o=L(i,2);{let e=j(()=>__());S6(o,{id:`virtual-model-source`,get label(){return z(e)},children:(e,t)=>{var r=kRe();Ci(r),R(()=>r.disabled=n.vmFormSourceLocked||n.vmFormManaged),Ai(r,()=>n.vmForm.source,e=>n.vmForm.source=e),H(e,r)},$$slots:{default:!0}})}var s=L(o,2);G(s,21,()=>jZ.models,e=>Z6(e),(e,t,n,r)=>{var i=Q8(),a=F(i,!0);O(i);var o={};R((e,t)=>{U(a,e),o!==(o=t)&&(i.value=(i.__value=t)??``)},[()=>Z6(z(t)),()=>Z6(z(t))]),H(e,i)}),O(s);var c=L(s,2),l=F(c),u=F(l,!0);O(l);var d=L(l,2);{let e=j(()=>n.vmFormHasPrimaryTarget());Z8(d,{id:`virtual-model-target`,get showRemove(){return z(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=L(d,2);G(f,17,()=>n.vmForm.targets,Fr,(e,t,r)=>{Z8(e,{placeholder:`groq/llama`,onremove:()=>n.removeVmTarget(r),get model(){return z(t).model},set model(e){z(t).model=e},get weight(){return z(t).weight},set weight(e){z(t).weight=e}})});var p=L(f,2),m=F(p),h=F(m);J(h,{get icon(){return dX},class:`form-action-icon`});var g=L(h,2),_=F(g,!0);O(g),O(m),O(p),O(c);var v=L(c,2),y=e=>{var t=jRe(),r=I(t);{let e=j(()=>C_());S6(r,{id:`virtual-model-strategy`,get label(){return z(e)},children:(e,t)=>{var r=ARe();G(r,21,()=>n.vmStrategyOptions(),e=>e.value,(e,t)=>{var n=Q8(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(r),R(()=>r.disabled=n.vmFormManaged),gi(r,()=>n.vmForm.strategy,e=>n.vmForm.strategy=e),H(e,r)},$$slots:{default:!0}})}var i=L(r,2),a=F(i),o=F(a);Ci(o);var s=L(o,2),c=F(s,!0);O(s),O(a),O(i),R(e=>{o.disabled=n.vmFormManaged,U(c,e)},[()=>E_()]),ji(o,()=>n.vmForm.session_affinity,e=>n.vmForm.session_affinity=e),H(e,t)},b=j(()=>n.vmFormShowStrategy());W(v,e=>{z(b)&&e(y)});var x=L(v,2),S=F(x);{let e=e=>{var t=MRe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>k_()]),H(e,t)},t=e=>{Be();var t=Er();R(e=>U(t,e),[()=>F_()]),H(e,t)},r=j(()=>M_());l3(S,{copyId:`virtual-model-user-paths-help`,get label(){return z(r)},get open(){return n.vmFormUserPathsHelpOpen},set open(e){n.vmFormUserPathsHelpOpen=e},title:e,help:t,$$slots:{title:!0,help:!0}})}var C=L(S,2);it(C),q(C,`placeholder`,`/ -/team/alpha -/non-existing`),O(x);var w=L(x,2);{let e=j(()=>R_());S6(w,{id:`virtual-model-description`,get label(){return z(e)},children:(e,t)=>{var r=NRe();it(r),R(e=>{q(r,`placeholder`,e),r.disabled=n.vmFormManaged},[()=>V_()]),Ai(r,()=>n.vmForm.description,e=>n.vmForm.description=e),H(e,r)},$$slots:{default:!0}})}var T=L(w,2),E=e=>{{let t=j(()=>W_());S6(e,{id:`virtual-model-slowdown`,get label(){return z(t)},children:(e,t)=>{var r=PRe(),i=I(r);Ci(i);var a=L(i,2),o=F(a,!0);O(a),R((e,t)=>{q(i,`placeholder`,e),i.disabled=n.vmFormManaged,U(o,t)},[()=>q_(),()=>X_()]),Ai(i,()=>n.vmForm.slowdown,e=>n.vmForm.slowdown=e),H(e,r)},$$slots:{default:!0}})}},D=j(()=>n.vmFormSupportsSlowdown());W(T,e=>{z(D)&&e(E)});var ee=L(T,2),te=F(ee),ne=e=>{var t=FRe(),r=F(t,!0);O(t),R(e=>U(r,e),[()=>$_({default:n.vmFormDefaultEnabled?nv():av(),effective:n.vmFormEffectiveEnabled?nv():av()})]),H(e,t)};W(te,e=>{n.vmFormMode===`edit`&&e(ne)});var re=L(te,2),ie=F(re);{let e=j(()=>n.vmFormToggleRestricted()),t=j(()=>CG()),r=j(()=>n.vmFormToggleLabel());X8(ie,{get enabled(){return n.vmForm.enabled},get restricted(){return z(e)},get label(){return z(t)},get disabled(){return n.vmFormManaged},get text(){return z(r)},onclick:()=>{n.vmFormManaged||(n.vmForm.enabled=!n.vmForm.enabled)}})}O(re),O(ee),R((e,t)=>{U(u,e),m.disabled=n.vmFormManaged,U(_,t),C.disabled=n.vmFormManaged},[()=>Mg(),()=>b_()]),B(`click`,m,()=>n.addVmTarget()),Ai(C,()=>n.vmForm.user_paths,e=>n.vmForm.user_paths=e),H(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}A()}br([`click`]);var RRe=V(`

`,1),zRe=V(``),BRe=V(``),$8=V(``),VRe=V(``),HRe=V(`
`),URe=V(`
`),WRe=V(`
`),GRe=V(`
`),KRe=V(`

USD
`,1);function qRe(e,t){k(t,!0);let n=M8;{let t=e=>{var t=RRe(),r=I(t),i=F(r,!0);O(r);var a=L(r,2),o=F(a,!0);O(a),R((e,t)=>{U(i,e),U(o,t)},[()=>Ev(),()=>n.modelPricingOverrideFormDisplayName||n.modelPricingOverrideForm.selector||kv()]),H(e,t)},r=e=>{var t=Dr(),r=I(t),i=e=>{var t=zRe(),r=F(t,!0);O(t),R(e=>{t.disabled=n.modelPricingOverrideSubmitting,U(r,e)},[()=>cy()]),B(`click`,t,()=>n.deleteModelPricingOverride()),H(e,t)};W(r,e=>{n.modelPricingOverrideFormHasExistingOverride&&e(i)}),H(e,t)},i=j(()=>bv()),a=j(()=>Cv());x6(e,{get open(){return n.modelPricingOverrideFormOpen},get ariaLabel(){return z(i)},dialogClass:`model-pricing-editor`,get error(){return n.modelPricingOverrideError},get submitting(){return n.modelPricingOverrideSubmitting},get submitLabel(){return z(a)},onclose:()=>n.closeModelPricingOverrideForm(),onsubmit:()=>n.submitModelPricingOverrideForm(),header:t,extraActions:r,children:(e,t)=>{var r=KRe(),i=I(r),a=F(i);{let e=j(()=>Mv());S6(a,{id:`model-pricing-override-selector`,get label(){return z(e)},children:(e,t)=>{var r=BRe();Ci(r),Ai(r,()=>n.modelPricingOverrideForm.selector,e=>n.modelPricingOverrideForm.selector=e),H(e,r)},$$slots:{default:!0}})}var o=L(a,2),s=e=>{{let t=j(()=>Fv());S6(e,{id:`model-pricing-override-scope`,get label(){return z(t)},children:(e,t)=>{var r=VRe();G(r,21,()=>n.modelPricingOverrideFormScopeOptions,e=>e.value,(e,t)=>{var n=$8(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(r),B(`change`,r,()=>n.setModelPricingOverrideScope(n.modelPricingOverrideFormScope)),gi(r,()=>n.modelPricingOverrideFormScope,e=>n.modelPricingOverrideFormScope=e),H(e,r)},$$slots:{default:!0}})}};W(o,e=>{n.modelPricingOverrideFormScopeOptions.length>1&&e(s)}),O(i);var c=L(i,2),l=F(c,!0);O(c);var u=L(c,2);G(u,21,()=>n.modelPricingOverrideRows,e=>e.id,(e,t,r)=>{var i=HRe(),a=F(i),o=F(a),s=F(o,!0);O(o);var c=L(o,2);G(c,21,()=>n.availablePricingFieldOptions(z(t)),e=>e.value,(e,t)=>{var n=$8(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).group+` - `+z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(c),O(a);var l=L(a,2),u=F(l),d=F(u,!0);O(u);var f=L(u,2);Ci(f),O(l);var p=L(l,2);{let e=j(()=>qv({price:n.pricingFieldLabel(z(t).field)}));J3(p,{get label(){return z(e)},class:`table-action-btn-danger table-icon-btn pricing-override-remove-row`,onclick:()=>n.removeModelPricingOverrideRow(z(t)),children:(e,t)=>{J(e,{get icon(){return xX},class:`table-icon-svg`})},$$slots:{default:!0}})}O(i),R((e,n)=>{q(o,`for`,`pricing-type-`+z(t).id),U(s,e),q(c,`id`,`pricing-type-`+z(t).id),q(u,`for`,`pricing-value-`+z(t).id),U(d,n),q(f,`id`,`pricing-value-`+z(t).id)},[()=>Vv(),()=>Wv()]),gi(c,()=>z(t).field,e=>z(t).field=e),Ai(f,()=>z(t).value,e=>z(t).value=e),H(e,i)}),O(u);var d=L(u,2),f=F(d),p=F(f);J(p,{get icon(){return dX},class:`form-action-icon`});var m=L(p,2),h=F(m,!0);O(m),O(f),O(d);var g=L(d,2),_=e=>{var t=URe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>$v()]),H(e,t)};W(g,e=>{n.modelPricingOverrideFormPreservedTiers.length>0&&e(_)});var v=L(g,2),y=F(v),b=F(y),x=F(b,!0);O(b);var S=L(b,4),C=F(S,!0);O(S),O(y);var w=L(y,2),T=e=>{var t=WRe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>ay()]),H(e,t)},E=j(()=>n.modelPricingEffectivePreviewRows().length===0);W(w,e=>{z(E)&&e(T)}),G(L(w,2),17,()=>n.modelPricingEffectivePreviewRows(),e=>e.field,(e,t)=>{var n=GRe(),r=F(n),i=F(r,!0);O(r);var a=L(r,2),o=F(a,!0);O(a);var s=L(a,2),c=F(s,!0);O(s),O(n),R(e=>{U(i,z(t).label),U(o,e),U(c,z(t).source)},[()=>z(t).value===null||z(t).value===void 0?`-`:mZ(Number(z(t).value))]),H(e,n)}),O(v),R((e,t,n,r)=>{U(l,e),U(h,t),U(x,n),U(C,r)},[()=>Rv(),()=>Xv(),()=>Vv(),()=>ny()]),B(`click`,f,()=>n.addModelPricingOverrideRow()),H(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}A()}br([`click`,`change`]);var JRe=V(`

`,1),YRe=V(``),XRe=V(`

`),ZRe=V(``),QRe=V(`
`),$Re=V(`
`,1),eze=V(`
`);function tze(e,t){k(t,!0);{let t=e=>{var t=JRe(),n=I(t),r=F(n,!0);O(n);var i=L(n,2),a=F(i,!0);O(i),R(e=>{U(r,e),U(a,Q.failoverForm.source||`Failover`)},[()=>my()]),H(e,t)},n=e=>{var t=Dr(),n=I(t),r=e=>{var t=YRe(),n=F(t,!0);O(t),R(e=>{t.disabled=Q.failoverSaving||Q.failoverGenerating,U(n,e)},[()=>Ry()]),B(`click`,t,()=>Q.deleteFailoverRule()),H(e,t)};W(n,e=>{Q.failoverFormMode===`edit`&&!Q.failoverFormManaged&&e(r)}),H(e,t)},r=j(()=>dy()),i=j(()=>Q.failoverGenerating||Q.failoverFormManaged),a=j(()=>n_());x6(e,{get open(){return Q.failoverFormOpen},get ariaLabel(){return z(r)},get error(){return Q.failoverError},get submitting(){return Q.failoverSaving},get submitDisabled(){return z(i)},get submitLabel(){return z(a)},onclose:()=>Q.closeFailoverForm(),onsubmit:()=>Q.submitFailoverForm(),header:t,extraActions:n,children:(e,t)=>{var n=eze(),r=F(n),i=e=>{var t=XRe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>_y()]),H(e,t)};W(r,e=>{Q.failoverFormManaged&&e(i)});var a=L(r,2);G(a,21,()=>jZ.models,Fr,(e,t,n,r)=>{var i=ZRe(),a=F(i,!0);O(i);var o={};R((e,t)=>{U(a,e),o!==(o=t)&&(i.value=(i.__value=t)??``)},[()=>Z6(z(t)),()=>Z6(z(t))]),H(e,i)}),O(a);var o=L(a,2);{let e=j(()=>by());S6(o,{id:`failover-target`,get label(){return z(e)},children:(e,t)=>{var n=$Re(),r=I(n),i=F(r),a=F(i);Ci(a);var o=L(a,2),s=e=>{{let t=j(()=>Ey());J3(e,{get label(){return z(t)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removePrimaryFailoverTarget(),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{J(e,{get icon(){return vX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(o,e=>{Q.failoverForm.target_model&&e(s)}),O(i),G(L(i,2),17,()=>Q.failoverForm.targets,Fr,(e,t,n)=>{var r=QRe(),i=F(r);Ci(i);var a=L(i,2);{let e=j(()=>Ey());J3(a,{get label(){return z(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removeFailoverTarget(n),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{J(e,{get icon(){return vX},class:`table-icon-svg`})},$$slots:{default:!0}})}O(r),R(e=>{i.disabled=Q.failoverFormManaged,q(i,`aria-label`,e)},[()=>Cy()]),Ai(i,()=>z(t).model,e=>z(t).model=e),H(e,r)}),O(r);var c=L(r,2),l=F(c),u=F(l);J(u,{get icon(){return dX},class:`form-action-icon`});var d=L(u,2),f=F(d,!0);O(d),O(l);var p=L(l,2),m=F(p);J(m,{get icon(){return bX},class:`form-action-icon`});var h=L(m,2),g=F(h,!0);O(h),O(p),O(c),R((e,t,n,r)=>{a.disabled=Q.failoverFormManaged,q(a,`aria-label`,e),l.disabled=Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving,U(f,t),p.disabled=n,U(g,r)},[()=>Cy(),()=>ky(),()=>Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving||!Q.failoverEnabled(),()=>Q.failoverGenerating?My():Fy()]),Ai(a,()=>Q.failoverForm.target_model,e=>Q.failoverForm.target_model=e),B(`click`,l,()=>Q.addFailoverTarget()),B(`click`,p,()=>Q.generateFailoverForForm()),H(e,n)},$$slots:{default:!0}})}var s=L(o,2),c=F(s);X8(F(c),{get enabled(){return Q.failoverForm.enabled},label:`failover mapping`,get disabled(){return Q.failoverFormManaged},onclick:()=>{Q.failoverFormManaged||(Q.failoverForm.enabled=!Q.failoverForm.enabled)}}),O(c),O(s),O(n),H(e,n)},$$slots:{header:!0,extraActions:!0,default:!0}})}A()}br([`click`]);var nze=V(` `),rze=V(`
`),ize=V(``),aze=V(`
`),e5=V(`

`),oze=V(``),sze=V(``);function t5(e,t){k(t,!0),eZ(e,{get open(){return Q.failoverDraftsOpen},variant:`editor`,onclose:()=>Q.closeFailoverDraftsModal(),children:(e,t)=>{var n=sze(),r=F(n),i=F(r),a=F(i),o=F(a,!0);O(a);var s=L(a,2),c=F(s,!0);O(s),O(i);var l=L(i,2),u=F(l),d=e=>{var t=nze(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Q.failoverDraftCountLabel()]),H(e,t)};W(u,e=>{Q.failoverGeneratedRules.length>0&&e(d)});var f=L(u,2);{let e=j(()=>Xy());$X(f,{get label(){return z(e)},onclick:()=>Q.closeFailoverDraftsModal(),get disabled(){return Q.failoverDraftSaving}})}O(l),O(r);var p=L(r,2),m=e=>{{let t=j(()=>$y());q3(e,{get label(){return z(t)},class:`failover-drafts-loading`})}};W(p,e=>{Q.failoverGenerating&&e(m)});var h=L(p,2),g=e=>{var t=rze(),n=F(t);{let e=j(()=>nb()),t=j(()=>ab());B3(n,{get placeholder(){return z(e)},get label(){return z(t)},get value(){return Q.failoverDraftFilter},set value(e){Q.failoverDraftFilter=e}})}var r=L(n,2),i=F(r);J(i,{get icon(){return QY},class:`form-action-icon`});var a=L(i,2),o=F(a,!0);O(a),O(r),O(t),R(e=>{r.disabled=Q.failoverDraftSaving,U(o,e)},[()=>Q.allFailoverDraftsSelected()?db():cb()]),B(`click`,r,()=>Q.toggleAllFailoverDrafts()),H(e,t)};W(h,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&e(g)});var _=L(h,2),v=e=>{var t=aze();G(t,21,()=>Q.filteredFailoverDrafts(),e=>`failover-draft:`+Q.failoverPrimaryModel(e),(e,t)=>{var n=ize(),r=F(n);Ci(r);var i=L(r,2),a=F(i),o=F(a,!0);O(a);var s=L(a,2),c=F(s,!0);O(s),O(i),O(n),R((e,t,n,i)=>{Ti(r,e),r.disabled=Q.failoverDraftSaving,q(r,`aria-label`,t),U(o,n),U(c,i)},[()=>Q.failoverDraftSelected(z(t)),()=>mb({model:Q.failoverPrimaryModel(z(t))}),()=>Q.failoverPrimaryModel(z(t)),()=>Q.failoverTargetLabel(z(t))]),B(`change`,r,e=>Q.setFailoverDraftSelected(z(t),e.currentTarget.checked)),H(e,n)}),O(t),H(e,t)},y=j(()=>!Q.failoverGenerating&&Q.filteredFailoverDrafts().length>0);W(_,e=>{z(y)&&e(v)});var b=L(_,2),x=e=>{var t=e5(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>_b()]),H(e,t)};W(b,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length===0&&!Q.failoverError&&e(x)});var S=L(b,2),C=e=>{var t=e5(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>bb()]),H(e,t)},w=j(()=>!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&Q.filteredFailoverDrafts().length===0);W(S,e=>{z(w)&&e(C)});var T=L(S,2),E=e=>{var t=oze(),n=F(t,!0);O(t),R(()=>U(n,Q.failoverError)),H(e,t)};W(T,e=>{Q.failoverError&&e(E)});var D=L(T,2),ee=F(D),te=F(ee,!0);O(ee);var ne=L(ee,2),re=F(ne);J(re,{get icon(){return mX},class:`form-action-icon`});var ie=L(re,2),ae=F(ie,!0);O(ie),O(ne),O(D),O(n),R((e,t,r,i,a,s)=>{q(n,`aria-label`,e),U(o,t),U(c,r),ee.disabled=Q.failoverDraftSaving,U(te,i),ne.disabled=a,U(ae,s)},[()=>Vy(),()=>Wy(),()=>qy(),()=>wa(),()=>Q.failoverGenerating||Q.failoverDraftSaving||Q.selectedFailoverDraftCount()===0,()=>Q.failoverDraftSaving?Cb():Eb()]),B(`click`,ee,()=>Q.closeFailoverDraftsModal()),B(`click`,ne,()=>Q.saveSelectedFailoverDrafts()),H(e,n)},$$slots:{default:!0}}),A()}br([`click`,`change`]);var cze=V(`
`),n5=V(` `,1),lze=V(`

`),uze=V(`

`),dze=V(`
`),fze=V(`
`),pze=V(`

`),mze=V(``),hze=V(``);function gze(e,t){k(t,!0);function n(){X.dialogOpen||Z.closeRateLimitInspector()}eZ(e,{get open(){return Z.rateLimitInspectorOpen},variant:`editor`,onclose:n,children:(e,t)=>{var n=hze(),r=F(n),i=F(r),a=F(i),o=F(a,!0);O(a);var s=L(a,2),c=F(s),l=F(c,!0);O(c),O(s),O(i),$X(L(i,2),{label:`Close rate limits inspector`,onclick:()=>Z.closeRateLimitInspector()}),O(r);var u=L(r,2),d=e=>{q3(e,{label:`Loading rate limits...`})},f=e=>{var t=cze(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>$E()]),H(e,t)},p=e=>{var t=Dr();G(I(t),17,()=>Z.rateLimitInspectorSections(),e=>e.key,(e,t)=>{var n=pze(),r=F(n),i=F(r),a=F(i,!0);O(i);var o=L(i,2);{let e=j(()=>`Add `+z(t).title.toLowerCase());J3(o,{get label(){return z(e)},class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(z(t).scope,z(t).subject),children:(e,t)=>{var n=n5(),r=I(n);J(r,{get icon(){return dX},class:`table-icon-svg`});var i=L(r,2),a=F(i,!0);O(i),R(e=>U(a,e),[()=>_D()]),H(e,n)},$$slots:{default:!0}})}O(r);var s=L(r,2),c=e=>{var n=lze(),r=F(n,!0);O(n),R(()=>U(r,z(t).hint)),H(e,n)};W(s,e=>{z(t).hint&&e(c)});var l=L(s,2),u=e=>{var t=uze(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>bD()]),H(e,t)},d=e=>{var n=fze();G(n,21,()=>z(t).items,e=>Z.rateLimitKey(e),(e,t)=>{var n=dze(),r=F(n),i=F(r),a=F(i),o=F(a,!0);O(a);var s=L(a,2),c=F(s),l=F(c);{let e=j(()=>Z.rateLimitIsConcurrent(z(t))?YY:_X);J(l,{get icon(){return z(e)},class:`budget-period-icon`})}var u=L(l,2),d=F(u,!0);O(u),O(c),O(s);var f=L(s,2),p=F(f),m=F(p),h=F(m,!0);O(m);var g=L(m,2),_=F(g,!0);O(g),O(p);var v=L(p,2),y=F(v),b=e=>{J3(e,{label:`Edit rate limit`,class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(null,null,z(t)),children:(e,t)=>{var n=n5(),r=I(n);J(r,{get icon(){return uX},class:`budget-action-icon`});var i=L(r,2),a=F(i,!0);O(i),R(e=>U(a,e),[()=>CD()]),H(e,n)},$$slots:{default:!0}})},x=j(()=>!Z.rateLimitIsReadOnly(z(t)));W(y,e=>{z(x)&&e(b)}),O(v),O(f),O(i),O(r),O(n),R((e,t,r,i,a,s,c,l)=>{K(n,1,`budget-row ${e??``}`),pi(n,t),q(n,`title`,r),U(o,i),U(d,a),U(h,s),q(g,`title`,c),U(_,l)},[()=>Z.rateLimitPressureClass(z(t)),()=>Z.rateLimitPressureStyle(z(t)),()=>Z.rateLimitPressurePercent(z(t))+`% of the most constrained cap used`,()=>Z.rateLimitSubject(z(t)),()=>Z.rateLimitPeriodLabel(z(t)),()=>Z.rateLimitInspectorSummary(z(t)),()=>Z.rateLimitIsReadOnly(z(t))?`Declared in configuration; read-only in the dashboard`:`Managed via dashboard or admin API`,()=>Z.rateLimitSourceLabel(z(t))]),H(e,n)}),O(n),H(e,n)};W(l,e=>{z(t).items.length===0?e(u):e(d,-1)}),O(n),R(()=>U(a,z(t).title)),H(e,n)}),H(e,t)};W(u,e=>{Z.rateLimitsLoading?e(d):Z.rateLimitsAvailable?e(p,-1):e(f,1)});var m=L(u,2),h=F(m),g=L(h,2),_=e=>{var t=mze();B(`click`,t,()=>{Z.closeRateLimitInspector(),TX.navigate(`rate-limits`)}),H(e,t)},v=j(()=>Z.rateLimitsEnabled());W(g,e=>{z(v)&&e(_)}),O(m),O(n),R((e,t)=>{q(n,`aria-label`,e),U(o,t),U(l,Z.rateLimitInspector.title)},[()=>mD(),()=>qE()]),B(`click`,h,()=>Z.closeRateLimitInspector()),H(e,n)},$$slots:{default:!0}}),A()}br([`click`]);var _ze=V(`
`),r5=V(`
`),vze=V(``),yze=V(`
`),bze=V(``),xze=V(`
`),i5=V(`

`),Sze=V(`
`);function Cze(e,t){k(t,!0),pn(()=>{X.refreshTick,TX.page===`models`&&(x8.fetchVirtualModels(),M8.fetchModelPricingOverrides(),Q.fetchFailoverRules(),Z.fetchRateLimitsPage())}),pn(()=>{let e=x8.filteredDisplayModels.length;return ar(()=>x8.restartModelRendering(e)),()=>x8.stopModelRendering()});let n=j(()=>X.needsAuth),r={all:EG,text_generation:kG,embedding:MG,image:FG,audio:RG,video:VG,utility:WG};function i(e){return r[e.category]?.()||e.display_name}var a=Sze(),o=F(a),s=F(o),c=F(s,!0);O(s);var l=L(s,2),u=e=>{var t=_ze(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>dh({count:jZ.filter?x8.filteredDisplayModels.length+` / `+x8.displayModels.length:x8.displayModels.length})]),H(e,t)};W(l,e=>{x8.displayModels.length>0&&e(u)}),O(o);var d=L(o,2);MZ(d,{});var f=L(d,2),p=e=>{var t=r5(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>mh()]),H(e,t)};W(f,e=>{!x8.virtualModelsAvailable&&!z(n)&&e(p)});var m=L(f,2),h=e=>{var t=r5(),n=F(t,!0);O(t),R(()=>U(n,x8.aliasError)),H(e,t)};W(m,e=>{x8.aliasError&&!z(n)&&e(h)});var g=L(m,2),_=e=>{var t=r5(),n=F(t,!0);O(t),R(()=>U(n,M8.modelPricingOverrideError)),H(e,t)};W(g,e=>{M8.modelPricingOverrideError&&!z(n)&&!M8.modelPricingOverrideFormOpen&&e(_)});var v=L(g,2),y=e=>{var t=yze();G(t,21,()=>jZ.categories,e=>e.category,(e,t)=>{var n=vze();let r;var a=F(n),o=F(a,!0);O(a);var s=L(a,2),c=F(s,!0);O(s),O(n),R(e=>{r=K(n,1,`category-tab svelte-scpjps`,null,r,{active:jZ.activeCategory===z(t).category}),U(o,e),U(c,z(t).count)},[()=>i(z(t))]),B(`click`,n,()=>jZ.selectCategory(z(t).category)),H(e,n)}),O(t),H(e,t)};W(v,e=>{jZ.categories.length>0&&e(y)});var b=L(v,2),x=e=>{var t=xze(),n=F(t),r=F(n);{let e=j(()=>_h()),t=j(()=>bh());B3(r,{get placeholder(){return z(e)},get label(){return z(t)},get value(){return jZ.filter},set value(e){jZ.filter=e}})}O(n);var i=L(n,2),a=F(i),o=e=>{var t=bze(),n=F(t);J(n,{get icon(){return dX},class:`alias-create-icon`});var r=L(n,2),i=F(r,!0);O(r),O(t),R((e,n,r)=>{q(t,`aria-label`,e),q(t,`title`,n),U(i,r)},[()=>Eh(),()=>kh(),()=>Ch()]),B(`click`,t,()=>x8.openVirtualModelCreate()),H(e,t)};W(a,e=>{x8.virtualModelsAvailable&&e(o)}),O(i),O(t),H(e,t)};W(b,e=>{(x8.displayModels.length>0||jZ.filter||x8.virtualModelsAvailable)&&e(x)});var S=L(b,2),C=e=>{{let t=j(()=>x8.modelLoadingText());q3(e,{get label(){return z(t)},class:`models-loading-state`})}},w=j(()=>x8.modelsBusy()&&!z(n));W(S,e=>{z(w)&&e(C)});var T=L(S,2);LRe(T,{});var E=L(T,2);qRe(E,{});var D=L(E,2),ee=e=>{SRe(e,{})};W(D,e=>{(x8.displayModels.length>0||jZ.filter)&&e(ee)});var te=L(D,2),ne=e=>{var t=i5(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Mh()]),H(e,t)};W(te,e=>{x8.displayModels.length===0&&!jZ.loading&&!z(n)&&!jZ.filter&&(jZ.activeCategory===`all`||!jZ.activeCategory)&&e(ne)});var re=L(te,2),ie=e=>{var t=i5(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Fh()]),H(e,t)};W(re,e=>{x8.displayModels.length===0&&!jZ.loading&&!z(n)&&!jZ.filter&&jZ.activeCategory&&jZ.activeCategory!==`all`&&e(ie)});var ae=L(re,2),oe=e=>{var t=i5(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Rh()]),H(e,t)};W(ae,e=>{x8.displayModels.length>0&&x8.filteredDisplayModels.length===0&&jZ.filter&&e(oe)});var se=L(ae,2);gze(se,{});var ce=L(se,2);K6(ce,{});var le=L(ce,2);tze(le,{}),t5(L(le,2),{}),O(a),R(e=>U(c,e),[()=>ch()]),H(e,a),A()}br([`click`]);var wze=`draft-workflow-preview`;function a5(){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 o5(){return{scope_provider:``,scope_model:``,scope_user_path:``}}function Tze(e){return{ref:``,step:Number.isFinite(e)?e:10}}function s5(e){let t=e==null?``:String(e).trim();if(t===``)return NaN;let n=Number(t);return Number.isFinite(n)?n:NaN}function c5(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 Eze(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 l5(e){return{cache:!!c5(e,`cache`,!1),audit:!!c5(e,`audit`,!1),usage:!!c5(e,`usage`,!1),budget:c5(e,`budget`,!0)!==!1,guardrails:!!c5(e,`guardrails`,!1),failover:c5(e,`failover`,!0)!==!1}}function u5(e,t){let n=l5(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 d5(e,t){let n=e&&e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:e&&e.features?e.features:{};return{...u5((e&&e.effective_features&&typeof e.effective_features==`object`&&!Array.isArray(e.effective_features)?e.effective_features:null)||n,t),failover:l5(n).failover}}function Dze(e,t){return d5(e,t).failover?mq():_q()}function f5(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:s5(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0)}function Oze(e,t){return d5(e,t).guardrails&&Array.isArray(e&&e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[]}function p5(e){return String(e&&(e.scope_provider_name||e.scope_provider)||``).trim()}function m5(e){return String(e&&(e.provider_name||e.provider_type)||``).trim()}function h5(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=m5(e);t&&n.add(t)}),[...n].sort()}function g5(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&&m5(e)!==r)return;let t=String(e&&e.model&&e.model.id||``).trim();t&&i.add(t)}),[...i].sort()}function kze(e){let t=String(e&&e.scope_type||``).trim();return t===`provider_model`?aJ():t===`provider_model_path`?cJ():t===`provider_path`?dJ():t===`path`?mJ():t===`provider`?_J():bJ()}function _5(e){return String(e&&e.scope_display||`global`).trim()||`global`}function v5(e){let t=String(e&&e.name||``).trim();if(t)return t;let n=_5(e);return n===`global`?CJ():n}function y5(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 mz();if(t.includes(`:`))return _z()}}return``}function b5(e){if(y5(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 x5(e){let t=e||a5(),n=String(t.scope_provider||``).trim(),r=b5(t.scope_user_path);return{scope_provider:n,scope_model:n?String(t.scope_model||``).trim():``,scope_user_path:r}}function S5(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=b5(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 Aze(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=b5(e&&e.scope_user_path),i=S5({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 jze(e,t){let n=t||o5(),r=p5(e&&e.scope),i=r?String(e&&e.scope&&e.scope.scope_model||``).trim():``,a=b5(e&&e.scope&&e.scope.scope_user_path);return r===String(n.scope_provider||``).trim()&&i===String(n.scope_model||``).trim()&&a===b5(n.scope_user_path)}function C5(e,t,n){let r=x5(t);return!(r.scope_provider!==``||r.scope_model!==``||r.scope_user_path!==``)&&!n?null:(Array.isArray(e)?e:[]).find(e=>jze(e,r))||null}function w5(e){return String(e&&e.scope_type||``).trim()!==`global`}function Mze(e){let t=String(e||``).trim();return t?t.length<=14?t:t.slice(0,12)+`…`:`—`}function Nze(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,p5(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 Pze(e,t){let n=e||a5(),r=x5(n),i=l5(n.features||{}),a=u5(i,t);a.failover=i.failover;let o=!!a.guardrails,s=o?f5(n):[];return{id:wze,scope_type:S5(r),scope_display:Aze(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 Fze({form:e,caps:t,workflows:n=[],formHydrated:r=!1,hydratedScope:i=null}){let a=e||a5(),o=String(a.scope_provider||``).trim(),s=o?String(a.scope_model||``).trim():``,c=b5(a.scope_user_path),l=l5(a.features||{}),u=u5(l,t),d=C5(n,a,r),f=d&&d.workflow_payload&&d.workflow_payload.features,p=Eze(f,`failover`),m=p?c5(f,`failover`,!0)!==!1:null,h=i||o5(),g=String(h.scope_provider||``).trim()===o&&String(h.scope_model||``).trim()===s&&b5(h.scope_user_path)===b5(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:s5(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 Ize(e,{models:t=[],hydratedScope:n=null}={}){let r=n||o5(),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&&!h5(t,r).includes(o)&&o!==i)return EJ();if(s&&!o)return kJ();if(s){let e=g5(t,o,r),n=o===i&&s===a;if(!e.includes(s)&&!n)return MJ()}let c=y5(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 FJ();if(!Number.isInteger(e.step)||e.step<0)return RJ();if(d.has(e.ref))return VJ();d.add(e.ref)}return``}var T5=new class{#e=M(P([]));get workflows(){return z(this.#e)}set workflows(e){N(this.#e,e,!0)}#t=M(!0);get available(){return z(this.#t)}set available(e){N(this.#t,e,!0)}#n=M(!1);get loading(){return z(this.#n)}set loading(e){N(this.#n,e,!0)}#r=M(``);get error(){return z(this.#r)}set error(e){N(this.#r,e,!0)}#i=M(``);get filter(){return z(this.#i)}set filter(e){N(this.#i,e,!0)}#a=M(!1);get formOpen(){return z(this.#a)}set formOpen(e){N(this.#a,e,!0)}#o=M(!1);get submitting(){return z(this.#o)}set submitting(e){N(this.#o,e,!0)}#s=M(``);get deactivatingID(){return z(this.#s)}set deactivatingID(e){N(this.#s,e,!0)}#c=M(``);get formError(){return z(this.#c)}set formError(e){N(this.#c,e,!0)}#l=M(!1);get formHydrated(){return z(this.#l)}set formHydrated(e){N(this.#l,e,!0)}#u=M(P(o5()));get hydratedScope(){return z(this.#u)}set hydratedScope(e){N(this.#u,e,!0)}#d=M(P([]));get guardrailRefs(){return z(this.#d)}set guardrailRefs(e){N(this.#d,e,!0)}#f=M(P(a5()));get form(){return z(this.#f)}set form(e){N(this.#f,e,!0)}#p=null;failoverVisible(){return QX.booleanFlag(`FAILOVER_ENABLED`,!0)}featureCaps(){return{cache:QX.cacheVisible(),audit:QX.auditVisible(),usage:QX.usageVisible(),budget:QX.budgetsVisible(),guardrails:QX.guardrailsVisible(),failover:this.failoverVisible()}}get filteredWorkflows(){return Nze(this.workflows,this.filter)}providerOptions(){return h5(jZ.models,this.hydratedScope)}modelOptions(e){return g5(jZ.models,e,this.hydratedScope)}activeScopeMatch(){return C5(this.workflows,this.form,this.formHydrated)}submitMode(){return this.activeScopeMatch()?`save`:`create`}submitLabel(){return this.submitMode()===`save`?WK():ak()}submittingLabel(){return this.submitMode()===`save`?qK():XK()}preview(){return Pze(this.form,this.featureCaps())}openCreate(e){if(this.formOpen=!0,this.submitting=!1,this.formError=``,!e){this.formHydrated=!1,this.hydratedScope=o5(),this.form=a5();return}this.formHydrated=!0,this.hydratedScope={scope_provider:p5(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?l5(e.workflow_payload.features):d5(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:s5(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0):f5(e);this.form={scope_provider:p5(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=o5(),this.form=a5()}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(Tze(e))}removeGuardrailStep(e){Array.isArray(this.form.guardrails)&&this.form.guardrails.splice(e,1)}buildRequest(){return Fze({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 Y3(`/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?nq():n.error;return}this.workflows=n.items}}async fetchGuardrailRefs(){let e=await Y3(`/admin/workflows/guardrails`,{label:`workflow guardrails`});e.status!==`stale`&&(this.guardrailRefs=e.items)}async fetchPage(){await Promise.all([QX.ensureLoaded(),this.fetchWorkflows(),this.fetchGuardrailRefs()])}async submitForm(){if(this.submitting)return;this.formError=``;let e=this.buildRequest(),t=Ize(e,{models:jZ.models,hydratedScope:this.hydratedScope});if(t){this.formError=t;return}this.submitting=!0;try{let t=await X3(`/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}cZ.success(aq()),this.closeForm(),this.fetchPage()}finally{this.submitting=!1}}async deactivate(e){let t=String(e&&e.id||``).trim();if(!t||this.deactivatingID||!w5(e))return;let n=v5(e);if(confirm(cq({name:n}))){this.deactivatingID=t;try{let e=await X3(`/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`){cZ.error(e.error);return}cZ.success(dq()),this.fetchPage()}finally{this.deactivatingID=``}}}};function Lze(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 E5({resetDelayMs:e=2e3,logPrefix:t}={}){let n=P({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 Lze(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 Rze=V(``);function zze(e,t){k(t,!0);let n=Ri(t,`workflowID`,3,``),r=E5({logPrefix:`Failed to copy workflow ID:`});pn(()=>{n(),r.reset()});let i=j(()=>r.error?`Unable to copy workflow ID`:r.copied?`Workflow ID copied`:`Copy workflow ID`),a=j(()=>n()?z(i)+` `+n():z(i));async function o(e){e.preventDefault(),n()&&await r.copy(n())}var s=Rze();let c;var l=L(F(s),4),u=F(l,!0);O(l);var d=L(l,2);J(F(d),{get icon(){return rX}}),O(d),O(s),R(()=>{c=K(s,1,`workflow-pipeline-meta mono svelte-1viff7o`,null,c,{"workflow-pipeline-meta-copied":r.copied,"workflow-pipeline-meta-error":r.error}),q(s,`title`,z(i)),q(s,`aria-label`,z(a)),U(u,n())}),B(`click`,s,o),H(e,s),A()}br([`click`]);var D5=(e,t)=>{let n=()=>(t?.()).icon,r=()=>(t?.()).label,i=vt(()=>h((t?.()).variant,`workflow-node-feature`)),a=()=>(t?.()).state,o=()=>(t?.()).sub,s=()=>(t?.()).badge;var c=Uze(),l=F(c),u=e=>{var t=Bze();let r;J(F(t),{get icon(){return n()}}),O(t),R(()=>r=K(t,1,`workflow-node-icon svelte-nbptrg`,null,r,{"workflow-node-icon-endpoint":z(i)===`workflow-node-endpoint`})),H(e,t)};W(l,e=>{n()&&e(u)});var d=L(l,2),f=F(d,!0);O(d);var p=L(d,2),m=e=>{var t=Vze(),n=F(t,!0);O(t),R(()=>U(n,s())),H(e,t)};W(p,e=>{s()&&e(m)});var g=L(p,2),_=e=>{var t=Hze(),n=F(t,!0);O(t),R(()=>U(n,o())),H(e,t)};W(g,e=>{o()&&e(_)}),O(c),R(()=>{K(c,1,ci([`workflow-node`,z(i),a()]),`svelte-nbptrg`),U(f,r())}),H(e,c)},Bze=V(`
`),Vze=V(` `),Hze=V(` `),Uze=V(`
`),O5=V(`
`,1),k5=V(`
`,1),Wze=V(`
`),Gze=V(`
`),Kze=V(`
`);function A5(e,t){k(t,!0);let n=Ri(t,`chart`,19,()=>({}));var r=Kze();let i;var a=F(r),o=e=>{zze(e,{get workflowID(){return n().workflowID}})};W(a,e=>{n().workflowID&&e(o)});var s=L(a,2),c=F(s);{let e=j(()=>({icon:$we,label:TCe(),variant:`workflow-node-endpoint`}));D5(c,()=>z(e))}var l=L(c,4);{let e=j(()=>({icon:aX,label:OCe(),state:n().authNodeClass,sub:n().authNodeSublabel}));D5(l,()=>z(e))}var u=L(l,2),d=e=>{var t=O5(),r=I(t),i=L(r,2);{let e=j(()=>({icon:aX,label:Wk(),state:n().cacheNodeClass,badge:n().cacheStatusLabel}));D5(i,()=>z(e))}R(()=>K(r,1,ci([`workflow-conn`,n().cacheConnClass]),`svelte-nbptrg`)),H(e,t)};W(u,e=>{n().showCache&&e(d)});var f=L(u,2),p=e=>{var t=k5(),r=L(I(t),2);{let e=j(()=>({icon:yX,label:$k(),state:n().budgetNodeClass,badge:n().budgetStatusLabel}));D5(r,()=>z(e))}H(e,t)};W(f,e=>{n().showBudget&&e(p)});var m=L(f,2),h=e=>{var t=k5(),r=L(I(t),2);{let e=j(()=>({icon:Jwe,label:XT(),sub:n().guardrailLabel}));D5(r,()=>z(e))}H(e,t)};W(m,e=>{n().showGuardrails&&e(h)});var g=L(m,2),_=L(g,2);D5(_,()=>({label:n().aiLabel,variant:`workflow-node-ai`,state:n().aiNodeClass,sub:n().aiSublabel}));var v=L(_,2),y=e=>{var t=O5(),r=I(t),i=L(r,2);{let e=j(()=>({icon:lX,label:nA(),state:n().failoverNodeClass,badge:n().failoverStatusLabel,sub:n().failoverTargetLabel}));D5(i,()=>z(e))}R(()=>K(r,1,ci([`workflow-conn`,n().failoverConnClass]),`svelte-nbptrg`)),H(e,t)};W(v,e=>{n().showFailover&&e(y)});var b=L(v,2),x=L(b,2);{let e=j(()=>({icon:kwe,label:jCe(),variant:`workflow-node-endpoint`,state:n().responseNodeClass,sub:n().responseNodeSublabel}));D5(x,()=>z(e))}O(s);var S=L(s,2),C=e=>{var t=Gze(),r=F(t),i=F(r),a=e=>{{let t=j(()=>({icon:Ewe,label:Xk(),variant:`workflow-node-feature workflow-node-async`,state:n().usageNodeClass}));D5(e,()=>z(t))}};W(i,e=>{n().showUsage&&e(a)});var o=L(i,2),s=e=>{H(e,Wze())};W(o,e=>{n().showUsage&&n().showAudit&&e(s)});var c=L(o,2),l=e=>{{let t=j(()=>({icon:jwe,label:PCe(),variant:`workflow-node-feature workflow-node-async`,state:n().auditNodeClass}));D5(e,()=>z(t))}};W(c,e=>{n().showAudit&&e(l)}),O(r);var u=L(r,4),d=F(u,!0);O(u),O(t),R(e=>U(d,e),[()=>qT()]),H(e,t)};W(S,e=>{n().showAsync&&e(C)}),O(r),R(()=>{i=K(r,1,`workflow-pipeline svelte-nbptrg`,null,i,{"workflow-pipeline-has-meta":n().workflowID}),K(g,1,ci([`workflow-conn`,n().aiConnClass]),`svelte-nbptrg`),K(b,1,ci([`workflow-conn`,n().responseConnClass]),`svelte-nbptrg`)}),H(e,r),A()}function qze(e){let t=f5(e).length;return t===0?``:t===1?Eq():Cq({count:t})}function Jze(e,t){return t&&t.provider?t.provider:p5(e&&e.scope)||`AI`}function Yze(e,t){return t&&t.model?t.model:e&&e.scope&&e.scope.scope_model||null}function Xze(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 Zze(e){let t=e&&e.data&&e.data.workflow_features;return!t||typeof t!=`object`||Array.isArray(t)?null:l5(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 Qze(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 $ze(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 eBe(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=$ze(n);if(i)return i;let a=p5(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 tBe(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=eBe(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=Qze(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 nBe(e){return!!(e&&e.cacheHit)}function rBe(e){return!!(e&&e.failoverTarget)}function N5(e){return!!(e&&e.budgetExceeded)}function iBe(e,t){return t?`workflow-node-current`:e&&e.cacheHit?`workflow-node-success`:``}function aBe(e){return e&&e.cacheHit?`workflow-conn-hit`:``}function oBe(e){return!e||!e.cacheHit?null:e.cacheType===`semantic`?LCe():BCe()}function sBe(e,t,n,r){return e?N5(t)?`workflow-node-error`:r?`workflow-node-current`:n?`workflow-node-success`:``:``}function cBe(e){return N5(e)?UCe():null}function lBe(e){return e&&e.cacheHit?`workflow-node-skipped`:e&&e.failoverTarget?`workflow-node-success`:``}function uBe(e){return e&&e.cacheHit?`workflow-conn-dim`:e&&e.failoverTarget?`workflow-conn-hit`:``}function dBe(e){return e&&e.failoverTarget?KCe():null}function fBe(e){return e&&e.failoverTarget?e.failoverTarget:null}function P5(e){return e&&e.cacheHit?`workflow-conn-dim`:``}function pBe(e,t){return e?e.cacheHit?`workflow-node-skipped`:t?`workflow-node-current`:e.aiSuccess?`workflow-node-success`:``:``}function mBe(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 hBe(e){return!e||!Number.isFinite(e.statusCode)?null:String(e.statusCode)}function gBe(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 _Be(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 vBe(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 yBe(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)?l5(i.features):d5(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||rBe(t),m=Xze(e,i.entry),h=yBe(i.entry,t,a),g=L5(i.entry),_=R5(i.entry,t),v=I5(i.entry,s),y=vBe(i.entry,s);return{showBudget:c,budgetNodeClass:sBe(c,t,s,h===`budget`),budgetStatusLabel:cBe(t),showGuardrails:l,guardrailLabel:l?qze(e):``,showCache:!!i.forceCache||!!a.cache||nBe(t),cacheNodeClass:iBe(t,h===`cache`),cacheConnClass:aBe(t),cacheStatusLabel:oBe(t),showFailover:p,failoverNodeClass:p?lBe(t):``,failoverConnClass:p?uBe(t):``,failoverStatusLabel:p?dBe(t):null,failoverTargetLabel:p?fBe(t):null,aiLabel:Jze(e,t),aiSublabel:Yze(e,t),aiConnClass:P5(t),aiNodeClass:pBe(t,h===`ai`),responseConnClass:P5(t),responseNodeClass:mBe(t,h===`response`),responseNodeSublabel:hBe(t),authNodeClass:gBe(t,h===`auth`),authNodeSublabel:_Be(t),usageNodeClass:F5(u,y,g),auditNodeClass:F5(d,v,_),showAsync:f,showUsage:u,showAudit:d,workflowID:m}}function bBe(e,t){return z5(e,null,{forceCache:!1},t)}function xBe(e,t,n){return z5(t,tBe(e,t),{entry:e,features:Zze(e)||(t?d5(t,n):{cache:!1,audit:!1,usage:!1,budget:!1,guardrails:!1,failover:!1}),forceAudit:!0,forceAsync:!0,highlightAsyncPresent:!0},n)}var SBe=V(`

`),B5=V(`

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

`),EBe=V(``),DBe=V(`

`);function V5(e,t){k(t,!0);let n=Ri(t,`preview`,3,!1),r=j(()=>T5.featureCaps()),i=j(()=>v5(t.workflow)),a=j(()=>Oze(t.workflow,z(r))),o=j(()=>bBe(t.workflow,z(r))),s=j(()=>n()?`draft-workflow-preview-guardrail-`:t.workflow.id+`-guardrail-`);var c=DBe();let l;var u=F(c),d=F(u),f=F(d),p=F(f,!0);O(f);var m=L(f,2),h=F(m,!0);O(m),O(d);var g=L(d,2),_=F(g),v=F(_,!0);O(_),O(g),O(u);var y=L(u,2),b=e=>{var n=SBe(),r=F(n,!0);O(n),R(()=>U(r,t.workflow.description)),H(e,n)};W(y,e=>{t.workflow.description&&e(b)});var x=L(y,2),S=e=>{var n=B5(),i=F(n);O(n),R((e,t)=>U(i,`${e??``}: ${t??``}`),[()=>nA(),()=>Dze(t.workflow,z(r))]),H(e,n)},C=j(()=>T5.failoverVisible());W(x,e=>{z(C)&&e(S)});var w=L(x,2);A5(w,{get chart(){return z(o)}});var T=L(w,2),E=e=>{var t=TBe(),n=F(t),r=F(n),i=F(r,!0);O(r);var o=L(r,2),c=F(o,!0);O(o),O(n);var l=L(n,2),u=e=>{var t=wBe();G(t,23,()=>z(a),(e,t)=>z(s)+t,(e,t)=>{var n=CBe(),r=F(n),i=F(r,!0);O(r);var a=L(r,2),o=F(a,!0);O(a),O(n),R(e=>{U(i,z(t).ref),U(o,e)},[()=>kq({number:z(t).step})]),H(e,n)}),O(t),H(e,t)},d=e=>{var t=B5(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>$T()]),H(e,t)};W(l,e=>{z(a).length>0?e(u):e(d,-1)}),O(t),R((e,t)=>{U(i,e),U(c,t)},[()=>XT(),()=>z(a).length?Cq({count:z(a).length}):bq()]),H(e,t)},D=j(()=>QX.guardrailsVisible());W(T,e=>{z(D)&&e(E)});var ee=L(T,2),te=e=>{var n=EBe(),r=F(n),a=F(r),o=F(a,!0);O(a);var s=L(a,2);{let e=j(()=>qq({name:z(i)}));J3(s,{get label(){return z(e)},class:`table-icon-btn`,onclick:()=>T5.openCreate(t.workflow),children:(e,t)=>{J(e,{get icon(){return uX},class:`table-icon-svg`})},$$slots:{default:!0}})}O(r);var c=L(r,2),l=F(c),u=F(l,!0);O(l);var d=L(l,2),f=F(d,!0);O(d);var p=L(d,2),m=F(p,!0);O(p),O(c),O(n),R((e,t,n,r,i,s,c)=>{a.disabled=e,q(a,`aria-label`,t),q(a,`title`,n),U(o,r),U(u,i),U(f,s),U(m,c)},[()=>T5.deactivatingID===t.workflow.id||!w5(t.workflow),()=>Mq({name:z(i)}),()=>w5(t.workflow)?Fq():Rq(),()=>T5.deactivatingID===t.workflow.id?Vq():Wq(),()=>Xq({version:t.workflow.version}),()=>$q({date:WX.formatTimestamp(t.workflow.created_at)}),()=>nJ({hash:Mze(t.workflow.workflow_hash)})]),B(`click`,a,()=>T5.deactivate(t.workflow)),H(e,n)};W(ee,e=>{n()||e(te)}),O(c),R((e,t)=>{l=K(c,1,`workflow-card svelte-1fo9fvq`,null,l,{"workflow-preview-card":n()}),U(p,e),U(h,z(i)),U(v,t)},[()=>kze(t.workflow),()=>_5(t.workflow)]),H(e,c),A()}br([`click`]);var OBe=V(`

`),H5=V(``),kBe=V(``),ABe=V(``),jBe=V(``),MBe=V(``),NBe=V(``),U5=V(``),PBe=V(`
`),FBe=V(`
`),IBe=V(`
`),LBe=V(`

`),RBe=V(`

`),zBe=V(`

`,1);function BBe(e,t){k(t,!0);{let t=e=>{{let t=e=>{var t=OBe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>T5.submitMode()===`save`?nk():ak()]),H(e,t)},n=j(()=>XO()),r=j(()=>$O());l3(e,{copyId:`workflow-help-copy`,get label(){return z(n)},get text(){return z(r)},title:t,$$slots:{title:!0}})}},n=j(()=>qO()),r=j(()=>T5.submitLabel()),i=j(()=>T5.submittingLabel()),a=j(()=>T5.submitMode()===`create`?dX:mX);x6(e,{get open(){return T5.formOpen},get ariaLabel(){return z(n)},get error(){return T5.formError},get submitting(){return T5.submitting},get submitLabel(){return z(r)},get submittingLabel(){return z(i)},get submitIcon(){return z(a)},dialogClass:`workflow-editor`,onclose:()=>T5.closeForm(),onsubmit:()=>T5.submitForm(),header:t,children:(e,t)=>{var n=zBe(),r=I(n),i=F(r);{let e=j(()=>ck());S6(i,{id:`workflow-scope-provider`,get label(){return z(e)},children:(e,t)=>{var n=kBe(),r=F(n),i=F(r,!0);O(r),r.value=r.__value=``,G(L(r),16,()=>T5.providerOptions(),e=>e,(e,t)=>{var n=H5(),r=F(n,!0);O(n);var i={};R(()=>{U(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),H(e,n)}),O(n),R(e=>U(i,e),[()=>dk()]),B(`change`,n,e=>T5.setProvider(e.currentTarget.value)),gi(n,()=>T5.form.scope_provider,e=>T5.form.scope_provider=e),H(e,n)},$$slots:{default:!0}})}var a=L(i,2),o=e=>{{let t=j(()=>mk());S6(e,{id:`workflow-scope-model`,get label(){return z(t)},children:(e,t)=>{var n=ABe(),r=F(n),i=F(r,!0);O(r),r.value=r.__value=``,G(L(r),17,()=>T5.modelOptions(T5.form.scope_provider),e=>T5.form.scope_provider+`-`+e,(e,t)=>{var n=H5(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t)),i!==(i=z(t))&&(n.value=(n.__value=z(t))??``)}),H(e,n)}),O(n),R(e=>U(i,e),[()=>_k()]),gi(n,()=>T5.form.scope_model,e=>T5.form.scope_model=e),H(e,n)},$$slots:{default:!0}})}};W(a,e=>{T5.form.scope_provider&&e(o)});var s=L(a,2);{let e=j(()=>bk());S6(s,{id:`workflow-name`,get label(){return z(e)},children:(e,t)=>{var n=jBe();Ci(n),R(e=>q(n,`placeholder`,e),[()=>Ck()]),Ai(n,()=>T5.form.name,e=>T5.form.name=e),H(e,n)},$$slots:{default:!0}})}var c=L(s,2);{let e=j(()=>Ek());S6(c,{id:`workflow-user-path`,get label(){return z(e)},children:(e,t)=>{var n=MBe();Ci(n),Ai(n,()=>T5.form.scope_user_path,e=>T5.form.scope_user_path=e),H(e,n)},$$slots:{default:!0}})}O(r);var l=L(r,2),u=F(l,!0);O(l);var d=L(l,2),f=F(d,!0);O(d);var p=L(d,2),m=F(p,!0);O(p);var h=L(p,2);{let e=j(()=>Rk());S6(h,{id:`workflow-description`,get label(){return z(e)},children:(e,t)=>{var n=NBe();it(n),R(e=>q(n,`placeholder`,e),[()=>Vk()]),Ai(n,()=>T5.form.description,e=>T5.form.description=e),H(e,n)},$$slots:{default:!0}})}var g=L(h,2),_=F(g),v=e=>{var t=U5(),n=F(t);Ci(n);var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>U(i,e),[()=>Wk()]),ji(n,()=>T5.form.features.cache,e=>T5.form.features.cache=e),H(e,t)},y=j(()=>QX.cacheVisible());W(_,e=>{z(y)&&e(v)});var b=L(_,2),x=e=>{var t=U5(),n=F(t);Ci(n);var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>U(i,e),[()=>qk()]),ji(n,()=>T5.form.features.audit,e=>T5.form.features.audit=e),H(e,t)},S=j(()=>QX.auditVisible());W(b,e=>{z(S)&&e(x)});var C=L(b,2),w=e=>{var t=U5(),n=F(t);Ci(n);var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>U(i,e),[()=>Xk()]),ji(n,()=>T5.form.features.usage,e=>T5.form.features.usage=e),H(e,t)},T=j(()=>QX.usageVisible());W(C,e=>{z(T)&&e(w)});var E=L(C,2),D=e=>{var t=U5(),n=F(t);Ci(n);var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>U(i,e),[()=>$k()]),ji(n,()=>T5.form.features.budget,e=>T5.form.features.budget=e),H(e,t)},ee=j(()=>QX.budgetsVisible());W(E,e=>{z(ee)&&e(D)});var te=L(E,2),ne=e=>{var t=U5(),n=F(t);Ci(n);var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>U(i,e),[()=>XT()]),ji(n,()=>T5.form.features.guardrails,e=>T5.form.features.guardrails=e),H(e,t)},re=j(()=>QX.guardrailsVisible());W(te,e=>{z(re)&&e(ne)});var ie=L(te,2),ae=e=>{var t=U5(),n=F(t);Ci(n);var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>U(i,e),[()=>nA()]),ji(n,()=>T5.form.features.failover,e=>T5.form.features.failover=e),H(e,t)},oe=j(()=>T5.failoverVisible());W(ie,e=>{z(oe)&&e(ae)}),O(g);var se=L(g,2),ce=F(se),le=F(ce),ue=F(le,!0);O(le);var de=L(le,2),fe=F(de,!0);O(de),O(ce);var pe=L(ce,2);{let e=j(()=>T5.preview());V5(pe,{get workflow(){return z(e)},preview:!0})}O(se);var me=L(se,2),he=e=>{var t=RBe(),n=F(t),r=F(n),i=F(r),a=F(i,!0);O(i);var o=L(i,2),s=F(o,!0);O(o),O(r);var c=L(r,2),l=F(c,!0);O(c),O(n);var u=L(n,2),d=e=>{var t=PBe(),n=F(t),r=F(n,!0);O(n);var i=L(n,2),a=F(i,!0);O(i),O(t),R((e,t)=>{U(r,e),U(a,t)},[()=>bA(),()=>CA()]),B(`click`,i,()=>TX.navigate(`guardrails`)),H(e,t)};W(u,e=>{T5.guardrailRefs.length===0&&e(d)});var f=L(u,2),p=e=>{var t=IBe();G(t,21,()=>T5.form.guardrails,Fr,(e,t,n)=>{var r=FBe(),i=F(r),a=F(i);q(a,`for`,`workflow-guardrail-ref-`+n);var o=F(a,!0);O(a);var s=L(a,2);Ci(s),q(s,`id`,`workflow-guardrail-ref-`+n),O(i);var c=L(i,2),l=F(c);q(l,`for`,`workflow-guardrail-step-`+n);var u=F(l,!0);O(l);var d=L(l,2);Ci(d),q(d,`id`,`workflow-guardrail-step-`+n),O(c);var f=L(c,2),p=F(f,!0);O(f),O(r),R((e,t,n,r,i,a,c)=>{U(o,e),q(s,`placeholder`,t),q(s,`aria-label`,n),U(u,r),q(d,`placeholder`,i),q(d,`aria-label`,a),U(p,c)},[()=>EA(),()=>EA(),()=>`${EA()} ${n+1}`,()=>kA(),()=>kA(),()=>`${dA()} ${n+1}`,()=>MA()]),Ai(s,()=>z(t).ref,e=>z(t).ref=e),Ai(d,()=>z(t).step,e=>z(t).step=e),B(`click`,f,()=>T5.removeGuardrailStep(n)),H(e,r)}),O(t),H(e,t)},m=e=>{var t=LBe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>FA()]),H(e,t)};W(f,e=>{T5.form.guardrails.length>0?e(p):e(m,-1)}),O(t),R((e,t,n)=>{U(a,e),U(s,t),U(l,n)},[()=>dA(),()=>mA(),()=>_A()]),B(`click`,c,()=>T5.addGuardrailStep()),H(e,t)},ge=j(()=>T5.form.features.guardrails&&QX.guardrailsVisible());W(me,e=>{z(ge)&&e(he)}),R((e,t,n,r,i)=>{U(u,e),U(f,t),U(m,n),U(ue,r),U(fe,i)},[()=>kk(),()=>Mk(),()=>Fk(),()=>aA(),()=>cA()]),H(e,n)},$$slots:{header:!0,default:!0}})}A()}br([`change`,`click`]);var VBe=V(`

`),HBe=V(`
`),W5=V(`

`),UBe=V(`
`);function WBe(e,t){k(t,!0);var n=UBe(),r=F(n),i=e=>{var t=VBe(),n=F(t);{let e=j(()=>$K());a3(n,{size:16,get label(){return z(e)}})}var r=L(n);O(t),R(e=>U(r,` ${e??``}`),[()=>$K()]),H(e,t)};W(r,e=>{T5.loading&&!X.authError&&e(i)});var a=L(r,2),o=e=>{var t=HBe();G(t,21,()=>T5.filteredWorkflows,e=>e.id,(e,t)=>{V5(e,{get workflow(){return z(t)}})}),O(t),H(e,t)};W(a,e=>{T5.filteredWorkflows.length>0&&e(o)});var s=L(a,2),c=e=>{var t=W5(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>VT()]),H(e,t)};W(s,e=>{T5.workflows.length===0&&!T5.loading&&!X.authError&&T5.available&&e(c)});var l=L(s,2),u=e=>{var t=W5(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>WT()]),H(e,t)};W(l,e=>{T5.workflows.length>0&&T5.filteredWorkflows.length===0&&!T5.loading&&e(u)}),O(n),H(e,n),A()}var GBe=V(``),G5=V(`
`),KBe=V(`
`),qBe=V(``),JBe=V(`
`);function YBe(e,t){k(t,!0),pn(()=>{X.refreshTick,T5.fetchPage()});var n=JBe(),r=F(n),i=F(r),a=F(i),o=F(a,!0);O(a);var s=L(a,2),c=F(s,!0);O(s),O(i);var l=L(i,2),u=F(l),d=e=>{var t=GBe(),n=F(t);J(n,{get icon(){return dX},class:`form-action-icon`,"aria-hidden":`true`});var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>U(i,e),[()=>kT()]),B(`click`,t,()=>T5.openCreate()),H(e,t)};W(u,e=>{T5.available&&e(d)}),O(l),O(r);var f=L(r,2),p=e=>{var t=G5(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>MT()]),H(e,t)};W(f,e=>{!T5.available&&!X.authError&&e(p)});var m=L(f,2),h=e=>{var t=G5(),n=F(t,!0);O(t),R(()=>U(n,T5.error)),H(e,t)};W(m,e=>{T5.error&&!X.authError&&e(h)});var g=L(m,2),_=e=>{var t=KBe(),n=F(t),r=F(n);{let e=j(()=>FT()),t=j(()=>RT());B3(r,{get placeholder(){return z(e)},get label(){return z(t)},get value(){return T5.filter},set value(e){T5.filter=e}})}O(n);var i=L(n,2),a=F(i),o=F(a,!0);O(a),O(i),O(t),R(()=>U(o,T5.filteredWorkflows.length+` active scopes`)),H(e,t)};W(g,e=>{T5.available&&e(_)});var v=L(g,2);BBe(v,{});var y=L(v,2);WBe(y,{});var b=L(y,2);G(b,20,()=>T5.guardrailRefs,e=>e,(e,t)=>{var n=qBe(),r={};R(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),H(e,n)}),O(b),O(n),R((e,t)=>{U(o,e),U(c,t)},[()=>CT(),()=>ET()]),H(e,n),A()}br([`click`]);function XBe(e,{from:t,to:n},r={}){var{delay:i=0,duration:a=e=>Math.sqrt(e)*120,easing:o=sZ}=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=ZBe(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 ZBe(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 QBe(){return K5===null&&(K5=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`)),!!(K5&&K5.matches)}function q5(e){return QBe()?0:e}function $Be(e,t){return!t||!t.live?{duration:0}:oZ(e,{duration:q5(150)})}var J5=new class{#e=M(P({}));get workflowVersionsByID(){return z(this.#e)}set workflowVersionsByID(e){N(this.#e,e,!0)}workflowVersionRequests={};workflowFeatureCaps(){return{cache:QX.cacheVisible(),audit:QX.auditVisible(),usage:QX.usageVisible(),budget:QX.budgetsVisible(),guardrails:QX.guardrailsVisible(),failover:QX.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 YX(`/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||nVe(t&&t.response_body)}function iVe(e){let t=e&&e.data?e.data:null;return t?eVe(t.error_message)||(rVe(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 aVe(e){return $5(e)===null?``:e7(e)+t7(e)+`.`}function e7(e){let t=$5(e);return t===null?``:t===0?Doe():Aoe()}function t7(e){let t=$5(e);return t===null?``:t===0?Noe():Ioe({count:t})}function oVe({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 sVe({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 cVe(e){return!!n7(e)&&r7(e)>1}function lVe(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 uVe(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 dVe(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)&&dVe(t)}function fVe(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 pVe(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 mVe(e,t){let n=o7(t),r=e||{};return n?r[n]?{}:{[n]:!0}:r}function hVe(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 gVe(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 _Ve(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 vVe(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 yVe(e){return String(e&&e.model||``).trim()||`-`}function bVe(e){let t=p7(e);return t.length>1||t.some(e=>!(e&&e.success))?t:[]}function xVe(e){return p7(e).length+`×`}function SVe(e){let t=p7(e),n=t.filter(e=>!(e&&e.success)).length;return n>0?ele({count:t.length,failed:n}):Zce({count:t.length})}function CVe(e){if(!e)return``;let t=[`#`+Number(e.seq||0)],n=h7(e);n&&n!==`attempt`&&t.push(n),t.push(_Ve(e));let r=vVe(e);r&&r!==`-`&&t.push(r);let i=yVe(e);return i&&i!==`-`&&t.push(i),t.push(e.success?rle():ole()),t.join(` · `)}function wVe(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 TVe(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||Jce()}function EVe(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 DVe(e){let t=Number(e&&e.status_code);return Number.isFinite(t)&&t>0?t:null}function OVe(e,t){let n=!!(t&&t.success),r=e&&e.data?e.data:null,i=wVe(e,t),a=EVe(e,t),o=TVe(t),s=i!=null&&i!==``,c=h7(t),l=p7(e).length<=1;return{title:No(),direction:`response`,seq:l?0:Number(t&&t.seq||0),kind:l||c===`attempt`?``:c,statusCode:l?null:DVe(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:lle(),showTooLarge:!!(n&&r&&r.response_body_too_big_to_handle),tooLargeMessage:Fo()}}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 kVe(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:jle({rewriter:t}),title:Ple({rewriter:t})}})}function AVe(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 jVe(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:Hce(),direction:`request`,seq:i?0:Number(t&&t.seq||0),kind:t&&t.rewriter?String(t.rewriter):``,savingsLabel:AVe(t),layout:`split`,entry:e,copyHeaders:a,copyBody:n,showErrorMessage:!1,errorMessage:null,showHeaders:!0,headers:a,headersTitle:Gce(),showBody:r,body:n,showEmpty:!1,emptyMessage:``,showTooLarge:!r,tooLargeMessage:Ole()}}function v7(e){let t=e&&e.usage;return!t||typeof t!=`object`?null:t}function MVe(e){let t=v7(e);return Number(t&&t.cached_input_tokens||0)>0}function NVe(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 PVe(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?Lle({count:dZ(r)}):Ble({percent:NVe(e).toFixed(1)})}function FVe(e){return MVe(e)?PVe(e):``}function IVe(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 LVe(e,t){let n=e&&e.data?e.data:null,r=!n||!n.request_headers&&!n.request_body,i=r&&d7(e);return{title:Lce(),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:FVe(e),promptCacheHighlight:IVe(e,t),noChangeSteps:kVe(e),showEmpty:r&&!i,emptyMessage:fle(),showPending:i,pendingMessage:Po(),showTooLarge:!!(n&&n.request_body_too_big_to_handle),tooLargeMessage:_le()}}function RVe(e){let t=e&&e.data?e.data:null,n=iVe(e),r=!t||!n&&!t.response_headers&&!t.response_body,i=r&&d7(e);return{title:No(),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:ble(),showPending:i,pendingMessage:Cle(),showTooLarge:!!(t&&t.response_body_too_big_to_handle),tooLargeMessage:Fo()}}function y7(e,t){let n=[{id:`request`,pane:LVe(e,t)}];return _7(e).forEach(t=>{n.push({id:`revision-`+Number(t&&t.seq||0),pane:jVe(e,t)})}),m7(e)?p7(e).forEach(t=>{n.push({id:`response-`+Number(t&&t.seq||0),pane:OVe(e,t)})}):n.push({id:`response`,pane:RVe(e)}),n}function zVe(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 BVe(e,t,n){return e&&(Array.isArray(n)?n:y7(t)).some(t=>t.id===e)?e:zVe(t)}function VVe(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 HVe=100;function b7(){return{entries:[],total:0,limit:25,offset:0}}var x7=new class{#e=M(P({}));get auditExpandedEntries(){return z(this.#e)}set auditExpandedEntries(e){N(this.#e,e,!0)}#t=M(P({}));get auditExpandedThreads(){return z(this.#t)}set auditExpandedThreads(e){N(this.#t,e,!0)}#n=M(!1);get loading(){return z(this.#n)}set loading(e){N(this.#n,e,!0)}auditFetchToken=0;get auditLog(){return v3.auditLog}set auditLog(e){v3.auditLog=e}get auditSearch(){return v3.auditSearch}set auditSearch(e){v3.auditSearch=e}get auditMethod(){return v3.auditMethod}set auditMethod(e){v3.auditMethod=e}get auditStatusCode(){return v3.auditStatusCode}set auditStatusCode(e){v3.auditStatusCode=e}get auditStream(){return v3.auditStream}set auditStream(e){v3.auditStream=e}get auditGroupSessions(){return v3.auditGroupSessions}liveFilters(){return{search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream,customStartDate:AZ.customStartDate,customEndDate:AZ.customEndDate}}toggleAuditGroupSessions(){v3.auditGroupSessions=!v3.auditGroupSessions,Gi(`gomodel_audit_group_sessions`,v3.auditGroupSessions),this.auditExpandedThreads={},v3.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=oVe({dateQuery:AZ.queryStr(),limit:this.auditLog.limit,offset:this.auditLog.offset,search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream}),i=await YX((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?lVe(i.data):i.data,o=(n?pVe:fVe)(a,this.auditLog&&this.auditLog.entries,this.liveFilters());Array.isArray(o.entries)||(o.entries=[]),o.entries=v3.upsertAuditRecords(o.entries,`audit.list`),this.auditLog=o,this.auditExpandedThreads=a7(this.auditExpandedThreads,o.entries),v3.auditThreadChildren=a7(v3.auditThreadChildren,o.entries);let s=[...o.entries,...this.loadedThreadChildren()];this.auditExpandedEntries=hVe(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=v3.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&&v3.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=v3.auditThreadChildren[t];n&&!(r&&(r.loaded||r.loading))&&await this.fetchThreadEntries(e)}async fetchThreadEntries(e){let t=n7(e);if(!t)return;let n=v3.auditThreadChildren[t];v3.auditThreadChildren={...v3.auditThreadChildren,[t]:{loading:!0,loaded:!1,entries:n&&Array.isArray(n.entries)?n.entries:[],total:Number(n&&n.total||0)}};let r=()=>{let e={...v3.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))),v3.auditThreadChildren=e};try{let n=await YX(`/admin/audit/log?`+sVe({sessionId:t,limit:HVe}),{label:`audit session`});if(n.stale){r();return}if(!n.ok)throw Error(`audit session fetch failed`);let i=v3.auditThreadChildren[t],a=this.auditLog.entries.find(e=>n7(e)===t),o=uVe(i,n.data.entries,a?[a]:[e]);o.entries=v3.upsertAuditRecords(o.entries,`audit.thread`),v3.auditThreadChildren={...v3.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=mVe(this.auditExpandedEntries,e);let t=this.isAuditEntryExpanded(e);return t&&typeof v3.fetchAuditEntryDetail==`function`&&v3.fetchAuditEntryDetail(e),t}expandAuditEntry(e){this.isAuditEntryExpanded(e)||this.toggleAuditEntryExpanded(e)}};v3.fetchAuditLog=e=>x7.fetchAuditLog(e),v3.isAuditEntryExpanded=e=>x7.isAuditEntryExpanded(e);var UVe=V(`
`);function WVe(e,t){k(t,!0);let n=V3(()=>x7.fetchAuditLog(!0));pn(()=>n.cancel);var r=UVe(),i=F(r),a=F(i);{let e=j(()=>rse()),t=j(()=>ose());B3(a,{id:`audit-filter-search`,get placeholder(){return z(e)},get label(){return z(t)},get oninput(){return n},get value(){return x7.auditSearch},set value(e){x7.auditSearch=e}})}O(i);var o=L(i,2),s=F(o),c=F(s),l=F(c,!0);O(c),c.value=c.__value=``;var u=L(c);u.value=u.__value=`GET`;var d=L(u);d.value=d.__value=`POST`;var f=L(d);f.value=f.__value=`PUT`;var p=L(f);p.value=p.__value=`PATCH`;var m=L(p);m.value=m.__value=`DELETE`,O(s);var h=L(s,2),g=F(h),_=F(g,!0);O(g),g.value=g.__value=``;var v=L(g);v.value=v.__value=`200`;var y=L(v);y.value=y.__value=`201`;var b=L(y);b.value=b.__value=`400`;var x=L(b);x.value=x.__value=`401`;var S=L(x);S.value=S.__value=`403`;var C=L(S);C.value=C.__value=`404`;var w=L(C);w.value=w.__value=`429`;var T=L(w);T.value=T.__value=`500`;var E=L(T);E.value=E.__value=`502`;var D=L(E);D.value=D.__value=`503`;var ee=L(D);ee.value=ee.__value=`504`,O(h);var te=L(h,2),ne=F(te),re=F(ne,!0);O(ne),ne.value=ne.__value=``;var ie=L(ne),ae=F(ie,!0);O(ie),ie.value=ie.__value=`true`;var oe=L(ie),se=F(oe,!0);O(oe),oe.value=oe.__value=`false`,O(te);var ce=L(te,2),le=F(ce);J(le,{get icon(){return xX},class:`table-icon-svg`});var ue=L(le,2),de=F(ue,!0);O(ue),O(ce),O(o),O(r),R((e,t,n,r,i,a,o,c,u)=>{q(s,`aria-label`,e),U(l,t),q(h,`aria-label`,n),U(_,r),q(te,`aria-label`,i),U(re,a),U(ae,o),U(se,c),U(de,u)},[()=>lse(),()=>fse(),()=>hse(),()=>vse(),()=>xse(),()=>wse(),()=>Dse(),()=>Ase(),()=>toe()]),B(`change`,s,()=>x7.fetchAuditLog(!0)),gi(s,()=>x7.auditMethod,e=>x7.auditMethod=e),B(`change`,h,()=>x7.fetchAuditLog(!0)),gi(h,()=>x7.auditStatusCode,e=>x7.auditStatusCode=e),B(`change`,te,()=>x7.fetchAuditLog(!0)),gi(te,()=>x7.auditStream,e=>x7.auditStream=e),B(`click`,ce,()=>x7.clearAuditFilters()),H(e,r),A()}br([`change`,`click`]);var S7=V(` `),GVe=V(` `),KVe=V(` `);function qVe(e,t){k(t,!0);let n=j(()=>v3.auditLivePauseReason()),r=j(()=>v3.liveLogsStreaming&&!z(n));var i=Dr(),a=I(i),o=e=>{var t=KVe(),i=F(t);let a;var o=L(i,2),s=e=>{var t=S7(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Nse()]),H(e,t)},c=e=>{var t=S7(),r=F(t,!0);O(t),R(e=>U(r,e),[()=>lPe(z(n))]),H(e,t)},l=e=>{var t=GVe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Ise()]),H(e,t)};W(o,e=>{v3.liveLogsStreaming?z(n)?e(c,1):e(l,-1):e(s)}),O(t),R(()=>a=K(i,1,`live-dot svelte-tve6yv`,null,a,{"is-streaming":z(r)})),H(e,t)},s=j(()=>QX.liveLogsVisible());W(a,e=>{z(s)&&e(o)}),H(e,i),A()}var JVe=V(` `),YVe=V(``);function XVe(e,t){k(t,!0);let n=j(()=>[{key:`provider`,text:yZ(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: `+xZ(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=YVe(),i=F(r),a=F(i,!0);O(i);var o=L(i,2);G(o,21,()=>z(n),e=>e.key,(e,t)=>{var n=JVe(),r=F(n,!0);O(n),R(()=>{K(n,1,ci([`provider-badge`,z(t).class,{mono:z(t).mono}]),`svelte-hyopt0`),U(r,z(t).text)}),H(e,n)}),O(o),O(r),R(e=>U(a,e),[()=>uce()]),H(e,r),A()}var ZVe=V(``),QVe=V(` `);function $Ve(e,t){k(t,!0);let n=j(()=>bVe(t.entry)),r=j(()=>z(n).length>0?SVe(t.entry):``),i=j(()=>z(n).length>0?xVe(t.entry):``);var a=Dr(),o=I(a),s=e=>{var a=QVe(),o=F(a);G(o,21,()=>z(n),e=>t.entry.id+`-pip-`+e.seq,(e,t)=>{var n=ZVe();let r;R(e=>{r=K(n,1,`audit-attempt-pip svelte-1eu22xn`,null,r,{"audit-attempt-success":!!(z(t)&&z(t).success),"audit-attempt-error":!(z(t)&&z(t).success)}),q(n,`title`,e)},[()=>CVe(z(t))]),H(e,n)}),O(o);var s=L(o,2),c=F(s,!0);O(s),O(a),R(()=>{q(a,`title`,z(r)),q(a,`aria-label`,z(r)),U(c,z(i))}),H(e,a)};W(o,e=>{z(n).length>0&&e(s)}),H(e,a),A()}var eHe=new Set([`instructions`,`messages`,`input`,`previous_response_id`,`choices`,`output`]);function tHe(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 qde();if(t===`audio`||t===`input_audio`||t===`output_audio`)return Xde();if(t===`file`||t===`input_file`||t===`output_file`){let t=String(e.filename||e.name||``).trim();return t?nfe({name:t}):$de()}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:tHe(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 nHe(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 rHe(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 iHe(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(iHe)}}function aHe(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 oHe(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 sHe(e){return w7(e)}function cHe(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 lHe(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 uHe(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 dHe(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 fHe(e){return e?!!j7(e):!1}function pHe(e){let t=String(e||``).trim().split(`?`)[0].replace(/\/+$/,``).toLowerCase();return t.startsWith(`/v1/`)?t.slice(3):t}function j7(e){switch(pHe(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 mHe(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 hHe(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 gHe=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 _He(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]`||gHe.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 vHe(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 yHe(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 bHe(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 xHe(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 SHe(e,t){let n=F7(e);return!!n&&String(n.id||``)===String(t||``)}function CHe(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 wHe(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)||uHe(n.output));return!!(r||i)}function THe(e){return!e||dHe(e.path)?!1:fHe(e.path)||wHe(e)}function L7(e){let t=0,n=!1,r=!1,i=String(e||``);for(let e=0;e0&&a+1`,`>`).replaceAll(`"`,`"`).replaceAll(`'`,`'`)}function OHe(e){return!!(e&&typeof e==`object`&&e.__audio__===!0)}function kHe(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(jHe(e[t]))+`
`);return t.length?``:``}function NHe(e){let t=AHe(e.content_type),n=R7(t+` · `+kHe(e.bytes)),r=MHe(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?Ule():Kle();return`
`+n+`
`+R7(i)+`
`+r+`
`}function z7(e){try{return JSON.stringify(String(e)).slice(1,-1)}catch{return``}}function PHe(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 FHe(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=PHe(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 IHe(e){let t=String(e||``).toLowerCase();return t===`system`||t===`developer`?{role:`system`,label:kde(),className:`role-system`}:t===`assistant`?{role:`assistant`,label:Mde(),className:`role-assistant`}:t===`error`?{role:`error`,label:Fde(),className:`role-error`}:t===`function_call`?{role:`function_call`,label:Rde(),className:`role-function-call`}:t===`function_result`?{role:`function_result`,label:Vde(),className:`role-function-result`}:{role:`user`,label:Wde(),className:`role-user`}}function LHe(e,t,{timestamp:n,entryID:r,isAnchor:i,isAfterAnchor:a,index:o,toolCalls:s,functionName:c,functionCallID:l,promptCache:u,toolPromptCache:d}){let f=IHe(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 RHe(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 zHe(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 BHe(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;zHe(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)=>rHe(e,t),b=e=>k7(e),x=(t,n,{toolCalls:r,functionName:i,functionCallID:a,promptCache:o,toolPromptCache:s}={})=>LHe(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}RHe(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))}))}}}):oHe(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=BHe(g),T=w!==null,E=P7(e),D=!!E&&a.has(E),ee=String(g&&g.previous_response_id||``).trim(),te=G7(g),ne=D||!!ee&&o.has(ee)||!!te&&s.has(te);if(m){let e=T&&l&&l.length>0&&l.every((e,t)=>w[t]===e);if(T&&!e&&!D||!T&&!ne)return}p&&T&&(l=[...w]);let re=String(e.id||``).trim();p&&(a.clear(),o.clear(),s.clear()),re&&(p||m)&&a.add(re),te&&s.add(te);let ie=0;for(;ie0;){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 ae=nHe(e);if(g&&ae!==null&&i.splice(0,i.length,...aHe(i,ae)),_&&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=sHe(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 oe=lHe(e);oe&&i.push(x(`error`,oe));let se=String(_&&_.id||``).trim();se&&o.add(se)}),{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 VHe(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 HHe=600*1e3,UHe=15*1e3,WHe=250,GHe=class{#e=M(!1);get conversationOpen(){return z(this.#e)}set conversationOpen(e){N(this.#e,e,!0)}#t=M(!1);get conversationLoading(){return z(this.#t)}set conversationLoading(e){N(this.#t,e,!0)}#n=M(``);get conversationError(){return z(this.#n)}set conversationError(e){N(this.#n,e,!0)}#r=M(``);get conversationAnchorID(){return z(this.#r)}set conversationAnchorID(e){N(this.#r,e,!0)}#i=M(P([]));get conversationEntryIDs(){return z(this.#i)}set conversationEntryIDs(e){N(this.#i,e,!0)}#a=M(``);get conversationSessionID(){return z(this.#a)}set conversationSessionID(e){N(this.#a,e,!0)}#o=M(!1);get conversationTruncated(){return z(this.#o)}set conversationTruncated(e){N(this.#o,e,!0)}#s=M(!1);get conversationFollowLatest(){return z(this.#s)}set conversationFollowLatest(e){N(this.#s,e,!0)}#c=M(``);get conversationOpenedFromID(){return z(this.#c)}set conversationOpenedFromID(e){N(this.#c,e,!0)}#l=M(``);get followUpText(){return z(this.#l)}set followUpText(e){N(this.#l,e,!0)}#u=M(!1);get followUpSending(){return z(this.#u)}set followUpSending(e){N(this.#u,e,!0)}#d=M(``);get followUpError(){return z(this.#d)}set followUpError(e){N(this.#d,e,!0)}followUpRequestID=``;followUpAbort=null;conversationRequestToken=0;conversationReturnFocusEl=null;bodyPointerStart=null;#f=M(null);get conversationDialogEl(){return z(this.#f)}set conversationDialogEl(e){N(this.#f,e,!0)}#p=M(null);get conversationCloseBtnEl(){return z(this.#p)}set conversationCloseBtnEl(e){N(this.#p,e,!0)}#m=M(null);get conversationThreadEl(){return z(this.#m)}set conversationThreadEl(e){N(this.#m,e,!0)}get conversationEntries(){return(this.conversationEntryIDs||[]).map(e=>v3.auditRecord(e)).filter(Boolean)}#h=j(()=>q7(this.conversationEntries,this.conversationAnchorID));get conversationView(){return z(this.#h)}set conversationView(e){N(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))],v3.pinAuditRecords(this.conversationEntryIDs)}canShowConversation(e){return THe(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 uZ(e)}renderBodyWithConversationHighlights(e,t,n){return FHe(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(v3.upsertAuditRecord(e,`conversation.live`));return}this.conversationLoading=!0,await this.fetchConversation(e.id,r,!0,!0)}_conversationEntryLivePending(e){return typeof v3.auditEntryLiveDetailPending==`function`&&v3.auditEntryLiveDetailPending(e)}_applyConversationView(){let e=this.conversationEntries,t=q7(e,this.conversationAnchorID);if(this.conversationFollowLatest){let n=xHe(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=yHe(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),CHe(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=m3(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 v3.liveAuditStateSettled!=`function`||!v3.liveAuditStateSettled(t._live_state)))}conversationLiveStatusText(){return(this.conversationMessages||[]).length>0?cde():Po()}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 YX(`/admin/audit/conversation?`+(`log_id=`+encodeURIComponent(e)+`&limit=120`),{label:`audit conversation`});if(t!==this.conversationRequestToken||i.stale)return;if(!i.ok){this.conversationError=dde();return}let a=i.data||{},o=a.anchor_id||e,s=Array.isArray(a.entries)?a.entries:[],c=v3.upsertAuditRecords(s,`conversation.hydrated`),l=I7(this.conversationEntryIDs,c);l.length>this.conversationEntryIDs.length&&this._setConversationEntryIDs(l),r&&(this.conversationFollowLatest=SHe(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=mde()}finally{t===this.conversationRequestToken&&(this.conversationLoading=!1)}}selectedConversationEntry(){return bHe(this.conversationEntries,this.conversationAnchorID)}followUpKind(){let e=this.selectedConversationEntry();return mHe(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=hHe(e,this.followUpText);if(!e||!t)return;let n=this.conversationAnchorID,r=qHe(),i=new AbortController,a=!1,o=setTimeout(()=>{a=!0,i.abort()},HHe);this.followUpSending=!0,this.followUpError=``,this.followUpRequestID=r,this.followUpAbort=i;try{let a=_He(e,n,r),o=await qX(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=_de();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 KHe(o),!v3.liveLogsStreaming&&this.conversationOpen){let e=++this.conversationRequestToken;await this._selectPersistedFollowUp(n,this.followUpRequestID,e,i.signal)}}catch(e){ZX(e)||i.signal.aborted?a&&this.conversationOpen&&(this.followUpError=bde()):(console.error(`Failed to send interaction follow-up:`,e),this.followUpError=Cde())}finally{clearTimeout(o),this.followUpAbort===i&&(this.followUpAbort=null,this.followUpSending=!1)}}async _selectPersistedFollowUp(e,t,n,r){let i=Date.now()+UHe;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 KHe(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 qHe(){return globalThis.crypto&&typeof globalThis.crypto.randomUUID==`function`?globalThis.crypto.randomUUID():`dashboard-`+Date.now().toString(36)+`-`+Math.random().toString(36).slice(2)}function JHe(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 GHe,Z7=0;hn(()=>{pn(()=>{let e=mPe(v3.auditRecordChanges,Z7);e.length!==0&&(Z7=Number(e[e.length-1].version||0),ar(()=>{e.forEach(e=>{if(!hPe(e))return;let t=v3.auditRecord(e.key);X7.handleAuditRecordChange(t,e.eventType)})}))})});var YHe=V(``),XHe=V(` `),ZHe=V(` `),QHe=V(``),$He=V(`
`);function eUe(e,t){k(t,!0);let n=Ri(t,`thread`,3,null),r=Ri(t,`expanded`,3,!1),i=Ri(t,`onactivate`,3,null),a=Ri(t,`hidePath`,3,!1),o=j(()=>WX.formatTimestamp(t.entry.timestamp)),s=j(()=>z(o)===`-`?z(o):z(o).slice(z(o).lastIndexOf(` `)+1)),c=j(()=>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(){return Jse({count:Number(n().count||1)})}function f(e){if(e.stopPropagation(),e.preventDefault(),z(c)){X7.closeConversation();return}X7.openConversation(t.entry,e.currentTarget)}var p=$He();let m;var h=F(p),g=F(h),_=e=>{var t=YHe(),r=F(t);{let e=j(()=>n().expanded?$Y:eX);J(r,{get icon(){return z(e)},class:`audit-thread-expander-svg`})}var i=L(r,2),a=F(i,!0);O(i),O(t),R((e,r)=>{q(t,`aria-expanded`,n().expanded),q(t,`title`,e),q(t,`aria-label`,r),U(a,n().count)},[()=>d(),()=>d()+`, `+(n().expanded?soe():ioe())]),B(`click`,t,u),H(e,t)};W(g,e=>{n()&&e(_)});var v=L(g,2),y=F(v),b=F(y,!0);O(y);var x=L(y,2),S=F(x,!0);O(x),O(v);var C=L(v,2),w=e=>{var n=XHe(),r=F(n,!0);O(n),R(e=>U(r,e),[()=>JTe(t.entry)]),H(e,n)};W(C,e=>{(t.entry.requested_model||t.entry.model)&&e(w)});var T=L(C,2),E=e=>{var n=ZHe(),r=F(n,!0);O(n),R(()=>U(r,t.entry.path||`-`)),H(e,n)};W(T,e=>{a()||e(E)}),O(h);var D=L(h,2),ee=F(D);$Ve(ee,{get entry(){return t.entry}});var te=L(ee,2),ne=F(te),re=F(ne,!0);O(ne);var ie=L(ne,2),ae=F(ie,!0);O(ie),O(te);var oe=L(te,2),se=F(oe,!0);O(oe);var ce=L(oe,2),le=e=>{var t=QHe();let n;var r=F(t);{let e=j(()=>z(c)?Owe:eX);J(r,{get icon(){return z(e)},class:`audit-conversation-trigger-svg`})}O(t),R((e,r)=>{n=K(t,1,`audit-conversation-trigger svelte-17mysgz`,null,n,{"audit-conversation-trigger-active":z(c)}),q(t,`title`,e),q(t,`aria-label`,r),q(t,`aria-pressed`,z(c))},[()=>z(c)?Mo():jo(),()=>z(c)?Mo():jo()]),B(`click`,t,f),H(e,t)},ue=j(()=>X7.canShowConversation(t.entry));W(ce,e=>{z(ue)&&e(le)}),O(D),O(p),R((e,n,i,a,c)=>{m=K(p,1,`audit-entry-summary svelte-17mysgz`,null,m,e),q(p,`aria-expanded`,r()),K(v,1,`audit-status-badge audit-request-badge ${n??``}`,`svelte-17mysgz`),q(v,`title`,i),q(v,`aria-label`,(t.entry.status_code||`-`)+` `+(t.entry.method||`-`)),U(b,t.entry.status_code||`-`),U(S,t.entry.method||`-`),q(te,`title`,a),q(te,`aria-label`,z(o)),U(re,z(o)),U(ae,z(s)),U(se,c)},[()=>({"audit-entry-summary-live-in-progress":d7(t.entry),"audit-entry-summary-has-interactions":X7.canShowConversation(t.entry)}),()=>u7(t.entry.status_code),()=>Zse({status:t.entry.status_code||`-`,method:t.entry.method||`-`}),()=>vZ(t.entry.timestamp),()=>gVe(t.entry.duration_ns)]),B(`click`,p,l),H(e,p),A()}br([`click`]);var tUe=V(``);function Q7(e,t){k(t,!0);let n=Ri(t,`label`,3,`Copy`),r=Ri(t,`copiedLabel`,3,`Copied`),i=Ri(t,`errorLabel`,3,``),a=Ri(t,`class`,3,`btn`),o=j(()=>t.state.error&&i()?i():t.state.copied?r():n());var s=tUe();let c;var l=F(s),u=e=>{J(e,{get icon(){return tX},width:`14`,height:`14`,"stroke-width":`2.5`})},d=e=>{J(e,{get icon(){return rX},width:`14`,height:`14`})};W(l,e=>{t.state.copied?e(u):e(d,-1)});var f=L(l,2),p=F(f,!0);O(f),O(s),R(()=>{c=K(s,1,ci([`copy-feedback-btn`,a()]),null,c,{"copy-feedback-btn-copied":t.state.copied}),U(p,z(o))}),B(`click`,s,e=>{e.preventDefault(),t.onclick?.(e)}),H(e,s),A()}br([`click`]);var nUe=V(`
 
`),rUe=V(`
 
`),iUe=V(` `),aUe=V(` `),oUe=V(`
`),sUe=V(`

`),cUe=V(`

`),lUe=V(`

`),uUe=V(`
`);function dUe(e,t){k(t,!0);let n=E5({logPrefix:`Failed to copy audit payload:`}),r=E5({logPrefix:`Failed to copy audit payload:`}),i=j(()=>t.pane&&t.pane.showHeaders?uZ(t.pane.headers):``),a=j(()=>!t.pane||!t.pane.showBody?``:OHe(t.pane.body)?NHe(t.pane.body):X7.renderBodyWithConversationHighlights(t.pane.entry,t.pane.body,{promptCacheHighlight:t.pane.promptCacheHighlight})),o=j(()=>!!(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=uUe();let l;var u=F(c),d=e=>{var n=nUe(),r=F(n),i=F(r,!0);O(r);var a=L(r,2);let c;var l=F(a,!0);O(a),O(n),R(e=>{U(i,e),c=K(a,1,`audit-json audit-pane-error-message svelte-1h5puht`,null,c,{"audit-pane-clickable-preview":z(o)}),q(a,`role`,z(o)?`button`:null),q(a,`tabindex`,z(o)?0:null),U(l,t.pane.errorMessage)},[()=>pce()]),B(`mousedown`,a,e=>X7.startBodyInteraction(e)),B(`keydown`,a,s),B(`click`,a,e=>X7.handleErrorConversationClick(e,t.pane.entry)),H(e,n)};W(u,e=>{t.pane.showErrorMessage&&e(d)});var f=L(u,2),p=e=>{var n=rUe(),a=F(n),o=F(a),s=F(o,!0);O(o);var c=L(o,2);{let e=j(()=>yce()),n=j(()=>ko());Q7(c,{get state(){return r},get label(){return z(e)},get errorLabel(){return z(n)},class:`audit-copy-btn`,onclick:()=>r.copy(t.pane.copyHeaders,uZ)})}O(a);var l=L(a,2),u=F(l,!0);O(l),O(n),R(e=>{U(s,e),U(u,z(i))},[()=>t.pane.headersTitle||gce()]),H(e,n)};W(f,e=>{t.pane.showHeaders&&e(p)});var m=L(f,2),h=e=>{var r=oUe(),i=F(r),o=F(i),s=F(o),c=F(s,!0);O(s);var l=L(s,2),u=e=>{var n=iUe(),r=F(n,!0);O(n),R(()=>U(r,t.pane.bodyCacheRatioLabel)),H(e,n)};W(l,e=>{t.pane.bodyCacheRatioLabel&&e(u)});var d=L(l,2),f=e=>{var t=aUe(),n=L(F(t),2),r=F(n,!0);O(n),O(t),R(e=>U(r,e),[()=>Tce()]),H(e,t)};W(d,e=>{t.pane.streaming&&e(f)}),O(o);var p=L(o,2);{let e=j(()=>Oce()),r=j(()=>ko());Q7(p,{get state(){return n},get label(){return z(e)},get errorLabel(){return z(r)},class:`audit-copy-btn`,onclick:()=>n.copy(t.pane.copyBody,uZ)})}O(i);var m=L(i,2);Wr(m,()=>z(a),!0),O(m),O(r),R(e=>U(c,e),[()=>Sce()]),B(`mousedown`,m,e=>X7.startBodyInteraction(e)),B(`click`,m,e=>X7.handleBodyConversationClick(e,t.pane.entry)),H(e,r)};W(m,e=>{t.pane.showBody&&e(h)});var g=L(m,2),_=e=>{var n=sUe(),r=F(n,!0);O(n),R(()=>U(r,t.pane.emptyMessage)),H(e,n)};W(g,e=>{t.pane.showEmpty&&e(_)});var v=L(g,2),y=e=>{var n=cUe(),r=L(F(n),2),i=F(r,!0);O(r),O(n),R(()=>U(i,t.pane.pendingMessage)),H(e,n)};W(v,e=>{t.pane.showPending&&e(y)});var b=L(v,2),x=e=>{var n=lUe(),r=F(n,!0);O(n),R(()=>U(r,t.pane.tooLargeMessage)),H(e,n)};W(b,e=>{t.pane.showTooLarge&&e(x)}),O(c),R(()=>l=K(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)})),H(e,c),A()}br([`mousedown`,`keydown`,`click`]);var fUe=V(` `),$7=V(` `),pUe=V(` `),mUe=V(` `),hUe=V(``),gUe=V(`
`),_Ue=V(`
`);function vUe(e,t){k(t,!0);let n=Ri(t,`panes`,19,()=>[]),r=M(null),i=j(()=>BVe(z(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=VVe(e.key,i,t);a!=null&&(e.preventDefault(),((e.currentTarget?.closest?.(`.audit-pane-tablist`))?.querySelectorAll(`.audit-pane-tab`)[i.indexOf(a)])?.focus?.(),N(r,a,!0))}var c=_Ue(),l=F(c);G(l,21,n,e=>e.id,(e,t)=>{var n=hUe();let c;var l=F(n),u=F(l),d=e=>{J(e,{get icon(){return Swe}})},f=e=>{J(e,{get icon(){return xwe}})};W(u,e=>{z(t).pane.direction===`request`?e(d):z(t).pane.direction===`response`&&e(f,1)}),O(l);var p=L(l,2),m=F(p,!0);O(p);var h=L(p,2),g=e=>{var n=fUe(),r=F(n);O(n),R(()=>U(r,`#${z(t).pane.seq??``}`)),H(e,n)};W(h,e=>{z(t).pane.seq&&e(g)});var _=L(h,2),v=e=>{var n=$7(),r=F(n,!0);O(n),R(()=>{K(n,1,`provider-badge audit-pane-kind audit-pane-kind-${z(t).pane.kind??``}`,`svelte-1bc5vi5`),U(r,z(t).pane.kind)}),H(e,n)};W(_,e=>{z(t).pane.kind&&e(v)});var y=L(_,2);G(y,17,()=>z(t).pane.noChangeSteps||[],e=>e.id,(e,t)=>{var n=pUe(),r=F(n,!0);O(n),R(()=>{q(n,`title`,z(t).title),U(r,z(t).label)}),H(e,n)});var b=L(y,2),x=e=>{var n=mUe(),r=F(n,!0);O(n),R(e=>{q(n,`title`,e),U(r,z(t).pane.savingsLabel)},[()=>Pce()]),H(e,n)};W(b,e=>{z(t).pane.savingsLabel&&e(x)});var S=L(b,2),C=e=>{var n=$7(),r=F(n,!0);O(n),R(e=>{K(n,1,`audit-status-badge ${e??``}`,`svelte-1bc5vi5`),U(r,z(t).pane.statusCode)},[()=>u7(z(t).pane.statusCode)]),H(e,n)};W(S,e=>{z(t).pane.statusCode&&e(C)}),O(n),R((e,r)=>{c=K(n,1,`audit-pane-tab svelte-1bc5vi5`,null,c,{"audit-pane-tab-active":z(i)===z(t).id}),q(n,`aria-selected`,z(i)===z(t).id),q(n,`id`,e),q(n,`aria-controls`,r),q(n,`tabindex`,z(i)===z(t).id?0:-1),K(l,1,ci([`audit-pane-icon`,z(t).pane.direction&&`audit-pane-icon-${z(t).pane.direction}`]),`svelte-1bc5vi5`),U(m,z(t).pane.title)},[()=>a(z(t).id),()=>o(z(t).id)]),B(`keydown`,n,e=>s(e,z(t).id)),B(`click`,n,()=>N(r,z(t).id,!0)),H(e,n)}),O(l),G(L(l,2),17,n,e=>e.id,(e,t)=>{var n=gUe();let r;dUe(F(n),{get pane(){return z(t).pane}}),O(n),R((e,a)=>{q(n,`id`,e),q(n,`aria-labelledby`,a),r=pi(n,``,r,{display:z(i)===z(t).id?null:`none`})},[()=>o(z(t).id),()=>a(z(t).id)]),H(e,n)}),O(c),R(e=>q(l,`aria-label`,e),[()=>jce()]),H(e,c),A()}br([`keydown`,`click`]);var yUe=V(`
`),bUe=V(`
`);function e9(e,t){k(t,!0);let n=Ri(t,`thread`,3,null),r=Ri(t,`hidePath`,3,!1),i=j(()=>x7.isAuditEntryExpanded(t.entry)),a=j(()=>X7.conversationOpen&&String(X7.conversationAnchorID||``)===String(t.entry.id||``)),o=j(()=>z(i)?y7(t.entry,cHe):[]),s=j(()=>z(i)?xBe(t.entry,J5.auditEntryWorkflow(t.entry),J5.workflowFeatureCaps()):null);function c(){x7.toggleAuditEntryExpanded(t.entry)}var l=bUe();let u;var d=F(l);eUe(d,{get entry(){return t.entry},get thread(){return n()},get expanded(){return z(i)},get hidePath(){return r()},onactivate:c});var f=L(d,2),p=e=>{var n=yUe(),r=F(n),i=e=>{A5(e,{get chart(){return z(s)}})};W(r,e=>{z(s)&&e(i)});var a=L(r,2);vUe(a,{get entry(){return t.entry},get panes(){return z(o)}}),XVe(L(a,2),{get entry(){return t.entry}}),O(n),ii(3,n,()=>aZ,()=>({y:-6,duration:q5(150)})),H(e,n)};W(f,e=>{z(i)&&e(p)}),O(l),R(()=>u=K(l,1,`audit-entry svelte-cmjgwr`,null,u,{"audit-entry-interactions-open":z(a)})),H(e,l),A()}var xUe=V(`
`),SUe=V(`
`),CUe=V(`

`),wUe=V(`
`),TUe=V(`
`);function EUe(e,t){k(t,!0);let n=j(()=>n7(t.entry)),r=j(()=>x7.isThreadExpanded(z(n))),i=j(()=>x7.threadChildren(z(n))),a=j(()=>z(i)&&!z(i).loading&&Number(z(i).total||0)>z(i).entries.length+1);var o=Dr(),s=I(o),c=e=>{e9(e,{get entry(){return t.entry}})},l=j(()=>!cVe(t.entry)),u=e=>{var n=TUe(),o=F(n);{let e=j(()=>({count:r7(t.entry),expanded:z(r),ontoggle:()=>x7.toggleThread(t.entry)}));e9(o,{get entry(){return t.entry},get thread(){return z(e)}})}var s=L(o,2),c=e=>{var n=wUe(),r=F(n),o=e=>{var t=xUe(),n=F(t);{let e=j(()=>ice());a3(n,{size:14,get label(){return z(e)}})}O(t),H(e,t)};W(r,e=>{z(i)&&z(i).loading&&e(o)});var s=L(r,2);G(s,17,()=>z(i)&&z(i).entries||[],e=>e.id,(e,n)=>{var r=SUe(),i=F(r);{let e=j(()=>z(n).path===t.entry.path);e9(i,{get entry(){return z(n)},get hidePath(){return z(e)}})}O(r),H(e,r)});var c=L(s,2),l=e=>{var t=CUe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>sce({shown:z(i).entries.length+1,total:z(i).total})]),H(e,t)};W(c,e=>{z(a)&&e(l)}),O(n),ii(3,n,()=>oZ,()=>({duration:q5(150)})),H(e,n)};W(s,e=>{z(r)&&e(c)}),O(n),H(e,n)};W(s,e=>{z(l)?e(c):e(u,-1)}),H(e,o),A()}var DUe=V(`

.

`),OUe=V(`
LOGGING_ENABLED=true
`),kUe=V(`

`),AUe=V(`
`),jUe=V(`
`),MUe=V(`
`),NUe=V(`
`),PUe=V(`
`);function FUe(e,t){k(t,!0);let n=j(()=>QX.config&&QX.config.LOGGING_RETENTION_DAYS);pn(()=>{if(X.refreshTick,TX.page===`audit-logs`)return ar(()=>r())});function r(){let e=!1;return(async()=>{try{await QX.ensureLoaded()}finally{await x7.fetchAuditLog(!0),!e&&QX.liveLogsVisible()&&v3.ensureLiveLogs()}})(),()=>{e=!0,v3.stopLiveLogs()}}var i=PUe(),a=F(i),o=F(a),s=F(o),c=F(s,!0);O(s);var l=L(s,2),u=e=>{{let t=e=>{var t=DUe(),r=F(t,!0),i=L(r),a=F(i,!0);O(i),Be(),O(t),R((e,t)=>{U(r,e),U(a,t)},[()=>e7(z(n)),()=>t7(z(n))]),H(e,t)},r=j(()=>xoe()),i=j(()=>woe());l3(e,{copyId:`audit-retention-help-copy`,get label(){return z(r)},get text(){return z(i)},title:t,$$slots:{title:!0}})}},d=j(()=>aVe(z(n)));W(l,e=>{z(d)&&e(u)}),O(o),O(a);var f=L(a,2);LZ(F(f),{onchange:()=>x7.fetchAuditLog(!0)}),O(f);var p=L(f,2);MZ(p,{});var m=L(p,2),h=e=>{var t=OUe(),n=F(t,!0),r=L(n,2,!0);O(t),R((e,t)=>{U(n,e),U(r,t)},[()=>zoe(),()=>Hoe()]),H(e,t)},g=j(()=>QX.loaded&&!QX.auditVisible()&&!X.needsAuth);W(m,e=>{z(g)&&e(h)});var _=L(m,2),v=F(_);WVe(v,{});var y=L(v,2),b=F(y),x=F(b),S=e=>{var t=kUe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>x7.auditGroupSessions?Goe({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total}):Joe({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total})]),H(e,t)};W(x,e=>{x7.auditLog.total>0&&e(S)});var C=L(x,2),w=F(C);Ci(w);var T=L(w,2),E=F(T,!0);O(T),O(C),O(b),qVe(L(b,2),{}),O(y);var D=L(y,2),ee=e=>{var t=AUe(),n=F(t);{let e=j(()=>ese());a3(n,{size:18,get label(){return z(e)}})}O(t),H(e,t)},te=e=>{var t=MUe();G(t,29,()=>x7.auditLog.entries,e=>e.id,(e,t)=>{var n=jUe(),r=F(n),i=e=>{EUe(e,{get entry(){return z(t)}})},a=e=>{e9(e,{get entry(){return z(t)}})};W(r,e=>{x7.auditGroupSessions?e(i):e(a,-1)}),O(n),ri(n,()=>XBe,()=>({duration:q5(150)})),ii(1,n,()=>$Be,()=>({live:z(t)._live})),H(e,n)}),O(t),H(e,t)};W(D,e=>{x7.loading&&x7.auditLog.entries.length===0?e(ee):x7.auditLog.entries.length>0&&e(te,1)});var ne=L(D,2),re=e=>{var t=NUe();o3(F(t),{}),O(t),H(e,t)};W(ne,e=>{x7.auditLog.entries.length===0&&!x7.loading&&!X.needsAuth&&e(re)}),W3(L(ne,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()}),O(_),O(i),R((e,t)=>{U(c,e),Ti(w,x7.auditGroupSessions),U(E,t)},[()=>voe(),()=>Zoe()]),B(`change`,w,()=>x7.toggleAuditGroupSessions()),H(e,i),A()}br([`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 IUe(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 LUe(e,t){let n=r9(e,t);return n&&n.label?n.label:t||WJ()}function RUe(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 zUe(e,t,n){return l9(e,t).includes(String(n||``).trim())}function BUe(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 VUe(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=M(P([]));get guardrails(){return z(this.#e)}set guardrails(e){N(this.#e,e,!0)}#t=M(P([]));get types(){return z(this.#t)}set types(e){N(this.#t,e,!0)}#n=M(!0);get available(){return z(this.#n)}set available(e){N(this.#n,e,!0)}#r=M(!1);get loading(){return z(this.#r)}set loading(e){N(this.#r,e,!0)}#i=M(!1);get typesLoading(){return z(this.#i)}set typesLoading(e){N(this.#i,e,!0)}#a=M(``);get error(){return z(this.#a)}set error(e){N(this.#a,e,!0)}#o=M(``);get filter(){return z(this.#o)}set filter(e){N(this.#o,e,!0)}#s=M(!1);get formOpen(){return z(this.#s)}set formOpen(e){N(this.#s,e,!0)}#c=M(!1);get formSubmitting(){return z(this.#c)}set formSubmitting(e){N(this.#c,e,!0)}#l=M(``);get deletingName(){return z(this.#l)}set deletingName(e){N(this.#l,e,!0)}#u=M(`create`);get formMode(){return z(this.#u)}set formMode(e){N(this.#u,e,!0)}#d=M(``);get formOriginalName(){return z(this.#d)}set formOriginalName(e){N(this.#d,e,!0)}#f=M(P({name:``,type:``,description:``,user_path:``,config:{}}));get form(){return z(this.#f)}set form(e){N(this.#f,e,!0)}get filtered(){return IUe(this.guardrails,this.filter)}typeLabel(e){return LUe(this.types,e)}typeFields(e){return RUe(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 zUe(this.form&&this.form.config,e,t)}toggleArrayFieldValue(e,t,n){this.form={...this.form,config:BUe(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 Y3(`/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 Y3(`/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=qJ();return}if(!t){this.error=XJ();return}this.error=``,this.formSubmitting=!0;let n=VUe(this.form);try{let t=await X3(`/admin/guardrails`,`PUT`,n,{label:`save guardrail`,errorFallback:$J(),unavailableMessage:$D()});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}cZ.success(nY({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(mY({name:t}))){this.deletingName=t;try{let e=await X3(`/admin/guardrails`,`DELETE`,{name:t},{label:`delete guardrail`,errorFallback:_Y(),unavailableMessage:$D()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,cZ.error(e.error);return}if(e.status===`error`){cZ.error(e.error);return}cZ.success(zme({name:t})),this.formOpen&&this.formOriginalName===t&&this.closeForm(),this.fetchGuardrails()}finally{this.deletingName=``}}}},HUe=V(`
`),UUe=V(`

`),WUe=V(`
`),GUe=V(`
`),KUe=V(`
`),qUe=V(`

`),JUe=V(`

`);function YUe(e,t){k(t,!0);var n=JUe(),r=F(n),i=F(r),a=F(i),o=F(a,!0);O(a);var s=L(a,2),c=F(s,!0);O(s),O(i);var l=L(i,2),u=F(l);J(u,{get icon(){return dX},class:`form-action-icon`});var d=L(u,2),f=F(d,!0);O(d),O(l),O(r);var p=L(r,2),m=e=>{var t=HUe(),n=F(t),r=F(n);{let e=j(()=>aO()),t=j(()=>cO());B3(r,{id:`guardrail-filter`,get placeholder(){return z(e)},get label(){return z(t)},get value(){return d9.filter},set value(e){d9.filter=e}})}O(n),O(t),H(e,t)};W(p,e=>{d9.available&&e(m)});var h=L(p,2),g=e=>{var t=UUe(),n=F(t);{let e=j(()=>VO());a3(n,{size:16,get label(){return z(e)}})}var r=L(n);O(t),R(e=>U(r,` ${e??``}`),[()=>VO()]),H(e,t)};W(h,e=>{d9.loading&&d9.filtered.length===0&&e(g)});var _=L(h,2),v=e=>{var t=KUe(),n=F(t),r=F(n),i=F(r),a=F(i),o=F(a,!0);O(a);var s=L(a),c=F(s,!0);O(s);var l=L(s),u=F(l,!0);O(l);var d=L(l),f=F(d,!0);O(d);var p=L(d),m=F(p,!0);O(p),O(i),O(r);var h=L(r);G(h,21,()=>d9.filtered,e=>e.name,(e,t)=>{var n=GUe(),r=F(n),i=F(r,!0);O(r);var a=L(r),o=F(a),s=F(o,!0);O(o),O(a);var c=L(a),l=F(c,!0);O(c);var u=L(c),d=F(u),f=F(d,!0);O(d);var p=L(d,2),m=e=>{var n=WUe(),r=F(n,!0);O(n),R(()=>U(r,z(t).description)),H(e,n)};W(p,e=>{z(t).description&&e(m)}),O(u);var h=L(u),g=F(h),_=F(g);{let e=j(()=>aY({name:z(t).name}));J3(_,{get label(){return z(e)},class:`table-icon-btn`,onclick:()=>d9.openEdit(z(t)),children:(e,t)=>{J(e,{get icon(){return uX},class:`table-icon-svg`})},$$slots:{default:!0}})}var v=L(_,2);{let e=j(()=>d9.deletingName===z(t).name?dY({name:z(t).name}):cY({name:z(t).name})),n=j(()=>d9.deletingName===z(t).name);J3(v,{get label(){return z(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>d9.deleteGuardrail(z(t)),get disabled(){return z(n)},children:(e,t)=>{J(e,{get icon(){return xX},class:`table-icon-svg`})},$$slots:{default:!0}})}O(g),O(h),O(n),R((e,n)=>{U(i,z(t).name),U(s,e),U(l,z(t).user_path||`—`),U(f,n)},[()=>d9.typeLabel(z(t).type),()=>z(t).summary||z(t).description||WO()]),H(e,n)}),O(h),O(n),O(t),R((e,t,n,r,i)=>{U(o,e),U(c,t),U(u,n),U(f,r),U(m,i)},[()=>dO(),()=>mO(),()=>_O(),()=>bO(),()=>CO()]),H(e,t)};W(_,e=>{d9.filtered.length>0&&e(v)});var y=L(_,2),b=e=>{var t=qUe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>EO()]),H(e,t)};W(y,e=>{d9.filtered.length===0&&!d9.loading&&d9.available&&!d9.error&&!X.authError&&e(b)}),O(n),R((e,t,n)=>{U(o,e),U(c,t),l.disabled=d9.typesLoading||d9.formSubmitting||!d9.available,U(f,n)},[()=>WD(),()=>RO(),()=>nO()]),B(`click`,l,()=>d9.openCreate()),H(e,n),A()}br([`click`]);var XUe=V(`

`),ZUe=V(``),f9=V(``),QUe=V(``),$Ue=V(``),eWe=V(``),tWe=V(``),nWe=V(``),rWe=V(``),iWe=V(``),aWe=V(`
`),oWe=V(``),sWe=V(` `),cWe=V(`
`),lWe=V(`
`);function uWe(e,t){k(t,!0);let n=j(()=>d9.formMode===`edit`);{let t=e=>{var t=XUe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Ej()]),H(e,t)},r=j(()=>z(n)?_j():nO()),i=j(()=>bj()),a=j(()=>Cj());x6(e,{get open(){return d9.formOpen},get title(){return z(r)},get ariaLabel(){return z(i)},get error(){return d9.error},get submitting(){return d9.formSubmitting},get submitLabel(){return z(a)},dialogClass:`settings-guardrails-editor guardrails-editor-wide`,onclose:()=>d9.closeForm(),onsubmit:()=>d9.submitForm(),headerHint:t,children:(e,t)=>{var r=lWe(),i=F(r);{let e=j(()=>dO());S6(i,{id:`guardrail-name`,get label(){return z(e)},children:(e,t)=>{var r=ZUe();Ci(r),R(()=>{r.disabled=z(n),q(r,`data-modal-autofocus`,!z(n)||void 0)}),Ai(r,()=>d9.form.name,e=>d9.form.name=e),H(e,r)},$$slots:{default:!0}})}var a=L(i,2);{let e=j(()=>mO());S6(a,{id:`guardrail-type`,get label(){return z(e)},children:(e,t)=>{var r=QUe();G(r,21,()=>d9.types,e=>e.type,(e,t)=>{var n=f9(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).type)&&(n.value=(n.__value=z(t).type)??``)}),H(e,n)}),O(r);var i;hi(r),R(()=>{r.disabled=z(n),i!==(i=d9.form.type)&&(r.value=(r.__value=d9.form.type)??``,mi(r,d9.form.type))}),B(`change`,r,e=>d9.changeType(e.currentTarget.value)),H(e,r)},$$slots:{default:!0}})}var o=L(a,2);{let e=j(()=>kj());S6(o,{id:`guardrail-description`,get label(){return z(e)},children:(e,t)=>{var r=$Ue();Ci(r),R(e=>{q(r,`placeholder`,e),q(r,`data-modal-autofocus`,z(n)?!0:void 0)},[()=>Mj()]),Ai(r,()=>d9.form.description,e=>d9.form.description=e),H(e,r)},$$slots:{default:!0}})}var s=L(o,2),c=F(s);{let e=e=>{var t=eWe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>_O()]),H(e,t)},t=j(()=>Fj()),n=j(()=>Rj());l3(c,{copyId:`guardrail-user-path-help-copy`,get label(){return z(t)},get text(){return z(n)},title:e,$$slots:{title:!0}})}var l=L(c,2);Ci(l),O(s),G(L(s,2),17,()=>d9.typeFields(d9.form.type),e=>e.key,(e,t)=>{var n=Dr(),r=I(n),i=e=>{var n=aWe(),r=F(n);{let e=e=>{var n=tWe(),r=F(n,!0);O(n),R(()=>{q(n,`for`,`guardrail-field-`+z(t).key),U(r,z(t).label)}),H(e,n)},n=j(()=>`guardrail-field-help-`+z(t).key),i=j(()=>z(t).label+` help`),a=j(()=>z(t).help||``);l3(r,{get copyId(){return z(n)},get label(){return z(i)},get text(){return z(a)},title:e,$$slots:{title:!0}})}var i=L(r,2),a=e=>{var n=nWe();G(n,21,()=>z(t).options||[],e=>e.value,(e,t)=>{var n=f9(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(n);var r;hi(n),R(e=>{q(n,`id`,`guardrail-field-`+z(t).key),q(n,`aria-describedby`,z(t).help?`guardrail-field-help-`+z(t).key:void 0),r!==(r=e)&&(n.value=(n.__value=e)??``,mi(n,e))},[()=>d9.fieldValue(z(t))]),B(`change`,n,e=>d9.setFieldValue(z(t),e.currentTarget.value)),H(e,n)},o=e=>{var n=rWe();it(n),R(e=>{q(n,`id`,`guardrail-field-`+z(t).key),q(n,`placeholder`,z(t).placeholder||``),wi(n,e),q(n,`aria-describedby`,z(t).help?`guardrail-field-help-`+z(t).key:void 0)},[()=>d9.fieldValue(z(t))]),B(`input`,n,e=>d9.setFieldValue(z(t),e.currentTarget.value)),H(e,n)},s=e=>{var n=iWe();Ci(n),R(e=>{q(n,`id`,`guardrail-field-`+z(t).key),q(n,`type`,z(t).input||`text`),q(n,`placeholder`,z(t).placeholder||``),wi(n,e),q(n,`aria-describedby`,z(t).help?`guardrail-field-help-`+z(t).key:void 0)},[()=>d9.fieldValue(z(t))]),B(`input`,n,e=>d9.setFieldValue(z(t),e.currentTarget.value)),H(e,n)};W(i,e=>{z(t).input===`select`?e(a):z(t).input===`textarea`?e(o,1):e(s,-1)}),O(n),H(e,n)},a=e=>{var n=cWe(),r=F(n),i=F(r,!0);O(r);var a=L(r,2);G(a,21,()=>z(t).options||[],e=>z(t).key+`-`+e.value,(e,n)=>{var r=oWe(),i=F(r);Ci(i);var a=L(i,2),o=F(a,!0);O(a),O(r),R(e=>{Ti(i,e),U(o,z(n).label)},[()=>d9.arrayFieldSelected(z(t),z(n).value)]),B(`change`,i,e=>d9.toggleArrayFieldValue(z(t),z(n).value,e.currentTarget.checked)),H(e,r)}),O(a);var o=L(a,2),s=e=>{var n=sWe(),r=F(n,!0);O(n),R(()=>{q(n,`id`,`guardrail-field-help-`+z(t).key),U(r,z(t).help)}),H(e,n)};W(o,e=>{z(t).help&&e(s)}),O(n),R(()=>{q(n,`aria-describedby`,z(t).help?`guardrail-field-help-`+z(t).key:void 0),U(i,z(t).label)}),H(e,n)};W(r,e=>{z(t).input===`checkboxes`?e(a,-1):e(i)}),H(e,n)}),O(r),R(e=>q(l,`aria-label`,e),[()=>_O()]),Ai(l,()=>d9.form.user_path,e=>d9.form.user_path=e),H(e,r)},$$slots:{headerHint:!0,default:!0}})}A()}br([`change`,`input`]);var dWe=V(`

`),p9=V(`
`),fWe=V(`

`);function pWe(e,t){k(t,!0),pn(()=>{X.refreshTick,TX.page===`guardrails`&&(QX.ensureLoaded(),d9.fetchPage())});var n=fWe(),r=F(n),i=F(r),a=F(i);{let e=e=>{var t=dWe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>FD()]),H(e,t)},t=j(()=>kO()),n=j(()=>MO());l3(a,{copyId:`guardrails-help-copy`,get label(){return z(t)},get text(){return z(n)},title:e,$$slots:{title:!0}})}O(i),O(r);var o=L(r,2),s=F(o),c=F(s),l=F(c,!0);O(c);var u=L(c,2),d=F(u,!0);O(u);var f=L(u,2),p=F(f,!0);O(f),O(s);var m=L(s,2),h=F(m),g=F(h),_=F(g,!0);O(g);var v=L(g,2),y=F(v,!0);O(v),O(h);var b=L(h,2),x=F(b),S=F(x,!0);O(x);var C=L(x,2),w=F(C,!0);O(C),O(b),O(m),O(o);var T=L(o,2);MZ(T,{});var E=L(T,2),D=e=>{var t=p9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>XD()]),H(e,t)},ee=j(()=>!QX.guardrailsVisible());W(E,e=>{z(ee)&&e(D)});var te=L(E,2),ne=e=>{var t=p9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>$D()]),H(e,t)};W(te,e=>{!X.authError&&!d9.available&&e(ne)});var re=L(te,2),ie=e=>{var t=p9(),n=F(t,!0);O(t),R(()=>U(n,d9.error)),H(e,t)};W(re,e=>{!X.authError&&d9.error&&!d9.formOpen&&e(ie)});var ae=L(re,2);uWe(ae,{}),YUe(L(ae,2),{}),O(n),R((e,t,n,r,i,a,o)=>{U(l,e),U(d,t),U(p,n),U(_,r),U(y,i),U(S,a),U(w,o)},[()=>RD(),()=>VD(),()=>FO(),()=>WD(),()=>dZ(d9.guardrails.length),()=>qD(),()=>dZ(d9.types.length)]),H(e,n),A()}var $=new class{#e=M(P([]));get servers(){return z(this.#e)}set servers(e){N(this.#e,e,!0)}#t=M(!0);get available(){return z(this.#t)}set available(e){N(this.#t,e,!0)}#n=M(!1);get loading(){return z(this.#n)}set loading(e){N(this.#n,e,!0)}#r=M(``);get error(){return z(this.#r)}set error(e){N(this.#r,e,!0)}#i=M(``);get filter(){return z(this.#i)}set filter(e){N(this.#i,e,!0)}#a=M(!1);get formOpen(){return z(this.#a)}set formOpen(e){N(this.#a,e,!0)}#o=M(!1);get formSubmitting(){return z(this.#o)}set formSubmitting(e){N(this.#o,e,!0)}#s=M(`create`);get formMode(){return z(this.#s)}set formMode(e){N(this.#s,e,!0)}#c=M(!1);get slugEdited(){return z(this.#c)}set slugEdited(e){N(this.#c,e,!0)}#l=M(!1);get advancedOpen(){return z(this.#l)}set advancedOpen(e){N(this.#l,e,!0)}#u=M(P(F4()));get form(){return z(this.#u)}set form(e){N(this.#u,e,!0)}#d=M(``);get deletingName(){return z(this.#d)}set deletingName(e){N(this.#d,e,!0)}#f=M(``);get reconnectingName(){return z(this.#f)}set reconnectingName(e){N(this.#f,e,!0)}#p=M(!1);get catalogOpen(){return z(this.#p)}set catalogOpen(e){N(this.#p,e,!0)}#m=M(!1);get catalogLoading(){return z(this.#m)}set catalogLoading(e){N(this.#m,e,!0)}#h=M(``);get catalogError(){return z(this.#h)}set catalogError(e){N(this.#h,e,!0)}#g=M(P(I4()));get catalog(){return z(this.#g)}set catalog(e){N(this.#g,e,!0)}#_=j(()=>IMe(this.servers,this.filter));get filtered(){return z(this.#_)}set filtered(e){N(this.#_,e)}async fetchServers(){if(await QX.ensureLoaded(),!QX.mcpVisible()){this.available=!1,this.servers=[],this.error=``,this.loading=!1;return}this.loading=!0,this.error=``;try{let e=await Y3(`/admin/mcp-servers`,{label:`mcp servers`,errorFallback:VB(),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=F4(),this.formOpen=!0}openEdit(e){!e||e.managed||(this.formMode=`edit`,this.slugEdited=!0,this.advancedOpen=!1,this.error=``,this.form=LMe(e),this.formOpen=!0)}closeForm(){this.formOpen=!1,this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=F4()}syncSlugFromName(){this.formMode===`create`&&!this.slugEdited&&(this.form.slug=V4(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=RMe(this.form,this.formMode,this.servers);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await X3(`/admin/mcp-servers`,`PUT`,e.payload,{label:`save mcp server`,errorFallback:WB(),unavailableMessage:bC()});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}cZ.success(qB({name:e.payload.name})),this.closeForm(),this.fetchServers()}finally{this.formSubmitting=!1}}async deleteServer(e){let t=String(e&&e.name||``).trim(),n=L4(e);if(!(!n||this.deletingName||e&&e.managed)&&confirm(XB({name:t}))){this.deletingName=n;try{let e=await X3(`/admin/mcp-servers/`+encodeURIComponent(n),`DELETE`,void 0,{label:`delete mcp server`,errorFallback:$B(),unavailableMessage:bC()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,cZ.error(e.error);return}if(e.status===`error`){cZ.error(e.error);return}cZ.success(nV({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=L4(e);if(!(!n||this.reconnectingName)){this.reconnectingName=n;try{let e=await X3(`/admin/mcp-servers/`+encodeURIComponent(n)+`/reconnect`,`POST`,void 0,{label:`reconnect mcp server`,errorFallback:aV(),unavailableMessage:bC()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,cZ.error(e.error);return}if(e.status===`error`){cZ.error(e.error);return}let r=e.result.data,i=R4(r);i===`connected`?cZ.success(cV({name:t})):i===`disabled`?cZ.success(dV({name:t})):cZ.error(mV({name:t,status:i})),r&&r.name?this.servers=(this.servers||[]).map(e=>L4(e)===L4(r)?r:e):this.fetchServers()}finally{this.reconnectingName=``}}}async openCatalog(e){let t=String(e&&e.name||``).trim(),n=L4(e);if(n){this.catalogOpen=!0,this.catalogLoading=!0,this.catalogError=``,this.catalog={...I4(),server:n,status:R4(e)};try{let e=await YX(`/admin/mcp-servers/`+encodeURIComponent(n)+`/catalog`,{label:`mcp server catalog`});if(e.stale)return;if(e.status===503){this.available=!1,this.catalogError=bC();return}if(e.status===404){this.catalogError=_V({name:t});return}if(!e.ok){this.catalogError=e.status===401?cR():GX(e.data,bV());return}this.catalog=zMe(n,e.data)}catch(e){console.error(`Failed to load MCP server catalog:`,e),this.catalogError=bV()}finally{this.catalogLoading=!1}}}closeCatalog(){this.catalogOpen=!1,this.catalogLoading=!1,this.catalogError=``,this.catalog=I4()}},mWe=V(``),hWe=V(`

`),gWe=V(`
`),_We=V(`

`),vWe=V(`
  • `),yWe=V(`

      `),bWe=V(`

      `),xWe=V(` `,1),SWe=V(``);function CWe(e,t){k(t,!0);let n=j(()=>H4($.catalog));eZ(e,{get open(){return $.catalogOpen},variant:`editor`,onclose:()=>$.closeCatalog(),children:(e,t)=>{var r=SWe(),i=F(r),a=F(i),o=F(a),s=F(o,!0);O(o);var c=L(o,2),l=F(c),u=F(l,!0);O(l);var d=L(l,2),f=F(d,!0);O(d),O(c),O(a);var p=L(a,2);{let e=j(()=>WC());$X(p,{get label(){return z(e)},onclick:()=>$.closeCatalog()})}O(i);var m=L(i,2),h=e=>{{let t=j(()=>qC());q3(e,{get label(){return z(t)}})}},g=e=>{var t=mWe(),n=F(t,!0);O(t),R(()=>U(n,$.catalogError)),H(e,t)},_=e=>{var t=xWe(),r=I(t),i=e=>{var t=hWe(),n=F(t,!0);O(t),R(()=>U(n,$.catalog.instructions)),H(e,t)};W(r,e=>{$.catalog.instructions&&e(i)});var a=L(r,2);G(a,17,()=>z(n),e=>e.key,(e,t)=>{var n=yWe(),r=F(n),i=F(r,!0);O(r);var a=L(r,2);G(a,21,()=>z(t).items,e=>e.key,(e,t)=>{var n=vWe(),r=F(n),i=F(r,!0);O(r);var a=L(r,2),o=e=>{var n=gWe(),r=F(n,!0);O(n),R(e=>{q(n,`title`,e),U(r,z(t).aggregated)},[()=>XC({name:z(t).aggregated})]),H(e,n)};W(a,e=>{z(t).aggregated&&e(o)});var s=L(a,2),c=e=>{var n=_We(),r=F(n,!0);O(n),R(()=>U(r,z(t).description)),H(e,n)};W(s,e=>{z(t).description&&e(c)}),O(n),R(()=>{q(r,`title`,z(t).aggregated||z(t).name),U(i,z(t).name)}),H(e,n)}),O(a),O(n),R(()=>U(i,z(t).title)),H(e,n)});var o=L(a,2),s=e=>{var t=bWe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>$C()]),H(e,t)},c=j(()=>VMe($.catalog));W(o,e=>{z(c)&&e(s)}),H(e,t)};W(m,e=>{$.catalogLoading?e(h):$.catalogError?e(g,1):e(_,-1)});var v=L(m,2),y=F(v),b=F(y,!0);O(y),O(v),O(r),R((e,t,n,i,a)=>{q(r,`aria-label`,e),U(s,t),U(u,$.catalog.server),K(d,1,`audit-status-badge ${n??``}`,`svelte-1xqrzco`),U(f,i),U(b,a)},[()=>RC(),()=>VC(),()=>z4($.catalog),()=>R4($.catalog),()=>nw()]),B(`click`,y,()=>$.closeCatalog()),H(e,r)},$$slots:{default:!0}}),A()}br([`click`]);var wWe=V(`

      `),TWe=V(` `,1),m9=V(` `),EWe=V(` `,1),DWe=V(` `,1),OWe=V(``),kWe=V(`
      `),AWe=V(`
      `,1);function jWe(e,t){k(t,!0);{let t=e=>{var t=wWe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>dw()]),H(e,t)},n=j(()=>$.formMode===`edit`?aw():_C()),r=j(()=>cw());x6(e,{get open(){return $.formOpen},get title(){return z(n)},get ariaLabel(){return z(r)},get error(){return $.error},get submitting(){return $.formSubmitting},onclose:()=>$.closeForm(),onsubmit:()=>$.submitForm(),headerHint:t,children:(e,t)=>{var n=AWe(),r=I(n);{let e=j(()=>mw());S6(r,{id:`mcp-server-name`,get label(){return z(e)},children:(e,t)=>{var n=TWe(),r=I(n);Ci(r);var i=L(r,2),a=F(i,!0);O(i),R(e=>U(a,e),[()=>_w()]),B(`input`,r,()=>$.syncSlugFromName()),Ai(r,()=>$.form.name,e=>$.form.name=e),H(e,n)},$$slots:{default:!0}})}var i=L(r,2);{let e=j(()=>bw());S6(i,{id:`mcp-server-slug`,get label(){return z(e)},children:(e,t)=>{var n=EWe(),r=I(n);Ci(r);var i=L(r,2),a=e=>{var t=m9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Cw()]),H(e,t)},o=e=>{var t=m9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Ew()]),H(e,t)};W(i,e=>{$.formMode===`create`?e(a):e(o,-1)}),R(()=>r.disabled=$.formMode===`edit`),B(`input`,r,()=>$.markSlugEdited()),Ai(r,()=>$.form.slug,e=>$.form.slug=e),H(e,n)},$$slots:{default:!0}})}var a=L(i,2);{let e=j(()=>kw());S6(a,{id:`mcp-server-transport`,get label(){return z(e)},children:(e,t)=>{var n=DWe(),r=I(n),i=F(r);i.value=i.__value=`http`;var a=L(i);a.value=a.__value=`sse`,O(r);var o=L(r,2),s=F(o,!0);O(o),R(e=>U(s,e),[()=>Mw()]),gi(r,()=>$.form.transport,e=>$.form.transport=e),H(e,n)},$$slots:{default:!0}})}var o=L(a,2);S6(o,{id:`mcp-server-url`,label:`URL`,children:(e,t)=>{var n=OWe();Ci(n),Ai(n,()=>$.form.url,e=>$.form.url=e),H(e,n)},$$slots:{default:!0}});var s=L(o,2),c=F(s),l=F(c,!0);O(c);var u=L(c,2);G(u,21,()=>$.form.headers,Fr,(e,t,n)=>{var r=kWe(),i=F(r);Ci(i);var a=L(i,2);Ci(a);var o=L(a,2);{let e=j(()=>Ww());J3(o,{get label(){return z(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>$.removeHeader(n),children:(e,t)=>{J(e,{get icon(){return vX},class:`table-icon-svg`})},$$slots:{default:!0}})}O(r),R((e,t)=>{q(i,`aria-label`,e),q(a,`aria-label`,t)},[()=>Rw(),()=>Vw()]),Ai(i,()=>z(t).name,e=>z(t).name=e),Ai(a,()=>z(t).value,e=>z(t).value=e),H(e,r)}),O(u);var d=L(u,2),f=F(d),p=F(f);J(p,{get icon(){return dX},class:`form-action-icon`});var m=L(p,2),h=F(m,!0);O(m),O(f),O(d);var g=L(d,2),_=F(g,!0);O(g),O(s);var v=L(s,2),y=F(v);X8(F(y),{get enabled(){return $.form.enabled},label:`MCP server`,onclick:()=>$.form.enabled=!$.form.enabled}),O(y),O(v);var b=L(v,2),x=F(b),S=F(x),C=F(S),w=F(C,!0);O(C);var T=L(C,2),E=F(T,!0);O(T),O(S),O(x);var D=L(x,2),ee=F(D),te=F(ee),ne=F(te,!0);O(te);var re=L(te,2);Ci(re),O(ee);var ie=L(ee,2),ae=F(ie),oe=F(ae,!0);O(ae);var se=L(ae,2);Ci(se),O(ie);var ce=L(ie,2),le=F(ce),ue=F(le,!0);O(le);var de=L(le,2);Ci(de),O(ce);var fe=L(ce,2),pe=F(fe),me=F(pe,!0);O(pe);var he=L(pe,2);it(he),q(he,`placeholder`,`/ -/team/alpha`),O(fe);var ge=L(fe,2),_e=F(ge),ve=F(_e,!0);O(_e);var ye=L(_e,2);Ci(ye),O(ge),O(D),O(b),R((e,t,n,r,i,a,o,s,c,u,d,f,p,m)=>{U(l,e),U(h,t),U(_,n),b.open=$.advancedOpen,U(w,r),U(E,i),U(ne,a),q(re,`placeholder`,o),U(oe,s),q(se,`placeholder`,c),U(ue,u),q(de,`placeholder`,d),U(me,f),U(ve,p),q(ye,`placeholder`,m)},[()=>Fw(),()=>qw(),()=>Xw(),()=>$w(),()=>nT(),()=>aT(),()=>gCe(),()=>cT(),()=>yCe(),()=>dT(),()=>SCe(),()=>mT(),()=>_T(),()=>bT()]),B(`click`,f,()=>$.addHeader()),yr(`toggle`,b,e=>$.advancedOpen=e.currentTarget.open),Ai(re,()=>$.form.description,e=>$.form.description=e),Ai(se,()=>$.form.allowed_tools,e=>$.form.allowed_tools=e),Ai(de,()=>$.form.disallowed_tools,e=>$.form.disallowed_tools=e),Ai(he,()=>$.form.user_paths,e=>$.form.user_paths=e),Ai(ye,()=>$.form.tool_timeout_seconds,e=>$.form.tool_timeout_seconds=e),H(e,n)},$$slots:{headerHint:!0,default:!0}})}A()}br([`input`,`click`]);var MWe=V(` `),NWe=V(`
      `),PWe=V(`
      `),FWe=V(`
      `);function IWe(e,t){k(t,!0);function n(e){return jMe(e,e=>WX.formatTimestamp(e))}var r=FWe(),i=F(r),a=F(i),o=F(a),s=F(o),c=F(s,!0);O(s);var l=L(s),u=F(l,!0);O(l);var d=L(l),f=F(d,!0);O(d);var p=L(d),m=F(p,!0);O(p);var h=L(p),g=F(h,!0);O(h);var _=L(h),v=F(_,!0);O(_);var y=L(_),b=F(y,!0);O(y),O(o),O(a);var x=L(a);G(x,21,()=>$.filtered,e=>L4(e),(e,t)=>{var r=PWe(),i=F(r),a=F(i),o=F(a,!0);O(a);var s=L(a,2),c=e=>{var t=MWe(),n=F(t,!0);O(t),R((e,r)=>{q(t,`title`,e),U(n,r)},[()=>Rz(),()=>aR()]),H(e,t)};W(s,e=>{z(t).managed&&e(c)});var l=L(s,2),u=F(l,!0);O(l),O(i);var d=L(i),f=F(d),p=F(f,!0);O(f),O(d);var m=L(d),h=F(m,!0);O(m);var g=L(m),_=F(g),v=F(_,!0);O(_);var y=L(_,2),b=e=>{var n=NWe(),r=F(n,!0);O(n),R(()=>U(r,z(t).last_error)),H(e,n)},x=j(()=>R4(z(t))===`degraded`&&z(t).last_error);W(y,e=>{z(x)&&e(b)}),O(g);var S=L(g),C=F(S),w=F(C,!0);O(C);var T=L(C,2),E=F(T,!0);O(T),O(S);var D=L(S),ee=F(D),te=F(ee,!0);O(ee),O(D);var ne=L(D),re=F(ne),ie=F(re),ae=e=>{{let n=j(()=>Vz({name:z(t).name}));J3(e,{get label(){return z(n)},class:`table-icon-btn`,onclick:()=>$.openEdit(z(t)),children:(e,t)=>{J(e,{get icon(){return uX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(ie,e=>{z(t).managed||e(ae)});var oe=L(ie,2);{let e=j(()=>Wz({name:z(t).name}));J3(oe,{get label(){return z(e)},class:`table-icon-btn`,onclick:()=>$.openCatalog(z(t)),children:(e,t)=>{J(e,{get icon(){return Fwe},class:`form-action-icon`})},$$slots:{default:!0}})}var se=L(oe,2);{let e=j(()=>$.reconnectingName===L4(z(t))?Xz({name:z(t).name}):qz({name:z(t).name})),n=j(()=>$.reconnectingName===L4(z(t)));J3(se,{get label(){return z(e)},class:`table-icon-btn`,onclick:()=>$.reconnectServer(z(t)),get disabled(){return z(n)},children:(e,t)=>{J(e,{get icon(){return fX},class:`form-action-icon`})},$$slots:{default:!0}})}var ce=L(se,2),le=e=>{{let n=j(()=>$.deletingName===L4(z(t))?nB({name:z(t).name}):$z({name:z(t).name})),r=j(()=>$.deletingName===L4(z(t)));J3(e,{get label(){return z(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>$.deleteServer(z(t)),get disabled(){return z(r)},children:(e,t)=>{J(e,{get icon(){return xX},class:`table-icon-svg`})},$$slots:{default:!0}})}};W(ce,e=>{z(t).managed||e(le)}),O(re),O(ne),O(r),R((e,n,r,i,a,s,c,l,d)=>{U(o,z(t).name),U(u,e),U(p,z(t).transport||`http`),q(m,`title`,n),U(h,r),K(_,1,`audit-status-badge ${i??``}`,`svelte-ah8nrt`),q(_,`title`,a),U(v,s),U(w,c),U(E,l),K(ee,1,ci([`auth-key-status-badge`,z(t).enabled?`auth-key-status-active`:`auth-key-status-inactive`])),U(te,d)},[()=>L4(z(t)),()=>B4(z(t)),()=>B4(z(t)),()=>z4(z(t)),()=>n(z(t)),()=>AMe(z(t)),()=>dZ(z(t).tool_count||0),()=>MMe(z(t)),()=>z(t).enabled?$L():nR()]),H(e,r)}),O(x),O(i),O(r),R((e,t,n,r,i,a,o)=>{U(c,e),U(u,t),U(f,n),U(m,r),U(g,i),U(v,a),U(b,o)},[()=>mw(),()=>bz(),()=>Cz(),()=>Ez(),()=>kz(),()=>Mz(),()=>Fz()]),H(e,r),A()}var LWe=V(`

      `),RWe=V(``),zWe=V(`
      `),BWe=V(``),VWe=V(`
      `),h9=V(`

      `),HWe=V(`
      `);function UWe(e,t){k(t,!0);let n=mC();pn(()=>{X.refreshTick,TX.page===`mcp-servers`&&$.fetchServers()});var r=HWe(),i=F(r),a=F(i),o=F(a);{let e=e=>{var t=LWe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>cC()]),H(e,t)},t=j(()=>dC());l3(o,{copyId:`mcp-servers-help-copy`,get label(){return z(t)},get text(){return n},title:e,$$slots:{title:!0}})}O(a);var s=L(a,2),c=F(s),l=e=>{var t=RWe(),n=F(t);J(n,{get icon(){return dX},class:`form-action-icon`});var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>{t.disabled=$.formSubmitting,U(i,e)},[()=>_C()]),B(`click`,t,()=>$.openCreate()),H(e,t)};W(c,e=>{$.available&&!X.authError&&e(l)}),O(s),O(i);var u=L(i,2),d=e=>{var t=zWe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>bC()]),H(e,t)};W(u,e=>{!$.available&&!X.authError&&e(d)});var f=L(u,2),p=e=>{var t=BWe(),n=F(t,!0);O(t),R(()=>U(n,$.error)),H(e,t)};W(f,e=>{$.error&&!X.authError&&!$.formOpen&&e(p)});var m=L(f,2),h=e=>{{let t=j(()=>CC());q3(e,{get label(){return z(t)}})}};W(m,e=>{$.loading&&!X.authError&&e(h)});var g=L(m,2),_=e=>{var t=VWe(),n=F(t),r=F(n);{let e=j(()=>EC()),t=j(()=>kC());B3(r,{id:`mcp-server-filter`,get placeholder(){return z(e)},get label(){return z(t)},get value(){return $.filter},set value(e){$.filter=e}})}O(n),O(t),H(e,t)};W(g,e=>{($.servers.length>0||$.filter)&&$.available&&!X.authError&&e(_)});var v=L(g,2);jWe(v,{});var y=L(v,2);CWe(y,{});var b=L(y,2),x=e=>{IWe(e,{})};W(b,e=>{$.filtered.length>0&&$.available&&!X.authError&&e(x)});var S=L(b,2),C=e=>{var t=h9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>MC()]),H(e,t)};W(S,e=>{$.servers.length===0&&!$.filter&&!$.loading&&!X.authError&&!$.error&&$.available&&e(C)});var w=L(S,2),T=e=>{var t=h9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>FC()]),H(e,t)};W(w,e=>{$.servers.length>0&&$.filtered.length===0&&$.filter&&!$.loading&&!X.authError&&$.available&&e(T)}),O(r),H(e,r),A()}br([`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 WWe(){return{[g9]:{label:VH(),control:`keys`,hint:kU()},[_9]:{label:WH(),control:`checkbox`,hint:MU()},[v9]:{label:qH(),control:`text`},api_version:{label:XH(),control:`text`,placeholder:`e.g. 2024-10-01-preview`,hint:FU()},backend:{label:$H(),control:`select`,hint:RU()},auth_type:{label:nU(),control:`select`,hint:VU()},api_mode:{label:aU(),control:`select`,hint:WU()},vertex_project:{label:cU(),control:`text`,placeholder:`my-gcp-project`},vertex_location:{label:dU(),control:`text`,placeholder:`us-central1`},service_account_file:{label:mU(),control:`text`,placeholder:`/path/to/service-account.json`,hint:qU()},[y9]:{label:_U(),control:`textarea`,placeholder:OSe(),hint:XU()},service_account_json_base64:{label:bU(),control:`text`,hint:$U()},gcp_scope:{label:CU(),control:`text`,placeholder:`https://www.googleapis.com/auth/cloud-platform`},[b9]:{label:EU(),control:`text`,placeholder:`gpt-4o, gpt-4o-mini`,hint:nW()}}}function GWe(e){return WWe()[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 KWe(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 qWe(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 JWe(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={...GWe(t),name:t,required:!!(e&&e.required),options:Array.isArray(e&&e.options)?e.options:[]};t===`base_url`&&r&&(n.placeholder=r,n.hint=aW({value:r})),n.options.length>0&&(n.control=`select`),(e&&e.advanced?a:i).push(n)}return{primary:i,advanced:a}}var YWe=new Set([`name`,`type`,`enabled`]);function XWe(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))!YWe.has(e)&&!n.has(e)&&(i[e]=r[e]);return i}function ZWe(e){let t=Array.isArray(e&&e.api_keys)?e.api_keys.length:0;return t>0?cW({count:t}):String(e&&e.service_account_json||``).trim()||String(e&&e.service_account_json_base64||``).trim()||String(e&&e.service_account_file||``).trim()?dW():String(e&&e.vertex_project||``).trim()?`ADC`:mW()}function QWe(e){let t=Array.isArray(e&&e.models)?e.models:[];return t.length===0?_W():bW({count:t.length})}function $We(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 eGe(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 tGe(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),api_keys:$We(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 nGe(e){let t=String(e||``).trim();return t.length>=3&&/^\*+$/.test(t)}function rGe(e,t,n,r){let i={},a=String(e&&e.name||``).trim();String(e&&e.type||``).trim()||(i.type=jSe()),a?a.includes(`/`)?i.name=LSe():t===`create`&&(Array.isArray(n)?n:[]).some(e=>String(e&&e.name||``).trim()===a)&&(i.name=QSe({name:a})):i.name=PSe();let{primary:o,advanced:s}=C9(r);for(let t of[...o,...s]){let n=iGe(e,t);n&&(i[t.name]=n)}return i}function iGe(e,t){if(t.name===`api_keys`){let n=w9(e&&e.api_keys);return t.required&&!n.some(e=>e.trim())?BSe():n.some(e=>!e.trim())?USe():``}let n=String(e&&e[t.name]||``).trim();if(t.required&&!n)return tCe({field:t.label});if(!n)return``;if(t.name===`base_url`&&!n.includes(`://`)&&/[./]/.test(n))return KSe({value:n});if(t.name===`service_account_json`&&!nGe(n))try{JSON.parse(n)}catch{return YSe()}return``}function aGe(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 lZ(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=M(P([]));get rows(){return z(this.#e)}set rows(e){N(this.#e,e,!0)}#t=M(!0);get available(){return z(this.#t)}set available(e){N(this.#t,e,!0)}#n=M(!1);get loading(){return z(this.#n)}set loading(e){N(this.#n,e,!0)}#r=M(``);get error(){return z(this.#r)}set error(e){N(this.#r,e,!0)}#i=M(``);get filter(){return z(this.#i)}set filter(e){N(this.#i,e,!0)}#a=M(!1);get formOpen(){return z(this.#a)}set formOpen(e){N(this.#a,e,!0)}#o=M(!1);get formSubmitting(){return z(this.#o)}set formSubmitting(e){N(this.#o,e,!0)}#s=M(`create`);get formMode(){return z(this.#s)}set formMode(e){N(this.#s,e,!0)}#c=M(!1);get advancedOpen(){return z(this.#c)}set advancedOpen(e){N(this.#c,e,!0)}#l=M(P(S9()));get form(){return z(this.#l)}set form(e){N(this.#l,e,!0)}#u=M(P({}));get fieldErrors(){return z(this.#u)}set fieldErrors(e){N(this.#u,e,!0)}#d=M(``);get focusField(){return z(this.#d)}set focusField(e){N(this.#d,e,!0)}#f=M(``);get deletingName(){return z(this.#f)}set deletingName(e){N(this.#f,e,!0)}#p=M(!1);get deleteSubmitting(){return z(this.#p)}set deleteSubmitting(e){N(this.#p,e,!0)}#m=M(P([]));get types(){return z(this.#m)}set types(e){N(this.#m,e,!0)}#h=M(!1);get typesLoaded(){return z(this.#h)}set typesLoaded(e){N(this.#h,e,!0)}#g=null;get filteredRows(){return KWe(this.rows,this.filter)}get schema(){return JWe(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 Y3(`/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 Y3(`/admin/provider-credentials`,{label:`provider credentials`,errorFallback:bH(),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`,tGe(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=XWe(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=GX(e,CH()),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(){jZ.fetchModels(),jZ.fetchCategories()}async submitForm(){let e=this.schema,t=rGe(this.form,this.formMode,this.rows,e);if(Object.keys(t).length>0){this.fieldErrors=t,this.error=``,this.#b();return}let n=aGe(this.form,e);this.error=``,this.fieldErrors={},this.formSubmitting=!0;try{let e=await X3(`/admin/provider-credentials`,`PUT`,n,{label:`save provider credential`,errorFallback:CH(),unavailableMessage:cE()});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}cZ.success(EH({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 X3(`/admin/provider-credentials/`+encodeURIComponent(e),`DELETE`,void 0,{label:`delete provider credential`,errorFallback:kH(),unavailableMessage:cE()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,nZ.error=t.error;return}if(t.status===`error`){nZ.error=t.error;return}cZ.success(MH({name:e})),nZ.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||nZ.open({title:FH(),titleId:`providerCredentialDeleteDialogTitle`,inputId:`provider-credential-delete-confirmation`,message:RH({name:t}),requiredText:t,confirmLabel:FH(),icon:vX,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.performDelete(t)})}},oGe=V(` `),sGe=V(` `,1),cGe=V(`
      `),lGe=V(`
      `);function uGe(e,t){k(t,!0);var n=lGe(),r=F(n),i=F(r),a=F(i),o=F(a),s=F(o,!0);O(o);var c=L(o),l=F(c,!0);O(c);var u=L(c),d=F(u,!0);O(u);var f=L(u),p=F(f,!0);O(f);var m=L(f),h=F(m,!0);O(m);var g=L(m),_=F(g,!0);O(g);var v=L(g),y=F(v,!0);O(v);var b=L(v),x=F(b,!0);O(b),O(a),O(i);var S=L(i);G(S,21,()=>E9.filteredRows,e=>e.name,(e,t)=>{var n=cGe(),r=F(n),i=F(r),a=F(i,!0);O(i);var o=L(i,2),s=e=>{var t=oGe(),n=F(t,!0);O(t),R((e,r)=>{q(t,`title`,e),U(n,r)},[()=>WE(),()=>aR()]),H(e,t)};W(o,e=>{z(t).managed&&e(s)}),O(r);var c=L(r),l=F(c),u=F(l,!0);O(l),O(c);var d=L(c),f=F(d,!0);O(d);var p=L(d),m=F(p,!0);O(p);var h=L(p),g=F(h,!0);O(h);var _=L(h),v=F(_);let y;var b=F(v,!0);O(v),O(_);var x=L(_),S=F(x,!0);O(x);var C=L(x),w=F(C),T=F(w),E=e=>{var n=sGe(),r=I(n);{let e=j(()=>dH({name:z(t).name}));J3(r,{get label(){return z(e)},class:`table-icon-btn`,onclick:()=>E9.openEdit(z(t)),children:(e,t)=>{J(e,{get icon(){return uX},class:`table-icon-svg`})},$$slots:{default:!0}})}var i=L(r,2);{let e=j(()=>E9.deletingName===z(t).name?_H({name:z(t).name}):mH({name:z(t).name})),n=j(()=>E9.deletingName===z(t).name);J3(i,{get label(){return z(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>E9.requestDelete(z(t).name),get disabled(){return z(n)},children:(e,t)=>{J(e,{get icon(){return xX},class:`table-icon-svg`})},$$slots:{default:!0}})}H(e,n)};W(T,e=>{z(t).managed||e(E)}),O(w),O(C),O(n),R((e,n,r,i)=>{U(a,z(t).name),U(u,z(t).type),q(d,`title`,z(t).base_url||``),U(f,z(t).base_url||`—`),U(m,e),U(g,n),y=K(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":z(t).enabled,"auth-key-status-inactive":!z(t).enabled}),U(b,r),U(S,i)},[()=>ZWe(z(t)),()=>QWe(z(t)),()=>z(t).enabled?$L():nR(),()=>WX.formatTimestamp(z(t).updated_at)]),H(e,n)}),O(S),O(r),O(n),R((e,t,n,r,i,a,o,c)=>{U(s,e),U(l,t),U(d,n),U(p,r),U(h,i),U(_,a),U(y,o),U(x,c)},[()=>CE(),()=>EE(),()=>Jo(),()=>kE(),()=>ME(),()=>FE(),()=>RE(),()=>VE()]),H(e,n),A()}var dGe=V(``),fGe=V(`
      `),pGe=V(`
      `,1),mGe=V(``),hGe=V(``),gGe=V(``),_Ge=V(``),vGe=V(``),yGe=V(` `),bGe=V(` `),xGe=V(`
      `);function D9(e,t){k(t,!0);let n=j(()=>`provider-credential-`+t.field.name),r=j(()=>E9.fieldErrors[t.field.name]||``),i=j(()=>z(r)?z(n)+`-error`:t.field.hint?z(n)+`-hint`:void 0),a=j(()=>{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=xGe(),c=F(s),l=F(c),u=L(l),d=e=>{H(e,dGe())};W(u,e=>{t.field.required&&e(d)}),O(c);var f=L(c,2),p=e=>{var t=pGe(),a=I(t);G(a,21,()=>E9.form.api_keys,Fr,(e,t,a)=>{var s=fGe(),c=F(s);Ci(c);var l=L(c,2);{let e=j(()=>nH({number:a+1}));J3(l,{get label(){return z(e)},class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>E9.removeApiKeyRow(a),children:(e,t)=>{J(e,{get icon(){return vX},class:`table-icon-svg`})},$$slots:{default:!0}})}O(s),R(e=>{q(c,`id`,a===0?z(n):z(n)+`-`+a),q(c,`aria-label`,e),q(c,`aria-invalid`,z(r)?`true`:void 0),q(c,`aria-describedby`,a===0?z(i):void 0)},[()=>$V({number:a+1})]),B(`input`,c,o),Ai(c,()=>z(t).value,e=>z(t).value=e),H(e,s)}),O(a);var s=L(a,2),c=F(s),l=F(c);J(l,{get icon(){return dX},class:`form-action-icon`});var u=L(l,2),d=F(u,!0);O(u),O(c),O(s),R(e=>{q(c,`id`,E9.form.api_keys.length===0?z(n):void 0),U(d,e)},[()=>aH()]),B(`click`,c,()=>E9.addApiKeyRow()),H(e,t)},m=e=>{var s=hGe(),c=F(s),l=F(c,!0);O(c),c.value=c.__value=``,G(L(c),16,()=>z(a),e=>e,(e,t)=>{var n=mGe(),r=F(n,!0);O(n);var i={};R(()=>{U(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),H(e,n)}),O(s),R(e=>{q(s,`id`,z(n)),q(s,`aria-invalid`,z(r)?`true`:void 0),q(s,`aria-describedby`,z(i)),U(l,e)},[()=>cH()]),B(`change`,s,o),gi(s,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),H(e,s)},h=e=>{var a=gGe();Ci(a),R(()=>{q(a,`id`,z(n)),q(a,`aria-invalid`,z(r)?`true`:void 0),q(a,`aria-describedby`,z(i))}),B(`change`,a,o),ji(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),H(e,a)},g=e=>{var a=_Ge();it(a),R(()=>{q(a,`id`,z(n)),q(a,`placeholder`,t.field.placeholder||``),q(a,`aria-invalid`,z(r)?`true`:void 0),q(a,`aria-describedby`,z(i))}),B(`input`,a,o),Ai(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),H(e,a)},_=e=>{var a=vGe();Ci(a),R(()=>{q(a,`id`,z(n)),q(a,`placeholder`,t.field.placeholder||``),q(a,`aria-invalid`,z(r)?`true`:void 0),q(a,`aria-describedby`,z(i))}),B(`input`,a,o),Ai(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),H(e,a)};W(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=L(f,2),y=e=>{var t=yGe(),i=F(t,!0);O(t),R(()=>{q(t,`id`,z(n)+`-error`),U(i,z(r))}),H(e,t)},b=e=>{var r=bGe(),i=F(r,!0);O(r),R(()=>{q(r,`id`,z(n)+`-hint`),U(i,t.field.hint)}),H(e,r)};W(v,e=>{z(r)?e(y):t.field.hint&&e(b,1)}),O(s),R(()=>{q(c,`for`,z(n)),U(l,`${t.field.label??``} `)}),H(e,s),A()}br([`input`,`click`,`change`]);var O9=V(`

      `),SGe=V(``),CGe=V(` `),wGe=V(` `),TGe=V(` `),k9=V(` `),EGe=V(`
      `),DGe=V(`
      `,1);function OGe(e,t){k(t,!0);let n=j(()=>qWe(E9.types,E9.form.type)),r=j(()=>E9.formFields),i=j(()=>E9.fieldErrors.name||``),a=j(()=>E9.fieldErrors.type||``);function o(){E9.selectType(),E9.formMode===`create`&&(E9.form.name=eGe(E9.rows,E9.form.type))}pn(()=>{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=F(t,!0);O(t),R(e=>U(n,e),[()=>kV()]),H(e,t)},s=j(()=>E9.formMode===`edit`?CV():aE()),c=j(()=>EV());x6(e,{get open(){return E9.formOpen},get title(){return z(s)},get ariaLabel(){return z(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=DGe(),c=I(s),l=F(c),u=F(l,!0);Be(),O(l);var d=L(l,2),f=F(d),p=F(f,!0);O(f),f.value=f.__value=``,G(L(f),16,()=>z(n),e=>e,(e,t)=>{var n=SGe(),r=F(n,!0);O(n);var i={};R(()=>{U(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),H(e,n)}),O(d);var m=L(d,2),h=e=>{var t=CGe(),n=F(t,!0);O(t),R(()=>U(n,z(a))),H(e,t)},g=e=>{var t=wGe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>FV()]),H(e,t)};W(m,e=>{z(a)?e(h):e(g,-1)}),O(c);var _=L(c,2),v=F(_),y=F(v,!0);Be(),O(v);var b=L(v,2);Ci(b);var x=L(b,2),S=e=>{var t=TGe(),n=F(t,!0);O(t),R(()=>U(n,z(i))),H(e,t)},C=e=>{var t=k9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>RV()]),H(e,t)},w=e=>{var t=k9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>VV()]),H(e,t)};W(x,e=>{z(i)?e(S):E9.formMode===`create`?e(C,1):e(w,-1)}),O(_);var T=L(_,2),E=e=>{var t=O9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>WV()]),H(e,t)};W(T,e=>{E9.form.type||e(E)});var D=L(T,2);G(D,17,()=>z(r).primary,e=>e.name,(e,t)=>{D9(e,{get field(){return z(t)}})});var ee=L(D,2),te=F(ee),ne=F(te);{let e=j(()=>qV());X8(ne,{get enabled(){return E9.form.enabled},get label(){return z(e)},onclick:()=>E9.form.enabled=!E9.form.enabled})}O(te),O(ee);var re=L(ee,2),ie=e=>{var t=EGe(),n=F(t),i=F(n),a=F(i),o=F(a,!0);O(a);var s=L(a,2),c=F(s,!0);O(s),O(i),O(n);var l=L(n,2);G(l,21,()=>z(r).advanced,e=>e.name,(e,t)=>{D9(e,{get field(){return z(t)}})}),O(l),O(t),R((e,n)=>{t.open=E9.advancedOpen,U(o,e),U(c,n)},[()=>XV(),()=>z(r).advanced.map(e=>e.label).join(`, `)]),yr(`toggle`,t,e=>E9.advancedOpen=e.currentTarget.open),H(e,t)};W(re,e=>{z(r).advanced.length>0&&e(ie)}),R((e,t,n)=>{U(u,e),d.disabled=E9.formMode===`edit`,q(d,`aria-invalid`,z(a)?`true`:void 0),q(d,`aria-describedby`,z(a)?`provider-credential-type-error`:`provider-credential-type-hint`),U(p,t),U(y,n),b.disabled=E9.formMode===`edit`,q(b,`aria-invalid`,z(i)?`true`:void 0),q(b,`aria-describedby`,z(i)?`provider-credential-name-error`:`provider-credential-name-hint`)},[()=>EE(),()=>MV(),()=>CE()]),B(`change`,d,o),gi(d,()=>E9.form.type,e=>E9.form.type=e),B(`input`,b,()=>E9.clearFieldError(`name`)),Ai(b,()=>E9.form.name,e=>E9.form.name=e),H(e,s)},$$slots:{headerHint:!0,default:!0}})}A()}br([`change`,`input`]);var kGe=V(`

      `),AGe=V(``),jGe=V(`
      `),MGe=V(``),NGe=V(`
      `),A9=V(`

      `),PGe=V(`
      `);function FGe(e,t){k(t,!0),pn(()=>{X.refreshTick,TX.page===`providers-config`&&E9.fetchPage()});var n=PGe(),r=F(n),i=F(r);l3(F(i),{copyId:`providers-config-help-copy`,label:`model providers help`,title:e=>{var t=kGe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>nE()]),H(e,t)},help:e=>{Be(),H(e,Er(`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}}),O(i);var a=L(i,2),o=F(a),s=e=>{var t=AGe(),n=F(t);J(n,{get icon(){return dX},class:`form-action-icon`});var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>{t.disabled=E9.formSubmitting,U(i,e)},[()=>aE()]),B(`click`,t,()=>E9.openCreate()),H(e,t)};W(o,e=>{E9.available&&!X.needsAuth&&e(s)}),O(a),O(r);var c=L(r,2),l=e=>{var t=jGe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>cE()]),H(e,t)};W(c,e=>{!E9.available&&!X.needsAuth&&e(l)});var u=L(c,2),d=e=>{var t=MGe(),n=F(t,!0);O(t),R(()=>U(n,E9.error)),H(e,t)};W(u,e=>{E9.error&&!X.needsAuth&&!E9.formOpen&&e(d)});var f=L(u,2),p=e=>{q3(e,{label:`Loading providers...`})};W(f,e=>{E9.loading&&!X.needsAuth&&e(p)});var m=L(f,2),h=e=>{var t=NGe(),n=F(t),r=F(n);{let e=j(()=>dE()),t=j(()=>mE());B3(r,{id:`provider-credential-filter`,get placeholder(){return z(e)},get label(){return z(t)},get value(){return E9.filter},set value(e){E9.filter=e}})}O(n),O(t),H(e,t)};W(m,e=>{(E9.rows.length>0||E9.filter)&&E9.available&&!X.needsAuth&&e(h)});var g=L(m,2);OGe(g,{});var _=L(g,2),v=e=>{uGe(e,{})};W(_,e=>{E9.filteredRows.length>0&&E9.available&&!X.needsAuth&&e(v)});var y=L(_,2),b=e=>{var t=A9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>_E()]),H(e,t)};W(y,e=>{E9.rows.length===0&&!E9.filter&&!E9.loading&&!X.needsAuth&&!E9.error&&E9.available&&e(b)});var x=L(y,2),S=e=>{var t=A9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>bE()]),H(e,t)};W(x,e=>{E9.rows.length>0&&E9.filteredRows.length===0&&E9.filter&&!E9.loading&&!X.needsAuth&&E9.available&&e(S)}),O(n),H(e,n),A()}br([`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 mz();if(t.includes(`:`))return _z()}}return``}function IGe(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 LGe(e){let t=e||{},n=String(t.name||``).trim();if(!n)return{error:dz()};let r=N9(t.user_path);if(r)return{error:r};let i=IGe(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 RGe(e){return[e.name,e.description,e.user_path,e.redacted_value,...e.labels||[]].filter(Boolean).join(` `).toLowerCase()}function zGe(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||RGe(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 BGe(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 VGe(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=M(P([]));get keys(){return z(this.#e)}set keys(e){N(this.#e,e,!0)}#t=M(!0);get available(){return z(this.#t)}set available(e){N(this.#t,e,!0)}#n=M(!1);get loading(){return z(this.#n)}set loading(e){N(this.#n,e,!0)}#r=M(``);get error(){return z(this.#r)}set error(e){N(this.#r,e,!0)}#i=M(``);get filter(){return z(this.#i)}set filter(e){N(this.#i,e,!0)}#a=M(!1);get showInactive(){return z(this.#a)}set showInactive(e){N(this.#a,e,!0)}#o=j(()=>BGe(zGe(this.keys,{query:this.filter,showInactive:this.showInactive})));get visibleKeys(){return z(this.#o)}set visibleKeys(e){N(this.#o,e)}#s=j(()=>VGe(this.keys));get inactiveCount(){return z(this.#s)}set inactiveCount(e){N(this.#s,e)}#c=M(!1);get formOpen(){return z(this.#c)}set formOpen(e){N(this.#c,e,!0)}#l=M(!1);get formSubmitting(){return z(this.#l)}set formSubmitting(e){N(this.#l,e,!0)}#u=M(``);get issuedValue(){return z(this.#u)}set issuedValue(e){N(this.#u,e,!0)}#d=M(``);get deactivatingID(){return z(this.#d)}set deactivatingID(e){N(this.#d,e,!0)}#f=M(``);get dashboardAccessID(){return z(this.#f)}set dashboardAccessID(e){N(this.#f,e,!0)}#p=M(P(j9()));get form(){return z(this.#p)}set form(e){N(this.#p,e,!0)}#m=M(P(B9()));get labelsEditor(){return z(this.#m)}set labelsEditor(e){N(this.#m,e,!0)}copyState=E5({logPrefix:`Failed to copy auth key:`});async fetchKeys(){this.loading=!0,this.error=``;try{let e=await Y3(`/admin/auth-keys`,{label:`auth keys`,errorFallback:MR()});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=LGe(this.form);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await X3(`/admin/auth-keys`,`POST`,e.payload,{label:`create API key`,errorFallback:FR(),unavailableMessage:RR()});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 X3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/labels`,`PUT`,t,{label:`update API key labels`,errorFallback:VR(),unavailableMessage:RR()});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}cZ.success(WR({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 X3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/dashboard-access`,`PUT`,{dashboard_access:t},{label:`update API key dashboard access`,errorFallback:qR(),unavailableMessage:RR()});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,cZ.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),cZ.error(n.error);return}cZ.success(t?XR({name:e.name}):$R({name:e.name})),this.fetchKeys()}finally{this.dashboardAccessID=``}}async deactivateKey(e){if(!(!e||!e.active)&&window.confirm(nz({name:e.name}))){this.deactivatingID=e.id;try{let t=await X3(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/deactivate`,`POST`,void 0,{label:`deactivate API key`,errorFallback:az(),unavailableMessage:RR()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,cZ.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),cZ.error(t.error);return}cZ.success(cz({name:e.name})),this.fetchKeys()}finally{this.deactivatingID=``}}}},HGe=V(``),UGe=V(`

      `),WGe=V(``),GGe=V(``),KGe=V(``),qGe=V(``),JGe=V(`
      `);function YGe(e,t){k(t,!0);{let t=j(()=>Mb()),n=j(()=>cx()),r=j(()=>V9.issuedValue?``:V9.error),i=j(()=>V9.issuedValue?dx():Mb()),a=j(()=>mx()),o=j(()=>V9.issuedValue?QY:dX);x6(e,{get open(){return V9.formOpen},get title(){return z(t)},get ariaLabel(){return z(n)},get error(){return z(r)},get submitting(){return V9.formSubmitting},get submitLabel(){return z(i)},get submittingLabel(){return z(a)},get submitIcon(){return z(o)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>V9.closeForm(),onsubmit:()=>V9.issuedValue?V9.dismissIssuedKey():V9.submitForm(),children:(e,t)=>{var n=Dr(),r=I(n),i=e=>{var t=UGe(),n=F(t),r=F(n,!0);O(n);var i=L(n,2),a=F(i),o=F(a,!0);O(a),Q7(L(a,2),{get state(){return V9.copyState},onclick:()=>V9.copyIssuedValue()}),O(i);var s=L(i,2),c=e=>{var t=HGe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>bx()]),H(e,t)};W(s,e=>{V9.copyState.error&&e(c)}),O(t),R(e=>{U(r,e),U(o,V9.issuedValue)},[()=>_x()]),H(e,t)},a=e=>{var t=JGe(),n=F(t),r=F(n),i=F(r),a=F(i),o=L(a),s=F(o);O(o),O(i);var c=L(i,2);Ci(c),O(r);var l=L(r,2),u=F(l),d=F(u),f=L(d),p=F(f);O(f),O(u);var m=L(u,2);Ci(m),O(l),O(n);var h=L(n,2),g=F(h);{let e=e=>{var t=WGe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Fx()]),H(e,t)},t=e=>{Be();var t=Er();R(e=>U(t,e),[()=>Vx()]),H(e,t)},n=j(()=>Rx());l3(g,{copyId:`auth-key-user-path-help-copy`,get label(){return z(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var _=L(g,2);Ci(_),O(h);var v=L(h,2),y=F(v);{let e=e=>{var t=GGe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Wx()]),H(e,t)},t=e=>{Be();var t=Er();R(e=>U(t,e),[()=>Xx()]),H(e,t)},n=j(()=>qx());l3(y,{copyId:`auth-key-labels-help-copy`,get label(){return z(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var b=L(y,2);Ci(b),O(v);var x=L(v,2),S=F(x);{let e=e=>{var t=KGe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>$x()]),H(e,t)},t=e=>{Be();var t=Er();R(e=>U(t,e),[()=>aS()]),H(e,t)},n=j(()=>nS());l3(S,{copyId:`auth-key-dashboard-access-help-copy`,get label(){return z(n)},title:e,help:t,$$slots:{title:!0,help:!0}})}var C=L(S,2),w=F(C);Ci(w);var T=L(w,2),E=F(T,!0);O(T),O(C),O(x);var D=L(x,2);{let e=j(()=>dS());S6(D,{id:`auth-key-description`,get label(){return z(e)},children:(e,t)=>{var n=qGe();it(n),R(e=>q(n,`placeholder`,e),[()=>mS()]),Ai(n,()=>V9.form.description,e=>V9.form.description=e),H(e,n)},$$slots:{default:!0}})}O(t),R((e,t,n,r,i)=>{U(a,`${e??``} `),U(s,`(${t??``})`),U(d,`${n??``} `),U(p,`(${r??``})`),U(E,i)},[()=>Cx(),()=>Ex(),()=>kx(),()=>Mx(),()=>cS()]),Ai(c,()=>V9.form.name,e=>V9.form.name=e),Ai(m,()=>V9.form.expires_at,e=>V9.form.expires_at=e),Ai(_,()=>V9.form.user_path,e=>V9.form.user_path=e),Ai(b,()=>V9.form.labels,e=>V9.form.labels=e),ji(w,()=>V9.form.dashboard_access,e=>V9.form.dashboard_access=e),H(e,t)};W(r,e=>{V9.issuedValue?e(i):e(a,-1)}),H(e,n)},$$slots:{default:!0}})}A()}var XGe=V(`

      `),ZGe=V(`

      `,1);function QGe(e,t){k(t,!0);{let t=e=>{var t=XGe(),n=F(t,!0);O(t),R(()=>U(n,V9.labelsEditor.name)),H(e,t)},n=j(()=>qS()),r=j(()=>XS()),i=j(()=>$S());x6(e,{get open(){return V9.labelsEditor.open},get title(){return z(n)},get ariaLabel(){return z(r)},get error(){return V9.labelsEditor.error},get submitting(){return V9.labelsEditor.submitting},get submitLabel(){return z(i)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>V9.closeLabelsEditor(),onsubmit:()=>V9.submitLabelsEditor(),headerHint:t,children:(e,t)=>{{let t=j(()=>nC());S6(e,{id:`auth-key-labels-edit`,get label(){return z(t)},children:(e,t)=>{var n=ZGe(),r=I(n);Ci(r);var i=L(r,2),a=F(i,!0);O(i),R(e=>U(a,e),[()=>aC()]),Ai(r,()=>V9.labelsEditor.value,e=>V9.labelsEditor.value=e),H(e,n)},$$slots:{default:!0}})}},$$slots:{headerHint:!0,default:!0}})}A()}var $Ge=V(` `),eKe=V(`
      `),tKe=V(``),H9=V(` `),nKe=V(` `),rKe=V(` `,1),iKe=V(`
      `),aKe=V(`
      `);function oKe(e,t){k(t,!0);var n=aKe(),r=F(n),i=F(r),a=F(i),o=F(a),s=F(o,!0);O(o);var c=L(o),l=F(c,!0);O(c);var u=L(c),d=F(u,!0);O(u);var f=L(u),p=F(f,!0);O(f);var m=L(f),h=F(m,!0);O(m);var g=L(m),_=F(g),v=F(_);J(L(v),{get icon(){return Nwe},width:`13`,height:`13`}),O(_),O(g);var y=L(g),b=F(y,!0);O(y);var x=L(y),S=F(x,!0);O(x);var C=L(x);O(a),O(i);var w=L(i);G(w,21,()=>V9.visibleKeys,e=>e.id,(e,t)=>{var n=iKe();let r;var i=F(n),a=F(i,!0);O(i);var o=L(i),s=F(o,!0);O(o);var c=L(o),l=F(c,!0);O(c);var u=L(c),d=F(u),f=e=>{var n=eKe();G(n,20,()=>z(t).labels||[],e=>e,(e,t)=>{var n=$Ge(),r=F(n,!0);O(n),R(e=>{pi(n,e),U(r,t)},[()=>Lje(t)]),H(e,n)}),O(n),H(e,n)},p=e=>{H(e,tKe())};W(d,e=>{(z(t).labels||[]).length>0?e(f):e(p,-1)}),O(u);var m=L(u),h=F(m),g=F(h,!0);O(h),O(m);var _=L(m),v=F(_);let y;var b=F(v,!0);O(v),O(_);var x=L(_),S=F(x),C=e=>{var n=nKe(),r=F(n),i=F(r,!0);O(r);var a=L(r,2),o=e=>{var t=H9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>VS()]),H(e,t)},s=j(()=>P9(z(t)));W(a,e=>{z(s)&&e(o)}),O(n),R(e=>U(i,e),[()=>GTe(z(t).expires_at)]),H(e,n)},w=e=>{H(e,Er(`—`))};W(S,e=>{z(t).expires_at?e(C):e(w,-1)}),O(x);var T=L(x),E=F(T,!0);O(T);var D=L(T),ee=F(D),te=F(ee),ne=e=>{var n=rKe(),r=I(n);{let e=j(()=>z(t).dashboard_access?_R({name:z(t).name}):mR({name:z(t).name})),n=j(()=>!!V9.dashboardAccessID);J3(r,{get label(){return z(e)},class:`table-icon-btn`,onclick:()=>V9.toggleDashboardAccess(z(t)),get disabled(){return z(n)},children:(e,n)=>{{let n=j(()=>z(t).dashboard_access?qwe:hX);J(e,{get icon(){return z(n)},class:`table-icon-svg`})}},$$slots:{default:!0}})}var i=L(r,2);{let e=j(()=>bR({name:z(t).name}));J3(i,{get label(){return z(e)},class:`table-icon-btn`,onclick:()=>V9.openLabelsEditor(z(t)),children:(e,t)=>{J(e,{get icon(){return uX},class:`table-icon-svg`})},$$slots:{default:!0}})}var a=L(i,2);{let e=j(()=>V9.deactivatingID===z(t).id?ER({name:z(t).name}):CR({name:z(t).name})),n=j(()=>V9.deactivatingID===z(t).id);J3(a,{get label(){return z(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>V9.deactivateKey(z(t)),get disabled(){return z(n)},children:(e,t)=>{J(e,{get icon(){return Vwe},class:`table-icon-svg`})},$$slots:{default:!0}})}H(e,n)},re=e=>{var n=H9(),r=F(n,!0);O(n),R((e,t)=>{q(n,`title`,e),U(r,t)},[()=>z(t).deactivated_at?kR({date:vZ(z(t).deactivated_at)}):WS(),()=>WS()]),H(e,n)},ie=j(()=>F9(z(t)));W(te,e=>{z(t).active?e(ne):z(ie)&&e(re,1)}),O(ee),O(D),O(n),R((e,i,o,c)=>{r=K(n,1,`svelte-nf0ldb`,null,r,e),U(a,z(t).name),U(s,z(t).description||`—`),U(l,z(t).user_path||`—`),U(g,z(t).redacted_value),y=K(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":z(t).dashboard_access,"auth-key-status-inactive":!z(t).dashboard_access}),U(b,i),q(x,`title`,o),U(E,c)},[()=>({"auth-key-row-deactivated":F9(z(t))}),()=>z(t).dashboard_access?FS():RS(),()=>z(t).expires_at?vZ(z(t).expires_at):``,()=>WX.formatTimestamp(z(t).created_at)]),H(e,n)}),O(w),O(r),O(n),R((e,t,n,r,i,a,o,c,u,f)=>{U(s,e),U(l,t),U(d,n),U(p,r),U(h,i),q(_,`title`,a),U(v,`${o??``} `),U(b,c),U(S,u),q(C,`aria-label`,f)},[()=>Cx(),()=>_S(),()=>bS(),()=>CS(),()=>ES(),()=>dR(),()=>$x(),()=>kx(),()=>kS(),()=>MS()]),H(e,n),A()}var sKe=V(``),cKe=V(`
      `),lKe=V(``),uKe=V(`

      `),dKe=V(`
      `),fKe=V(`
      `),U9=V(`

      `),pKe=V(`
      `);function mKe(e,t){k(t,!0),pn(()=>{X.refreshTick,TX.page===`auth-keys`&&V9.fetchKeys()});var n=pKe(),r=F(n),i=F(r),a=F(i,!0);O(i);var o=L(i,2),s=F(o),c=e=>{var t=sKe(),n=F(t);J(n,{get icon(){return dX},class:`table-icon-svg`});var r=L(n,2),i=F(r,!0);O(r),O(t),R(e=>{t.disabled=V9.formSubmitting,U(i,e)},[()=>Mb()]),B(`click`,t,()=>{V9.formSubmitting||V9.openForm()}),H(e,t)};W(s,e=>{V9.available&&!X.authError&&e(c)}),O(o),O(r);var l=L(r,2),u=e=>{var t=cKe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Fb()]),H(e,t)};W(l,e=>{!V9.available&&!X.authError&&e(u)});var d=L(l,2),f=e=>{var t=lKe(),n=F(t,!0);O(t),R(()=>U(n,V9.error)),H(e,t)};W(d,e=>{V9.error&&!X.authError&&!V9.formOpen&&e(f)});var p=L(d,2),m=e=>{var t=uKe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Rb()]),H(e,t)};W(p,e=>{V9.available&&!X.authError&&e(m)});var h=L(p,2);YGe(h,{});var g=L(h,2);QGe(g,{});var _=L(g,2),v=e=>{var t=dKe(),n=F(t);{let e=j(()=>Vb());a3(n,{size:18,get label(){return z(e)}})}O(t),H(e,t)};W(_,e=>{V9.loading&&V9.keys.length===0&&e(v)});var y=L(_,2),b=e=>{var t=fKe(),n=F(t),r=F(n);{let e=j(()=>Wb()),t=j(()=>qb());B3(r,{get placeholder(){return z(e)},get label(){return z(t)},get value(){return V9.filter},set value(e){V9.filter=e}})}O(n);var i=L(n,2),a=F(i),o=F(a);Ci(o);var s=L(o,2),c=F(s),l=L(c),u=e=>{var t=Er();R(()=>U(t,`(${V9.inactiveCount??``})`)),H(e,t)};W(l,e=>{V9.inactiveCount>0&&e(u)}),O(s),O(a),O(i),O(t),R(e=>U(c,`${e??``} `),[()=>Xb()]),ji(o,()=>V9.showInactive,e=>V9.showInactive=e),H(e,t)};W(y,e=>{V9.keys.length>0&&V9.available&&e(b)});var x=L(y,2),S=e=>{oKe(e,{})};W(x,e=>{V9.visibleKeys.length>0&&V9.available&&e(S)});var C=L(x,2),w=e=>{var t=U9(),n=F(t);O(t),R((e,t)=>U(n,`${e??``}${t??``}`),[()=>$b(),()=>V9.inactiveCount>0&&!V9.showInactive?` `+nx({count:V9.inactiveCount}):``]),H(e,t)};W(C,e=>{V9.keys.length>0&&V9.visibleKeys.length===0&&V9.available&&e(w)});var T=L(C,2),E=e=>{var t=U9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>ax()]),H(e,t)};W(T,e=>{V9.keys.length===0&&!V9.loading&&!X.authError&&!V9.error&&V9.available&&e(E)}),O(n),R(e=>U(a,e),[()=>kb()]),H(e,n),A()}br([`click`]);var hKe=V(``),gKe=V(`
      `);function _Ke(e,t){k(t,!0);let n=Qi.map(e=>({value:e,label:$Te(e)}));var r=Dr(),i=I(r),a=e=>{var t=gKe(),r=F(t),i=F(r,!0);O(r);var a=L(r,2);G(a,21,()=>n,e=>e.value,(e,t)=>{var n=hKe(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(a);var o;hi(a),O(t),R((e,t,n)=>{U(i,e),q(a,`aria-label`,t),o!==(o=n)&&(a.value=(a.__value=n)??``,mi(a,n))},[()=>cI(),()=>cI(),()=>Y()]),B(`change`,a,e=>sa(e.currentTarget.value)),H(e,t)};W(i,e=>{n.length>1&&e(a)}),H(e,r),A()}br([`change`]);var vKe=V(`

      `),yKe=V(``),bKe=V(``),xKe=V(`
      `,1);function SKe(e,t){k(t,!0);function n(){WX.saveOverride(),X.refresh()}function r(){WX.clearOverride(),X.refresh()}var i=xKe(),a=I(i),o=F(a);{let e=e=>{var t=vKe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Ll()]),H(e,t)},t=j(()=>Bl()),n=j(()=>Ul());l3(o,{copyId:`timezone-help-copy`,get label(){return z(t)},get text(){return z(n)},title:e,$$slots:{title:!0}})}O(a);var s=L(a,2),c=F(s),l=F(c),u=F(l,!0);O(l);var d=L(l,2),f=F(d),p=F(f,!0);O(f),f.value=f.__value=``,G(L(f),17,()=>WX.options,e=>e.value,(e,t)=>{var n=yKe(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(d),O(c),O(s);var m=L(s,2),h=F(m),g=e=>{var t=bKe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Ql()]),B(`click`,t,r),H(e,t)};W(h,e=>{WX.override&&e(g)}),O(m),R((e,t)=>{U(u,e),U(p,t)},[()=>Kl(),()=>Yl({timezone:WX.detectedTimeZoneLabel()})]),yr(`focus`,d,()=>WX.ensureOptions()),B(`change`,d,n),gi(d,()=>WX.override,e=>WX.override=e),H(e,i),A()}br([`change`,`click`]);var CKe=V(``),wKe=V(`

      `,1);function TKe(e,t){k(t,!0);let n=j(()=>Q.failoverSaving||Q.failoverGenerating||Q.failoverDraftSaving||!Q.failoverAvailable||!Q.failoverEnabled());var r=wKe(),i=I(r),a=F(i),o=F(a),s=F(o,!0);O(o),O(a);var c=L(a,2),l=F(c),u=F(l);J(u,{get icon(){return bX},class:`form-action-icon`});var d=L(u,2),f=F(d,!0);O(d),O(l);var p=L(l,2),m=F(p);J(m,{get icon(){return vX},class:`form-action-icon`});var h=L(m,2),g=F(h,!0);O(h),O(p),O(c),O(i);var _=L(i,2),v=F(_),y=e=>{var t=CKe(),n=F(t,!0);O(t),R(()=>U(n,Q.failoverError)),H(e,t)};W(v,e=>{Q.failoverError&&e(y)}),O(_),t5(L(_,2),{}),R((e,t,r)=>{U(s,e),l.disabled=z(n),U(f,t),p.disabled=z(n),U(g,r)},[()=>tu(),()=>Q.failoverGenerating?iu():su(),()=>uu()]),B(`click`,l,()=>Q.generateFailoverRules()),B(`click`,p,()=>Q.openFailoverResetDialog()),H(e,r),A()}br([`click`]);function EKe(){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 DKe(){return[{value:0,label:kM()},{value:1,label:MM()},{value:2,label:FM()},{value:3,label:RM()},{value:4,label:VM()},{value:5,label:WM()},{value:6,label:qM()}]}var OKe=V(`

      `),kKe=V(``),AKe=V(`

      `),jKe=V(``),MKe=V(``),NKe=V(`
      `,1);function PKe(e,t){k(t,!0);let n=M(P(EKe())),r=M(!1),i=M(!1),a=M(``),o=M(!1),s=j(()=>QX.budgetsVisible());async function c(){if(await QX.ensureLoaded(),!QX.budgetsVisible()){N(a,``);return}N(r,!0),N(a,``);try{let e=await YX(`/admin/budgets/settings`,{label:`budget settings`});if(e.stale)return;if(!e.ok){N(a,bM(),!0);return}N(n,W9(e.data,z(n)),!0)}catch(e){console.error(`Failed to fetch budget settings:`,e),N(a,bM(),!0)}finally{N(r,!1)}}async function l(){if(!z(i)){N(i,!0);try{let e=await XX(`/admin/budgets/settings`,`PUT`,W9(z(n),z(n)),{label:`budget settings`});if(e.stale)return;if(!e.ok){cZ.error(CM());return}N(n,W9(e.data,z(n)),!0),N(a,``),cZ.success(EM())}catch(e){console.error(`Failed to save budget settings:`,e),cZ.error(CM())}finally{N(i,!1)}}}pn(()=>{X.refreshTick,c()});var u=Dr(),d=I(u),f=e=>{var t=NKe(),s=I(t),c=F(s);{let e=e=>{var t=OKe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Ou()]),H(e,t)},t=j(()=>Su()),n=j(()=>Tu());l3(c,{copyId:`budget-settings-help-copy`,get label(){return z(t)},get text(){return z(n)},title:e,$$slots:{title:!0}})}var u=L(c,2),d=F(u),f=F(d),p=F(f,!0);O(f);var m=L(f,2),h=F(m);{let e=e=>{var t=kKe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>$j()]),H(e,t)},t=j(()=>Xj());l3(h,{copyId:`budget-monthly-day-help-copy`,get label(){return z(t)},external:!0,get open(){return z(o)},set open(e){N(o,e,!0)},title:e,$$slots:{title:!0}})}var g=L(h,2);Ci(g),O(m);var _=L(m,2),v=F(_),y=F(v,!0);O(v);var b=L(v,2);Ci(b),O(_);var x=L(_,2),S=F(x),C=F(S,!0);O(S);var w=L(S,2);Ci(w),O(x);var T=L(x,2),E=F(T),D=e=>{var t=AKe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>nM()]),H(e,t)};W(E,e=>{z(o)&&e(D)}),O(T),O(d);var ee=L(d,2),te=F(ee),ne=F(te,!0);O(te);var re=L(te,2),ie=F(re),ae=F(ie,!0);O(ie);var oe=L(ie,2);G(oe,21,DKe,e=>e.value,(e,t)=>{var n=jKe(),r=F(n,!0);O(n);var i={};R(()=>{U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(oe),O(re);var se=L(re,2),ce=F(se),le=F(ce,!0);O(ce);var ue=L(ce,2);Ci(ue),O(se);var de=L(se,2),fe=F(de),pe=F(fe,!0);O(fe);var me=L(fe,2);Ci(me),O(de),Be(2),O(ee);var he=L(ee,2),ge=F(he),_e=F(ge,!0);O(ge);var ve=L(ge,4),ye=F(ve),be=F(ye,!0);O(ye);var xe=L(ye,2);Ci(xe),O(ve);var Se=L(ve,2),Ce=F(Se),we=F(Ce,!0);O(Ce);var Te=L(Ce,2);Ci(Te),O(Se),Be(2),O(he),O(u);var Ee=L(u,2),De=F(Ee),Oe=F(De);J(Oe,{get icon(){return mX},class:`form-action-icon`});var ke=L(Oe,2),Ae=F(ke,!0);O(ke),O(De);var je=L(De,2),Me=e=>{{let t=j(()=>_M());a3(e,{size:16,get label(){return z(t)}})}};W(je,e=>{z(r)&&e(Me)}),O(Ee),O(s);var Ne=L(s,2),Pe=F(Ne),Fe=e=>{var t=MKe(),n=F(t,!0);O(t),R(()=>U(n,z(a))),H(e,t)};W(Pe,e=>{z(a)&&e(Fe)}),O(Ne),R((e,t,n,a,o,s,c,l,u,d,f)=>{U(p,e),U(y,t),U(C,n),U(ne,a),U(ae,o),U(le,s),U(pe,c),U(_e,l),U(be,u),U(we,d),De.disabled=z(i)||z(r),q(De,`aria-busy`,z(i)?`true`:`false`),U(Ae,f)},[()=>Vj(),()=>cM(),()=>dM(),()=>Wj(),()=>aM(),()=>cM(),()=>dM(),()=>qj(),()=>cM(),()=>dM(),()=>mM()]),Ai(g,()=>z(n).monthly_reset_day,e=>z(n).monthly_reset_day=e),Ai(b,()=>z(n).monthly_reset_hour,e=>z(n).monthly_reset_hour=e),Ai(w,()=>z(n).monthly_reset_minute,e=>z(n).monthly_reset_minute=e),gi(oe,()=>z(n).weekly_reset_weekday,e=>z(n).weekly_reset_weekday=e),Ai(ue,()=>z(n).weekly_reset_hour,e=>z(n).weekly_reset_hour=e),Ai(me,()=>z(n).weekly_reset_minute,e=>z(n).weekly_reset_minute=e),Ai(xe,()=>z(n).daily_reset_hour,e=>z(n).daily_reset_hour=e),Ai(Te,()=>z(n).daily_reset_minute,e=>z(n).daily_reset_minute=e),B(`click`,De,l),H(e,t)};W(d,e=>{z(s)&&e(f)}),H(e,u),A()}br([`click`]);var FKe=V(`

      `);function IKe(e,t){k(t,!0);var n=Dr(),r=I(n),i=e=>{var t=FKe(),n=F(t),r=F(n),i=F(r,!0);O(r);var a=L(r,2),o=F(a,!0);O(a),O(n);var s=L(n,2),c=F(s),l=F(c);J(l,{get icon(){return pX},class:`form-action-icon`});var u=L(l,2),d=F(u,!0);O(u),O(c),O(s),O(t),R((e,t,n)=>{U(i,e),U(o,t),c.disabled=y6.resetAllLoading,U(d,n)},[()=>pu(),()=>gu(),()=>yu()]),B(`click`,c,()=>y6.openResetDialog()),H(e,t)},a=j(()=>QX.budgetsVisible());W(r,e=>{z(a)&&e(i)}),H(e,n),A()}br([`click`]);function LKe(){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 RKe(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 zKe(e){return e&&e.error&&e.error.message?e.error.message:``}var BKe=V(`

      `),VKe=V(`config`),HKe=V(``),UKe=V(`
      `),WKe=V(`

      `),GKe=V(``),KKe=V(`
      `,1);function qKe(e,t){k(t,!0);let n=M(P([])),r=M(!0),i=M(!1),a=M(!1),o=M(``);function s(){z(n).push(LKe())}function c(e){let t=z(n)[e];!t||t.managed||z(n).splice(e,1)}async function l(){N(i,!0),N(o,``);try{let e=await YX(`/admin/tagging/settings`,{label:`tagging settings`});if(e.stale)return;if(!e.ok){N(o,RN(),!0);return}N(n,G9(e.data),!0),N(r,e.data&&e.data.editable!==!1,!0)}catch(e){console.error(`Failed to fetch tagging settings:`,e),N(o,RN(),!0)}finally{N(i,!1)}}async function u(){if(!(z(a)||!z(r))){N(a,!0);try{let e=await XX(`/admin/tagging/settings`,`PUT`,RKe(z(n)),{label:`tagging settings`});if(e.stale)return;if(!e.ok){cZ.error(e.status!==401&&zKe(e.data)||VN());return}N(n,G9(e.data),!0),N(r,e.data&&e.data.editable!==!1,!0),N(o,``),cZ.success(WN())}catch(e){console.error(`Failed to save tagging settings:`,e),cZ.error(VN())}finally{N(a,!1)}}}pn(()=>{X.refreshTick,l()});var d=KKe(),f=I(d),p=F(f);{let e=e=>{var t=BKe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>XM()]),H(e,t)},t=j(()=>$M()),n=j(()=>nN());l3(p,{copyId:`tagging-settings-help-copy`,get label(){return z(t)},get text(){return z(n)},title:e,$$slots:{title:!0}})}var m=L(p,2),h=F(m);G(h,17,()=>z(n),Fr,(e,t,n)=>{var i=UKe(),a=F(i),o=F(a);q(o,`for`,`tagging-header-`+n);var s=F(o,!0);O(o);var l=L(o,2);Ci(l),q(l,`id`,`tagging-header-`+n),O(a);var u=L(a,2),d=F(u);q(d,`for`,`tagging-prefix-`+n);var f=F(d,!0);O(d);var p=L(d,2);Ci(p),q(p,`id`,`tagging-prefix-`+n),O(u);var m=L(u,2),h=F(m);q(h,`for`,`tagging-delimiter-`+n);var g=F(h,!0);O(h);var _=L(h,2);Ci(_),q(_,`id`,`tagging-delimiter-`+n),O(m);var v=L(m,2),y=F(v);Ci(y);var b=L(y,2),x=F(b,!0);O(b),O(v);var S=L(v,2),C=F(S),w=e=>{var t=VKe();R(e=>q(t,`title`,e),[()=>_N()]),H(e,t)},T=e=>{var i=HKe(),a=F(i,!0);O(i),R((e,t)=>{i.disabled=!z(r),q(i,`aria-label`,e),U(a,t)},[()=>CN({header:z(t).header||n+1}),()=>bN()]),B(`click`,i,()=>c(n)),H(e,i)};W(C,e=>{z(t).managed?e(w):e(T,-1)}),O(S),O(i),R((e,n,i,a)=>{U(s,e),l.disabled=z(t).managed||!z(r),U(f,n),p.disabled=z(t).managed||!z(r),U(g,i),_.disabled=z(t).managed||!z(r),y.disabled=z(t).managed||!z(r),U(x,a)},[()=>aN(),()=>cN(),()=>dN(),()=>mN()]),Ai(l,()=>z(t).header,e=>z(t).header=e),Ai(p,()=>z(t).prefix,e=>z(t).prefix=e),Ai(_,()=>z(t).delimiter,e=>z(t).delimiter=e),ji(y,()=>z(t).do_not_pass,e=>z(t).do_not_pass=e),H(e,i)});var g=L(h,2),_=e=>{{let t=j(()=>EN());a3(e,{size:16,get label(){return z(t)}})}};W(g,e=>{z(i)&&e(_)});var v=L(g,2),y=e=>{var t=WKe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>kN()]),H(e,t)};W(v,e=>{!z(i)&&z(n).length===0&&e(y)}),O(m);var b=L(m,2),x=F(b),S=F(x);J(S,{get icon(){return dX},class:`form-action-icon`});var C=L(S,2),w=F(C,!0);O(C),O(x);var T=L(x,2),E=F(T);J(E,{get icon(){return mX},class:`form-action-icon`});var D=L(E,2),ee=F(D,!0);O(D),O(T),O(b),O(f);var te=L(f,2),ne=F(te),re=e=>{var t=GKe(),n=F(t,!0);O(t),R(()=>U(n,z(o))),H(e,t)};W(ne,e=>{z(o)&&e(re)}),O(te),R((e,t)=>{x.disabled=!z(r)||z(a)||z(i),U(w,e),T.disabled=!z(r)||z(a)||z(i),q(T,`aria-busy`,z(a)?`true`:`false`),U(ee,t)},[()=>MN(),()=>FN()]),B(`click`,x,s),B(`click`,T,u),H(e,d),A()}br([`click`]);function JKe(e){let t=e||{};if(t.selectedPreset)return{days:parseInt(t.selectedPreset,10)||30};let n=t.customStartDate?_Z(t.customStartDate):``,r=t.customEndDate||t.today||null;return{start_date:n,end_date:r?_Z(r):``}}function YKe(e,t,n,r){return{...JKe(e),user_path:String(t||``).trim(),selector:String(n||``).trim(),confirmation:r}}function XKe(e){let t=Number(e&&e.matched||0),n=Number(e&&e.recalculated||0),r=Number(e&&e.without_pricing||0),i=EF({matched:t,recalculated:n});return r>0&&(i+=` `+kF({count:r})),i}var ZKe=V(`

      `),QKe=V(`
      `);function $Ke(e,t){k(t,!0);let n=M(``),r=M(``),i=M(!1),a=j(()=>QX.booleanFlag(`USAGE_PRICING_RECALCULATION_ENABLED`,!1));function o(){if(!z(a)){cZ.error(mF());return}z(i)||nZ.open({title:dF(),titleId:`pricingRecalculateDialogTitle`,inputId:`pricing-recalculate-confirmation`,requiredText:_F(),confirmLabel:dF(),icon:ZY,dialogClass:`pricing-recalculate-dialog`,message:bF(),onConfirm:()=>s()})}async function s(){if(!z(a)){cZ.error(mF());return}if(!z(i)){N(i,!0);try{let e=await XX(`/admin/usage/recalculate-pricing`,`POST`,YKe({selectedPreset:AZ.selectedPreset,customStartDate:AZ.customStartDate,customEndDate:AZ.customEndDate,today:WX.todayDate()},z(n),z(r),_F()),{label:`pricing recalculation`});if(e.stale)return;if(!e.ok){nZ.error=CF();return}nZ.close(),cZ.success(XKe(e.data)),FZ.fetchUsage()}catch(e){console.error(`Failed to recalculate pricing:`,e),nZ.error=CF()}finally{N(i,!1)}}}var c=Dr(),l=I(c),u=e=>{var t=QKe(),s=F(t);{let e=e=>{var t=ZKe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>WP()]),H(e,t)},t=j(()=>qP()),n=j(()=>XP());l3(s,{copyId:`pricing-recalculate-help-copy`,get label(){return z(t)},get text(){return z(n)},title:e,$$slots:{title:!0}})}var c=L(s,2),l=F(c),u=F(l),d=F(u,!0);O(u);var f=L(u,2);LZ(F(f),{}),O(f),O(l);var p=L(l,2),m=F(p),h=F(m,!0);O(m);var g=L(m,2);Ci(g),O(p);var _=L(p,2),v=F(_),y=F(v,!0);O(v);var b=L(v,2);Ci(b),O(_),O(c);var x=L(c,2),S=F(x),C=F(S);J(C,{get icon(){return ZY},class:`form-action-icon`});var w=L(C,2),T=F(w,!0);O(w),O(S),O(x),O(t),R((e,t,n,r,o)=>{U(d,e),U(h,t),U(y,n),q(b,`placeholder`,r),S.disabled=z(i)||!z(a),q(S,`aria-busy`,z(i)?`true`:`false`),U(T,o)},[()=>$P(),()=>nF(),()=>aF(),()=>cF(),()=>dF()]),Ai(g,()=>z(n),e=>N(n,e)),Ai(b,()=>z(r),e=>N(r,e)),B(`click`,S,o),H(e,t)};W(l,e=>{z(a)&&e(u)}),H(e,c),A()}br([`click`]);function K9(e){return String(e&&e.status||`ok`).toLowerCase()}function q9(e){if(!e||typeof e!=`object`)return aP();let t=Number(e.model_count||0),n=Number(e.provider_count||0),r=K9(e);return _P({status:r===`ok`?cP():r===`partial`?dP():mP(),models:bP({count:t}),providers:CP({count:n})})}function eqe(e){return!!e&&K9(e)===`ok`}function J9(e){let t=e&&e.steps;return Array.isArray(t)?t:[]}function tqe(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 nqe=V(`

      `),rqe=V(`
    • `),iqe=V(`
        `),aqe=V(`
        `,1);function oqe(e,t){k(t,!0);let n=M(!1),r=M(null);async function i(){if(!z(n)){N(n,!0),N(r,null);try{let e=await XX(`/admin/runtime/refresh`,`POST`,void 0,{label:`runtime refresh`});if(e.stale)return;if(!e.ok){cZ.error(mP());return}N(r,e.data&&typeof e.data==`object`?e.data:null,!0),eqe(z(r))?cZ.success(q9(z(r))):cZ.error(q9(z(r))),X.refresh()}catch(e){console.error(`Failed to refresh runtime:`,e),cZ.error(mP())}finally{N(n,!1)}}}var a=aqe(),o=I(a),s=F(o);{let e=e=>{var t=nqe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>qN()]),H(e,t)},t=j(()=>XN()),n=j(()=>$N());l3(s,{copyId:`runtime-refresh-help-copy`,get label(){return z(t)},get text(){return z(n)},title:e,$$slots:{title:!0}})}var c=L(s,2),l=F(c);let u;var d=F(l);J(d,{get icon(){return fX},class:`settings-refresh-icon`});var f=L(d,2),p=F(f,!0);O(f),O(l),O(c),O(o);var m=L(o,2),h=F(m),g=e=>{var t=iqe();G(t,21,()=>J9(z(r)),e=>e.name,(e,t)=>{var n=rqe(),r=F(n,!0);O(n),R(e=>{K(n,1,`runtime-refresh-step is-${z(t).status??``}`,`svelte-yeq2mp`),U(r,e)},[()=>tqe(z(t))]),H(e,n)}),O(t),H(e,t)},_=j(()=>J9(z(r)).length>0);W(h,e=>{z(_)&&e(g)}),O(m),R(e=>{u=K(l,1,`btn btn-primary btn-with-icon settings-refresh-btn`,null,u,{"is-refreshing":z(n)}),l.disabled=z(n),q(l,`aria-busy`,z(n)?`true`:`false`),U(p,e)},[()=>nP()]),B(`click`,l,i),H(e,a),A()}br([`click`]);var sqe=V(``),cqe=V(`

        `),lqe=V(`

        `),uqe=V(``),dqe=V(`
        `),fqe=V(`

        `);function pqe(e,t){k(t,!0);let n=M(P([])),r=M(!1),i=M(``),a=M(``);async function o(){N(r,!0),N(a,``);try{let e=await YX(`/admin/runtime/settings`,{label:`runtime settings`});if(e.stale)return;if(!e.ok){N(a,kP(),!0);return}N(n,Array.isArray(e.data?.settings)?e.data.settings:[],!0)}catch(e){console.error(`Failed to load runtime settings:`,e),N(a,kP(),!0)}finally{N(r,!1)}}async function s(e,t,r){if(!(e.locked||z(i))){N(i,e.key,!0);try{let i=await XX(`/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,cZ.error(MP({setting:e.label}));return}N(n,z(n).map(t=>t.key===e.key?i.data:t),!0),cZ.success(FP({setting:e.label}))}catch(t){r.value=e.value,console.error(`Failed to save runtime setting:`,t),cZ.error(MP({setting:e.label}))}finally{N(i,``)}}}pn(()=>{X.refreshTick,o()});var c=Dr(),l=I(c),u=e=>{var t=fqe(),o=F(t),c=F(o),l=F(c,!0);O(c);var u=L(c,2),d=e=>{var t=sqe(),n=F(t,!0);O(t),R(()=>U(n,z(a))),H(e,t)};W(u,e=>{z(a)&&e(d)}),O(o);var f=L(o,2);G(f,21,()=>z(n),e=>e.key,(e,t)=>{var n=dqe(),r=F(n),a=F(r),o=F(a,!0);O(a);var c=L(a,2),l=e=>{var n=cqe(),r=F(n,!0);O(n),R(()=>U(r,z(t).description)),H(e,n)};W(c,e=>{z(t).description&&e(l)});var u=L(c,2),d=e=>{var n=lqe(),r=F(n,!0);O(n),R(e=>U(r,e),[()=>RP({source:z(t).managed_by||VP()})]),H(e,n)};W(u,e=>{z(t).locked&&e(d)}),O(r);var f=L(r,2);G(f,21,()=>z(t).options||[],e=>e.value,(e,t)=>{var n=uqe(),r=F(n,!0);O(n);var i={};R(()=>{q(n,`title`,z(t).description||``),U(r,z(t).label),i!==(i=z(t).value)&&(n.value=(n.__value=z(t).value)??``)}),H(e,n)}),O(f);var p;hi(f),O(n),R(()=>{q(a,`for`,`runtime-setting-${z(t).key}`),U(o,z(t).label),q(f,`id`,`runtime-setting-${z(t).key}`),f.disabled=z(t).locked||z(i)!==``,p!==(p=z(t).value)&&(f.value=(f.__value=z(t).value)??``,mi(f,z(t).value))}),B(`change`,f,e=>s(z(t),e.currentTarget.value,e.currentTarget)),H(e,n)}),O(f),O(t),R(e=>{U(l,e),q(f,`aria-busy`,z(r)?`true`:`false`)},[()=>EP()]),H(e,t)};W(l,e=>{(z(n).length>0||z(a))&&e(u)}),H(e,c),A()}br([`change`]);var mqe=V(`
        `);function hqe(e,t){k(t,!0),pn(()=>{X.refreshTick,TX.page===`settings`&&(WX.ensureOptions(),QX.ensureLoaded())});var n=mqe(),r=F(n),i=F(r),a=F(i),o=F(a,!0);O(a),O(i),O(r);var s=L(r,2),c=F(s);SKe(c,{});var l=L(c,2);_Ke(l,{});var u=L(l,2);TKe(u,{});var d=L(u,2);PKe(d,{});var f=L(d,2);IKe(f,{});var p=L(f,2);qKe(p,{});var m=L(p,2);pqe(m,{});var h=L(m,2);$Ke(h,{}),oqe(L(h,2),{}),O(s);var g=L(s,2),_=F(g,!0);O(g),O(n),R((e,t)=>{U(o,e),U(_,t)},[()=>Qae(),()=>aTe()]),H(e,n),A()}var Y9=V(`
        `),gqe=V(`
         
        `),_qe=V(`
         
        `),vqe=V(`
         
        `),yqe=V(`
        `),bqe=V(`
        `,1),xqe=V(`
        `);function Sqe(e,t){k(t,!0);let n=Ri(t,`showPromptCache`,3,!0),r=E5({logPrefix:`Failed to copy interaction message:`}),i=j(()=>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?ufe({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=xqe();let l;var u=F(c),d=e=>{var r=gqe(),i=F(r),a=F(i),c=F(a,!0);O(a);var l=L(a,2),u=F(l,!0);O(l);var d=L(l,2),f=F(d,!0);O(d),O(i);var p=L(i,2),m=e=>{var n=Y9(),r=F(n);O(n),R(e=>U(r,`${e??``}: ${t.msg.functionCallID??``}`),[()=>zo()]),H(e,n)};W(p,e=>{t.msg.functionCallID&&e(m)});var h=L(p,2),g=e=>{var n=Dr();G(I(n),17,()=>t.msg.toolCalls,Fr,(e,n)=>{var r=Dr(),i=I(r),a=e=>{var r=Y9(),i=F(r);O(r),R(e=>U(i,`${e??``}: ${z(n).id??``}`),[()=>t.msg.toolCalls.length>1?hfe({name:z(n).name}):zo()]),H(e,r)};W(i,e=>{z(n).id&&e(a)}),H(e,r)}),H(e,n)};W(h,e=>{t.msg.role===`function_call`&&t.msg.toolCalls&&e(g)});var _=L(h,2),v=F(_,!0);O(_),O(r),R((e,n,i,a)=>{q(r,`title`,e),U(c,t.msg.roleLabel),U(u,n),U(f,i),U(v,a)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>s(t.msg),()=>WX.formatTimestamp(t.msg.timestamp),()=>J7(t.msg)]),H(e,r)},f=e=>{var r=bqe(),i=I(r),a=F(i),s=F(a,!0);O(a);var c=L(a,2),l=F(c,!0);O(c),O(i);var u=L(i,2),d=e=>{var r=_qe(),i=F(r,!0);O(r),R(e=>{q(r,`title`,e),U(i,t.msg.text)},[()=>n()?o(t.msg.promptCacheRatio):void 0]),H(e,r)};W(u,e=>{t.msg.text&&e(d)});var f=L(u,2),p=e=>{var n=yqe();G(n,23,()=>t.msg.toolCalls,(e,t)=>e.name+`-`+t,(e,t)=>{var n=vqe(),r=F(n),i=F(r),a=F(i,!0);O(i);var o=L(i,2),s=F(o,!0);O(o),O(r);var c=L(r,2),l=e=>{var n=Y9(),r=F(n);O(n),R(e=>U(r,`${e??``}: ${z(t).id??``}`),[()=>zo()]),H(e,n)};W(c,e=>{z(t).id&&e(l)});var u=L(c,2),d=F(u,!0);O(u),O(n),R((e,n)=>{U(a,z(t).name+`()`),U(s,e),U(d,n)},[()=>Y7(z(t))||Bo(),()=>Y7(z(t))||Bo()]),H(e,n)}),O(n),H(e,n)};W(f,e=>{t.msg.toolCalls&&e(p)}),R((e,n)=>{q(i,`title`,e),U(s,t.msg.roleLabel),U(l,n)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>WX.formatTimestamp(t.msg.timestamp)]),H(e,r)};W(u,e=>{z(i)?e(d):e(f,-1)});var p=L(u,2);let m;var h=F(p);{let e=j(()=>r.copied?tX:rX);J(h,{get icon(){return z(e)},width:`14`,height:`14`})}O(p),O(c),R((e,n,a)=>{K(c,1,ci([z(i)?`chat-function-note`:`chat-message`,t.msg.roleClass,{"is-anchor":t.msg.isAnchor,"is-after-anchor":t.msg.isAfterAnchor}]),`svelte-12s99s5`),q(c,`data-conversation-anchor`,t.msg.isAnchor?`true`:void 0),q(c,`data-entry-id`,t.msg.entryID),l=pi(c,``,l,e),m=K(p,1,`chat-message-copy svelte-12s99s5`,null,m,{"is-copied":r.copied}),q(p,`aria-label`,n),q(p,`title`,a)},[()=>({"--prompt-cache-fill":a(t.msg.promptCacheRatio),"--prompt-cache-visibility":n()&&t.msg.promptCacheRatio>0?`1`:`0`}),()=>r.copied?afe():Ro(),()=>r.copied?bfe():Ro()]),B(`click`,p,e=>{e.stopPropagation(),r.copy(VHe(t.msg))}),H(e,c),A()}br([`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 Cqe(e,t,n=0){return Z9(Q9(t)-Q9(e),t,n)}function wqe(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 Tqe=V(`
        `),Eqe=V(`
        `),$9=V(`

        `),Dqe=V(``),Oqe=V(`
        `,1),kqe=V(`

        `),Aqe=V(`
        `),jqe=V(``),Mqe=V(``),Nqe=V(``);function Pqe(e,t){k(t,!0);let n=X7,r=Number(Wi(`gomodel_interactions_panel_width`)),i=`gomodel_interactions_prompt_cache_fill`,a=Number.isFinite(r)&&r>0?r:520,o=M(P(a)),s=M(320),c=M(760),l=M(!1),u=M(!1),d=M(Wi(i,`true`)!==`false`),f=null;function p(e,{fullscreen:t,revealWithoutSlide:n=!1}){let r=q5(180);return t?aZ(e,{x:z(o),duration:r,easing:sZ}):n?{duration:0}:oZ(e,{axis:`x`,duration:r,easing:sZ})}async function m(e){if(e===z(l))return;let t=z(l)&&!e;N(u,t,!0),N(l,e,!0),t&&(await nr(),N(u,!1))}function h(){N(d,!z(d)),Gi(i,z(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);N(s,t.min,!0),N(c,t.max,!0),N(o,Z9(a,window.innerWidth,e),!0)}function v(e){N(o,Cqe(e,window.innerWidth,g()),!0),a=z(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`),Gi(`gomodel_interactions_panel_width`,a))}function S(e){e.key!==`ArrowLeft`&&e.key!==`ArrowRight`||(e.preventDefault(),a=z(o)+(e.key===`ArrowLeft`?24:-24),_(),a=z(o),Gi(`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=wqe(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)}pn(()=>{if(!n.conversationOpen)return;_();let e=document.querySelector(`.sidebar`),t=new ResizeObserver(_);e&&t.observe(e);let r=e=>{e.key===`Escape`&&!Xi.anyOpen&&(z(l)?m(!1):n.closeConversation())};return window.addEventListener(`keydown`,r),window.addEventListener(`resize`,_),()=>{x({}),t.disconnect(),window.removeEventListener(`keydown`,r),window.removeEventListener(`resize`,_)}}),pn(()=>{n.conversationOpen||N(l,!1)}),pn(()=>{if(!z(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)})}}),pn(()=>{TX.page!==`audit-logs`&&n.conversationOpen&&n.closeConversation()});var T=Dr(),E=I(T),D=e=>{var t=Dr();G(I(t),16,()=>[z(l)],e=>e,(e,t)=>{var r=Nqe();let i,a;var l=F(r),f=L(l,2),g=F(f),_=F(g),v=F(_,!0);O(_);var w=L(_,2),T=F(w);let E;O(w),O(g);var D=L(g,2),ee=F(D),te=F(ee);{let e=j(()=>t?Lwe:lX);J(te,{get icon(){return z(e)},class:`table-icon-svg`})}O(ee);var ne=L(ee,2);{let e=j(()=>Tue());$X(ne,{get label(){return z(e)},onclick:()=>n.closeConversation(),get el(){return n.conversationCloseBtnEl},set el(e){n.conversationCloseBtnEl=e}})}O(D),O(f);var re=L(f,2),ie=F(re),ae=e=>{var t=Tqe(),n=F(t);J(F(n),{get icon(){return Cwe},width:`14`,height:`14`}),O(n);var r=L(n,2);J(F(r),{get icon(){return bwe},width:`14`,height:`14`}),O(r),O(t),R((e,i,a,o,s)=>{q(t,`aria-label`,e),q(n,`aria-label`,i),q(n,`title`,a),q(r,`aria-label`,o),q(r,`title`,s)},[()=>Oue(),()=>Io(),()=>Io(),()=>Lo(),()=>Lo()]),B(`click`,n,()=>C(-1)),B(`click`,r,()=>C(1)),H(e,t)};W(ie,e=>{n.conversationMessages.length>1&&e(ae)});var oe=L(ie,2),se=e=>{var t=Eqe(),r=F(t,!0);O(t),R(()=>U(r,n.conversationError)),H(e,t)};W(oe,e=>{n.conversationError&&e(se)});var ce=L(oe,2),le=e=>{var t=$9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Fue()]),H(e,t)};W(ce,e=>{n.conversationLoading&&e(le)});var ue=L(ce,2),de=e=>{var t=$9(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>Rue()]),H(e,t)},fe=j(()=>!n.conversationLoading&&!n.followUpSending&&!n.conversationError&&n.conversationMessages.length===0&&!n.conversationLiveWaiting());W(ue,e=>{z(fe)&&e(de)});var pe=L(ue,2),me=e=>{var t=Oqe(),r=I(t),i=e=>{var t=Dqe(),n=F(t);let r;var i=L(n,2),a=F(i),o=L(a),s=F(o,!0);O(o),O(i),O(t),R((e,i,o)=>{q(t,`aria-checked`,z(d)),q(t,`title`,e),r=K(n,1,`conversation-cache-switch svelte-ssrzja`,null,r,{"is-active":z(d)}),U(a,`${i??``} `),U(s,o)},[()=>z(d)?Vue():Wue(),()=>que(),()=>Xue()]),B(`click`,t,h),H(e,t)},a=j(()=>n.conversationMessages.some(e=>Number(e.promptCacheRatio||0)>0));W(r,e=>{z(a)&&e(i)});var o=L(r,2);G(o,21,()=>n.conversationMessages,e=>e.uid,(e,t)=>{Sqe(e,{get msg(){return z(t)},get showPromptCache(){return z(d)}})}),O(o),Fi(o,e=>n.conversationThreadEl=e,()=>n?.conversationThreadEl),H(e,t)};W(pe,e=>{n.conversationMessages.length>0&&e(me)});var he=L(pe,2),ge=e=>{var t=kqe(),n=F(t,!0);O(t),R(e=>U(n,e),[()=>$ue()]),H(e,t)};W(he,e=>{n.conversationTruncated&&e(ge)});var _e=L(he,2),ve=e=>{var t=Aqe(),r=L(F(t),2),i=F(r,!0);O(r),O(t),R(e=>U(i,e),[()=>n.conversationLiveStatusText()]),H(e,t)},ye=j(()=>n.conversationLiveWaiting());W(_e,e=>{z(ye)&&e(ve)}),O(re);var be=L(re,2),xe=e=>{var t=Mqe(),r=F(t),i=F(r);it(i);var a=L(i,2),o=e=>{var t=jqe(),r=F(t,!0);O(t),R(()=>U(r,n.followUpError)),H(e,t)};W(a,e=>{n.followUpError&&e(o)});var s=L(a,2),c=F(s),l=F(c,!0);O(c);var u=L(c,2),d=F(u,!0);O(u),O(s),O(r),O(t),R((e,t,n,r,a,o)=>{q(i,`aria-label`,e),q(i,`placeholder`,t),i.disabled=n,U(l,r),u.disabled=a,U(d,o)},[()=>nde(),()=>ade(),()=>n.followUpSending||n.conversationLiveWaiting(),()=>n.selectedConversationEntry()?.path||``,()=>!n.canSendFollowUp(),()=>n.followUpSending?poe():uoe()]),yr(`submit`,r,e=>{e.preventDefault(),n.sendFollowUp()}),Ai(i,()=>n.followUpText,e=>n.followUpText=e),H(e,t)},Se=j(()=>n.conversationAnchorID&&n.followUpKind());W(be,e=>{z(Se)&&e(xe)}),O(r),Fi(r,e=>n.conversationDialogEl=e,()=>n?.conversationDialogEl),R((e,u,d,f,p,m)=>{i=K(r,1,`conversation-drawer svelte-ssrzja`,null,i,{"conversation-drawer-fullscreen":t}),q(r,`role`,t?`dialog`:void 0),q(r,`aria-modal`,t?`true`:void 0),a=pi(r,``,a,{"--conversation-panel-width":z(o)+`px`}),q(l,`aria-label`,e),q(l,`aria-valuemin`,z(s)),q(l,`aria-valuemax`,z(c)),q(l,`aria-valuenow`,z(o)),U(v,u),q(w,`aria-label`,d),q(w,`title`,f),E=K(T,1,`live-dot`,null,E,{"is-streaming":n.conversationFollowLatest}),q(ee,`aria-label`,p),q(ee,`title`,m),q(ee,`aria-pressed`,t)},[()=>Yle(),()=>Qle(),()=>n.conversationFollowLatest?tue():iue(),()=>n.conversationFollowLatest?sue():uue(),()=>t?pue():gue(),()=>t?yue():Sue()]),B(`pointerdown`,l,y),B(`pointermove`,l,b),B(`pointerup`,l,x),yr(`pointercancel`,l,x),yr(`lostpointercapture`,l,x),B(`keydown`,l,S),B(`click`,ee,()=>m(!t)),ii(7,r,()=>p,()=>({fullscreen:t,revealWithoutSlide:!t&&z(u)})),H(e,r)}),H(e,t)};W(E,e=>{n.conversationOpen&&e(D)}),H(e,T),A()}br([`pointerdown`,`pointermove`,`pointerup`,`keydown`,`click`]);var Fqe=V(`
        `,1);function Iqe(e,t){k(t,!0);let n={overview:d3,usage:SFe,budgets:yIe,"rate-limits":nLe,models:Cze,workflows:YBe,"audit-logs":FUe,guardrails:pWe,"mcp-servers":UWe,"providers-config":FGe,"auth-keys":mKe,settings:hqe};QTe(),WX.init(),AZ.init(),X.init(),Ji.init(),Yi.init(),TX.init(),pn(()=>{X.refreshTick,QX.fetch(),jZ.fetchModels(),jZ.fetchCategories()}),pn(()=>{document.body.classList.toggle(`dashboard-modal-open`,Xi.anyOpen)});let r=j(()=>n[TX.page]||d3);var i=Fqe(),a=I(i);STe(a,{});var o=L(a,2);let s;var c=F(o);WTe(c,{}),Kr(L(c,2),()=>z(r),(e,t)=>{t(e,{})}),O(o);var l=L(o,2);Pqe(l,{});var u=L(l,2);ATe(u,{});var d=L(u,2);PTe(d,{}),HTe(L(d,2),{}),R(()=>s=K(o,1,`content`,null,s,{"interactions-open":X7.conversationOpen})),H(e,i),A()}Ar(Iqe,{target:document.getElementById(`app`)}); \ No newline at end of file diff --git a/internal/admin/dashboard/static/dist/assets/index-DpGm0yY3.css b/internal/admin/dashboard/static/dist/assets/index-DpGm0yY3.css new file mode 100644 index 000000000..53d91a0da --- /dev/null +++ b/internal/admin/dashboard/static/dist/assets/index-DpGm0yY3.css @@ -0,0 +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{grid-column:2;justify-self:end}.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-track-period-monthly{background:color-mix(in srgb, #30302c 22%, var(--bg))}.budget-bar-fill-period-monthly{background:#30302c}.budget-bar-track-period-weekly{background:color-mix(in srgb, #68765c 22%, var(--bg))}.budget-bar-fill-period-weekly{background:#68765c}.budget-bar-track-period-daily{background:color-mix(in srgb, #b5652d 22%, var(--bg))}.budget-bar-fill-period-daily{background:#a75a26}.budget-bar-track-period-hourly{background:color-mix(in srgb, #783f22 22%, var(--bg))}.budget-bar-fill-period-hourly{background:#783f22}.budget-bar-track-period-custom{background:color-mix(in srgb, #bfa584 22%, var(--bg))}.budget-bar-fill-period-custom{background:#bfa584}.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}.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/assets/index-DqyjQGHH.js b/internal/admin/dashboard/static/dist/assets/index-DqyjQGHH.js new file mode 100644 index 000000000..f809e216b --- /dev/null +++ b/internal/admin/dashboard/static/dist/assets/index-DqyjQGHH.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(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&&!Ot){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=Wt(0),r;return()=>{fn()&&(L(n),vn(()=>(t===0&&(r=or(()=>e(()=>qt(n)))),t+=1,()=>{Ze(()=>{--t,t===0&&(r?.(),r=void 0,qt(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=Wt(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(wt))}))}#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(wt)}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 Pt.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&&Kt(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),L(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;wt?.is_fork?(this.#a&&wt.skip_effect(this.#a),this.#o&&wt.skip_effect(this.#o),this.#s&&wt.skip_effect(this.#s),wt.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:vt;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=>see(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=wt;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&&wt?.deactivate()}function ht(){var e=zn,t=e.b,n=wt,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 see(e,t,n){let r=zn;r===null&&ge();var i=void 0,a=Wt(Oe),o=!In,s=new Set;return gee(()=>{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=wt;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,Kt(a,t)):(a.f&8388608&&(a.f^=ae),Kt(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 vt(e){let t=gt(e);return t.equals=Ge,t}function yt(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 St(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&nr(t)}var Ct=null,wt=null,Tt=null,Et=null,Dt=null,Ot=!1,kt=!1,At=null,jt=null,Mt=0,Nt=1,Pt=class e{id=Nt++;#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(){Ct===null?Ct=this:(Ct.#n=this,this.#t=Ct),Ct=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,Mt++>1e3&&(this.#x(),uee());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=At=[],r=[],i=jt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw Bt(e),this.#h()||this.discard(),t}if(wt=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(At=null,jt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)zt(e,t);i.length>0&&wt.#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(),Tt=this,It(r),It(n),Tt=null,this.#s?.resolve();var s=wt;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(),wt=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(wt===null){let t=wt=new e;!kt&&!Ot&&Ze(()=>{t.#e||t.flush()})}return wt}apply(){Et=null}schedule(e){if(Dt=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(At!==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?Ct=e:t.#t=e,this.linked=!1}}};function lee(e){var t=Ot;Ot=!0;try{var n;for(e&&(wt!==null&&!wt.is_fork&&wt.flush(),n=e());;){if(tee(),wt===null)return n;wt.flush()}}finally{Ot=t}}function uee(){try{xe()}catch(e){$e(e,Dt)}}var Ft=null;function It(e){var t=e.length;if(t!==0){for(var n=0;n0)){Ht.clear();for(let e of Ft){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Ft.has(n)&&(Ft.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)}}Ft.clear()}}Ft=null}}function dee(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?dee(i,t,n,r):e&4194320&&!(e&2048)&&Lt(i,t,r)&&(et(i,y),Rt(i))}}function Lt(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&&Lt(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Rt(e){wt.schedule(e)}function zt(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;)zt(n,t),n=n.next}}function Bt(e){et(e,v);for(var t=e.first;t!==null;)Bt(t),t=t.next}var Vt=new Set,Ht=new Map,Ut=!1;function Wt(e,t){return{f:0,v:e,reactions:null,equals:We,rv:0,wv:0}}function j(e,t){let n=Wt(e,t);return Hn(n),n}function Gt(e,t=!1,n=!0){let r=Wt(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(),Kt(e,n?Yt(t):t,jt)}function Kt(e,t,n=null){if(!e.equals(t)){Ht.set(e,Pn?t:e.v);var r=Pt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&bt(t),Et===null&&tt(t)}e.wv=Xn(),Jt(e,y,n),Je()&&zn!==null&&zn.f&1024&&!(zn.f&96)&&(Gn===null?vee([e]):Gn.push(e)),!r.is_fork&&Vt.size>0&&!Ut&&fee()}return t}function fee(){Ut=!1;for(let e of Vt){e.f&1024&&et(e,b);let t;try{t=Zn(e)}catch{t=!0}t&&nr(e)}Vt.clear()}function qt(e){M(e,e.v+1)}function Jt(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),qt(o)}}else M(n,Oe),qt(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(Yt(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||zn!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>j(i?Yt(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,Yt(n)),r.set(t,c));else{l=c.v!==Oe;var m=f(()=>Yt(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)}qt(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 Xt(e){try{if(typeof e==`object`&&e&&oe in e)return e[oe]}catch{}return e}function pee(e,t){return Object.is(Xt(e),Xt(t))}var Zt,Qt,$t,en;function mee(){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 N(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 P(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 F(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};wt?.register_created_effect(r);var i=r;if(e&4)At===null?Pt.ensure().schedule(r):At.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){Pt.ensure();let t=dn(64|ee,e);return()=>{wn(t)}}function hee(e){Pt.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 gee(e){return dn(ie|ee,e)}function vn(e,t=0){return dn(8|t,e)}function I(e,t=[],n=[],r=[]){pt(r,t,n,t=>{dn(8,()=>{e(...t.map(L))})})}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 _ee(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),Pt.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 vee(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&&Et===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=wt?.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)}),cee(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 R(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 bee=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function xee(e){return bee?.createHTML(e)??e}function wr(e){var t=sn(`template`);return t.innerHTML=xee(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 z(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 See(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 See(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 B(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 V(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}){mee();var l=void 0,u=hee(()=>{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=wt,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 H(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=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=wt,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),L(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?Wt(n):Gt(n,!1,!1):null,l=o&2?Wt(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)))}I(()=>{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 Cee(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&&yee(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 Eee(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,wt!==null&&r.add(wt)}),_n(()=>{var a=t();if(e===document.activeElement){var o=wt;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`),Dee=he?`link`:`LINK`,Ci=he?`input`:`INPUT`,Oee=he?`option`:`OPTION`,kee=he?`select`:`SELECT`,Aee=he?`progress`:`PROGRESS`;function wi(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 Ti(e,t){var n=Oi(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Aee)||(e.value=t??``)}function Ei(e,t){var n=Oi(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function jee(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function G(e,t,n,r){var i=Oi(e);Ie&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Dee)||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 Mee(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===Oee;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,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?.[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)R(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`)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)jee(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`&&G(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===kee,l=!1;if(bn(()=>{var u=t(...n.map(L)),d=Mee(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),wt!==null&&r.add(wt),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),wt!==null&&r.add(wt)),vn(()=>{var n=t();if(e===document.activeElement){var i=wt;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 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?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:vt)(()=>(v=!1,g()));o&&L(y);var b=zn;return(function(e,t){if(arguments.length>0){let n=t?L(y):i&&o?Yt(e):e;return M(y,n),v=!0,c!==void 0&&(c=n),e}return Pn&&v||b.f&16384?y.v:L(y)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var zi=new Set([`$$slots`,`$$events`,`$$legacy`,`icon`,`class`]),Bi=Er(``);function q(e,t){let n=K(t,`icon`,19,()=>[]),r=K(t,`class`,3,``),i=Ri(t,zi);var a=Bi();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();U(P(r),17,n,Ir,(t,n)=>{var r=A(()=>g(L(n),3));let i=()=>L(r)[0],a=()=>L(r)[1],o=()=>L(r)[2];var s=Or();Cee(P(s),i,!0,(t,n)=>{Di(t,()=>({xmlns:`http://www.w3.org/2000/svg`,...a()}));var r=Or(),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 Vi=Er(``);function Hi(e){B(e,Vi())}function Ui(){try{return typeof window>`u`?null:window.localStorage}catch{return null}}function Wi(e,t=null){let n=Ui();if(!n)return t;try{return n.getItem(e)??t}catch{return t}}function Gi(e,t){let n=Ui();if(n)try{n.setItem(e,String(t))}catch{}}function Ki(e){let t=Number(e);return Number.isFinite(t)?Math.min(240,Math.max(60,Math.round(t))):240}function qi(e,t,n){return Ki(Number(e)+Number(n)-Number(t))}var Ji=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=Wi(`gomodel_theme`,`system`),this.apply(),window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{this.theme===`system`&&this.tick++})}set(e){this.theme=e,Gi(`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)}},Yi=new class{#e=j(Yt(240));get width(){return L(this.#e)}set width(e){M(this.#e,e,!0)}get collapsed(){return this.width===60}init(){let e=Wi(`gomodel_sidebar_width`),t=Wi(`gomodel_sidebar_collapsed`)===`true`;this.setWidth(e??(t?60:240))}toggle(){this.setWidth(this.collapsed?240:60,!0)}setWidth(e,t=!1){this.width=Ki(e),typeof document<`u`&&document.documentElement.style.setProperty(`--sidebar-width`,`${this.width}px`),t&&(Gi(`gomodel_sidebar_width`,this.width),Gi(`gomodel_sidebar_collapsed`,this.collapsed))}},Xi=new class{#e=j(Yt([]));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}},Zi={},Qi=[`en`,`pl`],$i=`PARAGLIDE_LOCALE`,ea=[`custom-dashboard`,`preferredLanguage`,`baseLocale`],ta=[];globalThis.__paraglide=globalThis.__paraglide??{},globalThis.__paraglide.ssr=globalThis.__paraglide.ssr??{};var na=!1,J=()=>{let e=ea;typeof window<`u`&&window.location?.href&&(e=va(window.location.href));let t=ra(e,typeof window<`u`?window.location?.href:void 0);if(t)return na||(na=!0,sa(t,{reload:!1})),t;throw Error(`No locale found. Read the docs https://paraglidejs.com/errors#no-locale-found`)};function ra(e,t){let n;for(let t of e){if(t===`baseLocale`)n=`en`;else if(t===`preferredLanguage`)n=fa();else if(ba(t)&&ya.has(t)){let e=ya.get(t);if(e){let t=e.getLocale();if(t instanceof Promise)continue;if(t!==void 0)return ua(t)}}let e=la(n);if(e)return e}}var ia=new Set([`ar`,`dv`,`fa`,`he`,`ks`,`ku`,`ps`,`sd`,`ug`,`ur`,`yi`]);function aa(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 ia.has(t??``)?`rtl`:`ltr`}var oa=e=>{e?window.location.href=e:window.location.reload()},sa=(e,t)=>{let n={reload:!0,...t},r;try{r=J()}catch{}let i=[],a=ea;typeof window<`u`&&window.location?.href&&(a=va(window.location.href));for(let t of a)if(t===`baseLocale`)continue;else if(ba(t)&&ya.has(t)){let n=ya.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&&oa(void 0)};if(i.length)return Promise.all(i).then(()=>{o()});o()},ca=()=>typeof window<`u`?window.location.origin:`http://fallback.com`;function la(e){if(typeof e!=`string`)return;let t=e.toLowerCase();for(let e of Qi)if(e.toLowerCase()===t)return e}function ua(e){let t=la(e);if(t)return t;throw Error(`Invalid locale: ${e}. Expected one of: ${Qi.join(`, `)}`)}var da=$i.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);RegExp(`(?:^|;\\s*)${da}=([^;]*)`);function fa(){if(!navigator?.languages?.length)return;let e=navigator.languages.map(e=>({fullTag:e,baseTag:e.split(`-`)[0]}));for(let t of e){let e=la(t.fullTag);if(e)return e;let n=la(t.baseTag);if(n)return n}}function pa(e){return ma(e)}function ma(e){let t=typeof e==`string`?new URL(e,ca()):new URL(e),n=t.pathname.split(`/`).filter(Boolean);return n.length>0&&la(n[0])&&(t.pathname=`/`+n.slice(1).join(`/`)),t}var ha,ga;function _a(e){if(ta.length===0)return;let t=typeof e==`string`?e:e.href;if(ha===t)return ga;let n=new URL(t,`http://example.com`),r=pa(n),i=r.href===n.href?[n]:[n,r],a;for(let e of i){for(let t of ta)if(new Zi(t.match,e.href).exec(e.href)){a=t;break}if(a)break}return ha=t,ga=a,a}function va(e){let t=_a(e);return t&&t.exclude!==!0&&Array.isArray(t.strategy)?t.strategy:ea}var ya=new Map;function ba(e){return typeof e==`string`&&/^custom-[A-Za-z0-9_-]+$/.test(e)}function xa(e,t){if(!ba(e))throw Error(`Invalid custom strategy: "${e}". Must be a custom strategy following the pattern custom-name.`);ya.set(e,t)}var Sa=()=>`Cancel`,Ca=()=>`Anuluj`,wa=((e={},t={})=>(t.locale??J())===`pl`?Ca(e):Sa(e)),Ta=()=>`Next`,Ea=()=>`Dalej`,Da=((e={},t={})=>(t.locale??J())===`pl`?Ea(e):Ta(e)),Oa=()=>`Previous`,ka=()=>`Wstecz`,Aa=((e={},t={})=>(t.locale??J())===`pl`?ka(e):Oa(e)),ja=()=>`Admin`,Ma=()=>`Admin`,Na=((e={},t={})=>(t.locale??J())===`pl`?Ma(e):ja(e)),Pa=()=>`Overview`,Fa=()=>`Przegląd`,Ia=((e={},t={})=>(t.locale??J())===`pl`?Fa(e):Pa(e)),La=()=>`Providers`,Ra=()=>`Dostawcy`,za=((e={},t={})=>(t.locale??J())===`pl`?Ra(e):La(e)),Ba=()=>`Models`,Va=()=>`Modele`,Ha=((e={},t={})=>(t.locale??J())===`pl`?Va(e):Ba(e)),Ua=()=>`Audit Logs`,Wa=()=>`Logi audytowe`,Ga=((e={},t={})=>(t.locale??J())===`pl`?Wa(e):Ua(e)),Ka=()=>`Usage`,qa=()=>`Zużycie`,Ja=((e={},t={})=>(t.locale??J())===`pl`?qa(e):Ka(e)),Ya=()=>`Budgets`,Xa=()=>`Budżety`,Za=((e={},t={})=>(t.locale??J())===`pl`?Xa(e):Ya(e)),Qa=()=>`Rate Limits`,$a=()=>`Limity zapytań`,eo=((e={},t={})=>(t.locale??J())===`pl`?$a(e):Qa(e)),to=()=>`API Keys`,no=()=>`Klucze API`,ro=((e={},t={})=>(t.locale??J())===`pl`?no(e):to(e)),io=()=>`Workflows`,ao=()=>`Workflows`,oo=((e={},t={})=>(t.locale??J())===`pl`?ao(e):io(e)),so=()=>`Guardrails (experimental)`,co=()=>`Guardrails (eksperymentalne)`,lo=((e={},t={})=>(t.locale??J())===`pl`?co(e):so(e)),uo=()=>`MCP Servers`,fo=()=>`Serwery MCP`,po=((e={},t={})=>(t.locale??J())===`pl`?fo(e):uo(e)),mo=()=>`Settings`,ho=()=>`Ustawienia`,go=((e={},t={})=>(t.locale??J())===`pl`?ho(e):mo(e)),_o=()=>`Usage Overview`,vo=()=>`Przegląd zużycia`,Nee=((e={},t={})=>(t.locale??J())===`pl`?vo(e):_o(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ść`,Mo=((e={},t={})=>(t.locale??J())===`pl`?Koe(e):Goe(e)),qoe=()=>`expand`,Joe=()=>`rozwiń`,Yoe=((e={},t={})=>(t.locale??J())===`pl`?Joe(e):qoe(e)),Xoe=()=>`collapse`,Zoe=()=>`zwiń`,Qoe=((e={},t={})=>(t.locale??J())===`pl`?Zoe(e):Xoe(e)),$oe=()=>`Send`,ese=()=>`Wyślij`,tse=((e={},t={})=>(t.locale??J())===`pl`?ese(e):$oe(e)),nse=()=>`Sending…`,rse=()=>`Wysyłanie…`,ise=((e={},t={})=>(t.locale??J())===`pl`?rse(e):nse(e)),ase=()=>`Copy failed`,ose=()=>`Kopiowanie nie powiodło się`,No=((e={},t={})=>(t.locale??J())===`pl`?ose(e):ase(e)),sse=()=>`Audit Logs`,cse=()=>`Logi audytowe`,lse=((e={},t={})=>(t.locale??J())===`pl`?cse(e):sse(e)),use=()=>`Retention help`,dse=()=>`Pomoc dotycząca retencji`,fse=((e={},t={})=>(t.locale??J())===`pl`?dse(e):use(e)),pse=()=>`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.`,mse=()=>`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.`,hse=((e={},t={})=>(t.locale??J())===`pl`?mse(e):pse(e)),gse=()=>`Audit logs are retained `,_se=()=>`Logi audytowe są przechowywane `,vse=((e={},t={})=>(t.locale??J())===`pl`?_se(e):gse(e)),yse=()=>`Audit logs are retained for `,bse=()=>`Logi audytowe są przechowywane przez `,xse=((e={},t={})=>(t.locale??J())===`pl`?bse(e):yse(e)),Sse=()=>`indefinitely`,Cse=()=>`czas nieokreślony`,wse=((e={},t={})=>(t.locale??J())===`pl`?Cse(e):Sse(e));function Po(e,t,n){return new Intl.PluralRules(e,n).select(Number(t))}var Tse=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} day`:`${e?.count} days`,Ese=e=>{let t=Po(`pl`,e?.count,{});return t===`one`?`${e?.count} dzień`:t===`few`||t===`many`?`${e?.count} dni`:`${e?.count} dnia`},Dse=((e,t={})=>(t.locale??J())===`pl`?Ese(e):Tse(e)),Ose=()=>`Audit logging is off. Live entries are temporary and disappear after refresh. Set `,kse=()=>`Rejestrowanie audytu jest wyłączone. Wpisy Live są tymczasowe i znikają po odświeżeniu. Ustaw `,Ase=((e={},t={})=>(t.locale??J())===`pl`?kse(e):Ose(e)),jse=()=>` to persist them.`,Mse=()=>`, aby je zachować.`,Nse=((e={},t={})=>(t.locale??J())===`pl`?Mse(e):jse(e)),Pse=e=>`Showing ${e?.start}–${e?.end} of ${e?.total} sessions`,Fse=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total} sesji`,Ise=((e,t={})=>(t.locale??J())===`pl`?Fse(e):Pse(e)),Lse=e=>`Showing ${e?.start}–${e?.end} of ${e?.total} logs`,Rse=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total} logów`,zse=((e,t={})=>(t.locale??J())===`pl`?Rse(e):Lse(e)),Bse=()=>`Group by session`,Vse=()=>`Grupuj według sesji`,Hse=((e={},t={})=>(t.locale??J())===`pl`?Vse(e):Bse(e)),Use=()=>`Loading audit logs`,Wse=()=>`Wczytywanie logów audytowych`,Gse=((e={},t={})=>(t.locale??J())===`pl`?Wse(e):Use(e)),Kse=()=>`Search by request ID, model, provider, path, user path, or error…`,qse=()=>`Szukaj według ID Requestu, modelu, dostawcy, ścieżki, User Path lub błędu…`,Jse=((e={},t={})=>(t.locale??J())===`pl`?qse(e):Kse(e)),Yse=()=>`Search by request ID, model, provider, path, user path, or error`,Xse=()=>`Szukaj według ID Requestu, modelu, dostawcy, ścieżki, User Path lub błędu`,Zse=((e={},t={})=>(t.locale??J())===`pl`?Xse(e):Yse(e)),Qse=()=>`HTTP method filter`,$se=()=>`Filtr metody HTTP`,ece=((e={},t={})=>(t.locale??J())===`pl`?$se(e):Qse(e)),tce=()=>`All Methods`,nce=()=>`Wszystkie metody`,rce=((e={},t={})=>(t.locale??J())===`pl`?nce(e):tce(e)),ice=()=>`Status code filter`,ace=()=>`Filtr kodu statusu`,oce=((e={},t={})=>(t.locale??J())===`pl`?ace(e):ice(e)),sce=()=>`All Statuses`,cce=()=>`Wszystkie statusy`,lce=((e={},t={})=>(t.locale??J())===`pl`?cce(e):sce(e)),uce=()=>`Streaming mode filter`,dce=()=>`Filtr trybu streamingu`,fce=((e={},t={})=>(t.locale??J())===`pl`?dce(e):uce(e)),pce=()=>`All Modes`,mce=()=>`Wszystkie tryby`,hce=((e={},t={})=>(t.locale??J())===`pl`?mce(e):pce(e)),gce=()=>`Streaming`,_ce=()=>`Streaming`,vce=((e={},t={})=>(t.locale??J())===`pl`?_ce(e):gce(e)),yce=()=>`Non-streaming`,bce=()=>`Bez streamingu`,xce=((e={},t={})=>(t.locale??J())===`pl`?bce(e):yce(e)),Sce=()=>`Live stream connecting…`,Cce=()=>`Łączenie ze strumieniem Live…`,wce=((e={},t={})=>(t.locale??J())===`pl`?Cce(e):Sce(e)),Tce=()=>`Live`,Ece=()=>`Live`,Dce=((e={},t={})=>(t.locale??J())===`pl`?Ece(e):Tce(e)),Oce=()=>`Live paused — the selected date range does not include today. Set it to today to resume.`,kce=()=>`Live wstrzymany — wybrany zakres dat nie obejmuje dzisiaj. Ustaw datę dzisiejszą, aby wznowić.`,Ace=((e={},t={})=>(t.locale??J())===`pl`?kce(e):Oce(e)),jce=()=>`Live paused while filters are active. Clear them to resume.`,Mce=()=>`Live wstrzymany, gdy filtry są aktywne. Wyczyść je, aby wznowić.`,Nce=((e={},t={})=>(t.locale??J())===`pl`?Mce(e):jce(e)),Pce=()=>`Live paused on later pages. Go to the first page to resume.`,Fce=()=>`Live wstrzymany na dalszych stronach. Przejdź do pierwszej strony, aby wznowić.`,Ice=((e={},t={})=>(t.locale??J())===`pl`?Fce(e):Pce(e)),Lce=e=>Po(`en`,e?.count,{})===`one`?`Session with ${e?.count} request`:`Session with ${e?.count} requests`,Rce=e=>{let t=Po(`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`},zce=((e,t={})=>(t.locale??J())===`pl`?Rce(e):Lce(e)),Bce=e=>`Status ${e?.status} · ${e?.method}`,Vce=e=>`Status ${e?.status} · ${e?.method}`,Hce=((e,t={})=>(t.locale??J())===`pl`?Vce(e):Bce(e)),Uce=()=>`Open interactions`,Wce=()=>`Otwórz interakcje`,Fo=((e={},t={})=>(t.locale??J())===`pl`?Wce(e):Uce(e)),Gce=()=>`Close interactions`,Kce=()=>`Zamknij interakcje`,Io=((e={},t={})=>(t.locale??J())===`pl`?Kce(e):Gce(e)),qce=()=>`Loading session requests`,Jce=()=>`Wczytywanie Request'ów sesji`,Yce=((e={},t={})=>(t.locale??J())===`pl`?Jce(e):qce(e)),Xce=e=>`Showing the latest ${e?.shown} of ${e?.total} requests in this session.`,Zce=e=>`Wyświetlanie najnowszych ${e?.shown} z ${e?.total} Request'ów w tej sesji.`,Qce=((e,t={})=>(t.locale??J())===`pl`?Zce(e):Xce(e)),$ce=()=>`Metadata:`,ele=()=>`Metadane:`,tle=((e={},t={})=>(t.locale??J())===`pl`?ele(e):$ce(e)),nle=()=>`View total usage for this session`,rle=()=>`Wyświetl całkowite zużycie dla tej sesji`,Lo=((e={},t={})=>(t.locale??J())===`pl`?rle(e):nle(e)),ile=()=>`Error Message`,ale=()=>`Komunikat błędu`,ole=((e={},t={})=>(t.locale??J())===`pl`?ale(e):ile(e)),sle=()=>`Headers`,cle=()=>`Nagłówki`,lle=((e={},t={})=>(t.locale??J())===`pl`?cle(e):sle(e)),ule=()=>`Copy Headers`,dle=()=>`Kopiuj nagłówki`,fle=((e={},t={})=>(t.locale??J())===`pl`?dle(e):ule(e)),ple=()=>`Body`,mle=()=>`Treść`,hle=((e={},t={})=>(t.locale??J())===`pl`?mle(e):ple(e)),gle=()=>`streaming`,_le=()=>`streaming`,vle=((e={},t={})=>(t.locale??J())===`pl`?_le(e):gle(e)),yle=()=>`Copy Body`,ble=()=>`Kopiuj treść`,xle=((e={},t={})=>(t.locale??J())===`pl`?ble(e):yle(e)),Sle=()=>`Request and response`,Cle=()=>`Request i odpowiedź`,wle=((e={},t={})=>(t.locale??J())===`pl`?Cle(e):Sle(e)),Tle=()=>`Share of the request body removed by this rewrite`,Ele=()=>`Część treści Requestu usunięta podczas tego przetwarzania`,Dle=((e={},t={})=>(t.locale??J())===`pl`?Ele(e):Tle(e)),Ole=()=>`Request`,kle=()=>`Request`,Ale=((e={},t={})=>(t.locale??J())===`pl`?kle(e):Ole(e)),jle=()=>`Response`,Mle=()=>`Odpowiedź`,Ro=((e={},t={})=>(t.locale??J())===`pl`?Mle(e):jle(e)),Nle=()=>`Rewritten`,Ple=()=>`Po przetworzeniu`,Fle=((e={},t={})=>(t.locale??J())===`pl`?Ple(e):Nle(e)),Ile=()=>`What changed`,Lle=()=>`Co się zmieniło`,Rle=((e={},t={})=>(t.locale??J())===`pl`?Lle(e):Ile(e)),zle=()=>`Provider attempt failed`,Ble=()=>`Próba dostawcy nie powiodła się`,Vle=((e={},t={})=>(t.locale??J())===`pl`?Ble(e):zle(e)),Hle=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} provider attempt`:`${e?.count} provider attempts`,Ule=e=>{let t=Po(`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`},Wle=((e,t={})=>(t.locale??J())===`pl`?Ule(e):Hle(e)),Gle=e=>`${e?.count} provider attempts · ${e?.failed} failed`,Kle=e=>`Próby dostawców: ${e?.count} · nieudane: ${e?.failed}`,qle=((e,t={})=>(t.locale??J())===`pl`?Kle(e):Gle(e)),Jle=()=>`succeeded`,Yle=()=>`powodzenie`,Xle=((e={},t={})=>(t.locale??J())===`pl`?Yle(e):Jle(e)),Zle=()=>`failed`,Qle=()=>`niepowodzenie`,$le=((e={},t={})=>(t.locale??J())===`pl`?Qle(e):Zle(e)),eue=()=>`No response was captured for this attempt.`,tue=()=>`Nie zapisano odpowiedzi dla tej próby.`,nue=((e={},t={})=>(t.locale??J())===`pl`?tue(e):eue(e)),rue=()=>`Request details were not captured.`,iue=()=>`Nie zapisano szczegółów Requestu.`,aue=((e={},t={})=>(t.locale??J())===`pl`?iue(e):rue(e)),oue=()=>`Waiting for request data…`,sue=()=>`Oczekiwanie na dane Requestu…`,zo=((e={},t={})=>(t.locale??J())===`pl`?sue(e):oue(e)),cue=()=>`Request body was too large to capture.`,lue=()=>`Treść Requestu była zbyt duża, aby ją zapisać.`,uue=((e={},t={})=>(t.locale??J())===`pl`?lue(e):cue(e)),due=()=>`Response details were not captured.`,fue=()=>`Nie zapisano szczegółów odpowiedzi.`,pue=((e={},t={})=>(t.locale??J())===`pl`?fue(e):due(e)),mue=()=>`Response in progress…`,hue=()=>`Odpowiedź w toku…`,gue=((e={},t={})=>(t.locale??J())===`pl`?hue(e):mue(e)),_ue=()=>`Response body was too large to capture.`,vue=()=>`Treść odpowiedzi była zbyt duża, aby ją zapisać.`,Bo=((e={},t={})=>(t.locale??J())===`pl`?vue(e):_ue(e)),yue=()=>`Rewritten body not captured (body logging disabled or body too large).`,bue=()=>`Nie zapisano przetworzonej treści (rejestrowanie treści jest wyłączone lub treść jest zbyt duża).`,xue=((e={},t={})=>(t.locale??J())===`pl`?bue(e):yue(e)),Sue=e=>`${e?.rewriter}: no change`,Cue=e=>`${e?.rewriter}: bez zmian`,wue=((e,t={})=>(t.locale??J())===`pl`?Cue(e):Sue(e)),Tue=e=>`${e?.rewriter} ran and forwarded the request unchanged`,Eue=e=>`${e?.rewriter} uruchomił się i przekazał Request bez zmian`,Due=((e,t={})=>(t.locale??J())===`pl`?Eue(e):Tue(e)),Oue=e=>`${e?.count} cached`,kue=e=>`${e?.count} z cache`,Aue=((e,t={})=>(t.locale??J())===`pl`?kue(e):Oue(e)),jue=e=>`${e?.percent}% cached`,Mue=e=>`${e?.percent}% z cache`,Nue=((e,t={})=>(t.locale??J())===`pl`?Mue(e):jue(e)),Pue=()=>`Audio too large to store.`,Fue=()=>`Audio jest zbyt duże, aby je zapisać.`,Iue=((e={},t={})=>(t.locale??J())===`pl`?Fue(e):Pue(e)),Lue=()=>`Audio not logged. Set LOGGING_LOG_AUDIO_BODIES=true to capture playable audio.`,Rue=()=>`Audio nie zostało zapisane. Ustaw LOGGING_LOG_AUDIO_BODIES=true, aby zapisywać audio możliwe do odtworzenia.`,zue=((e={},t={})=>(t.locale??J())===`pl`?Rue(e):Lue(e)),Bue=()=>`Resize interactions panel`,Vue=()=>`Zmień szerokość panelu interakcji`,Hue=((e={},t={})=>(t.locale??J())===`pl`?Vue(e):Bue(e)),Uue=()=>`Interactions`,Wue=()=>`Interakcje`,Gue=((e={},t={})=>(t.locale??J())===`pl`?Wue(e):Uue(e)),Kue=()=>`Following the latest interaction`,que=()=>`Śledzenie najnowszej interakcji`,Jue=((e={},t={})=>(t.locale??J())===`pl`?que(e):Kue(e)),Yue=()=>`Viewing a historical interaction`,Xue=()=>`Wyświetlanie historycznej interakcji`,Zue=((e={},t={})=>(t.locale??J())===`pl`?Xue(e):Yue(e)),Que=()=>`Following the latest interaction as new events arrive`,$ue=()=>`Śledzenie najnowszej interakcji w miarę pojawiania się nowych zdarzeń`,ede=((e={},t={})=>(t.locale??J())===`pl`?$ue(e):Que(e)),tde=()=>`Viewing a historical interaction; live updates are not followed`,nde=()=>`Wyświetlanie historycznej interakcji; aktualizacje Live nie są śledzone`,rde=((e={},t={})=>(t.locale??J())===`pl`?nde(e):tde(e)),ide=()=>`Exit fullscreen interactions`,ade=()=>`Wyłącz pełny ekran interakcji`,ode=((e={},t={})=>(t.locale??J())===`pl`?ade(e):ide(e)),sde=()=>`Show interactions fullscreen`,cde=()=>`Wyświetl interakcje na pełnym ekranie`,lde=((e={},t={})=>(t.locale??J())===`pl`?cde(e):sde(e)),ude=()=>`Exit fullscreen`,dde=()=>`Wyłącz pełny ekran`,fde=((e={},t={})=>(t.locale??J())===`pl`?dde(e):ude(e)),pde=()=>`Fullscreen`,mde=()=>`Pełny ekran`,hde=((e={},t={})=>(t.locale??J())===`pl`?mde(e):pde(e)),gde=()=>`Close interactions`,_de=()=>`Zamknij interakcje`,vde=((e={},t={})=>(t.locale??J())===`pl`?_de(e):gde(e)),yde=()=>`Navigate interaction messages`,bde=()=>`Nawigacja między wiadomościami interakcji`,xde=((e={},t={})=>(t.locale??J())===`pl`?bde(e):yde(e)),Sde=()=>`Previous message`,Cde=()=>`Poprzednia wiadomość`,Vo=((e={},t={})=>(t.locale??J())===`pl`?Cde(e):Sde(e)),wde=()=>`Next message`,Tde=()=>`Następna wiadomość`,Ho=((e={},t={})=>(t.locale??J())===`pl`?Tde(e):wde(e)),Ede=()=>`Loading interactions…`,Dde=()=>`Wczytywanie interakcji…`,Ode=((e={},t={})=>(t.locale??J())===`pl`?Dde(e):Ede(e)),kde=()=>`No interaction data available for this entry.`,Ade=()=>`Brak danych interakcji dla tego wpisu.`,jde=((e={},t={})=>(t.locale??J())===`pl`?Ade(e):kde(e)),Mde=()=>`Hide estimated provider prompt-cache fill`,Nde=()=>`Ukryj szacowane wykorzystanie prompt cache dostawcy`,Pde=((e={},t={})=>(t.locale??J())===`pl`?Nde(e):Mde(e)),Fde=()=>`Show estimated provider prompt-cache fill`,Ide=()=>`Pokaż szacowane wykorzystanie prompt cache dostawcy`,Lde=((e={},t={})=>(t.locale??J())===`pl`?Ide(e):Fde(e)),Rde=()=>`Blue fill shows cached prompt share`,zde=()=>`Niebieskie wypełnienie pokazuje część promptu z cache`,Bde=((e={},t={})=>(t.locale??J())===`pl`?zde(e):Rde(e)),Vde=()=>`(estimated)`,Hde=()=>`(szacunkowo)`,Ude=((e={},t={})=>(t.locale??J())===`pl`?Hde(e):Vde(e)),Wde=()=>`Showing the newest part of this session and the selected log.`,Gde=()=>`Wyświetlanie najnowszej części tej sesji i wybranego logu.`,Kde=((e={},t={})=>(t.locale??J())===`pl`?Gde(e):Wde(e)),qde=()=>`Send a message`,Jde=()=>`Wyślij wiadomość`,Yde=((e={},t={})=>(t.locale??J())===`pl`?Jde(e):qde(e)),Xde=()=>`Continue this interaction…`,Zde=()=>`Kontynuuj tę interakcję…`,Qde=((e={},t={})=>(t.locale??J())===`pl`?Zde(e):Xde(e)),$de=()=>`Model is responding…`,efe=()=>`Model odpowiada…`,tfe=((e={},t={})=>(t.locale??J())===`pl`?efe(e):$de(e)),nfe=()=>`Unable to load interactions.`,rfe=()=>`Nie można wczytać interakcji.`,ife=((e={},t={})=>(t.locale??J())===`pl`?rfe(e):nfe(e)),afe=()=>`Failed to load interactions.`,ofe=()=>`Wczytywanie interakcji nie powiodło się.`,sfe=((e={},t={})=>(t.locale??J())===`pl`?ofe(e):afe(e)),cfe=()=>`Unable to send message.`,lfe=()=>`Nie można wysłać wiadomości.`,ufe=((e={},t={})=>(t.locale??J())===`pl`?lfe(e):cfe(e)),dfe=()=>`The request timed out.`,ffe=()=>`Upłynął limit czasu Requestu.`,pfe=((e={},t={})=>(t.locale??J())===`pl`?ffe(e):dfe(e)),mfe=()=>`Failed to send message.`,hfe=()=>`Wysyłanie wiadomości nie powiodło się.`,gfe=((e={},t={})=>(t.locale??J())===`pl`?hfe(e):mfe(e)),_fe=()=>`Message sent, but its saved interaction is not available yet.`,vfe=()=>`Wiadomość została wysłana, ale jej zapisana interakcja nie jest jeszcze dostępna.`,yfe=((e={},t={})=>(t.locale??J())===`pl`?vfe(e):_fe(e)),bfe=()=>`System Prompt`,xfe=()=>`Prompt systemowy`,Sfe=((e={},t={})=>(t.locale??J())===`pl`?xfe(e):bfe(e)),Cfe=()=>`Agent`,wfe=()=>`Agent`,Tfe=((e={},t={})=>(t.locale??J())===`pl`?wfe(e):Cfe(e)),Efe=()=>`Error`,Dfe=()=>`Błąd`,Ofe=((e={},t={})=>(t.locale??J())===`pl`?Dfe(e):Efe(e)),kfe=()=>`Function Call`,Afe=()=>`Wywołanie funkcji`,jfe=((e={},t={})=>(t.locale??J())===`pl`?Afe(e):kfe(e)),Mfe=()=>`Function Result`,Nfe=()=>`Wynik funkcji`,Pfe=((e={},t={})=>(t.locale??J())===`pl`?Nfe(e):Mfe(e)),Ffe=()=>`User`,Ife=()=>`Użytkownik`,Lfe=((e={},t={})=>(t.locale??J())===`pl`?Ife(e):Ffe(e)),Rfe=()=>`[Image]`,zfe=()=>`[Obraz]`,Bfe=((e={},t={})=>(t.locale??J())===`pl`?zfe(e):Rfe(e)),Vfe=()=>`[Audio]`,Hfe=()=>`[Audio]`,Ufe=((e={},t={})=>(t.locale??J())===`pl`?Hfe(e):Vfe(e)),Wfe=()=>`[File]`,Gfe=()=>`[Plik]`,Kfe=((e={},t={})=>(t.locale??J())===`pl`?Gfe(e):Wfe(e)),qfe=e=>`[File: ${e?.name}]`,Jfe=e=>`[Plik: ${e?.name}]`,Yfe=((e,t={})=>(t.locale??J())===`pl`?Jfe(e):qfe(e)),Xfe=()=>`Message copied`,Zfe=()=>`Wiadomość skopiowana`,Qfe=((e={},t={})=>(t.locale??J())===`pl`?Zfe(e):Xfe(e)),$fe=()=>`Copy message`,epe=()=>`Kopiuj wiadomość`,Uo=((e={},t={})=>(t.locale??J())===`pl`?epe(e):$fe(e)),tpe=e=>`${e?.percent}% of this visible prompt item is estimated provider-cached`,npe=e=>`Szacuje się, że ${e?.percent}% tego widocznego elementu promptu pochodzi z cache dostawcy`,rpe=((e,t={})=>(t.locale??J())===`pl`?npe(e):tpe(e)),ipe=()=>`Call ID`,ape=()=>`ID wywołania`,Wo=((e={},t={})=>(t.locale??J())===`pl`?ape(e):ipe(e)),ope=e=>`Call ID (${e?.name})`,spe=e=>`ID wywołania (${e?.name})`,cpe=((e,t={})=>(t.locale??J())===`pl`?spe(e):ope(e)),lpe=()=>`No arguments`,upe=()=>`Brak argumentów`,Go=((e={},t={})=>(t.locale??J())===`pl`?upe(e):lpe(e)),dpe=()=>`Copied`,fpe=()=>`Skopiowano`,ppe=((e={},t={})=>(t.locale??J())===`pl`?fpe(e):dpe(e)),mpe=()=>`Tokens`,hpe=()=>`Tokeny`,Ko=((e={},t={})=>(t.locale??J())===`pl`?hpe(e):mpe(e)),gpe=()=>`Input tokens`,_pe=()=>`Input Tokens`,vpe=((e={},t={})=>(t.locale??J())===`pl`?_pe(e):gpe(e)),ype=()=>`Output tokens`,bpe=()=>`Output Tokens`,xpe=((e={},t={})=>(t.locale??J())===`pl`?bpe(e):ype(e)),Spe=()=>`Input Tokens`,Cpe=()=>`Input Tokens`,qo=((e={},t={})=>(t.locale??J())===`pl`?Cpe(e):Spe(e)),wpe=()=>`Output Tokens`,Tpe=()=>`Output Tokens`,Jo=((e={},t={})=>(t.locale??J())===`pl`?Tpe(e):wpe(e)),Epe=()=>`Total tokens`,Dpe=()=>`Wszystkie tokeny`,Ope=((e={},t={})=>(t.locale??J())===`pl`?Dpe(e):Epe(e)),kpe=()=>`Total Requests`,Ape=()=>`Łączna liczba Request'ów`,Yo=((e={},t={})=>(t.locale??J())===`pl`?Ape(e):kpe(e)),jpe=()=>`Cache Hits`,Mpe=()=>`Trafienia cache`,Xo=((e={},t={})=>(t.locale??J())===`pl`?Mpe(e):jpe(e)),Npe=()=>`Estimated Cost`,Ppe=()=>`Szacowany koszt`,Zo=((e={},t={})=>(t.locale??J())===`pl`?Ppe(e):Npe(e)),Fpe=()=>`Local Cache`,Ipe=()=>`Lokalny cache`,Lpe=((e={},t={})=>(t.locale??J())===`pl`?Ipe(e):Fpe(e)),Rpe=()=>`Prompt Cache Rate`,zpe=()=>`Wskaźnik prompt cache`,Bpe=((e={},t={})=>(t.locale??J())===`pl`?zpe(e):Rpe(e)),Vpe=()=>`Share of input tokens served from the provider prompt cache over the selected period`,Hpe=()=>`Część input tokens obsłużona przez prompt cache dostawcy w wybranym okresie`,Upe=((e={},t={})=>(t.locale??J())===`pl`?Hpe(e):Vpe(e)),Wpe=e=>`Prompt cache rate ${e?.rate}`,Gpe=e=>`Wskaźnik prompt cache: ${e?.rate}`,Kpe=((e,t={})=>(t.locale??J())===`pl`?Gpe(e):Wpe(e)),qpe=()=>`Provider Status`,Jpe=()=>`Status provider'ów`,Ype=((e={},t={})=>(t.locale??J())===`pl`?Jpe(e):qpe(e)),Xpe=()=>`View providers overview`,Zpe=()=>`Zobacz przegląd dostawców`,Qpe=((e={},t={})=>(t.locale??J())===`pl`?Zpe(e):Xpe(e)),$pe=()=>`View MCP servers`,eme=()=>`Zobacz serwery MCP`,tme=((e={},t={})=>(t.locale??J())===`pl`?eme(e):$pe(e)),nme=()=>`Requests by Status`,rme=()=>`Requesty według statusu`,ime=((e={},t={})=>(t.locale??J())===`pl`?rme(e):nme(e)),ame=()=>`Request status summary`,ome=()=>`Podsumowanie statusów Request'ów`,sme=((e={},t={})=>(t.locale??J())===`pl`?ome(e):ame(e)),cme=()=>`Share of requests answered with a 2xx status`,lme=()=>`Część Request'ów zakończonych statusem 2xx`,ume=((e={},t={})=>(t.locale??J())===`pl`?lme(e):cme(e)),dme=()=>`Success`,fme=()=>`Powodzenie`,pme=((e={},t={})=>(t.locale??J())===`pl`?fme(e):dme(e)),mme=()=>`Provider Latency`,hme=()=>`Opóźnienie dostawców`,gme=((e={},t={})=>(t.locale??J())===`pl`?hme(e):mme(e)),_me=()=>`Provider latency help`,vme=()=>`Pomoc dotycząca opóźnienia dostawców`,yme=((e={},t={})=>(t.locale??J())===`pl`?vme(e):_me(e)),bme=()=>`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.`,xme=()=>`Ś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.`,Sme=((e={},t={})=>(t.locale??J())===`pl`?xme(e):bme(e)),Cme=()=>`Average duration of successful, uncached requests across all providers`,wme=()=>`Średni czas trwania udanych Request'ów bez cache dla wszystkich dostawców`,Tme=((e={},t={})=>(t.locale??J())===`pl`?wme(e):Cme(e)),Eme=()=>`Avg`,Dme=()=>`Śr.`,Ome=((e={},t={})=>(t.locale??J())===`pl`?Dme(e):Eme(e)),kme=()=>`Providers Overview`,Ame=()=>`Przegląd dostawców`,jme=((e={},t={})=>(t.locale??J())===`pl`?Ame(e):kme(e)),Mme=()=>`Loading provider status`,Nme=()=>`Wczytywanie statusu dostawców`,Pme=((e={},t={})=>(t.locale??J())===`pl`?Nme(e):Mme(e)),Fme=()=>`Show Details`,Ime=()=>`Pokaż szczegóły`,Lme=((e={},t={})=>(t.locale??J())===`pl`?Ime(e):Fme(e)),Rme=()=>`Hide Details`,zme=()=>`Ukryj szczegóły`,Bme=((e={},t={})=>(t.locale??J())===`pl`?zme(e):Rme(e)),Qo=e=>`View ${e?.provider} provider docs`,$o=e=>`Zobacz dokumentację dostawcy ${e?.provider}`,es=((e,t={})=>(t.locale??J())===`pl`?$o(e):Qo(e)),ts=()=>`Models Available`,ns=()=>`Dostępne modele`,rs=((e={},t={})=>(t.locale??J())===`pl`?ns(e):ts(e)),is=()=>`Last Checked`,as=()=>`Ostatnio sprawdzono`,os=((e={},t={})=>(t.locale??J())===`pl`?as(e):is(e)),ss=e=>`Expand ${e?.provider} details`,cs=e=>`Rozwiń szczegóły dostawcy ${e?.provider}`,ls=((e,t={})=>(t.locale??J())===`pl`?cs(e):ss(e)),us=e=>`Collapse ${e?.provider} details`,ds=e=>`Zwiń szczegóły dostawcy ${e?.provider}`,fs=((e,t={})=>(t.locale??J())===`pl`?ds(e):us(e)),ps=()=>`Expand details`,ms=()=>`Rozwiń szczegóły`,hs=((e={},t={})=>(t.locale??J())===`pl`?ms(e):ps(e)),gs=()=>`Collapse details`,_s=()=>`Zwiń szczegóły`,vs=((e={},t={})=>(t.locale??J())===`pl`?_s(e):gs(e)),ys=()=>`Base URL`,bs=()=>`Bazowy URL`,xs=((e={},t={})=>(t.locale??J())===`pl`?bs(e):ys(e)),Ss=()=>`API Version`,Cs=()=>`Wersja API`,ws=((e={},t={})=>(t.locale??J())===`pl`?Cs(e):Ss(e)),Ts=()=>`Recent Requests`,Es=()=>`Ostatnie Requesty`,Ds=((e={},t={})=>(t.locale??J())===`pl`?Es(e):Ts(e)),Os=()=>`Breaker State`,ks=()=>`Stan circuit breakera`,As=((e={},t={})=>(t.locale??J())===`pl`?ks(e):Os(e)),js=()=>`Models (Recent Traffic)`,Ms=()=>`Modele (ostatni ruch)`,Ns=((e={},t={})=>(t.locale??J())===`pl`?Ms(e):js(e)),Ps=()=>`Configured Models`,Fs=()=>`Skonfigurowane modele`,Is=((e={},t={})=>(t.locale??J())===`pl`?Fs(e):Ps(e)),Ls=()=>`Retry`,Rs=()=>`Retry`,zs=((e={},t={})=>(t.locale??J())===`pl`?Rs(e):Ls(e)),Bs=()=>`Circuit Breaker`,Vs=()=>`Circuit Breaker`,Hs=((e={},t={})=>(t.locale??J())===`pl`?Vs(e):Bs(e)),Us=()=>`None configured`,Ws=()=>`Brak konfiguracji`,Gs=((e={},t={})=>(t.locale??J())===`pl`?Ws(e):Us(e)),Ks=()=>`All healthy`,qs=()=>`Wszystkie działają prawidłowo`,Js=((e={},t={})=>(t.locale??J())===`pl`?qs(e):Ks(e)),Ys=()=>`None healthy`,Xs=()=>`Żaden nie działa prawidłowo`,Zs=((e={},t={})=>(t.locale??J())===`pl`?Xs(e):Ys(e)),Qs=()=>`Automatic`,$s=()=>`Automatycznie`,ec=((e={},t={})=>(t.locale??J())===`pl`?$s(e):Qs(e)),tc=e=>`Last error: ${e?.error}`,nc=e=>`Ostatni błąd: ${e?.error}`,rc=((e,t={})=>(t.locale??J())===`pl`?nc(e):tc(e)),ic=()=>`All MCP servers connected`,ac=()=>`Wszystkie serwery MCP są połączone`,oc=((e={},t={})=>(t.locale??J())===`pl`?ac(e):ic(e)),sc=()=>`Share of input tokens over the selected period`,cc=()=>`Udział input tokens w wybranym okresie`,lc=((e={},t={})=>(t.locale??J())===`pl`?cc(e):sc(e)),uc=()=>`No usage in the selected period yet`,dc=()=>`Brak danych o zużyciu w wybranym okresie`,fc=((e={},t={})=>(t.locale??J())===`pl`?dc(e):uc(e)),pc=()=>`Regular`,mc=()=>`Standardowe`,hc=((e={},t={})=>(t.locale??J())===`pl`?mc(e):pc(e)),gc=e=>`Includes ${e?.count} cache-write tokens`,_c=e=>`Obejmuje ${e?.count} tokenów zapisu do cache`,vc=((e,t={})=>(t.locale??J())===`pl`?_c(e):gc(e)),yc=()=>`Prompt cached`,bc=()=>`Prompt cache`,xc=((e={},t={})=>(t.locale??J())===`pl`?bc(e):yc(e)),Sc=()=>`Provider prompt-cache reads`,Cc=()=>`Odczyty z prompt cache dostawcy`,wc=((e={},t={})=>(t.locale??J())===`pl`?Cc(e):Sc(e)),Tc=()=>`Locally cached`,Ec=()=>`Lokalny cache`,Dc=((e={},t={})=>(t.locale??J())===`pl`?Ec(e):Tc(e)),Oc=()=>`Served from GoModel response cache`,kc=()=>`Obsłużone przez response cache GoModel`,Ac=((e={},t={})=>(t.locale??J())===`pl`?kc(e):Oc(e)),jc=e=>`Cache breakdown of input tokens — ${e?.details}`,Mc=e=>`Podział input tokens według cache — ${e?.details}`,Nc=((e,t={})=>(t.locale??J())===`pl`?Mc(e):jc(e)),Pc=()=>`Activity`,Fc=()=>`Aktywność`,Ic=((e={},t={})=>(t.locale??J())===`pl`?Fc(e):Pc(e)),Lc=()=>`Loading activity`,Rc=()=>`Wczytywanie aktywności`,zc=((e={},t={})=>(t.locale??J())===`pl`?Rc(e):Lc(e)),Bc=()=>`Activity calendar mode`,Vc=()=>`Tryb kalendarza aktywności`,Hc=((e={},t={})=>(t.locale??J())===`pl`?Vc(e):Bc(e)),Uc=()=>`Costs`,Wc=()=>`Koszty`,Gc=((e={},t={})=>(t.locale??J())===`pl`?Wc(e):Uc(e)),Kc=()=>`Mon`,qc=()=>`Pon`,Jc=((e={},t={})=>(t.locale??J())===`pl`?qc(e):Kc(e)),Yc=()=>`Wed`,Xc=()=>`Śr`,Zc=((e={},t={})=>(t.locale??J())===`pl`?Xc(e):Yc(e)),Qc=()=>`Fri`,$c=()=>`Pt`,el=((e={},t={})=>(t.locale??J())===`pl`?$c(e):Qc(e)),tl=()=>`Less`,nl=()=>`Mniej`,rl=((e={},t={})=>(t.locale??J())===`pl`?nl(e):tl(e)),il=()=>`More`,al=()=>`Więcej`,ol=((e={},t={})=>(t.locale??J())===`pl`?al(e):il(e)),sl=()=>`Live Token Throughput`,cl=()=>`Przepływ tokenów`,ll=((e={},t={})=>(t.locale??J())===`pl`?cl(e):sl(e)),ul=()=>`Live token throughput granularity`,dl=()=>`Ziarnistość przepływu tokenów`,fl=((e={},t={})=>(t.locale??J())===`pl`?dl(e):ul(e)),pl=()=>`Waiting for live requests…`,ml=()=>`Oczekiwanie na Requesty Live…`,hl=((e={},t={})=>(t.locale??J())===`pl`?ml(e):pl(e)),gl=()=>`Seconds`,_l=()=>`Sekundy`,vl=((e={},t={})=>(t.locale??J())===`pl`?_l(e):gl(e)),yl=()=>`Minutes`,bl=()=>`Minuty`,xl=((e={},t={})=>(t.locale??J())===`pl`?bl(e):yl(e)),Sl=()=>`Hours`,Cl=()=>`Godziny`,wl=((e={},t={})=>(t.locale??J())===`pl`?Cl(e):Sl(e)),Tl=()=>`Days`,El=()=>`Dni`,Dl=((e={},t={})=>(t.locale??J())===`pl`?El(e):Tl(e)),Ol=()=>`Last 60 seconds`,kl=()=>`Ostatnie 60 sekund`,Al=((e={},t={})=>(t.locale??J())===`pl`?kl(e):Ol(e)),jl=()=>`Last 60 minutes`,Ml=()=>`Ostatnie 60 minut`,Nl=((e={},t={})=>(t.locale??J())===`pl`?Ml(e):jl(e)),Pl=()=>`Last 24 hours`,Fl=()=>`Ostatnie 24 godziny`,Il=((e={},t={})=>(t.locale??J())===`pl`?Fl(e):Pl(e)),Ll=()=>`Last 30 days`,Rl=()=>`Ostatnie 30 dni`,zl=((e={},t={})=>(t.locale??J())===`pl`?Rl(e):Ll(e)),Bl=()=>`Prompt (Input) Cached`,Vl=()=>`Prompt (wejście) z cache`,Hl=((e={},t={})=>(t.locale??J())===`pl`?Vl(e):Bl(e)),Ul=()=>`Locally Cached`,Wl=()=>`Lokalny cache`,Gl=((e={},t={})=>(t.locale??J())===`pl`?Wl(e):Ul(e)),Kl=e=>`Total: ${e?.total}`,ql=e=>`Łącznie: ${e?.total}`,Jl=((e,t={})=>(t.locale??J())===`pl`?ql(e):Kl(e)),Yl=e=>`${e?.provider} to providers + ${e?.cache} from cache`,Xl=e=>`${e?.provider} do dostawców + ${e?.cache} z cache`,Zl=((e,t={})=>(t.locale??J())===`pl`?Xl(e):Yl(e)),Ql=e=>`${e?.label}: ${e?.tokens} input tokens (${e?.percent}%)`,$l=e=>`${e?.label}: ${e?.tokens} input tokens (${e?.percent}%)`,eu=((e,t={})=>(t.locale??J())===`pl`?$l(e):Ql(e)),tu=()=>`no data`,nu=()=>`brak danych`,ru=((e={},t={})=>(t.locale??J())===`pl`?nu(e):tu(e)),iu=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} needs attention`:`${e?.count} need attention`,au=e=>{let t=Po(`pl`,e?.count,{});return t===`one`?`${e?.count} wymaga uwagi`:t===`few`?`${e?.count} wymagają uwagi`:`${e?.count} wymaga uwagi`},ou=((e,t={})=>(t.locale??J())===`pl`?au(e):iu(e)),su=e=>`${e?.count} servers need attention`,cu=e=>`Serwery wymagające uwagi: ${e?.count}`,lu=((e,t={})=>(t.locale??J())===`pl`?cu(e):su(e)),uu=e=>`${e?.connected} of ${e?.total} servers connected`,du=e=>`Połączone serwery: ${e?.connected} z ${e?.total}`,fu=((e,t={})=>(t.locale??J())===`pl`?du(e):uu(e)),pu=e=>`$${e?.total} in the last year`,mu=e=>`$${e?.total} w ostatnim roku`,hu=((e,t={})=>(t.locale??J())===`pl`?mu(e):pu(e)),gu=e=>`${e?.total} tokens in the last year`,_u=e=>`${e?.total} tokenów w ostatnim roku`,vu=((e,t={})=>(t.locale??J())===`pl`?_u(e):gu(e)),yu=e=>`$${e?.total} on ${e?.date}`,bu=e=>`$${e?.total} dnia ${e?.date}`,xu=((e,t={})=>(t.locale??J())===`pl`?bu(e):yu(e)),Su=e=>`${e?.total} tokens on ${e?.date}`,Cu=e=>`${e?.total} tokenów dnia ${e?.date}`,wu=((e,t={})=>(t.locale??J())===`pl`?Cu(e):Su(e)),Tu=e=>`Live token throughput, ${e?.window}. Input ${e?.input}, output ${e?.output}, prompt cached ${e?.prompt}, locally cached ${e?.local} tokens.`,Eu=e=>`Przepływ tokenów, ${e?.window}. Input ${e?.input}, output ${e?.output}, prompt cache ${e?.prompt}, lokalny cache ${e?.local} tokenów.`,Du=((e,t={})=>(t.locale??J())===`pl`?Eu(e):Tu(e)),Ou=()=>`Other`,ku=()=>`Inne`,Au=((e={},t={})=>(t.locale??J())===`pl`?ku(e):Ou(e)),ju=()=>`Timezone`,Mu=()=>`Strefa czasowa`,Nu=((e={},t={})=>(t.locale??J())===`pl`?Mu(e):ju(e)),Pu=()=>`Timezone help`,Fu=()=>`Pomoc dotycząca strefy czasowej`,Iu=((e={},t={})=>(t.locale??J())===`pl`?Fu(e):Pu(e)),Lu=()=>`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.`,Ru=()=>`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.`,zu=((e={},t={})=>(t.locale??J())===`pl`?Ru(e):Lu(e)),Bu=()=>`Timezone Override`,Vu=()=>`Nadpisanie strefy czasowej`,Hu=((e={},t={})=>(t.locale??J())===`pl`?Vu(e):Bu(e)),Uu=e=>`Automatic (${e?.timezone})`,Wu=e=>`Automatycznie (${e?.timezone})`,Gu=((e,t={})=>(t.locale??J())===`pl`?Wu(e):Uu(e)),Ku=()=>`Use Browser Timezone`,qu=()=>`Użyj strefy czasowej przeglądarki`,Ju=((e={},t={})=>(t.locale??J())===`pl`?qu(e):Ku(e)),Yu=()=>`Failover`,Xu=()=>`Failover`,Zu=((e={},t={})=>(t.locale??J())===`pl`?Xu(e):Yu(e)),Qu=()=>`Generating…`,$u=()=>`Generowanie…`,ed=((e={},t={})=>(t.locale??J())===`pl`?$u(e):Qu(e)),td=()=>`Generate failover models automatically`,nd=()=>`Wygeneruj modele failover automatycznie`,rd=((e={},t={})=>(t.locale??J())===`pl`?nd(e):td(e)),id=()=>`Remove all failover models`,ad=()=>`Usuń wszystkie modele failover`,od=((e={},t={})=>(t.locale??J())===`pl`?ad(e):id(e)),sd=()=>`Reset All Budgets`,cd=()=>`Zresetuj wszystkie budżety`,ld=((e={},t={})=>(t.locale??J())===`pl`?cd(e):sd(e)),ud=()=>`Start new budget periods for every configured budget without changing the limits.`,dd=()=>`Rozpocznij nowe okresy dla wszystkich skonfigurowanych budżetów bez zmiany limitów.`,fd=((e={},t={})=>(t.locale??J())===`pl`?dd(e):ud(e)),pd=()=>`Reset Budgets`,md=()=>`Resetuj budżety`,hd=((e={},t={})=>(t.locale??J())===`pl`?md(e):pd(e)),gd=()=>`Budget help`,_d=()=>`Pomoc dotycząca budżetów`,vd=((e={},t={})=>(t.locale??J())===`pl`?_d(e):gd(e)),yd=()=>`Budget reset anchors are stored in the database and evaluated in UTC. Hourly budgets reset at the top of each hour.`,bd=()=>`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.`,xd=((e={},t={})=>(t.locale??J())===`pl`?bd(e):yd(e)),Sd=()=>`Budget Resets`,Cd=()=>`Resetowanie budżetów`,wd=((e={},t={})=>(t.locale??J())===`pl`?Cd(e):Sd(e)),Td=()=>`Budgets`,Ed=()=>`Budżety`,Dd=((e={},t={})=>(t.locale??J())===`pl`?Ed(e):Td(e)),Od=()=>`Budgets help`,kd=()=>`Pomoc dotycząca budżetów`,Ad=((e={},t={})=>(t.locale??J())===`pl`?kd(e):Od(e)),jd=()=>`Budgets are evaluated from tracked usage cost records for each user path subtree. Enforcement runs only when Budget is enabled for the active workflow.`,Md=()=>`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.`,Nd=((e={},t={})=>(t.locale??J())===`pl`?Md(e):jd(e)),Pd=()=>`Create Budget`,Fd=()=>`Utwórz budżet`,Id=((e={},t={})=>(t.locale??J())===`pl`?Fd(e):Pd(e)),Ld=()=>`Budget management is unavailable.`,Rd=()=>`Zarządzanie budżetami jest niedostępne.`,zd=((e={},t={})=>(t.locale??J())===`pl`?Rd(e):Ld(e)),Bd=()=>`Loading budgets...`,Vd=()=>`Wczytywanie budżetów...`,Hd=((e={},t={})=>(t.locale??J())===`pl`?Vd(e):Bd(e)),Ud=()=>`Filter by user path, label, or period...`,Wd=()=>`Filtruj według User Path, etykiety lub okresu...`,Gd=((e={},t={})=>(t.locale??J())===`pl`?Wd(e):Ud(e)),Kd=()=>`Filter budgets by user path, label, or period`,qd=()=>`Filtruj budżety według User Path, etykiety lub okresu`,Jd=((e={},t={})=>(t.locale??J())===`pl`?qd(e):Kd(e)),Yd=()=>`Sort by`,Xd=()=>`Sortuj według`,Zd=((e={},t={})=>(t.locale??J())===`pl`?Xd(e):Yd(e)),Qd=()=>`Sort budgets by`,$d=()=>`Sortuj budżety według`,ef=((e={},t={})=>(t.locale??J())===`pl`?$d(e):Qd(e)),tf=()=>`Scope & Subject`,nf=()=>`Zakres i podmiot`,rf=((e={},t={})=>(t.locale??J())===`pl`?nf(e):tf(e)),af=()=>`Period`,of=()=>`Okres`,sf=((e={},t={})=>(t.locale??J())===`pl`?of(e):af(e)),cf=()=>`No budgets configured yet.`,lf=()=>`Nie skonfigurowano jeszcze budżetów.`,uf=((e={},t={})=>(t.locale??J())===`pl`?lf(e):cf(e)),df=()=>`No budgets match your filter.`,ff=()=>`Żaden budżet nie pasuje do filtra.`,pf=((e={},t={})=>(t.locale??J())===`pl`?ff(e):df(e)),mf=()=>`Edit Budget`,hf=()=>`Edytuj budżet`,gf=((e={},t={})=>(t.locale??J())===`pl`?hf(e):mf(e)),_f=()=>`Create Budget`,vf=()=>`Utwórz budżet`,yf=((e={},t={})=>(t.locale??J())===`pl`?vf(e):_f(e)),bf=()=>`Budget editor`,xf=()=>`Edytor budżetu`,Sf=((e={},t={})=>(t.locale??J())===`pl`?xf(e):bf(e)),Cf=()=>`Save Budget`,wf=()=>`Zapisz budżet`,Tf=((e={},t={})=>(t.locale??J())===`pl`?wf(e):Cf(e)),Ef=()=>`Scope`,Df=()=>`Zakres`,Of=((e={},t={})=>(t.locale??J())===`pl`?Df(e):Ef(e)),kf=()=>`Period Seconds`,Af=()=>`Okres w sekundach`,jf=((e={},t={})=>(t.locale??J())===`pl`?Af(e):kf(e)),Mf=()=>`Amount`,Nf=()=>`Kwota`,Pf=((e={},t={})=>(t.locale??J())===`pl`?Nf(e):Mf(e)),Ff=()=>`Editing a budget updates its limit only. Use Reset to start a new budget period.`,If=()=>`Edycja budżetu zmienia tylko jego limit. Użyj Reset, aby rozpocząć nowy okres budżetowy.`,Lf=((e={},t={})=>(t.locale??J())===`pl`?If(e):Ff(e)),Rf=()=>`Override Existing Budget`,zf=()=>`Nadpisz istniejący budżet`,Bf=((e={},t={})=>(t.locale??J())===`pl`?zf(e):Rf(e)),Vf=()=>`Close budget override dialog`,Hf=()=>`Zamknij okno nadpisywania budżetu`,Uf=((e={},t={})=>(t.locale??J())===`pl`?Hf(e):Vf(e)),Wf=()=>`Saving...`,Gf=()=>`Zapisywanie...`,Kf=((e={},t={})=>(t.locale??J())===`pl`?Gf(e):Wf(e)),qf=()=>`Override Budget`,Jf=()=>`Nadpisz budżet`,Yf=((e={},t={})=>(t.locale??J())===`pl`?Jf(e):qf(e)),Xf=()=>`User path`,Zf=()=>`User Path`,Qf=((e={},t={})=>(t.locale??J())===`pl`?Zf(e):Xf(e)),$f=()=>`user path`,ep=()=>`User Path`,tp=((e={},t={})=>(t.locale??J())===`pl`?ep(e):$f(e)),np=()=>`User Path`,rp=()=>`User Path`,ip=((e={},t={})=>(t.locale??J())===`pl`?rp(e):np(e)),ap=()=>`Label`,op=()=>`Etykieta`,sp=((e={},t={})=>(t.locale??J())===`pl`?op(e):ap(e)),cp=()=>`label`,lp=()=>`etykieta`,up=((e={},t={})=>(t.locale??J())===`pl`?lp(e):cp(e)),dp=()=>`Hourly`,fp=()=>`Co godzinę`,pp=((e={},t={})=>(t.locale??J())===`pl`?fp(e):dp(e)),mp=()=>`Daily`,hp=()=>`Codziennie`,gp=((e={},t={})=>(t.locale??J())===`pl`?hp(e):mp(e)),_p=()=>`Weekly`,vp=()=>`Co tydzień`,yp=((e={},t={})=>(t.locale??J())===`pl`?vp(e):_p(e)),bp=()=>`Monthly`,xp=()=>`Co miesiąc`,Sp=((e={},t={})=>(t.locale??J())===`pl`?xp(e):bp(e)),Cp=()=>`Custom seconds`,wp=()=>`Niestandardowa liczba sekund`,Tp=((e={},t={})=>(t.locale??J())===`pl`?wp(e):Cp(e)),Ep=()=>`User path is required.`,Dp=()=>`User Path jest wymagany.`,Op=((e={},t={})=>(t.locale??J())===`pl`?Dp(e):Ep(e)),kp=()=>`User path cannot contain "." or ".." segments.`,Ap=()=>`User Path nie może zawierać segmentów "." ani "..".`,jp=((e={},t={})=>(t.locale??J())===`pl`?Ap(e):kp(e)),Mp=()=>`User path cannot contain ":" segments.`,Np=()=>`User Path nie może zawierać segmentów z ":".`,Pp=((e={},t={})=>(t.locale??J())===`pl`?Np(e):Mp(e)),Fp=()=>`Label is required.`,Ip=()=>`Etykieta jest wymagana.`,Lp=((e={},t={})=>(t.locale??J())===`pl`?Ip(e):Fp(e)),Rp=()=>`Amount must be greater than 0.`,zp=()=>`Kwota musi być większa od 0.`,Bp=((e={},t={})=>(t.locale??J())===`pl`?zp(e):Rp(e)),Vp=()=>`Period seconds must be greater than 0.`,Hp=()=>`Okres w sekundach musi być większy od 0.`,Up=((e={},t={})=>(t.locale??J())===`pl`?Hp(e):Vp(e)),Wp=e=>`Custom ${e?.period}`,Gp=e=>`Niestandardowy okres: ${e?.period}`,Kp=((e,t={})=>(t.locale??J())===`pl`?Gp(e):Wp(e)),qp=e=>`${e?.count} seconds`,Jp=e=>`${e?.count} s`,Yp=((e,t={})=>(t.locale??J())===`pl`?Jp(e):qp(e)),Xp=()=>`1 second`,Zp=()=>`1 sekunda`,Qp=((e={},t={})=>(t.locale??J())===`pl`?Zp(e):Xp(e)),$p=()=>`1 hour`,em=()=>`1 godzina`,tm=((e={},t={})=>(t.locale??J())===`pl`?em(e):$p(e)),nm=()=>`1 day`,rm=()=>`1 dzień`,im=((e={},t={})=>(t.locale??J())===`pl`?rm(e):nm(e)),am=()=>`1 week`,om=()=>`1 tydzień`,sm=((e={},t={})=>(t.locale??J())===`pl`?om(e):am(e)),cm=()=>`1 month`,lm=()=>`1 miesiąc`,um=((e={},t={})=>(t.locale??J())===`pl`?lm(e):cm(e)),dm=()=>`Created from the dashboard.`,fm=()=>`Utworzono w dashboardzie.`,pm=((e={},t={})=>(t.locale??J())===`pl`?fm(e):dm(e)),mm=()=>`Loaded from configuration.`,hm=()=>`Wczytano z konfiguracji.`,gm=((e={},t={})=>(t.locale??J())===`pl`?hm(e):mm(e)),_m=e=>`Budget source: ${e?.source}`,vm=e=>`Źródło budżetu: ${e?.source}`,ym=((e,t={})=>(t.locale??J())===`pl`?vm(e):_m(e)),bm=e=>`${e?.amount} remaining`,xm=e=>`Pozostało ${e?.amount}`,Sm=((e,t={})=>(t.locale??J())===`pl`?xm(e):bm(e)),Cm=e=>`${e?.amount} over`,wm=e=>`Przekroczono o ${e?.amount}`,Tm=((e,t={})=>(t.locale??J())===`pl`?wm(e):Cm(e)),Em=()=>`Edit`,Dm=()=>`Edytuj`,Om=((e={},t={})=>(t.locale??J())===`pl`?Dm(e):Em(e)),km=()=>`Edit budget`,Am=()=>`Edytuj budżet`,jm=((e={},t={})=>(t.locale??J())===`pl`?Am(e):km(e)),Mm=()=>`Reset`,Nm=()=>`Reset`,Pm=((e={},t={})=>(t.locale??J())===`pl`?Nm(e):Mm(e)),Fm=()=>`Resetting`,Im=()=>`Resetowanie`,Lm=((e={},t={})=>(t.locale??J())===`pl`?Im(e):Fm(e)),Rm=()=>`Reset budget`,zm=()=>`Zresetuj budżet`,Bm=((e={},t={})=>(t.locale??J())===`pl`?zm(e):Rm(e)),Vm=()=>`Resetting budget`,Hm=()=>`Resetowanie budżetu`,Um=((e={},t={})=>(t.locale??J())===`pl`?Hm(e):Vm(e)),Wm=()=>`Delete`,Gm=()=>`Usuń`,Km=((e={},t={})=>(t.locale??J())===`pl`?Gm(e):Wm(e)),qm=()=>`Deleting`,Jm=()=>`Usuwanie`,Ym=((e={},t={})=>(t.locale??J())===`pl`?Jm(e):qm(e)),Xm=()=>`Delete budget`,Zm=()=>`Usuń budżet`,Qm=((e={},t={})=>(t.locale??J())===`pl`?Zm(e):Xm(e)),$m=()=>`Deleting budget`,eh=()=>`Usuwanie budżetu`,th=((e={},t={})=>(t.locale??J())===`pl`?eh(e):$m(e)),nh=()=>`Usage`,rh=()=>`Zużycie`,ih=((e={},t={})=>(t.locale??J())===`pl`?rh(e):nh(e)),ah=e=>`Budget usage: ${e?.spent} of ${e?.amount}, ${e?.remaining}`,oh=e=>`Zużycie budżetu: ${e?.spent} z ${e?.amount}, ${e?.remaining}`,sh=((e,t={})=>(t.locale??J())===`pl`?oh(e):ah(e)),ch=e=>`${e?.spent} of ${e?.amount}`,lh=e=>`${e?.spent} z ${e?.amount}`,uh=((e,t={})=>(t.locale??J())===`pl`?lh(e):ch(e)),dh=()=>`Budget period elapsed`,fh=()=>`Upływ okresu budżetowego`,ph=((e={},t={})=>(t.locale??J())===`pl`?fh(e):dh(e)),mh=e=>`A budget for "${e?.label}" already exists. Saving will override the current ${e?.current} limit with ${e?.next}.`,hh=e=>`Budżet dla "${e?.label}" już istnieje. Zapisanie nadpisze bieżący limit ${e?.current} wartością ${e?.next}.`,gh=((e,t={})=>(t.locale??J())===`pl`?hh(e):mh(e)),_h=()=>`Unable to load budgets.`,vh=()=>`Nie udało się wczytać budżetów.`,yh=((e={},t={})=>(t.locale??J())===`pl`?vh(e):_h(e)),bh=()=>`Unable to save budget.`,xh=()=>`Nie udało się zapisać budżetu.`,Sh=((e={},t={})=>(t.locale??J())===`pl`?xh(e):bh(e)),Ch=()=>`Budget saved.`,wh=()=>`Budżet zapisany.`,Th=((e={},t={})=>(t.locale??J())===`pl`?wh(e):Ch(e)),Eh=e=>`Reset budget "${e?.label}"?`,Dh=e=>`Zresetować budżet "${e?.label}"?`,Oh=((e,t={})=>(t.locale??J())===`pl`?Dh(e):Eh(e)),kh=()=>`Unable to reset budget.`,Ah=()=>`Nie udało się zresetować budżetu.`,jh=((e={},t={})=>(t.locale??J())===`pl`?Ah(e):kh(e)),Mh=()=>`Budget reset.`,Nh=()=>`Budżet zresetowany.`,Ph=((e={},t={})=>(t.locale??J())===`pl`?Nh(e):Mh(e)),Fh=e=>`Delete budget "${e?.label}"? This cannot be undone.`,Ih=e=>`Usunąć budżet "${e?.label}"? Tej operacji nie można cofnąć.`,Lh=((e,t={})=>(t.locale??J())===`pl`?Ih(e):Fh(e)),Rh=()=>`Unable to delete budget.`,zh=()=>`Nie udało się usunąć budżetu.`,Bh=((e={},t={})=>(t.locale??J())===`pl`?zh(e):Rh(e)),Vh=()=>`Budget deleted.`,Hh=()=>`Budżet usunięty.`,Uh=((e={},t={})=>(t.locale??J())===`pl`?Hh(e):Vh(e)),Wh=()=>`Reset Budgets`,Gh=()=>`Resetowanie budżetów`,Kh=((e={},t={})=>(t.locale??J())===`pl`?Gh(e):Wh(e)),qh=()=>`Reset All Budgets`,Jh=()=>`Zresetuj wszystkie budżety`,Yh=((e={},t={})=>(t.locale??J())===`pl`?Jh(e):qh(e)),Xh=()=>`Unable to reset budgets.`,Zh=()=>`Nie udało się zresetować budżetów.`,Qh=((e={},t={})=>(t.locale??J())===`pl`?Zh(e):Xh(e)),$h=()=>`Budgets reset.`,eg=()=>`Budżety zresetowane.`,tg=((e={},t={})=>(t.locale??J())===`pl`?eg(e):$h(e)),ng=()=>`Models`,rg=()=>`Modele`,ig=((e={},t={})=>(t.locale??J())===`pl`?rg(e):ng(e)),ag=e=>`${e?.count} models`,og=e=>`Modele: ${e?.count}`,sg=((e,t={})=>(t.locale??J())===`pl`?og(e):ag(e)),cg=()=>`Virtual models feature is unavailable.`,lg=()=>`Funkcja modeli wirtualnych jest niedostępna.`,ug=((e={},t={})=>(t.locale??J())===`pl`?lg(e):cg(e)),dg=()=>`Filter by provider, provider/model, alias, or owner...`,fg=()=>`Filtruj według dostawcy, dostawcy/modelu, aliasu lub właściciela...`,pg=((e={},t={})=>(t.locale??J())===`pl`?fg(e):dg(e)),mg=()=>`Filter models by provider, provider/model, alias, or owner`,hg=()=>`Filtruj modele według dostawcy, dostawcy/modelu, aliasu lub właściciela`,gg=((e={},t={})=>(t.locale??J())===`pl`?hg(e):mg(e)),_g=()=>`New virtual model`,vg=()=>`Nowy model wirtualny`,yg=((e={},t={})=>(t.locale??J())===`pl`?vg(e):_g(e)),bg=()=>`New virtual model alias`,xg=()=>`Nowy alias modelu wirtualnego`,Sg=((e={},t={})=>(t.locale??J())===`pl`?xg(e):bg(e)),Cg=()=>`Alias`,wg=()=>`Alias`,Tg=((e={},t={})=>(t.locale??J())===`pl`?wg(e):Cg(e)),Eg=()=>`No models registered.`,Dg=()=>`Nie zarejestrowano modeli.`,Og=((e={},t={})=>(t.locale??J())===`pl`?Dg(e):Eg(e)),kg=()=>`No models in this category.`,Ag=()=>`Brak modeli w tej kategorii.`,jg=((e={},t={})=>(t.locale??J())===`pl`?Ag(e):kg(e)),Mg=()=>`No models match your filter.`,Ng=()=>`Żaden model nie pasuje do filtra.`,Pg=((e={},t={})=>(t.locale??J())===`pl`?Ng(e):Mg(e)),Fg=()=>`Model`,Ig=()=>`Model`,Lg=((e={},t={})=>(t.locale??J())===`pl`?Ig(e):Fg(e)),Rg=()=>`Enabled`,zg=()=>`Włączony`,Bg=((e={},t={})=>(t.locale??J())===`pl`?zg(e):Rg(e)),Vg=()=>`Disabled`,Hg=()=>`Wyłączony`,Ug=((e={},t={})=>(t.locale??J())===`pl`?Hg(e):Vg(e)),Wg=()=>`Restricted`,Gg=()=>`Ograniczony`,Kg=((e={},t={})=>(t.locale??J())===`pl`?Gg(e):Wg(e)),qg=()=>`Updating...`,Jg=()=>`Aktualizowanie...`,Yg=((e={},t={})=>(t.locale??J())===`pl`?Jg(e):qg(e)),Xg=()=>`Loading models...`,Zg=()=>`Wczytywanie modeli...`,Qg=((e={},t={})=>(t.locale??J())===`pl`?Zg(e):Xg(e)),$g=()=>`Refreshing models...`,e_=()=>`Odświeżanie modeli...`,t_=((e={},t={})=>(t.locale??J())===`pl`?e_(e):$g(e)),n_=e=>`Rendering models... ${e?.visible} / ${e?.total}`,r_=e=>`Renderowanie modeli... ${e?.visible} / ${e?.total}`,i_=((e,t={})=>(t.locale??J())===`pl`?r_(e):n_(e)),a_=()=>`All providers and models`,o_=()=>`Wszyscy dostawcy i modele`,s_=((e={},t={})=>(t.locale??J())===`pl`?o_(e):a_(e)),c_=e=>`All models in ${e?.provider}`,l_=e=>`Wszystkie modele dostawcy ${e?.provider}`,u_=((e,t={})=>(t.locale??J())===`pl`?l_(e):c_(e)),d_=()=>`Virtual model`,f_=()=>`Model wirtualny`,p_=((e={},t={})=>(t.locale??J())===`pl`?f_(e):d_(e)),m_=()=>`Redirect`,h_=()=>`Przekierowanie`,g_=((e={},t={})=>(t.locale??J())===`pl`?h_(e):m_(e)),__=()=>`Managed by config.yaml / VIRTUAL_MODELS`,v_=()=>`Zarządzane przez config.yaml / VIRTUAL_MODELS`,y_=((e={},t={})=>(t.locale??J())===`pl`?v_(e):__(e)),b_=()=>`Config`,x_=()=>`Config`,S_=((e={},t={})=>(t.locale??J())===`pl`?x_(e):b_(e)),C_=()=>`On`,w_=()=>`Włączone`,T_=((e={},t={})=>(t.locale??J())===`pl`?w_(e):C_(e)),E_=()=>`Targets`,D_=()=>`Cele`,O_=((e={},t={})=>(t.locale??J())===`pl`?D_(e):E_(e)),k_=()=>`Redirects to`,A_=()=>`Przekierowuje do`,j_=((e={},t={})=>(t.locale??J())===`pl`?A_(e):k_(e)),M_=()=>`remove`,N_=()=>`usuń`,P_=((e={},t={})=>(t.locale??J())===`pl`?N_(e):M_(e)),F_=e=>`Remove redirect for ${e?.model}`,I_=e=>`Usuń przekierowanie dla ${e?.model}`,L_=((e,t={})=>(t.locale??J())===`pl`?I_(e):F_(e)),R_=e=>`Removing redirect for ${e?.model}`,z_=e=>`Usuwanie przekierowania dla ${e?.model}`,B_=((e,t={})=>(t.locale??J())===`pl`?z_(e):R_(e)),V_=()=>`Slowdown`,H_=()=>`Spowolnienie`,U_=((e={},t={})=>(t.locale??J())===`pl`?H_(e):V_(e)),W_=e=>`+${e?.value}× inference time`,G_=e=>`+${e?.value}× czasu inferencji`,K_=((e,t={})=>(t.locale??J())===`pl`?G_(e):W_(e)),q_=()=>`Virtual model editor`,J_=()=>`Edytor modelu wirtualnego`,Y_=((e={},t={})=>(t.locale??J())===`pl`?J_(e):q_(e)),X_=()=>`Save`,Z_=()=>`Zapisz`,Q_=((e={},t={})=>(t.locale??J())===`pl`?Z_(e):X_(e)),$_=()=>`Create`,ev=()=>`Utwórz`,tv=((e={},t={})=>(t.locale??J())===`pl`?ev(e):$_(e)),nv=()=>`Virtual model help`,rv=()=>`Pomoc dotycząca modeli wirtualnych`,iv=((e={},t={})=>(t.locale??J())===`pl`?rv(e):nv(e)),av=()=>`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.`,ov=()=>`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.`,sv=((e={},t={})=>(t.locale??J())===`pl`?ov(e):av(e)),cv=()=>`This virtual model is defined in configuration and is read-only here. Edit your configuration to change it.`,lv=()=>`Ten model wirtualny jest zdefiniowany w konfiguracji i tutaj jest tylko do odczytu. Aby go zmienić, edytuj konfigurację.`,uv=((e={},t={})=>(t.locale??J())===`pl`?lv(e):cv(e)),dv=()=>`Source`,fv=()=>`Źródło`,pv=((e={},t={})=>(t.locale??J())===`pl`?fv(e):dv(e)),mv=()=>`Add target (load balancing)`,hv=()=>`Dodaj cel (równoważenie obciążenia)`,gv=((e={},t={})=>(t.locale??J())===`pl`?hv(e):mv(e)),_v=()=>`Load-balancing strategy`,vv=()=>`Strategia równoważenia obciążenia`,yv=((e={},t={})=>(t.locale??J())===`pl`?vv(e):_v(e)),bv=()=>`Session keeping (route a detected client session to the target that served it)`,xv=()=>`Utrzymywanie sesji (kieruj wykrytą sesję klienta do celu, który ją obsłużył)`,Sv=((e={},t={})=>(t.locale??J())===`pl`?xv(e):bv(e)),Cv=()=>`User Paths`,wv=()=>`User Paths`,Tv=((e={},t={})=>(t.locale??J())===`pl`?wv(e):Cv(e)),Ev=()=>`User paths help`,Dv=()=>`Pomoc dotycząca ścieżek użytkownika`,Ov=((e={},t={})=>(t.locale??J())===`pl`?Dv(e):Ev(e)),kv=()=>`Use / to allow every user path. Use a team path to restrict to that subtree, or an unused path to make the selector unavailable.`,Av=()=>`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.`,jv=((e={},t={})=>(t.locale??J())===`pl`?Av(e):kv(e)),Mv=()=>`Description`,Nv=()=>`Opis`,Pv=((e={},t={})=>(t.locale??J())===`pl`?Nv(e):Mv(e)),Fv=()=>`Optional description`,Iv=()=>`Opcjonalny opis`,Lv=((e={},t={})=>(t.locale??J())===`pl`?Iv(e):Fv(e)),Rv=()=>`Slowdown (extra inference time)`,zv=()=>`Spowolnienie (dodatkowy czas inferencji)`,Bv=((e={},t={})=>(t.locale??J())===`pl`?zv(e):Rv(e)),Vv=()=>`Off`,Hv=()=>`Wyłączone`,Uv=((e={},t={})=>(t.locale??J())===`pl`?Hv(e):Vv(e)),Wv=()=>`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.`,Gv=()=>`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.`,Kv=((e={},t={})=>(t.locale??J())===`pl`?Gv(e):Wv(e)),qv=e=>`Default enabled: ${e?.default} · Effective now: ${e?.effective}`,Jv=e=>`Domyślnie włączony: ${e?.default} · Obecnie aktywny: ${e?.effective}`,Yv=((e,t={})=>(t.locale??J())===`pl`?Jv(e):qv(e)),Xv=()=>`yes`,Zv=()=>`tak`,Qv=((e={},t={})=>(t.locale??J())===`pl`?Zv(e):Xv(e)),$v=()=>`no`,ey=()=>`nie`,ty=((e={},t={})=>(t.locale??J())===`pl`?ey(e):$v(e)),ny=()=>`Target model`,ry=()=>`Model docelowy`,iy=((e={},t={})=>(t.locale??J())===`pl`?ry(e):ny(e)),ay=()=>`Target weight`,oy=()=>`Waga celu`,sy=((e={},t={})=>(t.locale??J())===`pl`?oy(e):ay(e)),cy=()=>`weight`,ly=()=>`waga`,uy=((e={},t={})=>(t.locale??J())===`pl`?ly(e):cy(e)),dy=()=>`Remove target`,fy=()=>`Usuń cel`,py=((e={},t={})=>(t.locale??J())===`pl`?fy(e):dy(e)),my=()=>`Model pricing editor`,hy=()=>`Edytor cen modelu`,gy=((e={},t={})=>(t.locale??J())===`pl`?hy(e):my(e)),_y=()=>`Save Pricing`,vy=()=>`Zapisz ceny`,yy=((e={},t={})=>(t.locale??J())===`pl`?vy(e):_y(e)),by=()=>`Pricing override`,xy=()=>`Nadpisanie cen`,Sy=((e={},t={})=>(t.locale??J())===`pl`?xy(e):by(e)),Cy=()=>`Pricing`,wy=()=>`Ceny`,Ty=((e={},t={})=>(t.locale??J())===`pl`?wy(e):Cy(e)),Ey=()=>`Selector`,Dy=()=>`Selektor`,Oy=((e={},t={})=>(t.locale??J())===`pl`?Dy(e):Ey(e)),ky=()=>`Scope`,Ay=()=>`Zakres`,jy=((e={},t={})=>(t.locale??J())===`pl`?Ay(e):ky(e)),My=()=>`Currency is USD. Saved fields override model registry and config.yaml pricing for this selector; unset fields continue to inherit.`,Ny=()=>`Walutą jest USD. Zapisane pola nadpisują ceny z rejestru modeli i config.yaml dla tego selektora; nieustawione pola nadal są dziedziczone.`,Py=((e={},t={})=>(t.locale??J())===`pl`?Ny(e):My(e)),Fy=()=>`Price Type`,Iy=()=>`Typ ceny`,Ly=((e={},t={})=>(t.locale??J())===`pl`?Iy(e):Fy(e)),Ry=()=>`USD Value`,zy=()=>`Wartość USD`,By=((e={},t={})=>(t.locale??J())===`pl`?zy(e):Ry(e)),Vy=e=>`Remove ${e?.price}`,Hy=e=>`Usuń ${e?.price}`,Uy=((e,t={})=>(t.locale??J())===`pl`?Hy(e):Vy(e)),Wy=()=>`Add Price`,Gy=()=>`Dodaj cenę`,Ky=((e={},t={})=>(t.locale??J())===`pl`?Gy(e):Wy(e)),qy=()=>`Tiered pricing exists for this override and will be preserved. Tier editing can be added without a database migration.`,Jy=()=>`Dla tego nadpisania istnieją ceny progowe i zostaną zachowane. Edycję progów można dodać bez migracji bazy danych.`,Yy=((e={},t={})=>(t.locale??J())===`pl`?Jy(e):qy(e)),Xy=()=>`Source`,Zy=()=>`Źródło`,Qy=((e={},t={})=>(t.locale??J())===`pl`?Zy(e):Xy(e)),$y=()=>`No pricing fields set.`,eb=()=>`Nie ustawiono pól cenowych.`,tb=((e={},t={})=>(t.locale??J())===`pl`?eb(e):$y(e)),nb=()=>`Remove Override`,rb=()=>`Usuń nadpisanie`,ib=((e={},t={})=>(t.locale??J())===`pl`?rb(e):nb(e)),ab=()=>`Failover editor`,ob=()=>`Edytor Failover`,sb=((e={},t={})=>(t.locale??J())===`pl`?ob(e):ab(e)),cb=()=>`Failover mapping`,lb=()=>`Mapowanie Failover`,ub=((e={},t={})=>(t.locale??J())===`pl`?lb(e):cb(e)),db=()=>`This failover mapping is defined in configuration and is read-only here.`,fb=()=>`To mapowanie Failover jest zdefiniowane w konfiguracji i tutaj jest tylko do odczytu.`,pb=((e={},t={})=>(t.locale??J())===`pl`?fb(e):db(e)),mb=()=>`Fallback models`,hb=()=>`Modele Fallback`,gb=((e={},t={})=>(t.locale??J())===`pl`?hb(e):mb(e)),_b=()=>`Fallback model`,vb=()=>`Model Fallback`,yb=((e={},t={})=>(t.locale??J())===`pl`?vb(e):_b(e)),bb=()=>`Remove fallback model`,xb=()=>`Usuń model Fallback`,Sb=((e={},t={})=>(t.locale??J())===`pl`?xb(e):bb(e)),Cb=()=>`Add fallback model`,wb=()=>`Dodaj model Fallback`,Tb=((e={},t={})=>(t.locale??J())===`pl`?wb(e):Cb(e)),Eb=()=>`Generating...`,Db=()=>`Generowanie...`,Ob=((e={},t={})=>(t.locale??J())===`pl`?Db(e):Eb(e)),kb=()=>`Generate automatically`,Ab=()=>`Generuj automatycznie`,jb=((e={},t={})=>(t.locale??J())===`pl`?Ab(e):kb(e)),Mb=()=>`Remove`,Nb=()=>`Usuń`,Pb=((e={},t={})=>(t.locale??J())===`pl`?Nb(e):Mb(e)),Fb=()=>`Generated failover drafts`,Ib=()=>`Wygenerowane propozycje Failover`,Lb=((e={},t={})=>(t.locale??J())===`pl`?Ib(e):Fb(e)),Rb=()=>`Generated drafts`,zb=()=>`Wygenerowane propozycje`,Bb=((e={},t={})=>(t.locale??J())===`pl`?zb(e):Rb(e)),Vb=()=>`Failover models`,Hb=()=>`Modele Failover`,Ub=((e={},t={})=>(t.locale??J())===`pl`?Hb(e):Vb(e)),Wb=()=>`Close failover drafts`,Gb=()=>`Zamknij propozycje Failover`,Kb=((e={},t={})=>(t.locale??J())===`pl`?Gb(e):Wb(e)),qb=()=>`Generating failover drafts...`,Jb=()=>`Generowanie propozycji Failover...`,Yb=((e={},t={})=>(t.locale??J())===`pl`?Jb(e):qb(e)),Xb=()=>`Filter failover drafts...`,Zb=()=>`Filtruj propozycje Failover...`,Qb=((e={},t={})=>(t.locale??J())===`pl`?Zb(e):Xb(e)),$b=()=>`Filter failover drafts`,ex=()=>`Filtruj propozycje Failover`,tx=((e={},t={})=>(t.locale??J())===`pl`?ex(e):$b(e)),nx=()=>`Select all`,rx=()=>`Zaznacz wszystkie`,ix=((e={},t={})=>(t.locale??J())===`pl`?rx(e):nx(e)),ax=()=>`Deselect all`,ox=()=>`Odznacz wszystkie`,sx=((e={},t={})=>(t.locale??J())===`pl`?ox(e):ax(e)),cx=e=>`Select failover draft for ${e?.model}`,lx=e=>`Zaznacz propozycję Failover dla ${e?.model}`,ux=((e,t={})=>(t.locale??J())===`pl`?lx(e):cx(e)),dx=()=>`No failover suggestions were generated.`,fx=()=>`Nie wygenerowano propozycji Failover.`,px=((e={},t={})=>(t.locale??J())===`pl`?fx(e):dx(e)),mx=()=>`No failover drafts match the filter.`,hx=()=>`Żadna propozycja Failover nie pasuje do filtra.`,gx=((e={},t={})=>(t.locale??J())===`pl`?hx(e):mx(e)),_x=()=>`Saving...`,vx=()=>`Zapisywanie...`,yx=((e={},t={})=>(t.locale??J())===`pl`?vx(e):_x(e)),bx=()=>`Save selected`,xx=()=>`Zapisz zaznaczone`,Sx=((e={},t={})=>(t.locale??J())===`pl`?xx(e):bx(e)),Cx=()=>`API Keys`,wx=()=>`Klucze API`,Tx=((e={},t={})=>(t.locale??J())===`pl`?wx(e):Cx(e)),Ex=()=>`Create API Key`,Dx=()=>`Utwórz klucz API`,Ox=((e={},t={})=>(t.locale??J())===`pl`?Dx(e):Ex(e)),kx=()=>`API key management is unavailable.`,Ax=()=>`Zarządzanie kluczami API jest niedostępne.`,jx=((e={},t={})=>(t.locale??J())===`pl`?Ax(e):kx(e)),Mx=()=>`Managed API keys authenticate requests to the gateway. Deactivation is permanent — create a new key if access needs to be restored.`,Nx=()=>`Zarządzane klucze API uwierzytelniają Requesty do gatewaya. Dezaktywacja jest trwała — aby przywrócić dostęp, utwórz nowy klucz.`,Px=((e={},t={})=>(t.locale??J())===`pl`?Nx(e):Mx(e)),Fx=()=>`Loading API keys`,Ix=()=>`Wczytywanie kluczy API`,Lx=((e={},t={})=>(t.locale??J())===`pl`?Ix(e):Fx(e)),Rx=()=>`Filter by name, description, user path, label, or token...`,zx=()=>`Filtruj według nazwy, opisu, User Path, etykiety lub tokenu...`,Bx=((e={},t={})=>(t.locale??J())===`pl`?zx(e):Rx(e)),Vx=()=>`Filter API keys by name, description, user path, label, or token`,Hx=()=>`Filtruj klucze API według nazwy, opisu, User Path, etykiety lub tokenu`,Ux=((e={},t={})=>(t.locale??J())===`pl`?Hx(e):Vx(e)),Wx=()=>`Show inactive`,Gx=()=>`Pokaż nieaktywne`,Kx=((e={},t={})=>(t.locale??J())===`pl`?Gx(e):Wx(e)),qx=()=>`No API keys match the current filter.`,Jx=()=>`Żaden klucz API nie pasuje do bieżącego filtra.`,Yx=((e={},t={})=>(t.locale??J())===`pl`?Jx(e):qx(e)),Xx=e=>`${e?.count} inactive keys are hidden.`,Zx=e=>`Ukryte nieaktywne klucze: ${e?.count}.`,Qx=((e,t={})=>(t.locale??J())===`pl`?Zx(e):Xx(e)),$x=()=>`No API keys yet. Issue a key to get started.`,eS=()=>`Nie ma jeszcze kluczy API. Utwórz klucz, aby rozpocząć.`,tS=((e={},t={})=>(t.locale??J())===`pl`?eS(e):$x(e)),nS=()=>`API key editor`,rS=()=>`Edytor klucza API`,iS=((e={},t={})=>(t.locale??J())===`pl`?rS(e):nS(e)),aS=()=>`Done, I’ve stored it`,oS=()=>`Gotowe, klucz został zapisany`,sS=((e={},t={})=>(t.locale??J())===`pl`?oS(e):aS(e)),cS=()=>`Creating...`,lS=()=>`Tworzenie...`,uS=((e={},t={})=>(t.locale??J())===`pl`?lS(e):cS(e)),dS=()=>`Store this key securely — it won’t be shown again.`,fS=()=>`Przechowuj ten klucz bezpiecznie — nie zostanie pokazany ponownie.`,pS=((e={},t={})=>(t.locale??J())===`pl`?fS(e):dS(e)),mS=()=>`Unable to copy the key automatically. Copy it manually.`,hS=()=>`Nie udało się automatycznie skopiować klucza. Skopiuj go ręcznie.`,gS=((e={},t={})=>(t.locale??J())===`pl`?hS(e):mS(e)),_S=()=>`Name`,vS=()=>`Nazwa`,yS=((e={},t={})=>(t.locale??J())===`pl`?vS(e):_S(e)),bS=()=>`required`,xS=()=>`wymagane`,SS=((e={},t={})=>(t.locale??J())===`pl`?xS(e):bS(e)),CS=()=>`Expires`,wS=()=>`Wygasa`,TS=((e={},t={})=>(t.locale??J())===`pl`?wS(e):CS(e)),ES=()=>`optional, valid through the selected date`,DS=()=>`opcjonalne, ważne do końca wybranego dnia`,OS=((e={},t={})=>(t.locale??J())===`pl`?DS(e):ES(e)),kS=()=>`User Path (optional)`,AS=()=>`User Path (opcjonalny)`,jS=((e={},t={})=>(t.locale??J())===`pl`?AS(e):kS(e)),MS=()=>`API key user path help`,NS=()=>`Pomoc dotycząca User Path klucza API`,PS=((e={},t={})=>(t.locale??J())===`pl`?NS(e):MS(e)),FS=()=>`When set, this key overrides the configured user path request header for audit logging and downstream request context.`,IS=()=>`Po ustawieniu klucz nadpisuje skonfigurowany nagłówek User Path na potrzeby logów audytowych i kontekstu dalszych Request'ów.`,LS=((e={},t={})=>(t.locale??J())===`pl`?IS(e):FS(e)),RS=()=>`Labels (optional, comma-separated)`,zS=()=>`Etykiety (opcjonalne, rozdzielone przecinkami)`,BS=((e={},t={})=>(t.locale??J())===`pl`?zS(e):RS(e)),VS=()=>`API key labels help`,HS=()=>`Pomoc dotycząca etykiet klucza API`,US=((e={},t={})=>(t.locale??J())===`pl`?HS(e):VS(e)),WS=()=>`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.`,GS=()=>`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.`,KS=((e={},t={})=>(t.locale??J())===`pl`?GS(e):WS(e)),qS=()=>`Dashboard Access`,JS=()=>`Dostęp do dashboardu`,YS=((e={},t={})=>(t.locale??J())===`pl`?JS(e):qS(e)),XS=()=>`API key dashboard access help`,ZS=()=>`Pomoc dotycząca dostępu klucza API do dashboardu`,QS=((e={},t={})=>(t.locale??J())===`pl`?ZS(e):XS(e)),$S=()=>`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.`,eC=()=>`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.`,tC=((e={},t={})=>(t.locale??J())===`pl`?eC(e):$S(e)),nC=()=>`Allow this key to use the dashboard and /admin API`,rC=()=>`Zezwól temu kluczowi na korzystanie z dashboardu i /admin API`,iC=((e={},t={})=>(t.locale??J())===`pl`?rC(e):nC(e)),aC=()=>`Description (optional)`,oC=()=>`Opis (opcjonalny)`,sC=((e={},t={})=>(t.locale??J())===`pl`?oC(e):aC(e)),cC=()=>`What is this key used for?`,lC=()=>`Do czego służy ten klucz?`,uC=((e={},t={})=>(t.locale??J())===`pl`?lC(e):cC(e)),dC=()=>`Description`,fC=()=>`Opis`,pC=((e={},t={})=>(t.locale??J())===`pl`?fC(e):dC(e)),mC=()=>`User Path`,hC=()=>`User Path`,gC=((e={},t={})=>(t.locale??J())===`pl`?hC(e):mC(e)),_C=()=>`Labels`,vC=()=>`Etykiety`,yC=((e={},t={})=>(t.locale??J())===`pl`?vC(e):_C(e)),bC=()=>`Token`,xC=()=>`Token`,SC=((e={},t={})=>(t.locale??J())===`pl`?xC(e):bC(e)),CC=()=>`Created`,wC=()=>`Utworzono`,TC=((e={},t={})=>(t.locale??J())===`pl`?wC(e):CC(e)),EC=()=>`Actions`,DC=()=>`Akcje`,OC=((e={},t={})=>(t.locale??J())===`pl`?DC(e):EC(e)),kC=()=>`Allowed`,AC=()=>`Dozwolony`,jC=((e={},t={})=>(t.locale??J())===`pl`?AC(e):kC(e)),MC=()=>`Denied`,NC=()=>`Zablokowany`,PC=((e={},t={})=>(t.locale??J())===`pl`?NC(e):MC(e)),FC=()=>`Expired`,IC=()=>`Wygasł`,LC=((e={},t={})=>(t.locale??J())===`pl`?IC(e):FC(e)),RC=()=>`Deactivated`,zC=()=>`Dezaktywowany`,BC=((e={},t={})=>(t.locale??J())===`pl`?zC(e):RC(e)),VC=()=>`Edit Labels`,HC=()=>`Edytuj etykiety`,UC=((e={},t={})=>(t.locale??J())===`pl`?HC(e):VC(e)),WC=()=>`API key labels editor`,GC=()=>`Edytor etykiet klucza API`,KC=((e={},t={})=>(t.locale??J())===`pl`?GC(e):WC(e)),qC=()=>`Save Labels`,JC=()=>`Zapisz etykiety`,YC=((e={},t={})=>(t.locale??J())===`pl`?JC(e):qC(e)),XC=()=>`Labels (comma-separated)`,ZC=()=>`Etykiety (rozdzielone przecinkami)`,QC=((e={},t={})=>(t.locale??J())===`pl`?ZC(e):XC(e)),$C=()=>`Applies to new requests made with this key. Leave empty to remove all labels.`,ew=()=>`Dotyczy nowych Request'ów wykonywanych tym kluczem. Pozostaw puste, aby usunąć wszystkie etykiety.`,tw=((e={},t={})=>(t.locale??J())===`pl`?ew(e):$C(e)),nw=()=>`MCP Servers`,rw=()=>`Serwery MCP`,iw=((e={},t={})=>(t.locale??J())===`pl`?rw(e):nw(e)),aw=()=>`MCP servers help`,ow=()=>`Pomoc dotycząca serwerów MCP`,sw=((e={},t={})=>(t.locale??J())===`pl`?ow(e):aw(e)),cw=()=>`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.`,lw=()=>`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.`,uw=((e={},t={})=>(t.locale??J())===`pl`?lw(e):cw(e)),dw=()=>`Add MCP Server`,fw=()=>`Dodaj serwer MCP`,pw=((e={},t={})=>(t.locale??J())===`pl`?fw(e):dw(e)),mw=()=>`MCP server management is unavailable.`,hw=()=>`Zarządzanie serwerami MCP jest niedostępne.`,gw=((e={},t={})=>(t.locale??J())===`pl`?hw(e):mw(e)),_w=()=>`Loading MCP servers...`,vw=()=>`Wczytywanie serwerów MCP...`,yw=((e={},t={})=>(t.locale??J())===`pl`?vw(e):_w(e)),bw=()=>`Filter by name, slug, URL, transport, or status...`,xw=()=>`Filtruj według nazwy, sluga, URL, transportu lub statusu...`,Sw=((e={},t={})=>(t.locale??J())===`pl`?xw(e):bw(e)),Cw=()=>`Filter MCP servers by name, slug, URL, transport, or status`,ww=()=>`Filtruj serwery MCP według nazwy, sluga, URL, transportu lub statusu`,Tw=((e={},t={})=>(t.locale??J())===`pl`?ww(e):Cw(e)),Ew=()=>`No MCP servers yet. Add one here, or declare servers in config.yaml under mcp.servers.`,Dw=()=>`Nie ma jeszcze serwerów MCP. Dodaj serwer tutaj albo zadeklaruj go w config.yaml w mcp.servers.`,Ow=((e={},t={})=>(t.locale??J())===`pl`?Dw(e):Ew(e)),kw=()=>`No MCP servers match your filter.`,Aw=()=>`Żaden serwer MCP nie pasuje do filtra.`,jw=((e={},t={})=>(t.locale??J())===`pl`?Aw(e):kw(e)),Mw=()=>`MCP server catalog`,Nw=()=>`Katalog serwera MCP`,Pw=((e={},t={})=>(t.locale??J())===`pl`?Nw(e):Mw(e)),Fw=()=>`Server Catalog`,Iw=()=>`Katalog serwera`,Lw=((e={},t={})=>(t.locale??J())===`pl`?Iw(e):Fw(e)),Rw=()=>`Close MCP server catalog`,zw=()=>`Zamknij katalog serwera MCP`,Bw=((e={},t={})=>(t.locale??J())===`pl`?zw(e):Rw(e)),Vw=()=>`Loading catalog...`,Hw=()=>`Wczytywanie katalogu...`,Uw=((e={},t={})=>(t.locale??J())===`pl`?Hw(e):Vw(e)),Ww=e=>`Exposed on the aggregated /mcp endpoint as ${e?.name}`,Gw=e=>`Udostępnione w zbiorczym endpoincie /mcp jako ${e?.name}`,Kw=((e,t={})=>(t.locale??J())===`pl`?Gw(e):Ww(e)),qw=()=>`No tools listed — the server may still be connecting or degraded.`,Jw=()=>`Brak narzędzi — serwer może nadal się łączyć albo działać w trybie zdegradowanym.`,Yw=((e={},t={})=>(t.locale??J())===`pl`?Jw(e):qw(e)),Xw=()=>`Close`,Zw=()=>`Zamknij`,Qw=((e={},t={})=>(t.locale??J())===`pl`?Zw(e):Xw(e)),$w=()=>`Edit MCP Server`,eT=()=>`Edytuj serwer MCP`,tT=((e={},t={})=>(t.locale??J())===`pl`?eT(e):$w(e)),nT=()=>`MCP server editor`,rT=()=>`Edytor serwera MCP`,iT=((e={},t={})=>(t.locale??J())===`pl`?rT(e):nT(e)),aT=()=>`The display name can change. The slug is the stable client-facing identity.`,oT=()=>`Wyświetlaną nazwę można zmienić. Slug jest stałą tożsamością widoczną dla klienta.`,sT=((e={},t={})=>(t.locale??J())===`pl`?oT(e):aT(e)),cT=()=>`Name`,lT=()=>`Nazwa`,uT=((e={},t={})=>(t.locale??J())===`pl`?lT(e):cT(e)),dT=()=>`Human-readable and Unicode-friendly. You can change it later.`,fT=()=>`Czytelna dla człowieka i zgodna z Unicode. Możesz ją później zmienić.`,pT=((e={},t={})=>(t.locale??J())===`pl`?fT(e):dT(e)),mT=()=>`Slug`,hT=()=>`Slug`,gT=((e={},t={})=>(t.locale??J())===`pl`?hT(e):mT(e)),_T=()=>`Derived from the name. You may edit it before saving.`,vT=()=>`Tworzony z nazwy. Możesz go zmienić przed zapisem.`,yT=((e={},t={})=>(t.locale??J())===`pl`?vT(e):_T(e)),bT=()=>`Immutable because it is used in URLs, scope headers, and aggregated tool names.`,xT=()=>`Niezmienny, ponieważ jest używany w URL-ach, nagłówkach zakresu i zbiorczych nazwach narzędzi.`,ST=((e={},t={})=>(t.locale??J())===`pl`?xT(e):bT(e)),CT=()=>`Transport`,wT=()=>`Transport`,TT=((e={},t={})=>(t.locale??J())===`pl`?wT(e):CT(e)),ET=()=>`Connect to a remote MCP server over Streamable HTTP or legacy SSE.`,DT=()=>`Połącz ze zdalnym serwerem MCP przez Streamable HTTP lub starszy protokół SSE.`,OT=((e={},t={})=>(t.locale??J())===`pl`?DT(e):ET(e)),kT=()=>`Headers`,AT=()=>`Nagłówki`,jT=((e={},t={})=>(t.locale??J())===`pl`?AT(e):kT(e)),MT=()=>`Header name`,NT=()=>`Nazwa nagłówka`,PT=((e={},t={})=>(t.locale??J())===`pl`?NT(e):MT(e)),FT=()=>`Header value`,IT=()=>`Wartość nagłówka`,LT=((e={},t={})=>(t.locale??J())===`pl`?IT(e):FT(e)),RT=()=>`Remove header`,zT=()=>`Usuń nagłówek`,BT=((e={},t={})=>(t.locale??J())===`pl`?zT(e):RT(e)),VT=()=>`Add header`,HT=()=>`Dodaj nagłówek`,UT=((e={},t={})=>(t.locale??J())===`pl`?HT(e):VT(e)),WT=()=>`Sent only to the configured server origin. Leave masked values unchanged to keep the stored value.`,GT=()=>`Wysyłane tylko do skonfigurowanego originu serwera. Pozostaw zamaskowane wartości bez zmian, aby zachować zapisane dane.`,KT=((e={},t={})=>(t.locale??J())===`pl`?GT(e):WT(e)),qT=()=>`Advanced settings`,JT=()=>`Ustawienia zaawansowane`,YT=((e={},t={})=>(t.locale??J())===`pl`?JT(e):qT(e)),XT=()=>`Description, access rules, and timeout`,ZT=()=>`Opis, reguły dostępu i timeout`,QT=((e={},t={})=>(t.locale??J())===`pl`?ZT(e):XT(e)),$T=()=>`Description`,eE=()=>`Opis`,tE=((e={},t={})=>(t.locale??J())===`pl`?eE(e):$T(e)),nE=()=>`Allowed tools`,rE=()=>`Dozwolone narzędzia`,iE=((e={},t={})=>(t.locale??J())===`pl`?rE(e):nE(e)),aE=()=>`Disallowed tools`,oE=()=>`Zabronione narzędzia`,sE=((e={},t={})=>(t.locale??J())===`pl`?oE(e):aE(e)),cE=()=>`User paths (empty means all)`,lE=()=>`User Paths (puste oznacza wszystkie)`,uE=((e={},t={})=>(t.locale??J())===`pl`?lE(e):cE(e)),dE=()=>`Tool timeout (seconds)`,fE=()=>`Timeout narzędzia (sekundy)`,pE=((e={},t={})=>(t.locale??J())===`pl`?fE(e):dE(e)),mE=()=>`Default timeout when empty`,hE=()=>`Domyślny timeout, gdy pole jest puste`,gE=((e={},t={})=>(t.locale??J())===`pl`?hE(e):mE(e)),_E=()=>`Workflows`,vE=()=>`Workflows`,yE=((e={},t={})=>(t.locale??J())===`pl`?vE(e):_E(e)),bE=()=>`Active workflows are matched path-first: deepest user path wins first, then provider name and model specificity, then broader matches, then global.`,xE=()=>`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.`,SE=((e={},t={})=>(t.locale??J())===`pl`?xE(e):bE(e)),CE=()=>`New Workflow`,wE=()=>`Nowy Workflow`,TE=((e={},t={})=>(t.locale??J())===`pl`?wE(e):CE(e)),EE=()=>`Workflows feature is unavailable.`,DE=()=>`Funkcja Workflows jest niedostępna.`,OE=((e={},t={})=>(t.locale??J())===`pl`?DE(e):EE(e)),kE=()=>`Filter by scope, name, hash, or guardrail...`,AE=()=>`Filtruj według zakresu, nazwy, hasha lub Guardrail...`,jE=((e={},t={})=>(t.locale??J())===`pl`?AE(e):kE(e)),ME=()=>`Filter workflows`,NE=()=>`Filtruj Workflows`,PE=((e={},t={})=>(t.locale??J())===`pl`?NE(e):ME(e)),FE=()=>`No active workflows found.`,IE=()=>`Nie znaleziono aktywnych Workflows.`,LE=((e={},t={})=>(t.locale??J())===`pl`?IE(e):FE(e)),RE=()=>`No workflows match your filter.`,zE=()=>`Żaden Workflow nie pasuje do filtra.`,BE=((e={},t={})=>(t.locale??J())===`pl`?zE(e):RE(e)),VE=()=>`Async`,HE=()=>`Asynchronicznie`,UE=((e={},t={})=>(t.locale??J())===`pl`?HE(e):VE(e)),WE=()=>`Guardrails`,GE=()=>`Guardrails`,KE=((e={},t={})=>(t.locale??J())===`pl`?GE(e):WE(e)),qE=()=>`No guardrails configured for this workflow.`,JE=()=>`W tym Workflow nie skonfigurowano Guardrails.`,YE=((e={},t={})=>(t.locale??J())===`pl`?JE(e):qE(e)),XE=()=>`Providers`,ZE=()=>`Dostawcy`,QE=((e={},t={})=>(t.locale??J())===`pl`?ZE(e):XE(e)),$E=()=>`Add Provider`,eD=()=>`Dodaj dostawcę`,tD=((e={},t={})=>(t.locale??J())===`pl`?eD(e):$E(e)),nD=()=>`Provider credential management is unavailable.`,rD=()=>`Zarządzanie danymi dostępowymi dostawców jest niedostępne.`,iD=((e={},t={})=>(t.locale??J())===`pl`?rD(e):nD(e)),aD=()=>`Filter by name, type, or base URL...`,oD=()=>`Filtruj według nazwy, typu lub bazowego URL...`,sD=((e={},t={})=>(t.locale??J())===`pl`?oD(e):aD(e)),cD=()=>`Filter providers by name, type, or base URL`,lD=()=>`Filtruj dostawców według nazwy, typu lub bazowego URL`,uD=((e={},t={})=>(t.locale??J())===`pl`?lD(e):cD(e)),dD=()=>`No dashboard-managed providers yet. Add one here, or declare providers in config.yaml or environment variables.`,fD=()=>`Nie ma jeszcze dostawców zarządzanych w dashboardzie. Dodaj dostawcę tutaj albo zadeklaruj go w config.yaml lub zmiennych środowiskowych.`,pD=((e={},t={})=>(t.locale??J())===`pl`?fD(e):dD(e)),mD=()=>`No providers match your filter.`,hD=()=>`Żaden dostawca nie pasuje do filtra.`,gD=((e={},t={})=>(t.locale??J())===`pl`?hD(e):mD(e)),_D=()=>`Name`,vD=()=>`Nazwa`,yD=((e={},t={})=>(t.locale??J())===`pl`?vD(e):_D(e)),bD=()=>`Type`,xD=()=>`Typ`,SD=((e={},t={})=>(t.locale??J())===`pl`?xD(e):bD(e)),CD=()=>`Auth`,wD=()=>`Uwierzytelnianie`,TD=((e={},t={})=>(t.locale??J())===`pl`?wD(e):CD(e)),ED=()=>`Models`,DD=()=>`Modele`,OD=((e={},t={})=>(t.locale??J())===`pl`?DD(e):ED(e)),kD=()=>`Enabled`,AD=()=>`Włączony`,jD=((e={},t={})=>(t.locale??J())===`pl`?AD(e):kD(e)),MD=()=>`Updated`,ND=()=>`Zaktualizowano`,PD=((e={},t={})=>(t.locale??J())===`pl`?ND(e):MD(e)),FD=()=>`Actions`,ID=()=>`Akcje`,LD=((e={},t={})=>(t.locale??J())===`pl`?ID(e):FD(e)),RD=()=>`Declared in configuration (config.yaml or env vars); read-only in the dashboard`,zD=()=>`Zadeklarowano w konfiguracji (config.yaml lub zmienne środowiskowe); tylko do odczytu w dashboardzie`,BD=((e={},t={})=>(t.locale??J())===`pl`?zD(e):RD(e)),VD=()=>`Rate Limits`,HD=()=>`Rate Limits`,UD=((e={},t={})=>(t.locale??J())===`pl`?HD(e):VD(e)),WD=()=>`Create Rate Limit`,GD=()=>`Utwórz Rate Limit`,KD=((e={},t={})=>(t.locale??J())===`pl`?GD(e):WD(e)),qD=()=>`Rate limit management is unavailable.`,JD=()=>`Zarządzanie Rate Limitami jest niedostępne.`,YD=((e={},t={})=>(t.locale??J())===`pl`?JD(e):qD(e)),XD=()=>`Filter by subject, scope, or period...`,ZD=()=>`Filtruj według podmiotu, zakresu lub okresu...`,QD=((e={},t={})=>(t.locale??J())===`pl`?ZD(e):XD(e)),$D=()=>`Filter rate limits by subject, scope, or period`,eO=()=>`Filtruj Rate Limity według podmiotu, zakresu lub okresu`,tO=((e={},t={})=>(t.locale??J())===`pl`?eO(e):$D(e)),nO=()=>`No rate limits configured yet.`,rO=()=>`Nie skonfigurowano jeszcze Rate Limitów.`,iO=((e={},t={})=>(t.locale??J())===`pl`?rO(e):nO(e)),aO=()=>`No rate limits match your filter.`,oO=()=>`Żaden Rate Limit nie pasuje do filtra.`,sO=((e={},t={})=>(t.locale??J())===`pl`?oO(e):aO(e)),cO=()=>`Effective rate limits`,lO=()=>`Efektywne Rate Limity`,uO=((e={},t={})=>(t.locale??J())===`pl`?lO(e):cO(e)),dO=()=>`Add`,fO=()=>`Dodaj`,pO=((e={},t={})=>(t.locale??J())===`pl`?fO(e):dO(e)),mO=()=>`No rules.`,hO=()=>`Brak reguł.`,gO=((e={},t={})=>(t.locale??J())===`pl`?hO(e):mO(e)),_O=()=>`Edit`,vO=()=>`Edytuj`,yO=((e={},t={})=>(t.locale??J())===`pl`?vO(e):_O(e)),bO=()=>`In-flight`,xO=()=>`W toku`,SO=((e={},t={})=>(t.locale??J())===`pl`?xO(e):bO(e)),CO=()=>`Requests`,wO=()=>`Requesty`,TO=((e={},t={})=>(t.locale??J())===`pl`?wO(e):CO(e)),EO=()=>`Tokens`,DO=()=>`Tokeny`,OO=((e={},t={})=>(t.locale??J())===`pl`?DO(e):EO(e)),kO=()=>`Guardrails`,AO=()=>`Guardrails`,jO=((e={},t={})=>(t.locale??J())===`pl`?AO(e):kO(e)),MO=()=>`Reusable Policy Objects`,NO=()=>`Obiekty polityk wielokrotnego użytku`,PO=((e={},t={})=>(t.locale??J())===`pl`?NO(e):MO(e)),FO=()=>`Guardrail Library`,IO=()=>`Biblioteka Guardrails`,LO=((e={},t={})=>(t.locale??J())===`pl`?IO(e):FO(e)),RO=()=>`Instances`,zO=()=>`Instancje`,BO=((e={},t={})=>(t.locale??J())===`pl`?zO(e):RO(e)),VO=()=>`Types`,HO=()=>`Typy`,UO=((e={},t={})=>(t.locale??J())===`pl`?HO(e):VO(e)),WO=()=>`GUARDRAILS_ENABLED is disabled. You can still manage Guardrails, but they will not run.`,GO=()=>`GUARDRAILS_ENABLED jest wyłączone. Nadal możesz zarządzać Guardrails, ale nie będą uruchamiane.`,KO=((e={},t={})=>(t.locale??J())===`pl`?GO(e):WO(e)),qO=()=>`Guardrails feature is unavailable.`,JO=()=>`Funkcja Guardrails jest niedostępna.`,YO=((e={},t={})=>(t.locale??J())===`pl`?JO(e):qO(e)),XO=()=>`Create Guardrail`,ZO=()=>`Utwórz Guardrail`,QO=((e={},t={})=>(t.locale??J())===`pl`?ZO(e):XO(e)),$O=()=>`Filter by name, type, user path, summary...`,ek=()=>`Filtruj według nazwy, typu, User Path lub podsumowania...`,tk=((e={},t={})=>(t.locale??J())===`pl`?ek(e):$O(e)),nk=()=>`Filter Guardrails`,rk=()=>`Filtruj Guardrails`,ik=((e={},t={})=>(t.locale??J())===`pl`?rk(e):nk(e)),ak=()=>`Name`,ok=()=>`Nazwa`,sk=((e={},t={})=>(t.locale??J())===`pl`?ok(e):ak(e)),ck=()=>`Type`,lk=()=>`Typ`,uk=((e={},t={})=>(t.locale??J())===`pl`?lk(e):ck(e)),dk=()=>`User Path`,fk=()=>`User Path`,pk=((e={},t={})=>(t.locale??J())===`pl`?fk(e):dk(e)),mk=()=>`Summary`,hk=()=>`Podsumowanie`,gk=((e={},t={})=>(t.locale??J())===`pl`?hk(e):mk(e)),_k=()=>`Actions`,vk=()=>`Akcje`,yk=((e={},t={})=>(t.locale??J())===`pl`?vk(e):_k(e)),bk=()=>`No Guardrails defined yet.`,xk=()=>`Nie zdefiniowano jeszcze Guardrails.`,Sk=((e={},t={})=>(t.locale??J())===`pl`?xk(e):bk(e)),Ck=()=>`Guardrails help`,wk=()=>`Pomoc dotycząca Guardrails`,Tk=((e={},t={})=>(t.locale??J())===`pl`?wk(e):Ck(e)),Ek=()=>`Reusable policy objects stored in the database and kept hot in memory for Workflow execution.`,Dk=()=>`Obiekty polityk wielokrotnego użytku zapisane w bazie danych i utrzymywane w pamięci na potrzeby wykonywania Workflows.`,Ok=((e={},t={})=>(t.locale??J())===`pl`?Dk(e):Ek(e)),kk=()=>`Store Guardrails in the database, keep them hot in memory, and attach them to Workflows by reference.`,Ak=()=>`Przechowuj Guardrails w bazie danych, utrzymuj je w pamięci i dołączaj do Workflows przez referencję.`,jk=((e={},t={})=>(t.locale??J())===`pl`?Ak(e):kk(e)),Mk=()=>`Each instance has a reusable name, a type, an optional user path for visibility scoping, and a JSON-backed config payload.`,Nk=()=>`Każda instancja ma nazwę wielokrotnego użytku, typ, opcjonalny User Path do ograniczania widoczności i konfigurację JSON.`,Pk=((e={},t={})=>(t.locale??J())===`pl`?Nk(e):Mk(e)),Fk=()=>`Loading Guardrails...`,Ik=()=>`Wczytywanie Guardrails...`,Lk=((e={},t={})=>(t.locale??J())===`pl`?Ik(e):Fk(e)),Rk=()=>`No summary yet.`,zk=()=>`Brak podsumowania.`,Bk=((e={},t={})=>(t.locale??J())===`pl`?zk(e):Rk(e)),Vk=()=>`Workflow editor`,Hk=()=>`Edytor Workflow`,Uk=((e={},t={})=>(t.locale??J())===`pl`?Hk(e):Vk(e)),Wk=()=>`Workflow help`,Gk=()=>`Pomoc dotycząca Workflow`,Kk=((e={},t={})=>(t.locale??J())===`pl`?Gk(e):Wk(e)),qk=()=>`Create an immutable version. Submitting activates it for the selected scope.`,Jk=()=>`Utwórz niezmienną wersję. Zapisanie aktywuje ją dla wybranego zakresu.`,Yk=((e={},t={})=>(t.locale??J())===`pl`?Jk(e):qk(e)),Xk=()=>`Edit Workflow`,Zk=()=>`Edytuj Workflow`,Qk=((e={},t={})=>(t.locale??J())===`pl`?Zk(e):Xk(e)),$k=()=>`Create Workflow`,eA=()=>`Utwórz Workflow`,tA=((e={},t={})=>(t.locale??J())===`pl`?eA(e):$k(e)),nA=()=>`Provider Name`,rA=()=>`Nazwa dostawcy`,iA=((e={},t={})=>(t.locale??J())===`pl`?rA(e):nA(e)),aA=()=>`All providers and models`,oA=()=>`Wszyscy dostawcy i modele`,sA=((e={},t={})=>(t.locale??J())===`pl`?oA(e):aA(e)),cA=()=>`Model`,lA=()=>`Model`,uA=((e={},t={})=>(t.locale??J())===`pl`?lA(e):cA(e)),dA=()=>`All models for provider`,fA=()=>`Wszystkie modele dostawcy`,pA=((e={},t={})=>(t.locale??J())===`pl`?fA(e):dA(e)),mA=()=>`Name`,hA=()=>`Nazwa`,gA=((e={},t={})=>(t.locale??J())===`pl`?hA(e):mA(e)),_A=()=>`Optional. Defaults to scope label.`,vA=()=>`Opcjonalna. Domyślnie etykieta zakresu.`,yA=((e={},t={})=>(t.locale??J())===`pl`?vA(e):_A(e)),bA=()=>`User Path`,xA=()=>`User Path`,SA=((e={},t={})=>(t.locale??J())===`pl`?xA(e):bA(e)),CA=()=>`Leave provider name empty to target all providers and models. Select a provider without a model to target all its models.`,wA=()=>`Pozostaw nazwę dostawcy pustą, aby objąć wszystkich dostawców i modele. Wybierz dostawcę bez modelu, aby objąć wszystkie jego modele.`,TA=((e={},t={})=>(t.locale??J())===`pl`?wA(e):CA(e)),EA=()=>`Add a path to scope the Workflow to that subtree. Leading slashes are optional and normalized. The deepest user path matches first.`,DA=()=>`Dodaj ścieżkę, aby ograniczyć Workflow do jej poddrzewa. Początkowe ukośniki są opcjonalne i normalizowane. Najgłębsza ścieżka ma pierwszeństwo.`,OA=((e={},t={})=>(t.locale??J())===`pl`?DA(e):EA(e)),kA=()=>`If the name is empty, the Workflow displays as its matched scope or All models.`,AA=()=>`Jeśli nazwa jest pusta, Workflow wyświetla dopasowany zakres lub Wszystkie modele.`,jA=((e={},t={})=>(t.locale??J())===`pl`?AA(e):kA(e)),MA=()=>`Description`,NA=()=>`Opis`,PA=((e={},t={})=>(t.locale??J())===`pl`?NA(e):MA(e)),FA=()=>`Optional operator note for why this version exists.`,IA=()=>`Opcjonalna notatka operatora opisująca powód utworzenia wersji.`,LA=((e={},t={})=>(t.locale??J())===`pl`?IA(e):FA(e)),RA=()=>`Cache`,zA=()=>`Cache`,BA=((e={},t={})=>(t.locale??J())===`pl`?zA(e):RA(e)),VA=()=>`Audit Logs`,HA=()=>`Logi audytowe`,UA=((e={},t={})=>(t.locale??J())===`pl`?HA(e):VA(e)),WA=()=>`Usage`,GA=()=>`Zużycie`,KA=((e={},t={})=>(t.locale??J())===`pl`?GA(e):WA(e)),qA=()=>`Budget`,JA=()=>`Budżet`,YA=((e={},t={})=>(t.locale??J())===`pl`?JA(e):qA(e)),XA=()=>`Failover`,ZA=()=>`Failover`,QA=((e={},t={})=>(t.locale??J())===`pl`?ZA(e):XA(e)),$A=()=>`Preview`,ej=()=>`Podgląd`,tj=((e={},t={})=>(t.locale??J())===`pl`?ej(e):$A(e)),nj=()=>`Live`,rj=()=>`Live`,ij=((e={},t={})=>(t.locale??J())===`pl`?rj(e):nj(e)),aj=()=>`Guardrail Steps`,oj=()=>`Kroki Guardrails`,sj=((e={},t={})=>(t.locale??J())===`pl`?oj(e):aj(e)),cj=()=>`Guardrails in the same numeric step run together. Later steps wait for earlier ones to finish.`,lj=()=>`Guardrails w tym samym kroku numerycznym działają razem. Późniejsze kroki czekają na zakończenie wcześniejszych.`,uj=((e={},t={})=>(t.locale??J())===`pl`?lj(e):cj(e)),dj=()=>`Add Step`,fj=()=>`Dodaj krok`,pj=((e={},t={})=>(t.locale??J())===`pl`?fj(e):dj(e)),mj=()=>`No named Guardrails are currently registered. You can still draft a Workflow, but creation may be rejected.`,hj=()=>`Nie zarejestrowano nazwanych Guardrails. Nadal możesz przygotować Workflow, ale jego utworzenie może zostać odrzucone.`,gj=((e={},t={})=>(t.locale??J())===`pl`?hj(e):mj(e)),_j=()=>`Open Guardrails`,vj=()=>`Otwórz Guardrails`,yj=((e={},t={})=>(t.locale??J())===`pl`?vj(e):_j(e)),bj=()=>`Guardrail reference`,xj=()=>`Referencja Guardrail`,Sj=((e={},t={})=>(t.locale??J())===`pl`?xj(e):bj(e)),Cj=()=>`Step`,wj=()=>`Krok`,Tj=((e={},t={})=>(t.locale??J())===`pl`?wj(e):Cj(e)),Ej=()=>`Remove`,Dj=()=>`Usuń`,Oj=((e={},t={})=>(t.locale??J())===`pl`?Dj(e):Ej(e)),kj=()=>`No Guardrail steps configured yet.`,Aj=()=>`Nie skonfigurowano jeszcze kroków Guardrails.`,jj=((e={},t={})=>(t.locale??J())===`pl`?Aj(e):kj(e)),Mj=()=>`Edit Rate Limit`,Nj=()=>`Edytuj Rate Limit`,Pj=((e={},t={})=>(t.locale??J())===`pl`?Nj(e):Mj(e)),Fj=()=>`Rate limit editor`,Ij=()=>`Edytor Rate Limitu`,Lj=((e={},t={})=>(t.locale??J())===`pl`?Ij(e):Fj(e)),Rj=()=>`Save Rate Limit`,zj=()=>`Zapisz Rate Limit`,Bj=((e={},t={})=>(t.locale??J())===`pl`?zj(e):Rj(e)),Vj=()=>`Scope`,Hj=()=>`Zakres`,Uj=((e={},t={})=>(t.locale??J())===`pl`?Hj(e):Vj(e)),Wj=()=>`Period`,Gj=()=>`Okres`,Kj=((e={},t={})=>(t.locale??J())===`pl`?Gj(e):Wj(e)),qj=()=>`Period Seconds`,Jj=()=>`Okres w sekundach`,Yj=((e={},t={})=>(t.locale??J())===`pl`?Jj(e):qj(e)),Xj=()=>`Max In-Flight Requests`,Zj=()=>`Maksymalna liczba Request'ów w toku`,Qj=((e={},t={})=>(t.locale??J())===`pl`?Zj(e):Xj(e)),$j=()=>`Max Requests`,eM=()=>`Maksymalna liczba Request'ów`,tM=((e={},t={})=>(t.locale??J())===`pl`?eM(e):$j(e)),nM=()=>`Max Tokens`,rM=()=>`Maksymalna liczba tokenów`,iM=((e={},t={})=>(t.locale??J())===`pl`?rM(e):nM(e)),aM=()=>`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.`,oM=()=>`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.`,sM=((e={},t={})=>(t.locale??J())===`pl`?oM(e):aM(e)),cM=()=>`Scope, subject, and period identify the rule. Changing any of them moves the rule and restarts its live counters.`,lM=()=>`Zakres, podmiot i okres identyfikują regułę. Ich zmiana przenosi regułę i restartuje liczniki Live.`,uM=((e={},t={})=>(t.locale??J())===`pl`?lM(e):cM(e)),dM=()=>`Edit Guardrail`,fM=()=>`Edytuj Guardrail`,pM=((e={},t={})=>(t.locale??J())===`pl`?fM(e):dM(e)),mM=()=>`Guardrail editor`,hM=()=>`Edytor Guardrail`,gM=((e={},t={})=>(t.locale??J())===`pl`?hM(e):mM(e)),_M=()=>`Save Guardrail`,vM=()=>`Zapisz Guardrail`,yM=((e={},t={})=>(t.locale??J())===`pl`?vM(e):_M(e)),bM=()=>`Workflows reference these names directly, so renames are intentionally avoided after creation.`,xM=()=>`Workflows odwołują się bezpośrednio do tych nazw, dlatego po utworzeniu celowo nie można ich zmieniać.`,SM=((e={},t={})=>(t.locale??J())===`pl`?xM(e):bM(e)),CM=()=>`Description`,wM=()=>`Opis`,TM=((e={},t={})=>(t.locale??J())===`pl`?wM(e):CM(e)),EM=()=>`What this Guardrail is meant to do`,DM=()=>`Przeznaczenie tego Guardrail`,OM=((e={},t={})=>(t.locale??J())===`pl`?DM(e):EM(e)),kM=()=>`Guardrail user path help`,AM=()=>`Pomoc dotycząca User Path Guardrail`,jM=((e={},t={})=>(t.locale??J())===`pl`?AM(e):kM(e)),MM=()=>`Only used for auxiliary rewrite Guardrails; ignored for other Guardrail types.`,NM=()=>`Używane tylko przez pomocnicze Guardrails przepisujące; ignorowane przez pozostałe typy.`,PM=((e={},t={})=>(t.locale??J())===`pl`?NM(e):MM(e)),FM=()=>`Monthly`,IM=()=>`Miesięcznie`,LM=((e={},t={})=>(t.locale??J())===`pl`?IM(e):FM(e)),RM=()=>`Weekly`,zM=()=>`Tygodniowo`,BM=((e={},t={})=>(t.locale??J())===`pl`?zM(e):RM(e)),VM=()=>`Daily`,HM=()=>`Dziennie`,UM=((e={},t={})=>(t.locale??J())===`pl`?HM(e):VM(e)),WM=()=>`Day of month help`,GM=()=>`Pomoc dotycząca dnia miesiąca`,KM=((e={},t={})=>(t.locale??J())===`pl`?GM(e):WM(e)),qM=()=>`Day of Month`,JM=()=>`Dzień miesiąca`,YM=((e={},t={})=>(t.locale??J())===`pl`?JM(e):qM(e)),XM=()=>`If the selected day does not exist in a month, the reset runs on the last day of that month.`,ZM=()=>`Jeśli wybrany dzień nie występuje w danym miesiącu, reset nastąpi w ostatnim dniu tego miesiąca.`,QM=((e={},t={})=>(t.locale??J())===`pl`?ZM(e):XM(e)),$M=()=>`Day of Week`,eN=()=>`Dzień tygodnia`,tN=((e={},t={})=>(t.locale??J())===`pl`?eN(e):$M(e)),nN=()=>`Hour`,rN=()=>`Godzina`,iN=((e={},t={})=>(t.locale??J())===`pl`?rN(e):nN(e)),aN=()=>`Minute`,oN=()=>`Minuta`,sN=((e={},t={})=>(t.locale??J())===`pl`?oN(e):aN(e)),cN=()=>`Save Budget Settings`,lN=()=>`Zapisz ustawienia budżetów`,uN=((e={},t={})=>(t.locale??J())===`pl`?lN(e):cN(e)),dN=()=>`Loading budget settings`,fN=()=>`Wczytywanie ustawień budżetów`,pN=((e={},t={})=>(t.locale??J())===`pl`?fN(e):dN(e)),mN=()=>`Unable to load budget settings.`,hN=()=>`Nie można wczytać ustawień budżetów.`,gN=((e={},t={})=>(t.locale??J())===`pl`?hN(e):mN(e)),_N=()=>`Unable to save budget settings.`,vN=()=>`Nie można zapisać ustawień budżetów.`,yN=((e={},t={})=>(t.locale??J())===`pl`?vN(e):_N(e)),bN=()=>`Budget settings saved.`,xN=()=>`Ustawienia budżetów zapisane.`,SN=((e={},t={})=>(t.locale??J())===`pl`?xN(e):bN(e)),CN=()=>`Sunday`,wN=()=>`Niedziela`,TN=((e={},t={})=>(t.locale??J())===`pl`?wN(e):CN(e)),EN=()=>`Monday`,DN=()=>`Poniedziałek`,ON=((e={},t={})=>(t.locale??J())===`pl`?DN(e):EN(e)),kN=()=>`Tuesday`,AN=()=>`Wtorek`,jN=((e={},t={})=>(t.locale??J())===`pl`?AN(e):kN(e)),MN=()=>`Wednesday`,NN=()=>`Środa`,PN=((e={},t={})=>(t.locale??J())===`pl`?NN(e):MN(e)),FN=()=>`Thursday`,IN=()=>`Czwartek`,LN=((e={},t={})=>(t.locale??J())===`pl`?IN(e):FN(e)),RN=()=>`Friday`,zN=()=>`Piątek`,BN=((e={},t={})=>(t.locale??J())===`pl`?zN(e):RN(e)),VN=()=>`Saturday`,HN=()=>`Sobota`,UN=((e={},t={})=>(t.locale??J())===`pl`?HN(e):VN(e)),WN=()=>`Tagging based on headers`,GN=()=>`Tagowanie na podstawie nagłówków`,KN=((e={},t={})=>(t.locale??J())===`pl`?GN(e):WN(e)),qN=()=>`Tagging help`,JN=()=>`Pomoc dotycząca tagowania`,YN=((e={},t={})=>(t.locale??J())===`pl`?JN(e):qN(e)),XN=()=>`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.`,ZN=()=>`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.`,QN=((e={},t={})=>(t.locale??J())===`pl`?ZN(e):XN(e)),$N=()=>`Header`,eP=()=>`Nagłówek`,tP=((e={},t={})=>(t.locale??J())===`pl`?eP(e):$N(e)),nP=()=>`Prefix to trim (optional)`,rP=()=>`Prefiks do usunięcia (opcjonalnie)`,iP=((e={},t={})=>(t.locale??J())===`pl`?rP(e):nP(e)),aP=()=>`Delimiter`,oP=()=>`Separator`,sP=((e={},t={})=>(t.locale??J())===`pl`?oP(e):aP(e)),cP=()=>`Do not pass upstream`,lP=()=>`Nie przekazuj dalej`,uP=((e={},t={})=>(t.locale??J())===`pl`?lP(e):cP(e)),dP=()=>`Declared in config.yaml or TAGGING_HEADER_* environment variables; read-only here.`,fP=()=>`Zdefiniowane w config.yaml lub zmiennych środowiskowych TAGGING_HEADER_*; tutaj tylko do odczytu.`,pP=((e={},t={})=>(t.locale??J())===`pl`?fP(e):dP(e)),mP=()=>`Remove`,hP=()=>`Usuń`,gP=((e={},t={})=>(t.locale??J())===`pl`?hP(e):mP(e)),_P=e=>`Remove tagging header ${e?.header}`,vP=e=>`Usuń nagłówek tagowania ${e?.header}`,yP=((e,t={})=>(t.locale??J())===`pl`?vP(e):_P(e)),bP=()=>`Loading tagging settings`,xP=()=>`Wczytywanie ustawień tagowania`,SP=((e={},t={})=>(t.locale??J())===`pl`?xP(e):bP(e)),CP=()=>`No tagging headers configured. Requests are not labelled.`,wP=()=>`Nie skonfigurowano nagłówków tagowania. Requesty nie otrzymują etykiet.`,TP=((e={},t={})=>(t.locale??J())===`pl`?wP(e):CP(e)),EP=()=>`Add Header`,DP=()=>`Dodaj nagłówek`,OP=((e={},t={})=>(t.locale??J())===`pl`?DP(e):EP(e)),kP=()=>`Save Tagging Settings`,AP=()=>`Zapisz ustawienia tagowania`,jP=((e={},t={})=>(t.locale??J())===`pl`?AP(e):kP(e)),MP=()=>`Unable to load tagging settings.`,NP=()=>`Nie można wczytać ustawień tagowania.`,PP=((e={},t={})=>(t.locale??J())===`pl`?NP(e):MP(e)),FP=()=>`Unable to save tagging settings.`,IP=()=>`Nie można zapisać ustawień tagowania.`,LP=((e={},t={})=>(t.locale??J())===`pl`?IP(e):FP(e)),RP=()=>`Tagging settings saved.`,zP=()=>`Ustawienia tagowania zapisane.`,BP=((e={},t={})=>(t.locale??J())===`pl`?zP(e):RP(e)),VP=()=>`Runtime Refresh`,HP=()=>`Odświeżenie runtime`,UP=((e={},t={})=>(t.locale??J())===`pl`?HP(e):VP(e)),WP=()=>`Runtime refresh help`,GP=()=>`Pomoc dotycząca odświeżenia runtime`,KP=((e={},t={})=>(t.locale??J())===`pl`?GP(e):WP(e)),qP=()=>`Pull the latest model metadata, provider inventory, API keys, aliases, model access rules, Guardrails, and Workflows.`,JP=()=>`Pobierz najnowsze metadane modeli, listę dostawców, klucze API, aliasy, reguły dostępu do modeli, Guardrails i Workflows.`,YP=((e={},t={})=>(t.locale??J())===`pl`?JP(e):qP(e)),XP=()=>`Refresh`,ZP=()=>`Odśwież`,QP=((e={},t={})=>(t.locale??J())===`pl`?ZP(e):XP(e)),$P=()=>`Runtime refresh completed.`,eF=()=>`Odświeżenie runtime zakończone.`,tF=((e={},t={})=>(t.locale??J())===`pl`?eF(e):$P(e)),nF=()=>`Runtime refreshed.`,rF=()=>`Runtime odświeżony.`,iF=((e={},t={})=>(t.locale??J())===`pl`?rF(e):nF(e)),aF=()=>`Runtime refresh completed with warnings.`,oF=()=>`Odświeżenie runtime zakończone z ostrzeżeniami.`,sF=((e={},t={})=>(t.locale??J())===`pl`?oF(e):aF(e)),cF=()=>`Runtime refresh failed.`,lF=()=>`Odświeżenie runtime nie powiodło się.`,uF=((e={},t={})=>(t.locale??J())===`pl`?lF(e):cF(e)),dF=e=>`${e?.status} ${e?.models} · ${e?.providers}.`,fF=e=>`${e?.status} ${e?.models} · ${e?.providers}.`,pF=((e,t={})=>(t.locale??J())===`pl`?fF(e):dF(e)),mF=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,hF=e=>{let t=Po(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},gF=((e,t={})=>(t.locale??J())===`pl`?hF(e):mF(e)),_F=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} provider`:`${e?.count} providers`,vF=e=>{let t=Po(`pl`,e?.count,{});return t===`one`?`${e?.count} dostawca`:t===`few`||t===`many`?`${e?.count} dostawców`:`${e?.count} dostawcy`},yF=((e,t={})=>(t.locale??J())===`pl`?vF(e):_F(e)),bF=()=>`AI Processing`,xF=()=>`Przetwarzanie AI`,SF=((e={},t={})=>(t.locale??J())===`pl`?xF(e):bF(e)),CF=()=>`Unable to load runtime settings.`,wF=()=>`Nie można wczytać ustawień runtime.`,TF=((e={},t={})=>(t.locale??J())===`pl`?wF(e):CF(e)),EF=e=>`Unable to save ${e?.setting}.`,DF=e=>`Nie można zapisać ustawienia ${e?.setting}.`,OF=((e,t={})=>(t.locale??J())===`pl`?DF(e):EF(e)),kF=e=>`${e?.setting} saved.`,AF=e=>`Zapisano ustawienie ${e?.setting}.`,jF=((e,t={})=>(t.locale??J())===`pl`?AF(e):kF(e)),MF=e=>`Managed by ${e?.source}`,NF=e=>`Zarządzane przez: ${e?.source}`,PF=((e,t={})=>(t.locale??J())===`pl`?NF(e):MF(e)),FF=()=>`environment`,IF=()=>`środowisko`,LF=((e={},t={})=>(t.locale??J())===`pl`?IF(e):FF(e)),RF=()=>`Usage Pricing Recalculation`,zF=()=>`Ponowne przeliczenie cen zużycia`,BF=((e={},t={})=>(t.locale??J())===`pl`?zF(e):RF(e)),VF=()=>`Pricing recalculation help`,HF=()=>`Pomoc dotycząca przeliczania cen`,UF=((e={},t={})=>(t.locale??J())===`pl`?HF(e):VF(e)),WF=()=>`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.`,GF=()=>`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.`,KF=((e={},t={})=>(t.locale??J())===`pl`?GF(e):WF(e)),qF=()=>`Date Range`,JF=()=>`Zakres dat`,YF=((e={},t={})=>(t.locale??J())===`pl`?JF(e):qF(e)),XF=()=>`User Path (optional)`,ZF=()=>`User Path (opcjonalny)`,QF=((e={},t={})=>(t.locale??J())===`pl`?ZF(e):XF(e)),$F=()=>`Provider/Model or Alias (optional)`,eI=()=>`Dostawca/model lub alias (opcjonalnie)`,tI=((e={},t={})=>(t.locale??J())===`pl`?eI(e):$F(e)),nI=()=>`openai/gpt-4o or smart`,rI=()=>`openai/gpt-4o lub smart`,iI=((e={},t={})=>(t.locale??J())===`pl`?rI(e):nI(e)),aI=()=>`Recalculate Pricing`,oI=()=>`Przelicz ceny`,sI=((e={},t={})=>(t.locale??J())===`pl`?oI(e):aI(e)),cI=()=>`Usage pricing recalculation is unavailable.`,lI=()=>`Ponowne przeliczanie cen zużycia jest niedostępne.`,uI=((e={},t={})=>(t.locale??J())===`pl`?lI(e):cI(e)),dI=()=>`recalculate`,fI=()=>`przelicz`,pI=((e={},t={})=>(t.locale??J())===`pl`?fI(e):dI(e)),mI=()=>`Stored usage cost fields matching the selected filters will be overwritten.`,hI=()=>`Zapisane pola kosztów zużycia pasujące do wybranych filtrów zostaną nadpisane.`,gI=((e={},t={})=>(t.locale??J())===`pl`?hI(e):mI(e)),_I=()=>`Unable to recalculate pricing.`,vI=()=>`Nie można przeliczyć cen.`,yI=((e={},t={})=>(t.locale??J())===`pl`?vI(e):_I(e)),bI=e=>Po(`en`,e?.matched,{})===`one`?`Pricing recalculated for ${e?.recalculated} of ${e?.matched} usage record.`:`Pricing recalculated for ${e?.recalculated} of ${e?.matched} usage records.`,xI=e=>{let t=Po(`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.`},SI=((e,t={})=>(t.locale??J())===`pl`?xI(e):bI(e)),CI=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} usage record still lacks pricing metadata.`:`${e?.count} usage records still lack pricing metadata.`,wI=e=>{let t=Po(`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.`},TI=((e,t={})=>(t.locale??J())===`pl`?wI(e):CI(e)),EI=()=>`Sign out`,DI=()=>`Wyloguj się`,OI=((e={},t={})=>(t.locale??J())===`pl`?DI(e):EI(e)),kI=()=>`Enter API key`,AI=()=>`Wprowadź klucz API`,jI=((e={},t={})=>(t.locale??J())===`pl`?AI(e):kI(e)),MI=()=>`Change API key`,NI=()=>`Zmień klucz API`,PI=((e={},t={})=>(t.locale??J())===`pl`?NI(e):MI(e)),FI=()=>`Resize sidebar`,II=()=>`Zmień szerokość paska bocznego`,LI=((e={},t={})=>(t.locale??J())===`pl`?II(e):FI(e)),RI=()=>`Drag to resize; click to collapse or expand`,zI=()=>`Przeciągnij, aby zmienić szerokość; kliknij, aby zwinąć lub rozwinąć`,BI=((e={},t={})=>(t.locale??J())===`pl`?zI(e):RI(e)),VI=()=>`Theme`,HI=()=>`Motyw`,UI=((e={},t={})=>(t.locale??J())===`pl`?HI(e):VI(e)),WI=()=>`Light theme`,GI=()=>`Jasny motyw`,KI=((e={},t={})=>(t.locale??J())===`pl`?GI(e):WI(e)),qI=()=>`System theme`,JI=()=>`Motyw systemowy`,YI=((e={},t={})=>(t.locale??J())===`pl`?JI(e):qI(e)),XI=()=>`Dark theme`,ZI=()=>`Ciemny motyw`,QI=((e={},t={})=>(t.locale??J())===`pl`?ZI(e):XI(e)),$I=e=>`Change theme (currently ${e?.theme})`,eL=e=>`Zmień motyw (obecnie: ${e?.theme})`,tL=((e,t={})=>(t.locale??J())===`pl`?eL(e):$I(e)),nL=()=>`Language`,rL=()=>`Język`,iL=((e={},t={})=>(t.locale??J())===`pl`?rL(e):nL(e)),aL=()=>`Authentication required for dashboard data.`,oL=()=>`Dostęp do danych panelu wymaga uwierzytelnienia.`,sL=((e={},t={})=>(t.locale??J())===`pl`?oL(e):aL(e)),cL=()=>`Dashboard locked`,lL=()=>`Panel zablokowany`,uL=((e={},t={})=>(t.locale??J())===`pl`?lL(e):cL(e)),dL=()=>`Change API key`,fL=()=>`Zmień klucz API`,pL=((e={},t={})=>(t.locale??J())===`pl`?fL(e):dL(e)),mL=()=>`Close authentication dialog`,hL=()=>`Zamknij okno uwierzytelniania`,gL=((e={},t={})=>(t.locale??J())===`pl`?hL(e):mL(e)),_L=()=>`Sign in with SSO`,vL=()=>`Zaloguj się przez SSO`,yL=((e={},t={})=>(t.locale??J())===`pl`?vL(e):_L(e)),bL=()=>`or use an API key`,xL=()=>`lub użyj klucza API`,SL=((e={},t={})=>(t.locale??J())===`pl`?xL(e):bL(e)),CL=()=>`API key`,wL=()=>`Klucz API`,TL=((e={},t={})=>(t.locale??J())===`pl`?wL(e):CL(e)),EL=()=>`Master key or bearer token`,DL=()=>`Klucz główny lub token Bearer`,OL=((e={},t={})=>(t.locale??J())===`pl`?DL(e):EL(e)),kL=()=>`Enter a valid API key to continue.`,AL=()=>`Aby kontynuować, wprowadź prawidłowy klucz API.`,jL=((e={},t={})=>(t.locale??J())===`pl`?AL(e):kL(e)),ML=()=>`Stored in this browser. Requests use the Authorization bearer header.`,NL=()=>`Klucz jest przechowywany w tej przeglądarce. Requesty używają nagłówka Authorization typu Bearer.`,PL=((e={},t={})=>(t.locale??J())===`pl`?NL(e):ML(e)),FL=()=>`Unlock dashboard`,IL=()=>`Odblokuj panel`,LL=((e={},t={})=>(t.locale??J())===`pl`?IL(e):FL(e)),RL=()=>`Save API key`,zL=()=>`Zapisz klucz API`,BL=((e={},t={})=>(t.locale??J())===`pl`?zL(e):RL(e)),VL=()=>`Close confirmation dialog`,HL=()=>`Zamknij okno potwierdzenia`,UL=((e={},t={})=>(t.locale??J())===`pl`?HL(e):VL(e)),WL=()=>`Dismiss notification`,GL=()=>`Zamknij powiadomienie`,KL=((e={},t={})=>(t.locale??J())===`pl`?GL(e):WL(e)),qL=()=>`Demo mode notice`,JL=()=>`Informacja o trybie demo`,YL=((e={},t={})=>(t.locale??J())===`pl`?JL(e):qL(e)),XL=()=>`Public demo`,ZL=()=>`Publiczne demo`,QL=((e={},t={})=>(t.locale??J())===`pl`?ZL(e):XL(e)),$L=()=>`Do not enter sensitive or personal data. Demo data is reset regularly.`,eR=()=>`Nie wprowadzaj danych poufnych ani osobowych. Dane demonstracyjne są regularnie resetowane.`,tR=((e={},t={})=>(t.locale??J())===`pl`?eR(e):$L(e)),nR=()=>`GoModel website`,rR=()=>`Strona GoModel`,iR=((e={},t={})=>(t.locale??J())===`pl`?rR(e):nR(e)),aR=e=>`Showing ${e?.start}–${e?.end} of ${e?.total}`,oR=e=>`Wyświetlanie ${e?.start}–${e?.end} z ${e?.total}`,sR=((e,t={})=>(t.locale??J())===`pl`?oR(e):aR(e)),cR=e=>Po(`en`,e?.count,{})===`one`?`Last ${e?.count} day`:`Last ${e?.count} days`,lR=e=>{let t=Po(`pl`,e?.count,{});return t===`one`?`Ostatni ${e?.count} dzień`:t===`few`||t===`many`?`Ostatnie ${e?.count} dni`:`Ostatnie ${e?.count} dnia`},uR=((e,t={})=>(t.locale??J())===`pl`?lR(e):cR(e)),dR=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} day`:`${e?.count} days`,fR=e=>{let t=Po(`pl`,e?.count,{});return t===`one`?`${e?.count} dzień`:t===`few`||t===`many`?`${e?.count} dni`:`${e?.count} dnia`},pR=((e,t={})=>(t.locale??J())===`pl`?fR(e):dR(e)),mR=()=>`Today`,hR=()=>`Dzisiaj`,gR=((e={},t={})=>(t.locale??J())===`pl`?hR(e):mR(e)),_R=e=>`${e?.start} – ${e?.end}`,vR=e=>`${e?.start} – ${e?.end}`,yR=((e,t={})=>(t.locale??J())===`pl`?vR(e):_R(e)),bR=e=>`${e?.start} – ...`,xR=e=>`${e?.start} – ...`,SR=((e,t={})=>(t.locale??J())===`pl`?xR(e):bR(e)),CR=()=>`Select start date`,wR=()=>`Wybierz datę początkową`,TR=((e={},t={})=>(t.locale??J())===`pl`?wR(e):CR(e)),ER=()=>`Select end date`,DR=()=>`Wybierz datę końcową`,OR=((e={},t={})=>(t.locale??J())===`pl`?DR(e):ER(e)),kR=()=>`Previous month`,AR=()=>`Poprzedni miesiąc`,jR=((e={},t={})=>(t.locale??J())===`pl`?AR(e):kR(e)),MR=()=>`Next month`,NR=()=>`Następny miesiąc`,PR=((e={},t={})=>(t.locale??J())===`pl`?NR(e):MR(e)),FR=()=>`Daily Token Usage`,IR=()=>`Dzienne zużycie tokenów`,LR=((e={},t={})=>(t.locale??J())===`pl`?IR(e):FR(e)),RR=()=>`Weekly Token Usage`,zR=()=>`Tygodniowe zużycie tokenów`,BR=((e={},t={})=>(t.locale??J())===`pl`?zR(e):RR(e)),VR=()=>`Monthly Token Usage`,HR=()=>`Miesięczne zużycie tokenów`,UR=((e={},t={})=>(t.locale??J())===`pl`?HR(e):VR(e)),WR=()=>`Yearly Token Usage`,GR=()=>`Roczne zużycie tokenów`,KR=((e={},t={})=>(t.locale??J())===`pl`?GR(e):WR(e)),qR=()=>`Enabled`,JR=()=>`Włączony`,YR=((e={},t={})=>(t.locale??J())===`pl`?JR(e):qR(e)),XR=()=>`Disabled`,ZR=()=>`Wyłączony`,QR=((e={},t={})=>(t.locale??J())===`pl`?ZR(e):XR(e)),$R=()=>`Config`,ez=()=>`Config`,tz=((e={},t={})=>(t.locale??J())===`pl`?ez(e):$R(e)),nz=()=>`Authentication required.`,rz=()=>`Wymagane uwierzytelnienie.`,iz=((e={},t={})=>(t.locale??J())===`pl`?rz(e):nz(e)),az=()=>`Keys without dashboard access are denied the dashboard and every /admin API endpoint. Model endpoints and GET /v1/usage stay available to all keys.`,oz=()=>`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.`,sz=((e={},t={})=>(t.locale??J())===`pl`?oz(e):az(e)),cz=e=>`Grant dashboard access to API key ${e?.name}`,lz=e=>`Przyznaj dostęp do dashboardu kluczowi API ${e?.name}`,uz=((e,t={})=>(t.locale??J())===`pl`?lz(e):cz(e)),dz=e=>`Revoke dashboard access for API key ${e?.name}`,fz=e=>`Odbierz dostęp do dashboardu kluczowi API ${e?.name}`,pz=((e,t={})=>(t.locale??J())===`pl`?fz(e):dz(e)),mz=e=>`Edit labels for API key ${e?.name}`,hz=e=>`Edytuj etykiety klucza API ${e?.name}`,gz=((e,t={})=>(t.locale??J())===`pl`?hz(e):mz(e)),_z=e=>`Deactivate API key ${e?.name}`,vz=e=>`Dezaktywuj klucz API ${e?.name}`,yz=((e,t={})=>(t.locale??J())===`pl`?vz(e):_z(e)),bz=e=>`Deactivating API key ${e?.name}`,xz=e=>`Dezaktywowanie klucza API ${e?.name}`,Sz=((e,t={})=>(t.locale??J())===`pl`?xz(e):bz(e)),Cz=e=>`Deactivated on ${e?.date}`,wz=e=>`Dezaktywowano ${e?.date}`,Tz=((e,t={})=>(t.locale??J())===`pl`?wz(e):Cz(e)),Ez=()=>`Unable to load API keys.`,Dz=()=>`Nie udało się wczytać kluczy API.`,Oz=((e={},t={})=>(t.locale??J())===`pl`?Dz(e):Ez(e)),kz=()=>`Failed to create API key.`,Az=()=>`Nie udało się utworzyć klucza API.`,jz=((e={},t={})=>(t.locale??J())===`pl`?Az(e):kz(e)),Mz=()=>`Auth keys feature is unavailable.`,Nz=()=>`Funkcja kluczy API jest niedostępna.`,Pz=((e={},t={})=>(t.locale??J())===`pl`?Nz(e):Mz(e)),Fz=()=>`Failed to update labels.`,Iz=()=>`Nie udało się zaktualizować etykiet.`,Lz=((e={},t={})=>(t.locale??J())===`pl`?Iz(e):Fz(e)),Rz=e=>`Labels updated for key "${e?.name}".`,zz=e=>`Zaktualizowano etykiety klucza „${e?.name}”.`,Bz=((e,t={})=>(t.locale??J())===`pl`?zz(e):Rz(e)),Vz=()=>`Failed to update dashboard access.`,Hz=()=>`Nie udało się zaktualizować dostępu do dashboardu.`,Uz=((e={},t={})=>(t.locale??J())===`pl`?Hz(e):Vz(e)),Wz=e=>`Dashboard access granted to key "${e?.name}".`,Gz=e=>`Przyznano dostęp do dashboardu kluczowi „${e?.name}”.`,Kz=((e,t={})=>(t.locale??J())===`pl`?Gz(e):Wz(e)),qz=e=>`Dashboard access revoked for key "${e?.name}".`,Jz=e=>`Odebrano dostęp do dashboardu kluczowi „${e?.name}”.`,Yz=((e,t={})=>(t.locale??J())===`pl`?Jz(e):qz(e)),Xz=e=>`Deactivate key "${e?.name}"? This cannot be undone.`,Zz=e=>`Dezaktywować klucz „${e?.name}”? Tej operacji nie można cofnąć.`,Qz=((e,t={})=>(t.locale??J())===`pl`?Zz(e):Xz(e)),$z=()=>`Failed to deactivate key.`,eB=()=>`Nie udało się dezaktywować klucza.`,tB=((e={},t={})=>(t.locale??J())===`pl`?eB(e):$z(e)),nB=e=>`Key "${e?.name}" deactivated.`,rB=e=>`Dezaktywowano klucz „${e?.name}”.`,iB=((e,t={})=>(t.locale??J())===`pl`?rB(e):nB(e)),aB=()=>`Name is required.`,oB=()=>`Nazwa jest wymagana.`,sB=((e={},t={})=>(t.locale??J())===`pl`?oB(e):aB(e)),cB=()=>`User path cannot contain "." or ".." segments.`,lB=()=>`User Path nie może zawierać segmentów "." ani "..".`,uB=((e={},t={})=>(t.locale??J())===`pl`?lB(e):cB(e)),dB=()=>`User path cannot contain ":" segments.`,fB=()=>`User Path nie może zawierać segmentów z ":".`,pB=((e={},t={})=>(t.locale??J())===`pl`?fB(e):dB(e)),mB=()=>`Transport`,hB=()=>`Transport`,gB=((e={},t={})=>(t.locale??J())===`pl`?hB(e):mB(e)),_B=()=>`Endpoint`,vB=()=>`Endpoint`,yB=((e={},t={})=>(t.locale??J())===`pl`?vB(e):_B(e)),bB=()=>`Status`,xB=()=>`Status`,SB=((e={},t={})=>(t.locale??J())===`pl`?xB(e):bB(e)),CB=()=>`Tools`,wB=()=>`Narzędzia`,TB=((e={},t={})=>(t.locale??J())===`pl`?wB(e):CB(e)),EB=()=>`Enabled`,DB=()=>`Włączony`,OB=((e={},t={})=>(t.locale??J())===`pl`?DB(e):EB(e)),kB=()=>`Actions`,AB=()=>`Akcje`,jB=((e={},t={})=>(t.locale??J())===`pl`?AB(e):kB(e)),MB=()=>`Declared in configuration (config.yaml mcp.servers); read-only in the dashboard`,NB=()=>`Zadeklarowano w konfiguracji (config.yaml mcp.servers); tylko do odczytu w dashboardzie`,PB=((e={},t={})=>(t.locale??J())===`pl`?NB(e):MB(e)),FB=e=>`Edit MCP server ${e?.name}`,IB=e=>`Edytuj serwer MCP ${e?.name}`,LB=((e,t={})=>(t.locale??J())===`pl`?IB(e):FB(e)),RB=e=>`Inspect catalog of MCP server ${e?.name}`,zB=e=>`Sprawdź katalog serwera MCP ${e?.name}`,BB=((e,t={})=>(t.locale??J())===`pl`?zB(e):RB(e)),VB=e=>`Reconnect MCP server ${e?.name}`,HB=e=>`Połącz ponownie serwer MCP ${e?.name}`,UB=((e,t={})=>(t.locale??J())===`pl`?HB(e):VB(e)),WB=e=>`Reconnecting MCP server ${e?.name}`,GB=e=>`Ponowne łączenie serwera MCP ${e?.name}`,KB=((e,t={})=>(t.locale??J())===`pl`?GB(e):WB(e)),qB=e=>`Delete MCP server ${e?.name}`,JB=e=>`Usuń serwer MCP ${e?.name}`,YB=((e,t={})=>(t.locale??J())===`pl`?JB(e):qB(e)),XB=e=>`Deleting MCP server ${e?.name}`,ZB=e=>`Usuwanie serwera MCP ${e?.name}`,QB=((e,t={})=>(t.locale??J())===`pl`?ZB(e):XB(e)),$B=e=>`Connected since ${e?.date}`,eV=e=>`Połączono od ${e?.date}`,tV=((e,t={})=>(t.locale??J())===`pl`?eV(e):$B(e)),nV=()=>`local command`,rV=()=>`komenda lokalna`,iV=((e={},t={})=>(t.locale??J())===`pl`?rV(e):nV(e)),aV=e=>`${e?.prompts} prompts · ${e?.resources} resources`,oV=e=>`Prompty: ${e?.prompts} · zasoby: ${e?.resources}`,sV=((e,t={})=>(t.locale??J())===`pl`?oV(e):aV(e)),cV=()=>`Name is required.`,lV=()=>`Nazwa jest wymagana.`,uV=((e={},t={})=>(t.locale??J())===`pl`?lV(e):cV(e)),dV=()=>`Slug must use 1–64 lowercase ASCII letters, numbers, hyphens, or underscores.`,fV=()=>`Slug musi zawierać 1–64 małych liter ASCII, cyfr, łączników lub podkreśleń.`,pV=((e={},t={})=>(t.locale??J())===`pl`?fV(e):dV(e)),mV=e=>`Slug "${e?.slug}" is already in use.`,hV=e=>`Slug „${e?.slug}” jest już używany.`,gV=((e,t={})=>(t.locale??J())===`pl`?hV(e):mV(e)),_V=()=>`URL is required.`,vV=()=>`URL jest wymagany.`,yV=((e={},t={})=>(t.locale??J())===`pl`?vV(e):_V(e)),bV=()=>`Tool timeout must be a non-negative whole number of seconds.`,xV=()=>`Timeout narzędzia musi być nieujemną całkowitą liczbą sekund.`,SV=((e={},t={})=>(t.locale??J())===`pl`?xV(e):bV(e)),CV=()=>`Tools`,wV=()=>`Narzędzia`,TV=((e={},t={})=>(t.locale??J())===`pl`?wV(e):CV(e)),EV=()=>`Prompts`,DV=()=>`Prompty`,OV=((e={},t={})=>(t.locale??J())===`pl`?DV(e):EV(e)),kV=()=>`Resources`,AV=()=>`Zasoby`,jV=((e={},t={})=>(t.locale??J())===`pl`?AV(e):kV(e)),MV=()=>`Resource templates`,NV=()=>`Szablony zasobów`,PV=((e={},t={})=>(t.locale??J())===`pl`?NV(e):MV(e)),FV=()=>`Failed to load MCP servers.`,IV=()=>`Nie udało się wczytać serwerów MCP.`,LV=((e={},t={})=>(t.locale??J())===`pl`?IV(e):FV(e)),RV=()=>`Failed to save MCP server.`,zV=()=>`Nie udało się zapisać serwera MCP.`,BV=((e={},t={})=>(t.locale??J())===`pl`?zV(e):RV(e)),VV=e=>`MCP server "${e?.name}" saved.`,HV=e=>`Zapisano serwer MCP „${e?.name}”.`,UV=((e,t={})=>(t.locale??J())===`pl`?HV(e):VV(e)),WV=e=>`Delete MCP server "${e?.name}"? Clients lose access to its tools immediately.`,GV=e=>`Usunąć serwer MCP „${e?.name}”? Klienci natychmiast utracą dostęp do jego narzędzi.`,KV=((e,t={})=>(t.locale??J())===`pl`?GV(e):WV(e)),qV=()=>`Failed to delete MCP server.`,JV=()=>`Nie udało się usunąć serwera MCP.`,YV=((e={},t={})=>(t.locale??J())===`pl`?JV(e):qV(e)),XV=e=>`MCP server "${e?.name}" deleted.`,ZV=e=>`Usunięto serwer MCP „${e?.name}”.`,QV=((e,t={})=>(t.locale??J())===`pl`?ZV(e):XV(e)),$V=()=>`Failed to reconnect MCP server.`,eH=()=>`Nie udało się ponownie połączyć serwera MCP.`,tH=((e={},t={})=>(t.locale??J())===`pl`?eH(e):$V(e)),nH=e=>`MCP server "${e?.name}" reconnected.`,rH=e=>`Ponownie połączono serwer MCP „${e?.name}”.`,iH=((e,t={})=>(t.locale??J())===`pl`?rH(e):nH(e)),aH=e=>`MCP server "${e?.name}" is disabled; no connection was attempted.`,oH=e=>`Serwer MCP „${e?.name}” jest wyłączony; nie podjęto próby połączenia.`,sH=((e,t={})=>(t.locale??J())===`pl`?oH(e):aH(e)),cH=e=>`Reconnect attempted, but MCP server "${e?.name}" is still ${e?.status}.`,lH=e=>`Podjęto próbę ponownego połączenia, ale status serwera MCP „${e?.name}” to nadal ${e?.status}.`,uH=((e,t={})=>(t.locale??J())===`pl`?lH(e):cH(e)),dH=e=>`MCP server "${e?.name}" was not found.`,fH=e=>`Nie znaleziono serwera MCP „${e?.name}”.`,pH=((e,t={})=>(t.locale??J())===`pl`?fH(e):dH(e)),mH=()=>`Failed to load MCP server catalog.`,hH=()=>`Nie udało się wczytać katalogu serwera MCP.`,gH=((e={},t={})=>(t.locale??J())===`pl`?hH(e):mH(e)),_H=()=>`Edit Provider`,vH=()=>`Edytuj dostawcę`,yH=((e={},t={})=>(t.locale??J())===`pl`?vH(e):_H(e)),bH=()=>`Provider credential editor`,xH=()=>`Edytor danych dostawcy`,SH=((e={},t={})=>(t.locale??J())===`pl`?xH(e):bH(e)),CH=()=>`The name is the stable identity used for routing and cannot change once created.`,wH=()=>`Nazwa jest stałą tożsamością używaną do routingu i po utworzeniu nie można jej zmienić.`,TH=((e={},t={})=>(t.locale??J())===`pl`?wH(e):CH(e)),EH=()=>`Select a provider type…`,DH=()=>`Wybierz typ dostawcy…`,OH=((e={},t={})=>(t.locale??J())===`pl`?DH(e):EH(e)),kH=()=>`Determines which fields the gateway uses to build requests.`,AH=()=>`Określa pola używane przez gateway do tworzenia Request'ów.`,jH=((e={},t={})=>(t.locale??J())===`pl`?AH(e):kH(e)),MH=()=>`Suggested from the selected type; used to route requests to this provider instance and editable before saving.`,NH=()=>`Sugerowana na podstawie typu; używana do kierowania Request'ów do tej instancji i edytowalna przed zapisem.`,PH=((e={},t={})=>(t.locale??J())===`pl`?NH(e):MH(e)),FH=()=>`Immutable once created.`,IH=()=>`Po utworzeniu nie można jej zmienić.`,LH=((e={},t={})=>(t.locale??J())===`pl`?IH(e):FH(e)),RH=()=>`Pick a type to configure its credentials — each provider type asks for different settings.`,zH=()=>`Wybierz typ, aby skonfigurować dane dostępowe — każdy typ dostawcy wymaga innych ustawień.`,BH=((e={},t={})=>(t.locale??J())===`pl`?zH(e):RH(e)),VH=()=>`provider`,HH=()=>`dostawca`,UH=((e={},t={})=>(t.locale??J())===`pl`?HH(e):VH(e)),WH=()=>`Advanced settings`,GH=()=>`Ustawienia zaawansowane`,KH=((e={},t={})=>(t.locale??J())===`pl`?GH(e):WH(e)),qH=e=>`API key ${e?.number}`,JH=e=>`Klucz API ${e?.number}`,YH=((e,t={})=>(t.locale??J())===`pl`?JH(e):qH(e)),XH=e=>`Remove API key ${e?.number}`,ZH=e=>`Usuń klucz API ${e?.number}`,QH=((e,t={})=>(t.locale??J())===`pl`?ZH(e):XH(e)),$H=()=>`Add key`,eU=()=>`Dodaj klucz`,tU=((e={},t={})=>(t.locale??J())===`pl`?eU(e):$H(e)),nU=()=>`Provider default`,rU=()=>`Domyślne dostawcy`,iU=((e={},t={})=>(t.locale??J())===`pl`?rU(e):nU(e)),aU=e=>`Edit provider ${e?.name}`,oU=e=>`Edytuj dostawcę ${e?.name}`,sU=((e,t={})=>(t.locale??J())===`pl`?oU(e):aU(e)),cU=e=>`Delete provider ${e?.name}`,lU=e=>`Usuń dostawcę ${e?.name}`,uU=((e,t={})=>(t.locale??J())===`pl`?lU(e):cU(e)),dU=e=>`Deleting provider ${e?.name}`,fU=e=>`Usuwanie dostawcy ${e?.name}`,pU=((e,t={})=>(t.locale??J())===`pl`?fU(e):dU(e)),mU=()=>`Failed to load provider credentials.`,hU=()=>`Nie udało się wczytać danych dostawców.`,gU=((e={},t={})=>(t.locale??J())===`pl`?hU(e):mU(e)),_U=()=>`Failed to save provider credential.`,vU=()=>`Nie udało się zapisać danych dostawcy.`,yU=((e={},t={})=>(t.locale??J())===`pl`?vU(e):_U(e)),bU=e=>`Provider "${e?.name}" saved.`,xU=e=>`Zapisano dostawcę „${e?.name}”.`,SU=((e,t={})=>(t.locale??J())===`pl`?xU(e):bU(e)),CU=()=>`Failed to delete provider credential.`,wU=()=>`Nie udało się usunąć danych dostawcy.`,TU=((e={},t={})=>(t.locale??J())===`pl`?wU(e):CU(e)),EU=e=>`Provider "${e?.name}" deleted.`,DU=e=>`Usunięto dostawcę „${e?.name}”.`,OU=((e,t={})=>(t.locale??J())===`pl`?DU(e):EU(e)),kU=()=>`Delete Provider`,AU=()=>`Usuń dostawcę`,jU=((e={},t={})=>(t.locale??J())===`pl`?AU(e):kU(e)),MU=e=>`Type "${e?.name}" to permanently delete this provider credential. Requests routed to it will fail until it is reconfigured.`,NU=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.`,PU=((e,t={})=>(t.locale??J())===`pl`?NU(e):MU(e)),FU=()=>`API Keys`,IU=()=>`Klucze API`,LU=((e={},t={})=>(t.locale??J())===`pl`?IU(e):FU(e)),RU=()=>`Session-sticky API keys`,zU=()=>`Klucze API przypisane do sesji`,BU=((e={},t={})=>(t.locale??J())===`pl`?zU(e):RU(e)),VU=()=>`Base URL`,HU=()=>`Bazowy URL`,UU=((e={},t={})=>(t.locale??J())===`pl`?HU(e):VU(e)),WU=()=>`API Version`,GU=()=>`Wersja API`,KU=((e={},t={})=>(t.locale??J())===`pl`?GU(e):WU(e)),qU=()=>`Backend`,JU=()=>`Backend`,YU=((e={},t={})=>(t.locale??J())===`pl`?JU(e):qU(e)),XU=()=>`Auth Type`,ZU=()=>`Typ uwierzytelniania`,QU=((e={},t={})=>(t.locale??J())===`pl`?ZU(e):XU(e)),$U=()=>`API Mode`,eW=()=>`Tryb API`,tW=((e={},t={})=>(t.locale??J())===`pl`?eW(e):$U(e)),nW=()=>`Vertex Project`,rW=()=>`Projekt Vertex`,iW=((e={},t={})=>(t.locale??J())===`pl`?rW(e):nW(e)),aW=()=>`Vertex Location`,oW=()=>`Lokalizacja Vertex`,sW=((e={},t={})=>(t.locale??J())===`pl`?oW(e):aW(e)),cW=()=>`Service Account File`,lW=()=>`Plik Service Account`,uW=((e={},t={})=>(t.locale??J())===`pl`?lW(e):cW(e)),dW=()=>`Service Account JSON`,fW=()=>`Service Account JSON`,pW=((e={},t={})=>(t.locale??J())===`pl`?fW(e):dW(e)),mW=()=>`Service Account JSON (base64)`,hW=()=>`Service Account JSON (base64)`,gW=((e={},t={})=>(t.locale??J())===`pl`?hW(e):mW(e)),_W=()=>`GCP Scope`,vW=()=>`Zakres GCP`,yW=((e={},t={})=>(t.locale??J())===`pl`?vW(e):_W(e)),bW=()=>`Models (comma-separated)`,xW=()=>`Modele (oddzielone przecinkami)`,SW=((e={},t={})=>(t.locale??J())===`pl`?xW(e):bW(e)),CW=()=>`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.`,wW=()=>`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.`,TW=((e={},t={})=>(t.locale??J())===`pl`?wW(e):CW(e)),EW=()=>`Keep each identified conversation on one API key to preserve provider prompt-cache affinity. Turn off to rotate keys round-robin on every request.`,DW=()=>`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.`,OW=((e={},t={})=>(t.locale??J())===`pl`?DW(e):EW(e)),kW=()=>`Leave empty for the provider default. Realtime endpoints may need a newer version.`,AW=()=>`Pozostaw puste, aby użyć wartości domyślnej dostawcy. Endpointy Realtime mogą wymagać nowszej wersji.`,jW=((e={},t={})=>(t.locale??J())===`pl`?AW(e):kW(e)),MW=()=>`Which Google surface to call. Vertex authenticates with Google credentials instead of an API key.`,NW=()=>`Określa usługę Google. Vertex uwierzytelnia się danymi Google zamiast kluczem API.`,PW=((e={},t={})=>(t.locale??J())===`pl`?NW(e):MW(e)),FW=()=>`How to obtain Google credentials. Leave on the default to use Application Default Credentials.`,IW=()=>`Sposób uzyskania danych Google. Pozostaw wartość domyślną, aby użyć Application Default Credentials.`,LW=((e={},t={})=>(t.locale??J())===`pl`?IW(e):FW(e)),RW=()=>`Which request shape to send upstream.`,zW=()=>`Format Requestu wysyłanego upstream.`,BW=((e={},t={})=>(t.locale??J())===`pl`?zW(e):RW(e)),VW=()=>`Path readable by the gateway process.`,HW=()=>`Ścieżka dostępna do odczytu przez proces gateway.`,UW=((e={},t={})=>(t.locale??J())===`pl`?HW(e):VW(e)),WW=()=>`Saved values are masked; leave the asterisks unchanged to keep the stored value, or clear it to remove.`,GW=()=>`Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować wartość, lub wyczyść pole, aby ją usunąć.`,KW=((e={},t={})=>(t.locale??J())===`pl`?GW(e):WW(e)),qW=()=>`Saved values are masked; leave the asterisks unchanged to keep the stored value.`,JW=()=>`Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować wartość.`,YW=((e={},t={})=>(t.locale??J())===`pl`?JW(e):qW(e)),XW=()=>`Leave empty to auto-discover models from the provider's /models endpoint where supported.`,ZW=()=>`Pozostaw puste, aby automatycznie wykryć modele z endpointu /models dostawcy, jeśli jest obsługiwany.`,QW=((e={},t={})=>(t.locale??J())===`pl`?ZW(e):XW(e)),$W=e=>`Defaults to ${e?.value}`,eG=e=>`Domyślnie: ${e?.value}`,tG=((e,t={})=>(t.locale??J())===`pl`?eG(e):$W(e)),nG=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} key`:`${e?.count} keys`,rG=e=>{let t=Po(`pl`,e?.count,{});return t===`one`?`${e?.count} klucz`:t===`few`?`${e?.count} klucze`:t===`many`?`${e?.count} kluczy`:`${e?.count} klucza`},iG=((e,t={})=>(t.locale??J())===`pl`?rG(e):nG(e)),aG=()=>`service account`,oG=()=>`Service Account`,sG=((e={},t={})=>(t.locale??J())===`pl`?oG(e):aG(e)),cG=()=>`keyless`,lG=()=>`bez klucza`,uG=((e={},t={})=>(t.locale??J())===`pl`?lG(e):cG(e)),dG=()=>`auto-discovered`,fG=()=>`wykrywane automatycznie`,pG=((e={},t={})=>(t.locale??J())===`pl`?fG(e):dG(e)),mG=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,hG=e=>{let t=Po(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},gG=((e,t={})=>(t.locale??J())===`pl`?hG(e):mG(e)),_G=e=>`Enable ${e?.subject}`,vG=e=>`Włącz ${e?.subject}`,yG=((e,t={})=>(t.locale??J())===`pl`?vG(e):_G(e)),bG=e=>`Disable ${e?.subject}`,xG=e=>`Wyłącz ${e?.subject}`,SG=((e,t={})=>(t.locale??J())===`pl`?xG(e):bG(e)),CG=e=>`alias ${e?.name}`,wG=e=>`alias ${e?.name}`,TG=((e,t={})=>(t.locale??J())===`pl`?wG(e):CG(e)),EG=()=>`model`,DG=()=>`model`,OG=((e={},t={})=>(t.locale??J())===`pl`?DG(e):EG(e)),kG=()=>`This virtual model is managed by configuration and is read-only.`,AG=()=>`Ten model wirtualny jest zarządzany przez konfigurację i tutaj jest tylko do odczytu.`,jG=((e={},t={})=>(t.locale??J())===`pl`?AG(e):kG(e)),MG=e=>`Edit ${e?.subject}`,NG=e=>`Edytuj ${e?.subject}`,PG=((e,t={})=>(t.locale??J())===`pl`?NG(e):MG(e)),FG=e=>`Edit ${e?.subject} (override exists)`,IG=e=>`Edytuj ${e?.subject} (nadpisanie istnieje)`,LG=((e,t={})=>(t.locale??J())===`pl`?IG(e):FG(e)),RG=e=>`Edit ${e?.subject} (virtual model exists)`,zG=e=>`Edytuj ${e?.subject} (model wirtualny istnieje)`,BG=((e,t={})=>(t.locale??J())===`pl`?zG(e):RG(e)),VG=e=>`model pricing for ${e?.name}`,HG=e=>`ceny modelu ${e?.name}`,UG=((e,t={})=>(t.locale??J())===`pl`?HG(e):VG(e)),WG=e=>`provider pricing for ${e?.name}`,GG=e=>`ceny dostawcy ${e?.name}`,KG=((e,t={})=>(t.locale??J())===`pl`?GG(e):WG(e)),qG=()=>`global model pricing`,JG=()=>`globalne ceny modeli`,YG=((e={},t={})=>(t.locale??J())===`pl`?JG(e):qG(e)),XG=e=>`model settings for ${e?.name}`,ZG=e=>`ustawienia modelu ${e?.name}`,QG=((e,t={})=>(t.locale??J())===`pl`?ZG(e):XG(e)),$G=e=>`provider access for ${e?.name}`,eK=e=>`dostęp dostawcy ${e?.name}`,tK=((e,t={})=>(t.locale??J())===`pl`?eK(e):$G(e)),nK=()=>`global model access`,rK=()=>`globalny dostęp do modeli`,iK=((e={},t={})=>(t.locale??J())===`pl`?rK(e):nK(e)),aK=e=>`Remove alias ${e?.name}`,oK=e=>`Usuń alias ${e?.name}`,sK=((e,t={})=>(t.locale??J())===`pl`?oK(e):aK(e)),cK=e=>`Removing alias ${e?.name}`,lK=e=>`Usuwanie aliasu ${e?.name}`,uK=((e,t={})=>(t.locale??J())===`pl`?lK(e):cK(e)),dK=e=>`Edit alias ${e?.name}`,fK=e=>`Edytuj alias ${e?.name}`,pK=((e,t={})=>(t.locale??J())===`pl`?fK(e):dK(e)),mK=e=>`Edit redirect for ${e?.name}`,hK=e=>`Edytuj przekierowanie dla ${e?.name}`,gK=((e,t={})=>(t.locale??J())===`pl`?hK(e):mK(e)),_K=()=>`virtual model`,vK=()=>`model wirtualny`,yK=((e={},t={})=>(t.locale??J())===`pl`?vK(e):_K(e)),bK=()=>`Models`,xK=()=>`Modele`,SK=((e={},t={})=>(t.locale??J())===`pl`?xK(e):bK(e)),CK=()=>`Text generation`,wK=()=>`Generowanie tekstu`,TK=((e={},t={})=>(t.locale??J())===`pl`?wK(e):CK(e)),EK=()=>`Embeddings`,DK=()=>`Embeddingi`,OK=((e={},t={})=>(t.locale??J())===`pl`?DK(e):EK(e)),kK=()=>`Image`,AK=()=>`Obrazy`,jK=((e={},t={})=>(t.locale??J())===`pl`?AK(e):kK(e)),MK=()=>`Audio`,NK=()=>`Audio`,PK=((e={},t={})=>(t.locale??J())===`pl`?NK(e):MK(e)),FK=()=>`Video`,IK=()=>`Wideo`,LK=((e={},t={})=>(t.locale??J())===`pl`?IK(e):FK(e)),RK=()=>`Utility`,zK=()=>`Narzędziowe`,BK=((e={},t={})=>(t.locale??J())===`pl`?zK(e):RK(e)),VK=()=>`Virtual models`,HK=()=>`Modele wirtualne`,UK=((e={},t={})=>(t.locale??J())===`pl`?HK(e):VK(e)),WK=()=>`all providers and models`,GK=()=>`wszyscy dostawcy i modele`,KK=((e={},t={})=>(t.locale??J())===`pl`?GK(e):WK(e)),qK=()=>`Disabled by default`,JK=()=>`Domyślnie wyłączony`,YK=((e={},t={})=>(t.locale??J())===`pl`?JK(e):qK(e)),XK=e=>`Allowed for ${e?.paths}`,ZK=e=>`Dozwolony dla: ${e?.paths}`,QK=((e,t={})=>(t.locale??J())===`pl`?ZK(e):XK(e)),$K=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} model`:`${e?.count} models`,eq=e=>{let t=Po(`pl`,e?.count,{});return t===`one`?`${e?.count} model`:t===`few`?`${e?.count} modele`:t===`many`?`${e?.count} modeli`:`${e?.count} modelu`},tq=((e,t={})=>(t.locale??J())===`pl`?eq(e):$K(e)),nq=e=>Po(`en`,e?.count,{})===`one`?`${e?.count} alias`:`${e?.count} aliases`,rq=e=>{let t=Po(`pl`,e?.count,{});return t===`one`?`${e?.count} alias`:t===`few`?`${e?.count} aliasy`:t===`many`?`${e?.count} aliasów`:`${e?.count} aliasu`},iq=((e,t={})=>(t.locale??J())===`pl`?rq(e):nq(e)),aq=()=>`Modes`,oq=()=>`Tryby`,sq=((e={},t={})=>(t.locale??J())===`pl`?oq(e):aq(e)),cq=()=>`Input / Output ($/MTok)`,lq=()=>`Wejście / wyjście ($/MTok)`,uq=((e={},t={})=>(t.locale??J())===`pl`?lq(e):cq(e)),dq=()=>`Cached $/MTok`,fq=()=>`Cache $/MTok`,pq=((e={},t={})=>(t.locale??J())===`pl`?fq(e):dq(e)),mq=()=>`Input`,hq=()=>`Wejście`,gq=((e={},t={})=>(t.locale??J())===`pl`?hq(e):mq(e)),_q=()=>`$/Image`,vq=()=>`$/obraz`,yq=((e={},t={})=>(t.locale??J())===`pl`?vq(e):_q(e)),bq=()=>`$/Second`,xq=()=>`$/sekundę`,Sq=((e={},t={})=>(t.locale??J())===`pl`?xq(e):bq(e)),Cq=()=>`$/Character`,wq=()=>`$/znak`,Tq=((e={},t={})=>(t.locale??J())===`pl`?wq(e):Cq(e)),Eq=()=>`$/Second (In)`,Dq=()=>`$/sekundę (wejście)`,Oq=((e={},t={})=>(t.locale??J())===`pl`?Dq(e):Eq(e)),kq=()=>`$/Second (Out)`,Aq=()=>`$/sekundę (wyjście)`,jq=((e={},t={})=>(t.locale??J())===`pl`?Aq(e):kq(e)),Mq=()=>`$/Page`,Nq=()=>`$/stronę`,Pq=((e={},t={})=>(t.locale??J())===`pl`?Nq(e):Mq(e)),Fq=()=>`$/Request`,Iq=()=>`$/Request`,Lq=((e={},t={})=>(t.locale??J())===`pl`?Iq(e):Fq(e)),Rq=()=>`Save`,zq=()=>`Zapisz`,Bq=((e={},t={})=>(t.locale??J())===`pl`?zq(e):Rq(e)),Vq=()=>`Saving...`,Hq=()=>`Zapisywanie...`,Uq=((e={},t={})=>(t.locale??J())===`pl`?Hq(e):Vq(e)),Wq=()=>`Creating...`,Gq=()=>`Tworzenie...`,Kq=((e={},t={})=>(t.locale??J())===`pl`?Gq(e):Wq(e)),qq=()=>`Loading workflows...`,Jq=()=>`Wczytywanie Workflows...`,Yq=((e={},t={})=>(t.locale??J())===`pl`?Jq(e):qq(e)),Xq=()=>`Loading workflows timed out.`,Zq=()=>`Przekroczono czas wczytywania Workflows.`,Qq=((e={},t={})=>(t.locale??J())===`pl`?Zq(e):Xq(e)),$q=()=>`Workflow created and activated.`,eJ=()=>`Workflow został utworzony i aktywowany.`,tJ=((e={},t={})=>(t.locale??J())===`pl`?eJ(e):$q(e)),nJ=e=>`Deactivate Workflow "${e?.name}"? Requests will fall back to the next active Workflow for this scope.`,rJ=e=>`Dezaktywować Workflow „${e?.name}”? Requesty użyją następnego aktywnego Workflow dla tego zakresu.`,iJ=((e,t={})=>(t.locale??J())===`pl`?rJ(e):nJ(e)),aJ=()=>`Workflow deactivated.`,oJ=()=>`Workflow został dezaktywowany.`,sJ=((e={},t={})=>(t.locale??J())===`pl`?oJ(e):aJ(e)),cJ=()=>`On`,lJ=()=>`Włączony`,uJ=((e={},t={})=>(t.locale??J())===`pl`?lJ(e):cJ(e)),dJ=()=>`Off`,fJ=()=>`Wyłączony`,pJ=((e={},t={})=>(t.locale??J())===`pl`?fJ(e):dJ(e)),mJ=()=>`None`,hJ=()=>`Brak`,gJ=((e={},t={})=>(t.locale??J())===`pl`?hJ(e):mJ(e)),_J=e=>`${e?.count} steps`,vJ=e=>`Kroki: ${e?.count}`,yJ=((e,t={})=>(t.locale??J())===`pl`?vJ(e):_J(e)),bJ=()=>`1 step`,xJ=()=>`1 krok`,SJ=((e={},t={})=>(t.locale??J())===`pl`?xJ(e):bJ(e)),CJ=e=>`step ${e?.number}`,wJ=e=>`krok ${e?.number}`,TJ=((e,t={})=>(t.locale??J())===`pl`?wJ(e):CJ(e)),EJ=e=>`Deactivate Workflow ${e?.name}`,DJ=e=>`Dezaktywuj Workflow ${e?.name}`,OJ=((e,t={})=>(t.locale??J())===`pl`?DJ(e):EJ(e)),kJ=()=>`Deactivate active Workflow`,AJ=()=>`Dezaktywuj aktywny Workflow`,jJ=((e={},t={})=>(t.locale??J())===`pl`?AJ(e):kJ(e)),MJ=()=>`The global Workflow cannot be deactivated.`,NJ=()=>`Globalnego Workflow nie można dezaktywować.`,PJ=((e={},t={})=>(t.locale??J())===`pl`?NJ(e):MJ(e)),FJ=()=>`Deactivating...`,IJ=()=>`Dezaktywowanie...`,LJ=((e={},t={})=>(t.locale??J())===`pl`?IJ(e):FJ(e)),RJ=()=>`Deactivate`,zJ=()=>`Dezaktywuj`,BJ=((e={},t={})=>(t.locale??J())===`pl`?zJ(e):RJ(e)),VJ=e=>`Edit Workflow ${e?.name}`,HJ=e=>`Edytuj Workflow ${e?.name}`,UJ=((e,t={})=>(t.locale??J())===`pl`?HJ(e):VJ(e)),WJ=e=>`version: v${e?.version}`,GJ=e=>`wersja: v${e?.version}`,KJ=((e,t={})=>(t.locale??J())===`pl`?GJ(e):WJ(e)),qJ=e=>`created: ${e?.date}`,JJ=e=>`utworzono: ${e?.date}`,YJ=((e,t={})=>(t.locale??J())===`pl`?JJ(e):qJ(e)),XJ=e=>`hash: ${e?.hash}`,ZJ=e=>`hash: ${e?.hash}`,QJ=((e,t={})=>(t.locale??J())===`pl`?ZJ(e):XJ(e)),$J=()=>`Provider Name + Model`,eY=()=>`Nazwa dostawcy + model`,tY=((e={},t={})=>(t.locale??J())===`pl`?eY(e):$J(e)),nY=()=>`Provider Name + Model + Path`,rY=()=>`Nazwa dostawcy + model + Path`,iY=((e={},t={})=>(t.locale??J())===`pl`?rY(e):nY(e)),aY=()=>`Provider Name + Path`,oY=()=>`Nazwa dostawcy + Path`,sY=((e={},t={})=>(t.locale??J())===`pl`?oY(e):aY(e)),cY=()=>`Path`,lY=()=>`Path`,uY=((e={},t={})=>(t.locale??J())===`pl`?lY(e):cY(e)),dY=()=>`Provider Name`,fY=()=>`Nazwa dostawcy`,pY=((e={},t={})=>(t.locale??J())===`pl`?fY(e):dY(e)),mY=()=>`Global`,hY=()=>`Globalny`,gY=((e={},t={})=>(t.locale??J())===`pl`?hY(e):mY(e)),_Y=()=>`All models`,vY=()=>`Wszystkie modele`,yY=((e={},t={})=>(t.locale??J())===`pl`?vY(e):_Y(e)),Vme=()=>`Choose a registered provider name.`,Hme=()=>`Wybierz zarejestrowaną nazwę dostawcy.`,Ume=((e={},t={})=>(t.locale??J())===`pl`?Hme(e):Vme(e)),Wme=()=>`Model selection requires a provider name.`,Gme=()=>`Wybór modelu wymaga nazwy dostawcy.`,Kme=((e={},t={})=>(t.locale??J())===`pl`?Gme(e):Wme(e)),qme=()=>`Choose a registered model for the selected provider name.`,Jme=()=>`Wybierz zarejestrowany model dla wybranego dostawcy.`,Yme=((e={},t={})=>(t.locale??J())===`pl`?Jme(e):qme(e)),Xme=()=>`Each guardrail step needs a guardrail ref.`,Zme=()=>`Każdy krok Guardrail wymaga referencji Guardrail.`,Qme=((e={},t={})=>(t.locale??J())===`pl`?Zme(e):Xme(e)),$me=()=>`Each guardrail step must use a non-negative integer step number.`,ehe=()=>`Każdy krok Guardrail musi mieć nieujemny całkowity numer.`,the=((e={},t={})=>(t.locale??J())===`pl`?ehe(e):$me(e)),nhe=()=>`Each guardrail ref may appear only once in a workflow.`,rhe=()=>`Każda referencja Guardrail może wystąpić tylko raz w Workflow.`,ihe=((e={},t={})=>(t.locale??J())===`pl`?rhe(e):nhe(e)),ahe=()=>`Unknown`,ohe=()=>`Nieznany`,she=((e={},t={})=>(t.locale??J())===`pl`?ohe(e):ahe(e)),che=()=>`Name is required.`,lhe=()=>`Nazwa jest wymagana.`,uhe=((e={},t={})=>(t.locale??J())===`pl`?lhe(e):che(e)),dhe=()=>`Type is required.`,fhe=()=>`Typ jest wymagany.`,phe=((e={},t={})=>(t.locale??J())===`pl`?fhe(e):dhe(e)),mhe=()=>`Failed to save Guardrail.`,hhe=()=>`Nie udało się zapisać Guardrail.`,ghe=((e={},t={})=>(t.locale??J())===`pl`?hhe(e):mhe(e)),_he=e=>`Guardrail "${e?.name}" saved.`,vhe=e=>`Zapisano Guardrail „${e?.name}”.`,yhe=((e,t={})=>(t.locale??J())===`pl`?vhe(e):_he(e)),bhe=e=>`Edit Guardrail ${e?.name}`,xhe=e=>`Edytuj Guardrail ${e?.name}`,She=((e,t={})=>(t.locale??J())===`pl`?xhe(e):bhe(e)),Che=e=>`Delete Guardrail ${e?.name}`,whe=e=>`Usuń Guardrail ${e?.name}`,The=((e,t={})=>(t.locale??J())===`pl`?whe(e):Che(e)),Ehe=e=>`Deleting Guardrail ${e?.name}`,Dhe=e=>`Usuwanie Guardrail ${e?.name}`,Ohe=((e,t={})=>(t.locale??J())===`pl`?Dhe(e):Ehe(e)),khe=e=>`Delete Guardrail "${e?.name}"? Workflows that still reference it must be updated first.`,Ahe=e=>`Usunąć Guardrail „${e?.name}”? Workflows, które nadal się do niego odwołują, muszą zostać najpierw zaktualizowane.`,jhe=((e,t={})=>(t.locale??J())===`pl`?Ahe(e):khe(e)),Mhe=()=>`Failed to delete Guardrail.`,Nhe=()=>`Nie udało się usunąć Guardrail.`,Phe=((e={},t={})=>(t.locale??J())===`pl`?Nhe(e):Mhe(e)),Fhe=e=>`Guardrail "${e?.name}" deleted.`,Ihe=e=>`Usunięto Guardrail „${e?.name}”.`,Lhe=((e,t={})=>(t.locale??J())===`pl`?Ihe(e):Fhe(e)),Rhe=e=>`Rule scope: ${e?.scope}`,zhe=e=>`Zakres reguły: ${e?.scope}`,Bhe=((e,t={})=>(t.locale??J())===`pl`?zhe(e):Rhe(e)),Vhe=()=>`Declared in configuration; read-only in the dashboard`,Hhe=()=>`Zadeklarowano w konfiguracji; tylko do odczytu w dashboardzie`,Uhe=((e={},t={})=>(t.locale??J())===`pl`?Hhe(e):Vhe(e)),Whe=()=>`Managed via dashboard or admin API`,Ghe=()=>`Zarządzane przez dashboard lub admin API`,Khe=((e={},t={})=>(t.locale??J())===`pl`?Ghe(e):Whe(e)),qhe=()=>`Edit rate limit`,Jhe=()=>`Edytuj Rate Limit`,Yhe=((e={},t={})=>(t.locale??J())===`pl`?Jhe(e):qhe(e)),Xhe=()=>`Resetting counters`,Zhe=()=>`Resetowanie liczników`,Qhe=((e={},t={})=>(t.locale??J())===`pl`?Zhe(e):Xhe(e)),$he=()=>`Reset counters`,ege=()=>`Resetuj liczniki`,tge=((e={},t={})=>(t.locale??J())===`pl`?ege(e):$he(e)),nge=()=>`Resetting`,rge=()=>`Resetowanie`,ige=((e={},t={})=>(t.locale??J())===`pl`?rge(e):nge(e)),age=()=>`Reset`,oge=()=>`Resetuj`,sge=((e={},t={})=>(t.locale??J())===`pl`?oge(e):age(e)),cge=()=>`Deleting rate limit`,lge=()=>`Usuwanie Rate Limitu`,uge=((e={},t={})=>(t.locale??J())===`pl`?lge(e):cge(e)),dge=()=>`Delete rate limit`,fge=()=>`Usuń Rate Limit`,pge=((e={},t={})=>(t.locale??J())===`pl`?fge(e):dge(e)),mge=()=>`Deleting`,hge=()=>`Usuwanie`,gge=((e={},t={})=>(t.locale??J())===`pl`?hge(e):mge(e)),_ge=()=>`Delete`,vge=()=>`Usuń`,yge=((e={},t={})=>(t.locale??J())===`pl`?vge(e):_ge(e)),bge=e=>`${e?.used} of ${e?.limit} in flight`,xge=e=>`${e?.used} z ${e?.limit} w toku`,bY=((e,t={})=>(t.locale??J())===`pl`?xge(e):bge(e)),Sge=e=>`${e?.used} of ${e?.limit} requests`,Cge=e=>`${e?.used} z ${e?.limit} Request'ów`,xY=((e,t={})=>(t.locale??J())===`pl`?Cge(e):Sge(e)),wge=e=>`${e?.used} of ${e?.limit} tokens`,Tge=e=>`${e?.used} z ${e?.limit} tokenów`,SY=((e,t={})=>(t.locale??J())===`pl`?Tge(e):wge(e)),Ege=e=>`${e?.count} left`,Dge=e=>`Pozostało: ${e?.count}`,CY=((e,t={})=>(t.locale??J())===`pl`?Dge(e):Ege(e)),Oge=()=>`Unable to load rate limits.`,kge=()=>`Nie udało się wczytać Rate Limitów.`,Age=((e={},t={})=>(t.locale??J())===`pl`?kge(e):Oge(e)),jge=()=>`Unable to save rate limit.`,Mge=()=>`Nie udało się zapisać Rate Limitu.`,Nge=((e={},t={})=>(t.locale??J())===`pl`?Mge(e):jge(e)),Pge=()=>`Rate limit moved; Live counters restarted.`,Fge=()=>`Rate Limit został przeniesiony; liczniki Live zresetowano.`,Ige=((e={},t={})=>(t.locale??J())===`pl`?Fge(e):Pge(e)),Lge=()=>`Rate limit saved.`,Rge=()=>`Zapisano Rate Limit.`,zge=((e={},t={})=>(t.locale??J())===`pl`?Rge(e):Lge(e)),Bge=()=>`The new rule was saved, but the previous one could not be removed. Delete it manually.`,Vge=()=>`Nowa reguła została zapisana, ale poprzedniej nie udało się usunąć. Usuń ją ręcznie.`,Hge=((e={},t={})=>(t.locale??J())===`pl`?Vge(e):Bge(e)),Uge=()=>`Unable to delete rate limit.`,Wge=()=>`Nie udało się usunąć Rate Limitu.`,Gge=((e={},t={})=>(t.locale??J())===`pl`?Wge(e):Uge(e)),Kge=()=>`Rate limit deleted.`,qge=()=>`Usunięto Rate Limit.`,Jge=((e={},t={})=>(t.locale??J())===`pl`?qge(e):Kge(e)),Yge=()=>`Unable to reset rate limit.`,Xge=()=>`Nie udało się zresetować Rate Limitu.`,Zge=((e={},t={})=>(t.locale??J())===`pl`?Xge(e):Yge(e)),Qge=()=>`Rate limit counters reset.`,$ge=()=>`Zresetowano liczniki Rate Limitu.`,e_e=((e={},t={})=>(t.locale??J())===`pl`?$ge(e):Qge(e)),t_e=()=>`User path`,n_e=()=>`User Path`,r_e=((e={},t={})=>(t.locale??J())===`pl`?n_e(e):t_e(e)),i_e=()=>`user path`,a_e=()=>`User Path`,o_e=((e={},t={})=>(t.locale??J())===`pl`?a_e(e):i_e(e)),s_e=()=>`Provider`,c_e=()=>`Dostawca`,l_e=((e={},t={})=>(t.locale??J())===`pl`?c_e(e):s_e(e)),u_e=()=>`provider`,d_e=()=>`dostawca`,f_e=((e={},t={})=>(t.locale??J())===`pl`?d_e(e):u_e(e)),p_e=()=>`Provider Name`,m_e=()=>`Nazwa dostawcy`,h_e=((e={},t={})=>(t.locale??J())===`pl`?m_e(e):p_e(e)),g_e=()=>`Model`,__e=()=>`Model`,wY=((e={},t={})=>(t.locale??J())===`pl`?__e(e):g_e(e)),v_e=()=>`model`,y_e=()=>`model`,b_e=((e={},t={})=>(t.locale??J())===`pl`?y_e(e):v_e(e)),x_e=()=>`Per minute`,S_e=()=>`Na minutę`,C_e=((e={},t={})=>(t.locale??J())===`pl`?S_e(e):x_e(e)),w_e=()=>`Per hour`,T_e=()=>`Na godzinę`,E_e=((e={},t={})=>(t.locale??J())===`pl`?T_e(e):w_e(e)),D_e=()=>`Per day`,O_e=()=>`Na dzień`,k_e=((e={},t={})=>(t.locale??J())===`pl`?O_e(e):D_e(e)),A_e=()=>`Concurrent (in-flight)`,j_e=()=>`Równoczesne (w toku)`,M_e=((e={},t={})=>(t.locale??J())===`pl`?j_e(e):A_e(e)),N_e=()=>`Custom seconds`,P_e=()=>`Niestandardowa liczba sekund`,F_e=((e={},t={})=>(t.locale??J())===`pl`?P_e(e):N_e(e)),I_e=()=>`Period seconds is required.`,L_e=()=>`Liczba sekund okresu jest wymagana.`,R_e=((e={},t={})=>(t.locale??J())===`pl`?L_e(e):I_e(e)),z_e=e=>`${e?.field} is required.`,B_e=e=>`Pole ${e?.field} jest wymagane.`,V_e=((e,t={})=>(t.locale??J())===`pl`?B_e(e):z_e(e)),H_e=()=>`Period seconds must be a positive integer (0 only for the concurrent period).`,U_e=()=>`Liczba sekund okresu musi być dodatnią liczbą całkowitą (0 tylko dla okresu równoczesnego).`,W_e=((e={},t={})=>(t.locale??J())===`pl`?U_e(e):H_e(e)),G_e=()=>`Set max requests, max tokens, or both.`,K_e=()=>`Ustaw maksymalną liczbę Request'ów, tokenów lub oba limity.`,q_e=((e={},t={})=>(t.locale??J())===`pl`?K_e(e):G_e(e)),J_e=()=>`Token limits are not valid for the concurrent period.`,Y_e=()=>`Limit tokenów nie jest dostępny dla okresu równoczesnego.`,X_e=((e={},t={})=>(t.locale??J())===`pl`?Y_e(e):J_e(e)),Z_e=()=>`Max requests must be a positive integer.`,Q_e=()=>`Maksymalna liczba Request'ów musi być dodatnią liczbą całkowitą.`,$_e=((e={},t={})=>(t.locale??J())===`pl`?Q_e(e):Z_e(e)),eve=()=>`Max tokens must be a positive integer.`,tve=()=>`Maksymalna liczba tokenów musi być dodatnią liczbą całkowitą.`,nve=((e={},t={})=>(t.locale??J())===`pl`?tve(e):eve(e)),rve=()=>`Model limits`,ive=()=>`Rate Limity modelu`,ave=((e={},t={})=>(t.locale??J())===`pl`?ive(e):rve(e)),ove=e=>`Provider limits (${e?.provider})`,sve=e=>`Rate Limity dostawcy (${e?.provider})`,cve=((e,t={})=>(t.locale??J())===`pl`?sve(e):ove(e)),lve=()=>`Shared by every model routed to this provider.`,uve=()=>`Współdzielone przez wszystkie modele kierowane do tego dostawcy.`,dve=((e={},t={})=>(t.locale??J())===`pl`?uve(e):lve(e)),fve=()=>`Global limits`,pve=()=>`Globalne Rate Limity`,mve=((e={},t={})=>(t.locale??J())===`pl`?pve(e):fve(e)),hve=()=>`Root User Path rules throttle all traffic. Narrower User Path rules also apply, per consumer.`,gve=()=>`Reguły głównego User Path ograniczają cały ruch. Węższe reguły User Path również obowiązują dla danego klienta.`,_ve=((e={},t={})=>(t.locale??J())===`pl`?gve(e):hve(e)),vve=e=>`Rate limits for ${e?.subject}`,yve=e=>`Rate Limity dla ${e?.subject}`,bve=((e,t={})=>(t.locale??J())===`pl`?yve(e):vve(e)),xve=()=>`direct limits configured`,Sve=()=>`skonfigurowano bezpośrednie Rate Limity`,Cve=((e={},t={})=>(t.locale??J())===`pl`?Sve(e):xve(e)),wve=()=>`inherited limits apply`,Tve=()=>`obowiązują dziedziczone Rate Limity`,Eve=((e={},t={})=>(t.locale??J())===`pl`?Tve(e):wve(e)),Dve=()=>`Unable to load virtual models.`,Ove=()=>`Nie udało się wczytać modeli wirtualnych.`,kve=((e={},t={})=>(t.locale??J())===`pl`?Ove(e):Dve(e)),Ave=()=>`Failed to update alias state.`,jve=()=>`Nie udało się zaktualizować stanu aliasu.`,TY=((e={},t={})=>(t.locale??J())===`pl`?jve(e):Ave(e)),Mve=()=>`Alias enabled.`,Nve=()=>`Alias został włączony.`,Pve=((e={},t={})=>(t.locale??J())===`pl`?Nve(e):Mve(e)),Fve=()=>`Alias disabled.`,Ive=()=>`Alias został wyłączony.`,Lve=((e={},t={})=>(t.locale??J())===`pl`?Ive(e):Fve(e)),Rve=()=>`Failed to update model access.`,zve=()=>`Nie udało się zaktualizować dostępu do modelu.`,EY=((e={},t={})=>(t.locale??J())===`pl`?zve(e):Rve(e)),Bve=()=>`Model enabled.`,Vve=()=>`Model został włączony.`,Hve=((e={},t={})=>(t.locale??J())===`pl`?Vve(e):Bve(e)),Uve=()=>`Model disabled.`,Wve=()=>`Model został wyłączony.`,Gve=((e={},t={})=>(t.locale??J())===`pl`?Wve(e):Uve(e)),Kve=()=>`Failed to remove virtual model.`,qve=()=>`Nie udało się usunąć modelu wirtualnego.`,DY=((e={},t={})=>(t.locale??J())===`pl`?qve(e):Kve(e)),Jve=()=>`Virtual model removed.`,Yve=()=>`Usunięto model wirtualny.`,OY=((e={},t={})=>(t.locale??J())===`pl`?Yve(e):Jve(e)),Xve=()=>`Failed to remove redirect.`,Zve=()=>`Nie udało się usunąć przekierowania.`,Qve=((e={},t={})=>(t.locale??J())===`pl`?Zve(e):Xve(e)),$ve=()=>`Redirect removed. Other virtual model settings were preserved.`,eye=()=>`Usunięto przekierowanie. Pozostałe ustawienia modelu wirtualnego zostały zachowane.`,tye=((e={},t={})=>(t.locale??J())===`pl`?eye(e):$ve(e)),nye=()=>`This virtual model is managed by configuration and cannot be edited here.`,rye=()=>`Ten model wirtualny jest zarządzany przez konfigurację i nie można go tutaj edytować.`,iye=((e={},t={})=>(t.locale??J())===`pl`?rye(e):nye(e)),aye=()=>`This virtual model is managed by configuration and cannot be removed here.`,oye=()=>`Ten model wirtualny jest zarządzany przez konfigurację i nie można go tutaj usunąć.`,sye=((e={},t={})=>(t.locale??J())===`pl`?oye(e):aye(e)),cye=()=>`Source is required.`,lye=()=>`Źródło jest wymagane.`,uye=((e={},t={})=>(t.locale??J())===`pl`?lye(e):cye(e)),dye=()=>`Choose a different Source or edit the existing virtual model.`,fye=()=>`Wybierz inne Źródło lub edytuj istniejący model wirtualny.`,pye=((e={},t={})=>(t.locale??J())===`pl`?fye(e):dye(e)),mye=()=>`Choose a different Source to avoid masking an existing model.`,hye=()=>`Wybierz inne Źródło, aby nie przesłaniać istniejącego modelu.`,kY=((e={},t={})=>(t.locale??J())===`pl`?hye(e):mye(e)),gye=()=>`Failed to save virtual model.`,_ye=()=>`Nie udało się zapisać modelu wirtualnego.`,AY=((e={},t={})=>(t.locale??J())===`pl`?_ye(e):gye(e)),vye=()=>`Alias saved.`,yye=()=>`Zapisano alias.`,bye=((e={},t={})=>(t.locale??J())===`pl`?yye(e):vye(e)),xye=()=>`Model access reset to inherited/default.`,Sye=()=>`Przywrócono dziedziczony/domyślny dostęp do modelu.`,Cye=((e={},t={})=>(t.locale??J())===`pl`?Sye(e):xye(e)),wye=()=>`Model access saved.`,Tye=()=>`Zapisano dostęp do modelu.`,Eye=((e={},t={})=>(t.locale??J())===`pl`?Tye(e):wye(e)),Dye=()=>`Round-robin (rotate across targets; honors weights)`,Oye=()=>`Round-robin (rotacja między celami z uwzględnieniem wag)`,kye=((e={},t={})=>(t.locale??J())===`pl`?Oye(e):Dye(e)),Aye=()=>`Lowest cost (cheapest target per request)`,jye=()=>`Najniższy koszt (najtańszy cel dla Requestu)`,Mye=((e={},t={})=>(t.locale??J())===`pl`?jye(e):Aye(e)),Nye=()=>`Adaptive (target chosen by the registered routing extension)`,Pye=()=>`Adaptive (cel wybierany przez zarejestrowane rozszerzenie routingu)`,Fye=((e={},t={})=>(t.locale??J())===`pl`?Pye(e):Nye(e)),Iye=()=>`Invalid`,Lye=()=>`Nieprawidłowy`,jY=((e={},t={})=>(t.locale??J())===`pl`?Lye(e):Iye(e)),Rye=()=>`Active`,zye=()=>`Aktywny`,Bye=((e={},t={})=>(t.locale??J())===`pl`?zye(e):Rye(e)),Vye=()=>`Unassigned`,Hye=()=>`Nieprzypisany`,Uye=((e={},t={})=>(t.locale??J())===`pl`?Hye(e):Vye(e)),Wye=()=>`Unable to load model pricing overrides.`,Gye=()=>`Nie udało się wczytać nadpisań cen modeli.`,Kye=((e={},t={})=>(t.locale??J())===`pl`?Gye(e):Wye(e)),qye=()=>`All providers and models`,Jye=()=>`Wszyscy dostawcy i modele`,MY=((e={},t={})=>(t.locale??J())===`pl`?Jye(e):qye(e)),Yye=e=>`All models in ${e?.provider}`,Xye=e=>`Wszystkie modele dostawcy ${e?.provider}`,Zye=((e,t={})=>(t.locale??J())===`pl`?Xye(e):Yye(e)),Qye=()=>`Provider`,$ye=()=>`Dostawca`,ebe=((e={},t={})=>(t.locale??J())===`pl`?$ye(e):Qye(e)),tbe=()=>`This provider and model`,nbe=()=>`Ten dostawca i model`,rbe=((e={},t={})=>(t.locale??J())===`pl`?nbe(e):tbe(e)),ibe=()=>`This model across providers`,abe=()=>`Ten model u wszystkich dostawców`,obe=((e={},t={})=>(t.locale??J())===`pl`?abe(e):ibe(e)),sbe=()=>`Pricing`,cbe=()=>`Ceny`,lbe=((e={},t={})=>(t.locale??J())===`pl`?cbe(e):sbe(e)),ube=()=>`Model pricing selector is required.`,dbe=()=>`Selektor cen modelu jest wymagany.`,fbe=((e={},t={})=>(t.locale??J())===`pl`?dbe(e):ube(e)),pbe=()=>`Model pricing overrides feature is unavailable.`,mbe=()=>`Funkcja nadpisywania cen modeli jest niedostępna.`,NY=((e={},t={})=>(t.locale??J())===`pl`?mbe(e):pbe(e)),hbe=()=>`Failed to save model pricing.`,gbe=()=>`Nie udało się zapisać cen modelu.`,PY=((e={},t={})=>(t.locale??J())===`pl`?gbe(e):hbe(e)),_be=()=>`Model pricing saved.`,vbe=()=>`Zapisano ceny modelu.`,ybe=((e={},t={})=>(t.locale??J())===`pl`?vbe(e):_be(e)),bbe=()=>`Failed to remove model pricing override.`,xbe=()=>`Nie udało się usunąć nadpisania cen modelu.`,FY=((e={},t={})=>(t.locale??J())===`pl`?xbe(e):bbe(e)),Sbe=()=>`Model pricing override removed.`,Cbe=()=>`Usunięto nadpisanie cen modelu.`,wbe=((e={},t={})=>(t.locale??J())===`pl`?Cbe(e):Sbe(e)),Tbe=()=>`Input $/MTok`,Ebe=()=>`Wejście $/MTok`,Dbe=((e={},t={})=>(t.locale??J())===`pl`?Ebe(e):Tbe(e)),Obe=()=>`Output $/MTok`,kbe=()=>`Wyjście $/MTok`,Abe=((e={},t={})=>(t.locale??J())===`pl`?kbe(e):Obe(e)),jbe=()=>`Cached input $/MTok`,Mbe=()=>`Wejście z cache $/MTok`,Nbe=((e={},t={})=>(t.locale??J())===`pl`?Mbe(e):jbe(e)),Pbe=()=>`Cache write $/MTok`,Fbe=()=>`Zapis cache $/MTok`,Ibe=((e={},t={})=>(t.locale??J())===`pl`?Fbe(e):Pbe(e)),Lbe=()=>`Reasoning output $/MTok`,Rbe=()=>`Wyjście reasoning $/MTok`,zbe=((e={},t={})=>(t.locale??J())===`pl`?Rbe(e):Lbe(e)),Bbe=()=>`Batch input $/MTok`,Vbe=()=>`Wejście Batch $/MTok`,Hbe=((e={},t={})=>(t.locale??J())===`pl`?Vbe(e):Bbe(e)),Ube=()=>`Batch output $/MTok`,Wbe=()=>`Wyjście Batch $/MTok`,Gbe=((e={},t={})=>(t.locale??J())===`pl`?Wbe(e):Ube(e)),Kbe=()=>`Audio input $/MTok`,qbe=()=>`Wejście Audio $/MTok`,Jbe=((e={},t={})=>(t.locale??J())===`pl`?qbe(e):Kbe(e)),Ybe=()=>`Audio output $/MTok`,Xbe=()=>`Wyjście Audio $/MTok`,Zbe=((e={},t={})=>(t.locale??J())===`pl`?Xbe(e):Ybe(e)),Qbe=()=>`$/Image`,$be=()=>`$/obraz`,exe=((e={},t={})=>(t.locale??J())===`pl`?$be(e):Qbe(e)),txe=()=>`Input $/Image`,nxe=()=>`Wejście $/obraz`,rxe=((e={},t={})=>(t.locale??J())===`pl`?nxe(e):txe(e)),ixe=()=>`Input $/Second`,axe=()=>`Wejście $/sekundę`,oxe=((e={},t={})=>(t.locale??J())===`pl`?axe(e):ixe(e)),sxe=()=>`Output $/Second`,cxe=()=>`Wyjście $/sekundę`,lxe=((e={},t={})=>(t.locale??J())===`pl`?cxe(e):sxe(e)),uxe=()=>`$/Character`,dxe=()=>`$/znak`,fxe=((e={},t={})=>(t.locale??J())===`pl`?dxe(e):uxe(e)),pxe=()=>`$/Page`,mxe=()=>`$/stronę`,hxe=((e={},t={})=>(t.locale??J())===`pl`?mxe(e):pxe(e)),gxe=()=>`$/Request`,_xe=()=>`$/Request`,vxe=((e={},t={})=>(t.locale??J())===`pl`?_xe(e):gxe(e)),yxe=()=>`Tokens`,bxe=()=>`Tokeny`,IY=((e={},t={})=>(t.locale??J())===`pl`?bxe(e):yxe(e)),xxe=()=>`Batch`,Sxe=()=>`Batch`,LY=((e={},t={})=>(t.locale??J())===`pl`?Sxe(e):xxe(e)),Cxe=()=>`Audio`,wxe=()=>`Audio`,RY=((e={},t={})=>(t.locale??J())===`pl`?wxe(e):Cxe(e)),Txe=()=>`Image`,Exe=()=>`Obraz`,zY=((e={},t={})=>(t.locale??J())===`pl`?Exe(e):Txe(e)),Dxe=()=>`Audio/Video`,Oxe=()=>`Audio/Wideo`,kxe=((e={},t={})=>(t.locale??J())===`pl`?Oxe(e):Dxe(e)),Axe=()=>`Video`,jxe=()=>`Wideo`,Mxe=((e={},t={})=>(t.locale??J())===`pl`?jxe(e):Axe(e)),Nxe=()=>`Utility`,Pxe=()=>`Narzędziowe`,BY=((e={},t={})=>(t.locale??J())===`pl`?Pxe(e):Nxe(e)),Fxe=()=>`Model registry`,Ixe=()=>`Rejestr modeli`,VY=((e={},t={})=>(t.locale??J())===`pl`?Ixe(e):Fxe(e)),Lxe=()=>`Unknown`,Rxe=()=>`Nieznane`,zxe=((e={},t={})=>(t.locale??J())===`pl`?Rxe(e):Lxe(e)),Bxe=()=>`Dashboard/API override`,Vxe=()=>`Nadpisanie Dashboard/API`,Hxe=((e={},t={})=>(t.locale??J())===`pl`?Vxe(e):Bxe(e)),Uxe=e=>`Dashboard/API override (${e?.selector})`,Wxe=e=>`Nadpisanie Dashboard/API (${e?.selector})`,Gxe=((e,t={})=>(t.locale??J())===`pl`?Wxe(e):Uxe(e)),Kxe=()=>`Choose a price type for every row.`,qxe=()=>`Wybierz typ ceny dla każdego wiersza.`,Jxe=((e={},t={})=>(t.locale??J())===`pl`?qxe(e):Kxe(e)),Yxe=()=>`Each price type can only be used once.`,Xxe=()=>`Każdy typ ceny może zostać użyty tylko raz.`,Zxe=((e={},t={})=>(t.locale??J())===`pl`?Xxe(e):Yxe(e)),Qxe=e=>`Enter a value for ${e?.field}.`,$xe=e=>`Wprowadź wartość dla: ${e?.field}.`,eSe=((e,t={})=>(t.locale??J())===`pl`?$xe(e):Qxe(e)),tSe=()=>`Pricing values must be numbers greater than or equal to 0.`,nSe=()=>`Ceny muszą być liczbami większymi lub równymi 0.`,rSe=((e={},t={})=>(t.locale??J())===`pl`?nSe(e):tSe(e)),iSe=()=>`Add at least one pricing field before saving.`,aSe=()=>`Przed zapisem dodaj co najmniej jedno pole ceny.`,oSe=((e={},t={})=>(t.locale??J())===`pl`?aSe(e):iSe(e)),sSe=()=>`Form/API value`,cSe=()=>`Wartość Form/API`,lSe=((e={},t={})=>(t.locale??J())===`pl`?cSe(e):sSe(e)),uSe=()=>`Unset`,dSe=()=>`Nieustawione`,HY=((e={},t={})=>(t.locale??J())===`pl`?dSe(e):uSe(e)),fSe=()=>`Unable to load Failover mappings.`,pSe=()=>`Nie udało się wczytać mapowań Failover.`,mSe=((e={},t={})=>(t.locale??J())===`pl`?pSe(e):fSe(e)),hSe=()=>`Primary model is required.`,gSe=()=>`Model główny jest wymagany.`,UY=((e={},t={})=>(t.locale??J())===`pl`?gSe(e):hSe(e)),_Se=()=>`Add at least one Failover target.`,vSe=()=>`Dodaj co najmniej jeden cel Failover.`,ySe=((e={},t={})=>(t.locale??J())===`pl`?vSe(e):_Se(e)),bSe=()=>`Failed to save Failover mapping.`,xSe=()=>`Nie udało się zapisać mapowania Failover.`,WY=((e={},t={})=>(t.locale??J())===`pl`?xSe(e):bSe(e)),SSe=()=>`Failover mapping saved.`,CSe=()=>`Zapisano mapowanie Failover.`,wSe=((e={},t={})=>(t.locale??J())===`pl`?CSe(e):SSe(e)),TSe=e=>`Remove Failover mapping for "${e?.source}"?`,ESe=e=>`Usunąć mapowanie Failover dla „${e?.source}”?`,DSe=((e,t={})=>(t.locale??J())===`pl`?ESe(e):TSe(e)),OSe=()=>`Failed to remove Failover mapping.`,kSe=()=>`Nie udało się usunąć mapowania Failover.`,GY=((e={},t={})=>(t.locale??J())===`pl`?kSe(e):OSe(e)),ASe=()=>`Failover mapping removed.`,jSe=()=>`Usunięto mapowanie Failover.`,MSe=((e={},t={})=>(t.locale??J())===`pl`?jSe(e):ASe(e)),NSe=()=>`Failed to generate Failover mapping.`,PSe=()=>`Nie udało się wygenerować mapowania Failover.`,KY=((e={},t={})=>(t.locale??J())===`pl`?PSe(e):NSe(e)),FSe=()=>`No Failover suggestions were generated for this model.`,ISe=()=>`Nie wygenerowano propozycji Failover dla tego modelu.`,LSe=((e={},t={})=>(t.locale??J())===`pl`?ISe(e):FSe(e)),RSe=e=>Po(`en`,e?.count,{})===`one`?`Generated ${e?.count} Fallback model.`:`Generated ${e?.count} Fallback models.`,zSe=e=>{let t=Po(`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.`},BSe=((e,t={})=>(t.locale??J())===`pl`?zSe(e):RSe(e)),VSe=()=>`Remove Failover models`,HSe=()=>`Usuń modele Failover`,USe=((e={},t={})=>(t.locale??J())===`pl`?HSe(e):VSe(e)),WSe=()=>`Remove every dashboard-managed Failover mapping. Configuration-managed mappings remain active.`,GSe=()=>`Usuń wszystkie mapowania Failover zarządzane przez dashboard. Mapowania zarządzane przez konfigurację pozostaną aktywne.`,KSe=((e={},t={})=>(t.locale??J())===`pl`?GSe(e):WSe(e)),qSe=()=>`Remove Failover`,JSe=()=>`Usuń Failover`,YSe=((e={},t={})=>(t.locale??J())===`pl`?JSe(e):qSe(e)),XSe=()=>`Failed to remove Failover mappings.`,ZSe=()=>`Nie udało się usunąć mapowań Failover.`,qY=((e={},t={})=>(t.locale??J())===`pl`?ZSe(e):XSe(e)),QSe=()=>`Dashboard-managed Failover mappings removed.`,$Se=()=>`Usunięto mapowania Failover zarządzane przez dashboard.`,eCe=((e={},t={})=>(t.locale??J())===`pl`?$Se(e):QSe(e)),tCe=()=>`Failed to generate Failover mappings.`,nCe=()=>`Nie udało się wygenerować mapowań Failover.`,JY=((e={},t={})=>(t.locale??J())===`pl`?nCe(e):tCe(e)),rCe=e=>`${e?.selected} / ${e?.total} selected`,iCe=e=>`Wybrano ${e?.selected} / ${e?.total}`,aCe=((e,t={})=>(t.locale??J())===`pl`?iCe(e):rCe(e)),oCe=()=>`Select at least one Failover draft.`,sCe=()=>`Wybierz co najmniej jedną propozycję Failover.`,cCe=((e={},t={})=>(t.locale??J())===`pl`?sCe(e):oCe(e)),lCe=()=>`Generated Failover draft is missing model data.`,uCe=()=>`Wygenerowana propozycja Failover nie zawiera danych modelu.`,dCe=((e={},t={})=>(t.locale??J())===`pl`?uCe(e):lCe(e)),fCe=e=>Po(`en`,e?.count,{})===`one`?`Saved ${e?.count} Failover mapping.`:`Saved ${e?.count} Failover mappings.`,pCe=e=>{let t=Po(`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.`},mCe=((e,t={})=>(t.locale??J())===`pl`?pCe(e):fCe(e)),hCe=()=>`Failed to save Failover mappings.`,gCe=()=>`Nie udało się zapisać mapowań Failover.`,_Ce=((e={},t={})=>(t.locale??J())===`pl`?gCe(e):hCe(e)),vCe=e=>`Edit failover for ${e?.model}`,yCe=e=>`Edytuj Failover dla ${e?.model}`,bCe=((e,t={})=>(t.locale??J())===`pl`?yCe(e):vCe(e)),xCe=e=>`Edit failover for ${e?.model} (active)`,SCe=e=>`Edytuj Failover dla ${e?.model} (aktywny)`,CCe=((e,t={})=>(t.locale??J())===`pl`?SCe(e):xCe(e)),wCe=()=>`Paste service account JSON`,TCe=()=>`Wklej Service Account JSON`,ECe=((e={},t={})=>(t.locale??J())===`pl`?TCe(e):wCe(e)),DCe=()=>`Select a provider type.`,OCe=()=>`Wybierz typ dostawcy.`,kCe=((e={},t={})=>(t.locale??J())===`pl`?OCe(e):DCe(e)),ACe=()=>`Name is required.`,jCe=()=>`Nazwa jest wymagana.`,MCe=((e={},t={})=>(t.locale??J())===`pl`?jCe(e):ACe(e)),NCe=()=>`Name cannot contain '/' — it separates the provider from the model.`,PCe=()=>`Nazwa nie może zawierać znaku „/” — oddziela on dostawcę od modelu.`,FCe=((e={},t={})=>(t.locale??J())===`pl`?PCe(e):NCe(e)),ICe=()=>`At least one API key is required for this provider type.`,LCe=()=>`Ten typ dostawcy wymaga co najmniej jednego klucza API.`,RCe=((e={},t={})=>(t.locale??J())===`pl`?LCe(e):ICe(e)),zCe=()=>`Remove the empty row instead of leaving a key blank.`,BCe=()=>`Usuń pusty wiersz zamiast pozostawiać pusty klucz.`,VCe=((e={},t={})=>(t.locale??J())===`pl`?BCe(e):zCe(e)),HCe=e=>`Include the scheme, e.g. https://${e?.value}`,UCe=e=>`Dodaj schemat, np. https://${e?.value}`,WCe=((e,t={})=>(t.locale??J())===`pl`?UCe(e):HCe(e)),GCe=()=>`Paste the service account JSON file's contents — this is not valid JSON.`,KCe=()=>`Wklej zawartość pliku Service Account JSON — podana wartość nie jest prawidłowym JSON.`,qCe=((e={},t={})=>(t.locale??J())===`pl`?KCe(e):GCe(e)),JCe=e=>`Provider "${e?.name}" already exists.`,YCe=e=>`Dostawca „${e?.name}” już istnieje.`,XCe=((e,t={})=>(t.locale??J())===`pl`?YCe(e):JCe(e)),ZCe=e=>`${e?.field} is required for this provider type.`,QCe=e=>`Pole ${e?.field} jest wymagane dla tego typu dostawcy.`,$Ce=((e,t={})=>(t.locale??J())===`pl`?QCe(e):ZCe(e)),ewe=()=>`Connected`,twe=()=>`Połączony`,nwe=((e={},t={})=>(t.locale??J())===`pl`?twe(e):ewe(e)),rwe=()=>`Degraded`,iwe=()=>`Zdegradowany`,awe=((e={},t={})=>(t.locale??J())===`pl`?iwe(e):rwe(e)),owe=()=>`Connecting`,swe=()=>`Łączenie`,cwe=((e={},t={})=>(t.locale??J())===`pl`?swe(e):owe(e)),lwe=()=>`Disabled`,uwe=()=>`Wyłączony`,dwe=((e={},t={})=>(t.locale??J())===`pl`?uwe(e):lwe(e)),fwe=()=>`Optional description`,pwe=()=>`Opcjonalny opis`,mwe=((e={},t={})=>(t.locale??J())===`pl`?pwe(e):fwe(e)),hwe=()=>`search_issues, get_file (comma-separated; empty allows all)`,gwe=()=>`search_issues, get_file (oddzielone przecinkami; puste zezwala na wszystkie)`,_we=((e={},t={})=>(t.locale??J())===`pl`?gwe(e):hwe(e)),vwe=()=>`delete_repo (comma-separated)`,ywe=()=>`delete_repo (oddzielone przecinkami)`,bwe=((e={},t={})=>(t.locale??J())===`pl`?ywe(e):vwe(e)),xwe=()=>`Client`,Swe=()=>`Klient`,Cwe=((e={},t={})=>(t.locale??J())===`pl`?Swe(e):xwe(e)),wwe=()=>`Auth`,Twe=()=>`Uwierzytelnianie`,Ewe=((e={},t={})=>(t.locale??J())===`pl`?Twe(e):wwe(e)),Dwe=()=>`Response`,Owe=()=>`Odpowiedź`,kwe=((e={},t={})=>(t.locale??J())===`pl`?Owe(e):Dwe(e)),Awe=()=>`Audit Log`,jwe=()=>`Log audytowy`,Mwe=((e={},t={})=>(t.locale??J())===`pl`?jwe(e):Awe(e)),Nwe=()=>`Hit (Semantic)`,Pwe=()=>`Trafienie (Semantic)`,Fwe=((e={},t={})=>(t.locale??J())===`pl`?Pwe(e):Nwe(e)),Iwe=()=>`Hit (Exact)`,Lwe=()=>`Trafienie (Exact)`,Rwe=((e={},t={})=>(t.locale??J())===`pl`?Lwe(e):Iwe(e)),zwe=()=>`Exceeded`,Bwe=()=>`Przekroczony`,Vwe=((e={},t={})=>(t.locale??J())===`pl`?Bwe(e):zwe(e)),Hwe=()=>`Redirected`,Uwe=()=>`Przekierowano`,Wwe=((e={},t={})=>(t.locale??J())===`pl`?Uwe(e):Hwe(e)),Gwe=e=>`Remove the virtual model alias "${e?.source}"?`,Kwe=e=>`Usunąć alias modelu wirtualnego „${e?.source}”?`,qwe=((e,t={})=>(t.locale??J())===`pl`?Kwe(e):Gwe(e)),Jwe=e=>`Remove the redirect for "${e?.source}"? Other virtual model settings will be preserved.`,Ywe=e=>`Usunąć przekierowanie dla „${e?.source}”? Pozostałe ustawienia modelu wirtualnego zostaną zachowane.`,Xwe=((e,t={})=>(t.locale??J())===`pl`?Ywe(e):Jwe(e)),Zwe=e=>`A virtual model named "${e?.name}" already exists. Saving will update that virtual model. Continue?`,Qwe=e=>`Model wirtualny „${e?.name}” już istnieje. Zapis zaktualizuje ten model. Kontynuować?`,$we=((e,t={})=>(t.locale??J())===`pl`?Qwe(e):Zwe(e)),eTe=e=>`An access policy for "${e?.source}" already exists. Saving will update that virtual model. Continue?`,tTe=e=>`Polityka dostępu dla „${e?.source}” już istnieje. Zapis zaktualizuje ten model wirtualny. Kontynuować?`,nTe=((e,t={})=>(t.locale??J())===`pl`?tTe(e):eTe(e)),rTe=e=>`A model named "${e?.name}" already exists. Creating this alias will mask that model in the list. Continue?`,iTe=e=>`Model „${e?.name}” już istnieje. Utworzenie aliasu przesłoni go na liście. Kontynuować?`,aTe=((e,t={})=>(t.locale??J())===`pl`?iTe(e):rTe(e)),oTe=e=>`A virtual model for "${e?.source}" already exists. Choose a different Source.`,sTe=e=>`Model wirtualny dla „${e?.source}” już istnieje. Wybierz inne Źródło.`,cTe=((e,t={})=>(t.locale??J())===`pl`?sTe(e):oTe(e)),lTe=e=>`A model named "${e?.name}" already exists. Renaming to that name will mask the model in the list. Continue?`,uTe=e=>`Model „${e?.name}” już istnieje. Zmiana nazwy przesłoni go na liście. Kontynuować?`,dTe=((e,t={})=>(t.locale??J())===`pl`?uTe(e):lTe(e)),fTe=e=>`Remove the virtual model for "${e?.source}"? This reverts to inherited/default behavior.`,pTe=e=>`Usunąć model wirtualny dla „${e?.source}”? Przywróci to zachowanie dziedziczone/domyślne.`,mTe=((e,t={})=>(t.locale??J())===`pl`?pTe(e):fTe(e)),hTe=e=>`Remove the model pricing override for "${e?.selector}"?`,gTe=e=>`Usunąć nadpisanie cen modelu dla „${e?.selector}”?`,_Te=((e,t={})=>(t.locale??J())===`pl`?gTe(e):hTe(e)),YY=[[`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`}]],vTe=[[`path`,{d:`M12 5v14`}],[`path`,{d:`m19 12-7 7-7-7`}]],yTe=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]],bTe=[[`path`,{d:`M5 12h14`}],[`path`,{d:`m12 5 7 7-7 7`}]],xTe=[[`path`,{d:`m5 12 7-7 7 7`}],[`path`,{d:`M12 19V5`}]],XY=[[`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`}]],ZY=[[`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`}]],STe=[[`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`}]],CTe=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}]],wTe=[[`path`,{d:`M13 17V9`}],[`path`,{d:`M18 17V5`}],[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M8 17v-3`}]],TTe=[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M18 17V9`}],[`path`,{d:`M13 17V5`}],[`path`,{d:`M8 17v-3`}]],ETe=[[`path`,{d:`M5 21v-6`}],[`path`,{d:`M12 21V9`}],[`path`,{d:`M19 21V3`}]],QY=[[`path`,{d:`M20 6 9 17l-5-5`}]],$Y=[[`path`,{d:`m6 9 6 6 6-6`}]],DTe=[[`path`,{d:`m15 18-6-6 6-6`}]],eX=[[`path`,{d:`m9 18 6-6-6-6`}]],OTe=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`}],[`path`,{d:`m9 11 3 3L22 4`}]],tX=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m9 12 2 2 4-4`}]],nX=[[`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`}]],kTe=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 6v6l4 2`}]],rX=[[`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`}]],iX=[[`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`}]],aX=[[`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`}]],ATe=[[`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`}]],oX=[[`path`,{d:`m12 14 4-4`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`}]],jTe=[[`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`}]],MTe=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]],sX=[[`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`}]],NTe=[[`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`}]],PTe=[[`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`}]],cX=[[`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`}]],FTe=[[`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`}]],lX=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`m21 3-7 7`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M9 21H3v-6`}]],ITe=[[`path`,{d:`m14 10 7-7`}],[`path`,{d:`M20 10h-6V4`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M4 14h6v6`}]],LTe=[[`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`}]],RTe=[[`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`}]],uX=[[`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`}]],zTe=[[`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`}]],dX=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]],BTe=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]],fX=[[`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`}]],pX=[[`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`}]],mX=[[`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`}]],VTe=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]],HTe=[[`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`}]],UTe=[[`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`}]],WTe=[[`path`,{d:`M14 17H5`}],[`path`,{d:`M19 7h-9`}],[`circle`,{cx:`17`,cy:`17`,r:`3`}],[`circle`,{cx:`7`,cy:`7`,r:`3`}]],GTe=[[`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`}]],hX=[[`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`}]],KTe=[[`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`}]],JTe=[[`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`}]],gX=[[`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`}]],YTe=[[`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`}]],_X=[[`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`}]],vX=[[`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`}]],XTe=[[`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`}]],ZTe=[[`circle`,{cx:`12`,cy:`8`,r:`5`}],[`path`,{d:`M20 21a8 8 0 0 0-16 0`}]],QTe=[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`}],[`circle`,{cx:`12`,cy:`7`,r:`4`}]],yX=[[`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`}]],bX=[[`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`}]],$Te=[[`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`}]],xX=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]],eEe=z(``),tEe=z(`
        `,1);function nEe(e,t){O(t,!0);let n=K(t,`compact`,3,!1),r=[{value:`light`,icon:gX,label:KI()},{value:`system`,icon:LTe,label:YI()},{value:`dark`,icon:RTe,label:QI()}],i=A(()=>r.find(e=>e.value===Ji.theme)||r[1]),a=A(()=>tL({theme:L(i).label}));var o=tEe(),s=P(o);let c;U(s,21,()=>r,e=>e.value,(e,t)=>{var n=eEe();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:Ji.theme===L(t).value}),G(n,`aria-pressed`,Ji.theme===L(t).value),G(n,`title`,L(t).label),G(n,`aria-label`,L(t).label)}),R(`click`,n,()=>Ji.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))},[()=>UI()]),R(`click`,l,()=>Ji.toggle()),B(e,o),k()}xr([`click`]);function SX(){return typeof window>`u`?`/`:window.GOMODEL_BASE_PATH||`/`}function CX(e){let t=SX();return!e||e.charAt(0)!==`/`||e.indexOf(`//`)===0||t===`/`||e===t||e.indexOf(t+`/`)===0?e:t+e}function rEe(e){let t=SX();return t===`/`||!e?e:e===t?`/`:e.indexOf(t+`/`)===0?e.slice(t.length)||`/`:e}function iEe(){return typeof window>`u`?``:window.GOMODEL_VERSION||``}function aEe(){return typeof window>`u`?!1:window.GOMODEL_DEMO_MODE===!0}var oEe=[`overview`,`usage`,`budgets`,`rate-limits`,`models`,`workflows`,`audit-logs`,`guardrails`,`mcp-servers`,`providers-config`,`auth-keys`,`settings`];function sEe(e){return e.startsWith(`/admin/static/`)?`/`+e.slice(14).replace(/^\/+/,``):e}function wX(e){let t=sEe(rEe(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=oEe.includes(n)?n:`overview`,{page:n,sub:r})}var TX=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}=wX(window.location.pathname);this.page=e,this.sub=t,window.addEventListener(`popstate`,()=>{let{page:e,sub:t}=wX(window.location.pathname);this.page=e,this.sub=t})}navigate(e,t=null){let n=t?`/`+t:``;history.pushState(null,``,CX(`/admin/dashboard/`+e+n)),this.page=e,this.sub=t}},EX=`X-GoModel-Auth-Login`,DX=`X-GoModel-Auth-Logout`,OX=`X-GoModel-Auth-User`;function kX(e){let t=String(e||``).trim();return!t.startsWith(`/`)||t.startsWith(`//`)||t.includes(`\\`)?``:t}function cEe(e,t=globalThis.location){let n=kX(e),r=kX(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 lEe(e){let t=e?.headers;if(!t||typeof t.has!=`function`)return null;let n={};return t.has(EX)&&(n.loginURL=kX(t.get(EX))),t.has(DX)&&(n.logoutURL=kX(t.get(DX))),t.has(OX)&&(n.user=String(t.get(OX)||``).trim().slice(0,256)),n}var AX=`gomodel_api_key`;function jX(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=jX(localStorage.getItem(AX)||``)}catch{this.apiKey=``}}hasApiKey(){return jX(this.apiKey)!==``}save(){this.apiKey=jX(this.apiKey);try{localStorage.setItem(AX,this.apiKey)}catch{}}selectExternalAuthentication(){this.apiKey=``;try{localStorage.removeItem(AX)}catch{}this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!0}openDialog(){this.dialogOpen=!0}closeDialog(){this.dialogOpen=!1}submit(){let e=jX(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=lEe(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=HX(`en-CA`,{timeZone:UX(t)?t:RX,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 NX(e)}dateToDateKey(e){return PX(e)}addDaysToDateKey(e,t){return FX(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=UX(e)?e:RX;try{let e=HX(`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=[]}[RX,this.detectedTimezone,this.override].forEach(e=>{e&&t.indexOf(e)===-1&&UX(e)&&t.push(e)}),t=t.filter(e=>UX(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=Ui();if(e)if(this.override&&UX(this.override))try{e.setItem(zX,this.override)}catch{}else{try{e.removeItem(zX)}catch{}this.override=``}this.optionsLoaded=!1,this.ensureOptions()}clearOverride(){let e=Ui();if(e)try{e.removeItem(zX)}catch{}this.override=``}calendarTimeZoneText(){let e=this.override?`manual override`:`auto-detected`;return`Activity grouped by `+this.effectiveTimeZoneLabel()+` (`+e+`)`}};function GX(e,t){let n=e&&typeof e==`object`&&e.error&&e.error.message;return(typeof n==`string`?n.trim():``)||t}function KX(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 fEe(){let e={"Content-Type":`application/json`},t=jX(Y.apiKey);return t&&(e.Authorization=`Bearer `+t),e[`X-GoModel-Timezone`]=WX.effectiveTimezone(),e}function qX(e,t={}){return fetch(CX(e),{...t,headers:{...fEe(),...t.headers||{}}})}async function JX(e,t,{label:n=e,parse:r=!0}={}){let i=Y.generation,a=await qX(e,t),o=ie.trim()).filter(Boolean);return e.length>0?e:mEe}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 YX(`/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 pEe)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)}}},hEe=[{page:`overview`,label:Ia,icon:NTe},{page:`providers-config`,label:za,icon:HTe},{page:`models`,label:Ha,icon:XY},{page:`audit-logs`,label:Ga,icon:jTe},{page:`usage`,label:Ja,icon:TTe},{page:`budgets`,label:Za,icon:yX,visible:()=>QX.budgetsVisible()},{page:`rate-limits`,label:eo,icon:oX,visible:()=>QX.rateLimitsVisible()},{page:`auth-keys`,label:ro,icon:sX},{page:`workflows`,label:oo,icon:$Te},{page:`guardrails`,label:lo,icon:hX,visible:()=>QX.guardrailsVisible()},{page:`mcp-servers`,label:po,icon:zTe,visible:()=>QX.mcpVisible()},{page:`settings`,label:go,icon:GTe}],gEe=z(` `),_Ee=z(`
        `),vEe=z(``),yEe=z(`
        `),bEe=z(` `,1);function xEe(e,t){O(t,!0);let n=A(()=>hEe.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=Yi.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,Yi.setWidth(qi(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`),Yi.setWidth(Yi.width,!0))}function u(){if(o){o=!1;return}Yi.toggle()}function d(e){let t;if(e.key===`ArrowLeft`)t=Yi.width-12;else if(e.key===`ArrowRight`)t=Yi.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(),Yi.toggle();return}else return;e.preventDefault(),Yi.setWidth(t,!0)}var f=bEe(),p=P(f);let m;var h=N(p),g=N(h);Hi(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=gEe();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:TX.page===L(t).page}),G(n,`title`,i),V(o,a)},[()=>CX(`/admin/dashboard/`+L(t).page),()=>L(t).label(),()=>L(t).label()]),R(`click`,n,e=>{e.preventDefault(),TX.navigate(L(t).page)}),B(e,n)}),D(y);var b=F(y,2),x=N(b);nEe(x,{get compact(){return Yi.collapsed}});var S=F(x,2),C=e=>{var t=vEe(),n=N(t),r=e=>{var t=_Ee(),n=N(t);q(n,{get icon(){return ZTe},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 FTe},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)},[()=>CX(Y.externalLogoutURL),()=>OI(),()=>OI()]),B(e,t)};H(S,e=>{Y.externalLogoutURL&&e(C)});var w=F(S,2),T=e=>{var t=yEe(),n=N(t),r=N(n);q(r,{get icon(){return cX},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?jI():PI(),()=>Y.needsAuth?jI():PI()]),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":Yi.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`,Yi.width)},[()=>Na(),()=>BI(),()=>LI()]),R(`pointerdown`,E,s),R(`pointermove`,E,c),R(`pointerup`,E,l),br(`pointercancel`,E,l),br(`lostpointercapture`,E,l),R(`keydown`,E,d),R(`click`,E,u),B(e,f),k()}xr([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var SEe=z(``);function $X(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=SEe();q(N(s),{get icon(){return xX},get class(){return i()}}),D(s),Ii(s,e=>o(e),()=>o()),I(()=>{W(s,1,li([`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()}xr([`click`]);function CEe(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 wEe(e=`[data-modal-autofocus]`){return t=>{let n=t.querySelector(e);n&&typeof n.focus==`function`&&n.focus()}}var TEe=z(`
        `,1);function eZ(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`);mn(()=>{if(!n())return;let e=or(()=>Xi.opened()),r=n=>{n.key===`Escape`&&Xi.isTop(e)&&t.onclose?.()};return window.addEventListener(`keydown`,r),()=>{Xi.closed(e),window.removeEventListener(`keydown`,r)}});function s(e){i()&&e.target===e.currentTarget&&t.onclose?.()}var c=Or(),l=P(c),u=e=>{var n=TEe(),r=P(n),i=F(r,2);Kr(N(i),()=>t.children??f),D(i),si(i,wEe),I(()=>{W(r,1,li(L(a)),`svelte-17e0w4c`),W(i,1,li(L(o)),`svelte-17e0w4c`)}),R(`click`,i,s),B(e,n)};H(l,e=>{n()&&e(u)}),B(e,c),k()}xr([`click`]);var EEe=z(`
        `,1),DEe=z(``),OEe=z(``);function kEe(e,t){O(t,!0),eZ(e,{get open(){return Y.dialogOpen},variant:`auth`,onclose:()=>Y.closeDialog(),children:(e,t)=>{var n=OEe(),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(()=>gL());$X(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=EEe(),n=P(t),r=N(n);q(r,{get icon(){return sX}});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)},[()=>cEe(CX(Y.externalLoginURL)),()=>yL(),()=>SL()]),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 cX},class:`auth-dialog-input-icon`});var p=F(f,2);wi(p),D(d);var m=F(d,2),h=e=>{var t=DEe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Y.authErrorMessage||jL()]),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 QY},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?uL():pL(),()=>OL(),()=>TL(),()=>PL(),()=>Y.needsAuth?LL():BL()]),br(`submit`,c,e=>{e.preventDefault(),Y.submit()}),ji(p,()=>Y.apiKey,e=>Y.apiKey=e),B(e,n)},$$slots:{default:!0}}),k()}xr([`click`]);function tZ(){return{open:!1,title:``,titleId:`typedConfirmationDialogTitle`,inputId:`typed-confirmation-input`,message:``,requiredText:``,value:``,confirmLabel:`Confirm`,icon:XTe,dialogClass:``,loading:!1,onConfirm:null,onClose:null}}var nZ=new class{#e=j(Yt(tZ()));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={...tZ(),open:!0,...e||{}}}close(){let e=this.state;typeof e.onClose==`function`&&e.onClose(),this.state=tZ(),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}}}},AEe=z(`

        `),jEe=z(``),MEe=z(`

        `);function NEe(e,t){O(t,!0);let n=A(()=>nZ.state);eZ(e,{get open(){return L(n).open},variant:`auth`,onclose:()=>nZ.close(),children:(e,t)=>{var r=MEe(),i=N(r),a=N(i),o=N(a,!0);D(a);var s=F(a,2);{let e=A(()=>UL());$X(s,{get label(){return L(e)},onclick:()=>nZ.close(),class:`auth-dialog-close`,iconClass:``})}D(i);var c=F(i,2),l=N(c),u=e=>{var t=AEe(),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);wi(m),D(d);var h=F(d,2),g=e=>{var t=jEe(),n=N(t,!0);D(t),I(()=>V(n,nZ.error)),B(e,t)};H(h,e=>{nZ.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)},[()=>nZ.inputLabel(),()=>wa(),()=>L(n).loading||!nZ.ready()]),br(`submit`,c,e=>{e.preventDefault(),nZ.submit()}),ji(m,()=>nZ.state.value,e=>nZ.state.value=e),R(`click`,v,()=>nZ.close()),B(e,r)},$$slots:{default:!0}}),k()}xr([`click`]);var PEe=e=>e;function rZ(e){let t=e-1;return t*t*t+1}function iZ(e){let t=typeof e==`string`&&e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);return t?[parseFloat(t[1]),t[2]||`px`]:[e,`px`]}function FEe(e,{delay:t=0,duration:n=400,easing:r=PEe}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function aZ(e,{delay:t=0,duration:n=400,easing:r=rZ,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]=iZ(i),[p,m]=iZ(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 oZ(e,{delay:t=0,duration:n=400,easing:r=rZ,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 IEe(e){return--e*e*(2.70158*e+1.70158)+1}function sZ(e){let t=e-1;return t*t*t+1}var LEe=5e3,REe=8e3,cZ=new class{#e=j(Yt([]));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,LEe)}error(e){this.#r(`error`,e,REe)}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))}},zEe=z(`
        `),BEe=z(`
        `);function VEe(e,t){O(t,!0);var n=BEe();U(n,21,()=>cZ.toasts,e=>e.id,(e,t)=>{var n=zEe();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)},[()=>KL()]),R(`click`,o,()=>cZ.dismiss(L(t).id)),ai(1,n,()=>aZ,()=>({y:-24,duration:360,easing:IEe})),ai(2,n,()=>FEe,()=>({duration:150})),B(e,n)}),D(n),B(e,n),k()}xr([`click`]);var HEe=z(``);function UEe(e,t){O(t,!0);var n=Or(),r=P(n),i=e=>{var t=HEe(),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)},[()=>YL(),()=>QL(),()=>tR(),()=>iR()]),B(e,t)},a=A(()=>aEe());H(r,e=>{L(a)&&e(i)}),B(e,n),k()}function lZ(e){return String(e||``).split(`,`).map(e=>e.trim()).filter(e=>e)}function uZ(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 dZ(e){return e==null||e===void 0?`-`:e.toLocaleString()}function fZ(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 pZ(e){return e==null||e===void 0?`—`:`$`+e.toFixed(2)}function mZ(e){return e==null||e===void 0?`—`:e<.01?`$`+e.toFixed(6):`$`+e.toFixed(4)}function hZ(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 gZ(e,t){let n=t==null||t===``?NaN:Number(t),r=Number.isFinite(n)?dZ(n):`-`;return String(e||`Tokens`)+`: `+r}function _Z(e){return e?typeof e==`string`?e:e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`):``}function WEe(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 vZ(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 GEe(e){return String(e&&e.provider||``).trim()}function yZ(e){return String(e&&e.provider_name||``).trim()||GEe(e)}function bZ(e,t){let n=String(t||``).trim();if(!n)return`-`;let r=yZ(e);return!r||n===r||n.startsWith(r+`/`)?n:r+`/`+n}function KEe(e){return bZ(e,e&&e.model)}function xZ(e){return bZ(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=xZ(e);if(n&&n!==`-`&&n!==t)return t+` ⮕ `+n}return t}var SZ=`gomodel_date_range`,CZ=1;function wZ(e){return/^[1-9]\d*$/.test(String(e??``))}function JEe({selectedPreset:e,startKey:t,endKey:n,followsToday:r}){return e&&wZ(e)?{v:CZ,mode:`preset`,days:String(e)}:e?null:IX(t)&&IX(n)?{v:CZ,mode:`custom`,start:t,end:n,follow:r===!0}:null}function YEe(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`?wZ(t.days)?{mode:`preset`,days:String(t.days)}:null:t.mode===`custom`&&IX(t.start)&&IX(t.end)&&t.start<=t.end?{mode:`custom`,start:t.start,end:t.end,follow:t.follow===!0}:null}function XEe(e,t,n){let r=LX(e,t);return r<1||!IX(n)?{start:e,end:t}:{start:FX(n,-(r-1)),end:n}}var TZ=`gomodel_locale`;xa(`custom-dashboard`,{getLocale:()=>Wi(TZ)||void 0,setLocale:e=>Gi(TZ,e)});function ZEe(){let e=J();document.documentElement.lang=e,document.documentElement.dir=aa(e)}function QEe(e){return typeof Intl.DisplayNames==`function`&&new Intl.DisplayNames([e],{type:`language`}).of(e)||e}function EZ(e,t){return new Intl.NumberFormat(J(),t).format(e)}function DZ(e,t){return new Intl.DateTimeFormat(J(),t).format(e)}function OZ(e){return uR({count:Number(e)})}function kZ(e,t){return e===t?gR():DZ(new Date(e+`T00:00:00Z`),{day:`numeric`,month:`short`,year:`numeric`,timeZone:`UTC`})}function $Ee({selectedPreset:e,startKey:t,endKey:n,todayKey:r}){if(e)return OZ(e);if(IX(t)&&IX(n)){if(t>n)return OZ(`30`);let e=kZ(t,r);return t===n?e:yR({start:e,end:kZ(n,r)})}return IX(t)?SR({start:kZ(t,r)}):OZ(`30`)}function eDe({selectedPreset:e,startKey:t,endKey:n,followsToday:r,todayKey:i}){if(e)return OZ(e);if(!IX(t)||!IX(n)||t>n)return``;let a=LX(t,n);return r||n===i?a===1?gR():OZ(a):pR({count:a})}function tDe(e){switch(e){case`weekly`:return BR();case`monthly`:return UR();case`yearly`:return KR();default:return LR()}}var nDe=6e4,AZ=new class{#e=j(Yt(`30`));get days(){return L(this.#e)}set days(e){M(this.#e,e,!0)}#t=j(Yt(`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(),nDe)}queryStr(){return this.customStartDate&&this.customEndDate?`start_date=`+_Z(this.customStartDate)+`&end_date=`+_Z(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))}},rDe=z(``);function MZ(e,t){O(t,!0);var n=Or(),r=P(n),i=e=>{var t=rDe(),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)},[()=>sL(),()=>jI()]),R(`click`,i,()=>Y.openDialog()),B(e,t)};H(r,e=>{Y.authError&&e(i)}),B(e,n),k()}xr([`click`]);function NZ(){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 PZ(){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 FZ=new class{#e=j(Yt(NZ()));get summary(){return L(this.#e)}set summary(e){M(this.#e,e,!0)}#t=j(Yt([]));get daily(){return L(this.#t)}set daily(e){M(this.#t,e,!0)}#n=j(Yt(PZ()));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 QX.cacheVisible()}async fetchUsage(){this.#i&&this.#i.abort();let e=new AbortController;this.#i=e,this.loading=!0;try{let t=AZ.queryStr()+`&interval=`+AZ.interval,[n,r]=await Promise.all([YX(`/admin/usage/summary?`+t,{label:`usage summary`,signal:e.signal}),YX(`/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=NZ(),this.daily=[],this.cacheOverview=PZ();return}this.summary=n.data||NZ(),this.daily=Array.isArray(r.data)?r.data:[]}catch(e){if(ZX(e))return;console.error(`Failed to fetch usage:`,e),this.summary=NZ(),this.daily=[]}finally{this.#i===e&&(this.#i=null,this.loading=!1)}}async fetchCacheOverview(e=``){if(await QX.ensureLoaded(),!this.cacheAnalyticsEnabled()){this.cacheOverview=PZ();return}this.#a&&this.#a.abort();let t=new AbortController;this.#a=t;try{let n=await YX(`/admin/cache/overview?`+(AZ.queryStr()+`&interval=`+AZ.interval+e),{label:`cache overview`,signal:t.signal});if(n.stale||t.signal.aborted)return;if(!n.ok){this.cacheOverview=PZ();return}let r=n.data&&typeof n.data==`object`?n.data:PZ();r.summary||=PZ().summary,Array.isArray(r.daily)||(r.daily=[]),this.cacheOverview=r}catch(e){if(ZX(e))return;console.error(`Failed to fetch cache overview:`,e),this.cacheOverview=PZ()}finally{this.#a===t&&(this.#a=null)}}};function iDe(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 IZ(e,t,n){let r=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1));return n&&r.getTime()>n.getTime()?e:r}function aDe(e,t){return e.getUTCFullYear()===t.getUTCFullYear()&&e.getUTCMonth()===t.getUTCMonth()}var oDe=z(``),sDe=z(``),cDe=z(` `),lDe=z(``),uDe=z(`
        `);function dDe(e,t){O(t,!0);let n=K(t,`offset`,3,0),r=A(()=>iDe(t.calendarMonth,n(),e=>WX.dateToDateKey(e))),i=A(()=>aDe(t.calendarMonth,WX.todayDate())),a=A(()=>DZ(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)=>DZ(new Date(Date.UTC(2024,0,1+t)),{weekday:`short`,timeZone:`UTC`})),s=e=>WX.dateToDateKey(e.date),c=e=>s(e)>WX.currentDateKey(),l=e=>e.current&&s(e)===WX.currentDateKey();function u(e,t){let n=t===`start`?AZ.rangeStart():AZ.rangeEnd();return e.current&&!!n&&s(e)===WX.dateToDateKey(n)}function d(e){let t=AZ.rangeStart(),n=AZ.rangeEnd();return!e.current||!t||!n?!1:s(e)>=WX.dateToDateKey(t)&&s(e)<=WX.dateToDateKey(n)}var f=uDe(),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,oDe())},b=e=>{var n=sDe();I(e=>{n.disabled=L(i),G(n,`aria-label`,e)},[()=>PR()]),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,Ir,(e,t)=>{var n=cDe(),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=lDe(),i=N(r,!0);D(r),I((e,t)=>{W(r,1,e,`svelte-g7ga4u`),r.disabled=t,V(i,L(n).day)},[()=>li([`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))},[()=>jR()]),R(`click`,m,function(...e){t.onprev?.apply(this,e)}),B(e,f),k()}xr([`click`]);var fDe=z(``),pDe=z(`
        `),mDe=Er(``),hDe=Er(``),gDe=z(`
        `),_De=z(`
        `);function LZ(e,t){O(t,!0);let n=[`3`,`7`,`14`,`30`,`90`],r=j(!1),i=j(`start`),a=j(Yt(new Date)),o=j(Yt({show:!1,x:0,y:0}));function s(){M(r,!L(r)),L(r)&&(AZ.syncToToday(),M(a,WX.startOfMonthDate(AZ.customEndDate||WX.todayDate()),!0),M(i,`start`))}function c(){M(r,!1),M(o,{show:!1,x:0,y:0},!0)}let l=AZ.syncTick;mn(()=>{let e=AZ.syncTick;e!==l&&(l=e,t.onchange?.())});function u(e){AZ.selectPreset(e),M(i,`start`),t.onchange?.(),c()}let d=()=>M(a,IZ(L(a),-1),!0),f=()=>M(a,IZ(L(a),1,WX.startOfMonthDate(WX.todayDate())),!0);function p(e){let n=new Date(e.date);if(L(i)===`start`){AZ.selectStart(n),M(i,`end`),t.onchange?.();return}AZ.selectEnd(n),M(i,`start`),t.onchange?.(),c()}var m=_De(),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=pDe(),r=N(t);U(r,20,()=>n,e=>e,(e,t)=>{var n=fDe();let r;var i=N(n,!0);D(n),I(e=>{r=W(n,1,`preset-btn svelte-ax7ma4`,null,r,{active:AZ.selectedPreset===t}),V(i,e)},[()=>uR({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)=>{dDe(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)),br(`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=gDe(),n=N(t),r=e=>{B(e,mDe())},a=e=>{B(e,hDe())};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=>{mi(t,`left:${L(o).x??``}px;top:${L(o).y??``}px`),V(c,e)},[()=>L(i)===`end`?OR():TR()]),B(e,t)};H(S,e=>{L(o).show&&e(C)}),D(m),si(m,()=>L(r)?CEe(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)})},[()=>AZ.dateRangeSpanLabel(),()=>AZ.dateRangeLabel()]),R(`click`,h,s),B(e,m),k()}xr([`click`,`mousemove`]);function RZ(e){return e+.5|0}var zZ=(e,t,n)=>Math.max(Math.min(e,n),t);function BZ(e){return zZ(RZ(e*2.55),0,255)}function VZ(e){return zZ(RZ(e*255),0,255)}function HZ(e){return zZ(RZ(e/2.55)/100,0,1)}function UZ(e){return zZ(RZ(e*100),0,100)}var WZ={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},GZ=[...`0123456789ABCDEF`],vDe=e=>GZ[e&15],yDe=e=>GZ[(e&240)>>4]+GZ[e&15],KZ=e=>(e&240)>>4==(e&15),bDe=e=>KZ(e.r)&&KZ(e.g)&&KZ(e.b)&&KZ(e.a);function xDe(e){var t=e.length,n;return e[0]===`#`&&(t===4||t===5?n={r:255&WZ[e[1]]*17,g:255&WZ[e[2]]*17,b:255&WZ[e[3]]*17,a:t===5?WZ[e[4]]*17:255}:(t===7||t===9)&&(n={r:WZ[e[1]]<<4|WZ[e[2]],g:WZ[e[3]]<<4|WZ[e[4]],b:WZ[e[5]]<<4|WZ[e[6]],a:t===9?WZ[e[7]]<<4|WZ[e[8]]:255})),n}var SDe=(e,t)=>e<255?t(e):``;function CDe(e){var t=bDe(e)?vDe:yDe;return e?`#`+t(e.r)+t(e.g)+t(e.b)+SDe(e.a,t):void 0}var wDe=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function qZ(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 TDe(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 EDe(e,t,n){let r=qZ(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 DDe(e,t,n,r,i){return e===i?(t-n)/r+(t.5?l/(2-i-a):l/(i+a),s=DDe(t,n,r,l,i),s=s*60+.5),[s|0,c||0,o]}function YZ(e,t,n,r){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,r)).map(VZ)}function XZ(e,t,n){return YZ(qZ,e,t,n)}function ODe(e,t,n){return YZ(EDe,e,t,n)}function kDe(e,t,n){return YZ(TDe,e,t,n)}function ZZ(e){return(e%360+360)%360}function ADe(e){let t=wDe.exec(e),n=255,r;if(!t)return;t[5]!==r&&(n=t[6]?BZ(+t[5]):VZ(+t[5]));let i=ZZ(+t[2]),a=t[3]/100,o=t[4]/100;return r=t[1]===`hwb`?ODe(i,a,o):t[1]===`hsv`?kDe(i,a,o):XZ(i,a,o),{r:r[0],g:r[1],b:r[2],a:n}}function jDe(e,t){var n=JZ(e);n[0]=ZZ(n[0]+t),n=XZ(n),e.r=n[0],e.g=n[1],e.b=n[2]}function MDe(e){if(!e)return;let t=JZ(e),n=t[0],r=UZ(t[1]),i=UZ(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${i}%, ${HZ(e.a)})`:`hsl(${n}, ${r}%, ${i}%)`}var QZ={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`},$Z={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 NDe(){let e={},t=Object.keys($Z),n=Object.keys(QZ),r,i,a,o,s;for(r=0;r>16&255,a>>8&255,a&255]}return e}var eQ;function PDe(e){eQ||(eQ=NDe(),eQ.transparent=[0,0,0,0]);let t=eQ[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var FDe=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function IDe(e){let t=FDe.exec(e),n=255,r,i,a;if(t){if(t[7]!==r){let e=+t[7];n=t[8]?BZ(e):zZ(e*255,0,255)}return r=+t[1],i=+t[3],a=+t[5],r=255&(t[2]?BZ(r):zZ(r,0,255)),i=255&(t[4]?BZ(i):zZ(i,0,255)),a=255&(t[6]?BZ(a):zZ(a,0,255)),{r,g:i,b:a,a:n}}}function LDe(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${HZ(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}var tQ=e=>e<=.0031308?e*12.92:e**(1/2.4)*1.055-.055,nQ=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function RDe(e,t,n){let r=nQ(HZ(e.r)),i=nQ(HZ(e.g)),a=nQ(HZ(e.b));return{r:VZ(tQ(r+n*(nQ(HZ(t.r))-r))),g:VZ(tQ(i+n*(nQ(HZ(t.g))-i))),b:VZ(tQ(a+n*(nQ(HZ(t.b))-a))),a:e.a+n*(t.a-e.a)}}function rQ(e,t,n){if(e){let r=JZ(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,t===0?360:1)),r=XZ(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function iQ(e,t){return e&&Object.assign(t||{},e)}function aQ(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=VZ(e[3]))):(t=iQ(e,{r:0,g:0,b:0,a:1}),t.a=VZ(t.a)),t}function zDe(e){return e.charAt(0)===`r`?IDe(e):ADe(e)}var oQ=class e{constructor(t){if(t instanceof e)return t;let n=typeof t,r;n===`object`?r=aQ(t):n===`string`&&(r=xDe(t)||PDe(t)||zDe(t)),this._rgb=r,this._valid=!!r}get valid(){return this._valid}get rgb(){var e=iQ(this._rgb);return e&&(e.a=HZ(e.a)),e}set rgb(e){this._rgb=aQ(e)}rgbString(){return this._valid?LDe(this._rgb):void 0}hexString(){return this._valid?CDe(this._rgb):void 0}hslString(){return this._valid?MDe(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=RDe(this._rgb,e._rgb,t)),this}clone(){return new e(this.rgb)}alpha(e){return this._rgb.a=VZ(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=RZ(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 rQ(this._rgb,2,e),this}darken(e){return rQ(this._rgb,2,-e),this}saturate(e){return rQ(this._rgb,1,e),this}desaturate(e){return rQ(this._rgb,1,-e),this}rotate(e){return jDe(this._rgb,e),this}};function sQ(){}var BDe=(()=>{let e=0;return()=>e++})();function cQ(e){return e==null}function lQ(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 uQ(e){return e!==null&&Object.prototype.toString.call(e)===`[object Object]`}function dQ(e){return(typeof e==`number`||e instanceof Number)&&isFinite(+e)}function fQ(e,t){return dQ(e)?e:t}function pQ(e,t){return e===void 0?t:e}var VDe=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100:+e/t,mQ=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100*t:+e;function hQ(e,t,n){if(e&&typeof e.call==`function`)return e.apply(n,t)}function gQ(e,t,n,r){let i,a,o;if(lQ(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 WDe(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 GDe(e){let t=WDe(e);return e=>{for(let n of t){if(n===``)break;e&&=e[n]}return e}}function CQ(e,t){return(SQ[t]||(SQ[t]=GDe(t)))(e)}function wQ(e){return e.charAt(0).toUpperCase()+e.slice(1)}var TQ=e=>e!==void 0,EQ=e=>typeof e==`function`,DQ=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0};function KDe(e){return e.type===`mouseup`||e.type===`click`||e.type===`contextmenu`}var OQ=Math.PI,kQ=2*OQ,qDe=kQ+OQ,AQ=1/0,JDe=OQ/180,jQ=OQ/2,MQ=OQ/4,NQ=OQ*2/3,PQ=Math.log10,FQ=Math.sign;function IQ(e,t,n){return Math.abs(e-t)e-t).pop(),t}function XDe(e){return typeof e==`symbol`||typeof e==`object`&&!!e&&!(Symbol.toPrimitive in e||`toString`in e||`valueOf`in e)}function RQ(e){return!XDe(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function ZDe(e,t){let n=Math.round(e);return n-t<=e&&n+t>=e}function zQ(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 YQ(e,t,n){n||=(n=>e[n]1;)a=i+r>>1,n(a)?i=a:r=a;return{lo:i,hi:r}}var XQ=(e,t,n,r)=>YQ(e,n,r?r=>{let i=e[r][t];return ie[r][t]YQ(e,n,r=>e[r][t]>=n);function tOe(e,t,n){let r=0,i=e.length;for(;rr&&e[i-1]>n;)i--;return r>0||i{let n=`_onData`+wQ(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 QQ(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)&&(ZQ.forEach(t=>{delete e[t]}),delete e._chartjs)}function $Q(e){let t=new Set(e);return t.size===e.length?e:Array.from(t)}var e$=function(){return typeof window>`u`?function(e){return e()}:window.requestAnimationFrame}();function t$(e,t){let n=[],r=!1;return function(...i){n=i,r||(r=!0,e$.call(window,()=>{r=!1,e.apply(t,n)}))}}function rOe(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}var n$=e=>e===`start`?`left`:e===`end`?`right`:`center`,r$=(e,t,n)=>e===`start`?t:e===`end`?n:(t+n)/2,iOe=(e,t,n,r)=>e===(r?`left`:`right`)?n:e===`center`?(t+n)/2:t;function i$(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(XQ(c,u,d).lo,n?r:XQ(t,u,o.getPixelForValue(d)).lo),l){let e=c.slice(0,i+1).reverse().findIndex(e=>!cQ(e[s.axis]));i-=Math.max(0,e)}i=qQ(i,0,r-1)}if(m){let e=Math.max(XQ(c,o.axis,f,!0).hi+1,n?0:XQ(t,u,o.getPixelForValue(f),!0).hi+1);if(l){let t=c.slice(e-1).findIndex(e=>!cQ(e[s.axis]));e+=Math.max(0,t)}a=qQ(e,i,r)-i}else a=r-i}return{start:i,count:a}}function a$(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 o$=e=>e===0||e===1,s$=(e,t,n)=>-(2**(10*--e)*Math.sin((e-t)*kQ/n)),c$=(e,t,n)=>2**(-10*e)*Math.sin((e-t)*kQ/n)+1,l$={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*jQ)+1,easeOutSine:e=>Math.sin(e*jQ),easeInOutSine:e=>-.5*(Math.cos(OQ*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:-(2**(-10*e))+1,easeInOutExpo:e=>o$(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=>o$(e)?e:s$(e,.075,.3),easeOutElastic:e=>o$(e)?e:c$(e,.075,.3),easeInOutElastic(e){let t=.1125,n=.45;return o$(e)?e:e<.5?.5*s$(e*2,t,n):.5+.5*c$(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-l$.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?l$.easeInBounce(e*2)*.5:l$.easeOutBounce(e*2-1)*.5+.5};function u$(e){if(e&&typeof e==`object`){let t=e.toString();return t===`[object CanvasPattern]`||t===`[object CanvasGradient]`}return!1}function d$(e){return u$(e)?e:new oQ(e)}function f$(e){return u$(e)?e:new oQ(e).saturate(.5).darken(.1).hexString()}var aOe=[`x`,`y`,`borderWidth`,`radius`,`tension`],oOe=[`color`,`borderColor`,`backgroundColor`];function sOe(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:oOe},numbers:{type:`number`,properties:aOe}}),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 cOe(e){e.set(`layout`,{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}var p$=new Map;function lOe(e,t){t||={};let n=e+JSON.stringify(t),r=p$.get(n);return r||(r=new Intl.NumberFormat(e,t),p$.set(n,r)),r}function m$(e,t,n){return lOe(t,n).format(e)}var h$={values(e){return lQ(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=uOe(e,n)}let o=PQ(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),m$(e,r,c)},logarithmic(e,t,n){if(e===0)return`0`;let r=n[t].significand||e/10**Math.floor(PQ(e));return[1,2,3,5,10,15].includes(r)||t>.8*n.length?h$.numeric.call(this,e,t,n):``}};function uOe(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 g$={formatters:h$};function dOe(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:g$.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 _$=Object.create(null),v$=Object.create(null);function y$(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)=>f$(t.backgroundColor),this.hoverBorderColor=(e,t)=>f$(t.borderColor),this.hoverColor=(e,t)=>f$(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 b$(this,e,t)}get(e){return y$(this,e)}describe(e,t){return b$(v$,e,t)}override(e,t){return b$(_$,e,t)}route(e,t,n,r){let i=y$(this,e),a=y$(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 uQ(e)?Object.assign({},t,e):pQ(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}},[sOe,cOe,dOe]);function fOe(e){return!e||cQ(e.size)||cQ(e.family)?null:(e.style?e.style+` `:``)+(e.weight?e.weight+` `:``)+e.size+`px `+e.family}function S$(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 pOe(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 D$(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,gOe(e,a),c=0;c+e||0;function M$(e,t){let n={},r=uQ(t),i=r?Object.keys(t):t,a=uQ(e)?r?n=>pQ(e[n],e[t[n]]):t=>e[t]:()=>e;for(let e of i)n[e]=SOe(a(e));return n}function N$(e){return M$(e,{top:`y`,right:`x`,bottom:`y`,left:`x`})}function P$(e){return M$(e,[`topLeft`,`topRight`,`bottomLeft`,`bottomRight`])}function F$(e){let t=N$(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function I$(e,t){e||={},t||=x$.font;let n=pQ(e.size,t.size);typeof n==`string`&&(n=parseInt(n,10));let r=pQ(e.style,t.style);r&&!(``+r).match(bOe)&&(console.warn(`Invalid font style specified: "`+r+`"`),r=void 0);let i={family:pQ(e.family,t.family),lineHeight:xOe(pQ(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:pQ(e.weight,t.weight),string:``};return i.string=fOe(i),i}function L$(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 R$(e,t){return Object.assign(Object.create(e),t)}function z$(e,t=[``],n,r,i=()=>e[0]){let a=n||e;return r===void 0&&(r=q$(`_fallback`,e)),new Proxy({[Symbol.toStringTag]:`Object`,_cacheable:!0,_scopes:e,_rootScopes:a,_fallback:r,_getTarget:i,override:n=>z$([n,...e],t,a,r)},{deleteProperty(t,n){return delete t[n],delete t._keys,delete e[0][n],!0},get(n,r){return U$(n,r,()=>jOe(r,t,e,n))},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(e._scopes[0],t)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(e,t){return J$(e).includes(t)},ownKeys(e){return J$(e)},set(e,t,n){let r=e._storage||=i();return e[t]=r[t]=n,delete e._keys,!0}})}function B$(e,t,n,r){let i={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:V$(e,r),setContext:t=>B$(e,t,n,r),override:i=>B$(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 U$(e,t,()=>TOe(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 V$(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:EQ(n)?n:()=>n,isIndexable:EQ(r)?r:()=>r}}var wOe=(e,t)=>e?e+wQ(t):t,H$=(e,t)=>uQ(t)&&e!==`adapters`&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function U$(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t===`constructor`)return e[t];let r=n();return e[t]=r,r}function TOe(e,t,n){let{_proxy:r,_context:i,_subProxy:a,_descriptors:o}=e,s=r[t];return EQ(s)&&o.isScriptable(t)&&(s=EOe(t,s,e,n)),lQ(s)&&s.length&&(s=DOe(t,s,e,o.isIndexable)),H$(t,s)&&(s=B$(s,i,a&&a[t],o)),s}function EOe(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),H$(e,c)&&(c=G$(i._scopes,i,e,c)),c}function DOe(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(uQ(t[0])){let n=t,r=i._scopes.filter(e=>e!==n);t=[];for(let c of n){let n=G$(r,i,e,c);t.push(B$(n,a,o&&o[e],s))}}return t}function W$(e,t,n){return EQ(e)?e(t,n):e}var OOe=(e,t)=>e===!0?t:typeof e==`string`?CQ(t,e):void 0;function kOe(e,t,n,r,i){for(let a of t){let t=OOe(n,a);if(t){e.add(t);let a=W$(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 G$(e,t,n,r){let i=t._rootScopes,a=W$(t._fallback,n,r),o=[...e,...i],s=new Set;s.add(r);let c=K$(s,o,n,a||n,r);return c===null||a!==void 0&&a!==n&&(c=K$(s,o,a,c,r),c===null)?!1:z$(Array.from(s),[``],i,a,()=>AOe(t,n,r))}function K$(e,t,n,r,i){for(;n;)n=kOe(e,t,n,r,i);return n}function AOe(e,t,n){let r=e._getTarget();t in r||(r[t]={});let i=r[t];return lQ(i)&&uQ(n)?n:i||{}}function jOe(e,t,n,r){let i;for(let a of t)if(i=q$(wOe(a,e),n),i!==void 0)return H$(e,i)?G$(n,r,e,i):i}function q$(e,t){for(let n of t){if(!n)continue;let t=n[e];if(t!==void 0)return t}}function J$(e){let t=e._keys;return t||=e._keys=MOe(e._scopes),t}function MOe(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 Y$(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 POe(e,t,n,r){let i=e.skip?t:e,a=t,o=n.skip?t:n,s=WQ(a,i),c=WQ(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 FOe(e,t,n){let r=e.length,i,a,o,s,c,l=X$(e,0);for(let u=0;u!e.skip)),t.cubicInterpolationMode===`monotone`)LOe(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 BOe(e,t){return n1(e).getPropertyValue(t)}var VOe=[`top`,`right`,`bottom`,`left`];function r1(e,t,n){let r={};n=n?`-`+n:``;for(let i=0;i<4;i++){let a=VOe[i];r[a]=parseFloat(e[t+`-`+a+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}var HOe=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function UOe(e,t){let n=e.touches,r=n&&n.length?n[0]:e,{offsetX:i,offsetY:a}=r,o=!1,s,c;if(HOe(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 i1(e,t){if(`native`in e)return e;let{canvas:n,currentDevicePixelRatio:r}=t,i=n1(n),a=i.boxSizing===`border-box`,o=r1(i,`padding`),s=r1(i,`border`,`width`),{x:c,y:l,box:u}=UOe(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 WOe(e,t,n){let r,i;if(t===void 0||n===void 0){let a=e&&e1(e);if(!a)t=e.clientWidth,n=e.clientHeight;else{let e=a.getBoundingClientRect(),o=n1(a),s=r1(o,`border`,`width`),c=r1(o,`padding`);t=e.width-c.width-s.width,n=e.height-c.height-s.height,r=t1(o.maxWidth,a,`clientWidth`),i=t1(o.maxHeight,a,`clientHeight`)}}return{width:t,height:n,maxWidth:r||AQ,maxHeight:i||AQ}}var a1=e=>Math.round(e*10)/10;function GOe(e,t,n,r){let i=n1(e),a=r1(i,`margin`),o=t1(i.maxWidth,e,`clientWidth`)||AQ,s=t1(i.maxHeight,e,`clientHeight`)||AQ,c=WOe(e,t,n),{width:l,height:u}=c;if(i.boxSizing===`content-box`){let e=r1(i,`border`,`width`),t=r1(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=a1(Math.min(l,o,c.maxWidth)),u=a1(Math.min(u,s,c.maxHeight)),l&&!u&&(u=a1(l/2)),(t!==void 0||n!==void 0)&&r&&c.height&&u>c.height&&(u=c.height,l=a1(Math.floor(u*r))),{width:l,height:u}}function o1(e,t,n){let r=t||1,i=a1(e.height*r),a=a1(e.width*r);e.height=a1(e.height),e.width=a1(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 KOe=function(){let e=!1;try{let t={get passive(){return e=!0,!1}};$$()&&(window.addEventListener(`test`,null,t),window.removeEventListener(`test`,null,t))}catch{}return e}();function s1(e,t){let n=BOe(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function c1(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 JOe(e,t,n,r){let i={x:e.cp2x,y:e.cp2y},a={x:t.cp1x,y:t.cp1y},o=c1(e,i,n),s=c1(i,a,n),c=c1(a,t,n);return c1(c1(o,s,n),c1(s,c,n),n)}var YOe=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}}},XOe=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function l1(e,t,n){return e?YOe(t,n):XOe()}function u1(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 d1(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty(`direction`,t[0],t[1]))}function f1(e){return e===`angle`?{between:KQ,compare:QDe,normalize:GQ}:{between:JQ,compare:(e,t)=>e-t,normalize:e=>e}}function p1({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 ZOe(e,t,n){let{property:r,start:i,end:a}=n,{between:o,normalize:s}=f1(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(p1({start:g,end:e,loop:f,count:o,style:p})),g=null),n=e,y=_));return g!==null&&m.push(p1({start:g,end:d,loop:f,count:o,style:p})),m}function h1(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 $Oe(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 eke(e,t){let n=e.points,r=e.options.spanGaps,i=n.length;if(!i)return[];let a=!!e._loop,{start:o,end:s}=QOe(n,i,a,r);return r===!0?g1(e,[{start:o,end:s,loop:a}],n,t):g1(e,$Oe(n,o,sr({chart:e,initial:t.initial,numSteps:a,currentStep:Math.min(n-t.start,a)}))}_refresh(){this._request||=(this._running=!0,e$.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)}},x1=`transparent`,ike={boolean(e,t,n){return n>.5?t:e},color(e,t,n){let r=d$(e||x1),i=r.valid&&d$(t||x1);return i&&i.valid?i.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}},ake=class{constructor(e,t,n,r){let i=t[n];r=L$([e.to,r,i,e.from]);let a=L$([e.from,i,r]);this._active=!0,this._fn=e.fn||ike[e.type||typeof a],this._easing=l$[e.easing]||l$.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=L$([e.to,t,r,e.from]),this._from=L$([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(!uQ(i))return;let a={};for(let e of t)a[e]=i[e];(lQ(i.properties)&&i.properties||[r]).forEach(e=>{(e===r||!n.has(e))&&n.set(e,a)})})}_animateOptions(e,t){let n=t.options,r=ske(e,n);if(!r)return[];let i=this._createAnimations(r,n);return n.$shared&&oke(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 ake(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 b1.add(this._chart,n),!0}};function oke(e,t){let n=[],r=Object.keys(t);for(let t=0;t0||!n&&t<0)return i.index}return null}function O1(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=dke(a,o,r),d=t.length,f;for(let e=0;en[e].axis===t).shift()}function mke(e,t){return R$(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:`default`,type:`dataset`})}function hke(e,t,n){return R$(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:`default`,type:`data`})}function A1(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 j1=e=>e===`reset`||e===`none`,M1=(e,t)=>t?e:Object.assign({},e),gke=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:w1(n,!0),values:null},N1=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=E1(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&&A1(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=pQ(n.xAxisID,k1(e,`x`)),a=t.yAxisID=pQ(n.yAxisID,k1(e,`y`)),o=t.rAxisID=pQ(n.rAxisID,k1(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&&QQ(this._data,this),e._stacked&&A1(e)}_dataCheck(){let e=this.getDataset(),t=e.data||=[],n=this._data;if(uQ(t)){let e=this._cachedMeta;this._data=uke(t,e)}else if(n!==t){if(n){QQ(n,this);let e=this._cachedMeta;A1(e),e._parsed=[]}t&&Object.isExtensible(t)&&nOe(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=E1(t.vScale,t),t.stack!==n.stack&&(r=!0,A1(t),t.stack=n.stack),this._resyncElements(e),(r||i!==t._stacked)&&(O1(this,t._parsed),t._stacked=E1(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=lQ(r[e])?this.parseArrayData(n,r,e,t):uQ(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(M1(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 S1(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||j1(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){j1(r)?Object.assign(e,n):this._resolveAnimations(t,r).update(e,n)}updateSharedOptions(e,t,n){e&&!j1(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 vke(e){let t=e.iScale,n=_ke(t,e.type),r=t._length,i,a,o,s,c=()=>{o===32767||o===-32768||(TQ(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 P1(e,t,n,r){return lQ(e)?xke(e,t,n,r):t[n.axis]=n.parse(e,r),t}function F1(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):FQ(e)}function Cke(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(cQ(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[pQ(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;dKQ(e,s,c,!0)?1:Math.max(t,t*n,r,r*n),m=(e,t,r)=>KQ(e,s,c,!0)?-1:Math.min(t,t*n,r,r*n),h=p(0,l,d),g=p(jQ,u,f),_=m(OQ,l,d),v=m(OQ+jQ,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 z1=class extends N1{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(uQ(n[e])){let{key:e=`value`}=this._parsing;i=t=>+CQ(n[t],e)}let a,o;for(a=e,o=e+t;a0&&!isNaN(e)?Math.abs(e)/t*kQ:0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=m$(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=cQ(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()}},B1=class extends N1{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=m$(t._parsed[e].r,n.options.locale);return{label:r[e]||``,value:i}}parseObjectData(e,t,n,r){return Y$.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*OQ,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)?BQ(this.resolveDataElementOptions(e,t).angle||n):0}},jke=Object.freeze({__proto__:null,BarController:Dke,BubbleController:Oke,DoughnutController:z1,LineController:Ake,PieController:class extends z1{static id=`pie`;static defaults={cutout:0,rotation:0,circumference:360,radius:`100%`}},PolarAreaController:B1,RadarController:class extends N1{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 Y$.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 V1(){throw Error(`This method is not implemented: Check that a complete date adapter is provided.`)}var Mke={_date:class e{static override(t){Object.assign(e.prototype,t)}options;constructor(e){this.options=e||{}}init(){}formats(){return V1()}parse(){return V1()}format(){return V1()}add(){return V1()}diff(){return V1()}startOf(){return V1()}endOf(){return V1()}}};function Nke(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?eOe:XQ;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=>!cQ(e[t.axis]));r.lo-=Math.max(0,a);let o=n.slice(r.hi).findIndex(e=>!cQ(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 H1(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 Lke={evaluateInteractionItems:H1,modes:{index(e,t,n,r){let i=i1(t,e),a=n.axis||`x`,o=n.includeInvisible||!1,s=n.intersect?U1(e,i,a,r,o):W1(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=i1(t,e),a=n.axis||`xy`,o=n.includeInvisible||!1,s=n.intersect?U1(e,i,a,r,o):W1(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 J1(e,t){return e.filter(e=>K1.indexOf(e.pos)===-1&&e.box.axis===t)}function Y1(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 Rke(e){let t=[],n,r,i,a,o,s;for(n=0,r=(e||[]).length;ne.box.fullSize),!0),r=Y1(q1(t,`left`),!0),i=Y1(q1(t,`right`)),a=Y1(q1(t,`top`),!0),o=Y1(q1(t,`bottom`)),s=J1(t,`x`),c=J1(t,`y`);return{fullSize:n,leftAndTop:r.concat(a),rightAndBottom:i.concat(c).concat(o).concat(s),chartArea:q1(t,`chartArea`),vertical:r.concat(i).concat(c),horizontal:a.concat(o).concat(s)}}function X1(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function Z1(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 Hke(e,t,n,r){let{pos:i,box:a}=n,o=e.maxPadding;if(!uQ(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&&Z1(o,a.getPadding());let s=Math.max(0,t.outerWidth-X1(o,e,`left`,`right`)),c=Math.max(0,t.outerHeight-X1(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 Uke(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 Wke(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 Q1(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);Z1(f,F$(r));let p=Object.assign({maxPadding:f,w:a,h:o,x:i.left,y:i.top},i),m=Bke(c.concat(l),d);Q1(s.fullSize,p,d,m),Q1(c,p,d,m),Q1(l,p,d,m)&&Q1(c,p,d,m),Uke(p),e0(s.leftAndTop,p,d,m),p.x+=p.w,p.y+=p.h,e0(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},gQ(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})})}},n0=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){}},Gke=class extends n0{acquireContext(e){return e&&e.getContext&&e.getContext(`2d`)||null}updateConfig(e){e.options.animation=!1}},r0=`$chartjs`,Kke={touchstart:`mousedown`,touchmove:`mousemove`,touchend:`mouseup`,pointerenter:`mouseenter`,pointerdown:`mousedown`,pointermove:`mousemove`,pointerup:`mouseup`,pointerleave:`mouseout`,pointerout:`mouseout`},i0=e=>e===null||e===``;function qke(e,t){let n=e.style,r=e.getAttribute(`height`),i=e.getAttribute(`width`);if(e[r0]={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`,i0(i)){let t=s1(e,`width`);t!==void 0&&(e.width=t)}if(i0(r))if(e.style.height===``)e.height=e.width/(t||2);else{let t=s1(e,`height`);t!==void 0&&(e.height=t)}return e}var a0=KOe?{passive:!0}:!1;function Jke(e,t,n){e&&e.addEventListener(t,n,a0)}function Yke(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,a0)}function Xke(e,t){let n=Kke[e.type]||e.type,{x:r,y:i}=i1(e,t);return{type:n,chart:t,native:e,x:r===void 0?null:r,y:i===void 0?null:i}}function o0(e,t){for(let n of e)if(n===t||n.contains(t))return!0}function Zke(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=o0(n.addedNodes,r),t&&=!o0(n.removedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}function Qke(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=o0(n.removedNodes,r),t&&=!o0(n.addedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}var s0=new Map,c0=0;function l0(){let e=window.devicePixelRatio;e!==c0&&(c0=e,s0.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function $ke(e,t){s0.size||window.addEventListener(`resize`,l0),s0.set(e,t)}function eAe(e){s0.delete(e),s0.size||window.removeEventListener(`resize`,l0)}function tAe(e,t,n){let r=e.canvas,i=r&&e1(r);if(!i)return;let a=t$((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),$ke(e,a),o}function u0(e,t,n){n&&n.disconnect(),t===`resize`&&eAe(e)}function nAe(e,t,n){let r=e.canvas,i=t$(t=>{e.ctx!==null&&n(Xke(t,e))},e);return Jke(r,t,i),i}var rAe=class extends n0{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[r0])return!1;let n=t[r0].initial;[`height`,`width`].forEach(e=>{let r=n[e];cQ(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[r0],!0}addEventListener(e,t,n){this.removeEventListener(e,t);let r=e.$proxies||={};r[t]=({attach:Zke,detach:Qke,resize:tAe}[t]||nAe)(e,t,n)}removeEventListener(e,t){let n=e.$proxies||={},r=n[t];r&&(({attach:u0,detach:u0,resize:u0}[t]||Yke)(e,t,r),n[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,n,r){return GOe(e,t,n,r)}isAttached(e){let t=e&&e1(e);return!!(t&&t.isConnected)}};function iAe(e){return!$$()||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas?Gke:rAe}var d0=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 RQ(this.x)&&RQ(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 aAe(e,t){let n=e.options.ticks,r=oAe(e),i=Math.min(n.maxTicksLimit||r,r),a=n.major.enabled?cAe(t):[],o=a.length,s=a[0],c=a[o-1],l=[];if(o>i)return lAe(t,l,a,o/i),l;let u=sAe(a,t,i);if(o>0){let e,n,r=o>1?Math.round((c-s)/(o-1)):null;for(f0(t,l,u,cQ(r)?0:s-r,s),e=0,n=o-1;ei)return t}return Math.max(i,1)}function cAe(e){let t=[],n,r;for(n=0,r=e.length;ne===`left`?`right`:e===`right`?`left`:e,p0=(e,t,n)=>t===`top`||t===`left`?e[t]+n:e[t]-n,m0=(e,t)=>Math.min(t||e,e);function h0(e,t){let n=[],r=e.length/t,i=e.length,a=0;for(;ao+s)))return c}function pAe(e,t){gQ(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:fQ(t,fQ(n,t)),max:fQ(n,fQ(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(){hQ(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=COe(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=qQ(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-g0(e.grid)-t.padding-_0(e.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),a=VQ(Math.min(Math.asin(qQ((l.highest.height+6)/o,-1,1)),Math.asin(qQ(s/c,-1,1))-Math.asin(qQ(d/c,-1,1)))),a=Math.max(r,Math.min(i,a))),this.labelRotation=a}afterCalculateLabelRotation(){hQ(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){hQ(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=_0(r,t.options.font);if(o?(e.width=this.maxWidth,e.height=g0(i)+a):(e.height=this.maxHeight,e.width=g0(i)+a),n.display&&this.ticks.length){let{first:t,last:r,widest:i,highest:a}=this._getLabelSizes(),s=n.padding*2,c=BQ(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(){hQ(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 $De(this._alignToPixels?C$(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=g0(i),d=[],f=o.setContext(this.getContext()),p=f.display?f.width:0,m=p/2,h=function(e){return C$(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(uQ(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(uQ(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=pQ(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(-BQ(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(`.`);x$.route(a,i,c,s)})}function bAe(e){return`id`in e&&`defaults`in e}var b0=new class{constructor(){this.controllers=new y0(N1,`datasets`,!0),this.elements=new y0(d0,`elements`),this.plugins=new y0(Object,`plugins`),this.scales=new y0(v0,`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):gQ(t,t=>{let r=n||this._getRegistryForType(t);this._exec(e,r,t)})})}_exec(e,t,n){let r=wQ(e);hQ(n[`before`+r],[],n),t[e](n),hQ(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 SAe(e){let t={},n=[],r=Object.keys(b0.plugins.items);for(let e=0;e1&&S0(e[0].toLowerCase());if(t)return t}throw Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function w0(e,t,n){if(n[t+`AxisID`]===e)return{axis:t}}function kAe(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 w0(e,`x`,n[0])||w0(e,`y`,n[0])}return{}}function AAe(e,t){let n=_$[e.type]||{scales:{}},r=t.scales||{},i=x0(e.type,t),a=Object.create(null);return Object.keys(r).forEach(t=>{let o=r[t];if(!uQ(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=C0(t,o,kAe(t,e),x$.scales[o.type]),c=DAe(s,i),l=n.scales||{};a[t]=xQ(Object.create(null),[{axis:s},o,l[s],l[c]])}),e.data.datasets.forEach(n=>{let i=n.type||e.type,o=n.indexAxis||x0(i,t),s=(_$[i]||{}).scales||{};Object.keys(s).forEach(e=>{let t=EAe(e,o),i=n[t+`AxisID`]||t;a[i]=a[i]||Object.create(null),xQ(a[i],[{axis:t},r[i],s[e]])})}),Object.keys(a).forEach(e=>{let t=a[e];xQ(t,[x$.scales[t.type],x$.scale])}),a}function T0(e){let t=e.options||={};t.plugins=pQ(t.plugins,{}),t.scales=AAe(e,t)}function E0(e){return e||={},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function jAe(e){return e||={},e.data=E0(e.data),T0(e),e}var D0=new Map,O0=new Set;function k0(e,t){let n=D0.get(e);return n||(n=t(),D0.set(e,n),O0.add(n)),n}var A0=(e,t,n)=>{let r=CQ(t,n);r!==void 0&&e.add(r)},MAe=class{constructor(e){this._config=jAe(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=E0(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(),T0(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return k0(e,()=>[[`datasets.${e}`,``]])}datasetAnimationScopeKeys(e,t){return k0(`${e}.transition.${t}`,()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,``]])}datasetElementScopeKeys(e,t){return k0(`${e}-${t}`,()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,``]])}pluginScopeKeys(e){let t=e.id,n=this.type;return k0(`${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=>A0(s,e,t))),t.forEach(e=>A0(s,r,e)),t.forEach(e=>A0(s,_$[i]||{},e)),t.forEach(e=>A0(s,x$,e)),t.forEach(e=>A0(s,v$,e))});let c=Array.from(s);return c.length===0&&c.push(Object.create(null)),O0.has(t)&&a.set(t,c),c}chartOptionScopes(){let{options:e,type:t}=this;return[e,_$[t]||{},x$.datasets[t]||{},{type:t},x$,v$]}resolveNamedOptions(e,t,n,r=[``]){let i={$shared:!0},{resolver:a,subPrefixes:o}=j0(this._resolverCache,e,r),s=a;if(PAe(a,t)){i.$shared=!1,n=EQ(n)?n():n;let t=this.createResolver(e,n,o);s=B$(a,n,t)}for(let e of t)i[e]=s[e];return i}createResolver(e,t,n=[``],r){let{resolver:i}=j0(this._resolverCache,e,n);return uQ(t)?B$(i,t,void 0,r):i}};function j0(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:z$(t,n),subPrefixes:n.filter(e=>!e.toLowerCase().includes(`hover`))},r.set(i,a)),a}var NAe=e=>uQ(e)&&Object.getOwnPropertyNames(e).some(t=>EQ(e[t]));function PAe(e,t){let{isScriptable:n,isIndexable:r}=V$(e);for(let i of t){let t=n(i),a=r(i),o=(a||t)&&e[i];if(t&&(EQ(o)||NAe(o))||a&&lQ(o))return!0}return!1}var FAe=`4.5.1`,IAe=[`top`,`bottom`,`left`,`right`,`chartArea`];function M0(e,t){return e===`top`||e===`bottom`||IAe.indexOf(e)===-1&&t===`x`}function N0(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function P0(e){let t=e.chart,n=t.options.animation;t.notifyPlugins(`afterRender`),hQ(n&&n.onComplete,[e],t)}function LAe(e){let t=e.chart,n=t.options.animation;hQ(n&&n.onProgress,[e],t)}function F0(e){return $$()&&typeof e==`string`?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}var I0={},L0=e=>{let t=F0(e);return Object.values(I0).filter(e=>e.canvas===t).pop()};function RAe(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 zAe(e,t,n,r){return!n||e.type===`mouseout`?null:r?t:e}var R0=class{static defaults=x$;static instances=I0;static overrides=_$;static registry=b0;static version=FAe;static getChart=L0;static register(...e){b0.add(...e),z0()}static unregister(...e){b0.remove(...e),z0()}constructor(e,t){let n=this.config=new MAe(t),r=F0(e),i=L0(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||(iAe(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=BDe(),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 xAe,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=rOe(e=>this.update(e),a.resizeDelay||0),this._dataChanges=[],I0[this.id]=this,!o||!s){console.error(`Failed to create chart: can't acquire context from the given item`);return}b1.listen(this,`complete`,P0),b1.listen(this,`progress`,LAe),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:e,maintainAspectRatio:t},width:n,height:r,_aspectRatio:i}=this;return cQ(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 b0}_initialize(){return this.notifyPlugins(`beforeInit`),this.options.responsive?this.resize():o1(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(`afterInit`),this}clear(){return w$(this.canvas,this.ctx),this}stop(){return b1.stop(this),this}resize(e,t){b1.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,o1(this,o,!0)&&(this.notifyPlugins(`resize`,{size:a}),hQ(n.onResize,[this,a],this),this.attached&&this._doResize(s)&&this.render())}ensureScalesHaveIDs(){gQ(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=C0(e,n),i=r===`r`,a=r===`x`;return{options:n,dposition:i?`chartArea`:a?`bottom`:`left`,dtype:i?`radialLinear`:a?`category`:`linear`}}))),gQ(i,t=>{let i=t.options,a=i.id,o=C0(a,i),s=pQ(i.type,t.dtype);(i.position===void 0||M0(i.position,o)!==M0(t.dposition))&&(i.position=t.dposition),r[a]=!0;let c=null;a in n&&n[a].type===s?c=n[a]:(c=new(b0.getScale(s))({id:a,type:s,ctx:this.ctx,chart:this}),n[c.id]=c),c.init(i,e)}),gQ(r,(e,t)=>{e||delete n[t]}),gQ(n,e=>{t0.configure(this,e,e.options),t0.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(N0(`z`,`_idx`));let{_active:o,_lastEvent:s}=this;s?this._eventHandler(s,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){gQ(this.scales,e=>{t0.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let e=this.options;(!DQ(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)RAe(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;t0.update(this,this.width,this.height,e);let t=this.chartArea,n=t.width<=0||t.height<=0;this._layers=[],gQ(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=y1(this,e);this.notifyPlugins(`beforeDatasetDraw`,n)!==!1&&(r&&O$(t,r),e.controller.draw(),r&&k$(t),n.cancelable=!1,this.notifyPlugins(`afterDatasetDraw`,n))}isPointInArea(e){return D$(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,n,r){let i=Lke.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||=R$(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);TQ(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(),b1.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)};gQ(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(){gQ(this._listeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._listeners={},gQ(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}});_Q(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=KDe(e),c=zAe(e,this._lastEvent,n,s);n&&(this._lastEvent=null,hQ(i.onHover,[e,o,this],this),s&&hQ(i.onClick,[e,o,this],this));let l=!_Q(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 z0(){return gQ(R0.instances,e=>e._plugins.invalidate())}function BAe(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,GQ(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,GQ(r-n));e.arc(i,a,s+l/2,n-t/2,r+t/2,!0)}else{let t=Math.min(l/2,o*GQ(r-n));if(u===`round`)e.arc(i,a,t,n-OQ/2,r+OQ/2,!0);else if(u===`bevel`){let o=2*t*t,s=-o*Math.cos(n+OQ/2)+i,c=-o*Math.sin(n+OQ/2)+a,l=o*Math.cos(r+OQ/2)+i,u=o*Math.sin(r+OQ/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 VAe(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+jQ,r-jQ),e.closePath(),e.clip()}function HAe(e){return M$(e,[`outerStart`,`outerEnd`,`innerStart`,`innerEnd`])}function UAe(e,t,n,r){let i=HAe(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 qQ(e,0,Math.min(a,t))};return{outerStart:s(i.outerStart),outerEnd:s(i.outerEnd),innerStart:qQ(i.innerStart,0,o),innerEnd:qQ(i.innerEnd,0,o)}}function B0(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function V0(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/OQ)/d)/2,g=c+h+p,_=i-h-p,{outerStart:v,outerEnd:y,innerStart:b,innerEnd:x}=UAe(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=B0(C,T,o,s);e.arc(t.x,t.y,y,T,_+jQ)}let n=B0(E,_,o,s);if(e.lineTo(n.x,n.y),x>0){let t=B0(E,ne,o,s);e.arc(t.x,t.y,x,_+jQ,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=B0(ee,te,o,s);e.arc(t.x,t.y,b,te+Math.PI,g-jQ)}let i=B0(S,g,o,s);if(e.lineTo(i.x,i.y),v>0){let t=B0(S,w,o,s);e.arc(t.x,t.y,v,g-jQ,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 WAe(e,t,n,r,i){let{fullCircles:a,startAngle:o,circumference:s}=t,c=t.endAngle;if(a){V0(e,t,n,r,c,i);for(let t=0;t=OQ&&p===0&&u!==`miter`&&BAe(e,t,h),a||(V0(e,t,n,r,h,i),e.stroke())}var KAe=class extends d0{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}=UQ(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=pQ(l,o-a),f=KQ(r,a,o)&&a!==o,p=d>=kQ||f,m=JQ(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>kQ?Math.floor(n/kQ):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(OQ,n||0)));e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor,WAe(e,this,s,i,a),GAe(e,this,s,i,a),e.restore()}};function H0(e,t,n=t){e.lineCap=pQ(n.borderCapStyle,t.borderCapStyle),e.setLineDash(pQ(n.borderDash,t.borderDash)),e.lineDashOffset=pQ(n.borderDashOffset,t.borderDashOffset),e.lineJoin=pQ(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=pQ(n.borderWidth,t.borderWidth),e.strokeStyle=pQ(n.borderColor,t.borderColor)}function qAe(e,t,n){e.lineTo(n.x,n.y)}function JAe(e){return e.stepped?mOe:e.tension||e.cubicInterpolationMode===`monotone`?hOe:qAe}function U0(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 W0(e){let t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!==`monotone`&&!t.stepped&&!n?XAe:YAe}function ZAe(e){return e.stepped?qOe:e.tension||e.cubicInterpolationMode===`monotone`?JOe:c1}function QAe(e,t,n,r){let i=t._path;i||(i=t._path=new Path2D,t.path(i,n,r)&&i.closePath()),H0(e,t.options),e.stroke(i)}function $Ae(e,t,n,r){let{segments:i,options:a}=t,o=W0(t);for(let s of i)H0(e,a,s.style),e.beginPath(),o(e,t,s,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}var eje=typeof Path2D==`function`;function tje(e,t,n,r){eje&&!t.options.segment?QAe(e,t,n,r):$Ae(e,t,n,r)}var G0=class extends d0{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;zOe(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||=eke(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=h1(this,{property:t,start:r,end:r});if(!a.length)return;let o=[],s=ZAe(n),c,l;for(c=0,l=a.length;ce.replace(`rgb(`,`rgba(`).replace(`)`,`, 0.5)`));function $0(e){return Z0[e%Z0.length]}function e2(e){return Q0[e%Q0.length]}function lje(e,t){return e.borderColor=$0(t),e.backgroundColor=e2(t),++t}function uje(e,t){return e.backgroundColor=e.data.map(()=>$0(t++)),t}function dje(e,t){return e.backgroundColor=e.data.map(()=>e2(t++)),t}function fje(e){let t=0;return(n,r)=>{let i=e.getDatasetMeta(r).controller;i instanceof z1?t=uje(n,t):i instanceof B1?t=dje(n,t):i&&(t=lje(n,t))}}function t2(e){let t;for(t in e)if(e[t].borderColor||e[t].backgroundColor)return!0;return!1}function pje(e){return e&&(e.borderColor||e.backgroundColor)}function mje(){return x$.borderColor!==`rgba(0,0,0,0.1)`||x$.backgroundColor!==`rgba(0,0,0,0.1)`}var hje={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=t2(r)||pje(i)||a&&t2(a)||mje();if(!n.forceOverride&&o)return;let s=fje(e);r.forEach(s)}};function gje(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 _je(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(!cQ(d)&&!cQ(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 n2(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 r2(e){e.data.datasets.forEach(e=>{n2(e)})}function vje(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=qQ(XQ(t,a.axis,o).lo,0,n-1)),i=l?qQ(XQ(t,a.axis,s).hi+1,r,n)-r:n-r,{start:r,count:i}}var yje={id:`decimation`,defaults:{algorithm:`min-max`,enabled:!1},beforeElementsUpdate:(e,t,n)=>{if(!n.enabled){r2(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(L$([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}=vje(s,c);if(d<=(n.threshold||4*r)){n2(t);return}cQ(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=gje(c,u,d,r,n);break;case`min-max`:f=_je(c,u,d,r);break;default:throw Error(`Unsupported decimation algorithm '${n.algorithm}'`)}t._decimated=f})},destroy(e){r2(e)}};function bje(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=a2(r,s,i);let c=i2(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=h1(t,c);for(let t of l){let r=i2(n,a[t.start],a[t.end],t.loop),s=m1(e,i,r);for(let e of s)o.push({source:e,target:t,start:{[n]:o2(c,r,`start`,Math.max)},end:{[n]:o2(c,r,`end`,Math.min)}})}}return o}function i2(e,t,n,r){if(r)return;let i=t[e],a=n[e];return e===`angle`&&(i=GQ(i),a=GQ(a)),{property:e,start:i,end:a}}function xje(e,t){let{x:n=null,y:r=null}=e||{},i=t.points,a=[];return t.segments.forEach(({start:e,end:t})=>{t=a2(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 a2(e,t,n){for(;t>e;t--){let e=n[t];if(!isNaN(e.x)&&!isNaN(e.y))break}return t}function o2(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function s2(e,t){let n=[],r=!1;return lQ(e)?(r=!0,n=e):n=xje(e,t),n.length?new G0({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function c2(e){return e&&e.fill!==!1}function Sje(e,t,n){let r=e[t].fill,i=[t],a;if(!n)return r;for(;r!==!1&&i.indexOf(r)===-1;){if(!dQ(r))return r;if(a=e[r],!a)return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function Cje(e,t,n){let r=Dje(e);if(uQ(r))return!isNaN(r.value)&&r;let i=parseFloat(r);return dQ(i)&&Math.floor(i)===i?wje(r[0],t,i,n):[`origin`,`start`,`end`,`stack`,`shape`].indexOf(r)>=0&&r}function wje(e,t,n,r){return(e===`-`||e===`+`)&&(n=t+n),n===t||n<0||n>=r?!1:n}function Tje(e,t){let n=null;return e===`start`?n=t.bottom:e===`end`?n=t.top:uQ(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function Eje(e,t,n){let r;return r=e===`start`?n:e===`end`?t.options.reverse?t.min:t.max:uQ(e)?e.value:t.getBaseValue(),r}function Dje(e){let t=e.options,n=t.fill,r=pQ(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?`origin`:r}function Oje(e){let{scale:t,index:n,line:r}=e,i=[],a=r.segments,o=r.points,s=kje(t,n);s.push(s2({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&&u2(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;c2(n)&&u2(e.ctx,n,e.chartArea)}},beforeDatasetDraw(e,t,n){let r=t.meta.$filler;!c2(r)||n.drawTime!==`beforeDatasetDraw`||u2(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:`beforeDatasetDraw`}},h2=(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)}},Bje=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index,g2=class extends d0{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=hQ(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=I$(n.font),i=r.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:s}=h2(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}=Vje(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=l1(i,this.left,this.width);if(this.isHorizontal()){let i=0,o=r$(n,this.left+r,this.right-this.lineWidths[i]);for(let s of t)i!==s.row&&(i=s.row,o=r$(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=r$(n,this.top+e+r,this.bottom-this.columnSizes[i].height);for(let s of t)s.col!==i&&(i=s.col,o=r$(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;O$(e,this),this._draw(),k$(e)}}_draw(){let{options:e,columnSizes:t,lineWidths:n,ctx:r}=this,{align:i,labels:a}=e,o=x$.color,s=l1(e.rtl,this.left,this.width),c=I$(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}=h2(a,u),g=function(e,t,n){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;r.save();let i=pQ(n.lineWidth,1);if(r.fillStyle=pQ(n.fillStyle,o),r.lineCap=pQ(n.lineCap,`butt`),r.lineDashOffset=pQ(n.lineDashOffset,0),r.lineJoin=pQ(n.lineJoin,`miter`),r.lineWidth=i,r.strokeStyle=pQ(n.strokeStyle,o),r.setLineDash(pQ(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;E$(r,o,c,l,a.pointStyleWidth&&p)}else{let a=t+Math.max((u-m)/2,0),o=s.leftForLtr(e,p),c=P$(n.borderRadius);r.beginPath(),Object.values(c).some(e=>e!==0)?j$(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){A$(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:r$(i,this.left+l,this.right-n[0]),y:this.top+l+y,line:0}:{x:this.left+l,y:r$(i,this.top+y+l,this.bottom-t[0].height),line:0},u1(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=r$(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=r$(i,this.top+y+l,this.bottom-t[f.line].height));let w=s.x(S);if(g(w,C,o),S=iOe(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+=_2(o,e)+l}else f.y+=b}),d1(this.ctx,e.textDirection)}drawTitle(){let e=this.options,t=e.title,n=I$(t.font),r=F$(t.padding);if(!t.display)return;let i=l1(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=r$(e.align,u,this.right-d);else{let t=this.columnSizes.reduce((e,t)=>Math.max(e,t.height),0);l=c+r$(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}let f=r$(o,u,u+d);a.textAlign=i.textAlign(n$(o)),a.textBaseline=`middle`,a.strokeStyle=t.color,a.fillStyle=t.color,a.font=n.string,A$(a,t.text,f,l,n)}_computeTitleHeight(){let e=this.options.title,t=I$(e.font),n=F$(e.padding);return e.display?t.lineHeight+n.height:0}_getLegendItemAt(e,t){let n,r,i;if(JQ(e,this.left,this.right)&&JQ(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 Uje(e,t,n){let r=e;return typeof t.text!=`string`&&(r=_2(t,n)),r}function _2(e,t){return t*(e.text?e.text.length:0)}function Wje(e,t){return!!((e===`mousemove`||e===`mouseout`)&&(t.onHover||t.onLeave)||t.onClick&&(e===`click`||e===`mouseup`))}var Gje={id:`legend`,_element:g2,start(e,t,n){let r=e.legend=new g2({ctx:e.ctx,options:n,chart:e});t0.configure(e,r,n),t0.addBox(e,r)},stop(e){t0.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){let r=e.legend;t0.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=F$(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)}}},v2=class extends d0{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=lQ(n.text)?n.text.length:1;this._padding=F$(n.padding);let i=r*I$(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=r$(o,n,i),u=t+e,c=i-n):(a.position===`left`?(l=n+e,u=r$(o,r,t),s=OQ*-.5):(l=i-e,u=r$(o,t,r),s=OQ*.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=I$(t.font),r=n.lineHeight/2+this._padding.top,{titleX:i,titleY:a,maxWidth:o,rotation:s}=this._drawArgs(r);A$(e,t.text,0,0,n,{color:t.color,maxWidth:o,rotation:s,textAlign:n$(t.align),textBaseline:`middle`,translation:[i,a]})}};function Kje(e,t){let n=new v2({ctx:e.ctx,options:t,chart:e});t0.configure(e,n,t),t0.addBox(e,n),e.titleBlock=n}var qje={id:`title`,_element:v2,start(e,t,n){Kje(e,n)},stop(e){let t=e.titleBlock;t0.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){let r=e.titleBlock;t0.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}},y2=new WeakMap,Jje={id:`subtitle`,start(e,t,n){let r=new v2({ctx:e.ctx,options:n,chart:e});t0.configure(e,r,n),t0.addBox(e,r),y2.set(e,r)},stop(e){t0.removeBox(e,y2.get(e)),y2.delete(e)},beforeUpdate(e,t,n){let r=y2.get(e);t0.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}},b2={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 Yje(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 C2(e,t){let n=e.chart.ctx,{body:r,footer:i,title:a}=e,{boxWidth:o,boxHeight:s}=t,c=I$(t.bodyFont),l=I$(t.titleFont),u=I$(t.footerFont),d=a.length,f=i.length,p=r.length,m=F$(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,gQ(e.title,y),n.font=c.string,gQ(e.beforeBody.concat(e.afterBody),y),v=t.displayColors?o+2+t.boxPadding:0,gQ(r,e=>{gQ(e.before,y),gQ(e.lines,y),gQ(e.after,y)}),v=0,n.font=u.string,gQ(e.footer,y),n.restore(),g+=m.width,{width:g,height:h}}function Xje(e,t){let{y:n,height:r}=t;return ne.height-r/2?`bottom`:`center`}function Zje(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 Qje(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`),Zje(l,e,t,n)&&(l=`center`),l}function w2(e,t,n){let r=n.yAlign||t.yAlign||Xje(e,n);return{xAlign:n.xAlign||t.xAlign||Qje(e,t,n,r),yAlign:r}}function $je(e,t){let{x:n,width:r}=e;return t===`right`?n-=r:t===`center`&&(n-=r/2),n}function eMe(e,t,n){let{y:r,height:i}=e;return t===`top`?r+=n:t===`bottom`?r-=i+n:r-=i/2,r}function T2(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}=P$(o),m=$je(t,s),h=eMe(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:qQ(m,0,r.width-t.width),y:qQ(h,0,r.height-t.height)}}function E2(e,t,n){let r=F$(n.padding);return t===`center`?e.x+e.width/2:t===`right`?e.x+e.width-r.right:e.x+r.left}function D2(e){return x2([],S2(e))}function tMe(e,t,n){return R$(e,{tooltip:t,tooltipItems:n,type:`tooltip`})}function O2(e,t){let n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}var k2={beforeTitle:sQ,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=O2(n,e);x2(t.before,S2(A2(i,`beforeLabel`,this,e))),x2(t.lines,A2(i,`label`,this,e)),x2(t.after,S2(A2(i,`afterLabel`,this,e))),r.push(t)}),r}getAfterBody(e,t){return D2(A2(t.callbacks,`afterBody`,this,e))}getFooter(e,t){let{callbacks:n}=t,r=A2(n,`beforeFooter`,this,e),i=A2(n,`footer`,this,e),a=A2(n,`afterFooter`,this,e),o=[];return o=x2(o,S2(r)),o=x2(o,S2(i)),o=x2(o,S2(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))),gQ(o,t=>{let n=O2(e.callbacks,t);r.push(A2(n,`labelColor`,this,t)),i.push(A2(n,`labelPointStyle`,this,t)),a.push(A2(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=b2[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=C2(this,n),o=Object.assign({},e,t),s=w2(this.chart,n,o),c=T2(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}=P$(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=l1(n.rtl,this.x,this.width);for(e.x=E2(this,n.titleAlign,n),t.textAlign=c.textAlign(n.titleAlign),t.textBaseline=`middle`,a=I$(n.titleFont),o=n.titleSpacing,t.fillStyle=n.titleColor,t.font=a.string,s=0;se!==0)?(e.beginPath(),e.fillStyle=i.multiKeyBackground,j$(e,{x:t,y:p,w:c,h:s,radius:o}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),j$(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=I$(n.bodyFont),d=u.lineHeight,f=0,p=l1(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=E2(this,h,n),t.fillStyle=n.bodyColor,gQ(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=b2[e.position].call(this,this._active,this._eventPosition);if(!n)return;let a=this._size=C2(this,e),o=Object.assign({},n,this._size),s=w2(t,e,o),c=T2(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=F$(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),u1(e,t.textDirection),i.y+=a.top,this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),d1(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=!_Q(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||!_Q(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=b2[i.position].call(this,e,t);return a!==!1&&(n!==a.x||r!==a.y)}},nMe=Object.freeze({__proto__:null,Colors:hje,Decimation:yje,Filler:zje,Legend:Gje,SubTitle:Jje,Title:qje,Tooltip:{id:`tooltip`,_element:j2,positioners:b2,afterInit(e,t,n){n&&(e.tooltip=new j2({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:k2},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`]}}),rMe=(e,t,n,r)=>(typeof t==`string`?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function iMe(e,t,n,r){let i=e.indexOf(t);return i===-1?rMe(e,t,n,r):i===e.lastIndexOf(t)?i:n}var aMe=(e,t)=>e===null?null:qQ(Math.round(e),0,t);function M2(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 sMe(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=!cQ(a),_=!cQ(o),v=!cQ(c),y=(h-m)/(u+1),b=LQ((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=LQ(w*b/p/f)*f),cQ(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&&ZDe((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=IQ(w,Math.round(w),b/1e3)?Math.round(w):Math.ceil(w));let T=Math.max(HQ(b),HQ(S));x=10**(cQ(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&&IQ(n[n.length-1].value,o,N2(o,y,e))?n[n.length-1].value=o:n.push({value:o}):(!_||C===o)&&n.push({value:C}),n}function N2(e,t,{horizontal:n,minRotation:r}){let i=BQ(r),a=(n?Math.sin(i):Math.cos(i))||.001,o=.75*t*(``+e).length;return Math.min(t/a,o)}var P2=class extends v0{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 cQ(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=FQ(r),t=FQ(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=sMe({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`&&zQ(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 m$(e,this.chart.options.locale,this.options.ticks.format)}},cMe=class extends P2{static id=`linear`;static defaults={ticks:{callback:g$.formatters.numeric}};determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=dQ(e)?e:0,this.max=dQ(t)?t:1,this.handleTickRangeOptions()}computeTickLimit(){let e=this.isHorizontal(),t=e?this.width:this.height,n=BQ(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}},F2=e=>Math.floor(PQ(e)),I2=(e,t)=>10**(F2(e)+t);function L2(e){return e/10**F2(e)==1}function R2(e,t,n){let r=10**n,i=Math.floor(e/r);return Math.ceil(t/r)-i}function lMe(e,t){let n=F2(t-e);for(;R2(e,t,n)>10;)n++;for(;R2(e,t,n)<10;)n--;return Math.min(n,F2(e))}function uMe(e,{min:t,max:n}){t=fQ(e.min,t);let r=[],i=F2(t),a=lMe(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=fQ(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=fQ(e.max,f);return r.push({value:p,major:L2(p),significand:d}),r}var dMe=class extends v0{static id=`logarithmic`;static defaults={ticks:{callback:g$.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=P2.prototype.parse.apply(this,[e,t]);if(n===0){this._zero=!0;return}return dQ(n)&&n>0?n:null}determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=dQ(e)?Math.max(0,e):null,this.max=dQ(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!dQ(this._userMin)&&(this.min=e===I2(this.min,0)?I2(this.min,-1):I2(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(I2(n,-1)),a(I2(r,1)))),n<=0&&i(I2(r,-1)),r<=0&&a(I2(n,1)),this.min=n,this.max=r}buildTicks(){let e=this.options,t=uMe({min:this._userMin,max:this._userMax},this);return e.bounds===`ticks`&&zQ(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`:m$(e,this.chart.options.locale,this.options.ticks.format)}configure(){let e=this.min;super.configure(),this._startValue=PQ(e),this._valueRange=PQ(this.max)-PQ(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(PQ(e)-this._startValue)/this._valueRange)}getValueForPixel(e){let t=this.getDecimalForPixel(e);return 10**(this._startValue+t*this._valueRange)}};function z2(e){let t=e.ticks;if(t.display&&e.display){let e=F$(t.backdropPadding);return pQ(t.font&&t.font.size,x$.font.size)+e.height}return 0}function fMe(e,t,n){return n=lQ(n)?n:[n],{w:pOe(e,t.string,n),h:n.length*t.lineHeight}}function B2(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 pMe(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?OQ/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 hMe(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(VQ(GQ(c.angle+jQ))),u=bMe(c.y,s.h,l),d=vMe(l),f=yMe(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 gMe(e,t){if(!t)return!0;let{left:n,top:r,right:i,bottom:a}=e;return!(D$({x:n,y:r},t)||D$({x:n,y:a},t)||D$({x:i,y:r},t)||D$({x:i,y:a},t))}function _Me(e,t,n){let r=[],i=e._pointLabels.length,a=e.options,{centerPointLabels:o,display:s}=a.pointLabels,c={extra:z2(a)/2,additionalAngle:o?OQ/i:0},l;for(let a=0;a270||n<90)&&(e-=t),e}function xMe(e,t,n){let{left:r,top:i,right:a,bottom:o}=n,{backdropColor:s}=t;if(!cQ(s)){let n=P$(t.borderRadius),c=F$(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(),j$(e,{x:l,y:u,w:d,h:f,radius:n}),e.fill()):e.fillRect(l,u,d,f)}}function SMe(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));xMe(n,a,t);let o=I$(a.font),{x:s,y:c,textAlign:l}=t;A$(n,e._pointLabels[i],s,c+o.lineHeight/2,o,{color:a.color,textAlign:l,textBaseline:`middle`})}}function V2(e,t,n,r){let{ctx:i}=e;if(n)i.arc(e.xCenter,e.yCenter,t,0,kQ);else{let n=e.getPointPosition(0,t);i.moveTo(n.x,n.y);for(let a=1;a{let n=hQ(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?pMe(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=kQ/(this._pointLabels.length||1),n=this.options.startAngle||0;return GQ(e*t+BQ(n))}getDistanceFromCenterForValue(e){if(cQ(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(cQ(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);CMe(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=I$(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=F$(s.backdropPadding);e.fillRect(-a/2-t.left,-i-c.size/2-t.top,a+t.width,c.size+t.height)}A$(e,r.label,0,-i,c,{color:s.color,strokeColor:s.textStrokeColor,strokeWidth:s.textStrokeWidth})}),e.restore()}drawTitle(){}},H2={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}},U2=Object.keys(H2);function W2(e,t){return e-t}function G2(e,t){if(cQ(t))return null;let n=e._adapter,{parser:r,round:i,isoWeekday:a}=e._parseOpts,o=t;return typeof r==`function`&&(o=r(o)),dQ(o)||(o=typeof r==`string`?n.parse(o,r):n.parse(o)),o===null?null:(i&&(o=i===`week`&&(RQ(a)||a===!0)?n.startOf(o,`isoWeek`,a):n.startOf(o,i)),+o)}function K2(e,t,n,r){let i=U2.length;for(let a=U2.indexOf(e);a=U2.indexOf(n);a--){let n=U2[a];if(H2[n].common&&e._adapter.diff(i,r,n)>=t-1)return n}return U2[n?U2.indexOf(n):0]}function DMe(e){for(let t=U2.indexOf(e)+1,n=U2.length;t=t?n[r]:n[i];e[a]=!0}}function OMe(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 J2(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=qQ(t,0,a),n=qQ(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||K2(i.minUnit,t,n,this._getLabelCapacity(t)),o=pQ(r.ticks.stepSize,1),s=a===`week`&&i.isoWeekday,c=RQ(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 hQ(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}=XQ(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}=XQ(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 kMe=class extends Y2{static id=`timeseries`;static defaults=Y2.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=X2(t,this.min),this._tableRange=X2(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(X2(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){let t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end;return X2(this._table,n*this._tableRange+this._minPos,!0)}},AMe=[jke,cje,nMe,Object.freeze({__proto__:null,CategoryScale:oMe,LinearScale:cMe,LogarithmicScale:dMe,RadialLinearScale:TMe,TimeScale:Y2,TimeSeriesScale:kMe})];R0.register(...AMe);var jMe=R0,MMe=z(``);function Z2(e,t){O(t,!0);let n=K(t,`class`,3,``),r=K(t,`ariaLabel`,3,``);function i(e){if(Ji.tick,typeof t.build!=`function`)return;let n=t.build();if(!n)return;let r=new jMe(e.getContext(`2d`),n);return()=>r.destroy()}var a=MMe();si(a,()=>i),I(()=>{W(a,1,li(n())),G(a,`aria-label`,r())}),B(e,a),k()}var NMe=z(``),PMe=z(`
        `);function Q2(e,t){O(t,!0);let n=K(t,`options`,19,()=>[]),r=K(t,`ariaLabel`,3,``),i=K(t,`class`,3,``);var a=PMe();U(a,21,n,e=>e.value,(e,n)=>{var r=NMe();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,li([`segmented-control`,i()]),`svelte-92fh5i`),G(a,`aria-label`,r())}),B(e,a),k()}xr([`click`]);function $2(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function e4(){return{grid:$2(`--chart-grid`),text:$2(`--chart-text`),dayMarker:$2(`--chart-day-marker`),tooltipBg:$2(`--chart-tooltip-bg`),tooltipBorder:$2(`--chart-tooltip-border`),tooltipText:$2(`--chart-tooltip-text`)}}function t4(){return{size:11,family:`'SF Mono', Menlo, Consolas, monospace`}}function n4(e,t){return{backgroundColor:e.tooltipBg,borderColor:e.tooltipBorder,borderWidth:1,titleColor:e.tooltipText,bodyColor:e.tooltipText,callbacks:t}}function r4(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 i4=[`#c2845a`,`#7a9e7e`,`#d4a574`,`#b8a98e`,`#8b9e6b`,`#7d8a97`,`#c47a5a`,`#6b8e6b`,`#a09486`,`#9b7ea4`,`#c49a6c`];function FMe(){return[...i4]}function a4(e){let t=5381,n=String(e||``);for(let e=0;ehZ(e)}}var u4={seconds:{apiName:`second`,windowLabel:Al,refreshMs:2e3},minutes:{apiName:`minute`,windowLabel:Nl,refreshMs:5e3},hours:{apiName:`hour`,windowLabel:Il,refreshMs:2e4},days:{apiName:`day`,windowLabel:zl,refreshMs:6e4}};function LMe(){return[{value:`seconds`,label:vl()},{value:`minutes`,label:xl()},{value:`hours`,label:wl()},{value:`days`,label:Dl()}]}function d4(){return{input:0,output:0,prompt:0,local:0}}function f4(e){return String(e).padStart(2,`0`)}function p4(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:0}function RMe(e,t){if(!Number.isFinite(t))return``;let n=new Date(t);switch(e){case`seconds`:return f4(n.getHours())+`:`+f4(n.getMinutes())+`:`+f4(n.getSeconds());case`minutes`:return f4(n.getHours())+`:`+f4(n.getMinutes());case`hours`:return f4(n.getHours())+`:00`;default:return f4(n.getMonth()+1)+`-`+f4(n.getDate())}}function zMe(e,t){let n=[],r=[],i={input:[],output:[],prompt:[],local:[]},a=d4();for(let o of e||[]){let e=Date.parse(o&&o.start),s=p4(o&&o.input_tokens),c=p4(o&&o.output_tokens),l=p4(o&&o.prompt_cached_tokens),u=p4(o&&o.locally_cached_tokens);n.push(RMe(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 BMe(e){let t=e||d4();return t.input+t.output+t.prompt+t.local>0}function m4(e,t){return hZ(Math.max(0,Math.round(e&&e[t]||0)))}function h4(e){return(u4[e]||u4.minutes).windowLabel()}function VMe(e,t){return Du({window:h4(t).toLowerCase(),input:m4(e,`input`),output:m4(e,`output`),prompt:m4(e,`prompt`),local:m4(e,`local`)})}function HMe(e,t,n,r){let i=e=>hZ(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}),Jl({total:i(t)})}})}}}}var UMe=900,g4=new class{#e=j(`minutes`);get granularity(){return L(this.#e)}set granularity(e){M(this.#e,e,!0)}#t=j(Yt([]));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){!u4[e]||e===this.granularity||(this.granularity=e,this.buckets=[],this.#l(),this.fetch())}#l(){this.#r&&=(clearInterval(this.#r),null);let e=u4[this.granularity]||u4.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()},UMe))}async fetch(){if(!this.active||this.#c)return;this.#c=!0;let e=this.granularity;try{let t=await YX(`/admin/usage/throughput?granularity=`+(u4[e]||u4.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(ZX(e))return;console.error(`Failed to fetch token throughput:`,e)}finally{this.#c=!1,this.active&&this.granularity!==e&&this.fetch()}}async#u(){await QX.ensureLoaded(),this.active&&QX.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 qX(`/admin/live/logs?types=usage`,{signal:e.signal});if(!n.ok||!n.body||typeof n.body.getReader!=`function`){t();return}this.#o=0,await o4(n.body.getReader(),e=>this.#f(e)),t()}catch(n){if(ZX(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}=c4(this.#o);this.#o=e,this.#a=setTimeout(()=>{this.#a=null,this.#u()},t)}},WMe=z(`
        `),GMe=z(`
        `),KMe=z(`

        `);function qMe(e,t){O(t,!0);let n=A(()=>zMe(g4.buckets,g4.granularity)),r=A(()=>L(n).totals);function i(){return{input:r4(`var(--token-input)`),output:r4(`var(--token-output)`),prompt:r4(`var(--token-prompt)`),local:r4(`var(--token-local)`)}}let a=[{metric:`input`,label:qo,colorVar:`--token-input`},{metric:`output`,label:Jo,colorVar:`--token-output`},{metric:`prompt`,label:Hl,colorVar:`--token-prompt`},{metric:`local`,label:Gl,colorVar:`--token-local`}];var o=KMe(),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(()=>fl()),t=A(LMe);Q2(g,{get ariaLabel(){return L(e)},get options(){return L(t)},get value(){return g4.granularity},onchange:e=>g4.setGranularity(e)})}D(s);var _=F(s,2);U(_,21,()=>a,e=>e.metric,(e,t)=>{var n=WMe(),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)=>{mi(i,`background: var(${L(t).colorVar??``})`),V(o,e),V(c,n)},[()=>L(t).label(),()=>m4(L(r),L(t).metric)]),B(e,n)}),D(_);var v=F(_,2),y=N(v);{let e=A(()=>VMe(L(r),g4.granularity));Z2(y,{get ariaLabel(){return L(e)},build:()=>HMe(e4(),i(),L(n),g4.granularity)})}var b=F(y,2),x=e=>{var t=GMe(),n=N(t),r=N(n,!0);D(n),D(t),I(e=>V(r,e),[()=>hl()]),B(e,t)},S=A(()=>!BMe(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":g4.active}),V(h,t)},[()=>ll(),()=>h4(g4.granularity)]),B(e,o),k()}function JMe(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 _4(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 v4(e,t,n){let r=Number(e&&e.total_requests||0);return(Number.isFinite(r)?r:0)+_4(t,n)}function YMe(e,t,n){let r=_4(t,n);return r<=0?``:Zl({provider:EZ(v4(e,t,n)-r),cache:EZ(r)})}function XMe(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 y4(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:hc(),tokens:a+s,colorVar:`--cache-meter-uncached`,note:s>0?vc({count:EZ(s)}):``},{key:`prompt`,label:xc(),tokens:o,colorVar:`--cache-meter-prompt`,note:wc()},{key:`local`,label:Dc(),tokens:l,colorVar:`--cache-meter-local`,note:Ac()}]}function ZMe(e,t,n){return y4(e,t,n).reduce((e,t)=>e+t.tokens,0)}function QMe(e,t,n){return ZMe(e,t,n)>0}function b4(e,t,n){let r=y4(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 $Me(e,t,n){return b4(e,t,n).filter(e=>e.tokens>0)}function x4(e){let t=[eu({label:e.label,tokens:EZ(e.tokens),percent:e.pct})];return e.note&&t.push(e.note),t.join(` +`)}function eNe(e){let t=(e||[]).map(e=>e.label+` `+e.pct+`%`);return Nc({details:t.length?t.join(`, `):ru()})}function tNe(e){return e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`)}function S4(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=tNe(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 nNe(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 C4(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 rNe(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 w4(e){return rNe(e)?Math.round(C4(e))+`%`:`—`}function iNe(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(qo(),t.inputPaid,i(`var(--token-input)`),{fill:`origin`}),o(Jo(),t.output,i(`var(--token-output)`),{fill:`-1`}),o(Hl(),t.prompt,i(`var(--token-prompt)`),{fill:`-1`,borderDash:[6,4]})];return r&&s.push(o(Gl(),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:n4(e,{label:e=>e.dataset.label+`: `+EZ(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),Jl({total:EZ(t)})}})},scales:{x:{stacked:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:t4(),maxRotation:0,autoSkip:!0,maxTicksLimit:10}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:l4(e)}}}}}function aNe(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 T4=`gomodel_provider_status_details_expanded`,E4=`gomodel_provider_card_expanded_overrides`,oNe=3e3,sNe=`https://gomodel.enterpilot.io/docs/providers/`,cNe={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 D4(){return{summary:{total:0,healthy:0,degraded:0,unhealthy:0,overall_status:`degraded`},providers:[]}}function lNe(e){let t={detailsExpanded:!1,cardOverrides:{}};try{if(e){let n=e.getItem(T4);n===`true`||n===`false`?t.detailsExpanded=n===`true`:e.setItem(T4,`false`);let r=JSON.parse(e.getItem(E4)||`{}`);r&&typeof r==`object`&&!Array.isArray(r)&&(t.cardOverrides=r)}}catch{}return t}function uNe(e,t){if(e)try{e.setItem(T4,t?`true`:`false`)}catch{}}function O4(e,t){if(e)try{e.setItem(E4,JSON.stringify(t))}catch{}}function dNe(e,t,n){let r=n&&n.name?String(n.name):``;return r&&Object.prototype.hasOwnProperty.call(e,r)?e[r]===!0:t}function fNe(e){return`is-`+(String(e&&e.overall_status||`degraded`).trim()||`degraded`)}function pNe(e){return`is-`+(String(e||`degraded`).trim()||`degraded`)}function mNe(e){let t=e||{};return String(t.healthy||0)+`/`+String(t.total||0)}function hNe(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 k4(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 vNe(e,t){let n=k4(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 yNe(e,t){let n=k4(e);return n?typeof t==`function`?t(n):String(n):``}function A4(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 j4(e){let t=String(e&&(e.type||e.config&&e.config.type)||``).trim().toLowerCase(),n=t?cNe[t]:``;return n?sNe+n+`?utm_source=gomodel_dashboard`:``}function bNe(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 xNe(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 SNe(e){let t=e&&e.config&&Array.isArray(e.config.models)?e.config.models.filter(Boolean):[];return t.length===0?ec():t.join(`, `)}function CNe(e){if(!e)return``;let t=[];return e.status_reason&&t.push(String(e.status_reason)),e.last_error&&t.push(rc({error:String(e.last_error)})),t.join(` + +`)}function M4(e){let t=e&&e.request_health;return t&&typeof t==`object`?t:null}function N4(e){let t=M4(e);return t?String(t.circuit_state||``).trim():``}function wNe(e){let t=N4(e);return t?t.charAt(0).toUpperCase()+t.slice(1):``}function TNe(e){let t=N4(e);return t===`open`?`is-unhealthy`:t===`half-open`?`is-degraded`:`is-healthy`}function ENe(e){let t=M4(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 P4(e){let t=M4(e);return t&&Array.isArray(t.models)?t.models:[]}function DNe(e){return e?String(Number(e.errors||0))+`/`+String(Number(e.requests||0))+` failed`:``}function ONe(e){let t=e&&e.last_error;return!t||!t.message?``:(t.status_code?`HTTP `+String(t.status_code)+`: `:``)+t.message}function F4(){return{name:``,slug:``,url:``,transport:`http`,description:``,enabled:!0,headers:[],allowed_tools:``,disallowed_tools:``,user_paths:``,tool_timeout_seconds:``}}function I4(){return{server:``,status:``,instructions:``,tools:[],prompts:[],resources:[],templates:[]}}function L4(e){return String(e&&(e.slug||e.name)||``).trim()}function R4(e){return String(e&&e.status||``).trim()||`connecting`}function kNe(e){let t={connected:nwe,degraded:awe,connecting:cwe,disabled:dwe},n=R4(e);return t[n]?.()||n}function z4(e){switch(R4(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 ANe(e,t){let n=R4(e),r=String(e&&e.last_error||``).trim();return r&&n!==`connected`?r:n===`connected`&&e&&e.connected_at?tV({date:(typeof t==`function`?t:String)(e.connected_at)}):``}function B4(e){return String(e&&e.transport||``)===`stdio`?iV():String(e&&e.url||``).trim()||`—`}function jNe(e){return sV({prompts:Number(e&&e.prompt_count||0),resources:Number(e&&e.resource_count||0)})}function V4(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 MNe(e){return String(e||``).split(` +`).map(e=>e.trim()).filter(e=>e)}function NNe(e){return!e||typeof e!=`object`||Array.isArray(e)?[]:Object.keys(e).sort().map(t=>({name:t,value:String(e[t]||``)}))}function PNe(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 FNe(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 INe(e){return{name:String(e.name||``).trim(),slug:L4(e),url:String(e.url||``).trim(),transport:e.transport===`sse`?`sse`:`http`,description:String(e.description||``).trim(),enabled:e.enabled!==!1,headers:NNe(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 LNe(e,t,n){let r=String(e.name||``).trim(),i=String(e.slug||V4(r)).trim().toLowerCase(),a=String(e.url||``).trim(),o=e.transport===`sse`?`sse`:`http`;if(!r)return{error:uV()};if(!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(i))return{error:pV()};if(t===`create`&&(n||[]).some(e=>L4(e)===i))return{error:gV({slug:i})};if(!a)return{error:yV()};let s,c=String(e.tool_timeout_seconds||``).trim();if(c!==``){let e=Number(c);if(!Number.isSafeInteger(e)||e<0)return{error:SV()};s=e}return{payload:{name:r,slug:i,url:a,transport:o,headers:PNe(e.headers),description:String(e.description||``).trim(),enabled:!!e.enabled,allowed_tools:lZ(e.allowed_tools),disallowed_tools:lZ(e.disallowed_tools),user_paths:MNe(e.user_paths),tool_timeout_seconds:s}}}function RNe(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 zNe(e,t){return String(e&&e.server||``)+`_`+String(t||``)}function H4(e){let t=e||I4(),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:zNe(t,n.name),description:String(n.description||``).trim()});return[{key:`tools`,title:TV(),items:(t.tools||[]).map(r(`tool`))},{key:`prompts`,title:OV(),items:(t.prompts||[]).map(r(`prompt`))},{key:`resources`,title:jV(),items:(t.resources||[]).map(e=>({key:`resource:`+String(e.uri||``),name:String(e.uri||``),aggregated:``,description:n(e.name,e.description)}))},{key:`templates`,title:PV(),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 BNe(e){return H4(e).length===0}function U4(e){return(e||[]).length}function W4(e){return(e||[]).filter(e=>R4(e)===`connected`).length}function G4(e){return(e||[]).filter(e=>e&&e.enabled!==!1&&R4(e)===`degraded`).length}function VNe(e,t){return!!e&&U4(t)>0}function HNe(e){return String(W4(e))+`/`+String(U4(e))}function UNe(e){return G4(e)>0?`is-degraded`:`is-healthy`}function WNe(e){let t=G4(e);if(t>0)return lu({count:t});let n=U4(e),r=W4(e);return n>0&&r===n?oc():fu({connected:r,total:n})}function K4(){return{interval:`day`,buckets:[],summary:{requests:0},provider_latency:[]}}function GNe(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 KNe(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 JNe(e){let t=e&&e.summary?e.summary.success_rate:null;return t==null?`—`:(Math.round(Number(t)*1e3)/10).toFixed(1)+`%`}function q4(e,t){return Number(e&&e.summary&&e.summary[t]||0)}function J4(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 YNe(e){let t=e&&e.summary?e.summary.avg_duration_ms:null;return t==null?`—`:J4(Number(t))}function Y4(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 X4(e,t,n){let r=new Date(e.start);if(Number.isNaN(r.getTime()))return String(e.start||``);let i=Y4(r,n),a=i.shortDate;return t!==`hour`||i.hour===0?a:String(i.hour).padStart(2,`0`)+`:00`}function Z4(e,t,n,r){let i=new Date(e.start);return Number.isNaN(i.getTime())?String(e.start||``):t===`hour`?r(e.start):Y4(i,n).fullDate}function XNe(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 ZNe(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=>X4(e,r,i)),c=XNe(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(Au(),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:n4(e,{title:e=>e.length?Z4(t[e[0].dataIndex],r,i,o):``,label:e=>e.dataset.label+`: `+EZ(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),Jl({total:EZ(t)})}})},scales:{x:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:t4(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:t4(),precision:0,callback:e=>hZ(e)}}}}}}function Q4(e=FMe()){let t={};return function(n){return n in t||(t[n]=e[Object.keys(t).length%e.length]),t[n]}}function QNe(e,t,n,r={}){let i=r.interval===`hour`?`hour`:`day`,a=r.zone,o=r.formatTimestamp||(e=>String(e)),s=r.providerColor||Q4();return{type:`line`,data:{labels:t.map(e=>X4(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:n4(e,{title:e=>e.length?Z4(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+`: `+J4(e.parsed.y)+(r>0?` (`+r.toLocaleString()+` req)`:``)}})},scales:{x:{grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:t4(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:t4(),callback:e=>J4(e)}}}}}}var $Ne=class{#e=j(Yt(D4()));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(Yt({}));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=lNe(Ui());this.detailsExpanded=e.detailsExpanded,this.cardOverrides=e.cardOverrides}cardExpanded(e){return dNe(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,O4(Ui(),this.cardOverrides)}toggleDetails(){this.detailsExpanded=!this.detailsExpanded,this.cardOverrides={},uNe(Ui(),this.detailsExpanded),O4(Ui(),this.cardOverrides)}detailsToggleLabel(){return this.detailsExpanded?Bme():Lme()}async fetch(){this.initPreferences(),this.#a&&this.#a.abort();let e=new AbortController;this.#a=e,this.loading=!0;try{let t=await YX(`/admin/providers/status`,{label:`provider status`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.status=D4(),this.#l();return}let n=t.data&&typeof t.data==`object`?t.data:D4();n.summary||=D4().summary,Array.isArray(n.providers)||(n.providers=[]),this.status=n,this.#c()}catch(e){if(ZX(e))return;console.error(`Failed to fetch provider status:`,e),this.status=D4(),this.#l()}finally{this.#a===e&&(this.#a=null,this.loading=!1,this.loadedOnce=!0)}}#c(){this.#l(),_Ne(this.status.providers)&&(this.#o=setTimeout(()=>{this.#o=null,this.fetch()},oNe))}#l(){this.#o&&=(clearTimeout(this.#o),null)}stopPolling(){this.#l()}},ePe=class{#e=j(Yt(K4()));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 YX(`/admin/audit/stats?`+AZ.queryStr(),{label:`audit stats`});if(t.stale||e!==this.#n)return;if(!t.ok){this.stats=K4();return}this.stats=GNe(t.data)}catch(t){if(console.error(`Failed to fetch audit stats:`,t),e!==this.#n)return;this.stats=K4()}finally{e===this.#n&&(this.loading=!1)}}},tPe=class{#e=j(Yt([]));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 QX.ensureLoaded(),!QX.mcpVisible()){this.available=!1,this.servers=[];return}this.loading=!0;try{let e=await YX(`/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}}},nPe=class{#e=j(Yt([]));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 YX(`/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(ZX(e))return;console.error(`Failed to fetch calendar data:`,e),this.data=[]}finally{this.#r===e&&(this.#r=null,this.loading=!1)}}},$4=new $Ne,e3=new ePe,t3=new tPe,n3=new nPe,r3=(e,t=f,n=f,r=f,i=f)=>{var a=rPe(),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)},[()=>gZ(vpe(),n()),()=>hZ(n()),()=>gZ(xpe(),r()),()=>hZ(r()),()=>gZ(Ope(),i()),()=>hZ(i())]),B(e,a)},i3=(e,t=f,n=f,r=f,i=f,a=f,o=f)=>{var s=oPe(),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=iPe(),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=aPe(),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)},rPe=z(`
        i + o =
        `),iPe=z(``),aPe=z(` `),oPe=z(`
        `),sPe=z(`
        `),cPe=z(`
        `);function lPe(e,t){O(t,!0);let n=A(()=>FZ.summary),r=A(()=>FZ.cacheOverview),i=A(()=>FZ.cacheAnalyticsEnabled()),a=A(()=>$4.status.summary);function o(){let e=document.getElementById(`provider-status-section`);e&&(e.scrollIntoView({behavior:`smooth`,block:`start`}),e.focus({preventScroll:!0}))}var s=cPe(),c=N(s);{let e=A(()=>Ko()),t=A(()=>JMe(L(n)));r3(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=sPe(),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)},[()=>Xo(),()=>dZ(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(()=>Lpe()),n=A(()=>XMe(L(r)));r3(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);Z2(E,{build:()=>aNe(C4(L(n)),r4(`var(--token-prompt)`),r4(`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(()=>fNe(L(a))),n=A(()=>Ype()),r=A(()=>mNe(L(a))),i=A(()=>gNe(L(a))),s=A(()=>hNe(L(a))?{title:Qpe(),onclick:o}:null);i3(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(()=>UNe(t3.servers)),n=A(()=>po()),r=A(()=>HNe(t3.servers)),i=A(()=>WNe(t3.servers)),a=A(()=>({title:tme(),onclick:()=>TX.navigate(`mcp-servers`)}));i3(e,()=>`mcp-servers-flag`,()=>L(t),()=>L(n),()=>L(r),()=>L(i),()=>L(a))}},se=A(()=>VNe(t3.available,t3.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)},[()=>Yo(),()=>YMe(L(n),L(r),L(i)),()=>dZ(v4(L(n),L(r),L(i))),()=>Zo(),()=>fZ(L(n).total_cost),()=>Upe(),()=>Bpe(),()=>Kpe({rate:w4(L(n))}),()=>w4(L(n))]),B(e,s),k()}xr([`click`]);var uPe=z(` `),dPe=z(`
        `),fPe=z(` `),pPe=z(`
        `),mPe=z(`

        `);function hPe(e,t){O(t,!0);let n=A(()=>FZ.cacheAnalyticsEnabled()),r=A(()=>b4(FZ.summary,FZ.cacheOverview,L(n))),i=A(()=>$Me(FZ.summary,FZ.cacheOverview,L(n))),a=A(()=>QMe(FZ.summary,FZ.cacheOverview,L(n)));var o=mPe(),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=dPe(),r=N(n),i=e=>{var n=uPe(),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=>{mi(n,`width: ${L(t).pct??``}%; background: var(${L(t).colorVar??``})`),G(n,`title`,e)},[()=>x4(L(t))]),B(e,n)});var h=F(m,2),g=e=>{var t=fPe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>fc()]),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=pPe(),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),mi(r,`background: var(${L(t).colorVar??``})`),V(a,L(t).label),V(s,`${L(t).pct??``}%`),V(l,i)},[()=>x4(L(t)),()=>dZ(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)},[()=>Ko(),()=>lc(),()=>eNe(L(i))]),B(e,o),k()}var gPe=z(``);function a3(e,t){let n=K(t,`size`,3,16),r=K(t,`label`,3,`Loading`),i=K(t,`class`,3,``);var a=gPe();I(()=>{W(a,1,li([`spinner`,i()]),`svelte-b54l9o`),mi(a,`--spinner-size: ${n()??``}px`),G(a,`aria-label`,r())}),B(e,a)}var _Pe=Er(` `),vPe=Er(``);function o3(e,t){let n=K(t,`label`,3,`No data`);var r=vPe(),i=F(N(r),9),a=e=>{var t=_Pe(),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 s3=z(`
        `),yPe=z(`

        `);function bPe(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){AZ.interval=e,t.onintervalchange?.()}function i(){let e=FZ.daily;if(e.length===0)return null;let t=AZ.rangeStart(),n=AZ.rangeEnd(),r=nNe(S4(e,AZ.interval,t,n),S4(Array.isArray(FZ.cacheOverview.daily)?FZ.cacheOverview.daily:[],AZ.interval,t,n));return iNe(e4(),r,{cacheEnabled:FZ.cacheAnalyticsEnabled(),resolve:r4})}var a=yPe(),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()})));Q2(l,{get ariaLabel(){return L(e)},get options(){return L(t)},get value(){return AZ.interval},onchange:r})}D(o);var u=F(o,2),d=N(u);Z2(d,{build:i});var f=F(d,2),p=e=>{var t=s3(),n=N(t);{let e=A(()=>Zee());a3(n,{size:24,get label(){return L(e)}})}D(t),B(e,t)},m=e=>{var t=s3();o3(N(t),{}),D(t),B(e,t)};H(f,e=>{FZ.daily.length===0&&FZ.loading?e(p):FZ.daily.length===0&&!Y.authError&&e(m,1)}),D(u),D(a),I(e=>V(c,e),[()=>AZ.chartTitle()]),B(e,a),k()}var c3=10,xPe=.7;function SPe(e,t){if(e<=0||t<=0)return 0;let n=(e/t)**+xPe,r=Math.ceil(n*c3);return r<1?1:r>c3?c3:r}function CPe(){let e=[];for(let t=0;t<=c3;t++)e.push(t);return e}function wPe(e,t,n){let r={};(e||[]).forEach(e=>{r[e.date]=e});let i=NX(FX(n,-364)),a=i.getUTCDay();i.setUTCDate(i.getUTCDate()-a);let o=[];for(let e=new Date(i);PX(e)<=n;e.setUTCDate(e.getUTCDate()+1)){let n=PX(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 TPe(e){let t=NX(FX(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);PX(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),PX(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 `),APe=z(`
        `),jPe=z(`
        `),MPe=z(`
        `),NPe=z(`
        `),PPe=z(`

        `,1);function FPe(e,t){O(t,!0);let n=j(Yt({show:!1,x:0,y:0,text:``})),r=A(()=>WX.currentDateKey()),i=A(()=>wPe(n3.data,n3.mode,L(r))),a=A(()=>TPe(L(r)));function o(e,t){t.empty||M(n,{show:!0,x:e.clientX,y:e.clientY,text:OPe(t,n3.mode)},!0)}function s(){M(n,{show:!1,x:0,y:0,text:``},!0)}var c=PPe(),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(()=>zc());a3(e,{size:14,get label(){return L(t)}})}};H(p,e=>{n3.loading&&n3.data.length===0&&e(m)});var h=F(p,2);{let e=A(()=>Hc()),t=A(()=>[{value:`tokens`,label:Ko()},{value:`costs`,label:Gc()}]);Q2(h,{get ariaLabel(){return L(e)},get options(){return L(t)},get value(){return n3.mode},onchange:e=>n3.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=kPe(),r=N(n,!0);D(n),I(()=>{mi(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),Ir,(e,t,n)=>{var r=jPe();U(r,23,()=>L(t),(e,t)=>n+`-`+t,(e,t)=>{var n=APe();I(()=>W(n,1,li([`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)}),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,CPe,e=>e,(e,t)=>{var n=MPe();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=NPe(),r=N(t,!0);D(t),I(()=>{mi(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)},[()=>Ic(),()=>Jc(),()=>Zc(),()=>el(),()=>EPe(n3.data,n3.mode),()=>rl(),()=>ol()]),B(e,c),k()}var IPe=z(``),LPe=z(`

        `),RPe=z(`
        `);function l3(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=RPe(),c=N(s),l=N(c);Kr(l,()=>t.title??f);var u=F(l,2),d=e=>{var r=IPe();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)}),Kr(F(u,2),()=>t.extra??f),D(c);var p=F(c,2),m=e=>{var n=LPe(),i=N(n),a=e=>{var n=Or();Kr(P(n),()=>t.help),B(e,n)},o=e=>{var t=Dr();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()}xr([`click`]);var zPe=z(`

        `),BPe=z(`
        `),VPe=z(`

        2xx 4xx 5xx
        `,1);function HPe(e,t){O(t,!0);let n=Q4(),r=A(()=>e3.stats);function i(){return{interval:L(r).interval,zone:WX.effectiveTimezone(),resolve:r4,formatTimestamp:e=>WX.formatTimestamp(e)}}var a=Or(),o=P(a),s=e=>{var t=VPe(),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);Z2(N(w),{build:()=>ZNe(e4(),L(r).buckets,i())}),D(w),D(a);var T=F(a,2),ee=e=>{var t=BPe(),a=N(t),o=N(a);{let e=e=>{var t=zPe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>gme()]),B(e,t)},t=A(()=>yme()),n=A(()=>Sme());l3(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);Z2(N(p),{build:()=>QNe(e4(),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)},[()=>Tme(),()=>Ome(),()=>YNe(L(r))]),B(e,t)},E=A(()=>qNe(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)},[()=>ime(),()=>sme(),()=>ume(),()=>pme(),()=>JNe(L(r)),()=>dZ(q4(L(r),`status_2xx`)),()=>dZ(q4(L(r),`status_4xx`)),()=>dZ(q4(L(r),`status_5xx`))]),B(e,t)},c=A(()=>KNe(L(r)));H(o,e=>{L(c)&&e(s)}),B(e,a),k()}var u3=(e,t=f,n=f,r)=>{let i=vt(()=>h(r?.(),!1));var a=GPe(),o=N(a),s=N(o,!0);D(o);var c=F(o,2),l=e=>{var t=UPe(),r=N(t,!0);D(t),I(()=>V(r,n())),B(e,t)},u=e=>{var t=WPe(),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)},UPe=z(` `),WPe=z(` `),GPe=z(`
        `),KPe=z(`

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

        `);function QPe(e,t){O(t,!0);let n=A(()=>TNe(t.provider)),r=A(()=>[[xs(),t.provider.config?.base_url],[ws(),t.provider.config?.api_version]].filter(([,e])=>!!e));var i=ZPe();let a;var o=N(i),s=N(o),c=N(s,!0);D(s);var l=F(s,2),u=e=>{var n=KPe(),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=XPe(),i=N(r);{let e=A(()=>Ds()),n=A(()=>ENe(t.provider));u3(i,()=>L(e),()=>L(n))}var a=F(i,2),o=e=>{var r=qPe(),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,li([`provider-status-health-state`,L(n)]),`svelte-6y9wjv`),V(c,t)},[()=>As(),()=>wNe(t.provider)]),B(e,r)},s=A(()=>N4(t.provider));H(a,e=>{L(s)&&e(o)});var c=F(a,2),l=e=>{var n=YPe(),r=N(n),i=N(r,!0);D(r);var a=F(r,2);U(a,21,()=>P4(t.provider),e=>e.model,(e,t)=>{var n=JPe();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)},[()=>ONe(L(t)),()=>DNe(L(t))]),B(e,n)}),D(a),D(n),I(e=>V(i,e),[()=>Ns()]),B(e,n)},u=A(()=>P4(t.provider).length>0);H(c,e=>{L(u)&&e(l)}),D(r),B(e,r)},p=A(()=>M4(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));u3(e,()=>L(n)[0],()=>L(n)[1],()=>!0)});var _=F(h,2);{let e=A(()=>Is()),n=A(()=>SNe(t.provider));u3(_,()=>L(e),()=>L(n))}var v=F(_,2);{let e=A(()=>zs()),n=A(()=>bNe(t.provider));u3(v,()=>L(e),()=>L(n))}var y=F(v,2);{let e=A(()=>Hs()),n=A(()=>xNe(t.provider));u3(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 $Pe=z(` `),eFe=z(``),tFe=z(`

        `);function nFe(e,t){O(t,!0);let n=A(()=>$4.cardExpanded(t.provider)),r=e=>WX.formatTimestamp(e);var i=tFe(),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=$Pe(),r=N(n);D(n),I(e=>V(r,`(${e??``})`),[()=>A4(t.provider)]),B(e,n)},f=A(()=>A4(t.provider));H(u,e=>{L(f)&&e(d)});var p=F(u,2),m=e=>{var n=eFe();I((e,t,r)=>{G(n,`href`,e),G(n,`aria-label`,t),G(n,`title`,r)},[()=>j4(t.provider),()=>es({provider:A4(t.provider)||t.provider.name}),()=>es({provider:A4(t.provider)||t.provider.name})]),B(e,n)},h=A(()=>j4(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);QPe(ne,{get provider(){return t.provider},get expanded(){return L(n)}});var re=F(ne,2);let ie;q(N(re),{get icon(){return $Y},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)},[()=>pNe(t.provider.status),()=>CNe(t.provider),()=>rs(),()=>dZ(t.provider.runtime?.discovered_model_count),()=>os(),()=>yNe(t.provider,r),()=>vNe(t.provider,r),()=>L(n)?fs({provider:t.provider.name}):ls({provider:t.provider.name}),()=>L(n)?vs():hs()]),R(`click`,re,()=>$4.toggleCard(t.provider)),B(e,i),k()}xr([`click`]);var rFe=z(`

        `),iFe=z(`
        `);function aFe(e,t){O(t,!0);let n=A(()=>$4.status.providers);var r=Or(),i=P(r),a=e=>{var t=rFe(),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)=>{nFe(e,{get provider(){return L(t)}})}),D(f),D(t),I((e,t,n)=>{V(o,e),G(s,`aria-checked`,$4.detailsExpanded),G(s,`title`,t),V(l,n),d=W(u,1,`provider-status-toggle-track svelte-1kx3uw4`,null,d,{"is-active":$4.detailsExpanded})},[()=>jme(),()=>$4.detailsToggleLabel(),()=>$4.detailsToggleLabel()]),R(`click`,s,()=>$4.toggleDetails()),B(e,t)},o=e=>{var t=iFe(),n=N(t);{let e=A(()=>Pme());a3(n,{size:18,get label(){return L(e)}})}D(t),B(e,t)};H(i,e=>{L(n).length>0?e(a):$4.loading&&!$4.loadedOnce&&e(o,1)}),B(e,r),k()}xr([`click`]);var oFe=z(`
        `);function d3(e,t){O(t,!0);function n(){FZ.fetchUsage(),FZ.fetchCacheOverview(``),e3.fetch(),$4.fetch(),t3.fetch(),n3.fetch()}function r(){FZ.fetchUsage(),FZ.fetchCacheOverview(``),e3.fetch()}function i(){r(),n3.fetch()}mn(()=>{if(Y.refreshTick,TX.page===`overview`)return or(()=>{n(),g4.start()}),()=>{g4.stop(),$4.stopPolling()}});var a=oFe(),o=N(a);qMe(o,{});var s=F(o,2),c=N(s),l=N(c,!0);D(c),D(s);var u=F(s,2);LZ(N(u),{onchange:i}),D(u);var d=F(u,2);MZ(d,{});var f=F(d,2);lPe(f,{});var p=F(f,2);hPe(p,{});var m=F(p,2);bPe(m,{onintervalchange:r});var h=F(m,2);FPe(h,{});var g=F(h,2);HPe(g,{}),aFe(F(g,2),{}),D(a),I(e=>V(l,e),[()=>Nee()]),B(e,a),k()}var sFe=`/admin/live/logs?types=audit,usage`;function f3(e,t,n){return!!t&&String(e&&e.id||``).trim()===t||!!n&&String(e&&e.request_id||``).trim()===n}function cFe(e){switch(e){case`date_range`:return Ace();case`filters`:return Nce();case`pagination`:return Ice();default:return``}}function lFe(e){let t=sFe,n=Number(e||0);return Number.isFinite(n)&&n>0&&(t+=`&cursor=`+encodeURIComponent(String(n))),t}function uFe(){return{async consumeLiveLogsBody(e){await o4(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=>f3(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;ef3(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=>!f3(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(!f3(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=>!f3(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 p3={"audit.started":10,"audit.updated":20,"audit.stream":20,"audit.completed":30,"audit.failed":40,"audit.flushed":40,"audit.detail":40},dFe=new Set(Object.keys(p3));function m3(e){return String(e&&(e.id||e.request_id)||``).trim()}function fFe(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:h3(n.data)&&h3(r.data)&&(i.data={...n.data,...r.data});let a=String(n._live_state||``).trim(),o=String(r._live_state||``).trim();return(p3[a]||0)>(p3[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&&h3(i.data)&&(i.data.request_body!==void 0||i.data.response_body!==void 0)&&(i.bodies_omitted=!1),i}function pFe(e,t){let n=Number(t||0);return(Array.isArray(e)?e:[]).filter(e=>Number(e&&e.version||0)>n)}function mFe(e){return dFe.has(String(e&&e.eventType||``).trim())}function h3(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}var g3=200,_3=class{#e=j(Yt({entries:[],total:0,limit:25,offset:0}));get auditLog(){return L(this.#e)}set auditLog(e){M(this.#e,e,!0)}#t=j(Yt({entries:[],total:0,limit:50,offset:0}));get usageLog(){return L(this.#t)}set usageLog(e){M(this.#t,e,!0)}#n=j(Yt({}));get auditRecords(){return L(this.#n)}set auditRecords(e){M(this.#n,e,!0)}#r=j(Yt([]));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(Wi(`gomodel_audit_group_sessions`,`true`)!==`false`);get auditGroupSessions(){return L(this.#c)}set auditGroupSessions(e){M(this.#c,e,!0)}#l=j(Yt({}));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=m3(e);if(!n)return e;let r=fFe(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():m3(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<=g3)return;let t={...this.auditRecords},n=e.length-g3;for(let r of e){if(n<=0)break;this.auditRecordPins.has(r)||(delete t[r],n--)}this.auditRecords=t}get page(){return TX.page}get customStartDate(){return AZ.customStartDate}get customEndDate(){return AZ.customEndDate}get followsToday(){return AZ.followsToday}liveLogsEnabled(){return QX.liveLogsVisible()}async startLiveLogs(){typeof fetch!=`function`||typeof ReadableStream>`u`||(await QX.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=lFe(this.liveLogsLastSeq),r=Y.generation;try{let i=await qX(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 YX(`/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(_3.prototype,uFe());var v3=new _3;if(typeof window<`u`){let e=!1;window.addEventListener(`pagehide`,()=>{e=!!v3.liveLogsController,v3.stopLiveLogs()}),window.addEventListener(`pageshow`,t=>{t.persisted&&e&&v3.ensureLiveLogs()})}var y3=null;gn(()=>{mn(()=>{let e=Y.refreshTick;if(y3===null){y3=e;return}e!==y3&&(y3=e,or(()=>{v3.stopLiveLogs(),v3.startLiveLogs()}))})});function b3(){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 hFe(){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:dZ(r)}):kae({provider:dZ(Number(e&&e.total_requests||0)),cache:dZ(r)})}function CFe(e){let t=e||{};return t.total_input_cost===null||t.total_input_cost===void 0?``:Mae({input:fZ(t.total_input_cost),output:fZ(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`?fZ(w3(e)):hZ(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:dZ(n)}),TFe(),Wae()],i=w3(e);i!=null&&(r.push(qae({cost:fZ(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:dZ(t),total:dZ(i)})];return r>0&&a.push(Eoe({count:dZ(r)})),a.join(` +`)}function N3(e){let t=[];if(O3(e)&&(t.push(O3(e)),t.push(``)),t.push(koe({cost:fZ(e.input_cost)})),t.push(Moe({cost:fZ(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):dZ(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(Au());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 v3.usageFilterModel}set usageFilterModel(e){v3.usageFilterModel=e}get usageFilterProvider(){return v3.usageFilterProvider}set usageFilterProvider(e){v3.usageFilterProvider=e}get usageFilterLabel(){return v3.usageFilterLabel}set usageFilterLabel(e){v3.usageFilterLabel=e}get usageFilterUserPath(){return v3.usageFilterUserPath}set usageFilterUserPath(e){v3.usageFilterUserPath=e}get usageFilterSession(){return v3.usageFilterSession}set usageFilterSession(e){v3.usageFilterSession=e}#t=j(Yt({models:[],providers:[],labels:[]}));get usageFacetOptions(){return L(this.#t)}set usageFacetOptions(e){M(this.#t,e,!0)}#n=j(Yt(b3()));get usageSummary(){return L(this.#n)}set usageSummary(e){M(this.#n,e,!0)}#r=j(Yt(b3()));get usageSummaryAll(){return L(this.#r)}set usageSummaryAll(e){M(this.#r,e,!0)}#i=j(Yt([]));get modelUsage(){return L(this.#i)}set modelUsage(e){M(this.#i,e,!0)}#a=j(Yt([]));get userPathUsage(){return L(this.#a)}set userPathUsage(e){M(this.#a,e,!0)}#o=j(Yt([]));get labelUsage(){return L(this.#o)}set labelUsage(e){M(this.#o,e,!0)}#s=j(Yt(x3()));get sessionUsage(){return L(this.#s)}set sessionUsage(e){M(this.#s,e,!0)}get usageLog(){return v3.usageLog}set usageLog(e){v3.usageLog=e}get usageLogSearch(){return v3.usageLogSearch}set usageLogSearch(e){v3.usageLogSearch=e}get usageLogHideCached(){return v3.usageLogHideCached}set usageLogHideCached(e){v3.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,TX.page===`usage`){this.fetchUsagePage();return}TX.navigate(`usage`)}usageLabelChipTitle(e){return this.usageFilterLabel===e?bae():Cae({label:e})}toggleUsageMode(e){this.usageMode=e,TX.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 QX.ensureLoaded();let e=[this.fetchUsagePageSummary(),this.fetchUsageFacetOptions(),this.fetchModelUsage(),this.fetchUserPathUsage(),this.fetchLabelUsage(),this.fetchSessionUsage(!0),this.fetchUsageLog(!0)];FZ.cacheAnalyticsEnabled()&&e.push(FZ.fetchCacheOverview(this.filterQueryStr())),await Promise.all(e)}async fetchUsagePageSummary(){let e=this.#y(`summary`);this.summaryLoading=!0;try{let t=AZ.queryStr()+this.filterQueryStr(),[n,r]=await Promise.all([YX(`/admin/usage/summary?`+t+`&cache_mode=uncached`,{label:`usage page summary`,signal:e.signal}),YX(`/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=b3(),this.usageSummaryAll=b3();return}this.usageSummary=n.data&&typeof n.data==`object`?n.data:b3(),this.usageSummaryAll=r.data&&typeof r.data==`object`?r.data:b3()}catch(e){if(ZX(e))return;console.error(`Failed to fetch usage page summary:`,e),this.usageSummary=b3(),this.usageSummaryAll=b3()}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 YX(t+`?`+AZ.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=>yZ(e)).filter(Boolean),labels:o.map(e=>e&&e.label).filter(Boolean)}}catch(e){if(ZX(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 YX(t+`?`+AZ.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(ZX(e))return;console.error(`Failed to fetch `+n+`:`,e),r([])}finally{this.#b(e,a),this.#v[e]===null&&i(!1)}}async#S(e,t,n,{resetOffset:r,pageState:i,queryParams:a,assign:o,setLoading:s,emptyResult:c}){let l=this.#y(e);s(!0);try{r&&(i.offset=0);let e=AZ.queryStr()+this.filterQueryStr()+a(),s=await YX(t+`?`+e,{label:n,signal:l.signal});if(s.stale||l.signal.aborted)return;if(!s.ok||!s.data||typeof s.data!=`object`){o(c());return}let u=s.data;u.entries=Array.isArray(u.entries)?u.entries:[],o(u)}catch(e){if(ZX(e))return;console.error(`Failed to fetch `+n+`:`,e),o(c())}finally{this.#b(e,l),this.#v[e]===null&&s(!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)}fetchSessionUsage(e){return this.#S(`sessionUsage`,`/admin/usage/sessions`,`usage sessions`,{resetOffset:e,pageState:this.sessionUsage,queryParams:()=>yFe(this.sessionUsage),assign:e=>this.sessionUsage=e,setLoading:e=>this.sessionUsageLoading=e,emptyResult:x3})}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))}fetchUsageLog(e){return this.#S(`usageLog`,`/admin/usage/log`,`usage log`,{resetOffset:e,pageState:this.usageLog,queryParams:()=>vFe({limit:this.usageLog.limit,offset:this.usageLog.offset,hideCached:this.usageLogHideCached,search:this.usageLogSearch}),assign:e=>this.usageLog=e,setLoading:e=>this.usageLogLoading=e,emptyResult:hFe})}usageLogNextPage(){this.usageLog.offset+this.usageLog.limit0&&(this.usageLog.offset=Math.max(0,this.usageLog.offset-this.usageLog.limit),this.fetchUsageLog(!1))}};v3.fetchUsage=()=>{TX.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,``),u=A(()=>c()||Mo());function d(){n(``),s()?.()}var f=RFe(),p=N(f);q(p,{get icon(){return VTe},class:`filter-input-icon`});var m=F(p,2);wi(m);let h;var g=F(m,2),_=e=>{var t=LFe();q(N(t),{get icon(){return xX}}),D(t),I(()=>{G(t,`title`,L(u)),G(t,`aria-label`,L(u))}),R(`click`,t,d),B(e,t)};H(g,e=>{s()&&n()&&e(_)}),D(f),I(()=>{W(f,1,li([`filter-input-wrap`,l()]),`svelte-30xz1k`),h=W(m,1,`filter-input svelte-30xz1k`,null,h,{"filter-input-clearable":!!s()}),G(m,`id`,a()),G(m,`placeholder`,r()),G(m,`aria-label`,i())}),R(`input`,m,function(...e){o()?.apply(this,e)}),ji(m,n),B(e,f),k()}xr([`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());mn(()=>()=>{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()),_i(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()),_i(a,()=>X.usageFilterModel,e=>X.usageFilterModel=e),R(`change`,c,()=>X.onUsageFilterChanged()),_i(c,()=>X.usageFilterProvider,e=>X.usageFilterProvider=e),B(e,i),k()}xr([`change`]);var HFe=z(`
        `,1);function UFe(e,t){O(t,!0);var n=Or(),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(),()=>fZ(FZ.cacheOverview.summary.total_saved_cost),()=>Xo(),()=>dZ(FZ.cacheOverview.summary.total_hits)]),B(e,t)},a=A(()=>FZ.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());a3(e,{size:18,get label(){return L(t)}})}},f=e=>{var t=Dr();I(e=>V(t,e),[()=>dZ(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());a3(e,{size:18,get label(){return L(t)}})}},y=e=>{var t=Dr();I(e=>V(t,e),[()=>fZ(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)},[()=>Yo(),()=>SFe(X.usageSummary,X.usageSummaryAll,X.usageLogHideCached),()=>Zo(),()=>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=Or(),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)},[()=>sR({start:EZ(r()+1),end:EZ(Math.min(r()+i(),n())),total:EZ(n())}),()=>Aa(),()=>Da()]),R(`click`,l,()=>t.onprev?.()),R(`click`,d,()=>t.onnext?.()),B(e,a)};H(o,e=>{n()>0&&e(s)}),B(e,a),k()}xr([`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=Yt({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:`});mn(()=>{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?tX:rX);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()}xr([`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):hZ(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:t4(),callback:e=>s(e)}},y:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:t4(),autoSkip:!1}}},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:n4(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}),Jl({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=>KEe(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(e4(),L(p).labels,L(p),{stacked:L(c)===`stacked`,costs:L(u),resolve:r4}):null}let g=A(()=>t.kind+`-usage-help-copy`),_=A(()=>t.kind===`session`?yre():pre());var v=Or(),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=Or(),n=P(t),r=e=>{{let t=A(()=>bo({noun:L(i).noun}));a3(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());l3(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}));a3(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;Z2(N(t),{build:h}),D(t),I(e=>n=mi(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)},[()=>yZ(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}),mi(i,`--label-color: ${e??``}`),G(i,`title`,t),V(o,L(n).label),V(c,r)},[()=>a4(L(n).label),()=>X.usageLabelChipTitle(L(n).label),()=>dZ(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)},[()=>dZ(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:fZ(L(n).cached_input_cost)}),()=>dZ(L(n).cached_input_tokens||0),()=>fie({input:dZ(L(n).local_cached_input_tokens||0),output:dZ(L(n).local_cached_output_tokens||0)}),()=>dZ((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)},[()=>dZ(L(n).input_tokens),()=>dZ(L(n).output_tokens),()=>dZ(F3(L(n))),()=>fZ(L(n).input_cost),()=>fZ(L(n).output_cost),()=>fZ(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}));a3(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()}xr([`click`]);var gIe=(e,t=f)=>{var n=Or(),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}),mi(n,`--label-color: ${e??``}`),G(n,`title`,a),V(i,t)},[()=>a4(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));mn(()=>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);wi(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 nX},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 iX},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 nX},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 iX},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))),()=>fZ(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))}),()=>vZ(L(t).timestamp),()=>WX.formatTimestamp(L(t).timestamp),()=>yZ(L(t))||`-`,()=>kFe(L(t)),()=>MFe(L(t)),()=>L(n)?jo({count:dZ(L(t).input_tokens)}):``,()=>L(n)?fZ(L(t).input_cost):dZ(L(t).input_tokens),()=>L(n)?jo({count:dZ(L(t).output_tokens)}):``,()=>L(n)?fZ(L(t).output_cost):dZ(L(t).output_tokens),()=>L(n)?j3(L(t),``):``,()=>L(n)?j3(L(t),jo({count:dZ(L(t).total_tokens)})+` +`+N3(L(t))):``,()=>L(n)?fZ(L(t).total_cost):dZ(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());a3(n,{size:20,get label(){return L(e)}})}D(t),B(e,t)},y=e=>{var t=DIe();o3(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)),Mi(p,()=>X.usageLogHideCached,e=>X.usageLogHideCached=e),B(e,a),k()}xr([`click`,`change`]);var AIe=z(`
        `);function jIe(e,t){O(t,!0);let n=`usage`;mn(()=>{Y.refreshTick,TX.page===n&&(X.fetchUsagePage(),v3.ensureLiveLogs())}),mn(()=>{TX.page===n&&(X.usageMode=TX.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:Ko()},{value:`costs`,label:Gc()}]);Q2(c,{get ariaLabel(){return L(e)},get options(){return L(t)},get value(){return X.usageMode},onchange:e=>X.toggleUsageMode(e)})}LZ(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,li([`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();Kr(N(a),()=>t.children??f),D(a),I(()=>{W(a,1,li([`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)}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 YX(e,{...a||{},label:t})}catch(e){return ZX(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?``:GX(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 XX(e,t,n,{...s||{},label:r})}catch(e){return ZX(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.`:GX(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:Qf(),chip:tp(),fieldLabel:ip(),placeholder:`/team/alpha`},label:{label:sp(),chip:up(),fieldLabel:sp(),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:pp()},{value:`daily`,label:gp()},{value:`weekly`,label:yp()},{value:`monthly`,label:Sp()},{value:`custom`,label:Tp()}]}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 Op();let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return jp();if(t.includes(`:`))return Pp()}}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:Lp()};let i=Number(t.amount);if(!Number.isFinite(i)||i<=0)return{payload:null,error:Bp()};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:Up()}:{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 fZ(e)}function XIe(e,t){let n=e||{},r=t||{};return gh({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 pp();case 86400:return gp();case 604800:return yp();case 2592e3:return Sp();default:return Kp({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 kTe;case 86400:return gX;case 604800:return STe;case 2592e3:return CTe;default:return WTe}}function nLe(e){let t=Math.max(0,Math.trunc(Number(e||0)));return t===1?Qp():Yp({count:t})}function _6(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return tm();case 86400:return im();case 604800:return sm();case 2592e3:return um();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`?pm():t===`config`?gm():ym({source:t})}function y6(e){let t=Number(e&&e.remaining);return Number.isFinite(t)?t<0?Tm({amount:fZ(Math.abs(t))}):Sm({amount:fZ(t)}):``}var b6=new class{#e=j(Yt([]));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(Yt(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 QX.budgetsVisible()}filteredBudgets(){return GIe(this.budgets,this.filter,this.sortBy)}async fetchBudgetsPage(){if(await QX.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:yh(),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:Sh(),unavailableMessage:zd()});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(),cZ.success(Th()),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(Oh({label:n})))return;this.resettingKey=t;let r=await Z3(`/admin/budgets/reset-one`,`POST`,YIe(e),{label:`reset budget`,errorFallback:jh(),unavailableMessage:zd()});if(this.resettingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,cZ.error(r.error);return}if(r.status===`error`){cZ.error(r.error);return}cZ.success(Ph()),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(Lh({label:n})))return;this.deletingKey=t;let r=await Z3(`/admin/budgets`,`DELETE`,JIe(e),{label:`delete budget`,errorFallback:Bh(),unavailableMessage:zd()});if(this.deletingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,cZ.error(r.error);return}if(r.status===`error`){cZ.error(r.error);return}this.budgets=s6(r.result.data),cZ.success(Uh())}}openResetDialog(){nZ.open({title:Kh(),titleId:`budgetResetDialogTitle`,inputId:`budget-reset-confirmation`,requiredText:`reset`,confirmLabel:Yh(),icon:pX,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:Qh(),unavailableStatuses:[]});if(this.resetAllLoading=!1,e.status!==`stale`){if(e.status!==`ok`){nZ.error=e.error;return}nZ.close(),cZ.success(tg()),TX.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=WX.formatTimestamp(e);return!t||t===`-`?``:t+` `+WX.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 YTe},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(()=>jm());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 uX},class:`budget-action-icon`});var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>Om()]),B(e,n)},$$slots:{default:!0}})}var S=F(x,2);{let e=A(()=>b6.resettingKey===a6(L(t))?Um():Bm()),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 pX},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))?Lm():Pm()]),B(e,r)},$$slots:{default:!0}})}var C=F(S,2);{let e=A(()=>b6.deletingKey===a6(L(t))?th():Qm()),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 vX},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))?Ym():Km()]),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`),mi(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),mi(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),mi(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: `+a4(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)),()=>ih(),()=>ZIe(L(t)),()=>p6(L(t)),()=>sh({spent:fZ(L(t).spent),amount:fZ(L(t).amount),remaining:y6(L(t))}),()=>p6(L(t)),()=>({"budget-bar-fill-danger":f6(L(t))>=1}),()=>uh({spent:fZ(L(t).spent),amount:fZ(L(t).amount)}),()=>y6(L(t)),()=>uh({spent:fZ(L(t).spent),amount:fZ(L(t).amount)}),()=>y6(L(t)),()=>sf(),()=>QIe(L(t)),()=>eLe(L(t)),()=>ph(),()=>m6(L(t)),()=>m6(L(t)),()=>$Ie(L(t)),()=>r(L(t).period_start),()=>WX.formatTimestamp(L(t).period_start),()=>_6(L(t)),()=>r(L(t).period_end),()=>WX.formatTimestamp(L(t).period_end),()=>WX.formatTimestamp(L(t).period_start),()=>_6(L(t)),()=>WX.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,mX),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?.()}eZ(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=Or();Kr(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=Or();Kr(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());$X(S,{get label(){return L(e)},onclick:()=>t.onclose?.()})}D(_);var C=F(_,2);Kr(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=Or();Kr(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,li([`model-editor`,p()])),G(h,`aria-label`,i()||r()),g.noValidate=m(),ie.disabled=o()||s(),V(se,o()?l():c())}),br(`submit`,g,e=>{e.preventDefault(),t.onsubmit?.()}),B(e,h)},$$slots:{default:!0}}),k()}xr([`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),Kr(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?gf():yf()),t=A(()=>Sf()),r=A(()=>Tf());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(()=>Of());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()),_i(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();wi(r),I(e=>{G(r,`placeholder`,e),Ti(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(()=>sf());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()),_i(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(()=>jf());C6(e,{id:`budget-period-seconds`,get label(){return L(t)},children:(e,t)=>{var n=hLe();wi(n),I(()=>n.disabled=b6.editing),ji(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(()=>Pf());C6(u,{id:`budget-amount`,get label(){return L(e)},children:(e,t)=>{var n=gLe();wi(n),I(()=>G(n,`data-modal-autofocus`,b6.editing||void 0)),ji(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),[()=>Lf()]),B(e,t)};H(d,e=>{b6.editing&&e(f)}),B(e,r)},$$slots:{default:!0}})}eZ(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(()=>Uf());$X(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 mX},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)},[()=>Bf(),()=>XIe(b6.overridePendingPayload,b6.overrideExistingBudget),()=>wa(),()=>b6.formSubmitting?Kf():Yf()]),br(`submit`,s,e=>{e.preventDefault(),b6.confirmOverride()}),R(`click`,d,()=>b6.closeOverrideDialog()),B(e,n)},$$slots:{default:!0}}),B(e,r),k()}xr([`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),mn(()=>{Y.refreshTick,TX.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),[()=>Dd()]),B(e,t)},t=e=>{Ve();var t=Dr();I(e=>V(t,e),[()=>Nd()]),B(e,t)},n=A(()=>Ad());l3(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 dX},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)},[()=>Id()]),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);MZ(d,{});var f=F(d,2),p=e=>{var t=wLe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>zd()]),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(()=>Hd());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(()=>Gd()),t=A(()=>Jd());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)},[()=>Zd(),()=>ef(),()=>rf(),()=>sf()]),_i(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),[()=>uf()]),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),[()=>pf()]),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()}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:r_e(),chip:o_e(),fieldLabel:SA(),placeholder:`/team/alpha`},provider:{label:l_e(),chip:f_e(),fieldLabel:h_e(),placeholder:`openai`},model:{label:wY(),chip:b_e(),fieldLabel:wY(),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:C_e()},{value:`hour`,label:E_e()},{value:`day`,label:k_e()},{value:`concurrent`,label:M_e()},{value:`custom`,label:F_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)?EZ(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:V_e({field:j6(t)})};let i=String(t.period||``)===`concurrent`,a=t.period_seconds;if(a===``||a==null)return{error:R_e()};let o=Number(a);if(!Number.isInteger(o)||o<0||o===0&&!i)return{error:W_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:X_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:$_e()};l.max_requests=e}if(c){let e=Number(c);if(!Number.isInteger(e)||e<=0)return{error:nve()};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:ave(),scope:`model`,subject:U6(n),hint:``,items:r.filter(e=>V6(e,n.provider,n.model))}),i.push({key:`provider`,title:cve({provider:n.provider}),scope:`provider`,subject:n.provider,hint:n.kind===`model`?dve():``,items:r.filter(e=>H6(e,n.provider))}),i.push({key:`global`,title:mve(),scope:`user_path`,subject:`/`,hint:_ve(),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=bve({subject:e});return t===`table-action-btn-active`?n+` (`+Cve()+`)`:t?n+` (`+Eve()+`)`:n}function GLe(e){if(F6(e))return bY({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(Yt([]));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(Yt({kind:``,provider:``,model:``,title:``}));get rateLimitInspector(){return L(this.#f)}set rateLimitInspector(e){M(this.#f,e,!0)}#p=j(Yt(E6()));get rateLimitForm(){return L(this.#p)}set rateLimitForm(e){M(this.#p,e,!0)}rateLimitsEnabled(){return QX.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 QX.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:Age(),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:Nge(),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(),cZ.success(n?Ige():zge())}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:Hge(),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:Gge(),unavailableStatuses:[]});if(this.rateLimitDeletingKey=``,n.status!==`stale`){if(n.status!==`ok`){cZ.error(n.error);return}this.rateLimits=z6(n.result.data),cZ.success(Jge())}}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:Zge(),unavailableStatuses:[]});if(this.rateLimitResettingKey=``,n.status!==`stale`){if(n.status!==`ok`){cZ.error(n.error);return}this.rateLimits=z6(n.result.data),cZ.success(e_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?Pj():KD()),n=A(()=>Lj()),r=A(()=>Bj());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(()=>Uj());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()),_i(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();wi(n),I(e=>{G(n,`placeholder`,e),G(n,`data-modal-autofocus`,!Z.rateLimitEditing||void 0),Ti(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(()=>Kj());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()),_i(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(()=>Yj());C6(e,{id:`rate-limit-period-seconds`,get label(){return L(t)},children:(e,t)=>{var n=YLe();wi(n),ji(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`?Qj():tM());C6(l,{id:`rate-limit-max-requests`,get label(){return L(e)},children:(e,t)=>{var n=XLe();wi(n),I(()=>G(n,`data-modal-autofocus`,Z.rateLimitEditing?!0:void 0)),ji(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(()=>iM());C6(e,{id:`rate-limit-max-tokens`,get label(){return L(t)},children:(e,t)=>{var n=ZLe();wi(n),ji(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),[()=>uM()]),B(e,t)};H(m,e=>{Z.rateLimitEditing&&e(h)}),I(e=>V(p,e),[()=>sM()]),B(e,n)},$$slots:{default:!0}})}k()}xr([`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`?UTe:XY);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)},[()=>Bhe({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))?YY:_X);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(()=>Yhe());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 uX},class:`budget-action-icon`});var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>yO()]),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))?Qhe():tge()),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 pX},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))?ige():sge()]),B(e,r)},$$slots:{default:!0}})}var w=F(C,2),T=e=>{{let n=A(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(L(t))?uge():pge()),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 vX},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))?gge():yge()]),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),mi(c,i),u=W(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),V(p,d)},[()=>SO(),()=>Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(L(t).in_flight,L(t).max_requests),()=>bY({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}),()=>bY({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),mi(c,i),u=W(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),V(p,d),V(h,f)},[()=>TO(),()=>Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(L(t).requests_used,L(t).max_requests),()=>xY({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}),()=>xY({used:Z.formatRateLimitNumber(L(t).requests_used),limit:Z.formatRateLimitNumber(L(t).max_requests)}),()=>CY({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),mi(c,i),u=W(l,1,`budget-bar-fill budget-bar-fill-usage`,null,u,o),V(p,d),V(h,f)},[()=>OO(),()=>Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens)+`%`,()=>Z.rateLimitUsagePercent(L(t).tokens_used,L(t).max_tokens),()=>SY({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}),()=>SY({used:Z.formatRateLimitNumber(L(t).tokens_used),limit:Z.formatRateLimitNumber(L(t).max_tokens)}),()=>CY({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))?Uhe():Khe(),()=>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),mn(()=>{Y.refreshTick,TX.page===`rate-limits`&&Z.fetchRateLimitsPage()});let n=A(()=>Z.filteredRateLimits());var r=uRe(),i=N(r),a=N(i);l3(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),[()=>UD()]),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 dX},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)},[()=>KD()]),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);MZ(u,{});var d=F(u,2),f=e=>{var t=sRe(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>YD()]),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(()=>QD()),t=A(()=>tO());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),[()=>iO()]),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),[()=>sO()]),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()}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 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:kye(),cost:Mye(),adaptive:Fye()};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?Ug():e.valid?Bye():jY():jY()}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?YK():Ug());let n=Array.isArray(e.user_paths)?e.user_paths:[];return n.length>0&&t.push(QK({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()||Uye()}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(tq({count:n})),r>0&&i.push(iq({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:UK(),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:KK(),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||iK());return t?BG({subject:n}):PG({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:jZ.models,aliases:this.aliases,virtualModelsAvailable:this.virtualModelsAvailable,activeCategory:jZ.activeCategory}));get displayModels(){return L(this.#T)}set displayModels(e){M(this.#T,e)}#E=A(()=>d8(this.displayModels,jZ.models,this.modelOverrideViews));get displayModelGroups(){return L(this.#E)}set displayModelGroups(e){M(this.#E,e)}#D=A(()=>wRe(this.displayModels,jZ.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!jZ.filter&&t>=this.displayModels.length?this.displayModelGroups:d8(e.slice(0,t),jZ.models,this.modelOverrideViews)});get filteredDisplayModelGroups(){return L(this.#O)}set filteredDisplayModelGroups(e){M(this.#O,e)}#k=A(()=>ORe(jZ.models,this.modelOverrideViews));get globalScopeRow(){return L(this.#k)}set globalScopeRow(e){M(this.#k,e)}modelsBusy(){return!!(jZ.loading||this.modelsRendering)}modelLoadingText(){if(jZ.loading)return this.displayModels.length>0?t_():Qg();let e=this.filteredDisplayModels.length;return i_({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 YX(`/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=kve()}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 jZ.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?Yg():this.rowToggleRestricted(e)?Kg():this.rowToggleEnabled(e)?Bg():Ug()}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?TG({name:String(e.alias&&e.alias.name||``)}):String(e.display_name||e.access&&e.access.selector||OG()),this.rowToggleEnabled(e)?SG({subject:t.trim()}):yG({subject:t.trim()})}async toggleRowEnabled(e){if(this.virtualModelsAvailable&&!(!e||this.rowTogglingKey===e.key)){if(p8(e)){cZ.success(jG());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 XX(`/admin/virtual-models`,`PUT`,n,{label:`alias state`});if(e.status===503){this.virtualModelsAvailable=!1,cZ.error(ug());return}if(e.stale)return;if(!e.ok){cZ.error(e.status===401?iz():KX(e,TY()));return}cZ.success(n.enabled?Pve():Lve()),this.fetchVirtualModels()}catch(e){console.error(`Failed to toggle alias state:`,e),cZ.error(TY())}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 XX(`/admin/virtual-models`,n,r,{label:`model access`});if(e.status===503){this.virtualModelsAvailable=!1,cZ.error(ug());return}if(!(n===`DELETE`&&e.status===404)){if(e.stale)return;if(!e.ok){cZ.error(e.status===401?iz():KX(e,EY()));return}}cZ.success(i?Hve():Gve()),Promise.all([jZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to toggle model access:`,e),cZ.error(EY())}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:DY(),notice:OY(),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:Xwe({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:Qve(),notice:tye()})}async mutateVirtualModelRow(e){if(!this.rowDeletingKey&&window.confirm(e.confirmMessage)){this.rowDeletingKey=e.rowKey;try{let t=await XX(`/admin/virtual-models`,e.method,e.payload,{label:e.operation});if(t.status===503){this.virtualModelsAvailable=!1,cZ.error(ug());return}if(!(e.ignoreNotFound&&t.status===404)){if(t.stale)return;if(!t.ok){cZ.error(t.status===401?iz():KX(t,e.failureMessage));return}}this.virtualModelsAvailable=!0,cZ.success(e.notice),Promise.all([jZ.fetchModels(),this.fetchVirtualModels()])}catch(t){console.error(e.failureMessage,t),cZ.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(QX.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?Ug():this.vmFormToggleRestricted()?Kg():Bg()}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=yg(),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(jZ.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(jZ.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=s_(),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:u_({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=iye();return}let{payload:e,source:t,isRedirect:n,isRename:r}=RRe(this.vmForm,this.vmFormOriginalSource,this.vmFormMode);if(!t){this.vmFormError=uye();return}if(this.vmFormError=``,this.vmFormMode!==`edit`){let e=this.findExistingAliasByName(t),r=e?null:this.findModelOverrideView(t);if(e||r){let n=e?$we({name:e.name}):nTe({source:t});if(!window.confirm(n)){this.vmFormError=pye();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(aTe({name:t}))){this.vmFormError=kY();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=cTe({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(dTe({name:t}))){this.vmFormError=kY();return}}}}this.vmSubmitting=!0;try{let t=await XX(`/admin/virtual-models`,`PUT`,e,{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=ug();return}if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?iz():KX(t,AY());return}let r=!n&&t.status===204;this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),cZ.success(n?bye():r?Cye():Eye()),Promise.all([jZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to save virtual model:`,e),this.vmFormError=AY()}finally{this.vmSubmitting=!1}}async deleteVirtualModel(){if(this.vmFormManaged){this.vmFormError=sye();return}let e=String(this.vmForm.source||this.vmFormOriginalSource||``).trim();if(!(!e||!this.vmFormHasExisting)&&window.confirm(mTe({source:e}))){this.vmDeleting=!0,this.vmFormError=``;try{let t=await XX(`/admin/virtual-models`,`DELETE`,{source:e},{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=ug();return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?iz():KX(t,DY());return}}this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),cZ.success(OY()),Promise.all([jZ.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to delete virtual model:`,e),this.vmFormError=DY()}finally{this.vmDeleting=!1}}}},C8=[{value:`input_per_mtok`,label:Dbe(),group:IY()},{value:`output_per_mtok`,label:Abe(),group:IY()},{value:`cached_input_per_mtok`,label:Nbe(),group:IY()},{value:`cache_write_per_mtok`,label:Ibe(),group:IY()},{value:`reasoning_output_per_mtok`,label:zbe(),group:IY()},{value:`batch_input_per_mtok`,label:Hbe(),group:LY()},{value:`batch_output_per_mtok`,label:Gbe(),group:LY()},{value:`audio_input_per_mtok`,label:Jbe(),group:RY()},{value:`audio_output_per_mtok`,label:Zbe(),group:RY()},{value:`per_image`,label:exe(),group:zY()},{value:`input_per_image`,label:rxe(),group:zY()},{value:`per_second_input`,label:oxe(),group:kxe()},{value:`per_second_output`,label:lxe(),group:Mxe()},{value:`per_character_input`,label:fxe(),group:RY()},{value:`per_page`,label:hxe(),group:BY()},{value:`per_request`,label:vxe(),group:BY()}];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 VY();default:return e?String(e):zxe()}}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?Gxe({selector:t}):Hxe()}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:Jxe()};if(r.has(e))return{error:Zxe()};r.add(e);let i=String(t.value||``).trim();if(i===``)return{error:eSe({field:w8(e)})};let a=Number(i);if(!Number.isFinite(a)||a<0)return{error:rSe()};n[e]=a}let i=Array.isArray(t)?t:[];return i.length>0&&(n.tiers=T8(i)),Object.keys(n).length===0?{error:oSe()}:{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?lSe():n?i[e.value]||VY():HY()}}).filter(e=>e.source!==HY()||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(Yt([]));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(Yt([]));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(Yt([]));get modelPricingOverrideFormPreservedTiers(){return L(this.#f)}set modelPricingOverrideFormPreservedTiers(e){M(this.#f,e,!0)}#p=j(Yt([]));get modelPricingOverrideRows(){return L(this.#p)}set modelPricingOverrideRows(e){M(this.#p,e,!0)}#m=j(Yt({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 YX(`/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=Kye()}}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||YG());return t?LG({subject:n}):PG({subject:n})}modelRowPricing(e){return j8(e,this.modelPricingOverrideViews).pricing}openGlobalPricingOverrideEdit(){this.openModelPricingOverrideForm({displayName:MY(),selector:`/`,scope:`global`,scopeOptions:[{value:`global`,label:MY(),selector:`/`}],row:null})}openProviderPricingOverrideEdit(e){let t=E8(e&&e.provider_name);t&&this.openModelPricingOverrideForm({displayName:Zye({provider:e.display_name||e.provider_name||t}),selector:t,scope:`provider`,scopeOptions:[{value:`provider`,label:ebe(),selector:t}],row:null})}openModelPricingOverrideEdit(e){if(!e||e.is_alias)return;let t=O8(e),n=k8(e),r=[{value:`exact`,label:rbe(),selector:t}];n&&n!==t&&r.push({value:`model`,label:obe(),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||lbe(),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=fbe();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 XX(`/admin/model-pricing-overrides`,`PUT`,n,{label:`model pricing override`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=NY();return}if(e.stale)return;if(!e.ok){this.modelPricingOverrideError=e.status===401?iz():KX(e,PY());return}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),cZ.success(ybe()),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to save model pricing override:`,e),this.modelPricingOverrideError=PY()}finally{this.modelPricingOverrideSubmitting=!1}}async deleteModelPricingOverride(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!(!e||!this.modelPricingOverrideFormHasExistingOverride)&&window.confirm(_Te({selector:e}))){this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let t=await XX(`/admin/model-pricing-overrides`,`DELETE`,{selector:e},{label:`model pricing override`});if(t.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=NY();return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.modelPricingOverrideError=t.status===401?iz():KX(t,FY());return}}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),cZ.success(wbe()),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to delete model pricing override:`,e),this.modelPricingOverrideError=FY()}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()}xr([`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(YG(),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 nX},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(iK(),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 uX},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?Uv():e&&e.managed?S_():T_()}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:OG();return z8(e,t)?CCe({model:n}):bCe({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(Yt([]));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(Yt([]));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(Yt({}));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(Yt(G8()));get failoverForm(){return L(this.#m)}set failoverForm(e){M(this.#m,e,!0)}failoverEnabled(){return QX.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 YX(`/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=mSe()}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=UY();return}if(e.enabled&&e.fallback_models.length===0){this.failoverError=ySe();return}this.failoverSaving=!0,this.failoverError=``;try{let t=await XX(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(t.stale)return;if(!t.ok){this.failoverError=WY();return}cZ.success(wSe()),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to save failover mapping:`,e),this.failoverError=WY()}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(DSe({source:t}))){this.failoverSaving=!0,this.failoverError=``;try{let e=await XX(`/admin/failover`,`DELETE`,{primary_model:t},{label:`failover mapping`});if(e.stale)return;if(!e.ok){this.failoverError=GY();return}cZ.success(MSe()),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to remove failover mapping:`,e),this.failoverError=GY()}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=UY();return}this.failoverGenerating=!0,this.failoverError=``;try{let t=await XX(`/admin/failover/generate`,`POST`,{primary_model:e},{label:`failover generation`});if(t.stale)return;if(!t.ok){this.failoverError=KY();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=LSe();return}this.setFailoverFormTargets(i),cZ.success(BSe({count:i.length})),this.focusFailoverEditor()}catch(e){console.error(`Failed to generate failover mapping:`,e),this.failoverError=KY()}finally{this.failoverGenerating=!1}}openFailoverResetDialog(){nZ.open({title:USe(),titleId:`failoverResetDialogTitle`,inputId:`failover-reset-confirmation`,message:KSe(),requiredText:`remove`,confirmLabel:YSe(),icon:vX,dialogClass:`budget-reset-dialog`,onConfirm:async()=>{await this.resetFailoverRules(),this.failoverError&&(nZ.error=this.failoverError)}})}async resetFailoverRules(){if(!this.failoverSaving){this.failoverSaving=!0,this.failoverError=``;try{let e=await XX(`/admin/failover/reset`,`POST`,void 0,{label:`failover removal`});if(e.stale)return;if(!e.ok){this.failoverError=qY();return}this.failoverRules=L8(e.data),this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,cZ.success(eCe()),nZ.close()}catch(e){console.error(`Failed to remove failover mappings:`,e),this.failoverError=qY()}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 XX(`/admin/failover/generate`,`POST`,void 0,{label:`failover generation`});if(e.stale)return;if(!e.ok){this.failoverError=JY();return}this.failoverGeneratedRules=L8(e.data),this.selectAllFailoverDrafts(this.failoverGeneratedRules)}catch(e){console.error(`Failed to generate failover mappings:`,e),this.failoverError=JY()}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 aCe({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=cCe();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=dCe();return}let n=await XX(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(n.stale)return;if(!n.ok){this.failoverError=WY();return}}cZ.success(mCe({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=_Ce()}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)},[()=>p_(),()=>p_()]),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)},[()=>g_(),()=>g_()]),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)},[()=>y_(),()=>S_()]),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)},[()=>O_()]),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?B_({model:t.row.display_name}):L_({model:t.row.display_name}),()=>S8.rowDeletingKey===t.row.key?B_({model:t.row.display_name}):L_({model:t.row.display_name}),()=>!!S8.rowDeletingKey,()=>P_()]),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)},[()=>j_(),()=>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)},[()=>U_(),()=>K_({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,Ir,(e,r)=>{var i=gze(),a=N(i,!0);D(i),I(e=>{W(i,1,li(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?uK({name:t.row.alias.name}):sK({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 vX},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(()=>pK({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 uX},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(UG({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 nX},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 JTe},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 oX},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(()=>gK({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 uX},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(QG({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 uX},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,()=>li(kRe(t.row))]),B(e,a),k()}xr([`click`]);var xze={headerLines:[sq()],value:e=>(e.model?.metadata?.modes??[]).join(`, `)||`-`};function q8(e,t){return{headerLines:e,class:`col-price`,value:t}}var J8=q8([uq()],(e,t)=>pZ(t?.input_per_mtok)+` / `+pZ(t?.output_per_mtok)),Y8={all:[J8],text_generation:[xze,J8,q8([pq()],(e,t)=>pZ(t?.cached_input_per_mtok))],embedding:[q8([gq(),`$/MTok`],(e,t)=>pZ(t?.input_per_mtok))],image:[q8([yq()],(e,t)=>mZ(t?.per_image))],audio:[q8([Sq()],(e,t)=>mZ(t?.per_second_input)),q8([Tq()],(e,t)=>mZ(t?.per_character_input))],video:[q8([Oq()],(e,t)=>mZ(t?.per_second_input)),q8([jq()],(e,t)=>mZ(t?.per_second_output))],utility:[q8([Pq()],(e,t)=>mZ(t?.per_page)),q8([Lq()],(e,t)=>mZ(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(()=>jZ.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),Ir,(e,t)=>{var n=Tze();U(n,21,()=>L(t).headerLines,Ir,(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,li(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(KG({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 nX},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 oX},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(tK({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 uX},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),[()=>Lg()]),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)}xr([`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);wi(c);var l=F(c,2),u=e=>{var t=Nze();wi(t),I((e,n)=>{G(t,`placeholder`,e),t.disabled=S8.vmFormManaged,G(t,`aria-label`,n)},[()=>uy(),()=>sy()]),ji(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(()=>py());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 vX},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)},[()=>iy()]),ji(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;mn(()=>{n.vmFormOpen&&QX.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||p_()]),B(e,t)},r=e=>{Ve();var t=Dr();I(e=>V(t,e),[()=>sv()]),B(e,t)},i=A(()=>iv());l3(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=Or(),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(()=>Y_()),a=A(()=>n.vmDeleting||n.vmFormManaged),o=A(()=>n.vmFormMode===`edit`?Q_():tv()),s=A(()=>n.vmFormMode===`edit`?mX:dX);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),[()=>uv()]),B(e,t)};H(i,e=>{n.vmFormManaged&&e(a)});var o=F(i,2);{let e=A(()=>pv());C6(o,{id:`virtual-model-source`,get label(){return L(e)},children:(e,t)=>{var r=Rze();wi(r),I(()=>r.disabled=n.vmFormSourceLocked||n.vmFormManaged),ji(r,()=>n.vmForm.source,e=>n.vmForm.source=e),B(e,r)},$$slots:{default:!0}})}var s=F(o,2);U(s,21,()=>jZ.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,Ir,(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 dX},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(()=>yv());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),_i(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);wi(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)},[()=>Sv()]),Mi(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),[()=>Tv()]),B(e,t)},t=e=>{Ve();var t=Dr();I(e=>V(t,e),[()=>jv()]),B(e,t)},r=A(()=>Ov());l3(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(()=>Pv());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},[()=>Lv()]),ji(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(()=>Bv());C6(e,{id:`virtual-model-slowdown`,get label(){return L(t)},children:(e,t)=>{var r=Uze(),i=P(r);wi(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)},[()=>Uv(),()=>Kv()]),ji(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),[()=>Yv({default:n.vmFormDefaultEnabled?Qv():ty(),effective:n.vmFormEffectiveEnabled?Qv():ty()})]),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(()=>yK()),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},[()=>O_(),()=>gv()]),R(`click`,m,()=>n.addVmTarget()),ji(C,()=>n.vmForm.user_paths,e=>n.vmForm.user_paths=e),B(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}k()}xr([`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)},[()=>Sy(),()=>n.modelPricingOverrideFormDisplayName||n.modelPricingOverrideForm.selector||Ty()]),B(e,t)},r=e=>{var t=Or(),r=P(t),i=e=>{var t=Jze(),r=N(t,!0);D(t),I(e=>{t.disabled=n.modelPricingOverrideSubmitting,V(r,e)},[()=>ib()]),R(`click`,t,()=>n.deleteModelPricingOverride()),B(e,t)};H(r,e=>{n.modelPricingOverrideFormHasExistingOverride&&e(i)}),B(e,t)},i=A(()=>gy()),a=A(()=>yy());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(()=>Oy());C6(a,{id:`model-pricing-override-selector`,get label(){return L(e)},children:(e,t)=>{var r=Yze();wi(r),ji(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(()=>jy());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)),_i(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);wi(f),D(l);var p=F(l,2);{let e=A(()=>Uy({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 xX},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)},[()=>Ly(),()=>By()]),_i(c,()=>L(t).field,e=>L(t).field=e),ji(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 dX},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),[()=>Yy()]),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),[()=>tb()]),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?`-`:mZ(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)},[()=>Py(),()=>Ky(),()=>Ly(),()=>Qy()]),R(`click`,f,()=>n.addModelPricingOverrideRow()),B(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}k()}xr([`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`)},[()=>ub()]),B(e,t)},n=e=>{var t=Or(),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)},[()=>Pb()]),R(`click`,t,()=>Q.deleteFailoverRule()),B(e,t)};H(n,e=>{Q.failoverFormMode===`edit`&&!Q.failoverFormManaged&&e(r)}),B(e,t)},r=A(()=>sb()),i=A(()=>Q.failoverGenerating||Q.failoverFormManaged),a=A(()=>Q_());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),[()=>pb()]),B(e,t)};H(r,e=>{Q.failoverFormManaged&&e(i)});var a=F(r,2);U(a,21,()=>jZ.models,Ir,(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(()=>gb());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);wi(a);var o=F(a,2),s=e=>{{let t=A(()=>Sb());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 vX},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,Ir,(e,t,n)=>{var r=sBe(),i=N(r);wi(i);var a=F(i,2);{let e=A(()=>Sb());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 vX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r),I(e=>{i.disabled=Q.failoverFormManaged,G(i,`aria-label`,e)},[()=>yb()]),ji(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 dX},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 bX},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)},[()=>yb(),()=>Tb(),()=>Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving||!Q.failoverEnabled(),()=>Q.failoverGenerating?Ob():jb()]),ji(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()}xr([`click`]);var dBe=z(` `),fBe=z(`
        `),pBe=z(``),mBe=z(`
        `),t5=z(`

        `),hBe=z(``),gBe=z(``);function n5(e,t){O(t,!0),eZ(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(()=>Kb());$X(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(()=>Yb());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(()=>Qb()),t=A(()=>tx());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 QY},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()?sx():ix()]),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);wi(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)=>{Ei(r,e),r.disabled=Q.failoverDraftSaving,G(r,`aria-label`,t),V(o,n),V(c,i)},[()=>Q.failoverDraftSelected(L(t)),()=>ux({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),[()=>px()]),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),[()=>gx()]),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 mX},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)},[()=>Lb(),()=>Bb(),()=>Ub(),()=>wa(),()=>Q.failoverGenerating||Q.failoverDraftSaving||Q.selectedFailoverDraftCount()===0,()=>Q.failoverDraftSaving?yx():Sx()]),R(`click`,te,()=>Q.closeFailoverDraftsModal()),R(`click`,re,()=>Q.saveSelectedFailoverDrafts()),B(e,n)},$$slots:{default:!0}}),k()}xr([`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()}eZ(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),$X(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),[()=>YD()]),B(e,t)},p=e=>{var t=Or();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 dX},class:`table-icon-svg`});var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>pO()]),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),[()=>gO()]),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))?YY:_X);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 uX},class:`budget-action-icon`});var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>yO()]),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??``}`),mi(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(),TX.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)},[()=>uO(),()=>UD()]),R(`click`,h,()=>Z.closeRateLimitInspector()),B(e,n)},$$slots:{default:!0}}),k()}xr([`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),mn(()=>{Y.refreshTick,TX.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:SK,text_generation:TK,embedding:OK,image:jK,audio:PK,video:LK,utility:BK};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),[()=>sg({count:jZ.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);MZ(d,{});var f=F(d,2),p=e=>{var t=i5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>ug()]),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,()=>jZ.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:jZ.activeCategory===L(t).category}),V(o,e),V(c,L(t).count)},[()=>i(L(t))]),R(`click`,n,()=>jZ.selectCategory(L(t).category)),B(e,n)}),D(t),B(e,t)};H(v,e=>{jZ.categories.length>0&&e(y)});var b=F(v,2),x=e=>{var t=ABe(),n=N(t),r=N(n);{let e=A(()=>pg()),t=A(()=>gg());z3(r,{get placeholder(){return L(e)},get label(){return L(t)},get value(){return jZ.filter},set value(e){jZ.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 dX},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)},[()=>Sg(),()=>Tg(),()=>yg()]),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||jZ.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||jZ.filter)&&e(te)});var ne=F(E,2),re=e=>{var t=a5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Og()]),B(e,t)};H(ne,e=>{S8.displayModels.length===0&&!jZ.loading&&!L(n)&&!jZ.filter&&(jZ.activeCategory===`all`||!jZ.activeCategory)&&e(re)});var ie=F(ne,2),ae=e=>{var t=a5(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>jg()]),B(e,t)};H(ie,e=>{S8.displayModels.length===0&&!jZ.loading&&!L(n)&&!jZ.filter&&jZ.activeCategory&&jZ.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),[()=>Pg()]),B(e,t)};H(oe,e=>{S8.displayModels.length>0&&S8.filteredDisplayModels.length===0&&jZ.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),[()=>ig()]),B(e,a),k()}xr([`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?uJ():pJ()}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`?tY():t===`provider_model_path`?iY():t===`provider_path`?sY():t===`path`?uY():t===`provider`?pY():gY()}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`?yY():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 uB();if(t.includes(`:`))return pB()}}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 Ume();if(s&&!o)return Kme();if(s){let e=_5(t,o,r),n=o===i&&s===a;if(!e.includes(s)&&!n)return Yme()}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 Qme();if(!Number.isInteger(e.step)||e.step<0)return the();if(d.has(e.ref))return ihe();d.add(e.ref)}return``}var E5=new class{#e=j(Yt([]));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(Yt(s5()));get hydratedScope(){return L(this.#u)}set hydratedScope(e){M(this.#u,e,!0)}#d=j(Yt([]));get guardrailRefs(){return L(this.#d)}set guardrailRefs(e){M(this.#d,e,!0)}#f=j(Yt(o5()));get form(){return L(this.#f)}set form(e){M(this.#f,e,!0)}#p=null;failoverVisible(){return QX.booleanFlag(`FAILOVER_ENABLED`,!0)}featureCaps(){return{cache:QX.cacheVisible(),audit:QX.auditVisible(),usage:QX.usageVisible(),budget:QX.budgetsVisible(),guardrails:QX.guardrailsVisible(),failover:this.failoverVisible()}}get filteredWorkflows(){return HBe(this.workflows,this.filter)}providerOptions(){return g5(jZ.models,this.hydratedScope)}modelOptions(e){return _5(jZ.models,e,this.hydratedScope)}activeScopeMatch(){return w5(this.workflows,this.form,this.formHydrated)}submitMode(){return this.activeScopeMatch()?`save`:`create`}submitLabel(){return this.submitMode()===`save`?Bq():tA()}submittingLabel(){return this.submitMode()===`save`?Uq():Kq()}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?Qq():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([QX.ensureLoaded(),this.fetchWorkflows(),this.fetchGuardrailRefs()])}async submitForm(){if(this.submitting)return;this.formError=``;let e=this.buildRequest(),t=GBe(e,{models:jZ.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}cZ.success(tJ()),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(iJ({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`){cZ.error(e.error);return}cZ.success(sJ()),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:`});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()?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 rX}}),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()}xr([`click`]);var D5=(e,t)=>{let n=()=>(t?.()).icon,r=()=>(t?.()).label,i=vt(()=>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,li([`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:QTe,label:Cwe(),variant:`workflow-node-endpoint`}));D5(c,()=>L(e))}var l=F(c,4);{let e=A(()=>({icon:aX,label:Ewe(),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:aX,label:BA(),state:n().cacheNodeClass,badge:n().cacheStatusLabel}));D5(i,()=>L(e))}I(()=>W(r,1,li([`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:yX,label:YA(),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:qTe,label:KE(),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:lX,label:QA(),state:n().failoverNodeClass,badge:n().failoverStatusLabel,sub:n().failoverTargetLabel}));D5(i,()=>L(e))}I(()=>W(r,1,li([`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:OTe,label:kwe(),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:wTe,label:KA(),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:ATe,label:Mwe(),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),[()=>UE()]),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,li([`workflow-conn`,n().aiConnClass]),`svelte-nbptrg`),W(b,1,li([`workflow-conn`,n().responseConnClass]),`svelte-nbptrg`)}),B(e,r),k()}function tVe(e){let t=p5(e).length;return t===0?``:t===1?SJ():yJ({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`?Fwe():Rwe()}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)?Vwe():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?Wwe():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??``}`),[()=>QA(),()=>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)},[()=>TJ({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),[()=>YE()]),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)},[()=>KE(),()=>L(a).length?yJ({count:L(a).length}):gJ()]),B(e,t)},E=A(()=>QX.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(()=>UJ({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 uX},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),()=>OJ({name:L(i)}),()=>T5(t.workflow)?jJ():PJ(),()=>E5.deactivatingID===t.workflow.id?LJ():BJ(),()=>KJ({version:t.workflow.version}),()=>YJ({date:WX.formatTimestamp(t.workflow.created_at)}),()=>QJ({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()}xr([`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`?Qk():tA()]),B(e,t)},n=A(()=>Kk()),r=A(()=>Yk());l3(e,{copyId:`workflow-help-copy`,get label(){return L(n)},get text(){return L(r)},title:t,$$slots:{title:!0}})}},n=A(()=>Uk()),r=A(()=>E5.submitLabel()),i=A(()=>E5.submittingLabel()),a=A(()=>E5.submitMode()===`create`?dX:mX);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(()=>iA());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),[()=>sA()]),R(`change`,n,e=>E5.setProvider(e.currentTarget.value)),_i(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(()=>uA());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),[()=>pA()]),_i(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(()=>gA());C6(s,{id:`workflow-name`,get label(){return L(e)},children:(e,t)=>{var n=zVe();wi(n),I(e=>G(n,`placeholder`,e),[()=>yA()]),ji(n,()=>E5.form.name,e=>E5.form.name=e),B(e,n)},$$slots:{default:!0}})}var c=F(s,2);{let e=A(()=>SA());C6(c,{id:`workflow-user-path`,get label(){return L(e)},children:(e,t)=>{var n=BVe();wi(n),ji(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(()=>PA());C6(h,{id:`workflow-description`,get label(){return L(e)},children:(e,t)=>{var n=VVe();at(n),I(e=>G(n,`placeholder`,e),[()=>LA()]),ji(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);wi(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>BA()]),Mi(n,()=>E5.form.features.cache,e=>E5.form.features.cache=e),B(e,t)},y=A(()=>QX.cacheVisible());H(_,e=>{L(y)&&e(v)});var b=F(_,2),x=e=>{var t=U5(),n=N(t);wi(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>UA()]),Mi(n,()=>E5.form.features.audit,e=>E5.form.features.audit=e),B(e,t)},S=A(()=>QX.auditVisible());H(b,e=>{L(S)&&e(x)});var C=F(b,2),w=e=>{var t=U5(),n=N(t);wi(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>KA()]),Mi(n,()=>E5.form.features.usage,e=>E5.form.features.usage=e),B(e,t)},T=A(()=>QX.usageVisible());H(C,e=>{L(T)&&e(w)});var ee=F(C,2),E=e=>{var t=U5(),n=N(t);wi(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>YA()]),Mi(n,()=>E5.form.features.budget,e=>E5.form.features.budget=e),B(e,t)},te=A(()=>QX.budgetsVisible());H(ee,e=>{L(te)&&e(E)});var ne=F(ee,2),re=e=>{var t=U5(),n=N(t);wi(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>KE()]),Mi(n,()=>E5.form.features.guardrails,e=>E5.form.features.guardrails=e),B(e,t)},ie=A(()=>QX.guardrailsVisible());H(ne,e=>{L(ie)&&e(re)});var ae=F(ne,2),oe=e=>{var t=U5(),n=N(t);wi(n);var r=F(n,2),i=N(r,!0);D(r),D(t),I(e=>V(i,e),[()=>QA()]),Mi(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)},[()=>gj(),()=>yj()]),R(`click`,i,()=>TX.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,Ir,(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);wi(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);wi(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)},[()=>Sj(),()=>Sj(),()=>`${Sj()} ${n+1}`,()=>Tj(),()=>Tj(),()=>`${sj()} ${n+1}`,()=>Oj()]),ji(s,()=>L(t).ref,e=>L(t).ref=e),ji(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),[()=>jj()]),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)},[()=>sj(),()=>uj(),()=>pj()]),R(`click`,c,()=>E5.addGuardrailStep()),B(e,t)},_e=A(()=>E5.form.features.guardrails&&QX.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)},[()=>TA(),()=>OA(),()=>jA(),()=>tj(),()=>ij()]),B(e,n)},$$slots:{header:!0,default:!0}})}k()}xr([`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(()=>Yq());a3(n,{size:16,get label(){return L(e)}})}var r=F(n);D(t),I(e=>V(r,` ${e??``}`),[()=>Yq()]),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),[()=>LE()]),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),[()=>BE()]),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),mn(()=>{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 dX},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),[()=>TE()]),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),[()=>OE()]),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(()=>jE()),t=A(()=>PE());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)},[()=>yE(),()=>SE()]),B(e,n),k()}xr([`click`]);function iHe(e,{from:t,to:n},r={}){var{delay:i=0,duration:a=e=>Math.sqrt(e)*120,easing:o=sZ}=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}:oZ(e,{duration:q5(150)})}var J5=new class{#e=j(Yt({}));get workflowVersionsByID(){return L(this.#e)}set workflowVersionsByID(e){M(this.#e,e,!0)}workflowVersionRequests={};workflowFeatureCaps(){return{cache:QX.cacheVisible(),audit:QX.auditVisible(),usage:QX.usageVisible(),budget:QX.budgetsVisible(),guardrails:QX.guardrailsVisible(),failover:QX.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 YX(`/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?vse():xse()}function t7(e){let t=$5(e);return t===null?``:t===0?wse():Dse({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?qle({count:t.length,failed:n}):Wle({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?Xle():$le()),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||Vle()}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:Ro(),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:nue(),showTooLarge:!!(n&&r&&r.response_body_too_big_to_handle),tooLargeMessage:Bo()}}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:wue({rewriter:t}),title:Due({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:Fle(),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:Rle(),showBody:r,body:n,showEmpty:!1,emptyMessage:``,showTooLarge:!r,tooLargeMessage:xue()}}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?Aue({count:dZ(r)}):Nue({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:Ale(),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:aue(),showPending:i,pendingMessage:zo(),showTooLarge:!!(n&&n.request_body_too_big_to_handle),tooLargeMessage:uue()}}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:Ro(),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:pue(),showPending:i,pendingMessage:gue(),showTooLarge:!!(t&&t.response_body_too_big_to_handle),tooLargeMessage:Bo()}}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(Yt({}));get auditExpandedEntries(){return L(this.#e)}set auditExpandedEntries(e){M(this.#e,e,!0)}#t=j(Yt({}));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 v3.auditLog}set auditLog(e){v3.auditLog=e}get auditSearch(){return v3.auditSearch}set auditSearch(e){v3.auditSearch=e}get auditMethod(){return v3.auditMethod}set auditMethod(e){v3.auditMethod=e}get auditStatusCode(){return v3.auditStatusCode}set auditStatusCode(e){v3.auditStatusCode=e}get auditStream(){return v3.auditStream}set auditStream(e){v3.auditStream=e}get auditGroupSessions(){return v3.auditGroupSessions}liveFilters(){return{search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream,customStartDate:AZ.customStartDate,customEndDate:AZ.customEndDate}}toggleAuditGroupSessions(){v3.auditGroupSessions=!v3.auditGroupSessions,Gi(`gomodel_audit_group_sessions`,v3.auditGroupSessions),this.auditExpandedThreads={},v3.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:AZ.queryStr(),limit:this.auditLog.limit,offset:this.auditLog.offset,search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream}),i=await YX((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=v3.upsertAuditRecords(o.entries,`audit.list`),this.auditLog=o,this.auditExpandedThreads=a7(this.auditExpandedThreads,o.entries),v3.auditThreadChildren=a7(v3.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=v3.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&&v3.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=v3.auditThreadChildren[t];n&&!(r&&(r.loaded||r.loading))&&await this.fetchThreadEntries(e)}async fetchThreadEntries(e){let t=n7(e);if(!t)return;let n=v3.auditThreadChildren[t];v3.auditThreadChildren={...v3.auditThreadChildren,[t]:{loading:!0,loaded:!1,entries:n&&Array.isArray(n.entries)?n.entries:[],total:Number(n&&n.total||0)}};let r=()=>{let e={...v3.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))),v3.auditThreadChildren=e};try{let n=await YX(`/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=v3.auditThreadChildren[t],a=this.auditLog.entries.find(e=>n7(e)===t),o=vHe(i,n.data.entries,a?[a]:[e]);o.entries=v3.upsertAuditRecords(o.entries,`audit.thread`),v3.auditThreadChildren={...v3.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 v3.fetchAuditEntryDetail==`function`&&v3.fetchAuditEntryDetail(e),t}expandAuditEntry(e){this.isAuditEntryExpanded(e)||this.toggleAuditEntryExpanded(e)}};v3.fetchAuditLog=e=>x7.fetchAuditLog(e),v3.isAuditEntryExpanded=e=>x7.isAuditEntryExpanded(e);var ZHe=z(`
        `);function QHe(e,t){O(t,!0);let n=B3(()=>x7.fetchAuditLog(!0));mn(()=>n.cancel);var r=ZHe(),i=N(r),a=N(i);{let e=A(()=>Jse()),t=A(()=>Zse());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 xX},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)},[()=>ece(),()=>rce(),()=>oce(),()=>lce(),()=>fce(),()=>hce(),()=>vce(),()=>xce(),()=>Mo()]),R(`change`,s,()=>x7.fetchAuditLog(!0)),_i(s,()=>x7.auditMethod,e=>x7.auditMethod=e),R(`change`,h,()=>x7.fetchAuditLog(!0)),_i(h,()=>x7.auditStatusCode,e=>x7.auditStatusCode=e),R(`change`,ne,()=>x7.fetchAuditLog(!0)),_i(ne,()=>x7.auditStream,e=>x7.auditStream=e),R(`click`,le,()=>x7.clearAuditFilters()),B(e,r),k()}xr([`change`,`click`]);var S7=z(` `),$He=z(` `),eUe=z(` `);function tUe(e,t){O(t,!0);let n=A(()=>v3.auditLivePauseReason()),r=A(()=>v3.liveLogsStreaming&&!L(n));var i=Or(),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),[()=>wce()]),B(e,t)},c=e=>{var t=S7(),r=N(t,!0);D(t),I(e=>V(r,e),[()=>cFe(L(n))]),B(e,t)},l=e=>{var t=$He(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>Dce()]),B(e,t)};H(o,e=>{v3.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(()=>QX.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:yZ(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: `+xZ(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=Or(),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)},[()=>Lo()]),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,li([`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),[()=>tle()]),B(e,r),k()}xr([`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=Or(),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 Bfe();if(t===`audio`||t===`input_audio`||t===`output_audio`)return Ufe();if(t===`file`||t===`input_file`||t===`output_file`){let t=String(e.filename||e.name||``).trim();return t?Yfe({name:t}):Kfe()}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?Iue():zue();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:Sfe(),className:`role-system`}:t===`assistant`?{role:`assistant`,label:Tfe(),className:`role-assistant`}:t===`error`?{role:`error`,label:Ofe(),className:`role-error`}:t===`function_call`?{role:`function_call`,label:jfe(),className:`role-function-call`}:t===`function_result`?{role:`function_result`,label:Pfe(),className:`role-function-result`}:{role:`user`,label:Lfe(),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(Yt([]));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=>v3.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))],v3.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 uZ(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(v3.upsertAuditRecord(e,`conversation.live`));return}this.conversationLoading=!0,await this.fetchConversation(e.id,r,!0,!0)}_conversationEntryLivePending(e){return typeof v3.auditEntryLiveDetailPending==`function`&&v3.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=m3(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 v3.liveAuditStateSettled!=`function`||!v3.liveAuditStateSettled(t._live_state)))}conversationLiveStatusText(){return(this.conversationMessages||[]).length>0?tfe():zo()}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 YX(`/admin/audit/conversation?`+(`log_id=`+encodeURIComponent(e)+`&limit=120`),{label:`audit conversation`});if(t!==this.conversationRequestToken||i.stale)return;if(!i.ok){this.conversationError=ife();return}let a=i.data||{},o=a.anchor_id||e,s=Array.isArray(a.entries)?a.entries:[],c=v3.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=sfe()}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 qX(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=ufe();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),!v3.liveLogsStreaming&&this.conversationOpen){let e=++this.conversationRequestToken;await this._selectPersistedFollowUp(n,this.followUpRequestID,e,i.signal)}}catch(e){ZX(e)||i.signal.aborted?a&&this.conversationOpen&&(this.followUpError=pfe()):(console.error(`Failed to send interaction follow-up:`,e),this.followUpError=gfe())}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;gn(()=>{mn(()=>{let e=pFe(v3.auditRecordChanges,Z7);e.length!==0&&(Z7=Number(e[e.length-1].version||0),or(()=>{e.forEach(e=>{if(!mFe(e))return;let t=v3.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(()=>WX.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 zce({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?$Y:eX);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?Qoe():Yoe())]),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 ETe},class:`audit-session-usage-svg`}),D(t),I((e,n)=>{G(t,`title`,e),G(t,`aria-label`,n)},[()=>Lo(),()=>Lo()]),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),[()=>qEe(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)?DTe:eX);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)?Io():Fo(),()=>L(l)?Io():Fo()]),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),()=>Hce({status:t.entry.status_code||`-`,method:t.entry.method||`-`}),()=>vZ(t.entry.timestamp),()=>wHe(t.entry.duration_ns)]),R(`click`,h,u),B(e,h),k()}xr([`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 tX},width:`14`,height:`14`,"stroke-width":`2.5`})},d=e=>{q(e,{get icon(){return rX},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,li([`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()}xr([`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?uZ(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)},[()=>ole()]),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(()=>fle()),n=A(()=>No());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,uZ)})}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||lle()]),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),[()=>vle()]),B(e,t)};H(d,e=>{t.pane.streaming&&e(f)}),D(o);var p=F(o,2);{let e=A(()=>xle()),r=A(()=>No());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,uZ)})}D(i);var m=F(i,2);Gr(m,()=>L(a),!0),D(m),D(r),I(e=>V(c,e),[()=>hle()]),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()}xr([`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 bTe}})},f=e=>{q(e,{get icon(){return yTe}})};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)},[()=>Dle()]),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,li([`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=mi(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),[()=>wle()]),B(e,c),k()}xr([`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),ai(3,n,()=>aZ,()=>({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=Or(),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(()=>Yce());a3(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),[()=>Qce({shown:L(i).entries.length+1,total:L(i).total})]),B(e,t)};H(c,e=>{L(a)&&e(l)}),D(n),ai(3,n,()=>oZ,()=>({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(()=>QX.config&&QX.config.LOGGING_RETENTION_DAYS);mn(()=>{if(Y.refreshTick,TX.page===`audit-logs`)return or(()=>r())});function r(){let e=!1;return(async()=>{try{await QX.ensureLoaded()}finally{await x7.fetchAuditLog(!0),!e&&QX.liveLogsVisible()&&v3.ensureLiveLogs()}})(),()=>{e=!0,v3.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(()=>fse()),i=A(()=>hse());l3(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);LZ(N(f),{onchange:()=>x7.fetchAuditLog(!0)}),D(f);var p=F(f,2);MZ(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)},[()=>Ase(),()=>Nse()]),B(e,t)},g=A(()=>QX.loaded&&!QX.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?Ise({start:x7.auditLog.offset+1,end:Math.min(x7.auditLog.offset+x7.auditLog.limit,x7.auditLog.total),total:x7.auditLog.total}):zse({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);wi(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(()=>Gse());a3(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),ii(n,()=>iHe,()=>({duration:q5(150)})),ai(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();o3(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),Ei(w,x7.auditGroupSessions),V(ee,t)},[()=>lse(),()=>Hse()]),R(`change`,w,()=>x7.toggleAuditGroupSessions()),B(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 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||she()}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(Yt([]));get guardrails(){return L(this.#e)}set guardrails(e){M(this.#e,e,!0)}#t=j(Yt([]));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(Yt({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=uhe();return}if(!t){this.error=phe();return}this.error=``,this.formSubmitting=!0;let n=ZWe(this.form);try{let t=await Z3(`/admin/guardrails`,`PUT`,n,{label:`save guardrail`,errorFallback:ghe(),unavailableMessage:YO()});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}cZ.success(yhe({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(jhe({name:t}))){this.deletingName=t;try{let e=await Z3(`/admin/guardrails`,`DELETE`,{name:t},{label:`delete guardrail`,errorFallback:Phe(),unavailableMessage:YO()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,cZ.error(e.error);return}if(e.status===`error`){cZ.error(e.error);return}cZ.success(Lhe({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 dX},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(()=>tk()),t=A(()=>ik());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(()=>Lk());a3(n,{size:16,get label(){return L(e)}})}var r=F(n);D(t),I(e=>V(r,` ${e??``}`),[()=>Lk()]),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(()=>She({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 uX},class:`table-icon-svg`})},$$slots:{default:!0}})}var v=F(_,2);{let e=A(()=>d9.deletingName===L(t).name?Ohe({name:L(t).name}):The({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 xX},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||Bk()]),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)},[()=>sk(),()=>uk(),()=>pk(),()=>gk(),()=>yk()]),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),[()=>Sk()]),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)},[()=>BO(),()=>Pk(),()=>QO()]),R(`click`,l,()=>d9.openCreate()),B(e,n),k()}xr([`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),[()=>SM()]),B(e,t)},r=A(()=>L(n)?pM():QO()),i=A(()=>gM()),a=A(()=>yM());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(()=>sk());C6(i,{id:`guardrail-name`,get label(){return L(e)},children:(e,t)=>{var r=sGe();wi(r),I(()=>{r.disabled=L(n),G(r,`data-modal-autofocus`,!L(n)||void 0)}),ji(r,()=>d9.form.name,e=>d9.form.name=e),B(e,r)},$$slots:{default:!0}})}var a=F(i,2);{let e=A(()=>uk());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;gi(r),I(()=>{r.disabled=L(n),i!==(i=d9.form.type)&&(r.value=(r.__value=d9.form.type)??``,hi(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(()=>TM());C6(o,{id:`guardrail-description`,get label(){return L(e)},children:(e,t)=>{var r=lGe();wi(r),I(e=>{G(r,`placeholder`,e),G(r,`data-modal-autofocus`,L(n)?!0:void 0)},[()=>OM()]),ji(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),[()=>pk()]),B(e,t)},t=A(()=>jM()),n=A(()=>PM());l3(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);wi(l),D(s),U(F(s,2),17,()=>d9.typeFields(d9.form.type),e=>e.key,(e,t)=>{var n=Or(),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||``);l3(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;gi(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))},[()=>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||``),Ti(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();wi(n),I(e=>{G(n,`id`,`guardrail-field-`+L(t).key),G(n,`type`,L(t).input||`text`),G(n,`placeholder`,L(t).placeholder||``),Ti(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);wi(i);var a=F(i,2),o=N(a,!0);D(a),D(r),I(e=>{Ei(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),[()=>pk()]),ji(l,()=>d9.form.user_path,e=>d9.form.user_path=e),B(e,r)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`change`,`input`]);var xGe=z(`

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

        `);function CGe(e,t){O(t,!0),mn(()=>{Y.refreshTick,TX.page===`guardrails`&&(QX.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),[()=>jO()]),B(e,t)},t=A(()=>Tk()),n=A(()=>Ok());l3(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);MZ(T,{});var ee=F(T,2),E=e=>{var t=p9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>KO()]),B(e,t)},te=A(()=>!QX.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),[()=>YO()]),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)},[()=>PO(),()=>LO(),()=>jk(),()=>BO(),()=>dZ(d9.guardrails.length),()=>UO(),()=>dZ(d9.types.length)]),B(e,n),k()}var $=new class{#e=j(Yt([]));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(Yt(F4()));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(Yt(I4()));get catalog(){return L(this.#g)}set catalog(e){M(this.#g,e,!0)}#_=A(()=>FNe(this.servers,this.filter));get filtered(){return L(this.#_)}set filtered(e){M(this.#_,e)}async fetchServers(){if(await QX.ensureLoaded(),!QX.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:LV(),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=F4(),this.formOpen=!0}openEdit(e){!e||e.managed||(this.formMode=`edit`,this.slugEdited=!0,this.advancedOpen=!1,this.error=``,this.form=INe(e),this.formOpen=!0)}closeForm(){this.formOpen=!1,this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=F4()}syncSlugFromName(){this.formMode===`create`&&!this.slugEdited&&(this.form.slug=V4(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=LNe(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:BV(),unavailableMessage:gw()});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}cZ.success(UV({name:e.payload.name})),this.closeForm(),this.fetchServers()}finally{this.formSubmitting=!1}}async deleteServer(e){let t=String(e&&e.name||``).trim(),n=L4(e);if(!(!n||this.deletingName||e&&e.managed)&&confirm(KV({name:t}))){this.deletingName=n;try{let e=await Z3(`/admin/mcp-servers/`+encodeURIComponent(n),`DELETE`,void 0,{label:`delete mcp server`,errorFallback:YV(),unavailableMessage:gw()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,cZ.error(e.error);return}if(e.status===`error`){cZ.error(e.error);return}cZ.success(QV({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=L4(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:tH(),unavailableMessage:gw()});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,cZ.error(e.error);return}if(e.status===`error`){cZ.error(e.error);return}let r=e.result.data,i=R4(r);i===`connected`?cZ.success(iH({name:t})):i===`disabled`?cZ.success(sH({name:t})):cZ.error(uH({name:t,status:i})),r&&r.name?this.servers=(this.servers||[]).map(e=>L4(e)===L4(r)?r:e):this.fetchServers()}finally{this.reconnectingName=``}}}async openCatalog(e){let t=String(e&&e.name||``).trim(),n=L4(e);if(n){this.catalogOpen=!0,this.catalogLoading=!0,this.catalogError=``,this.catalog={...I4(),server:n,status:R4(e)};try{let e=await YX(`/admin/mcp-servers/`+encodeURIComponent(n)+`/catalog`,{label:`mcp server catalog`});if(e.stale)return;if(e.status===503){this.available=!1,this.catalogError=gw();return}if(e.status===404){this.catalogError=pH({name:t});return}if(!e.ok){this.catalogError=e.status===401?iz():GX(e.data,gH());return}this.catalog=RNe(n,e.data)}catch(e){console.error(`Failed to load MCP server catalog:`,e),this.catalogError=gH()}finally{this.catalogLoading=!1}}}closeCatalog(){this.catalogOpen=!1,this.catalogLoading=!1,this.catalogError=``,this.catalog=I4()}},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(()=>H4($.catalog));eZ(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(()=>Bw());$X(p,{get label(){return L(e)},onclick:()=>$.closeCatalog()})}D(i);var m=F(i,2),h=e=>{{let t=A(()=>Uw());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)},[()=>Kw({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),[()=>Yw()]),B(e,t)},c=A(()=>BNe($.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)},[()=>Pw(),()=>Lw(),()=>z4($.catalog),()=>R4($.catalog),()=>Qw()]),R(`click`,y,()=>$.closeCatalog()),B(e,r)},$$slots:{default:!0}}),k()}xr([`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),[()=>sT()]),B(e,t)},n=A(()=>$.formMode===`edit`?tT():pw()),r=A(()=>iT());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(()=>uT());C6(r,{id:`mcp-server-name`,get label(){return L(e)},children:(e,t)=>{var n=FGe(),r=P(n);wi(r);var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>pT()]),R(`input`,r,()=>$.syncSlugFromName()),ji(r,()=>$.form.name,e=>$.form.name=e),B(e,n)},$$slots:{default:!0}})}var i=F(r,2);{let e=A(()=>gT());C6(i,{id:`mcp-server-slug`,get label(){return L(e)},children:(e,t)=>{var n=IGe(),r=P(n);wi(r);var i=F(r,2),a=e=>{var t=m9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>yT()]),B(e,t)},o=e=>{var t=m9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>ST()]),B(e,t)};H(i,e=>{$.formMode===`create`?e(a):e(o,-1)}),I(()=>r.disabled=$.formMode===`edit`),R(`input`,r,()=>$.markSlugEdited()),ji(r,()=>$.form.slug,e=>$.form.slug=e),B(e,n)},$$slots:{default:!0}})}var a=F(i,2);{let e=A(()=>TT());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),[()=>OT()]),_i(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();wi(n),ji(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,Ir,(e,t,n)=>{var r=zGe(),i=N(r);wi(i);var a=F(i,2);wi(a);var o=F(a,2);{let e=A(()=>BT());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 vX},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r),I((e,t)=>{G(i,`aria-label`,e),G(a,`aria-label`,t)},[()=>PT(),()=>LT()]),ji(i,()=>L(t).name,e=>L(t).name=e),ji(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 dX},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);wi(ie),D(te);var ae=F(te,2),oe=N(ae),se=N(oe,!0);D(oe);var ce=F(oe,2);wi(ce),D(ae);var le=F(ae,2),ue=N(le),de=N(ue,!0);D(ue);var fe=F(ue,2);wi(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);wi(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)},[()=>jT(),()=>UT(),()=>KT(),()=>YT(),()=>QT(),()=>tE(),()=>mwe(),()=>iE(),()=>_we(),()=>sE(),()=>bwe(),()=>uE(),()=>pE(),()=>gE()]),R(`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),B(e,n)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`input`,`click`]);var HGe=z(` `),UGe=z(`
          `),WGe=z(`
          `),GGe=z(`
          `);function KGe(e,t){O(t,!0);function n(e){return ANe(e,e=>WX.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=>L4(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)},[()=>PB(),()=>tz()]),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(()=>R4(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(()=>LB({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 uX},class:`table-icon-svg`})},$$slots:{default:!0}})}};H(ae,e=>{L(t).managed||e(oe)});var se=F(ae,2);{let e=A(()=>BB({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 PTe},class:`form-action-icon`})},$$slots:{default:!0}})}var ce=F(se,2);{let e=A(()=>$.reconnectingName===L4(L(t))?KB({name:L(t).name}):UB({name:L(t).name})),n=A(()=>$.reconnectingName===L4(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 fX},class:`form-action-icon`})},$$slots:{default:!0}})}var le=F(ce,2),ue=e=>{{let n=A(()=>$.deletingName===L4(L(t))?QB({name:L(t).name}):YB({name:L(t).name})),r=A(()=>$.deletingName===L4(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 xX},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,li([`auth-key-status-badge`,L(t).enabled?`auth-key-status-active`:`auth-key-status-inactive`])),V(ne,d)},[()=>L4(L(t)),()=>B4(L(t)),()=>B4(L(t)),()=>z4(L(t)),()=>n(L(t)),()=>kNe(L(t)),()=>dZ(L(t).tool_count||0),()=>jNe(L(t)),()=>L(t).enabled?YR():QR()]),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)},[()=>uT(),()=>gB(),()=>yB(),()=>SB(),()=>TB(),()=>OB(),()=>jB()]),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=uw();mn(()=>{Y.refreshTick,TX.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),[()=>iw()]),B(e,t)},t=A(()=>sw());l3(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 dX},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)},[()=>pw()]),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),[()=>gw()]),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(()=>yw());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(()=>Sw()),t=A(()=>Tw());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),[()=>Ow()]),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),[()=>jw()]),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()}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 eKe(){return{[g9]:{label:LU(),control:`keys`,hint:TW()},[_9]:{label:BU(),control:`checkbox`,hint:OW()},[v9]:{label:UU(),control:`text`},api_version:{label:KU(),control:`text`,placeholder:`e.g. 2024-10-01-preview`,hint:jW()},backend:{label:YU(),control:`select`,hint:PW()},auth_type:{label:QU(),control:`select`,hint:LW()},api_mode:{label:tW(),control:`select`,hint:BW()},vertex_project:{label:iW(),control:`text`,placeholder:`my-gcp-project`},vertex_location:{label:sW(),control:`text`,placeholder:`us-central1`},service_account_file:{label:uW(),control:`text`,placeholder:`/path/to/service-account.json`,hint:UW()},[y9]:{label:pW(),control:`textarea`,placeholder:ECe(),hint:KW()},service_account_json_base64:{label:gW(),control:`text`,hint:YW()},gcp_scope:{label:yW(),control:`text`,placeholder:`https://www.googleapis.com/auth/cloud-platform`},[b9]:{label:SW(),control:`text`,placeholder:`gpt-4o, gpt-4o-mini`,hint:QW()}}}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=tG({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?iG({count:t}):String(e&&e.service_account_json||``).trim()||String(e&&e.service_account_json_base64||``).trim()||String(e&&e.service_account_file||``).trim()?sG():String(e&&e.vertex_project||``).trim()?`ADC`:uG()}function cKe(e){let t=Array.isArray(e&&e.models)?e.models:[];return t.length===0?pG():gG({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=kCe()),a?a.includes(`/`)?i.name=FCe():t===`create`&&(Array.isArray(n)?n:[]).some(e=>String(e&&e.name||``).trim()===a)&&(i.name=XCe({name:a})):i.name=MCe();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())?RCe():n.some(e=>!e.trim())?VCe():``}let n=String(e&&e[t.name]||``).trim();if(t.required&&!n)return $Ce({field:t.label});if(!n)return``;if(t.name===`base_url`&&!n.includes(`://`)&&/[./]/.test(n))return WCe({value:n});if(t.name===`service_account_json`&&!fKe(n))try{JSON.parse(n)}catch{return qCe()}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 lZ(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(Yt([]));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(Yt(S9()));get form(){return L(this.#l)}set form(e){M(this.#l,e,!0)}#u=j(Yt({}));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(Yt([]));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:gU(),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=GX(e,yU()),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(){jZ.fetchModels(),jZ.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:yU(),unavailableMessage:iD()});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}cZ.success(SU({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:TU(),unavailableMessage:iD()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,nZ.error=t.error;return}if(t.status===`error`){nZ.error=t.error;return}cZ.success(OU({name:e})),nZ.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||nZ.open({title:jU(),titleId:`providerCredentialDeleteDialogTitle`,inputId:`provider-credential-delete-confirmation`,message:PU({name:t}),requiredText:t,confirmLabel:jU(),icon:vX,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)},[()=>BD(),()=>tz()]),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(()=>sU({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 uX},class:`table-icon-svg`})},$$slots:{default:!0}})}var i=F(r,2);{let e=A(()=>E9.deletingName===L(t).name?pU({name:L(t).name}):uU({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 xX},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?YR():QR(),()=>WX.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)},[()=>yD(),()=>SD(),()=>xs(),()=>TD(),()=>OD(),()=>jD(),()=>PD(),()=>LD()]),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,Ir,(e,t,a)=>{var s=SKe(),c=N(s);wi(c);var l=F(c,2);{let e=A(()=>QH({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 vX},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)},[()=>YH({number:a+1})]),R(`input`,c,o),ji(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 dX},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)},[()=>tU()]),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)},[()=>iU()]),R(`change`,s,o),_i(s,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),B(e,s)},h=e=>{var a=EKe();wi(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),Mi(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),ji(a,()=>E9.form[t.field.name],e=>E9.form[t.field.name]=e),B(e,a)},_=e=>{var a=OKe();wi(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),ji(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()}xr([`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))}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=N(t,!0);D(t),I(e=>V(n,e),[()=>TH()]),B(e,t)},s=A(()=>E9.formMode===`edit`?yH():tD()),c=A(()=>SH());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),[()=>jH()]),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);wi(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),[()=>PH()]),B(e,t)},w=e=>{var t=k9(),n=N(t,!0);D(t),I(e=>V(n,e),[()=>LH()]),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),[()=>BH()]),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(()=>UH());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)},[()=>KH(),()=>L(r).advanced.map(e=>e.label).join(`, `)]),br(`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`)},[()=>SD(),()=>OH(),()=>yD()]),R(`change`,d,o),_i(d,()=>E9.form.type,e=>E9.form.type=e),R(`input`,b,()=>E9.clearFieldError(`name`)),ji(b,()=>E9.form.name,e=>E9.form.name=e),B(e,s)},$$slots:{headerHint:!0,default:!0}})}k()}xr([`change`,`input`]);var zKe=z(`

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

          `),WKe=z(`
          `);function GKe(e,t){O(t,!0),mn(()=>{Y.refreshTick,TX.page===`providers-config`&&E9.fetchPage()});var n=WKe(),r=N(n),i=N(r);l3(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),[()=>QE()]),B(e,t)},help:e=>{Ve(),B(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=F(i,2),o=N(a),s=e=>{var t=BKe(),n=N(t);q(n,{get icon(){return dX},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)},[()=>tD()]),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),[()=>iD()]),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(()=>sD()),t=A(()=>uD());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),[()=>pD()]),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),[()=>gD()]),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()}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 uB();if(t.includes(`:`))return pB()}}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:sB()};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(Yt([]));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(Yt(j9()));get form(){return L(this.#p)}set form(e){M(this.#p,e,!0)}#m=j(Yt(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:Oz()});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:jz(),unavailableMessage:Pz()});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:Lz(),unavailableMessage:Pz()});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}cZ.success(Bz({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:Uz(),unavailableMessage:Pz()});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,cZ.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),cZ.error(n.error);return}cZ.success(t?Kz({name:e.name}):Yz({name:e.name})),this.fetchKeys()}finally{this.dashboardAccessID=``}}async deactivateKey(e){if(!(!e||!e.active)&&window.confirm(Qz({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:tB(),unavailableMessage:Pz()});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,cZ.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),cZ.error(t.error);return}cZ.success(iB({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(()=>Ox()),n=A(()=>iS()),r=A(()=>V9.issuedValue?``:V9.error),i=A(()=>V9.issuedValue?sS():Ox()),a=A(()=>uS()),o=A(()=>V9.issuedValue?QY:dX);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=Or(),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),[()=>gS()]),B(e,t)};H(s,e=>{V9.copyState.error&&e(c)}),D(t),I(e=>{V(r,e),V(o,V9.issuedValue)},[()=>pS()]),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);wi(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);wi(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),[()=>jS()]),B(e,t)},t=e=>{Ve();var t=Dr();I(e=>V(t,e),[()=>LS()]),B(e,t)},n=A(()=>PS());l3(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);wi(_),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),[()=>BS()]),B(e,t)},t=e=>{Ve();var t=Dr();I(e=>V(t,e),[()=>KS()]),B(e,t)},n=A(()=>US());l3(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);wi(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),[()=>YS()]),B(e,t)},t=e=>{Ve();var t=Dr();I(e=>V(t,e),[()=>tC()]),B(e,t)},n=A(()=>QS());l3(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);wi(w);var T=F(w,2),ee=N(T,!0);D(T),D(C),D(x);var E=F(x,2);{let e=A(()=>sC());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),[()=>uC()]),ji(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)},[()=>yS(),()=>SS(),()=>TS(),()=>OS(),()=>iC()]),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),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(()=>UC()),r=A(()=>KC()),i=A(()=>YC());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(()=>QC());C6(e,{id:`auth-key-labels-edit`,get label(){return L(t)},children:(e,t)=>{var n=sqe(),r=P(n);wi(r);var i=F(r,2),a=N(i,!0);D(i),I(e=>V(a,e),[()=>tw()]),ji(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 MTe},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=>{mi(n,e),V(r,t)},[()=>IMe(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),[()=>LC()]),B(e,t)},s=A(()=>P9(L(t)));H(a,e=>{L(s)&&e(o)}),D(n),I(e=>V(i,e),[()=>WEe(L(t).expires_at)]),B(e,n)},w=e=>{B(e,Dr(`—`))};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?pz({name:L(t).name}):uz({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?KTe:hX);q(e,{get icon(){return L(n)},class:`table-icon-svg`})}},$$slots:{default:!0}})}var i=F(r,2);{let e=A(()=>gz({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 uX},class:`table-icon-svg`})},$$slots:{default:!0}})}var a=F(i,2);{let e=A(()=>V9.deactivatingID===L(t).id?Sz({name:L(t).name}):yz({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 BTe},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?Tz({date:vZ(L(t).deactivated_at)}):BC(),()=>BC()]),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?jC():PC(),()=>L(t).expires_at?vZ(L(t).expires_at):``,()=>WX.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)},[()=>yS(),()=>pC(),()=>gC(),()=>yC(),()=>SC(),()=>sz(),()=>YS(),()=>TS(),()=>TC(),()=>OC()]),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),mn(()=>{Y.refreshTick,TX.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 dX},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)},[()=>Ox()]),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),[()=>jx()]),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),[()=>Px()]),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(()=>Lx());a3(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(()=>Bx()),t=A(()=>Ux());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);wi(o);var s=F(o,2),c=N(s),l=F(c),u=e=>{var t=Dr();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??``} `),[()=>Kx()]),Mi(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??``}`),[()=>Yx(),()=>V9.inactiveCount>0&&!V9.showInactive?` `+Qx({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),[()=>tS()]),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),[()=>Tx()]),B(e,n),k()}xr([`click`]);var Tqe=z(``),Eqe=z(`
          `);function Dqe(e,t){O(t,!0);let n=Qi.map(e=>({value:e,label:QEe(e)}));var r=Or(),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;gi(a),D(t),I((e,t,n)=>{V(i,e),G(a,`aria-label`,t),o!==(o=n)&&(a.value=(a.__value=n)??``,hi(a,n))},[()=>iL(),()=>iL(),()=>J()]),R(`change`,a,e=>sa(e.currentTarget.value)),B(e,t)};H(i,e=>{n.length>1&&e(a)}),B(e,r),k()}xr([`change`]);var Oqe=z(`

          `),kqe=z(``),Aqe=z(``),jqe=z(`
          `,1);function Mqe(e,t){O(t,!0);function n(){WX.saveOverride(),Y.refresh()}function r(){WX.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),[()=>Nu()]),B(e,t)},t=A(()=>Iu()),n=A(()=>zu());l3(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,()=>WX.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),[()=>Ju()]),R(`click`,t,r),B(e,t)};H(h,e=>{WX.override&&e(g)}),D(m),I((e,t)=>{V(u,e),V(p,t)},[()=>Hu(),()=>Gu({timezone:WX.detectedTimeZoneLabel()})]),br(`focus`,d,()=>WX.ensureOptions()),R(`change`,d,n),_i(d,()=>WX.override,e=>WX.override=e),B(e,i),k()}xr([`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 bX},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 vX},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)},[()=>Zu(),()=>Q.failoverGenerating?ed():rd(),()=>od()]),R(`click`,l,()=>Q.generateFailoverRules()),R(`click`,p,()=>Q.openFailoverResetDialog()),B(e,r),k()}xr([`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:TN()},{value:1,label:ON()},{value:2,label:jN()},{value:3,label:PN()},{value:4,label:LN()},{value:5,label:BN()},{value:6,label:UN()}]}var Rqe=z(`

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

          `),Vqe=z(``),Hqe=z(``),Uqe=z(`
          `,1);function Wqe(e,t){O(t,!0);let n=j(Yt(Iqe())),r=j(!1),i=j(!1),a=j(``),o=j(!1),s=A(()=>QX.budgetsVisible());async function c(){if(await QX.ensureLoaded(),!QX.budgetsVisible()){M(a,``);return}M(r,!0),M(a,``);try{let e=await YX(`/admin/budgets/settings`,{label:`budget settings`});if(e.stale)return;if(!e.ok){M(a,gN(),!0);return}M(n,W9(e.data,L(n)),!0)}catch(e){console.error(`Failed to fetch budget settings:`,e),M(a,gN(),!0)}finally{M(r,!1)}}async function l(){if(!L(i)){M(i,!0);try{let e=await XX(`/admin/budgets/settings`,`PUT`,W9(L(n),L(n)),{label:`budget settings`});if(e.stale)return;if(!e.ok){cZ.error(yN());return}M(n,W9(e.data,L(n)),!0),M(a,``),cZ.success(SN())}catch(e){console.error(`Failed to save budget settings:`,e),cZ.error(yN())}finally{M(i,!1)}}}mn(()=>{Y.refreshTick,c()});var u=Or(),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),[()=>wd()]),B(e,t)},t=A(()=>vd()),n=A(()=>xd());l3(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),[()=>YM()]),B(e,t)},t=A(()=>KM());l3(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);wi(g),D(m);var _=F(m,2),v=N(_),y=N(v,!0);D(v);var b=F(v,2);wi(b),D(_);var x=F(_,2),S=N(x),C=N(S,!0);D(S);var w=F(S,2);wi(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),[()=>QM()]),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);wi(de),D(ce);var fe=F(ce,2),pe=N(fe),me=N(pe,!0);D(pe);var he=F(pe,2);wi(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);wi(Se),D(ye);var Ce=F(ye,2),we=N(Ce),Te=N(we,!0);D(we);var Ee=F(we,2);wi(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 mX},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(()=>pN());a3(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)},[()=>LM(),()=>iN(),()=>sN(),()=>BM(),()=>tN(),()=>iN(),()=>sN(),()=>UM(),()=>iN(),()=>sN(),()=>uN()]),ji(g,()=>L(n).monthly_reset_day,e=>L(n).monthly_reset_day=e),ji(b,()=>L(n).monthly_reset_hour,e=>L(n).monthly_reset_hour=e),ji(w,()=>L(n).monthly_reset_minute,e=>L(n).monthly_reset_minute=e),_i(se,()=>L(n).weekly_reset_weekday,e=>L(n).weekly_reset_weekday=e),ji(de,()=>L(n).weekly_reset_hour,e=>L(n).weekly_reset_hour=e),ji(he,()=>L(n).weekly_reset_minute,e=>L(n).weekly_reset_minute=e),ji(Se,()=>L(n).daily_reset_hour,e=>L(n).daily_reset_hour=e),ji(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()}xr([`click`]);var Gqe=z(`

          `);function Kqe(e,t){O(t,!0);var n=Or(),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 pX},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)},[()=>ld(),()=>fd(),()=>hd()]),R(`click`,c,()=>b6.openResetDialog()),B(e,t)},a=A(()=>QX.budgetsVisible());H(r,e=>{L(a)&&e(i)}),B(e,n),k()}xr([`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(Yt([])),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 YX(`/admin/tagging/settings`,{label:`tagging settings`});if(e.stale)return;if(!e.ok){M(o,PP(),!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,PP(),!0)}finally{M(i,!1)}}async function u(){if(!(L(a)||!L(r))){M(a,!0);try{let e=await XX(`/admin/tagging/settings`,`PUT`,Jqe(L(n)),{label:`tagging settings`});if(e.stale)return;if(!e.ok){cZ.error(e.status!==401&&Yqe(e.data)||LP());return}M(n,G9(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0),M(o,``),cZ.success(BP())}catch(e){console.error(`Failed to save tagging settings:`,e),cZ.error(LP())}finally{M(a,!1)}}}mn(()=>{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),[()=>KN()]),B(e,t)},t=A(()=>YN()),n=A(()=>QN());l3(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),Ir,(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);wi(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);wi(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);wi(_),G(_,`id`,`tagging-delimiter-`+n),D(m);var v=F(m,2),y=N(v);wi(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),[()=>pP()]),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)},[()=>yP({header:L(t).header||n+1}),()=>gP()]),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)},[()=>tP(),()=>iP(),()=>sP(),()=>uP()]),ji(l,()=>L(t).header,e=>L(t).header=e),ji(p,()=>L(t).prefix,e=>L(t).prefix=e),ji(_,()=>L(t).delimiter,e=>L(t).delimiter=e),Mi(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(()=>SP());a3(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),[()=>TP()]),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 dX},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 mX},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)},[()=>OP(),()=>jP()]),R(`click`,x,s),R(`click`,T,u),B(e,d),k()}xr([`click`]);function iJe(e){let t=e||{};if(t.selectedPreset)return{days:parseInt(t.selectedPreset,10)||30};let n=t.customStartDate?_Z(t.customStartDate):``,r=t.customEndDate||t.today||null;return{start_date:n,end_date:r?_Z(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=SI({matched:t,recalculated:n});return r>0&&(i+=` `+TI({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(()=>QX.booleanFlag(`USAGE_PRICING_RECALCULATION_ENABLED`,!1));function o(){if(!L(a)){cZ.error(uI());return}L(i)||nZ.open({title:sI(),titleId:`pricingRecalculateDialogTitle`,inputId:`pricing-recalculate-confirmation`,requiredText:pI(),confirmLabel:sI(),icon:ZY,dialogClass:`pricing-recalculate-dialog`,message:gI(),onConfirm:()=>s()})}async function s(){if(!L(a)){cZ.error(uI());return}if(!L(i)){M(i,!0);try{let e=await XX(`/admin/usage/recalculate-pricing`,`POST`,aJe({selectedPreset:AZ.selectedPreset,customStartDate:AZ.customStartDate,customEndDate:AZ.customEndDate,today:WX.todayDate()},L(n),L(r),pI()),{label:`pricing recalculation`});if(e.stale)return;if(!e.ok){nZ.error=yI();return}nZ.close(),cZ.success(oJe(e.data)),FZ.fetchUsage()}catch(e){console.error(`Failed to recalculate pricing:`,e),nZ.error=yI()}finally{M(i,!1)}}}var c=Or(),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),[()=>BF()]),B(e,t)},t=A(()=>UF()),n=A(()=>KF());l3(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);LZ(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);wi(g),D(p);var _=F(p,2),v=N(_),y=N(v,!0);D(v);var b=F(v,2);wi(b),D(_),D(c);var x=F(c,2),S=N(x),C=N(S);q(C,{get icon(){return ZY},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)},[()=>YF(),()=>QF(),()=>tI(),()=>iI(),()=>sI()]),ji(g,()=>L(n),e=>M(n,e)),ji(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()}xr([`click`]);function K9(e){return String(e&&e.status||`ok`).toLowerCase()}function q9(e){if(!e||typeof e!=`object`)return tF();let t=Number(e.model_count||0),n=Number(e.provider_count||0),r=K9(e);return pF({status:r===`ok`?iF():r===`partial`?sF():uF(),models:gF({count:t}),providers:yF({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 XX(`/admin/runtime/refresh`,`POST`,void 0,{label:`runtime refresh`});if(e.stale)return;if(!e.ok){cZ.error(uF());return}M(r,e.data&&typeof e.data==`object`?e.data:null,!0),uJe(L(r))?cZ.success(q9(L(r))):cZ.error(q9(L(r))),Y.refresh()}catch(e){console.error(`Failed to refresh runtime:`,e),cZ.error(uF())}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),[()=>UP()]),B(e,t)},t=A(()=>KP()),n=A(()=>YP());l3(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 fX},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)},[()=>QP()]),R(`click`,l,i),B(e,a),k()}xr([`click`]);var _Je=z(``),vJe=z(`

            `),yJe=z(`

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

            `);function CJe(e,t){O(t,!0);let n=j(Yt([])),r=j(!1),i=j(``),a=j(``);async function o(){M(r,!0),M(a,``);try{let e=await YX(`/admin/runtime/settings`,{label:`runtime settings`});if(e.stale)return;if(!e.ok){M(a,TF(),!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,TF(),!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 XX(`/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,cZ.error(OF({setting:e.label}));return}M(n,L(n).map(t=>t.key===e.key?i.data:t),!0),cZ.success(jF({setting:e.label}))}catch(t){r.value=e.value,console.error(`Failed to save runtime setting:`,t),cZ.error(OF({setting:e.label}))}finally{M(i,``)}}}mn(()=>{Y.refreshTick,o()});var c=Or(),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),[()=>PF({source:L(t).managed_by||LF()})]),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;gi(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)??``,hi(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`)},[()=>SF()]),B(e,t)};H(l,e=>{(L(n).length>0||L(a))&&e(u)}),B(e,c),k()}xr([`change`]);var wJe=z(`
            `);function TJe(e,t){O(t,!0),mn(()=>{Y.refreshTick,TX.page===`settings`&&(WX.ensureOptions(),QX.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(),()=>iEe()]),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?rpe({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??``}`),[()=>Wo()]),B(e,n)};H(p,e=>{t.msg.functionCallID&&e(m)});var h=F(p,2),g=e=>{var n=Or();U(P(n),17,()=>t.msg.toolCalls,Ir,(e,n)=>{var r=Or(),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?cpe({name:L(n).name}):Wo()]),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),()=>WX.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??``}`),[()=>Wo()]),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))||Go(),()=>Y7(L(t))||Go()]),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,()=>WX.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?tX:rX);q(h,{get icon(){return L(e)},width:`14`,height:`14`})}D(p),D(c),I((e,n,a)=>{W(c,1,li([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=mi(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?Qfe():Uo(),()=>r.copied?ppe():Uo()]),R(`click`,p,e=>{e.stopPropagation(),r.copy(XUe(t.msg))}),B(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 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(Wi(`gomodel_interactions_panel_width`)),i=`gomodel_interactions_prompt_cache_fill`,a=Number.isFinite(r)&&r>0?r:520,o=j(Yt(a)),s=j(320),c=j(760),l=j(!1),u=j(!1),d=j(Wi(i,`true`)!==`false`),f=null;function p(e,{fullscreen:t,revealWithoutSlide:n=!1}){let r=q5(180);return t?aZ(e,{x:L(o),duration:r,easing:sZ}):n?{duration:0}:oZ(e,{axis:`x`,duration:r,easing:sZ})}async function m(e){if(e===L(l))return;let t=L(l)&&!e;M(u,t,!0),M(l,e,!0),t&&(await rr(),M(u,!1))}function h(){M(d,!L(d)),Gi(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`),Gi(`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),Gi(`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)}mn(()=>{if(!n.conversationOpen)return;_();let e=document.querySelector(`.sidebar`),t=new ResizeObserver(_);e&&t.observe(e);let r=e=>{e.key===`Escape`&&!Xi.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`,_)}}),mn(()=>{n.conversationOpen||M(l,!1)}),mn(()=>{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)})}}),mn(()=>{TX.page!==`audit-logs`&&n.conversationOpen&&n.closeConversation()});var T=Or(),ee=P(T),E=e=>{var t=Or();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?ITe:lX);q(ne,{get icon(){return L(e)},class:`table-icon-svg`})}D(te);var re=F(te,2);{let e=A(()=>vde());$X(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 xTe},width:`14`,height:`14`}),D(n);var r=F(n,2);q(N(r),{get icon(){return vTe},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)},[()=>xde(),()=>Vo(),()=>Vo(),()=>Ho(),()=>Ho()]),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),[()=>Ode()]),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),[()=>jde()]),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)?Pde():Lde(),()=>Bde(),()=>Ude()]),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),Ii(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),[()=>Kde()]),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)},[()=>Yde(),()=>Qde(),()=>n.followUpSending||n.conversationLiveWaiting(),()=>n.selectedConversationEntry()?.path||``,()=>!n.canSendFollowUp(),()=>n.followUpSending?ise():tse()]),br(`submit`,r,e=>{e.preventDefault(),n.sendFollowUp()}),ji(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),Ii(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=mi(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)},[()=>Hue(),()=>Gue(),()=>n.conversationFollowLatest?Jue():Zue(),()=>n.conversationFollowLatest?ede():rde(),()=>t?ode():lde(),()=>t?fde():hde()]),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`,te,()=>m(!t)),ai(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()}xr([`pointerdown`,`pointermove`,`pointerup`,`keydown`,`click`]);var GJe=z(`
            `,1);function KJe(e,t){O(t,!0);let n={overview:d3,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};ZEe(),WX.init(),AZ.init(),Y.init(),Ji.init(),Yi.init(),TX.init(),mn(()=>{Y.refreshTick,QX.fetch(),jZ.fetchModels(),jZ.fetchCategories()}),mn(()=>{document.body.classList.toggle(`dashboard-modal-open`,Xi.anyOpen)});let r=A(()=>n[TX.page]||d3);var i=GJe(),a=P(i);xEe(a,{});var o=F(a,2);let s;var c=N(o);UEe(c,{}),qr(F(c,2),()=>L(r),(e,t)=>{t(e,{})}),D(o);var l=F(o,2);WJe(l,{});var u=F(l,2);kEe(u,{});var d=F(u,2);NEe(d,{}),VEe(F(d,2),{}),I(()=>s=W(o,1,`content`,null,s,{"interactions-open":X7.conversationOpen})),B(e,i),k()}jr(KJe,{target:document.getElementById(`app`)}); \ No newline at end of file diff --git a/internal/admin/dashboard/static/dist/assets/index-o5upCDH8.css b/internal/admin/dashboard/static/dist/assets/index-o5upCDH8.css deleted file mode 100644 index caf1c4dda..000000000 --- a/internal/admin/dashboard/static/dist/assets/index-o5upCDH8.css +++ /dev/null @@ -1 +0,0 @@ -: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}.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 cd95f2b0d..8da0a0340 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 7d80b4534..ee691a9f8 100644 --- a/internal/admin/handler.go +++ b/internal/admin/handler.go @@ -457,6 +457,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..ed8984bb8 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,92 @@ 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) + } + } +} + +func TestUsageBySessionUsesDefaultLimit(t *testing.T) { + reader := &mockUsageReader{sessionUsage: &usage.SessionUsageResult{Entries: []usage.SessionUsage{}}} + h := NewHandler(reader, nil) + c, rec := newHandlerContext("/admin/usage/sessions") + + if err := h.UsageBySession(c); err != nil { + t.Fatalf("unexpected handler error: %v", err) + } + if rec.Code != http.StatusOK { + t.Fatalf("status = %d, want 200", rec.Code) + } + if reader.lastSessionUsage.Limit != defaultSessionUsageLimit { + t.Fatalf("reader limit = %d, want %d", reader.lastSessionUsage.Limit, defaultSessionUsageLimit) + } + var result usage.SessionUsageResult + if err := json.Unmarshal(rec.Body.Bytes(), &result); err != nil { + t.Fatalf("unmarshal response: %v", err) + } + if result.Limit != defaultSessionUsageLimit { + t.Fatalf("response limit = %d, want %d", result.Limit, defaultSessionUsageLimit) + } +} + +func TestUsageBySessionPropagatesReaderError(t *testing.T) { + reader := &mockUsageReader{ + sessionUsageErr: core.NewProviderError("usage", http.StatusBadGateway, "reader unavailable", nil), + } + h := NewHandler(reader, nil) + c, rec := newHandlerContext("/admin/usage/sessions") + + if err := h.UsageBySession(c); err != nil { + t.Fatalf("unexpected handler error: %v", err) + } + if rec.Code != http.StatusBadGateway { + t.Fatalf("status = %d, want %d", rec.Code, http.StatusBadGateway) + } } // --- AuditLog handler tests --- diff --git a/internal/admin/handler_usage.go b/internal/admin/handler_usage.go index 0b748eb5f..df700de10 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,75 @@ 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} + } + // Keep the paging envelope authoritative even if a reader omits it. + result.Limit = params.Limit + result.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 +295,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 +430,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 986feda83..989d9a174 100644 --- a/internal/server/audio_service.go +++ b/internal/server/audio_service.go @@ -281,6 +281,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 c061d631e..9331d24bb 100644 --- a/internal/server/translated_inference_service.go +++ b/internal/server/translated_inference_service.go @@ -595,6 +595,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..52413e895 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"` @@ -41,6 +42,25 @@ type mongoUsageLogRow struct { RewriteCostSaved *float64 `bson:"rewrite_cost_saved"` } +// mongoSessionUsageRow is the decoded shape produced by the session grouping pipeline. +type mongoSessionUsageRow 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"` +} + func (row mongoUsageLogRow) toUsageLogEntry() UsageLogEntry { return UsageLogEntry{ ID: row.ID, @@ -52,6 +72,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 +110,40 @@ func costPtr(present int, value float64) *float64 { return nil } +// mongoProviderUsageCondition identifies rows that reached a provider. +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}}}, + }}} +} + +// mongoProviderCostSum builds a conditional provider-spend accumulator. +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, + }}}}} +} + +// mongoProviderCostPresenceCount counts priced provider rows for one cost field. +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}}}}} +} + +// sessionCostPtr distinguishes cache-only zero spend from unknown provider pricing. +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 +642,118 @@ 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) { + dataPipeline, countPipeline, limit, offset, err := mongoSessionUsagePipelines(params) + if err != nil { + return nil, err + } + + aggregateOptions := options.Aggregate().SetAllowDiskUse(true) + cursor, err := r.collection.Aggregate(ctx, dataPipeline, aggregateOptions) + if err != nil { + return nil, fmt.Errorf("failed to aggregate usage by session: %w", err) + } + defer cursor.Close(ctx) + + result := make([]SessionUsage, 0, limit) + for cursor.Next(ctx) { + var row mongoSessionUsageRow + if err := cursor.Decode(&row); err != nil { + return nil, fmt.Errorf("failed to decode usage by session result: %w", err) + } + 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), + }) + } + if err := cursor.Err(); err != nil { + return nil, fmt.Errorf("error iterating usage by session cursor: %w", err) + } + + countCursor, err := r.collection.Aggregate(ctx, countPipeline, aggregateOptions) + if err != nil { + return nil, fmt.Errorf("failed to count usage sessions: %w", err) + } + defer countCursor.Close(ctx) + var countResult struct { + Count int `bson:"count"` + } + if countCursor.Next(ctx) { + if err := countCursor.Decode(&countResult); err != nil { + return nil, fmt.Errorf("failed to decode usage session count: %w", err) + } + } + if err := countCursor.Err(); err != nil { + return nil, fmt.Errorf("error iterating usage session count cursor: %w", err) + } + + total := countResult.Count + return &SessionUsageResult{Entries: result, Total: total, Limit: limit, Offset: offset}, nil +} + +// mongoSessionUsagePipelines builds separate data and count aggregations so +// high-cardinality session sets do not collect into one $facet document. +func mongoSessionUsagePipelines(params SessionUsageParams) (bson.A, 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, 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) + basePipeline := bson.A{} + if len(matchFilters) > 0 { + basePipeline = append(basePipeline, bson.D{{Key: "$match", Value: matchFilters}}) + } + basePipeline = append(basePipeline, + 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"}}}, + }}}, + ) + + dataPipeline := append(append(bson.A(nil), basePipeline...), + bson.D{{Key: "$sort", Value: bson.D{{Key: "latest", Value: -1}, {Key: "_id", Value: 1}}}}, + bson.D{{Key: "$skip", Value: offset}}, + bson.D{{Key: "$limit", Value: limit}}, + ) + countPipeline := append(append(bson.A(nil), basePipeline...), + bson.D{{Key: "$count", Value: "count"}}, + ) + + return dataPipeline, countPipeline, 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 +1210,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 +1244,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..9cbd61159 100644 --- a/internal/usage/reader_mongodb_test.go +++ b/internal/usage/reader_mongodb_test.go @@ -1,12 +1,65 @@ package usage import ( + "fmt" "reflect" + "strings" "testing" "go.mongodb.org/mongo-driver/v2/bson" ) +func TestMongoSessionUsagePipelinesArePagedAndExcludeCachedCost(t *testing.T) { + dataPipeline, countPipeline, limit, offset, err := mongoSessionUsagePipelines(SessionUsageParams{ + UsageQueryParams: UsageQueryParams{SessionID: "scoped-session", CacheMode: CacheModeUncached}, + Limit: 12, + Offset: 7, + }) + if err != nil { + t.Fatalf("mongoSessionUsagePipelines: %v", err) + } + if limit != 12 || offset != 7 { + t.Fatalf("pagination = %d/%d, want 12/7", limit, offset) + } + if len(dataPipeline) != 6 { + t.Fatalf("data pipeline stages = %d, want 6: %#v", len(dataPipeline), dataPipeline) + } + if len(countPipeline) != 4 { + t.Fatalf("count pipeline stages = %d, want 4: %#v", len(countPipeline), countPipeline) + } + match := fmt.Sprint(dataPipeline[0]) + if !strings.Contains(match, "scoped-session") || strings.Contains(match, "cache_type") { + t.Fatalf("match stage has unexpected scope: %s", match) + } + group := fmt.Sprint(dataPipeline[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) + } + } + wantTail := bson.A{ + bson.D{{Key: "$sort", Value: bson.D{{Key: "latest", Value: -1}, {Key: "_id", Value: 1}}}}, + bson.D{{Key: "$skip", Value: 7}}, + bson.D{{Key: "$limit", Value: 12}}, + } + if !reflect.DeepEqual(dataPipeline[3:], wantTail) { + t.Fatalf("data pipeline tail = %#v, want %#v", dataPipeline[3:], wantTail) + } + wantCount := bson.D{{Key: "$count", Value: "count"}} + if !reflect.DeepEqual(countPipeline[3], wantCount) { + t.Fatalf("count stage = %#v, want %#v", countPipeline[3], wantCount) + } +} + +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 +84,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 +157,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..609099eed 100644 --- a/internal/usage/reader_postgresql.go +++ b/internal/usage/reader_postgresql.go @@ -232,6 +232,67 @@ 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 +} + +// postgresqlSessionUsageQueries builds matching bounded data and count queries. +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, session_id ASC, user_path ASC 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 +304,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 +319,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 +362,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 +395,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 +414,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 +637,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..151bb3465 100644 --- a/internal/usage/reader_postgresql_test.go +++ b/internal/usage/reader_postgresql_test.go @@ -3,10 +3,41 @@ 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)", + "ORDER BY MAX(timestamp) DESC, session_id ASC, user_path ASC", + "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 +73,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..ad2d25b7f 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, session_id ASC, user_path ASC 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..eebc4ef23 --- /dev/null +++ b/internal/usage/session_sqlite_test.go @@ -0,0 +1,167 @@ +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) + } +} + +func TestSQLiteSessionUsagePaginationHasStableTimestampTies(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) + } + + timestamp := time.Date(2026, 8, 15, 12, 0, 0, 0, time.UTC) + entries := []*UsageEntry{ + {ID: "d", RequestID: "r-d", Timestamp: timestamp, Model: "gpt-5", Provider: "openai", Endpoint: "/v1/chat/completions", SessionID: "session-c", UserPath: "/a"}, + {ID: "c", RequestID: "r-c", Timestamp: timestamp, Model: "gpt-5", Provider: "openai", Endpoint: "/v1/chat/completions", SessionID: "session-b", UserPath: "/a"}, + {ID: "b", RequestID: "r-b", Timestamp: timestamp, Model: "gpt-5", Provider: "openai", Endpoint: "/v1/chat/completions", SessionID: "session-a", UserPath: "/b"}, + {ID: "a", RequestID: "r-a", Timestamp: timestamp, Model: "gpt-5", Provider: "openai", Endpoint: "/v1/chat/completions", SessionID: "session-a", UserPath: "/a"}, + } + if err := store.WriteBatch(context.Background(), entries); err != nil { + t.Fatalf("WriteBatch: %v", err) + } + + want := []string{"session-a:/a", "session-a:/b", "session-b:/a", "session-c:/a"} + var got []string + for offset := 0; offset < len(want); offset += 2 { + page, err := reader.GetUsageBySession(context.Background(), SessionUsageParams{Limit: 2, Offset: offset}) + if err != nil { + t.Fatalf("GetUsageBySession offset %d: %v", offset, err) + } + for _, row := range page.Entries { + got = append(got, row.SessionID+":"+row.UserPath) + } + } + if len(got) != len(want) { + t.Fatalf("paged rows = %v, want %v", got, want) + } + for i := range want { + if got[i] != want[i] { + t.Fatalf("paged rows = %v, want %v", got, want) + } + } +} 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/tools/seed-demo-data.sh b/tools/seed-demo-data.sh index 0eef12637..7897af31c 100755 --- a/tools/seed-demo-data.sh +++ b/tools/seed-demo-data.sh @@ -125,6 +125,7 @@ sqlite3 "$db_path" "PRAGMA journal_mode = WAL;" >/dev/null sqlite3 "$db_path" "ALTER TABLE usage ADD COLUMN labels JSON;" 2>/dev/null || true sqlite3 "$db_path" "ALTER TABLE usage ADD COLUMN rewrite_tokens_saved INTEGER NOT NULL DEFAULT 0;" 2>/dev/null || true sqlite3 "$db_path" "ALTER TABLE usage ADD COLUMN rewrite_cost_saved REAL;" 2>/dev/null || true +sqlite3 "$db_path" "ALTER TABLE usage ADD COLUMN session_id TEXT;" 2>/dev/null || true sqlite3 "$db_path" "ALTER TABLE mcp_servers ADD COLUMN display_name TEXT NOT NULL DEFAULT '';" 2>/dev/null || true sqlite3 "$db_path" "ALTER TABLE auth_keys ADD COLUMN user_path TEXT;" 2>/dev/null || true sqlite3 "$db_path" "ALTER TABLE auth_keys ADD COLUMN labels JSON;" 2>/dev/null || true @@ -180,6 +181,7 @@ CREATE TABLE IF NOT EXISTS usage ( provider_name TEXT, endpoint TEXT NOT NULL, user_path TEXT, + session_id TEXT, cache_type TEXT, labels JSON, input_tokens INTEGER NOT NULL DEFAULT 0, @@ -337,6 +339,7 @@ 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_cache_type ON usage(cache_type); +CREATE INDEX IF NOT EXISTS idx_usage_session_id ON usage(session_id); CREATE INDEX IF NOT EXISTS idx_audit_timestamp ON audit_logs(timestamp); CREATE INDEX IF NOT EXISTS idx_audit_request_id ON audit_logs(request_id); CREATE INDEX IF NOT EXISTS idx_audit_path ON audit_logs(path); @@ -590,7 +593,7 @@ FROM session_keys; 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 ) @@ -604,6 +607,7 @@ SELECT provider_name, endpoint, user_path, + session_id, cache_type, -- Request labels as extracted from tagging headers: roughly two thirds of -- traffic is labelled, some with two labels, the rest unlabelled (NULL). diff --git a/web/dashboard/messages/en.json b/web/dashboard/messages/en.json index 58f4a4fa7..f1cb9a12b 100644 --- a/web/dashboard/messages/en.json +++ b/web/dashboard/messages/en.json @@ -31,6 +31,9 @@ "usage_filter_label": "Filter by label", "usage_filter_user_path": "Filter by user path", "usage_filter_user_path_placeholder": "User path /team/alpha", + "usage_filter_session": "Filter by session ID", + "usage_filter_session_placeholder": "Session ID", + "usage_clear_session_filter": "Clear session filter {session}", "usage_all_models": "All Models", "usage_all_providers": "All Providers", "usage_all_labels": "All Labels", @@ -40,15 +43,19 @@ "usage_model_view": "Model usage view", "usage_user_path_view": "User path usage view", "usage_label_view": "Label usage view", + "usage_session_view": "Session usage view", "usage_model_noun": "model usage", "usage_user_path_noun": "user path usage", "usage_label_noun": "label usage", + "usage_session_noun": "session usage", "usage_tokens_by_model": "Token Usage by Model", "usage_cost_by_model": "Cost by Model", "usage_by_user_path": "Usage by User Path", "usage_cost_by_user_path": "Cost by User Path", "usage_by_label": "Usage by Label", "usage_cost_by_label": "Cost by Label", + "usage_by_recent_session": "Usage by Recent Session", + "usage_cost_by_recent_session": "Cost by Recent Session", "usage_show_chart": "Show {noun} chart", "usage_show_stacked_chart": "Show {noun} stacked chart", "usage_show_table": "Show {noun} table", @@ -58,9 +65,13 @@ "usage_loading_breakdown": "Loading {noun}", "usage_label_help_label": "Label usage help", "usage_label_help": "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.", + "usage_session_help_label": "Session usage help", + "usage_session_help": "Sessions are ordered by latest activity. Request and token totals include local-cache hits; cost fields include provider spend only.", "usage_column_model": "Model", "usage_column_provider": "Provider", "usage_column_user_path": "User Path", + "usage_column_session": "Session", + "usage_column_session_id": "Session ID", "usage_column_label": "Label", "usage_column_requests": "Requests", "usage_column_input_tokens": "Input Tokens", @@ -76,8 +87,13 @@ "usage_current_cached_price": "~{cost} at current cached-input pricing", "usage_local_cached_split": "{input} input + {output} output", "usage_request_log": "Request Log", - "usage_search_placeholder": "Search by request ID, model, provider...", - "usage_search_label": "Search by request ID, model, provider", + "usage_search_placeholder": "Search by request ID, session, model, provider...", + "usage_search_label": "Search by request ID, session, model, provider", + "usage_filter_by_session": "Filter by session {session}", + "usage_copy_session_id": "Copy session ID", + "usage_copy_session": "Copy session ID {session}", + "usage_session_copied": "Session ID copied", + "usage_session_copy_failed": "Unable to copy session ID", "usage_hide_cached": "Hide cached requests", "usage_column_timestamp": "Timestamp", "usage_column_labels": "Labels", @@ -176,6 +192,7 @@ "audit_loading_session_requests": "Loading session requests", "audit_thread_summary": "Showing the latest {shown} of {total} requests in this session.", "audit_metadata_label": "Metadata:", + "audit_view_session_usage": "View total usage for this session", "audit_error_message_title": "Error Message", "audit_headers_title": "Headers", "audit_copy_headers": "Copy Headers", diff --git a/web/dashboard/messages/pl.json b/web/dashboard/messages/pl.json index 6adb8616c..f99399894 100644 --- a/web/dashboard/messages/pl.json +++ b/web/dashboard/messages/pl.json @@ -31,6 +31,9 @@ "usage_filter_label": "Filtruj według etykiety", "usage_filter_user_path": "Filtruj według User Path", "usage_filter_user_path_placeholder": "User Path /team/alpha", + "usage_filter_session": "Filtruj według ID sesji", + "usage_filter_session_placeholder": "ID sesji", + "usage_clear_session_filter": "Wyczyść filtr sesji {session}", "usage_all_models": "Wszystkie modele", "usage_all_providers": "Wszyscy dostawcy", "usage_all_labels": "Wszystkie etykiety", @@ -40,15 +43,19 @@ "usage_model_view": "Widok zużycia według modelu", "usage_user_path_view": "Widok zużycia według User Path", "usage_label_view": "Widok zużycia według etykiety", + "usage_session_view": "Widok zużycia według sesji", "usage_model_noun": "zużycia według modelu", "usage_user_path_noun": "zużycia według User Path", "usage_label_noun": "zużycia według etykiety", + "usage_session_noun": "zużycia według sesji", "usage_tokens_by_model": "Zużycie tokenów według modelu", "usage_cost_by_model": "Koszt według modelu", "usage_by_user_path": "Zużycie według User Path", "usage_cost_by_user_path": "Koszt według User Path", "usage_by_label": "Zużycie według etykiety", "usage_cost_by_label": "Koszt według etykiety", + "usage_by_recent_session": "Zużycie według ostatnich sesji", + "usage_cost_by_recent_session": "Koszt według ostatnich sesji", "usage_show_chart": "Pokaż wykres {noun}", "usage_show_stacked_chart": "Pokaż skumulowany wykres {noun}", "usage_show_table": "Pokaż tabelę {noun}", @@ -58,9 +65,13 @@ "usage_loading_breakdown": "Wczytywanie {noun}", "usage_label_help_label": "Pomoc dotycząca zużycia według etykiet", "usage_label_help": "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.", + "usage_session_help_label": "Pomoc dotycząca zużycia według sesji", + "usage_session_help": "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.", "usage_column_model": "Model", "usage_column_provider": "Dostawca", "usage_column_user_path": "User Path", + "usage_column_session": "Sesja", + "usage_column_session_id": "ID sesji", "usage_column_label": "Etykieta", "usage_column_requests": "Requesty", "usage_column_input_tokens": "Input Tokens", @@ -76,8 +87,13 @@ "usage_current_cached_price": "~{cost} według bieżącej ceny wejścia z cache", "usage_local_cached_split": "{input} input tokens + {output} output tokens", "usage_request_log": "Dziennik Request'ów", - "usage_search_placeholder": "Szukaj według ID Requestu, modelu lub dostawcy...", - "usage_search_label": "Szukaj według ID Requestu, modelu lub dostawcy", + "usage_search_placeholder": "Szukaj według ID Requestu, sesji, modelu lub dostawcy...", + "usage_search_label": "Szukaj według ID Requestu, sesji, modelu lub dostawcy", + "usage_filter_by_session": "Filtruj według sesji {session}", + "usage_copy_session_id": "Kopiuj ID sesji", + "usage_copy_session": "Kopiuj ID sesji {session}", + "usage_session_copied": "Skopiowano ID sesji", + "usage_session_copy_failed": "Nie można skopiować ID sesji", "usage_hide_cached": "Ukryj Requesty z cache", "usage_column_timestamp": "Znacznik czasu", "usage_column_labels": "Etykiety", @@ -180,6 +196,7 @@ "audit_loading_session_requests": "Wczytywanie Request'ów sesji", "audit_thread_summary": "Wyświetlanie najnowszych {shown} z {total} Request'ów w tej sesji.", "audit_metadata_label": "Metadane:", + "audit_view_session_usage": "Wyświetl całkowite zużycie dla tej sesji", "audit_error_message_title": "Komunikat błędu", "audit_headers_title": "Nagłówki", "audit_copy_headers": "Kopiuj nagłówki", diff --git a/web/dashboard/src/lib/components/molecules/FilterInput.svelte b/web/dashboard/src/lib/components/molecules/FilterInput.svelte index eac2f51b8..48e5e2b15 100644 --- a/web/dashboard/src/lib/components/molecules/FilterInput.svelte +++ b/web/dashboard/src/lib/components/molecules/FilterInput.svelte @@ -1,8 +1,9 @@
            @@ -22,9 +34,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/audit-logs/AuditEntryMetadata.svelte b/web/dashboard/src/pages/audit-logs/AuditEntryMetadata.svelte index 7fed4742d..60e065c51 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"; import * as m from "$lib/paraglide/messages.js"; let { entry } = $props(); @@ -13,6 +14,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 }, { @@ -44,9 +46,18 @@
            {#each badges as badge (badge.key)} - {badge.text} + {#if badge.key === "session_id"} + + {:else} + {badge.text} + {/if} {/each}
            @@ -83,6 +94,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/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}
            {thread.count} {/if} + {#if onusage} + + {/if} usagePage.onUsageFilterChanged()); - $effect(() => onUserPathInput.cancel); + const onSessionInput = debounced(() => usagePage.onUsageFilterChanged()); + $effect(() => () => { + onUserPathInput.cancel(); + onSessionInput.cancel(); + });
            @@ -53,6 +57,18 @@ bind:value={usagePage.usageFilterUserPath} oninput={onUserPathInput} /> + { + onSessionInput.cancel(); + usagePage.onUsageFilterChanged(); + }} + />
            diff --git a/web/dashboard/src/pages/usage/UsageBreakdownChart.svelte b/web/dashboard/src/pages/usage/UsageBreakdownChart.svelte index 915143d32..42930b61d 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 +170,14 @@ {/snippet} {#if visible} -
            +
            - {#if kind === "label"} - + {#if kind === "label" || kind === "session"} + {#snippet title()}

            {heading}

            {/snippet} {#snippet extra()} {#if loading}{/if} @@ -177,14 +203,20 @@ {m.usage_column_provider()} {:else if kind === "userPath"} {m.usage_column_user_path()} - {:else} + {:else if kind === "label"} {m.usage_column_label()} {m.usage_column_requests()} + {:else} + {m.usage_column_session_id()} + {m.usage_column_user_path()} + {m.usage_column_requests()} {/if} {m.usage_column_input_tokens()} {m.usage_column_output_tokens()} - {m.usage_column_prompt_cached()} - {m.usage_column_local_cached()} + {#if kind !== "session"} + {m.usage_column_prompt_cached()} + {m.usage_column_local_cached()} + {/if} {m.usage_column_total_tokens()} {m.usage_column_input_cost()} {m.usage_column_output_cost()} @@ -199,7 +231,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)} + /> + + {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)} @@ -240,6 +284,15 @@
            {/if} + {#if kind === "session"} + usagePage.sessionUsagePrevPage()} + onnext={() => usagePage.sessionUsageNextPage()} + /> + {/if}
            {:else if loading} @@ -310,4 +363,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 3ad10b1e1..ff9a78f82 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, @@ -95,6 +96,7 @@ {m.usage_column_provider()} {m.usage_column_model()} {m.usage_column_user_path()} + {m.usage_column_session()} {#if hasLabels} {m.usage_column_labels()} {/if} @@ -119,6 +121,18 @@ {entry.model} {entry.user_path || "-"} + + {#if entry.session_id} + usagePage.filterBySession(sessionID, entry.user_path)} + /> + {:else} + - + {/if} + {#if hasLabels} {@render labelChips(entry)} diff --git a/web/dashboard/src/pages/usage/UsagePage.svelte b/web/dashboard/src/pages/usage/UsagePage.svelte index ee07bb64f..028738dcd 100644 --- a/web/dashboard/src/pages/usage/UsagePage.svelte +++ b/web/dashboard/src/pages/usage/UsagePage.svelte @@ -66,6 +66,11 @@
            + +
            + +
            +
            @@ -96,6 +101,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 6427981f0..f68337f07 100644 --- a/web/dashboard/src/pages/usage/usage-helpers.js +++ b/web/dashboard/src/pages/usage/usage-helpers.js @@ -27,6 +27,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, @@ -39,6 +49,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) { @@ -56,6 +67,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 8c8429ad1..91cc0bcf5 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). @@ -15,7 +15,9 @@ import { liveLogs } from "../audit-logs/liveLogs.svelte.js"; import { emptyUsageLog, emptyUsagePageSummary, + emptySessionUsage, facetOptionList, + sessionUsageQueryParams, usageFilterQueryStr, usageLogQueryParams, } from "./usage-helpers.js"; @@ -51,6 +53,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: @@ -63,6 +71,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 @@ -89,11 +98,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 = {}; @@ -118,6 +129,7 @@ class UsagePageState { provider: this.usageFilterProvider, label: this.usageFilterLabel, user_path: this.usageFilterUserPath, + session_id: this.usageFilterSession, }, excludeFacet, ); @@ -134,6 +146,22 @@ class UsagePageState { this.onUsageFilterChanged(); } + filterBySession(sessionID, userPath = "") { + this.usageFilterModel = ""; + this.usageFilterProvider = ""; + this.usageFilterLabel = ""; + this.usageFilterUserPath = String(userPath || "").trim(); + 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 m.usage_clear_label_filter(); return m.usage_filter_by_label_value({ label }); @@ -148,6 +176,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() { @@ -171,6 +200,7 @@ class UsagePageState { this.fetchModelUsage(), this.fetchUserPathUsage(), this.fetchLabelUsage(), + this.fetchSessionUsage(true), this.fetchUsageLog(true), ]; if (usageData.cacheAnalyticsEnabled()) { @@ -293,6 +323,36 @@ class UsagePageState { } } + // Shared request lifecycle for the two paginated fetches (session + // breakdown, request log): track/abort the in-flight request, reset the + // offset, normalize the entries array, and fall back to an empty result + // on error. Mirrors #fetchBreakdown but keeps pagination state and entry + // normalization on top of it. + async #fetchPaginated(key, endpoint, label, { resetOffset, pageState, queryParams, assign, setLoading, emptyResult }) { + const controller = this.#startRequest(key); + setLoading(true); + try { + if (resetOffset) pageState.offset = 0; + const qs = dateRange.queryStr() + this.filterQueryStr() + queryParams(); + const result = await getJSON(endpoint + "?" + qs, { label, signal: controller.signal }); + if (result.stale || controller.signal.aborted) return; + if (!result.ok || !result.data || typeof result.data !== "object") { + assign(emptyResult()); + return; + } + const payload = result.data; + payload.entries = Array.isArray(payload.entries) ? payload.entries : []; + assign(payload); + } catch (e) { + if (isAbortError(e)) return; + console.error("Failed to fetch " + label + ":", e); + assign(emptyResult()); + } finally { + this.#clearRequest(key, controller); + if (this.#controllers[key] === null) setLoading(false); + } + } + fetchModelUsage() { return this.#fetchBreakdown( "modelUsage", @@ -323,40 +383,44 @@ class UsagePageState { ); } - async fetchUsageLog(resetOffset) { - const controller = this.#startRequest("usageLog"); - this.usageLogLoading = true; - try { - if (resetOffset) this.usageLog.offset = 0; - let qs = dateRange.queryStr() + this.filterQueryStr(); - qs += usageLogQueryParams({ - limit: this.usageLog.limit, - offset: this.usageLog.offset, - hideCached: this.usageLogHideCached, - search: this.usageLogSearch, - }); - const result = await getJSON("/admin/usage/log?" + qs, { - label: "usage log", - signal: controller.signal, - }); - if (result.stale) return; - if (controller.signal.aborted) return; - if (!result.ok) { - this.usageLog = emptyUsageLog(); - return; - } - const payload = - result.data && typeof result.data === "object" ? result.data : emptyUsageLog(); - if (!payload.entries) payload.entries = []; - this.usageLog = payload; - } catch (e) { - if (isAbortError(e)) return; - console.error("Failed to fetch usage log:", e); - this.usageLog = emptyUsageLog(); - } finally { - this.#clearRequest("usageLog", controller); - if (this.#controllers["usageLog"] === null) this.usageLogLoading = false; - } + fetchSessionUsage(resetOffset) { + return this.#fetchPaginated("sessionUsage", "/admin/usage/sessions", "usage sessions", { + resetOffset, + pageState: this.sessionUsage, + queryParams: () => sessionUsageQueryParams(this.sessionUsage), + assign: (payload) => (this.sessionUsage = payload), + setLoading: (v) => (this.sessionUsageLoading = v), + emptyResult: emptySessionUsage, + }); + } + + 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); + } + + fetchUsageLog(resetOffset) { + return this.#fetchPaginated("usageLog", "/admin/usage/log", "usage log", { + resetOffset, + pageState: this.usageLog, + queryParams: () => + usageLogQueryParams({ + limit: this.usageLog.limit, + offset: this.usageLog.offset, + hideCached: this.usageLogHideCached, + search: this.usageLogSearch, + }), + assign: (payload) => (this.usageLog = payload), + setLoading: (v) => (this.usageLogLoading = v), + emptyResult: emptyUsageLog, + }); } usageLogNextPage() { diff --git a/web/dashboard/src/styles/budgets.css b/web/dashboard/src/styles/budgets.css index b6ec36bab..1bbd34a66 100644 --- a/web/dashboard/src/styles/budgets.css +++ b/web/dashboard/src/styles/budgets.css @@ -150,6 +150,48 @@ background: var(--danger); } +/* Period-elapsed bar: same per-period palette as .budget-period-label-*, + applied as a track tint plus a saturated fill (readable under the white + .budget-bar-text-row-on-fill text, except custom which stays light and + keeps its dark on-fill text override below). */ +.budget-bar-track-period-monthly { + background: color-mix(in srgb, #30302c 22%, var(--bg)); +} +.budget-bar-fill-period-monthly { + background: #30302c; +} + +.budget-bar-track-period-weekly { + background: color-mix(in srgb, #68765c 22%, var(--bg)); +} +.budget-bar-fill-period-weekly { + background: #68765c; +} + +.budget-bar-track-period-daily { + background: color-mix(in srgb, #b5652d 22%, var(--bg)); +} +.budget-bar-fill-period-daily { + /* Darker than the #b5652d badge color: the badge only needs contrast + against its own text, but this fill sits under white on-fill text + and #b5652d falls short of 4.5:1. */ + background: #a75a26; +} + +.budget-bar-track-period-hourly { + background: color-mix(in srgb, #783f22 22%, var(--bg)); +} +.budget-bar-fill-period-hourly { + background: #783f22; +} + +.budget-bar-track-period-custom { + background: color-mix(in srgb, #bfa584 22%, var(--bg)); +} +.budget-bar-fill-period-custom { + background: #bfa584; +} + .budget-bar-text-row { position: absolute; inset: 0; diff --git a/web/dashboard/src/styles/layout.css b/web/dashboard/src/styles/layout.css index f27bcb157..24faac2fb 100644 --- a/web/dashboard/src/styles/layout.css +++ b/web/dashboard/src/styles/layout.css @@ -62,9 +62,6 @@ body.dashboard-modal-open .content { } .page-with-sticky-date > .sticky-date-range { - position: sticky; - top: 16px; - z-index: 8; grid-column: 2; justify-self: end; } diff --git a/web/dashboard/src/styles/responsive.css b/web/dashboard/src/styles/responsive.css index ea6c3e3ae..98e1974e7 100644 --- a/web/dashboard/src/styles/responsive.css +++ b/web/dashboard/src/styles/responsive.css @@ -56,7 +56,6 @@ } .page-with-sticky-date > .sticky-date-range { - top: 10px; width: 100%; margin-bottom: 24px; } diff --git a/web/dashboard/tests/live-logs.test.js b/web/dashboard/tests/live-logs.test.js index d58237271..dfafce7cc 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 non-matching 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: "other-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..febe62a39 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=/); @@ -145,6 +160,13 @@ test("usageFilterQueryStr honors every filter except the excluded facet", () => const withoutLabel = usageFilterQueryStr(filters, "label"); assert.doesNotMatch(withoutLabel, /label=/); assert.match(withoutLabel, /provider=openai/); + + const withoutSession = usageFilterQueryStr(filters, "session_id"); + assert.doesNotMatch(withoutSession, /session_id=/); + assert.match(withoutSession, /model=gpt-5/); + assert.match(withoutSession, /provider=openai/); + assert.match(withoutSession, /label=env%3Aprod/); + assert.match(withoutSession, /user_path=%2Fteam/); }); test("usageLogQueryParams includes cache_mode=all by default so cached records are returned", () => {