diff --git a/internal/admin/dashboard/static/dist/assets/index-BMuHCiY5.js b/internal/admin/dashboard/static/dist/assets/index-BMuHCiY5.js new file mode 100644 index 000000000..bd15d1319 --- /dev/null +++ b/internal/admin/dashboard/static/dist/assets/index-BMuHCiY5.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,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-C5HbE-2l.css b/internal/admin/dashboard/static/dist/assets/index-C5HbE-2l.css deleted file mode 100644 index 2bbd6283b..000000000 --- a/internal/admin/dashboard/static/dist/assets/index-C5HbE-2l.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}.locale-selector.svelte-hr6ahz{color:var(--text-muted);gap:5px;margin-bottom:10px;font-size:11px;font-weight:600;display:grid}.locale-selector.svelte-hr6ahz select:where(.svelte-hr6ahz){border:1px solid var(--border);background:var(--bg);width:100%;min-width:0;color:var(--text);font:inherit;border-radius:6px;padding:6px 8px}.locale-selector.is-compact.svelte-hr6ahz{display:none}.theme-toggle.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;margin-bottom:10px;padding:2px;display:inline-flex}.theme-btn.svelte-1keql7b{width:28px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.theme-btn.svelte-1keql7b:hover{color:var(--text)}.theme-btn.active.svelte-1keql7b{background:var(--accent);color:#fff}.theme-btn.svelte-1keql7b:focus-visible,.theme-toggle-mobile.svelte-1keql7b:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.theme-toggle-mobile.svelte-1keql7b{background:var(--bg);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:none}.theme-toggle-mobile.svelte-1keql7b:hover{color:var(--text)}.theme-toggle.is-compact.svelte-1keql7b{display:none}.theme-toggle-mobile.is-compact.svelte-1keql7b{margin:0 auto;display:flex}@media (width<=768px){.theme-toggle.svelte-1keql7b{display:none}.theme-toggle-mobile.svelte-1keql7b{margin:0 auto;display:flex}}.sidebar.svelte-1nwtzae{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);-webkit-overflow-scrolling:touch;z-index:10;flex-direction:column;max-height:100vh;transition:flex-basis .2s,width .2s;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar.sidebar-resizing.svelte-1nwtzae{transition:none}.sidebar-header.svelte-1nwtzae{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:20px;display:flex}.sidebar-logo.svelte-1nwtzae{width:28px;height:28px;color:var(--accent);flex-shrink:0}.sidebar-logo.svelte-1nwtzae svg{width:100%;height:100%}.sidebar-header.svelte-1nwtzae h1{letter-spacing:-.3px;font-size:18px;font-weight:700}.sidebar-nav.svelte-1nwtzae{flex-direction:column;flex:1;gap:4px;padding:12px;display:flex}.nav-item.svelte-1nwtzae{border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item.svelte-1nwtzae:hover{background:var(--bg-surface-hover);color:var(--text)}.nav-item.active.svelte-1nwtzae{background:var(--accent);color:#fff}.nav-label.svelte-1nwtzae{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-footer.svelte-1nwtzae{border-top:1px solid var(--border);padding:16px}.api-key-section.svelte-1nwtzae{gap:8px;display:grid}.external-auth-section.svelte-1nwtzae{gap:8px;margin-top:8px;display:grid}.external-auth-user.svelte-1nwtzae{min-width:0;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.external-auth-user.svelte-1nwtzae span:where(.svelte-1nwtzae){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.api-key-open-btn.svelte-1nwtzae{border:1px solid var(--accent);border-radius:var(--radius);width:100%;color:var(--accent);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.api-key-open-btn.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 78%, var(--text));color:color-mix(in srgb, var(--accent) 78%, var(--text))}.api-key-open-btn.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.sidebar-toggle.svelte-1nwtzae{cursor:ew-resize;z-index:11;background:0 0;border:none;flex:0 0 6px;width:6px;height:100vh;padding:0;transition:background .15s;position:sticky;top:0}.sidebar-toggle.svelte-1nwtzae:hover{background:color-mix(in srgb, var(--accent) 15%, transparent)}.sidebar-toggle.svelte-1nwtzae:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}body.sidebar-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae){justify-content:center;padding:16px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-header:where(.svelte-1nwtzae) h1,.sidebar.sidebar-collapsed.svelte-1nwtzae .badge{display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-nav:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae){padding:8px}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:none}@media (width<=768px){.sidebar.svelte-1nwtzae{flex-basis:60px;width:60px}.sidebar-header.svelte-1nwtzae{justify-content:center;padding:16px}.sidebar-header.svelte-1nwtzae h1{display:none}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae){justify-content:center;padding:10px}.sidebar-nav.svelte-1nwtzae .nav-item:where(.svelte-1nwtzae) .nav-label:where(.svelte-1nwtzae){display:none}.sidebar-footer.svelte-1nwtzae{gap:8px;padding:8px;display:grid}.sidebar-footer.svelte-1nwtzae .api-key-section:where(.svelte-1nwtzae),.sidebar-footer.svelte-1nwtzae .external-auth-section:where(.svelte-1nwtzae),.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .external-auth-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .external-auth-user:where(.svelte-1nwtzae){display:none}.sidebar.sidebar-collapsed.svelte-1nwtzae .sidebar-footer:where(.svelte-1nwtzae) .api-key-section:where(.svelte-1nwtzae){display:grid}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae){justify-self:center;width:36px;height:36px;min-height:36px;padding:0}.sidebar-footer.svelte-1nwtzae .api-key-open-btn:where(.svelte-1nwtzae) span,.sidebar-toggle.svelte-1nwtzae{display:none}}.dialog-close-btn.svelte-11l1bb5{background:var(--bg);border:1px solid var(--border);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;font:inherit;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.dialog-close-btn.svelte-11l1bb5:hover{color:var(--text);background:var(--bg-surface-hover)}.dialog-close-btn.svelte-11l1bb5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 36%, transparent);outline-offset:2px}.auth-dialog-backdrop.svelte-17e0w4c,.editor-modal-backdrop.svelte-17e0w4c{z-index:80;background:#0000007a;position:fixed;inset:0}.auth-dialog-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.editor-modal-shell.svelte-17e0w4c{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.editor-modal-shell.svelte-17e0w4c>*{overscroll-behavior:contain;width:min(760px,100%);max-height:min(100vh - 40px,960px);margin:0;overflow:auto;box-shadow:0 24px 70px #00000061}@media (width<=768px){.auth-dialog-shell.svelte-17e0w4c,.editor-modal-shell.svelte-17e0w4c{align-items:end;padding:12px}.editor-modal-shell.svelte-17e0w4c>*{max-height:calc(100vh - 24px)}}.external-login-btn.svelte-1dsu6u0{justify-content:center;width:100%;text-decoration:none}.auth-dialog-separator.svelte-1dsu6u0{color:var(--text-muted);align-items:center;gap:10px;font-size:12px;display:flex}.auth-dialog-separator.svelte-1dsu6u0:before,.auth-dialog-separator.svelte-1dsu6u0:after{content:"";border-top:1px solid var(--border);flex:1}.auth-dialog-input-shell.svelte-1dsu6u0{position:relative}.auth-dialog-input.svelte-1dsu6u0{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:11px 12px 11px 38px;font-family:inherit;font-size:14px}.auth-dialog-input.svelte-1dsu6u0:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.flash-region.svelte-1i257xg{top:16px;left:var(--sidebar-width);z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;right:0}.sidebar.sidebar-collapsed~.flash-region.svelte-1i257xg{left:60px}@media (width<=768px){.flash-region.svelte-1i257xg{left:60px}}.flash-toast.svelte-1i257xg{border-radius:var(--radius);pointer-events:auto;align-items:flex-start;gap:10px;width:max-content;max-width:min(480px,100% - 32px);padding:12px 12px 12px 16px;font-size:14px;animation:.9s ease-out svelte-1i257xg-flash-toast-glow;display:flex;box-shadow:0 10px 30px #00000059}@keyframes svelte-1i257xg-flash-toast-glow{0%{box-shadow:0 0 0 4px color-mix(in srgb, currentColor 45%, transparent), 0 10px 30px #00000059}to{box-shadow:0 0 0 4px #0000,0 10px 30px #00000059}}@media (prefers-reduced-motion:reduce){.flash-toast.svelte-1i257xg{animation:none}}.flash-toast-success.svelte-1i257xg{background:color-mix(in srgb, var(--success) 14%, var(--bg-surface));color:var(--success);border:1px solid #34d39959}.flash-toast-error.svelte-1i257xg{background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--warning);border:1px solid #f59e0b66}.flash-toast-text.svelte-1i257xg{overflow-wrap:anywhere;flex:1;min-width:0}.flash-toast-dismiss.svelte-1i257xg{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;flex-shrink:0;padding:0 2px;font-size:18px;line-height:1}.flash-toast-dismiss.svelte-1i257xg:hover{opacity:1}.demo-mode-banner.svelte-1s3mcn8{border:1px solid color-mix(in srgb, var(--warning) 55%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--warning) 14%, var(--bg-surface));color:var(--text);box-shadow:0 8px 24px color-mix(in srgb, var(--bg) 70%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:grid}.demo-mode-banner-icon.svelte-1s3mcn8{width:20px;height:20px;color:var(--warning);flex:0 0 20px}.demo-mode-banner-copy.svelte-1s3mcn8{align-items:baseline;gap:8px;min-width:0;font-size:13px;display:flex}.demo-mode-banner.svelte-1s3mcn8 strong{color:var(--warning);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;font-size:12px}.demo-mode-banner-links.svelte-1s3mcn8{justify-content:flex-end;align-items:center;gap:6px;display:flex}.demo-mode-banner-links.svelte-1s3mcn8 a{border:1px solid color-mix(in srgb, var(--warning) 42%, var(--border));border-radius:var(--radius);min-height:28px;color:var(--text);white-space:nowrap;align-items:center;padding:4px 8px;font-size:12px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.demo-mode-banner-links.svelte-1s3mcn8 a:hover{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 16%, transparent);color:var(--text)}.demo-mode-banner-links.svelte-1s3mcn8 a:focus-visible{outline:2px solid color-mix(in srgb, var(--warning) 42%, transparent);outline-offset:2px}@media (width<=768px){.demo-mode-banner.svelte-1s3mcn8{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.demo-mode-banner-copy.svelte-1s3mcn8{gap:2px;display:grid}.demo-mode-banner-links.svelte-1s3mcn8{flex-wrap:wrap;grid-column:2;justify-content:flex-start}}.auth-banner.svelte-1c5yh36{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dp-calendar.svelte-g7ga4u{flex-shrink:0;width:224px}.dp-cal-header.svelte-g7ga4u{justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px;display:flex}.dp-cal-title.svelte-g7ga4u{font-size:13px;font-weight:600}.dp-nav-btn.svelte-g7ga4u{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.dp-nav-btn.svelte-g7ga4u:hover{background:var(--bg-surface-hover);color:var(--text)}.dp-nav-btn.svelte-g7ga4u:disabled{opacity:.3;cursor:default;pointer-events:none}.dp-nav-prev-mobile.svelte-g7ga4u{display:none}.dp-weekdays.svelte-g7ga4u{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:4px;display:grid}.dp-weekdays.svelte-g7ga4u span:where(.svelte-g7ga4u){color:var(--text-muted);padding:4px 0;font-size:11px;font-weight:600}.dp-days.svelte-g7ga4u{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.dp-day.svelte-g7ga4u{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-family:inherit;font-size:12px;transition:all .1s;display:flex}.dp-day.svelte-g7ga4u:hover:not(.disabled):not(.other-month){background:var(--bg-surface-hover)}.dp-day.other-month.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default}.dp-day.today.svelte-g7ga4u{color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}.dp-day.in-range.svelte-g7ga4u{background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:0}.dp-day.range-start.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:6px 0 0 6px;font-weight:600}.dp-day.range-end.svelte-g7ga4u{background:var(--accent);color:#fff;border-radius:0 6px 6px 0;font-weight:600}.dp-day.range-start.range-end.svelte-g7ga4u{border-radius:6px}.dp-day.range-start.today.svelte-g7ga4u,.dp-day.range-end.today.svelte-g7ga4u{box-shadow:none}.dp-day.disabled.svelte-g7ga4u{color:var(--text-muted);opacity:.3;cursor:default;pointer-events:none}@media (width<=768px){.dp-nav-prev-mobile.svelte-g7ga4u{display:flex}}.date-picker.svelte-ax7ma4{position:relative}.date-picker-trigger.svelte-ax7ma4{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s;display:inline-flex}.date-picker-trigger.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.date-picker-trigger.svelte-ax7ma4 svg:where(.svelte-ax7ma4){color:var(--text-muted);flex-shrink:0}.date-picker-chevron.svelte-ax7ma4{transition:transform .15s}.date-picker-chevron.open.svelte-ax7ma4{transform:rotate(180deg)}.date-picker-dropdown.svelte-ax7ma4{z-index:100;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000040}.date-picker-presets.svelte-ax7ma4{border-right:1px solid var(--border);flex-direction:column;gap:2px;min-width:140px;padding:8px;display:flex}.preset-btn.svelte-ax7ma4{color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .15s}.preset-btn.svelte-ax7ma4:hover{background:var(--bg-surface-hover)}.preset-btn.active.svelte-ax7ma4{background:var(--accent);color:#fff}.date-picker-calendars.svelte-ax7ma4{flex-wrap:nowrap;gap:16px;padding:12px;display:flex}.dp-cursor-hint.svelte-ax7ma4{pointer-events:none;z-index:101;background:var(--bg-surface);color:var(--text);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:500;display:flex;position:fixed;transform:translate(12px,-50%)}.dp-cursor-hint.svelte-ax7ma4 svg:where(.svelte-ax7ma4){width:12px;height:12px;color:var(--accent);flex-shrink:0}@media (width<=768px){.date-picker-dropdown.svelte-ax7ma4{border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto}.date-picker-presets.svelte-ax7ma4{-webkit-overflow-scrolling:touch;border-right:none;border-bottom:1px solid var(--border);flex-flow:row;min-width:0;overflow-x:auto}.date-picker-calendars.svelte-ax7ma4{justify-content:center}.date-picker-calendars.svelte-ax7ma4>.dp-calendar:first-child{display:none}}.segmented-control.svelte-92fh5i{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.segmented-btn.svelte-92fh5i{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.segmented-btn.svelte-92fh5i:hover{color:var(--text)}.segmented-btn.active.svelte-92fh5i{background:var(--accent);color:#fff}@media (width<=768px){.segmented-btn.svelte-92fh5i{padding:4px 8px;font-size:11px}}.live-tokens.svelte-17qr2ta{margin-bottom:28px}.live-tokens-heading.svelte-17qr2ta{flex-direction:column;gap:2px;display:flex}.live-tokens-subtitle.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.live-tokens-legend.svelte-17qr2ta{flex-wrap:wrap;gap:8px 18px;margin-bottom:16px;display:flex}.live-tokens-legend-item.svelte-17qr2ta{color:var(--text-muted);align-items:center;gap:7px;font-size:12px;display:inline-flex}.live-tokens-swatch.svelte-17qr2ta{border-radius:2px;flex-shrink:0;width:10px;height:10px}.live-tokens-legend-value.svelte-17qr2ta{color:var(--text);font-weight:600}.live-tokens-empty.svelte-17qr2ta .live-tokens-empty-text:where(.svelte-17qr2ta){color:var(--text-muted);font-size:13px}.provider-status-flag.svelte-6tr9cf{grid-column:span 2}.provider-status-overview-card.svelte-6tr9cf{grid-column:span 1}.provider-status-flag.is-healthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, var(--bg-surface))}.provider-status-flag.is-degraded.svelte-6tr9cf{border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-flag.is-unhealthy.svelte-6tr9cf{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg-surface))}.provider-status-value.svelte-6tr9cf{margin-bottom:8px}.provider-status-card-link.svelte-6tr9cf{color:var(--accent-strong,var(--accent));font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:13px;font-weight:600}.provider-status-card-link.svelte-6tr9cf:hover{color:var(--text);text-decoration:underline}.provider-status-card-link.svelte-6tr9cf:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:3px;border-radius:4px}.provider-status-card-note.svelte-6tr9cf{color:var(--text-muted);font-size:13px;display:block}@media (width>=720px){.card-wide.svelte-6tr9cf{grid-column:span 2}}.cache-token-value.svelte-6tr9cf{flex-wrap:wrap;align-items:center;gap:6px;line-height:1;display:flex}.cache-token-part.svelte-6tr9cf{align-items:center;display:inline-flex}.cache-token-operator.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;font-size:24px;font-weight:600;line-height:1}.cache-token-marker.svelte-6tr9cf{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;margin-left:2px;font-size:14px;font-weight:700}.prompt-cache-gauge.svelte-6tr9cf{width:120px;height:60px;margin:8px auto 0;position:relative;overflow:hidden}.prompt-cache-gauge.svelte-6tr9cf canvas{display:block}.prompt-cache-gauge-value.svelte-6tr9cf{text-align:center;color:var(--text);font-size:18px;font-weight:700;line-height:1;position:absolute;bottom:4px;left:0;right:0}@media (width<=768px){.provider-status-flag.svelte-6tr9cf{grid-column:span 1}}.mcp-servers-flag.svelte-6tr9cf{grid-column:span 1}.cache-meter-header.svelte-1yzecxj{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:16px;display:flex}.cache-meter-header.svelte-1yzecxj h3{font-size:16px;font-weight:600}.cache-meter-subtitle.svelte-1yzecxj{color:var(--text-muted);font-size:13px}.cache-meter-bar.svelte-1yzecxj{background:var(--bg-surface-hover);border-radius:6px;width:100%;height:28px;display:flex;overflow:hidden}.cache-meter-segment.svelte-1yzecxj{justify-content:center;align-items:center;min-width:3px;height:100%;transition:width .3s;display:flex;overflow:hidden}.cache-meter-segment-label.svelte-1yzecxj{color:#fff;white-space:nowrap;text-shadow:0 1px 2px #00000073;font-size:12px;font-weight:600;line-height:1}.cache-meter-segment.svelte-1yzecxj+.cache-meter-segment:where(.svelte-1yzecxj){box-shadow:-1px 0 0 var(--bg-surface)}.cache-meter-bar.is-empty.svelte-1yzecxj{background:var(--bg-surface-hover);justify-content:center;align-items:center;height:auto;min-height:28px;padding:6px 12px}.cache-meter-legend.svelte-1yzecxj{flex-wrap:wrap;gap:10px 24px;margin-top:16px;display:flex}.cache-meter-legend-item.svelte-1yzecxj{align-items:center;gap:8px;font-size:13px;display:flex}.cache-meter-swatch.svelte-1yzecxj{border-radius:3px;flex-shrink:0;width:12px;height:12px}.cache-meter-legend-label.svelte-1yzecxj{color:var(--text)}.cache-meter-legend-pct.svelte-1yzecxj{color:var(--text);font-weight:600}.cache-meter-legend-tokens.svelte-1yzecxj{color:var(--text-muted)}.cache-meter-empty.svelte-1yzecxj{color:var(--text-muted);text-align:center;font-size:13px}.spinner.svelte-b54l9o{width:var(--spinner-size);height:var(--spinner-size);border:2px solid var(--border,#80808059);border-top-color:var(--accent,currentColor);border-radius:50%;flex:none;animation:.7s linear infinite svelte-b54l9o-spinner-rotate;display:inline-block}@keyframes svelte-b54l9o-spinner-rotate{to{transform:rotate(360deg)}}.contribution-calendar-section.svelte-3hfxuq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:24px;padding:24px}.contribution-calendar-header.svelte-3hfxuq{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.contribution-calendar-header.svelte-3hfxuq h3{font-size:16px;font-weight:600}.contribution-calendar-grid-wrapper.svelte-3hfxuq{gap:8px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq{flex-direction:column;gap:2px;padding-top:22px;display:flex}.contribution-calendar-day-labels.svelte-3hfxuq span{height:13px;color:var(--text-muted);text-align:right;min-width:28px;font-size:10px;line-height:13px}.contribution-calendar-scroll.svelte-3hfxuq{--contribution-week-size:13px;--contribution-week-gap:2px;flex:1;min-width:0;overflow-x:auto}.contribution-calendar-months.svelte-3hfxuq{grid-auto-columns:var(--contribution-week-size);gap:var(--contribution-week-gap);grid-auto-flow:column;height:16px;margin-bottom:6px;display:grid}.contribution-calendar-month-label.svelte-3hfxuq{color:var(--text-muted);white-space:nowrap;font-size:10px}.contribution-calendar-grid.svelte-3hfxuq{gap:var(--contribution-week-gap);display:flex}.contribution-calendar-week.svelte-3hfxuq{flex-direction:column;gap:2px;display:flex}.contribution-calendar-cell.svelte-3hfxuq{width:var(--contribution-week-size);height:var(--contribution-week-size);background:var(--cal-level-0);border-radius:2px}.contribution-calendar-cell.level-1.svelte-3hfxuq{background:var(--cal-level-1)}.contribution-calendar-cell.level-2.svelte-3hfxuq{background:var(--cal-level-2)}.contribution-calendar-cell.level-3.svelte-3hfxuq{background:var(--cal-level-3)}.contribution-calendar-cell.level-4.svelte-3hfxuq{background:var(--cal-level-4)}.contribution-calendar-cell.level-5.svelte-3hfxuq{background:var(--cal-level-5)}.contribution-calendar-cell.level-6.svelte-3hfxuq{background:var(--cal-level-6)}.contribution-calendar-cell.level-7.svelte-3hfxuq{background:var(--cal-level-7)}.contribution-calendar-cell.level-8.svelte-3hfxuq{background:var(--cal-level-8)}.contribution-calendar-cell.level-9.svelte-3hfxuq{background:var(--cal-level-9)}.contribution-calendar-cell.level-10.svelte-3hfxuq{background:var(--cal-level-10)}.contribution-calendar-cell.empty.svelte-3hfxuq{background:0 0}.contribution-calendar-footer.svelte-3hfxuq{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.contribution-calendar-meta.svelte-3hfxuq{flex-direction:column;gap:4px;display:flex}.contribution-calendar-summary.svelte-3hfxuq{color:var(--text-muted);font-size:12px}.contribution-calendar-legend.svelte-3hfxuq{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.contribution-calendar-legend.svelte-3hfxuq .contribution-calendar-cell:where(.svelte-3hfxuq){cursor:default;width:11px;height:11px}.contribution-calendar-tooltip.svelte-3hfxuq{z-index:200;background:var(--bg-surface);color:var(--text);border:1px solid var(--border);white-space:nowrap;pointer-events:none;border-radius:4px;padding:4px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;position:fixed;transform:translate(-50%);box-shadow:0 4px 12px #0003}@media (width<=768px){.contribution-calendar-day-labels.svelte-3hfxuq{display:none}.contribution-calendar-section.svelte-3hfxuq{padding:16px}.contribution-calendar-footer.svelte-3hfxuq{flex-direction:column;align-items:flex-start}}.inline-help-toggle.is-open.svelte-y40or3{color:var(--text);background:0 0}.inline-help-toggle.is-open.svelte-y40or3 .inline-help-toggle-icon{transform:rotate(540deg)}.audit-stats-section.svelte-14e9yan{margin-top:24px}.audit-stats-header.svelte-14e9yan{align-items:flex-start}.audit-stats-kpis.svelte-14e9yan{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.audit-stats-kpi.svelte-14e9yan{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.audit-stats-kpi-value.svelte-14e9yan{color:var(--text);font-size:13px}.audit-stats-kpi-dot.svelte-14e9yan{border-radius:2px;flex-shrink:0;width:8px;height:8px}.audit-stats-dot-2xx.svelte-14e9yan{background:var(--success)}.audit-stats-dot-4xx.svelte-14e9yan{background:var(--warning)}.audit-stats-dot-5xx.svelte-14e9yan{background:var(--danger)}.provider-status-details.svelte-6y9wjv{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .28s,opacity .22s;display:grid}.provider-status-details.is-expanded.svelte-6y9wjv{opacity:1;grid-template-rows:1fr}.provider-status-details.is-collapsed.svelte-6y9wjv{pointer-events:none}.provider-status-details-inner.svelte-6y9wjv{flex-direction:column;gap:14px;min-height:0;display:flex;overflow:hidden}.provider-status-reason.svelte-6y9wjv{color:var(--text-muted);font-size:13px}.provider-status-error.svelte-6y9wjv{color:var(--danger);overflow-wrap:break-word;font-size:12px}.provider-status-config-label.svelte-6y9wjv{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-config.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}.provider-status-config-row.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-config-value.svelte-6y9wjv{color:var(--text);overflow-wrap:break-word;font-size:13px;display:block}.provider-status-health.svelte-6y9wjv{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-bottom:12px;padding-top:12px;display:flex}.provider-status-health-state.svelte-6y9wjv{border:1px solid var(--border);border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.provider-status-health-state.is-healthy.svelte-6y9wjv{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-health-state.is-degraded.svelte-6y9wjv{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-health-state.is-unhealthy.svelte-6y9wjv{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-health-models.svelte-6y9wjv{flex-direction:column;gap:4px;display:flex}.provider-status-health-model.svelte-6y9wjv{color:var(--text);justify-content:space-between;gap:8px;font-size:13px;display:flex}.provider-status-health-model.is-flagged.svelte-6y9wjv{color:var(--danger)}.provider-status-health-model-name.svelte-6y9wjv{overflow-wrap:anywhere}.provider-status-health-model-stats.svelte-6y9wjv{white-space:nowrap;color:var(--text-muted)}.provider-status-health-model.is-flagged.svelte-6y9wjv .provider-status-health-model-stats:where(.svelte-6y9wjv){color:var(--danger);font-weight:700}.provider-status-card.svelte-nopjmh{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:18px;display:flex}.provider-status-card-toggle.svelte-nopjmh{border:0;border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin:auto -18px -18px;padding:7px 0;transition:background .15s,color .15s;display:flex}.provider-status-card-toggle.svelte-nopjmh:hover{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text)}.provider-status-card-toggle.svelte-nopjmh:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 32%, transparent);outline-offset:-2px}.provider-status-card-toggle.svelte-nopjmh .provider-status-card-toggle-icon{width:16px;height:16px;transition:transform .28s;display:block}.provider-status-card-toggle.is-expanded.svelte-nopjmh .provider-status-card-toggle-icon{transform:rotate(180deg)}.provider-status-card-head.svelte-nopjmh{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.provider-status-name.svelte-nopjmh{letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:16px;font-weight:700;display:flex}.provider-doc-help.svelte-nopjmh{align-self:center;text-decoration:none}.provider-status-name-type.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-pill.svelte-nopjmh{border:1px solid var(--border);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.provider-status-pill.is-healthy.svelte-nopjmh{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 10%, transparent)}.provider-status-pill.is-degraded.svelte-nopjmh{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 48%, var(--border));background:color-mix(in srgb, var(--warning) 26%, var(--bg-surface))}.provider-status-pill.is-unhealthy.svelte-nopjmh{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 10%, transparent)}.provider-status-meta.svelte-nopjmh{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.provider-status-meta-item.svelte-nopjmh{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.provider-status-meta-label.svelte-nopjmh{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.provider-status-meta-value.svelte-nopjmh{color:var(--text);font-size:14px}@media (width<=768px){.provider-status-meta.svelte-nopjmh{grid-template-columns:1fr}}.provider-status-section-loading.svelte-1kx3uw4{justify-content:center;padding:24px 0;display:flex}.provider-status-section-header.svelte-1kx3uw4{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.provider-status-toggle.svelte-1kx3uw4{background:var(--bg-surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.provider-status-toggle.svelte-1kx3uw4:hover{background:var(--bg-surface-hover)}.provider-status-toggle.svelte-1kx3uw4:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 28%, transparent);outline-offset:2px}.provider-status-toggle-copy.svelte-1kx3uw4{white-space:nowrap}.provider-status-toggle-track.svelte-1kx3uw4{background:color-mix(in srgb, var(--text-muted) 35%, var(--border));border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background-color .2s;position:relative}.provider-status-toggle-track.is-active.svelte-1kx3uw4{background:color-mix(in srgb, var(--accent) 82%, var(--bg-surface))}.provider-status-toggle-thumb.svelte-1kx3uw4{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000003d}.provider-status-toggle-track.is-active.svelte-1kx3uw4 .provider-status-toggle-thumb:where(.svelte-1kx3uw4){transform:translate(14px)}.provider-status-grid.svelte-1kx3uw4{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:16px;display:grid}@media (width<=768px){.provider-status-section-header.svelte-1kx3uw4{flex-direction:column;align-items:flex-start}.provider-status-toggle.svelte-1kx3uw4{justify-content:space-between;width:100%}}.filter-input-wrap.svelte-30xz1k{flex:1;width:100%;min-width:min(400px,100%);display:flex;position:relative}.filter-input.svelte-30xz1k{flex:1;width:100%;min-width:0;padding-left:34px}.filter-input-wrap.svelte-30xz1k .filter-input-icon{width:14px;height:14px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.usage-page-filters.svelte-1oi6ywk{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.usage-page-filters.svelte-1oi6ywk .usage-log-select{flex:0 auto}.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path{flex:220px;min-width:180px;max-width:360px}@media (width<=768px){.usage-page-filters.svelte-1oi6ywk .usage-log-select,.usage-page-filters.svelte-1oi6ywk .usage-page-filters-user-path{flex:100%;max-width:none}}.pro-saved-value.svelte-1qiwzdu{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.pro-saved-delta.svelte-1qiwzdu{color:var(--success);letter-spacing:0;font-size:13px;font-weight:600}.usage-breakdown-loading.svelte-1kee4g8{justify-content:center;align-items:center;min-height:120px;display:flex}.chart-view-toggle.svelte-1kee4g8{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;padding:2px;display:inline-flex}.chart-view-btn.svelte-1kee4g8{width:30px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.chart-view-btn.svelte-1kee4g8:hover{color:var(--text)}.chart-view-btn.active.svelte-1kee4g8{background:var(--accent);color:#fff}.chart-view-btn.svelte-1kee4g8 svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.usage-chart-table-wrapper.svelte-1kee4g8{-webkit-overflow-scrolling:touch;margin-top:0;overflow-x:auto}.usage-chart-data-table.svelte-1kee4g8{min-width:max-content}.usage-chart-data-table.svelte-1kee4g8 th,.usage-chart-data-table.svelte-1kee4g8 td{white-space:nowrap}.pagination-info.svelte-1imew3q{color:var(--text-muted);font-size:13px}.pagination-buttons.svelte-1imew3q{gap:8px;display:flex}.usage-log-loading.svelte-hg4ill{justify-content:center;align-items:center;min-height:120px;display:flex}.usage-log-section.svelte-hg4ill{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.usage-log-section.svelte-hg4ill h3{margin-bottom:16px;font-size:16px;font-weight:600}.usage-log-section.svelte-hg4ill .table-wrapper{overflow-x:auto}.usage-log-toolbar.svelte-hg4ill{gap:12px;margin-bottom:16px;display:grid}.usage-filter-row.svelte-hg4ill{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:12px;display:grid}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1/-1}.usage-filter-row-options.svelte-hg4ill{grid-template-columns:1fr}.usage-log-checkbox.svelte-hg4ill{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.usage-log-checkbox.svelte-hg4ill input{cursor:pointer;width:16px;height:16px}.usage-ts.svelte-hg4ill{white-space:nowrap;font-size:12px}.usage-log-row-cached.svelte-hg4ill td{opacity:.75;font-style:italic}.usage-log-row-cached.svelte-hg4ill .usage-log-cache-cell:where(.svelte-hg4ill){font-weight:700}.caveat-icon.svelte-hg4ill{color:var(--warning);cursor:help;margin-left:4px;font-size:14px}@media (width<=768px){.usage-log-toolbar.svelte-hg4ill{gap:10px}.usage-filter-row.svelte-hg4ill{grid-template-columns:1fr}.usage-filter-row-search.svelte-hg4ill .filter-input-wrap{grid-column:1}.usage-log-table.svelte-hg4ill{display:block;overflow-x:auto}}.usage-sticky-controls.svelte-spwie6{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.usage-charts-grid.svelte-spwie6{flex-wrap:wrap;gap:24px;margin-bottom:24px;display:flex}.usage-charts-grid.svelte-spwie6 .model-chart-section{flex:calc(50% - 24px);min-width:420px;margin-bottom:0}@media (width<=520px){.usage-charts-grid.svelte-spwie6 .model-chart-section{min-width:0}}.loading-state.svelte-hzxv1d{min-height:var(--loading-state-min-height,64px);color:var(--text-muted);justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex}.budget-bar-text-row-on-fill.svelte-1jm56wo{color:#fff;clip-path:inset(0 calc(100% - var(--budget-progress,0%)) 0 0)}.budget-bar-text-start.svelte-1jm56wo{left:8px;transform:translateY(-50%)}.budget-bar-track-period-custom.svelte-1jm56wo .budget-bar-text-row-on-fill:where(.svelte-1jm56wo){color:#3f332a}.budget-override-dialog.svelte-13ryo7h{max-width:460px}.budget-sort-control.svelte-1752fqe{align-items:center;gap:8px}.budget-sort-control.svelte-1752fqe label{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.budget-sort-select.svelte-1752fqe{background-color:var(--bg-surface);min-width:132px}.budget-sort-select.svelte-1752fqe:hover{background-color:var(--bg-surface-hover)}.model-name-cell.svelte-1iynym{flex-direction:column;gap:8px;display:flex}.model-name-primary.svelte-1iynym{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.model-name-secondary.svelte-1iynym{color:var(--text-muted);font-size:12px}.model-redirect-remove-btn.svelte-1iynym{appearance:none;color:var(--danger);cursor:pointer;background:0 0;border:0;margin-left:4px;padding:0;font-size:11px}.model-redirect-remove-btn.svelte-1iynym:hover:not(:disabled){text-decoration:underline}.model-redirect-remove-btn.svelte-1iynym:disabled{opacity:.45;cursor:default}.model-kind-icon.svelte-1iynym{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border));background:var(--bg);width:24px;height:24px;color:var(--accent);border-radius:999px;flex:0 0 24px;justify-content:center;align-items:center;display:inline-flex}.model-kind-icon-svg.svelte-1iynym{width:14px;height:14px}.model-row-actions.svelte-1iynym{text-align:right;width:170px}@media (width<=768px){.model-name-primary.svelte-1iynym{flex-direction:column;align-items:flex-start}}.provider-group-row.svelte-1911hy6 td{background:color-mix(in srgb, var(--accent) 6%, var(--bg));padding-top:12px;padding-bottom:12px}.provider-group-row.svelte-1911hy6:hover td{background:color-mix(in srgb, var(--accent) 8%, var(--bg))}.provider-group-header.svelte-1911hy6{justify-content:space-between;align-items:center;gap:16px;display:flex}.provider-group-meta.svelte-1911hy6{flex-direction:column;gap:4px;min-width:0;display:flex}.provider-group-title.svelte-1911hy6{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.provider-group-type.svelte-1911hy6,.provider-group-count.svelte-1911hy6,.provider-group-summary.svelte-1911hy6{color:var(--text-muted);font-size:12px}@media (width<=768px){.provider-group-header.svelte-1911hy6{flex-direction:column;align-items:flex-start}}.vm-session-affinity-checkbox.svelte-d1j6xw{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.vm-session-affinity-checkbox.svelte-d1j6xw input:where(.svelte-d1j6xw){accent-color:var(--accent);cursor:pointer}.pricing-override-rows.svelte-u8snes{gap:12px;display:grid}.pricing-override-row.svelte-u8snes{grid-template-columns:minmax(220px,1fr) minmax(130px,180px) 32px;align-items:end;gap:12px;display:grid}.pricing-override-row-actions.svelte-u8snes{justify-content:flex-start;display:flex}.pricing-override-tier-note.svelte-u8snes{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:6px;padding:10px 12px;font-size:13px}.pricing-preview.svelte-u8snes{border:1px solid var(--border);border-radius:6px;overflow:hidden}.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:minmax(150px,1fr) minmax(90px,auto) minmax(130px,.8fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.pricing-preview-header.svelte-u8snes{background:var(--bg);color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.pricing-preview-row.svelte-u8snes{border-top:1px solid var(--border);font-size:13px}.pricing-preview-row-empty.svelte-u8snes{color:var(--text-muted);grid-template-columns:1fr}@media (width<=768px){.pricing-override-row.svelte-u8snes,.pricing-preview-header.svelte-u8snes,.pricing-preview-row.svelte-u8snes{grid-template-columns:1fr}}.failover-drafts-editor.svelte-1n87bip{flex-direction:column;gap:16px;display:flex}.failover-draft-header-actions.svelte-1n87bip{flex:none;align-items:center;gap:10px;display:flex}.failover-draft-counter.svelte-1n87bip{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.failover-draft-toolbar.svelte-1n87bip{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.failover-draft-toolbar.svelte-1n87bip .filter-input-wrap,.failover-draft-toolbar.svelte-1n87bip .filter-input{min-width:0}.failover-draft-toggle-all.svelte-1n87bip{flex:none}.failover-draft-list.svelte-1n87bip{flex-direction:column;gap:8px;max-height:min(52vh,430px);padding-right:4px;display:flex;overflow-y:auto}.failover-draft-row.svelte-1n87bip{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:10px;display:grid}.failover-draft-row.svelte-1n87bip:hover{border-color:color-mix(in srgb, var(--accent) 42%, var(--border));background:var(--bg-surface-hover)}.failover-draft-row.svelte-1n87bip input{width:16px;height:16px;margin-top:2px}.failover-draft-copy.svelte-1n87bip{gap:4px;min-width:0;display:grid}.failover-draft-source.svelte-1n87bip,.failover-draft-targets.svelte-1n87bip{overflow-wrap:anywhere}.failover-draft-targets.svelte-1n87bip{color:var(--text-muted);font-size:12px}.failover-drafts-empty.svelte-1n87bip{align-items:center;min-height:96px;display:flex}.failover-draft-actions.svelte-1n87bip{margin-top:0}.category-tabs.svelte-scpjps{-webkit-overflow-scrolling:touch;align-items:center;gap:4px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow-x:auto}.category-tab.svelte-scpjps{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.category-tab.svelte-scpjps:hover{color:var(--text);background:var(--bg-surface-hover)}.category-tab.active.svelte-scpjps{background:var(--accent);color:#fff;border-color:var(--accent)}.category-tab.svelte-scpjps .tab-count:where(.svelte-scpjps){background:#ffffff26;border-radius:9px;justify-content:center;align-items:center;min-width:20px;height:18px;padding:0 5px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.category-tab.svelte-scpjps:not(.active) .tab-count:where(.svelte-scpjps){background:var(--bg)}@media (width<=768px){.category-tabs.svelte-scpjps{gap:4px}.category-tab.svelte-scpjps{padding:5px 10px;font-size:12px}}.workflow-pipeline-meta.svelte-1viff7o{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 86%, transparent);min-width:0;max-width:calc(100% - 28px);color:var(--text-muted);white-space:nowrap;appearance:none;cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:0;padding:2px 10px;font-size:12px;font-weight:500;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex;position:absolute;top:12px;right:14px;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover,.workflow-pipeline-meta.svelte-1viff7o:focus-visible{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface));color:color-mix(in srgb, var(--accent) 74%, var(--text))}.workflow-pipeline-meta.svelte-1viff7o:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.workflow-pipeline-meta-label.svelte-1viff7o{flex:none;font-weight:700}.workflow-pipeline-meta-placeholder.svelte-1viff7o{opacity:1;flex:none;max-width:3ch;margin-left:4px;transition:max-width .18s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta-value.svelte-1viff7o{opacity:0;text-overflow:clip;flex:0 auto;max-width:0;margin-left:0;transition:max-width .22s,margin-left .18s,opacity .15s;overflow:hidden}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-placeholder:where(.svelte-1viff7o){opacity:0;max-width:0;margin-left:0}.workflow-pipeline-meta.svelte-1viff7o:hover .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta.svelte-1viff7o:focus-visible .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o),.workflow-pipeline-meta-error.svelte-1viff7o .workflow-pipeline-meta-value:where(.svelte-1viff7o){opacity:1;max-width:42ch;margin-left:4px}.workflow-pipeline-meta-icon.svelte-1viff7o{opacity:0;flex:none;justify-content:center;align-items:center;width:0;height:14px;margin-left:0;line-height:0;transition:width .18s,margin-left .18s,opacity .15s,transform .18s;display:inline-flex;overflow:hidden;transform:translate(4px)translateY(1px)scale(.84)}.workflow-pipeline-meta-icon.svelte-1viff7o svg{width:14px;height:14px}.workflow-pipeline-meta-copied.svelte-1viff7o,.workflow-pipeline-meta-copied.svelte-1viff7o:hover,.workflow-pipeline-meta-copied.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--success) 12%, var(--bg));border-color:color-mix(in srgb, var(--success) 40%, var(--border));color:var(--success)}.workflow-pipeline-meta-copied.svelte-1viff7o .workflow-pipeline-meta-icon:where(.svelte-1viff7o){opacity:1;width:14px;margin-left:6px;transform:translateY(1px)}.workflow-pipeline-meta-error.svelte-1viff7o,.workflow-pipeline-meta-error.svelte-1viff7o:hover,.workflow-pipeline-meta-error.svelte-1viff7o:focus-visible{background:color-mix(in srgb, var(--danger) 10%, var(--bg));border-color:color-mix(in srgb, var(--danger) 34%, var(--border));color:var(--danger)}.workflow-pipeline.svelte-nbptrg{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);flex-direction:column;gap:0;margin-bottom:12px;padding:18px 20px 20px;display:flex;position:relative}.workflow-pipeline-has-meta.svelte-nbptrg{padding-top:42px}.workflow-pipeline-row.svelte-nbptrg{align-items:center;width:100%;min-width:0;display:flex;overflow-x:auto}.workflow-node-icon.svelte-nbptrg{border-radius:var(--radius);background:var(--bg);width:28px;height:28px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.workflow-node-icon.svelte-nbptrg svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.workflow-node-label.svelte-nbptrg{letter-spacing:.03em;color:var(--text);white-space:nowrap;font-size:11px;font-weight:700;line-height:1.2}.workflow-node-sub.svelte-nbptrg{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:120px;font-size:10px;font-weight:500;line-height:1.2;font-family:var(--font-mono,ui-monospace, monospace);overflow:hidden}.workflow-node-badge.svelte-nbptrg{border-radius:var(--radius);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);align-items:center;padding:2px 7px;font-size:9px;font-weight:800;line-height:1.5;display:inline-flex}.workflow-node-endpoint.svelte-nbptrg{border-radius:var(--radius);border-color:var(--border);background:var(--bg-surface);flex-direction:row;gap:7px;min-width:auto;padding:10px 14px}.workflow-node-icon-endpoint.svelte-nbptrg{border-radius:var(--radius);width:auto;height:auto;color:var(--text-muted);background:0 0;justify-content:flex-start;padding:0}.workflow-node-icon-endpoint.svelte-nbptrg svg{width:14px;height:14px}.workflow-node-endpoint.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted);font-size:11px;font-weight:600}.workflow-node-feature.svelte-nbptrg{border-color:color-mix(in srgb, var(--accent) 46%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--bg-surface))}.workflow-node-feature.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--accent)}.workflow-node-feature.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--accent) 70%, var(--text-muted))}.workflow-node-ai.svelte-nbptrg{border-radius:var(--radius);gap:6px;min-width:96px;padding:12px 16px}.workflow-async-section.svelte-nbptrg{justify-content:flex-end;align-items:center;gap:0;width:100%;min-width:0;margin-top:10px;display:flex}.workflow-async-turn.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 60px;height:2px;position:relative}.workflow-async-turn.svelte-nbptrg:before{content:"";background:color-mix(in srgb, var(--text-muted) 40%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);width:7px;height:9px;position:absolute;top:50%;left:-7px;transform:translateY(-50%)}.workflow-async-turn.svelte-nbptrg:after{content:"";border-right:2px dashed color-mix(in srgb, var(--text-muted) 40%, var(--border));height:16px;position:absolute;bottom:1px;right:0}.workflow-async-row.svelte-nbptrg{align-items:center;min-width:0;margin-right:7px;display:flex}.workflow-conn-async.svelte-nbptrg{background:repeating-linear-gradient(to left, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 0, color-mix(in srgb, var(--text-muted) 45%, var(--border)) 5px, transparent 5px, transparent 9px);flex:0 0 24px;width:24px}.workflow-conn-async.svelte-nbptrg:after{background:color-mix(in srgb, var(--text-muted) 45%, var(--border));clip-path:polygon(100% 0,0 50%,100% 100%);left:-1px;right:auto}.workflow-node-async.svelte-nbptrg{border-radius:var(--radius);border-style:dashed;flex-direction:row;gap:7px;min-width:auto;padding:7px 12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){border-radius:var(--radius);width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg) svg{width:12px;height:12px}.workflow-node-async.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){font-size:10px;font-weight:700}.workflow-async-label.svelte-nbptrg{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);opacity:.55;white-space:nowrap;flex-shrink:0;align-items:center;margin-left:8px;font-size:9px;font-weight:800;display:inline-flex}.workflow-node-success.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 18%, var(--bg));color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--success)}.workflow-node-success.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 85%, var(--text))}.workflow-node-success.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--success) 74%, var(--text-muted))}.workflow-node-success.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--success) 14%, var(--bg));border-color:color-mix(in srgb, var(--success) 38%, var(--border));color:var(--success)}.workflow-node-current.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 16%, var(--bg));color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--info)}.workflow-node-current.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 85%, var(--text))}.workflow-node-current.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--info) 72%, var(--text-muted))}.workflow-node-current.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--info) 13%, var(--bg));border-color:color-mix(in srgb, var(--info) 36%, var(--border));color:var(--info)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--warning)}.workflow-node-warning.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 85%, var(--text))}.workflow-node-warning.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--warning) 72%, var(--text-muted))}.workflow-node-warning.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 38%, var(--border));color:var(--warning)}.workflow-node-error.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--danger) 14%, var(--bg));color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg){color:var(--danger)}.workflow-node-error.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 85%, var(--text))}.workflow-node-error.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--danger) 72%, var(--text-muted))}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 12%, var(--bg));color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-icon-endpoint:where(.svelte-nbptrg),.workflow-node-neutral.svelte-nbptrg .workflow-node-label:where(.svelte-nbptrg){color:var(--text-muted)}.workflow-node-neutral.svelte-nbptrg .workflow-node-sub:where(.svelte-nbptrg){color:color-mix(in srgb, var(--text-muted) 84%, var(--border))}.workflow-node-neutral.svelte-nbptrg .workflow-node-badge:where(.svelte-nbptrg){background:color-mix(in srgb, var(--text-muted) 10%, var(--bg));border-color:color-mix(in srgb, var(--text-muted) 28%, var(--border));color:var(--text-muted)}.workflow-conn-hit.svelte-nbptrg,.workflow-conn-hit.svelte-nbptrg:after{background:color-mix(in srgb, var(--success) 58%, var(--border))}.workflow-conn-dim.svelte-nbptrg,.workflow-conn-dim.svelte-nbptrg:after{background:color-mix(in srgb, var(--border) 75%, transparent)}.workflow-node-success.svelte-nbptrg{border-color:color-mix(in srgb, var(--success) 52%, var(--border));background:color-mix(in srgb, var(--success) 9%, var(--bg-surface))}.workflow-node-current.svelte-nbptrg{border-color:color-mix(in srgb, var(--info) 56%, var(--border));background:color-mix(in srgb, var(--info) 10%, var(--bg-surface))}.workflow-node-warning.svelte-nbptrg{border-color:color-mix(in srgb, var(--warning) 52%, var(--border));background:color-mix(in srgb, var(--warning) 9%, var(--bg-surface))}.workflow-node-error.svelte-nbptrg{border-color:color-mix(in srgb, var(--danger) 52%, var(--border));background:color-mix(in srgb, var(--danger) 9%, var(--bg-surface))}.workflow-node-neutral.svelte-nbptrg{border-color:color-mix(in srgb, var(--text-muted) 40%, var(--border));background:color-mix(in srgb, var(--text-muted) 8%, var(--bg-surface))}.workflow-node-skipped.svelte-nbptrg{opacity:.28;position:relative}.workflow-card.svelte-1fo9fvq{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:16px;padding:20px;display:flex}.workflow-card-head.svelte-1fo9fvq{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.workflow-card-footer.svelte-1fo9fvq{flex-direction:column;align-items:stretch;gap:10px;display:flex}.workflow-card-head.svelte-1fo9fvq h3{font-size:18px;font-weight:700}.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.workflow-card-meta-footer.svelte-1fo9fvq{justify-content:flex-start}.workflow-card-footer.svelte-1fo9fvq .alias-actions-cell{align-self:flex-end}.workflow-card-description.svelte-1fo9fvq{color:var(--text-muted);font-size:14px}.workflow-guardrails.svelte-1fo9fvq{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list.svelte-1fo9fvq{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-item.svelte-1fo9fvq{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}@media (width<=768px){.workflow-card-head.svelte-1fo9fvq,.workflow-card-footer.svelte-1fo9fvq,.workflow-card-badges.svelte-1fo9fvq,.workflow-card-meta.svelte-1fo9fvq,.workflow-guardrail-item.svelte-1fo9fvq{flex-direction:column;align-items:flex-start}}.model-editor.workflow-editor{width:min(1080px,100%);margin-bottom:0}.alert-inline-actions.svelte-1bcpzh1{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.workflow-guardrail-editor.svelte-1bcpzh1{flex-direction:column;gap:12px;display:flex}.workflow-guardrail-list-editor.svelte-1bcpzh1{flex-direction:column;gap:10px;display:flex}.workflow-guardrail-row.svelte-1bcpzh1{border:1px solid var(--border);background:var(--bg);border-radius:10px;justify-content:stretch;align-items:center;gap:12px;padding:10px 12px;display:flex}.workflow-guardrail-field.svelte-1bcpzh1{flex:auto;min-width:0}.workflow-guardrail-step-field.svelte-1bcpzh1{flex:0 0 120px}.workflow-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-step-input.svelte-1bcpzh1{max-width:120px}@media (width<=768px){.workflow-guardrail-row.svelte-1bcpzh1{flex-direction:column;align-items:flex-start}.workflow-step-input.svelte-1bcpzh1{width:100%;max-width:none}.workflow-guardrail-field.svelte-1bcpzh1,.workflow-guardrail-step-field.svelte-1bcpzh1{flex-basis:auto;width:100%}}.workflow-list-loading.svelte-ie2kfk{justify-content:center;align-items:center;gap:8px;display:flex}.workflows-list.svelte-ie2kfk{min-width:0}.workflow-card-grid.svelte-ie2kfk{grid-template-columns:1fr;gap:16px;display:grid}.workflow-page-note.svelte-l8kr26{color:var(--text-muted);margin-top:6px;font-size:14px}.audit-log-toolbar.svelte-1pwbpcm{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;display:grid}.audit-filter-select.svelte-1pwbpcm{grid-column:span 2;min-width:0}.audit-filter-row-search.svelte-1pwbpcm .filter-input-wrap{grid-column:1/-1;max-width:none}.audit-filter-row-controls.svelte-1pwbpcm .audit-filter-select:where(.svelte-1pwbpcm){grid-column:span 2}.audit-filter-row-controls.svelte-1pwbpcm .btn{grid-column:11/-1;justify-self:end;min-width:108px}.audit-clear-btn.svelte-1pwbpcm{justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.audit-clear-btn.svelte-1pwbpcm .table-icon-svg{width:12px;height:12px}@media (width<=768px){.audit-log-toolbar.svelte-1pwbpcm{gap:8px}.audit-filter-row.svelte-1pwbpcm{grid-template-columns:1fr}.audit-filter-row.svelte-1pwbpcm .filter-input-wrap,.audit-filter-row.svelte-1pwbpcm .filter-input,.audit-filter-select.svelte-1pwbpcm,.audit-filter-row.svelte-1pwbpcm .btn{grid-column:auto}}.audit-live-status.svelte-tve6yv{color:var(--text-muted);align-items:center;gap:10px;margin-left:16px;padding-left:6px;font-size:12px;display:inline-flex}.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:1.8s ease-out infinite svelte-tve6yv-audit-live-dot-throb}@keyframes svelte-tve6yv-audit-live-dot-throb{0%{transform:scale(1)}35%{transform:scale(1.35)}70%{transform:scale(1)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.audit-live-status.svelte-tve6yv .live-dot.is-streaming:where(.svelte-tve6yv){animation:none}}.audit-live-status-text.is-live.svelte-tve6yv{color:var(--success);font-weight:600}.audit-entry-metadata.svelte-hyopt0{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.audit-entry-metadata-label.svelte-hyopt0{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:12px;font-weight:700}.audit-entry-context.svelte-hyopt0{flex-wrap:wrap;flex:auto;gap:8px;display:flex}.audit-alias-badge.svelte-hyopt0{background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 28%, var(--border));color:var(--accent-strong,var(--accent))}@media (width<=768px){.audit-entry-metadata.svelte-hyopt0{flex-direction:column;align-items:flex-start;gap:8px}}.audit-attempt-track.svelte-1eu22xn{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.audit-attempt-track-pips.svelte-1eu22xn{align-items:center;gap:3px;display:inline-flex}.audit-attempt-pip.svelte-1eu22xn{background:var(--text-muted);border-radius:2px;width:8px;height:8px}.audit-attempt-pip.audit-attempt-success.svelte-1eu22xn{background:var(--success)}.audit-attempt-pip.audit-attempt-error.svelte-1eu22xn{background:var(--danger)}.audit-attempt-track-count.svelte-1eu22xn{color:var(--text-muted);font-size:11px}.audit-entry-summary.svelte-17mysgz{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:5px 14px;list-style:none;display:flex;position:relative}.audit-entry-summary.svelte-17mysgz::-webkit-details-marker{display:none}.audit-entry-summary-live-in-progress.svelte-17mysgz{background:color-mix(in srgb, var(--info) 7%, var(--bg))}.audit-entry-summary-has-interactions.svelte-17mysgz{padding-right:44px}.audit-entry-summary-live-in-progress.svelte-17mysgz:before{content:"";background:var(--info);pointer-events:none;width:3px;animation:1.2s ease-in-out infinite audit-live-summary-stripe-blink;position:absolute;inset:0 auto 0 0}@media (prefers-reduced-motion:reduce){.audit-entry-summary-live-in-progress.svelte-17mysgz:before{opacity:.78;animation:none}}.audit-entry-left.svelte-17mysgz{align-items:center;gap:8px;min-width:0;display:flex}.audit-entry-right.svelte-17mysgz{color:var(--text-muted);flex-shrink:0;align-items:center;gap:10px;min-height:28px;display:inline-flex}.audit-thread-expander.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);min-width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:3px;padding:0 7px 0 4px;transition:background .1s ease-out,color .1s ease-out;display:inline-flex}.audit-thread-expander.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 12%, var(--bg));color:var(--accent)}.audit-thread-expander.svelte-17mysgz .audit-thread-expander-svg{width:14px;height:14px}.audit-thread-count.svelte-17mysgz{font-size:11px;font-weight:600}.audit-conversation-trigger.svelte-17mysgz{border:0;border-left:1px solid var(--border);background:color-mix(in srgb, var(--accent) 12%, var(--bg));width:32px;height:100%;color:var(--accent);cursor:pointer;border-radius:0;justify-content:center;align-items:center;margin:0;transition:background .1s ease-out,color .1s ease-out;display:inline-flex;position:absolute;inset:0 0 0 auto}.audit-conversation-trigger.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg))}.audit-conversation-trigger-active.svelte-17mysgz{color:var(--accent-strong,var(--accent));background:color-mix(in srgb, var(--accent) 28%, var(--bg));border-left:0}.audit-conversation-trigger-active.svelte-17mysgz:hover{background:color-mix(in srgb, var(--accent) 34%, var(--bg))}.audit-conversation-trigger.svelte-17mysgz .audit-conversation-trigger-svg{stroke-linecap:butt;stroke-linejoin:miter;width:18px;height:18px}.audit-path.svelte-17mysgz{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.audit-request-badge.svelte-17mysgz{white-space:nowrap;gap:6px;min-width:0}.audit-timestamp-time.svelte-17mysgz{display:none}.audit-provider-model.svelte-17mysgz{border:1px solid var(--border);background:var(--bg-surface);height:24px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:420px;padding:0 10px;font-size:12px;display:inline-flex;overflow:hidden}@container dashboard-content (width<=699px){.audit-entry-summary.svelte-17mysgz{flex-direction:column;align-items:flex-start}.audit-entry-right.svelte-17mysgz{justify-content:space-between;width:100%}.audit-request-status.svelte-17mysgz,.audit-timestamp-full.svelte-17mysgz{display:none}.audit-timestamp-time.svelte-17mysgz{display:inline}}.audit-pane-split.svelte-1h5puht{grid-template-columns:1fr 2fr;align-items:start;gap:10px 14px;display:grid}.audit-pane-split-single.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}@container dashboard-content (width<=699px){.audit-pane-split.svelte-1h5puht{grid-template-columns:minmax(0,1fr)}}.audit-pane-split.svelte-1h5puht .audit-pane-block-error:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-pane-empty:where(.svelte-1h5puht),.audit-pane-split.svelte-1h5puht .audit-size-warning:where(.svelte-1h5puht){grid-column:1/-1}.audit-pane-block.svelte-1h5puht{min-width:0}.audit-pane-block.svelte-1h5puht>h5{margin-bottom:6px}.audit-pane-block-head.svelte-1h5puht{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.audit-pane-block-title.svelte-1h5puht{align-items:center;gap:8px;min-width:0;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn{background-color:var(--bg-surface);border:1px solid color-mix(in srgb, var(--border) 70%, var(--text) 30%);color:var(--text);cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:6px;padding:4px 8px;font-family:inherit;font-size:12px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn:hover:not(:disabled){background:color-mix(in srgb, var(--bg-surface) 80%, var(--text) 20%);border-color:color-mix(in srgb, var(--border) 45%, var(--text) 55%)}.audit-pane-block-head.svelte-1h5puht .audit-copy-btn.copy-feedback-btn-copied{background:color-mix(in srgb, var(--success) 18%, var(--bg-surface))}.audit-json.svelte-1h5puht{background:var(--bg-surface);border:1px solid var(--border);box-sizing:border-box;white-space:pre;max-width:100%;max-height:220px;color:var(--text);border-radius:6px;padding:10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;overflow:auto}.audit-pane-error-message.svelte-1h5puht{color:var(--danger)}.audit-pane-clickable-preview.svelte-1h5puht{cursor:pointer}.audit-pane-clickable-preview.svelte-1h5puht:hover{background:color-mix(in srgb, var(--danger) 8%, transparent)}.audit-json-body.svelte-1h5puht{white-space:pre;overflow-wrap:normal}.audit-pane-empty.svelte-1h5puht{text-align:left;padding:8px 0 0}.audit-pane-pending.svelte-1h5puht{align-items:center;gap:8px;display:flex}.audit-pane-streaming.svelte-1h5puht{letter-spacing:.02em;color:var(--text-muted);align-items:center;gap:7px;padding-left:4px;font-size:11px;font-weight:600;display:inline-flex}.audit-size-warning.svelte-1h5puht{color:var(--warning);margin-top:8px;font-size:12px}.audit-request-response.svelte-1bc5vi5{margin-top:4px}.audit-pane-tablist.svelte-1bc5vi5{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;display:flex}.audit-pane-tab.svelte-1bc5vi5{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-bottom-color:#0000;border-radius:6px 6px 0 0;align-items:center;gap:8px;margin-bottom:-1px;margin-right:12px;padding:8px 12px;font-family:inherit;font-size:13px;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.audit-pane-tab.svelte-1bc5vi5:not(.audit-pane-tab-active):hover{color:var(--text);background:color-mix(in srgb, var(--text) 5%, transparent)}.audit-pane-tab-active.svelte-1bc5vi5{color:var(--text);border-color:var(--border);border-bottom-color:var(--bg);background:var(--bg)}.audit-pane-tab-label.svelte-1bc5vi5{font-weight:600}.audit-pane-tabpanel.svelte-1bc5vi5{min-width:0}.audit-pane-icon.svelte-1bc5vi5{color:var(--text-muted);flex:none;align-items:center;display:inline-flex}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-request{color:var(--accent)}.audit-pane-icon.svelte-1bc5vi5.audit-pane-icon-response{color:var(--info)}.audit-pane-icon.svelte-1bc5vi5 svg{width:16px;height:16px}.audit-pane-seq.svelte-1bc5vi5{color:var(--text-muted);font-size:12px}.audit-pane-kind.svelte-1bc5vi5{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-primary{color:var(--text-muted)}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-failover{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--bg));border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.audit-pane-kind.svelte-1bc5vi5.audit-pane-kind-retry{color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, var(--bg));border-color:color-mix(in srgb, var(--warning) 30%, var(--border))}.audit-savings-pill.svelte-1bc5vi5{border:1px solid color-mix(in srgb, var(--prompt-cache-color) 45%, var(--border));background:var(--prompt-cache-color-bg);color:var(--prompt-cache-color);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;font-weight:700;display:inline-flex}.audit-step-pill.svelte-1bc5vi5{border:1px dashed var(--border);color:var(--text-muted);letter-spacing:.02em;border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;display:inline-flex}.audit-entry.svelte-cmjgwr{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);transition:background .12s ease-out,border-color .12s ease-out;overflow:hidden}.audit-entry-interactions-open.svelte-cmjgwr{border-width:2px;border-color:color-mix(in srgb, var(--prompt-cache-color) 38%, var(--border))}.audit-entry-details.svelte-cmjgwr{border-top:1px solid var(--border);background:var(--bg-surface);padding:12px;overflow:hidden}.audit-thread.svelte-pneivi{flex-direction:column;gap:10px;display:flex}.audit-thread-children.svelte-pneivi{flex-direction:column;gap:10px;margin-left:26px;display:flex}.audit-thread-child.svelte-pneivi,.audit-thread-loading.svelte-pneivi{position:relative}.audit-thread-child.svelte-pneivi:before,.audit-thread-loading.svelte-pneivi:before{content:"";border-left:1px solid var(--border);border-bottom:1px solid var(--border);pointer-events:none;border-bottom-left-radius:6px;width:12px;height:calc(50% + 10px);position:absolute;top:-10px;left:-14px}.audit-thread-child.svelte-pneivi:not(:last-child):after{content:"";border-left:1px solid var(--border);pointer-events:none;position:absolute;top:50%;bottom:-10px;left:-14px}.audit-thread-loading.svelte-pneivi{padding:6px 0 6px 4px;display:flex}.audit-thread-more.svelte-pneivi{color:var(--text-muted);padding-left:4px;font-size:12px}.audit-log-loading.svelte-1nhcbov{justify-content:center;padding:2rem 0;display:flex}.audit-list-toolbar.svelte-1nhcbov{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.audit-list-toolbar-left.svelte-1nhcbov{flex-wrap:wrap;align-items:center;gap:16px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;display:inline-flex}.audit-group-checkbox.svelte-1nhcbov input:where(.svelte-1nhcbov){accent-color:var(--accent);cursor:pointer}.audit-retention-note.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-retention-highlight.svelte-1nhcbov{color:var(--text);font-weight:600}.audit-log-section.svelte-1nhcbov{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.audit-log-summary.svelte-1nhcbov{color:var(--text-muted);font-size:13px}.audit-log-list.svelte-1nhcbov{flex-direction:column;gap:10px;display:flex}.settings-guardrails-list.svelte-1bvx512{min-width:0}.settings-guardrail-type-pill.svelte-1bvx512{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.settings-guardrail-summary.svelte-1bvx512{color:var(--text);font-size:14px;line-height:1.45}.settings-guardrail-description.svelte-1bvx512{color:var(--text-muted);margin-top:6px;font-size:12px}.model-editor.guardrails-editor-wide{width:min(1080px,100%)}.form-field-fieldset.svelte-s964s3{border:0;min-inline-size:0;margin:0;padding:0}.form-field-legend.svelte-s964s3{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;padding:0;font-size:12px;font-weight:600}.model-editor.settings-guardrails-editor{min-width:0}.settings-guardrails-hero.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));border-radius:var(--radius);background:radial-gradient(circle at top right, color-mix(in srgb, var(--accent-hover) 18%, transparent), transparent 42%), radial-gradient(circle at bottom left, color-mix(in srgb, var(--accent) 16%, transparent), transparent 40%), var(--bg-surface);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding:24px;display:flex}.settings-kicker.svelte-5x874c{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.settings-guardrails-hero.svelte-5x874c h3{margin-bottom:8px}.settings-guardrails-hero.svelte-5x874c p:last-child{color:var(--text-muted);margin-bottom:0}.settings-guardrails-meta.svelte-5x874c{gap:12px;display:flex}.settings-guardrails-stat.svelte-5x874c{border:1px solid color-mix(in srgb, var(--accent) 14%, var(--border));background:color-mix(in srgb, var(--bg-surface-hover) 76%, transparent);border-radius:16px;min-width:110px;padding:14px 16px}.settings-guardrails-stat-label.svelte-5x874c{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.settings-guardrails-stat.svelte-5x874c strong{font-size:24px;font-weight:700}@media (width<=768px){.settings-guardrails-hero.svelte-5x874c{flex-direction:column}.settings-guardrails-meta.svelte-5x874c{width:100%}.settings-guardrails-stat.svelte-5x874c{flex:1 1 0}}.mcp-catalog-section.svelte-1xqrzco{margin-top:18px}.mcp-catalog-section.svelte-1xqrzco .form-field-label{margin-bottom:8px}.mcp-catalog-subtitle.svelte-1xqrzco{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mcp-catalog-list.svelte-1xqrzco{flex-direction:column;gap:12px;margin:0 0 8px;padding:0;list-style:none;display:flex}.mcp-catalog-item-name.svelte-1xqrzco{overflow-wrap:anywhere;font-size:13px}.mcp-catalog-item-aggregated.svelte-1xqrzco{color:var(--text-muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px}.mcp-catalog-item-description.svelte-1xqrzco{color:var(--text-muted);margin:2px 0 0;font-size:13px;font-weight:400}.mcp-server-sub-counts.svelte-ah8nrt{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:280px;margin-top:4px;font-size:11px;overflow:hidden}.mcp-server-table-wrapper.svelte-ah8nrt{overflow-x:auto}.mcp-server-table-wrapper.svelte-ah8nrt .data-table{min-width:860px}.auth-key-form-fields.svelte-1gswxes>.form-field{margin-bottom:4px}.auth-key-dashboard-toggle.svelte-1gswxes{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-key-issued-banner.svelte-1gswxes{background:color-mix(in srgb, var(--success) 8%, var(--bg-surface));border:1px solid color-mix(in srgb, var(--success) 30%, var(--border));border-radius:var(--radius);margin-bottom:20px;padding:16px}.auth-key-issued-warning.svelte-1gswxes{color:color-mix(in srgb, var(--success) 80%, var(--text));margin-bottom:12px;font-size:13px;font-weight:600}.auth-key-issued-value-row.svelte-1gswxes{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.auth-key-issued-token.svelte-1gswxes{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;flex:1;min-width:0;padding:8px 12px;font-size:13px;overflow-x:auto}.usage-label-chip-static.svelte-nf0ldb,.usage-label-chip-static.svelte-nf0ldb:hover{cursor:default;background:color-mix(in srgb, var(--label-color,var(--accent)) 14%, var(--bg))}.auth-key-redacted.svelte-nf0ldb{color:var(--text-muted);font-size:13px}.auth-key-actions-cell.svelte-nf0ldb{white-space:nowrap}.auth-key-row-deactivated.svelte-nf0ldb td:where(.svelte-nf0ldb):not(.auth-key-actions-cell){opacity:.55}.auth-key-expiry.svelte-nf0ldb{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.auth-key-th-help.svelte-nf0ldb{cursor:help;align-items:center;gap:4px;display:inline-flex}.auth-key-row-actions.svelte-nf0ldb{align-items:center;gap:6px;display:inline-flex}.auth-keys-loading.svelte-1xpdcqx{justify-content:center;align-items:center;padding:32px 0;display:flex}.auth-keys-help-notice.svelte-1xpdcqx{margin-bottom:20px}.auth-keys-inactive-toggle.svelte-1xpdcqx{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-keys-inactive-toggle.svelte-1xpdcqx input:where(.svelte-1xpdcqx){width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.settings-panel-header.svelte-15kyv2y{justify-content:space-between;gap:16px;margin-bottom:20px;display:flex}.settings-panel-header.svelte-15kyv2y h3{font-size:18px}.settings-form-grid.svelte-15kyv2y{grid-template-columns:minmax(280px,420px);gap:16px;display:grid}@media (width<=768px){.settings-form-grid.svelte-15kyv2y{grid-template-columns:1fr}}.budget-settings-section.svelte-a747ys{width:100%}.budget-settings-grid.svelte-a747ys{gap:12px;display:grid}.budget-settings-row.svelte-a747ys{grid-template-columns:96px minmax(170px,1fr) minmax(110px,140px) minmax(110px,140px) minmax(220px,280px);align-items:start;gap:12px;display:grid}.budget-settings-period.svelte-a747ys{color:var(--text);letter-spacing:0;text-transform:uppercase;align-self:end;min-height:35px;padding-bottom:9px;font-size:12px;font-weight:700}.budget-settings-spacer.svelte-a747ys{min-height:1px}.budget-settings-help-cell.svelte-a747ys{align-self:start;min-width:0;min-height:35px}.budget-settings-help-cell.svelte-a747ys .inline-help-copy{max-width:280px;margin:22px 0 0;font-size:12px;line-height:1.35}@media (width<=768px){.budget-settings-grid.svelte-a747ys,.budget-settings-row.svelte-a747ys{grid-template-columns:1fr}.budget-settings-spacer.svelte-a747ys{display:none}}.tagging-settings-grid.svelte-18e8yem{gap:12px;display:grid}.tagging-settings-row.svelte-18e8yem{grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) minmax(80px,110px) auto minmax(90px,auto);align-items:end;gap:12px;display:grid}.tagging-do-not-pass.svelte-18e8yem{color:var(--text);white-space:nowrap;align-items:center;gap:6px;min-height:35px;font-size:13px;display:flex}.tagging-row-trailer.svelte-18e8yem{align-items:center;gap:8px;min-height:35px;display:flex}.tagging-settings-empty.svelte-18e8yem{color:var(--text-muted);margin:0}.tagging-settings-actions.svelte-18e8yem{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.tagging-settings-row.svelte-18e8yem{grid-template-columns:1fr;align-items:stretch}.tagging-settings-actions.svelte-18e8yem,.tagging-settings-actions.svelte-18e8yem .btn{width:100%}}.pricing-recalculate-section.svelte-1cdxzyk{width:100%}.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:minmax(220px,320px) minmax(260px,360px);justify-content:start;align-items:end;gap:12px;width:100%;display:grid}.pricing-recalculate-date-field.svelte-1cdxzyk{grid-column:1/-1;width:100%;max-width:320px}.pricing-recalculate-filter-field.svelte-1cdxzyk{width:100%;max-width:360px}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker{width:100%}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-trigger{justify-content:space-between;width:100%}.pricing-recalculate-actions.svelte-1cdxzyk{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.pricing-recalculate-grid.svelte-1cdxzyk{grid-template-columns:1fr}.pricing-recalculate-actions.svelte-1cdxzyk,.pricing-recalculate-actions.svelte-1cdxzyk .btn{width:100%}}.pricing-recalculate-date-field.svelte-1cdxzyk .date-picker-dropdown{inset:auto auto calc(100% + 6px) 0}.settings-refresh-icon.svelte-yeq2mp{flex:0 0 16px;width:16px;height:16px}.runtime-refresh-steps.svelte-yeq2mp{color:var(--text-muted);gap:8px;margin-top:14px;padding-left:18px;font-size:13px;display:grid}.runtime-refresh-step.is-ok.svelte-yeq2mp{color:var(--success)}.runtime-refresh-step.is-partial.svelte-yeq2mp{color:var(--warning)}.runtime-refresh-step.is-failed.svelte-yeq2mp{color:var(--danger)}.runtime-settings-copy.svelte-tldbe5{min-width:180px}.runtime-settings-fields.svelte-tldbe5{gap:16px;width:min(560px,100%);display:grid}.runtime-setting-row.svelte-tldbe5{grid-template-columns:minmax(220px,1fr) 180px;align-items:center;gap:20px;display:grid}.runtime-setting-description.svelte-tldbe5,.runtime-setting-managed.svelte-tldbe5{color:var(--text-muted);margin:4px 0 0;font-size:12px}.runtime-setting-managed.svelte-tldbe5{color:var(--warning)}@media (width<=720px){.runtime-setting-row.svelte-tldbe5{grid-template-columns:1fr;gap:8px}}.settings-version-footer.svelte-3naq7u{color:var(--text-muted);text-align:right;margin-top:24px;font-size:12px}.chat-message.svelte-12s99s5{border:1px solid var(--border);background:var(--bg);border-radius:10px;max-width:94%;padding:10px 42px 10px 12px;position:relative;overflow:hidden}.chat-message.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.chat-message.is-after-anchor.svelte-12s99s5,.chat-function-note.is-after-anchor.svelte-12s99s5{opacity:.46}.chat-message.role-user.svelte-12s99s5{align-self:flex-start}.chat-message.role-assistant.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 18%, var(--bg));align-self:flex-end}.chat-message.role-system.svelte-12s99s5{background:color-mix(in srgb, var(--warning) 10%, var(--bg));align-self:center;width:100%;max-width:100%}.chat-message.role-error.svelte-12s99s5{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--bg));align-self:flex-end}.chat-message.role-error.svelte-12s99s5 .chat-role:where(.svelte-12s99s5){color:color-mix(in srgb, var(--danger) 75%, var(--text-muted))}.chat-message-meta.svelte-12s99s5{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.chat-role.svelte-12s99s5{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);font-size:12px;font-weight:700}.chat-time.svelte-12s99s5{color:var(--text-muted);white-space:nowrap;font-size:11px}.chat-content.svelte-12s99s5{white-space:pre-wrap;overflow-wrap:break-word;color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.5}.chat-message.svelte-12s99s5:before,.chat-function-note.svelte-12s99s5:before{content:"";z-index:0;pointer-events:none;opacity:var(--prompt-cache-visibility);background:linear-gradient(90deg, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) 0, color-mix(in srgb, var(--prompt-cache-color) 18%, transparent) var(--prompt-cache-fill), transparent var(--prompt-cache-fill), transparent 100%);transition:opacity .15s;position:absolute;inset:0}.chat-message.svelte-12s99s5>:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5>:where(.svelte-12s99s5){z-index:1;position:relative}.chat-message-copy.svelte-12s99s5{z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 92%, transparent);width:26px;height:26px;color:var(--text-muted);opacity:0;pointer-events:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:opacity .12s,transform .12s,color .12s,background-color .12s,border-color .12s;display:inline-flex;position:absolute;bottom:6px;right:6px;transform:translateY(3px)}.chat-message.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:hover .chat-message-copy:where(.svelte-12s99s5),.chat-message.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-function-note.svelte-12s99s5:focus-within .chat-message-copy:where(.svelte-12s99s5),.chat-message-copy.is-copied.svelte-12s99s5{opacity:1;pointer-events:auto;transform:translateY(0)}.chat-message-copy.svelte-12s99s5:hover{color:var(--text);background:var(--bg-surface-hover)}.chat-message-copy.svelte-12s99s5:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.chat-message-copy.is-copied.svelte-12s99s5{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border))}.chat-tool-calls.svelte-12s99s5{border-top:1px solid var(--border);flex-direction:column;gap:3px;margin-top:8px;padding-top:6px;display:flex}.chat-tool-call.svelte-12s99s5{color:var(--text-muted);border-radius:5px;min-width:0;padding:3px 5px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;position:relative;overflow:hidden}.chat-tool-call-summary.svelte-12s99s5{cursor:pointer;align-items:baseline;gap:6px;min-width:0;display:flex}.chat-tool-call-preview.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;opacity:.8;flex:1;min-width:0;overflow:hidden}.chat-tool-call-arguments.svelte-12s99s5{background:color-mix(in srgb, var(--border) 45%, transparent);color:var(--text);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;max-height:200px;margin-top:5px;padding:6px 8px;line-height:1.45;overflow:auto}.chat-tool-call-name.svelte-12s99s5:before{content:"⚡"}.chat-function-note.svelte-12s99s5{max-width:94%;color:var(--text-muted);background:color-mix(in srgb, var(--border) 40%, transparent);border:1px dashed var(--border);border-radius:12px;align-self:center;padding:4px 42px 4px 12px;font-size:12px;position:relative;overflow:hidden}.chat-function-note.is-anchor.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-inner.svelte-12s99s5{align-items:baseline;gap:6px;min-height:26px;display:flex;overflow:hidden}.chat-function-note-inner.svelte-12s99s5 .chat-time:where(.svelte-12s99s5){flex-shrink:0;margin-left:auto}.chat-function-call-id.svelte-12s99s5{color:var(--text-muted);overflow-wrap:anywhere;margin-top:6px;font-size:10px}.chat-function-label.svelte-12s99s5{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:600}.chat-function-label.svelte-12s99s5:before{content:"▸";margin-right:4px;transition:transform .12s;display:inline-block}.chat-function-note-details[open].svelte-12s99s5 .chat-function-label:where(.svelte-12s99s5):before{transform:rotate(90deg)}.chat-function-detail.svelte-12s99s5{white-space:nowrap;text-overflow:ellipsis;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;overflow:hidden}.chat-function-note.role-function-call.svelte-12s99s5{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));align-self:flex-end}.chat-function-note.role-function-result.svelte-12s99s5{background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 30%, var(--border));align-self:flex-start}.chat-function-note.is-anchor.role-function-call.svelte-12s99s5,.chat-function-note.is-anchor.role-function-result.svelte-12s99s5{border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.chat-function-note-details.svelte-12s99s5{width:100%}.chat-function-note-details.svelte-12s99s5>summary{cursor:pointer;list-style:none}.chat-function-note-details.svelte-12s99s5>summary::-webkit-details-marker{display:none}.chat-function-expanded.svelte-12s99s5{border-top:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);max-height:200px;margin-top:6px;padding-top:6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;overflow:auto}@media (width<=768px){.chat-message.svelte-12s99s5{max-width:100%}}@media (hover:none){.chat-message-copy.svelte-12s99s5{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.chat-message-copy.svelte-12s99s5{transition:none}}.conversation-drawer.svelte-ssrzja{width:var(--conversation-panel-width);background:var(--bg-surface);border-left:1px solid var(--border);z-index:12;flex-direction:column;flex:none;min-width:0;height:100vh;display:flex;position:sticky;top:0}.conversation-drawer-fullscreen.svelte-ssrzja{z-index:70;border-left:0;flex-basis:auto;width:100vw;height:100dvh;position:fixed;inset:0}.conversation-drawer-fullscreen.svelte-ssrzja .conversation-resize-handle:where(.svelte-ssrzja){display:none}.conversation-resize-handle.svelte-ssrzja{z-index:2;cursor:col-resize;touch-action:none;background:0 0;border:0;border-radius:0;outline:none;width:10px;padding:0;position:absolute;top:0;bottom:0;left:-5px}.conversation-resize-handle.svelte-ssrzja:after{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:4px}.conversation-resize-handle.svelte-ssrzja:hover:after,.conversation-resize-handle.svelte-ssrzja:focus-visible:after{background:color-mix(in srgb, var(--accent) 70%, var(--border))}body.conversation-panel-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.conversation-drawer-header.svelte-ssrzja{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.conversation-drawer-header-actions.svelte-ssrzja{align-items:center;gap:6px;display:flex}.conversation-drawer-title.svelte-ssrzja{align-items:center;gap:9px;min-width:0;display:flex}.conversation-follow-status.svelte-ssrzja{justify-content:center;align-items:center;margin:-4px;padding:4px;display:inline-flex}.conversation-drawer-header.svelte-ssrzja h3{font-size:16px;font-weight:700}#interactions-drawer-content.svelte-ssrzja{position:relative}.conversation-message-navigation.svelte-ssrzja{z-index:4;opacity:0;pointer-events:none;flex-direction:column;gap:4px;width:max-content;height:0;margin-left:auto;margin-right:12px;transition:opacity .12s,transform .12s;display:flex;position:sticky;top:12px;transform:translateY(-3px)}#interactions-drawer-content.svelte-ssrzja:hover .conversation-message-navigation:where(.svelte-ssrzja),.conversation-message-navigation.svelte-ssrzja:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja){border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 94%, transparent);width:30px;height:30px;min-height:30px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:0 1px 3px #00000029}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):hover{color:var(--text);background:var(--bg-surface-hover)}.conversation-message-navigation.svelte-ssrzja button:where(.svelte-ssrzja):focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.conversation-drawer-footer.svelte-ssrzja{border-top:1px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;gap:9px;padding:10px 16px;display:flex}.conversation-composer.svelte-ssrzja{flex-direction:column;gap:7px;display:flex}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja){resize:vertical;border:1px solid var(--border);background:var(--bg);width:100%;min-height:50px;color:var(--text);font:inherit;border-radius:7px;padding:9px 10px;line-height:1.45}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):focus{outline:2px solid color-mix(in srgb, var(--accent) 38%, transparent);outline-offset:1px}.conversation-composer.svelte-ssrzja textarea:where(.svelte-ssrzja):disabled{opacity:.65}.conversation-composer-actions.svelte-ssrzja{justify-content:space-between;align-items:center;gap:10px;display:flex}.conversation-endpoint.svelte-ssrzja{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:11px;overflow:hidden}.conversation-send-error.svelte-ssrzja{color:var(--danger);font-size:12px}.conversation-truncated.svelte-ssrzja{color:var(--text-muted);padding:0 16px 14px;font-size:12px}.conversation-cache-legend.svelte-ssrzja{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin:12px 16px 0;padding:0;font-family:inherit;font-size:11px;display:flex}.conversation-cache-legend.svelte-ssrzja:hover{color:var(--text)}.conversation-cache-legend.svelte-ssrzja:focus-visible{outline:2px solid color-mix(in srgb, var(--prompt-cache-color) 35%, transparent);outline-offset:3px;border-radius:3px}.conversation-cache-switch.svelte-ssrzja{background:color-mix(in srgb, var(--text-muted) 30%, var(--border));border-radius:999px;flex:none;width:28px;height:16px;transition:background-color .15s;position:relative}.conversation-cache-switch.is-active.svelte-ssrzja{background:color-mix(in srgb, var(--prompt-cache-color) 80%, var(--bg))}.conversation-cache-switch-thumb.svelte-ssrzja{background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000003d}.conversation-cache-switch.is-active.svelte-ssrzja .conversation-cache-switch-thumb:where(.svelte-ssrzja){transform:translate(12px)}.conversation-cache-estimate.svelte-ssrzja{opacity:.75}.conversation-thread.svelte-ssrzja{flex-direction:column;gap:10px;padding:14px 16px 20px;display:flex}.conversation-live-status.svelte-ssrzja{color:var(--text-muted);align-items:center;gap:10px;padding:4px 16px 20px;font-size:13px;display:flex}@media (hover:none){.conversation-message-navigation.svelte-ssrzja{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.conversation-message-navigation.svelte-ssrzja{transition:none}} diff --git a/internal/admin/dashboard/static/dist/assets/index-o5upCDH8.css b/internal/admin/dashboard/static/dist/assets/index-o5upCDH8.css new file mode 100644 index 000000000..caf1c4dda --- /dev/null +++ b/internal/admin/dashboard/static/dist/assets/index-o5upCDH8.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{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/assets/index-s6JXpqTB.js b/internal/admin/dashboard/static/dist/assets/index-s6JXpqTB.js deleted file mode 100644 index ec215a144..000000000 --- a/internal/admin/dashboard/static/dist/assets/index-s6JXpqTB.js +++ /dev/null @@ -1,70 +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,ee=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(vn(Re))}function D(e){if(Ie){if(vn(Re)!==null)throw Ne(),De;Re=e}}function Ve(e=1){if(Ie){for(var t=e,n=Re;t--;)n=vn(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=vn(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 Ge(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ke(e){return!Ge(e,this.v)}var qe=null;function Je(e){qe=e}function O(e,t=!1,n){qe={p:qe,i:!1,c:null,e:null,s:e,x:null,r:nr,l:null}}function k(e){var t=qe,n=t.e;if(n!==null){t.e=null;for(var r of n)kn(r)}return e!==void 0&&(t.x=e),t.i=!0,qe=t.p,e??{}}function Ye(){return!0}var Xe=[];function Ze(){var e=Xe;Xe=[],p(e)}function Qe(e){if(Xe.length===0&&!Lt){var t=Xe;queueMicrotask(()=>{t===Xe&&Ze()})}Xe.push(e)}function $e(){for(;Xe.length>0;)Ze()}function et(e){var t=nr;if(t===null)return $n.f|=ae,e;if(!(t.f&32768)&&!(t.f&4))throw e;tt(e,t)}function tt(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 nt=~(y|b|v);function rt(e,t){e.f=e.f&nt|t}function it(e){e.f&512||e.deps===null?rt(e,v):rt(e,b)}function at(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=ne,at(t.deps))}function ot(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),at(e.deps),rt(e,v)}var st=!1;function ct(e){var t=st;try{return st=!1,[e(),st]}finally{st=t}}function lt(e,t){if(t){let t=document.body;e.autofocus=!0,Qe(()=>{document.activeElement===t&&e.focus()})}}function ut(e){Ie&&_n(e)!==null&&yn(e)}var dt=!1;function ft(){dt||(dt=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[pe]?.()})},{capture:!0}))}function pt(e){var t=$n,n=nr;tr(null),rr(null);try{return e()}finally{tr(t),rr(n)}}function mt(e,t,n,r=n){e.addEventListener(t,()=>pt(n));let i=e[pe];i?e[pe]=()=>{i(),r(!0)}:e[pe]=()=>r(!0),ft()}function ht(e){let t=0,n=nn(0),r;return()=>{En()&&(R(n),Pn(()=>(t===0&&(r=wr(()=>e(()=>sn(n)))),t+=1,()=>{Qe(()=>{--t,t===0&&(r?.(),r=void 0,sn(n))})})))}}var gt=T|E;function _t(e,t,n,r){new vt(e,t,n,r)}var vt=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=ht(()=>(this.#m=nn(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=nr;t.b=this,t.f|=128,n(e)},this.parent=nr.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Fn(()=>{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()},gt),Ie&&(this.#e=Re)}#g(){try{this.#a=Ln(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Ln(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Ln(()=>e(this.#e)),Qe(()=>{var e=this.#c=document.createDocumentFragment(),t=gn();e.append(t),this.#a=this.#x(()=>Ln(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Wn(this.#o,()=>{this.#o=null}),this.#b(Nt))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Ln(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Jn(this.#a,e);let t=this.#n.pending;this.#o=Ln(()=>t(this.#e))}else this.#b(Nt)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){ot(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=nr,n=$n,r=qe;rr(this.#i),tr(this.#i),Je(this.#i.ctx);try{return Ut.ensure(),e()}catch(e){return et(e),null}finally{rr(t),tr(n),Je(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&&Wn(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,Qe(()=>{this.#d=!1,this.#m&&an(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),R(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;Nt?.is_fork?(this.#a&&Nt.skip_effect(this.#a),this.#o&&Nt.skip_effect(this.#o),this.#s&&Nt.skip_effect(this.#s),Nt.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(Vn(this.#a),null),this.#o&&=(Vn(this.#o),null),this.#s&&=(Vn(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&&Wn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){tt(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Ln(()=>{var t=nr;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return tt(e,this.#i.parent),null}}))};Qe(()=>{var t;try{t=this.transform_error(e)}catch(e){tt(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>tt(e,this.#i&&this.#i.parent)):o(t)})}};function yt(e,t,n,r){let i=Ye()?Ct:Et;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=nr,c=bt(),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){tt(e,s)}xt()}}var d=St();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>Tt(e))).then(u).catch(e=>tt(e,s)).finally(d)}l?l.then(()=>{c(),f(),xt()}):f()}function bt(){var e=nr,t=$n,n=qe,r=Nt;return function(i=!0){rr(e),tr(t),Je(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function xt(e=!0){rr(null),tr(null),Je(null),e&&Nt?.deactivate()}function St(){var e=nr,t=e.b,n=Nt,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 Ct(e){var t=2|y;return nr!==null&&(nr.f|=E),{ctx:qe,deps:null,effects:null,equals:We,f:t,fn:e,reactions:null,rv:0,v:Oe,wv:0,parent:nr,ac:null}}var wt=Symbol(`obsolete`);function Tt(e,t,n){let r=nr;r===null&&ge();var i=void 0,a=nn(Oe),o=!$n,s=new Set;return Nn(()=>{var t=nr,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==me&&n.reject(e)}).finally(xt)}catch(e){n.reject(e),xt()}var c=Nt;if(o){if(t.f&32768)var l=St();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(wt);else for(let e of s.values())e.reject(wt);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==wt&&(c.activate(),t?(a.f|=ae,an(a,t)):(a.f&8388608&&(a.f^=ae),an(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),Dn(()=>{for(let e of s)e.reject(wt)}),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=Ct(e);return ar(t),t}function Et(e){let t=Ct(e);return t.equals=Ke,t}function Dt(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),yr(t,0),zn(t))}function jt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&br(t)}var Mt=null,Nt=null,Pt=null,Ft=null,It=null,Lt=!1,Rt=!1,zt=null,Bt=null,Vt=0,Ht=1,Ut=class e{id=Ht++;#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(){Mt===null?Mt=this:(Mt.#n=this,this.#t=Mt),Mt=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)rt(r,y),t(r);for(r of n.m)rt(r,b),t(r)}this.#p.add(e)}#g(){this.#e=!0,Vt++>1e3&&(this.#x(),Gt());for(let e of this.#u)this.#d.delete(e),rt(e,y),this.schedule(e);for(let e of this.#d)rt(e,b),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=zt=[],r=[],i=Bt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw Qt(e),this.#h()||this.discard(),t}if(Nt=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(zt=null,Bt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Zt(e,t);i.length>0&&Nt.#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(),Pt=this,qt(r),qt(n),Pt=null,this.#s?.resolve();var s=Nt;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):hr(r)&&(i&16&&this.#d.add(r),br(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),rt(i,y),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),Nt=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(Nt===null){let t=Nt=new e;!Rt&&!Lt&&Qe(()=>{t.#e||t.flush()})}return Nt}apply(){Ft=null}schedule(e){if(It=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(zt!==null&&t===nr&&($n===null||!($n.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?Mt=e:t.#t=e,this.linked=!1}}};function Wt(e){var t=Lt;Lt=!0;try{var n;for(e&&(Nt!==null&&!Nt.is_fork&&Nt.flush(),n=e());;){if($e(),Nt===null)return n;Nt.flush()}}finally{Lt=t}}function Gt(){try{xe()}catch(e){tt(e,It)}}var Kt=null;function qt(e){var t=e.length;if(t!==0){for(var n=0;n0)){en.clear();for(let e of Kt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Kt.has(n)&&(Kt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||br(n)}}Kt.clear()}}Kt=null}}function Jt(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?Jt(i,t,n,r):e&4194320&&!(e&2048)&&Yt(i,t,r)&&(rt(i,y),Xt(i))}}function Yt(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&&Yt(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Xt(e){Nt.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),rt(e,v);for(var n=e.first;n!==null;)Zt(n,t),n=n.next}}function Qt(e){rt(e,v);for(var t=e.first;t!==null;)Qt(t),t=t.next}var $t=new Set,en=new Map,tn=!1;function nn(e,t){return{f:0,v:e,reactions:null,equals:We,rv:0,wv:0}}function j(e,t){let n=nn(e,t);return ar(n),n}function rn(e,t=!1,n=!0){let r=nn(e);return t||(r.equals=Ke),r}function M(e,t,n=!1){return $n!==null&&(!er||$n.f&131072)&&Ye()&&$n.f&4325394&&(ir===null||!ir.has(e))&&Te(),an(e,n?N(t):t,Bt)}function an(e,t,n=null){if(!e.equals(t)){en.set(e,Zn?t:e.v);var r=Ut.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&Ot(t),Ft===null&&it(t)}e.wv=mr(),cn(e,y,n),Ye()&&nr!==null&&nr.f&1024&&!(nr.f&96)&&(cr===null?lr([e]):cr.push(e)),!r.is_fork&&$t.size>0&&!tn&&on()}return t}function on(){tn=!1;for(let e of $t){e.f&1024&&rt(e,b);let t;try{t=hr(e)}catch{t=!0}t&&br(e)}$t.clear()}function sn(e){M(e,e.v+1)}function cn(e,t,n){var r=e.reactions;if(r!==null)for(var i=Ye(),a=r.length,o=0;o{if(fr===d)return e();var t=$n,n=fr;tr(null),pr(d);var r=e();return tr(t),pr(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),sn(o)}}else M(n,Oe),sn(o);return!0},get(e,n,i){if(n===oe)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>j(N(s?e[n]:Oe),u)),r.set(n,o)),o!==void 0){var c=R(o);return c===Oe?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=R(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==Oe)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===oe)return!0;var n=r.get(t),i=n!==void 0&&n.v!==Oe||Reflect.has(e,t);return(n!==void 0||nr!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>j(i?N(e[t]):Oe,u)),r.set(t,n)),R(n)===Oe)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;dj(Oe,u)),r.set(d+``,p)):M(p,Oe)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>j(void 0,u)),M(c,N(n)),r.set(t,c));else{l=c.v!==Oe;var m=f(()=>N(n));M(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&M(g,_+1)}sn(o)}return!0},ownKeys(e){R(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==Oe});for(var[n,i]of r)i.v!==Oe&&!(n in e)&&t.push(n);return t},setPrototypeOf(){we()}})}function ln(e){try{if(typeof e==`object`&&e&&oe in e)return e[oe]}catch{}return e}function un(e,t){return Object.is(ln(e),ln(t))}var dn,fn,pn,mn;function hn(){if(dn===void 0){dn=window,fn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;pn=a(t,`firstChild`).get,mn=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 gn(e=``){return document.createTextNode(e)}function _n(e){return pn.call(e)}function vn(e){return mn.call(e)}function P(e,t){if(!Ie)return _n(e);var n=_n(Re);if(n===null)n=Re.appendChild(gn());else if(t&&n.nodeType!==3){var r=gn();return n?.before(r),ze(r),r}return t&&Sn(n),ze(n),n}function F(e,t=!1){if(!Ie){var n=_n(e);return n instanceof Comment&&n.data===``?vn(n):n}if(t){if(Re?.nodeType!==3){var r=gn();return Re?.before(r),ze(r),r}Sn(Re)}return Re}function I(e,t=1,n=!1){let r=Ie?Re:e;for(var i;t--;)i=r,r=vn(r);if(!Ie)return r;if(n){if(r?.nodeType!==3){var a=gn();return r===null?i?.after(a):r.before(a),ze(a),a}Sn(r)}return ze(r),r}function yn(e){e.textContent=``}function bn(){return!1}function xn(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){nr===null&&($n===null&&be(e),ye()),Zn&&ve(e)}function wn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Tn(e,t){var n=nr;n!==null&&n.f&8192&&(e|=x);var r={ctx:qe,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};Nt?.register_created_effect(r);var i=r;if(e&4)zt===null?Ut.ensure().schedule(r):zt.push(r);else if(t!==null){try{br(r)}catch(e){throw Vn(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&&wn(i,n),$n!==null&&$n.f&2&&!(e&64))){var a=$n;(a.effects??=[]).push(i)}return r}function En(){return $n!==null&&!er}function Dn(e){let t=Tn(8,null);return rt(t,v),t.teardown=e,t}function On(e){Cn(`$effect`);var t=nr.f;if(!$n&&t&32&&qe!==null&&!qe.i){var n=qe;(n.e??=[]).push(e)}else return kn(e)}function kn(e){return Tn(4|ee,e)}function An(e){Ut.ensure();let t=Tn(64|E,e);return()=>{Vn(t)}}function jn(e){Ut.ensure();let t=Tn(64|E,e);return(e={})=>new Promise(n=>{e.outro?Wn(t,()=>{Vn(t),n(void 0)}):(Vn(t),n(void 0))})}function Mn(e){return Tn(4,e)}function Nn(e){return Tn(ie|E,e)}function Pn(e,t=0){return Tn(8|t,e)}function L(e,t=[],n=[],r=[]){yt(r,t,n,t=>{Tn(8,()=>{e(...t.map(R))})})}function Fn(e,t=0){return Tn(16|t,e)}function In(e,t=0){return Tn(_|t,e)}function Ln(e){return Tn(32|E,e)}function Rn(e){var t=e.teardown;if(t!==null){let e=Zn,n=$n;Qn(!0),tr(null);try{t.call(null)}finally{Qn(e),tr(n)}}}function zn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&pt(()=>{e.abort(me)});var r=n.next;n.f&64?n.parent=null:Vn(n,t),n=r}}function Bn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Vn(t),t=n}}function Vn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Hn(e.nodes.start,e.nodes.end),n=!0),e.f|=w,zn(e,t&&!n),yr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Rn(e),e.f^=w,e.f|=S;var i=e.parent;i!==null&&i.first!==null&&Un(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Hn(e,t){for(;e!==null;){var n=e===t?null:vn(e);e.remove(),e=n}}function Un(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 Wn(e,t,n=!0){var r=[];Gn(e,r,!0);var i=()=>{n&&Vn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Gn(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;Gn(i,t,o?n:!1)}i=a}}}function Kn(e){qn(e,!0)}function qn(e,t){if(e.f&8192){e.f^=x,e.f&1024||(rt(e,y),Ut.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;qn(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:vn(n);t.append(n),n=i}}var Yn=null,Xn=!1,Zn=!1;function Qn(e){Zn=e}var $n=null,er=!1;function tr(e){$n=e}var nr=null;function rr(e){nr=e}var ir=null;function ar(e){$n!==null&&(ir??=new Set).add(e)}var or=null,sr=0,cr=null;function lr(e){cr=e}var ur=1,dr=0,fr=dr;function pr(e){fr=e}function mr(){return++ur}function hr(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&&Ft===null&&rt(e,v)}return!1}function gr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(ir!==null&&ir.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=Nt?.is_fork;if(or!==null){var m;if(p||yr(e,sr),f!==null&&sr>0)for(f.length=sr+or.length,m=0;m{s.ac.abort(me),s.ac=null,rt(s,y)}),At(s),yr(s,0)}}function yr(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`?Qe(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function zr(e,t,n,r,i){var a={capture:r,passive:i},o=Rr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Dn(()=>{t.removeEventListener(e,o,a)})}function z(e,t,n){(t[Fr]??={})[e]=n}function Br(e){for(var t=0;t{throw e});throw p}}finally{e[Fr]=t,delete e.currentTarget,tr(d),rr(f)}}}var Ur=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Wr(e){return Ur?.createHTML(e)??e}function Gr(e){var t=xn(`template`);return t.innerHTML=Wr(e.replaceAll(``,``)),t.content}function Kr(e,t){var n=nr;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function B(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(``);return()=>{if(Ie)return Kr(Re,null),Re;i===void 0&&(i=Gr(a?e:``+e),n||(i=_n(i)));var t=r||fn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=_n(t),s=t.lastChild;Kr(o,s)}else Kr(t,t);return t}}function qr(e,t,n=`svg`){var r=!e.startsWith(``),i=(t&1)!=0,a=`<${n}>${r?e:``+e}`,o;return()=>{if(Ie)return Kr(Re,null),Re;if(!o){var e=_n(Gr(a));if(i)for(o=document.createDocumentFragment();_n(e);)o.appendChild(_n(e));else o=_n(e)}var t=o.cloneNode(!0);if(i){var n=_n(t),r=t.lastChild;Kr(n,r)}else Kr(t,t);return t}}function Jr(e,t){return qr(e,t,`svg`)}function Yr(e=``){if(!Ie){var t=gn(e+``);return Kr(t,t),t}var n=Re;return n.nodeType===3?Sn(n):(n.before(n=gn()),ze(n)),Kr(n,n),n}function Xr(){if(Ie)return Kr(Re,null),Re;var e=document.createDocumentFragment(),t=document.createComment(``),n=gn();return e.append(t,n),Kr(t,n),e}function V(e,t){if(Ie){var n=nr;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=Re),Be();return}e!==null&&e.before(t)}var Zr=!0;function Qr(e){Zr=e}function H(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[fe]??=e.nodeValue)&&(e[fe]=n,e.nodeValue=`${n}`)}function $r(e,t){return ti(e,t)}var ei=new Map;function ti(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){hn();var l=void 0,u=jn(()=>{var u=n??t.appendChild(gn());_t(u,{pending:()=>{}},t=>{O({});var n=qe;if(o&&(n.c=o),a&&(i.$$events=a),Ie&&Kr(t,null),Zr=s,l=e(t,i)||{},Zr=!0,Ie&&(nr.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=ei.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Hr),r.delete(e),r.size===0&&ei.delete(n)):r.set(e,i)}Lr.delete(f),u!==n&&u.parentNode?.removeChild(u)}});return ni.set(l,u),l}var ni=new WeakMap,ri=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&&(Vn(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(gn()),this.#n.set(e,{effect:r,fragment:t})}else Vn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Wn(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)||(Vn(n.effect),this.#n.delete(e))};ensure(e,t){var n=Nt,r=bn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=gn();i.append(a),this.#n.set(e,{effect:Ln(()=>t(a)),fragment:i})}else this.#t.set(e,Ln(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else Ie&&(this.anchor=Re),this.#a(n)}};function U(e,t,n=!1){var r;Ie&&(r=Re,Be());var i=new ri(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)}Fn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function ii(e,t){return t}function ai(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;oi(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;yn(d),d.append(u),e.items.clear()}oi(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function oi(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,li(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=te,di(d,null,c)):Kn(d):Wn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:Fn(()=>{p=R(f);var e=p.length;let t=!1;Ie&&Ue(c)===`[!`!=(e===0)&&(c=He(),ze(c),Le(!1),t=!0);for(var r=new Set,u=Nt,v=bn(),y=0;ys(c)):(d=Ln(()=>s(si??=gn())),d.f|=te)),e>r.size&&_e(``,``,``),Ie&&e>0&&ze(He()),!h)if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&Le(!0),R(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,Ie&&(c=Re)}function ci(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function li(e,t,n,i,a){var o=(i&8)!=0,s=t.length,c=e.items,l=ci(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 ui(e,t,n,r,i,a,o,s){var c=o&1?o&16?nn(n):rn(n,!1,!1):null,l=o&2?nn(i):null;return{v:c,i:l,e:Ln(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function di(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=vn(r);if(a.before(r),r===i)return;r=o}}function fi(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function pi(e,t,n=!1,r=!1,i=!1,a=!1){var o=e,s=``;if(n){var c=e;Ie&&(o=ze(_n(c)))}L(()=>{var e=nr;if(s===(s=t()??``)){Ie&&Be();return}if(n&&!Ie){e.nodes=null,c.innerHTML=s,s!==``&&Kr(_n(c),c.lastChild);return}if(e.nodes!==null&&(Hn(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=vn(l);if(l===null)throw Ne(),De;Kr(Re,u),o=ze(l);return}var d=xn(r?`svg`:i?`math`:`template`,r?Ae:i?je:void 0);d.innerHTML=s;var f=r||i?d:d.content;if(Kr(_n(f),f.lastChild),r||i)for(;_n(f);)o.before(_n(f));else o.before(f)}})}function mi(e,t,...n){var r=new ri(e);Fn(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},T)}function hi(e,t,n){var r;Ie&&(r=Re,Be());var i=new ri(e);Fn(()=>{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 gi=()=>performance.now(),_i={tick:e=>requestAnimationFrame(e),now:()=>gi(),tasks:new Set};function vi(){let e=_i.now();_i.tasks.forEach(t=>{t.c(e)||(_i.tasks.delete(t),t.f())}),_i.tasks.size!==0&&_i.tick(vi)}function yi(e){let t;return _i.tasks.size===0&&_i.tick(vi),{promise:new Promise(n=>{_i.tasks.add(t={c:e,f:n})}),abort(){_i.tasks.delete(t)}}}function bi(e,t){pt(()=>{e.dispatchEvent(new CustomEvent(t))})}function xi(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 Si(e){let t={},n=e.split(`;`);for(let e of n){let[n,r]=e.split(`:`);if(!n||r===void 0)break;let i=xi(n.trim());t[i]=r.trim()}return t}var Ci=e=>e,wi=null;function Ti(e){wi=e}function Ei(e,t,n){var r=(wi??nr).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 Di(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 pt(()=>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,()=>{bi(t,`introstart`)},()=>{bi(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,()=>{bi(t,`outrostart`)},()=>{bi(t,`outroend`),e?.()})},stop:()=>{f?.abort(),p?.abort()}},g=nr;if((g.nodes.t??=[]).push(h),i&&Zr){var _=s;if(!_){for(var v=g.parent;v&&v.f&65536;)for(;(v=v.parent)&&!(v.f&16););_=!v||(v.f&32768)!=0}_&&Mn(()=>{wr(()=>h.in())})}}function Oi(e,t,n,r,i,a){var o=r===1;if(d(t)){var s,c=!1;return Qe(()=>{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=Ci}=t;var h=[];if(o&&n===void 0&&(p&&p(0,1),u)){var g=Si(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=Si(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&&yi(()=>{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 ki(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=nr,u=new ri(c,!1);Fn(()=>{let e=t()||null;var a=i?i():n||e===`svg`?Ae:void 0;if(e===null){u.ensure(null,null),Qr(!0);return}return u.ensure(e,t=>{if(e){if(s=Ie?s:xn(e,a),Kr(s,s),r){var n=null;Ie&&Pr(e)&&s.append(n=document.createComment(``));var i=Ie?_n(s):s.appendChild(gn());Ie&&(i===null?Le(!1):ze(i)),Ti(l),r(s,i),n?.remove(),Ti(null)}nr.nodes.end=s,t.before(s)}Ie&&ze(t)}),Qr(!0),()=>{e&&Qr(!1)}},T),Dn(()=>{Qr(!0)}),o&&(Le(!0),ze(c))}function Ai(e,t){var n=void 0,r;In(()=>{n!==(n=t())&&(r&&=(Vn(r),null),n&&(r=Ln(()=>{Mn(()=>n(e))})))})}function ji(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||Pi.includes(r[o-1]))&&(s===r.length||Pi.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function Ii(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 Li(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function Ri(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(Li)),i&&c.push(...Object.keys(i).map(Li));var l=0,u=-1;let t=e.length;for(var d=0;d{Vi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),Dn(()=>{t.disconnect()})}function Ui(e,t,n=t){var r=new WeakSet,i=!0;mt(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),Wi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&Wi(o)}n(a),e.__value=a,Nt!==null&&r.add(Nt)}),Mn(()=>{var a=t();if(e===document.activeElement){var o=Nt;if(r.has(o))return}if(Vi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=Wi(s),n(a))}e.__value=a,i=!1}),Hi(e)}function Wi(e){return`__value`in e?e.__value:e.value}var Gi=Symbol(`class`),Ki=Symbol(`style`),qi=Symbol(`is custom element`),Ji=Symbol(`is html`),Yi=he?`link`:`LINK`,Xi=he?`input`:`INPUT`,Zi=he?`option`:`OPTION`,Qi=he?`select`:`SELECT`,$i=he?`progress`:`PROGRESS`;function ea(e){if(Ie){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;K(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;K(e,`checked`,null),e.checked=r}}};e[pe]=n,Qe(n),ft()}}function ta(e,t){var n=oa(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==$i)||(e.value=t??``)}function na(e,t){var n=oa(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function ra(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function K(e,t,n,r){var i=oa(e);Ie&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Yi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[ce]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&ca(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function ia(e,t,n,r,i=!1,a=!1){if(Ie&&i&&e.nodeName===Xi){var o=e;(o.type===`checkbox`?`defaultChecked`:`defaultValue`)in n||ea(o)}var s=oa(e),c=s[qi],l=!s[Ji];let u=Ie&&c;u&&Le(!1);var d=t||{},f=e.nodeName===Zi;for(var p in t)p in n||(n[p]=null);n.class?n.class=Ni(n.class):(r||n[Gi])&&(n.class=null),n[Ki]&&(n.style??=null);var m=ca(e);if(e.nodeName===Xi&&`type`in n&&(`value`in n||`__value`in n)){var h=n.type;(h!==d.type||h===void 0&&e.hasAttribute(`type`))&&(d.type=h,K(e,`type`,h,a))}for(let i in n){let o=n[i];if(f&&i===`value`&&o==null){e.value=e.__value=``,d[i]=o;continue}if(i===`class`){G(e,e.namespaceURI===`http://www.w3.org/1999/xhtml`,o,r,t?.[Gi],n[Gi]),d[i]=o,d[Gi]=n[Gi];continue}if(i===`style`){Bi(e,o,t?.[Ki],n[Ki]),d[i]=o,d[Ki]=n[Ki];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=Dr(r);if(Tr(r)&&(r=r.slice(0,-7),t.capture=!0),!v&&g){if(o!=null)continue;e.removeEventListener(r,d[n],t),d[n]=null}if(v)z(r,e,o),Br([r]);else if(o!=null){function a(e){d[i].call(this,e)}d[n]=Rr(r,e,a,t)}}else if(i===`style`)K(e,i,o);else if(i===`autofocus`)lt(e,!!o);else if(!c&&(i===`__value`||i===`value`&&o!=null))e.value=e.__value=o;else if(i===`selected`&&f)ra(e,o);else{var y=i;l||(y=Ar(y));var b=y===`defaultValue`||y===`defaultChecked`;if(o==null&&!c&&!b)if(s[i]=null,y===`value`||y===`checked`){let n=e,r=t===void 0;if(y===`value`){let e=n.defaultValue;n.removeAttribute(y),n.defaultValue=e,n.value=n.__value=r?e:null}else{let e=n.defaultChecked;n.removeAttribute(y),n.defaultChecked=e,n.checked=r?e:!1}}else e.removeAttribute(i);else b||m.includes(y)&&(c||typeof o!=`string`)?(e[y]=o,y in s&&(s[y]=Oe)):typeof o!=`function`&&K(e,y,o,a)}}}return u&&Le(!0),d}function aa(e,t,n=[],r=[],i=[],a,o=!1,s=!1){yt(i,n,r,n=>{var r=void 0,i={},c=e.nodeName===Qi,l=!1;if(In(()=>{var u=t(...n.map(R)),d=ia(e,r,u,a,o,s);l&&c&&`value`in u&&Vi(e,u.value);for(let e of Object.getOwnPropertySymbols(i))u[e]||Vn(i[e]);for(let t of Object.getOwnPropertySymbols(u)){var f=u[t];t.description===`@attach`&&(!r||f!==r[t])&&(i[t]&&Vn(i[t]),i[t]=Ln(()=>Ai(e,()=>f))),d[t]=f}r=d}),c){var u=e;Mn(()=>{Vi(u,r.value,!0),Hi(u)})}l=!0})}function oa(e){return e[le]??={[qi]:e.nodeName.includes(`-`),[Ji]:e.namespaceURI===ke}}var sa=new Map;function ca(e){var t=e.getAttribute(`is`)||e.nodeName,n=sa.get(t);if(n)return n;sa.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 la(e,t,n=t){var r=new WeakSet;mt(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=da(e)?fa(a):a,n(a),Nt!==null&&r.add(Nt),await xr(),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||wr(t)==null&&e.value)&&(n(da(e)?fa(e.value):e.value),Nt!==null&&r.add(Nt)),Pn(()=>{var n=t();if(e===document.activeElement){var i=Nt;if(r.has(i))return}da(e)&&n===fa(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function ua(e,t,n=t){mt(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(Ie&&e.defaultChecked!==e.checked||wr(t)==null)&&n(e.checked),Pn(()=>{e.checked=!!t()})}function da(e){var t=e.type;return t===`number`||t===`range`}function fa(e){return e===``?null:+e}function pa(e,t){return e===t||e?.[oe]===t}function ma(e={},t,n,r){var i=qe.r,a=nr;return Mn(()=>{var o,s;return Pn(()=>{o=s,s=r?.()||[],wr(()=>{pa(n(...s),e)||(t(e,...s),o&&pa(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&&pa(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}var ha={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 ga(e,t,n){return new Proxy({props:e,exclude:t},ha)}function q(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??=Ct(r),R(u)):(l&&(l=!1,c=s?wr(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]=ct(()=>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?Ct:Et)(()=>(v=!1,g()));o&&R(y);var b=nr;return(function(e,t){if(arguments.length>0){let n=t?R(y):i&&o?N(e):e;return M(y,n),v=!0,c!==void 0&&(c=n),e}return Zn&&v||b.f&16384?y.v:R(y)})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var _a=new Set([`$$slots`,`$$events`,`$$legacy`,`icon`,`class`]),va=Jr(``);function J(e,t){let n=q(t,`icon`,19,()=>[]),r=q(t,`class`,3,``),i=ga(t,_a);var a=va();aa(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=Xr();W(F(r),17,n,ii,(t,n)=>{var r=A(()=>g(R(n),3));let i=()=>R(r)[0],a=()=>R(r)[1],o=()=>R(r)[2];var s=Xr();ki(F(s),i,!0,(t,n)=>{aa(t,()=>({xmlns:`http://www.w3.org/2000/svg`,...a()}));var r=Xr(),i=F(r),s=t=>{e(t,o)},c=A(()=>Array.isArray(o()));U(i,e=>{R(c)&&e(s)}),V(n,r)}),V(t,s)}),V(t,r)};e(P(a),n),D(a)}V(e,a)}var ya=Jr(``);function ba(e){V(e,ya())}var xa={},Sa=[`en`],Ca=`PARAGLIDE_LOCALE`,wa=[`custom-dashboard`,`preferredLanguage`,`baseLocale`],Ta=[];globalThis.__paraglide=globalThis.__paraglide??{},globalThis.__paraglide.ssr=globalThis.__paraglide.ssr??{};var Ea=!1,Da=()=>{let e=wa;typeof window<`u`&&window.location?.href&&(e=Ua(window.location.href));let t=Oa(e,typeof window<`u`?window.location?.href:void 0);if(t)return Ea||(Ea=!0,Ma(t,{reload:!1})),t;throw Error(`No locale found. Read the docs https://paraglidejs.com/errors#no-locale-found`)};function Oa(e,t){let n;for(let t of e){if(t===`baseLocale`)n=`en`;else if(t===`preferredLanguage`)n=La();else if(Ga(t)&&Wa.has(t)){let e=Wa.get(t);if(e){let t=e.getLocale();if(t instanceof Promise)continue;if(t!==void 0)return Fa(t)}}let e=Pa(n);if(e)return e}}var ka=new Set([`ar`,`dv`,`fa`,`he`,`ks`,`ku`,`ps`,`sd`,`ug`,`ur`,`yi`]);function Aa(e=Da()){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 ka.has(t??``)?`rtl`:`ltr`}var ja=e=>{e?window.location.href=e:window.location.reload()},Ma=(e,t)=>{let n={reload:!0,...t},r;try{r=Da()}catch{}let i=[],a=wa;typeof window<`u`&&window.location?.href&&(a=Ua(window.location.href));for(let t of a)if(t===`baseLocale`)continue;else if(Ga(t)&&Wa.has(t)){let n=Wa.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&&ja(void 0)};if(i.length)return Promise.all(i).then(()=>{o()});o()},Na=()=>typeof window<`u`?window.location.origin:`http://fallback.com`;function Pa(e){if(typeof e!=`string`)return;let t=e.toLowerCase();for(let e of Sa)if(e.toLowerCase()===t)return e}function Fa(e){let t=Pa(e);if(t)return t;throw Error(`Invalid locale: ${e}. Expected one of: ${Sa.join(`, `)}`)}var Ia=Ca.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);RegExp(`(?:^|;\\s*)${Ia}=([^;]*)`);function La(){if(!navigator?.languages?.length)return;let e=navigator.languages.map(e=>({fullTag:e,baseTag:e.split(`-`)[0]}));for(let t of e){let e=Pa(t.fullTag);if(e)return e;let n=Pa(t.baseTag);if(n)return n}}function Ra(e){return za(e)}function za(e){let t=typeof e==`string`?new URL(e,Na()):new URL(e),n=t.pathname.split(`/`).filter(Boolean);return n.length>0&&Pa(n[0])&&(t.pathname=`/`+n.slice(1).join(`/`)),t}var Ba,Va;function Ha(e){if(Ta.length===0)return;let t=typeof e==`string`?e:e.href;if(Ba===t)return Va;let n=new URL(t,`http://example.com`),r=Ra(n),i=r.href===n.href?[n]:[n,r],a;for(let e of i){for(let t of Ta)if(new xa(t.match,e.href).exec(e.href)){a=t;break}if(a)break}return Ba=t,Va=a,a}function Ua(e){let t=Ha(e);return t&&t.exclude!==!0&&Array.isArray(t.strategy)?t.strategy:wa}var Wa=new Map;function Ga(e){return typeof e==`string`&&/^custom-[A-Za-z0-9_-]+$/.test(e)}function Ka(e,t){if(!Ga(e))throw Error(`Invalid custom strategy: "${e}". Must be a custom strategy following the pattern custom-name.`);Wa.set(e,t)}function qa(){try{return typeof window>`u`?null:window.localStorage}catch{return null}}function Ja(e,t=null){let n=qa();if(!n)return t;try{return n.getItem(e)??t}catch{return t}}function Ya(e,t){let n=qa();if(n)try{n.setItem(e,String(t))}catch{}}var Xa=`gomodel_locale`;Ka(`custom-dashboard`,{getLocale:()=>Ja(Xa)||void 0,setLocale:e=>Ya(Xa,e)});function Za(){let e=Da();document.documentElement.lang=e,document.documentElement.dir=Aa(e)}function Qa(e){return typeof Intl.DisplayNames==`function`&&new Intl.DisplayNames([e],{type:`language`}).of(e)||e}function $a(e,t){return new Intl.NumberFormat(Da(),t).format(e)}function eo(e,t){return new Intl.DateTimeFormat(Da(),t).format(e)}var to=()=>`Cancel`,no=((e={},t={})=>(t.locale??Da(),to(e))),ro=()=>`Next`,io=((e={},t={})=>(t.locale??Da(),ro(e))),ao=()=>`Previous`,oo=((e={},t={})=>(t.locale??Da(),ao(e))),so=()=>`Admin`,co=((e={},t={})=>(t.locale??Da(),so(e))),lo=()=>`Overview`,uo=((e={},t={})=>(t.locale??Da(),lo(e))),fo=()=>`Providers`,po=((e={},t={})=>(t.locale??Da(),fo(e))),mo=()=>`Models`,ho=((e={},t={})=>(t.locale??Da(),mo(e))),go=()=>`Audit Logs`,_o=((e={},t={})=>(t.locale??Da(),go(e))),vo=()=>`Usage`,yo=((e={},t={})=>(t.locale??Da(),vo(e))),bo=()=>`Budgets`,xo=((e={},t={})=>(t.locale??Da(),bo(e))),So=()=>`Rate Limits`,Co=((e={},t={})=>(t.locale??Da(),So(e))),wo=()=>`API Keys`,To=((e={},t={})=>(t.locale??Da(),wo(e))),Eo=()=>`Workflows`,Do=((e={},t={})=>(t.locale??Da(),Eo(e))),Oo=()=>`Guardrails (experimental)`,ko=((e={},t={})=>(t.locale??Da(),Oo(e))),Ao=()=>`MCP Servers`,jo=((e={},t={})=>(t.locale??Da(),Ao(e))),Mo=()=>`Settings`,No=((e={},t={})=>(t.locale??Da(),Mo(e))),Po=()=>`Sign out`,Fo=((e={},t={})=>(t.locale??Da(),Po(e))),Io=()=>`Enter API key`,Lo=((e={},t={})=>(t.locale??Da(),Io(e))),Ro=()=>`Change API key`,zo=((e={},t={})=>(t.locale??Da(),Ro(e))),Bo=()=>`Resize sidebar`,Vo=((e={},t={})=>(t.locale??Da(),Bo(e))),Ho=()=>`Drag to resize; click to collapse or expand`,Uo=((e={},t={})=>(t.locale??Da(),Ho(e))),Wo=()=>`Theme`,Go=((e={},t={})=>(t.locale??Da(),Wo(e))),Ko=()=>`Light theme`,qo=((e={},t={})=>(t.locale??Da(),Ko(e))),Jo=()=>`System theme`,Yo=((e={},t={})=>(t.locale??Da(),Jo(e))),Xo=()=>`Dark theme`,Zo=((e={},t={})=>(t.locale??Da(),Xo(e))),Qo=e=>`Change theme (currently ${e?.theme})`,$o=((e,t={})=>(t.locale??Da(),Qo(e))),es=()=>`Language`,ts=((e={},t={})=>(t.locale??Da(),es(e))),ns=()=>`Authentication required for dashboard data.`,rs=((e={},t={})=>(t.locale??Da(),ns(e))),is=()=>`Dashboard locked`,as=((e={},t={})=>(t.locale??Da(),is(e))),os=()=>`Change API key`,ss=((e={},t={})=>(t.locale??Da(),os(e))),cs=()=>`Close authentication dialog`,ls=((e={},t={})=>(t.locale??Da(),cs(e))),us=()=>`Sign in with SSO`,ds=((e={},t={})=>(t.locale??Da(),us(e))),fs=()=>`or use an API key`,ps=((e={},t={})=>(t.locale??Da(),fs(e))),ms=()=>`API key`,hs=((e={},t={})=>(t.locale??Da(),ms(e))),gs=()=>`Master key or bearer token`,_s=((e={},t={})=>(t.locale??Da(),gs(e))),vs=()=>`Enter a valid API key to continue.`,ys=((e={},t={})=>(t.locale??Da(),vs(e))),bs=()=>`Stored in this browser. Requests use the Authorization bearer header.`,xs=((e={},t={})=>(t.locale??Da(),bs(e))),Ss=()=>`Unlock dashboard`,Cs=((e={},t={})=>(t.locale??Da(),Ss(e))),ws=()=>`Save API key`,Ts=((e={},t={})=>(t.locale??Da(),ws(e))),Es=()=>`Close confirmation dialog`,Ds=((e={},t={})=>(t.locale??Da(),Es(e))),Os=()=>`Dismiss notification`,ks=((e={},t={})=>(t.locale??Da(),Os(e))),As=()=>`Demo mode notice`,js=((e={},t={})=>(t.locale??Da(),As(e))),Ms=()=>`Public demo`,Ns=((e={},t={})=>(t.locale??Da(),Ms(e))),Ps=()=>`Do not enter sensitive or personal data. Demo data is reset regularly.`,Fs=((e={},t={})=>(t.locale??Da(),Ps(e))),Is=()=>`GoModel website`,Ls=((e={},t={})=>(t.locale??Da(),Is(e))),Rs=e=>`Showing ${e?.start}–${e?.end} of ${e?.total}`,zs=((e,t={})=>(t.locale??Da(),Rs(e)));function Bs(e,t,n){return new Intl.PluralRules(e,n).select(Number(t))}var Vs=e=>Bs(`en`,e?.count,{})===`one`?`Last ${e?.count} day`:`Last ${e?.count} days`,Hs=((e,t={})=>(t.locale??Da(),Vs(e))),Us=e=>Bs(`en`,e?.count,{})===`one`?`${e?.count} day`:`${e?.count} days`,Ws=((e,t={})=>(t.locale??Da(),Us(e))),Gs=()=>`Today`,Ks=((e={},t={})=>(t.locale??Da(),Gs(e))),qs=e=>`${e?.start} – ${e?.end}`,Js=((e,t={})=>(t.locale??Da(),qs(e))),Ys=e=>`${e?.start} – ...`,Xs=((e,t={})=>(t.locale??Da(),Ys(e))),Zs=()=>`Select start date`,Qs=((e={},t={})=>(t.locale??Da(),Zs(e))),$s=()=>`Select end date`,ec=((e={},t={})=>(t.locale??Da(),$s(e))),tc=()=>`Previous month`,nc=((e={},t={})=>(t.locale??Da(),tc(e))),rc=()=>`Next month`,ic=((e={},t={})=>(t.locale??Da(),rc(e))),ac=()=>`Daily Token Usage`,oc=((e={},t={})=>(t.locale??Da(),ac(e))),sc=()=>`Weekly Token Usage`,cc=((e={},t={})=>(t.locale??Da(),sc(e))),lc=()=>`Monthly Token Usage`,uc=((e={},t={})=>(t.locale??Da(),lc(e))),dc=()=>`Yearly Token Usage`,fc=((e={},t={})=>(t.locale??Da(),dc(e))),pc=B(``),mc=B(``);function hc(e,t){O(t,!0);let n=q(t,`compact`,3,!1),r=Sa.map(e=>({value:e,label:Qa(e)}));var i=Xr(),a=F(i),o=e=>{var t=mc();let i;var a=P(t),o=P(a,!0);D(a);var s=I(a,2);W(s,21,()=>r,e=>e.value,(e,t)=>{var n=pc(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(s);var c;Hi(s),D(t),L((e,r,a)=>{i=G(t,1,`locale-selector svelte-hr6ahz`,null,i,{"is-compact":n()}),H(o,e),K(s,`aria-label`,r),c!==(c=a)&&(s.value=(s.__value=a)??``,Vi(s,a))},[()=>ts(),()=>ts(),()=>Da()]),z(`change`,s,e=>Ma(e.currentTarget.value)),V(e,t)};U(a,e=>{r.length>1&&e(o)}),V(e,i),k()}Br([`change`]);function gc(e){let t=Number(e);return Number.isFinite(t)?Math.min(240,Math.max(60,Math.round(t))):240}function _c(e,t,n){return gc(Number(e)+Number(n)-Number(t))}var vc=new class{#e=j(`system`);get theme(){return R(this.#e)}set theme(e){M(this.#e,e,!0)}#t=j(0);get tick(){return R(this.#t)}set tick(e){M(this.#t,e,!0)}init(){this.theme=Ja(`gomodel_theme`,`system`),this.apply(),window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{this.theme===`system`&&this.tick++})}set(e){this.theme=e,Ya(`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)}},yc=new class{#e=j(N(240));get width(){return R(this.#e)}set width(e){M(this.#e,e,!0)}get collapsed(){return this.width===60}init(){let e=Ja(`gomodel_sidebar_width`),t=Ja(`gomodel_sidebar_collapsed`)===`true`;this.setWidth(e??(t?60:240))}toggle(){this.setWidth(this.collapsed?240:60,!0)}setWidth(e,t=!1){this.width=gc(e),typeof document<`u`&&document.documentElement.style.setProperty(`--sidebar-width`,`${this.width}px`),t&&(Ya(`gomodel_sidebar_width`,this.width),Ya(`gomodel_sidebar_collapsed`,this.collapsed))}},bc=new class{#e=j(N([]));get stack(){return R(this.#e)}set stack(e){M(this.#e,e,!0)}#t=1;opened(){let e=this.#t++;return this.stack=[...this.stack,e],e}closed(e){this.stack=this.stack.filter(t=>t!==e)}isTop(e){return this.stack.length>0&&this.stack[this.stack.length-1]===e}get openCount(){return this.stack.length}get anyOpen(){return this.stack.length>0}},xc=[[`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`}]],Sc=[[`path`,{d:`M12 5v14`}],[`path`,{d:`m19 12-7 7-7-7`}]],Cc=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]],wc=[[`path`,{d:`M5 12h14`}],[`path`,{d:`m12 5 7 7-7 7`}]],Tc=[[`path`,{d:`m5 12 7-7 7 7`}],[`path`,{d:`M12 19V5`}]],Ec=[[`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`}]],Dc=[[`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`}]],Oc=[[`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`}]],kc=[[`path`,{d:`M8 2v4`}],[`path`,{d:`M16 2v4`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`}],[`path`,{d:`M3 10h18`}]],Ac=[[`path`,{d:`M13 17V9`}],[`path`,{d:`M18 17V5`}],[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M8 17v-3`}]],jc=[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M18 17V9`}],[`path`,{d:`M13 17V5`}],[`path`,{d:`M8 17v-3`}]],Mc=[[`path`,{d:`M20 6 9 17l-5-5`}]],Nc=[[`path`,{d:`m6 9 6 6 6-6`}]],Pc=[[`path`,{d:`m15 18-6-6 6-6`}]],Fc=[[`path`,{d:`m9 18 6-6-6-6`}]],Ic=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`}],[`path`,{d:`m9 11 3 3L22 4`}]],Lc=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m9 12 2 2 4-4`}]],Rc=[[`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`}]],zc=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 6v6l4 2`}]],Bc=[[`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`}]],Vc=[[`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`}]],Hc=[[`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`}]],Uc=[[`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`}]],Wc=[[`path`,{d:`m12 14 4-4`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`}]],Gc=[[`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`}]],Kc=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]],qc=[[`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`}]],Jc=[[`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`}]],Yc=[[`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`}]],Xc=[[`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`}]],Zc=[[`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`}]],Qc=[[`path`,{d:`M15 3h6v6`}],[`path`,{d:`m21 3-7 7`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M9 21H3v-6`}]],$c=[[`path`,{d:`m14 10 7-7`}],[`path`,{d:`M20 10h-6V4`}],[`path`,{d:`m3 21 7-7`}],[`path`,{d:`M4 14h6v6`}]],el=[[`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`}]],tl=[[`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`}]],nl=[[`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`}]],rl=[[`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`}]],il=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]],al=[[`path`,{d:`M12 2v10`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`}]],ol=[[`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`}]],sl=[[`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`}]],cl=[[`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`}]],ll=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]],ul=[[`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`}]],dl=[[`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`}]],fl=[[`path`,{d:`M14 17H5`}],[`path`,{d:`M19 7h-9`}],[`circle`,{cx:`17`,cy:`17`,r:`3`}],[`circle`,{cx:`7`,cy:`7`,r:`3`}]],pl=[[`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`}]],ml=[[`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`}]],hl=[[`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`}]],gl=[[`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`}]],_l=[[`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`}]],vl=[[`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`}]],yl=[[`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`}]],bl=[[`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`}]],xl=[[`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`}]],Sl=[[`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`}]],Cl=[[`circle`,{cx:`12`,cy:`8`,r:`5`}],[`path`,{d:`M20 21a8 8 0 0 0-16 0`}]],wl=[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`}],[`circle`,{cx:`12`,cy:`7`,r:`4`}]],Tl=[[`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`}]],El=[[`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`}]],Dl=[[`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`}]],Ol=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]],kl=B(``),Al=B(`
        `,1);function jl(e,t){O(t,!0);let n=q(t,`compact`,3,!1),r=[{value:`light`,icon:vl,label:qo()},{value:`system`,icon:el,label:Yo()},{value:`dark`,icon:tl,label:Zo()}],i=A(()=>r.find(e=>e.value===vc.theme)||r[1]),a=A(()=>$o({theme:R(i).label}));var o=Al(),s=F(o);let c;W(s,21,()=>r,e=>e.value,(e,t)=>{var n=kl();let r;J(P(n),{get icon(){return R(t).icon},class:`theme-icon`}),D(n),L(()=>{r=G(n,1,`theme-btn svelte-1keql7b`,null,r,{active:vc.theme===R(t).value}),K(n,`aria-pressed`,vc.theme===R(t).value),K(n,`title`,R(t).label),K(n,`aria-label`,R(t).label)}),z(`click`,n,()=>vc.set(R(t).value)),V(e,n)}),D(s);var l=I(s,2);let u;J(P(l),{get icon(){return R(i).icon},class:`theme-icon`}),D(l),L(e=>{c=G(s,1,`theme-toggle svelte-1keql7b`,null,c,{"is-compact":n()}),K(s,`aria-label`,e),u=G(l,1,`theme-toggle-mobile svelte-1keql7b`,null,u,{"is-compact":n()}),K(l,`title`,R(a)),K(l,`aria-label`,R(a))},[()=>Go()]),z(`click`,l,()=>vc.toggle()),V(e,o),k()}Br([`click`]);function Ml(){return typeof window>`u`?`/`:window.GOMODEL_BASE_PATH||`/`}function Nl(e){let t=Ml();return!e||e.charAt(0)!==`/`||e.indexOf(`//`)===0||t===`/`||e===t||e.indexOf(t+`/`)===0?e:t+e}function Pl(e){let t=Ml();return t===`/`||!e?e:e===t?`/`:e.indexOf(t+`/`)===0?e.slice(t.length)||`/`:e}function Fl(){return typeof window>`u`?``:window.GOMODEL_VERSION||``}function Il(){return typeof window>`u`?!1:window.GOMODEL_DEMO_MODE===!0}var Ll=[`overview`,`usage`,`budgets`,`rate-limits`,`models`,`workflows`,`audit-logs`,`guardrails`,`mcp-servers`,`providers-config`,`auth-keys`,`settings`];function Rl(e){return e.startsWith(`/admin/static/`)?`/`+e.slice(14).replace(/^\/+/,``):e}function zl(e){let t=Rl(Pl(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=Ll.includes(n)?n:`overview`,{page:n,sub:r})}var Bl=new class{#e=j(`overview`);get page(){return R(this.#e)}set page(e){M(this.#e,e,!0)}#t=j(null);get sub(){return R(this.#t)}set sub(e){M(this.#t,e,!0)}init(){let{page:e,sub:t}=zl(window.location.pathname);this.page=e,this.sub=t,window.addEventListener(`popstate`,()=>{let{page:e,sub:t}=zl(window.location.pathname);this.page=e,this.sub=t})}navigate(e,t=null){let n=t?`/`+t:``;history.pushState(null,``,Nl(`/admin/dashboard/`+e+n)),this.page=e,this.sub=t}},Vl=`X-GoModel-Auth-Login`,Hl=`X-GoModel-Auth-Logout`,Ul=`X-GoModel-Auth-User`;function Wl(e){let t=String(e||``).trim();return!t.startsWith(`/`)||t.startsWith(`//`)||t.includes(`\\`)?``:t}function Gl(e,t=globalThis.location){let n=Wl(e),r=Wl(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 Kl(e){let t=e?.headers;if(!t||typeof t.has!=`function`)return null;let n={};return t.has(Vl)&&(n.loginURL=Wl(t.get(Vl))),t.has(Hl)&&(n.logoutURL=Wl(t.get(Hl))),t.has(Ul)&&(n.user=String(t.get(Ul)||``).trim().slice(0,256)),n}var ql=`gomodel_api_key`;function Jl(e){let t=String(e||``).trim();if(/^Bearer\s*$/i.test(t))return``;let n=t.match(/^Bearer\s+(.+)$/i);return n?n[1].trim():t}var Y=new class{#e=j(``);get apiKey(){return R(this.#e)}set apiKey(e){M(this.#e,e,!0)}#t=j(!1);get needsAuth(){return R(this.#t)}set needsAuth(e){M(this.#t,e,!0)}#n=j(!1);get authError(){return R(this.#n)}set authError(e){M(this.#n,e,!0)}#r=j(``);get authErrorMessage(){return R(this.#r)}set authErrorMessage(e){M(this.#r,e,!0)}#i=j(!1);get dialogOpen(){return R(this.#i)}set dialogOpen(e){M(this.#i,e,!0)}#a=j(``);get externalLoginURL(){return R(this.#a)}set externalLoginURL(e){M(this.#a,e,!0)}#o=j(``);get externalLogoutURL(){return R(this.#o)}set externalLogoutURL(e){M(this.#o,e,!0)}#s=j(``);get externalUser(){return R(this.#s)}set externalUser(e){M(this.#s,e,!0)}#c=j(0);get generation(){return R(this.#c)}set generation(e){M(this.#c,e,!0)}#l=j(0);get refreshTick(){return R(this.#l)}set refreshTick(e){M(this.#l,e,!0)}init(){try{this.apiKey=Jl(localStorage.getItem(ql)||``)}catch{this.apiKey=``}}hasApiKey(){return Jl(this.apiKey)!==``}save(){this.apiKey=Jl(this.apiKey);try{localStorage.setItem(ql,this.apiKey)}catch{}}selectExternalAuthentication(){this.apiKey=``;try{localStorage.removeItem(ql)}catch{}this.generation++,this.authError=!1,this.authErrorMessage=``,this.needsAuth=!0}openDialog(){this.dialogOpen=!0}closeDialog(){this.dialogOpen=!1}submit(){let e=Jl(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=Kl(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=au(`en-CA`,{timeZone:ou(t)?t:tu,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 Xl(e)}dateToDateKey(e){return Zl(e)}addDaysToDateKey(e,t){return Ql(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=ou(e)?e:tu;try{let e=au(`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=[]}[tu,this.detectedTimezone,this.override].forEach(e=>{e&&t.indexOf(e)===-1&&ou(e)&&t.push(e)}),t=t.filter(e=>ou(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=qa();if(e)if(this.override&&ou(this.override))try{e.setItem(nu,this.override)}catch{}else{try{e.removeItem(nu)}catch{}this.override=``}this.optionsLoaded=!1,this.ensureOptions()}clearOverride(){let e=qa();if(e)try{e.removeItem(nu)}catch{}this.override=``}calendarTimeZoneText(){let e=this.override?`manual override`:`auto-detected`;return`Activity grouped by `+this.effectiveTimeZoneLabel()+` (`+e+`)`}};function uu(e,t){let n=e&&typeof e==`object`&&e.error&&e.error.message;return(typeof n==`string`?n.trim():``)||t}function du(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 fu(){let e={"Content-Type":`application/json`},t=Jl(Y.apiKey);return t&&(e.Authorization=`Bearer `+t),e[`X-GoModel-Timezone`]=lu.effectiveTimezone(),e}function pu(e,t={}){return fetch(Nl(e),{...t,headers:{...fu(),...t.headers||{}}})}async function mu(e,t,{label:n=e,parse:r=!0}={}){let i=Y.generation,a=await pu(e,t),o=ie.trim()).filter(Boolean);return e.length>0?e:yu}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 hu(`/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 vu)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)}}},xu=[{page:`overview`,label:uo,icon:Jc},{page:`providers-config`,label:po,icon:ul},{page:`models`,label:ho,icon:Ec},{page:`audit-logs`,label:_o,icon:Gc},{page:`usage`,label:yo,icon:jc},{page:`budgets`,label:xo,icon:Tl,visible:()=>bu.budgetsVisible()},{page:`rate-limits`,label:Co,icon:Wc,visible:()=>bu.rateLimitsVisible()},{page:`auth-keys`,label:To,icon:qc},{page:`workflows`,label:Do,icon:Dl},{page:`guardrails`,label:ko,icon:ml,visible:()=>bu.guardrailsVisible()},{page:`mcp-servers`,label:jo,icon:rl,visible:()=>bu.mcpVisible()},{page:`settings`,label:No,icon:pl}],Su=B(` `),Cu=B(`
        `),wu=B(``),Tu=B(`
        `),Eu=B(` `,1);function Du(e,t){O(t,!0);let n=A(()=>xu.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=yc.width,o=!1,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`sidebar-resizing`))}function c(e){e.pointerId===R(r)&&(!o&&Math.abs(e.clientX-i)<=4||(o=!0,yc.setWidth(_c(a,i,e.clientX))))}function l(e){R(r)===null||e.pointerId!==void 0&&e.pointerId!==R(r)||(M(r,null),document.body.classList.remove(`sidebar-resizing`),yc.setWidth(yc.width,!0))}function u(){if(o){o=!1;return}yc.toggle()}function d(e){let t;if(e.key===`ArrowLeft`)t=yc.width-12;else if(e.key===`ArrowRight`)t=yc.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(),yc.toggle();return}else return;e.preventDefault(),yc.setWidth(t,!0)}var f=Eu(),p=F(f);let m;var h=P(p),g=P(h);ba(P(g),{}),D(g);var _=I(g,4),v=P(_,!0);D(_),D(h);var y=I(h,2);W(y,21,()=>R(n),e=>e.page,(e,t)=>{var n=Su();let r;var i=P(n);J(i,{get icon(){return R(t).icon},class:`nav-icon`});var a=I(i,2),o=P(a,!0);D(a),D(n),L((e,i,a)=>{K(n,`href`,e),r=G(n,1,`nav-item svelte-1nwtzae`,null,r,{active:Bl.page===R(t).page}),K(n,`title`,i),H(o,a)},[()=>Nl(`/admin/dashboard/`+R(t).page),()=>R(t).label(),()=>R(t).label()]),z(`click`,n,e=>{e.preventDefault(),Bl.navigate(R(t).page)}),V(e,n)}),D(y);var b=I(y,2),x=P(b);hc(x,{get compact(){return yc.collapsed}});var S=I(x,2);jl(S,{get compact(){return yc.collapsed}});var C=I(S,2),w=e=>{var t=wu(),n=P(t),r=e=>{var t=Cu(),n=P(t);J(n,{get icon(){return Cl},class:`api-key-open-icon`});var r=I(n,2),i=P(r,!0);D(r),D(t),L(()=>{K(t,`title`,Y.externalUser),H(i,Y.externalUser)}),V(e,t)};U(n,e=>{Y.externalUser&&e(r)});var i=I(n,2),a=P(i);J(a,{get icon(){return Zc},class:`api-key-open-icon`});var o=I(a,2),s=P(o,!0);D(o),D(i),D(t),L((e,t,n)=>{K(i,`href`,e),K(i,`aria-label`,t),H(s,n)},[()=>Nl(Y.externalLogoutURL),()=>Fo(),()=>Fo()]),V(e,t)};U(C,e=>{Y.externalLogoutURL&&e(w)});var T=I(C,2),E=e=>{var t=Tu(),n=P(t),r=P(n);J(r,{get icon(){return Xc},class:`api-key-open-icon`});var i=I(r,2),a=P(i,!0);D(i),D(n),D(t),L((e,t)=>{K(n,`aria-label`,e),H(a,t)},[()=>Y.needsAuth?Lo():zo(),()=>Y.needsAuth?Lo():zo()]),z(`click`,n,()=>Y.openDialog()),V(e,t)},ee=A(()=>Y.needsAuth||Y.hasApiKey());U(T,e=>{R(ee)&&e(E)}),D(b),D(p);var te=I(p,2);L((e,t,n)=>{m=G(p,1,`sidebar svelte-1nwtzae`,null,m,{"sidebar-collapsed":yc.collapsed,"sidebar-resizing":R(r)!==null}),H(v,e),K(te,`title`,t),K(te,`aria-label`,n),K(te,`aria-valuemin`,60),K(te,`aria-valuemax`,240),K(te,`aria-valuenow`,yc.width)},[()=>co(),()=>Uo(),()=>Vo()]),z(`pointerdown`,te,s),z(`pointermove`,te,c),z(`pointerup`,te,l),zr(`pointercancel`,te,l),zr(`lostpointercapture`,te,l),z(`keydown`,te,d),z(`click`,te,u),V(e,f),k()}Br([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var Ou=B(``);function ku(e,t){O(t,!0);let n=q(t,`label`,3,`Close`),r=q(t,`class`,3,``),i=q(t,`iconClass`,3,`table-icon-svg`),a=q(t,`disabled`,3,!1),o=q(t,`el`,15,null);var s=Ou();J(P(s),{get icon(){return Ol},get class(){return i()}}),D(s),ma(s,e=>o(e),()=>o()),L(()=>{G(s,1,Ni([`dialog-close-btn`,r()]),`svelte-11l1bb5`),K(s,`aria-label`,n()),s.disabled=a()}),z(`click`,s,function(...e){t.onclick?.apply(this,e)}),V(e,s),k()}Br([`click`]);function Au(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 ju(e=`[data-modal-autofocus]`){return t=>{let n=t.querySelector(e);n&&typeof n.focus==`function`&&n.focus()}}var Mu=B(`
        `,1);function Nu(e,t){O(t,!0);let n=q(t,`open`,3,!1),r=q(t,`variant`,3,`editor`),i=q(t,`closeOnBackdrop`,3,!0),a=A(()=>r()===`auth`?`auth-dialog-backdrop`:`editor-modal-backdrop`),o=A(()=>r()===`auth`?`auth-dialog-shell`:`editor-modal-shell`);On(()=>{if(!n())return;let e=wr(()=>bc.opened()),r=n=>{n.key===`Escape`&&bc.isTop(e)&&t.onclose?.()};return window.addEventListener(`keydown`,r),()=>{bc.closed(e),window.removeEventListener(`keydown`,r)}});function s(e){i()&&e.target===e.currentTarget&&t.onclose?.()}var c=Xr(),l=F(c),u=e=>{var n=Mu(),r=F(n),i=I(r,2);mi(P(i),()=>t.children??f),D(i),Ai(i,ju),L(()=>{G(r,1,Ni(R(a)),`svelte-17e0w4c`),G(i,1,Ni(R(o)),`svelte-17e0w4c`)}),z(`click`,i,s),V(e,n)};U(l,e=>{n()&&e(u)}),V(e,c),k()}Br([`click`]);var Pu=B(`
        `,1),Fu=B(``),Iu=B(``);function Lu(e,t){O(t,!0),Nu(e,{get open(){return Y.dialogOpen},variant:`auth`,onclose:()=>Y.closeDialog(),children:(e,t)=>{var n=Iu(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a),D(i);var s=I(i,2);{let e=A(()=>ls());ku(s,{get label(){return R(e)},onclick:()=>Y.closeDialog(),class:`auth-dialog-close`,iconClass:``})}D(r);var c=I(r,2),l=P(c),u=e=>{var t=Pu(),n=F(t),r=P(n);J(r,{get icon(){return qc}});var i=I(r,2),a=P(i,!0);D(i),D(n);var o=I(n,2),s=P(o),c=P(s,!0);D(s),D(o),L((e,t,r)=>{K(n,`href`,e),H(a,t),H(c,r)},[()=>Gl(Nl(Y.externalLoginURL)),()=>ds(),()=>ps()]),z(`click`,n,()=>Y.selectExternalAuthentication()),V(e,t)};U(l,e=>{Y.externalLoginURL&&e(u)});var d=I(l,2),f=P(d);J(f,{get icon(){return Xc},class:`auth-dialog-input-icon`});var p=I(f,2);ea(p),D(d);var m=I(d,2),h=e=>{var t=Fu(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Y.authErrorMessage||ys()]),V(e,t)};U(m,e=>{Y.authError&&e(h)});var g=I(m,2),_=P(g,!0);D(g);var v=I(g,2),y=P(v),b=P(y);J(b,{get icon(){return Mc},class:`auth-dialog-submit-icon`});var x=I(b,2),S=P(x,!0);D(x),D(y),D(v),D(c),D(n),L((e,t,n,r,i)=>{H(o,e),K(p,`placeholder`,t),K(p,`aria-label`,n),H(_,r),H(S,i)},[()=>Y.needsAuth?as():ss(),()=>_s(),()=>hs(),()=>xs(),()=>Y.needsAuth?Cs():Ts()]),zr(`submit`,c,e=>{e.preventDefault(),Y.submit()}),la(p,()=>Y.apiKey,e=>Y.apiKey=e),V(e,n)},$$slots:{default:!0}}),k()}Br([`click`]);function Ru(){return{open:!1,title:``,titleId:`typedConfirmationDialogTitle`,inputId:`typed-confirmation-input`,message:``,requiredText:``,value:``,confirmLabel:`Confirm`,icon:Sl,dialogClass:``,loading:!1,onConfirm:null,onClose:null}}var zu=new class{#e=j(N(Ru()));get state(){return R(this.#e)}set state(e){M(this.#e,e,!0)}#t=j(``);get error(){return R(this.#t)}set error(e){M(this.#t,e,!0)}open(e){this.error=``,this.state={...Ru(),open:!0,...e||{}}}close(){let e=this.state;typeof e.onClose==`function`&&e.onClose(),this.state=Ru(),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}}}},Bu=B(`

        `),Vu=B(``),Hu=B(`

        `);function Uu(e,t){O(t,!0);let n=A(()=>zu.state);Nu(e,{get open(){return R(n).open},variant:`auth`,onclose:()=>zu.close(),children:(e,t)=>{var r=Hu(),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2);{let e=A(()=>Ds());ku(s,{get label(){return R(e)},onclick:()=>zu.close(),class:`auth-dialog-close`,iconClass:``})}D(i);var c=I(i,2),l=P(c),u=e=>{var t=Bu(),r=P(t,!0);D(t),L(()=>H(r,R(n).message)),V(e,t)};U(l,e=>{R(n).message&&e(u)});var d=I(l,2),f=P(d),p=P(f,!0);D(f);var m=I(f,2);ea(m),D(d);var h=I(d,2),g=e=>{var t=Vu(),n=P(t,!0);D(t),L(()=>H(n,zu.error)),V(e,t)};U(h,e=>{zu.error&&e(g)});var _=I(h,2),v=P(_),y=P(v,!0);D(v);var b=I(v,2),x=P(b);J(x,{get icon(){return R(n).icon},class:`form-action-icon`});var S=I(x,2),C=P(S,!0);D(S),D(b),D(_),D(c),D(r),L((e,t,i)=>{G(r,1,`auth-dialog ${R(n).dialogClass??``}`),K(r,`aria-labelledby`,R(n).titleId),K(a,`id`,R(n).titleId),H(o,R(n).title),K(f,`for`,R(n).inputId),H(p,e),K(m,`id`,R(n).inputId),H(y,t),b.disabled=i,H(C,R(n).confirmLabel)},[()=>zu.inputLabel(),()=>no(),()=>R(n).loading||!zu.ready()]),zr(`submit`,c,e=>{e.preventDefault(),zu.submit()}),la(m,()=>zu.state.value,e=>zu.state.value=e),z(`click`,v,()=>zu.close()),V(e,r)},$$slots:{default:!0}}),k()}Br([`click`]);var Wu=e=>e;function Gu(e){let t=e-1;return t*t*t+1}function Ku(e){let t=typeof e==`string`&&e.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);return t?[parseFloat(t[1]),t[2]||`px`]:[e,`px`]}function qu(e,{delay:t=0,duration:n=400,easing:r=Wu}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}function Ju(e,{delay:t=0,duration:n=400,easing:r=Gu,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]=Ku(i),[p,m]=Ku(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 Yu(e,{delay:t=0,duration:n=400,easing:r=Gu,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 Xu(e){return--e*e*(2.70158*e+1.70158)+1}function Zu(e){let t=e-1;return t*t*t+1}var Qu=5e3,$u=8e3,ed=new class{#e=j(N([]));get toasts(){return R(this.#e)}set toasts(e){M(this.#e,e,!0)}#t=0;#n=new Map;success(e){this.#r(`success`,e,Qu)}error(e){this.#r(`error`,e,$u)}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))}},td=B(`
        `),nd=B(`
        `);function rd(e,t){O(t,!0);var n=nd();W(n,21,()=>ed.toasts,e=>e.id,(e,t)=>{var n=td();let r;var i=P(n),a=P(i,!0);D(i);var o=I(i,2);D(n),L(e=>{r=G(n,1,`flash-toast svelte-1i257xg`,null,r,{"flash-toast-success":R(t).kind===`success`,"flash-toast-error":R(t).kind===`error`}),K(n,`role`,R(t).kind===`error`?`alert`:`status`),K(n,`aria-live`,R(t).kind===`error`?`assertive`:`polite`),H(a,R(t).text),K(o,`aria-label`,e)},[()=>ks()]),z(`click`,o,()=>ed.dismiss(R(t).id)),Di(1,n,()=>Ju,()=>({y:-24,duration:360,easing:Xu})),Di(2,n,()=>qu,()=>({duration:150})),V(e,n)}),D(n),V(e,n),k()}Br([`click`]);var id=B(``);function ad(e,t){O(t,!0);var n=Xr(),r=F(n),i=e=>{var t=id(),n=I(P(t),2),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a),D(n);var s=I(n,2);D(t),L((e,n,r,a)=>{K(t,`aria-label`,e),H(i,n),H(o,r),K(s,`aria-label`,a)},[()=>js(),()=>Ns(),()=>Fs(),()=>Ls()]),V(e,t)},a=A(()=>Il());U(r,e=>{R(a)&&e(i)}),V(e,n),k()}function od(e){return String(e||``).split(`,`).map(e=>e.trim()).filter(e=>e)}function sd(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 cd(e){return e==null||e===void 0?`-`:e.toLocaleString()}function ld(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 ud(e){return e==null||e===void 0?`—`:`$`+e.toFixed(2)}function dd(e){return e==null||e===void 0?`—`:e<.01?`$`+e.toFixed(6):`$`+e.toFixed(4)}function fd(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 pd(e,t){let n=t==null||t===``?NaN:Number(t),r=Number.isFinite(n)?cd(n):`-`;return String(e||`Tokens`)+`: `+r}function md(e){return e?typeof e==`string`?e:e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`):``}function hd(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 gd(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 _d(e){return String(e&&e.provider||``).trim()}function vd(e){return String(e&&e.provider_name||``).trim()||_d(e)}function yd(e,t){let n=String(t||``).trim();if(!n)return`-`;let r=vd(e);return!r||n===r||n.startsWith(r+`/`)?n:r+`/`+n}function bd(e){return yd(e,e&&e.model)}function xd(e){return yd(e,e&&e.resolved_model)}function Sd(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=xd(e);if(n&&n!==`-`&&n!==t)return t+` ⮕ `+n}return t}var Cd=`gomodel_date_range`,wd=1;function Td(e){return/^[1-9]\d*$/.test(String(e??``))}function Ed({selectedPreset:e,startKey:t,endKey:n,followsToday:r}){return e&&Td(e)?{v:wd,mode:`preset`,days:String(e)}:e?null:$l(t)&&$l(n)?{v:wd,mode:`custom`,start:t,end:n,follow:r===!0}:null}function Dd(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`?Td(t.days)?{mode:`preset`,days:String(t.days)}:null:t.mode===`custom`&&$l(t.start)&&$l(t.end)&&t.start<=t.end?{mode:`custom`,start:t.start,end:t.end,follow:t.follow===!0}:null}function Od(e,t,n){let r=eu(e,t);return r<1||!$l(n)?{start:e,end:t}:{start:Ql(n,-(r-1)),end:n}}function kd(e){return Hs({count:Number(e)})}function Ad(e,t){return e===t?Ks():eo(new Date(e+`T00:00:00Z`),{day:`numeric`,month:`short`,year:`numeric`,timeZone:`UTC`})}function jd({selectedPreset:e,startKey:t,endKey:n,todayKey:r}){if(e)return kd(e);if($l(t)&&$l(n)){if(t>n)return kd(`30`);let e=Ad(t,r);return t===n?e:Js({start:e,end:Ad(n,r)})}return $l(t)?Xs({start:Ad(t,r)}):kd(`30`)}function Md({selectedPreset:e,startKey:t,endKey:n,followsToday:r,todayKey:i}){if(e)return kd(e);if(!$l(t)||!$l(n)||t>n)return``;let a=eu(t,n);return r||n===i?a===1?Ks():kd(a):Ws({count:a})}function Nd(e){switch(e){case`weekly`:return cc();case`monthly`:return uc();case`yearly`:return fc();default:return oc()}}var Pd=6e4,Fd=new class{#e=j(N(`30`));get days(){return R(this.#e)}set days(e){M(this.#e,e,!0)}#t=j(N(`30`));get selectedPreset(){return R(this.#t)}set selectedPreset(e){M(this.#t,e,!0)}#n=j(null);get customStartDate(){return R(this.#n)}set customStartDate(e){M(this.#n,e,!0)}#r=j(null);get customEndDate(){return R(this.#r)}set customEndDate(e){M(this.#r,e,!0)}#i=j(!1);get followsToday(){return R(this.#i)}set followsToday(e){M(this.#i,e,!0)}#a=j(`daily`);get interval(){return R(this.#a)}set interval(e){M(this.#a,e,!0)}#o=j(0);get syncTick(){return R(this.#o)}set syncTick(e){M(this.#o,e,!0)}init(){this.restore(),this.syncToToday(),typeof setInterval==`function`&&setInterval(()=>this.syncToToday(),Pd)}queryStr(){return this.customStartDate&&this.customEndDate?`start_date=`+md(this.customStartDate)+`&end_date=`+md(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))}},Ld=B(``);function Rd(e,t){O(t,!0);var n=Xr(),r=F(n),i=e=>{var t=Ld(),n=P(t),r=P(n,!0);D(n);var i=I(n,2),a=P(i,!0);D(i),D(t),L((e,t)=>{H(r,e),H(a,t)},[()=>rs(),()=>Lo()]),z(`click`,i,()=>Y.openDialog()),V(e,t)};U(r,e=>{Y.authError&&e(i)}),V(e,n),k()}Br([`click`]);function zd(){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 Bd(){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 Vd=new class{#e=j(N(zd()));get summary(){return R(this.#e)}set summary(e){M(this.#e,e,!0)}#t=j(N([]));get daily(){return R(this.#t)}set daily(e){M(this.#t,e,!0)}#n=j(N(Bd()));get cacheOverview(){return R(this.#n)}set cacheOverview(e){M(this.#n,e,!0)}#r=j(!1);get loading(){return R(this.#r)}set loading(e){M(this.#r,e,!0)}#i=null;#a=null;cacheAnalyticsEnabled(){return bu.cacheVisible()}async fetchUsage(){this.#i&&this.#i.abort();let e=new AbortController;this.#i=e,this.loading=!0;try{let t=Fd.queryStr()+`&interval=`+Fd.interval,[n,r]=await Promise.all([hu(`/admin/usage/summary?`+t,{label:`usage summary`,signal:e.signal}),hu(`/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=zd(),this.daily=[],this.cacheOverview=Bd();return}this.summary=n.data||zd(),this.daily=Array.isArray(r.data)?r.data:[]}catch(e){if(_u(e))return;console.error(`Failed to fetch usage:`,e),this.summary=zd(),this.daily=[]}finally{this.#i===e&&(this.#i=null,this.loading=!1)}}async fetchCacheOverview(e=``){if(await bu.ensureLoaded(),!this.cacheAnalyticsEnabled()){this.cacheOverview=Bd();return}this.#a&&this.#a.abort();let t=new AbortController;this.#a=t;try{let n=await hu(`/admin/cache/overview?`+(Fd.queryStr()+`&interval=`+Fd.interval+e),{label:`cache overview`,signal:t.signal});if(n.stale||t.signal.aborted)return;if(!n.ok){this.cacheOverview=Bd();return}let r=n.data&&typeof n.data==`object`?n.data:Bd();r.summary||=Bd().summary,Array.isArray(r.daily)||(r.daily=[]),this.cacheOverview=r}catch(e){if(_u(e))return;console.error(`Failed to fetch cache overview:`,e),this.cacheOverview=Bd()}finally{this.#a===t&&(this.#a=null)}}};function Hd(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 Ud(e,t,n){let r=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1));return n&&r.getTime()>n.getTime()?e:r}function Wd(e,t){return e.getUTCFullYear()===t.getUTCFullYear()&&e.getUTCMonth()===t.getUTCMonth()}var Gd=B(``),Kd=B(``),qd=B(` `),Jd=B(``),Yd=B(`
        `);function Xd(e,t){O(t,!0);let n=q(t,`offset`,3,0),r=A(()=>Hd(t.calendarMonth,n(),e=>lu.dateToDateKey(e))),i=A(()=>Wd(t.calendarMonth,lu.todayDate())),a=A(()=>eo(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)=>eo(new Date(Date.UTC(2024,0,1+t)),{weekday:`short`,timeZone:`UTC`})),s=e=>lu.dateToDateKey(e.date),c=e=>s(e)>lu.currentDateKey(),l=e=>e.current&&s(e)===lu.currentDateKey();function u(e,t){let n=t===`start`?Fd.rangeStart():Fd.rangeEnd();return e.current&&!!n&&s(e)===lu.dateToDateKey(n)}function d(e){let t=Fd.rangeStart(),n=Fd.rangeEnd();return!e.current||!t||!n?!1:s(e)>=lu.dateToDateKey(t)&&s(e)<=lu.dateToDateKey(n)}var f=Yd(),p=P(f),m=P(p);let h;var g=I(m,2),_=P(g,!0);D(g);var v=I(g,2),y=e=>{V(e,Gd())},b=e=>{var n=Kd();L(e=>{n.disabled=R(i),K(n,`aria-label`,e)},[()=>ic()]),z(`click`,n,function(...e){t.onnext?.apply(this,e)}),V(e,n)};U(v,e=>{n()===-1?e(y):e(b,-1)}),D(p);var x=I(p,2);W(x,21,()=>o,ii,(e,t)=>{var n=qd(),r=P(n,!0);D(n),L(()=>H(r,R(t))),V(e,n)}),D(x);var S=I(x,2);W(S,21,()=>R(r),e=>e.key,(e,n)=>{var r=Jd(),i=P(r,!0);D(r),L((e,t)=>{G(r,1,e,`svelte-g7ga4u`),r.disabled=t,H(i,R(n).day)},[()=>Ni([`dp-day`,{"other-month":!R(n).current,today:l(R(n)),"range-start":u(R(n),`start`),"range-end":u(R(n),`end`),"in-range":d(R(n)),disabled:c(R(n))}]),()=>c(R(n))||!R(n).current]),z(`click`,r,()=>t.onselect?.(R(n))),V(e,r)}),D(S),D(f),L(e=>{h=G(m,1,`dp-nav-btn svelte-g7ga4u`,null,h,{"dp-nav-prev-mobile":n()!==-1}),K(m,`aria-label`,e),H(_,R(a))},[()=>nc()]),z(`click`,m,function(...e){t.onprev?.apply(this,e)}),V(e,f),k()}Br([`click`]);var Zd=B(``),Qd=B(`
        `),$d=Jr(``),ef=Jr(``),tf=B(`
        `),nf=B(`
        `);function rf(e,t){O(t,!0);let n=[`3`,`7`,`14`,`30`,`90`],r=j(!1),i=j(`start`),a=j(N(new Date)),o=j(N({show:!1,x:0,y:0}));function s(){M(r,!R(r)),R(r)&&(Fd.syncToToday(),M(a,lu.startOfMonthDate(Fd.customEndDate||lu.todayDate()),!0),M(i,`start`))}function c(){M(r,!1),M(o,{show:!1,x:0,y:0},!0)}let l=Fd.syncTick;On(()=>{let e=Fd.syncTick;e!==l&&(l=e,t.onchange?.())});function u(e){Fd.selectPreset(e),M(i,`start`),t.onchange?.(),c()}let d=()=>M(a,Ud(R(a),-1),!0),f=()=>M(a,Ud(R(a),1,lu.startOfMonthDate(lu.todayDate())),!0);function p(e){let n=new Date(e.date);if(R(i)===`start`){Fd.selectStart(n),M(i,`end`),t.onchange?.();return}Fd.selectEnd(n),M(i,`start`),t.onchange?.(),c()}var m=nf(),h=P(m),g=I(P(h),2),_=P(g,!0);D(g);var v=I(g,2);let y;D(h);var b=I(h,2),x=e=>{var t=Qd(),r=P(t);W(r,20,()=>n,e=>e,(e,t)=>{var n=Zd();let r;var i=P(n,!0);D(n),L(e=>{r=G(n,1,`preset-btn svelte-ax7ma4`,null,r,{active:Fd.selectedPreset===t}),H(i,e)},[()=>Hs({count:Number(t)})]),z(`click`,n,()=>u(t)),V(e,n)}),D(r);var i=I(r,2);W(i,20,()=>[-1,0],e=>e,(e,t)=>{Xd(e,{get calendarMonth(){return R(a)},get offset(){return t},onprev:d,onnext:f,onselect:p})}),D(i),D(t),z(`mousemove`,i,e=>M(o,{show:!0,x:e.clientX,y:e.clientY},!0)),zr(`mouseleave`,i,()=>M(o,{show:!1,x:0,y:0},!0)),V(e,t)};U(b,e=>{R(r)&&e(x)});var S=I(b,2),C=e=>{var t=tf(),n=P(t),r=e=>{V(e,$d())},a=e=>{V(e,ef())};U(n,e=>{R(i)===`start`?e(r):e(a,-1)});var s=I(n,2),c=P(s,!0);D(s),D(t),L(e=>{Bi(t,`left:${R(o).x??``}px;top:${R(o).y??``}px`),H(c,e)},[()=>R(i)===`end`?ec():Qs()]),V(e,t)};U(S,e=>{R(o).show&&e(C)}),D(m),Ai(m,()=>R(r)?Au(c):void 0),L((e,t)=>{K(h,`title`,e),H(_,t),y=G(v,0,`date-picker-chevron svelte-ax7ma4`,null,y,{open:R(r)})},[()=>Fd.dateRangeSpanLabel(),()=>Fd.dateRangeLabel()]),z(`click`,h,s),V(e,m),k()}Br([`click`,`mousemove`]);function af(e){return e+.5|0}var of=(e,t,n)=>Math.max(Math.min(e,n),t);function sf(e){return of(af(e*2.55),0,255)}function cf(e){return of(af(e*255),0,255)}function lf(e){return of(af(e/2.55)/100,0,1)}function uf(e){return of(af(e*100),0,100)}var df={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},ff=[...`0123456789ABCDEF`],pf=e=>ff[e&15],mf=e=>ff[(e&240)>>4]+ff[e&15],hf=e=>(e&240)>>4==(e&15),gf=e=>hf(e.r)&&hf(e.g)&&hf(e.b)&&hf(e.a);function _f(e){var t=e.length,n;return e[0]===`#`&&(t===4||t===5?n={r:255&df[e[1]]*17,g:255&df[e[2]]*17,b:255&df[e[3]]*17,a:t===5?df[e[4]]*17:255}:(t===7||t===9)&&(n={r:df[e[1]]<<4|df[e[2]],g:df[e[3]]<<4|df[e[4]],b:df[e[5]]<<4|df[e[6]],a:t===9?df[e[7]]<<4|df[e[8]]:255})),n}var vf=(e,t)=>e<255?t(e):``;function yf(e){var t=gf(e)?pf:mf;return e?`#`+t(e.r)+t(e.g)+t(e.b)+vf(e.a,t):void 0}var bf=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function xf(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 Sf(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 Cf(e,t,n){let r=xf(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 wf(e,t,n,r,i){return e===i?(t-n)/r+(t.5?l/(2-i-a):l/(i+a),s=wf(t,n,r,l,i),s=s*60+.5),[s|0,c||0,o]}function Ef(e,t,n,r){return(Array.isArray(t)?e(t[0],t[1],t[2]):e(t,n,r)).map(cf)}function Df(e,t,n){return Ef(xf,e,t,n)}function Of(e,t,n){return Ef(Cf,e,t,n)}function kf(e,t,n){return Ef(Sf,e,t,n)}function Af(e){return(e%360+360)%360}function jf(e){let t=bf.exec(e),n=255,r;if(!t)return;t[5]!==r&&(n=t[6]?sf(+t[5]):cf(+t[5]));let i=Af(+t[2]),a=t[3]/100,o=t[4]/100;return r=t[1]===`hwb`?Of(i,a,o):t[1]===`hsv`?kf(i,a,o):Df(i,a,o),{r:r[0],g:r[1],b:r[2],a:n}}function Mf(e,t){var n=Tf(e);n[0]=Af(n[0]+t),n=Df(n),e.r=n[0],e.g=n[1],e.b=n[2]}function Nf(e){if(!e)return;let t=Tf(e),n=t[0],r=uf(t[1]),i=uf(t[2]);return e.a<255?`hsla(${n}, ${r}%, ${i}%, ${lf(e.a)})`:`hsl(${n}, ${r}%, ${i}%)`}var Pf={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`},Ff={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 If(){let e={},t=Object.keys(Ff),n=Object.keys(Pf),r,i,a,o,s;for(r=0;r>16&255,a>>8&255,a&255]}return e}var Lf;function Rf(e){Lf||(Lf=If(),Lf.transparent=[0,0,0,0]);let t=Lf[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}var zf=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Bf(e){let t=zf.exec(e),n=255,r,i,a;if(t){if(t[7]!==r){let e=+t[7];n=t[8]?sf(e):of(e*255,0,255)}return r=+t[1],i=+t[3],a=+t[5],r=255&(t[2]?sf(r):of(r,0,255)),i=255&(t[4]?sf(i):of(i,0,255)),a=255&(t[6]?sf(a):of(a,0,255)),{r,g:i,b:a,a:n}}}function Vf(e){return e&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${lf(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`)}var Hf=e=>e<=.0031308?e*12.92:e**(1/2.4)*1.055-.055,Uf=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function Wf(e,t,n){let r=Uf(lf(e.r)),i=Uf(lf(e.g)),a=Uf(lf(e.b));return{r:cf(Hf(r+n*(Uf(lf(t.r))-r))),g:cf(Hf(i+n*(Uf(lf(t.g))-i))),b:cf(Hf(a+n*(Uf(lf(t.b))-a))),a:e.a+n*(t.a-e.a)}}function Gf(e,t,n){if(e){let r=Tf(e);r[t]=Math.max(0,Math.min(r[t]+r[t]*n,t===0?360:1)),r=Df(r),e.r=r[0],e.g=r[1],e.b=r[2]}}function Kf(e,t){return e&&Object.assign(t||{},e)}function qf(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=cf(e[3]))):(t=Kf(e,{r:0,g:0,b:0,a:1}),t.a=cf(t.a)),t}function Jf(e){return e.charAt(0)===`r`?Bf(e):jf(e)}var Yf=class e{constructor(t){if(t instanceof e)return t;let n=typeof t,r;n===`object`?r=qf(t):n===`string`&&(r=_f(t)||Rf(t)||Jf(t)),this._rgb=r,this._valid=!!r}get valid(){return this._valid}get rgb(){var e=Kf(this._rgb);return e&&(e.a=lf(e.a)),e}set rgb(e){this._rgb=qf(e)}rgbString(){return this._valid?Vf(this._rgb):void 0}hexString(){return this._valid?yf(this._rgb):void 0}hslString(){return this._valid?Nf(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=Wf(this._rgb,e._rgb,t)),this}clone(){return new e(this.rgb)}alpha(e){return this._rgb.a=cf(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=af(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 Gf(this._rgb,2,e),this}darken(e){return Gf(this._rgb,2,-e),this}saturate(e){return Gf(this._rgb,1,e),this}desaturate(e){return Gf(this._rgb,1,-e),this}rotate(e){return Mf(this._rgb,e),this}};function Xf(){}var Zf=(()=>{let e=0;return()=>e++})();function Qf(e){return e==null}function $f(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 ep(e){return e!==null&&Object.prototype.toString.call(e)===`[object Object]`}function tp(e){return(typeof e==`number`||e instanceof Number)&&isFinite(+e)}function np(e,t){return tp(e)?e:t}function rp(e,t){return e===void 0?t:e}var ip=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100:+e/t,ap=(e,t)=>typeof e==`string`&&e.endsWith(`%`)?parseFloat(e)/100*t:+e;function op(e,t,n){if(e&&typeof e.call==`function`)return e.apply(n,t)}function sp(e,t,n,r){let i,a,o;if($f(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 gp(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 _p(e){let t=gp(e);return e=>{for(let n of t){if(n===``)break;e&&=e[n]}return e}}function vp(e,t){return(hp[t]||(hp[t]=_p(t)))(e)}function yp(e){return e.charAt(0).toUpperCase()+e.slice(1)}var bp=e=>e!==void 0,xp=e=>typeof e==`function`,Sp=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0};function Cp(e){return e.type===`mouseup`||e.type===`click`||e.type===`contextmenu`}var wp=Math.PI,Tp=2*wp,Ep=Tp+wp,Dp=1/0,Op=wp/180,kp=wp/2,Ap=wp/4,jp=wp*2/3,Mp=Math.log10,Np=Math.sign;function Pp(e,t,n){return Math.abs(e-t)e-t).pop(),t}function Lp(e){return typeof e==`symbol`||typeof e==`object`&&!!e&&!(Symbol.toPrimitive in e||`toString`in e||`valueOf`in e)}function Rp(e){return!Lp(e)&&!isNaN(parseFloat(e))&&isFinite(e)}function zp(e,t){let n=Math.round(e);return n-t<=e&&n+t>=e}function Bp(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 Qp(e,t,n){n||=(n=>e[n]1;)a=i+r>>1,n(a)?i=a:r=a;return{lo:i,hi:r}}var $p=(e,t,n,r)=>Qp(e,n,r?r=>{let i=e[r][t];return ie[r][t]Qp(e,n,r=>e[r][t]>=n);function tm(e,t,n){let r=0,i=e.length;for(;rr&&e[i-1]>n;)i--;return r>0||i{let n=`_onData`+yp(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 im(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)&&(nm.forEach(t=>{delete e[t]}),delete e._chartjs)}function am(e){let t=new Set(e);return t.size===e.length?e:Array.from(t)}var om=function(){return typeof window>`u`?function(e){return e()}:window.requestAnimationFrame}();function sm(e,t){let n=[],r=!1;return function(...i){n=i,r||(r=!0,om.call(window,()=>{r=!1,e.apply(t,n)}))}}function cm(e,t){let n;return function(...r){return t?(clearTimeout(n),n=setTimeout(e,t,r)):e.apply(this,r),t}}var lm=e=>e===`start`?`left`:e===`end`?`right`:`center`,um=(e,t,n)=>e===`start`?t:e===`end`?n:(t+n)/2,dm=(e,t,n,r)=>e===(r?`left`:`right`)?n:e===`center`?(t+n)/2:t;function fm(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($p(c,u,d).lo,n?r:$p(t,u,o.getPixelForValue(d)).lo),l){let e=c.slice(0,i+1).reverse().findIndex(e=>!Qf(e[s.axis]));i-=Math.max(0,e)}i=Yp(i,0,r-1)}if(m){let e=Math.max($p(c,o.axis,f,!0).hi+1,n?0:$p(t,u,o.getPixelForValue(f),!0).hi+1);if(l){let t=c.slice(e-1).findIndex(e=>!Qf(e[s.axis]));e+=Math.max(0,t)}a=Yp(e,i,r)-i}else a=r-i}return{start:i,count:a}}function pm(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 mm=e=>e===0||e===1,hm=(e,t,n)=>-(2**(10*--e)*Math.sin((e-t)*Tp/n)),gm=(e,t,n)=>2**(-10*e)*Math.sin((e-t)*Tp/n)+1,_m={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*kp)+1,easeOutSine:e=>Math.sin(e*kp),easeInOutSine:e=>-.5*(Math.cos(wp*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:-(2**(-10*e))+1,easeInOutExpo:e=>mm(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=>mm(e)?e:hm(e,.075,.3),easeOutElastic:e=>mm(e)?e:gm(e,.075,.3),easeInOutElastic(e){let t=.1125,n=.45;return mm(e)?e:e<.5?.5*hm(e*2,t,n):.5+.5*gm(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-_m.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?_m.easeInBounce(e*2)*.5:_m.easeOutBounce(e*2-1)*.5+.5};function vm(e){if(e&&typeof e==`object`){let t=e.toString();return t===`[object CanvasPattern]`||t===`[object CanvasGradient]`}return!1}function ym(e){return vm(e)?e:new Yf(e)}function bm(e){return vm(e)?e:new Yf(e).saturate(.5).darken(.1).hexString()}var xm=[`x`,`y`,`borderWidth`,`radius`,`tension`],Sm=[`color`,`borderColor`,`backgroundColor`];function Cm(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:Sm},numbers:{type:`number`,properties:xm}}),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 wm(e){e.set(`layout`,{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}var Tm=new Map;function Em(e,t){t||={};let n=e+JSON.stringify(t),r=Tm.get(n);return r||(r=new Intl.NumberFormat(e,t),Tm.set(n,r)),r}function Dm(e,t,n){return Em(t,n).format(e)}var Om={values(e){return $f(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=km(e,n)}let o=Mp(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),Dm(e,r,c)},logarithmic(e,t,n){if(e===0)return`0`;let r=n[t].significand||e/10**Math.floor(Mp(e));return[1,2,3,5,10,15].includes(r)||t>.8*n.length?Om.numeric.call(this,e,t,n):``}};function km(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 Am={formatters:Om};function jm(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:Am.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 Mm=Object.create(null),Nm=Object.create(null);function Pm(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)=>bm(t.backgroundColor),this.hoverBorderColor=(e,t)=>bm(t.borderColor),this.hoverColor=(e,t)=>bm(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 Fm(this,e,t)}get(e){return Pm(this,e)}describe(e,t){return Fm(Nm,e,t)}override(e,t){return Fm(Mm,e,t)}route(e,t,n,r){let i=Pm(this,e),a=Pm(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 ep(e)?Object.assign({},t,e):rp(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}},[Cm,wm,jm]);function Lm(e){return!e||Qf(e.size)||Qf(e.family)?null:(e.style?e.style+` `:``)+(e.weight?e.weight+` `:``)+e.size+`px `+e.family}function Rm(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 zm(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 Wm(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,Ym(e,a),c=0;c+e||0;function ih(e,t){let n={},r=ep(t),i=r?Object.keys(t):t,a=ep(e)?r?n=>rp(e[n],e[t[n]]):t=>e[t]:()=>e;for(let e of i)n[e]=rh(a(e));return n}function ah(e){return ih(e,{top:`y`,right:`x`,bottom:`y`,left:`x`})}function oh(e){return ih(e,[`topLeft`,`topRight`,`bottomLeft`,`bottomRight`])}function sh(e){let t=ah(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function ch(e,t){e||={},t||=Im.font;let n=rp(e.size,t.size);typeof n==`string`&&(n=parseInt(n,10));let r=rp(e.style,t.style);r&&!(``+r).match(th)&&(console.warn(`Invalid font style specified: "`+r+`"`),r=void 0);let i={family:rp(e.family,t.family),lineHeight:nh(rp(e.lineHeight,t.lineHeight),n),size:n,style:r,weight:rp(e.weight,t.weight),string:``};return i.string=Lm(i),i}function lh(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 dh(e,t){return Object.assign(Object.create(e),t)}function fh(e,t=[``],n,r,i=()=>e[0]){let a=n||e;return r===void 0&&(r=Oh(`_fallback`,e)),new Proxy({[Symbol.toStringTag]:`Object`,_cacheable:!0,_scopes:e,_rootScopes:a,_fallback:r,_getTarget:i,override:n=>fh([n,...e],t,a,r)},{deleteProperty(t,n){return delete t[n],delete t._keys,delete e[0][n],!0},get(n,r){return _h(n,r,()=>Dh(r,t,e,n))},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(e._scopes[0],t)},getPrototypeOf(){return Reflect.getPrototypeOf(e[0])},has(e,t){return kh(e).includes(t)},ownKeys(e){return kh(e)},set(e,t,n){let r=e._storage||=i();return e[t]=r[t]=n,delete e._keys,!0}})}function ph(e,t,n,r){let i={_cacheable:!1,_proxy:e,_context:t,_subProxy:n,_stack:new Set,_descriptors:mh(e,r),setContext:t=>ph(e,t,n,r),override:i=>ph(e.override(i),t,n,r)};return new Proxy(i,{deleteProperty(t,n){return delete t[n],delete e[n],!0},get(e,t,n){return _h(e,t,()=>vh(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 mh(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:xp(n)?n:()=>n,isIndexable:xp(r)?r:()=>r}}var hh=(e,t)=>e?e+yp(t):t,gh=(e,t)=>ep(t)&&e!==`adapters`&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function _h(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)||t===`constructor`)return e[t];let r=n();return e[t]=r,r}function vh(e,t,n){let{_proxy:r,_context:i,_subProxy:a,_descriptors:o}=e,s=r[t];return xp(s)&&o.isScriptable(t)&&(s=yh(t,s,e,n)),$f(s)&&s.length&&(s=bh(t,s,e,o.isIndexable)),gh(t,s)&&(s=ph(s,i,a&&a[t],o)),s}function yh(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),gh(e,c)&&(c=wh(i._scopes,i,e,c)),c}function bh(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(ep(t[0])){let n=t,r=i._scopes.filter(e=>e!==n);t=[];for(let c of n){let n=wh(r,i,e,c);t.push(ph(n,a,o&&o[e],s))}}return t}function xh(e,t,n){return xp(e)?e(t,n):e}var Sh=(e,t)=>e===!0?t:typeof e==`string`?vp(t,e):void 0;function Ch(e,t,n,r,i){for(let a of t){let t=Sh(n,a);if(t){e.add(t);let a=xh(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 wh(e,t,n,r){let i=t._rootScopes,a=xh(t._fallback,n,r),o=[...e,...i],s=new Set;s.add(r);let c=Th(s,o,n,a||n,r);return c===null||a!==void 0&&a!==n&&(c=Th(s,o,a,c,r),c===null)?!1:fh(Array.from(s),[``],i,a,()=>Eh(t,n,r))}function Th(e,t,n,r,i){for(;n;)n=Ch(e,t,n,r,i);return n}function Eh(e,t,n){let r=e._getTarget();t in r||(r[t]={});let i=r[t];return $f(i)&&ep(n)?n:i||{}}function Dh(e,t,n,r){let i;for(let a of t)if(i=Oh(hh(a,e),n),i!==void 0)return gh(e,i)?wh(n,r,e,i):i}function Oh(e,t){for(let n of t){if(!n)continue;let t=n[e];if(t!==void 0)return t}}function kh(e){let t=e._keys;return t||=e._keys=Ah(e._scopes),t}function Ah(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 jh(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 Fh(e,t,n,r){let i=e.skip?t:e,a=t,o=n.skip?t:n,s=Gp(a,i),c=Gp(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 Ih(e,t,n){let r=e.length,i,a,o,s,c,l=Nh(e,0);for(let u=0;u!e.skip)),t.cubicInterpolationMode===`monotone`)Rh(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 Kh(e,t){return Gh(e).getPropertyValue(t)}var qh=[`top`,`right`,`bottom`,`left`];function Jh(e,t,n){let r={};n=n?`-`+n:``;for(let i=0;i<4;i++){let a=qh[i];r[a]=parseFloat(e[t+`-`+a+n])||0}return r.width=r.left+r.right,r.height=r.top+r.bottom,r}var Yh=(e,t,n)=>(e>0||t>0)&&(!n||!n.shadowRoot);function Xh(e,t){let n=e.touches,r=n&&n.length?n[0]:e,{offsetX:i,offsetY:a}=r,o=!1,s,c;if(Yh(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 Zh(e,t){if(`native`in e)return e;let{canvas:n,currentDevicePixelRatio:r}=t,i=Gh(n),a=i.boxSizing===`border-box`,o=Jh(i,`padding`),s=Jh(i,`border`,`width`),{x:c,y:l,box:u}=Xh(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 Qh(e,t,n){let r,i;if(t===void 0||n===void 0){let a=e&&Uh(e);if(!a)t=e.clientWidth,n=e.clientHeight;else{let e=a.getBoundingClientRect(),o=Gh(a),s=Jh(o,`border`,`width`),c=Jh(o,`padding`);t=e.width-c.width-s.width,n=e.height-c.height-s.height,r=Wh(o.maxWidth,a,`clientWidth`),i=Wh(o.maxHeight,a,`clientHeight`)}}return{width:t,height:n,maxWidth:r||Dp,maxHeight:i||Dp}}var $h=e=>Math.round(e*10)/10;function eg(e,t,n,r){let i=Gh(e),a=Jh(i,`margin`),o=Wh(i.maxWidth,e,`clientWidth`)||Dp,s=Wh(i.maxHeight,e,`clientHeight`)||Dp,c=Qh(e,t,n),{width:l,height:u}=c;if(i.boxSizing===`content-box`){let e=Jh(i,`border`,`width`),t=Jh(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=$h(Math.min(l,o,c.maxWidth)),u=$h(Math.min(u,s,c.maxHeight)),l&&!u&&(u=$h(l/2)),(t!==void 0||n!==void 0)&&r&&c.height&&u>c.height&&(u=c.height,l=$h(Math.floor(u*r))),{width:l,height:u}}function tg(e,t,n){let r=t||1,i=$h(e.height*r),a=$h(e.width*r);e.height=$h(e.height),e.width=$h(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 ng=function(){let e=!1;try{let t={get passive(){return e=!0,!1}};Hh()&&(window.addEventListener(`test`,null,t),window.removeEventListener(`test`,null,t))}catch{}return e}();function rg(e,t){let n=Kh(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?+r[1]:void 0}function ig(e,t,n,r){return{x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}}function ag(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 og(e,t,n,r){let i={x:e.cp2x,y:e.cp2y},a={x:t.cp1x,y:t.cp1y},o=ig(e,i,n),s=ig(i,a,n),c=ig(a,t,n);return ig(ig(o,s,n),ig(s,c,n),n)}var sg=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}}},cg=function(){return{x(e){return e},setWidth(e){},textAlign(e){return e},xPlus(e,t){return e+t},leftForLtr(e,t){return e}}};function lg(e,t,n){return e?sg(t,n):cg()}function ug(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 dg(e,t){t!==void 0&&(delete e.prevTextDirection,e.canvas.style.setProperty(`direction`,t[0],t[1]))}function fg(e){return e===`angle`?{between:Jp,compare:Kp,normalize:qp}:{between:Zp,compare:(e,t)=>e-t,normalize:e=>e}}function pg({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 mg(e,t,n){let{property:r,start:i,end:a}=n,{between:o,normalize:s}=fg(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(pg({start:g,end:e,loop:f,count:o,style:p})),g=null),n=e,y=_));return g!==null&&m.push(pg({start:g,end:d,loop:f,count:o,style:p})),m}function gg(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 vg(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 yg(e,t){let n=e.points,r=e.options.spanGaps,i=n.length;if(!i)return[];let a=!!e._loop,{start:o,end:s}=_g(n,i,a,r);return r===!0?bg(e,[{start:o,end:s,loop:a}],n,t):bg(e,vg(n,o,sr({chart:e,initial:t.initial,numSteps:a,currentStep:Math.min(n-t.start,a)}))}_refresh(){this._request||=(this._running=!0,om.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)}},Og=`transparent`,kg={boolean(e,t,n){return n>.5?t:e},color(e,t,n){let r=ym(e||Og),i=r.valid&&ym(t||Og);return i&&i.valid?i.mix(r,n).hexString():t},number(e,t,n){return e+(t-e)*n}},Ag=class{constructor(e,t,n,r){let i=t[n];r=lh([e.to,r,i,e.from]);let a=lh([e.from,i,r]);this._active=!0,this._fn=e.fn||kg[e.type||typeof a],this._easing=_m[e.easing]||_m.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=lh([e.to,t,r,e.from]),this._from=lh([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(!ep(i))return;let a={};for(let e of t)a[e]=i[e];($f(i.properties)&&i.properties||[r]).forEach(e=>{(e===r||!n.has(e))&&n.set(e,a)})})}_animateOptions(e,t){let n=t.options,r=Ng(e,n);if(!r)return[];let i=this._createAnimations(r,n);return n.$shared&&Mg(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 Ag(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 Dg.add(this._chart,n),!0}};function Mg(e,t){let n=[],r=Object.keys(t);for(let t=0;t0||!n&&t<0)return i.index}return null}function Gg(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=Vg(a,o,r),d=t.length,f;for(let e=0;en[e].axis===t).shift()}function qg(e,t){return dh(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:`default`,type:`dataset`})}function Jg(e,t,n){return dh(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:n,index:t,mode:`default`,type:`data`})}function Yg(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 Xg=e=>e===`reset`||e===`none`,Zg=(e,t)=>t?e:Object.assign({},e),Qg=(e,t,n)=>e&&!t.hidden&&t._stacked&&{keys:Lg(n,!0),values:null},$g=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=Bg(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&&Yg(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=rp(n.xAxisID,Kg(e,`x`)),a=t.yAxisID=rp(n.yAxisID,Kg(e,`y`)),o=t.rAxisID=rp(n.rAxisID,Kg(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&&im(this._data,this),e._stacked&&Yg(e)}_dataCheck(){let e=this.getDataset(),t=e.data||=[],n=this._data;if(ep(t)){let e=this._cachedMeta;this._data=zg(t,e)}else if(n!==t){if(n){im(n,this);let e=this._cachedMeta;Yg(e),e._parsed=[]}t&&Object.isExtensible(t)&&rm(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=Bg(t.vScale,t),t.stack!==n.stack&&(r=!0,Yg(t),t.stack=n.stack),this._resyncElements(e),(r||i!==t._stacked)&&(Gg(this,t._parsed),t._stacked=Bg(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=$f(r[e])?this.parseArrayData(n,r,e,t):ep(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(Zg(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 jg(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||Xg(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){Xg(r)?Object.assign(e,n):this._resolveAnimations(t,r).update(e,n)}updateSharedOptions(e,t,n){e&&!Xg(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 t_(e){let t=e.iScale,n=e_(t,e.type),r=t._length,i,a,o,s,c=()=>{o===32767||o===-32768||(bp(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 a_(e,t,n,r){return $f(e)?i_(e,t,n,r):t[n.axis]=n.parse(e,r),t}function o_(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):Np(e)}function l_(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(Qf(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[rp(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;dJp(e,s,c,!0)?1:Math.max(t,t*n,r,r*n),m=(e,t,r)=>Jp(e,s,c,!0)?-1:Math.min(t,t*n,r,r*n),h=p(0,l,d),g=p(kp,u,f),_=m(wp,l,d),v=m(wp+kp,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 v_=class extends $g{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(ep(n[e])){let{key:e=`value`}=this._parsing;i=t=>+vp(n[t],e)}let a,o;for(a=e,o=e+t;a0&&!isNaN(e)?Math.abs(e)/t*Tp:0}getLabelAndValue(e){let t=this._cachedMeta,n=this.chart,r=n.data.labels||[],i=Dm(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=Qf(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()}},b_=class extends $g{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=Dm(t._parsed[e].r,n.options.locale);return{label:r[e]||``,value:i}}parseObjectData(e,t,n,r){return jh.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*wp,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)?Vp(this.resolveDataElementOptions(e,t).angle||n):0}},x_=Object.freeze({__proto__:null,BarController:h_,BubbleController:g_,DoughnutController:v_,LineController:y_,PieController:class extends v_{static id=`pie`;static defaults={cutout:0,rotation:0,circumference:360,radius:`100%`}},PolarAreaController:b_,RadarController:class extends $g{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 jh.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 S_(){throw Error(`This method is not implemented: Check that a complete date adapter is provided.`)}var C_={_date:class e{static override(t){Object.assign(e.prototype,t)}options;constructor(e){this.options=e||{}}init(){}formats(){return S_()}parse(){return S_()}format(){return S_()}add(){return S_()}diff(){return S_()}startOf(){return S_()}endOf(){return S_()}}};function w_(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?em:$p;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=>!Qf(e[t.axis]));r.lo-=Math.max(0,a);let o=n.slice(r.hi).findIndex(e=>!Qf(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 T_(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 M_={evaluateInteractionItems:T_,modes:{index(e,t,n,r){let i=Zh(t,e),a=n.axis||`x`,o=n.includeInvisible||!1,s=n.intersect?D_(e,i,a,r,o):A_(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=Zh(t,e),a=n.axis||`xy`,o=n.includeInvisible||!1,s=n.intersect?D_(e,i,a,r,o):A_(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 F_(e,t){return e.filter(e=>N_.indexOf(e.pos)===-1&&e.box.axis===t)}function I_(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 L_(e){let t=[],n,r,i,a,o,s;for(n=0,r=(e||[]).length;ne.box.fullSize),!0),r=I_(P_(t,`left`),!0),i=I_(P_(t,`right`)),a=I_(P_(t,`top`),!0),o=I_(P_(t,`bottom`)),s=F_(t,`x`),c=F_(t,`y`);return{fullSize:n,leftAndTop:r.concat(a),rightAndBottom:i.concat(c).concat(o).concat(s),chartArea:P_(t,`chartArea`),vertical:r.concat(i).concat(c),horizontal:a.concat(o).concat(s)}}function V_(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function H_(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 U_(e,t,n,r){let{pos:i,box:a}=n,o=e.maxPadding;if(!ep(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&&H_(o,a.getPadding());let s=Math.max(0,t.outerWidth-V_(o,e,`left`,`right`)),c=Math.max(0,t.outerHeight-V_(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 W_(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 G_(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 K_(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);H_(f,sh(r));let p=Object.assign({maxPadding:f,w:a,h:o,x:i.left,y:i.top},i),m=z_(c.concat(l),d);K_(s.fullSize,p,d,m),K_(c,p,d,m),K_(l,p,d,m)&&K_(c,p,d,m),W_(p),J_(s.leftAndTop,p,d,m),p.x+=p.w,p.y+=p.h,J_(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},sp(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})})}},X_=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){}},Z_=class extends X_{acquireContext(e){return e&&e.getContext&&e.getContext(`2d`)||null}updateConfig(e){e.options.animation=!1}},Q_=`$chartjs`,$_={touchstart:`mousedown`,touchmove:`mousemove`,touchend:`mouseup`,pointerenter:`mouseenter`,pointerdown:`mousedown`,pointermove:`mousemove`,pointerup:`mouseup`,pointerleave:`mouseout`,pointerout:`mouseout`},ev=e=>e===null||e===``;function tv(e,t){let n=e.style,r=e.getAttribute(`height`),i=e.getAttribute(`width`);if(e[Q_]={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`,ev(i)){let t=rg(e,`width`);t!==void 0&&(e.width=t)}if(ev(r))if(e.style.height===``)e.height=e.width/(t||2);else{let t=rg(e,`height`);t!==void 0&&(e.height=t)}return e}var nv=ng?{passive:!0}:!1;function rv(e,t,n){e&&e.addEventListener(t,n,nv)}function iv(e,t,n){e&&e.canvas&&e.canvas.removeEventListener(t,n,nv)}function av(e,t){let n=$_[e.type]||e.type,{x:r,y:i}=Zh(e,t);return{type:n,chart:t,native:e,x:r===void 0?null:r,y:i===void 0?null:i}}function ov(e,t){for(let n of e)if(n===t||n.contains(t))return!0}function sv(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=ov(n.addedNodes,r),t&&=!ov(n.removedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}function cv(e,t,n){let r=e.canvas,i=new MutationObserver(e=>{let t=!1;for(let n of e)t||=ov(n.removedNodes,r),t&&=!ov(n.addedNodes,r);t&&n()});return i.observe(document,{childList:!0,subtree:!0}),i}var lv=new Map,uv=0;function dv(){let e=window.devicePixelRatio;e!==uv&&(uv=e,lv.forEach((t,n)=>{n.currentDevicePixelRatio!==e&&t()}))}function fv(e,t){lv.size||window.addEventListener(`resize`,dv),lv.set(e,t)}function pv(e){lv.delete(e),lv.size||window.removeEventListener(`resize`,dv)}function mv(e,t,n){let r=e.canvas,i=r&&Uh(r);if(!i)return;let a=sm((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),fv(e,a),o}function hv(e,t,n){n&&n.disconnect(),t===`resize`&&pv(e)}function gv(e,t,n){let r=e.canvas,i=sm(t=>{e.ctx!==null&&n(av(t,e))},e);return rv(r,t,i),i}var _v=class extends X_{acquireContext(e,t){let n=e&&e.getContext&&e.getContext(`2d`);return n&&n.canvas===e?(tv(e,t),n):null}releaseContext(e){let t=e.canvas;if(!t[Q_])return!1;let n=t[Q_].initial;[`height`,`width`].forEach(e=>{let r=n[e];Qf(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[Q_],!0}addEventListener(e,t,n){this.removeEventListener(e,t);let r=e.$proxies||={};r[t]=({attach:sv,detach:cv,resize:mv}[t]||gv)(e,t,n)}removeEventListener(e,t){let n=e.$proxies||={},r=n[t];r&&(({attach:hv,detach:hv,resize:hv}[t]||iv)(e,t,r),n[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,n,r){return eg(e,t,n,r)}isAttached(e){let t=e&&Uh(e);return!!(t&&t.isConnected)}};function vv(e){return!Hh()||typeof OffscreenCanvas<`u`&&e instanceof OffscreenCanvas?Z_:_v}var yv=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 Rp(this.x)&&Rp(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 bv(e,t){let n=e.options.ticks,r=xv(e),i=Math.min(n.maxTicksLimit||r,r),a=n.major.enabled?Cv(t):[],o=a.length,s=a[0],c=a[o-1],l=[];if(o>i)return wv(t,l,a,o/i),l;let u=Sv(a,t,i);if(o>0){let e,n,r=o>1?Math.round((c-s)/(o-1)):null;for(Tv(t,l,u,Qf(r)?0:s-r,s),e=0,n=o-1;ei)return t}return Math.max(i,1)}function Cv(e){let t=[],n,r;for(n=0,r=e.length;ne===`left`?`right`:e===`right`?`left`:e,Ov=(e,t,n)=>t===`top`||t===`left`?e[t]+n:e[t]-n,kv=(e,t)=>Math.min(t||e,e);function Av(e,t){let n=[],r=e.length/t,i=e.length,a=0;for(;ao+s)))return c}function Mv(e,t){sp(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:np(t,np(n,t)),max:np(n,np(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(){op(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=uh(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=Yp(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-Nv(e.grid)-t.padding-Pv(e.title,this.chart.options.font),c=Math.sqrt(u*u+d*d),a=Hp(Math.min(Math.asin(Yp((l.highest.height+6)/o,-1,1)),Math.asin(Yp(s/c,-1,1))-Math.asin(Yp(d/c,-1,1)))),a=Math.max(r,Math.min(i,a))),this.labelRotation=a}afterCalculateLabelRotation(){op(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){op(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=Pv(r,t.options.font);if(o?(e.width=this.maxWidth,e.height=Nv(i)+a):(e.height=this.maxHeight,e.width=Nv(i)+a),n.display&&this.ticks.length){let{first:t,last:r,widest:i,highest:a}=this._getLabelSizes(),s=n.padding*2,c=Vp(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(){op(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 Xp(this._alignToPixels?Bm(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=Nv(i),d=[],f=o.setContext(this.getContext()),p=f.display?f.width:0,m=p/2,h=function(e){return Bm(n,e,p)},g,_,v,y,b,x,S,C,w,T,E,ee;if(a===`top`)g=h(this.bottom),x=this.bottom-u,C=g-m,T=h(e.top)+m,ee=e.bottom;else if(a===`bottom`)g=h(this.top),T=e.top,ee=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(ep(a)){let e=Object.keys(a)[0],t=a[e];g=h(this.chart.scales[e].getPixelForValue(t))}T=e.top,ee=e.bottom,x=g+m,C=x+u}else if(t===`y`){if(a===`center`)g=h((e.left+e.right)/2);else if(ep(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 te=rp(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:ee,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(-Vp(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(`.`);Im.route(a,i,c,s)})}function Uv(e){return`id`in e&&`defaults`in e}var Wv=new class{constructor(){this.controllers=new Bv($g,`datasets`,!0),this.elements=new Bv(yv,`elements`),this.plugins=new Bv(Object,`plugins`),this.scales=new Bv(zv,`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):sp(t,t=>{let r=n||this._getRegistryForType(t);this._exec(e,r,t)})})}_exec(e,t,n){let r=yp(e);op(n[`before`+r],[],n),t[e](n),op(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 Kv(e){let t={},n=[],r=Object.keys(Wv.plugins.items);for(let e=0;e1&&$v(e[0].toLowerCase());if(t)return t}throw Error(`Cannot determine type of '${e}' axis. Please provide 'axis' or 'position' option.`)}function ny(e,t,n){if(n[t+`AxisID`]===e)return{axis:t}}function ry(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 ny(e,`x`,n[0])||ny(e,`y`,n[0])}return{}}function iy(e,t){let n=Mm[e.type]||{scales:{}},r=t.scales||{},i=Xv(e.type,t),a=Object.create(null);return Object.keys(r).forEach(t=>{let o=r[t];if(!ep(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=ty(t,o,ry(t,e),Im.scales[o.type]),c=Qv(s,i),l=n.scales||{};a[t]=pp(Object.create(null),[{axis:s},o,l[s],l[c]])}),e.data.datasets.forEach(n=>{let i=n.type||e.type,o=n.indexAxis||Xv(i,t),s=(Mm[i]||{}).scales||{};Object.keys(s).forEach(e=>{let t=Zv(e,o),i=n[t+`AxisID`]||t;a[i]=a[i]||Object.create(null),pp(a[i],[{axis:t},r[i],s[e]])})}),Object.keys(a).forEach(e=>{let t=a[e];pp(t,[Im.scales[t.type],Im.scale])}),a}function ay(e){let t=e.options||={};t.plugins=rp(t.plugins,{}),t.scales=iy(e,t)}function oy(e){return e||={},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function sy(e){return e||={},e.data=oy(e.data),ay(e),e}var cy=new Map,ly=new Set;function uy(e,t){let n=cy.get(e);return n||(n=t(),cy.set(e,n),ly.add(n)),n}var dy=(e,t,n)=>{let r=vp(t,n);r!==void 0&&e.add(r)},fy=class{constructor(e){this._config=sy(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=oy(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(),ay(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return uy(e,()=>[[`datasets.${e}`,``]])}datasetAnimationScopeKeys(e,t){return uy(`${e}.transition.${t}`,()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,``]])}datasetElementScopeKeys(e,t){return uy(`${e}-${t}`,()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,``]])}pluginScopeKeys(e){let t=e.id,n=this.type;return uy(`${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=>dy(s,e,t))),t.forEach(e=>dy(s,r,e)),t.forEach(e=>dy(s,Mm[i]||{},e)),t.forEach(e=>dy(s,Im,e)),t.forEach(e=>dy(s,Nm,e))});let c=Array.from(s);return c.length===0&&c.push(Object.create(null)),ly.has(t)&&a.set(t,c),c}chartOptionScopes(){let{options:e,type:t}=this;return[e,Mm[t]||{},Im.datasets[t]||{},{type:t},Im,Nm]}resolveNamedOptions(e,t,n,r=[``]){let i={$shared:!0},{resolver:a,subPrefixes:o}=py(this._resolverCache,e,r),s=a;if(hy(a,t)){i.$shared=!1,n=xp(n)?n():n;let t=this.createResolver(e,n,o);s=ph(a,n,t)}for(let e of t)i[e]=s[e];return i}createResolver(e,t,n=[``],r){let{resolver:i}=py(this._resolverCache,e,n);return ep(t)?ph(i,t,void 0,r):i}};function py(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:fh(t,n),subPrefixes:n.filter(e=>!e.toLowerCase().includes(`hover`))},r.set(i,a)),a}var my=e=>ep(e)&&Object.getOwnPropertyNames(e).some(t=>xp(e[t]));function hy(e,t){let{isScriptable:n,isIndexable:r}=mh(e);for(let i of t){let t=n(i),a=r(i),o=(a||t)&&e[i];if(t&&(xp(o)||my(o))||a&&$f(o))return!0}return!1}var gy=`4.5.1`,_y=[`top`,`bottom`,`left`,`right`,`chartArea`];function vy(e,t){return e===`top`||e===`bottom`||_y.indexOf(e)===-1&&t===`x`}function yy(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function by(e){let t=e.chart,n=t.options.animation;t.notifyPlugins(`afterRender`),op(n&&n.onComplete,[e],t)}function xy(e){let t=e.chart,n=t.options.animation;op(n&&n.onProgress,[e],t)}function Sy(e){return Hh()&&typeof e==`string`?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}var Cy={},wy=e=>{let t=Sy(e);return Object.values(Cy).filter(e=>e.canvas===t).pop()};function Ty(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 Ey(e,t,n,r){return!n||e.type===`mouseout`?null:r?t:e}var Dy=class{static defaults=Im;static instances=Cy;static overrides=Mm;static registry=Wv;static version=gy;static getChart=wy;static register(...e){Wv.add(...e),Oy()}static unregister(...e){Wv.remove(...e),Oy()}constructor(e,t){let n=this.config=new fy(t),r=Sy(e),i=wy(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||(vv(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=Zf(),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 Gv,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=cm(e=>this.update(e),a.resizeDelay||0),this._dataChanges=[],Cy[this.id]=this,!o||!s){console.error(`Failed to create chart: can't acquire context from the given item`);return}Dg.listen(this,`complete`,by),Dg.listen(this,`progress`,xy),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:e,maintainAspectRatio:t},width:n,height:r,_aspectRatio:i}=this;return Qf(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 Wv}_initialize(){return this.notifyPlugins(`beforeInit`),this.options.responsive?this.resize():tg(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins(`afterInit`),this}clear(){return Vm(this.canvas,this.ctx),this}stop(){return Dg.stop(this),this}resize(e,t){Dg.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,tg(this,o,!0)&&(this.notifyPlugins(`resize`,{size:a}),op(n.onResize,[this,a],this),this.attached&&this._doResize(s)&&this.render())}ensureScalesHaveIDs(){sp(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=ty(e,n),i=r===`r`,a=r===`x`;return{options:n,dposition:i?`chartArea`:a?`bottom`:`left`,dtype:i?`radialLinear`:a?`category`:`linear`}}))),sp(i,t=>{let i=t.options,a=i.id,o=ty(a,i),s=rp(i.type,t.dtype);(i.position===void 0||vy(i.position,o)!==vy(t.dposition))&&(i.position=t.dposition),r[a]=!0;let c=null;a in n&&n[a].type===s?c=n[a]:(c=new(Wv.getScale(s))({id:a,type:s,ctx:this.ctx,chart:this}),n[c.id]=c),c.init(i,e)}),sp(r,(e,t)=>{e||delete n[t]}),sp(n,e=>{Y_.configure(this,e,e.options),Y_.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(yy(`z`,`_idx`));let{_active:o,_lastEvent:s}=this;s?this._eventHandler(s,!0):o.length&&this._updateHoverStyles(o,o,!0),this.render()}_updateScales(){sp(this.scales,e=>{Y_.removeBox(this,e)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let e=this.options;(!Sp(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)Ty(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;Y_.update(this,this.width,this.height,e);let t=this.chartArea,n=t.width<=0||t.height<=0;this._layers=[],sp(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=Eg(this,e);this.notifyPlugins(`beforeDatasetDraw`,n)!==!1&&(r&&Gm(t,r),e.controller.draw(),r&&Km(t),n.cancelable=!1,this.notifyPlugins(`afterDatasetDraw`,n))}isPointInArea(e){return Wm(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,n,r){let i=M_.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||=dh(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);bp(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(),Dg.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)};sp(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(){sp(this._listeners,(e,t)=>{this.platform.removeEventListener(this,t,e)}),this._listeners={},sp(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}});cp(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=Cp(e),c=Ey(e,this._lastEvent,n,s);n&&(this._lastEvent=null,op(i.onHover,[e,o,this],this),s&&op(i.onClick,[e,o,this],this));let l=!cp(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 Oy(){return sp(Dy.instances,e=>e._plugins.invalidate())}function ky(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,qp(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,qp(r-n));e.arc(i,a,s+l/2,n-t/2,r+t/2,!0)}else{let t=Math.min(l/2,o*qp(r-n));if(u===`round`)e.arc(i,a,t,n-wp/2,r+wp/2,!0);else if(u===`bevel`){let o=2*t*t,s=-o*Math.cos(n+wp/2)+i,c=-o*Math.sin(n+wp/2)+a,l=o*Math.cos(r+wp/2)+i,u=o*Math.sin(r+wp/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 Ay(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+kp,r-kp),e.closePath(),e.clip()}function jy(e){return ih(e,[`outerStart`,`outerEnd`,`innerStart`,`innerEnd`])}function My(e,t,n,r){let i=jy(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 Yp(e,0,Math.min(a,t))};return{outerStart:s(i.outerStart),outerEnd:s(i.outerEnd),innerStart:Yp(i.innerStart,0,o),innerEnd:Yp(i.innerEnd,0,o)}}function Ny(e,t,n,r){return{x:n+e*Math.cos(t),y:r+e*Math.sin(t)}}function Py(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/wp)/d)/2,g=c+h+p,_=i-h-p,{outerStart:v,outerEnd:y,innerStart:b,innerEnd:x}=My(t,f,d,_-g),S=d-v,C=d-y,w=g+v/S,T=_-y/C,E=f+b,ee=f+x,te=g+b/E,ne=_-x/ee;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=Ny(C,T,o,s);e.arc(t.x,t.y,y,T,_+kp)}let n=Ny(ee,_,o,s);if(e.lineTo(n.x,n.y),x>0){let t=Ny(ee,ne,o,s);e.arc(t.x,t.y,x,_+kp,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=Ny(E,te,o,s);e.arc(t.x,t.y,b,te+Math.PI,g-kp)}let i=Ny(S,g,o,s);if(e.lineTo(i.x,i.y),v>0){let t=Ny(S,w,o,s);e.arc(t.x,t.y,v,g-kp,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 Fy(e,t,n,r,i){let{fullCircles:a,startAngle:o,circumference:s}=t,c=t.endAngle;if(a){Py(e,t,n,r,c,i);for(let t=0;t=wp&&p===0&&u!==`miter`&&ky(e,t,h),a||(Py(e,t,n,r,h,i),e.stroke())}var Ly=class extends yv{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}=Wp(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=rp(l,o-a),f=Jp(r,a,o)&&a!==o,p=d>=Tp||f,m=Zp(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>Tp?Math.floor(n/Tp):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(wp,n||0)));e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor,Fy(e,this,s,i,a),Iy(e,this,s,i,a),e.restore()}};function Ry(e,t,n=t){e.lineCap=rp(n.borderCapStyle,t.borderCapStyle),e.setLineDash(rp(n.borderDash,t.borderDash)),e.lineDashOffset=rp(n.borderDashOffset,t.borderDashOffset),e.lineJoin=rp(n.borderJoinStyle,t.borderJoinStyle),e.lineWidth=rp(n.borderWidth,t.borderWidth),e.strokeStyle=rp(n.borderColor,t.borderColor)}function zy(e,t,n){e.lineTo(n.x,n.y)}function By(e){return e.stepped?qm:e.tension||e.cubicInterpolationMode===`monotone`?Jm:zy}function Vy(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 Wy(e){let t=e.options,n=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!==`monotone`&&!t.stepped&&!n?Uy:Hy}function Gy(e){return e.stepped?ag:e.tension||e.cubicInterpolationMode===`monotone`?og:ig}function Ky(e,t,n,r){let i=t._path;i||(i=t._path=new Path2D,t.path(i,n,r)&&i.closePath()),Ry(e,t.options),e.stroke(i)}function qy(e,t,n,r){let{segments:i,options:a}=t,o=Wy(t);for(let s of i)Ry(e,a,s.style),e.beginPath(),o(e,t,s,{start:n,end:n+r-1})&&e.closePath(),e.stroke()}var Jy=typeof Path2D==`function`;function Yy(e,t,n,r){Jy&&!t.options.segment?Ky(e,t,n,r):qy(e,t,n,r)}var Xy=class extends yv{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;Vh(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||=yg(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=gg(this,{property:t,start:r,end:r});if(!a.length)return;let o=[],s=Gy(n),c,l;for(c=0,l=a.length;ce.replace(`rgb(`,`rgba(`).replace(`)`,`, 0.5)`));function db(e){return lb[e%lb.length]}function fb(e){return ub[e%ub.length]}function pb(e,t){return e.borderColor=db(t),e.backgroundColor=fb(t),++t}function mb(e,t){return e.backgroundColor=e.data.map(()=>db(t++)),t}function hb(e,t){return e.backgroundColor=e.data.map(()=>fb(t++)),t}function gb(e){let t=0;return(n,r)=>{let i=e.getDatasetMeta(r).controller;i instanceof v_?t=mb(n,t):i instanceof b_?t=hb(n,t):i&&(t=pb(n,t))}}function _b(e){let t;for(t in e)if(e[t].borderColor||e[t].backgroundColor)return!0;return!1}function vb(e){return e&&(e.borderColor||e.backgroundColor)}function yb(){return Im.borderColor!==`rgba(0,0,0,0.1)`||Im.backgroundColor!==`rgba(0,0,0,0.1)`}var bb={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=_b(r)||vb(i)||a&&_b(a)||yb();if(!n.forceOverride&&o)return;let s=gb(e);r.forEach(s)}};function xb(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 Sb(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(!Qf(d)&&!Qf(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 Cb(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 wb(e){e.data.datasets.forEach(e=>{Cb(e)})}function Tb(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=Yp($p(t,a.axis,o).lo,0,n-1)),i=l?Yp($p(t,a.axis,s).hi+1,r,n)-r:n-r,{start:r,count:i}}var Eb={id:`decimation`,defaults:{algorithm:`min-max`,enabled:!1},beforeElementsUpdate:(e,t,n)=>{if(!n.enabled){wb(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(lh([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}=Tb(s,c);if(d<=(n.threshold||4*r)){Cb(t);return}Qf(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=xb(c,u,d,r,n);break;case`min-max`:f=Sb(c,u,d,r);break;default:throw Error(`Unsupported decimation algorithm '${n.algorithm}'`)}t._decimated=f})},destroy(e){wb(e)}};function Db(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=Ab(r,s,i);let c=Ob(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=gg(t,c);for(let t of l){let r=Ob(n,a[t.start],a[t.end],t.loop),s=hg(e,i,r);for(let e of s)o.push({source:e,target:t,start:{[n]:jb(c,r,`start`,Math.max)},end:{[n]:jb(c,r,`end`,Math.min)}})}}return o}function Ob(e,t,n,r){if(r)return;let i=t[e],a=n[e];return e===`angle`&&(i=qp(i),a=qp(a)),{property:e,start:i,end:a}}function kb(e,t){let{x:n=null,y:r=null}=e||{},i=t.points,a=[];return t.segments.forEach(({start:e,end:t})=>{t=Ab(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 Ab(e,t,n){for(;t>e;t--){let e=n[t];if(!isNaN(e.x)&&!isNaN(e.y))break}return t}function jb(e,t,n,r){return e&&t?r(e[n],t[n]):e?e[n]:t?t[n]:0}function Mb(e,t){let n=[],r=!1;return $f(e)?(r=!0,n=e):n=kb(e,t),n.length?new Xy({points:n,options:{tension:0},_loop:r,_fullLoop:r}):null}function Nb(e){return e&&e.fill!==!1}function Pb(e,t,n){let r=e[t].fill,i=[t],a;if(!n)return r;for(;r!==!1&&i.indexOf(r)===-1;){if(!tp(r))return r;if(a=e[r],!a)return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function Fb(e,t,n){let r=zb(e);if(ep(r))return!isNaN(r.value)&&r;let i=parseFloat(r);return tp(i)&&Math.floor(i)===i?Ib(r[0],t,i,n):[`origin`,`start`,`end`,`stack`,`shape`].indexOf(r)>=0&&r}function Ib(e,t,n,r){return(e===`-`||e===`+`)&&(n=t+n),n===t||n<0||n>=r?!1:n}function Lb(e,t){let n=null;return e===`start`?n=t.bottom:e===`end`?n=t.top:ep(e)?n=t.getPixelForValue(e.value):t.getBasePixel&&(n=t.getBasePixel()),n}function Rb(e,t,n){let r;return r=e===`start`?n:e===`end`?t.options.reverse?t.min:t.max:ep(e)?e.value:t.getBaseValue(),r}function zb(e){let t=e.options,n=t.fill,r=rp(n&&n.target,n);return r===void 0&&(r=!!t.backgroundColor),r===!1||r===null?!1:r===!0?`origin`:r}function Bb(e){let{scale:t,index:n,line:r}=e,i=[],a=r.segments,o=r.points,s=Vb(t,n);s.push(Mb({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&&Xb(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;Nb(n)&&Xb(e.ctx,n,e.chartArea)}},beforeDatasetDraw(e,t,n){let r=t.meta.$filler;!Nb(r)||n.drawTime!==`beforeDatasetDraw`||Xb(e.ctx,r,e.chartArea)},defaults:{propagate:!0,drawTime:`beforeDatasetDraw`}},ix=(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)}},ax=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index,ox=class extends yv{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=op(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=ch(n.font),i=r.size,a=this._computeTitleHeight(),{boxWidth:o,itemHeight:s}=ix(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}=sx(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=lg(i,this.left,this.width);if(this.isHorizontal()){let i=0,o=um(n,this.left+r,this.right-this.lineWidths[i]);for(let s of t)i!==s.row&&(i=s.row,o=um(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=um(n,this.top+e+r,this.bottom-this.columnSizes[i].height);for(let s of t)s.col!==i&&(i=s.col,o=um(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;Gm(e,this),this._draw(),Km(e)}}_draw(){let{options:e,columnSizes:t,lineWidths:n,ctx:r}=this,{align:i,labels:a}=e,o=Im.color,s=lg(e.rtl,this.left,this.width),c=ch(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}=ix(a,u),g=function(e,t,n){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;r.save();let i=rp(n.lineWidth,1);if(r.fillStyle=rp(n.fillStyle,o),r.lineCap=rp(n.lineCap,`butt`),r.lineDashOffset=rp(n.lineDashOffset,0),r.lineJoin=rp(n.lineJoin,`miter`),r.lineWidth=i,r.strokeStyle=rp(n.strokeStyle,o),r.setLineDash(rp(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;Um(r,o,c,l,a.pointStyleWidth&&p)}else{let a=t+Math.max((u-m)/2,0),o=s.leftForLtr(e,p),c=oh(n.borderRadius);r.beginPath(),Object.values(c).some(e=>e!==0)?$m(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){Qm(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:um(i,this.left+l,this.right-n[0]),y:this.top+l+y,line:0}:{x:this.left+l,y:um(i,this.top+y+l,this.bottom-t[0].height),line:0},ug(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=um(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=um(i,this.top+y+l,this.bottom-t[f.line].height));let w=s.x(S);if(g(w,C,o),S=dm(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+=ux(o,e)+l}else f.y+=b}),dg(this.ctx,e.textDirection)}drawTitle(){let e=this.options,t=e.title,n=ch(t.font),r=sh(t.padding);if(!t.display)return;let i=lg(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=um(e.align,u,this.right-d);else{let t=this.columnSizes.reduce((e,t)=>Math.max(e,t.height),0);l=c+um(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}let f=um(o,u,u+d);a.textAlign=i.textAlign(lm(o)),a.textBaseline=`middle`,a.strokeStyle=t.color,a.fillStyle=t.color,a.font=n.string,Qm(a,t.text,f,l,n)}_computeTitleHeight(){let e=this.options.title,t=ch(e.font),n=sh(e.padding);return e.display?t.lineHeight+n.height:0}_getLegendItemAt(e,t){let n,r,i;if(Zp(e,this.left,this.right)&&Zp(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 lx(e,t,n){let r=e;return typeof t.text!=`string`&&(r=ux(t,n)),r}function ux(e,t){return t*(e.text?e.text.length:0)}function dx(e,t){return!!((e===`mousemove`||e===`mouseout`)&&(t.onHover||t.onLeave)||t.onClick&&(e===`click`||e===`mouseup`))}var fx={id:`legend`,_element:ox,start(e,t,n){let r=e.legend=new ox({ctx:e.ctx,options:n,chart:e});Y_.configure(e,r,n),Y_.addBox(e,r)},stop(e){Y_.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,n){let r=e.legend;Y_.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=sh(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)}}},px=class extends yv{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=$f(n.text)?n.text.length:1;this._padding=sh(n.padding);let i=r*ch(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=um(o,n,i),u=t+e,c=i-n):(a.position===`left`?(l=n+e,u=um(o,r,t),s=wp*-.5):(l=i-e,u=um(o,t,r),s=wp*.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=ch(t.font),r=n.lineHeight/2+this._padding.top,{titleX:i,titleY:a,maxWidth:o,rotation:s}=this._drawArgs(r);Qm(e,t.text,0,0,n,{color:t.color,maxWidth:o,rotation:s,textAlign:lm(t.align),textBaseline:`middle`,translation:[i,a]})}};function mx(e,t){let n=new px({ctx:e.ctx,options:t,chart:e});Y_.configure(e,n,t),Y_.addBox(e,n),e.titleBlock=n}var hx={id:`title`,_element:px,start(e,t,n){mx(e,n)},stop(e){let t=e.titleBlock;Y_.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,n){let r=e.titleBlock;Y_.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}},gx=new WeakMap,_x={id:`subtitle`,start(e,t,n){let r=new px({ctx:e.ctx,options:n,chart:e});Y_.configure(e,r,n),Y_.addBox(e,r),gx.set(e,r)},stop(e){Y_.removeBox(e,gx.get(e)),gx.delete(e)},beforeUpdate(e,t,n){let r=gx.get(e);Y_.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}},vx={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 xx(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 Sx(e,t){let n=e.chart.ctx,{body:r,footer:i,title:a}=e,{boxWidth:o,boxHeight:s}=t,c=ch(t.bodyFont),l=ch(t.titleFont),u=ch(t.footerFont),d=a.length,f=i.length,p=r.length,m=sh(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,sp(e.title,y),n.font=c.string,sp(e.beforeBody.concat(e.afterBody),y),v=t.displayColors?o+2+t.boxPadding:0,sp(r,e=>{sp(e.before,y),sp(e.lines,y),sp(e.after,y)}),v=0,n.font=u.string,sp(e.footer,y),n.restore(),g+=m.width,{width:g,height:h}}function Cx(e,t){let{y:n,height:r}=t;return ne.height-r/2?`bottom`:`center`}function wx(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 Tx(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`),wx(l,e,t,n)&&(l=`center`),l}function Ex(e,t,n){let r=n.yAlign||t.yAlign||Cx(e,n);return{xAlign:n.xAlign||t.xAlign||Tx(e,t,n,r),yAlign:r}}function Dx(e,t){let{x:n,width:r}=e;return t===`right`?n-=r:t===`center`&&(n-=r/2),n}function Ox(e,t,n){let{y:r,height:i}=e;return t===`top`?r+=n:t===`bottom`?r-=i+n:r-=i/2,r}function kx(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}=oh(o),m=Dx(t,s),h=Ox(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:Yp(m,0,r.width-t.width),y:Yp(h,0,r.height-t.height)}}function Ax(e,t,n){let r=sh(n.padding);return t===`center`?e.x+e.width/2:t===`right`?e.x+e.width-r.right:e.x+r.left}function jx(e){return yx([],bx(e))}function Mx(e,t,n){return dh(e,{tooltip:t,tooltipItems:n,type:`tooltip`})}function Nx(e,t){let n=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return n?e.override(n):e}var Px={beforeTitle:Xf,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=Nx(n,e);yx(t.before,bx(Fx(i,`beforeLabel`,this,e))),yx(t.lines,Fx(i,`label`,this,e)),yx(t.after,bx(Fx(i,`afterLabel`,this,e))),r.push(t)}),r}getAfterBody(e,t){return jx(Fx(t.callbacks,`afterBody`,this,e))}getFooter(e,t){let{callbacks:n}=t,r=Fx(n,`beforeFooter`,this,e),i=Fx(n,`footer`,this,e),a=Fx(n,`afterFooter`,this,e),o=[];return o=yx(o,bx(r)),o=yx(o,bx(i)),o=yx(o,bx(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))),sp(o,t=>{let n=Nx(e.callbacks,t);r.push(Fx(n,`labelColor`,this,t)),i.push(Fx(n,`labelPointStyle`,this,t)),a.push(Fx(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=vx[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=Sx(this,n),o=Object.assign({},e,t),s=Ex(this.chart,n,o),c=kx(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}=oh(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=lg(n.rtl,this.x,this.width);for(e.x=Ax(this,n.titleAlign,n),t.textAlign=c.textAlign(n.titleAlign),t.textBaseline=`middle`,a=ch(n.titleFont),o=n.titleSpacing,t.fillStyle=n.titleColor,t.font=a.string,s=0;se!==0)?(e.beginPath(),e.fillStyle=i.multiKeyBackground,$m(e,{x:t,y:p,w:c,h:s,radius:o}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),$m(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=ch(n.bodyFont),d=u.lineHeight,f=0,p=lg(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=Ax(this,h,n),t.fillStyle=n.bodyColor,sp(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=vx[e.position].call(this,this._active,this._eventPosition);if(!n)return;let a=this._size=Sx(this,e),o=Object.assign({},n,this._size),s=Ex(t,e,o),c=kx(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=sh(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),ug(e,t.textDirection),i.y+=a.top,this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),dg(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=!cp(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||!cp(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=vx[i.position].call(this,e,t);return a!==!1&&(n!==a.x||r!==a.y)}},Lx=Object.freeze({__proto__:null,Colors:bb,Decimation:Eb,Filler:rx,Legend:fx,SubTitle:_x,Title:hx,Tooltip:{id:`tooltip`,_element:Ix,positioners:vx,afterInit(e,t,n){n&&(e.tooltip=new Ix({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:Px},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`]}}),Rx=(e,t,n,r)=>(typeof t==`string`?(n=e.push(t)-1,r.unshift({index:n,label:t})):isNaN(t)&&(n=null),n);function zx(e,t,n,r){let i=e.indexOf(t);return i===-1?Rx(e,t,n,r):i===e.lastIndexOf(t)?i:n}var Bx=(e,t)=>e===null?null:Yp(Math.round(e),0,t);function Vx(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 Ux(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=!Qf(a),_=!Qf(o),v=!Qf(c),y=(h-m)/(u+1),b=Fp((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=Fp(w*b/p/f)*f),Qf(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&&zp((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=Pp(w,Math.round(w),b/1e3)?Math.round(w):Math.ceil(w));let T=Math.max(Up(b),Up(S));x=10**(Qf(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&&Pp(n[n.length-1].value,o,Wx(o,y,e))?n[n.length-1].value=o:n.push({value:o}):(!_||C===o)&&n.push({value:C}),n}function Wx(e,t,{horizontal:n,minRotation:r}){let i=Vp(r),a=(n?Math.sin(i):Math.cos(i))||.001,o=.75*t*(``+e).length;return Math.min(t/a,o)}var Gx=class extends zv{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 Qf(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=Np(r),t=Np(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=Ux({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`&&Bp(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 Dm(e,this.chart.options.locale,this.options.ticks.format)}},Kx=class extends Gx{static id=`linear`;static defaults={ticks:{callback:Am.formatters.numeric}};determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=tp(e)?e:0,this.max=tp(t)?t:1,this.handleTickRangeOptions()}computeTickLimit(){let e=this.isHorizontal(),t=e?this.width:this.height,n=Vp(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}},qx=e=>Math.floor(Mp(e)),Jx=(e,t)=>10**(qx(e)+t);function Yx(e){return e/10**qx(e)==1}function Xx(e,t,n){let r=10**n,i=Math.floor(e/r);return Math.ceil(t/r)-i}function Zx(e,t){let n=qx(t-e);for(;Xx(e,t,n)>10;)n++;for(;Xx(e,t,n)<10;)n--;return Math.min(n,qx(e))}function Qx(e,{min:t,max:n}){t=np(e.min,t);let r=[],i=qx(t),a=Zx(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=np(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=np(e.max,f);return r.push({value:p,major:Yx(p),significand:d}),r}var $x=class extends zv{static id=`logarithmic`;static defaults={ticks:{callback:Am.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=Gx.prototype.parse.apply(this,[e,t]);if(n===0){this._zero=!0;return}return tp(n)&&n>0?n:null}determineDataLimits(){let{min:e,max:t}=this.getMinMax(!0);this.min=tp(e)?Math.max(0,e):null,this.max=tp(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!tp(this._userMin)&&(this.min=e===Jx(this.min,0)?Jx(this.min,-1):Jx(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(Jx(n,-1)),a(Jx(r,1)))),n<=0&&i(Jx(r,-1)),r<=0&&a(Jx(n,1)),this.min=n,this.max=r}buildTicks(){let e=this.options,t=Qx({min:this._userMin,max:this._userMax},this);return e.bounds===`ticks`&&Bp(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`:Dm(e,this.chart.options.locale,this.options.ticks.format)}configure(){let e=this.min;super.configure(),this._startValue=Mp(e),this._valueRange=Mp(this.max)-Mp(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(Mp(e)-this._startValue)/this._valueRange)}getValueForPixel(e){let t=this.getDecimalForPixel(e);return 10**(this._startValue+t*this._valueRange)}};function eS(e){let t=e.ticks;if(t.display&&e.display){let e=sh(t.backdropPadding);return rp(t.font&&t.font.size,Im.font.size)+e.height}return 0}function tS(e,t,n){return n=$f(n)?n:[n],{w:zm(e,t.string,n),h:n.length*t.lineHeight}}function nS(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 rS(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?wp/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 aS(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(Hp(qp(c.angle+kp))),u=uS(c.y,s.h,l),d=cS(l),f=lS(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 oS(e,t){if(!t)return!0;let{left:n,top:r,right:i,bottom:a}=e;return!(Wm({x:n,y:r},t)||Wm({x:n,y:a},t)||Wm({x:i,y:r},t)||Wm({x:i,y:a},t))}function sS(e,t,n){let r=[],i=e._pointLabels.length,a=e.options,{centerPointLabels:o,display:s}=a.pointLabels,c={extra:eS(a)/2,additionalAngle:o?wp/i:0},l;for(let a=0;a270||n<90)&&(e-=t),e}function dS(e,t,n){let{left:r,top:i,right:a,bottom:o}=n,{backdropColor:s}=t;if(!Qf(s)){let n=oh(t.borderRadius),c=sh(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(),$m(e,{x:l,y:u,w:d,h:f,radius:n}),e.fill()):e.fillRect(l,u,d,f)}}function fS(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));dS(n,a,t);let o=ch(a.font),{x:s,y:c,textAlign:l}=t;Qm(n,e._pointLabels[i],s,c+o.lineHeight/2,o,{color:a.color,textAlign:l,textBaseline:`middle`})}}function pS(e,t,n,r){let{ctx:i}=e;if(n)i.arc(e.xCenter,e.yCenter,t,0,Tp);else{let n=e.getPointPosition(0,t);i.moveTo(n.x,n.y);for(let a=1;a{let n=op(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?rS(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=Tp/(this._pointLabels.length||1),n=this.options.startAngle||0;return qp(e*t+Vp(n))}getDistanceFromCenterForValue(e){if(Qf(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(Qf(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);mS(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=ch(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=sh(s.backdropPadding);e.fillRect(-a/2-t.left,-i-c.size/2-t.top,a+t.width,c.size+t.height)}Qm(e,r.label,0,-i,c,{color:s.color,strokeColor:s.textStrokeColor,strokeWidth:s.textStrokeWidth})}),e.restore()}drawTitle(){}},_S={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}},vS=Object.keys(_S);function yS(e,t){return e-t}function bS(e,t){if(Qf(t))return null;let n=e._adapter,{parser:r,round:i,isoWeekday:a}=e._parseOpts,o=t;return typeof r==`function`&&(o=r(o)),tp(o)||(o=typeof r==`string`?n.parse(o,r):n.parse(o)),o===null?null:(i&&(o=i===`week`&&(Rp(a)||a===!0)?n.startOf(o,`isoWeek`,a):n.startOf(o,i)),+o)}function xS(e,t,n,r){let i=vS.length;for(let a=vS.indexOf(e);a=vS.indexOf(n);a--){let n=vS[a];if(_S[n].common&&e._adapter.diff(i,r,n)>=t-1)return n}return vS[n?vS.indexOf(n):0]}function CS(e){for(let t=vS.indexOf(e)+1,n=vS.length;t=t?n[r]:n[i];e[a]=!0}}function TS(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 ES(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=Yp(t,0,a),n=Yp(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||xS(i.minUnit,t,n,this._getLabelCapacity(t)),o=rp(r.ticks.stepSize,1),s=a===`week`&&i.isoWeekday,c=Rp(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 op(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}=$p(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}=$p(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 kS=class extends DS{static id=`timeseries`;static defaults=DS.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=OS(t,this.min),this._tableRange=OS(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(OS(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){let t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end;return OS(this._table,n*this._tableRange+this._minPos,!0)}},AS=[x_,cb,Lx,Object.freeze({__proto__:null,CategoryScale:Hx,LinearScale:Kx,LogarithmicScale:$x,RadialLinearScale:gS,TimeScale:DS,TimeSeriesScale:kS})];Dy.register(...AS);var jS=Dy,MS=B(``);function NS(e,t){O(t,!0);let n=q(t,`class`,3,``),r=q(t,`ariaLabel`,3,``);function i(e){if(vc.tick,typeof t.build!=`function`)return;let n=t.build();if(!n)return;let r=new jS(e.getContext(`2d`),n);return()=>r.destroy()}var a=MS();Ai(a,()=>i),L(()=>{G(a,1,Ni(n())),K(a,`aria-label`,r())}),V(e,a),k()}var PS=B(``),FS=B(`
        `);function IS(e,t){O(t,!0);let n=q(t,`options`,19,()=>[]),r=q(t,`ariaLabel`,3,``),i=q(t,`class`,3,``);var a=FS();W(a,21,n,e=>e.value,(e,n)=>{var r=PS();let i;var a=P(r,!0);D(r),L(()=>{i=G(r,1,`segmented-btn svelte-92fh5i`,null,i,{active:t.value===R(n).value}),K(r,`aria-pressed`,t.value===R(n).value),H(a,R(n).label)}),z(`click`,r,()=>t.onchange?.(R(n).value)),V(e,r)}),D(a),L(()=>{G(a,1,Ni([`segmented-control`,i()]),`svelte-92fh5i`),K(a,`aria-label`,r())}),V(e,a),k()}Br([`click`]);function LS(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function RS(){return{grid:LS(`--chart-grid`),text:LS(`--chart-text`),dayMarker:LS(`--chart-day-marker`),tooltipBg:LS(`--chart-tooltip-bg`),tooltipBorder:LS(`--chart-tooltip-border`),tooltipText:LS(`--chart-tooltip-text`)}}function zS(){return{size:11,family:`'SF Mono', Menlo, Consolas, monospace`}}function BS(e,t){return{backgroundColor:e.tooltipBg,borderColor:e.tooltipBorder,borderWidth:1,titleColor:e.tooltipText,bodyColor:e.tooltipText,callbacks:t}}function VS(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 HS=[`#c2845a`,`#7a9e7e`,`#d4a574`,`#b8a98e`,`#8b9e6b`,`#7d8a97`,`#c47a5a`,`#6b8e6b`,`#a09486`,`#9b7ea4`,`#c49a6c`];function US(){return[...HS]}function WS(e){let t=5381,n=String(e||``);for(let e=0;efd(e)}}var XS={seconds:{apiName:`second`,windowLabel:`Last 60 seconds`,refreshMs:2e3},minutes:{apiName:`minute`,windowLabel:`Last 60 minutes`,refreshMs:5e3},hours:{apiName:`hour`,windowLabel:`Last 24 hours`,refreshMs:2e4},days:{apiName:`day`,windowLabel:`Last 30 days`,refreshMs:6e4}},ZS=[{value:`seconds`,label:`Seconds`},{value:`minutes`,label:`Minutes`},{value:`hours`,label:`Hours`},{value:`days`,label:`Days`}];function QS(){return{input:0,output:0,prompt:0,local:0}}function $S(e){return String(e).padStart(2,`0`)}function eC(e){let t=Number(e);return Number.isFinite(t)&&t>0?t:0}function tC(e,t){if(!Number.isFinite(t))return``;let n=new Date(t);switch(e){case`seconds`:return $S(n.getHours())+`:`+$S(n.getMinutes())+`:`+$S(n.getSeconds());case`minutes`:return $S(n.getHours())+`:`+$S(n.getMinutes());case`hours`:return $S(n.getHours())+`:00`;default:return $S(n.getMonth()+1)+`-`+$S(n.getDate())}}function nC(e,t){let n=[],r=[],i={input:[],output:[],prompt:[],local:[]},a=QS();for(let o of e||[]){let e=Date.parse(o&&o.start),s=eC(o&&o.input_tokens),c=eC(o&&o.output_tokens),l=eC(o&&o.prompt_cached_tokens),u=eC(o&&o.locally_cached_tokens);n.push(tC(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 rC(e){let t=e||QS();return t.input+t.output+t.prompt+t.local>0}function iC(e,t){return fd(Math.max(0,Math.round(e&&e[t]||0)))}function aC(e){return(XS[e]||XS.minutes).windowLabel}function oC(e,t){return`Live token throughput, `+aC(t).toLowerCase()+`. Input `+iC(e,`input`)+`, output `+iC(e,`output`)+`, prompt cached `+iC(e,`prompt`)+`, locally cached `+iC(e,`local`)+` tokens.`}function sC(e,t,n,r){let i=e=>fd(Math.max(0,Math.round(e))),a=n.stamps,o=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderWidth:0,borderRadius:0,categoryPercentage:1,barPercentage:1,stack:`tokens`});return{type:`bar`,plugins:[{id:`liveTokensDayMarks`,afterDatasetsDraw:t=>{if(r===`days`)return;let n=t.getDatasetMeta(0),i=t.chartArea;if(!n||!n.data||!i)return;let o=t.ctx;o.save(),o.font=`10px 'SF Mono', Menlo, Consolas, monospace`;let s=null;for(let t=0;t{if(!e.length)return``;let t=a[e[0].dataIndex];if(!t)return e[0].label;let n=new Date(t);return r===`days`?n.toLocaleDateString():n.toLocaleString()},label:e=>e.dataset.label+`: `+i(e.parsed.y),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),`Total: `+i(t)}})}}}}var cC=900,lC=new class{#e=j(`minutes`);get granularity(){return R(this.#e)}set granularity(e){M(this.#e,e,!0)}#t=j(N([]));get buckets(){return R(this.#t)}set buckets(e){M(this.#t,e,!0)}#n=j(!1);get active(){return R(this.#n)}set active(e){M(this.#n,e,!0)}#r=null;#i=null;#a=null;#o=0;#s=null;#c=!1;start(){this.stop(),this.active=!0,this.fetch(),this.#l(),this.#u()}stop(){this.active=!1,this.#r&&=(clearInterval(this.#r),null),this.#i&&=(clearTimeout(this.#i),null),this.#a&&=(clearTimeout(this.#a),null),this.#o=0,this.#s&&=(this.#s.abort(),null),this.buckets=[]}setGranularity(e){!XS[e]||e===this.granularity||(this.granularity=e,this.buckets=[],this.#l(),this.fetch())}#l(){this.#r&&=(clearInterval(this.#r),null);let e=XS[this.granularity]||XS.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()},cC))}async fetch(){if(!this.active||this.#c)return;this.#c=!0;let e=this.granularity;try{let t=await hu(`/admin/usage/throughput?granularity=`+(XS[e]||XS.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(_u(e))return;console.error(`Failed to fetch token throughput:`,e)}finally{this.#c=!1,this.active&&this.granularity!==e&&this.fetch()}}async#u(){await bu.ensureLoaded(),this.active&&bu.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 pu(`/admin/live/logs?types=usage`,{signal:e.signal});if(!n.ok||!n.body||typeof n.body.getReader!=`function`){t();return}this.#o=0,await KS(n.body.getReader(),e=>this.#f(e)),t()}catch(n){if(_u(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}=JS(this.#o);this.#o=e,this.#a=setTimeout(()=>{this.#a=null,this.#u()},t)}},uC=B(`
        `),dC=B(`
        Waiting for live requests…
        `),fC=B(`

        Live Token Throughput

        `);function pC(e,t){O(t,!0);let n=A(()=>nC(lC.buckets,lC.granularity)),r=A(()=>R(n).totals);function i(){return{input:VS(`var(--token-input)`),output:VS(`var(--token-output)`),prompt:VS(`var(--token-prompt)`),local:VS(`var(--token-local)`)}}let a=[{metric:`input`,label:`Input Tokens`,colorVar:`--token-input`},{metric:`output`,label:`Output Tokens`,colorVar:`--token-output`},{metric:`prompt`,label:`Prompt (Input) Cached`,colorVar:`--token-prompt`},{metric:`local`,label:`Locally Cached`,colorVar:`--token-local`}];var o=fC(),s=P(o),c=P(s),l=I(P(c),2),u=P(l);let d;var f=I(u,2),p=P(f,!0);D(f),D(l),D(c),IS(I(c,2),{ariaLabel:`Live token throughput granularity`,get options(){return ZS},get value(){return lC.granularity},onchange:e=>lC.setGranularity(e)}),D(s);var m=I(s,2);W(m,21,()=>a,e=>e.metric,(e,t)=>{var n=uC(),i=P(n),a=I(i,2),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(n),L(e=>{Bi(i,`background: var(${R(t).colorVar??``})`),H(o,R(t).label),H(c,e)},[()=>iC(R(r),R(t).metric)]),V(e,n)}),D(m);var h=I(m,2),g=P(h);{let e=A(()=>oC(R(r),lC.granularity));NS(g,{get ariaLabel(){return R(e)},build:()=>sC(RS(),i(),R(n),lC.granularity)})}var _=I(g,2),v=e=>{V(e,dC())},y=A(()=>!rC(R(r)));U(_,e=>{R(y)&&e(v)}),D(h),D(o),L(e=>{d=G(u,1,`live-dot`,null,d,{"is-streaming":lC.active}),H(p,e)},[()=>aC(lC.granularity)]),V(e,o),k()}function mC(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 hC(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 gC(e,t,n){let r=Number(e&&e.total_requests||0);return(Number.isFinite(r)?r:0)+hC(t,n)}function _C(e,t,n){let r=hC(t,n);return r<=0?``:cd(gC(e,t,n)-r)+` to providers + `+cd(r)+` from cache`}function vC(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 yC(e,t,n){let r=e=>{let t=Number(e||0);return Number.isFinite(t)&&t>0?t:0},i=e||{},a=r(i.uncached_input_tokens),o=r(i.cached_input_tokens),s=r(i.cache_write_input_tokens),c=t&&t.summary?t.summary:{},l=n?r(c.total_input_tokens):0;return[{key:`uncached`,label:`Regular`,tokens:a+s,colorVar:`--cache-meter-uncached`,note:s>0?`Includes `+cd(s)+` cache-write tokens`:``},{key:`prompt`,label:`Prompt cached`,tokens:o,colorVar:`--cache-meter-prompt`,note:`Provider prompt-cache reads`},{key:`local`,label:`Locally cached`,tokens:l,colorVar:`--cache-meter-local`,note:`Served from GoModel response cache`}]}function bC(e,t,n){return yC(e,t,n).reduce((e,t)=>e+t.tokens,0)}function xC(e,t,n){return bC(e,t,n)>0}function SC(e,t,n){let r=yC(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 CC(e,t,n){return SC(e,t,n).filter(e=>e.tokens>0)}function wC(e){let t=[e.label+`: `+cd(e.tokens)+` input tokens (`+e.pct+`%)`];return e.note&&t.push(e.note),t.join(` -`)}function TC(e){let t=(e||[]).map(e=>e.label+` `+e.pct+`%`);return`Cache breakdown of input tokens — `+(t.length?t.join(`, `):`no data`)}function EC(e){return e.getUTCFullYear()+`-`+String(e.getUTCMonth()+1).padStart(2,`0`)+`-`+String(e.getUTCDate()).padStart(2,`0`)}function DC(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=EC(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 OC(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 kC(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 AC(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 jC(e){return AC(e)?Math.round(kC(e))+`%`:`—`}function MC(e,t,n={}){let r=!!n.cacheEnabled,i=n.resolve||(e=>e),a=(e,t)=>i(`color-mix(in srgb, `+e+` `+t+`%, transparent)`),o=(e,t,n,r)=>Object.assign({label:e,data:t,borderColor:n,backgroundColor:n,fill:!1,tension:.3,borderWidth:2,pointRadius:0,pointHoverRadius:4},r||{}),s=[o(`Input Tokens`,t.inputPaid,i(`var(--token-input)`),{fill:`origin`}),o(`Output Tokens`,t.output,i(`var(--token-output)`),{fill:`-1`}),o(`Prompt (Input) Cached`,t.prompt,i(`var(--token-prompt)`),{fill:`-1`,borderDash:[6,4]})];return r&&s.push(o(`Locally Cached`,t.local,a(`var(--info)`,35),{fill:`-1`,borderDash:[2,3]})),{type:`line`,data:{labels:t.labels,datasets:s},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:BS(e,{label:e=>e.dataset.label+`: `+e.parsed.y.toLocaleString(),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),`Total: `+t.toLocaleString()}})},scales:{x:{stacked:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:zS(),maxRotation:0,autoSkip:!0,maxTicksLimit:10}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:YS(e)}}}}}function NC(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 PC=`gomodel_provider_status_details_expanded`,FC=`gomodel_provider_card_expanded_overrides`,IC=3e3,LC=`https://gomodel.enterpilot.io/docs/providers/`,RC={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 zC(){return{summary:{total:0,healthy:0,degraded:0,unhealthy:0,overall_status:`degraded`},providers:[]}}function BC(e){let t={detailsExpanded:!1,cardOverrides:{}};try{if(e){let n=e.getItem(PC);n===`true`||n===`false`?t.detailsExpanded=n===`true`:e.setItem(PC,`false`);let r=JSON.parse(e.getItem(FC)||`{}`);r&&typeof r==`object`&&!Array.isArray(r)&&(t.cardOverrides=r)}}catch{}return t}function VC(e,t){if(e)try{e.setItem(PC,t?`true`:`false`)}catch{}}function HC(e,t){if(e)try{e.setItem(FC,JSON.stringify(t))}catch{}}function UC(e,t,n){let r=n&&n.name?String(n.name):``;return r&&Object.prototype.hasOwnProperty.call(e,r)?e[r]===!0:t}function WC(e){return`is-`+(String(e&&e.overall_status||`degraded`).trim()||`degraded`)}function GC(e){return`is-`+(String(e||`degraded`).trim()||`degraded`)}function KC(e){let t=e||{};return String(t.healthy||0)+`/`+String(t.total||0)}function qC(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 XC(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 ZC(e,t){let n=XC(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 QC(e,t){let n=XC(e);return n?typeof t==`function`?t(n):String(n):``}function $C(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 ew(e){let t=String(e&&(e.type||e.config&&e.config.type)||``).trim().toLowerCase(),n=t?RC[t]:``;return n?LC+n+`?utm_source=gomodel_dashboard`:``}function tw(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 nw(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 rw(e){let t=e&&e.config&&Array.isArray(e.config.models)?e.config.models.filter(Boolean):[];return t.length===0?`Automatic`:t.join(`, `)}function iw(e){if(!e)return``;let t=[];return e.status_reason&&t.push(String(e.status_reason)),e.last_error&&t.push(`Last error: `+String(e.last_error)),t.join(` - -`)}function aw(e){let t=e&&e.request_health;return t&&typeof t==`object`?t:null}function ow(e){let t=aw(e);return t?String(t.circuit_state||``).trim():``}function sw(e){let t=ow(e);return t?t.charAt(0).toUpperCase()+t.slice(1):``}function cw(e){let t=ow(e);return t===`open`?`is-unhealthy`:t===`half-open`?`is-degraded`:`is-healthy`}function lw(e){let t=aw(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 uw(e){let t=aw(e);return t&&Array.isArray(t.models)?t.models:[]}function dw(e){return e?String(Number(e.errors||0))+`/`+String(Number(e.requests||0))+` failed`:``}function fw(e){let t=e&&e.last_error;return!t||!t.message?``:(t.status_code?`HTTP `+String(t.status_code)+`: `:``)+t.message}function pw(){return{name:``,slug:``,url:``,transport:`http`,description:``,enabled:!0,headers:[],allowed_tools:``,disallowed_tools:``,user_paths:``,tool_timeout_seconds:``}}function mw(){return{server:``,status:``,instructions:``,tools:[],prompts:[],resources:[],templates:[]}}function hw(e){return String(e&&(e.slug||e.name)||``).trim()}function gw(e){return String(e&&e.status||``).trim()||`connecting`}function _w(e){switch(gw(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 vw(e,t){let n=gw(e),r=String(e&&e.last_error||``).trim();return r&&n!==`connected`?r:n===`connected`&&e&&e.connected_at?`Connected since `+(typeof t==`function`?t:String)(e.connected_at):``}function yw(e){return String(e&&e.transport||``)===`stdio`?`local command`:String(e&&e.url||``).trim()||`—`}function bw(e){let t=Number(e&&e.prompt_count||0),n=Number(e&&e.resource_count||0);return t+` prompts · `+n+` resources`}function xw(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 Sw(e){return String(e||``).split(` -`).map(e=>e.trim()).filter(e=>e)}function Cw(e){return!e||typeof e!=`object`||Array.isArray(e)?[]:Object.keys(e).sort().map(t=>({name:t,value:String(e[t]||``)}))}function ww(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 Tw(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 Ew(e){return{name:String(e.name||``).trim(),slug:hw(e),url:String(e.url||``).trim(),transport:e.transport===`sse`?`sse`:`http`,description:String(e.description||``).trim(),enabled:e.enabled!==!1,headers:Cw(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 Dw(e,t,n){let r=String(e.name||``).trim(),i=String(e.slug||xw(r)).trim().toLowerCase(),a=String(e.url||``).trim(),o=e.transport===`sse`?`sse`:`http`;if(!r)return{error:`Name is required.`};if(!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(i))return{error:`Slug must use 1–64 lowercase ASCII letters, numbers, hyphens, or underscores.`};if(t===`create`&&(n||[]).some(e=>hw(e)===i))return{error:`Slug "`+i+`" is already in use.`};if(!a)return{error:`URL is required.`};let s,c=String(e.tool_timeout_seconds||``).trim();if(c!==``){let e=Number(c);if(!Number.isSafeInteger(e)||e<0)return{error:`Tool timeout must be a non-negative whole number of seconds.`};s=e}return{payload:{name:r,slug:i,url:a,transport:o,headers:ww(e.headers),description:String(e.description||``).trim(),enabled:!!e.enabled,allowed_tools:od(e.allowed_tools),disallowed_tools:od(e.disallowed_tools),user_paths:Sw(e.user_paths),tool_timeout_seconds:s}}}function Ow(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 kw(e,t){return String(e&&e.server||``)+`_`+String(t||``)}function Aw(e){let t=e||mw(),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:kw(t,n.name),description:String(n.description||``).trim()});return[{key:`tools`,title:`Tools`,items:(t.tools||[]).map(r(`tool`))},{key:`prompts`,title:`Prompts`,items:(t.prompts||[]).map(r(`prompt`))},{key:`resources`,title:`Resources`,items:(t.resources||[]).map(e=>({key:`resource:`+String(e.uri||``),name:String(e.uri||``),aggregated:``,description:n(e.name,e.description)}))},{key:`templates`,title:`Resource templates`,items:(t.templates||[]).map(e=>({key:`template:`+String(e.uri_template||``),name:String(e.uri_template||``),aggregated:``,description:n(e.name,e.description)}))}].filter(e=>e.items.length>0)}function jw(e){return Aw(e).length===0}function Mw(e){return(e||[]).length}function Nw(e){return(e||[]).filter(e=>gw(e)===`connected`).length}function Pw(e){return(e||[]).filter(e=>e&&e.enabled!==!1&&gw(e)===`degraded`).length}function Fw(e,t){return!!e&&Mw(t)>0}function Iw(e){return String(Nw(e))+`/`+String(Mw(e))}function Lw(e){return Pw(e)>0?`is-degraded`:`is-healthy`}function Rw(e){let t=Pw(e);if(t>0)return String(t)+` server`+(t===1?``:`s`)+` need`+(t===1?`s`:``)+` attention`;let n=Mw(e),r=Nw(e);return n>0&&r===n?`All MCP servers connected`:String(r)+` of `+String(n)+` server`+(n===1?``:`s`)+` connected`}function zw(){return{interval:`day`,buckets:[],summary:{requests:0},provider_latency:[]}}function Bw(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 Vw(e){return Number(e&&e.summary&&e.summary.requests||0)>0}function Hw(e){return(e&&Array.isArray(e.provider_latency)?e.provider_latency:[]).length>0}function Uw(e){let t=e&&e.summary?e.summary.success_rate:null;return t==null?`—`:(Math.round(Number(t)*1e3)/10).toFixed(1)+`%`}function Ww(e,t){return Number(e&&e.summary&&e.summary[t]||0)}function Gw(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 Kw(e){let t=e&&e.summary?e.summary.avg_duration_ms:null;return t==null?`—`:Gw(Number(t))}function qw(e,t){try{let n={};return new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,hourCycle:`h23`}).formatToParts(e).forEach(e=>{n[e.type]=e.value}),{year:n.year,month:n.month,day:n.day,hour:Number(n.hour)}}catch{return{year:String(e.getFullYear()),month:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][e.getMonth()],day:String(e.getDate()),hour:e.getHours()}}}function Jw(e,t,n){let r=new Date(e.start);if(Number.isNaN(r.getTime()))return String(e.start||``);let i=qw(r,n),a=i.month+` `+i.day;return t!==`hour`||i.hour===0?a:String(i.hour).padStart(2,`0`)+`:00`}function Yw(e,t,n,r){let i=new Date(e.start);if(Number.isNaN(i.getTime()))return String(e.start||``);if(t===`hour`)return r(e.start);let a=qw(i,n);return a.month+` `+a.day+`, `+a.year}function Xw(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 Zw(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=>Jw(e,r,i)),c=Xw(a),l=a(`var(--bg-surface)`),u=e=>Number(e)||0,d=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderColor:l,borderWidth:1,borderSkipped:!1,borderRadius:2,maxBarThickness:28}),f=[d(`2xx`,t.map(e=>u(e.status_2xx)),c.ok),d(`4xx`,t.map(e=>u(e.status_4xx)),c.clientError),d(`5xx`,t.map(e=>u(e.status_5xx)),c.serverError)];return t.some(e=>u(e.status_other)>0)&&f.push(d(`Other`,t.map(e=>u(e.status_other)),c.other)),{type:`bar`,data:{labels:s,datasets:f},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:0},interaction:{mode:`index`,intersect:!1},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:BS(e,{title:e=>e.length?Yw(t[e[0].dataIndex],r,i,o):``,label:e=>e.dataset.label+`: `+e.parsed.y.toLocaleString(),footer:e=>{let t=0;return e.forEach(e=>{t+=Number(e.parsed.y)||0}),`Total: `+t.toLocaleString()}})},scales:{x:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:zS(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{stacked:!0,beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:zS(),precision:0,callback:e=>fd(e)}}}}}}function Qw(e=US()){let t={};return function(n){return n in t||(t[n]=e[Object.keys(t).length%e.length]),t[n]}}function $w(e,t,n,r={}){let i=r.interval===`hour`?`hour`:`day`,a=r.zone,o=r.formatTimestamp||(e=>String(e)),s=r.providerColor||Qw();return{type:`line`,data:{labels:t.map(e=>Jw(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:BS(e,{title:e=>e.length?Yw(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+`: `+Gw(e.parsed.y)+(r>0?` (`+r.toLocaleString()+` req)`:``)}})},scales:{x:{grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:zS(),maxRotation:0,autoSkip:!0,maxTicksLimit:12}},y:{beginAtZero:!0,grid:{color:e.grid},border:{display:!1},ticks:{color:e.text,font:zS(),callback:e=>Gw(e)}}}}}}var eT=class{#e=j(N(zC()));get status(){return R(this.#e)}set status(e){M(this.#e,e,!0)}#t=j(!1);get loading(){return R(this.#t)}set loading(e){M(this.#t,e,!0)}#n=j(!1);get loadedOnce(){return R(this.#n)}set loadedOnce(e){M(this.#n,e,!0)}#r=j(!1);get detailsExpanded(){return R(this.#r)}set detailsExpanded(e){M(this.#r,e,!0)}#i=j(N({}));get cardOverrides(){return R(this.#i)}set cardOverrides(e){M(this.#i,e,!0)}#a=null;#o=null;#s=!1;initPreferences(){if(this.#s)return;this.#s=!0;let e=BC(qa());this.detailsExpanded=e.detailsExpanded,this.cardOverrides=e.cardOverrides}cardExpanded(e){return UC(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,HC(qa(),this.cardOverrides)}toggleDetails(){this.detailsExpanded=!this.detailsExpanded,this.cardOverrides={},VC(qa(),this.detailsExpanded),HC(qa(),this.cardOverrides)}detailsToggleLabel(){return this.detailsExpanded?`Show Details`:`Hide Details`}async fetch(){this.initPreferences(),this.#a&&this.#a.abort();let e=new AbortController;this.#a=e,this.loading=!0;try{let t=await hu(`/admin/providers/status`,{label:`provider status`,signal:e.signal});if(t.stale||e.signal.aborted)return;if(!t.ok){this.status=zC(),this.#l();return}let n=t.data&&typeof t.data==`object`?t.data:zC();n.summary||=zC().summary,Array.isArray(n.providers)||(n.providers=[]),this.status=n,this.#c()}catch(e){if(_u(e))return;console.error(`Failed to fetch provider status:`,e),this.status=zC(),this.#l()}finally{this.#a===e&&(this.#a=null,this.loading=!1,this.loadedOnce=!0)}}#c(){this.#l(),YC(this.status.providers)&&(this.#o=setTimeout(()=>{this.#o=null,this.fetch()},IC))}#l(){this.#o&&=(clearTimeout(this.#o),null)}stopPolling(){this.#l()}},tT=class{#e=j(N(zw()));get stats(){return R(this.#e)}set stats(e){M(this.#e,e,!0)}#t=j(!1);get loading(){return R(this.#t)}set loading(e){M(this.#t,e,!0)}#n=0;async fetch(){let e=++this.#n;this.loading=!0;try{let t=await hu(`/admin/audit/stats?`+Fd.queryStr(),{label:`audit stats`});if(t.stale||e!==this.#n)return;if(!t.ok){this.stats=zw();return}this.stats=Bw(t.data)}catch(t){if(console.error(`Failed to fetch audit stats:`,t),e!==this.#n)return;this.stats=zw()}finally{e===this.#n&&(this.loading=!1)}}},nT=class{#e=j(N([]));get servers(){return R(this.#e)}set servers(e){M(this.#e,e,!0)}#t=j(!1);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}async fetch(){if(await bu.ensureLoaded(),!bu.mcpVisible()){this.available=!1,this.servers=[];return}this.loading=!0;try{let e=await hu(`/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}}},rT=class{#e=j(N([]));get data(){return R(this.#e)}set data(e){M(this.#e,e,!0)}#t=j(`tokens`);get mode(){return R(this.#t)}set mode(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=null;async fetch(){this.#r&&this.#r.abort();let e=new AbortController;this.#r=e,this.loading=!0;try{let t=await hu(`/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(_u(e))return;console.error(`Failed to fetch calendar data:`,e),this.data=[]}finally{this.#r===e&&(this.#r=null,this.loading=!1)}}},iT=new eT,aT=new tT,oT=new nT,sT=new rT,cT=(e,t=f,n=f,r=f,i=f)=>{var a=uT(),o=P(a),s=P(o,!0);D(o);var c=I(o,2),l=P(c),u=P(l),d=P(u,!0);D(u),Ve(),D(l);var p=I(l,4),m=P(p),h=P(m,!0);D(m),Ve(),D(p);var g=I(p,4),_=P(g,!0);D(g),D(c),D(a),L((e,n,r,i,a,o)=>{H(s,t()),K(l,`title`,e),H(d,n),K(p,`title`,r),H(h,i),K(g,`title`,a),H(_,o)},[()=>pd(`Input tokens`,n()),()=>fd(n()),()=>pd(`Output tokens`,r()),()=>fd(r()),()=>pd(`Total tokens`,i()),()=>fd(i())]),V(e,a)},lT=(e,t=f,n=f,r=f,i=f,a=f,o=f)=>{var s=pT(),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u);var p=I(u,2),m=e=>{var t=dT(),n=P(t,!0);D(t),L(()=>{K(t,`aria-label`,o().title),K(t,`title`,o().title),H(n,a())}),z(`click`,t,function(...e){o().onclick?.apply(this,e)}),V(e,t)},h=e=>{var t=fT(),n=P(t,!0);D(t),L(()=>H(n,a())),V(e,t)};U(p,e=>{o()?e(m):e(h,-1)}),D(s),L(()=>{G(s,1,`card provider-status-flag ${t()??``} ${n()??``}`,`svelte-6tr9cf`),H(l,r()),H(d,i())}),V(e,s)},uT=B(`
        i + o =
        `),dT=B(``),fT=B(` `),pT=B(`
        `),mT=B(`
        Cache Hits
        `),hT=B(`
        Total Requests
        Estimated Cost
        Prompt Cache Rate
        `);function gT(e,t){O(t,!0);let n=A(()=>Vd.summary),r=A(()=>Vd.cacheOverview),i=A(()=>Vd.cacheAnalyticsEnabled()),a=A(()=>iT.status.summary);function o(){let e=document.getElementById(`provider-status-section`);e&&(e.scrollIntoView({behavior:`smooth`,block:`start`}),e.focus({preventScroll:!0}))}var s=hT(),c=P(s);{let e=A(()=>mC(R(n)));cT(c,()=>`Tokens`,()=>R(n).total_input_tokens,()=>R(n).total_output_tokens,()=>R(e))}var l=I(c,2),u=I(P(l),2),d=P(u,!0);D(u),D(l);var f=I(l,2),p=e=>{var t=mT(),n=I(P(t),2),i=P(n,!0);D(n),D(t),L(e=>H(i,e),[()=>cd(R(r).summary.total_hits)]),V(e,t)};U(f,e=>{R(i)&&e(p)});var m=I(f,2),h=I(P(m),2),g=P(h,!0);D(h),D(m);var _=I(m,2),v=e=>{{let t=A(()=>vC(R(r)));cT(e,()=>`Local Cache`,()=>R(r).summary.total_input_tokens,()=>R(r).summary.total_output_tokens,()=>R(t))}};U(_,e=>{R(i)&&e(v)});var y=I(_,2),b=I(P(y),2),x=P(b);NS(x,{build:()=>NC(kC(R(n)),VS(`var(--token-prompt)`),VS(`var(--bg-surface-hover)`))});var S=I(x,2),C=P(S,!0);D(S),D(b),D(y);var w=I(y,2),T=e=>{{let t=A(()=>WC(R(a))),n=A(()=>KC(R(a))),r=A(()=>JC(R(a))),i=A(()=>qC(R(a))?{title:`View providers overview`,onclick:o}:null);lT(e,()=>`provider-status-overview-card`,()=>R(t),()=>`Provider Status`,()=>R(n),()=>R(r),()=>R(i))}};U(w,e=>{R(a).total>0&&e(T)});var E=I(w,2),ee=e=>{{let t=A(()=>Lw(oT.servers)),n=A(()=>Iw(oT.servers)),r=A(()=>Rw(oT.servers));lT(e,()=>`mcp-servers-flag`,()=>R(t),()=>`MCP Servers`,()=>R(n),()=>R(r),()=>({title:`View MCP servers`,onclick:()=>Bl.navigate(`mcp-servers`)}))}},te=A(()=>Fw(oT.available,oT.servers));U(E,e=>{R(te)&&e(ee)}),D(s),L((e,t,n,r,i)=>{K(u,`title`,e),H(d,t),H(g,n),K(b,`aria-label`,r),H(C,i)},[()=>_C(R(n),R(r),R(i)),()=>cd(gC(R(n),R(r),R(i))),()=>ld(R(n).total_cost),()=>`Prompt cache rate `+jC(R(n)),()=>jC(R(n))]),V(e,s),k()}Br([`click`]);var _T=B(` `),vT=B(`
        `),yT=B(`No usage in the selected period yet`),bT=B(`
        `),xT=B(`

        Tokens

        Share of input tokens over the selected period
        `);function ST(e,t){O(t,!0);let n=A(()=>Vd.cacheAnalyticsEnabled()),r=A(()=>SC(Vd.summary,Vd.cacheOverview,R(n))),i=A(()=>CC(Vd.summary,Vd.cacheOverview,R(n))),a=A(()=>xC(Vd.summary,Vd.cacheOverview,R(n)));var o=xT(),s=I(P(o),2);let c;var l=P(s);W(l,17,()=>R(i),e=>e.key,(e,t)=>{var n=vT(),r=P(n),i=e=>{var n=_T(),r=P(n);D(n),L(()=>H(r,`${R(t).pct??``}%`)),V(e,n)};U(r,e=>{R(t).pct>=8&&e(i)}),D(n),L(e=>{Bi(n,`width: ${R(t).pct??``}%; background: var(${R(t).colorVar??``})`),K(n,`title`,e)},[()=>wC(R(t))]),V(e,n)});var u=I(l,2),d=e=>{V(e,yT())};U(u,e=>{R(a)||e(d)}),D(s);var f=I(s,2);W(f,21,()=>R(r),e=>e.key,(e,t)=>{var n=bT(),r=P(n),i=I(r,2),a=P(i,!0);D(i);var o=I(i,2),s=P(o);D(o);var c=I(o,2),l=P(c,!0);D(c),D(n),L((e,i)=>{K(n,`title`,e),Bi(r,`background: var(${R(t).colorVar??``})`),H(a,R(t).label),H(s,`${R(t).pct??``}%`),H(l,i)},[()=>wC(R(t)),()=>cd(R(t).tokens)]),V(e,n)}),D(f),D(o),L(e=>{c=G(s,1,`cache-meter-bar svelte-1yzecxj`,null,c,{"is-empty":!R(a)}),K(s,`aria-label`,e)},[()=>TC(R(i))]),V(e,o),k()}var CT=B(``);function wT(e,t){let n=q(t,`size`,3,16),r=q(t,`label`,3,`Loading`),i=q(t,`class`,3,``);var a=CT();L(()=>{G(a,1,Ni([`spinner`,i()]),`svelte-b54l9o`),Bi(a,`--spinner-size: ${n()??``}px`),K(a,`aria-label`,r())}),V(e,a)}var TT=Jr(` `),ET=Jr(``);function DT(e,t){let n=q(t,`label`,3,`No data`);var r=ET(),i=I(P(r),9),a=e=>{var t=TT(),r=P(t,!0);D(t),L(()=>H(r,n())),V(e,t)};U(i,e=>{n()&&e(a)}),D(r),L(()=>{K(r,`role`,n()?`img`:void 0),K(r,`aria-label`,n()||void 0),K(r,`aria-hidden`,n()?void 0:`true`)}),V(e,r)}var OT=B(`
        `),kT=B(`

        `);function AT(e,t){O(t,!0);let n=[`daily`,`weekly`,`monthly`,`yearly`];function r(e){Fd.interval=e,t.onintervalchange?.()}function i(){let e=Vd.daily;if(e.length===0)return null;let t=Fd.rangeStart(),n=Fd.rangeEnd(),r=OC(DC(e,Fd.interval,t,n),DC(Array.isArray(Vd.cacheOverview.daily)?Vd.cacheOverview.daily:[],Fd.interval,t,n));return MC(RS(),r,{cacheEnabled:Vd.cacheAnalyticsEnabled(),resolve:VS})}var a=kT(),o=P(a),s=P(o),c=P(s,!0);D(s);var l=I(s,2);{let e=A(()=>n.map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})));IS(l,{ariaLabel:`Usage chart interval`,get options(){return R(e)},get value(){return Fd.interval},onchange:r})}D(o);var u=I(o,2),d=P(u);NS(d,{build:i});var f=I(d,2),p=e=>{var t=OT();wT(P(t),{size:24,label:`Loading usage`}),D(t),V(e,t)},m=e=>{var t=OT();DT(P(t),{}),D(t),V(e,t)};U(f,e=>{Vd.daily.length===0&&Vd.loading?e(p):Vd.daily.length===0&&!Y.authError&&e(m,1)}),D(u),D(a),L(e=>H(c,e),[()=>Fd.chartTitle()]),V(e,a),k()}var jT=10,MT=.7;function NT(e,t){if(e<=0||t<=0)return 0;let n=(e/t)**+MT,r=Math.ceil(n*jT);return r<1?1:r>jT?jT:r}function PT(){let e=[];for(let t=0;t<=jT;t++)e.push(t);return e}function FT(e,t,n){let r={};(e||[]).forEach(e=>{r[e.date]=e});let i=Xl(Ql(n,-364)),a=i.getUTCDay();i.setUTCDate(i.getUTCDate()-a);let o=[];for(let e=new Date(i);Zl(e)<=n;e.setUTCDate(e.getUTCDate()+1)){let n=Zl(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 IT(e){let t=Xl(Ql(e,-364)),n=t.getUTCDay();t.setUTCDate(t.getUTCDate()-n);let r=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],i=[],a={},o=0;for(let n=new Date(t);Zl(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),Zl(i)>e)break;if(i.getUTCDate()===1){t=i;break}}if(!t)continue;let s=t.getUTCFullYear()+`-`+t.getUTCMonth();a[s]||(i.push({label:r[t.getUTCMonth()],col:o,key:s}),a[s]=!0)}for(let e=0;e `),BT=B(`
        `),VT=B(`
        `),HT=B(`
        `),UT=B(`
        `),WT=B(`

        Activity

        Mon Wed Fri
        `,1);function GT(e,t){O(t,!0);let n=j(N({show:!1,x:0,y:0,text:``})),r=A(()=>lu.currentDateKey()),i=A(()=>FT(sT.data,sT.mode,R(r))),a=A(()=>IT(R(r)));function o(e,t){t.empty||M(n,{show:!0,x:e.clientX,y:e.clientY,text:RT(t,sT.mode)},!0)}function s(){M(n,{show:!1,x:0,y:0,text:``},!0)}var c=WT(),l=F(c),u=P(l),d=I(P(u),2),f=e=>{wT(e,{size:14,label:`Loading activity`})};U(d,e=>{sT.loading&&sT.data.length===0&&e(f)}),IS(I(d,2),{ariaLabel:`Activity calendar mode`,options:[{value:`tokens`,label:`Tokens`},{value:`costs`,label:`Costs`}],get value(){return sT.mode},onchange:e=>sT.mode=e}),D(u);var p=I(u,2),m=I(P(p),2),h=P(m);W(h,21,()=>R(a),e=>e.key,(e,t)=>{var n=zT(),r=P(n,!0);D(n),L(()=>{Bi(n,`grid-column: ${R(t).col+1} / span ${R(t).span??``}`),H(r,R(t).label)}),V(e,n)}),D(h);var g=I(h,2);W(g,21,()=>R(i),ii,(e,t,n)=>{var r=VT();W(r,23,()=>R(t),(e,t)=>n+`-`+t,(e,t)=>{var n=BT();L(()=>G(n,1,Ni([`contribution-calendar-cell`,R(t).empty?`empty`:`level-${R(t).level}`]),`svelte-3hfxuq`)),zr(`mouseenter`,n,e=>o(e,R(t))),zr(`mouseleave`,n,s),V(e,n)}),D(r),V(e,r)}),D(g),D(m),D(p);var _=I(p,2),v=P(_),y=P(v),b=P(y,!0);D(y),D(v);var x=I(v,2);W(I(P(x),2),16,PT,e=>e,(e,t)=>{var n=HT();L(()=>G(n,1,`contribution-calendar-cell level-${t??``}`,`svelte-3hfxuq`)),V(e,n)}),Ve(2),D(x),D(_),D(l);var S=I(l,2),C=e=>{var t=UT(),r=P(t,!0);D(t),L(()=>{Bi(t,`left: ${R(n).x??``}px; top: ${R(n).y-40}px`),H(r,R(n).text)}),V(e,t)};U(S,e=>{R(n).show&&e(C)}),L(e=>H(b,e),[()=>LT(sT.data,sT.mode)]),V(e,c),k()}var KT=B(``),qT=B(`

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

        Provider Latency

        `),ZT=B(`
        Avg
        `),QT=B(`

        Requests by Status

        Success 2xx 4xx 5xx
        `,1);function $T(e,t){O(t,!0);let n=Qw(),r=A(()=>aT.stats);function i(){return{interval:R(r).interval,zone:lu.effectiveTimezone(),resolve:VS,formatTimestamp:e=>lu.formatTimestamp(e)}}var a=Xr(),o=F(a),s=e=>{var t=QT(),a=F(t),o=P(a),s=I(P(o),2),c=P(s),l=I(P(c),2),u=P(l,!0);D(l),D(c);var d=I(c,2),f=I(P(d),4),p=P(f,!0);D(f),D(d);var m=I(d,2),h=I(P(m),4),g=P(h,!0);D(h),D(m);var _=I(m,2),v=I(P(_),4),y=P(v,!0);D(v),D(_),D(s),D(o);var b=I(o,2);NS(P(b),{build:()=>Zw(RS(),R(r).buckets,i())}),D(b),D(a);var x=I(a,2),S=e=>{var t=ZT(),a=P(t),o=P(a);YT(o,{copyId:`audit-latency-help-copy`,label:`provider latency help`,text:`Average duration of successful requests as measured at the gateway, per provider. Local cache hits and failed requests are excluded; streamed responses count until the stream completes.`,title:e=>{V(e,XT())},$$slots:{title:!0}});var s=I(o,2),c=P(s),l=I(P(c),2),u=P(l,!0);D(l),D(c),D(s),D(a);var d=I(a,2);NS(P(d),{build:()=>$w(RS(),R(r).buckets,R(r).provider_latency,{...i(),providerColor:n})}),D(d),D(t),L(e=>H(u,e),[()=>Kw(R(r))]),V(e,t)},C=A(()=>Hw(R(r)));U(x,e=>{R(C)&&e(S)}),L((e,t,n,r)=>{H(u,e),H(p,t),H(g,n),H(y,r)},[()=>Uw(R(r)),()=>cd(Ww(R(r),`status_2xx`)),()=>cd(Ww(R(r),`status_4xx`)),()=>cd(Ww(R(r),`status_5xx`))]),V(e,t)},c=A(()=>Vw(R(r)));U(o,e=>{R(c)&&e(s)}),V(e,a),k()}var eE=(e,t=f,n=f,r)=>{let i=Et(()=>h(r?.(),!1));var a=rE(),o=P(a),s=P(o,!0);D(o);var c=I(o,2),l=e=>{var t=tE(),r=P(t,!0);D(t),L(()=>H(r,n())),V(e,t)},u=e=>{var t=nE(),r=P(t,!0);D(t),L(()=>H(r,n())),V(e,t)};U(c,e=>{R(i)?e(l):e(u,-1)}),D(a),L(()=>H(s,t())),V(e,a)},tE=B(` `),nE=B(` `),rE=B(`
        `),iE=B(`

        `),aE=B(`
        Breaker State
        `),oE=B(`
        `),sE=B(`
        Models (Recent Traffic)
        `),cE=B(`
        `),lE=B(`

        `);function uE(e,t){O(t,!0);let n=A(()=>cw(t.provider)),r=A(()=>[[`Base URL`,t.provider.config?.base_url],[`API Version`,t.provider.config?.api_version]].filter(([,e])=>!!e));var i=lE();let a;var o=P(i),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=e=>{var n=iE(),r=P(n,!0);D(n),L(()=>H(r,t.provider.last_error)),V(e,n)};U(l,e=>{t.provider.last_error&&e(u)});var d=I(l,2),f=e=>{var r=cE(),i=P(r);{let e=A(()=>lw(t.provider));eE(i,()=>`Recent Requests`,()=>R(e))}var a=I(i,2),o=e=>{var r=aE(),i=I(P(r),2),a=P(i),o=P(a,!0);D(a),D(i),D(r),L(e=>{G(a,1,Ni([`provider-status-health-state`,R(n)]),`svelte-6y9wjv`),H(o,e)},[()=>sw(t.provider)]),V(e,r)},s=A(()=>ow(t.provider));U(a,e=>{R(s)&&e(o)});var c=I(a,2),l=e=>{var n=sE(),r=I(P(n),2);W(r,21,()=>uw(t.provider),e=>e.model,(e,t)=>{var n=oE();let r;var i=P(n),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(n),L((e,i)=>{r=G(n,1,`provider-status-health-model svelte-6y9wjv`,null,r,{"is-flagged":R(t).flagged}),K(n,`title`,e),H(a,R(t).model),H(s,i)},[()=>fw(R(t)),()=>dw(R(t))]),V(e,n)}),D(r),D(n),V(e,n)},u=A(()=>uw(t.provider).length>0);U(c,e=>{R(u)&&e(l)}),D(r),V(e,r)},p=A(()=>aw(t.provider));U(d,e=>{R(p)&&e(f)});var m=I(d,2),h=P(m);W(h,17,()=>R(r),([e,t])=>e,(e,t)=>{var n=A(()=>g(R(t),2));eE(e,()=>R(n)[0],()=>R(n)[1],()=>!0)});var _=I(h,2);{let e=A(()=>rw(t.provider));eE(_,()=>`Configured Models`,()=>R(e))}var v=I(_,2);{let e=A(()=>tw(t.provider));eE(v,()=>`Retry`,()=>R(e))}var y=I(v,2);{let e=A(()=>nw(t.provider));eE(y,()=>`Circuit Breaker`,()=>R(e))}D(m),D(o),D(i),L(()=>{a=G(i,1,`provider-status-details svelte-6y9wjv`,null,a,{"is-expanded":t.expanded,"is-collapsed":!t.expanded}),K(i,`aria-hidden`,!t.expanded),H(c,t.provider.status_reason)}),V(e,i),k()}var dE=B(` `),fE=B(``),pE=B(`

        Models Available
        Last Checked
        `);function mE(e,t){O(t,!0);let n=A(()=>iT.cardExpanded(t.provider)),r=e=>lu.formatTimestamp(e);var i=pE(),a=P(i),o=P(a),s=P(o),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=e=>{var n=dE(),r=P(n);D(n),L(e=>H(r,`(${e??``})`),[()=>$C(t.provider)]),V(e,n)},f=A(()=>$C(t.provider));U(u,e=>{R(f)&&e(d)});var p=I(u,2),m=e=>{var n=fE();L((e,t,r)=>{K(n,`href`,e),K(n,`aria-label`,t),K(n,`title`,r)},[()=>ew(t.provider),()=>`View `+($C(t.provider)||t.provider.name)+` provider docs`,()=>`View `+($C(t.provider)||t.provider.name)+` provider docs`]),V(e,n)},h=A(()=>ew(t.provider));U(p,e=>{R(h)&&e(m)}),D(s),D(o);var g=I(o,2),_=P(g,!0);D(g),D(a);var v=I(a,2),y=P(v),b=I(P(y),2),x=P(b,!0);D(b),D(y);var S=I(y,2),C=I(P(S),2),w=P(C,!0);D(C),D(S),D(v);var T=I(v,2);uE(T,{get provider(){return t.provider},get expanded(){return R(n)}});var E=I(T,2);let ee;J(P(E),{get icon(){return Nc},class:`provider-status-card-toggle-icon`}),D(E),D(i),L((e,r,i,a,o)=>{H(l,t.provider.name),G(g,1,`provider-status-pill ${e??``}`,`svelte-nopjmh`),K(g,`title`,r),H(_,t.provider.status_label),H(x,i),K(C,`title`,a),H(w,o),ee=G(E,1,`provider-status-card-toggle svelte-nopjmh`,null,ee,{"is-expanded":R(n)}),K(E,`aria-expanded`,R(n)),K(E,`aria-label`,(R(n)?`Collapse `:`Expand `)+t.provider.name+` details`),K(E,`title`,R(n)?`Collapse details`:`Expand details`)},[()=>GC(t.provider.status),()=>iw(t.provider),()=>cd(t.provider.runtime?.discovered_model_count),()=>QC(t.provider,r),()=>ZC(t.provider,r)]),z(`click`,E,()=>iT.toggleCard(t.provider)),V(e,i),k()}Br([`click`]);var hE=B(`

        Providers Overview

        `),gE=B(`
        `);function _E(e,t){O(t,!0);let n=A(()=>iT.status.providers);var r=Xr(),i=F(r),a=e=>{var t=hE(),r=P(t),i=I(P(r),2),a=P(i),o=P(a,!0);D(a);var s=I(a,2);let c;D(i),D(r);var l=I(r,2);W(l,21,()=>R(n),e=>e.name,(e,t)=>{mE(e,{get provider(){return R(t)}})}),D(l),D(t),L((e,t)=>{K(i,`aria-checked`,iT.detailsExpanded),K(i,`title`,e),H(o,t),c=G(s,1,`provider-status-toggle-track svelte-1kx3uw4`,null,c,{"is-active":iT.detailsExpanded})},[()=>iT.detailsToggleLabel(),()=>iT.detailsToggleLabel()]),z(`click`,i,()=>iT.toggleDetails()),V(e,t)},o=e=>{var t=gE();wT(P(t),{size:18,label:`Loading provider status`}),D(t),V(e,t)};U(i,e=>{R(n).length>0?e(a):iT.loading&&!iT.loadedOnce&&e(o,1)}),V(e,r),k()}Br([`click`]);var vE=B(`
        `);function yE(e,t){O(t,!0);function n(){Vd.fetchUsage(),Vd.fetchCacheOverview(``),aT.fetch(),iT.fetch(),oT.fetch(),sT.fetch()}function r(){Vd.fetchUsage(),Vd.fetchCacheOverview(``),aT.fetch()}function i(){r(),sT.fetch()}On(()=>{if(Y.refreshTick,Bl.page===`overview`)return wr(()=>{n(),lC.start()}),()=>{lC.stop(),iT.stopPolling()}});var a=vE(),o=P(a);pC(o,{});var s=I(o,4);rf(P(s),{onchange:i}),D(s);var c=I(s,2);Rd(c,{});var l=I(c,2);gT(l,{});var u=I(l,2);ST(u,{});var d=I(u,2);AT(d,{onintervalchange:r});var f=I(d,2);GT(f,{});var p=I(f,2);$T(p,{}),_E(I(p,2),{}),D(a),V(e,a),k()}var bE=`/admin/live/logs?types=audit,usage`;function xE(e,t,n){return!!t&&String(e&&e.id||``).trim()===t||!!n&&String(e&&e.request_id||``).trim()===n}function SE(e){switch(e){case`date_range`:return`Live paused — the selected date range does not include today. Set it to today to resume.`;case`filters`:return`Live paused while filters are active. Clear them to resume.`;case`pagination`:return`Live paused on later pages. Go to the first page to resume.`;default:return``}}function CE(e){let t=bE,n=Number(e||0);return Number.isFinite(n)&&n>0&&(t+=`&cursor=`+encodeURIComponent(String(n))),t}function wE(){return{async consumeLiveLogsBody(e){await KS(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=>xE(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;exE(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=>!xE(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(!xE(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=>!xE(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 TE={"audit.started":10,"audit.updated":20,"audit.stream":20,"audit.completed":30,"audit.failed":40,"audit.flushed":40,"audit.detail":40},EE=new Set(Object.keys(TE));function DE(e){return String(e&&(e.id||e.request_id)||``).trim()}function OE(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:jE(n.data)&&jE(r.data)&&(i.data={...n.data,...r.data});let a=String(n._live_state||``).trim(),o=String(r._live_state||``).trim();return(TE[a]||0)>(TE[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&&jE(i.data)&&(i.data.request_body!==void 0||i.data.response_body!==void 0)&&(i.bodies_omitted=!1),i}function kE(e,t){let n=Number(t||0);return(Array.isArray(e)?e:[]).filter(e=>Number(e&&e.version||0)>n)}function AE(e){return EE.has(String(e&&e.eventType||``).trim())}function jE(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}var ME=200,NE=class{#e=j(N({entries:[],total:0,limit:25,offset:0}));get auditLog(){return R(this.#e)}set auditLog(e){M(this.#e,e,!0)}#t=j(N({entries:[],total:0,limit:50,offset:0}));get usageLog(){return R(this.#t)}set usageLog(e){M(this.#t,e,!0)}#n=j(N({}));get auditRecords(){return R(this.#n)}set auditRecords(e){M(this.#n,e,!0)}#r=j(N([]));get auditRecordChanges(){return R(this.#r)}set auditRecordChanges(e){M(this.#r,e,!0)}auditRecordVersion=0;auditRecordPins=new Set;#i=j(``);get auditSearch(){return R(this.#i)}set auditSearch(e){M(this.#i,e,!0)}#a=j(``);get auditMethod(){return R(this.#a)}set auditMethod(e){M(this.#a,e,!0)}#o=j(``);get auditStatusCode(){return R(this.#o)}set auditStatusCode(e){M(this.#o,e,!0)}#s=j(``);get auditStream(){return R(this.#s)}set auditStream(e){M(this.#s,e,!0)}#c=j(Ja(`gomodel_audit_group_sessions`,`true`)!==`false`);get auditGroupSessions(){return R(this.#c)}set auditGroupSessions(e){M(this.#c,e,!0)}#l=j(N({}));get auditThreadChildren(){return R(this.#l)}set auditThreadChildren(e){M(this.#l,e,!0)}#u=j(``);get usageLogSearch(){return R(this.#u)}set usageLogSearch(e){M(this.#u,e,!0)}#d=j(``);get usageFilterModel(){return R(this.#d)}set usageFilterModel(e){M(this.#d,e,!0)}#f=j(``);get usageFilterProvider(){return R(this.#f)}set usageFilterProvider(e){M(this.#f,e,!0)}#p=j(``);get usageFilterLabel(){return R(this.#p)}set usageFilterLabel(e){M(this.#p,e,!0)}#m=j(``);get usageFilterUserPath(){return R(this.#m)}set usageFilterUserPath(e){M(this.#m,e,!0)}#h=j(!1);get usageLogHideCached(){return R(this.#h)}set usageLogHideCached(e){M(this.#h,e,!0)}#g=j(!1);get liveLogsStreaming(){return R(this.#g)}set liveLogsStreaming(e){M(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=DE(e);if(!n)return e;let r=OE(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():DE(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<=ME)return;let t={...this.auditRecords},n=e.length-ME;for(let r of e){if(n<=0)break;this.auditRecordPins.has(r)||(delete t[r],n--)}this.auditRecords=t}get page(){return Bl.page}get customStartDate(){return Fd.customStartDate}get customEndDate(){return Fd.customEndDate}get followsToday(){return Fd.followsToday}liveLogsEnabled(){return bu.liveLogsVisible()}async startLiveLogs(){typeof fetch!=`function`||typeof ReadableStream>`u`||(await bu.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=CE(this.liveLogsLastSeq),r=Y.generation;try{let i=await pu(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 hu(`/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(NE.prototype,wE());var PE=new NE;if(typeof window<`u`){let e=!1;window.addEventListener(`pagehide`,()=>{e=!!PE.liveLogsController,PE.stopLiveLogs()}),window.addEventListener(`pageshow`,t=>{t.persisted&&e&&PE.ensureLiveLogs()})}var FE=null;An(()=>{On(()=>{let e=Y.refreshTick;if(FE===null){FE=e;return}e!==FE&&(FE=e,wr(()=>{PE.stopLiveLogs(),PE.startLiveLogs()}))})});function IE(){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 LE(){return{entries:[],total:0,limit:50,offset:0}}function RE(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 zE({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 BE(e,t){let n=new Set(e||[]);return t&&n.add(t),[...n].sort()}function VE(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 HE(e,t,n){let r=n?e:t,i=Number(r&&r.total_requests||0);return Number.isFinite(i)?i:0}function UE(e,t,n){let r=VE(e,t);return r<=0?``:n?cd(r)+` cached requests hidden`:cd(Number(e&&e.total_requests||0))+` to providers + `+cd(r)+` from cache`}function WE(e){let t=e||{};return t.total_input_cost===null||t.total_input_cost===void 0?``:ld(t.total_input_cost)+` input + `+ld(t.total_output_cost)+` output`}function GE(e){let t=Number(e&&e.rewrite_tokens_saved||0);return Number.isFinite(t)&&t>0?t:0}function KE(e){return GE(e)>0}function qE(e){let t=e||{};return t.rewrite_cost_saved===void 0?null:t.rewrite_cost_saved}function JE(){return`Estimated at 4 net characters removed per token`}function YE(e,t){return t===`costs`?ld(qE(e)):fd(GE(e))}function XE(e,t){let n=t===`costs`,r=n?Number(qE(e)):GE(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 ZE(e,t){let n=XE(e,t);return n===null?``:(n<.1?`<0.1`:n.toFixed(1))+`% less`}function QE(e,t){let n=GE(e);if(n<=0)return``;let r=[cd(n)+` estimated prompt token-transmissions removed across provider requests`,JE(),`Savings are summed per provider request; resent conversation history is counted again`],i=qE(e);i!=null&&(r.push(ld(i)+` estimated gross input cost avoided`),r.push(`Prompt-cache changes caused by rewriting are not included`));let a=ZE(e,t);return a&&r.push(a+` than the same traffic without rewriting (`+(t===`costs`?`cost`:`tokens`)+`)`),r.join(` -`)}function $E(e){return String(e&&e.cost_source||``).trim()}function eD(e){let t=$E(e);return t===`openrouter_credits`||t===`xai_cost_in_usd_ticks`}function tD(e){switch($E(e)){case`openrouter_credits`:return`Costs from OpenRouter USD-based credits.`;case`xai_cost_in_usd_ticks`:return`Costs from xAI usage.cost_in_usd_ticks.`;default:return``}}function nD(e){return String(e&&e.cache_type||``).trim().toLowerCase()}function rD(e){let t=nD(e);return t===`exact`||t===`semantic`}function iD(e){let t=nD(e);return t===`exact`?`Exact`:t===`semantic`?`Semantic`:`-`}function aD(e,t){let n=t?String(t):``;return rD(e)?n?`Saved by cache — not charged -`+n:`Saved by cache — not charged`:n}function oD(e){let t=Number(e&&e.cached_input_ratio);return!Number.isFinite(t)||t<=0?0:Math.min(1,t)}function sD(e){return Number(e&&e.cached_input_tokens||0)>0}function cD(e){return sD(e)?(oD(e)*100).toFixed(1)+`%`:``}function lD(e){if(!sD(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=[cd(t)+` cached / `+cd(i)+` input tokens`];return r>0&&a.push(cd(r)+` cache write`),a.join(` -`)}function uD(e){let t=[];if(tD(e)&&(t.push(tD(e)),t.push(``)),t.push(`Input: `+ld(e.input_cost)),t.push(`Output: `+ld(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):cd(r);t.push(e+`: `+i)}}return t.join(` -`)}function dD(e){return Array.isArray(e&&e.labels)?e.labels:[]}function fD(e,t,n){return(e||[]).length>0||t?!0:(n||[]).some(e=>dD(e).length>0)}function pD(e){return e&&typeof e.total_tokens==`number`?e.total_tokens:(e&&e.input_tokens||0)+(e&&e.output_tokens||0)}function mD(e,t){return t?e.total_cost||0:pD(e)}function hD(e,t){return[...e||[]].sort((e,n)=>t?(n.total_cost||0)-(e.total_cost||0):mD(n,t)-mD(e,t))}function gD(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 _D(e){return(e||`chart`)===`chart`||e===`stacked`}function vD(e,t,n){let r=hD(e,n),i=e=>Number(e)||0,a=e=>n?Math.min(i(e.cached_input_cost),i(e.input_cost)):i(e.cached_input_tokens),o=e=>n?i(e.input_cost)-a(e):i(e.uncached_input_tokens)+i(e.cached_input_tokens)+i(e.cache_write_input_tokens)>0?i(e.uncached_input_tokens)+i(e.cache_write_input_tokens):i(e.input_tokens),s=e=>i(n?e.output_cost:e.output_tokens),c=e=>n?0:i(e.local_cached_input_tokens),l=e=>n?0:i(e.local_cached_output_tokens),u=r.slice(0,10),d=r.slice(10),f=u.map(t),p=u.map(o),m=u.map(s),h=u.map(a),g=u.map(c),_=u.map(l);if(d.length>0){f.push(`Other`);let e=e=>d.reduce((t,n)=>t+e(n),0);p.push(e(o)),m.push(e(s)),h.push(e(a)),g.push(e(c)),_.push(e(l))}return{labels:f,inputs:p,outputs:m,prompts:h,localIns:g,localOuts:_}}function yD(e){return Math.max(200,e*32+72)}var bD=new class{#e=j(`tokens`);get usageMode(){return R(this.#e)}set usageMode(e){M(this.#e,e,!0)}get usageFilterModel(){return PE.usageFilterModel}set usageFilterModel(e){PE.usageFilterModel=e}get usageFilterProvider(){return PE.usageFilterProvider}set usageFilterProvider(e){PE.usageFilterProvider=e}get usageFilterLabel(){return PE.usageFilterLabel}set usageFilterLabel(e){PE.usageFilterLabel=e}get usageFilterUserPath(){return PE.usageFilterUserPath}set usageFilterUserPath(e){PE.usageFilterUserPath=e}#t=j(N({models:[],providers:[],labels:[]}));get usageFacetOptions(){return R(this.#t)}set usageFacetOptions(e){M(this.#t,e,!0)}#n=j(N(IE()));get usageSummary(){return R(this.#n)}set usageSummary(e){M(this.#n,e,!0)}#r=j(N(IE()));get usageSummaryAll(){return R(this.#r)}set usageSummaryAll(e){M(this.#r,e,!0)}#i=j(N([]));get modelUsage(){return R(this.#i)}set modelUsage(e){M(this.#i,e,!0)}#a=j(N([]));get userPathUsage(){return R(this.#a)}set userPathUsage(e){M(this.#a,e,!0)}#o=j(N([]));get labelUsage(){return R(this.#o)}set labelUsage(e){M(this.#o,e,!0)}get usageLog(){return PE.usageLog}set usageLog(e){PE.usageLog=e}get usageLogSearch(){return PE.usageLogSearch}set usageLogSearch(e){PE.usageLogSearch=e}get usageLogHideCached(){return PE.usageLogHideCached}set usageLogHideCached(e){PE.usageLogHideCached=e}#s=j(`chart`);get modelUsageView(){return R(this.#s)}set modelUsageView(e){M(this.#s,e,!0)}#c=j(`chart`);get userPathUsageView(){return R(this.#c)}set userPathUsageView(e){M(this.#c,e,!0)}#l=j(`chart`);get labelUsageView(){return R(this.#l)}set labelUsageView(e){M(this.#l,e,!0)}#u=j(!1);get summaryLoading(){return R(this.#u)}set summaryLoading(e){M(this.#u,e,!0)}#d=j(!1);get modelUsageLoading(){return R(this.#d)}set modelUsageLoading(e){M(this.#d,e,!0)}#f=j(!1);get userPathUsageLoading(){return R(this.#f)}set userPathUsageLoading(e){M(this.#f,e,!0)}#p=j(!1);get labelUsageLoading(){return R(this.#p)}set labelUsageLoading(e){M(this.#p,e,!0)}#m=j(!1);get usageLogLoading(){return R(this.#m)}set usageLogLoading(e){M(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 RE({model:this.usageFilterModel,provider:this.usageFilterProvider,label:this.usageFilterLabel,user_path:this.usageFilterUserPath},e)}onUsageFilterChanged(){this.fetchUsagePage()}toggleUsageLabelFilter(e){this.usageFilterLabel=this.usageFilterLabel===e?``:e,this.onUsageFilterChanged()}usageLabelChipTitle(e){return this.usageFilterLabel===e?`Clear label filter`:`Filter usage by "`+e+`"`}toggleUsageMode(e){this.usageMode=e,Bl.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 BE(this.usageFacetOptions.models,this.usageFilterModel)}usageFilterProviderOptions(){return BE(this.usageFacetOptions.providers,this.usageFilterProvider)}usageFilterLabelOptions(){return BE(this.usageFacetOptions.labels,this.usageFilterLabel)}async fetchUsagePage(){await bu.ensureLoaded();let e=[this.fetchUsagePageSummary(),this.fetchUsageFacetOptions(),this.fetchModelUsage(),this.fetchUserPathUsage(),this.fetchLabelUsage(),this.fetchUsageLog(!0)];Vd.cacheAnalyticsEnabled()&&e.push(Vd.fetchCacheOverview(this.filterQueryStr())),await Promise.all(e)}async fetchUsagePageSummary(){let e=this.#g(`summary`);this.summaryLoading=!0;try{let t=Fd.queryStr()+this.filterQueryStr(),[n,r]=await Promise.all([hu(`/admin/usage/summary?`+t+`&cache_mode=uncached`,{label:`usage page summary`,signal:e.signal}),hu(`/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=IE(),this.usageSummaryAll=IE();return}this.usageSummary=n.data&&typeof n.data==`object`?n.data:IE(),this.usageSummaryAll=r.data&&typeof r.data==`object`?r.data:IE()}catch(e){if(_u(e))return;console.error(`Failed to fetch usage page summary:`,e),this.usageSummary=IE(),this.usageSummaryAll=IE()}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 hu(t+`?`+Fd.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=>vd(e)).filter(Boolean),labels:o.map(e=>e&&e.label).filter(Boolean)}}catch(e){if(_u(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 hu(t+`?`+Fd.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(_u(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=Fd.queryStr()+this.filterQueryStr();n+=zE({limit:this.usageLog.limit,offset:this.usageLog.offset,hideCached:this.usageLogHideCached,search:this.usageLogSearch});let r=await hu(`/admin/usage/log?`+n,{label:`usage log`,signal:t.signal});if(r.stale||t.signal.aborted)return;if(!r.ok){this.usageLog=LE();return}let i=r.data&&typeof r.data==`object`?r.data:LE();i.entries||=[],this.usageLog=i}catch(e){if(_u(e))return;console.error(`Failed to fetch usage log:`,e),this.usageLog=LE()}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))}};PE.fetchUsage=()=>{Bl.page===`usage`&&bD.fetchUsagePage()};var xD=B(`
        `);function SD(e,t){O(t,!0);let n=q(t,`value`,15,``),r=q(t,`placeholder`,3,``),i=q(t,`label`,3,``),a=q(t,`id`,3,void 0),o=q(t,`oninput`,3,void 0),s=q(t,`class`,3,``);var c=xD(),l=P(c);J(l,{get icon(){return ll},class:`filter-input-icon`});var u=I(l,2);ea(u),D(c),L(()=>{G(c,1,Ni([`filter-input-wrap`,s()]),`svelte-30xz1k`),K(u,`id`,a()),K(u,`placeholder`,r()),K(u,`aria-label`,i())}),z(`input`,u,function(...e){o()?.apply(this,e)}),la(u,n),V(e,c),k()}Br([`input`]);function CD(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 wD=B(``),TD=B(``),ED=B(`
        `);function DD(e,t){O(t,!0);let n=CD(()=>bD.onUsageFilterChanged());On(()=>n.cancel);var r=ED(),i=P(r),a=P(i);a.value=a.__value=``,W(I(a),16,()=>bD.usageFilterModelOptions(),e=>e,(e,t)=>{var n=wD(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(i);var o=I(i,2),s=P(o);s.value=s.__value=``,W(I(s),16,()=>bD.usageFilterProviderOptions(),e=>e,(e,t)=>{var n=wD(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(o);var c=I(o,2),l=e=>{var t=TD(),n=P(t);n.value=n.__value=``,W(I(n),16,()=>bD.usageFilterLabelOptions(),e=>e,(e,t)=>{var n=wD(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(t),z(`change`,t,()=>bD.onUsageFilterChanged()),Ui(t,()=>bD.usageFilterLabel,e=>bD.usageFilterLabel=e),V(e,t)},u=A(()=>bD.usageFilterLabelOptions().length>0);U(c,e=>{R(u)&&e(l)}),SD(I(c,2),{class:`usage-page-filters-user-path`,placeholder:`User path /team/alpha`,label:`Filter by user path`,get oninput(){return n},get value(){return bD.usageFilterUserPath},set value(e){bD.usageFilterUserPath=e}}),D(r),z(`change`,i,()=>bD.onUsageFilterChanged()),Ui(i,()=>bD.usageFilterModel,e=>bD.usageFilterModel=e),z(`change`,o,()=>bD.onUsageFilterChanged()),Ui(o,()=>bD.usageFilterProvider,e=>bD.usageFilterProvider=e),V(e,r),k()}Br([`change`]);var OD=B(`
        Cache Saved
        Cache Hits
        `,1);function kD(e,t){O(t,!0);var n=Xr(),r=F(n),i=e=>{var t=OD(),n=F(t),r=I(P(n),2),i=P(r,!0);D(r),D(n);var a=I(n,2),o=I(P(a),2),s=P(o,!0);D(o),D(a),L((e,t)=>{H(i,e),H(s,t)},[()=>ld(Vd.cacheOverview.summary.total_saved_cost),()=>cd(Vd.cacheOverview.summary.total_hits)]),V(e,t)},a=A(()=>Vd.cacheAnalyticsEnabled());U(r,e=>{R(a)&&e(i)}),V(e,n),k()}var AD=B(` `),jD=B(`
        Pro Saved
        `),MD=B(`
        Total Requests
        Estimated Cost
        `);function ND(e,t){O(t,!0);let n=A(()=>KE(bD.usageSummary)),r=A(()=>YE(bD.usageSummary,bD.usageMode)),i=A(()=>ZE(bD.usageSummary,bD.usageMode));var a=MD(),o=P(a),s=I(P(o),2),c=P(s),l=e=>{wT(e,{size:18,label:`Loading usage summary`})},u=e=>{var t=Yr();L(e=>H(t,e),[()=>cd(HE(bD.usageSummary,bD.usageSummaryAll,bD.usageLogHideCached))]),V(e,t)};U(c,e=>{bD.summaryLoading?e(l):e(u,-1)}),D(s),D(o);var d=I(o,2),f=I(P(d),2),p=P(f),m=e=>{wT(e,{size:18,label:`Loading usage summary`})},h=e=>{var t=Yr();L(e=>H(t,e),[()=>ld(bD.usageSummary.total_cost)]),V(e,t)};U(p,e=>{bD.summaryLoading?e(m):e(h,-1)}),D(f),D(d);var g=I(d,2),_=e=>{var t=jD(),n=I(P(t),2),a=P(n),o=P(a,!0);D(a);var s=I(a,2),c=e=>{var t=AD(),n=P(t,!0);D(t),L(()=>H(n,R(i))),V(e,t)};U(s,e=>{R(i)&&e(c)}),D(n),D(t),L(e=>{K(n,`title`,e),H(o,R(r))},[()=>QE(bD.usageSummary,bD.usageMode)]),V(e,t)};U(g,e=>{R(n)&&e(_)}),kD(I(g,2),{}),D(a),L((e,t)=>{K(s,`title`,e),K(f,`title`,t)},[()=>UE(bD.usageSummary,bD.usageSummaryAll,bD.usageLogHideCached),()=>WE(bD.usageSummary)]),V(e,a),k()}function PD(e,t,n,r){let{stacked:i=!1,costs:a=!1,resolve:o=e=>e}=r||{},s=e=>a?`$`+Math.abs(e).toFixed(2):fd(Math.abs(e)),c=e=>a?`$`+Math.abs(e).toFixed(4):Math.abs(e).toLocaleString(),l=e=>e.map(e=>i?Math.abs(e):-Math.abs(e)),u=(e,t,n)=>({label:e,data:t,backgroundColor:n,borderColor:`transparent`,borderWidth:0,borderRadius:4,maxBarThickness:22}),d=e=>(e||[]).some(e=>Math.abs(e)>0),f=[u(a?`Input Cost`:`Input Tokens`,l(n.inputs),o(`var(--token-input)`)),u(a?`Output Cost`:`Output Tokens`,n.outputs,o(`var(--token-output)`))];return d(n.prompts)&&f.push(u(a?`Prompt Cached Cost`:`Prompt Cached`,l(n.prompts),o(`var(--token-prompt)`))),!a&&d(n.localIns)&&f.push(u(`Locally Cached (Input)`,l(n.localIns),o(`var(--token-local)`))),!a&&d(n.localOuts)&&f.push(u(`Locally Cached (Output)`,n.localOuts,o(`var(--token-local)`))),{type:`bar`,data:{labels:t,datasets:f},options:{indexAxis:`y`,responsive:!0,maintainAspectRatio:!1,animation:{duration:0},layout:{padding:{top:8}},scales:{x:{stacked:!0,beginAtZero:!0,grid:i?{color:e.grid}:{color:t=>t.tick&&t.tick.value===0?e.text:e.grid},border:{display:!1},ticks:{color:e.text,font:zS(),callback:e=>s(e)}},y:{stacked:!0,grid:{display:!1},border:{display:!1},ticks:{color:e.text,font:zS(),autoSkip:!1}}},plugins:{legend:{labels:{color:e.text,font:{size:12}}},tooltip:BS(e,{label:e=>e.dataset.label+`: `+c(e.parsed.x),footer:e=>{let t=0;return e.forEach(e=>{t+=Math.abs(Number(e.parsed.x))||0}),`Total: `+c(t)}})}}}}var FD=B(`
        `),ID=B(`

        `),LD=B(`

        `,1),RD=B(`
        `),zD=B(`Model Provider`,1),BD=B(`User Path`),VD=B(`Label Requests`,1),HD=B(` `,1),UD=B(` `),WD=B(` `,1),GD=B(` `),KD=B(`
        Input TokensOutput TokensPrompt CachedLocal CachedTotal TokensInput CostOutput CostTotal Cost
        `),qD=B(`
        `),JD=B(`
        `);function YD(e,t){O(t,!0);let n=e=>{var n=FD(),r=P(n);let a;var o=I(r,2);let s;var l=I(o,2);let u;D(n),L(()=>{K(n,`aria-label`,R(i).group),a=G(r,1,`chart-view-btn svelte-1kee4g8`,null,a,{active:R(c)===`chart`}),K(r,`aria-pressed`,R(c)===`chart`),K(r,`aria-label`,`Show ${R(i).noun??``} chart`),s=G(o,1,`chart-view-btn svelte-1kee4g8`,null,s,{active:R(c)===`stacked`}),K(o,`aria-pressed`,R(c)===`stacked`),K(o,`aria-label`,`Show ${R(i).noun??``} stacked chart`),u=G(l,1,`chart-view-btn svelte-1kee4g8`,null,u,{active:R(c)===`table`}),K(l,`aria-pressed`,R(c)===`table`),K(l,`aria-label`,`Show ${R(i).noun??``} table`)}),z(`click`,r,()=>bD.toggleUsageChartView(t.kind,`chart`)),z(`click`,o,()=>bD.toggleUsageChartView(t.kind,`stacked`)),z(`click`,l,()=>bD.toggleUsageChartView(t.kind,`table`)),V(e,n)},r={model:{group:`Model usage view`,noun:`model usage`,tokensTitle:`Token Usage by Model`,costsTitle:`Cost by Model`},userPath:{group:`User path usage view`,noun:`user path usage`,tokensTitle:`Usage by User Path`,costsTitle:`Cost by User Path`},label:{group:`Label usage view`,noun:`label usage`,tokensTitle:`Usage by Label`,costsTitle:`Cost by Label`}},i=A(()=>r[t.kind]),a=A(()=>t.kind===`model`?e=>bd(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=A(()=>t.kind===`model`?bD.modelUsage:t.kind===`userPath`?bD.userPathUsage:bD.labelUsage),c=A(()=>t.kind===`model`?bD.modelUsageView:t.kind===`userPath`?bD.userPathUsageView:bD.labelUsageView),l=A(()=>t.kind===`model`?bD.modelUsageLoading:t.kind===`userPath`?bD.userPathUsageLoading:bD.labelUsageLoading),u=A(()=>bD.usageMode===`costs`),d=A(()=>t.kind===`userPath`?gD(R(s)):R(s).length>0),f=A(()=>R(u)?R(i).costsTitle:R(i).tokensTitle),p=A(()=>vD(R(s),R(a),R(u))),m=A(()=>hD(R(s),R(u)));function h(){return _D(R(c))?PD(RS(),R(p).labels,R(p),{stacked:R(c)===`stacked`,costs:R(u),resolve:VS}):null}var g=Xr(),_=F(g),v=e=>{var r=qD(),a=P(r),s=P(a),u=e=>{YT(e,{copyId:`label-usage-help-copy`,label:`label usage help`,text:`One request can have multiple labels. Such a request counts once under each of its labels, so label rows can overlap and add up to more than the period totals.`,title:e=>{var t=ID(),n=P(t,!0);D(t),L(()=>H(n,R(f))),V(e,t)},extra:e=>{var t=Xr(),n=F(t),r=e=>{wT(e,{size:14,get label(){return`Loading ${R(i).noun??``}`}})};U(n,e=>{R(l)&&e(r)}),V(e,t)},$$slots:{title:!0,extra:!0}})},d=e=>{var t=LD(),n=F(t),r=P(n,!0);D(n);var a=I(n,2),o=e=>{wT(e,{size:14,get label(){return`Loading ${R(i).noun??``}`}})};U(a,e=>{R(l)&&e(o)}),L(()=>H(r,R(f))),V(e,t)};U(s,e=>{t.kind===`label`?e(u):e(d,-1)});var g=I(s,2);n(g),D(a);var _=I(a,2),v=e=>{var t=RD();let n;NS(P(t),{build:h}),D(t),L(e=>n=Bi(t,``,n,e),[()=>({height:`${yD(R(p).labels.length)??``}px`})]),V(e,t)},y=A(()=>_D(R(c))),b=e=>{var n=KD(),r=P(n),i=P(r),a=P(i),s=P(a),c=e=>{var t=zD();Ve(2),V(e,t)},l=e=>{V(e,BD())},u=e=>{var t=VD();Ve(2),V(e,t)};U(s,e=>{t.kind===`model`?e(c):t.kind===`userPath`?e(l,1):e(u,-1)}),Ve(8),D(a),D(i);var d=I(i);W(d,21,()=>R(m),e=>o(e),(e,n)=>{var r=GD(),i=P(r),a=e=>{var t=HD(),r=F(t),i=P(r,!0);D(r);var a=I(r,2),o=P(a),s=P(o,!0);D(o),D(a),L(e=>{H(i,R(n).model||`-`),H(s,e)},[()=>vd(R(n))||`-`]),V(e,t)},o=e=>{var t=UD(),r=P(t,!0);D(t),L(()=>H(r,R(n).user_path||`/`)),V(e,t)},s=e=>{var t=WD(),r=F(t),i=P(r);let a;var o=P(i,!0);D(i),D(r);var s=I(r,2),c=P(s,!0);D(s),L((e,t,r)=>{a=G(i,1,`usage-label-chip`,null,a,{active:bD.usageFilterLabel===R(n).label}),Bi(i,`--label-color: ${e??``}`),K(i,`title`,t),H(o,R(n).label),H(c,r)},[()=>WS(R(n).label),()=>bD.usageLabelChipTitle(R(n).label),()=>cd(R(n).requests)]),z(`click`,i,()=>bD.toggleUsageLabelFilter(R(n).label)),V(e,t)};U(i,e=>{t.kind===`model`?e(a):t.kind===`userPath`?e(o,1):e(s,-1)});var c=I(i),l=P(c,!0);D(c);var u=I(c),d=P(u,!0);D(u);var f=I(u),p=P(f,!0);D(f);var m=I(f),h=P(m,!0);D(m);var g=I(m),_=P(g,!0);D(g);var v=I(g),y=P(v,!0);D(v);var b=I(v),x=P(b,!0);D(b);var S=I(b),C=P(S,!0);D(S),D(r),L((e,t,n,r,i,a,o,s,c,u,g)=>{H(l,e),H(d,t),K(f,`title`,n),H(p,r),K(m,`title`,`${i??``} input + ${a??``} output`),H(h,o),H(_,s),H(y,c),H(x,u),H(C,g)},[()=>cd(R(n).input_tokens),()=>cd(R(n).output_tokens),()=>R(n).cached_input_cost==null?``:`~`+ld(R(n).cached_input_cost)+` at current cached-input pricing`,()=>cd(R(n).cached_input_tokens||0),()=>cd(R(n).local_cached_input_tokens||0),()=>cd(R(n).local_cached_output_tokens||0),()=>cd((R(n).local_cached_input_tokens||0)+(R(n).local_cached_output_tokens||0)),()=>cd(pD(R(n))),()=>ld(R(n).input_cost),()=>ld(R(n).output_cost),()=>ld(R(n).total_cost)]),V(e,r)}),D(d),D(r),D(n),V(e,n)};U(_,e=>{R(y)?e(v):e(b,-1)}),D(r),V(e,r)},y=e=>{var t=JD();wT(P(t),{size:20,get label(){return`Loading ${R(i).noun??``}`}}),D(t),V(e,t)};U(_,e=>{R(d)?e(v):R(l)&&e(y,1)}),V(e,g),k()}Br([`click`]);var XD=B(``);function ZD(e,t){O(t,!0);let n=q(t,`total`,3,0),r=q(t,`offset`,3,0),i=q(t,`limit`,3,25);var a=Xr(),o=F(a),s=e=>{var a=XD(),o=P(a),s=P(o,!0);D(o);var c=I(o,2),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d),D(c),D(a),L((e,t,a)=>{H(s,e),l.disabled=r()===0,H(u,t),d.disabled=r()+i()>=n(),H(f,a)},[()=>zs({start:$a(r()+1),end:$a(Math.min(r()+i(),n())),total:$a(n())}),()=>oo(),()=>io()]),z(`click`,l,()=>t.onprev?.()),z(`click`,d,()=>t.onnext?.()),V(e,a)};U(o,e=>{n()>0&&e(s)}),V(e,a),k()}Br([`click`]);var QD=(e,t=f)=>{var n=Xr(),r=F(n),i=e=>{var n=eO();W(n,20,()=>dD(t()),e=>e,(e,t)=>{var n=$D();let r;var i=P(n,!0);D(n),L((e,a)=>{r=G(n,1,`usage-label-chip`,null,r,{active:bD.usageFilterLabel===t}),Bi(n,`--label-color: ${e??``}`),K(n,`title`,a),H(i,t)},[()=>WS(t),()=>bD.usageLabelChipTitle(t)]),z(`click`,n,()=>bD.toggleUsageLabelFilter(t)),V(e,n)}),D(n),V(e,n)},a=A(()=>dD(t()).length>0),o=e=>{V(e,tO())};U(r,e=>{R(a)?e(i):e(o,-1)}),V(e,n)},$D=B(``),eO=B(`
        `),tO=B(`-`),nO=B(`Labels`),rO=B(`Cost`),iO=B(``),aO=B(` `),oO=B(``),sO=B(` `),cO=B(` `),lO=B(`
        TimestampProviderModelUser PathCacheProvider Cache
        `),uO=B(`
        `),dO=B(`
        `),fO=B(`

        Request Log

        `);function pO(e,t){O(t,!0);let n=A(()=>bD.usageMode===`costs`),r=A(()=>fD(bD.labelUsage,bD.usageFilterLabel,bD.usageLog.entries)),i=CD(()=>bD.fetchUsageLog(!0));On(()=>i.cancel);var a=fO(),o=I(P(a),2),s=P(o);SD(P(s),{placeholder:`Search by request ID, model, provider...`,label:`Search by request ID, model, provider`,get oninput(){return i},get value(){return bD.usageLogSearch},set value(e){bD.usageLogSearch=e}}),D(s);var c=I(s,2),l=P(c),u=P(l);ea(u),Ve(2),D(l),D(c),D(o);var d=I(o,2),f=e=>{var t=lO(),i=P(t),a=P(i),o=P(a),s=I(P(o),4),c=e=>{V(e,nO())};U(s,e=>{R(r)&&e(c)});var l=I(s,3),u=P(l,!0);D(l);var d=I(l),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=e=>{V(e,rO())};U(h,e=>{R(n)||e(g)}),D(o),D(a);var _=I(a);W(_,21,()=>bD.usageLog.entries,e=>e.id,(e,t)=>{var i=cO();let a;var o=P(i),s=P(o,!0);D(o);var c=I(o),l=P(c),u=P(l,!0);D(l),D(c);var d=I(c),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=e=>{var n=iO();QD(P(n),()=>R(t)),D(n),V(e,n)};U(h,e=>{R(r)&&e(g)});var _=I(h),v=P(_,!0);D(_);var y=I(_),b=P(y),x=e=>{var n=aO(),r=P(n,!0);D(n),L(e=>H(r,e),[()=>cD(R(t))]),V(e,n)},S=A(()=>sD(R(t))),C=e=>{V(e,tO())};U(b,e=>{R(S)?e(x):e(C,-1)}),D(y);var w=I(y),T=P(w,!0);D(w);var E=I(w),ee=P(E,!0);D(E);var te=I(E),ne=P(te),re=P(ne,!0);D(ne);var ie=I(ne,2),ae=e=>{{let n=A(()=>tD(R(t)));J(e,{get icon(){return Rc},class:`cost-source-icon`,get title(){return R(n)}})}},oe=A(()=>R(n)&&eD(R(t)));U(ie,e=>{R(oe)&&e(ae)});var se=I(ie,2),ce=e=>{J(e,{get icon(){return Vc},class:`cache-savings-icon`})},le=A(()=>R(n)&&rD(R(t)));U(se,e=>{R(le)&&e(ce)});var ue=I(se,2),de=e=>{var n=oO();L(()=>K(n,`title`,R(t).costs_calculation_caveat)),V(e,n)};U(ue,e=>{R(n)&&R(t).costs_calculation_caveat&&e(de)}),D(te);var fe=I(te),pe=e=>{var n=sO(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=e=>{{let n=A(()=>tD(R(t)));J(e,{get icon(){return Rc},class:`cost-source-icon`,get title(){return R(n)}})}},s=A(()=>eD(R(t)));U(a,e=>{R(s)&&e(o)});var c=I(a,2),l=e=>{J(e,{get icon(){return Vc},class:`cache-savings-icon`})},u=A(()=>rD(R(t)));U(c,e=>{R(u)&&e(l)});var d=I(c,2),f=e=>{var n=oO();L(()=>K(n,`title`,R(t).costs_calculation_caveat)),V(e,n)};U(d,e=>{R(t).costs_calculation_caveat&&e(f)}),D(n),L((e,t)=>{K(n,`title`,e),H(i,t)},[()=>aD(R(t),uD(R(t))),()=>ld(R(t).total_cost)]),V(e,n)};U(fe,e=>{R(n)||e(pe)}),D(i),L((e,n,r,c,l,d,p,h,g,_,b,x,S)=>{a=G(i,1,`svelte-hg4ill`,null,a,e),K(o,`title`,n),H(s,r),H(u,c),H(f,R(t).model),H(m,R(t).user_path||`-`),H(v,l),K(y,`title`,d),K(w,`title`,p),H(T,h),K(E,`title`,g),H(ee,_),K(te,`title`,b),K(ne,`title`,x),H(re,S)},[()=>({"usage-log-row-cached":rD(R(t))}),()=>gd(R(t).timestamp),()=>lu.formatTimestamp(R(t).timestamp),()=>vd(R(t))||`-`,()=>iD(R(t)),()=>lD(R(t)),()=>R(n)?cd(R(t).input_tokens)+` tokens`:``,()=>R(n)?ld(R(t).input_cost):cd(R(t).input_tokens),()=>R(n)?cd(R(t).output_tokens)+` tokens`:``,()=>R(n)?ld(R(t).output_cost):cd(R(t).output_tokens),()=>R(n)?aD(R(t),``):``,()=>R(n)?aD(R(t),cd(R(t).total_tokens)+` tokens -`+uD(R(t))):``,()=>R(n)?ld(R(t).total_cost):cd(R(t).total_tokens)]),V(e,i)}),D(_),D(i),D(t),L(()=>{H(u,R(n)?`Input Cost`:`Input`),H(f,R(n)?`Output Cost`:`Output`),H(m,R(n)?`Total Cost`:`Total`)}),V(e,t)},p=e=>{var t=uO();wT(P(t),{size:20,label:`Loading request log`}),D(t),V(e,t)},m=e=>{var t=dO();DT(P(t),{}),D(t),V(e,t)};U(d,e=>{bD.usageLog.entries.length>0?e(f):bD.usageLogLoading?e(p,1):e(m,-1)}),ZD(I(d,2),{get total(){return bD.usageLog.total},get offset(){return bD.usageLog.offset},get limit(){return bD.usageLog.limit},onprev:()=>bD.usageLogPrevPage(),onnext:()=>bD.usageLogNextPage()}),D(a),z(`change`,u,()=>bD.fetchUsageLog(!0)),ua(u,()=>bD.usageLogHideCached,e=>bD.usageLogHideCached=e),V(e,a),k()}Br([`click`,`change`]);var mO=B(`
        `);function hO(e,t){O(t,!0);let n=`usage`;On(()=>{Y.refreshTick,Bl.page===n&&(bD.fetchUsagePage(),PE.ensureLiveLogs())}),On(()=>{Bl.page===n&&(bD.usageMode=Bl.sub===`costs`?`costs`:`tokens`)});var r=mO(),i=I(P(r),2),a=P(i);IS(a,{ariaLabel:`Usage mode`,options:[{value:`tokens`,label:`Tokens`},{value:`costs`,label:`Costs`}],get value(){return bD.usageMode},onchange:e=>bD.toggleUsageMode(e)}),rf(I(a,2),{onchange:()=>bD.fetchUsagePage()}),D(i);var o=I(i,2);DD(o,{});var s=I(o,2);ND(s,{});var c=I(s,2),l=P(c);YD(l,{kind:`model`});var u=I(l,2);YD(u,{kind:`userPath`}),YD(I(u,2),{kind:`label`}),D(c),pO(I(c,2),{}),D(r),V(e,r),k()}var gO=B(`
        `);function _O(e,t){let n=q(t,`label`,3,`Loading...`),r=q(t,`class`,3,``);var i=gO(),a=I(P(i),2),o=P(a,!0);D(a),D(i),L(()=>{G(i,1,Ni([`loading-state`,r()]),`svelte-hzxv1d`),H(o,n())}),V(e,i)}var vO=B(``);function yO(e,t){let n=q(t,`label`,3,``),r=q(t,`class`,3,``),i=q(t,`disabled`,3,!1);var a=vO();mi(P(a),()=>t.children??f),D(a),L(()=>{G(a,1,Ni([`table-action-btn`,r()])),K(a,`aria-label`,n()),K(a,`title`,n()),a.disabled=i()}),z(`click`,a,function(...e){t.onclick?.apply(this,e)}),V(e,a)}Br([`click`]);async function bO(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 hu(e,{...a||{},label:t})}catch(e){return _u(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?``:uu(o.data,n),result:o}}async function xO(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 gu(e,t,n,{...s||{},label:r})}catch(e){return _u(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.`:uu(c.data,i),result:c}}function SO(){return{scope:`user_path`,subject:`/`,period:`daily`,period_seconds:86400,amount:``,source:`manual`}}function CO(e){let t={user_path:{label:`User path`,chip:`user path`,fieldLabel:`User Path`,placeholder:`/team/alpha`},label:{label:`Label`,chip:`label`,fieldLabel:`Label`,placeholder:`Mobile-App-iOS`}};return t[e]||t.user_path}function wO(){return[`user_path`,`label`].map(e=>({value:e,label:CO(e).label}))}function TO(e){return String(e&&e.scope||``).trim()||`user_path`}function EO(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function DO(e){return CO(TO(e)).chip}function OO(e){return TO(e)===`label`?`budget-label`:`budget-user-path`}function kO(e){return CO(String(e&&e.scope||``)).fieldLabel}function AO(e){return CO(String(e&&e.scope||``)).placeholder}function jO(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function MO(){return[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`},{value:`custom`,label:`Custom seconds`}]}function NO(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 PO(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 FO(e){return TO(e)+`:`+EO(e)+`:`+String(e&&e.period_seconds||``)}function IO(e,t){if(!t||!Array.isArray(e))return null;let n=FO(t);return e.find(e=>FO(e)===n)||null}function LO(e){let t=String(e||``).trim();if(!t)return`User path is required.`;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return`User path cannot contain "." or ".." segments.`;if(t.includes(`:`))return`User path cannot contain ":" segments.`}}return``}function RO(e){if(LO(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 zO(e){return`/`+String(e||``).trimStart().replace(/^\/+/,``)}function BO(e){return Array.isArray(e)?e:e&&Array.isArray(e.budgets)?e.budgets:[]}function VO(e){let t=Number(e&&e.period_seconds||0);return[EO(e),DO(e),ik(e),PO(t),t?String(t)+`s`:``,t?String(t)+` seconds`:``].join(` `).toLowerCase()}var HO={user_path:0,label:1};function UO(e,t){let n=Array.isArray(e)?e.slice():[],r=String(t||`subject`);return n.sort((e,t)=>{let n=(HO[TO(e)]||0)-(HO[TO(t)]||0),i=EO(e).localeCompare(EO(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 WO(e,t,n){let r=Array.isArray(e)?e:[],i=String(t||``).trim().toLowerCase();return UO(i?r.filter(e=>VO(e).includes(i)):r.slice(),n)}function GO(e){let t=e||{},n=TO(t),r=String(t.subject||``).trim();if(n===`user_path`){let e=LO(r);if(e)return{payload:null,error:e}}else if(!r)return{payload:null,error:`Label is required.`};let i=Number(t.amount);if(!Number.isFinite(i)||i<=0)return{payload:null,error:`Amount must be greater than 0.`};let a=String(t.period||``).trim(),o=NO(a);return a===`custom`&&(o=Number(t.period_seconds)),!Number.isFinite(o)||o<=0?{payload:null,error:`Period seconds must be greater than 0.`}:{payload:{scope:n,subject:n===`user_path`?RO(r):r,period_seconds:Math.trunc(o),amount:i,source:String(t.source||`manual`).trim()||`manual`},error:``}}function KO(e){return{scope:TO(e),subject:EO(e),budget_key:{period_seconds:e.period_seconds},amount:e.amount}}function qO(e){return{scope:TO(e),subject:EO(e),budget_key:{period_seconds:e.period_seconds}}}function JO(e){return{scope:TO(e),subject:EO(e),period_seconds:e.period_seconds}}function YO(e){return ld(e)}function XO(e,t){let n=e||{},r=t||{};return`A budget for "`+((EO(n)||EO(r))+` `+ik({period_seconds:n.period_seconds||r.period_seconds,period_label:r.period_label}))+`" already exists. Saving will override the current `+YO(r.amount)+` limit with `+YO(n.amount)+`.`}function ZO(e){let t=Number(e);return!Number.isFinite(t)||t<0?0:t}function QO(e,t){let n=ZO(e);return Math.round((t?Math.min(n,1):n)*1e3)/10}function $O(e){return ZO(e&&e.usage_ratio)}function ek(e){return QO($O(e),!0)}function tk(e){return QO(e&&e.period_ratio,!0)}function nk(e){return QO($O(e),!1).toFixed(1).replace(/\.0$/,``)+`%`}function rk(e){return tk(e).toFixed(1).replace(/\.0$/,``)+`%`}function ik(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return`Hourly`;case 86400:return`Daily`;case 604800:return`Weekly`;case 2592e3:return`Monthly`;default:{let n=String(e&&e.period_label||``).trim();return n?`Custom `+n:`Custom `+String(t||``)+`s`}}}function ak(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 ok(e){return ak(e).replace(`budget-period-label-`,`budget-bar-fill-period-`)}function sk(e){return ak(e).replace(`budget-period-label-`,`budget-bar-track-period-`)}function ck(e){switch(Number(e&&e.period_seconds||0)){case 3600:return zc;case 86400:return vl;case 604800:return Oc;case 2592e3:return kc;default:return fl}}function lk(e){let t=Math.max(0,Math.trunc(Number(e||0)));return t+` `+(t===1?`second`:`seconds`)}function uk(e){let t=Number(e&&e.period_seconds||0);switch(t){case 3600:return`1 hour`;case 86400:return`1 day`;case 604800:return`1 week`;case 2592e3:return`1 month`;default:return lk(t)}}function dk(e){return String(e&&e.source||``).trim()||`manual`}function fk(e){let t=dk(e).toLowerCase();return t===`manual`?`Created from the dashboard.`:t===`config`?`Loaded from configuration.`:`Budget source: `+t}function pk(e){let t=Number(e&&e.remaining);return Number.isFinite(t)?t<0?ld(Math.abs(t))+` over`:ld(t)+` remaining`:``}var X=new class{#e=j(N([]));get budgets(){return R(this.#e)}set budgets(e){M(this.#e,e,!0)}#t=j(!0);get budgetsAvailable(){return R(this.#t)}set budgetsAvailable(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get filter(){return R(this.#r)}set filter(e){M(this.#r,e,!0)}#i=j(`subject`);get sortBy(){return R(this.#i)}set sortBy(e){M(this.#i,e,!0)}#a=j(``);get error(){return R(this.#a)}set error(e){M(this.#a,e,!0)}#o=j(!1);get formOpen(){return R(this.#o)}set formOpen(e){M(this.#o,e,!0)}#s=j(!1);get formSubmitting(){return R(this.#s)}set formSubmitting(e){M(this.#s,e,!0)}#c=j(``);get formError(){return R(this.#c)}set formError(e){M(this.#c,e,!0)}#l=j(!1);get editing(){return R(this.#l)}set editing(e){M(this.#l,e,!0)}#u=j(N(SO()));get form(){return R(this.#u)}set form(e){M(this.#u,e,!0)}#d=j(!1);get overrideDialogOpen(){return R(this.#d)}set overrideDialogOpen(e){M(this.#d,e,!0)}#f=j(null);get overridePendingPayload(){return R(this.#f)}set overridePendingPayload(e){M(this.#f,e,!0)}#p=j(null);get overrideExistingBudget(){return R(this.#p)}set overrideExistingBudget(e){M(this.#p,e,!0)}#m=j(``);get resettingKey(){return R(this.#m)}set resettingKey(e){M(this.#m,e,!0)}#h=j(``);get deletingKey(){return R(this.#h)}set deletingKey(e){M(this.#h,e,!0)}#g=j(!1);get resetAllLoading(){return R(this.#g)}set resetAllLoading(e){M(this.#g,e,!0)}#_=null;managementEnabled(){return bu.budgetsVisible()}filteredBudgets(){return WO(this.budgets,this.filter,this.sortBy)}async fetchBudgetsPage(){if(await bu.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 bO(`/admin/budgets`,{label:`budgets`,errorFallback:`Unable to load budgets.`,normalize:BO});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:TO(e),subject:EO(e),period:PO(t),period_seconds:t,amount:String(e.amount||``),source:String(e.source||`manual`)}}else this.form=SO();this.formOpen=!0}syncPeriodSeconds(){let e=NO(String(this.form.period||``).trim());e>0&&(this.form.period_seconds=e)}setFormSubject(e){this.form.subject=this.form.scope===`label`?String(e??``):zO(e)}syncScope(){jO(this.form)}closeForm(){this.closeOverrideDialog(),this.formOpen=!1,this.formSubmitting=!1,this.formError=``,this.editing=!1,this.form=SO()}async submitForm(){if(this.formSubmitting)return;let{payload:e,error:t}=GO(this.form);if(!e){this.formError=t;return}if(!this.editing){let t=IO(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 xO(`/admin/budgets`,`PUT`,KO(e),{label:`save budget`,errorFallback:`Unable to save budget.`,unavailableMessage:`Budget management is unavailable.`});if(this.formSubmitting=!1,t.status!==`stale`){if(t.status===`unavailable`){this.budgetsAvailable=!1,this.formError=t.error;return}if(t.status===`error`){this.formError=t.error;return}this.closeForm(),ed.success(`Budget saved.`),this.fetchBudgets()}}openOverrideDialog(e,t){this.overrideExistingBudget=e||null,this.overridePendingPayload=t||null,this.overrideDialogOpen=!0}closeOverrideDialog(){this.overrideDialogOpen=!1,this.overridePendingPayload=null,this.overrideExistingBudget=null}async confirmOverride(){if(!this.overridePendingPayload){this.closeOverrideDialog();return}let e=this.overridePendingPayload;this.closeOverrideDialog(),await this.saveBudgetPayload(e)}async resetBudget(e){if(!e)return;let t=FO(e);if(this.resettingKey===t)return;let n=EO(e)+` `+ik(e);if(!confirm(`Reset budget "`+n+`"?`))return;this.resettingKey=t;let r=await xO(`/admin/budgets/reset-one`,`POST`,JO(e),{label:`reset budget`,errorFallback:`Unable to reset budget.`,unavailableMessage:`Budget management is unavailable.`});if(this.resettingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,ed.error(r.error);return}if(r.status===`error`){ed.error(r.error);return}ed.success(`Budget reset.`),this.fetchBudgets()}}async deleteBudget(e){if(!e)return;let t=FO(e);if(this.deletingKey===t)return;let n=EO(e)+` `+ik(e);if(!confirm(`Delete budget "`+n+`"? This cannot be undone.`))return;this.deletingKey=t;let r=await xO(`/admin/budgets`,`DELETE`,qO(e),{label:`delete budget`,errorFallback:`Unable to delete budget.`,unavailableMessage:`Budget management is unavailable.`});if(this.deletingKey=``,r.status!==`stale`){if(r.status===`unavailable`){this.budgetsAvailable=!1,ed.error(r.error);return}if(r.status===`error`){ed.error(r.error);return}this.budgets=BO(r.result.data),ed.success(`Budget deleted.`)}}openResetDialog(){zu.open({title:`Reset Budgets`,titleId:`budgetResetDialogTitle`,inputId:`budget-reset-confirmation`,requiredText:`reset`,confirmLabel:`Reset All Budgets`,icon:sl,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.resetAllBudgets()})}async resetAllBudgets(){if(this.resetAllLoading)return;this.resetAllLoading=!0;let e=await xO(`/admin/budgets/reset`,`POST`,{confirmation:`reset`},{label:`reset budgets`,errorFallback:`Unable to reset budgets.`,unavailableStatuses:[]});if(this.resetAllLoading=!1,e.status!==`stale`){if(e.status!==`ok`){zu.error=e.error;return}zu.close(),ed.success(`Budgets reset.`),Bl.page===`budgets`&&this.fetchBudgets()}}},mk=B(` Edit`,1),hk=B(` `,1),gk=B(`
        Usage
        Period
        `),_k=B(`
        `);function vk(e,t){O(t,!0);let n=q(t,`budgets`,19,()=>[]);function r(e){if(!e)return``;let t=lu.formatTimestamp(e);return!t||t===`-`?``:t+` `+lu.effectiveTimeZoneLabel()}var i=_k();W(i,21,n,e=>FO(e),(e,t)=>{var n=gk(),i=P(n),a=P(i),o=P(a),s=P(o),c=e=>{J(e,{get icon(){return yl},class:`budget-scope-icon`})},l=A(()=>TO(R(t))===`label`);U(s,e=>{R(l)&&e(c)});var u=I(s);D(o);var d=I(o,2),f=P(d),p=P(f);{let e=A(()=>ck(R(t)));J(p,{get icon(){return R(e)},class:`budget-period-icon`})}var m=I(p,2),h=P(m,!0);D(m),D(f),D(d);var g=I(d,2),_=P(g),v=P(_),y=P(v,!0);D(v),D(_);var b=I(_,2),x=P(b);yO(x,{label:`Edit budget`,class:`budget-action-btn`,onclick:()=>X.openForm(R(t)),children:(e,t)=>{var n=mk();J(F(n),{get icon(){return nl},class:`budget-action-icon`}),Ve(2),V(e,n)},$$slots:{default:!0}});var S=I(x,2);{let e=A(()=>X.resettingKey===FO(R(t))?`Resetting budget`:`Reset budget`),n=A(()=>X.resettingKey===FO(R(t)));yO(S,{get label(){return R(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>X.resetBudget(R(t)),get disabled(){return R(n)},children:(e,n)=>{var r=hk(),i=F(r);J(i,{get icon(){return sl},class:`budget-action-icon`});var a=I(i,2),o=P(a,!0);D(a),L(e=>H(o,e),[()=>X.resettingKey===FO(R(t))?`Resetting`:`Reset`]),V(e,r)},$$slots:{default:!0}})}var C=I(S,2);{let e=A(()=>X.deletingKey===FO(R(t))?`Deleting budget`:`Delete budget`),n=A(()=>X.deletingKey===FO(R(t)));yO(C,{get label(){return R(e)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>X.deleteBudget(R(t)),get disabled(){return R(n)},children:(e,n)=>{var r=hk(),i=F(r);J(i,{get icon(){return xl},class:`budget-action-icon`});var a=I(i,2),o=P(a,!0);D(a),L(e=>H(o,e),[()=>X.deletingKey===FO(R(t))?`Deleting`:`Delete`]),V(e,r)},$$slots:{default:!0}})}D(b),D(g),D(a);var w=I(a,2),T=P(w),E=P(T),ee=I(P(E),2),te=P(ee,!0);D(ee),D(E);var ne=I(E,2),re=P(ne);let ie;var ae=I(re,2),oe=P(ae),se=P(oe,!0);D(oe);var ce=I(oe,2),le=P(ce,!0);D(ce),D(ae);var ue=I(ae,2),de=P(ue),fe=P(de,!0);D(de);var pe=I(de,2),me=P(pe,!0);D(pe),D(ue),D(ne),D(T);var he=I(T,2),ge=P(he),_e=I(P(ge),2),ve=P(_e,!0);D(_e),D(ge);var ye=I(ge,2),be=P(ye),xe=I(be,2),Se=P(xe),Ce=P(Se,!0);D(Se);var we=I(Se,2),Te=P(we,!0);D(we);var Ee=I(we,2),De=P(Ee,!0);D(Ee),D(xe);var Oe=I(xe,2),ke=P(Oe),Ae=P(ke,!0);D(ke);var je=I(ke,2),Me=P(je,!0);D(je);var Ne=I(je,2),Pe=P(Ne,!0);D(Ne),D(Oe),D(ye),D(he),D(w),D(i),D(n),L((e,t,n,r,i,a,s,c,l,d,p,m,g,_,b,x,S,C,w,T,E,ee,ae,oe,ce,ue,de,pe,he,ge)=>{G(o,1,`budget-scope-value ${e??``}`,`svelte-1jm56wo`),Bi(o,t),K(o,`title`,n),H(u,` ${r??``}`),G(f,1,`budget-period-label ${i??``}`,`svelte-1jm56wo`),H(h,a),K(v,`title`,s),H(y,c),H(te,l),K(ne,`aria-valuenow`,d),K(ne,`aria-label`,p),Bi(ne,`--budget-progress: ${m??``}%`),ie=G(re,1,`budget-bar-fill budget-bar-fill-usage`,null,ie,g),H(se,_),H(le,b),H(fe,x),H(me,S),H(ve,C),G(ye,1,`budget-bar-track ${w??``}`,`svelte-1jm56wo`),K(ye,`aria-valuenow`,T),Bi(ye,`--budget-progress: ${E??``}%`),G(be,1,`budget-bar-fill budget-bar-fill-period ${ee??``}`,`svelte-1jm56wo`),K(Se,`title`,ae),H(Ce,oe),H(Te,ce),K(Ee,`title`,ue),H(De,de),H(Ae,pe),H(Me,he),H(Pe,ge)},[()=>OO(R(t)),()=>TO(R(t))===`label`?`--label-color: `+WS(EO(R(t))):void 0,()=>DO(R(t))+`: `+EO(R(t)),()=>EO(R(t)),()=>ak(R(t)),()=>ik(R(t)),()=>fk(R(t)),()=>dk(R(t)),()=>nk(R(t)),()=>ek(R(t)),()=>`Budget usage: `+ld(R(t).spent)+` of `+ld(R(t).amount)+`, `+pk(R(t)),()=>ek(R(t)),()=>({"budget-bar-fill-danger":$O(R(t))>=1}),()=>ld(R(t).spent)+` of `+ld(R(t).amount),()=>pk(R(t)),()=>ld(R(t).spent)+` of `+ld(R(t).amount),()=>pk(R(t)),()=>rk(R(t)),()=>sk(R(t)),()=>tk(R(t)),()=>tk(R(t)),()=>ok(R(t)),()=>r(R(t).period_start),()=>lu.formatTimestamp(R(t).period_start),()=>uk(R(t)),()=>r(R(t).period_end),()=>lu.formatTimestamp(R(t).period_end),()=>lu.formatTimestamp(R(t).period_start),()=>uk(R(t)),()=>lu.formatTimestamp(R(t).period_end)]),V(e,n)}),D(i),V(e,i),k()}var yk=B(`

        `,1),bk=B(``),xk=B(``),Sk=B(`
        `);function Ck(e,t){O(t,!0);let n=q(t,`open`,3,!1),r=q(t,`title`,3,``),i=q(t,`ariaLabel`,3,``),a=q(t,`error`,3,``),o=q(t,`submitting`,3,!1),s=q(t,`submitDisabled`,3,!1),c=q(t,`submitLabel`,3,`Save`),l=q(t,`submittingLabel`,3,`Saving...`),u=q(t,`submitIcon`,3,cl),d=q(t,`cancel`,3,!0),p=q(t,`dialogClass`,3,``),m=q(t,`novalidate`,3,!1),h=q(t,`canClose`,3,()=>!0);function g(){Y.dialogOpen||h()()&&t.onclose?.()}Nu(e,{get open(){return n()},variant:`editor`,onclose:g,children:(e,n)=>{var h=Sk(),g=P(h),_=P(g),v=P(_),y=P(v),b=e=>{var n=Xr();mi(F(n),()=>t.header),V(e,n)},x=e=>{var n=yk(),i=F(n),a=P(i,!0);D(i);var o=I(i,2),s=e=>{var n=Xr();mi(F(n),()=>t.headerHint),V(e,n)};U(o,e=>{t.headerHint&&e(s)}),L(()=>H(a,r())),V(e,n)};U(y,e=>{t.header?e(b):e(x,-1)}),D(v);var S=I(v,2);{let e=A(()=>`Close `+(i()||r()).toLowerCase());ku(S,{get label(){return R(e)},onclick:()=>t.onclose?.()})}D(_);var C=I(_,2);mi(C,()=>t.children??f);var w=I(C,2),T=e=>{var t=bk(),n=P(t,!0);D(t),L(()=>H(n,a())),V(e,t)};U(w,e=>{a()&&e(T)});var E=I(w,2),ee=P(E),te=e=>{var n=xk();z(`click`,n,()=>t.onclose?.()),V(e,n)};U(ee,e=>{d()&&e(te)});var ne=I(ee,2),re=e=>{var n=Xr();mi(F(n),()=>t.extraActions),V(e,n)};U(ne,e=>{t.extraActions&&e(re)});var ie=I(ne,2),ae=P(ie);J(ae,{get icon(){return u()},class:`form-action-icon`});var oe=I(ae,2),se=P(oe,!0);D(oe),D(ie),D(E),D(g),D(h),L(()=>{G(h,1,Ni([`model-editor`,p()])),K(h,`aria-label`,i()||r()),g.noValidate=m(),ie.disabled=o()||s(),H(se,o()?l():c())}),zr(`submit`,g,e=>{e.preventDefault(),t.onsubmit?.()}),V(e,h)},$$slots:{default:!0}}),k()}Br([`click`]);var wk=B(`
        `);function Tk(e,t){let n=q(t,`label`,3,``);var r=wk(),i=P(r),a=P(i,!0);D(i),mi(I(i,2),()=>t.children??f),D(r),L(()=>{K(i,`for`,t.id),H(a,n())}),V(e,r)}var Ek=B(``),Dk=B(``),Ok=B(``),kk=B(``),Ak=B(``),jk=B(``),Mk=B(`

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

        `),Nk=B(`
        `,1),Pk=B(``),Fk=B(` `,1);function Ik(e,t){O(t,!0);function n(e){X.setFormSubject(e.target.value),e.target.value=X.form.subject}var r=Fk(),i=F(r);{let e=A(()=>X.editing?`Edit Budget`:`Create Budget`);Ck(i,{get open(){return X.formOpen},get title(){return R(e)},ariaLabel:`Budget editor`,get error(){return X.formError},get submitting(){return X.formSubmitting},submitLabel:`Save Budget`,dialogClass:`budget-editor`,canClose:()=>!X.overrideDialogOpen,onclose:()=>X.closeForm(),onsubmit:()=>X.submitForm(),children:(e,t)=>{var r=Nk(),i=F(r),a=P(i);Tk(a,{id:`budget-scope`,label:`Scope`,children:(e,t)=>{var n=Dk();W(n,21,wO,e=>e.value,(e,t)=>{var n=Ek(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n),L(()=>n.disabled=X.editing),z(`change`,n,()=>X.syncScope()),Ui(n,()=>X.form.scope,e=>X.form.scope=e),V(e,n)},$$slots:{default:!0}});var o=I(a,2);{let e=A(()=>kO(X.form));Tk(o,{id:`budget-subject`,get label(){return R(e)},children:(e,t)=>{var r=Ok();ea(r),L(e=>{K(r,`placeholder`,e),ta(r,X.form.subject),r.disabled=X.editing,K(r,`data-modal-autofocus`,!X.editing||void 0)},[()=>AO(X.form)]),z(`input`,r,n),V(e,r)},$$slots:{default:!0}})}var s=I(o,2);Tk(s,{id:`budget-period`,label:`Period`,children:(e,t)=>{var n=kk();W(n,21,MO,e=>e.value,(e,t)=>{var n=Ek(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n),L(()=>n.disabled=X.editing),z(`change`,n,()=>X.syncPeriodSeconds()),Ui(n,()=>X.form.period,e=>X.form.period=e),V(e,n)},$$slots:{default:!0}});var c=I(s,2),l=e=>{Tk(e,{id:`budget-period-seconds`,label:`Period Seconds`,children:(e,t)=>{var n=Ak();ea(n),L(()=>n.disabled=X.editing),la(n,()=>X.form.period_seconds,e=>X.form.period_seconds=e),V(e,n)},$$slots:{default:!0}})};U(c,e=>{X.form.period===`custom`&&e(l)}),Tk(I(c,2),{id:`budget-amount`,label:`Amount`,children:(e,t)=>{var n=jk();ea(n),L(()=>K(n,`data-modal-autofocus`,X.editing||void 0)),la(n,()=>X.form.amount,e=>X.form.amount=e),V(e,n)},$$slots:{default:!0}}),D(i);var u=I(i,2),d=e=>{V(e,Mk())};U(u,e=>{X.editing&&e(d)}),V(e,r)},$$slots:{default:!0}})}Nu(I(i,2),{get open(){return X.overrideDialogOpen},variant:`auth`,onclose:()=>X.closeOverrideDialog(),children:(e,t)=>{var n=Pk(),r=P(n);ku(I(P(r),2),{label:`Close budget override dialog`,onclick:()=>X.closeOverrideDialog(),class:`auth-dialog-close`,iconClass:``}),D(r);var i=I(r,2),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s),l=I(c,2),u=P(l);J(u,{get icon(){return cl},class:`form-action-icon`});var d=I(u,2),f=P(d,!0);D(d),D(l),D(s),D(i),D(n),L(e=>{H(o,e),l.disabled=X.formSubmitting,H(f,X.formSubmitting?`Saving...`:`Override Budget`)},[()=>XO(X.overridePendingPayload,X.overrideExistingBudget)]),zr(`submit`,i,e=>{e.preventDefault(),X.confirmOverride()}),z(`click`,c,()=>X.closeOverrideDialog()),V(e,n)},$$slots:{default:!0}}),V(e,r),k()}Br([`change`,`input`,`click`]);var Lk=B(`

        Budgets

        `),Rk=B(``),zk=B(`
        Budget management is unavailable.
        `),Bk=B(``),Vk=B(`
        `),Hk=B(`

        No budgets configured yet.

        `),Uk=B(`

        No budgets match your filter.

        `),Wk=B(`
        `);function Gk(e,t){O(t,!0),On(()=>{Y.refreshTick,Bl.page===`budgets`&&X.fetchBudgetsPage()});let n=A(()=>X.filteredBudgets());var r=Wk(),i=P(r),a=P(i);YT(P(a),{copyId:`budgets-help-copy`,label:`budgets help`,title:e=>{V(e,Lk())},help:e=>{Ve(),V(e,Yr(`Budgets are evaluated from tracked usage cost records for each user - path subtree. Enforcement runs only when Budget is enabled for the - active workflow.`))},$$slots:{title:!0,help:!0}}),D(a);var o=I(a,2),s=P(o),c=e=>{var t=Rk();J(P(t),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(t),L(()=>t.disabled=X.formSubmitting),z(`click`,t,()=>X.openForm()),V(e,t)},l=A(()=>X.managementEnabled()&&X.budgetsAvailable&&!Y.authError);U(s,e=>{R(l)&&e(c)}),D(o),D(i);var u=I(i,2);Rd(u,{});var d=I(u,2),f=e=>{V(e,zk())},p=A(()=>(!X.managementEnabled()||!X.budgetsAvailable)&&!Y.authError);U(d,e=>{R(p)&&e(f)});var m=I(d,2),h=e=>{var t=Bk(),n=P(t,!0);D(t),L(()=>H(n,X.error)),V(e,t)};U(m,e=>{X.error&&!Y.authError&&e(h)});var g=I(m,2),_=e=>{_O(e,{label:`Loading budgets...`})};U(g,e=>{X.loading&&!Y.authError&&e(_)});var v=I(g,2),y=e=>{var t=Vk(),n=P(t);SD(P(n),{id:`budget-filter`,placeholder:`Filter by user path, label, or period...`,label:`Filter budgets by user path or period`,get value(){return X.filter},set value(e){X.filter=e}}),D(n);var r=I(n,2),i=I(P(r),2),a=P(i);a.value=a.__value=`subject`;var o=I(a);o.value=o.__value=`period`,D(i),D(r),D(t),Ui(i,()=>X.sortBy,e=>X.sortBy=e),V(e,t)};U(v,e=>{(X.budgets.length>0||X.filter)&&X.budgetsAvailable&&!Y.authError&&!X.formOpen&&e(y)});var b=I(v,2);Ik(b,{});var x=I(b,2),S=e=>{vk(e,{get budgets(){return R(n)}})};U(x,e=>{R(n).length>0&&X.budgetsAvailable&&!Y.authError&&e(S)});var C=I(x,2),w=e=>{V(e,Hk())},T=A(()=>X.budgets.length===0&&!X.filter&&!X.loading&&!Y.authError&&!X.error&&X.budgetsAvailable&&X.managementEnabled());U(C,e=>{R(T)&&e(w)});var E=I(C,2),ee=e=>{V(e,Uk())},te=A(()=>X.budgets.length>0&&R(n).length===0&&X.filter&&!X.loading&&!Y.authError&&!X.error&&X.budgetsAvailable&&X.managementEnabled());U(E,e=>{R(te)&&e(ee)}),D(r),V(e,r),k()}Br([`click`]);function Kk(){return{scope:`user_path`,subject:`/`,period:`minute`,period_seconds:60,max_requests:``,max_tokens:``,source:`manual`}}function qk(e){let t={user_path:{label:`User path`,chip:`user path`,fieldLabel:`User Path`,placeholder:`/team/alpha`},provider:{label:`Provider`,chip:`provider`,fieldLabel:`Provider Name`,placeholder:`openai`},model:{label:`Model`,chip:`model`,fieldLabel:`Model`,placeholder:`openai/gpt-4o`}};return t[e]||t.user_path}function Jk(){return[`user_path`,`provider`,`model`].map(e=>({value:e,label:qk(e).label}))}function Yk(e){return String(e&&e.scope||``).trim()||`user_path`}function Xk(e){return String(e&&e.subject||``).trim()||String(e&&e.user_path||``)}function Zk(e){return qk(Yk(e)).chip}function Qk(e){return qk(String(e&&e.scope||``)).fieldLabel}function $k(e){return qk(String(e&&e.scope||``)).placeholder}function eA(e){e.subject=String(e&&e.scope||``)===`user_path`?`/`:``}function tA(){return[{value:`minute`,label:`Per minute`},{value:`hour`,label:`Per hour`},{value:`day`,label:`Per day`},{value:`concurrent`,label:`Concurrent (in-flight)`},{value:`custom`,label:`Custom seconds`}]}function nA(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 rA(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 iA(e){let t=String(e&&e.period||``).trim(),n=nA(t);n>=0&&(e.period_seconds=n),t===`concurrent`&&(e.max_tokens=``)}function aA(e){return Yk(e)+`:`+Xk(e)+`:`+String(e&&e.period_seconds||`0`)}function oA(e){return Number(e&&e.period_seconds||0)===0}function sA(e){return String(e&&e.period_label||``).trim()||rA(Number(e&&e.period_seconds||0))}function cA(e){return String(e&&e.source||``)===`config`?`config`:`manual`}function lA(e){return String(e&&e.source||``)===`config`}function uA(e){let t=Number(e);return Number.isFinite(t)?t.toLocaleString():`0`}function dA(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 fA(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[Yk(e)]||0)-(i[Yk(t)]||0);if(n!==0)return n;let r=Xk(e).localeCompare(Xk(t));return r===0?Number(e.period_seconds||0)-Number(t.period_seconds||0):r}),n?r.filter(e=>{let t=Xk(e).toLowerCase(),r=Zk(e).toLowerCase(),i=sA(e).toLowerCase();return t.includes(n)||r.includes(n)||i.includes(n)}):r}function pA(e){return!e||!Array.isArray(e.rate_limits)?[]:e.rate_limits}function mA(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 hA(e,t){return e?mA(t.scope,t.subject,t.limit_key.period_seconds)!==mA(e.scope,e.subject,e.period_seconds):!1}function gA(e){let t=e||{},n=String(t.scope||`user_path`),r=String(t.subject||``).trim();if(n!==`user_path`&&!r)return{error:Qk(t)+` is required.`};let i=String(t.period||``)===`concurrent`,a=t.period_seconds;if(a===``||a==null)return{error:`Period seconds is required.`};let o=Number(a);if(!Number.isInteger(o)||o<0||o===0&&!i)return{error:`Period seconds must be a positive integer (0 only for the concurrent period).`};let s=String(t.max_requests===void 0||t.max_requests===null?``:t.max_requests).trim(),c=String(t.max_tokens===void 0||t.max_tokens===null?``:t.max_tokens).trim();if(!s&&!c)return{error:`Set max requests, max tokens, or both.`};if(i&&c)return{error:`Token limits are not valid for the concurrent period.`};let l={scope:n,subject:r||`/`,limit_key:{period_seconds:o}};if(s){let e=Number(s);if(!Number.isInteger(e)||e<=0)return{error:`Max requests must be a positive integer.`};l.max_requests=e}if(c){let e=Number(c);if(!Number.isInteger(e)||e<=0)return{error:`Max tokens must be a positive integer.`};l.max_tokens=e}return{payload:l}}function _A(e,t,n){if(Yk(e)!==`model`)return!1;let r=String(Xk(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 vA(e,t){return Yk(e)===`provider`&&String(Xk(e)).toLowerCase()===String(t||``).trim().toLowerCase()}function yA(e){let t=e||{},n=String(t.model||``),r=String(t.provider||``);return!r||n.toLowerCase().startsWith(r+`/`)?n:r+`/`+n}function bA(e,t){let n=e||{},r=Array.isArray(t)?t:[],i=[];return n.kind===`model`&&i.push({key:`model`,title:`Model limits`,scope:`model`,subject:yA(n),hint:``,items:r.filter(e=>_A(e,n.provider,n.model))}),i.push({key:`provider`,title:`Provider limits (`+n.provider+`)`,scope:`provider`,subject:n.provider,hint:n.kind===`model`?`Shared by every model routed to this provider.`:``,items:r.filter(e=>vA(e,n.provider))}),i.push({key:`global`,title:`Global limits`,scope:`user_path`,subject:`/`,hint:`Root user-path rules throttle all traffic. Narrower user-path rules also apply, per consumer.`,items:r.filter(e=>Yk(e)===`user_path`&&Xk(e)===`/`)}),i}function xA(e){return oA(e)?dA(e.in_flight,e.max_requests):Math.max(dA(e.requests_used,e.max_requests),dA(e.tokens_used,e.max_tokens))}function SA(e){return`--rate-limit-pressure: `+xA(e)+`%`}function CA(e){let t=xA(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 wA(e){return(Array.isArray(e)?e:[]).some(e=>Yk(e)===`user_path`&&Xk(e)===`/`)}function TA(e,t,n){let r=Array.isArray(e)?e:[];return r.some(e=>_A(e,t,n))?`table-action-btn-active`:r.some(e=>vA(e,t))||wA(r)?`rate-limit-gauge-inherited`:``}function EA(e,t){let n=Array.isArray(e)?e:[];return n.some(e=>vA(e,t))?`table-action-btn-active`:wA(n)?`rate-limit-gauge-inherited`:``}function DA(e,t){let n=`Rate limits for `+e;return t===`table-action-btn-active`?n+` (direct limits configured)`:t?n+` (inherited limits apply)`:n}function OA(e){if(oA(e))return uA(e.in_flight)+` of `+uA(e.max_requests)+` in flight`;let t=[];return e.max_requests!==null&&e.max_requests!==void 0&&t.push(uA(e.requests_used)+`/`+uA(e.max_requests)+` req`),e.max_tokens!==null&&e.max_tokens!==void 0&&t.push(uA(e.tokens_used)+`/`+uA(e.max_tokens)+` tok`),t.join(` · `)}var Z=new class{#e=j(N([]));get rateLimits(){return R(this.#e)}set rateLimits(e){M(this.#e,e,!0)}#t=j(!0);get rateLimitsAvailable(){return R(this.#t)}set rateLimitsAvailable(e){M(this.#t,e,!0)}#n=j(!1);get rateLimitsLoading(){return R(this.#n)}set rateLimitsLoading(e){M(this.#n,e,!0)}rateLimitFetchPromise=null;#r=j(``);get rateLimitFilter(){return R(this.#r)}set rateLimitFilter(e){M(this.#r,e,!0)}#i=j(``);get rateLimitError(){return R(this.#i)}set rateLimitError(e){M(this.#i,e,!0)}#a=j(!1);get rateLimitFormOpen(){return R(this.#a)}set rateLimitFormOpen(e){M(this.#a,e,!0)}#o=j(!1);get rateLimitFormSubmitting(){return R(this.#o)}set rateLimitFormSubmitting(e){M(this.#o,e,!0)}#s=j(``);get rateLimitFormError(){return R(this.#s)}set rateLimitFormError(e){M(this.#s,e,!0)}#c=j(!1);get rateLimitEditing(){return R(this.#c)}set rateLimitEditing(e){M(this.#c,e,!0)}rateLimitEditingOriginal=null;rateLimitFormReturnToInspector=!1;#l=j(``);get rateLimitResettingKey(){return R(this.#l)}set rateLimitResettingKey(e){M(this.#l,e,!0)}#u=j(``);get rateLimitDeletingKey(){return R(this.#u)}set rateLimitDeletingKey(e){M(this.#u,e,!0)}#d=j(!1);get rateLimitInspectorOpen(){return R(this.#d)}set rateLimitInspectorOpen(e){M(this.#d,e,!0)}#f=j(N({kind:``,provider:``,model:``,title:``}));get rateLimitInspector(){return R(this.#f)}set rateLimitInspector(e){M(this.#f,e,!0)}#p=j(N(Kk()));get rateLimitForm(){return R(this.#p)}set rateLimitForm(e){M(this.#p,e,!0)}rateLimitsEnabled(){return bu.rateLimitsVisible()}defaultRateLimitForm(){return Kk()}rateLimitScopeMeta(e){return qk(e)}rateLimitScopeOptions(){return Jk()}rateLimitScope(e){return Yk(e)}rateLimitSubject(e){return Xk(e)}rateLimitScopeLabel(e){return Zk(e)}rateLimitSubjectFieldLabel(){return Qk(this.rateLimitForm)}rateLimitSubjectPlaceholder(){return $k(this.rateLimitForm)}syncRateLimitScope(){eA(this.rateLimitForm)}rateLimitPeriodOptions(){return tA()}rateLimitPeriodSeconds(e){return nA(e)}rateLimitPeriodFromSeconds(e){return rA(e)}syncRateLimitPeriodSeconds(){iA(this.rateLimitForm)}rateLimitKey(e){return aA(e)}rateLimitIsConcurrent(e){return oA(e)}rateLimitPeriodLabel(e){return sA(e)}rateLimitSourceLabel(e){return cA(e)}rateLimitIsReadOnly(e){return lA(e)}formatRateLimitNumber(e){return uA(e)}rateLimitUsagePercent(e,t){return dA(e,t)}filteredRateLimits(){return fA(this.rateLimits,this.rateLimitFilter)}normalizeRateLimitListPayload(e){return pA(e)}async fetchRateLimitsPage(){if(await bu.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 bO(`/admin/rate-limits`,{label:`rate limits`,errorFallback:`Unable to load rate limits.`,normalize:pA});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:Yk(e),subject:Xk(e),period_seconds:t},this.rateLimitForm={scope:Yk(e),subject:Xk(e),period:rA(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=Kk();this.rateLimitFormOpen=!0}closeRateLimitForm(){this.rateLimitFormOpen=!1,this.rateLimitFormSubmitting=!1,this.rateLimitFormError=``,this.rateLimitEditing=!1,this.rateLimitEditingOriginal=null,this.rateLimitForm=Kk(),this.rateLimitFormReturnToInspector&&(this.rateLimitFormReturnToInspector=!1,this.rateLimitInspectorOpen=!0)}rateLimitNormalizedIdentity(e,t,n){return mA(e,t,n)}rateLimitIdentityMoved(e){return hA(this.rateLimitEditingOriginal,e)}setRateLimitFormSubject(e){this.rateLimitForm.subject=String(e||``)}rateLimitFormPayload(){return gA(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 xO(`/admin/rate-limits`,`PUT`,e,{label:`save rate limit`,errorFallback:`Unable to save rate limit.`,unavailableStatuses:[]});if(t.status===`stale`)return;if(t.status!==`ok`){this.rateLimitFormError=t.error;return}if(this.rateLimits=pA(t.result.data),n&&!await this.deleteMovedRateLimitOriginal(r))return;this.closeRateLimitForm(),ed.success(n?`Rate limit moved; live counters restarted.`:`Rate limit saved.`)}finally{this.rateLimitFormSubmitting=!1}}async deleteMovedRateLimitOriginal(e){let t=await xO(`/admin/rate-limits`,`DELETE`,{scope:e.scope,subject:e.subject,limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`remove the moved rate limit`,errorFallback:`The new rule was saved, but the previous one could not be removed. Delete it manually.`,unavailableStatuses:[]});return t.status===`stale`?!1:t.status===`ok`?(this.rateLimits=pA(t.result.data),!0):(this.rateLimitFormError=t.error,!1)}async deleteRateLimit(e){let t=aA(e);if(this.rateLimitDeletingKey===t)return;this.rateLimitDeletingKey=t;let n=await xO(`/admin/rate-limits`,`DELETE`,{scope:Yk(e),subject:Xk(e),limit_key:{period_seconds:Number(e.period_seconds||0)}},{label:`delete rate limit`,errorFallback:`Unable to delete rate limit.`,unavailableStatuses:[]});if(this.rateLimitDeletingKey=``,n.status!==`stale`){if(n.status!==`ok`){ed.error(n.error);return}this.rateLimits=pA(n.result.data),ed.success(`Rate limit deleted.`)}}async resetRateLimit(e){let t=aA(e);if(this.rateLimitResettingKey===t)return;this.rateLimitResettingKey=t;let n=await xO(`/admin/rate-limits/reset-one`,`POST`,{scope:Yk(e),subject:Xk(e),period_seconds:Number(e.period_seconds||0)},{label:`reset rate limit`,errorFallback:`Unable to reset rate limit.`,unavailableStatuses:[]});if(this.rateLimitResettingKey=``,n.status!==`stale`){if(n.status!==`ok`){ed.error(n.error);return}this.rateLimits=pA(n.result.data),ed.success(`Rate limit counters reset.`)}}rateLimitInspectorModelID(e){return String(e&&e.model&&e.model.id||``).trim()}openRateLimitInspectorForModel(e){let t=this.rateLimitInspectorModelID(e),n=String(e&&e.provider_name||``).trim().toLowerCase();this.rateLimitInspector={kind:`model`,provider:n,model:t,title:String(e&&e.display_name||t)},this.showRateLimitInspector()}openRateLimitInspectorForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase();this.rateLimitInspector={kind:`provider`,provider:t,model:``,title:String(e&&e.display_name||t)},this.showRateLimitInspector()}showRateLimitInspector(){this.rateLimitInspectorOpen=!0,this.fetchRateLimitsPage()}closeRateLimitInspector(){this.rateLimitInspectorOpen=!1}rateLimitRuleMatchesModel(e,t,n){return _A(e,t,n)}rateLimitRuleMatchesProvider(e,t){return vA(e,t)}rateLimitInspectorQualifiedModel(){return yA(this.rateLimitInspector)}rateLimitInspectorSections(){return bA(this.rateLimitInspector,this.rateLimits)}rateLimitPressurePercent(e){return xA(e)}rateLimitPressureStyle(e){return SA(e)}rateLimitPressureClass(e){return CA(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,()=>TA(r,n,t))}rateLimitGaugeClassForProvider(e){let t=String(e&&e.provider_name||``).trim().toLowerCase(),n=this.rateLimits;return this.rateLimitGaugeMemo(`provider:`+t,()=>EA(n,t))}hasGlobalRateLimits(){let e=this.rateLimits;return this.rateLimitGaugeMemo(`global`,()=>wA(e))}rateLimitGaugeTitle(e,t){return DA(e,t)}rateLimitInspectorSummary(e){return OA(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)}},kA=B(``),AA=B(``),jA=B(``),MA=B(``),NA=B(``),PA=B(``),FA=B(``),IA=B(`

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

        `),LA=B(`

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

        `,1);function RA(e,t){O(t,!0);{let t=A(()=>Z.rateLimitEditing?`Edit Rate Limit`:`Create Rate Limit`);Ck(e,{get open(){return Z.rateLimitFormOpen},get title(){return R(t)},ariaLabel:`Rate limit editor`,get error(){return Z.rateLimitFormError},get submitting(){return Z.rateLimitFormSubmitting},submitLabel:`Save Rate Limit`,dialogClass:`budget-editor`,novalidate:!0,onclose:()=>Z.closeRateLimitForm(),onsubmit:()=>Z.submitRateLimitForm(),children:(e,t)=>{var n=LA(),r=F(n),i=P(r);Tk(i,{id:`rate-limit-scope`,label:`Scope`,children:(e,t)=>{var n=AA();W(n,21,()=>Z.rateLimitScopeOptions(),e=>e.value,(e,t)=>{var n=kA(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n),z(`change`,n,()=>Z.syncRateLimitScope()),Ui(n,()=>Z.rateLimitForm.scope,e=>Z.rateLimitForm.scope=e),V(e,n)},$$slots:{default:!0}});var a=I(i,2);{let e=A(()=>Z.rateLimitSubjectFieldLabel());Tk(a,{id:`rate-limit-subject`,get label(){return R(e)},children:(e,t)=>{var n=jA();ea(n),L(e=>{K(n,`placeholder`,e),K(n,`data-modal-autofocus`,!Z.rateLimitEditing||void 0),ta(n,Z.rateLimitForm.subject)},[()=>Z.rateLimitSubjectPlaceholder()]),z(`input`,n,e=>Z.setRateLimitFormSubject(e.currentTarget.value)),V(e,n)},$$slots:{default:!0}})}var o=I(a,2);Tk(o,{id:`rate-limit-period`,label:`Period`,children:(e,t)=>{var n=MA();W(n,21,()=>Z.rateLimitPeriodOptions(),e=>e.value,(e,t)=>{var n=kA(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n),z(`change`,n,()=>Z.syncRateLimitPeriodSeconds()),Ui(n,()=>Z.rateLimitForm.period,e=>Z.rateLimitForm.period=e),V(e,n)},$$slots:{default:!0}});var s=I(o,2),c=e=>{Tk(e,{id:`rate-limit-period-seconds`,label:`Period Seconds`,children:(e,t)=>{var n=NA();ea(n),la(n,()=>Z.rateLimitForm.period_seconds,e=>Z.rateLimitForm.period_seconds=e),V(e,n)},$$slots:{default:!0}})};U(s,e=>{Z.rateLimitForm.period===`custom`&&e(c)});var l=I(s,2);{let e=A(()=>Z.rateLimitForm.period===`concurrent`?`Max In-Flight Requests`:`Max Requests`);Tk(l,{id:`rate-limit-max-requests`,get label(){return R(e)},children:(e,t)=>{var n=PA();ea(n),L(()=>K(n,`data-modal-autofocus`,Z.rateLimitEditing?!0:void 0)),la(n,()=>Z.rateLimitForm.max_requests,e=>Z.rateLimitForm.max_requests=e),V(e,n)},$$slots:{default:!0}})}var u=I(l,2),d=e=>{Tk(e,{id:`rate-limit-max-tokens`,label:`Max Tokens`,children:(e,t)=>{var n=FA();ea(n),la(n,()=>Z.rateLimitForm.max_tokens,e=>Z.rateLimitForm.max_tokens=e),V(e,n)},$$slots:{default:!0}})};U(u,e=>{Z.rateLimitForm.period!==`concurrent`&&e(d)}),D(r);var f=I(r,4),p=e=>{V(e,IA())};U(f,e=>{Z.rateLimitEditing&&e(p)}),V(e,n)},$$slots:{default:!0}})}k()}Br([`change`,`input`]);var zA=B(` `),BA=B(` Edit`,1),VA=B(` `,1),HA=B(`
        In-flight
        `),UA=B(`
        Requests
        `),WA=B(`
        Tokens
        `),GA=B(`
        `),KA=B(`
        `);function qA(e,t){O(t,!0);var n=KA();W(n,21,()=>t.rules,e=>Z.rateLimitKey(e),(e,t)=>{var n=GA(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s),l=e=>{var n=zA(),r=P(n);{let e=A(()=>Z.rateLimitScope(R(t))===`provider`?dl:Ec);J(r,{get icon(){return R(e)},class:`budget-period-icon`})}var i=I(r,2),a=P(i,!0);D(i),D(n),L((e,t)=>{K(n,`title`,e),H(a,t)},[()=>`Rule scope: `+Z.rateLimitScopeLabel(R(t)),()=>Z.rateLimitScopeLabel(R(t))]),V(e,n)},u=A(()=>Z.rateLimitScope(R(t))!==`user_path`);U(c,e=>{R(u)&&e(l)});var d=I(c,2),f=P(d);{let e=A(()=>Z.rateLimitIsConcurrent(R(t))?xc:bl);J(f,{get icon(){return R(e)},class:`budget-period-icon`})}var p=I(f,2),m=P(p,!0);D(p),D(d),D(s);var h=I(s,2),g=P(h),_=P(g),v=P(_,!0);D(_),D(g);var y=I(g,2),b=P(y),x=e=>{yO(e,{label:`Edit rate limit`,class:`budget-action-btn`,onclick:()=>Z.openRateLimitForm(R(t)),children:(e,t)=>{var n=BA();J(F(n),{get icon(){return nl},class:`budget-action-icon`}),Ve(2),V(e,n)},$$slots:{default:!0}})},S=A(()=>!Z.rateLimitIsReadOnly(R(t)));U(b,e=>{R(S)&&e(x)});var C=I(b,2);{let e=A(()=>Z.rateLimitResettingKey===Z.rateLimitKey(R(t))?`Resetting counters`:`Reset counters`),n=A(()=>Z.rateLimitResettingKey===Z.rateLimitKey(R(t)));yO(C,{get label(){return R(e)},class:`budget-action-btn budget-action-btn-warning`,onclick:()=>Z.resetRateLimit(R(t)),get disabled(){return R(n)},children:(e,n)=>{var r=VA(),i=F(r);J(i,{get icon(){return sl},class:`budget-action-icon`});var a=I(i,2),o=P(a,!0);D(a),L(e=>H(o,e),[()=>Z.rateLimitResettingKey===Z.rateLimitKey(R(t))?`Resetting`:`Reset`]),V(e,r)},$$slots:{default:!0}})}var w=I(C,2),T=e=>{{let n=A(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(R(t))?`Deleting rate limit`:`Delete rate limit`),r=A(()=>Z.rateLimitDeletingKey===Z.rateLimitKey(R(t)));yO(e,{get label(){return R(n)},class:`table-action-btn-danger budget-action-btn`,onclick:()=>Z.deleteRateLimit(R(t)),get disabled(){return R(r)},children:(e,n)=>{var r=VA(),i=F(r);J(i,{get icon(){return xl},class:`budget-action-icon`});var a=I(i,2),o=P(a,!0);D(a),L(e=>H(o,e),[()=>Z.rateLimitDeletingKey===Z.rateLimitKey(R(t))?`Deleting`:`Delete`]),V(e,r)},$$slots:{default:!0}})}},E=A(()=>!Z.rateLimitIsReadOnly(R(t)));U(w,e=>{R(E)&&e(T)}),D(y),D(h),D(i);var ee=I(i,2),te=P(ee),ne=e=>{var n=HA(),r=P(n),i=I(P(r),2),a=P(i,!0);D(i),D(r);var o=I(r,2),s=P(o);let c;var l=I(s,2),u=P(l),d=P(u,!0);D(u),D(l),D(o),D(n),L((e,t,n,r,i,l)=>{H(a,e),K(o,`aria-valuenow`,t),K(o,`aria-label`,n),Bi(o,r),c=G(s,1,`budget-bar-fill budget-bar-fill-usage`,null,c,i),H(d,l)},[()=>Z.rateLimitUsagePercent(R(t).in_flight,R(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(R(t).in_flight,R(t).max_requests),()=>`In-flight requests: `+Z.formatRateLimitNumber(R(t).in_flight)+` of `+Z.formatRateLimitNumber(R(t).max_requests),()=>`--budget-progress: `+Z.rateLimitUsagePercent(R(t).in_flight,R(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(R(t).in_flight,R(t).max_requests)>=100}),()=>Z.formatRateLimitNumber(R(t).in_flight)+` of `+Z.formatRateLimitNumber(R(t).max_requests)+` in flight`]),V(e,n)},re=A(()=>Z.rateLimitIsConcurrent(R(t)));U(te,e=>{R(re)&&e(ne)});var ie=I(te,2),ae=e=>{var n=UA(),r=P(n),i=I(P(r),2),a=P(i,!0);D(i),D(r);var o=I(r,2),s=P(o);let c;var l=I(s,2),u=P(l),d=P(u,!0);D(u);var f=I(u,2),p=P(f,!0);D(f),D(l),D(o),D(n),L((e,t,n,r,i,l,u)=>{H(a,e),K(o,`aria-valuenow`,t),K(o,`aria-label`,n),Bi(o,r),c=G(s,1,`budget-bar-fill budget-bar-fill-usage`,null,c,i),H(d,l),H(p,u)},[()=>Z.rateLimitUsagePercent(R(t).requests_used,R(t).max_requests)+`%`,()=>Z.rateLimitUsagePercent(R(t).requests_used,R(t).max_requests),()=>`Requests used: `+Z.formatRateLimitNumber(R(t).requests_used)+` of `+Z.formatRateLimitNumber(R(t).max_requests),()=>`--budget-progress: `+Z.rateLimitUsagePercent(R(t).requests_used,R(t).max_requests)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(R(t).requests_used,R(t).max_requests)>=100}),()=>Z.formatRateLimitNumber(R(t).requests_used)+` of `+Z.formatRateLimitNumber(R(t).max_requests)+` requests`,()=>Z.formatRateLimitNumber(R(t).requests_remaining)+` left`]),V(e,n)},oe=A(()=>!Z.rateLimitIsConcurrent(R(t))&&R(t).max_requests);U(ie,e=>{R(oe)&&e(ae)});var se=I(ie,2),ce=e=>{var n=WA(),r=P(n),i=I(P(r),2),a=P(i,!0);D(i),D(r);var o=I(r,2),s=P(o);let c;var l=I(s,2),u=P(l),d=P(u,!0);D(u);var f=I(u,2),p=P(f,!0);D(f),D(l),D(o),D(n),L((e,t,n,r,i,l,u)=>{H(a,e),K(o,`aria-valuenow`,t),K(o,`aria-label`,n),Bi(o,r),c=G(s,1,`budget-bar-fill budget-bar-fill-usage`,null,c,i),H(d,l),H(p,u)},[()=>Z.rateLimitUsagePercent(R(t).tokens_used,R(t).max_tokens)+`%`,()=>Z.rateLimitUsagePercent(R(t).tokens_used,R(t).max_tokens),()=>`Tokens used: `+Z.formatRateLimitNumber(R(t).tokens_used)+` of `+Z.formatRateLimitNumber(R(t).max_tokens),()=>`--budget-progress: `+Z.rateLimitUsagePercent(R(t).tokens_used,R(t).max_tokens)+`%`,()=>({"budget-bar-fill-danger":Z.rateLimitUsagePercent(R(t).tokens_used,R(t).max_tokens)>=100}),()=>Z.formatRateLimitNumber(R(t).tokens_used)+` of `+Z.formatRateLimitNumber(R(t).max_tokens)+` tokens`,()=>Z.formatRateLimitNumber(R(t).tokens_remaining)+` left`]),V(e,n)},le=A(()=>!Z.rateLimitIsConcurrent(R(t))&&R(t).max_tokens);U(se,e=>{R(le)&&e(ce)}),D(ee),D(r),D(n),L((e,t,n,r,i)=>{K(a,`title`,e),H(o,t),H(m,n),K(_,`title`,r),H(v,i)},[()=>Z.rateLimitScopeLabel(R(t))+`: `+Z.rateLimitSubject(R(t)),()=>Z.rateLimitSubject(R(t)),()=>Z.rateLimitPeriodLabel(R(t)),()=>Z.rateLimitIsReadOnly(R(t))?`Declared in configuration; read-only in the dashboard`:`Managed via dashboard or admin API`,()=>Z.rateLimitSourceLabel(R(t))]),V(e,n)}),D(n),V(e,n),k()}var JA=B(`

        Rate Limits

        `),YA=B(``),XA=B(`
        Rate limit management is unavailable.
        `),ZA=B(``),QA=B(`
        `),$A=B(`

        No rate limits configured yet.

        `),ej=B(`

        No rate limits match your filter.

        `),tj=B(`
        `);function nj(e,t){O(t,!0),On(()=>{Y.refreshTick,Bl.page===`rate-limits`&&Z.fetchRateLimitsPage()});let n=A(()=>Z.filteredRateLimits());var r=tj(),i=P(r),a=P(i);YT(P(a),{copyId:`rate-limits-help-copy`,label:`rate limits help`,text:`Rate limits cap requests, tokens, and in-flight concurrency for a user path subtree, a provider, or a model. Consumer (user path) breaches return 429 with Retry-After and x-ratelimit-* headers; saturated providers and models are skipped by load balancing and failover while capacity exists elsewhere. Counters are per gateway instance and reset on restart; token limits need usage tracking.`,title:e=>{V(e,JA())},$$slots:{title:!0}}),D(a);var o=I(a,2),s=P(o),c=e=>{var t=YA();J(P(t),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(t),L(()=>t.disabled=Z.rateLimitFormSubmitting),z(`click`,t,()=>Z.openRateLimitForm()),V(e,t)},l=A(()=>Z.rateLimitsEnabled()&&Z.rateLimitsAvailable&&!Y.authError);U(s,e=>{R(l)&&e(c)}),D(o),D(i);var u=I(i,2);Rd(u,{});var d=I(u,2),f=e=>{V(e,XA())},p=A(()=>(!Z.rateLimitsEnabled()||!Z.rateLimitsAvailable)&&!Y.authError);U(d,e=>{R(p)&&e(f)});var m=I(d,2),h=e=>{var t=ZA(),n=P(t,!0);D(t),L(()=>H(n,Z.rateLimitError)),V(e,t)};U(m,e=>{Z.rateLimitError&&!Y.authError&&e(h)});var g=I(m,2),_=e=>{_O(e,{label:`Loading rate limits...`})};U(g,e=>{Z.rateLimitsLoading&&!Y.authError&&e(_)});var v=I(g,2),y=e=>{var t=QA(),n=P(t);SD(P(n),{id:`rate-limit-filter`,placeholder:`Filter by subject, scope, or period...`,label:`Filter rate limits by subject, scope, or period`,get value(){return Z.rateLimitFilter},set value(e){Z.rateLimitFilter=e}}),D(n),D(t),V(e,t)};U(v,e=>{(Z.rateLimits.length>0||Z.rateLimitFilter)&&Z.rateLimitsAvailable&&!Y.authError&&!Z.rateLimitFormOpen&&e(y)});var b=I(v,2);RA(b,{});var x=I(b,2),S=e=>{qA(e,{get rules(){return R(n)}})};U(x,e=>{R(n).length>0&&Z.rateLimitsAvailable&&!Y.authError&&e(S)});var C=I(x,2),w=e=>{V(e,$A())},T=A(()=>Z.rateLimits.length===0&&!Z.rateLimitFilter&&!Z.rateLimitsLoading&&!Y.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());U(C,e=>{R(T)&&e(w)});var E=I(C,2),ee=e=>{V(e,ej())},te=A(()=>Z.rateLimits.length>0&&R(n).length===0&&Z.rateLimitFilter&&!Z.rateLimitsLoading&&!Y.authError&&!Z.rateLimitError&&Z.rateLimitsAvailable&&Z.rateLimitsEnabled());U(E,e=>{R(te)&&e(ee)}),D(r),V(e,r),k()}Br([`click`]);function rj(e){return String(e||``).trim().toLowerCase()}function ij(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 aj(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 oj(e){return aj(e&&e.model?e.model.id:``,e?e.provider_type:``,e?e.provider_name:``,e?e.selector:``)}function sj(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 cj(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 lj(e){if(e===``||e==null)return null;let t=Number(e);return!Number.isFinite(t)||t<=0?null:t}function uj(e,t){let n={model:e},r=lj(t);return r!==null&&(n.weight=r),n}function dj(e){let t=Array.isArray(e)?e:[],n=[];for(let e of t){let t=String(e&&e.model||``).trim();t&&n.push(uj(t,e&&e.weight))}return n}function fj(e){switch(String(e||``).toLowerCase()){case`cost`:return`lowest cost`;case`round_robin`:case``:return`round robin`;default:return e}}var pj={round_robin:`Round-robin (rotate across targets; honors weights)`,cost:`Lowest cost (cheapest target per request)`,adaptive:`Adaptive (target chosen by the registered routing extension)`};function mj(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:pj[e]||e}))}function hj(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 gj(e){let t=Array.isArray(e)?e:[],n=[],r=[];for(let e of t)!e||typeof e!=`object`||(e.kind===`redirect`?n.push(hj(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 _j(e){if(!e)return`—`;let t=Array.isArray(e.targets)?e.targets:[];return t.length>1?t.length+` targets · `+fj(e.strategy):e.resolved_model?e.resolved_model:e.target_provider?e.target_provider+`/`+e.target_model:e.target_model||`—`}function vj(e){return e?e.enabled===!1?`is-disabled`:e.valid?`is-valid`:`is-invalid`:`is-invalid`}function yj(e){return e?e.enabled===!1?`Disabled`:e.valid?`Active`:`Invalid`:`Invalid`}function bj(e){return Array.isArray(e)&&e.length>0&&e.indexOf(`/`)===-1}function xj(e,t){return!t||!e?``:e.effective_enabled===!1?`is-disabled`:bj(e.user_paths)?`is-restricted`:`is-enabled`}function Sj(e){if(!e)return``;let t=[];e.effective_enabled===!1&&t.push(e.default_enabled===!1?`Disabled by default`:`Disabled`);let n=Array.isArray(e.user_paths)?e.user_paths:[];return n.length>0&&t.push(`Allowed for `+n.join(`, `)),t.join(` · `)}function Cj({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=rj(e&&e.name);!t||e.enabled===!1||!e.valid||o.set(t,e)}let s=new Map,c=i.map(e=>{let t=ij(e),n=null;for(let t of oj(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(rj(e&&e.name));if(e&&e.enabled!==!1&&e.valid&&t)continue;let n=null;for(let t of sj(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:_j(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:vj(e),alias_state_text:yj(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 wj(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 Tj(e,t){return String(e||``).trim()||String(t||``).trim()||`Unassigned`}function Ej(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return!r||r===n?``:r}function Dj(e){let t=String(e||``).trim();return t?t+`/`:``}function Oj(e){let t=Array.isArray(e)?e:[],n=t.filter(e=>e&&!e.is_alias).length,r=t.filter(e=>e&&e.is_alias).length,i=[];return n>0&&i.push(n+(n===1?` model`:` models`)),r>0&&i.push(r+(r===1?` alias`:` aliases`)),i.join(` · `)}function kj(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 Aj(e){for(let t of Array.isArray(e)?e:[])if(t&&t.access)return t.access.default_enabled!==!1;return!0}function jj(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 Mj(e,t,n,r){let i=Dj(t),a=r&&r.get(`/`)||null,o=i&&r&&r.get(i)||null,s=kj(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 Nj(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:Tj(e,n),type_label:Ej(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=Tj(o.provider_name,o.provider_type),o.type_label=Ej(o.provider_name,o.provider_type),o.rows.push(t)}let o=Array.from(a.values()).map(e=>{let n=Mj(t,e.provider_name,e.provider_type,r);return{...e,access:n,access_summary:Sj(n),item_count_label:Oj(e.rows)}}).sort((e,t)=>String(e.display_name||``).localeCompare(String(t.display_name||``)));return i.length>0&&o.unshift({key:`virtual-model-group`,is_virtual_models:!0,provider_name:``,provider_type:``,display_name:`Virtual models`,type_label:``,rows:i,access:{selector:``},access_summary:``,item_count_label:Oj(i)}),o}function Pj(e,t){let n=jj(t,`/`),r=Aj(e),i=n&&Array.isArray(n.user_paths)?n.user_paths:[];return{key:`scope-global`,is_alias:!1,display_name:`all providers and models`,access:{selector:`/`,default_enabled:r,effective_enabled:n?n.enabled!==!1:r,user_paths:i,override:n}}}function Fj(e){return e?String(e.access&&e.access.selector||``).trim()||String(e.override_selector||``).trim()||ij(e):``}function Ij(e){if(!e)return[];let t=[];return e.is_alias?t.push(`alias-row`,vj(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 Lj(e){return!!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)}function Rj(e){return!!(e&&!e.is_alias&&e.masking_alias&&e.masking_alias.name&&!e.masking_alias.managed)}function zj(e){return e&&e.is_alias&&e.alias&&e.alias.name?`alias-row-`+String(e.alias.name).replace(/[^a-zA-Z0-9_-]+/g,`-`):``}function Bj(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 Vj(e){return!!(e&&e.override)}function Hj(e){return e?`table-action-btn-active`:``}function Uj(e,t){let n=`Edit `+String(e||`model access`);return t?n+` (virtual model exists)`:n}function Wj(){return{source:``,target_model:``,target_weight:1,targets:[],strategy:`round_robin`,session_affinity:!0,user_paths:``,description:``,slowdown:``,enabled:!0}}function Gj(e){return String(e&&e.target_model||``).trim()!==``}function Kj(e){return String(e&&e.target_model||``).trim()?!0:dj(e&&e.targets).length>0}function qj(e){if(Kj(e))return!0;let t=String(e&&e.source||``).trim();return!!t&&t!==`/`&&!t.endsWith(`/`)}function Jj(e){return!!e&&Array.isArray(e.targets)&&e.targets.length>0}function Yj(e){return Jj(e)&&String(e&&e.strategy||``).toLowerCase()!==`cost`}function Xj(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 Zj(e){let t=Array.isArray(e&&e.targets)?e.targets:[];return t.length>0?{primaryModel:cj(t[0]),primaryWeight:t[0].weight||1,extraTargets:t.slice(1).map(e=>({model:cj(e),weight:e.weight||1}))}:{primaryModel:e&&e.target_provider?e.target_provider+`/`+e.target_model:e&&e.target_model||``,primaryWeight:1,extraTargets:[]}}function Qj(e){return String(e||``).split(/\r?\n|,/).map(e=>String(e||``).trim()).filter(Boolean)}function $j(e,t,n){let r=String(e&&e.source||``).trim(),i=String(e&&e.target_model||``).trim(),a=dj(e&&e.targets),o=Kj(e),s=String(t||``).trim(),c=n===`edit`&&!!s&&r!==s,l={source:r,user_paths:Qj(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(uj(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 eM(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:cj(e)})):n.map(e=>uj(cj(e),e.weight))):n.length===1?t.target_model=cj(n[0]):t.target_model=e.target_provider?e.target_provider+`/`+e.target_model:e.target_model,t}function tM(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 nM(e,t,n){let r=Math.max(1,Number(t||75)),i=Math.min(n,e+r);return{limit:i,rendering:iCj({models:Id.models,aliases:this.aliases,virtualModelsAvailable:this.virtualModelsAvailable,activeCategory:Id.activeCategory}));get displayModels(){return R(this.#T)}set displayModels(e){M(this.#T,e)}#E=A(()=>Nj(this.displayModels,Id.models,this.modelOverrideViews));get displayModelGroups(){return R(this.#E)}set displayModelGroups(e){M(this.#E,e)}#D=A(()=>wj(this.displayModels,Id.filter));get filteredDisplayModels(){return R(this.#D)}set filteredDisplayModels(e){M(this.#D,e)}#O=A(()=>{let e=this.filteredDisplayModels,t=Math.max(0,Math.min(Number(this.modelRenderLimit||0),e.length));return!Id.filter&&t>=this.displayModels.length?this.displayModelGroups:Nj(e.slice(0,t),Id.models,this.modelOverrideViews)});get filteredDisplayModelGroups(){return R(this.#O)}set filteredDisplayModelGroups(e){M(this.#O,e)}#k=A(()=>Pj(Id.models,this.modelOverrideViews));get globalScopeRow(){return R(this.#k)}set globalScopeRow(e){M(this.#k,e)}modelsBusy(){return!!(Id.loading||this.modelsRendering)}modelLoadingText(){if(Id.loading)return this.displayModels.length>0?`Refreshing models...`:`Loading models...`;let e=this.filteredDisplayModels.length;return`Rendering models... `+Math.min(Number(this.modelRenderLimit||0),e)+` / `+e}restartModelRendering(e){let t=++this.#a,n=rM(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=nM(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 hu(`/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}=gj(e.data);this.aliases=t,this.modelOverrideViews=n}catch(e){console.error(`Failed to fetch virtual models:`,e),this.aliases=[],this.modelOverrideViews=[],this.aliasError=`Unable to load virtual models.`}finally{this.aliasLoading=!1}}qualifiedModelName(e){return ij(e)}findModelOverrideView(e){return jj(this.modelOverrideViews,e)}hasGlobalModelOverride(){return!!this.findModelOverrideView(`/`)}findExistingAliasByName(e){let t=rj(e);if(!t)return null;for(let e of this.aliases)if(rj(e&&e.name)===t)return e;return null}findConcreteModelByName(e){let t=rj(e);if(!t)return null;for(let e of Id.models)if(oj(e).has(t))return e;return null}rowToggleEnabled(e){return e?e.is_alias?e.alias&&e.alias.enabled!==!1:!!(e.access&&e.access.effective_enabled!==!1):!1}rowToggleLabel(e){return this.rowTogglingKey&&this.rowTogglingKey===e.key?`Updating...`:this.rowToggleRestricted(e)?`Restricted`:this.rowToggleEnabled(e)?`Enabled`:`Disabled`}rowToggleRestricted(e){return!!e&&!e.is_alias&&xj(e.access,this.virtualModelsAvailable)===`is-restricted`}rowToggleAriaLabel(e){if(!e)return``;let t=this.rowToggleEnabled(e)?`Disable `:`Enable `,n;return n=e.is_alias?`alias `+String(e.alias&&e.alias.name||``):String(e.display_name||e.access&&e.access.selector||`model`),t+n.trim()}async toggleRowEnabled(e){if(this.virtualModelsAvailable&&!(!e||this.rowTogglingKey===e.key)){if(Bj(e)){ed.success(`This virtual model is managed by configuration and is read-only.`);return}if(e.is_alias){await this.toggleAliasRow(e);return}await this.toggleModelRow(e)}}async toggleAliasRow(e){let t=e.alias;if(!t||!t.name)return;this.rowTogglingKey=e.key;let n=eM(t);try{let e=await gu(`/admin/virtual-models`,`PUT`,n,{label:`alias state`});if(e.status===503){this.virtualModelsAvailable=!1,ed.error(`Virtual models feature is unavailable.`);return}if(e.stale)return;if(!e.ok){ed.error(e.status===401?`Authentication required.`:du(e,`Failed to update alias state.`));return}ed.success(n.enabled?`Alias enabled.`:`Alias disabled.`),this.fetchVirtualModels()}catch(e){console.error(`Failed to toggle alias state:`,e),ed.error(`Failed to update alias state.`)}finally{this.rowTogglingKey=``}}async toggleModelRow(e){let t=Fj(e);if(!t)return;let{method:n,payload:r,desired:i}=tM(t,this.findModelOverrideView(t),e.access||{});this.rowTogglingKey=e.key;try{let e=await gu(`/admin/virtual-models`,n,r,{label:`model access`});if(e.status===503){this.virtualModelsAvailable=!1,ed.error(`Virtual models feature is unavailable.`);return}if(!(n===`DELETE`&&e.status===404)){if(e.stale)return;if(!e.ok){ed.error(e.status===401?`Authentication required.`:du(e,`Failed to update model access.`));return}}ed.success(i?`Model enabled.`:`Model disabled.`),Promise.all([Id.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to toggle model access:`,e),ed.error(`Failed to update model access.`)}finally{this.rowTogglingKey=``}}async removeAliasRow(e){if(!(e&&e.is_alias&&e.alias&&e.alias.name&&!e.alias.managed)||this.rowDeletingKey)return;let t=String(e.alias.name||``).trim();t&&await this.mutateVirtualModelRow({rowKey:e.key,confirmMessage:`Remove the virtual model alias "`+t+`"?`,method:`DELETE`,payload:{source:t},operation:`virtual model`,failureMessage:`Failed to remove virtual model.`,notice:`Virtual model removed.`,ignoreNotFound:!0})}async removeRedirectRow(e){let t=e&&e.masking_alias;if(!(e&&!e.is_alias&&t&&t.name&&!t.managed)||this.rowDeletingKey)return;let n=String(t.name||``).trim();n&&await this.mutateVirtualModelRow({rowKey:e.key,confirmMessage:`Remove the redirect for "`+n+`"? Other virtual model settings will be preserved.`,method:`PUT`,payload:{source:n,user_paths:Array.isArray(t.user_paths)?t.user_paths:[],description:String(t.description||``).trim(),enabled:t.enabled!==!1,...t.slowdown==null?{}:{slowdown:Number(t.slowdown)}},operation:`virtual model redirect`,failureMessage:`Failed to remove redirect.`,notice:`Redirect removed. Other virtual model settings were preserved.`})}async mutateVirtualModelRow(e){if(!this.rowDeletingKey&&window.confirm(e.confirmMessage)){this.rowDeletingKey=e.rowKey;try{let t=await gu(`/admin/virtual-models`,e.method,e.payload,{label:e.operation});if(t.status===503){this.virtualModelsAvailable=!1,ed.error(`Virtual models feature is unavailable.`);return}if(!(e.ignoreNotFound&&t.status===404)){if(t.stale)return;if(!t.ok){ed.error(t.status===401?`Authentication required.`:du(t,e.failureMessage));return}}this.virtualModelsAvailable=!0,ed.success(e.notice),Promise.all([Id.fetchModels(),this.fetchVirtualModels()])}catch(t){console.error(e.failureMessage,t),ed.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(){Xj(this.vmForm)}vmFormHasPrimaryTarget(){return Gj(this.vmForm)}vmFormShowStrategy(){return Jj(this.vmForm)}vmStrategyOptions(){return mj(bu.virtualModelStrategies(),this.vmForm.strategy)}vmFormShowWeights(){return Yj(this.vmForm)}vmFormSupportsSlowdown(){return qj(this.vmForm)}vmFormToggleRestricted(){return!!(this.vmForm&&this.vmForm.enabled)&&bj(Qj(this.vmForm.user_paths))}vmFormToggleLabel(){return!this.vmForm||!this.vmForm.enabled?`Disabled`:this.vmFormToggleRestricted()?`Restricted`:`Enabled`}resetVirtualModelForm(){this.vmFormError=``,this.vmFormHelpOpen=!1,this.vmFormUserPathsHelpOpen=!1,this.vmSubmitting=!1,this.vmDeleting=!1,this.vmFormHasExisting=!1,this.vmFormDefaultEnabled=!0,this.vmFormEffectiveEnabled=!0,this.vmFormDisplayName=``,this.vmFormSourceLocked=!1,this.vmFormOriginalSource=``,this.vmFormManaged=!1,this.vmForm=Wj()}closeVirtualModelForm(){this.vmFormOpen=!1,this.resetVirtualModelForm()}openVirtualModelCreate(e){this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`create`,this.vmFormSourceLocked=!1,this.vmFormDisplayName=`New virtual model`,e&&e.model&&e.model.id&&(this.vmForm.target_model=ij(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=Aj(Id.models),this.vmFormEffectiveEnabled=e.enabled!==!1;let{primaryModel:t,primaryWeight:n,extraTargets:r}=Zj(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=Fj(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=Aj(Id.models);this.resetVirtualModelForm(),this.vmFormOpen=!0,this.vmFormMode=`edit`,this.vmFormSourceLocked=!0,this.vmFormHasExisting=!!e,this.vmFormOriginalSource=`/`,this.vmFormDefaultEnabled=n,this.vmFormEffectiveEnabled=e?e.enabled!==!1:n,this.vmFormManaged=!!(e&&e.managed),this.vmFormDisplayName=`All providers and models`,this.vmForm={source:`/`,target_model:``,target_weight:``,targets:[],strategy:`round_robin`,user_paths:t.join(` -`),description:e&&e.description?e.description:``,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:`All models in `+e.display_name,provider_name:e.provider_name,provider_type:e.provider_type,access:e.access,override_selector:e.access.selector,is_alias:!1})}async submitVirtualModelForm(){if(this.vmFormManaged){this.vmFormError=`This virtual model is managed by configuration and cannot be edited here.`;return}let{payload:e,source:t,isRedirect:n,isRename:r}=$j(this.vmForm,this.vmFormOriginalSource,this.vmFormMode);if(!t){this.vmFormError=`Source is required.`;return}if(this.vmFormError=``,this.vmFormMode!==`edit`){let e=this.findExistingAliasByName(t),r=e?null:this.findModelOverrideView(t);if(e||r){let n=e?`A virtual model named "`+e.name+`" already exists. Saving will update that virtual model. Continue?`:`An access policy for "`+t+`" already exists. Saving will update that virtual model. Continue?`;if(!window.confirm(n)){this.vmFormError=`Choose a different source or edit the existing virtual model.`;return}}else if(n){let e=this.findConcreteModelByName(t);if(e){let t=ij(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(`A model named "`+t+`" already exists. Creating this alias will mask that model in the list. Continue?`)){this.vmFormError=`Choose a different source to avoid masking an existing model.`;return}}}}else if(r){let e=(this.aliases||[]).find(e=>e&&e.name===t)||null,r=e?null:this.findModelOverrideView(t);if(e||r){this.vmFormError=`A virtual model for "`+t+`" already exists. Choose a different source.`;return}if(n){let e=this.findConcreteModelByName(t);if(e){let t=ij(e)||String(e.model&&e.model.id||``).trim();if(!window.confirm(`A model named "`+t+`" already exists. Renaming to that name will mask the model in the list. Continue?`)){this.vmFormError=`Choose a different source to avoid masking an existing model.`;return}}}}this.vmSubmitting=!0;try{let t=await gu(`/admin/virtual-models`,`PUT`,e,{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=`Virtual models feature is unavailable.`;return}if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?`Authentication required.`:du(t,`Failed to save virtual model.`);return}let r=!n&&t.status===204;this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),ed.success(n?`Alias saved.`:r?`Model access reset to inherited/default.`:`Model access saved.`),Promise.all([Id.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to save virtual model:`,e),this.vmFormError=`Failed to save virtual model.`}finally{this.vmSubmitting=!1}}async deleteVirtualModel(){if(this.vmFormManaged){this.vmFormError=`This virtual model is managed by configuration and cannot be removed here.`;return}let e=String(this.vmForm.source||this.vmFormOriginalSource||``).trim();if(!(!e||!this.vmFormHasExisting)&&window.confirm(`Remove the virtual model for "`+e+`"? This reverts to inherited/default behavior.`)){this.vmDeleting=!0,this.vmFormError=``;try{let t=await gu(`/admin/virtual-models`,`DELETE`,{source:e},{label:`virtual model`});if(t.status===503){this.virtualModelsAvailable=!1,this.vmFormError=`Virtual models feature is unavailable.`;return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.vmFormError=t.status===401?`Authentication required.`:du(t,`Failed to remove virtual model.`);return}}this.virtualModelsAvailable=!0,this.closeVirtualModelForm(),ed.success(`Virtual model removed.`),Promise.all([Id.fetchModels(),this.fetchVirtualModels()])}catch(e){console.error(`Failed to delete virtual model:`,e),this.vmFormError=`Failed to remove virtual model.`}finally{this.vmDeleting=!1}}}},aM=[{value:`input_per_mtok`,label:`Input $/MTok`,group:`Tokens`},{value:`output_per_mtok`,label:`Output $/MTok`,group:`Tokens`},{value:`cached_input_per_mtok`,label:`Cached input $/MTok`,group:`Tokens`},{value:`cache_write_per_mtok`,label:`Cache write $/MTok`,group:`Tokens`},{value:`reasoning_output_per_mtok`,label:`Reasoning output $/MTok`,group:`Tokens`},{value:`batch_input_per_mtok`,label:`Batch input $/MTok`,group:`Batch`},{value:`batch_output_per_mtok`,label:`Batch output $/MTok`,group:`Batch`},{value:`audio_input_per_mtok`,label:`Audio input $/MTok`,group:`Audio`},{value:`audio_output_per_mtok`,label:`Audio output $/MTok`,group:`Audio`},{value:`per_image`,label:`$/Image`,group:`Image`},{value:`input_per_image`,label:`Input $/Image`,group:`Image`},{value:`per_second_input`,label:`Input $/Second`,group:`Audio/Video`},{value:`per_second_output`,label:`Output $/Second`,group:`Video`},{value:`per_character_input`,label:`$/Character`,group:`Audio`},{value:`per_page`,label:`$/Page`,group:`Utility`},{value:`per_request`,label:`$/Request`,group:`Utility`}];function oM(e){let t=aM.find(t=>t.value===e);return t?t.label:String(e||``).replace(/_/g,` `)}function sM(e){return e&&typeof e==`object`?JSON.parse(JSON.stringify(e)):{}}function cM(e,t){let n=sM(e),r=t&&t.pricing?t.pricing:t;if(!r||typeof r!=`object`)return n;for(let e of aM)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=sM(r.tiers)),n}function lM(e){switch(String(e||``).trim()){case`config_yaml`:return`config.yaml`;case`model_registry`:return`Model registry`;default:return e?String(e):`Unknown`}}function uM(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 aM)t[e.value]!==null&&t[e.value]!==void 0&&(r[e.value]=lM(n[e.value]||`model_registry`));return r}function dM(e){let t=String(e&&e.selector||``).trim();return t?`Dashboard/API override (`+t+`)`:`Dashboard/API override`}function fM(e){let t=String(e||``).trim();return t?t+`/`:``}function pM(e){return String(e&&e.model&&e.model.id||``).trim()}function mM(e){let t=String(e&&e.provider_name||``).trim(),n=pM(e);return t&&n?t+`/`+n:n}function hM(e){return pM(e)}function gM(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 _M(e,t){let n=String(t||``).trim();return n&&gM(e).get(n)||null}function vM(e,t,n){let r=gM(e),i=mM(t),a=hM(t),o=fM(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 yM(e,t,n){let r=e&&e.model&&e.model.metadata?e.model.metadata:null,i=sM(r&&r.pricing),a=uM(r),o=vM(t,e,n),s=o&&o.pricing?o.pricing:null;if(s){let e=dM(o);for(let t of aM)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=sM(s.tiers),a.tiers=e)}return{pricing:i,sources:a}}function bM(e,t){let n=e&&e.pricing?e.pricing:{},r=[];for(let e of aM)n[e.value]!==null&&n[e.value]!==void 0&&r.push({id:t(),field:e.value,value:String(n[e.value])});return r}function xM(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 SM(e,t){let n=xM(e,t&&t.id);return aM.filter(e=>e.value===(t&&t.field)||!n.has(e.value))}function CM(e,t){let n={},r=new Set;for(let t of Array.isArray(e)?e:[]){let e=String(t.field||``).trim();if(!e)return{error:`Choose a price type for every row.`};if(r.has(e))return{error:`Each price type can only be used once.`};r.add(e);let i=String(t.value||``).trim();if(i===``)return{error:`Enter a value for `+oM(e)+`.`};let a=Number(i);if(!Number.isFinite(a)||a<0)return{error:`Pricing values must be numbers greater than or equal to 0.`};n[e]=a}let i=Array.isArray(t)?t:[];return i.length>0&&(n.tiers=sM(i)),Object.keys(n).length===0?{error:`Add at least one pricing field before saving.`}:{pricing:n}}function wM(e,t,n){let r=e||{},i=t||{},a=n||{},o=cM(r,a);return aM.map(e=>{let t=a[e.value]!==null&&a[e.value]!==void 0,n=r[e.value]!==null&&r[e.value]!==void 0;return{field:e.value,label:e.label,value:o[e.value],source:t?`Form/API value`:n?i[e.value]||`Model registry`:`Unset`}}).filter(e=>e.source!==`Unset`||e.value!==void 0)}var TM=new class{#e=j(!0);get modelPricingOverridesAvailable(){return R(this.#e)}set modelPricingOverridesAvailable(e){M(this.#e,e,!0)}#t=j(N([]));get modelPricingOverrideViews(){return R(this.#t)}set modelPricingOverrideViews(e){M(this.#t,e,!0)}#n=j(``);get modelPricingOverrideError(){return R(this.#n)}set modelPricingOverrideError(e){M(this.#n,e,!0)}#r=j(!1);get modelPricingOverrideFormOpen(){return R(this.#r)}set modelPricingOverrideFormOpen(e){M(this.#r,e,!0)}#i=j(!1);get modelPricingOverrideSubmitting(){return R(this.#i)}set modelPricingOverrideSubmitting(e){M(this.#i,e,!0)}#a=j(!1);get modelPricingOverrideFormHasExistingOverride(){return R(this.#a)}set modelPricingOverrideFormHasExistingOverride(e){M(this.#a,e,!0)}#o=j(``);get modelPricingOverrideFormDisplayName(){return R(this.#o)}set modelPricingOverrideFormDisplayName(e){M(this.#o,e,!0)}#s=j(``);get modelPricingOverrideFormScope(){return R(this.#s)}set modelPricingOverrideFormScope(e){M(this.#s,e,!0)}#c=j(N([]));get modelPricingOverrideFormScopeOptions(){return R(this.#c)}set modelPricingOverrideFormScopeOptions(e){M(this.#c,e,!0)}#l=j(null);get modelPricingOverrideFormRow(){return R(this.#l)}set modelPricingOverrideFormRow(e){M(this.#l,e,!0)}#u=j(null);get modelPricingOverrideFormBasePricing(){return R(this.#u)}set modelPricingOverrideFormBasePricing(e){M(this.#u,e,!0)}#d=j(null);get modelPricingOverrideFormBasePricingSources(){return R(this.#d)}set modelPricingOverrideFormBasePricingSources(e){M(this.#d,e,!0)}#f=j(N([]));get modelPricingOverrideFormPreservedTiers(){return R(this.#f)}set modelPricingOverrideFormPreservedTiers(e){M(this.#f,e,!0)}#p=j(N([]));get modelPricingOverrideRows(){return R(this.#p)}set modelPricingOverrideRows(e){M(this.#p,e,!0)}#m=j(N({selector:``}));get modelPricingOverrideForm(){return R(this.#m)}set modelPricingOverrideForm(e){M(this.#m,e,!0)}_modelPricingOverrideRowID=0;pricingFieldOptions(){return aM}pricingFieldLabel(e){return oM(e)}async fetchModelPricingOverrides(){this.modelPricingOverrideError=``;try{let e=await hu(`/admin/model-pricing-overrides`,{label:`model pricing overrides`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideViews=[];return}if(e.stale)return;if(this.modelPricingOverridesAvailable=!0,!e.ok){this.modelPricingOverrideViews=[];return}this.modelPricingOverrideViews=Array.isArray(e.data)?e.data:[]}catch(e){console.error(`Failed to fetch model pricing overrides:`,e),this.modelPricingOverrideViews=[],this.modelPricingOverrideError=`Unable to load model pricing overrides.`}}findModelPricingOverrideView(e){return _M(this.modelPricingOverrideViews,e)}hasGlobalPricingOverride(){return!!this.findModelPricingOverrideView(`/`)}hasProviderPricingOverride(e){return!!this.findModelPricingOverrideView(fM(e&&e.provider_name))}hasModelPricingOverride(e){return!!this.findModelPricingOverrideView(mM(e))}modelPricingButtonClass(e){return e?`table-action-btn-active`:``}modelPricingButtonLabel(e,t){let n=`Edit `+String(e||`model pricing`);return t?n+` (override exists)`:n}modelRowPricing(e){return yM(e,this.modelPricingOverrideViews).pricing}openGlobalPricingOverrideEdit(){this.openModelPricingOverrideForm({displayName:`All providers and models`,selector:`/`,scope:`global`,scopeOptions:[{value:`global`,label:`All providers and models`,selector:`/`}],row:null})}openProviderPricingOverrideEdit(e){let t=fM(e&&e.provider_name);t&&this.openModelPricingOverrideForm({displayName:`All models in `+(e.display_name||e.provider_name||t),selector:t,scope:`provider`,scopeOptions:[{value:`provider`,label:`Provider`,selector:t}],row:null})}openModelPricingOverrideEdit(e){if(!e||e.is_alias)return;let t=mM(e),n=hM(e),r=[{value:`exact`,label:`This provider and model`,selector:t}];n&&n!==t&&r.push({value:`model`,label:`This model across providers`,selector:n}),this.openModelPricingOverrideForm({displayName:e.display_name||t,selector:t,scope:`exact`,scopeOptions:r,row:e})}openModelPricingOverrideForm(e){let t=e||{};this.modelPricingOverrideFormOpen=!0,this.modelPricingOverrideError=``,this.modelPricingOverrideFormDisplayName=t.displayName||t.selector||`Pricing`,this.modelPricingOverrideFormScope=t.scope||``,this.modelPricingOverrideFormScopeOptions=Array.isArray(t.scopeOptions)?t.scopeOptions:[],this.modelPricingOverrideFormRow=t.row||null,this.modelPricingOverrideForm={selector:t.selector||``},this.loadModelPricingOverrideFormSelector(t.selector||``)}loadModelPricingOverrideFormSelector(e){e=String(e||``).trim();let t=this.findModelPricingOverrideView(e);this.modelPricingOverrideFormHasExistingOverride=!!t,this.modelPricingOverrideRows=bM(t,()=>this.nextModelPricingOverrideRowID()),this.modelPricingOverrideFormPreservedTiers=t&&t.pricing&&Array.isArray(t.pricing.tiers)?sM(t.pricing.tiers):[],this.modelPricingOverrideRows.length===0&&this.modelPricingOverrideFormPreservedTiers.length===0&&this.addModelPricingOverrideRow();let n=this.modelPricingOverrideFormRow,r=n?yM(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 SM(this.modelPricingOverrideRows,e)}addModelPricingOverrideRow(){let e=xM(this.modelPricingOverrideRows),t=aM.find(t=>!e.has(t.value))||aM[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 CM(this.modelPricingOverrideRows,this.modelPricingOverrideFormPreservedTiers)}modelPricingOverrideDraftPricing(){let e=this.modelPricingOverridePayload();return e&&e.pricing?e.pricing:{}}modelPricingEffectivePreviewRows(){return wM(this.modelPricingOverrideFormBasePricing,this.modelPricingOverrideFormBasePricingSources,this.modelPricingOverrideDraftPricing())}closeModelPricingOverrideForm(){this.modelPricingOverrideFormOpen=!1,this.modelPricingOverrideSubmitting=!1,this.modelPricingOverrideError=``,this.modelPricingOverrideFormHasExistingOverride=!1,this.modelPricingOverrideFormDisplayName=``,this.modelPricingOverrideFormScope=``,this.modelPricingOverrideFormScopeOptions=[],this.modelPricingOverrideFormRow=null,this.modelPricingOverrideFormBasePricing=null,this.modelPricingOverrideFormBasePricingSources=null,this.modelPricingOverrideFormPreservedTiers=[],this.modelPricingOverrideRows=[],this.modelPricingOverrideForm={selector:``}}async submitModelPricingOverrideForm(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!e){this.modelPricingOverrideError=`Model pricing selector is required.`;return}let t=this.modelPricingOverridePayload();if(t.error){this.modelPricingOverrideError=t.error;return}let n={selector:e,...t};this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let e=await gu(`/admin/model-pricing-overrides`,`PUT`,n,{label:`model pricing override`});if(e.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=`Model pricing overrides feature is unavailable.`;return}if(e.stale)return;if(!e.ok){this.modelPricingOverrideError=e.status===401?`Authentication required.`:du(e,`Failed to save model pricing.`);return}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),ed.success(`Model pricing saved.`),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to save model pricing override:`,e),this.modelPricingOverrideError=`Failed to save model pricing.`}finally{this.modelPricingOverrideSubmitting=!1}}async deleteModelPricingOverride(){let e=String(this.modelPricingOverrideForm.selector||``).trim();if(!(!e||!this.modelPricingOverrideFormHasExistingOverride)&&window.confirm(`Remove the model pricing override for "`+e+`"?`)){this.modelPricingOverrideSubmitting=!0,this.modelPricingOverrideError=``;try{let t=await gu(`/admin/model-pricing-overrides`,`DELETE`,{selector:e},{label:`model pricing override`});if(t.status===503){this.modelPricingOverridesAvailable=!1,this.modelPricingOverrideError=`Model pricing overrides feature is unavailable.`;return}if(t.status!==404){if(t.stale)return;if(!t.ok){this.modelPricingOverrideError=t.status===401?`Authentication required.`:du(t,`Failed to remove model pricing override.`);return}}this.modelPricingOverridesAvailable=!0,this.closeModelPricingOverrideForm(),ed.success(`Model pricing override removed.`),this.fetchModelPricingOverrides()}catch(e){console.error(`Failed to delete model pricing override:`,e),this.modelPricingOverrideError=`Failed to remove model pricing override.`}finally{this.modelPricingOverrideSubmitting=!1}}}},EM=B(``);function DM(e,t){O(t,!0);var n=EM();let r;var i=I(P(n),2),a=P(i,!0);D(i),D(n),L((e,i,o)=>{r=G(n,1,`alias-toggle`,null,r,e),n.disabled=iM.rowTogglingKey===t.row.key||!iM.virtualModelsAvailable,K(n,`aria-label`,i),H(a,o)},[()=>({enabled:iM.rowToggleEnabled(t.row),restricted:iM.rowToggleRestricted(t.row)}),()=>iM.rowToggleAriaLabel(t.row),()=>iM.rowToggleLabel(t.row)]),z(`click`,n,()=>iM.toggleRowEnabled(t.row)),V(e,n),k()}Br([`click`]);var OM=B(`
        `);function kM(e,t){O(t,!0);var n=OM(),r=P(n),i=e=>{DM(e,{get row(){return iM.globalScopeRow}})};U(r,e=>{iM.virtualModelsAvailable&&e(i)});var a=I(r,2),o=e=>{{let t=A(()=>TM.modelPricingButtonLabel(`global model pricing`,TM.hasGlobalPricingOverride())),n=A(()=>TM.modelPricingButtonClass(TM.hasGlobalPricingOverride()));yO(e,{get label(){return R(t)},get class(){return`table-icon-btn ${R(n)??``}`},onclick:()=>TM.openGlobalPricingOverrideEdit(),children:(e,t)=>{J(e,{get icon(){return Rc},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(a,e=>{TM.modelPricingOverridesAvailable&&e(o)});var s=I(a,2),c=e=>{{let t=A(()=>Uj(`global model access`,iM.hasGlobalModelOverride())),n=A(()=>Hj(iM.hasGlobalModelOverride()));yO(e,{get label(){return R(t)},get class(){return`table-icon-btn ${R(n)??``}`},onclick:()=>iM.openGlobalModelOverrideEdit(),children:(e,t)=>{J(e,{get icon(){return nl},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(s,e=>{iM.virtualModelsAvailable&&e(c)}),D(n),V(e,n),k()}function AM(e){return String(e&&(e.primary_model||e.source)||``).trim()}function jM(e){return Array.isArray(e&&e.fallback_models)?e.fallback_models:Array.isArray(e&&e.targets)?e.targets:[]}function MM(e){return Array.isArray(e)?e.map(e=>({...e,source:AM(e),targets:jM(e)})):[]}function NM(e){let t=jM(e);return t.length===0?`-`:t.join(`, `)}function PM(e){return e&&e.enabled===!1?`Off`:e&&e.managed?`Config`:`On`}function FM(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>AM(e)===n)||null}function IM(e,t){if(!t||t.is_alias)return!1;let n=FM(e,ij(t));return!!(n&&n.enabled!==!1&&jM(n).length>0)}function LM(e,t){return IM(e,t)?`table-action-btn-failover-active`:``}function RM(e,t){let n=`Edit failover for `+(t&&t.display_name?t.display_name:`model`);return IM(e,t)?n+` (active)`:n}function zM(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 BM(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 VM(e){return{primary_model:String(e&&e.source||``).trim(),fallback_models:zM(e),enabled:!(e&&e.enabled===!1)}}function HM(e){return AM(e)}function UM(e){let t={};return(Array.isArray(e)?e:[]).forEach(e=>{let n=HM(e);n&&(t[n]=!0)}),t}function WM(e,t){let n=HM(t);return!!(n&&e&&e[n])}function GM(e,t){return(Array.isArray(e)?e:[]).filter(e=>WM(t,e))}function KM(e,t){let n=Array.isArray(e)?e:[];return n.length>0&&GM(n,t).length===n.length}function qM(e){return[AM(e),jM(e).join(` `)].join(` `).toLowerCase()}function JM(e,t){let n=Array.isArray(e)?e:[],r=String(t||``).trim().toLowerCase();return r?n.filter(e=>qM(e).includes(r)):n}function YM(e){return{primary_model:AM(e),fallback_models:jM(e).map(e=>String(e||``).trim()).filter(Boolean),enabled:!!(e&&e.enabled!==!1)}}function XM(){return{source:``,target_model:``,targets:[],enabled:!0}}var Q=new class{#e=j(!0);get failoverAvailable(){return R(this.#e)}set failoverAvailable(e){M(this.#e,e,!0)}#t=j(N([]));get failoverRules(){return R(this.#t)}set failoverRules(e){M(this.#t,e,!0)}#n=j(!1);get failoverLoading(){return R(this.#n)}set failoverLoading(e){M(this.#n,e,!0)}#r=j(!1);get failoverSaving(){return R(this.#r)}set failoverSaving(e){M(this.#r,e,!0)}#i=j(!1);get failoverGenerating(){return R(this.#i)}set failoverGenerating(e){M(this.#i,e,!0)}#a=j(``);get failoverError(){return R(this.#a)}set failoverError(e){M(this.#a,e,!0)}#o=j(N([]));get failoverGeneratedRules(){return R(this.#o)}set failoverGeneratedRules(e){M(this.#o,e,!0)}#s=j(!1);get failoverDraftsOpen(){return R(this.#s)}set failoverDraftsOpen(e){M(this.#s,e,!0)}#c=j(N({}));get failoverDraftSelections(){return R(this.#c)}set failoverDraftSelections(e){M(this.#c,e,!0)}#l=j(``);get failoverDraftFilter(){return R(this.#l)}set failoverDraftFilter(e){M(this.#l,e,!0)}#u=j(!1);get failoverDraftSaving(){return R(this.#u)}set failoverDraftSaving(e){M(this.#u,e,!0)}#d=j(!1);get failoverFormOpen(){return R(this.#d)}set failoverFormOpen(e){M(this.#d,e,!0)}#f=j(`create`);get failoverFormMode(){return R(this.#f)}set failoverFormMode(e){M(this.#f,e,!0)}#p=j(!1);get failoverFormManaged(){return R(this.#p)}set failoverFormManaged(e){M(this.#p,e,!0)}#m=j(N(XM()));get failoverForm(){return R(this.#m)}set failoverForm(e){M(this.#m,e,!0)}failoverEnabled(){return bu.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 hu(`/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=MM(e.data)}catch(e){console.error(`Failed to fetch failover mappings:`,e),this.failoverRules=[],this.failoverError=`Unable to load failover mappings.`}finally{this.failoverLoading=!1}}resetFailoverForm(){this.failoverFormMode=`create`,this.failoverFormManaged=!1,this.failoverForm=XM()}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 zM(this.failoverForm)}setFailoverFormTargets(e){let t=BM(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 VM(this.failoverForm)}async submitFailoverForm(){if(this.failoverSaving||this.failoverGenerating||this.failoverFormManaged)return;let e=this.failoverRulePayload();if(!e.primary_model){this.failoverError=`Primary model is required.`;return}if(e.enabled&&e.fallback_models.length===0){this.failoverError=`Add at least one failover target.`;return}this.failoverSaving=!0,this.failoverError=``;try{let t=await gu(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(t.stale)return;if(!t.ok){this.failoverError=`Failed to save failover mapping.`;return}ed.success(`Failover mapping saved.`),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to save failover mapping:`,e),this.failoverError=`Failed to save failover mapping.`}finally{this.failoverSaving=!1}}async deleteFailoverRule(e){let t=String(e&&this.failoverPrimaryModel(e)||this.failoverForm.source||``).trim();if(!(!t||this.failoverSaving||this.failoverGenerating)&&confirm(`Remove failover mapping for "`+t+`"?`)){this.failoverSaving=!0,this.failoverError=``;try{let e=await gu(`/admin/failover`,`DELETE`,{primary_model:t},{label:`failover mapping`});if(e.stale)return;if(!e.ok){this.failoverError=`Failed to remove failover mapping.`;return}ed.success(`Failover mapping removed.`),this.closeFailoverForm(),this.fetchFailoverRules()}catch(e){console.error(`Failed to remove failover mapping:`,e),this.failoverError=`Failed to remove failover mapping.`}finally{this.failoverSaving=!1}}}async generateFailoverForForm(){if(this.failoverGenerating||this.failoverSaving||this.failoverFormManaged)return;let e=String(this.failoverForm.source||``).trim();if(!e){this.failoverError=`Primary model is required.`;return}this.failoverGenerating=!0,this.failoverError=``;try{let t=await gu(`/admin/failover/generate`,`POST`,{primary_model:e},{label:`failover generation`});if(t.stale)return;if(!t.ok){this.failoverError=`Failed to generate failover mapping.`;return}let n=MM(t.data),r=n.find(t=>this.failoverPrimaryModel(t)===e)||n[0]||null,i=this.failoverTargets(r);if(i.length===0){this.failoverError=`No failover suggestions were generated for this model.`;return}this.setFailoverFormTargets(i),ed.success(`Generated `+i.length+` fallback model`+(i.length===1?`.`:`s.`)),this.focusFailoverEditor()}catch(e){console.error(`Failed to generate failover mapping:`,e),this.failoverError=`Failed to generate failover mapping.`}finally{this.failoverGenerating=!1}}openFailoverResetDialog(){zu.open({title:`Remove failover models`,titleId:`failoverResetDialogTitle`,inputId:`failover-reset-confirmation`,message:`Remove every dashboard-managed failover mapping. Configuration-managed mappings remain active.`,requiredText:`remove`,confirmLabel:`Remove Failover`,icon:xl,dialogClass:`budget-reset-dialog`,onConfirm:async()=>{await this.resetFailoverRules(),this.failoverError&&(zu.error=this.failoverError)}})}async resetFailoverRules(){if(!this.failoverSaving){this.failoverSaving=!0,this.failoverError=``;try{let e=await gu(`/admin/failover/reset`,`POST`,void 0,{label:`failover removal`});if(e.stale)return;if(!e.ok){this.failoverError=`Failed to remove failover mappings.`;return}this.failoverRules=MM(e.data),this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!1,ed.success(`Dashboard-managed failover mappings removed.`),zu.close()}catch(e){console.error(`Failed to remove failover mappings:`,e),this.failoverError=`Failed to remove failover mappings.`}finally{this.failoverSaving=!1}}}async generateFailoverRules(){if(!(this.failoverGenerating||this.failoverDraftSaving)){this.failoverGenerating=!0,this.failoverError=``,this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.failoverDraftsOpen=!0;try{let e=await gu(`/admin/failover/generate`,`POST`,void 0,{label:`failover generation`});if(e.stale)return;if(!e.ok){this.failoverError=`Failed to generate failover mappings.`;return}this.failoverGeneratedRules=MM(e.data),this.selectAllFailoverDrafts(this.failoverGeneratedRules)}catch(e){console.error(`Failed to generate failover mappings:`,e),this.failoverError=`Failed to generate failover mappings.`}finally{this.failoverGenerating=!1}}}failoverDraftKey(e){return HM(e)}selectAllFailoverDrafts(e){this.failoverDraftSelections=UM(e)}failoverDraftSelected(e){return WM(this.failoverDraftSelections,e)}setFailoverDraftSelected(e,t){let n=this.failoverDraftKey(e);n&&(this.failoverDraftSelections={...this.failoverDraftSelections,[n]:!!t})}selectedFailoverDrafts(){return GM(this.failoverGeneratedRules,this.failoverDraftSelections)}selectedFailoverDraftCount(){return this.selectedFailoverDrafts().length}failoverDraftCountLabel(){return this.selectedFailoverDraftCount()+` / `+this.failoverGeneratedRules.length+` selected`}allFailoverDraftsSelected(){return KM(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 qM(e)}filteredFailoverDrafts(){return JM(this.failoverGeneratedRules,this.failoverDraftFilter)}failoverDraftPayload(e){return YM(e)}async saveSelectedFailoverDrafts(){if(this.failoverDraftSaving||this.failoverGenerating)return;let e=this.selectedFailoverDrafts();if(e.length===0){this.failoverError=`Select at least one failover draft.`;return}this.failoverDraftSaving=!0,this.failoverError=``;try{for(let t of e){let e=this.failoverDraftPayload(t);if(!e.primary_model||e.fallback_models.length===0){this.failoverError=`Generated failover draft is missing model data.`;return}let n=await gu(`/admin/failover`,`PUT`,e,{label:`failover mapping`});if(n.stale)return;if(!n.ok){this.failoverError=`Failed to save failover mapping.`;return}}ed.success(`Saved `+e.length+` failover mapping`+(e.length===1?`.`:`s.`)),this.failoverDraftsOpen=!1,this.failoverGeneratedRules=[],this.failoverDraftSelections={},this.failoverDraftFilter=``,this.fetchFailoverRules()}catch(e){console.error(`Failed to save generated failover mappings:`,e),this.failoverError=`Failed to save failover mappings.`}finally{this.failoverDraftSaving=!1}}focusFailoverEditor(){setTimeout(()=>{let e=document.querySelector(`[data-failover-editor]`),t=e&&e.querySelector?e.querySelector(`[data-modal-autofocus], input:not([disabled]), textarea:not([disabled]), button:not([disabled])`):null;t&&typeof t.focus==`function`&&t.focus({preventScroll:!0})},0)}failoverTargetLabel(e){return NM(e)}failoverPrimaryModel(e){return AM(e)}failoverTargets(e){return jM(e)}findFailoverMapping(e){return FM(this.failoverRules,e)}hasActiveFailoverMapping(e){return IM(this.failoverRules,e)}failoverButtonClass(e){return LM(this.failoverRules,e)}failoverButtonLabel(e){return RM(this.failoverRules,e)}normalizeFailoverRules(e){return MM(e)}failoverRuleStatus(e){return PM(e)}qualifiedModelName(e){return ij(e)}},ZM=B(``),QM=B(``),$M=B(`Config`),eN=B(`
        Targets
        `),tN=B(``),nN=B(`
        Redirects to
        `),rN=B(`
        Slowdown
        `),iN=B(` `),aN=B(`
        `),oN=B(`
        `),sN=B(`
        `);function cN(e,t){O(t,!0);let n=A(()=>TM.modelRowPricing(t.row)),r=A(()=>t.row.is_alias?t.row.alias&&t.row.alias.slowdown:t.row.masking_alias&&t.row.masking_alias.slowdown!=null?t.row.masking_alias.slowdown:t.row.access&&t.row.access.override&&t.row.access.override.slowdown),i=A(()=>Number(R(r)==null?0:R(r)));var a=sN(),o=P(a),s=P(o),c=P(s),l=P(c),u=P(l,!0);D(l);var d=I(l,2),f=e=>{V(e,ZM())};U(d,e=>{t.row.is_alias&&e(f)});var p=I(d,2),m=e=>{V(e,QM())};U(p,e=>{!t.row.is_alias&&t.row.masking_alias&&e(m)});var h=I(p,2),g=e=>{V(e,$M())},_=A(()=>Bj(t.row));U(h,e=>{R(_)&&e(g)}),D(c);var v=I(c,2),y=e=>{var n=eN(),r=I(P(n)),i=P(r,!0);D(r),D(n),L(()=>H(i,t.row.secondary_name)),V(e,n)};U(v,e=>{t.row.is_alias&&e(y)});var b=I(v,2),x=e=>{var n=nN(),r=I(P(n)),i=P(r,!0);D(r);var a=I(r,2),o=e=>{var n=tN();L(e=>{K(n,`aria-label`,iM.rowDeletingKey===t.row.key?`Removing redirect for `+t.row.display_name:`Remove redirect for `+t.row.display_name),K(n,`title`,iM.rowDeletingKey===t.row.key?`Removing redirect for `+t.row.display_name:`Remove redirect for `+t.row.display_name),n.disabled=e},[()=>!!iM.rowDeletingKey]),z(`click`,n,()=>iM.removeRedirectRow(t.row)),V(e,n)},s=A(()=>iM.virtualModelsAvailable&&Rj(t.row));U(a,e=>{R(s)&&e(o)}),D(n),L(e=>H(i,e),[()=>_j(t.row.masking_alias)]),V(e,n)};U(b,e=>{!t.row.is_alias&&t.row.masking_alias&&e(x)});var S=I(b,2),C=e=>{var t=rN(),n=I(P(t)),r=P(n);D(n),D(t),L(()=>H(r,`+${R(i)??``}× inference time`)),V(e,t)};U(S,e=>{R(i)>0&&e(C)}),D(s),D(o);var w=I(o);W(w,17,()=>t.columns,ii,(e,r)=>{var i=iN(),a=P(i,!0);D(i),L(e=>{G(i,1,Ni(R(r).class),`svelte-1iynym`),H(a,e)},[()=>R(r).value(t.row,R(n))]),V(e,i)});var T=I(w),E=P(T),ee=e=>{var n=aN(),r=P(n);DM(r,{get row(){return t.row}});var i=I(r,2),a=e=>{{let n=A(()=>iM.rowDeletingKey===t.row.key?`Removing alias `+t.row.alias.name:`Remove alias `+t.row.alias.name),r=A(()=>!!iM.rowDeletingKey);yO(e,{get label(){return R(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>iM.removeAliasRow(t.row),get disabled(){return R(r)},children:(e,t)=>{J(e,{get icon(){return xl},class:`table-icon-svg`})},$$slots:{default:!0}})}},o=A(()=>iM.virtualModelsAvailable&&Lj(t.row));U(i,e=>{R(o)&&e(a)});var s=I(i,2),c=e=>{{let n=A(()=>`Edit alias `+t.row.alias.name);yO(e,{get label(){return R(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>iM.openVirtualModelEditAlias(t.row.alias),children:(e,t)=>{J(e,{get icon(){return nl},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(s,e=>{iM.virtualModelsAvailable&&e(c)}),D(n),V(e,n)},te=e=>{var n=oN(),r=P(n);DM(r,{get row(){return t.row}});var i=I(r,2),a=e=>{{let n=A(()=>TM.modelPricingButtonLabel(`model pricing for `+t.row.display_name,TM.hasModelPricingOverride(t.row))),r=A(()=>TM.modelPricingButtonClass(TM.hasModelPricingOverride(t.row)));yO(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>TM.openModelPricingOverrideEdit(t.row),children:(e,t)=>{J(e,{get icon(){return Rc},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(i,e=>{TM.modelPricingOverridesAvailable&&e(a)});var o=I(i,2),s=e=>{{let n=A(()=>Q.failoverButtonLabel(t.row)),r=A(()=>Q.failoverButtonClass(t.row));yO(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>Q.openFailoverForModel(t.row),children:(e,t)=>{J(e,{get icon(){return _l},class:`table-icon-svg`})},$$slots:{default:!0}})}},c=A(()=>Q.failoverAvailable&&Q.failoverEnabled());U(o,e=>{R(c)&&e(s)});var l=I(o,2),u=e=>{{let n=A(()=>Z.rateLimitGaugeTitle(t.row.display_name,Z.rateLimitGaugeClassForModel(t.row))),r=A(()=>Z.rateLimitGaugeClassForModel(t.row));yO(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>Z.openRateLimitInspectorForModel(t.row),children:(e,t)=>{J(e,{get icon(){return Wc},class:`table-icon-svg`})},$$slots:{default:!0}})}},d=A(()=>Z.rateLimitsEnabled()&&Z.rateLimitInspectorModelID(t.row));U(l,e=>{R(d)&&e(u)});var f=I(l,2),p=e=>{{let n=A(()=>`Edit redirect for `+t.row.display_name);yO(e,{get label(){return R(n)},class:`table-icon-btn table-action-btn-active`,onclick:()=>iM.openVirtualModelEditAlias(t.row.masking_alias),children:(e,t)=>{J(e,{get icon(){return nl},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(f,e=>{iM.virtualModelsAvailable&&t.row.masking_alias&&t.row.masking_alias.name&&e(p)});var m=I(f,2),h=e=>{{let n=A(()=>Uj(`model settings for `+t.row.display_name,Vj(t.row.access))),r=A(()=>Hj(Vj(t.row.access)));yO(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>iM.openVirtualModelEditModel(t.row),children:(e,t)=>{J(e,{get icon(){return nl},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(m,e=>{iM.virtualModelsAvailable&&!t.row.masking_alias&&e(h)}),D(n),V(e,n)};U(E,e=>{t.row.is_alias?e(ee):e(te,-1)}),D(T),D(a),L((e,n)=>{K(a,`id`,e),G(a,1,n,`svelte-1iynym`),H(u,t.row.display_name)},[()=>zj(t.row)||void 0,()=>Ni(Ij(t.row))]),V(e,a),k()}Br([`click`]);var lN={headerLines:[`Modes`],value:e=>(e.model?.metadata?.modes??[]).join(`, `)||`-`};function uN(e,t){return{headerLines:e,class:`col-price`,value:t}}var dN=uN([`Input / Output ($/MTok)`],(e,t)=>ud(t?.input_per_mtok)+` / `+ud(t?.output_per_mtok)),fN={all:[dN],text_generation:[lN,dN,uN([`Cached $/MTok`],(e,t)=>ud(t?.cached_input_per_mtok))],embedding:[uN([`Input`,`$/MTok`],(e,t)=>ud(t?.input_per_mtok))],image:[uN([`$/Image`],(e,t)=>dd(t?.per_image))],audio:[uN([`$/Second`],(e,t)=>dd(t?.per_second_input)),uN([`$/Character`],(e,t)=>dd(t?.per_character_input))],video:[uN([`$/Second (In)`],(e,t)=>dd(t?.per_second_input)),uN([`$/Second (Out)`],(e,t)=>dd(t?.per_second_output))],utility:[uN([`$/Page`],(e,t)=>dd(t?.per_page)),uN([`$/Request`],(e,t)=>dd(t?.per_request))]};function pN(e){return fN[e]||fN.all}function mN(e){return pN(e).length+2}var hN=B(`
        `),gN=B(` `,1),_N=B(``),vN=B(` `),yN=B(` `),bN=B(`
        `),xN=B(`
        `),SN=B(`
        Model
        `);function CN(e,t){O(t,!0);let n=A(()=>Id.activeCategory||`all`),r=A(()=>pN(R(n))),i=A(()=>mN(R(n)));var a=SN(),o=P(a),s=P(o),c=P(s),l=I(P(c));W(l,17,()=>R(r),ii,(e,t)=>{var n=_N();W(n,21,()=>R(t).headerLines,ii,(e,t,n)=>{var r=gN(),i=F(r),a=e=>{V(e,hN())};U(i,e=>{n>0&&e(a)});var o=I(i,1,!0);L(()=>H(o,R(t))),V(e,r)}),D(n),L(()=>G(n,1,Ni(R(t).class),`svelte-1911hy6`)),V(e,n)});var u=I(l);kM(P(u),{}),D(u),D(c),D(s),W(I(s),17,()=>iM.filteredDisplayModelGroups,e=>e.key,(e,t)=>{var n=xN(),a=P(n),o=P(a),s=P(o),c=P(s),l=P(c),u=P(l),d=P(u,!0);D(u);var f=I(u,2),p=e=>{var n=vN(),r=P(n,!0);D(n),L(()=>H(r,`(`+R(t).type_label+`)`)),V(e,n)};U(f,e=>{R(t).type_label&&e(p)});var m=I(f,2),h=e=>{var n=yN(),r=P(n,!0);D(n),L(()=>H(r,R(t).item_count_label)),V(e,n)};U(m,e=>{R(t).item_count_label&&e(h)}),D(l);var g=I(l,2),_=e=>{var n=bN(),r=P(n,!0);D(n),L(()=>H(r,R(t).access_summary)),V(e,n)};U(g,e=>{R(t).access_summary&&e(_)}),D(c);var v=I(c,2),y=P(v),b=e=>{DM(e,{get row(){return R(t)}})};U(y,e=>{R(t).access.selector&&e(b)});var x=I(y,2),S=e=>{{let n=A(()=>TM.modelPricingButtonLabel(`provider pricing for `+R(t).display_name,TM.hasProviderPricingOverride(R(t)))),r=A(()=>TM.modelPricingButtonClass(TM.hasProviderPricingOverride(R(t))));yO(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>TM.openProviderPricingOverrideEdit(R(t)),children:(e,t)=>{J(e,{get icon(){return Rc},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(x,e=>{TM.modelPricingOverridesAvailable&&R(t).provider_name&&e(S)});var C=I(x,2),w=e=>{{let n=A(()=>Z.rateLimitGaugeTitle(`provider `+R(t).display_name,Z.rateLimitGaugeClassForProvider(R(t)))),r=A(()=>Z.rateLimitGaugeClassForProvider(R(t)));yO(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>Z.openRateLimitInspectorForProvider(R(t)),children:(e,t)=>{J(e,{get icon(){return Wc},class:`table-icon-svg`})},$$slots:{default:!0}})}},T=A(()=>Z.rateLimitsEnabled()&&R(t).provider_name);U(C,e=>{R(T)&&e(w)});var E=I(C,2),ee=e=>{{let n=A(()=>Uj(`provider access for `+R(t).display_name,Vj(R(t).access))),r=A(()=>Hj(Vj(R(t).access)));yO(e,{get label(){return R(n)},get class(){return`table-icon-btn ${R(r)??``}`},onclick:()=>iM.openProviderOverrideEdit(R(t)),children:(e,t)=>{J(e,{get icon(){return nl},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(E,e=>{iM.virtualModelsAvailable&&R(t).access.selector&&e(ee)}),D(v),D(s),D(o),D(a),W(I(a),17,()=>R(t).rows,e=>e.key,(e,t)=>{cN(e,{get row(){return R(t)},get columns(){return R(r)}})}),D(n),L(()=>{K(o,`colspan`,R(i)),H(d,R(t).display_name)}),V(e,n)}),D(o),D(a),V(e,a),k()}var wN=B(``);function TN(e,t){let n=q(t,`enabled`,3,!1),r=q(t,`label`,3,``),i=q(t,`disabled`,3,!1),a=q(t,`restricted`,3,!1);var o=wN();let s;var c=I(P(o),2),l=P(c,!0);D(c),D(o),L(()=>{s=G(o,1,`alias-toggle`,null,s,{enabled:n(),restricted:a()}),o.disabled=i(),K(o,`aria-label`,(n()?`Disable `:`Enable `)+r()),H(l,t.text??(n()?`Enabled`:`Disabled`))}),z(`click`,o,function(...e){t.onclick?.apply(this,e)}),V(e,o)}Br([`click`]);var EN=B(``),DN=B(`
        `);function ON(e,t){O(t,!0);let n=q(t,`model`,15,``),r=q(t,`weight`,15),i=q(t,`id`,3,void 0),a=q(t,`placeholder`,3,`openai/gpt-4o`),o=q(t,`showRemove`,3,!0);var s=DN(),c=P(s);ea(c);var l=I(c,2),u=e=>{var t=EN();ea(t),L(()=>t.disabled=iM.vmFormManaged),la(t,r),V(e,t)},d=A(()=>iM.vmFormShowWeights());U(l,e=>{R(d)&&e(u)});var f=I(l,2),p=e=>{yO(e,{label:`Remove target`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,get onclick(){return t.onremove},get disabled(){return iM.vmFormManaged},children:(e,t)=>{J(e,{get icon(){return xl},class:`table-icon-svg`})},$$slots:{default:!0}})};U(f,e=>{o()&&e(p)}),D(s),L(()=>{K(c,`id`,i()),K(c,`placeholder`,a()),c.disabled=iM.vmFormManaged}),la(c,n),V(e,s),k()}var kN=B(`

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

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

        `),PN=B(``),FN=B(``),IN=B(``),LN=B(`
        `,1),RN=B(``),zN=B(`Use / to allow every user path. Use a team path to restrict to that - subtree, or an unused path to make the selector unavailable.`,1),BN=B(``),VN=B(` 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.`,1),HN=B(` `),UN=B(`
        Targets
        `,1);function WN(e,t){O(t,!0);let n=iM;On(()=>{n.vmFormOpen&&bu.ensureLoaded()});{let t=e=>{YT(e,{copyId:`virtual-model-help-copy`,label:`virtual model help`,get open(){return n.vmFormHelpOpen},set open(e){n.vmFormHelpOpen=e},title:e=>{var t=kN(),r=P(t,!0);D(t),L(()=>H(r,n.vmFormDisplayName||n.vmForm.source||`Virtual model`)),V(e,t)},help:e=>{Ve();var t=jN(),n=I(F(t),7),r=e=>{var t=AN();Ve(),V(e,t)},i=A(()=>bu.virtualModelStrategies().includes(`adaptive`));U(n,e=>{R(i)&&e(r)});var a=I(n,8);a.textContent=`{provider_name}/`;var o=I(a,2);o.textContent=`{provider_name}/{model}`,Ve(7),V(e,t)},$$slots:{title:!0,help:!0}})},r=e=>{var t=Xr(),r=F(t),i=e=>{var t=MN();L(()=>t.disabled=n.vmDeleting||n.vmSubmitting),z(`click`,t,()=>n.deleteVirtualModel()),V(e,t)};U(r,e=>{n.vmFormHasExisting&&!n.vmFormManaged&&e(i)}),V(e,t)},i=A(()=>n.vmDeleting||n.vmFormManaged),a=A(()=>n.vmFormMode===`edit`?`Save`:`Create`),o=A(()=>n.vmFormMode===`edit`?cl:il);Ck(e,{get open(){return n.vmFormOpen},ariaLabel:`Virtual model editor`,get error(){return n.vmFormError},get submitting(){return n.vmSubmitting},get submitDisabled(){return R(i)},get submitLabel(){return R(a)},get submitIcon(){return R(o)},onclose:()=>n.closeVirtualModelForm(),onsubmit:()=>n.submitVirtualModelForm(),header:t,extraActions:r,children:(e,t)=>{var r=UN(),i=F(r),a=e=>{V(e,NN())};U(i,e=>{n.vmFormManaged&&e(a)});var o=I(i,2);Tk(o,{id:`virtual-model-source`,label:`Source`,children:(e,t)=>{var r=PN();ea(r),L(()=>r.disabled=n.vmFormSourceLocked||n.vmFormManaged),la(r,()=>n.vmForm.source,e=>n.vmForm.source=e),V(e,r)},$$slots:{default:!0}});var s=I(o,2);W(s,21,()=>Id.models,e=>ij(e),(e,t)=>{var n=FN(),r=P(n,!0);D(n);var i={};L((e,t)=>{H(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>ij(R(t)),()=>ij(R(t))]),V(e,n)}),D(s);var c=I(s,2),l=I(P(c),2);{let e=A(()=>n.vmFormHasPrimaryTarget());ON(l,{id:`virtual-model-target`,get showRemove(){return R(e)},onremove:()=>n.removePrimaryTarget(),get model(){return n.vmForm.target_model},set model(e){n.vmForm.target_model=e},get weight(){return n.vmForm.target_weight},set weight(e){n.vmForm.target_weight=e}})}var u=I(l,2);W(u,17,()=>n.vmForm.targets,ii,(e,t,r)=>{ON(e,{placeholder:`groq/llama`,onremove:()=>n.removeVmTarget(r),get model(){return R(t).model},set model(e){R(t).model=e},get weight(){return R(t).weight},set weight(e){R(t).weight=e}})});var d=I(u,2),f=P(d);J(P(f),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(f),D(d),D(c);var p=I(c,2),m=e=>{var t=LN(),r=F(t);Tk(r,{id:`virtual-model-strategy`,label:`Load-balancing strategy`,children:(e,t)=>{var r=IN();W(r,21,()=>n.vmStrategyOptions(),e=>e.value,(e,t)=>{var n=FN(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(r),L(()=>r.disabled=n.vmFormManaged),Ui(r,()=>n.vmForm.strategy,e=>n.vmForm.strategy=e),V(e,r)},$$slots:{default:!0}});var i=I(r,2),a=P(i),o=P(a);ea(o),Ve(2),D(a),D(i),L(()=>o.disabled=n.vmFormManaged),ua(o,()=>n.vmForm.session_affinity,e=>n.vmForm.session_affinity=e),V(e,t)},h=A(()=>n.vmFormShowStrategy());U(p,e=>{R(h)&&e(m)});var g=I(p,2),_=P(g);YT(_,{copyId:`virtual-model-user-paths-help`,label:`user paths help`,get open(){return n.vmFormUserPathsHelpOpen},set open(e){n.vmFormUserPathsHelpOpen=e},title:e=>{V(e,RN())},help:e=>{Ve();var t=zN();Ve(2),V(e,t)},$$slots:{title:!0,help:!0}});var v=I(_,2);ut(v),K(v,`placeholder`,`/ -/team/alpha -/non-existing`),D(g);var y=I(g,2);Tk(y,{id:`virtual-model-description`,label:`Description`,children:(e,t)=>{var r=BN();ut(r),L(()=>r.disabled=n.vmFormManaged),la(r,()=>n.vmForm.description,e=>n.vmForm.description=e),V(e,r)},$$slots:{default:!0}});var b=I(y,2),x=e=>{Tk(e,{id:`virtual-model-slowdown`,label:`Slowdown (extra inference time)`,children:(e,t)=>{var r=VN(),i=F(r);ea(i),Ve(2),L(()=>i.disabled=n.vmFormManaged),la(i,()=>n.vmForm.slowdown,e=>n.vmForm.slowdown=e),V(e,r)},$$slots:{default:!0}})},S=A(()=>n.vmFormSupportsSlowdown());U(b,e=>{R(S)&&e(x)});var C=I(b,2),w=P(C),T=e=>{var t=HN(),r=P(t,!0);D(t),L(()=>H(r,`Default enabled: `+(n.vmFormDefaultEnabled?`yes`:`no`)+` · Effective now: `+(n.vmFormEffectiveEnabled?`yes`:`no`))),V(e,t)};U(w,e=>{n.vmFormMode===`edit`&&e(T)});var E=I(w,2),ee=P(E);{let e=A(()=>n.vmFormToggleRestricted()),t=A(()=>n.vmFormToggleLabel());TN(ee,{get enabled(){return n.vmForm.enabled},get restricted(){return R(e)},label:`virtual model`,get disabled(){return n.vmFormManaged},get text(){return R(t)},onclick:()=>{n.vmFormManaged||(n.vmForm.enabled=!n.vmForm.enabled)}})}D(E),D(C),L(()=>{f.disabled=n.vmFormManaged,v.disabled=n.vmFormManaged}),z(`click`,f,()=>n.addVmTarget()),la(v,()=>n.vmForm.user_paths,e=>n.vmForm.user_paths=e),V(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}})}k()}Br([`click`]);var GN=B(`

        Pricing override

        `,1),KN=B(``),qN=B(``),JN=B(``),YN=B(``),XN=B(`
        `),ZN=B(`
        Tiered pricing exists for this override and will be preserved. Tier editing can be added - without a database migration.
        `),QN=B(`
        No pricing fields set.
        `),$N=B(`
        `),eP=B(`

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

        Price Type USD Source
        `,1);function tP(e,t){O(t,!0);let n=TM;Ck(e,{get open(){return n.modelPricingOverrideFormOpen},ariaLabel:`Model pricing editor`,dialogClass:`model-pricing-editor`,get error(){return n.modelPricingOverrideError},get submitting(){return n.modelPricingOverrideSubmitting},submitLabel:`Save Pricing`,onclose:()=>n.closeModelPricingOverrideForm(),onsubmit:()=>n.submitModelPricingOverrideForm(),header:e=>{var t=GN(),r=I(F(t),2),i=P(r,!0);D(r),L(()=>H(i,n.modelPricingOverrideFormDisplayName||n.modelPricingOverrideForm.selector||`Pricing`)),V(e,t)},extraActions:e=>{var t=Xr(),r=F(t),i=e=>{var t=KN();L(()=>t.disabled=n.modelPricingOverrideSubmitting),z(`click`,t,()=>n.deleteModelPricingOverride()),V(e,t)};U(r,e=>{n.modelPricingOverrideFormHasExistingOverride&&e(i)}),V(e,t)},children:(e,t)=>{var r=eP(),i=F(r),a=P(i);Tk(a,{id:`model-pricing-override-selector`,label:`Selector`,children:(e,t)=>{var r=qN();ea(r),la(r,()=>n.modelPricingOverrideForm.selector,e=>n.modelPricingOverrideForm.selector=e),V(e,r)},$$slots:{default:!0}});var o=I(a,2),s=e=>{Tk(e,{id:`model-pricing-override-scope`,label:`Scope`,children:(e,t)=>{var r=YN();W(r,21,()=>n.modelPricingOverrideFormScopeOptions,e=>e.value,(e,t)=>{var n=JN(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(r),z(`change`,r,()=>n.setModelPricingOverrideScope(n.modelPricingOverrideFormScope)),Ui(r,()=>n.modelPricingOverrideFormScope,e=>n.modelPricingOverrideFormScope=e),V(e,r)},$$slots:{default:!0}})};U(o,e=>{n.modelPricingOverrideFormScopeOptions.length>1&&e(s)}),D(i);var c=I(i,4);W(c,21,()=>n.modelPricingOverrideRows,e=>e.id,(e,t,r)=>{var i=XN(),a=P(i),o=P(a),s=I(o,2);W(s,21,()=>n.availablePricingFieldOptions(R(t)),e=>e.value,(e,t)=>{var n=JN(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).group+` - `+R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(s),D(a);var c=I(a,2),l=P(c),u=I(l,2);ea(u),D(c);var d=I(c,2);{let e=A(()=>`Remove `+n.pricingFieldLabel(R(t).field));yO(d,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn pricing-override-remove-row`,onclick:()=>n.removeModelPricingOverrideRow(R(t)),children:(e,t)=>{J(e,{get icon(){return Ol},class:`table-icon-svg`})},$$slots:{default:!0}})}D(i),L(()=>{K(o,`for`,`pricing-type-`+R(t).id),K(s,`id`,`pricing-type-`+R(t).id),K(l,`for`,`pricing-value-`+R(t).id),K(u,`id`,`pricing-value-`+R(t).id)}),Ui(s,()=>R(t).field,e=>R(t).field=e),la(u,()=>R(t).value,e=>R(t).value=e),V(e,i)}),D(c);var l=I(c,2),u=P(l);J(P(u),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(u),D(l);var d=I(l,2),f=e=>{V(e,ZN())};U(d,e=>{n.modelPricingOverrideFormPreservedTiers.length>0&&e(f)});var p=I(d,2),m=I(P(p),2),h=e=>{V(e,QN())},g=A(()=>n.modelPricingEffectivePreviewRows().length===0);U(m,e=>{R(g)&&e(h)}),W(I(m,2),17,()=>n.modelPricingEffectivePreviewRows(),e=>e.field,(e,t)=>{var n=$N(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(n),L(e=>{H(i,R(t).label),H(o,e),H(c,R(t).source)},[()=>R(t).value===null||R(t).value===void 0?`-`:dd(Number(R(t).value))]),V(e,n)}),D(p),z(`click`,u,()=>n.addModelPricingOverrideRow()),V(e,r)},$$slots:{header:!0,extraActions:!0,default:!0}}),k()}Br([`click`,`change`]);var nP=B(`

        Failover mapping

        `,1),rP=B(``),iP=B(`

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

        `),aP=B(``),oP=B(`
        `),sP=B(`
        `,1),cP=B(`
        `);function lP(e,t){O(t,!0);{let t=e=>{var t=nP(),n=I(F(t),2),r=P(n,!0);D(n),L(()=>H(r,Q.failoverForm.source||`Failover`)),V(e,t)},n=e=>{var t=Xr(),n=F(t),r=e=>{var t=rP();L(()=>t.disabled=Q.failoverSaving||Q.failoverGenerating),z(`click`,t,()=>Q.deleteFailoverRule()),V(e,t)};U(n,e=>{Q.failoverFormMode===`edit`&&!Q.failoverFormManaged&&e(r)}),V(e,t)},r=A(()=>Q.failoverGenerating||Q.failoverFormManaged);Ck(e,{get open(){return Q.failoverFormOpen},ariaLabel:`Failover editor`,get error(){return Q.failoverError},get submitting(){return Q.failoverSaving},get submitDisabled(){return R(r)},submitLabel:`Save`,onclose:()=>Q.closeFailoverForm(),onsubmit:()=>Q.submitFailoverForm(),header:t,extraActions:n,children:(e,t)=>{var n=cP(),r=P(n),i=e=>{V(e,iP())};U(r,e=>{Q.failoverFormManaged&&e(i)});var a=I(r,2);W(a,21,()=>Id.models,ii,(e,t)=>{var n=aP(),r=P(n,!0);D(n);var i={};L((e,t)=>{H(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>ij(R(t)),()=>ij(R(t))]),V(e,n)}),D(a);var o=I(a,2);Tk(o,{id:`failover-target`,label:`Fallback models`,children:(e,t)=>{var n=sP(),r=F(n),i=P(r),a=P(i);ea(a);var o=I(a,2),s=e=>{yO(e,{label:`Remove fallback model`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removePrimaryFailoverTarget(),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{J(e,{get icon(){return xl},class:`table-icon-svg`})},$$slots:{default:!0}})};U(o,e=>{Q.failoverForm.target_model&&e(s)}),D(i),W(I(i,2),17,()=>Q.failoverForm.targets,ii,(e,t,n)=>{var r=oP(),i=P(r);ea(i),yO(I(i,2),{label:`Remove fallback model`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>Q.removeFailoverTarget(n),get disabled(){return Q.failoverFormManaged},children:(e,t)=>{J(e,{get icon(){return xl},class:`table-icon-svg`})},$$slots:{default:!0}}),D(r),L(()=>i.disabled=Q.failoverFormManaged),la(i,()=>R(t).model,e=>R(t).model=e),V(e,r)}),D(r);var c=I(r,2),l=P(c);J(P(l),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(l);var u=I(l,2),d=P(u);J(d,{get icon(){return El},class:`form-action-icon`});var f=I(d,2),p=P(f,!0);D(f),D(u),D(c),L(e=>{a.disabled=Q.failoverFormManaged,l.disabled=Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving,u.disabled=e,H(p,Q.failoverGenerating?`Generating...`:`Generate automatically`)},[()=>Q.failoverFormManaged||Q.failoverGenerating||Q.failoverSaving||!Q.failoverEnabled()]),la(a,()=>Q.failoverForm.target_model,e=>Q.failoverForm.target_model=e),z(`click`,l,()=>Q.addFailoverTarget()),z(`click`,u,()=>Q.generateFailoverForForm()),V(e,n)},$$slots:{default:!0}});var s=I(o,2),c=P(s);TN(P(c),{get enabled(){return Q.failoverForm.enabled},label:`failover mapping`,get disabled(){return Q.failoverFormManaged},onclick:()=>{Q.failoverFormManaged||(Q.failoverForm.enabled=!Q.failoverForm.enabled)}}),D(c),D(s),D(n),V(e,n)},$$slots:{header:!0,extraActions:!0,default:!0}})}k()}Br([`click`]);var uP=B(` `),dP=B(`
        `),fP=B(``),pP=B(`
        `),mP=B(`

        No failover suggestions were generated.

        `),hP=B(`

        No failover drafts match the filter.

        `),gP=B(``),_P=B(``);function vP(e,t){O(t,!0),Nu(e,{get open(){return Q.failoverDraftsOpen},variant:`editor`,onclose:()=>Q.closeFailoverDraftsModal(),children:(e,t)=>{var n=_P(),r=P(n),i=I(P(r),2),a=P(i),o=e=>{var t=uP(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>Q.failoverDraftCountLabel()]),V(e,t)};U(a,e=>{Q.failoverGeneratedRules.length>0&&e(o)}),ku(I(a,2),{label:`Close failover drafts`,onclick:()=>Q.closeFailoverDraftsModal(),get disabled(){return Q.failoverDraftSaving}}),D(i),D(r);var s=I(r,2),c=e=>{_O(e,{label:`Generating failover drafts...`,class:`failover-drafts-loading`})};U(s,e=>{Q.failoverGenerating&&e(c)});var l=I(s,2),u=e=>{var t=dP(),n=P(t);SD(n,{placeholder:`Filter failover drafts...`,label:`Filter failover drafts`,get value(){return Q.failoverDraftFilter},set value(e){Q.failoverDraftFilter=e}});var r=I(n,2),i=P(r);J(i,{get icon(){return Mc},class:`form-action-icon`});var a=I(i,2),o=P(a,!0);D(a),D(r),D(t),L(e=>{r.disabled=Q.failoverDraftSaving,H(o,e)},[()=>Q.allFailoverDraftsSelected()?`Deselect all`:`Select all`]),z(`click`,r,()=>Q.toggleAllFailoverDrafts()),V(e,t)};U(l,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&e(u)});var d=I(l,2),f=e=>{var t=pP();W(t,21,()=>Q.filteredFailoverDrafts(),e=>`failover-draft:`+Q.failoverPrimaryModel(e),(e,t)=>{var n=fP(),r=P(n);ea(r);var i=I(r,2),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s,!0);D(s),D(i),D(n),L((e,t,n,i)=>{na(r,e),r.disabled=Q.failoverDraftSaving,K(r,`aria-label`,t),H(o,n),H(c,i)},[()=>Q.failoverDraftSelected(R(t)),()=>`Select failover draft for `+Q.failoverPrimaryModel(R(t)),()=>Q.failoverPrimaryModel(R(t)),()=>Q.failoverTargetLabel(R(t))]),z(`change`,r,e=>Q.setFailoverDraftSelected(R(t),e.currentTarget.checked)),V(e,n)}),D(t),V(e,t)},p=A(()=>!Q.failoverGenerating&&Q.filteredFailoverDrafts().length>0);U(d,e=>{R(p)&&e(f)});var m=I(d,2),h=e=>{V(e,mP())};U(m,e=>{!Q.failoverGenerating&&Q.failoverGeneratedRules.length===0&&!Q.failoverError&&e(h)});var g=I(m,2),_=e=>{V(e,hP())},v=A(()=>!Q.failoverGenerating&&Q.failoverGeneratedRules.length>0&&Q.filteredFailoverDrafts().length===0);U(g,e=>{R(v)&&e(_)});var y=I(g,2),b=e=>{var t=gP(),n=P(t,!0);D(t),L(()=>H(n,Q.failoverError)),V(e,t)};U(y,e=>{Q.failoverError&&e(b)});var x=I(y,2),S=P(x),C=I(S,2),w=P(C);J(w,{get icon(){return cl},class:`form-action-icon`});var T=I(w,2),E=P(T,!0);D(T),D(C),D(x),D(n),L(e=>{S.disabled=Q.failoverDraftSaving,C.disabled=e,H(E,Q.failoverDraftSaving?`Saving...`:`Save selected`)},[()=>Q.failoverGenerating||Q.failoverDraftSaving||Q.selectedFailoverDraftCount()===0]),z(`click`,S,()=>Q.closeFailoverDraftsModal()),z(`click`,C,()=>Q.saveSelectedFailoverDrafts()),V(e,n)},$$slots:{default:!0}}),k()}Br([`click`,`change`]);var yP=B(`
        Rate limit management is unavailable.
        `),bP=B(` Add`,1),xP=B(`

        `),SP=B(`

        No rules.

        `),CP=B(` Edit`,1),wP=B(`
        `),TP=B(`
        `),EP=B(`

        `),DP=B(``),OP=B(``);function kP(e,t){O(t,!0);function n(){Y.dialogOpen||Z.closeRateLimitInspector()}Nu(e,{get open(){return Z.rateLimitInspectorOpen},variant:`editor`,onclose:n,children:(e,t)=>{var n=OP(),r=P(n),i=P(r),a=I(P(i),2),o=P(a),s=P(o,!0);D(o),D(a),D(i),ku(I(i,2),{label:`Close rate limits inspector`,onclick:()=>Z.closeRateLimitInspector()}),D(r);var c=I(r,2),l=e=>{_O(e,{label:`Loading rate limits...`})},u=e=>{V(e,yP())},d=e=>{var t=Xr();W(F(t),17,()=>Z.rateLimitInspectorSections(),e=>e.key,(e,t)=>{var n=EP(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2);{let e=A(()=>`Add `+R(t).title.toLowerCase());yO(o,{get label(){return R(e)},class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(R(t).scope,R(t).subject),children:(e,t)=>{var n=bP();J(F(n),{get icon(){return il},class:`table-icon-svg`}),Ve(2),V(e,n)},$$slots:{default:!0}})}D(r);var s=I(r,2),c=e=>{var n=xP(),r=P(n,!0);D(n),L(()=>H(r,R(t).hint)),V(e,n)};U(s,e=>{R(t).hint&&e(c)});var l=I(s,2),u=e=>{V(e,SP())},d=e=>{var n=TP();W(n,21,()=>R(t).items,e=>Z.rateLimitKey(e),(e,t)=>{var n=wP(),r=P(n),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=P(s),l=P(c);{let e=A(()=>Z.rateLimitIsConcurrent(R(t))?xc:bl);J(l,{get icon(){return R(e)},class:`budget-period-icon`})}var u=I(l,2),d=P(u,!0);D(u),D(c),D(s);var f=I(s,2),p=P(f),m=P(p),h=P(m,!0);D(m);var g=I(m,2),_=P(g,!0);D(g),D(p);var v=I(p,2),y=P(v),b=e=>{yO(e,{label:`Edit rate limit`,class:`budget-action-btn`,onclick:()=>Z.openRateLimitFormFromInspector(null,null,R(t)),children:(e,t)=>{var n=CP();J(F(n),{get icon(){return nl},class:`budget-action-icon`}),Ve(2),V(e,n)},$$slots:{default:!0}})},x=A(()=>!Z.rateLimitIsReadOnly(R(t)));U(y,e=>{R(x)&&e(b)}),D(v),D(f),D(i),D(r),D(n),L((e,t,r,i,a,s,c,l)=>{G(n,1,`budget-row ${e??``}`),Bi(n,t),K(n,`title`,r),H(o,i),H(d,a),H(h,s),K(g,`title`,c),H(_,l)},[()=>Z.rateLimitPressureClass(R(t)),()=>Z.rateLimitPressureStyle(R(t)),()=>Z.rateLimitPressurePercent(R(t))+`% of the most constrained cap used`,()=>Z.rateLimitSubject(R(t)),()=>Z.rateLimitPeriodLabel(R(t)),()=>Z.rateLimitInspectorSummary(R(t)),()=>Z.rateLimitIsReadOnly(R(t))?`Declared in configuration; read-only in the dashboard`:`Managed via dashboard or admin API`,()=>Z.rateLimitSourceLabel(R(t))]),V(e,n)}),D(n),V(e,n)};U(l,e=>{R(t).items.length===0?e(u):e(d,-1)}),D(n),L(()=>H(a,R(t).title)),V(e,n)}),V(e,t)};U(c,e=>{Z.rateLimitsLoading?e(l):Z.rateLimitsAvailable?e(d,-1):e(u,1)});var f=I(c,2),p=P(f),m=I(p,2),h=e=>{var t=DP();z(`click`,t,()=>{Z.closeRateLimitInspector(),Bl.navigate(`rate-limits`)}),V(e,t)},g=A(()=>Z.rateLimitsEnabled());U(m,e=>{R(g)&&e(h)}),D(f),D(n),L(()=>H(s,Z.rateLimitInspector.title)),z(`click`,p,()=>Z.closeRateLimitInspector()),V(e,n)},$$slots:{default:!0}}),k()}Br([`click`]);var AP=B(`
        models
        `),jP=B(`
        Virtual models feature is unavailable.
        `),MP=B(`
        `),NP=B(``),PP=B(`
        `),FP=B(``),IP=B(`
        `),LP=B(`

        No models registered.

        `),RP=B(`

        No models in this category.

        `),zP=B(`

        No models match your filter.

        `),BP=B(`
        `);function VP(e,t){O(t,!0),On(()=>{Y.refreshTick,Bl.page===`models`&&(iM.fetchVirtualModels(),TM.fetchModelPricingOverrides(),Q.fetchFailoverRules(),Z.fetchRateLimitsPage())}),On(()=>{let e=iM.filteredDisplayModels.length;return wr(()=>iM.restartModelRendering(e)),()=>iM.stopModelRendering()});let n=A(()=>Y.needsAuth);var r=BP(),i=P(r),a=I(P(i),2),o=e=>{var t=AP(),n=P(t),r=P(n,!0);D(n),Ve(),D(t),L(()=>H(r,Id.filter?iM.filteredDisplayModels.length+` / `+iM.displayModels.length:iM.displayModels.length)),V(e,t)};U(a,e=>{iM.displayModels.length>0&&e(o)}),D(i);var s=I(i,2);Rd(s,{});var c=I(s,2),l=e=>{V(e,jP())};U(c,e=>{!iM.virtualModelsAvailable&&!R(n)&&e(l)});var u=I(c,2),d=e=>{var t=MP(),n=P(t,!0);D(t),L(()=>H(n,iM.aliasError)),V(e,t)};U(u,e=>{iM.aliasError&&!R(n)&&e(d)});var f=I(u,2),p=e=>{var t=MP(),n=P(t,!0);D(t),L(()=>H(n,TM.modelPricingOverrideError)),V(e,t)};U(f,e=>{TM.modelPricingOverrideError&&!R(n)&&!TM.modelPricingOverrideFormOpen&&e(p)});var m=I(f,2),h=e=>{var t=PP();W(t,21,()=>Id.categories,e=>e.category,(e,t)=>{var n=NP();let r;var i=P(n),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(n),L(()=>{r=G(n,1,`category-tab svelte-scpjps`,null,r,{active:Id.activeCategory===R(t).category}),H(a,R(t).display_name),H(s,R(t).count)}),z(`click`,n,()=>Id.selectCategory(R(t).category)),V(e,n)}),D(t),V(e,t)};U(m,e=>{Id.categories.length>0&&e(h)});var g=I(m,2),_=e=>{var t=IP(),n=P(t);SD(P(n),{placeholder:`Filter by provider, provider/model, alias, or owner...`,label:`Filter models by provider, provider/model, alias, or owner`,get value(){return Id.filter},set value(e){Id.filter=e}}),D(n);var r=I(n,2),i=P(r),a=e=>{var t=FP();J(P(t),{get icon(){return il},class:`alias-create-icon`}),Ve(2),D(t),z(`click`,t,()=>iM.openVirtualModelCreate()),V(e,t)};U(i,e=>{iM.virtualModelsAvailable&&e(a)}),D(r),D(t),V(e,t)};U(g,e=>{(iM.displayModels.length>0||Id.filter||iM.virtualModelsAvailable)&&e(_)});var v=I(g,2),y=e=>{{let t=A(()=>iM.modelLoadingText());_O(e,{get label(){return R(t)},class:`models-loading-state`})}},b=A(()=>iM.modelsBusy()&&!R(n));U(v,e=>{R(b)&&e(y)});var x=I(v,2);WN(x,{});var S=I(x,2);tP(S,{});var C=I(S,2),w=e=>{CN(e,{})};U(C,e=>{(iM.displayModels.length>0||Id.filter)&&e(w)});var T=I(C,2),E=e=>{V(e,LP())};U(T,e=>{iM.displayModels.length===0&&!Id.loading&&!R(n)&&!Id.filter&&(Id.activeCategory===`all`||!Id.activeCategory)&&e(E)});var ee=I(T,2),te=e=>{V(e,RP())};U(ee,e=>{iM.displayModels.length===0&&!Id.loading&&!R(n)&&!Id.filter&&Id.activeCategory&&Id.activeCategory!==`all`&&e(te)});var ne=I(ee,2),re=e=>{V(e,zP())};U(ne,e=>{iM.displayModels.length>0&&iM.filteredDisplayModels.length===0&&Id.filter&&e(re)});var ie=I(ne,2);kP(ie,{});var ae=I(ie,2);RA(ae,{});var oe=I(ae,2);lP(oe,{}),vP(I(oe,2),{}),D(r),V(e,r),k()}Br([`click`]);var HP=`draft-workflow-preview`;function UP(){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 WP(){return{scope_provider:``,scope_model:``,scope_user_path:``}}function GP(e){return{ref:``,step:Number.isFinite(e)?e:10}}function KP(e){let t=e==null?``:String(e).trim();if(t===``)return NaN;let n=Number(t);return Number.isFinite(n)?n:NaN}function qP(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 JP(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 YP(e){return{cache:!!qP(e,`cache`,!1),audit:!!qP(e,`audit`,!1),usage:!!qP(e,`usage`,!1),budget:qP(e,`budget`,!0)!==!1,guardrails:!!qP(e,`guardrails`,!1),failover:qP(e,`failover`,!0)!==!1}}function XP(e,t){let n=YP(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 ZP(e,t){let n=e&&e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:e&&e.features?e.features:{};return{...XP((e&&e.effective_features&&typeof e.effective_features==`object`&&!Array.isArray(e.effective_features)?e.effective_features:null)||n,t),failover:YP(n).failover}}function QP(e,t){return ZP(e,t).failover?`On`:`Off`}function $P(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:KP(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0)}function eF(e,t){return ZP(e,t).guardrails&&Array.isArray(e&&e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[]}function tF(e){return String(e&&(e.scope_provider_name||e.scope_provider)||``).trim()}function nF(e){return String(e&&(e.provider_name||e.provider_type)||``).trim()}function rF(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=nF(e);t&&n.add(t)}),[...n].sort()}function iF(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&&nF(e)!==r)return;let t=String(e&&e.model&&e.model.id||``).trim();t&&i.add(t)}),[...i].sort()}function aF(e){let t=String(e&&e.scope_type||``).trim();return t===`provider_model`?`Provider Name + Model`:t===`provider_model_path`?`Provider Name + Model + Path`:t===`provider_path`?`Provider Name + Path`:t===`path`?`Path`:t===`provider`?`Provider Name`:`Global`}function oF(e){return String(e&&e.scope_display||`global`).trim()||`global`}function sF(e){let t=String(e&&e.name||``).trim();if(t)return t;let n=oF(e);return n===`global`?`All models`:n}function cF(e){let t=String(e||``).trim();if(!t)return``;let n=(t.startsWith(`/`)?t:`/`+t).split(`/`);for(let e of n){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return`User path cannot contain "." or ".." segments.`;if(t.includes(`:`))return`User path cannot contain ":" segments.`}}return``}function lF(e){if(cF(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 uF(e){let t=e||UP(),n=String(t.scope_provider||``).trim(),r=lF(t.scope_user_path);return{scope_provider:n,scope_model:n?String(t.scope_model||``).trim():``,scope_user_path:r}}function dF(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=lF(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 fF(e){let t=String(e&&e.scope_provider||``).trim(),n=t?String(e&&e.scope_model||``).trim():``,r=lF(e&&e.scope_user_path),i=dF({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 pF(e,t){let n=t||WP(),r=tF(e&&e.scope),i=r?String(e&&e.scope&&e.scope.scope_model||``).trim():``,a=lF(e&&e.scope&&e.scope.scope_user_path);return r===String(n.scope_provider||``).trim()&&i===String(n.scope_model||``).trim()&&a===lF(n.scope_user_path)}function mF(e,t,n){let r=uF(t);return!(r.scope_provider!==``||r.scope_model!==``||r.scope_user_path!==``)&&!n?null:(Array.isArray(e)?e:[]).find(e=>pF(e,r))||null}function hF(e){return String(e&&e.scope_type||``).trim()!==`global`}function gF(e){let t=String(e||``).trim();return t?t.length<=14?t:t.slice(0,12)+`…`:`—`}function _F(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,tF(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 vF(e,t){let n=e||UP(),r=uF(n),i=YP(n.features||{}),a=XP(i,t);a.failover=i.failover;let o=!!a.guardrails,s=o?$P(n):[];return{id:HP,scope_type:dF(r),scope_display:fF(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 yF({form:e,caps:t,workflows:n=[],formHydrated:r=!1,hydratedScope:i=null}){let a=e||UP(),o=String(a.scope_provider||``).trim(),s=o?String(a.scope_model||``).trim():``,c=lF(a.scope_user_path),l=YP(a.features||{}),u=XP(l,t),d=mF(n,a,r),f=d&&d.workflow_payload&&d.workflow_payload.features,p=JP(f,`failover`),m=p?qP(f,`failover`,!0)!==!1:null,h=i||WP(),g=String(h.scope_provider||``).trim()===o&&String(h.scope_model||``).trim()===s&&lF(h.scope_user_path)===lF(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:KP(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 bF(e,{models:t=[],hydratedScope:n=null}={}){let r=n||WP(),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&&!rF(t,r).includes(o)&&o!==i)return`Choose a registered provider name.`;if(s&&!o)return`Model selection requires a provider name.`;if(s){let e=iF(t,o,r),n=o===i&&s===a;if(!e.includes(s)&&!n)return`Choose a registered model for the selected provider name.`}let c=cF(e.scope_user_path);if(c)return c;let l=e.workflow_payload&&e.workflow_payload.features?e.workflow_payload.features:{},u=Array.isArray(e.workflow_payload&&e.workflow_payload.guardrails)?e.workflow_payload.guardrails:[];if(!l.guardrails)return``;let d=new Set;for(let e of u){if(!e.ref)return`Each guardrail step needs a guardrail ref.`;if(!Number.isInteger(e.step)||e.step<0)return`Each guardrail step must use a non-negative integer step number.`;if(d.has(e.ref))return`Each guardrail ref may appear only once in a workflow.`;d.add(e.ref)}return``}var xF=new class{#e=j(N([]));get workflows(){return R(this.#e)}set workflows(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return R(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get submitting(){return R(this.#o)}set submitting(e){M(this.#o,e,!0)}#s=j(``);get deactivatingID(){return R(this.#s)}set deactivatingID(e){M(this.#s,e,!0)}#c=j(``);get formError(){return R(this.#c)}set formError(e){M(this.#c,e,!0)}#l=j(!1);get formHydrated(){return R(this.#l)}set formHydrated(e){M(this.#l,e,!0)}#u=j(N(WP()));get hydratedScope(){return R(this.#u)}set hydratedScope(e){M(this.#u,e,!0)}#d=j(N([]));get guardrailRefs(){return R(this.#d)}set guardrailRefs(e){M(this.#d,e,!0)}#f=j(N(UP()));get form(){return R(this.#f)}set form(e){M(this.#f,e,!0)}#p=null;failoverVisible(){return bu.booleanFlag(`FAILOVER_ENABLED`,!0)}featureCaps(){return{cache:bu.cacheVisible(),audit:bu.auditVisible(),usage:bu.usageVisible(),budget:bu.budgetsVisible(),guardrails:bu.guardrailsVisible(),failover:this.failoverVisible()}}get filteredWorkflows(){return _F(this.workflows,this.filter)}providerOptions(){return rF(Id.models,this.hydratedScope)}modelOptions(e){return iF(Id.models,e,this.hydratedScope)}activeScopeMatch(){return mF(this.workflows,this.form,this.formHydrated)}submitMode(){return this.activeScopeMatch()?`save`:`create`}submitLabel(){return this.submitMode()===`save`?`Save`:`Create`}submittingLabel(){return this.submitMode()===`save`?`Saving...`:`Creating...`}preview(){return vF(this.form,this.featureCaps())}openCreate(e){if(this.formOpen=!0,this.submitting=!1,this.formError=``,!e){this.formHydrated=!1,this.hydratedScope=WP(),this.form=UP();return}this.formHydrated=!0,this.hydratedScope={scope_provider:tF(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?YP(e.workflow_payload.features):ZP(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:KP(e&&e.step)})).filter(e=>Number.isInteger(e.step)&&e.step>=0):$P(e);this.form={scope_provider:tF(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=WP(),this.form=UP()}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(GP(e))}removeGuardrailStep(e){Array.isArray(this.form.guardrails)&&this.form.guardrails.splice(e,1)}buildRequest(){return yF({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 bO(`/admin/workflows`,{label:`workflows`,options:{signal:e.signal}});if(clearTimeout(t),this.#p===e&&(this.#p=null,this.loading=!1,n.status!==`stale`)){if(n.status===`unavailable`){this.available=!1,this.workflows=[];return}if(n.result&&(this.available=!0),n.status===`error`){this.workflows=[],this.error=e.signal.aborted?`Loading workflows timed out.`:n.error;return}this.workflows=n.items}}async fetchGuardrailRefs(){let e=await bO(`/admin/workflows/guardrails`,{label:`workflow guardrails`});e.status!==`stale`&&(this.guardrailRefs=e.items)}async fetchPage(){await Promise.all([bu.ensureLoaded(),this.fetchWorkflows(),this.fetchGuardrailRefs()])}async submitForm(){if(this.submitting)return;this.formError=``;let e=this.buildRequest(),t=bF(e,{models:Id.models,hydratedScope:this.hydratedScope});if(t){this.formError=t;return}this.submitting=!0;try{let t=await xO(`/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}ed.success(`Workflow created and activated.`),this.closeForm(),this.fetchPage()}finally{this.submitting=!1}}async deactivate(e){let t=String(e&&e.id||``).trim();if(!t||this.deactivatingID||!hF(e))return;let n=sF(e);if(confirm(`Deactivate workflow "`+n+`"? Requests will fall back to the next active workflow for this scope.`)){this.deactivatingID=t;try{let e=await xO(`/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`){ed.error(e.error);return}ed.success(`Workflow deactivated.`),this.fetchPage()}finally{this.deactivatingID=``}}}};function SF(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 CF({resetDelayMs:e=2e3,logPrefix:t}={}){let n=N({copied:!1,error:!1}),r=null;function i(){r!==null&&clearTimeout(r),r=null}function a(){i(),r=setTimeout(()=>{n.copied=!1,n.error=!1,r=null},e)}return{get copied(){return n.copied},get error(){return n.error},reset(){i(),n.copied=!1,n.error=!1},async copy(e,r){if(!(e==null||e===``)){i(),n.copied=!1,n.error=!1;try{await SF(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 wF=B(``);function TF(e,t){O(t,!0);let n=q(t,`workflowID`,3,``),r=CF({logPrefix:`Failed to copy workflow ID:`});On(()=>{n(),r.reset()});let i=A(()=>r.error?`Unable to copy workflow ID`:r.copied?`Workflow ID copied`:`Copy workflow ID`),a=A(()=>n()?R(i)+` `+n():R(i));async function o(e){e.preventDefault(),n()&&await r.copy(n())}var s=wF();let c;var l=I(P(s),4),u=P(l,!0);D(l);var d=I(l,2);J(P(d),{get icon(){return Bc}}),D(d),D(s),L(()=>{c=G(s,1,`workflow-pipeline-meta mono svelte-1viff7o`,null,c,{"workflow-pipeline-meta-copied":r.copied,"workflow-pipeline-meta-error":r.error}),K(s,`title`,R(i)),K(s,`aria-label`,R(a)),H(u,n())}),z(`click`,s,o),V(e,s),k()}Br([`click`]);var EF=(e,t)=>{let n=()=>(t?.()).icon,r=()=>(t?.()).label,i=Et(()=>h((t?.()).variant,`workflow-node-feature`)),a=()=>(t?.()).state,o=()=>(t?.()).sub,s=()=>(t?.()).badge;var c=AF(),l=P(c),u=e=>{var t=DF();let r;J(P(t),{get icon(){return n()}}),D(t),L(()=>r=G(t,1,`workflow-node-icon svelte-nbptrg`,null,r,{"workflow-node-icon-endpoint":R(i)===`workflow-node-endpoint`})),V(e,t)};U(l,e=>{n()&&e(u)});var d=I(l,2),f=P(d,!0);D(d);var p=I(d,2),m=e=>{var t=OF(),n=P(t,!0);D(t),L(()=>H(n,s())),V(e,t)};U(p,e=>{s()&&e(m)});var g=I(p,2),_=e=>{var t=kF(),n=P(t,!0);D(t),L(()=>H(n,o())),V(e,t)};U(g,e=>{o()&&e(_)}),D(c),L(()=>{G(c,1,Ni([`workflow-node`,R(i),a()]),`svelte-nbptrg`),H(f,r())}),V(e,c)},DF=B(`
        `),OF=B(` `),kF=B(` `),AF=B(`
        `),jF=B(`
        `,1),MF=B(`
        `,1),NF=B(`
        `),PF=B(`
        Async
        `),FF=B(`
        `);function IF(e,t){O(t,!0);let n=q(t,`chart`,19,()=>({}));var r=FF();let i;var a=P(r),o=e=>{TF(e,{get workflowID(){return n().workflowID}})};U(a,e=>{n().workflowID&&e(o)});var s=I(a,2),c=P(s);EF(c,()=>({icon:wl,label:`Client`,variant:`workflow-node-endpoint`}));var l=I(c,4);EF(l,()=>({icon:Hc,label:`Auth`,state:n().authNodeClass,sub:n().authNodeSublabel}));var u=I(l,2),d=e=>{var t=jF(),r=F(t);EF(I(r,2),()=>({icon:Hc,label:`Cache`,state:n().cacheNodeClass,badge:n().cacheStatusLabel})),L(()=>G(r,1,Ni([`workflow-conn`,n().cacheConnClass]),`svelte-nbptrg`)),V(e,t)};U(u,e=>{n().showCache&&e(d)});var f=I(u,2),p=e=>{var t=MF();EF(I(F(t),2),()=>({icon:Tl,label:`Budget`,state:n().budgetNodeClass,badge:n().budgetStatusLabel})),V(e,t)};U(f,e=>{n().showBudget&&e(p)});var m=I(f,2),h=e=>{var t=MF();EF(I(F(t),2),()=>({icon:gl,label:`Guardrails`,sub:n().guardrailLabel})),V(e,t)};U(m,e=>{n().showGuardrails&&e(h)});var g=I(m,2),_=I(g,2);EF(_,()=>({label:n().aiLabel,variant:`workflow-node-ai`,state:n().aiNodeClass,sub:n().aiSublabel}));var v=I(_,2),y=e=>{var t=jF(),r=F(t);EF(I(r,2),()=>({icon:Qc,label:`Failover`,state:n().failoverNodeClass,badge:n().failoverStatusLabel,sub:n().failoverTargetLabel})),L(()=>G(r,1,Ni([`workflow-conn`,n().failoverConnClass]),`svelte-nbptrg`)),V(e,t)};U(v,e=>{n().showFailover&&e(y)});var b=I(v,2);EF(I(b,2),()=>({icon:Ic,label:`Response`,variant:`workflow-node-endpoint`,state:n().responseNodeClass,sub:n().responseNodeSublabel})),D(s);var x=I(s,2),S=e=>{var t=PF(),r=P(t),i=P(r),a=e=>{EF(e,()=>({icon:Ac,label:`Usage`,variant:`workflow-node-feature workflow-node-async`,state:n().usageNodeClass}))};U(i,e=>{n().showUsage&&e(a)});var o=I(i,2),s=e=>{V(e,NF())};U(o,e=>{n().showUsage&&n().showAudit&&e(s)});var c=I(o,2),l=e=>{EF(e,()=>({icon:Uc,label:`Audit Log`,variant:`workflow-node-feature workflow-node-async`,state:n().auditNodeClass}))};U(c,e=>{n().showAudit&&e(l)}),D(r),Ve(4),D(t),V(e,t)};U(x,e=>{n().showAsync&&e(S)}),D(r),L(()=>{i=G(r,1,`workflow-pipeline svelte-nbptrg`,null,i,{"workflow-pipeline-has-meta":n().workflowID}),G(g,1,Ni([`workflow-conn`,n().aiConnClass]),`svelte-nbptrg`),G(b,1,Ni([`workflow-conn`,n().responseConnClass]),`svelte-nbptrg`)}),V(e,r),k()}function LF(e){let t=$P(e).length;return t===0?``:t===1?`1 step`:t+` steps`}function RF(e,t){return t&&t.provider?t.provider:tF(e&&e.scope)||`AI`}function zF(e,t){return t&&t.model?t.model:e&&e.scope&&e.scope.scope_model||null}function BF(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 VF(e){let t=e&&e.data&&e.data.workflow_features;return!t||typeof t!=`object`||Array.isArray(t)?null:YP(t)}function HF(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 UF(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 UF(JSON.parse(n),t+1)}catch{return``}}if(Array.isArray(e)){for(let n of e){let e=UF(n,t+1);if(e)return e}return``}return typeof e==`object`?String(e.code||``).trim()||(e.error===void 0?``:UF(e.error,t+1)):``}function WF(e){let t=e&&e.data&&typeof e.data==`object`&&!Array.isArray(e.data)?e.data:{};return String(t.error_code||t.errorCode||``).trim()||UF(t.response_body)}function GF(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 KF(e,t){let n=String(e&&(e.requested_model||e.model)||``).trim(),r=HF(e);if(!(r&&r.targetModel))return{provider:String(e&&e.provider||``).trim()||null,model:n||null};let i=GF(n);if(i)return i;let a=tF(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 qF(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=HF(e),o=KF(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=WF(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 JF(e){return!!(e&&e.cacheHit)}function YF(e){return!!(e&&e.failoverTarget)}function XF(e){return!!(e&&e.budgetExceeded)}function ZF(e,t){return t?`workflow-node-current`:e&&e.cacheHit?`workflow-node-success`:``}function QF(e){return e&&e.cacheHit?`workflow-conn-hit`:``}function $F(e){return!e||!e.cacheHit?null:e.cacheType===`semantic`?`Hit (Semantic)`:`Hit (Exact)`}function eI(e,t,n,r){return e?XF(t)?`workflow-node-error`:r?`workflow-node-current`:n?`workflow-node-success`:``:``}function tI(e){return XF(e)?`Exceeded`:null}function nI(e){return e&&e.cacheHit?`workflow-node-skipped`:e&&e.failoverTarget?`workflow-node-success`:``}function rI(e){return e&&e.cacheHit?`workflow-conn-dim`:e&&e.failoverTarget?`workflow-conn-hit`:``}function iI(e){return e&&e.failoverTarget?`Redirected`:null}function aI(e){return e&&e.failoverTarget?e.failoverTarget:null}function oI(e){return e&&e.cacheHit?`workflow-conn-dim`:``}function sI(e,t){return e?e.cacheHit?`workflow-node-skipped`:t?`workflow-node-current`:e.aiSuccess?`workflow-node-success`:``:``}function cI(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 lI(e){return!e||!Number.isFinite(e.statusCode)?null:String(e.statusCode)}function uI(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 dI(e){return!e||!e.authMethod?null:e.authMethod}function fI(e,t,n){return e?n?`workflow-node-current`:t?`workflow-node-success`:``:``}function pI(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 mI(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 hI(e){return!!(e&&e._live&&e._usage_live_pending&&!e._usage_flushed)}function gI(e,t){return!e||!e._live||pI(e,!1)?!1:String(e._live_state||``).trim()===`audit.completed`||!!(t&&Number.isFinite(t.statusCode))}function _I(e,t,n){return!e||!e._live?``:hI(e)?`usage`:gI(e,t)?`audit`:pI(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 vI(e,t,n,r){let i=n||{},a=i.features&&typeof i.features==`object`&&!Array.isArray(i.features)?YP(i.features):ZP(e,r),o=!!i.forceAudit,s=!!i.highlightAsyncPresent,c=!!a.budget||XF(t),l=!!a.guardrails,u=!!a.usage,d=o||!!a.audit,f=!!i.forceAsync||!!(u||d),p=!!a.failover||YF(t),m=BF(e,i.entry),h=_I(i.entry,t,a),g=hI(i.entry),_=gI(i.entry,t),v=pI(i.entry,s),y=mI(i.entry,s);return{showBudget:c,budgetNodeClass:eI(c,t,s,h===`budget`),budgetStatusLabel:tI(t),showGuardrails:l,guardrailLabel:l?LF(e):``,showCache:!!i.forceCache||!!a.cache||JF(t),cacheNodeClass:ZF(t,h===`cache`),cacheConnClass:QF(t),cacheStatusLabel:$F(t),showFailover:p,failoverNodeClass:p?nI(t):``,failoverConnClass:p?rI(t):``,failoverStatusLabel:p?iI(t):null,failoverTargetLabel:p?aI(t):null,aiLabel:RF(e,t),aiSublabel:zF(e,t),aiConnClass:oI(t),aiNodeClass:sI(t,h===`ai`),responseConnClass:oI(t),responseNodeClass:cI(t,h===`response`),responseNodeSublabel:lI(t),authNodeClass:uI(t,h===`auth`),authNodeSublabel:dI(t),usageNodeClass:fI(u,y,g),auditNodeClass:fI(d,v,_),showAsync:f,showUsage:u,showAudit:d,workflowID:m}}function yI(e,t){return vI(e,null,{forceCache:!1},t)}function bI(e,t,n){return vI(t,qF(e,t),{entry:e,features:VF(e)||(t?ZP(t,n):{cache:!1,audit:!1,usage:!1,budget:!1,guardrails:!1,failover:!1}),forceAudit:!0,forceAsync:!0,highlightAsyncPresent:!0},n)}var xI=B(`

        `),SI=B(`

        `),CI=B(`
        `),wI=B(`
        `),TI=B(`

        No guardrails configured for this workflow.

        `),EI=B(`

        Guardrails

        `),DI=B(``),OI=B(`

        `);function kI(e,t){O(t,!0);let n=q(t,`preview`,3,!1),r=A(()=>xF.featureCaps()),i=A(()=>sF(t.workflow)),a=A(()=>eF(t.workflow,R(r))),o=A(()=>yI(t.workflow,R(r))),s=A(()=>n()?`draft-workflow-preview-guardrail-`:t.workflow.id+`-guardrail-`);var c=OI();let l;var u=P(c),d=P(u),f=P(d),p=P(f,!0);D(f);var m=I(f,2),h=P(m,!0);D(m),D(d);var g=I(d,2),_=P(g),v=P(_,!0);D(_),D(g),D(u);var y=I(u,2),b=e=>{var n=xI(),r=P(n,!0);D(n),L(()=>H(r,t.workflow.description)),V(e,n)};U(y,e=>{t.workflow.description&&e(b)});var x=I(y,2),S=e=>{var n=SI(),i=P(n);D(n),L(e=>H(i,`Failover: ${e??``}`),[()=>QP(t.workflow,R(r))]),V(e,n)},C=A(()=>xF.failoverVisible());U(x,e=>{R(C)&&e(S)});var w=I(x,2);IF(w,{get chart(){return R(o)}});var T=I(w,2),E=e=>{var t=EI(),n=P(t),r=I(P(n),2),i=P(r,!0);D(r),D(n);var o=I(n,2),c=e=>{var t=wI();W(t,23,()=>R(a),(e,t)=>R(s)+t,(e,t)=>{var n=CI(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=P(a);D(a),D(n),L(()=>{H(i,R(t).ref),H(o,`step ${R(t).step??``}`)}),V(e,n)}),D(t),V(e,t)},l=e=>{V(e,TI())};U(o,e=>{R(a).length>0?e(c):e(l,-1)}),D(t),L(()=>H(i,R(a).length?R(a).length+` steps`:`None`)),V(e,t)},ee=A(()=>bu.guardrailsVisible());U(T,e=>{R(ee)&&e(E)});var te=I(T,2),ne=e=>{var n=DI(),r=P(n),a=P(r),o=P(a,!0);D(a);var s=I(a,2);{let e=A(()=>`Edit workflow `+R(i));yO(s,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>xF.openCreate(t.workflow),children:(e,t)=>{J(e,{get icon(){return nl},class:`table-icon-svg`})},$$slots:{default:!0}})}D(r);var c=I(r,2),l=P(c),u=P(l);D(l);var d=I(l,2),f=P(d);D(d);var p=I(d,2),m=P(p);D(p),D(c),D(n),L((e,n,r,s)=>{a.disabled=e,K(a,`aria-label`,`Deactivate workflow `+R(i)),K(a,`title`,n),H(o,xF.deactivatingID===t.workflow.id?`Deactivating...`:`Deactivate`),H(u,`version: v${t.workflow.version??``}`),H(f,`created: ${r??``}`),H(m,`hash: ${s??``}`)},[()=>xF.deactivatingID===t.workflow.id||!hF(t.workflow),()=>hF(t.workflow)?`Deactivate active workflow`:`The global workflow cannot be deactivated.`,()=>lu.formatTimestamp(t.workflow.created_at),()=>gF(t.workflow.workflow_hash)]),z(`click`,a,()=>xF.deactivate(t.workflow)),V(e,n)};U(te,e=>{n()||e(ne)}),D(c),L((e,t)=>{l=G(c,1,`workflow-card svelte-1fo9fvq`,null,l,{"workflow-preview-card":n()}),H(p,e),H(h,R(i)),H(v,t)},[()=>aF(t.workflow),()=>oF(t.workflow)]),V(e,c),k()}Br([`click`]);var AI=B(`

        `),jI=B(``),MI=B(``),NI=B(``),PI=B(``),FI=B(``),II=B(``),LI=B(``),RI=B(``),zI=B(``),BI=B(``),VI=B(``),HI=B(``),UI=B(`
        No named guardrails are currently registered on this deployment. You can still draft a workflow, but guardrail-backed creation may be rejected.
        `),WI=B(`
        `),GI=B(`
        `),KI=B(`

        No guardrail steps configured yet.

        `),qI=B(`

        Guardrail Steps

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

        `),JI=B(`

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

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

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

        Preview

        Live
        `,1);function YI(e,t){O(t,!0);{let t=e=>{YT(e,{copyId:`workflow-help-copy`,label:`workflow help`,text:`Create immutable version. Submitting activates it for the selected scope.`,title:e=>{var t=AI(),n=P(t,!0);D(t),L(e=>H(n,e),[()=>xF.submitMode()===`save`?`Edit Workflow`:`Create Workflow`]),V(e,t)},$$slots:{title:!0}})},n=A(()=>xF.submitLabel()),r=A(()=>xF.submittingLabel()),i=A(()=>xF.submitMode()===`create`?il:cl);Ck(e,{get open(){return xF.formOpen},ariaLabel:`Workflow editor`,get error(){return xF.formError},get submitting(){return xF.submitting},get submitLabel(){return R(n)},get submittingLabel(){return R(r)},get submitIcon(){return R(i)},dialogClass:`workflow-editor`,onclose:()=>xF.closeForm(),onsubmit:()=>xF.submitForm(),header:t,children:(e,t)=>{var n=JI(),r=F(n),i=P(r);Tk(i,{id:`workflow-scope-provider`,label:`Provider Name`,children:(e,t)=>{var n=MI(),r=P(n);r.value=r.__value=``,W(I(r),16,()=>xF.providerOptions(),e=>e,(e,t)=>{var n=jI(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(n),z(`change`,n,e=>xF.setProvider(e.currentTarget.value)),Ui(n,()=>xF.form.scope_provider,e=>xF.form.scope_provider=e),V(e,n)},$$slots:{default:!0}});var a=I(i,2),o=e=>{Tk(e,{id:`workflow-scope-model`,label:`Model`,children:(e,t)=>{var n=NI(),r=P(n);r.value=r.__value=``,W(I(r),17,()=>xF.modelOptions(xF.form.scope_provider),e=>xF.form.scope_provider+`-`+e,(e,t)=>{var n=jI(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t)),i!==(i=R(t))&&(n.value=(n.__value=R(t))??``)}),V(e,n)}),D(n),Ui(n,()=>xF.form.scope_model,e=>xF.form.scope_model=e),V(e,n)},$$slots:{default:!0}})};U(a,e=>{xF.form.scope_provider&&e(o)});var s=I(a,2);Tk(s,{id:`workflow-name`,label:`Name`,children:(e,t)=>{var n=PI();ea(n),la(n,()=>xF.form.name,e=>xF.form.name=e),V(e,n)},$$slots:{default:!0}}),Tk(I(s,2),{id:`workflow-user-path`,label:`User Path`,children:(e,t)=>{var n=FI();ea(n),la(n,()=>xF.form.scope_user_path,e=>xF.form.scope_user_path=e),V(e,n)},$$slots:{default:!0}}),D(r);var c=I(r,8);Tk(c,{id:`workflow-description`,label:`Description`,children:(e,t)=>{var n=II();ut(n),la(n,()=>xF.form.description,e=>xF.form.description=e),V(e,n)},$$slots:{default:!0}});var l=I(c,2),u=P(l),d=e=>{var t=LI(),n=P(t);ea(n),Ve(2),D(t),ua(n,()=>xF.form.features.cache,e=>xF.form.features.cache=e),V(e,t)},f=A(()=>bu.cacheVisible());U(u,e=>{R(f)&&e(d)});var p=I(u,2),m=e=>{var t=RI(),n=P(t);ea(n),Ve(2),D(t),ua(n,()=>xF.form.features.audit,e=>xF.form.features.audit=e),V(e,t)},h=A(()=>bu.auditVisible());U(p,e=>{R(h)&&e(m)});var g=I(p,2),_=e=>{var t=zI(),n=P(t);ea(n),Ve(2),D(t),ua(n,()=>xF.form.features.usage,e=>xF.form.features.usage=e),V(e,t)},v=A(()=>bu.usageVisible());U(g,e=>{R(v)&&e(_)});var y=I(g,2),b=e=>{var t=BI(),n=P(t);ea(n),Ve(2),D(t),ua(n,()=>xF.form.features.budget,e=>xF.form.features.budget=e),V(e,t)},x=A(()=>bu.budgetsVisible());U(y,e=>{R(x)&&e(b)});var S=I(y,2),C=e=>{var t=VI(),n=P(t);ea(n),Ve(2),D(t),ua(n,()=>xF.form.features.guardrails,e=>xF.form.features.guardrails=e),V(e,t)},w=A(()=>bu.guardrailsVisible());U(S,e=>{R(w)&&e(C)});var T=I(S,2),E=e=>{var t=HI(),n=P(t);ea(n),Ve(2),D(t),ua(n,()=>xF.form.features.failover,e=>xF.form.features.failover=e),V(e,t)},ee=A(()=>xF.failoverVisible());U(T,e=>{R(ee)&&e(E)}),D(l);var te=I(l,2),ne=I(P(te),2);{let e=A(()=>xF.preview());kI(ne,{get workflow(){return R(e)},preview:!0})}D(te);var re=I(te,2),ie=e=>{var t=qI(),n=P(t),r=I(P(n),2);D(n);var i=I(n,2),a=e=>{var t=UI(),n=I(P(t),2);D(t),z(`click`,n,()=>Bl.navigate(`guardrails`)),V(e,t)};U(i,e=>{xF.guardrailRefs.length===0&&e(a)});var o=I(i,2),s=e=>{var t=GI();W(t,21,()=>xF.form.guardrails,ii,(e,t,n)=>{var r=WI(),i=P(r),a=P(i);K(a,`for`,`workflow-guardrail-ref-`+n);var o=I(a,2);ea(o),K(o,`id`,`workflow-guardrail-ref-`+n),K(o,`aria-label`,`Guardrail reference `+(n+1)),D(i);var s=I(i,2),c=P(s);K(c,`for`,`workflow-guardrail-step-`+n);var l=I(c,2);ea(l),K(l,`id`,`workflow-guardrail-step-`+n),K(l,`aria-label`,`Guardrail step `+(n+1)),D(s);var u=I(s,2);D(r),la(o,()=>R(t).ref,e=>R(t).ref=e),la(l,()=>R(t).step,e=>R(t).step=e),z(`click`,u,()=>xF.removeGuardrailStep(n)),V(e,r)}),D(t),V(e,t)},c=e=>{V(e,KI())};U(o,e=>{xF.form.guardrails.length>0?e(s):e(c,-1)}),D(t),z(`click`,r,()=>xF.addGuardrailStep()),V(e,t)},ae=A(()=>xF.form.features.guardrails&&bu.guardrailsVisible());U(re,e=>{R(ae)&&e(ie)}),V(e,n)},$$slots:{header:!0,default:!0}})}k()}Br([`change`,`click`]);var XI=B(`

        Loading workflows...

        `),ZI=B(`
        `),QI=B(`

        No active workflows found.

        `),$I=B(`

        No workflows match your filter.

        `),eL=B(`
        `);function tL(e,t){O(t,!0);var n=eL(),r=P(n),i=e=>{var t=XI();wT(P(t),{size:16,label:`Loading workflows`}),Ve(),D(t),V(e,t)};U(r,e=>{xF.loading&&!Y.authError&&e(i)});var a=I(r,2),o=e=>{var t=ZI();W(t,21,()=>xF.filteredWorkflows,e=>e.id,(e,t)=>{kI(e,{get workflow(){return R(t)}})}),D(t),V(e,t)};U(a,e=>{xF.filteredWorkflows.length>0&&e(o)});var s=I(a,2),c=e=>{V(e,QI())};U(s,e=>{xF.workflows.length===0&&!xF.loading&&!Y.authError&&xF.available&&e(c)});var l=I(s,2),u=e=>{V(e,$I())};U(l,e=>{xF.workflows.length>0&&xF.filteredWorkflows.length===0&&!xF.loading&&e(u)}),D(n),V(e,n),k()}var nL=B(``),rL=B(`
        Workflows feature is unavailable.
        `),iL=B(`
        `),aL=B(`
        `),oL=B(``),sL=B(`
        `);function cL(e,t){O(t,!0),On(()=>{Y.refreshTick,xF.fetchPage()});var n=sL(),r=P(n),i=I(P(r),2),a=P(i),o=e=>{var t=nL();J(P(t),{get icon(){return il},class:`form-action-icon`,"aria-hidden":`true`}),Ve(2),D(t),z(`click`,t,()=>xF.openCreate()),V(e,t)};U(a,e=>{xF.available&&e(o)}),D(i),D(r);var s=I(r,2),c=e=>{V(e,rL())};U(s,e=>{!xF.available&&!Y.authError&&e(c)});var l=I(s,2),u=e=>{var t=iL(),n=P(t,!0);D(t),L(()=>H(n,xF.error)),V(e,t)};U(l,e=>{xF.error&&!Y.authError&&e(u)});var d=I(l,2),f=e=>{var t=aL(),n=P(t);SD(P(n),{placeholder:`Filter by scope, name, hash, or guardrail...`,label:`Filter workflows by scope, name, hash, or guardrail`,get value(){return xF.filter},set value(e){xF.filter=e}}),D(n);var r=I(n,2),i=P(r),a=P(i,!0);D(i),D(r),D(t),L(()=>H(a,xF.filteredWorkflows.length+` active scopes`)),V(e,t)};U(d,e=>{xF.available&&e(f)});var p=I(d,2);YI(p,{});var m=I(p,2);tL(m,{});var h=I(m,2);W(h,20,()=>xF.guardrailRefs,e=>e,(e,t)=>{var n=oL(),r={};L(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(h),D(n),V(e,n),k()}Br([`click`]);function lL(e,{from:t,to:n},r={}){var{delay:i=0,duration:a=e=>Math.sqrt(e)*120,easing:o=Zu}=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=uL(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 uL(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 dL=null;function fL(){return dL===null&&(dL=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`)),!!(dL&&dL.matches)}function pL(e){return fL()?0:e}function mL(e,t){return!t||!t.live?{duration:0}:Yu(e,{duration:pL(150)})}var hL=new class{#e=j(N({}));get workflowVersionsByID(){return R(this.#e)}set workflowVersionsByID(e){M(this.#e,e,!0)}workflowVersionRequests={};workflowFeatureCaps(){return{cache:bu.cacheVisible(),audit:bu.auditVisible(),usage:bu.usageVisible(),budget:bu.budgetsVisible(),guardrails:bu.guardrailsVisible(),failover:bu.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 hu(`/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}},gL=6;function _L(e){if(typeof e!=`string`)return null;try{return JSON.parse(e)}catch{return null}}function vL(e,t=0,n=null){let r=String(e||``).trim();if(!r)return``;if(t>gL)return r;let i=_L(r);return i==null?r:yL(i,t+1,n)||n&&n(i)||r}function yL(e,t=0,n=null,r=null){if(e==null||t>gL)return``;if(typeof e==`string`){let i=_L(e.trim());return i==null?``:yL(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||SL(t&&t.response_body)}function wL(e){let t=e&&e.data?e.data:null;return t?bL(t.error_message)||(CL(e,t)?yL(t.response_body,0):``):``}function TL(e){if(e==null||String(e).trim()===``)return null;let t=Number(e);return!Number.isInteger(t)||t<0?null:t}function EL(e){let t=TL(e);return t===null?``:t===0?`Audit logs are retained indefinitely.`:t===1?`Audit logs are retained for 1 day.`:`Audit logs are retained for `+t+` days.`}function DL(e){let t=TL(e);return t===null?``:t===0?`Audit logs are retained `:`Audit logs are retained for `}function OL(e){let t=TL(e);return t===null?``:t===0?`indefinitely`:t===1?`1 day`:t+` days`}function kL({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 AL({sessionId:e,limit:t}){return`session_id=`+encodeURIComponent(e)+`&limit=`+(t||100)+`&offset=0`}function jL(e){return String(e&&e.session_id||``).trim()}function ML(e){let t=Number(e&&e.session_count);return Number.isFinite(t)&&t>1?t:1}function NL(e){return!!jL(e)&&ML(e)>1}function PL(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 FL(e,t,n){let r=new Set((Array.isArray(n)?n:[]).flatMap(e=>zL(e))),i=(Array.isArray(t)?t:[]).filter(e=>!zL(e).some(e=>r.has(e))),a=new Set([...r,...i.flatMap(e=>zL(e))]),o=(e&&Array.isArray(e.entries)?e.entries:[]).filter(e=>e&&e._live&&!zL(e).some(e=>a.has(e)));return{entries:[...o,...i],preservedCount:o.length}}function IL(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 LL(e,t){let n=e||{},r=new Set((Array.isArray(t)?t:[]).map(e=>jL(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 RL(e){return String(e&&e.id||``).trim()}function zL(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 BL(e){return!!(e&&e._live&&e._live_pending&&!e._audit_flushed)}function VL(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 HL(e,t){return e&&Number(e.offset||0)===0&&!(t&&t.search)&&!(t&&t.method)&&!(t&&t.statusCode)&&!(t&&t.stream)&&VL(t)}function UL(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,!HL(r,n))return r;let a=(Array.isArray(t)?t:[]).filter(e=>BL(e));if(a.length===0)return r;let o=new Set(i.flatMap(e=>zL(e))),s=[];return a.forEach(e=>{let t=zL(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 WL(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,!HL(r,n))return r;let a=(Array.isArray(t)?t:[]).filter(e=>BL(e));if(a.length===0)return r;let o=new Set(i.flatMap(e=>zL(e))),s=new Map;i.forEach((e,t)=>{let n=jL(e);n&&!s.has(n)&&s.set(n,t)});let c=[],l=i;return a.forEach(e=>{let t=zL(e);if(t.length===0||t.some(e=>o.has(e)))return;let n=jL(e);if(n&&s.has(n)){let r=s.get(n);l===i&&(l=[...i]);let a=ML(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 GL(e,t){let n=RL(t),r=e||{};return n?r[n]?{}:{[n]:!0}:r}function KL(e,t){let n=e||{},r=new Set((Array.isArray(t)?t:[]).map(e=>RL(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 qL(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 JL(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 YL(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 XL(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 ZL(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 QL(e){let t=ZL(e);return t.length>1||t.some(e=>!(e&&e.success))}function $L(e){if(!e)return`-`;let t=e.status_code||e.status;return t?String(t):e.success?`ok`:`error`}function eR(e){return String(e&&e.kind||``).trim()||`attempt`}function tR(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 nR(e){return String(e&&e.model||``).trim()||`-`}function rR(e){let t=ZL(e);return t.length>1||t.some(e=>!(e&&e.success))?t:[]}function iR(e){return ZL(e).length+`×`}function aR(e){let t=ZL(e),n=t.filter(e=>!(e&&e.success)).length,r=t.length===1?`attempt`:`attempts`,i=t.length+` provider `+r;return n>0?i+` · `+n+` failed`:i}function oR(e){if(!e)return``;let t=[`#`+Number(e.seq||0)],n=eR(e);n&&n!==`attempt`&&t.push(n),t.push($L(e));let r=tR(e);r&&r!==`-`&&t.push(r);let i=nR(e);return i&&i!==`-`&&t.push(i),t.push(e.success?`succeeded`:`failed`),t.join(` · `)}function sR(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 cR(e){if(!e||e.success)return``;let t=String(e.error_message||``).trim(),n=String(e.error_code||``).trim(),r=String(e.error_type||``).trim();return t&&n?n+`: `+t:t||n||r||`Provider attempt failed`}function lR(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 uR(e){let t=Number(e&&e.status_code);return Number.isFinite(t)&&t>0?t:null}function dR(e,t){let n=!!(t&&t.success),r=e&&e.data?e.data:null,i=sR(e,t),a=lR(e,t),o=cR(t),s=i!=null&&i!==``,c=eR(t),l=ZL(e).length<=1;return{title:`Response`,direction:`response`,seq:l?0:Number(t&&t.seq||0),kind:l||c===`attempt`?``:c,statusCode:l?null:uR(t),layout:`split`,entry:e,copyHeaders:a,copyBody:i,showErrorMessage:!!o,errorMessage:o,showHeaders:!!a,headers:a,showBody:s,body:i,showEmpty:!o&&!s&&!a,emptyMessage:`No response was captured for this attempt.`,showTooLarge:!!(n&&r&&r.response_body_too_big_to_handle),tooLargeMessage:`Response body was too large to capture.`}}function fR(e){return e&&e.data&&Array.isArray(e.data.request_revisions)?e.data.request_revisions:[]}function pR(e){return fR(e).filter(e=>!(e&&e.no_change))}function mR(e){return fR(e).filter(e=>e&&e.no_change).map(e=>{let t=String(e.rewriter||`rewriter`);return{id:`step-`+Number(e.seq||0),rewriter:t,label:t+`: no change`,title:t+` ran and forwarded the request unchanged`}})}function hR(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 gR(e,t){let n=t&&t.body,r=n!=null&&n!==``,i=pR(e).length<=1,a={rewriter:t&&t.rewriter||``,bytes:Number(t&&t.bytes_before||0)+` → `+Number(t&&t.bytes_after||0)};return t&&t.detail!=null&&(a.detail=t.detail),{title:`Rewritten`,direction:`request`,seq:i?0:Number(t&&t.seq||0),kind:t&&t.rewriter?String(t.rewriter):``,savingsLabel:hR(t),layout:`split`,entry:e,copyHeaders:a,copyBody:n,showErrorMessage:!1,errorMessage:null,showHeaders:!0,headers:a,headersTitle:`What changed`,showBody:r,body:n,showEmpty:!1,emptyMessage:``,showTooLarge:!r,tooLargeMessage:`Rewritten body not captured (body logging disabled or body too large).`}}function _R(e){let t=e&&e.usage;return!t||typeof t!=`object`?null:t}function vR(e){let t=_R(e);return Number(t&&t.cached_input_tokens||0)>0}function yR(e){let t=_R(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 bR(e){let t=_R(e);if(!t)return``;let n=Number(t.input_tokens||0),r=Number(t.cached_input_tokens||0);return n<=0?cd(r)+` cached`:yR(e).toFixed(1)+`% cached`}function xR(e){return vR(e)?bR(e):``}function SR(e,t){let n=_R(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 CR(e,t){let n=e&&e.data?e.data:null,r=!n||!n.request_headers&&!n.request_body,i=r&&YL(e);return{title:`Request`,direction:`request`,layout:`split`,entry:e,copyHeaders:n&&n.request_headers,copyBody:n&&n.request_body,showErrorMessage:!1,errorMessage:null,showHeaders:!!(n&&n.request_headers),headers:n&&n.request_headers,showBody:!!(n&&n.request_body),body:n&&n.request_body,bodyCacheRatioLabel:xR(e),promptCacheHighlight:SR(e,t),noChangeSteps:mR(e),showEmpty:r&&!i,emptyMessage:`Request details were not captured.`,showPending:i,pendingMessage:`Waiting for request data…`,showTooLarge:!!(n&&n.request_body_too_big_to_handle),tooLargeMessage:`Request body was too large to capture.`}}function wR(e){let t=e&&e.data?e.data:null,n=wL(e),r=!t||!n&&!t.response_headers&&!t.response_body,i=r&&YL(e);return{title:`Response`,direction:`response`,layout:`split`,entry:e,copyHeaders:t&&t.response_headers,copyBody:t&&t.response_body,showErrorMessage:!!n,errorMessage:n,showHeaders:!!(t&&t.response_headers),headers:t&&t.response_headers,showBody:!!(t&&t.response_body),body:t&&t.response_body,streaming:!!(e&&e._response_partial&&t&&t.response_body)&&YL(e),showEmpty:r&&!i,emptyMessage:`Response details were not captured.`,showPending:i,pendingMessage:`Response in progress…`,showTooLarge:!!(t&&t.response_body_too_big_to_handle),tooLargeMessage:`Response body was too large to capture.`}}function TR(e,t){let n=[{id:`request`,pane:CR(e,t)}];return pR(e).forEach(t=>{n.push({id:`revision-`+Number(t&&t.seq||0),pane:gR(e,t)})}),QL(e)?ZL(e).forEach(t=>{n.push({id:`response-`+Number(t&&t.seq||0),pane:dR(e,t)})}):n.push({id:`response`,pane:wR(e)}),n}function ER(e){if(!QL(e))return`response`;let t=ZL(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 DR(e,t,n){return e&&(Array.isArray(n)?n:TR(t)).some(t=>t.id===e)?e:ER(t)}function OR(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 kR=100;function AR(){return{entries:[],total:0,limit:25,offset:0}}var jR=new class{#e=j(N({}));get auditExpandedEntries(){return R(this.#e)}set auditExpandedEntries(e){M(this.#e,e,!0)}#t=j(N({}));get auditExpandedThreads(){return R(this.#t)}set auditExpandedThreads(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}auditFetchToken=0;get auditLog(){return PE.auditLog}set auditLog(e){PE.auditLog=e}get auditSearch(){return PE.auditSearch}set auditSearch(e){PE.auditSearch=e}get auditMethod(){return PE.auditMethod}set auditMethod(e){PE.auditMethod=e}get auditStatusCode(){return PE.auditStatusCode}set auditStatusCode(e){PE.auditStatusCode=e}get auditStream(){return PE.auditStream}set auditStream(e){PE.auditStream=e}get auditGroupSessions(){return PE.auditGroupSessions}liveFilters(){return{search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream,customStartDate:Fd.customStartDate,customEndDate:Fd.customEndDate}}toggleAuditGroupSessions(){PE.auditGroupSessions=!PE.auditGroupSessions,Ya(`gomodel_audit_group_sessions`,PE.auditGroupSessions),this.auditExpandedThreads={},PE.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=kL({dateQuery:Fd.queryStr(),limit:this.auditLog.limit,offset:this.auditLog.offset,search:this.auditSearch,method:this.auditMethod,statusCode:this.auditStatusCode,stream:this.auditStream}),i=await hu((n?`/admin/audit/sessions?`:`/admin/audit/log?`)+r,{label:`audit log`});if(i.stale||t!==this.auditFetchToken)return;if(!i.ok){this.auditLog=AR();return}let a=n?PL(i.data):i.data,o=(n?WL:UL)(a,this.auditLog&&this.auditLog.entries,this.liveFilters());Array.isArray(o.entries)||(o.entries=[]),o.entries=PE.upsertAuditRecords(o.entries,`audit.list`),this.auditLog=o,this.auditExpandedThreads=LL(this.auditExpandedThreads,o.entries),PE.auditThreadChildren=LL(PE.auditThreadChildren,o.entries);let s=[...o.entries,...this.loadedThreadChildren()];this.auditExpandedEntries=KL(this.auditExpandedEntries,s);try{await hL.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=AR()}finally{t===this.auditFetchToken&&(this.loading=!1)}}loadedThreadChildren(){let e=PE.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&&PE.auditThreadChildren[e]||null}async toggleThread(e){let t=jL(e);if(!t)return;let n=!this.isThreadExpanded(t);this.auditExpandedThreads=IL(this.auditExpandedThreads,t);let r=PE.auditThreadChildren[t];n&&!(r&&(r.loaded||r.loading))&&await this.fetchThreadEntries(e)}async fetchThreadEntries(e){let t=jL(e);if(!t)return;let n=PE.auditThreadChildren[t];PE.auditThreadChildren={...PE.auditThreadChildren,[t]:{loading:!0,loaded:!1,entries:n&&Array.isArray(n.entries)?n.entries:[],total:Number(n&&n.total||0)}};let r=()=>{let e={...PE.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=IL(this.auditExpandedThreads,t))),PE.auditThreadChildren=e};try{let n=await hu(`/admin/audit/log?`+AL({sessionId:t,limit:kR}),{label:`audit session`});if(n.stale){r();return}if(!n.ok)throw Error(`audit session fetch failed`);let i=PE.auditThreadChildren[t],a=this.auditLog.entries.find(e=>jL(e)===t),o=FL(i,n.data.entries,a?[a]:[e]);o.entries=PE.upsertAuditRecords(o.entries,`audit.thread`),PE.auditThreadChildren={...PE.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=RL(e);return t?!!(this.auditExpandedEntries&&this.auditExpandedEntries[t]):!1}toggleAuditEntryExpanded(e){this.auditExpandedEntries=GL(this.auditExpandedEntries,e);let t=this.isAuditEntryExpanded(e);return t&&typeof PE.fetchAuditEntryDetail==`function`&&PE.fetchAuditEntryDetail(e),t}expandAuditEntry(e){this.isAuditEntryExpanded(e)||this.toggleAuditEntryExpanded(e)}};PE.fetchAuditLog=e=>jR.fetchAuditLog(e),PE.isAuditEntryExpanded=e=>jR.isAuditEntryExpanded(e);var MR=B(`
        `);function NR(e,t){O(t,!0);let n=CD(()=>jR.fetchAuditLog(!0));On(()=>n.cancel);var r=MR(),i=P(r);SD(P(i),{id:`audit-filter-search`,placeholder:`Search by request ID, model, provider, path, user path, or error...`,label:`Search by request ID, model, provider, path, user path, or error`,get oninput(){return n},get value(){return jR.auditSearch},set value(e){jR.auditSearch=e}}),D(i);var a=I(i,2),o=P(a),s=P(o);s.value=s.__value=``;var c=I(s);c.value=c.__value=`GET`;var l=I(c);l.value=l.__value=`POST`;var u=I(l);u.value=u.__value=`PUT`;var d=I(u);d.value=d.__value=`PATCH`;var f=I(d);f.value=f.__value=`DELETE`,D(o);var p=I(o,2),m=P(p);m.value=m.__value=``;var h=I(m);h.value=h.__value=`200`;var g=I(h);g.value=g.__value=`201`;var _=I(g);_.value=_.__value=`400`;var v=I(_);v.value=v.__value=`401`;var y=I(v);y.value=y.__value=`403`;var b=I(y);b.value=b.__value=`404`;var x=I(b);x.value=x.__value=`429`;var S=I(x);S.value=S.__value=`500`;var C=I(S);C.value=C.__value=`502`;var w=I(C);w.value=w.__value=`503`;var T=I(w);T.value=T.__value=`504`,D(p);var E=I(p,2),ee=P(E);ee.value=ee.__value=``;var te=I(ee);te.value=te.__value=`true`;var ne=I(te);ne.value=ne.__value=`false`,D(E);var re=I(E,2);J(P(re),{get icon(){return Ol},class:`table-icon-svg`}),Ve(2),D(re),D(a),D(r),z(`change`,o,()=>jR.fetchAuditLog(!0)),Ui(o,()=>jR.auditMethod,e=>jR.auditMethod=e),z(`change`,p,()=>jR.fetchAuditLog(!0)),Ui(p,()=>jR.auditStatusCode,e=>jR.auditStatusCode=e),z(`change`,E,()=>jR.fetchAuditLog(!0)),Ui(E,()=>jR.auditStream,e=>jR.auditStream=e),z(`click`,re,()=>jR.clearAuditFilters()),V(e,r),k()}Br([`change`,`click`]);var PR=B(`Live stream connecting…`),FR=B(` `),IR=B(`Live`),LR=B(` `);function RR(e,t){O(t,!0);let n=A(()=>PE.auditLivePauseReason()),r=A(()=>PE.liveLogsStreaming&&!R(n));var i=Xr(),a=F(i),o=e=>{var t=LR(),i=P(t);let a;var o=I(i,2),s=e=>{V(e,PR())},c=e=>{var t=FR(),r=P(t,!0);D(t),L(e=>H(r,e),[()=>SE(R(n))]),V(e,t)},l=e=>{V(e,IR())};U(o,e=>{PE.liveLogsStreaming?R(n)?e(c,1):e(l,-1):e(s)}),D(t),L(()=>a=G(i,1,`live-dot svelte-tve6yv`,null,a,{"is-streaming":R(r)})),V(e,t)},s=A(()=>bu.liveLogsVisible());U(a,e=>{R(s)&&e(o)}),V(e,i),k()}var zR=B(` `),BR=B(``);function VR(e,t){O(t,!0);let n=A(()=>[{key:`provider`,text:vd(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: `+xd(t.entry),mono:!0},{key:`failover`,text:XL(t.entry)&&`failover: `+XL(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=BR(),i=I(P(r),2);W(i,21,()=>R(n),e=>e.key,(e,t)=>{var n=zR(),r=P(n,!0);D(n),L(()=>{G(n,1,Ni([`provider-badge`,R(t).class,{mono:R(t).mono}]),`svelte-hyopt0`),H(r,R(t).text)}),V(e,n)}),D(i),D(r),V(e,r),k()}var HR=B(``),UR=B(` `);function WR(e,t){O(t,!0);let n=A(()=>rR(t.entry)),r=A(()=>R(n).length>0?aR(t.entry):``),i=A(()=>R(n).length>0?iR(t.entry):``);var a=Xr(),o=F(a),s=e=>{var a=UR(),o=P(a);W(o,21,()=>R(n),e=>t.entry.id+`-pip-`+e.seq,(e,t)=>{var n=HR();let r;L(e=>{r=G(n,1,`audit-attempt-pip svelte-1eu22xn`,null,r,{"audit-attempt-success":!!(R(t)&&R(t).success),"audit-attempt-error":!(R(t)&&R(t).success)}),K(n,`title`,e)},[()=>oR(R(t))]),V(e,n)}),D(o);var s=I(o,2),c=P(s,!0);D(s),D(a),L(()=>{K(a,`title`,R(r)),K(a,`aria-label`,R(r)),H(c,R(i))}),V(e,a)};U(o,e=>{R(n).length>0&&e(s)}),V(e,a),k()}var GR=new Set([`instructions`,`messages`,`input`,`previous_response_id`,`choices`,`output`]);function KR(e){if(!e||typeof e!=`object`)return``;let t=String(e.type||``).toLowerCase();if(t===`image`||t===`image_url`||t===`input_image`||t===`output_image`)return`[Image]`;if(t===`audio`||t===`input_audio`||t===`output_audio`)return`[Audio]`;if(t===`file`||t===`input_file`||t===`output_file`){let t=String(e.filename||e.name||``).trim();return t?`[File: `+t+`]`:`[File]`}return typeof e.refusal==`string`?e.refusal:``}function qR(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:KR(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 JR(e){return!e||typeof e!=`object`?``:qR(e.content)||(typeof e.refusal==`string`?e.refusal.trim():``)}function YR(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 XR(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(XR);if(typeof e==`object`)return Object.entries(e).flatMap(([e,t])=>[e,...XR(t)]);let t=String(e);return t?[t]:[]}function ZR(e){return qz(e).flatMap(e=>[...e.name?[String(e.name)]:[],...XR(e.arguments)])}function QR(e){return Array.isArray(e)?e.flatMap(e=>e&&typeof e==`object`&&e.type===`tool_use`?ZR([e]):YR(e)):YR(e)}function $R(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 ez(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 tz(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 nz(e){return{characters:(Array.isArray(e)?e:[]).map(tz)}}function rz(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 iz(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=qR(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=qR(e.content);return n?{role:t,text:n}:null}).filter(Boolean)}function az(e){return JR(e)}function oz(e){if(!e||typeof e!=`object`)return[];let t=[];return t.push(...YR(e.instructions)),Array.isArray(e.messages)&&e.messages.forEach(e=>{!e||typeof e!=`object`||(t.push(...QR(e.content)),t.push(...ZR(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(...ZR([e]));return}t.push(...QR(e.content)),typeof e.text==`string`&&t.push(e.text)}}):e.input&&typeof e.input==`object`&&(t.push(...YR(e.input.content)),typeof e.input.text==`string`&&t.push(e.input.text)),t.map(e=>String(e||``)).filter(e=>e.length>0)}var sz=e=>qR(e);function cz(e){if(!e||!e.data)return``;let t=yL(e.data.response_body,0,sz);if(t)return t;let n=e.data.error_message;if(n==null)return``;if(typeof n==`string`){let e=n.trim();return e?yL(_L(e),0,sz)||e:``}return yL(n,0,sz)||qR(n)}function lz(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 uz(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 dz(e){return e?!!pz(e):!1}function fz(e){let t=String(e||``).trim().split(`?`)[0].replace(/\/+$/,``).toLowerCase();return t.startsWith(`/v1/`)?t.slice(3):t}function pz(e){switch(fz(e)){case`/chat/completions`:return`chat`;case`/responses`:return`responses`;case`/messages`:return`messages`;default:return``}}function mz(e){if(!e||typeof e!=`object`)return null;try{return JSON.parse(JSON.stringify(e))}catch{return null}}function hz(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 gz(e){let t=pz(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():``)!==``||eB(n)!==``}function _z(e,t){let n=String(t||``).trim(),r=pz(e&&e.path),i=mz(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=eB(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&&hz(o,mz(e.message)),o.push({role:`user`,content:n})}else a&&a.content!==void 0&&hz(o,{role:String(a.role||`assistant`),content:mz(a.content)||a.content}),o.push({role:`user`,content:n});return i.messages=o,i}var vz=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 yz(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]`||vz.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 bz(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 xz(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=Sz(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 Sz(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 Cz(e,t){return!Array.isArray(e)||!t?null:e.find(e=>String(e&&e.id||``)===String(t))||null}function wz(e){return!Array.isArray(e)||e.length===0?null:e.reduce((e,t)=>e?tB(t,e)>=0?t:e:t,null)}function Tz(e,t){let n=new Set(Array.isArray(t)?t.map(String):[]);return wz((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 Ez(e,t){let n=wz(e);return!!n&&String(n.id||``)===String(t||``)}function Dz(e,t,n){return String(e||``).trim()===`audit.flushed`&&String(t||``).trim()!==``&&String(t||``).trim()===String(n||``).trim()}function Oz(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 kz(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)||lz(n.output));return!!(r||i)}function Az(e){return!e||uz(e.path)?!1:dz(e.path)||kz(e)}function jz(e){let t=0,n=!1,r=!1,i=String(e||``);for(let e=0;e0&&a+1`,`>`).replaceAll(`"`,`"`).replaceAll(`'`,`'`)}function Fz(e){return!!(e&&typeof e==`object`&&e.__audio__===!0)}function Iz(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`
        `+Pz(t)+``+Pz(Rz(e[t]))+`
        `);return t.length?``:``}function Bz(e){let t=Lz(e.content_type),n=Pz(t+` · `+Iz(e.bytes)),r=zz(e.meta);if(e.stored&&e.encoding===`base64`&&e.data){let i=String(e.data).replace(/[^A-Za-z0-9+/=]/g,``);return`
        `+n+`
        `+r+`
        `}let i=e.too_large?`Audio too large to store.`:`Audio not logged. Set LOGGING_LOG_AUDIO_BODIES=true to capture playable audio.`;return`
        `+n+`
        `+Pz(i)+`
        `+r+`
        `}function Vz(e){try{return JSON.stringify(String(e)).slice(1,-1)}catch{return``}}function Hz(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 Uz(e,t){if(!t||t.remaining<=0||t.segmentIndex>=t.segments.length)return Pz(e);let n=``,r=0,i=0;for(;t.remaining>0&&t.segmentIndex`+Pz(l)+``,r=s+l.length,i=s+o.length,t.remaining-=c,c>=a.length){t.segmentIndex++;continue}break}return n?n+Pz(e.slice(r)):Pz(e)}function Wz(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=Hz(n&&n.promptCacheHighlight),o=r(t);if(!o||o===`Not captured`)return Pz(o);if(!i(e))return o.split(` -`).map(e=>Uz(e,a)).join(` -`);let s=o.split(` -`),c=[],l=0;for(;lUz(e,a)).join(` -`);c.push(``+o+``),l=r+1;continue}c.push(Uz(e,a)),l++}return c.join(` -`)}function Gz(e){let t=String(e||``).toLowerCase();return t===`system`||t===`developer`?{role:`system`,label:`System Prompt`,className:`role-system`}:t===`assistant`?{role:`assistant`,label:`Agent`,className:`role-assistant`}:t===`error`?{role:`error`,label:`Error`,className:`role-error`}:t===`function_call`?{role:`function_call`,label:`Function Call`,className:`role-function-call`}:t===`function_result`?{role:`function_result`,label:`Function Result`,className:`role-function-result`}:{role:`user`,label:`User`,className:`role-user`}}function Kz(e,t,{timestamp:n,entryID:r,isAnchor:i,isAfterAnchor:a,index:o,toolCalls:s,functionName:c,functionCallID:l,promptCache:u,toolPromptCache:d}){let f=Gz(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:nz(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 qz(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 Jz(e){return Array.isArray(e)?qz(e.filter(e=>e&&typeof e==`object`&&e.type===`tool_use`)):[]}function Yz(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:qR(e.content)})):[]}function Xz(e,t,n){!t||!n||[t.call_id,t.id].forEach(t=>{t&&(e[t]=n)})}function Zz(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&&Xz(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`||Xz(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&&Xz(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`||Xz(e,t,t.name||``)}),n&&Array.isArray(n.content)&&n.content.forEach(t=>{!t||t.type!==`tool_use`||Xz(e,t,t.name||``)})}function Qz(e){return Array.isArray(e)?`[`+e.map(Qz).join(`,`)+`]`:e&&typeof e==`object`?`{`+Object.keys(e).sort().map(t=>JSON.stringify(t)+`:`+Qz(e[t])).join(`,`)+`}`:JSON.stringify(e)}function $z(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(Qz)}function eB(e){let t=e&&e.conversation;return typeof t==`string`?t.trim():t&&typeof t.id==`string`?t.id.trim():``}function tB(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 nB(e,t){if(!Array.isArray(e)||e.length===0)return{messages:[],entryIDs:[]};let n=[...e].sort(tB),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;Zz(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)=>ez(e,t),b=e=>nz(e),x=(t,n,{toolCalls:r,functionName:i,functionCallID:a,promptCache:o,toolPromptCache:s}={})=>Kz(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=qR(g.system);e&&i.push(x(`system`,e,{promptCache:y(e,YR(g.system))}))}if(g&&g.instructions!==void 0){let e=qR(g.instructions);e&&i.push(x(`system`,e,{promptCache:y(e,YR(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=qR(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,YR(e.content))}));return}if(t===`assistant`){let n=JR(e),r=[...qz(e.tool_calls),...Jz(e.content)];if(n||r.length>0){let a=y(n,YR(e.content));i.push(x(t,n,{toolCalls:r,promptCache:a,toolPromptCache:b(r)}))}return}Yz(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=JR(e);n&&i.push(x(t,n,{promptCache:y(n,YR(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:qR(n);o&&i.push(x(`function_result`,o,{functionName:r[a]||e.name||``,functionCallID:a,promptCache:y(o,t?YR(e.content):[o])}))}else if(e.type===`function_call`||e.type===`tool_use`){let t=qz([e]);i.push(x(`function_call`,``,{toolCalls:t,toolPromptCache:b(t)}))}else if(e.role){let t=String(e.role).toLowerCase(),n=qR(e.content);n&&i.push(x(t,n,{promptCache:y(n,YR(e.content))}))}}}):iz(g.input).forEach(e=>{if(!e.text)return;let t=[];typeof g.input==`string`?t=[g.input]:g.input&&typeof g.input==`object`&&(t=YR(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=$z(g),T=w!==null,E=Sz(e),ee=!!E&&a.has(E),te=String(g&&g.previous_response_id||``).trim(),ne=eB(g),re=ee||!!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&&!ee||!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=$R(e);if(g&&oe!==null&&i.splice(0,i.length,...rz(i,oe)),_&&Array.isArray(_.choices)){let e=_.choices[0];if(e&&e.message){let t=(e.message.role||`assistant`).toLowerCase(),n=JR(e.message),r=qz(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:qz([e])});i.push(t),c.push(f(t));return}let t=(e.role||`assistant`).toLowerCase(),n=az(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=qR(_.content),n=Jz(_.content);if(t||n.length>0){let r=x(e,t,{toolCalls:n});i.push(r),c.push(f(r))}}let se=cz(e);se&&i.push(x(`error`,se));let ce=String(_&&_.id||``).trim();ce&&o.add(ce)}),{messages:i,entryIDs:[...a]}}function rB(e){return e.role===`function_call`?(e.toolCalls||[]).map(function(e){return e.name+`(`+aB(e)+`)`}).join(` - -`):e.text||``}function iB(e){return e?[String(e.text||``),Array.isArray(e.toolCalls)&&e.toolCalls.length>0?rB({role:`function_call`,toolCalls:e.toolCalls}):``].filter(Boolean).join(` - -`):``}function aB(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 oB=600*1e3,sB=15*1e3,cB=250,lB=class{#e=j(!1);get conversationOpen(){return R(this.#e)}set conversationOpen(e){M(this.#e,e,!0)}#t=j(!1);get conversationLoading(){return R(this.#t)}set conversationLoading(e){M(this.#t,e,!0)}#n=j(``);get conversationError(){return R(this.#n)}set conversationError(e){M(this.#n,e,!0)}#r=j(``);get conversationAnchorID(){return R(this.#r)}set conversationAnchorID(e){M(this.#r,e,!0)}#i=j(N([]));get conversationEntryIDs(){return R(this.#i)}set conversationEntryIDs(e){M(this.#i,e,!0)}#a=j(``);get conversationSessionID(){return R(this.#a)}set conversationSessionID(e){M(this.#a,e,!0)}#o=j(!1);get conversationTruncated(){return R(this.#o)}set conversationTruncated(e){M(this.#o,e,!0)}#s=j(!1);get conversationFollowLatest(){return R(this.#s)}set conversationFollowLatest(e){M(this.#s,e,!0)}#c=j(``);get conversationOpenedFromID(){return R(this.#c)}set conversationOpenedFromID(e){M(this.#c,e,!0)}#l=j(``);get followUpText(){return R(this.#l)}set followUpText(e){M(this.#l,e,!0)}#u=j(!1);get followUpSending(){return R(this.#u)}set followUpSending(e){M(this.#u,e,!0)}#d=j(``);get followUpError(){return R(this.#d)}set followUpError(e){M(this.#d,e,!0)}followUpRequestID=``;followUpAbort=null;conversationRequestToken=0;conversationReturnFocusEl=null;bodyPointerStart=null;#f=j(null);get conversationDialogEl(){return R(this.#f)}set conversationDialogEl(e){M(this.#f,e,!0)}#p=j(null);get conversationCloseBtnEl(){return R(this.#p)}set conversationCloseBtnEl(e){M(this.#p,e,!0)}#m=j(null);get conversationThreadEl(){return R(this.#m)}set conversationThreadEl(e){M(this.#m,e,!0)}get conversationEntries(){return(this.conversationEntryIDs||[]).map(e=>PE.auditRecord(e)).filter(Boolean)}#h=A(()=>nB(this.conversationEntries,this.conversationAnchorID));get conversationView(){return R(this.#h)}set conversationView(e){M(this.#h,e)}get conversationMessages(){return this.conversationView.messages}get conversationBranchEntryIDs(){return this.conversationView.entryIDs}_setConversationEntryIDs(e){this.conversationEntryIDs=[...new Set((Array.isArray(e)?e:[]).filter(Boolean))],PE.pinAuditRecords(this.conversationEntryIDs)}canShowConversation(e){return Az(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 sd(e)}renderBodyWithConversationHighlights(e,t,n){return Wz(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(PE.upsertAuditRecord(e,`conversation.live`));return}this.conversationLoading=!0,await this.fetchConversation(e.id,r,!0,!0)}_conversationEntryLivePending(e){return typeof PE.auditEntryLiveDetailPending==`function`&&PE.auditEntryLiveDetailPending(e)}_applyConversationView(){let e=this.conversationEntries,t=nB(e,this.conversationAnchorID);if(this.conversationFollowLatest){let n=Tz(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=xz(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),Dz(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=DE(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 PE.liveAuditStateSettled!=`function`||!PE.liveAuditStateSettled(t._live_state)))}conversationLiveStatusText(){return(this.conversationMessages||[]).length>0?`Model is responding…`:`Waiting for request data…`}closeConversation(){this.followUpAbort&&this.followUpAbort.abort(),this.conversationOpen=!1,this.conversationRequestToken++,this.conversationSessionID=``,this._setConversationEntryIDs([]),this.conversationFollowLatest=!1,this.conversationOpenedFromID=``,this.followUpRequestID=``,this.followUpSending=!1;let e=this.conversationReturnFocusEl;this.conversationReturnFocusEl=null,e&&typeof e.focus==`function`&&document.contains(e)&&requestAnimationFrame(()=>e.focus())}_focusConversationDrawer(){if(!this.conversationOpen)return;let e=this.conversationCloseBtnEl;if(e&&typeof e.focus==`function`){e.focus();return}let t=this.conversationDialogEl;t&&typeof t.focus==`function`&&t.focus()}async fetchConversation(e,t,n=!0,r=!1){try{let i=await hu(`/admin/audit/conversation?`+(`log_id=`+encodeURIComponent(e)+`&limit=120`),{label:`audit conversation`});if(t!==this.conversationRequestToken||i.stale)return;if(!i.ok){this.conversationError=`Unable to load interactions.`;return}let a=i.data||{},o=a.anchor_id||e,s=Array.isArray(a.entries)?a.entries:[],c=PE.upsertAuditRecords(s,`conversation.hydrated`),l=Oz(this.conversationEntryIDs,c);l.length>this.conversationEntryIDs.length&&this._setConversationEntryIDs(l),r&&(this.conversationFollowLatest=Ez(c,o)),this.conversationAnchorID=o;let u=this.conversationEntries.find(e=>e.id===this.conversationAnchorID);u&&u.session_id&&(this.conversationSessionID=String(u.session_id).trim()),this.conversationTruncated=!!a.truncated,this._applyConversationView(),this.conversationFollowLatest?this._scheduleLatestScroll():n&&this._scheduleAnchorScroll()}catch(e){if(t!==this.conversationRequestToken)return;console.error(`Failed to fetch audit conversation:`,e),this.conversationError=`Failed to load interactions.`}finally{t===this.conversationRequestToken&&(this.conversationLoading=!1)}}selectedConversationEntry(){return Cz(this.conversationEntries,this.conversationAnchorID)}followUpKind(){let e=this.selectedConversationEntry();return gz(e)?pz(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=_z(e,this.followUpText);if(!e||!t)return;let n=this.conversationAnchorID,r=dB(),i=new AbortController,a=!1,o=setTimeout(()=>{a=!0,i.abort()},oB);this.followUpSending=!0,this.followUpError=``,this.followUpRequestID=r,this.followUpAbort=i;try{let a=yz(e,n,r),o=await pu(e.path,{method:`POST`,headers:a,body:JSON.stringify(t),signal:i.signal}),s=String(o.headers.get(`X-Request-ID`)||``).trim();if(s&&this.followUpRequestID&&(this.followUpRequestID=s),!o.ok){let e=`Unable to send message.`;try{let t=await o.json();e=t&&t.error&&t.error.message||e}catch{}this.followUpError=e,(this.followUpRequestID===r||this.followUpRequestID===s)&&(this.followUpRequestID=``);return}if(this.followUpText=``,await uB(o),!PE.liveLogsStreaming&&this.conversationOpen){let e=++this.conversationRequestToken;await this._selectPersistedFollowUp(n,this.followUpRequestID,e,i.signal)}}catch(e){_u(e)||i.signal.aborted?a&&this.conversationOpen&&(this.followUpError=`The request timed out.`):(console.error(`Failed to send interaction follow-up:`,e),this.followUpError=`Failed to send message.`)}finally{clearTimeout(o),this.followUpAbort===i&&(this.followUpAbort=null,this.followUpSending=!1)}}async _selectPersistedFollowUp(e,t,n,r){let i=Date.now()+sB;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 uB(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 dB(){return globalThis.crypto&&typeof globalThis.crypto.randomUUID==`function`?globalThis.crypto.randomUUID():`dashboard-`+Date.now().toString(36)+`-`+Math.random().toString(36).slice(2)}function fB(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 pB=new lB,mB=0;An(()=>{On(()=>{let e=kE(PE.auditRecordChanges,mB);e.length!==0&&(mB=Number(e[e.length-1].version||0),wr(()=>{e.forEach(e=>{if(!AE(e))return;let t=PE.auditRecord(e.key);pB.handleAuditRecordChange(t,e.eventType)})}))})});var hB=B(``),gB=B(` `),_B=B(` `),vB=B(``),yB=B(`
        `);function bB(e,t){O(t,!0);let n=q(t,`thread`,3,null),r=q(t,`expanded`,3,!1),i=q(t,`onactivate`,3,null),a=q(t,`hidePath`,3,!1),o=A(()=>lu.formatTimestamp(t.entry.timestamp)),s=A(()=>R(o)===`-`?R(o):R(o).slice(R(o).lastIndexOf(` `)+1)),c=A(()=>pB.conversationOpen&&String(pB.conversationAnchorID||``)===String(t.entry.id||``));function l(e){e.preventDefault(),i()&&i()()}function u(e){e.stopPropagation(),e.preventDefault(),n().ontoggle()}function d(){return`Session with `+Number(n().count||1)+` requests`}function f(e){if(e.stopPropagation(),e.preventDefault(),R(c)){pB.closeConversation();return}pB.openConversation(t.entry,e.currentTarget)}var p=yB();let m;var h=P(p),g=P(h),_=e=>{var t=hB(),r=P(t);{let e=A(()=>n().expanded?Nc:Fc);J(r,{get icon(){return R(e)},class:`audit-thread-expander-svg`})}var i=I(r,2),a=P(i,!0);D(i),D(t),L((e,r)=>{K(t,`aria-expanded`,n().expanded),K(t,`title`,e),K(t,`aria-label`,r),H(a,n().count)},[()=>d(),()=>d()+`, `+(n().expanded?`collapse`:`expand`)]),z(`click`,t,u),V(e,t)};U(g,e=>{n()&&e(_)});var v=I(g,2),y=P(v),b=P(y,!0);D(y);var x=I(y,2),S=P(x,!0);D(x),D(v);var C=I(v,2),w=e=>{var n=gB(),r=P(n,!0);D(n),L(e=>H(r,e),[()=>Sd(t.entry)]),V(e,n)};U(C,e=>{(t.entry.requested_model||t.entry.model)&&e(w)});var T=I(C,2),E=e=>{var n=_B(),r=P(n,!0);D(n),L(()=>H(r,t.entry.path||`-`)),V(e,n)};U(T,e=>{a()||e(E)}),D(h);var ee=I(h,2),te=P(ee);WR(te,{get entry(){return t.entry}});var ne=I(te,2),re=P(ne),ie=P(re,!0);D(re);var ae=I(re,2),oe=P(ae,!0);D(ae),D(ne);var se=I(ne,2),ce=P(se,!0);D(se);var le=I(se,2),ue=e=>{var t=vB();let n;var r=P(t);{let e=A(()=>R(c)?Pc:Fc);J(r,{get icon(){return R(e)},class:`audit-conversation-trigger-svg`})}D(t),L(()=>{n=G(t,1,`audit-conversation-trigger svelte-17mysgz`,null,n,{"audit-conversation-trigger-active":R(c)}),K(t,`title`,R(c)?`Close interactions`:`Open interactions`),K(t,`aria-label`,R(c)?`Close interactions`:`Open interactions`),K(t,`aria-pressed`,R(c))}),z(`click`,t,f),V(e,t)},de=A(()=>pB.canShowConversation(t.entry));U(le,e=>{R(de)&&e(ue)}),D(ee),D(p),L((e,n,i,a)=>{m=G(p,1,`audit-entry-summary svelte-17mysgz`,null,m,e),K(p,`aria-expanded`,r()),G(v,1,`audit-status-badge audit-request-badge ${n??``}`,`svelte-17mysgz`),K(v,`title`,`Status `+(t.entry.status_code||`-`)+` · `+(t.entry.method||`-`)),K(v,`aria-label`,(t.entry.status_code||`-`)+` `+(t.entry.method||`-`)),H(b,t.entry.status_code||`-`),H(S,t.entry.method||`-`),K(ne,`title`,i),K(ne,`aria-label`,R(o)),H(ie,R(o)),H(oe,R(s)),H(ce,a)},[()=>({"audit-entry-summary-live-in-progress":YL(t.entry),"audit-entry-summary-has-interactions":pB.canShowConversation(t.entry)}),()=>JL(t.entry.status_code),()=>gd(t.entry.timestamp),()=>qL(t.entry.duration_ns)]),z(`click`,p,l),V(e,p),k()}Br([`click`]);var xB=B(``);function SB(e,t){O(t,!0);let n=q(t,`label`,3,`Copy`),r=q(t,`copiedLabel`,3,`Copied`),i=q(t,`errorLabel`,3,``),a=q(t,`class`,3,`btn`),o=A(()=>t.state.error&&i()?i():t.state.copied?r():n());var s=xB();let c;var l=P(s),u=e=>{J(e,{get icon(){return Lc},width:`14`,height:`14`,"stroke-width":`2.5`})},d=e=>{J(e,{get icon(){return Bc},width:`14`,height:`14`})};U(l,e=>{t.state.copied?e(u):e(d,-1)});var f=I(l,2),p=P(f,!0);D(f),D(s),L(()=>{c=G(s,1,Ni([`copy-feedback-btn`,a()]),null,c,{"copy-feedback-btn-copied":t.state.copied}),H(p,R(o))}),z(`click`,s,e=>{e.preventDefault(),t.onclick?.(e)}),V(e,s),k()}Br([`click`]);var CB=B(`
        Error Message
         
        `),wB=B(`
         
        `),TB=B(` `),EB=B(` streaming`),DB=B(`
        Body
        `),OB=B(`

        `),kB=B(`

        `),AB=B(`

        `),jB=B(`
        `);function MB(e,t){O(t,!0);let n=CF({logPrefix:`Failed to copy audit payload:`}),r=CF({logPrefix:`Failed to copy audit payload:`}),i=A(()=>t.pane&&t.pane.showHeaders?sd(t.pane.headers):``),a=A(()=>!t.pane||!t.pane.showBody?``:Fz(t.pane.body)?Bz(t.pane.body):pB.renderBodyWithConversationHighlights(t.pane.entry,t.pane.body,{promptCacheHighlight:t.pane.promptCacheHighlight})),o=A(()=>!!(t.pane&&pB.canShowConversation(t.pane.entry)));function s(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),pB.handleErrorConversationClick(e,t.pane.entry))}var c=jB();let l;var u=P(c),d=e=>{var n=CB(),r=I(P(n),2);let i;var a=P(r,!0);D(r),D(n),L(()=>{i=G(r,1,`audit-json audit-pane-error-message svelte-1h5puht`,null,i,{"audit-pane-clickable-preview":R(o)}),K(r,`role`,R(o)?`button`:null),K(r,`tabindex`,R(o)?0:null),H(a,t.pane.errorMessage)}),z(`mousedown`,r,e=>pB.startBodyInteraction(e)),z(`keydown`,r,s),z(`click`,r,e=>pB.handleErrorConversationClick(e,t.pane.entry)),V(e,n)};U(u,e=>{t.pane.showErrorMessage&&e(d)});var f=I(u,2),p=e=>{var n=wB(),a=P(n),o=P(a),s=P(o,!0);D(o),SB(I(o,2),{get state(){return r},label:`Copy Headers`,errorLabel:`Copy failed`,class:`audit-copy-btn`,onclick:()=>r.copy(t.pane.copyHeaders,sd)}),D(a);var c=I(a,2),l=P(c,!0);D(c),D(n),L(()=>{H(s,t.pane.headersTitle||`Headers`),H(l,R(i))}),V(e,n)};U(f,e=>{t.pane.showHeaders&&e(p)});var m=I(f,2),h=e=>{var r=DB(),i=P(r),o=P(i),s=I(P(o),2),c=e=>{var n=TB(),r=P(n,!0);D(n),L(()=>H(r,t.pane.bodyCacheRatioLabel)),V(e,n)};U(s,e=>{t.pane.bodyCacheRatioLabel&&e(c)});var l=I(s,2),u=e=>{V(e,EB())};U(l,e=>{t.pane.streaming&&e(u)}),D(o),SB(I(o,2),{get state(){return n},label:`Copy Body`,errorLabel:`Copy failed`,class:`audit-copy-btn`,onclick:()=>n.copy(t.pane.copyBody,sd)}),D(i);var d=I(i,2);pi(d,()=>R(a),!0),D(d),D(r),z(`mousedown`,d,e=>pB.startBodyInteraction(e)),z(`click`,d,e=>pB.handleBodyConversationClick(e,t.pane.entry)),V(e,r)};U(m,e=>{t.pane.showBody&&e(h)});var g=I(m,2),_=e=>{var n=OB(),r=P(n,!0);D(n),L(()=>H(r,t.pane.emptyMessage)),V(e,n)};U(g,e=>{t.pane.showEmpty&&e(_)});var v=I(g,2),y=e=>{var n=kB(),r=I(P(n),2),i=P(r,!0);D(r),D(n),L(()=>H(i,t.pane.pendingMessage)),V(e,n)};U(v,e=>{t.pane.showPending&&e(y)});var b=I(v,2),x=e=>{var n=AB(),r=P(n,!0);D(n),L(()=>H(r,t.pane.tooLargeMessage)),V(e,n)};U(b,e=>{t.pane.showTooLarge&&e(x)}),D(c),L(()=>l=G(c,1,`audit-pane svelte-1h5puht`,null,l,{"audit-pane-split":t.pane&&t.pane.layout===`split`,"audit-pane-split-single":t.pane&&t.pane.layout===`split`&&!(t.pane.showHeaders&&t.pane.showBody)})),V(e,c),k()}Br([`mousedown`,`keydown`,`click`]);var NB=B(` `),PB=B(` `),FB=B(` `),IB=B(` `),LB=B(``),RB=B(`
        `),zB=B(`
        `);function BB(e,t){O(t,!0);let n=q(t,`panes`,19,()=>[]),r=j(null),i=A(()=>DR(R(r),t.entry,n())),a=e=>`audit-tab-`+t.entry.id+`-`+e,o=e=>`audit-tabpanel-`+t.entry.id+`-`+e;function s(e,t){let i=n().map(e=>e.id),a=OR(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=zB(),l=P(c);W(l,21,n,e=>e.id,(e,t)=>{var n=LB();let c;var l=P(n),u=P(l),d=e=>{J(e,{get icon(){return wc}})},f=e=>{J(e,{get icon(){return Cc}})};U(u,e=>{R(t).pane.direction===`request`?e(d):R(t).pane.direction===`response`&&e(f,1)}),D(l);var p=I(l,2),m=P(p,!0);D(p);var h=I(p,2),g=e=>{var n=NB(),r=P(n);D(n),L(()=>H(r,`#${R(t).pane.seq??``}`)),V(e,n)};U(h,e=>{R(t).pane.seq&&e(g)});var _=I(h,2),v=e=>{var n=PB(),r=P(n,!0);D(n),L(()=>{G(n,1,`provider-badge audit-pane-kind audit-pane-kind-${R(t).pane.kind??``}`,`svelte-1bc5vi5`),H(r,R(t).pane.kind)}),V(e,n)};U(_,e=>{R(t).pane.kind&&e(v)});var y=I(_,2);W(y,17,()=>R(t).pane.noChangeSteps||[],e=>e.id,(e,t)=>{var n=FB(),r=P(n,!0);D(n),L(()=>{K(n,`title`,R(t).title),H(r,R(t).label)}),V(e,n)});var b=I(y,2),x=e=>{var n=IB(),r=P(n,!0);D(n),L(()=>H(r,R(t).pane.savingsLabel)),V(e,n)};U(b,e=>{R(t).pane.savingsLabel&&e(x)});var S=I(b,2),C=e=>{var n=PB(),r=P(n,!0);D(n),L(e=>{G(n,1,`audit-status-badge ${e??``}`,`svelte-1bc5vi5`),H(r,R(t).pane.statusCode)},[()=>JL(R(t).pane.statusCode)]),V(e,n)};U(S,e=>{R(t).pane.statusCode&&e(C)}),D(n),L((e,r)=>{c=G(n,1,`audit-pane-tab svelte-1bc5vi5`,null,c,{"audit-pane-tab-active":R(i)===R(t).id}),K(n,`aria-selected`,R(i)===R(t).id),K(n,`id`,e),K(n,`aria-controls`,r),K(n,`tabindex`,R(i)===R(t).id?0:-1),G(l,1,Ni([`audit-pane-icon`,R(t).pane.direction&&`audit-pane-icon-${R(t).pane.direction}`]),`svelte-1bc5vi5`),H(m,R(t).pane.title)},[()=>a(R(t).id),()=>o(R(t).id)]),z(`keydown`,n,e=>s(e,R(t).id)),z(`click`,n,()=>M(r,R(t).id,!0)),V(e,n)}),D(l),W(I(l,2),17,n,e=>e.id,(e,t)=>{var n=RB();let r;MB(P(n),{get pane(){return R(t).pane}}),D(n),L((e,a)=>{K(n,`id`,e),K(n,`aria-labelledby`,a),r=Bi(n,``,r,{display:R(i)===R(t).id?null:`none`})},[()=>o(R(t).id),()=>a(R(t).id)]),V(e,n)}),D(c),V(e,c),k()}Br([`keydown`,`click`]);var VB=B(`
        `),HB=B(`
        `);function UB(e,t){O(t,!0);let n=q(t,`thread`,3,null),r=q(t,`hidePath`,3,!1),i=A(()=>jR.isAuditEntryExpanded(t.entry)),a=A(()=>pB.conversationOpen&&String(pB.conversationAnchorID||``)===String(t.entry.id||``)),o=A(()=>R(i)?TR(t.entry,oz):[]),s=A(()=>R(i)?bI(t.entry,hL.auditEntryWorkflow(t.entry),hL.workflowFeatureCaps()):null);function c(){jR.toggleAuditEntryExpanded(t.entry)}var l=HB();let u;var d=P(l);bB(d,{get entry(){return t.entry},get thread(){return n()},get expanded(){return R(i)},get hidePath(){return r()},onactivate:c});var f=I(d,2),p=e=>{var n=VB(),r=P(n),i=e=>{IF(e,{get chart(){return R(s)}})};U(r,e=>{R(s)&&e(i)});var a=I(r,2);BB(a,{get entry(){return t.entry},get panes(){return R(o)}}),VR(I(a,2),{get entry(){return t.entry}}),D(n),Di(3,n,()=>Ju,()=>({y:-6,duration:pL(150)})),V(e,n)};U(f,e=>{R(i)&&e(p)}),D(l),L(()=>u=G(l,1,`audit-entry svelte-cmjgwr`,null,u,{"audit-entry-interactions-open":R(a)})),V(e,l),k()}var WB=B(`
        `),GB=B(`
        `),KB=B(`

        `),qB=B(`
        `),JB=B(`
        `);function YB(e,t){O(t,!0);let n=A(()=>jL(t.entry)),r=A(()=>jR.isThreadExpanded(R(n))),i=A(()=>jR.threadChildren(R(n))),a=A(()=>R(i)&&!R(i).loading&&Number(R(i).total||0)>R(i).entries.length+1);var o=Xr(),s=F(o),c=e=>{UB(e,{get entry(){return t.entry}})},l=A(()=>!NL(t.entry)),u=e=>{var n=JB(),o=P(n);{let e=A(()=>({count:ML(t.entry),expanded:R(r),ontoggle:()=>jR.toggleThread(t.entry)}));UB(o,{get entry(){return t.entry},get thread(){return R(e)}})}var s=I(o,2),c=e=>{var n=qB(),r=P(n),o=e=>{var t=WB();wT(P(t),{size:14,label:`Loading session requests`}),D(t),V(e,t)};U(r,e=>{R(i)&&R(i).loading&&e(o)});var s=I(r,2);W(s,17,()=>R(i)&&R(i).entries||[],e=>e.id,(e,n)=>{var r=GB(),i=P(r);{let e=A(()=>R(n).path===t.entry.path);UB(i,{get entry(){return R(n)},get hidePath(){return R(e)}})}D(r),V(e,r)});var c=I(s,2),l=e=>{var t=KB(),n=P(t);D(t),L(()=>H(n,`Showing the latest ${R(i).entries.length+1} of ${R(i).total??``} - requests in this session.`)),V(e,t)};U(c,e=>{R(a)&&e(l)}),D(n),Di(3,n,()=>Yu,()=>({duration:pL(150)})),V(e,n)};U(s,e=>{R(r)&&e(c)}),D(n),V(e,n)};U(s,e=>{R(l)?e(c):e(u,-1)}),V(e,o),k()}var XB=B(`

        .

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

        `),$B=B(`
        `),eV=B(`
        `),tV=B(`
        `),nV=B(`
        `),rV=B(`
        `);function iV(e,t){O(t,!0);let n=A(()=>bu.config&&bu.config.LOGGING_RETENTION_DAYS);On(()=>{if(Y.refreshTick,Bl.page===`audit-logs`)return wr(()=>r())});function r(){let e=!1;return(async()=>{try{await bu.ensureLoaded()}finally{await jR.fetchAuditLog(!0),!e&&bu.liveLogsVisible()&&PE.ensureLiveLogs()}})(),()=>{e=!0,PE.stopLiveLogs()}}var i=rV(),a=P(i),o=P(a),s=I(P(o),2),c=e=>{YT(e,{copyId:`audit-retention-help-copy`,label:`retention help`,text:`If you want to change the retention period, set LOGGING_RETENTION_DAYS (env var) or logging.retention_days (config.yaml) and restart the gateway. Default is 30 days; 0 keeps audit logs forever.`,title:e=>{var t=XB(),r=P(t,!0),i=I(r),a=P(i,!0);D(i),Ve(),D(t),L((e,t)=>{H(r,e),H(a,t)},[()=>DL(R(n)),()=>OL(R(n))]),V(e,t)},$$slots:{title:!0}})},l=A(()=>EL(R(n)));U(s,e=>{R(l)&&e(c)}),D(o),D(a);var u=I(a,2);rf(P(u),{onchange:()=>jR.fetchAuditLog(!0)}),D(u);var d=I(u,2);Rd(d,{});var f=I(d,2),p=e=>{V(e,ZB())},m=A(()=>bu.loaded&&!bu.auditVisible()&&!Y.needsAuth);U(f,e=>{R(m)&&e(p)});var h=I(f,2),g=P(h);NR(g,{});var _=I(g,2),v=P(_),y=P(v),b=e=>{var t=QB(),n=P(t);D(t),L(e=>H(n,`Showing ${jR.auditLog.offset+1}-${e??``} of ${jR.auditLog.total??``} - ${jR.auditGroupSessions?`sessions`:`logs`}`),[()=>Math.min(jR.auditLog.offset+jR.auditLog.limit,jR.auditLog.total)]),V(e,t)};U(y,e=>{jR.auditLog.total>0&&e(b)});var x=I(y,2),S=P(x);ea(S),Ve(2),D(x),D(v),RR(I(v,2),{}),D(_);var C=I(_,2),w=e=>{var t=$B();wT(P(t),{size:18,label:`Loading audit logs`}),D(t),V(e,t)},T=e=>{var t=tV();W(t,29,()=>jR.auditLog.entries,e=>e.id,(e,t)=>{var n=eV(),r=P(n),i=e=>{YB(e,{get entry(){return R(t)}})},a=e=>{UB(e,{get entry(){return R(t)}})};U(r,e=>{jR.auditGroupSessions?e(i):e(a,-1)}),D(n),Ei(n,()=>lL,()=>({duration:pL(150)})),Di(1,n,()=>mL,()=>({live:R(t)._live})),V(e,n)}),D(t),V(e,t)};U(C,e=>{jR.loading&&jR.auditLog.entries.length===0?e(w):jR.auditLog.entries.length>0&&e(T,1)});var E=I(C,2),ee=e=>{var t=nV();DT(P(t),{}),D(t),V(e,t)};U(E,e=>{jR.auditLog.entries.length===0&&!jR.loading&&!Y.needsAuth&&e(ee)}),ZD(I(E,2),{get total(){return jR.auditLog.total},get offset(){return jR.auditLog.offset},get limit(){return jR.auditLog.limit},onprev:()=>jR.auditLogPrevPage(),onnext:()=>jR.auditLogNextPage()}),D(h),D(i),L(()=>na(S,jR.auditGroupSessions)),z(`change`,S,()=>jR.toggleAuditGroupSessions()),V(e,i),k()}Br([`change`]);function aV(e){try{let t=JSON.parse(JSON.stringify(e||{}));return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}catch{return{}}}function oV(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 sV(e,t){let n=String(t||``).trim();return(e||[]).find(e=>String(e&&e.type||``).trim()===n)||null}function cV(e){return Array.isArray(e)&&e.length>0&&String(e[0].type||``).trim()||`system_prompt`}function lV(e,t){let n=String(t||``).trim();return n&&sV(e,n)?n:cV(e)}function uV(e,t){let n=sV(e,t);return!n||!n.defaults?{}:aV(n.defaults)}function dV(e,t,n){return{...uV(e,n),...aV(t)}}function fV(e,t){let n=lV(e,t);return{name:``,type:n,description:``,user_path:``,config:uV(e,n)}}function pV(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 mV(e,t){let n=sV(e,t);return n&&n.label?n.label:t||`Unknown`}function hV(e,t){let n=sV(e,t);return Array.isArray(n&&n.fields)?n.fields:[]}function gV(e,t){if(!t||!e)return t&&t.input===`checkboxes`?[]:``;let n=e[t.key];return n==null?t.input===`checkboxes`?[]:``:t.input===`checkboxes`?oV(n):n}function _V(e,t,n){if(!t)return e;let r=aV(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]=oV(n):r[t.key]=n;return r}function vV(e,t,n){return gV(e,t).includes(String(n||``).trim())}function yV(e,t,n,r){let i=oV(gV(e,t)),a=String(n||``).trim();return a?_V(e,t,r?Array.from(new Set([...i,a])):i.filter(e=>e!==a)):e}function bV(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:aV(e&&e.config)}}var xV=new class{#e=j(N([]));get guardrails(){return R(this.#e)}set guardrails(e){M(this.#e,e,!0)}#t=j(N([]));get types(){return R(this.#t)}set types(e){M(this.#t,e,!0)}#n=j(!0);get available(){return R(this.#n)}set available(e){M(this.#n,e,!0)}#r=j(!1);get loading(){return R(this.#r)}set loading(e){M(this.#r,e,!0)}#i=j(!1);get typesLoading(){return R(this.#i)}set typesLoading(e){M(this.#i,e,!0)}#a=j(``);get error(){return R(this.#a)}set error(e){M(this.#a,e,!0)}#o=j(``);get filter(){return R(this.#o)}set filter(e){M(this.#o,e,!0)}#s=j(!1);get formOpen(){return R(this.#s)}set formOpen(e){M(this.#s,e,!0)}#c=j(!1);get formSubmitting(){return R(this.#c)}set formSubmitting(e){M(this.#c,e,!0)}#l=j(``);get deletingName(){return R(this.#l)}set deletingName(e){M(this.#l,e,!0)}#u=j(`create`);get formMode(){return R(this.#u)}set formMode(e){M(this.#u,e,!0)}#d=j(``);get formOriginalName(){return R(this.#d)}set formOriginalName(e){M(this.#d,e,!0)}#f=j(N({name:``,type:``,description:``,user_path:``,config:{}}));get form(){return R(this.#f)}set form(e){M(this.#f,e,!0)}get filtered(){return pV(this.guardrails,this.filter)}typeLabel(e){return mV(this.types,e)}typeFields(e){return hV(this.types,e)}fieldValue(e){return gV(this.form&&this.form.config,e)}setFieldValue(e,t){this.form={...this.form,config:_V(this.form.config,e,t)}}arrayFieldSelected(e,t){return vV(this.form&&this.form.config,e,t)}toggleArrayFieldValue(e,t,n){this.form={...this.form,config:yV(this.form.config,e,t,n)}}openCreate(){this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=fV(this.types,cV(this.types)),this.formOpen=!0}openEdit(e){let t=lV(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:dV(this.types,e&&e.config,t)},this.formOpen=!0}closeForm(){this.formOpen=!1,this.formMode=`create`,this.formOriginalName=``,this.error=``,this.form=fV(this.types,cV(this.types))}changeType(e){let t=lV(this.types,e);this.form={...this.form,type:t,config:uV(this.types,t)}}async fetchTypes(){this.typesLoading=!0;try{let e=await bO(`/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=lV(this.types,this.form.type);this.form={...this.form,type:t,config:dV(this.types,this.form.config,t)}}finally{this.typesLoading=!1}}async fetchGuardrails(){this.loading=!0,this.error=``;try{let e=await bO(`/admin/guardrails`,{label:`guardrails`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.guardrails=[];return}e.result&&(this.available=!0),this.guardrails=e.items,this.error=e.error}finally{this.loading=!1}}async fetchPage(){await Promise.all([this.fetchTypes(),this.fetchGuardrails()])}async submitForm(){let e=String(this.form.name||``).trim(),t=String(this.form.type||``).trim();if(!e){this.error=`Name is required.`;return}if(!t){this.error=`Type is required.`;return}this.error=``,this.formSubmitting=!0;let n=bV(this.form);try{let t=await xO(`/admin/guardrails`,`PUT`,n,{label:`save guardrail`,errorFallback:`Failed to save guardrail.`,unavailableMessage:`Guardrails feature is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}ed.success(`Guardrail "`+e+`" saved.`),this.closeForm(),this.fetchGuardrails()}finally{this.formSubmitting=!1}}async deleteGuardrail(e){let t=String(e&&e.name||``).trim();if(!(!t||this.deletingName)&&window.confirm(`Delete guardrail "`+t+`"? Workflows that still reference it must be updated first.`)){this.deletingName=t;try{let e=await xO(`/admin/guardrails`,`DELETE`,{name:t},{label:`delete guardrail`,errorFallback:`Failed to delete guardrail.`,unavailableMessage:`Guardrails feature is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,ed.error(e.error);return}if(e.status===`error`){ed.error(e.error);return}ed.success(`Guardrail "`+t+`" deleted.`),this.formOpen&&this.formOriginalName===t&&this.closeForm(),this.fetchGuardrails()}finally{this.deletingName=``}}}},SV=B(`
        `),CV=B(`

        Loading guardrails...

        `),wV=B(`
        `),TV=B(`
        `),EV=B(`
        NameTypeUser PathSummaryActions
        `),DV=B(`

        No guardrails defined yet.

        `),OV=B(`

        Instances

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

        `);function kV(e,t){O(t,!0);var n=OV(),r=P(n),i=I(P(r),2);J(P(i),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(i),D(r);var a=I(r,2),o=e=>{var t=SV(),n=P(t);SD(P(n),{id:`guardrail-filter`,placeholder:`Filter by name, type, user path, summary...`,label:`Guardrail filter`,get value(){return xV.filter},set value(e){xV.filter=e}}),D(n),D(t),V(e,t)};U(a,e=>{xV.available&&e(o)});var s=I(a,2),c=e=>{var t=CV();wT(P(t),{size:16,label:`Loading guardrails`}),Ve(),D(t),V(e,t)};U(s,e=>{xV.loading&&xV.filtered.length===0&&e(c)});var l=I(s,2),u=e=>{var t=EV(),n=P(t),r=I(P(n));W(r,21,()=>xV.filtered,e=>e.name,(e,t)=>{var n=TV(),r=P(n),i=P(r,!0);D(r);var a=I(r),o=P(a),s=P(o,!0);D(o),D(a);var c=I(a),l=P(c,!0);D(c);var u=I(c),d=P(u),f=P(d,!0);D(d);var p=I(d,2),m=e=>{var n=wV(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(p,e=>{R(t).description&&e(m)}),D(u);var h=I(u),g=P(h),_=P(g);{let e=A(()=>`Edit guardrail `+R(t).name);yO(_,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>xV.openEdit(R(t)),children:(e,t)=>{J(e,{get icon(){return nl},class:`table-icon-svg`})},$$slots:{default:!0}})}var v=I(_,2);{let e=A(()=>(xV.deletingName===R(t).name?`Deleting guardrail `:`Delete guardrail `)+R(t).name),n=A(()=>xV.deletingName===R(t).name);yO(v,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>xV.deleteGuardrail(R(t)),get disabled(){return R(n)},children:(e,t)=>{J(e,{get icon(){return Ol},class:`table-icon-svg`})},$$slots:{default:!0}})}D(g),D(h),D(n),L(e=>{H(i,R(t).name),H(s,e),H(l,R(t).user_path||`—`),H(f,R(t).summary||R(t).description||`No summary yet.`)},[()=>xV.typeLabel(R(t).type)]),V(e,n)}),D(r),D(n),D(t),V(e,t)};U(l,e=>{xV.filtered.length>0&&e(u)});var d=I(l,2),f=e=>{V(e,DV())};U(d,e=>{xV.filtered.length===0&&!xV.loading&&xV.available&&!xV.error&&!Y.authError&&e(f)}),D(n),L(()=>i.disabled=xV.typesLoading||xV.formSubmitting||!xV.available),z(`click`,i,()=>xV.openCreate()),V(e,n),k()}Br([`click`]);var AV=B(`

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

        `),jV=B(``),MV=B(``),NV=B(``),PV=B(``),FV=B(``),IV=B(``),LV=B(``),RV=B(``),zV=B(``),BV=B(`
        `),VV=B(``),HV=B(` `),UV=B(`
        `),WV=B(`
        `);function GV(e,t){O(t,!0);let n=A(()=>xV.formMode===`edit`);{let t=e=>{V(e,AV())},r=A(()=>R(n)?`Edit Guardrail`:`Create Guardrail`);Ck(e,{get open(){return xV.formOpen},get title(){return R(r)},ariaLabel:`Guardrail editor`,get error(){return xV.error},get submitting(){return xV.formSubmitting},submitLabel:`Save Guardrail`,dialogClass:`settings-guardrails-editor guardrails-editor-wide`,onclose:()=>xV.closeForm(),onsubmit:()=>xV.submitForm(),headerHint:t,children:(e,t)=>{var r=WV(),i=P(r);Tk(i,{id:`guardrail-name`,label:`Name`,children:(e,t)=>{var r=jV();ea(r),L(()=>{r.disabled=R(n),K(r,`data-modal-autofocus`,!R(n)||void 0)}),la(r,()=>xV.form.name,e=>xV.form.name=e),V(e,r)},$$slots:{default:!0}});var a=I(i,2);Tk(a,{id:`guardrail-type`,label:`Type`,children:(e,t)=>{var r=NV();W(r,21,()=>xV.types,e=>e.type,(e,t)=>{var n=MV(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).type)&&(n.value=(n.__value=R(t).type)??``)}),V(e,n)}),D(r);var i;Hi(r),L(()=>{r.disabled=R(n),i!==(i=xV.form.type)&&(r.value=(r.__value=xV.form.type)??``,Vi(r,xV.form.type))}),z(`change`,r,e=>xV.changeType(e.currentTarget.value)),V(e,r)},$$slots:{default:!0}});var o=I(a,2);Tk(o,{id:`guardrail-description`,label:`Description`,children:(e,t)=>{var r=PV();ea(r),L(()=>K(r,`data-modal-autofocus`,R(n)?!0:void 0)),la(r,()=>xV.form.description,e=>xV.form.description=e),V(e,r)},$$slots:{default:!0}});var s=I(o,2),c=P(s);YT(c,{copyId:`guardrail-user-path-help-copy`,label:`guardrail user path help`,text:`Only used for auxiliary rewrite (llm_based_altering) guardrails; ignored for other guardrail types.`,title:e=>{V(e,FV())},$$slots:{title:!0}});var l=I(c,2);ea(l),D(s),W(I(s,2),17,()=>xV.typeFields(xV.form.type),e=>e.key,(e,t)=>{var n=Xr(),r=F(n),i=e=>{var n=BV(),r=P(n);{let e=e=>{var n=IV(),r=P(n,!0);D(n),L(()=>{K(n,`for`,`guardrail-field-`+R(t).key),H(r,R(t).label)}),V(e,n)},n=A(()=>`guardrail-field-help-`+R(t).key),i=A(()=>R(t).label+` help`),a=A(()=>R(t).help||``);YT(r,{get copyId(){return R(n)},get label(){return R(i)},get text(){return R(a)},title:e,$$slots:{title:!0}})}var i=I(r,2),a=e=>{var n=LV();W(n,21,()=>R(t).options||[],e=>e.value,(e,t)=>{var n=MV(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(n);var r;Hi(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0),r!==(r=e)&&(n.value=(n.__value=e)??``,Vi(n,e))},[()=>xV.fieldValue(R(t))]),z(`change`,n,e=>xV.setFieldValue(R(t),e.currentTarget.value)),V(e,n)},o=e=>{var n=RV();ut(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`placeholder`,R(t).placeholder||``),ta(n,e),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0)},[()=>xV.fieldValue(R(t))]),z(`input`,n,e=>xV.setFieldValue(R(t),e.currentTarget.value)),V(e,n)},s=e=>{var n=zV();ea(n),L(e=>{K(n,`id`,`guardrail-field-`+R(t).key),K(n,`type`,R(t).input||`text`),K(n,`placeholder`,R(t).placeholder||``),ta(n,e),K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0)},[()=>xV.fieldValue(R(t))]),z(`input`,n,e=>xV.setFieldValue(R(t),e.currentTarget.value)),V(e,n)};U(i,e=>{R(t).input===`select`?e(a):R(t).input===`textarea`?e(o,1):e(s,-1)}),D(n),V(e,n)},a=e=>{var n=UV(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>R(t).options||[],e=>R(t).key+`-`+e.value,(e,n)=>{var r=VV(),i=P(r);ea(i);var a=I(i,2),o=P(a,!0);D(a),D(r),L(e=>{na(i,e),H(o,R(n).label)},[()=>xV.arrayFieldSelected(R(t),R(n).value)]),z(`change`,i,e=>xV.toggleArrayFieldValue(R(t),R(n).value,e.currentTarget.checked)),V(e,r)}),D(a);var o=I(a,2),s=e=>{var n=HV(),r=P(n,!0);D(n),L(()=>{K(n,`id`,`guardrail-field-help-`+R(t).key),H(r,R(t).help)}),V(e,n)};U(o,e=>{R(t).help&&e(s)}),D(n),L(()=>{K(n,`aria-describedby`,R(t).help?`guardrail-field-help-`+R(t).key:void 0),H(i,R(t).label)}),V(e,n)};U(r,e=>{R(t).input===`checkboxes`?e(a,-1):e(i)}),V(e,n)}),D(r),la(l,()=>xV.form.user_path,e=>xV.form.user_path=e),V(e,r)},$$slots:{headerHint:!0,default:!0}})}k()}Br([`change`,`input`]);var KV=B(`

        Guardrails

        `),qV=B(`
        Runtime guardrail execution is currently off because GUARDRAILS_ENABLED is disabled. You can still manage - definitions here.
        `),JV=B(`
        Guardrails feature is unavailable.
        `),YV=B(`
        `),XV=B(`

        Reusable Policy Objects

        Guardrail Library

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

        Instances
        Types
        `);function ZV(e,t){O(t,!0),On(()=>{Y.refreshTick,Bl.page===`guardrails`&&(bu.ensureLoaded(),xV.fetchPage())});var n=XV(),r=P(n),i=P(r);YT(P(i),{copyId:`guardrails-help-copy`,label:`guardrails help`,text:`Reusable policy objects stored in the database and kept hot in memory for workflow execution.`,title:e=>{V(e,KV())},$$slots:{title:!0}}),D(i),D(r);var a=I(r,2),o=I(P(a),2),s=P(o),c=I(P(s),2),l=P(c,!0);D(c),D(s);var u=I(s,2),d=I(P(u),2),f=P(d,!0);D(d),D(u),D(o),D(a);var p=I(a,2);Rd(p,{});var m=I(p,2),h=e=>{V(e,qV())},g=A(()=>!bu.guardrailsVisible());U(m,e=>{R(g)&&e(h)});var _=I(m,2),v=e=>{V(e,JV())};U(_,e=>{!Y.authError&&!xV.available&&e(v)});var y=I(_,2),b=e=>{var t=YV(),n=P(t,!0);D(t),L(()=>H(n,xV.error)),V(e,t)};U(y,e=>{!Y.authError&&xV.error&&!xV.formOpen&&e(b)});var x=I(y,2);GV(x,{}),kV(I(x,2),{}),D(n),L((e,t)=>{H(l,e),H(f,t)},[()=>cd(xV.guardrails.length),()=>cd(xV.types.length)]),V(e,n),k()}var $=new class{#e=j(N([]));get servers(){return R(this.#e)}set servers(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return R(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get formSubmitting(){return R(this.#o)}set formSubmitting(e){M(this.#o,e,!0)}#s=j(`create`);get formMode(){return R(this.#s)}set formMode(e){M(this.#s,e,!0)}#c=j(!1);get slugEdited(){return R(this.#c)}set slugEdited(e){M(this.#c,e,!0)}#l=j(!1);get advancedOpen(){return R(this.#l)}set advancedOpen(e){M(this.#l,e,!0)}#u=j(N(pw()));get form(){return R(this.#u)}set form(e){M(this.#u,e,!0)}#d=j(``);get deletingName(){return R(this.#d)}set deletingName(e){M(this.#d,e,!0)}#f=j(``);get reconnectingName(){return R(this.#f)}set reconnectingName(e){M(this.#f,e,!0)}#p=j(!1);get catalogOpen(){return R(this.#p)}set catalogOpen(e){M(this.#p,e,!0)}#m=j(!1);get catalogLoading(){return R(this.#m)}set catalogLoading(e){M(this.#m,e,!0)}#h=j(``);get catalogError(){return R(this.#h)}set catalogError(e){M(this.#h,e,!0)}#g=j(N(mw()));get catalog(){return R(this.#g)}set catalog(e){M(this.#g,e,!0)}#_=A(()=>Tw(this.servers,this.filter));get filtered(){return R(this.#_)}set filtered(e){M(this.#_,e)}async fetchServers(){if(await bu.ensureLoaded(),!bu.mcpVisible()){this.available=!1,this.servers=[],this.error=``,this.loading=!1;return}this.loading=!0,this.error=``;try{let e=await bO(`/admin/mcp-servers`,{label:`mcp servers`,errorFallback:`Failed to load MCP servers.`,unavailableStatuses:[503,404]});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.servers=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.servers=[],this.error=e.error;return}this.available=!0,this.servers=e.items}finally{this.loading=!1}}openCreate(){this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=pw(),this.formOpen=!0}openEdit(e){!e||e.managed||(this.formMode=`edit`,this.slugEdited=!0,this.advancedOpen=!1,this.error=``,this.form=Ew(e),this.formOpen=!0)}closeForm(){this.formOpen=!1,this.formMode=`create`,this.slugEdited=!1,this.advancedOpen=!1,this.error=``,this.form=pw()}syncSlugFromName(){this.formMode===`create`&&!this.slugEdited&&(this.form.slug=xw(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=Dw(this.form,this.formMode,this.servers);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await xO(`/admin/mcp-servers`,`PUT`,e.payload,{label:`save mcp server`,errorFallback:`Failed to save MCP server.`,unavailableMessage:`MCP server management is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error;return}ed.success(`MCP server "`+e.payload.name+`" saved.`),this.closeForm(),this.fetchServers()}finally{this.formSubmitting=!1}}async deleteServer(e){let t=String(e&&e.name||``).trim(),n=hw(e);if(!(!n||this.deletingName||e&&e.managed)&&confirm(`Delete MCP server "`+t+`"? Clients lose access to its tools immediately.`)){this.deletingName=n;try{let e=await xO(`/admin/mcp-servers/`+encodeURIComponent(n),`DELETE`,void 0,{label:`delete mcp server`,errorFallback:`Failed to delete MCP server.`,unavailableMessage:`MCP server management is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,ed.error(e.error);return}if(e.status===`error`){ed.error(e.error);return}ed.success(`MCP server "`+t+`" deleted.`),this.formOpen&&this.form.slug===n&&this.closeForm(),this.fetchServers()}finally{this.deletingName=``}}}async reconnectServer(e){let t=String(e&&e.name||``).trim(),n=hw(e);if(!(!n||this.reconnectingName)){this.reconnectingName=n;try{let e=await xO(`/admin/mcp-servers/`+encodeURIComponent(n)+`/reconnect`,`POST`,void 0,{label:`reconnect mcp server`,errorFallback:`Failed to reconnect MCP server.`,unavailableMessage:`MCP server management is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,ed.error(e.error);return}if(e.status===`error`){ed.error(e.error);return}let r=e.result.data,i=gw(r);i===`connected`?ed.success(`MCP server "`+t+`" reconnected.`):i===`disabled`?ed.success(`MCP server "`+t+`" is disabled; no connection was attempted.`):ed.error(`Reconnect attempted, but MCP server "`+t+`" is still `+i+`.`),r&&r.name?this.servers=(this.servers||[]).map(e=>hw(e)===hw(r)?r:e):this.fetchServers()}finally{this.reconnectingName=``}}}async openCatalog(e){let t=String(e&&e.name||``).trim(),n=hw(e);if(n){this.catalogOpen=!0,this.catalogLoading=!0,this.catalogError=``,this.catalog={...mw(),server:n,status:gw(e)};try{let e=await hu(`/admin/mcp-servers/`+encodeURIComponent(n)+`/catalog`,{label:`mcp server catalog`});if(e.stale)return;if(e.status===503){this.available=!1,this.catalogError=`MCP server management is unavailable.`;return}if(e.status===404){this.catalogError=`MCP server "`+t+`" was not found.`;return}if(!e.ok){this.catalogError=e.status===401?`Authentication required.`:uu(e.data,`Failed to load MCP server catalog.`);return}this.catalog=Ow(n,e.data)}catch(e){console.error(`Failed to load MCP server catalog:`,e),this.catalogError=`Failed to load MCP server catalog.`}finally{this.catalogLoading=!1}}}closeCatalog(){this.catalogOpen=!1,this.catalogLoading=!1,this.catalogError=``,this.catalog=mw()}},QV=B(``),$V=B(`

        `),eH=B(`
        `),tH=B(`

        `),nH=B(`
      • `),rH=B(`

          `),iH=B(`

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

          `),aH=B(` `,1),oH=B(``);function sH(e,t){O(t,!0);let n=A(()=>Aw($.catalog));Nu(e,{get open(){return $.catalogOpen},variant:`editor`,onclose:()=>$.closeCatalog(),children:(e,t)=>{var r=oH(),i=P(r),a=P(i),o=I(P(a),2),s=P(o),c=P(s,!0);D(s);var l=I(s,2),u=P(l,!0);D(l),D(o),D(a),ku(I(a,2),{label:`Close MCP server catalog`,onclick:()=>$.closeCatalog()}),D(i);var d=I(i,2),f=e=>{_O(e,{label:`Loading catalog...`})},p=e=>{var t=QV(),n=P(t,!0);D(t),L(()=>H(n,$.catalogError)),V(e,t)},m=e=>{var t=aH(),r=F(t),i=e=>{var t=$V(),n=P(t,!0);D(t),L(()=>H(n,$.catalog.instructions)),V(e,t)};U(r,e=>{$.catalog.instructions&&e(i)});var a=I(r,2);W(a,17,()=>R(n),e=>e.key,(e,t)=>{var n=rH(),r=P(n),i=P(r,!0);D(r);var a=I(r,2);W(a,21,()=>R(t).items,e=>e.key,(e,t)=>{var n=nH(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=e=>{var n=eH(),r=P(n,!0);D(n),L(()=>{K(n,`title`,`Exposed on the aggregated /mcp endpoint as `+R(t).aggregated),H(r,R(t).aggregated)}),V(e,n)};U(a,e=>{R(t).aggregated&&e(o)});var s=I(a,2),c=e=>{var n=tH(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(s,e=>{R(t).description&&e(c)}),D(n),L(()=>{K(r,`title`,R(t).aggregated||R(t).name),H(i,R(t).name)}),V(e,n)}),D(a),D(n),L(()=>H(i,R(t).title)),V(e,n)});var o=I(a,2),s=e=>{V(e,iH())},c=A(()=>jw($.catalog));U(o,e=>{R(c)&&e(s)}),V(e,t)};U(d,e=>{$.catalogLoading?e(f):$.catalogError?e(p,1):e(m,-1)});var h=I(d,2),g=P(h);D(h),D(r),L((e,t)=>{H(c,$.catalog.server),G(l,1,`audit-status-badge ${e??``}`,`svelte-1xqrzco`),H(u,t)},[()=>_w($.catalog),()=>gw($.catalog)]),z(`click`,g,()=>$.closeCatalog()),V(e,r)},$$slots:{default:!0}}),k()}Br([`click`]);var cH=B(`

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

          `),lH=B(` Human-readable and Unicode-friendly. You can change it later.`,1),uH=B(`Derived from the name. You may edit it before saving.`),dH=B(`Immutable because it is used in URLs, scope headers, and aggregated tool names.`),fH=B(` `,1),pH=B(` stdio servers are config-only: declare them in config.yaml under mcp.servers.`,1),mH=B(``),hH=B(`
          `),gH=B(`
          Headers
          Sent only to the configured server origin. Saved values are shown as ***; leave *** unchanged to keep the stored value.
          Advanced settings Description, access rules, and timeout
          `,1);function _H(e,t){O(t,!0);{let t=e=>{V(e,cH())},n=A(()=>$.formMode===`edit`?`Edit MCP Server`:`Add MCP Server`);Ck(e,{get open(){return $.formOpen},get title(){return R(n)},ariaLabel:`MCP server editor`,get error(){return $.error},get submitting(){return $.formSubmitting},onclose:()=>$.closeForm(),onsubmit:()=>$.submitForm(),headerHint:t,children:(e,t)=>{var n=gH(),r=F(n);Tk(r,{id:`mcp-server-name`,label:`Name`,children:(e,t)=>{var n=lH(),r=F(n);ea(r),Ve(2),z(`input`,r,()=>$.syncSlugFromName()),la(r,()=>$.form.name,e=>$.form.name=e),V(e,n)},$$slots:{default:!0}});var i=I(r,2);Tk(i,{id:`mcp-server-slug`,label:`Slug`,children:(e,t)=>{var n=fH(),r=F(n);ea(r);var i=I(r,2),a=e=>{V(e,uH())},o=e=>{V(e,dH())};U(i,e=>{$.formMode===`create`?e(a):e(o,-1)}),L(()=>r.disabled=$.formMode===`edit`),z(`input`,r,()=>$.markSlugEdited()),la(r,()=>$.form.slug,e=>$.form.slug=e),V(e,n)},$$slots:{default:!0}});var a=I(i,2);Tk(a,{id:`mcp-server-transport`,label:`Transport`,children:(e,t)=>{var n=pH(),r=F(n),i=P(r);i.value=i.__value=`http`;var a=I(i);a.value=a.__value=`sse`,D(r),Ve(2),Ui(r,()=>$.form.transport,e=>$.form.transport=e),V(e,n)},$$slots:{default:!0}});var o=I(a,2);Tk(o,{id:`mcp-server-url`,label:`URL`,children:(e,t)=>{var n=mH();ea(n),la(n,()=>$.form.url,e=>$.form.url=e),V(e,n)},$$slots:{default:!0}});var s=I(o,2),c=I(P(s),2);W(c,21,()=>$.form.headers,ii,(e,t,n)=>{var r=hH(),i=P(r);ea(i);var a=I(i,2);ea(a),yO(I(a,2),{label:`Remove header`,class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>$.removeHeader(n),children:(e,t)=>{J(e,{get icon(){return xl},class:`table-icon-svg`})},$$slots:{default:!0}}),D(r),la(i,()=>R(t).name,e=>R(t).name=e),la(a,()=>R(t).value,e=>R(t).value=e),V(e,r)}),D(c);var l=I(c,2),u=P(l);J(P(u),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(u),D(l),Ve(2),D(s);var d=I(s,2),f=P(d);TN(P(f),{get enabled(){return $.form.enabled},label:`MCP server`,onclick:()=>$.form.enabled=!$.form.enabled}),D(f),D(d);var p=I(d,2),m=I(P(p),2),h=P(m),g=I(P(h),2);ea(g),D(h);var _=I(h,2),v=I(P(_),2);ea(v),D(_);var y=I(_,2),b=I(P(y),2);ea(b),D(y);var x=I(y,2),S=I(P(x),2);ut(S),K(S,`placeholder`,`/ -/team/alpha`),D(x);var C=I(x,2),w=I(P(C),2);ea(w),D(C),D(m),D(p),L(()=>p.open=$.advancedOpen),z(`click`,u,()=>$.addHeader()),zr(`toggle`,p,e=>$.advancedOpen=e.currentTarget.open),la(g,()=>$.form.description,e=>$.form.description=e),la(v,()=>$.form.allowed_tools,e=>$.form.allowed_tools=e),la(b,()=>$.form.disallowed_tools,e=>$.form.disallowed_tools=e),la(S,()=>$.form.user_paths,e=>$.form.user_paths=e),la(w,()=>$.form.tool_timeout_seconds,e=>$.form.tool_timeout_seconds=e),V(e,n)},$$slots:{headerHint:!0,default:!0}})}k()}Br([`input`,`click`]);var vH=B(`Config`),yH=B(`
          `),bH=B(`
          `),xH=B(`
          NameTransportEndpointStatusToolsEnabledActions
          `);function SH(e,t){O(t,!0);function n(e){return vw(e,e=>lu.formatTimestamp(e))}var r=xH(),i=P(r),a=I(P(i));W(a,21,()=>$.filtered,e=>hw(e),(e,t)=>{var r=bH(),i=P(r),a=P(i),o=P(a,!0);D(a);var s=I(a,2),c=e=>{V(e,vH())};U(s,e=>{R(t).managed&&e(c)});var l=I(s,2),u=P(l,!0);D(l),D(i);var d=I(i),f=P(d),p=P(f,!0);D(f),D(d);var m=I(d),h=P(m,!0);D(m);var g=I(m),_=P(g),v=P(_,!0);D(_);var y=I(_,2),b=e=>{var n=yH(),r=P(n,!0);D(n),L(()=>H(r,R(t).last_error)),V(e,n)},x=A(()=>gw(R(t))===`degraded`&&R(t).last_error);U(y,e=>{R(x)&&e(b)}),D(g);var S=I(g),C=P(S),w=P(C,!0);D(C);var T=I(C,2),E=P(T,!0);D(T),D(S);var ee=I(S),te=P(ee),ne=P(te,!0);D(te),D(ee);var re=I(ee),ie=P(re),ae=P(ie),oe=e=>{{let n=A(()=>`Edit MCP server `+R(t).name);yO(e,{get label(){return R(n)},class:`table-icon-btn`,onclick:()=>$.openEdit(R(t)),children:(e,t)=>{J(e,{get icon(){return nl},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(ae,e=>{R(t).managed||e(oe)});var se=I(ae,2);{let e=A(()=>`Inspect catalog of MCP server `+R(t).name);yO(se,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>$.openCatalog(R(t)),children:(e,t)=>{J(e,{get icon(){return Yc},class:`form-action-icon`})},$$slots:{default:!0}})}var ce=I(se,2);{let e=A(()=>($.reconnectingName===hw(R(t))?`Reconnecting MCP server `:`Reconnect MCP server `)+R(t).name),n=A(()=>$.reconnectingName===hw(R(t)));yO(ce,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>$.reconnectServer(R(t)),get disabled(){return R(n)},children:(e,t)=>{J(e,{get icon(){return ol},class:`form-action-icon`})},$$slots:{default:!0}})}var le=I(ce,2),ue=e=>{{let n=A(()=>($.deletingName===hw(R(t))?`Deleting MCP server `:`Delete MCP server `)+R(t).name),r=A(()=>$.deletingName===hw(R(t)));yO(e,{get label(){return R(n)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>$.deleteServer(R(t)),get disabled(){return R(r)},children:(e,t)=>{J(e,{get icon(){return Ol},class:`table-icon-svg`})},$$slots:{default:!0}})}};U(le,e=>{R(t).managed||e(ue)}),D(ie),D(re),D(r),L((e,n,r,i,a,s,c,l)=>{H(o,R(t).name),H(u,e),H(p,R(t).transport||`http`),K(m,`title`,n),H(h,r),G(_,1,`audit-status-badge ${i??``}`,`svelte-ah8nrt`),K(_,`title`,a),H(v,s),H(w,c),H(E,l),G(te,1,Ni([`auth-key-status-badge`,R(t).enabled?`auth-key-status-active`:`auth-key-status-inactive`])),H(ne,R(t).enabled?`Enabled`:`Disabled`)},[()=>hw(R(t)),()=>yw(R(t)),()=>yw(R(t)),()=>_w(R(t)),()=>n(R(t)),()=>gw(R(t)),()=>cd(R(t).tool_count||0),()=>bw(R(t))]),V(e,r)}),D(a),D(i),D(r),V(e,r),k()}var CH=B(`

          MCP Servers

          `),wH=B(``),TH=B(`
          MCP server management is unavailable.
          `),EH=B(``),DH=B(`
          `),OH=B(`

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

          `),kH=B(`

          No MCP servers match your filter.

          `),AH=B(`
          `);function jH(e,t){O(t,!0),On(()=>{Y.refreshTick,Bl.page===`mcp-servers`&&$.fetchServers()});var n=AH(),r=P(n),i=P(r);YT(P(i),{copyId:`mcp-servers-help-copy`,label:`MCP servers help`,text:`Upstream Model Context Protocol servers whose tools, prompts, and resources the gateway exposes to clients. Servers added here connect over HTTP or SSE; stdio servers and rows marked Config are declared in config.yaml under mcp.servers and are read-only in the dashboard. Saved header values are masked in API and dashboard responses.`,title:e=>{V(e,CH())},$$slots:{title:!0}}),D(i);var a=I(i,2),o=P(a),s=e=>{var t=wH();J(P(t),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(t),L(()=>t.disabled=$.formSubmitting),z(`click`,t,()=>$.openCreate()),V(e,t)};U(o,e=>{$.available&&!Y.authError&&e(s)}),D(a),D(r);var c=I(r,2),l=e=>{V(e,TH())};U(c,e=>{!$.available&&!Y.authError&&e(l)});var u=I(c,2),d=e=>{var t=EH(),n=P(t,!0);D(t),L(()=>H(n,$.error)),V(e,t)};U(u,e=>{$.error&&!Y.authError&&!$.formOpen&&e(d)});var f=I(u,2),p=e=>{_O(e,{label:`Loading MCP servers...`})};U(f,e=>{$.loading&&!Y.authError&&e(p)});var m=I(f,2),h=e=>{var t=DH(),n=P(t);SD(P(n),{id:`mcp-server-filter`,placeholder:`Filter by name, slug, URL, transport, or status...`,label:`Filter MCP servers by name, slug, URL, transport, or status`,get value(){return $.filter},set value(e){$.filter=e}}),D(n),D(t),V(e,t)};U(m,e=>{($.servers.length>0||$.filter)&&$.available&&!Y.authError&&e(h)});var g=I(m,2);_H(g,{});var _=I(g,2);sH(_,{});var v=I(_,2),y=e=>{SH(e,{})};U(v,e=>{$.filtered.length>0&&$.available&&!Y.authError&&e(y)});var b=I(v,2),x=e=>{V(e,OH())};U(b,e=>{$.servers.length===0&&!$.filter&&!$.loading&&!Y.authError&&!$.error&&$.available&&e(x)});var S=I(b,2),C=e=>{V(e,kH())};U(S,e=>{$.servers.length>0&&$.filtered.length===0&&$.filter&&!$.loading&&!Y.authError&&$.available&&e(C)}),D(n),V(e,n),k()}Br([`click`]);var MH=`api_keys`,NH=`session_sticky_keys`,PH=`base_url`,FH=`service_account_json`,IH=`models`,LH={[MH]:{label:`API Keys`,control:`keys`,hint:`Identified sessions stay on one key by default, improving provider prompt-cache hits. Saved values are shown as ***********; leave the asterisks unchanged to keep the stored key.`},[NH]:{label:`Session-sticky API keys`,control:`checkbox`,hint:`Keep each identified conversation on one API key to preserve provider prompt-cache affinity. Turn off to rotate keys round-robin on every request.`},[PH]:{label:`Base URL`,control:`text`},api_version:{label:`API Version`,control:`text`,placeholder:`e.g. 2024-10-01-preview`,hint:`Leave empty for the provider default. Realtime endpoints may need a newer version.`},backend:{label:`Backend`,control:`select`,hint:`Which Google surface to call. Vertex authenticates with Google credentials instead of an API key.`},auth_type:{label:`Auth Type`,control:`select`,hint:`How to obtain Google credentials. Leave on the default to use Application Default Credentials.`},api_mode:{label:`API Mode`,control:`select`,hint:`Which request shape to send upstream.`},vertex_project:{label:`Vertex Project`,control:`text`,placeholder:`my-gcp-project`},vertex_location:{label:`Vertex Location`,control:`text`,placeholder:`us-central1`},service_account_file:{label:`Service Account File`,control:`text`,placeholder:`/path/to/service-account.json`,hint:`Path readable by the gateway process.`},[FH]:{label:`Service Account JSON`,control:`textarea`,placeholder:`Paste service account JSON`,hint:`Saved values are shown as ***********; leave the asterisks unchanged to keep the stored value, or clear it to remove.`},service_account_json_base64:{label:`Service Account JSON (base64)`,control:`text`,hint:`Saved values are shown as ***********; leave the asterisks unchanged to keep the stored value.`},gcp_scope:{label:`GCP Scope`,control:`text`,placeholder:`https://www.googleapis.com/auth/cloud-platform`},[IH]:{label:`Models (comma-separated)`,control:`text`,placeholder:`gpt-4o, gpt-4o-mini`,hint:`Leave empty to auto-discover models from the provider's /models endpoint where supported.`}};function RH(e){return LH[e]||{label:String(e||``).split(`_`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),control:`text`}}function zH(){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 BH(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 VH(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 HH(e,t){let n=String(t||``).trim();return n&&(Array.isArray(e)?e:[]).find(e=>String(e&&e.type||``).trim()===n)||null}function UH(e,t){let n=e&&Array.isArray(e.fields)&&e.fields.length>0?e.fields:Object.keys(LH).map(e=>({name:e,advanced:e!==MH})),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={...RH(t),name:t,required:!!(e&&e.required),options:Array.isArray(e&&e.options)?e.options:[]};t===`base_url`&&r&&(n.placeholder=r,n.hint=`Defaults to `+r),n.options.length>0&&(n.control=`select`),(e&&e.advanced?a:i).push(n)}return{primary:i,advanced:a}}var WH=new Set([`name`,`type`,`enabled`]);function GH(e,t){let n=new Set([...t.primary||[],...t.advanced||[]].map(e=>e.name)),r=zH(),i={...e};for(let e of Object.keys(r))!WH.has(e)&&!n.has(e)&&(i[e]=r[e]);return i}function KH(e){let t=Array.isArray(e&&e.api_keys)?e.api_keys.length:0;return t>0?t+` key`+(t===1?``:`s`):String(e&&e.service_account_json||``).trim()||String(e&&e.service_account_json_base64||``).trim()||String(e&&e.service_account_file||``).trim()?`service account`:String(e&&e.vertex_project||``).trim()?`ADC`:`keyless`}function qH(e){let t=Array.isArray(e&&e.models)?e.models:[];return t.length===0?`auto-discovered`:t.length+` model`+(t.length===1?``:`s`)}function JH(e){return(Array.isArray(e)?e:[]).map(e=>({value:String(e||``)}))}function YH(e){return(Array.isArray(e)?e:[]).map(e=>String(e&&e.value||``))}function XH(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 ZH(e){return{name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),api_keys:JH(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 QH(e){let t=String(e||``).trim();return t.length>=3&&/^\*+$/.test(t)}function $H(e,t,n,r){let i={},a=String(e&&e.name||``).trim();String(e&&e.type||``).trim()||(i.type=`Select a provider type.`),a?a.includes(`/`)?i.name=`Name cannot contain '/' — it separates the provider from the model.`:t===`create`&&(Array.isArray(n)?n:[]).some(e=>String(e&&e.name||``).trim()===a)&&(i.name=`Provider "`+a+`" already exists.`):i.name=`Name is required.`;let{primary:o,advanced:s}=UH(r);for(let t of[...o,...s]){let n=eU(e,t);n&&(i[t.name]=n)}return i}function eU(e,t){if(t.name===`api_keys`){let n=YH(e&&e.api_keys);return t.required&&!n.some(e=>e.trim())?`At least one API key is required for this provider type.`:n.some(e=>!e.trim())?`Remove the empty row instead of leaving a key blank.`:``}let n=String(e&&e[t.name]||``).trim();if(t.required&&!n)return t.label+` is required for this provider type.`;if(!n)return``;if(t.name===`base_url`&&!n.includes(`://`)&&/[./]/.test(n))return`Include the scheme, e.g. https://`+n;if(t.name===`service_account_json`&&!QH(n))try{JSON.parse(n)}catch{return`Paste the service account JSON file's contents — this is not valid JSON.`}return``}function tU(e,t){let n={name:String(e&&e.name||``).trim(),type:String(e&&e.type||``).trim(),enabled:!!(e&&e.enabled)},{primary:r,advanced:i}=UH(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]=nU(e,t.name));for(let t of Object.keys(LH)){if(o.has(t)||t===`session_sticky_keys`)continue;let r=nU(e,t);(Array.isArray(r)?r.length>0:String(r).trim()!==``)&&(n[t]=r)}return n}function nU(e,t){switch(t){case MH:return YH(e&&e.api_keys);case IH:return od(e&&e.models);case NH:return!!(e&&e.session_sticky_keys);case FH:return e&&e.service_account_json||``;default:return String(e&&e[t]||``).trim()}}var rU=new class{#e=j(N([]));get rows(){return R(this.#e)}set rows(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get formOpen(){return R(this.#a)}set formOpen(e){M(this.#a,e,!0)}#o=j(!1);get formSubmitting(){return R(this.#o)}set formSubmitting(e){M(this.#o,e,!0)}#s=j(`create`);get formMode(){return R(this.#s)}set formMode(e){M(this.#s,e,!0)}#c=j(!1);get advancedOpen(){return R(this.#c)}set advancedOpen(e){M(this.#c,e,!0)}#l=j(N(zH()));get form(){return R(this.#l)}set form(e){M(this.#l,e,!0)}#u=j(N({}));get fieldErrors(){return R(this.#u)}set fieldErrors(e){M(this.#u,e,!0)}#d=j(``);get focusField(){return R(this.#d)}set focusField(e){M(this.#d,e,!0)}#f=j(``);get deletingName(){return R(this.#f)}set deletingName(e){M(this.#f,e,!0)}#p=j(!1);get deleteSubmitting(){return R(this.#p)}set deleteSubmitting(e){M(this.#p,e,!0)}#m=j(N([]));get types(){return R(this.#m)}set types(e){M(this.#m,e,!0)}#h=j(!1);get typesLoaded(){return R(this.#h)}set typesLoaded(e){M(this.#h,e,!0)}#g=null;get filteredRows(){return BH(this.rows,this.filter)}get schema(){return HH(this.types,this.form.type)}get formFields(){if(!String(this.form.type||``).trim())return{primary:[],advanced:[]};let e=this.schema;return UH(e,e&&e.default_base_url)}async fetchTypes(){let e=await bO(`/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 bO(`/admin/provider-credentials`,{label:`provider credentials`,errorFallback:`Failed to load provider credentials.`,unavailableStatuses:[503,404],options:{signal:e.signal}});if(t.status===`stale`||e.signal.aborted)return;if(t.status===`unavailable`){this.available=!1,this.rows=[];return}if(t.status===`error`){t.result&&(this.available=!0),this.rows=[],this.error=t.error;return}this.available=!0,this.rows=t.items,this.typesLoaded||await this.fetchTypes()}finally{this.#g===e&&(this.#g=null,this.loading=!1)}}#_(e,t){this.formMode=e,this.form=t,this.advancedOpen=!1,this.error=``,this.fieldErrors={},this.focusField=``}openCreate(){this.#_(`create`,zH()),this.formOpen=!0,this.typesLoaded||this.fetchTypes()}openEdit(e){!e||e.managed||(this.#_(`edit`,ZH(e)),this.formOpen=!0,this.typesLoaded||this.fetchTypes())}closeForm(){this.formOpen=!1,this.#_(`create`,zH())}selectType(){this.fieldErrors={};let e=this.formFields;this.formMode===`create`&&(this.form=GH(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=uu(e,`Failed to save provider credential.`),n=String(e&&e.error&&typeof e.error==`object`&&e.error.param||``).trim();if(n&&this.#y(n)){this.fieldErrors={...this.fieldErrors,[n]:t},this.error=``,this.#b();return}this.error=t}#y(e){if(e===`name`||e===`type`)return!0;let{primary:t,advanced:n}=this.formFields;return[...t,...n].some(t=>t.name===e)}#b(){let e=Object.keys(this.fieldErrors);if(e.length===0)return;let{primary:t,advanced:n}=this.formFields;n.some(t=>e.includes(t.name))&&(this.advancedOpen=!0);let r=[`type`,`name`,...t.map(e=>e.name),...n.map(e=>e.name)];this.focusField=r.find(t=>e.includes(t))||e[0]}#x(){Id.fetchModels(),Id.fetchCategories()}async submitForm(){let e=this.schema,t=$H(this.form,this.formMode,this.rows,e);if(Object.keys(t).length>0){this.fieldErrors=t,this.error=``,this.#b();return}let n=tU(this.form,e);this.error=``,this.fieldErrors={},this.formSubmitting=!0;try{let e=await xO(`/admin/provider-credentials`,`PUT`,n,{label:`save provider credential`,errorFallback:`Failed to save provider credential.`,unavailableMessage:`Provider credential management is unavailable.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.error=e.error;return}if(e.status===`error`){e.result&&e.result.status!==401?this.#v(e.result.data):this.error=e.error;return}ed.success(`Provider "`+n.name+`" saved.`),this.closeForm(),this.#x(),this.fetchPage()}finally{this.formSubmitting=!1}}async performDelete(e){this.deleteSubmitting=!0,this.deletingName=e;try{let t=await xO(`/admin/provider-credentials/`+encodeURIComponent(e),`DELETE`,void 0,{label:`delete provider credential`,errorFallback:`Failed to delete provider credential.`,unavailableMessage:`Provider credential management is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,zu.error=t.error;return}if(t.status===`error`){zu.error=t.error;return}ed.success(`Provider "`+e+`" deleted.`),zu.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||zu.open({title:`Delete Provider`,titleId:`providerCredentialDeleteDialogTitle`,inputId:`provider-credential-delete-confirmation`,message:`Type "`+t+`" to permanently delete this provider credential. Requests routed to it will fail until it is reconfigured.`,requiredText:t,confirmLabel:`Delete Provider`,icon:xl,dialogClass:`budget-reset-dialog`,onConfirm:()=>this.performDelete(t)})}},iU=B(`Config`),aU=B(` `,1),oU=B(`
          `),sU=B(`
          NameTypeBase URLAuthModelsEnabledUpdatedActions
          `);function cU(e,t){O(t,!0);var n=sU(),r=P(n),i=I(P(r));W(i,21,()=>rU.filteredRows,e=>e.name,(e,t)=>{var n=oU(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=e=>{V(e,iU())};U(o,e=>{R(t).managed&&e(s)}),D(r);var c=I(r),l=P(c),u=P(l,!0);D(l),D(c);var d=I(c),f=P(d,!0);D(d);var p=I(d),m=P(p,!0);D(p);var h=I(p),g=P(h,!0);D(h);var _=I(h),v=P(_);let y;var b=P(v,!0);D(v),D(_);var x=I(_),S=P(x,!0);D(x);var C=I(x),w=P(C),T=P(w),E=e=>{var n=aU(),r=F(n);{let e=A(()=>`Edit provider `+R(t).name);yO(r,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>rU.openEdit(R(t)),children:(e,t)=>{J(e,{get icon(){return nl},class:`table-icon-svg`})},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>(rU.deletingName===R(t).name?`Deleting provider `:`Delete provider `)+R(t).name),n=A(()=>rU.deletingName===R(t).name);yO(i,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>rU.requestDelete(R(t).name),get disabled(){return R(n)},children:(e,t)=>{J(e,{get icon(){return Ol},class:`table-icon-svg`})},$$slots:{default:!0}})}V(e,n)};U(T,e=>{R(t).managed||e(E)}),D(w),D(C),D(n),L((e,n,r)=>{H(a,R(t).name),H(u,R(t).type),K(d,`title`,R(t).base_url||``),H(f,R(t).base_url||`—`),H(m,e),H(g,n),y=G(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":R(t).enabled,"auth-key-status-inactive":!R(t).enabled}),H(b,R(t).enabled?`Enabled`:`Disabled`),H(S,r)},[()=>KH(R(t)),()=>qH(R(t)),()=>lu.formatTimestamp(R(t).updated_at)]),V(e,n)}),D(i),D(r),D(n),V(e,n),k()}var lU=B(``),uU=B(`
          `),dU=B(`
          `,1),fU=B(``),pU=B(``),mU=B(``),hU=B(``),gU=B(``),_U=B(` `),vU=B(` `),yU=B(`
          `);function bU(e,t){O(t,!0);let n=A(()=>`provider-credential-`+t.field.name),r=A(()=>rU.fieldErrors[t.field.name]||``),i=A(()=>R(r)?R(n)+`-error`:t.field.hint?R(n)+`-hint`:void 0),a=A(()=>{let e=String(rU.form[t.field.name]||``).trim();return!e||t.field.options.includes(e)?t.field.options:[...t.field.options,e]});function o(){rU.clearFieldError(t.field.name)}var s=yU(),c=P(s),l=P(c),u=I(l),d=e=>{V(e,lU())};U(u,e=>{t.field.required&&e(d)}),D(c);var f=I(c,2),p=e=>{var t=dU(),a=F(t);W(a,21,()=>rU.form.api_keys,ii,(e,t,a)=>{var s=uU(),c=P(s);ea(c),K(c,`aria-label`,`API key `+(a+1)),yO(I(c,2),{label:`Remove API key `+(a+1),class:`table-action-btn-danger table-icon-btn vm-target-remove`,onclick:()=>rU.removeApiKeyRow(a),children:(e,t)=>{J(e,{get icon(){return xl},class:`table-icon-svg`})},$$slots:{default:!0}}),D(s),L(()=>{K(c,`id`,a===0?R(n):R(n)+`-`+a),K(c,`aria-invalid`,R(r)?`true`:void 0),K(c,`aria-describedby`,a===0?R(i):void 0)}),z(`input`,c,o),la(c,()=>R(t).value,e=>R(t).value=e),V(e,s)}),D(a);var s=I(a,2),c=P(s);J(P(c),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(c),D(s),L(()=>K(c,`id`,rU.form.api_keys.length===0?R(n):void 0)),z(`click`,c,()=>rU.addApiKeyRow()),V(e,t)},m=e=>{var s=pU(),c=P(s);c.value=c.__value=``,W(I(c),16,()=>R(a),e=>e,(e,t)=>{var n=fU(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(s),L(()=>{K(s,`id`,R(n)),K(s,`aria-invalid`,R(r)?`true`:void 0),K(s,`aria-describedby`,R(i))}),z(`change`,s,o),Ui(s,()=>rU.form[t.field.name],e=>rU.form[t.field.name]=e),V(e,s)},h=e=>{var a=mU();ea(a),L(()=>{K(a,`id`,R(n)),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`change`,a,o),ua(a,()=>rU.form[t.field.name],e=>rU.form[t.field.name]=e),V(e,a)},g=e=>{var a=hU();ut(a),L(()=>{K(a,`id`,R(n)),K(a,`placeholder`,t.field.placeholder||``),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`input`,a,o),la(a,()=>rU.form[t.field.name],e=>rU.form[t.field.name]=e),V(e,a)},_=e=>{var a=gU();ea(a),L(()=>{K(a,`id`,R(n)),K(a,`placeholder`,t.field.placeholder||``),K(a,`aria-invalid`,R(r)?`true`:void 0),K(a,`aria-describedby`,R(i))}),z(`input`,a,o),la(a,()=>rU.form[t.field.name],e=>rU.form[t.field.name]=e),V(e,a)};U(f,e=>{t.field.control===`keys`?e(p):t.field.control===`select`?e(m,1):t.field.control===`checkbox`?e(h,2):t.field.control===`textarea`?e(g,3):e(_,-1)});var v=I(f,2),y=e=>{var t=_U(),i=P(t,!0);D(t),L(()=>{K(t,`id`,R(n)+`-error`),H(i,R(r))}),V(e,t)},b=e=>{var r=vU(),i=P(r,!0);D(r),L(()=>{K(r,`id`,R(n)+`-hint`),H(i,t.field.hint)}),V(e,r)};U(v,e=>{R(r)?e(y):t.field.hint&&e(b,1)}),D(s),L(()=>{K(c,`for`,R(n)),H(l,`${t.field.label??``} `)}),V(e,s),k()}Br([`input`,`click`,`change`]);var xU=B(`

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

          `),SU=B(``),CU=B(` `),wU=B(`Determines which fields the gateway uses to build requests.`),TU=B(` `),EU=B(`Suggested from the selected type; used to route requests to this provider instance and editable before saving.`),DU=B(`Immutable once created.`),OU=B(`

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

          `),kU=B(`
          Advanced settings
          `),AU=B(`
          `,1);function jU(e,t){O(t,!0);let n=A(()=>VH(rU.types,rU.form.type)),r=A(()=>rU.formFields),i=A(()=>rU.fieldErrors.name||``),a=A(()=>rU.fieldErrors.type||``);function o(){rU.selectType(),rU.formMode===`create`&&(rU.form.name=XH(rU.rows,rU.form.type))}On(()=>{let e=rU.focusField;if(!e)return;rU.focusField=``;let t=document.getElementById(`provider-credential-`+e);t&&(t.scrollIntoView({block:`center`}),t.focus({preventScroll:!0}))});{let t=e=>{V(e,xU())},s=A(()=>rU.formMode===`edit`?`Edit Provider`:`Add Provider`);Ck(e,{get open(){return rU.formOpen},get title(){return R(s)},ariaLabel:`Provider credential editor`,get error(){return rU.error},get submitting(){return rU.formSubmitting},novalidate:!0,onclose:()=>rU.closeForm(),onsubmit:()=>rU.submitForm(),headerHint:t,children:(e,t)=>{var s=AU(),c=F(s),l=I(P(c),2),u=P(l);u.value=u.__value=``,W(I(u),16,()=>R(n),e=>e,(e,t)=>{var n=SU(),r=P(n,!0);D(n);var i={};L(()=>{H(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),V(e,n)}),D(l);var d=I(l,2),f=e=>{var t=CU(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)},p=e=>{V(e,wU())};U(d,e=>{R(a)?e(f):e(p,-1)}),D(c);var m=I(c,2),h=I(P(m),2);ea(h);var g=I(h,2),_=e=>{var t=TU(),n=P(t,!0);D(t),L(()=>H(n,R(i))),V(e,t)},v=e=>{V(e,EU())},y=e=>{V(e,DU())};U(g,e=>{R(i)?e(_):rU.formMode===`create`?e(v,1):e(y,-1)}),D(m);var b=I(m,2),x=e=>{V(e,OU())};U(b,e=>{rU.form.type||e(x)});var S=I(b,2);W(S,17,()=>R(r).primary,e=>e.name,(e,t)=>{bU(e,{get field(){return R(t)}})});var C=I(S,2),w=P(C);TN(P(w),{get enabled(){return rU.form.enabled},label:`provider`,onclick:()=>rU.form.enabled=!rU.form.enabled}),D(w),D(C);var T=I(C,2),E=e=>{var t=kU(),n=P(t),i=P(n),a=I(P(i),2),o=P(a,!0);D(a),D(i),D(n);var s=I(n,2);W(s,21,()=>R(r).advanced,e=>e.name,(e,t)=>{bU(e,{get field(){return R(t)}})}),D(s),D(t),L(e=>{t.open=rU.advancedOpen,H(o,e)},[()=>R(r).advanced.map(e=>e.label).join(`, `)]),zr(`toggle`,t,e=>rU.advancedOpen=e.currentTarget.open),V(e,t)};U(T,e=>{R(r).advanced.length>0&&e(E)}),L(()=>{l.disabled=rU.formMode===`edit`,K(l,`aria-invalid`,R(a)?`true`:void 0),K(l,`aria-describedby`,R(a)?`provider-credential-type-error`:`provider-credential-type-hint`),h.disabled=rU.formMode===`edit`,K(h,`aria-invalid`,R(i)?`true`:void 0),K(h,`aria-describedby`,R(i)?`provider-credential-name-error`:`provider-credential-name-hint`)}),z(`change`,l,o),Ui(l,()=>rU.form.type,e=>rU.form.type=e),z(`input`,h,()=>rU.clearFieldError(`name`)),la(h,()=>rU.form.name,e=>rU.form.name=e),V(e,s)},$$slots:{headerHint:!0,default:!0}})}k()}Br([`change`,`input`]);var MU=B(`

          Providers

          `),NU=B(``),PU=B(`
          Provider credential management is unavailable.
          `),FU=B(``),IU=B(`
          `),LU=B(`

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

          `),RU=B(`

          No providers match your filter.

          `),zU=B(`
          `);function BU(e,t){O(t,!0),On(()=>{Y.refreshTick,Bl.page===`providers-config`&&rU.fetchPage()});var n=zU(),r=P(n),i=P(r);YT(P(i),{copyId:`providers-config-help-copy`,label:`model providers help`,title:e=>{V(e,MU())},help:e=>{Ve(),V(e,Yr(`Configure LLM provider credentials here instead of setting API keys as - environment variables. Providers declared in config.yaml or env vars - are read-only (Config badge) and cannot be edited or deleted from the - dashboard. Keys are masked after saving.`))},$$slots:{title:!0,help:!0}}),D(i);var a=I(i,2),o=P(a),s=e=>{var t=NU();J(P(t),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(t),L(()=>t.disabled=rU.formSubmitting),z(`click`,t,()=>rU.openCreate()),V(e,t)};U(o,e=>{rU.available&&!Y.needsAuth&&e(s)}),D(a),D(r);var c=I(r,2),l=e=>{V(e,PU())};U(c,e=>{!rU.available&&!Y.needsAuth&&e(l)});var u=I(c,2),d=e=>{var t=FU(),n=P(t,!0);D(t),L(()=>H(n,rU.error)),V(e,t)};U(u,e=>{rU.error&&!Y.needsAuth&&!rU.formOpen&&e(d)});var f=I(u,2),p=e=>{_O(e,{label:`Loading providers...`})};U(f,e=>{rU.loading&&!Y.needsAuth&&e(p)});var m=I(f,2),h=e=>{var t=IU(),n=P(t);SD(P(n),{id:`provider-credential-filter`,placeholder:`Filter by name, type, or base URL...`,label:`Filter providers by name, type, or base URL`,get value(){return rU.filter},set value(e){rU.filter=e}}),D(n),D(t),V(e,t)};U(m,e=>{(rU.rows.length>0||rU.filter)&&rU.available&&!Y.needsAuth&&e(h)});var g=I(m,2);jU(g,{});var _=I(g,2),v=e=>{cU(e,{})};U(_,e=>{rU.filteredRows.length>0&&rU.available&&!Y.needsAuth&&e(v)});var y=I(_,2),b=e=>{V(e,LU())};U(y,e=>{rU.rows.length===0&&!rU.filter&&!rU.loading&&!Y.needsAuth&&!rU.error&&rU.available&&e(b)});var x=I(y,2),S=e=>{V(e,RU())};U(x,e=>{rU.rows.length>0&&rU.filteredRows.length===0&&rU.filter&&!rU.loading&&!Y.needsAuth&&rU.available&&e(S)}),D(n),V(e,n),k()}Br([`click`]);function VU(){return{name:``,description:``,user_path:``,labels:``,dashboard_access:!1,expires_at:``}}function HU(e){let t=[];for(let n of String(e||``).split(`,`)){let e=n.trim();e&&!t.includes(e)&&t.push(e)}return t}function UU(e){let t=String(e||``).trim();if(!t)return``;let n=t.startsWith(`/`)?t:`/`+t;for(let e of n.split(`/`)){let t=String(e||``).trim();if(t){if(t===`.`||t===`..`)return`User path cannot contain "." or ".." segments.`;if(t.includes(`:`))return`User path cannot contain ":" segments.`}}return``}function WU(e){if(UU(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 GU(e){let t=e||{},n=String(t.name||``).trim();if(!n)return{error:`Name is required.`};let r=UU(t.user_path);if(r)return{error:r};let i=WU(t.user_path),a=HU(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 KU(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 qU(e){return e?!!e.deactivated_at||e.enabled===!1:!1}function JU(e,t=Date.now()){return!e||e.active===!1||qU(e)?!1:!KU(e,t)}function YU(e){return[e.name,e.description,e.user_path,e.redacted_value,...e.labels||[]].filter(Boolean).join(` `).toLowerCase()}function XU(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&&!JU(e,i)?!1:!a||YU(e).includes(a))}function ZU(e,t){return qU(e)?2:+!JU(e,t)}function QU(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 $U(e){let t=Date.parse(e&&e.deactivated_at||``);return Number.isFinite(t)?t:-1/0}function eW(e,t=Date.now()){return(Array.isArray(e)?e.slice():[]).sort((e,n)=>{let r=ZU(e,t),i=ZU(n,t);if(r!==i)return r-i;let[a,o]=r===2?[$U(e),$U(n)]:[QU(e),QU(n)];return a===o?String(e.name||``).localeCompare(String(n.name||``)):a>o?-1:1})}function tW(e,t=Date.now()){return(Array.isArray(e)?e:[]).reduce((e,n)=>e+ +!JU(n,t),0)}function nW(){return{open:!1,id:``,name:``,value:``,submitting:!1,error:``}}var rW=new class{#e=j(N([]));get keys(){return R(this.#e)}set keys(e){M(this.#e,e,!0)}#t=j(!0);get available(){return R(this.#t)}set available(e){M(this.#t,e,!0)}#n=j(!1);get loading(){return R(this.#n)}set loading(e){M(this.#n,e,!0)}#r=j(``);get error(){return R(this.#r)}set error(e){M(this.#r,e,!0)}#i=j(``);get filter(){return R(this.#i)}set filter(e){M(this.#i,e,!0)}#a=j(!1);get showInactive(){return R(this.#a)}set showInactive(e){M(this.#a,e,!0)}#o=A(()=>eW(XU(this.keys,{query:this.filter,showInactive:this.showInactive})));get visibleKeys(){return R(this.#o)}set visibleKeys(e){M(this.#o,e)}#s=A(()=>tW(this.keys));get inactiveCount(){return R(this.#s)}set inactiveCount(e){M(this.#s,e)}#c=j(!1);get formOpen(){return R(this.#c)}set formOpen(e){M(this.#c,e,!0)}#l=j(!1);get formSubmitting(){return R(this.#l)}set formSubmitting(e){M(this.#l,e,!0)}#u=j(``);get issuedValue(){return R(this.#u)}set issuedValue(e){M(this.#u,e,!0)}#d=j(``);get deactivatingID(){return R(this.#d)}set deactivatingID(e){M(this.#d,e,!0)}#f=j(``);get dashboardAccessID(){return R(this.#f)}set dashboardAccessID(e){M(this.#f,e,!0)}#p=j(N(VU()));get form(){return R(this.#p)}set form(e){M(this.#p,e,!0)}#m=j(N(nW()));get labelsEditor(){return R(this.#m)}set labelsEditor(e){M(this.#m,e,!0)}copyState=CF({logPrefix:`Failed to copy auth key:`});async fetchKeys(){this.loading=!0,this.error=``;try{let e=await bO(`/admin/auth-keys`,{label:`auth keys`,errorFallback:`Unable to load API keys.`});if(e.status===`stale`)return;if(e.status===`unavailable`){this.available=!1,this.keys=[];return}if(e.status===`error`){e.result&&(this.available=!0),this.error=e.error;return}this.available=!0,this.keys=e.items}finally{this.loading=!1}}openForm(){this.formSubmitting||this.formOpen||(this.formOpen=!0,this.error=``,this.issuedValue||(this.copyState.reset(),this.form=VU()))}closeForm(){this.formOpen&&(this.formOpen=!1,this.error=``,this.copyState.reset(),!this.formSubmitting&&!this.issuedValue&&(this.form=VU()))}copyIssuedValue(){return this.copyState.copy(this.issuedValue)}dismissIssuedKey(){this.issuedValue=``,this.copyState.reset(),this.form=VU()}async submitForm(){let e=GU(this.form);if(e.error){this.error=e.error;return}this.error=``,this.formSubmitting=!0;try{let t=await xO(`/admin/auth-keys`,`POST`,e.payload,{label:`create API key`,errorFallback:`Failed to create API key.`,unavailableMessage:`Auth keys feature is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,this.error=t.error;return}if(t.status===`error`){this.error=t.error,t.result&&t.result.status!==401&&console.error(`Failed to create API key:`,t.result.status,this.error);return}let n=t.result.data||{};this.issuedValue=n.value||``,this.formOpen=!0,this.copyState.reset(),this.form=VU(),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=nW())}async submitLabelsEditor(){let e=this.labelsEditor;if(!e.open||e.submitting||!e.id)return;e.submitting=!0,e.error=``;let t={labels:HU(e.value)};try{let n=await xO(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/labels`,`PUT`,t,{label:`update API key labels`,errorFallback:`Failed to update labels.`,unavailableMessage:`Auth keys feature is unavailable.`});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,e.error=n.error;return}if(n.status===`error`){e.error=n.error,n.result&&n.result.status!==401&&console.error(`Failed to update auth key labels:`,n.result.status,e.error);return}ed.success(`Labels updated for key "`+e.name+`".`),e.submitting=!1,this.closeLabelsEditor(),this.fetchKeys()}finally{e.submitting=!1}}async toggleDashboardAccess(e){if(!e||!e.active||this.dashboardAccessID)return;let t=!e.dashboard_access;this.dashboardAccessID=e.id;try{let n=await xO(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/dashboard-access`,`PUT`,{dashboard_access:t},{label:`update API key dashboard access`,errorFallback:`Failed to update dashboard access.`,unavailableMessage:`Auth keys feature is unavailable.`});if(n.status===`stale`)return;if(n.status===`unavailable`){this.available=!1,ed.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),ed.error(n.error);return}ed.success(`Dashboard access `+(t?`granted to`:`revoked for`)+` key "`+e.name+`".`),this.fetchKeys()}finally{this.dashboardAccessID=``}}async deactivateKey(e){if(!(!e||!e.active)&&window.confirm(`Deactivate key "`+e.name+`"? This cannot be undone.`)){this.deactivatingID=e.id;try{let t=await xO(`/admin/auth-keys/`+encodeURIComponent(e.id)+`/deactivate`,`POST`,void 0,{label:`deactivate API key`,errorFallback:`Failed to deactivate key.`,unavailableMessage:`Auth keys feature is unavailable.`});if(t.status===`stale`)return;if(t.status===`unavailable`){this.available=!1,ed.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),ed.error(t.error);return}ed.success(`Key "`+e.name+`" deactivated.`),this.fetchKeys()}finally{this.deactivatingID=``}}}},iW=B(``),aW=B(`

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

          `),oW=B(``),sW=B(``),cW=B(``),lW=B(``),uW=B(`
          `);function dW(e,t){O(t,!0);{let t=A(()=>rW.issuedValue?``:rW.error),n=A(()=>rW.issuedValue?`Done, I’ve stored it`:`Create API Key`),r=A(()=>rW.issuedValue?Mc:il);Ck(e,{get open(){return rW.formOpen},title:`Create API Key`,ariaLabel:`API key editor`,get error(){return R(t)},get submitting(){return rW.formSubmitting},get submitLabel(){return R(n)},submittingLabel:`Creating...`,get submitIcon(){return R(r)},cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>rW.closeForm(),onsubmit:()=>rW.issuedValue?rW.dismissIssuedKey():rW.submitForm(),children:(e,t)=>{var n=Xr(),r=F(n),i=e=>{var t=aW(),n=I(P(t),2),r=P(n),i=P(r,!0);D(r),SB(I(r,2),{get state(){return rW.copyState},onclick:()=>rW.copyIssuedValue()}),D(n);var a=I(n,2),o=e=>{V(e,iW())};U(a,e=>{rW.copyState.error&&e(o)}),D(t),L(()=>H(i,rW.issuedValue)),V(e,t)},a=e=>{var t=uW(),n=P(t),r=P(n),i=I(P(r),2);ea(i),D(r);var a=I(r,2),o=I(P(a),2);ea(o),D(a),D(n);var s=I(n,2),c=P(s);YT(c,{copyId:`auth-key-user-path-help-copy`,label:`API key user path help`,title:e=>{V(e,oW())},help:e=>{Ve(),V(e,Yr(`When set, this key overrides the configured user path request - header for audit logging and downstream request context.`))},$$slots:{title:!0,help:!0}});var l=I(c,2);ea(l),D(s);var u=I(s,2),d=P(u);YT(d,{copyId:`auth-key-labels-help-copy`,label:`API key labels help`,title:e=>{V(e,sW())},help:e=>{Ve(),V(e,Yr(`Every request authenticated with this key gets these labels, in - addition to any labels from tagging headers. Labels show up in - usage analytics, the request log, and audit logs.`))},$$slots:{title:!0,help:!0}});var f=I(d,2);ea(f),D(u);var p=I(u,2),m=P(p);YT(m,{copyId:`auth-key-dashboard-access-help-copy`,label:`API key dashboard access help`,title:e=>{V(e,cW())},help:e=>{Ve(),V(e,Yr(`When off, this key is denied the dashboard and every /admin API - endpoint. Model endpoints and GET /v1/usage stay available to - the key. The master key always has dashboard access.`))},$$slots:{title:!0,help:!0}});var h=I(m,2),g=P(h);ea(g),Ve(2),D(h),D(p),Tk(I(p,2),{id:`auth-key-description`,label:`Description (optional)`,children:(e,t)=>{var n=lW();ut(n),la(n,()=>rW.form.description,e=>rW.form.description=e),V(e,n)},$$slots:{default:!0}}),D(t),la(i,()=>rW.form.name,e=>rW.form.name=e),la(o,()=>rW.form.expires_at,e=>rW.form.expires_at=e),la(l,()=>rW.form.user_path,e=>rW.form.user_path=e),la(f,()=>rW.form.labels,e=>rW.form.labels=e),ua(g,()=>rW.form.dashboard_access,e=>rW.form.dashboard_access=e),V(e,t)};U(r,e=>{rW.issuedValue?e(i):e(a,-1)}),V(e,n)},$$slots:{default:!0}})}k()}var fW=B(`

          `),pW=B(`

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

          `,1);function mW(e,t){O(t,!0),Ck(e,{get open(){return rW.labelsEditor.open},title:`Edit Labels`,ariaLabel:`API key labels editor`,get error(){return rW.labelsEditor.error},get submitting(){return rW.labelsEditor.submitting},submitLabel:`Save Labels`,cancel:!1,dialogClass:`auth-key-editor`,onclose:()=>rW.closeLabelsEditor(),onsubmit:()=>rW.submitLabelsEditor(),headerHint:e=>{var t=fW(),n=P(t,!0);D(t),L(()=>H(n,rW.labelsEditor.name)),V(e,t)},children:(e,t)=>{Tk(e,{id:`auth-key-labels-edit`,label:`Labels (comma-separated)`,children:(e,t)=>{var n=pW(),r=F(n);ea(r),Ve(2),la(r,()=>rW.labelsEditor.value,e=>rW.labelsEditor.value=e),V(e,n)},$$slots:{default:!0}})},$$slots:{headerHint:!0,default:!0}}),k()}var hW=B(` `),gW=B(`
          `),_W=B(``),vW=B(`Expired`),yW=B(` `),bW=B(` `,1),xW=B(`Deactivated`),SW=B(`
          `),CW=B(`
          NameDescriptionUser PathLabelsTokenDashboard Access ExpiresCreated
          `);function wW(e,t){O(t,!0);var n=CW(),r=P(n),i=P(r),a=P(i),o=I(P(a),5),s=P(o);J(I(P(s)),{get icon(){return Kc},width:`13`,height:`13`}),D(s),D(o),Ve(3),D(a),D(i);var c=I(i);W(c,21,()=>rW.visibleKeys,e=>e.id,(e,t)=>{var n=SW();let r;var i=P(n),a=P(i,!0);D(i);var o=I(i),s=P(o,!0);D(o);var c=I(o),l=P(c,!0);D(c);var u=I(c),d=P(u),f=e=>{var n=gW();W(n,20,()=>R(t).labels||[],e=>e,(e,t)=>{var n=hW(),r=P(n,!0);D(n),L(e=>{Bi(n,e),H(r,t)},[()=>GS(t)]),V(e,n)}),D(n),V(e,n)},p=e=>{V(e,_W())};U(d,e=>{(R(t).labels||[]).length>0?e(f):e(p,-1)}),D(u);var m=I(u),h=P(m),g=P(h,!0);D(h),D(m);var _=I(m),v=P(_);let y;var b=P(v,!0);D(v),D(_);var x=I(_),S=P(x),C=e=>{var n=yW(),r=P(n),i=P(r,!0);D(r);var a=I(r,2),o=e=>{V(e,vW())},s=A(()=>KU(R(t)));U(a,e=>{R(s)&&e(o)}),D(n),L(e=>H(i,e),[()=>hd(R(t).expires_at)]),V(e,n)},w=e=>{V(e,Yr(`—`))};U(S,e=>{R(t).expires_at?e(C):e(w,-1)}),D(x);var T=I(x),E=P(T,!0);D(T);var ee=I(T),te=P(ee),ne=P(te),re=e=>{var n=bW(),r=F(n);{let e=A(()=>(R(t).dashboard_access?`Revoke dashboard access for API key `:`Grant dashboard access to API key `)+R(t).name),n=A(()=>!!rW.dashboardAccessID);yO(r,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>rW.toggleDashboardAccess(R(t)),get disabled(){return R(n)},children:(e,n)=>{{let n=A(()=>R(t).dashboard_access?hl:ml);J(e,{get icon(){return R(n)},class:`table-icon-svg`})}},$$slots:{default:!0}})}var i=I(r,2);{let e=A(()=>`Edit labels for API key `+R(t).name);yO(i,{get label(){return R(e)},class:`table-icon-btn`,onclick:()=>rW.openLabelsEditor(R(t)),children:(e,t)=>{J(e,{get icon(){return nl},class:`table-icon-svg`})},$$slots:{default:!0}})}var a=I(i,2);{let e=A(()=>(rW.deactivatingID===R(t).id?`Deactivating API key `:`Deactivate API key `)+R(t).name),n=A(()=>rW.deactivatingID===R(t).id);yO(a,{get label(){return R(e)},class:`table-action-btn-danger table-icon-btn`,onclick:()=>rW.deactivateKey(R(t)),get disabled(){return R(n)},children:(e,t)=>{J(e,{get icon(){return al},class:`table-icon-svg`})},$$slots:{default:!0}})}V(e,n)},ie=e=>{var n=xW();L(e=>K(n,`title`,e),[()=>R(t).deactivated_at?`Deactivated on `+gd(R(t).deactivated_at):`Deactivated`]),V(e,n)},ae=A(()=>qU(R(t)));U(ne,e=>{R(t).active?e(re):R(ae)&&e(ie,1)}),D(te),D(ee),D(n),L((e,i,o)=>{r=G(n,1,`svelte-nf0ldb`,null,r,e),H(a,R(t).name),H(s,R(t).description||`—`),H(l,R(t).user_path||`—`),H(g,R(t).redacted_value),y=G(v,1,`auth-key-status-badge`,null,y,{"auth-key-status-active":R(t).dashboard_access,"auth-key-status-inactive":!R(t).dashboard_access}),H(b,R(t).dashboard_access?`Allowed`:`Denied`),K(x,`title`,i),H(E,o)},[()=>({"auth-key-row-deactivated":qU(R(t))}),()=>R(t).expires_at?gd(R(t).expires_at):``,()=>lu.formatTimestamp(R(t).created_at)]),V(e,n)}),D(c),D(r),D(n),V(e,n),k()}var TW=B(``),EW=B(`
          API key management is unavailable.
          `),DW=B(``),OW=B(`

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

          `),kW=B(`
          `),AW=B(`
          `),jW=B(`

          `),MW=B(`

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

          `),NW=B(`
          `);function PW(e,t){O(t,!0),On(()=>{Y.refreshTick,Bl.page===`auth-keys`&&rW.fetchKeys()});var n=NW(),r=P(n),i=I(P(r),2),a=P(i),o=e=>{var t=TW();J(P(t),{get icon(){return il},class:`table-icon-svg`}),Ve(2),D(t),L(()=>t.disabled=rW.formSubmitting),z(`click`,t,()=>{rW.formSubmitting||rW.openForm()}),V(e,t)};U(a,e=>{rW.available&&!Y.authError&&e(o)}),D(i),D(r);var s=I(r,2),c=e=>{V(e,EW())};U(s,e=>{!rW.available&&!Y.authError&&e(c)});var l=I(s,2),u=e=>{var t=DW(),n=P(t,!0);D(t),L(()=>H(n,rW.error)),V(e,t)};U(l,e=>{rW.error&&!Y.authError&&!rW.formOpen&&e(u)});var d=I(l,2),f=e=>{V(e,OW())};U(d,e=>{rW.available&&!Y.authError&&e(f)});var p=I(d,2);dW(p,{});var m=I(p,2);mW(m,{});var h=I(m,2),g=e=>{var t=kW();wT(P(t),{size:18,label:`Loading API keys`}),D(t),V(e,t)};U(h,e=>{rW.loading&&rW.keys.length===0&&e(g)});var _=I(h,2),v=e=>{var t=AW(),n=P(t);SD(P(n),{placeholder:`Filter by name, description, user path, label, or token...`,label:`Filter API keys by name, description, user path, label, or token`,get value(){return rW.filter},set value(e){rW.filter=e}}),D(n);var r=I(n,2),i=P(r),a=P(i);ea(a);var o=I(a,2),s=I(P(o)),c=e=>{var t=Yr();L(()=>H(t,`(${rW.inactiveCount??``})`)),V(e,t)};U(s,e=>{rW.inactiveCount>0&&e(c)}),D(o),D(i),D(r),D(t),ua(a,()=>rW.showInactive,e=>rW.showInactive=e),V(e,t)};U(_,e=>{rW.keys.length>0&&rW.available&&e(v)});var y=I(_,2),b=e=>{wW(e,{})};U(y,e=>{rW.visibleKeys.length>0&&rW.available&&e(b)});var x=I(y,2),S=e=>{var t=jW(),n=P(t);D(t),L(()=>H(n,`No API keys match the current filter.${rW.inactiveCount>0&&!rW.showInactive?` `+rW.inactiveCount+` inactive `+(rW.inactiveCount===1?`key is`:`keys are`)+` hidden.`:``}`)),V(e,t)};U(x,e=>{rW.keys.length>0&&rW.visibleKeys.length===0&&rW.available&&e(S)});var C=I(x,2),w=e=>{V(e,MW())};U(C,e=>{rW.keys.length===0&&!rW.loading&&!Y.authError&&!rW.error&&rW.available&&e(w)}),D(n),V(e,n),k()}Br([`click`]);var FW=B(`

          Timezone

          `),IW=B(``),LW=B(``),RW=B(`
          `,1);function zW(e,t){O(t,!0);function n(){lu.saveOverride(),Y.refresh()}function r(){lu.clearOverride(),Y.refresh()}var i=RW(),a=F(i);YT(P(a),{copyId:`timezone-help-copy`,label:`timezone help`,text:`Day-based analytics, charts, and date filters use your effective timezone. Usage and audit logs keep UTC in the hover title while rendering row timestamps in your effective timezone.`,title:e=>{V(e,FW())},$$slots:{title:!0}}),D(a);var o=I(a,2),s=P(o),c=I(P(s),2),l=P(c),u=P(l);D(l),l.value=l.__value=``,W(I(l),17,()=>lu.options,e=>e.value,(e,t)=>{var n=IW(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(c),D(s),D(o);var d=I(o,2),f=P(d),p=e=>{var t=LW();z(`click`,t,r),V(e,t)};U(f,e=>{lu.override&&e(p)}),D(d),L(e=>H(u,`Automatic (${e??``})`),[()=>lu.detectedTimeZoneLabel()]),zr(`focus`,c,()=>lu.ensureOptions()),z(`change`,c,n),Ui(c,()=>lu.override,e=>lu.override=e),V(e,i),k()}Br([`change`,`click`]);var BW=B(``),VW=B(`

          Failover

          `,1);function HW(e,t){O(t,!0);let n=A(()=>Q.failoverSaving||Q.failoverGenerating||Q.failoverDraftSaving||!Q.failoverAvailable||!Q.failoverEnabled());var r=VW(),i=F(r),a=I(P(i),2),o=P(a),s=P(o);J(s,{get icon(){return El},class:`form-action-icon`});var c=I(s,2),l=P(c,!0);D(c),D(o);var u=I(o,2);J(P(u),{get icon(){return xl},class:`form-action-icon`}),Ve(2),D(u),D(a),D(i);var d=I(i,2),f=P(d),p=e=>{var t=BW(),n=P(t,!0);D(t),L(()=>H(n,Q.failoverError)),V(e,t)};U(f,e=>{Q.failoverError&&e(p)}),D(d),vP(I(d,2),{}),L(()=>{o.disabled=R(n),H(l,Q.failoverGenerating?`Generating...`:`Generate failover models automatically`),u.disabled=R(n)}),z(`click`,o,()=>Q.generateFailoverRules()),z(`click`,u,()=>Q.openFailoverResetDialog()),V(e,r),k()}Br([`click`]);function UW(){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 WW(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 GW(){return[{value:0,label:`Sunday`},{value:1,label:`Monday`},{value:2,label:`Tuesday`},{value:3,label:`Wednesday`},{value:4,label:`Thursday`},{value:5,label:`Friday`},{value:6,label:`Saturday`}]}var KW=B(`

          Budget Resets

          `),qW=B(``),JW=B(`

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

          `),YW=B(``),XW=B(``),ZW=B(`
          Monthly
          Weekly
          Daily
          `,1);function QW(e,t){O(t,!0);let n=j(N(UW())),r=j(!1),i=j(!1),a=j(``),o=j(!1),s=A(()=>bu.budgetsVisible());async function c(){if(await bu.ensureLoaded(),!bu.budgetsVisible()){M(a,``);return}M(r,!0),M(a,``);try{let e=await hu(`/admin/budgets/settings`,{label:`budget settings`});if(e.stale)return;if(!e.ok){M(a,`Unable to load budget settings.`);return}M(n,WW(e.data,R(n)),!0)}catch(e){console.error(`Failed to fetch budget settings:`,e),M(a,`Unable to load budget settings.`)}finally{M(r,!1)}}async function l(){if(!R(i)){M(i,!0);try{let e=await gu(`/admin/budgets/settings`,`PUT`,WW(R(n),R(n)),{label:`budget settings`});if(e.stale)return;if(!e.ok){ed.error(`Unable to save budget settings.`);return}M(n,WW(e.data,R(n)),!0),M(a,``),ed.success(`Budget settings saved.`)}catch(e){console.error(`Failed to save budget settings:`,e),ed.error(`Unable to save budget settings.`)}finally{M(i,!1)}}}On(()=>{Y.refreshTick,c()});var u=Xr(),d=F(u),f=e=>{var t=ZW(),s=F(t),c=P(s);YT(c,{copyId:`budget-settings-help-copy`,label:`budget help`,text:`Budget reset anchors are stored in the database and evaluated in UTC. Hourly budgets reset at the top of each hour.`,title:e=>{V(e,KW())},$$slots:{title:!0}});var u=I(c,2),d=P(u),f=I(P(d),2),p=P(f);YT(p,{copyId:`budget-monthly-day-help-copy`,label:`day of month help`,external:!0,get open(){return R(o)},set open(e){M(o,e,!0)},title:e=>{V(e,qW())},$$slots:{title:!0}});var m=I(p,2);ea(m),D(f);var h=I(f,2),g=I(P(h),2);ea(g),D(h);var _=I(h,2),v=I(P(_),2);ea(v),D(_);var y=I(_,2),b=P(y),x=e=>{V(e,JW())};U(b,e=>{R(o)&&e(x)}),D(y),D(d);var S=I(d,2),C=I(P(S),2),w=I(P(C),2);W(w,21,GW,e=>e.value,(e,t)=>{var n=YW(),r=P(n,!0);D(n);var i={};L(()=>{H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(w),D(C);var T=I(C,2),E=I(P(T),2);ea(E),D(T);var ee=I(T,2),te=I(P(ee),2);ea(te),D(ee),Ve(2),D(S);var ne=I(S,2),re=I(P(ne),4),ie=I(P(re),2);ea(ie),D(re);var ae=I(re,2),oe=I(P(ae),2);ea(oe),D(ae),Ve(2),D(ne),D(u);var se=I(u,2),ce=P(se);J(P(ce),{get icon(){return cl},class:`form-action-icon`}),Ve(2),D(ce);var le=I(ce,2),ue=e=>{wT(e,{size:16,label:`Loading budget settings`})};U(le,e=>{R(r)&&e(ue)}),D(se),D(s);var de=I(s,2),fe=P(de),pe=e=>{var t=XW(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)};U(fe,e=>{R(a)&&e(pe)}),D(de),L(()=>{ce.disabled=R(i)||R(r),K(ce,`aria-busy`,R(i)?`true`:`false`)}),la(m,()=>R(n).monthly_reset_day,e=>R(n).monthly_reset_day=e),la(g,()=>R(n).monthly_reset_hour,e=>R(n).monthly_reset_hour=e),la(v,()=>R(n).monthly_reset_minute,e=>R(n).monthly_reset_minute=e),Ui(w,()=>R(n).weekly_reset_weekday,e=>R(n).weekly_reset_weekday=e),la(E,()=>R(n).weekly_reset_hour,e=>R(n).weekly_reset_hour=e),la(te,()=>R(n).weekly_reset_minute,e=>R(n).weekly_reset_minute=e),la(ie,()=>R(n).daily_reset_hour,e=>R(n).daily_reset_hour=e),la(oe,()=>R(n).daily_reset_minute,e=>R(n).daily_reset_minute=e),z(`click`,ce,l),V(e,t)};U(d,e=>{R(s)&&e(f)}),V(e,u),k()}Br([`click`]);var $W=B(`

          Reset All Budgets

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

          `);function eG(e,t){O(t,!0);var n=Xr(),r=F(n),i=e=>{var t=$W(),n=I(P(t),2),r=P(n);J(P(r),{get icon(){return sl},class:`form-action-icon`}),Ve(2),D(r),D(n),D(t),L(()=>r.disabled=X.resetAllLoading),z(`click`,r,()=>X.openResetDialog()),V(e,t)},a=A(()=>bu.budgetsVisible());U(r,e=>{R(a)&&e(i)}),V(e,n),k()}Br([`click`]);function tG(){return{header:``,prefix:``,do_not_pass:!1,delimiter:``,managed:!1}}function nG(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 rG(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 iG(e){return e&&e.error&&e.error.message?e.error.message:``}var aG=B(`

          Tagging based on headers

          `),oG=B(`config`),sG=B(``),cG=B(`
          `),lG=B(`

          No tagging headers configured. Requests are not labelled.

          `),uG=B(``),dG=B(`
          `,1);function fG(e,t){O(t,!0);let n=j(N([])),r=j(!0),i=j(!1),a=j(!1),o=j(``);function s(){R(n).push(tG())}function c(e){let t=R(n)[e];!t||t.managed||R(n).splice(e,1)}async function l(){M(i,!0),M(o,``);try{let e=await hu(`/admin/tagging/settings`,{label:`tagging settings`});if(e.stale)return;if(!e.ok){M(o,`Unable to load tagging settings.`);return}M(n,nG(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0)}catch(e){console.error(`Failed to fetch tagging settings:`,e),M(o,`Unable to load tagging settings.`)}finally{M(i,!1)}}async function u(){if(!(R(a)||!R(r))){M(a,!0);try{let e=await gu(`/admin/tagging/settings`,`PUT`,rG(R(n)),{label:`tagging settings`});if(e.stale)return;if(!e.ok){ed.error(e.status!==401&&iG(e.data)||`Unable to save tagging settings.`);return}M(n,nG(e.data),!0),M(r,e.data&&e.data.editable!==!1,!0),M(o,``),ed.success(`Tagging settings saved.`)}catch(e){console.error(`Failed to save tagging settings:`,e),ed.error(`Unable to save tagging settings.`)}finally{M(a,!1)}}}On(()=>{Y.refreshTick,l()});var d=dG(),f=F(d),p=P(f);YT(p,{copyId:`tagging-settings-help-copy`,label:`tagging help`,text:`Each request is labelled from the listed headers; labels land in usage tracking and audit logs. A header value can carry several labels split by the delimiter (default: comma). The prefix is trimmed from each label only — the header itself is forwarded unchanged unless 'Do not pass' is checked. Rows marked CONFIG come from config.yaml or TAGGING_HEADER_* env vars and are read-only here.`,title:e=>{V(e,aG())},$$slots:{title:!0}});var m=I(p,2),h=P(m);W(h,17,()=>R(n),ii,(e,t,n)=>{var i=cG(),a=P(i),o=P(a);K(o,`for`,`tagging-header-`+n);var s=I(o,2);ea(s),K(s,`id`,`tagging-header-`+n),D(a);var l=I(a,2),u=P(l);K(u,`for`,`tagging-prefix-`+n);var d=I(u,2);ea(d),K(d,`id`,`tagging-prefix-`+n),D(l);var f=I(l,2),p=P(f);K(p,`for`,`tagging-delimiter-`+n);var m=I(p,2);ea(m),K(m,`id`,`tagging-delimiter-`+n),D(f);var h=I(f,2),g=P(h);ea(g),Ve(2),D(h);var _=I(h,2),v=P(_),y=e=>{V(e,oG())},b=e=>{var i=sG();L(()=>{i.disabled=!R(r),K(i,`aria-label`,`Remove tagging header `+(R(t).header||n+1))}),z(`click`,i,()=>c(n)),V(e,i)};U(v,e=>{R(t).managed?e(y):e(b,-1)}),D(_),D(i),L(()=>{s.disabled=R(t).managed||!R(r),d.disabled=R(t).managed||!R(r),m.disabled=R(t).managed||!R(r),g.disabled=R(t).managed||!R(r)}),la(s,()=>R(t).header,e=>R(t).header=e),la(d,()=>R(t).prefix,e=>R(t).prefix=e),la(m,()=>R(t).delimiter,e=>R(t).delimiter=e),ua(g,()=>R(t).do_not_pass,e=>R(t).do_not_pass=e),V(e,i)});var g=I(h,2),_=e=>{wT(e,{size:16,label:`Loading tagging settings`})};U(g,e=>{R(i)&&e(_)});var v=I(g,2),y=e=>{V(e,lG())};U(v,e=>{!R(i)&&R(n).length===0&&e(y)}),D(m);var b=I(m,2),x=P(b);J(P(x),{get icon(){return il},class:`form-action-icon`}),Ve(2),D(x);var S=I(x,2);J(P(S),{get icon(){return cl},class:`form-action-icon`}),Ve(2),D(S),D(b),D(f);var C=I(f,2),w=P(C),T=e=>{var t=uG(),n=P(t,!0);D(t),L(()=>H(n,R(o))),V(e,t)};U(w,e=>{R(o)&&e(T)}),D(C),L(()=>{x.disabled=!R(r)||R(a)||R(i),S.disabled=!R(r)||R(a)||R(i),K(S,`aria-busy`,R(a)?`true`:`false`)}),z(`click`,x,s),z(`click`,S,u),V(e,d),k()}Br([`click`]);function pG(e){let t=e||{};if(t.selectedPreset)return{days:parseInt(t.selectedPreset,10)||30};let n=t.customStartDate?md(t.customStartDate):``,r=t.customEndDate||t.today||null;return{start_date:n,end_date:r?md(r):``}}function mG(e,t,n,r){return{...pG(e),user_path:String(t||``).trim(),selector:String(n||``).trim(),confirmation:r}}function hG(e){let t=Number(e&&e.matched||0),n=Number(e&&e.recalculated||0),r=Number(e&&e.without_pricing||0),i=`Pricing recalculated for `+n+` of `+t+` usage record`+(t===1?``:`s`)+`.`;return r>0&&(i+=` `+r+` usage record`+(r===1?` still lacks`:`s still lack`)+` pricing metadata.`),i}var gG=B(`

          Usage Pricing Recalculation

          `),_G=B(`
          `);function vG(e,t){O(t,!0);let n=j(``),r=j(``),i=j(!1),a=A(()=>bu.booleanFlag(`USAGE_PRICING_RECALCULATION_ENABLED`,!1));function o(){if(!R(a)){ed.error(`Usage pricing recalculation is unavailable.`);return}R(i)||zu.open({title:`Recalculate Pricing`,titleId:`pricingRecalculateDialogTitle`,inputId:`pricing-recalculate-confirmation`,requiredText:`recalculate`,confirmLabel:`Recalculate Pricing`,icon:Dc,dialogClass:`pricing-recalculate-dialog`,message:`Stored usage cost fields matching the selected filters will be overwritten.`,onConfirm:()=>s()})}async function s(){if(!R(a)){ed.error(`Usage pricing recalculation is unavailable.`);return}if(!R(i)){M(i,!0);try{let e=await gu(`/admin/usage/recalculate-pricing`,`POST`,mG({selectedPreset:Fd.selectedPreset,customStartDate:Fd.customStartDate,customEndDate:Fd.customEndDate,today:lu.todayDate()},R(n),R(r),`recalculate`),{label:`pricing recalculation`});if(e.stale)return;if(!e.ok){zu.error=`Unable to recalculate pricing.`;return}zu.close(),ed.success(hG(e.data)),Vd.fetchUsage()}catch(e){console.error(`Failed to recalculate pricing:`,e),zu.error=`Unable to recalculate pricing.`}finally{M(i,!1)}}}var c=Xr(),l=F(c),u=e=>{var t=_G(),s=P(t);YT(s,{copyId:`pricing-recalculate-help-copy`,label:`pricing recalculation help`,text:`Recalculate stored input, output, total, and Pro Saved costs from the current model pricing metadata. This overwrites matching historical cost fields. Filters are applied to the selected date range, user path subtree, and provider/model selector or alias.`,title:e=>{V(e,gG())},$$slots:{title:!0}});var c=I(s,2),l=P(c),u=I(P(l),2);rf(P(u),{}),D(u),D(l);var d=I(l,2),f=I(P(d),2);ea(f),D(d);var p=I(d,2),m=I(P(p),2);ea(m),D(p),D(c);var h=I(c,2),g=P(h);J(P(g),{get icon(){return Dc},class:`form-action-icon`}),Ve(2),D(g),D(h),D(t),L(()=>{g.disabled=R(i)||!R(a),K(g,`aria-busy`,R(i)?`true`:`false`)}),la(f,()=>R(n),e=>M(n,e)),la(m,()=>R(r),e=>M(r,e)),z(`click`,g,o),V(e,t)};U(l,e=>{R(a)&&e(u)}),V(e,c),k()}Br([`click`]);function yG(e){return String(e&&e.status||`ok`).toLowerCase()}function bG(e){if(!e||typeof e!=`object`)return`Runtime refresh completed.`;let t=Number(e.model_count||0),n=Number(e.provider_count||0),r=yG(e);return(r===`ok`?`Runtime refreshed.`:r===`partial`?`Runtime refresh completed with warnings.`:`Runtime refresh failed.`)+` `+t+` model`+(t===1?``:`s`)+` across `+n+` provider`+(n===1?``:`s`)+`.`}function xG(e){return!!e&&yG(e)===`ok`}function SG(e){let t=e&&e.steps;return Array.isArray(t)?t:[]}function CG(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 wG=B(`

          Runtime Refresh

          `),TG=B(`
        • `),EG=B(`
            `),DG=B(`
            `,1);function OG(e,t){O(t,!0);let n=j(!1),r=j(null);async function i(){if(!R(n)){M(n,!0),M(r,null);try{let e=await gu(`/admin/runtime/refresh`,`POST`,void 0,{label:`runtime refresh`});if(e.stale)return;if(!e.ok){ed.error(`Runtime refresh failed.`);return}M(r,e.data&&typeof e.data==`object`?e.data:null,!0),xG(R(r))?ed.success(bG(R(r))):ed.error(bG(R(r))),Y.refresh()}catch(e){console.error(`Failed to refresh runtime:`,e),ed.error(`Runtime refresh failed.`)}finally{M(n,!1)}}}var a=DG(),o=F(a),s=P(o);YT(s,{copyId:`runtime-refresh-help-copy`,label:`runtime refresh help`,text:`Pull the latest model metadata, provider inventory, API keys, aliases, model access rules, guardrails, and workflows.`,title:e=>{V(e,wG())},$$slots:{title:!0}});var c=I(s,2),l=P(c);let u;J(P(l),{get icon(){return ol},class:`settings-refresh-icon`}),Ve(2),D(l),D(c),D(o);var d=I(o,2),f=P(d),p=e=>{var t=EG();W(t,21,()=>SG(R(r)),e=>e.name,(e,t)=>{var n=TG(),r=P(n,!0);D(n),L(e=>{G(n,1,`runtime-refresh-step is-${R(t).status??``}`,`svelte-yeq2mp`),H(r,e)},[()=>CG(R(t))]),V(e,n)}),D(t),V(e,t)},m=A(()=>SG(R(r)).length>0);U(f,e=>{R(m)&&e(p)}),D(d),L(()=>{u=G(l,1,`btn btn-primary btn-with-icon settings-refresh-btn`,null,u,{"is-refreshing":R(n)}),l.disabled=R(n),K(l,`aria-busy`,R(n)?`true`:`false`)}),z(`click`,l,i),V(e,a),k()}Br([`click`]);var kG=B(``),AG=B(`

            `),jG=B(`

            `),MG=B(``),NG=B(`
            `),PG=B(`

            AI Processing

            `);function FG(e,t){O(t,!0);let n=j(N([])),r=j(!1),i=j(``),a=j(``);async function o(){M(r,!0),M(a,``);try{let e=await hu(`/admin/runtime/settings`,{label:`runtime settings`});if(e.stale)return;if(!e.ok){M(a,`Unable to load runtime settings.`);return}M(n,Array.isArray(e.data?.settings)?e.data.settings:[],!0)}catch(e){console.error(`Failed to load runtime settings:`,e),M(a,`Unable to load runtime settings.`)}finally{M(r,!1)}}async function s(e,t,r){if(!(e.locked||R(i))){M(i,e.key,!0);try{let i=await gu(`/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,ed.error(`Unable to save ${e.label}.`);return}M(n,R(n).map(t=>t.key===e.key?i.data:t),!0),ed.success(`${e.label} saved.`)}catch(t){r.value=e.value,console.error(`Failed to save runtime setting:`,t),ed.error(`Unable to save ${e.label}.`)}finally{M(i,``)}}}On(()=>{Y.refreshTick,o()});var c=Xr(),l=F(c),u=e=>{var t=PG(),o=P(t),c=I(P(o),2),l=e=>{var t=kG(),n=P(t,!0);D(t),L(()=>H(n,R(a))),V(e,t)};U(c,e=>{R(a)&&e(l)}),D(o);var u=I(o,2);W(u,21,()=>R(n),e=>e.key,(e,t)=>{var n=NG(),r=P(n),a=P(r),o=P(a,!0);D(a);var c=I(a,2),l=e=>{var n=AG(),r=P(n,!0);D(n),L(()=>H(r,R(t).description)),V(e,n)};U(c,e=>{R(t).description&&e(l)});var u=I(c,2),d=e=>{var n=jG(),r=P(n);D(n),L(()=>H(r,`Managed by ${(R(t).managed_by||`environment`)??``}`)),V(e,n)};U(u,e=>{R(t).locked&&e(d)}),D(r);var f=I(r,2);W(f,21,()=>R(t).options||[],e=>e.value,(e,t)=>{var n=MG(),r=P(n,!0);D(n);var i={};L(()=>{K(n,`title`,R(t).description||``),H(r,R(t).label),i!==(i=R(t).value)&&(n.value=(n.__value=R(t).value)??``)}),V(e,n)}),D(f);var p;Hi(f),D(n),L(()=>{K(a,`for`,`runtime-setting-${R(t).key}`),H(o,R(t).label),K(f,`id`,`runtime-setting-${R(t).key}`),f.disabled=R(t).locked||R(i)!==``,p!==(p=R(t).value)&&(f.value=(f.__value=R(t).value)??``,Vi(f,R(t).value))}),z(`change`,f,e=>s(R(t),e.currentTarget.value,e.currentTarget)),V(e,n)}),D(u),D(t),L(()=>K(u,`aria-busy`,R(r)?`true`:`false`)),V(e,t)};U(l,e=>{(R(n).length>0||R(a))&&e(u)}),V(e,c),k()}Br([`change`]);var IG=B(`
            `);function LG(e,t){O(t,!0),On(()=>{Y.refreshTick,Bl.page===`settings`&&(lu.ensureOptions(),bu.ensureLoaded())});var n=IG(),r=I(P(n),2),i=P(r);zW(i,{});var a=I(i,2);HW(a,{});var o=I(a,2);QW(o,{});var s=I(o,2);eG(s,{});var c=I(s,2);fG(c,{});var l=I(c,2);FG(l,{});var u=I(l,2);vG(u,{}),OG(I(u,2),{}),D(r);var d=I(r,2),f=P(d,!0);D(d),D(n),L(e=>H(f,e),[()=>Fl()]),V(e,n),k()}var RG=B(`
            `),zG=B(`
             
            `),BG=B(`
             
            `),VG=B(`
             
            `),HG=B(`
            `),UG=B(`
            `,1),WG=B(`
            `);function GG(e,t){O(t,!0);let n=q(t,`showPromptCache`,3,!0),r=CF({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?Math.round(t*100)+`% of this visible prompt item is estimated provider-cached`:void 0}function s(e){return e.role===`function_call`?(e.toolCalls||[]).map(e=>e.name+`()`).join(`, `):(e.functionName?e.functionName+`: `:``)+e.text}var c=WG();let l;var u=P(c),d=e=>{var r=zG(),i=P(r),a=P(i),c=P(a,!0);D(a);var l=I(a,2),u=P(l,!0);D(l);var d=I(l,2),f=P(d,!0);D(d),D(i);var p=I(i,2),m=e=>{var n=RG(),r=P(n);D(n),L(()=>H(r,`Call ID: ${t.msg.functionCallID??``}`)),V(e,n)};U(p,e=>{t.msg.functionCallID&&e(m)});var h=I(p,2),g=e=>{var n=Xr();W(F(n),17,()=>t.msg.toolCalls,ii,(e,n)=>{var r=Xr(),i=F(r),a=e=>{var r=RG(),i=P(r);D(r),L(()=>H(i,`Call ID${t.msg.toolCalls.length>1?` (`+R(n).name+`)`:``}: ${R(n).id??``}`)),V(e,r)};U(i,e=>{R(n).id&&e(a)}),V(e,r)}),V(e,n)};U(h,e=>{t.msg.role===`function_call`&&t.msg.toolCalls&&e(g)});var _=I(h,2),v=P(_,!0);D(_),D(r),L((e,n,i,a)=>{K(r,`title`,e),H(c,t.msg.roleLabel),H(u,n),H(f,i),H(v,a)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>s(t.msg),()=>lu.formatTimestamp(t.msg.timestamp),()=>rB(t.msg)]),V(e,r)},f=e=>{var r=UG(),i=F(r),a=P(i),s=P(a,!0);D(a);var c=I(a,2),l=P(c,!0);D(c),D(i);var u=I(i,2),d=e=>{var r=BG(),i=P(r,!0);D(r),L(e=>{K(r,`title`,e),H(i,t.msg.text)},[()=>n()?o(t.msg.promptCacheRatio):void 0]),V(e,r)};U(u,e=>{t.msg.text&&e(d)});var f=I(u,2),p=e=>{var n=HG();W(n,23,()=>t.msg.toolCalls,(e,t)=>e.name+`-`+t,(e,t)=>{var n=VG(),r=P(n),i=P(r),a=P(i,!0);D(i);var o=I(i,2),s=P(o,!0);D(o),D(r);var c=I(r,2),l=e=>{var n=RG(),r=P(n);D(n),L(()=>H(r,`Call ID: ${R(t).id??``}`)),V(e,n)};U(c,e=>{R(t).id&&e(l)});var u=I(c,2),d=P(u,!0);D(u),D(n),L((e,n)=>{H(a,R(t).name+`()`),H(s,e),H(d,n)},[()=>aB(R(t))||`No arguments`,()=>aB(R(t))||`No arguments`]),V(e,n)}),D(n),V(e,n)};U(f,e=>{t.msg.toolCalls&&e(p)}),L((e,n)=>{K(i,`title`,e),H(s,t.msg.roleLabel),H(l,n)},[()=>n()?o(t.msg.promptCacheRatio):void 0,()=>lu.formatTimestamp(t.msg.timestamp)]),V(e,r)};U(u,e=>{R(i)?e(d):e(f,-1)});var p=I(u,2);let m;var h=P(p);{let e=A(()=>r.copied?Lc:Bc);J(h,{get icon(){return R(e)},width:`14`,height:`14`})}D(p),D(c),L(e=>{G(c,1,Ni([R(i)?`chat-function-note`:`chat-message`,t.msg.roleClass,{"is-anchor":t.msg.isAnchor,"is-after-anchor":t.msg.isAfterAnchor}]),`svelte-12s99s5`),K(c,`data-conversation-anchor`,t.msg.isAnchor?`true`:void 0),K(c,`data-entry-id`,t.msg.entryID),l=Bi(c,``,l,e),m=G(p,1,`chat-message-copy svelte-12s99s5`,null,m,{"is-copied":r.copied}),K(p,`aria-label`,r.copied?`Message copied`:`Copy message`),K(p,`title`,r.copied?`Copied`:`Copy message`)},[()=>({"--prompt-cache-fill":a(t.msg.promptCacheRatio),"--prompt-cache-visibility":n()&&t.msg.promptCacheRatio>0?`1`:`0`})]),z(`click`,p,e=>{e.stopPropagation(),r.copy(iB(t.msg))}),V(e,c),k()}Br([`click`]);function KG(e,t=0){let n=Math.max(0,XG(e)-Math.max(0,XG(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 qG(e,t,n=0){let r=KG(t,n),i=XG(e)||520;return Math.min(r.max,Math.max(r.min,Math.round(i)))}function JG(e,t,n=0){return qG(XG(t)-XG(e),t,n)}function YG(e,t,n,r){if(!Array.isArray(e)||e.length===0)return{index:-1,align:`start`};let i=XG(t),a=0;e.forEach((e,t)=>{XG(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=XG(e[c])0&&s===c&&l?`end`:`start`}}function XG(e){let t=Number(e);return Number.isFinite(t)?t:0}var ZG=B(`
            `),QG=B(`
            `),$G=B(`

            Loading interactions...

            `),eK=B(`

            No interaction data available for this entry.

            `),tK=B(``),nK=B(`
            `,1),rK=B(`

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

            `),iK=B(`
            `),aK=B(``),oK=B(``),sK=B(``);function cK(e,t){O(t,!0);let n=pB,r=Number(Ja(`gomodel_interactions_panel_width`)),i=`gomodel_interactions_prompt_cache_fill`,a=Number.isFinite(r)&&r>0?r:520,o=j(N(a)),s=j(320),c=j(760),l=j(!1),u=j(!1),d=j(Ja(i,`true`)!==`false`),f=null;function p(e,{fullscreen:t,revealWithoutSlide:n=!1}){let r=pL(180);return t?Ju(e,{x:R(o),duration:r,easing:Zu}):n?{duration:0}:Yu(e,{axis:`x`,duration:r,easing:Zu})}async function m(e){if(e===R(l))return;let t=R(l)&&!e;M(u,t,!0),M(l,e,!0),t&&(await xr(),M(u,!1))}function h(){M(d,!R(d)),Ya(i,R(d))}function g(){return(document.querySelector(`.sidebar`)?.getBoundingClientRect().width||0)+(document.querySelector(`.sidebar-toggle`)?.getBoundingClientRect().width||0)}function _(){let e=g(),t=KG(window.innerWidth,e);M(s,t.min,!0),M(c,t.max,!0),M(o,qG(a,window.innerWidth,e),!0)}function v(e){M(o,JG(e,window.innerWidth,g()),!0),a=R(o)}function y(e){e.button===0&&(e.preventDefault(),f=e.pointerId,e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(`conversation-panel-resizing`),v(e.clientX))}function b(e){e.pointerId===f&&v(e.clientX)}function x(e){f===null||e.pointerId!==void 0&&e.pointerId!==f||(f=null,document.body.classList.remove(`conversation-panel-resizing`),Ya(`gomodel_interactions_panel_width`,a))}function S(e){e.key!==`ArrowLeft`&&e.key!==`ArrowRight`||(e.preventDefault(),a=R(o)+(e.key===`ArrowLeft`?24:-24),_(),a=R(o),Ya(`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=YG(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:pL(1)>0?`smooth`:`auto`})}function w(){return[document.querySelector(`.sidebar`),document.querySelector(`.sidebar-toggle`),document.getElementById(`dashboard-content`)].filter(Boolean)}On(()=>{if(!n.conversationOpen)return;_();let e=document.querySelector(`.sidebar`),t=new ResizeObserver(_);e&&t.observe(e);let r=e=>{e.key===`Escape`&&!bc.anyOpen&&(R(l)?m(!1):n.closeConversation())};return window.addEventListener(`keydown`,r),window.addEventListener(`resize`,_),()=>{x({}),t.disconnect(),window.removeEventListener(`keydown`,r),window.removeEventListener(`resize`,_)}}),On(()=>{n.conversationOpen||M(l,!1)}),On(()=>{if(!R(l))return;let e=w().map(e=>({element:e,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}));return e.forEach(({element:e})=>{e.inert=!0,e.setAttribute(`aria-hidden`,`true`)}),()=>{e.forEach(({element:e,inert:t,ariaHidden:n})=>{e.inert=t,n===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,n)})}}),On(()=>{Bl.page!==`audit-logs`&&n.conversationOpen&&n.closeConversation()});var T=Xr(),E=F(T),ee=e=>{var t=Xr();W(F(t),16,()=>[R(l)],e=>e,(e,t)=>{var r=sK();let i,a;var l=P(r),f=I(l,2),g=P(f),_=I(P(g),2),v=P(_);let w;D(_),D(g);var T=I(g,2),E=P(T),ee=P(E);{let e=A(()=>t?$c:Qc);J(ee,{get icon(){return R(e)},class:`table-icon-svg`})}D(E),ku(I(E,2),{label:`Close interactions`,onclick:()=>n.closeConversation(),get el(){return n.conversationCloseBtnEl},set el(e){n.conversationCloseBtnEl=e}}),D(T),D(f);var te=I(f,2),ne=P(te),re=e=>{var t=ZG(),n=P(t);J(P(n),{get icon(){return Tc},width:`14`,height:`14`}),D(n);var r=I(n,2);J(P(r),{get icon(){return Sc},width:`14`,height:`14`}),D(r),D(t),z(`click`,n,()=>C(-1)),z(`click`,r,()=>C(1)),V(e,t)};U(ne,e=>{n.conversationMessages.length>1&&e(re)});var ie=I(ne,2),ae=e=>{var t=QG(),r=P(t,!0);D(t),L(()=>H(r,n.conversationError)),V(e,t)};U(ie,e=>{n.conversationError&&e(ae)});var oe=I(ie,2),se=e=>{V(e,$G())};U(oe,e=>{n.conversationLoading&&e(se)});var ce=I(oe,2),le=e=>{V(e,eK())},ue=A(()=>!n.conversationLoading&&!n.followUpSending&&!n.conversationError&&n.conversationMessages.length===0&&!n.conversationLiveWaiting());U(ce,e=>{R(ue)&&e(le)});var de=I(ce,2),fe=e=>{var t=nK(),r=F(t),i=e=>{var t=tK(),n=P(t);let r;Ve(2),D(t),L(()=>{K(t,`aria-checked`,R(d)),K(t,`title`,(R(d)?`Hide`:`Show`)+` estimated provider prompt-cache fill`),r=G(n,1,`conversation-cache-switch svelte-ssrzja`,null,r,{"is-active":R(d)})}),z(`click`,t,h),V(e,t)},a=A(()=>n.conversationMessages.some(e=>Number(e.promptCacheRatio||0)>0));U(r,e=>{R(a)&&e(i)});var o=I(r,2);W(o,21,()=>n.conversationMessages,e=>e.uid,(e,t)=>{GG(e,{get msg(){return R(t)},get showPromptCache(){return R(d)}})}),D(o),ma(o,e=>n.conversationThreadEl=e,()=>n?.conversationThreadEl),V(e,t)};U(de,e=>{n.conversationMessages.length>0&&e(fe)});var pe=I(de,2),me=e=>{V(e,rK())};U(pe,e=>{n.conversationTruncated&&e(me)});var he=I(pe,2),ge=e=>{var t=iK(),r=I(P(t),2),i=P(r,!0);D(r),D(t),L(e=>H(i,e),[()=>n.conversationLiveStatusText()]),V(e,t)},_e=A(()=>n.conversationLiveWaiting());U(he,e=>{R(_e)&&e(ge)}),D(te);var ve=I(te,2),ye=e=>{var t=oK(),r=P(t),i=P(r);ut(i);var a=I(i,2),o=e=>{var t=aK(),r=P(t,!0);D(t),L(()=>H(r,n.followUpError)),V(e,t)};U(a,e=>{n.followUpError&&e(o)});var s=I(a,2),c=P(s),l=P(c,!0);D(c);var u=I(c,2),d=P(u,!0);D(u),D(s),D(r),D(t),L((e,t,r)=>{i.disabled=e,H(l,t),u.disabled=r,H(d,n.followUpSending?`Sending…`:`Send`)},[()=>n.followUpSending||n.conversationLiveWaiting(),()=>n.selectedConversationEntry()?.path||``,()=>!n.canSendFollowUp()]),zr(`submit`,r,e=>{e.preventDefault(),n.sendFollowUp()}),la(i,()=>n.followUpText,e=>n.followUpText=e),V(e,t)},be=A(()=>n.conversationAnchorID&&n.followUpKind());U(ve,e=>{R(be)&&e(ye)}),D(r),ma(r,e=>n.conversationDialogEl=e,()=>n?.conversationDialogEl),L(()=>{i=G(r,1,`conversation-drawer svelte-ssrzja`,null,i,{"conversation-drawer-fullscreen":t}),K(r,`role`,t?`dialog`:void 0),K(r,`aria-modal`,t?`true`:void 0),a=Bi(r,``,a,{"--conversation-panel-width":R(o)+`px`}),K(l,`aria-valuemin`,R(s)),K(l,`aria-valuemax`,R(c)),K(l,`aria-valuenow`,R(o)),K(_,`aria-label`,n.conversationFollowLatest?`Following the latest interaction`:`Viewing a historical interaction`),K(_,`title`,n.conversationFollowLatest?`Following the latest interaction as new events arrive`:`Viewing a historical interaction; live updates are not followed`),w=G(v,1,`live-dot`,null,w,{"is-streaming":n.conversationFollowLatest}),K(E,`aria-label`,t?`Exit fullscreen interactions`:`Show interactions fullscreen`),K(E,`title`,t?`Exit fullscreen`:`Fullscreen`),K(E,`aria-pressed`,t)}),z(`pointerdown`,l,y),z(`pointermove`,l,b),z(`pointerup`,l,x),zr(`pointercancel`,l,x),zr(`lostpointercapture`,l,x),z(`keydown`,l,S),z(`click`,E,()=>m(!t)),Di(7,r,()=>p,()=>({fullscreen:t,revealWithoutSlide:!t&&R(u)})),V(e,r)}),V(e,t)};U(E,e=>{n.conversationOpen&&e(ee)}),V(e,T),k()}Br([`pointerdown`,`pointermove`,`pointerup`,`keydown`,`click`]);var lK=B(`
            `,1);function uK(e,t){O(t,!0);let n={overview:yE,usage:hO,budgets:Gk,"rate-limits":nj,models:VP,workflows:cL,"audit-logs":iV,guardrails:ZV,"mcp-servers":jH,"providers-config":BU,"auth-keys":PW,settings:LG};Za(),lu.init(),Fd.init(),Y.init(),vc.init(),yc.init(),Bl.init(),On(()=>{Y.refreshTick,bu.fetch(),Id.fetchModels(),Id.fetchCategories()}),On(()=>{document.body.classList.toggle(`dashboard-modal-open`,bc.anyOpen)});let r=A(()=>n[Bl.page]||yE);var i=lK(),a=F(i);Du(a,{});var o=I(a,2);let s;var c=P(o);ad(c,{}),hi(I(c,2),()=>R(r),(e,t)=>{t(e,{})}),D(o);var l=I(o,2);cK(l,{});var u=I(l,2);Lu(u,{});var d=I(u,2);Uu(d,{}),rd(I(d,2),{}),L(()=>s=G(o,1,`content`,null,s,{"interactions-open":pB.conversationOpen})),V(e,i),k()}$r(uK,{target:document.getElementById(`app`)}); \ No newline at end of file diff --git a/internal/admin/dashboard/static/dist/index.html b/internal/admin/dashboard/static/dist/index.html index 8b71f851d..cd95f2b0d 100644 --- a/internal/admin/dashboard/static/dist/index.html +++ b/internal/admin/dashboard/static/dist/index.html @@ -7,8 +7,8 @@ GoModel Dashboard - - + +
            diff --git a/web/dashboard/messages/en.json b/web/dashboard/messages/en.json index a59696b0a..58f4a4fa7 100644 --- a/web/dashboard/messages/en.json +++ b/web/dashboard/messages/en.json @@ -16,6 +16,858 @@ "navigation_guardrails_experimental": "Guardrails (experimental)", "navigation_mcp_servers": "MCP Servers", "navigation_settings": "Settings", + "overview_usage_title": "Usage Overview", + "usage_interval_label": "Usage chart interval", + "usage_interval_daily": "Daily", + "usage_interval_weekly": "Weekly", + "usage_interval_monthly": "Monthly", + "usage_interval_yearly": "Yearly", + "usage_loading": "Loading usage", + "usage_title": "Usage Analytics", + "usage_mode_label": "Usage mode", + "usage_filters_label": "Usage data filters", + "usage_filter_model": "Filter by model", + "usage_filter_provider": "Filter by provider", + "usage_filter_label": "Filter by label", + "usage_filter_user_path": "Filter by user path", + "usage_filter_user_path_placeholder": "User path /team/alpha", + "usage_all_models": "All Models", + "usage_all_providers": "All Providers", + "usage_all_labels": "All Labels", + "usage_cache_saved": "Cache Saved", + "usage_pro_saved": "Pro Saved", + "usage_loading_summary": "Loading usage summary", + "usage_model_view": "Model usage view", + "usage_user_path_view": "User path usage view", + "usage_label_view": "Label usage view", + "usage_model_noun": "model usage", + "usage_user_path_noun": "user path usage", + "usage_label_noun": "label 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_show_chart": "Show {noun} chart", + "usage_show_stacked_chart": "Show {noun} stacked chart", + "usage_show_table": "Show {noun} table", + "usage_chart": "Chart", + "usage_stacked": "Stacked", + "usage_table": "Table", + "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_column_model": "Model", + "usage_column_provider": "Provider", + "usage_column_user_path": "User Path", + "usage_column_label": "Label", + "usage_column_requests": "Requests", + "usage_column_input_tokens": "Input Tokens", + "usage_column_output_tokens": "Output Tokens", + "usage_column_prompt_cached": "Prompt Cached", + "usage_column_local_cached": "Local Cached", + "usage_column_total_tokens": "Total Tokens", + "usage_column_input_cost": "Input Cost", + "usage_column_output_cost": "Output Cost", + "usage_column_total_cost": "Total Cost", + "usage_prompt_cached_help": "Provider prompt-cache reads included in the input tokens", + "usage_local_cached_help": "Tokens served from GoModel's local response cache (excluded from the other columns)", + "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_hide_cached": "Hide cached requests", + "usage_column_timestamp": "Timestamp", + "usage_column_labels": "Labels", + "usage_column_cache": "Cache", + "usage_column_provider_cache": "Provider Cache", + "usage_provider_cache_help": "Share of input tokens served from the provider's prompt cache", + "usage_column_input": "Input", + "usage_column_output": "Output", + "usage_column_total": "Total", + "usage_column_cost": "Cost", + "usage_tokens_count": "{count} tokens", + "usage_loading_log": "Loading request log", + "usage_clear_label_filter": "Clear label filter", + "usage_filter_by_label_value": "Filter usage by \"{label}\"", + "usage_cached_hidden": "{count} cached requests hidden", + "usage_requests_sources": "{provider} to providers + {cache} from cache", + "usage_cost_split": "{input} input + {output} output", + "usage_rewrite_estimate": "Estimated at 4 net characters removed per token", + "usage_less": "{percent}% less", + "usage_rewrite_tokens_removed": "{count} estimated prompt token-transmissions removed across provider requests", + "usage_rewrite_summed": "Savings are summed per provider request; resent conversation history is counted again", + "usage_rewrite_cost_avoided": "{cost} estimated gross input cost avoided", + "usage_rewrite_cache_excluded": "Prompt-cache changes caused by rewriting are not included", + "usage_rewrite_comparison": "{percent} than the same traffic without rewriting ({mode})", + "usage_mode_cost": "cost", + "usage_mode_tokens": "tokens", + "usage_openrouter_cost_source": "Costs from OpenRouter USD-based credits.", + "usage_xai_cost_source": "Costs from xAI usage.cost_in_usd_ticks.", + "usage_cache_exact": "Exact", + "usage_cache_semantic": "Semantic", + "usage_cache_not_charged": "Saved by cache — not charged", + "usage_provider_cache_title": "{cached} cached / {total} input tokens", + "usage_cache_write": "{count} cache write", + "usage_cost_input_line": "Input: {cost}", + "usage_cost_output_line": "Output: {cost}", + "usage_prompt_cached_cost": "Prompt Cached Cost", + "usage_locally_cached_input": "Locally Cached (Input)", + "usage_locally_cached_output": "Locally Cached (Output)", + "settings_title": "Settings", + "common_action_clear": "Clear", + "common_action_expand": "expand", + "common_action_collapse": "collapse", + "common_action_send": "Send", + "common_action_sending": "Sending…", + "common_copy_failed": "Copy failed", + "audit_title": "Audit Logs", + "audit_retention_help_label": "Retention help", + "audit_retention_help": "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.", + "audit_retention_prefix_indefinite": "Audit logs are retained ", + "audit_retention_prefix_days": "Audit logs are retained for ", + "audit_retention_indefinitely": "indefinitely", + "audit_retention_days": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} day", + "count_plural=*": "{count} days" + } + } + ], + "audit_logging_disabled_before_config": "Audit logging is off. Live entries are temporary and disappear after refresh. Set ", + "audit_logging_disabled_after_config": " to persist them.", + "audit_summary_sessions": "Showing {start}–{end} of {total} sessions", + "audit_summary_logs": "Showing {start}–{end} of {total} logs", + "audit_group_by_session": "Group by session", + "audit_loading": "Loading audit logs", + "audit_search_placeholder": "Search by request ID, model, provider, path, user path, or error…", + "audit_search_label": "Search by request ID, model, provider, path, user path, or error", + "audit_filter_method_label": "HTTP method filter", + "audit_filter_all_methods": "All Methods", + "audit_filter_status_label": "Status code filter", + "audit_filter_all_statuses": "All Statuses", + "audit_filter_stream_label": "Streaming mode filter", + "audit_filter_all_modes": "All Modes", + "audit_filter_streaming": "Streaming", + "audit_filter_non_streaming": "Non-streaming", + "audit_live_connecting": "Live stream connecting…", + "audit_live": "Live", + "audit_live_pause_date_range": "Live paused — the selected date range does not include today. Set it to today to resume.", + "audit_live_pause_filters": "Live paused while filters are active. Clear them to resume.", + "audit_live_pause_pagination": "Live paused on later pages. Go to the first page to resume.", + "audit_session_description": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "Session with {count} request", + "count_plural=*": "Session with {count} requests" + } + } + ], + "audit_status": "Status {status} · {method}", + "audit_open_interactions": "Open interactions", + "audit_close_interactions": "Close interactions", + "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_error_message_title": "Error Message", + "audit_headers_title": "Headers", + "audit_copy_headers": "Copy Headers", + "audit_body_title": "Body", + "audit_streaming": "streaming", + "audit_copy_body": "Copy Body", + "audit_request_response_label": "Request and response", + "audit_rewrite_savings_help": "Share of the request body removed by this rewrite", + "audit_request_title": "Request", + "audit_response_title": "Response", + "audit_rewritten_title": "Rewritten", + "audit_what_changed_title": "What changed", + "audit_attempt_failed": "Provider attempt failed", + "audit_provider_attempts": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} provider attempt", + "count_plural=*": "{count} provider attempts" + } + } + ], + "audit_provider_attempts_failed": "{count} provider attempts · {failed} failed", + "audit_attempt_succeeded": "succeeded", + "audit_attempt_failed_status": "failed", + "audit_attempt_not_captured": "No response was captured for this attempt.", + "audit_request_not_captured": "Request details were not captured.", + "audit_waiting_request_data": "Waiting for request data…", + "audit_request_body_too_large": "Request body was too large to capture.", + "audit_response_not_captured": "Response details were not captured.", + "audit_response_in_progress": "Response in progress…", + "audit_response_body_too_large": "Response body was too large to capture.", + "audit_rewritten_body_not_captured": "Rewritten body not captured (body logging disabled or body too large).", + "audit_rewriter_no_change": "{rewriter}: no change", + "audit_rewriter_unchanged_help": "{rewriter} ran and forwarded the request unchanged", + "audit_cached_count": "{count} cached", + "audit_cached_percent": "{percent}% cached", + "audit_audio_too_large": "Audio too large to store.", + "audit_audio_not_logged": "Audio not logged. Set LOGGING_LOG_AUDIO_BODIES=true to capture playable audio.", + "interaction_resize_label": "Resize interactions panel", + "interaction_title": "Interactions", + "interaction_following_latest": "Following the latest interaction", + "interaction_viewing_history": "Viewing a historical interaction", + "interaction_following_latest_help": "Following the latest interaction as new events arrive", + "interaction_viewing_history_help": "Viewing a historical interaction; live updates are not followed", + "interaction_exit_fullscreen": "Exit fullscreen interactions", + "interaction_show_fullscreen": "Show interactions fullscreen", + "interaction_exit_fullscreen_short": "Exit fullscreen", + "interaction_fullscreen": "Fullscreen", + "interaction_close": "Close interactions", + "interaction_navigation": "Navigate interaction messages", + "interaction_previous_message": "Previous message", + "interaction_next_message": "Next message", + "interaction_loading": "Loading interactions…", + "interaction_empty": "No interaction data available for this entry.", + "interaction_hide_cache_fill": "Hide estimated provider prompt-cache fill", + "interaction_show_cache_fill": "Show estimated provider prompt-cache fill", + "interaction_cache_legend": "Blue fill shows cached prompt share", + "interaction_estimated": "(estimated)", + "interaction_truncated": "Showing the newest part of this session and the selected log.", + "interaction_send_label": "Send a message", + "interaction_placeholder": "Continue this interaction…", + "interaction_model_responding": "Model is responding…", + "interaction_load_unavailable": "Unable to load interactions.", + "interaction_load_failed": "Failed to load interactions.", + "interaction_send_unavailable": "Unable to send message.", + "interaction_request_timed_out": "The request timed out.", + "interaction_send_failed": "Failed to send message.", + "interaction_saved_unavailable": "Message sent, but its saved interaction is not available yet.", + "interaction_role_system": "System Prompt", + "interaction_role_agent": "Agent", + "interaction_role_error": "Error", + "interaction_role_function_call": "Function Call", + "interaction_role_function_result": "Function Result", + "interaction_role_user": "User", + "interaction_attachment_image": "[Image]", + "interaction_attachment_audio": "[Audio]", + "interaction_attachment_file": "[File]", + "interaction_attachment_named_file": "[File: {name}]", + "interaction_message_copied": "Message copied", + "interaction_copy_message": "Copy message", + "interaction_prompt_cache_estimate": "{percent}% of this visible prompt item is estimated provider-cached", + "interaction_call_id": "Call ID", + "interaction_call_id_named": "Call ID ({name})", + "interaction_no_arguments": "No arguments", + "common_copied": "Copied", + "overview_tokens": "Tokens", + "overview_input_tokens": "Input tokens", + "overview_output_tokens": "Output tokens", + "overview_input_tokens_series": "Input Tokens", + "overview_output_tokens_series": "Output Tokens", + "overview_total_tokens": "Total tokens", + "overview_total_requests": "Total Requests", + "overview_cache_hits": "Cache Hits", + "overview_estimated_cost": "Estimated Cost", + "overview_local_cache": "Local Cache", + "overview_prompt_cache_rate": "Prompt Cache Rate", + "overview_prompt_cache_rate_help": "Share of input tokens served from the provider prompt cache over the selected period", + "overview_prompt_cache_rate_label": "Prompt cache rate {rate}", + "overview_provider_status": "Provider Status", + "overview_view_providers": "View providers overview", + "overview_view_mcp_servers": "View MCP servers", + "overview_requests_by_status": "Requests by Status", + "overview_request_status_summary": "Request status summary", + "overview_success_rate_help": "Share of requests answered with a 2xx status", + "overview_success": "Success", + "overview_provider_latency": "Provider Latency", + "overview_provider_latency_help_label": "Provider latency help", + "overview_provider_latency_help": "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.", + "overview_provider_latency_average_help": "Average duration of successful, uncached requests across all providers", + "overview_average_short": "Avg", + "overview_providers_title": "Providers Overview", + "overview_loading_provider_status": "Loading provider status", + "overview_show_details": "Show Details", + "overview_hide_details": "Hide Details", + "overview_view_provider_docs": "View {provider} provider docs", + "overview_models_available": "Models Available", + "overview_last_checked": "Last Checked", + "overview_expand_provider_details": "Expand {provider} details", + "overview_collapse_provider_details": "Collapse {provider} details", + "overview_expand_details": "Expand details", + "overview_collapse_details": "Collapse details", + "overview_base_url": "Base URL", + "overview_api_version": "API Version", + "overview_recent_requests": "Recent Requests", + "overview_breaker_state": "Breaker State", + "overview_models_recent_traffic": "Models (Recent Traffic)", + "overview_configured_models": "Configured Models", + "overview_retry": "Retry", + "overview_circuit_breaker": "Circuit Breaker", + "overview_none_configured": "None configured", + "overview_all_healthy": "All healthy", + "overview_none_healthy": "None healthy", + "overview_automatic": "Automatic", + "overview_last_error": "Last error: {error}", + "overview_all_mcp_connected": "All MCP servers connected", + "overview_cache_share": "Share of input tokens over the selected period", + "overview_no_usage": "No usage in the selected period yet", + "overview_cache_regular": "Regular", + "overview_cache_regular_note": "Includes {count} cache-write tokens", + "overview_cache_prompt": "Prompt cached", + "overview_cache_prompt_note": "Provider prompt-cache reads", + "overview_cache_local": "Locally cached", + "overview_cache_local_note": "Served from GoModel response cache", + "overview_cache_breakdown_label": "Cache breakdown of input tokens — {details}", + "overview_activity": "Activity", + "overview_loading_activity": "Loading activity", + "overview_activity_mode": "Activity calendar mode", + "overview_costs": "Costs", + "overview_weekday_mon": "Mon", + "overview_weekday_wed": "Wed", + "overview_weekday_fri": "Fri", + "overview_less": "Less", + "overview_more": "More", + "overview_live_token_throughput": "Live Token Throughput", + "overview_live_granularity": "Live token throughput granularity", + "overview_waiting_live_requests": "Waiting for live requests…", + "overview_seconds": "Seconds", + "overview_minutes": "Minutes", + "overview_hours": "Hours", + "overview_days": "Days", + "overview_last_60_seconds": "Last 60 seconds", + "overview_last_60_minutes": "Last 60 minutes", + "overview_last_24_hours": "Last 24 hours", + "overview_last_30_days": "Last 30 days", + "overview_prompt_input_cached": "Prompt (Input) Cached", + "overview_locally_cached": "Locally Cached", + "overview_total_label": "Total: {total}", + "overview_total_requests_help": "{provider} to providers + {cache} from cache", + "overview_cache_segment_title": "{label}: {tokens} input tokens ({percent}%)", + "overview_no_data": "no data", + "overview_provider_attention": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} needs attention", + "count_plural=*": "{count} need attention" + } + } + ], + "overview_mcp_attention": "{count} servers need attention", + "overview_mcp_connected": "{connected} of {total} servers connected", + "overview_calendar_cost_year": "${total} in the last year", + "overview_calendar_tokens_year": "{total} tokens in the last year", + "overview_calendar_cost_on_date": "${total} on {date}", + "overview_calendar_tokens_on_date": "{total} tokens on {date}", + "overview_live_chart_label": "Live token throughput, {window}. Input {input}, output {output}, prompt cached {prompt}, locally cached {local} tokens.", + "overview_other": "Other", + "settings_timezone_title": "Timezone", + "settings_timezone_help_label": "Timezone help", + "settings_timezone_help": "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.", + "settings_timezone_override": "Timezone Override", + "settings_timezone_automatic": "Automatic ({timezone})", + "settings_timezone_use_browser": "Use Browser Timezone", + "settings_failover_title": "Failover", + "settings_failover_generating": "Generating…", + "settings_failover_generate": "Generate failover models automatically", + "settings_failover_remove_all": "Remove all failover models", + "settings_budget_reset_all_title": "Reset All Budgets", + "settings_budget_reset_all_help": "Start new budget periods for every configured budget without changing the limits.", + "settings_budget_reset_all_action": "Reset Budgets", + "settings_budget_help_label": "Budget help", + "settings_budget_help": "Budget reset anchors are stored in the database and evaluated in UTC. Hourly budgets reset at the top of each hour.", + "settings_budget_resets_title": "Budget Resets", + "budgets_title": "Budgets", + "budgets_help_label": "Budgets help", + "budgets_help": "Budgets are evaluated from tracked usage cost records for each user path subtree. Enforcement runs only when Budget is enabled for the active workflow.", + "budgets_create": "Create Budget", + "budgets_unavailable": "Budget management is unavailable.", + "budgets_loading": "Loading budgets...", + "budgets_filter_placeholder": "Filter by user path, label, or period...", + "budgets_filter_label": "Filter budgets by user path, label, or period", + "budgets_sort_by": "Sort by", + "budgets_sort_label": "Sort budgets by", + "budgets_sort_subject": "Scope & Subject", + "budgets_period": "Period", + "budgets_empty": "No budgets configured yet.", + "budgets_no_match": "No budgets match your filter.", + "budgets_edit_title": "Edit Budget", + "budgets_create_title": "Create Budget", + "budgets_editor_label": "Budget editor", + "budgets_save": "Save Budget", + "budgets_scope": "Scope", + "budgets_period_seconds": "Period Seconds", + "budgets_amount": "Amount", + "budgets_edit_help": "Editing a budget updates its limit only. Use Reset to start a new budget period.", + "budgets_override_title": "Override Existing Budget", + "budgets_override_close": "Close budget override dialog", + "budgets_saving": "Saving...", + "budgets_override": "Override Budget", + "budgets_scope_user_path": "User path", + "budgets_scope_user_path_chip": "user path", + "budgets_scope_user_path_field": "User Path", + "budgets_scope_label": "Label", + "budgets_scope_label_chip": "label", + "budgets_period_hourly": "Hourly", + "budgets_period_daily": "Daily", + "budgets_period_weekly": "Weekly", + "budgets_period_monthly": "Monthly", + "budgets_period_custom": "Custom seconds", + "budgets_user_path_required": "User path is required.", + "budgets_user_path_segments": "User path cannot contain \".\" or \"..\" segments.", + "budgets_user_path_colon": "User path cannot contain \":\" segments.", + "budgets_label_required": "Label is required.", + "budgets_amount_positive": "Amount must be greater than 0.", + "budgets_period_positive": "Period seconds must be greater than 0.", + "budgets_custom_period": "Custom {period}", + "budgets_seconds": "{count} seconds", + "budgets_one_second": "1 second", + "budgets_one_hour": "1 hour", + "budgets_one_day": "1 day", + "budgets_one_week": "1 week", + "budgets_one_month": "1 month", + "budgets_source_manual": "Created from the dashboard.", + "budgets_source_config": "Loaded from configuration.", + "budgets_source_other": "Budget source: {source}", + "budgets_remaining": "{amount} remaining", + "budgets_over": "{amount} over", + "budgets_edit": "Edit", + "budgets_edit_label": "Edit budget", + "budgets_reset": "Reset", + "budgets_resetting": "Resetting", + "budgets_reset_label": "Reset budget", + "budgets_resetting_label": "Resetting budget", + "budgets_delete": "Delete", + "budgets_deleting": "Deleting", + "budgets_delete_label": "Delete budget", + "budgets_deleting_label": "Deleting budget", + "budgets_usage": "Usage", + "budgets_usage_label": "Budget usage: {spent} of {amount}, {remaining}", + "budgets_spent_of": "{spent} of {amount}", + "budgets_period_elapsed": "Budget period elapsed", + "budgets_override_message": "A budget for \"{label}\" already exists. Saving will override the current {current} limit with {next}.", + "budgets_load_failed": "Unable to load budgets.", + "budgets_save_failed": "Unable to save budget.", + "budgets_saved": "Budget saved.", + "budgets_reset_confirm": "Reset budget \"{label}\"?", + "budgets_reset_failed": "Unable to reset budget.", + "budgets_reset_done": "Budget reset.", + "budgets_delete_confirm": "Delete budget \"{label}\"? This cannot be undone.", + "budgets_delete_failed": "Unable to delete budget.", + "budgets_deleted": "Budget deleted.", + "budgets_reset_all_title": "Reset Budgets", + "budgets_reset_all": "Reset All Budgets", + "budgets_reset_all_failed": "Unable to reset budgets.", + "budgets_reset_all_done": "Budgets reset.", + "models_title": "Models", + "models_total_count": "{count} models", + "models_unavailable": "Virtual models feature is unavailable.", + "models_filter_placeholder": "Filter by provider, provider/model, alias, or owner...", + "models_filter_label": "Filter models by provider, provider/model, alias, or owner", + "models_new_virtual": "New virtual model", + "models_new_virtual_label": "New virtual model alias", + "models_alias": "Alias", + "models_empty": "No models registered.", + "models_empty_category": "No models in this category.", + "models_no_match": "No models match your filter.", + "models_column_model": "Model", + "models_enabled": "Enabled", + "models_disabled": "Disabled", + "models_restricted": "Restricted", + "models_updating": "Updating...", + "models_loading": "Loading models...", + "models_refreshing": "Refreshing models...", + "models_rendering": "Rendering models... {visible} / {total}", + "models_all_scope": "All providers and models", + "models_all_in_provider": "All models in {provider}", + "models_virtual_model": "Virtual model", + "models_redirect": "Redirect", + "models_managed_config": "Managed by config.yaml / VIRTUAL_MODELS", + "models_config": "Config", + "models_on": "On", + "models_targets": "Targets", + "models_redirects_to": "Redirects to", + "models_remove": "remove", + "models_remove_redirect": "Remove redirect for {model}", + "models_removing_redirect": "Removing redirect for {model}", + "models_slowdown": "Slowdown", + "models_inference_time": "+{value}× inference time", + "models_editor_label": "Virtual model editor", + "models_save": "Save", + "models_create": "Create", + "models_help_label": "Virtual model help", + "models_help": "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.", + "models_managed_help": "This virtual model is defined in configuration and is read-only here. Edit your configuration to change it.", + "models_source": "Source", + "models_add_target": "Add target (load balancing)", + "models_strategy": "Load-balancing strategy", + "models_session_keeping": "Session keeping (route a detected client session to the target that served it)", + "models_user_paths": "User Paths", + "models_user_paths_help_label": "User paths help", + "models_user_paths_help": "Use / to allow every user path. Use a team path to restrict to that subtree, or an unused path to make the selector unavailable.", + "models_description": "Description", + "models_description_placeholder": "Optional description", + "models_slowdown_field": "Slowdown (extra inference time)", + "models_off": "Off", + "models_slowdown_help": "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.", + "models_status_summary": "Default enabled: {default} · Effective now: {effective}", + "models_yes": "yes", + "models_no": "no", + "models_target_model": "Target model", + "models_target_weight": "Target weight", + "models_weight": "weight", + "models_remove_target": "Remove target", + "models_pricing_editor": "Model pricing editor", + "models_pricing_save": "Save Pricing", + "models_pricing_override": "Pricing override", + "models_pricing": "Pricing", + "models_selector": "Selector", + "models_scope": "Scope", + "models_pricing_help": "Currency is USD. Saved fields override model registry and config.yaml pricing for this selector; unset fields continue to inherit.", + "models_price_type": "Price Type", + "models_usd_value": "USD Value", + "models_remove_price": "Remove {price}", + "models_add_price": "Add Price", + "models_tiered_pricing_help": "Tiered pricing exists for this override and will be preserved. Tier editing can be added without a database migration.", + "models_source_column": "Source", + "models_no_pricing": "No pricing fields set.", + "models_remove_override": "Remove Override", + "models_failover_editor": "Failover editor", + "models_failover_mapping": "Failover mapping", + "models_failover_managed": "This failover mapping is defined in configuration and is read-only here.", + "models_fallback_models": "Fallback models", + "models_fallback_model": "Fallback model", + "models_remove_fallback": "Remove fallback model", + "models_add_fallback": "Add fallback model", + "models_generating": "Generating...", + "models_generate_automatically": "Generate automatically", + "models_remove_mapping": "Remove", + "models_drafts_label": "Generated failover drafts", + "models_drafts_kicker": "Generated drafts", + "models_drafts_title": "Failover models", + "models_drafts_close": "Close failover drafts", + "models_drafts_generating": "Generating failover drafts...", + "models_drafts_filter_placeholder": "Filter failover drafts...", + "models_drafts_filter_label": "Filter failover drafts", + "models_drafts_select_all": "Select all", + "models_drafts_deselect_all": "Deselect all", + "models_drafts_select": "Select failover draft for {model}", + "models_drafts_empty": "No failover suggestions were generated.", + "models_drafts_no_match": "No failover drafts match the filter.", + "models_drafts_saving": "Saving...", + "models_drafts_save_selected": "Save selected", + "api_keys_title": "API Keys", + "api_keys_create": "Create API Key", + "api_keys_unavailable": "API key management is unavailable.", + "api_keys_help": "Managed API keys authenticate requests to the gateway. Deactivation is permanent — create a new key if access needs to be restored.", + "api_keys_loading": "Loading API keys", + "api_keys_filter_placeholder": "Filter by name, description, user path, label, or token...", + "api_keys_filter_label": "Filter API keys by name, description, user path, label, or token", + "api_keys_show_inactive": "Show inactive", + "api_keys_no_match": "No API keys match the current filter.", + "api_keys_hidden": "{count} inactive keys are hidden.", + "api_keys_empty": "No API keys yet. Issue a key to get started.", + "api_keys_editor": "API key editor", + "api_keys_done": "Done, I’ve stored it", + "api_keys_creating": "Creating...", + "api_keys_store_warning": "Store this key securely — it won’t be shown again.", + "api_keys_copy_failed": "Unable to copy the key automatically. Copy it manually.", + "api_keys_name": "Name", + "api_keys_required": "required", + "api_keys_expires": "Expires", + "api_keys_expiry_help": "optional, valid through the selected date", + "api_keys_user_path": "User Path (optional)", + "api_keys_user_path_help_label": "API key user path help", + "api_keys_user_path_help": "When set, this key overrides the configured user path request header for audit logging and downstream request context.", + "api_keys_labels": "Labels (optional, comma-separated)", + "api_keys_labels_help_label": "API key labels help", + "api_keys_labels_help": "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.", + "api_keys_dashboard_access": "Dashboard Access", + "api_keys_dashboard_help_label": "API key dashboard access help", + "api_keys_dashboard_help": "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.", + "api_keys_dashboard_allow": "Allow this key to use the dashboard and /admin API", + "api_keys_description_optional": "Description (optional)", + "api_keys_description_placeholder": "What is this key used for?", + "api_keys_column_description": "Description", + "api_keys_column_user_path": "User Path", + "api_keys_column_labels": "Labels", + "api_keys_column_token": "Token", + "api_keys_column_created": "Created", + "api_keys_actions": "Actions", + "api_keys_allowed": "Allowed", + "api_keys_denied": "Denied", + "api_keys_expired": "Expired", + "api_keys_deactivated": "Deactivated", + "api_keys_edit_labels": "Edit Labels", + "api_keys_labels_editor": "API key labels editor", + "api_keys_save_labels": "Save Labels", + "api_keys_labels_field": "Labels (comma-separated)", + "api_keys_labels_edit_help": "Applies to new requests made with this key. Leave empty to remove all labels.", + "mcp_title": "MCP Servers", + "mcp_help_label": "MCP servers help", + "mcp_help": "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.", + "mcp_add": "Add MCP Server", + "mcp_unavailable": "MCP server management is unavailable.", + "mcp_loading": "Loading MCP servers...", + "mcp_filter_placeholder": "Filter by name, slug, URL, transport, or status...", + "mcp_filter_label": "Filter MCP servers by name, slug, URL, transport, or status", + "mcp_empty": "No MCP servers yet. Add one here, or declare servers in config.yaml under mcp.servers.", + "mcp_no_match": "No MCP servers match your filter.", + "mcp_catalog_label": "MCP server catalog", + "mcp_catalog_title": "Server Catalog", + "mcp_catalog_close": "Close MCP server catalog", + "mcp_catalog_loading": "Loading catalog...", + "mcp_catalog_exposed": "Exposed on the aggregated /mcp endpoint as {name}", + "mcp_catalog_empty": "No tools listed — the server may still be connecting or degraded.", + "mcp_close": "Close", + "mcp_edit": "Edit MCP Server", + "mcp_editor_label": "MCP server editor", + "mcp_identity_help": "The display name can change. The slug is the stable client-facing identity.", + "mcp_name": "Name", + "mcp_name_help": "Human-readable and Unicode-friendly. You can change it later.", + "mcp_slug": "Slug", + "mcp_slug_create_help": "Derived from the name. You may edit it before saving.", + "mcp_slug_edit_help": "Immutable because it is used in URLs, scope headers, and aggregated tool names.", + "mcp_transport": "Transport", + "mcp_transport_help": "Connect to a remote MCP server over Streamable HTTP or legacy SSE.", + "mcp_headers": "Headers", + "mcp_header_name": "Header name", + "mcp_header_value": "Header value", + "mcp_remove_header": "Remove header", + "mcp_add_header": "Add header", + "mcp_headers_help": "Sent only to the configured server origin. Leave masked values unchanged to keep the stored value.", + "mcp_advanced": "Advanced settings", + "mcp_advanced_summary": "Description, access rules, and timeout", + "mcp_description": "Description", + "mcp_allowed_tools": "Allowed tools", + "mcp_disallowed_tools": "Disallowed tools", + "mcp_user_paths": "User paths (empty means all)", + "mcp_timeout": "Tool timeout (seconds)", + "mcp_timeout_placeholder": "Default timeout when empty", + "workflows_title": "Workflows", + "workflows_note": "Active workflows are matched path-first: deepest user path wins first, then provider name and model specificity, then broader matches, then global.", + "workflows_new": "New Workflow", + "workflows_unavailable": "Workflows feature is unavailable.", + "workflows_filter_placeholder": "Filter by scope, name, hash, or guardrail...", + "workflows_filter_label": "Filter workflows", + "workflows_empty": "No active workflows found.", + "workflows_no_match": "No workflows match your filter.", + "workflows_async": "Async", + "workflows_guardrails": "Guardrails", + "workflows_no_guardrails": "No guardrails configured for this workflow.", + "providers_title": "Providers", + "providers_add": "Add Provider", + "providers_unavailable": "Provider credential management is unavailable.", + "providers_filter_placeholder": "Filter by name, type, or base URL...", + "providers_filter_label": "Filter providers by name, type, or base URL", + "providers_empty": "No dashboard-managed providers yet. Add one here, or declare providers in config.yaml or environment variables.", + "providers_no_match": "No providers match your filter.", + "providers_name": "Name", + "providers_type": "Type", + "providers_auth": "Auth", + "providers_models": "Models", + "providers_enabled": "Enabled", + "providers_updated": "Updated", + "providers_actions": "Actions", + "providers_managed": "Declared in configuration (config.yaml or env vars); read-only in the dashboard", + "rate_limits_title": "Rate Limits", + "rate_limits_create": "Create Rate Limit", + "rate_limits_unavailable": "Rate limit management is unavailable.", + "rate_limits_filter_placeholder": "Filter by subject, scope, or period...", + "rate_limits_filter_label": "Filter rate limits by subject, scope, or period", + "rate_limits_empty": "No rate limits configured yet.", + "rate_limits_no_match": "No rate limits match your filter.", + "rate_limits_effective": "Effective rate limits", + "rate_limits_add": "Add", + "rate_limits_no_rules": "No rules.", + "rate_limits_edit": "Edit", + "rate_limits_in_flight": "In-flight", + "rate_limits_requests": "Requests", + "rate_limits_tokens": "Tokens", + "guardrails_title": "Guardrails", + "guardrails_kicker": "Reusable Policy Objects", + "guardrails_library": "Guardrail Library", + "guardrails_instances": "Instances", + "guardrails_types": "Types", + "guardrails_disabled": "GUARDRAILS_ENABLED is disabled. You can still manage Guardrails, but they will not run.", + "guardrails_unavailable": "Guardrails feature is unavailable.", + "guardrails_create": "Create Guardrail", + "guardrails_filter_placeholder": "Filter by name, type, user path, summary...", + "guardrails_filter_label": "Filter Guardrails", + "guardrails_name": "Name", + "guardrails_type": "Type", + "guardrails_user_path": "User Path", + "guardrails_summary": "Summary", + "guardrails_actions": "Actions", + "guardrails_empty": "No Guardrails defined yet.", + "guardrails_help_label": "Guardrails help", + "guardrails_help": "Reusable policy objects stored in the database and kept hot in memory for Workflow execution.", + "guardrails_library_help": "Store Guardrails in the database, keep them hot in memory, and attach them to Workflows by reference.", + "guardrails_instances_help": "Each instance has a reusable name, a type, an optional user path for visibility scoping, and a JSON-backed config payload.", + "guardrails_loading": "Loading Guardrails...", + "guardrails_no_summary": "No summary yet.", + "workflows_editor": "Workflow editor", + "workflows_help_label": "Workflow help", + "workflows_help": "Create an immutable version. Submitting activates it for the selected scope.", + "workflows_edit": "Edit Workflow", + "workflows_create": "Create Workflow", + "workflows_provider_name": "Provider Name", + "workflows_all_scope": "All providers and models", + "workflows_model": "Model", + "workflows_all_provider_models": "All models for provider", + "workflows_name": "Name", + "workflows_name_placeholder": "Optional. Defaults to scope label.", + "workflows_user_path": "User Path", + "workflows_scope_help": "Leave provider name empty to target all providers and models. Select a provider without a model to target all its models.", + "workflows_path_help": "Add a path to scope the Workflow to that subtree. Leading slashes are optional and normalized. The deepest user path matches first.", + "workflows_name_help": "If the name is empty, the Workflow displays as its matched scope or All models.", + "workflows_description": "Description", + "workflows_description_placeholder": "Optional operator note for why this version exists.", + "workflows_cache": "Cache", + "workflows_audit": "Audit Logs", + "workflows_usage": "Usage", + "workflows_budget": "Budget", + "workflows_failover": "Failover", + "workflows_preview": "Preview", + "workflows_live": "Live", + "workflows_guardrail_steps": "Guardrail Steps", + "workflows_steps_help": "Guardrails in the same numeric step run together. Later steps wait for earlier ones to finish.", + "workflows_add_step": "Add Step", + "workflows_no_registered_guardrails": "No named Guardrails are currently registered. You can still draft a Workflow, but creation may be rejected.", + "workflows_open_guardrails": "Open Guardrails", + "workflows_guardrail_reference": "Guardrail reference", + "workflows_step": "Step", + "workflows_remove": "Remove", + "workflows_no_steps": "No Guardrail steps configured yet.", + "rate_limits_edit_title": "Edit Rate Limit", + "rate_limits_editor": "Rate limit editor", + "rate_limits_save": "Save Rate Limit", + "rate_limits_scope": "Scope", + "rate_limits_period": "Period", + "rate_limits_period_seconds": "Period Seconds", + "rate_limits_max_in_flight": "Max In-Flight Requests", + "rate_limits_max_requests": "Max Requests", + "rate_limits_max_tokens": "Max Tokens", + "rate_limits_editor_help": "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.", + "rate_limits_edit_help": "Scope, subject, and period identify the rule. Changing any of them moves the rule and restarts its live counters.", + "guardrails_edit": "Edit Guardrail", + "guardrails_editor": "Guardrail editor", + "guardrails_save": "Save Guardrail", + "guardrails_editor_help": "Workflows reference these names directly, so renames are intentionally avoided after creation.", + "guardrails_description": "Description", + "guardrails_description_placeholder": "What this Guardrail is meant to do", + "guardrails_user_path_help_label": "Guardrail user path help", + "guardrails_user_path_help": "Only used for auxiliary rewrite Guardrails; ignored for other Guardrail types.", + "settings_budget_monthly": "Monthly", + "settings_budget_weekly": "Weekly", + "settings_budget_daily": "Daily", + "settings_budget_day_of_month_help_label": "Day of month help", + "settings_budget_day_of_month": "Day of Month", + "settings_budget_day_of_month_help": "If the selected day does not exist in a month, the reset runs on the last day of that month.", + "settings_budget_day_of_week": "Day of Week", + "settings_budget_hour": "Hour", + "settings_budget_minute": "Minute", + "settings_budget_save": "Save Budget Settings", + "settings_budget_loading": "Loading budget settings", + "settings_budget_load_failed": "Unable to load budget settings.", + "settings_budget_save_failed": "Unable to save budget settings.", + "settings_budget_saved": "Budget settings saved.", + "settings_weekday_sunday": "Sunday", + "settings_weekday_monday": "Monday", + "settings_weekday_tuesday": "Tuesday", + "settings_weekday_wednesday": "Wednesday", + "settings_weekday_thursday": "Thursday", + "settings_weekday_friday": "Friday", + "settings_weekday_saturday": "Saturday", + "settings_tagging_title": "Tagging based on headers", + "settings_tagging_help_label": "Tagging help", + "settings_tagging_help": "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.", + "settings_tagging_header": "Header", + "settings_tagging_prefix": "Prefix to trim (optional)", + "settings_tagging_delimiter": "Delimiter", + "settings_tagging_do_not_pass": "Do not pass upstream", + "settings_tagging_config_help": "Declared in config.yaml or TAGGING_HEADER_* environment variables; read-only here.", + "settings_tagging_remove": "Remove", + "settings_tagging_remove_label": "Remove tagging header {header}", + "settings_tagging_loading": "Loading tagging settings", + "settings_tagging_empty": "No tagging headers configured. Requests are not labelled.", + "settings_tagging_add": "Add Header", + "settings_tagging_save": "Save Tagging Settings", + "settings_tagging_load_failed": "Unable to load tagging settings.", + "settings_tagging_save_failed": "Unable to save tagging settings.", + "settings_tagging_saved": "Tagging settings saved.", + "settings_runtime_refresh_title": "Runtime Refresh", + "settings_runtime_refresh_help_label": "Runtime refresh help", + "settings_runtime_refresh_help": "Pull the latest model metadata, provider inventory, API keys, aliases, model access rules, Guardrails, and Workflows.", + "settings_runtime_refresh_action": "Refresh", + "settings_runtime_refresh_completed": "Runtime refresh completed.", + "settings_runtime_refreshed": "Runtime refreshed.", + "settings_runtime_refresh_warnings": "Runtime refresh completed with warnings.", + "settings_runtime_refresh_failed": "Runtime refresh failed.", + "settings_runtime_refresh_summary": "{status} {models} · {providers}.", + "settings_runtime_refresh_models": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} model", + "count_plural=*": "{count} models" + } + } + ], + "settings_runtime_refresh_providers": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} provider", + "count_plural=*": "{count} providers" + } + } + ], + "settings_runtime_processing_title": "AI Processing", + "settings_runtime_load_failed": "Unable to load runtime settings.", + "settings_runtime_save_failed": "Unable to save {setting}.", + "settings_runtime_saved": "{setting} saved.", + "settings_runtime_managed_by": "Managed by {source}", + "settings_runtime_environment": "environment", + "settings_pricing_title": "Usage Pricing Recalculation", + "settings_pricing_help_label": "Pricing recalculation help", + "settings_pricing_help": "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.", + "settings_pricing_date_range": "Date Range", + "settings_pricing_user_path": "User Path (optional)", + "settings_pricing_selector": "Provider/Model or Alias (optional)", + "settings_pricing_selector_placeholder": "openai/gpt-4o or smart", + "settings_pricing_action": "Recalculate Pricing", + "settings_pricing_unavailable": "Usage pricing recalculation is unavailable.", + "settings_pricing_confirmation": "recalculate", + "settings_pricing_confirmation_message": "Stored usage cost fields matching the selected filters will be overwritten.", + "settings_pricing_failed": "Unable to recalculate pricing.", + "settings_pricing_summary": [ + { + "declarations": ["input matched", "input recalculated", "local matched_plural = matched: plural"], + "selectors": ["matched_plural"], + "match": { + "matched_plural=one": "Pricing recalculated for {recalculated} of {matched} usage record.", + "matched_plural=*": "Pricing recalculated for {recalculated} of {matched} usage records." + } + } + ], + "settings_pricing_missing": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} usage record still lacks pricing metadata.", + "count_plural=*": "{count} usage records still lack pricing metadata." + } + } + ], "sidebar_action_sign_out": "Sign out", "sidebar_action_enter_api_key": "Enter API key", "sidebar_action_change_api_key": "Change API key", @@ -76,5 +928,448 @@ "date_range_chart_title_daily": "Daily Token Usage", "date_range_chart_title_weekly": "Weekly Token Usage", "date_range_chart_title_monthly": "Monthly Token Usage", - "date_range_chart_title_yearly": "Yearly Token Usage" + "date_range_chart_title_yearly": "Yearly Token Usage", + "common_enabled": "Enabled", + "common_disabled": "Disabled", + "common_config": "Config", + "common_authentication_required": "Authentication required.", + "api_keys_dashboard_access_help": "Keys without dashboard access are denied the dashboard and every /admin API endpoint. Model endpoints and GET /v1/usage stay available to all keys.", + "api_keys_grant_access_action": "Grant dashboard access to API key {name}", + "api_keys_revoke_access_action": "Revoke dashboard access for API key {name}", + "api_keys_edit_labels_action": "Edit labels for API key {name}", + "api_keys_deactivate_action": "Deactivate API key {name}", + "api_keys_deactivating_action": "Deactivating API key {name}", + "api_keys_deactivated_on": "Deactivated on {date}", + "api_keys_load_failed": "Unable to load API keys.", + "api_keys_create_failed": "Failed to create API key.", + "api_keys_feature_unavailable": "Auth keys feature is unavailable.", + "api_keys_labels_update_failed": "Failed to update labels.", + "api_keys_labels_updated": "Labels updated for key \"{name}\".", + "api_keys_access_update_failed": "Failed to update dashboard access.", + "api_keys_access_granted": "Dashboard access granted to key \"{name}\".", + "api_keys_access_revoked": "Dashboard access revoked for key \"{name}\".", + "api_keys_deactivate_confirm": "Deactivate key \"{name}\"? This cannot be undone.", + "api_keys_deactivate_failed": "Failed to deactivate key.", + "api_keys_deactivate_success": "Key \"{name}\" deactivated.", + "api_keys_name_required": "Name is required.", + "api_keys_user_path_segments": "User path cannot contain \".\" or \"..\" segments.", + "api_keys_user_path_colon": "User path cannot contain \":\" segments.", + "mcp_column_transport": "Transport", + "mcp_column_endpoint": "Endpoint", + "mcp_column_status": "Status", + "mcp_column_tools": "Tools", + "mcp_column_enabled": "Enabled", + "mcp_column_actions": "Actions", + "mcp_managed": "Declared in configuration (config.yaml mcp.servers); read-only in the dashboard", + "mcp_edit_action": "Edit MCP server {name}", + "mcp_catalog_action": "Inspect catalog of MCP server {name}", + "mcp_reconnect_action": "Reconnect MCP server {name}", + "mcp_reconnecting_action": "Reconnecting MCP server {name}", + "mcp_delete_action": "Delete MCP server {name}", + "mcp_deleting_action": "Deleting MCP server {name}", + "mcp_connected_since": "Connected since {date}", + "mcp_local_command": "local command", + "mcp_sub_counts": "{prompts} prompts · {resources} resources", + "mcp_name_required": "Name is required.", + "mcp_slug_invalid": "Slug must use 1–64 lowercase ASCII letters, numbers, hyphens, or underscores.", + "mcp_slug_in_use": "Slug \"{slug}\" is already in use.", + "mcp_url_required": "URL is required.", + "mcp_timeout_invalid": "Tool timeout must be a non-negative whole number of seconds.", + "mcp_catalog_tools": "Tools", + "mcp_catalog_prompts": "Prompts", + "mcp_catalog_resources": "Resources", + "mcp_catalog_templates": "Resource templates", + "mcp_load_failed": "Failed to load MCP servers.", + "mcp_save_failed": "Failed to save MCP server.", + "mcp_saved": "MCP server \"{name}\" saved.", + "mcp_delete_confirm": "Delete MCP server \"{name}\"? Clients lose access to its tools immediately.", + "mcp_delete_failed": "Failed to delete MCP server.", + "mcp_deleted": "MCP server \"{name}\" deleted.", + "mcp_reconnect_failed": "Failed to reconnect MCP server.", + "mcp_reconnected": "MCP server \"{name}\" reconnected.", + "mcp_reconnect_disabled": "MCP server \"{name}\" is disabled; no connection was attempted.", + "mcp_reconnect_status": "Reconnect attempted, but MCP server \"{name}\" is still {status}.", + "mcp_not_found": "MCP server \"{name}\" was not found.", + "mcp_catalog_load_failed": "Failed to load MCP server catalog.", + "providers_edit": "Edit Provider", + "providers_editor": "Provider credential editor", + "providers_identity_help": "The name is the stable identity used for routing and cannot change once created.", + "providers_select_type": "Select a provider type…", + "providers_type_help": "Determines which fields the gateway uses to build requests.", + "providers_name_create_help": "Suggested from the selected type; used to route requests to this provider instance and editable before saving.", + "providers_name_edit_help": "Immutable once created.", + "providers_pick_type": "Pick a type to configure its credentials — each provider type asks for different settings.", + "providers_provider_toggle": "provider", + "providers_advanced": "Advanced settings", + "providers_api_key": "API key {number}", + "providers_remove_api_key": "Remove API key {number}", + "providers_add_key": "Add key", + "providers_default": "Provider default", + "providers_edit_action": "Edit provider {name}", + "providers_delete_action": "Delete provider {name}", + "providers_deleting_action": "Deleting provider {name}", + "providers_load_failed": "Failed to load provider credentials.", + "providers_save_failed": "Failed to save provider credential.", + "providers_saved": "Provider \"{name}\" saved.", + "providers_delete_failed": "Failed to delete provider credential.", + "providers_deleted": "Provider \"{name}\" deleted.", + "providers_delete_title": "Delete Provider", + "providers_delete_message": "Type \"{name}\" to permanently delete this provider credential. Requests routed to it will fail until it is reconfigured.", + "providers_api_keys": "API Keys", + "providers_session_sticky_keys": "Session-sticky API keys", + "providers_base_url": "Base URL", + "providers_api_version": "API Version", + "providers_backend": "Backend", + "providers_auth_type": "Auth Type", + "providers_api_mode": "API Mode", + "providers_vertex_project": "Vertex Project", + "providers_vertex_location": "Vertex Location", + "providers_service_account_file": "Service Account File", + "providers_service_account_json": "Service Account JSON", + "providers_service_account_json_base64": "Service Account JSON (base64)", + "providers_gcp_scope": "GCP Scope", + "providers_models_field": "Models (comma-separated)", + "providers_api_keys_hint": "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.", + "providers_session_sticky_hint": "Keep each identified conversation on one API key to preserve provider prompt-cache affinity. Turn off to rotate keys round-robin on every request.", + "providers_api_version_hint": "Leave empty for the provider default. Realtime endpoints may need a newer version.", + "providers_backend_hint": "Which Google surface to call. Vertex authenticates with Google credentials instead of an API key.", + "providers_auth_type_hint": "How to obtain Google credentials. Leave on the default to use Application Default Credentials.", + "providers_api_mode_hint": "Which request shape to send upstream.", + "providers_service_account_file_hint": "Path readable by the gateway process.", + "providers_service_account_json_hint": "Saved values are masked; leave the asterisks unchanged to keep the stored value, or clear it to remove.", + "providers_service_account_json_base64_hint": "Saved values are masked; leave the asterisks unchanged to keep the stored value.", + "providers_models_hint": "Leave empty to auto-discover models from the provider's /models endpoint where supported.", + "providers_default_value": "Defaults to {value}", + "providers_keys_count": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} key", + "count_plural=*": "{count} keys" + } + } + ], + "providers_service_account": "service account", + "providers_keyless": "keyless", + "providers_auto_discovered": "auto-discovered", + "providers_models_count": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} model", + "count_plural=*": "{count} models" + } + } + ], + "models_enable_action": "Enable {subject}", + "models_disable_action": "Disable {subject}", + "models_alias_subject": "alias {name}", + "models_model_subject": "model", + "models_managed_read_only": "This virtual model is managed by configuration and is read-only.", + "models_edit_action": "Edit {subject}", + "models_edit_action_override": "Edit {subject} (override exists)", + "models_edit_action_virtual": "Edit {subject} (virtual model exists)", + "models_model_pricing_for": "model pricing for {name}", + "models_provider_pricing_for": "provider pricing for {name}", + "models_global_pricing": "global model pricing", + "models_model_settings_for": "model settings for {name}", + "models_provider_access_for": "provider access for {name}", + "models_global_access": "global model access", + "models_remove_alias": "Remove alias {name}", + "models_removing_alias": "Removing alias {name}", + "models_edit_alias": "Edit alias {name}", + "models_edit_redirect": "Edit redirect for {name}", + "models_virtual_model_toggle": "virtual model", + "models_category_all": "Models", + "models_category_text_generation": "Text generation", + "models_category_embedding": "Embeddings", + "models_category_image": "Image", + "models_category_audio": "Audio", + "models_category_video": "Video", + "models_category_utility": "Utility", + "models_virtual_models_group": "Virtual models", + "models_global_scope_subject": "all providers and models", + "models_disabled_default": "Disabled by default", + "models_allowed_for": "Allowed for {paths}", + "models_count": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} model", + "count_plural=*": "{count} models" + } + } + ], + "models_alias_count": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} alias", + "count_plural=*": "{count} aliases" + } + } + ], + "models_column_modes": "Modes", + "models_column_input_output": "Input / Output ($/MTok)", + "models_column_cached": "Cached $/MTok", + "models_column_input": "Input", + "models_column_per_image": "$/Image", + "models_column_per_second": "$/Second", + "models_column_per_character": "$/Character", + "models_column_per_second_in": "$/Second (In)", + "models_column_per_second_out": "$/Second (Out)", + "models_column_per_page": "$/Page", + "models_column_per_request": "$/Request", + "workflows_save": "Save", + "workflows_saving": "Saving...", + "workflows_creating": "Creating...", + "workflows_loading": "Loading workflows...", + "workflows_timeout": "Loading workflows timed out.", + "workflows_created": "Workflow created and activated.", + "workflows_deactivate_confirm": "Deactivate Workflow \"{name}\"? Requests will fall back to the next active Workflow for this scope.", + "workflows_deactivated": "Workflow deactivated.", + "workflows_on": "On", + "workflows_off": "Off", + "workflows_none": "None", + "workflows_steps_count": "{count} steps", + "workflows_one_step": "1 step", + "workflows_step_number": "step {number}", + "workflows_deactivate_action": "Deactivate Workflow {name}", + "workflows_deactivate_active": "Deactivate active Workflow", + "workflows_global_no_deactivate": "The global Workflow cannot be deactivated.", + "workflows_deactivating": "Deactivating...", + "workflows_deactivate": "Deactivate", + "workflows_edit_action": "Edit Workflow {name}", + "workflows_version": "version: v{version}", + "workflows_created_at": "created: {date}", + "workflows_hash": "hash: {hash}", + "workflows_scope_provider_model": "Provider Name + Model", + "workflows_scope_provider_model_path": "Provider Name + Model + Path", + "workflows_scope_provider_path": "Provider Name + Path", + "workflows_scope_path": "Path", + "workflows_scope_provider": "Provider Name", + "workflows_scope_global": "Global", + "workflows_all_models": "All models", + "workflows_provider_invalid": "Choose a registered provider name.", + "workflows_model_requires_provider": "Model selection requires a provider name.", + "workflows_model_invalid": "Choose a registered model for the selected provider name.", + "workflows_guardrail_ref_required": "Each guardrail step needs a guardrail ref.", + "workflows_guardrail_step_invalid": "Each guardrail step must use a non-negative integer step number.", + "workflows_guardrail_ref_unique": "Each guardrail ref may appear only once in a workflow.", + "guardrails_unknown": "Unknown", + "guardrails_name_required": "Name is required.", + "guardrails_type_required": "Type is required.", + "guardrails_save_failed": "Failed to save Guardrail.", + "guardrails_saved": "Guardrail \"{name}\" saved.", + "guardrails_edit_action": "Edit Guardrail {name}", + "guardrails_delete_action": "Delete Guardrail {name}", + "guardrails_deleting_action": "Deleting Guardrail {name}", + "guardrails_delete_confirm": "Delete Guardrail \"{name}\"? Workflows that still reference it must be updated first.", + "guardrails_delete_failed": "Failed to delete Guardrail.", + "guardrails_deleted": "Guardrail \"{name}\" deleted.", + "rate_limits_rule_scope": "Rule scope: {scope}", + "rate_limits_config_read_only": "Declared in configuration; read-only in the dashboard", + "rate_limits_managed": "Managed via dashboard or admin API", + "rate_limits_edit_action": "Edit rate limit", + "rate_limits_resetting_counters": "Resetting counters", + "rate_limits_reset_counters": "Reset counters", + "rate_limits_resetting": "Resetting", + "rate_limits_reset": "Reset", + "rate_limits_deleting_action": "Deleting rate limit", + "rate_limits_delete_action": "Delete rate limit", + "rate_limits_deleting": "Deleting", + "rate_limits_delete": "Delete", + "rate_limits_in_flight_progress": "{used} of {limit} in flight", + "rate_limits_requests_progress": "{used} of {limit} requests", + "rate_limits_tokens_progress": "{used} of {limit} tokens", + "rate_limits_left": "{count} left", + "rate_limits_load_failed": "Unable to load rate limits.", + "rate_limits_save_failed": "Unable to save rate limit.", + "rate_limits_moved": "Rate limit moved; Live counters restarted.", + "rate_limits_saved": "Rate limit saved.", + "rate_limits_move_cleanup_failed": "The new rule was saved, but the previous one could not be removed. Delete it manually.", + "rate_limits_delete_failed": "Unable to delete rate limit.", + "rate_limits_deleted": "Rate limit deleted.", + "rate_limits_reset_failed": "Unable to reset rate limit.", + "rate_limits_reset_success": "Rate limit counters reset.", + "rate_limits_user_path": "User path", + "rate_limits_user_path_chip": "user path", + "rate_limits_provider": "Provider", + "rate_limits_provider_chip": "provider", + "rate_limits_provider_name": "Provider Name", + "rate_limits_model": "Model", + "rate_limits_model_chip": "model", + "rate_limits_per_minute": "Per minute", + "rate_limits_per_hour": "Per hour", + "rate_limits_per_day": "Per day", + "rate_limits_concurrent": "Concurrent (in-flight)", + "rate_limits_custom_seconds": "Custom seconds", + "rate_limits_period_required": "Period seconds is required.", + "rate_limits_field_required": "{field} is required.", + "rate_limits_period_invalid": "Period seconds must be a positive integer (0 only for the concurrent period).", + "rate_limits_limit_required": "Set max requests, max tokens, or both.", + "rate_limits_concurrent_tokens_invalid": "Token limits are not valid for the concurrent period.", + "rate_limits_requests_invalid": "Max requests must be a positive integer.", + "rate_limits_tokens_invalid": "Max tokens must be a positive integer.", + "rate_limits_model_limits": "Model limits", + "rate_limits_provider_limits": "Provider limits ({provider})", + "rate_limits_provider_hint": "Shared by every model routed to this provider.", + "rate_limits_global_limits": "Global limits", + "rate_limits_global_hint": "Root User Path rules throttle all traffic. Narrower User Path rules also apply, per consumer.", + "rate_limits_for": "Rate limits for {subject}", + "rate_limits_direct": "direct limits configured", + "rate_limits_inherited": "inherited limits apply", + "models_load_failed": "Unable to load virtual models.", + "models_alias_update_failed": "Failed to update alias state.", + "models_alias_enabled": "Alias enabled.", + "models_alias_disabled": "Alias disabled.", + "models_access_update_failed": "Failed to update model access.", + "models_model_enabled": "Model enabled.", + "models_model_disabled": "Model disabled.", + "models_remove_failed": "Failed to remove virtual model.", + "models_removed": "Virtual model removed.", + "models_redirect_remove_failed": "Failed to remove redirect.", + "models_redirect_removed": "Redirect removed. Other virtual model settings were preserved.", + "models_managed_cannot_edit": "This virtual model is managed by configuration and cannot be edited here.", + "models_managed_cannot_remove": "This virtual model is managed by configuration and cannot be removed here.", + "models_source_required": "Source is required.", + "models_source_exists": "Choose a different Source or edit the existing virtual model.", + "models_source_masks": "Choose a different Source to avoid masking an existing model.", + "models_save_failed": "Failed to save virtual model.", + "models_alias_saved": "Alias saved.", + "models_access_reset": "Model access reset to inherited/default.", + "models_access_saved": "Model access saved.", + "models_strategy_round_robin": "Round-robin (rotate across targets; honors weights)", + "models_strategy_cost": "Lowest cost (cheapest target per request)", + "models_strategy_adaptive": "Adaptive (target chosen by the registered routing extension)", + "models_invalid": "Invalid", + "models_active": "Active", + "models_unassigned": "Unassigned", + "models_pricing_load_failed": "Unable to load model pricing overrides.", + "models_pricing_global_scope": "All providers and models", + "models_pricing_provider_scope": "All models in {provider}", + "models_pricing_provider": "Provider", + "models_pricing_exact_scope": "This provider and model", + "models_pricing_model_scope": "This model across providers", + "models_pricing_fallback_title": "Pricing", + "models_pricing_selector_required": "Model pricing selector is required.", + "models_pricing_feature_unavailable": "Model pricing overrides feature is unavailable.", + "models_pricing_save_failed": "Failed to save model pricing.", + "models_pricing_saved": "Model pricing saved.", + "models_pricing_remove_failed": "Failed to remove model pricing override.", + "models_pricing_removed": "Model pricing override removed.", + "models_price_input": "Input $/MTok", + "models_price_output": "Output $/MTok", + "models_price_cached_input": "Cached input $/MTok", + "models_price_cache_write": "Cache write $/MTok", + "models_price_reasoning_output": "Reasoning output $/MTok", + "models_price_batch_input": "Batch input $/MTok", + "models_price_batch_output": "Batch output $/MTok", + "models_price_audio_input": "Audio input $/MTok", + "models_price_audio_output": "Audio output $/MTok", + "models_price_per_image": "$/Image", + "models_price_input_image": "Input $/Image", + "models_price_input_second": "Input $/Second", + "models_price_output_second": "Output $/Second", + "models_price_per_character": "$/Character", + "models_price_per_page": "$/Page", + "models_price_per_request": "$/Request", + "models_price_group_tokens": "Tokens", + "models_price_group_batch": "Batch", + "models_price_group_audio": "Audio", + "models_price_group_image": "Image", + "models_price_group_audio_video": "Audio/Video", + "models_price_group_video": "Video", + "models_price_group_utility": "Utility", + "models_price_registry": "Model registry", + "models_price_unknown": "Unknown", + "models_price_override_source": "Dashboard/API override", + "models_price_override_source_selector": "Dashboard/API override ({selector})", + "models_price_choose_type": "Choose a price type for every row.", + "models_price_unique_type": "Each price type can only be used once.", + "models_price_enter_value": "Enter a value for {field}.", + "models_price_invalid_value": "Pricing values must be numbers greater than or equal to 0.", + "models_price_add_field": "Add at least one pricing field before saving.", + "models_price_form_value": "Form/API value", + "models_price_unset": "Unset", + "models_failover_load_failed": "Unable to load Failover mappings.", + "models_failover_primary_required": "Primary model is required.", + "models_failover_target_required": "Add at least one Failover target.", + "models_failover_save_failed": "Failed to save Failover mapping.", + "models_failover_mapping_saved": "Failover mapping saved.", + "models_failover_remove_confirm": "Remove Failover mapping for \"{source}\"?", + "models_failover_remove_failed": "Failed to remove Failover mapping.", + "models_failover_removed": "Failover mapping removed.", + "models_failover_generate_failed": "Failed to generate Failover mapping.", + "models_failover_no_suggestions": "No Failover suggestions were generated for this model.", + "models_failover_generated": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "Generated {count} Fallback model.", + "count_plural=*": "Generated {count} Fallback models." + } + } + ], + "models_failover_reset_title": "Remove Failover models", + "models_failover_reset_message": "Remove every dashboard-managed Failover mapping. Configuration-managed mappings remain active.", + "models_failover_reset_confirm": "Remove Failover", + "models_failover_remove_all_failed": "Failed to remove Failover mappings.", + "models_failover_remove_all_success": "Dashboard-managed Failover mappings removed.", + "models_failover_generate_all_failed": "Failed to generate Failover mappings.", + "models_failover_selected_count": "{selected} / {total} selected", + "models_failover_select_required": "Select at least one Failover draft.", + "models_failover_draft_invalid": "Generated Failover draft is missing model data.", + "models_failover_saved": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "Saved {count} Failover mapping.", + "count_plural=*": "Saved {count} Failover mappings." + } + } + ], + "models_failover_save_all_failed": "Failed to save Failover mappings.", + "models_failover_edit_for": "Edit failover for {model}", + "models_failover_edit_active": "Edit failover for {model} (active)", + "providers_paste_service_account": "Paste service account JSON", + "providers_type_required": "Select a provider type.", + "providers_name_required": "Name is required.", + "providers_name_slash": "Name cannot contain '/' — it separates the provider from the model.", + "providers_key_required": "At least one API key is required for this provider type.", + "providers_key_blank": "Remove the empty row instead of leaving a key blank.", + "providers_url_scheme": "Include the scheme, e.g. https://{value}", + "providers_json_invalid": "Paste the service account JSON file's contents — this is not valid JSON.", + "providers_already_exists": "Provider \"{name}\" already exists.", + "providers_field_required": "{field} is required for this provider type.", + "mcp_status_connected": "Connected", + "mcp_status_degraded": "Degraded", + "mcp_status_connecting": "Connecting", + "mcp_status_disabled": "Disabled", + "mcp_description_placeholder": "Optional description", + "mcp_allowed_tools_placeholder": "search_issues, get_file (comma-separated; empty allows all)", + "mcp_disallowed_tools_placeholder": "delete_repo (comma-separated)", + "workflows_client": "Client", + "workflows_auth": "Auth", + "workflows_response": "Response", + "workflows_audit_log": "Audit Log", + "workflows_hit_semantic": "Hit (Semantic)", + "workflows_hit_exact": "Hit (Exact)", + "workflows_exceeded": "Exceeded", + "workflows_redirected": "Redirected", + "models_remove_alias_confirm": "Remove the virtual model alias \"{source}\"?", + "models_remove_redirect_confirm": "Remove the redirect for \"{source}\"? Other virtual model settings will be preserved.", + "models_overwrite_alias_confirm": "A virtual model named \"{name}\" already exists. Saving will update that virtual model. Continue?", + "models_overwrite_policy_confirm": "An access policy for \"{source}\" already exists. Saving will update that virtual model. Continue?", + "models_mask_create_confirm": "A model named \"{name}\" already exists. Creating this alias will mask that model in the list. Continue?", + "models_source_conflict": "A virtual model for \"{source}\" already exists. Choose a different Source.", + "models_mask_rename_confirm": "A model named \"{name}\" already exists. Renaming to that name will mask the model in the list. Continue?", + "models_remove_policy_confirm": "Remove the virtual model for \"{source}\"? This reverts to inherited/default behavior.", + "models_pricing_remove_confirm": "Remove the model pricing override for \"{selector}\"?" } diff --git a/web/dashboard/messages/pl.json b/web/dashboard/messages/pl.json new file mode 100644 index 000000000..6adb8616c --- /dev/null +++ b/web/dashboard/messages/pl.json @@ -0,0 +1,1407 @@ +{ + "$schema": "https://inlang.com/schema/inlang-message-format", + "common_action_cancel": "Anuluj", + "common_action_next": "Dalej", + "common_action_previous": "Wstecz", + "common_label_admin": "Admin", + "navigation_overview": "Przegląd", + "navigation_providers": "Dostawcy", + "navigation_models": "Modele", + "navigation_audit_logs": "Logi audytowe", + "navigation_usage": "Zużycie", + "navigation_budgets": "Budżety", + "navigation_rate_limits": "Limity zapytań", + "navigation_api_keys": "Klucze API", + "navigation_workflows": "Workflows", + "navigation_guardrails_experimental": "Guardrails (eksperymentalne)", + "navigation_mcp_servers": "Serwery MCP", + "navigation_settings": "Ustawienia", + "overview_usage_title": "Przegląd zużycia", + "usage_interval_label": "Interwał wykresu zużycia", + "usage_interval_daily": "Dziennie", + "usage_interval_weekly": "Tygodniowo", + "usage_interval_monthly": "Miesięcznie", + "usage_interval_yearly": "Rocznie", + "usage_loading": "Wczytywanie danych o zużyciu", + "usage_title": "Analityka zużycia", + "usage_mode_label": "Tryb zużycia", + "usage_filters_label": "Filtry danych o zużyciu", + "usage_filter_model": "Filtruj według modelu", + "usage_filter_provider": "Filtruj według dostawcy", + "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_all_models": "Wszystkie modele", + "usage_all_providers": "Wszyscy dostawcy", + "usage_all_labels": "Wszystkie etykiety", + "usage_cache_saved": "Oszczędność z cache", + "usage_pro_saved": "Oszczędność Pro", + "usage_loading_summary": "Wczytywanie podsumowania zużycia", + "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_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_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_show_chart": "Pokaż wykres {noun}", + "usage_show_stacked_chart": "Pokaż skumulowany wykres {noun}", + "usage_show_table": "Pokaż tabelę {noun}", + "usage_chart": "Wykres", + "usage_stacked": "Skumulowany", + "usage_table": "Tabela", + "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_column_model": "Model", + "usage_column_provider": "Dostawca", + "usage_column_user_path": "User Path", + "usage_column_label": "Etykieta", + "usage_column_requests": "Requesty", + "usage_column_input_tokens": "Input Tokens", + "usage_column_output_tokens": "Output Tokens", + "usage_column_prompt_cached": "Prompt z cache", + "usage_column_local_cached": "Lokalny cache", + "usage_column_total_tokens": "Wszystkie tokeny", + "usage_column_input_cost": "Koszt wejścia", + "usage_column_output_cost": "Koszt wyjścia", + "usage_column_total_cost": "Łączny koszt", + "usage_prompt_cached_help": "Odczyty z prompt cache dostawcy uwzględnione w input tokens", + "usage_local_cached_help": "Tokeny obsłużone przez lokalny response cache GoModel (wyłączone z pozostałych kolumn)", + "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_hide_cached": "Ukryj Requesty z cache", + "usage_column_timestamp": "Znacznik czasu", + "usage_column_labels": "Etykiety", + "usage_column_cache": "Cache", + "usage_column_provider_cache": "Cache dostawcy", + "usage_provider_cache_help": "Część input tokens obsłużona przez prompt cache dostawcy", + "usage_column_input": "Wejście", + "usage_column_output": "Wyjście", + "usage_column_total": "Łącznie", + "usage_column_cost": "Koszt", + "usage_tokens_count": "{count} tokenów", + "usage_loading_log": "Wczytywanie dziennika Request'ów", + "usage_clear_label_filter": "Wyczyść filtr etykiety", + "usage_filter_by_label_value": "Filtruj zużycie według etykiety \"{label}\"", + "usage_cached_hidden": "Ukryte Requesty z cache: {count}", + "usage_requests_sources": "{provider} do dostawców + {cache} z cache", + "usage_cost_split": "{input} wejście + {output} wyjście", + "usage_rewrite_estimate": "Szacunek: 4 usunięte znaki netto na token", + "usage_less": "o {percent}% mniej", + "usage_rewrite_tokens_removed": "Szacowana liczba transmisji tokenów promptu usuniętych z Request'ów do dostawców: {count}", + "usage_rewrite_summed": "Oszczędności są sumowane dla każdego Requestu do dostawcy; ponownie wysłana historia rozmowy jest liczona ponownie", + "usage_rewrite_cost_avoided": "Szacowany uniknięty koszt brutto wejścia: {cost}", + "usage_rewrite_cache_excluded": "Nie uwzględniono zmian prompt cache wynikających z przepisywania", + "usage_rewrite_comparison": "{percent} niż dla tego samego ruchu bez przepisywania ({mode})", + "usage_mode_cost": "koszt", + "usage_mode_tokens": "tokeny", + "usage_openrouter_cost_source": "Koszty na podstawie kredytów OpenRouter w USD.", + "usage_xai_cost_source": "Koszty na podstawie xAI usage.cost_in_usd_ticks.", + "usage_cache_exact": "Dokładny", + "usage_cache_semantic": "Semantyczny", + "usage_cache_not_charged": "Oszczędzone dzięki cache — bez opłaty", + "usage_provider_cache_title": "{cached} z cache / {total} input tokens", + "usage_cache_write": "Zapis do cache: {count}", + "usage_cost_input_line": "Wejście: {cost}", + "usage_cost_output_line": "Wyjście: {cost}", + "usage_prompt_cached_cost": "Koszt promptu z cache", + "usage_locally_cached_input": "Lokalny cache (wejście)", + "usage_locally_cached_output": "Lokalny cache (wyjście)", + "settings_title": "Ustawienia", + "common_action_clear": "Wyczyść", + "common_action_expand": "rozwiń", + "common_action_collapse": "zwiń", + "common_action_send": "Wyślij", + "common_action_sending": "Wysyłanie…", + "common_copy_failed": "Kopiowanie nie powiodło się", + "audit_title": "Logi audytowe", + "audit_retention_help_label": "Pomoc dotycząca retencji", + "audit_retention_help": "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.", + "audit_retention_prefix_indefinite": "Logi audytowe są przechowywane ", + "audit_retention_prefix_days": "Logi audytowe są przechowywane przez ", + "audit_retention_indefinitely": "czas nieokreślony", + "audit_retention_days": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} dzień", + "count_plural=few": "{count} dni", + "count_plural=many": "{count} dni", + "count_plural=*": "{count} dnia" + } + } + ], + "audit_logging_disabled_before_config": "Rejestrowanie audytu jest wyłączone. Wpisy Live są tymczasowe i znikają po odświeżeniu. Ustaw ", + "audit_logging_disabled_after_config": ", aby je zachować.", + "audit_summary_sessions": "Wyświetlanie {start}–{end} z {total} sesji", + "audit_summary_logs": "Wyświetlanie {start}–{end} z {total} logów", + "audit_group_by_session": "Grupuj według sesji", + "audit_loading": "Wczytywanie logów audytowych", + "audit_search_placeholder": "Szukaj według ID Requestu, modelu, dostawcy, ścieżki, User Path lub błędu…", + "audit_search_label": "Szukaj według ID Requestu, modelu, dostawcy, ścieżki, User Path lub błędu", + "audit_filter_method_label": "Filtr metody HTTP", + "audit_filter_all_methods": "Wszystkie metody", + "audit_filter_status_label": "Filtr kodu statusu", + "audit_filter_all_statuses": "Wszystkie statusy", + "audit_filter_stream_label": "Filtr trybu streamingu", + "audit_filter_all_modes": "Wszystkie tryby", + "audit_filter_streaming": "Streaming", + "audit_filter_non_streaming": "Bez streamingu", + "audit_live_connecting": "Łączenie ze strumieniem Live…", + "audit_live": "Live", + "audit_live_pause_date_range": "Live wstrzymany — wybrany zakres dat nie obejmuje dzisiaj. Ustaw datę dzisiejszą, aby wznowić.", + "audit_live_pause_filters": "Live wstrzymany, gdy filtry są aktywne. Wyczyść je, aby wznowić.", + "audit_live_pause_pagination": "Live wstrzymany na dalszych stronach. Przejdź do pierwszej strony, aby wznowić.", + "audit_session_description": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "Sesja z {count} Requestem", + "count_plural=few": "Sesja z {count} Requestami", + "count_plural=many": "Sesja z {count} Requestami", + "count_plural=*": "Sesja z {count} Requestu" + } + } + ], + "audit_status": "Status {status} · {method}", + "audit_open_interactions": "Otwórz interakcje", + "audit_close_interactions": "Zamknij interakcje", + "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_error_message_title": "Komunikat błędu", + "audit_headers_title": "Nagłówki", + "audit_copy_headers": "Kopiuj nagłówki", + "audit_body_title": "Treść", + "audit_streaming": "streaming", + "audit_copy_body": "Kopiuj treść", + "audit_request_response_label": "Request i odpowiedź", + "audit_rewrite_savings_help": "Część treści Requestu usunięta podczas tego przetwarzania", + "audit_request_title": "Request", + "audit_response_title": "Odpowiedź", + "audit_rewritten_title": "Po przetworzeniu", + "audit_what_changed_title": "Co się zmieniło", + "audit_attempt_failed": "Próba dostawcy nie powiodła się", + "audit_provider_attempts": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} próba dostawcy", + "count_plural=few": "{count} próby dostawców", + "count_plural=many": "{count} prób dostawców", + "count_plural=*": "{count} próby dostawcy" + } + } + ], + "audit_provider_attempts_failed": "Próby dostawców: {count} · nieudane: {failed}", + "audit_attempt_succeeded": "powodzenie", + "audit_attempt_failed_status": "niepowodzenie", + "audit_attempt_not_captured": "Nie zapisano odpowiedzi dla tej próby.", + "audit_request_not_captured": "Nie zapisano szczegółów Requestu.", + "audit_waiting_request_data": "Oczekiwanie na dane Requestu…", + "audit_request_body_too_large": "Treść Requestu była zbyt duża, aby ją zapisać.", + "audit_response_not_captured": "Nie zapisano szczegółów odpowiedzi.", + "audit_response_in_progress": "Odpowiedź w toku…", + "audit_response_body_too_large": "Treść odpowiedzi była zbyt duża, aby ją zapisać.", + "audit_rewritten_body_not_captured": "Nie zapisano przetworzonej treści (rejestrowanie treści jest wyłączone lub treść jest zbyt duża).", + "audit_rewriter_no_change": "{rewriter}: bez zmian", + "audit_rewriter_unchanged_help": "{rewriter} uruchomił się i przekazał Request bez zmian", + "audit_cached_count": "{count} z cache", + "audit_cached_percent": "{percent}% z cache", + "audit_audio_too_large": "Audio jest zbyt duże, aby je zapisać.", + "audit_audio_not_logged": "Audio nie zostało zapisane. Ustaw LOGGING_LOG_AUDIO_BODIES=true, aby zapisywać audio możliwe do odtworzenia.", + "interaction_resize_label": "Zmień szerokość panelu interakcji", + "interaction_title": "Interakcje", + "interaction_following_latest": "Śledzenie najnowszej interakcji", + "interaction_viewing_history": "Wyświetlanie historycznej interakcji", + "interaction_following_latest_help": "Śledzenie najnowszej interakcji w miarę pojawiania się nowych zdarzeń", + "interaction_viewing_history_help": "Wyświetlanie historycznej interakcji; aktualizacje Live nie są śledzone", + "interaction_exit_fullscreen": "Wyłącz pełny ekran interakcji", + "interaction_show_fullscreen": "Wyświetl interakcje na pełnym ekranie", + "interaction_exit_fullscreen_short": "Wyłącz pełny ekran", + "interaction_fullscreen": "Pełny ekran", + "interaction_close": "Zamknij interakcje", + "interaction_navigation": "Nawigacja między wiadomościami interakcji", + "interaction_previous_message": "Poprzednia wiadomość", + "interaction_next_message": "Następna wiadomość", + "interaction_loading": "Wczytywanie interakcji…", + "interaction_empty": "Brak danych interakcji dla tego wpisu.", + "interaction_hide_cache_fill": "Ukryj szacowane wykorzystanie prompt cache dostawcy", + "interaction_show_cache_fill": "Pokaż szacowane wykorzystanie prompt cache dostawcy", + "interaction_cache_legend": "Niebieskie wypełnienie pokazuje część promptu z cache", + "interaction_estimated": "(szacunkowo)", + "interaction_truncated": "Wyświetlanie najnowszej części tej sesji i wybranego logu.", + "interaction_send_label": "Wyślij wiadomość", + "interaction_placeholder": "Kontynuuj tę interakcję…", + "interaction_model_responding": "Model odpowiada…", + "interaction_load_unavailable": "Nie można wczytać interakcji.", + "interaction_load_failed": "Wczytywanie interakcji nie powiodło się.", + "interaction_send_unavailable": "Nie można wysłać wiadomości.", + "interaction_request_timed_out": "Upłynął limit czasu Requestu.", + "interaction_send_failed": "Wysyłanie wiadomości nie powiodło się.", + "interaction_saved_unavailable": "Wiadomość została wysłana, ale jej zapisana interakcja nie jest jeszcze dostępna.", + "interaction_role_system": "Prompt systemowy", + "interaction_role_agent": "Agent", + "interaction_role_error": "Błąd", + "interaction_role_function_call": "Wywołanie funkcji", + "interaction_role_function_result": "Wynik funkcji", + "interaction_role_user": "Użytkownik", + "interaction_attachment_image": "[Obraz]", + "interaction_attachment_audio": "[Audio]", + "interaction_attachment_file": "[Plik]", + "interaction_attachment_named_file": "[Plik: {name}]", + "interaction_message_copied": "Wiadomość skopiowana", + "interaction_copy_message": "Kopiuj wiadomość", + "interaction_prompt_cache_estimate": "Szacuje się, że {percent}% tego widocznego elementu promptu pochodzi z cache dostawcy", + "interaction_call_id": "ID wywołania", + "interaction_call_id_named": "ID wywołania ({name})", + "interaction_no_arguments": "Brak argumentów", + "common_copied": "Skopiowano", + "overview_tokens": "Tokeny", + "overview_input_tokens": "Input Tokens", + "overview_output_tokens": "Output Tokens", + "overview_input_tokens_series": "Input Tokens", + "overview_output_tokens_series": "Output Tokens", + "overview_total_tokens": "Wszystkie tokeny", + "overview_total_requests": "Łączna liczba Request'ów", + "overview_cache_hits": "Trafienia cache", + "overview_estimated_cost": "Szacowany koszt", + "overview_local_cache": "Lokalny cache", + "overview_prompt_cache_rate": "Wskaźnik prompt cache", + "overview_prompt_cache_rate_help": "Część input tokens obsłużona przez prompt cache dostawcy w wybranym okresie", + "overview_prompt_cache_rate_label": "Wskaźnik prompt cache: {rate}", + "overview_provider_status": "Status provider'ów", + "overview_view_providers": "Zobacz przegląd dostawców", + "overview_view_mcp_servers": "Zobacz serwery MCP", + "overview_requests_by_status": "Requesty według statusu", + "overview_request_status_summary": "Podsumowanie statusów Request'ów", + "overview_success_rate_help": "Część Request'ów zakończonych statusem 2xx", + "overview_success": "Powodzenie", + "overview_provider_latency": "Opóźnienie dostawców", + "overview_provider_latency_help_label": "Pomoc dotycząca opóźnienia dostawców", + "overview_provider_latency_help": "Ś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.", + "overview_provider_latency_average_help": "Średni czas trwania udanych Request'ów bez cache dla wszystkich dostawców", + "overview_average_short": "Śr.", + "overview_providers_title": "Przegląd dostawców", + "overview_loading_provider_status": "Wczytywanie statusu dostawców", + "overview_show_details": "Pokaż szczegóły", + "overview_hide_details": "Ukryj szczegóły", + "overview_view_provider_docs": "Zobacz dokumentację dostawcy {provider}", + "overview_models_available": "Dostępne modele", + "overview_last_checked": "Ostatnio sprawdzono", + "overview_expand_provider_details": "Rozwiń szczegóły dostawcy {provider}", + "overview_collapse_provider_details": "Zwiń szczegóły dostawcy {provider}", + "overview_expand_details": "Rozwiń szczegóły", + "overview_collapse_details": "Zwiń szczegóły", + "overview_base_url": "Bazowy URL", + "overview_api_version": "Wersja API", + "overview_recent_requests": "Ostatnie Requesty", + "overview_breaker_state": "Stan circuit breakera", + "overview_models_recent_traffic": "Modele (ostatni ruch)", + "overview_configured_models": "Skonfigurowane modele", + "overview_retry": "Retry", + "overview_circuit_breaker": "Circuit Breaker", + "overview_none_configured": "Brak konfiguracji", + "overview_all_healthy": "Wszystkie działają prawidłowo", + "overview_none_healthy": "Żaden nie działa prawidłowo", + "overview_automatic": "Automatycznie", + "overview_last_error": "Ostatni błąd: {error}", + "overview_all_mcp_connected": "Wszystkie serwery MCP są połączone", + "overview_cache_share": "Udział input tokens w wybranym okresie", + "overview_no_usage": "Brak danych o zużyciu w wybranym okresie", + "overview_cache_regular": "Standardowe", + "overview_cache_regular_note": "Obejmuje {count} tokenów zapisu do cache", + "overview_cache_prompt": "Prompt cache", + "overview_cache_prompt_note": "Odczyty z prompt cache dostawcy", + "overview_cache_local": "Lokalny cache", + "overview_cache_local_note": "Obsłużone przez response cache GoModel", + "overview_cache_breakdown_label": "Podział input tokens według cache — {details}", + "overview_activity": "Aktywność", + "overview_loading_activity": "Wczytywanie aktywności", + "overview_activity_mode": "Tryb kalendarza aktywności", + "overview_costs": "Koszty", + "overview_weekday_mon": "Pon", + "overview_weekday_wed": "Śr", + "overview_weekday_fri": "Pt", + "overview_less": "Mniej", + "overview_more": "Więcej", + "overview_live_token_throughput": "Przepływ tokenów", + "overview_live_granularity": "Ziarnistość przepływu tokenów", + "overview_waiting_live_requests": "Oczekiwanie na Requesty Live…", + "overview_seconds": "Sekundy", + "overview_minutes": "Minuty", + "overview_hours": "Godziny", + "overview_days": "Dni", + "overview_last_60_seconds": "Ostatnie 60 sekund", + "overview_last_60_minutes": "Ostatnie 60 minut", + "overview_last_24_hours": "Ostatnie 24 godziny", + "overview_last_30_days": "Ostatnie 30 dni", + "overview_prompt_input_cached": "Prompt (wejście) z cache", + "overview_locally_cached": "Lokalny cache", + "overview_total_label": "Łącznie: {total}", + "overview_total_requests_help": "{provider} do dostawców + {cache} z cache", + "overview_cache_segment_title": "{label}: {tokens} input tokens ({percent}%)", + "overview_no_data": "brak danych", + "overview_provider_attention": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} wymaga uwagi", + "count_plural=few": "{count} wymagają uwagi", + "count_plural=many": "{count} wymaga uwagi", + "count_plural=*": "{count} wymaga uwagi" + } + } + ], + "overview_mcp_attention": "Serwery wymagające uwagi: {count}", + "overview_mcp_connected": "Połączone serwery: {connected} z {total}", + "overview_calendar_cost_year": "${total} w ostatnim roku", + "overview_calendar_tokens_year": "{total} tokenów w ostatnim roku", + "overview_calendar_cost_on_date": "${total} dnia {date}", + "overview_calendar_tokens_on_date": "{total} tokenów dnia {date}", + "overview_live_chart_label": "Przepływ tokenów, {window}. Input {input}, output {output}, prompt cache {prompt}, lokalny cache {local} tokenów.", + "overview_other": "Inne", + "settings_timezone_title": "Strefa czasowa", + "settings_timezone_help_label": "Pomoc dotycząca strefy czasowej", + "settings_timezone_help": "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.", + "settings_timezone_override": "Nadpisanie strefy czasowej", + "settings_timezone_automatic": "Automatycznie ({timezone})", + "settings_timezone_use_browser": "Użyj strefy czasowej przeglądarki", + "settings_failover_title": "Failover", + "settings_failover_generating": "Generowanie…", + "settings_failover_generate": "Wygeneruj modele failover automatycznie", + "settings_failover_remove_all": "Usuń wszystkie modele failover", + "settings_budget_reset_all_title": "Zresetuj wszystkie budżety", + "settings_budget_reset_all_help": "Rozpocznij nowe okresy dla wszystkich skonfigurowanych budżetów bez zmiany limitów.", + "settings_budget_reset_all_action": "Resetuj budżety", + "settings_budget_help_label": "Pomoc dotycząca budżetów", + "settings_budget_help": "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.", + "settings_budget_resets_title": "Resetowanie budżetów", + "budgets_title": "Budżety", + "budgets_help_label": "Pomoc dotycząca budżetów", + "budgets_help": "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.", + "budgets_create": "Utwórz budżet", + "budgets_unavailable": "Zarządzanie budżetami jest niedostępne.", + "budgets_loading": "Wczytywanie budżetów...", + "budgets_filter_placeholder": "Filtruj według User Path, etykiety lub okresu...", + "budgets_filter_label": "Filtruj budżety według User Path, etykiety lub okresu", + "budgets_sort_by": "Sortuj według", + "budgets_sort_label": "Sortuj budżety według", + "budgets_sort_subject": "Zakres i podmiot", + "budgets_period": "Okres", + "budgets_empty": "Nie skonfigurowano jeszcze budżetów.", + "budgets_no_match": "Żaden budżet nie pasuje do filtra.", + "budgets_edit_title": "Edytuj budżet", + "budgets_create_title": "Utwórz budżet", + "budgets_editor_label": "Edytor budżetu", + "budgets_save": "Zapisz budżet", + "budgets_scope": "Zakres", + "budgets_period_seconds": "Okres w sekundach", + "budgets_amount": "Kwota", + "budgets_edit_help": "Edycja budżetu zmienia tylko jego limit. Użyj Reset, aby rozpocząć nowy okres budżetowy.", + "budgets_override_title": "Nadpisz istniejący budżet", + "budgets_override_close": "Zamknij okno nadpisywania budżetu", + "budgets_saving": "Zapisywanie...", + "budgets_override": "Nadpisz budżet", + "budgets_scope_user_path": "User Path", + "budgets_scope_user_path_chip": "User Path", + "budgets_scope_user_path_field": "User Path", + "budgets_scope_label": "Etykieta", + "budgets_scope_label_chip": "etykieta", + "budgets_period_hourly": "Co godzinę", + "budgets_period_daily": "Codziennie", + "budgets_period_weekly": "Co tydzień", + "budgets_period_monthly": "Co miesiąc", + "budgets_period_custom": "Niestandardowa liczba sekund", + "budgets_user_path_required": "User Path jest wymagany.", + "budgets_user_path_segments": "User Path nie może zawierać segmentów \".\" ani \"..\".", + "budgets_user_path_colon": "User Path nie może zawierać segmentów z \":\".", + "budgets_label_required": "Etykieta jest wymagana.", + "budgets_amount_positive": "Kwota musi być większa od 0.", + "budgets_period_positive": "Okres w sekundach musi być większy od 0.", + "budgets_custom_period": "Niestandardowy okres: {period}", + "budgets_seconds": "{count} s", + "budgets_one_second": "1 sekunda", + "budgets_one_hour": "1 godzina", + "budgets_one_day": "1 dzień", + "budgets_one_week": "1 tydzień", + "budgets_one_month": "1 miesiąc", + "budgets_source_manual": "Utworzono w dashboardzie.", + "budgets_source_config": "Wczytano z konfiguracji.", + "budgets_source_other": "Źródło budżetu: {source}", + "budgets_remaining": "Pozostało {amount}", + "budgets_over": "Przekroczono o {amount}", + "budgets_edit": "Edytuj", + "budgets_edit_label": "Edytuj budżet", + "budgets_reset": "Reset", + "budgets_resetting": "Resetowanie", + "budgets_reset_label": "Zresetuj budżet", + "budgets_resetting_label": "Resetowanie budżetu", + "budgets_delete": "Usuń", + "budgets_deleting": "Usuwanie", + "budgets_delete_label": "Usuń budżet", + "budgets_deleting_label": "Usuwanie budżetu", + "budgets_usage": "Zużycie", + "budgets_usage_label": "Zużycie budżetu: {spent} z {amount}, {remaining}", + "budgets_spent_of": "{spent} z {amount}", + "budgets_period_elapsed": "Upływ okresu budżetowego", + "budgets_override_message": "Budżet dla \"{label}\" już istnieje. Zapisanie nadpisze bieżący limit {current} wartością {next}.", + "budgets_load_failed": "Nie udało się wczytać budżetów.", + "budgets_save_failed": "Nie udało się zapisać budżetu.", + "budgets_saved": "Budżet zapisany.", + "budgets_reset_confirm": "Zresetować budżet \"{label}\"?", + "budgets_reset_failed": "Nie udało się zresetować budżetu.", + "budgets_reset_done": "Budżet zresetowany.", + "budgets_delete_confirm": "Usunąć budżet \"{label}\"? Tej operacji nie można cofnąć.", + "budgets_delete_failed": "Nie udało się usunąć budżetu.", + "budgets_deleted": "Budżet usunięty.", + "budgets_reset_all_title": "Resetowanie budżetów", + "budgets_reset_all": "Zresetuj wszystkie budżety", + "budgets_reset_all_failed": "Nie udało się zresetować budżetów.", + "budgets_reset_all_done": "Budżety zresetowane.", + "models_title": "Modele", + "models_total_count": "Modele: {count}", + "models_unavailable": "Funkcja modeli wirtualnych jest niedostępna.", + "models_filter_placeholder": "Filtruj według dostawcy, dostawcy/modelu, aliasu lub właściciela...", + "models_filter_label": "Filtruj modele według dostawcy, dostawcy/modelu, aliasu lub właściciela", + "models_new_virtual": "Nowy model wirtualny", + "models_new_virtual_label": "Nowy alias modelu wirtualnego", + "models_alias": "Alias", + "models_empty": "Nie zarejestrowano modeli.", + "models_empty_category": "Brak modeli w tej kategorii.", + "models_no_match": "Żaden model nie pasuje do filtra.", + "models_column_model": "Model", + "models_enabled": "Włączony", + "models_disabled": "Wyłączony", + "models_restricted": "Ograniczony", + "models_updating": "Aktualizowanie...", + "models_loading": "Wczytywanie modeli...", + "models_refreshing": "Odświeżanie modeli...", + "models_rendering": "Renderowanie modeli... {visible} / {total}", + "models_all_scope": "Wszyscy dostawcy i modele", + "models_all_in_provider": "Wszystkie modele dostawcy {provider}", + "models_virtual_model": "Model wirtualny", + "models_redirect": "Przekierowanie", + "models_managed_config": "Zarządzane przez config.yaml / VIRTUAL_MODELS", + "models_config": "Config", + "models_on": "Włączone", + "models_targets": "Cele", + "models_redirects_to": "Przekierowuje do", + "models_remove": "usuń", + "models_remove_redirect": "Usuń przekierowanie dla {model}", + "models_removing_redirect": "Usuwanie przekierowania dla {model}", + "models_slowdown": "Spowolnienie", + "models_inference_time": "+{value}× czasu inferencji", + "models_editor_label": "Edytor modelu wirtualnego", + "models_save": "Zapisz", + "models_create": "Utwórz", + "models_help_label": "Pomoc dotycząca modeli wirtualnych", + "models_help": "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.", + "models_managed_help": "Ten model wirtualny jest zdefiniowany w konfiguracji i tutaj jest tylko do odczytu. Aby go zmienić, edytuj konfigurację.", + "models_source": "Źródło", + "models_add_target": "Dodaj cel (równoważenie obciążenia)", + "models_strategy": "Strategia równoważenia obciążenia", + "models_session_keeping": "Utrzymywanie sesji (kieruj wykrytą sesję klienta do celu, który ją obsłużył)", + "models_user_paths": "User Paths", + "models_user_paths_help_label": "Pomoc dotycząca ścieżek użytkownika", + "models_user_paths_help": "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.", + "models_description": "Opis", + "models_description_placeholder": "Opcjonalny opis", + "models_slowdown_field": "Spowolnienie (dodatkowy czas inferencji)", + "models_off": "Wyłączone", + "models_slowdown_help": "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.", + "models_status_summary": "Domyślnie włączony: {default} · Obecnie aktywny: {effective}", + "models_yes": "tak", + "models_no": "nie", + "models_target_model": "Model docelowy", + "models_target_weight": "Waga celu", + "models_weight": "waga", + "models_remove_target": "Usuń cel", + "models_pricing_editor": "Edytor cen modelu", + "models_pricing_save": "Zapisz ceny", + "models_pricing_override": "Nadpisanie cen", + "models_pricing": "Ceny", + "models_selector": "Selektor", + "models_scope": "Zakres", + "models_pricing_help": "Walutą jest USD. Zapisane pola nadpisują ceny z rejestru modeli i config.yaml dla tego selektora; nieustawione pola nadal są dziedziczone.", + "models_price_type": "Typ ceny", + "models_usd_value": "Wartość USD", + "models_remove_price": "Usuń {price}", + "models_add_price": "Dodaj cenę", + "models_tiered_pricing_help": "Dla tego nadpisania istnieją ceny progowe i zostaną zachowane. Edycję progów można dodać bez migracji bazy danych.", + "models_source_column": "Źródło", + "models_no_pricing": "Nie ustawiono pól cenowych.", + "models_remove_override": "Usuń nadpisanie", + "models_failover_editor": "Edytor Failover", + "models_failover_mapping": "Mapowanie Failover", + "models_failover_managed": "To mapowanie Failover jest zdefiniowane w konfiguracji i tutaj jest tylko do odczytu.", + "models_fallback_models": "Modele Fallback", + "models_fallback_model": "Model Fallback", + "models_remove_fallback": "Usuń model Fallback", + "models_add_fallback": "Dodaj model Fallback", + "models_generating": "Generowanie...", + "models_generate_automatically": "Generuj automatycznie", + "models_remove_mapping": "Usuń", + "models_drafts_label": "Wygenerowane propozycje Failover", + "models_drafts_kicker": "Wygenerowane propozycje", + "models_drafts_title": "Modele Failover", + "models_drafts_close": "Zamknij propozycje Failover", + "models_drafts_generating": "Generowanie propozycji Failover...", + "models_drafts_filter_placeholder": "Filtruj propozycje Failover...", + "models_drafts_filter_label": "Filtruj propozycje Failover", + "models_drafts_select_all": "Zaznacz wszystkie", + "models_drafts_deselect_all": "Odznacz wszystkie", + "models_drafts_select": "Zaznacz propozycję Failover dla {model}", + "models_drafts_empty": "Nie wygenerowano propozycji Failover.", + "models_drafts_no_match": "Żadna propozycja Failover nie pasuje do filtra.", + "models_drafts_saving": "Zapisywanie...", + "models_drafts_save_selected": "Zapisz zaznaczone", + "api_keys_title": "Klucze API", + "api_keys_create": "Utwórz klucz API", + "api_keys_unavailable": "Zarządzanie kluczami API jest niedostępne.", + "api_keys_help": "Zarządzane klucze API uwierzytelniają Requesty do gatewaya. Dezaktywacja jest trwała — aby przywrócić dostęp, utwórz nowy klucz.", + "api_keys_loading": "Wczytywanie kluczy API", + "api_keys_filter_placeholder": "Filtruj według nazwy, opisu, User Path, etykiety lub tokenu...", + "api_keys_filter_label": "Filtruj klucze API według nazwy, opisu, User Path, etykiety lub tokenu", + "api_keys_show_inactive": "Pokaż nieaktywne", + "api_keys_no_match": "Żaden klucz API nie pasuje do bieżącego filtra.", + "api_keys_hidden": "Ukryte nieaktywne klucze: {count}.", + "api_keys_empty": "Nie ma jeszcze kluczy API. Utwórz klucz, aby rozpocząć.", + "api_keys_editor": "Edytor klucza API", + "api_keys_done": "Gotowe, klucz został zapisany", + "api_keys_creating": "Tworzenie...", + "api_keys_store_warning": "Przechowuj ten klucz bezpiecznie — nie zostanie pokazany ponownie.", + "api_keys_copy_failed": "Nie udało się automatycznie skopiować klucza. Skopiuj go ręcznie.", + "api_keys_name": "Nazwa", + "api_keys_required": "wymagane", + "api_keys_expires": "Wygasa", + "api_keys_expiry_help": "opcjonalne, ważne do końca wybranego dnia", + "api_keys_user_path": "User Path (opcjonalny)", + "api_keys_user_path_help_label": "Pomoc dotycząca User Path klucza API", + "api_keys_user_path_help": "Po ustawieniu klucz nadpisuje skonfigurowany nagłówek User Path na potrzeby logów audytowych i kontekstu dalszych Request'ów.", + "api_keys_labels": "Etykiety (opcjonalne, rozdzielone przecinkami)", + "api_keys_labels_help_label": "Pomoc dotycząca etykiet klucza API", + "api_keys_labels_help": "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.", + "api_keys_dashboard_access": "Dostęp do dashboardu", + "api_keys_dashboard_help_label": "Pomoc dotycząca dostępu klucza API do dashboardu", + "api_keys_dashboard_help": "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.", + "api_keys_dashboard_allow": "Zezwól temu kluczowi na korzystanie z dashboardu i /admin API", + "api_keys_description_optional": "Opis (opcjonalny)", + "api_keys_description_placeholder": "Do czego służy ten klucz?", + "api_keys_column_description": "Opis", + "api_keys_column_user_path": "User Path", + "api_keys_column_labels": "Etykiety", + "api_keys_column_token": "Token", + "api_keys_column_created": "Utworzono", + "api_keys_actions": "Akcje", + "api_keys_allowed": "Dozwolony", + "api_keys_denied": "Zablokowany", + "api_keys_expired": "Wygasł", + "api_keys_deactivated": "Dezaktywowany", + "api_keys_edit_labels": "Edytuj etykiety", + "api_keys_labels_editor": "Edytor etykiet klucza API", + "api_keys_save_labels": "Zapisz etykiety", + "api_keys_labels_field": "Etykiety (rozdzielone przecinkami)", + "api_keys_labels_edit_help": "Dotyczy nowych Request'ów wykonywanych tym kluczem. Pozostaw puste, aby usunąć wszystkie etykiety.", + "mcp_title": "Serwery MCP", + "mcp_help_label": "Pomoc dotycząca serwerów MCP", + "mcp_help": "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.", + "mcp_add": "Dodaj serwer MCP", + "mcp_unavailable": "Zarządzanie serwerami MCP jest niedostępne.", + "mcp_loading": "Wczytywanie serwerów MCP...", + "mcp_filter_placeholder": "Filtruj według nazwy, sluga, URL, transportu lub statusu...", + "mcp_filter_label": "Filtruj serwery MCP według nazwy, sluga, URL, transportu lub statusu", + "mcp_empty": "Nie ma jeszcze serwerów MCP. Dodaj serwer tutaj albo zadeklaruj go w config.yaml w mcp.servers.", + "mcp_no_match": "Żaden serwer MCP nie pasuje do filtra.", + "mcp_catalog_label": "Katalog serwera MCP", + "mcp_catalog_title": "Katalog serwera", + "mcp_catalog_close": "Zamknij katalog serwera MCP", + "mcp_catalog_loading": "Wczytywanie katalogu...", + "mcp_catalog_exposed": "Udostępnione w zbiorczym endpoincie /mcp jako {name}", + "mcp_catalog_empty": "Brak narzędzi — serwer może nadal się łączyć albo działać w trybie zdegradowanym.", + "mcp_close": "Zamknij", + "mcp_edit": "Edytuj serwer MCP", + "mcp_editor_label": "Edytor serwera MCP", + "mcp_identity_help": "Wyświetlaną nazwę można zmienić. Slug jest stałą tożsamością widoczną dla klienta.", + "mcp_name": "Nazwa", + "mcp_name_help": "Czytelna dla człowieka i zgodna z Unicode. Możesz ją później zmienić.", + "mcp_slug": "Slug", + "mcp_slug_create_help": "Tworzony z nazwy. Możesz go zmienić przed zapisem.", + "mcp_slug_edit_help": "Niezmienny, ponieważ jest używany w URL-ach, nagłówkach zakresu i zbiorczych nazwach narzędzi.", + "mcp_transport": "Transport", + "mcp_transport_help": "Połącz ze zdalnym serwerem MCP przez Streamable HTTP lub starszy protokół SSE.", + "mcp_headers": "Nagłówki", + "mcp_header_name": "Nazwa nagłówka", + "mcp_header_value": "Wartość nagłówka", + "mcp_remove_header": "Usuń nagłówek", + "mcp_add_header": "Dodaj nagłówek", + "mcp_headers_help": "Wysyłane tylko do skonfigurowanego originu serwera. Pozostaw zamaskowane wartości bez zmian, aby zachować zapisane dane.", + "mcp_advanced": "Ustawienia zaawansowane", + "mcp_advanced_summary": "Opis, reguły dostępu i timeout", + "mcp_description": "Opis", + "mcp_allowed_tools": "Dozwolone narzędzia", + "mcp_disallowed_tools": "Zabronione narzędzia", + "mcp_user_paths": "User Paths (puste oznacza wszystkie)", + "mcp_timeout": "Timeout narzędzia (sekundy)", + "mcp_timeout_placeholder": "Domyślny timeout, gdy pole jest puste", + "workflows_title": "Workflows", + "workflows_note": "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.", + "workflows_new": "Nowy Workflow", + "workflows_unavailable": "Funkcja Workflows jest niedostępna.", + "workflows_filter_placeholder": "Filtruj według zakresu, nazwy, hasha lub Guardrail...", + "workflows_filter_label": "Filtruj Workflows", + "workflows_empty": "Nie znaleziono aktywnych Workflows.", + "workflows_no_match": "Żaden Workflow nie pasuje do filtra.", + "workflows_async": "Asynchronicznie", + "workflows_guardrails": "Guardrails", + "workflows_no_guardrails": "W tym Workflow nie skonfigurowano Guardrails.", + "providers_title": "Dostawcy", + "providers_add": "Dodaj dostawcę", + "providers_unavailable": "Zarządzanie danymi dostępowymi dostawców jest niedostępne.", + "providers_filter_placeholder": "Filtruj według nazwy, typu lub bazowego URL...", + "providers_filter_label": "Filtruj dostawców według nazwy, typu lub bazowego URL", + "providers_empty": "Nie ma jeszcze dostawców zarządzanych w dashboardzie. Dodaj dostawcę tutaj albo zadeklaruj go w config.yaml lub zmiennych środowiskowych.", + "providers_no_match": "Żaden dostawca nie pasuje do filtra.", + "providers_name": "Nazwa", + "providers_type": "Typ", + "providers_auth": "Uwierzytelnianie", + "providers_models": "Modele", + "providers_enabled": "Włączony", + "providers_updated": "Zaktualizowano", + "providers_actions": "Akcje", + "providers_managed": "Zadeklarowano w konfiguracji (config.yaml lub zmienne środowiskowe); tylko do odczytu w dashboardzie", + "rate_limits_title": "Rate Limits", + "rate_limits_create": "Utwórz Rate Limit", + "rate_limits_unavailable": "Zarządzanie Rate Limitami jest niedostępne.", + "rate_limits_filter_placeholder": "Filtruj według podmiotu, zakresu lub okresu...", + "rate_limits_filter_label": "Filtruj Rate Limity według podmiotu, zakresu lub okresu", + "rate_limits_empty": "Nie skonfigurowano jeszcze Rate Limitów.", + "rate_limits_no_match": "Żaden Rate Limit nie pasuje do filtra.", + "rate_limits_effective": "Efektywne Rate Limity", + "rate_limits_add": "Dodaj", + "rate_limits_no_rules": "Brak reguł.", + "rate_limits_edit": "Edytuj", + "rate_limits_in_flight": "W toku", + "rate_limits_requests": "Requesty", + "rate_limits_tokens": "Tokeny", + "guardrails_title": "Guardrails", + "guardrails_kicker": "Obiekty polityk wielokrotnego użytku", + "guardrails_library": "Biblioteka Guardrails", + "guardrails_instances": "Instancje", + "guardrails_types": "Typy", + "guardrails_disabled": "GUARDRAILS_ENABLED jest wyłączone. Nadal możesz zarządzać Guardrails, ale nie będą uruchamiane.", + "guardrails_unavailable": "Funkcja Guardrails jest niedostępna.", + "guardrails_create": "Utwórz Guardrail", + "guardrails_filter_placeholder": "Filtruj według nazwy, typu, User Path lub podsumowania...", + "guardrails_filter_label": "Filtruj Guardrails", + "guardrails_name": "Nazwa", + "guardrails_type": "Typ", + "guardrails_user_path": "User Path", + "guardrails_summary": "Podsumowanie", + "guardrails_actions": "Akcje", + "guardrails_empty": "Nie zdefiniowano jeszcze Guardrails.", + "guardrails_help_label": "Pomoc dotycząca Guardrails", + "guardrails_help": "Obiekty polityk wielokrotnego użytku zapisane w bazie danych i utrzymywane w pamięci na potrzeby wykonywania Workflows.", + "guardrails_library_help": "Przechowuj Guardrails w bazie danych, utrzymuj je w pamięci i dołączaj do Workflows przez referencję.", + "guardrails_instances_help": "Każda instancja ma nazwę wielokrotnego użytku, typ, opcjonalny User Path do ograniczania widoczności i konfigurację JSON.", + "guardrails_loading": "Wczytywanie Guardrails...", + "guardrails_no_summary": "Brak podsumowania.", + "workflows_editor": "Edytor Workflow", + "workflows_help_label": "Pomoc dotycząca Workflow", + "workflows_help": "Utwórz niezmienną wersję. Zapisanie aktywuje ją dla wybranego zakresu.", + "workflows_edit": "Edytuj Workflow", + "workflows_create": "Utwórz Workflow", + "workflows_provider_name": "Nazwa dostawcy", + "workflows_all_scope": "Wszyscy dostawcy i modele", + "workflows_model": "Model", + "workflows_all_provider_models": "Wszystkie modele dostawcy", + "workflows_name": "Nazwa", + "workflows_name_placeholder": "Opcjonalna. Domyślnie etykieta zakresu.", + "workflows_user_path": "User Path", + "workflows_scope_help": "Pozostaw nazwę dostawcy pustą, aby objąć wszystkich dostawców i modele. Wybierz dostawcę bez modelu, aby objąć wszystkie jego modele.", + "workflows_path_help": "Dodaj ścieżkę, aby ograniczyć Workflow do jej poddrzewa. Początkowe ukośniki są opcjonalne i normalizowane. Najgłębsza ścieżka ma pierwszeństwo.", + "workflows_name_help": "Jeśli nazwa jest pusta, Workflow wyświetla dopasowany zakres lub Wszystkie modele.", + "workflows_description": "Opis", + "workflows_description_placeholder": "Opcjonalna notatka operatora opisująca powód utworzenia wersji.", + "workflows_cache": "Cache", + "workflows_audit": "Logi audytowe", + "workflows_usage": "Zużycie", + "workflows_budget": "Budżet", + "workflows_failover": "Failover", + "workflows_preview": "Podgląd", + "workflows_live": "Live", + "workflows_guardrail_steps": "Kroki Guardrails", + "workflows_steps_help": "Guardrails w tym samym kroku numerycznym działają razem. Późniejsze kroki czekają na zakończenie wcześniejszych.", + "workflows_add_step": "Dodaj krok", + "workflows_no_registered_guardrails": "Nie zarejestrowano nazwanych Guardrails. Nadal możesz przygotować Workflow, ale jego utworzenie może zostać odrzucone.", + "workflows_open_guardrails": "Otwórz Guardrails", + "workflows_guardrail_reference": "Referencja Guardrail", + "workflows_step": "Krok", + "workflows_remove": "Usuń", + "workflows_no_steps": "Nie skonfigurowano jeszcze kroków Guardrails.", + "rate_limits_edit_title": "Edytuj Rate Limit", + "rate_limits_editor": "Edytor Rate Limitu", + "rate_limits_save": "Zapisz Rate Limit", + "rate_limits_scope": "Zakres", + "rate_limits_period": "Okres", + "rate_limits_period_seconds": "Okres w sekundach", + "rate_limits_max_in_flight": "Maksymalna liczba Request'ów w toku", + "rate_limits_max_requests": "Maksymalna liczba Request'ów", + "rate_limits_max_tokens": "Maksymalna liczba tokenów", + "rate_limits_editor_help": "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.", + "rate_limits_edit_help": "Zakres, podmiot i okres identyfikują regułę. Ich zmiana przenosi regułę i restartuje liczniki Live.", + "guardrails_edit": "Edytuj Guardrail", + "guardrails_editor": "Edytor Guardrail", + "guardrails_save": "Zapisz Guardrail", + "guardrails_editor_help": "Workflows odwołują się bezpośrednio do tych nazw, dlatego po utworzeniu celowo nie można ich zmieniać.", + "guardrails_description": "Opis", + "guardrails_description_placeholder": "Przeznaczenie tego Guardrail", + "guardrails_user_path_help_label": "Pomoc dotycząca User Path Guardrail", + "guardrails_user_path_help": "Używane tylko przez pomocnicze Guardrails przepisujące; ignorowane przez pozostałe typy.", + "settings_budget_monthly": "Miesięcznie", + "settings_budget_weekly": "Tygodniowo", + "settings_budget_daily": "Dziennie", + "settings_budget_day_of_month_help_label": "Pomoc dotycząca dnia miesiąca", + "settings_budget_day_of_month": "Dzień miesiąca", + "settings_budget_day_of_month_help": "Jeśli wybrany dzień nie występuje w danym miesiącu, reset nastąpi w ostatnim dniu tego miesiąca.", + "settings_budget_day_of_week": "Dzień tygodnia", + "settings_budget_hour": "Godzina", + "settings_budget_minute": "Minuta", + "settings_budget_save": "Zapisz ustawienia budżetów", + "settings_budget_loading": "Wczytywanie ustawień budżetów", + "settings_budget_load_failed": "Nie można wczytać ustawień budżetów.", + "settings_budget_save_failed": "Nie można zapisać ustawień budżetów.", + "settings_budget_saved": "Ustawienia budżetów zapisane.", + "settings_weekday_sunday": "Niedziela", + "settings_weekday_monday": "Poniedziałek", + "settings_weekday_tuesday": "Wtorek", + "settings_weekday_wednesday": "Środa", + "settings_weekday_thursday": "Czwartek", + "settings_weekday_friday": "Piątek", + "settings_weekday_saturday": "Sobota", + "settings_tagging_title": "Tagowanie na podstawie nagłówków", + "settings_tagging_help_label": "Pomoc dotycząca tagowania", + "settings_tagging_help": "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.", + "settings_tagging_header": "Nagłówek", + "settings_tagging_prefix": "Prefiks do usunięcia (opcjonalnie)", + "settings_tagging_delimiter": "Separator", + "settings_tagging_do_not_pass": "Nie przekazuj dalej", + "settings_tagging_config_help": "Zdefiniowane w config.yaml lub zmiennych środowiskowych TAGGING_HEADER_*; tutaj tylko do odczytu.", + "settings_tagging_remove": "Usuń", + "settings_tagging_remove_label": "Usuń nagłówek tagowania {header}", + "settings_tagging_loading": "Wczytywanie ustawień tagowania", + "settings_tagging_empty": "Nie skonfigurowano nagłówków tagowania. Requesty nie otrzymują etykiet.", + "settings_tagging_add": "Dodaj nagłówek", + "settings_tagging_save": "Zapisz ustawienia tagowania", + "settings_tagging_load_failed": "Nie można wczytać ustawień tagowania.", + "settings_tagging_save_failed": "Nie można zapisać ustawień tagowania.", + "settings_tagging_saved": "Ustawienia tagowania zapisane.", + "settings_runtime_refresh_title": "Odświeżenie runtime", + "settings_runtime_refresh_help_label": "Pomoc dotycząca odświeżenia runtime", + "settings_runtime_refresh_help": "Pobierz najnowsze metadane modeli, listę dostawców, klucze API, aliasy, reguły dostępu do modeli, Guardrails i Workflows.", + "settings_runtime_refresh_action": "Odśwież", + "settings_runtime_refresh_completed": "Odświeżenie runtime zakończone.", + "settings_runtime_refreshed": "Runtime odświeżony.", + "settings_runtime_refresh_warnings": "Odświeżenie runtime zakończone z ostrzeżeniami.", + "settings_runtime_refresh_failed": "Odświeżenie runtime nie powiodło się.", + "settings_runtime_refresh_summary": "{status} {models} · {providers}.", + "settings_runtime_refresh_models": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} model", + "count_plural=few": "{count} modele", + "count_plural=many": "{count} modeli", + "count_plural=*": "{count} modelu" + } + } + ], + "settings_runtime_refresh_providers": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} dostawca", + "count_plural=few": "{count} dostawców", + "count_plural=many": "{count} dostawców", + "count_plural=*": "{count} dostawcy" + } + } + ], + "settings_runtime_processing_title": "Przetwarzanie AI", + "settings_runtime_load_failed": "Nie można wczytać ustawień runtime.", + "settings_runtime_save_failed": "Nie można zapisać ustawienia {setting}.", + "settings_runtime_saved": "Zapisano ustawienie {setting}.", + "settings_runtime_managed_by": "Zarządzane przez: {source}", + "settings_runtime_environment": "środowisko", + "settings_pricing_title": "Ponowne przeliczenie cen zużycia", + "settings_pricing_help_label": "Pomoc dotycząca przeliczania cen", + "settings_pricing_help": "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.", + "settings_pricing_date_range": "Zakres dat", + "settings_pricing_user_path": "User Path (opcjonalny)", + "settings_pricing_selector": "Dostawca/model lub alias (opcjonalnie)", + "settings_pricing_selector_placeholder": "openai/gpt-4o lub smart", + "settings_pricing_action": "Przelicz ceny", + "settings_pricing_unavailable": "Ponowne przeliczanie cen zużycia jest niedostępne.", + "settings_pricing_confirmation": "przelicz", + "settings_pricing_confirmation_message": "Zapisane pola kosztów zużycia pasujące do wybranych filtrów zostaną nadpisane.", + "settings_pricing_failed": "Nie można przeliczyć cen.", + "settings_pricing_summary": [ + { + "declarations": ["input matched", "input recalculated", "local matched_plural = matched: plural"], + "selectors": ["matched_plural"], + "match": { + "matched_plural=one": "Przeliczono ceny dla {recalculated} z {matched} rekordu zużycia.", + "matched_plural=few": "Przeliczono ceny dla {recalculated} z {matched} rekordów zużycia.", + "matched_plural=many": "Przeliczono ceny dla {recalculated} z {matched} rekordów zużycia.", + "matched_plural=*": "Przeliczono ceny dla {recalculated} z {matched} rekordu zużycia." + } + } + ], + "settings_pricing_missing": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} rekord zużycia nadal nie ma metadanych cen.", + "count_plural=few": "{count} rekordy zużycia nadal nie mają metadanych cen.", + "count_plural=many": "{count} rekordów zużycia nadal nie ma metadanych cen.", + "count_plural=*": "{count} rekordu zużycia nadal nie ma metadanych cen." + } + } + ], + "sidebar_action_sign_out": "Wyloguj się", + "sidebar_action_enter_api_key": "Wprowadź klucz API", + "sidebar_action_change_api_key": "Zmień klucz API", + "sidebar_resize_label": "Zmień szerokość paska bocznego", + "sidebar_resize_help": "Przeciągnij, aby zmienić szerokość; kliknij, aby zwinąć lub rozwinąć", + "theme_label": "Motyw", + "theme_light": "Jasny motyw", + "theme_system": "Motyw systemowy", + "theme_dark": "Ciemny motyw", + "theme_change": "Zmień motyw (obecnie: {theme})", + "language_label": "Język", + "auth_banner_required": "Dostęp do danych panelu wymaga uwierzytelnienia.", + "auth_dialog_locked_title": "Panel zablokowany", + "auth_dialog_change_key_title": "Zmień klucz API", + "auth_dialog_close": "Zamknij okno uwierzytelniania", + "auth_dialog_sign_in_with_sso": "Zaloguj się przez SSO", + "auth_dialog_or_use_api_key": "lub użyj klucza API", + "auth_api_key_label": "Klucz API", + "auth_api_key_placeholder": "Klucz główny lub token Bearer", + "auth_api_key_invalid": "Aby kontynuować, wprowadź prawidłowy klucz API.", + "auth_api_key_storage_hint": "Klucz jest przechowywany w tej przeglądarce. Requesty używają nagłówka Authorization typu Bearer.", + "auth_action_unlock_dashboard": "Odblokuj panel", + "auth_action_save_api_key": "Zapisz klucz API", + "confirmation_close": "Zamknij okno potwierdzenia", + "notification_dismiss": "Zamknij powiadomienie", + "demo_mode_label": "Informacja o trybie demo", + "demo_mode_title": "Publiczne demo", + "demo_mode_warning": "Nie wprowadzaj danych poufnych ani osobowych. Dane demonstracyjne są regularnie resetowane.", + "demo_mode_website_label": "Strona GoModel", + "pagination_summary": "Wyświetlanie {start}–{end} z {total}", + "date_picker_last_days": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "Ostatni {count} dzień", + "count_plural=few": "Ostatnie {count} dni", + "count_plural=many": "Ostatnie {count} dni", + "count_plural=*": "Ostatnie {count} dnia" + } + } + ], + "date_picker_days": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} dzień", + "count_plural=few": "{count} dni", + "count_plural=many": "{count} dni", + "count_plural=*": "{count} dnia" + } + } + ], + "date_picker_today": "Dzisiaj", + "date_picker_range": "{start} – {end}", + "date_picker_open_range": "{start} – ...", + "date_picker_select_start": "Wybierz datę początkową", + "date_picker_select_end": "Wybierz datę końcową", + "date_picker_previous_month": "Poprzedni miesiąc", + "date_picker_next_month": "Następny miesiąc", + "date_range_chart_title_daily": "Dzienne zużycie tokenów", + "date_range_chart_title_weekly": "Tygodniowe zużycie tokenów", + "date_range_chart_title_monthly": "Miesięczne zużycie tokenów", + "date_range_chart_title_yearly": "Roczne zużycie tokenów", + "common_enabled": "Włączony", + "common_disabled": "Wyłączony", + "common_config": "Config", + "common_authentication_required": "Wymagane uwierzytelnienie.", + "api_keys_dashboard_access_help": "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.", + "api_keys_grant_access_action": "Przyznaj dostęp do dashboardu kluczowi API {name}", + "api_keys_revoke_access_action": "Odbierz dostęp do dashboardu kluczowi API {name}", + "api_keys_edit_labels_action": "Edytuj etykiety klucza API {name}", + "api_keys_deactivate_action": "Dezaktywuj klucz API {name}", + "api_keys_deactivating_action": "Dezaktywowanie klucza API {name}", + "api_keys_deactivated_on": "Dezaktywowano {date}", + "api_keys_load_failed": "Nie udało się wczytać kluczy API.", + "api_keys_create_failed": "Nie udało się utworzyć klucza API.", + "api_keys_feature_unavailable": "Funkcja kluczy API jest niedostępna.", + "api_keys_labels_update_failed": "Nie udało się zaktualizować etykiet.", + "api_keys_labels_updated": "Zaktualizowano etykiety klucza „{name}”.", + "api_keys_access_update_failed": "Nie udało się zaktualizować dostępu do dashboardu.", + "api_keys_access_granted": "Przyznano dostęp do dashboardu kluczowi „{name}”.", + "api_keys_access_revoked": "Odebrano dostęp do dashboardu kluczowi „{name}”.", + "api_keys_deactivate_confirm": "Dezaktywować klucz „{name}”? Tej operacji nie można cofnąć.", + "api_keys_deactivate_failed": "Nie udało się dezaktywować klucza.", + "api_keys_deactivate_success": "Dezaktywowano klucz „{name}”.", + "api_keys_name_required": "Nazwa jest wymagana.", + "api_keys_user_path_segments": "User Path nie może zawierać segmentów \".\" ani \"..\".", + "api_keys_user_path_colon": "User Path nie może zawierać segmentów z \":\".", + "mcp_column_transport": "Transport", + "mcp_column_endpoint": "Endpoint", + "mcp_column_status": "Status", + "mcp_column_tools": "Narzędzia", + "mcp_column_enabled": "Włączony", + "mcp_column_actions": "Akcje", + "mcp_managed": "Zadeklarowano w konfiguracji (config.yaml mcp.servers); tylko do odczytu w dashboardzie", + "mcp_edit_action": "Edytuj serwer MCP {name}", + "mcp_catalog_action": "Sprawdź katalog serwera MCP {name}", + "mcp_reconnect_action": "Połącz ponownie serwer MCP {name}", + "mcp_reconnecting_action": "Ponowne łączenie serwera MCP {name}", + "mcp_delete_action": "Usuń serwer MCP {name}", + "mcp_deleting_action": "Usuwanie serwera MCP {name}", + "mcp_connected_since": "Połączono od {date}", + "mcp_local_command": "komenda lokalna", + "mcp_sub_counts": "Prompty: {prompts} · zasoby: {resources}", + "mcp_name_required": "Nazwa jest wymagana.", + "mcp_slug_invalid": "Slug musi zawierać 1–64 małych liter ASCII, cyfr, łączników lub podkreśleń.", + "mcp_slug_in_use": "Slug „{slug}” jest już używany.", + "mcp_url_required": "URL jest wymagany.", + "mcp_timeout_invalid": "Timeout narzędzia musi być nieujemną całkowitą liczbą sekund.", + "mcp_catalog_tools": "Narzędzia", + "mcp_catalog_prompts": "Prompty", + "mcp_catalog_resources": "Zasoby", + "mcp_catalog_templates": "Szablony zasobów", + "mcp_load_failed": "Nie udało się wczytać serwerów MCP.", + "mcp_save_failed": "Nie udało się zapisać serwera MCP.", + "mcp_saved": "Zapisano serwer MCP „{name}”.", + "mcp_delete_confirm": "Usunąć serwer MCP „{name}”? Klienci natychmiast utracą dostęp do jego narzędzi.", + "mcp_delete_failed": "Nie udało się usunąć serwera MCP.", + "mcp_deleted": "Usunięto serwer MCP „{name}”.", + "mcp_reconnect_failed": "Nie udało się ponownie połączyć serwera MCP.", + "mcp_reconnected": "Ponownie połączono serwer MCP „{name}”.", + "mcp_reconnect_disabled": "Serwer MCP „{name}” jest wyłączony; nie podjęto próby połączenia.", + "mcp_reconnect_status": "Podjęto próbę ponownego połączenia, ale status serwera MCP „{name}” to nadal {status}.", + "mcp_not_found": "Nie znaleziono serwera MCP „{name}”.", + "mcp_catalog_load_failed": "Nie udało się wczytać katalogu serwera MCP.", + "providers_edit": "Edytuj dostawcę", + "providers_editor": "Edytor danych dostawcy", + "providers_identity_help": "Nazwa jest stałą tożsamością używaną do routingu i po utworzeniu nie można jej zmienić.", + "providers_select_type": "Wybierz typ dostawcy…", + "providers_type_help": "Określa pola używane przez gateway do tworzenia Request'ów.", + "providers_name_create_help": "Sugerowana na podstawie typu; używana do kierowania Request'ów do tej instancji i edytowalna przed zapisem.", + "providers_name_edit_help": "Po utworzeniu nie można jej zmienić.", + "providers_pick_type": "Wybierz typ, aby skonfigurować dane dostępowe — każdy typ dostawcy wymaga innych ustawień.", + "providers_provider_toggle": "dostawca", + "providers_advanced": "Ustawienia zaawansowane", + "providers_api_key": "Klucz API {number}", + "providers_remove_api_key": "Usuń klucz API {number}", + "providers_add_key": "Dodaj klucz", + "providers_default": "Domyślne dostawcy", + "providers_edit_action": "Edytuj dostawcę {name}", + "providers_delete_action": "Usuń dostawcę {name}", + "providers_deleting_action": "Usuwanie dostawcy {name}", + "providers_load_failed": "Nie udało się wczytać danych dostawców.", + "providers_save_failed": "Nie udało się zapisać danych dostawcy.", + "providers_saved": "Zapisano dostawcę „{name}”.", + "providers_delete_failed": "Nie udało się usunąć danych dostawcy.", + "providers_deleted": "Usunięto dostawcę „{name}”.", + "providers_delete_title": "Usuń dostawcę", + "providers_delete_message": "Wpisz „{name}”, aby trwale usunąć dane tego dostawcy. Kierowane do niego Requesty będą kończyć się błędem do czasu ponownej konfiguracji.", + "providers_api_keys": "Klucze API", + "providers_session_sticky_keys": "Klucze API przypisane do sesji", + "providers_base_url": "Bazowy URL", + "providers_api_version": "Wersja API", + "providers_backend": "Backend", + "providers_auth_type": "Typ uwierzytelniania", + "providers_api_mode": "Tryb API", + "providers_vertex_project": "Projekt Vertex", + "providers_vertex_location": "Lokalizacja Vertex", + "providers_service_account_file": "Plik Service Account", + "providers_service_account_json": "Service Account JSON", + "providers_service_account_json_base64": "Service Account JSON (base64)", + "providers_gcp_scope": "Zakres GCP", + "providers_models_field": "Modele (oddzielone przecinkami)", + "providers_api_keys_hint": "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.", + "providers_session_sticky_hint": "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.", + "providers_api_version_hint": "Pozostaw puste, aby użyć wartości domyślnej dostawcy. Endpointy Realtime mogą wymagać nowszej wersji.", + "providers_backend_hint": "Określa usługę Google. Vertex uwierzytelnia się danymi Google zamiast kluczem API.", + "providers_auth_type_hint": "Sposób uzyskania danych Google. Pozostaw wartość domyślną, aby użyć Application Default Credentials.", + "providers_api_mode_hint": "Format Requestu wysyłanego upstream.", + "providers_service_account_file_hint": "Ścieżka dostępna do odczytu przez proces gateway.", + "providers_service_account_json_hint": "Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować wartość, lub wyczyść pole, aby ją usunąć.", + "providers_service_account_json_base64_hint": "Zapisane wartości są zamaskowane; pozostaw gwiazdki bez zmian, aby zachować wartość.", + "providers_models_hint": "Pozostaw puste, aby automatycznie wykryć modele z endpointu /models dostawcy, jeśli jest obsługiwany.", + "providers_default_value": "Domyślnie: {value}", + "providers_keys_count": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} klucz", + "count_plural=few": "{count} klucze", + "count_plural=many": "{count} kluczy", + "count_plural=*": "{count} klucza" + } + } + ], + "providers_service_account": "Service Account", + "providers_keyless": "bez klucza", + "providers_auto_discovered": "wykrywane automatycznie", + "providers_models_count": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} model", + "count_plural=few": "{count} modele", + "count_plural=many": "{count} modeli", + "count_plural=*": "{count} modelu" + } + } + ], + "models_enable_action": "Włącz {subject}", + "models_disable_action": "Wyłącz {subject}", + "models_alias_subject": "alias {name}", + "models_model_subject": "model", + "models_managed_read_only": "Ten model wirtualny jest zarządzany przez konfigurację i tutaj jest tylko do odczytu.", + "models_edit_action": "Edytuj {subject}", + "models_edit_action_override": "Edytuj {subject} (nadpisanie istnieje)", + "models_edit_action_virtual": "Edytuj {subject} (model wirtualny istnieje)", + "models_model_pricing_for": "ceny modelu {name}", + "models_provider_pricing_for": "ceny dostawcy {name}", + "models_global_pricing": "globalne ceny modeli", + "models_model_settings_for": "ustawienia modelu {name}", + "models_provider_access_for": "dostęp dostawcy {name}", + "models_global_access": "globalny dostęp do modeli", + "models_remove_alias": "Usuń alias {name}", + "models_removing_alias": "Usuwanie aliasu {name}", + "models_edit_alias": "Edytuj alias {name}", + "models_edit_redirect": "Edytuj przekierowanie dla {name}", + "models_virtual_model_toggle": "model wirtualny", + "models_category_all": "Modele", + "models_category_text_generation": "Generowanie tekstu", + "models_category_embedding": "Embeddingi", + "models_category_image": "Obrazy", + "models_category_audio": "Audio", + "models_category_video": "Wideo", + "models_category_utility": "Narzędziowe", + "models_virtual_models_group": "Modele wirtualne", + "models_global_scope_subject": "wszyscy dostawcy i modele", + "models_disabled_default": "Domyślnie wyłączony", + "models_allowed_for": "Dozwolony dla: {paths}", + "models_count": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} model", + "count_plural=few": "{count} modele", + "count_plural=many": "{count} modeli", + "count_plural=*": "{count} modelu" + } + } + ], + "models_alias_count": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "{count} alias", + "count_plural=few": "{count} aliasy", + "count_plural=many": "{count} aliasów", + "count_plural=*": "{count} aliasu" + } + } + ], + "models_column_modes": "Tryby", + "models_column_input_output": "Wejście / wyjście ($/MTok)", + "models_column_cached": "Cache $/MTok", + "models_column_input": "Wejście", + "models_column_per_image": "$/obraz", + "models_column_per_second": "$/sekundę", + "models_column_per_character": "$/znak", + "models_column_per_second_in": "$/sekundę (wejście)", + "models_column_per_second_out": "$/sekundę (wyjście)", + "models_column_per_page": "$/stronę", + "models_column_per_request": "$/Request", + "workflows_save": "Zapisz", + "workflows_saving": "Zapisywanie...", + "workflows_creating": "Tworzenie...", + "workflows_loading": "Wczytywanie Workflows...", + "workflows_timeout": "Przekroczono czas wczytywania Workflows.", + "workflows_created": "Workflow został utworzony i aktywowany.", + "workflows_deactivate_confirm": "Dezaktywować Workflow „{name}”? Requesty użyją następnego aktywnego Workflow dla tego zakresu.", + "workflows_deactivated": "Workflow został dezaktywowany.", + "workflows_on": "Włączony", + "workflows_off": "Wyłączony", + "workflows_none": "Brak", + "workflows_steps_count": "Kroki: {count}", + "workflows_one_step": "1 krok", + "workflows_step_number": "krok {number}", + "workflows_deactivate_action": "Dezaktywuj Workflow {name}", + "workflows_deactivate_active": "Dezaktywuj aktywny Workflow", + "workflows_global_no_deactivate": "Globalnego Workflow nie można dezaktywować.", + "workflows_deactivating": "Dezaktywowanie...", + "workflows_deactivate": "Dezaktywuj", + "workflows_edit_action": "Edytuj Workflow {name}", + "workflows_version": "wersja: v{version}", + "workflows_created_at": "utworzono: {date}", + "workflows_hash": "hash: {hash}", + "workflows_scope_provider_model": "Nazwa dostawcy + model", + "workflows_scope_provider_model_path": "Nazwa dostawcy + model + Path", + "workflows_scope_provider_path": "Nazwa dostawcy + Path", + "workflows_scope_path": "Path", + "workflows_scope_provider": "Nazwa dostawcy", + "workflows_scope_global": "Globalny", + "workflows_all_models": "Wszystkie modele", + "workflows_provider_invalid": "Wybierz zarejestrowaną nazwę dostawcy.", + "workflows_model_requires_provider": "Wybór modelu wymaga nazwy dostawcy.", + "workflows_model_invalid": "Wybierz zarejestrowany model dla wybranego dostawcy.", + "workflows_guardrail_ref_required": "Każdy krok Guardrail wymaga referencji Guardrail.", + "workflows_guardrail_step_invalid": "Każdy krok Guardrail musi mieć nieujemny całkowity numer.", + "workflows_guardrail_ref_unique": "Każda referencja Guardrail może wystąpić tylko raz w Workflow.", + "guardrails_unknown": "Nieznany", + "guardrails_name_required": "Nazwa jest wymagana.", + "guardrails_type_required": "Typ jest wymagany.", + "guardrails_save_failed": "Nie udało się zapisać Guardrail.", + "guardrails_saved": "Zapisano Guardrail „{name}”.", + "guardrails_edit_action": "Edytuj Guardrail {name}", + "guardrails_delete_action": "Usuń Guardrail {name}", + "guardrails_deleting_action": "Usuwanie Guardrail {name}", + "guardrails_delete_confirm": "Usunąć Guardrail „{name}”? Workflows, które nadal się do niego odwołują, muszą zostać najpierw zaktualizowane.", + "guardrails_delete_failed": "Nie udało się usunąć Guardrail.", + "guardrails_deleted": "Usunięto Guardrail „{name}”.", + "rate_limits_rule_scope": "Zakres reguły: {scope}", + "rate_limits_config_read_only": "Zadeklarowano w konfiguracji; tylko do odczytu w dashboardzie", + "rate_limits_managed": "Zarządzane przez dashboard lub admin API", + "rate_limits_edit_action": "Edytuj Rate Limit", + "rate_limits_resetting_counters": "Resetowanie liczników", + "rate_limits_reset_counters": "Resetuj liczniki", + "rate_limits_resetting": "Resetowanie", + "rate_limits_reset": "Resetuj", + "rate_limits_deleting_action": "Usuwanie Rate Limitu", + "rate_limits_delete_action": "Usuń Rate Limit", + "rate_limits_deleting": "Usuwanie", + "rate_limits_delete": "Usuń", + "rate_limits_in_flight_progress": "{used} z {limit} w toku", + "rate_limits_requests_progress": "{used} z {limit} Request'ów", + "rate_limits_tokens_progress": "{used} z {limit} tokenów", + "rate_limits_left": "Pozostało: {count}", + "rate_limits_load_failed": "Nie udało się wczytać Rate Limitów.", + "rate_limits_save_failed": "Nie udało się zapisać Rate Limitu.", + "rate_limits_moved": "Rate Limit został przeniesiony; liczniki Live zresetowano.", + "rate_limits_saved": "Zapisano Rate Limit.", + "rate_limits_move_cleanup_failed": "Nowa reguła została zapisana, ale poprzedniej nie udało się usunąć. Usuń ją ręcznie.", + "rate_limits_delete_failed": "Nie udało się usunąć Rate Limitu.", + "rate_limits_deleted": "Usunięto Rate Limit.", + "rate_limits_reset_failed": "Nie udało się zresetować Rate Limitu.", + "rate_limits_reset_success": "Zresetowano liczniki Rate Limitu.", + "rate_limits_user_path": "User Path", + "rate_limits_user_path_chip": "User Path", + "rate_limits_provider": "Dostawca", + "rate_limits_provider_chip": "dostawca", + "rate_limits_provider_name": "Nazwa dostawcy", + "rate_limits_model": "Model", + "rate_limits_model_chip": "model", + "rate_limits_per_minute": "Na minutę", + "rate_limits_per_hour": "Na godzinę", + "rate_limits_per_day": "Na dzień", + "rate_limits_concurrent": "Równoczesne (w toku)", + "rate_limits_custom_seconds": "Niestandardowa liczba sekund", + "rate_limits_period_required": "Liczba sekund okresu jest wymagana.", + "rate_limits_field_required": "Pole {field} jest wymagane.", + "rate_limits_period_invalid": "Liczba sekund okresu musi być dodatnią liczbą całkowitą (0 tylko dla okresu równoczesnego).", + "rate_limits_limit_required": "Ustaw maksymalną liczbę Request'ów, tokenów lub oba limity.", + "rate_limits_concurrent_tokens_invalid": "Limit tokenów nie jest dostępny dla okresu równoczesnego.", + "rate_limits_requests_invalid": "Maksymalna liczba Request'ów musi być dodatnią liczbą całkowitą.", + "rate_limits_tokens_invalid": "Maksymalna liczba tokenów musi być dodatnią liczbą całkowitą.", + "rate_limits_model_limits": "Rate Limity modelu", + "rate_limits_provider_limits": "Rate Limity dostawcy ({provider})", + "rate_limits_provider_hint": "Współdzielone przez wszystkie modele kierowane do tego dostawcy.", + "rate_limits_global_limits": "Globalne Rate Limity", + "rate_limits_global_hint": "Reguły głównego User Path ograniczają cały ruch. Węższe reguły User Path również obowiązują dla danego klienta.", + "rate_limits_for": "Rate Limity dla {subject}", + "rate_limits_direct": "skonfigurowano bezpośrednie Rate Limity", + "rate_limits_inherited": "obowiązują dziedziczone Rate Limity", + "models_load_failed": "Nie udało się wczytać modeli wirtualnych.", + "models_alias_update_failed": "Nie udało się zaktualizować stanu aliasu.", + "models_alias_enabled": "Alias został włączony.", + "models_alias_disabled": "Alias został wyłączony.", + "models_access_update_failed": "Nie udało się zaktualizować dostępu do modelu.", + "models_model_enabled": "Model został włączony.", + "models_model_disabled": "Model został wyłączony.", + "models_remove_failed": "Nie udało się usunąć modelu wirtualnego.", + "models_removed": "Usunięto model wirtualny.", + "models_redirect_remove_failed": "Nie udało się usunąć przekierowania.", + "models_redirect_removed": "Usunięto przekierowanie. Pozostałe ustawienia modelu wirtualnego zostały zachowane.", + "models_managed_cannot_edit": "Ten model wirtualny jest zarządzany przez konfigurację i nie można go tutaj edytować.", + "models_managed_cannot_remove": "Ten model wirtualny jest zarządzany przez konfigurację i nie można go tutaj usunąć.", + "models_source_required": "Źródło jest wymagane.", + "models_source_exists": "Wybierz inne Źródło lub edytuj istniejący model wirtualny.", + "models_source_masks": "Wybierz inne Źródło, aby nie przesłaniać istniejącego modelu.", + "models_save_failed": "Nie udało się zapisać modelu wirtualnego.", + "models_alias_saved": "Zapisano alias.", + "models_access_reset": "Przywrócono dziedziczony/domyślny dostęp do modelu.", + "models_access_saved": "Zapisano dostęp do modelu.", + "models_strategy_round_robin": "Round-robin (rotacja między celami z uwzględnieniem wag)", + "models_strategy_cost": "Najniższy koszt (najtańszy cel dla Requestu)", + "models_strategy_adaptive": "Adaptive (cel wybierany przez zarejestrowane rozszerzenie routingu)", + "models_invalid": "Nieprawidłowy", + "models_active": "Aktywny", + "models_unassigned": "Nieprzypisany", + "models_pricing_load_failed": "Nie udało się wczytać nadpisań cen modeli.", + "models_pricing_global_scope": "Wszyscy dostawcy i modele", + "models_pricing_provider_scope": "Wszystkie modele dostawcy {provider}", + "models_pricing_provider": "Dostawca", + "models_pricing_exact_scope": "Ten dostawca i model", + "models_pricing_model_scope": "Ten model u wszystkich dostawców", + "models_pricing_fallback_title": "Ceny", + "models_pricing_selector_required": "Selektor cen modelu jest wymagany.", + "models_pricing_feature_unavailable": "Funkcja nadpisywania cen modeli jest niedostępna.", + "models_pricing_save_failed": "Nie udało się zapisać cen modelu.", + "models_pricing_saved": "Zapisano ceny modelu.", + "models_pricing_remove_failed": "Nie udało się usunąć nadpisania cen modelu.", + "models_pricing_removed": "Usunięto nadpisanie cen modelu.", + "models_price_input": "Wejście $/MTok", + "models_price_output": "Wyjście $/MTok", + "models_price_cached_input": "Wejście z cache $/MTok", + "models_price_cache_write": "Zapis cache $/MTok", + "models_price_reasoning_output": "Wyjście reasoning $/MTok", + "models_price_batch_input": "Wejście Batch $/MTok", + "models_price_batch_output": "Wyjście Batch $/MTok", + "models_price_audio_input": "Wejście Audio $/MTok", + "models_price_audio_output": "Wyjście Audio $/MTok", + "models_price_per_image": "$/obraz", + "models_price_input_image": "Wejście $/obraz", + "models_price_input_second": "Wejście $/sekundę", + "models_price_output_second": "Wyjście $/sekundę", + "models_price_per_character": "$/znak", + "models_price_per_page": "$/stronę", + "models_price_per_request": "$/Request", + "models_price_group_tokens": "Tokeny", + "models_price_group_batch": "Batch", + "models_price_group_audio": "Audio", + "models_price_group_image": "Obraz", + "models_price_group_audio_video": "Audio/Wideo", + "models_price_group_video": "Wideo", + "models_price_group_utility": "Narzędziowe", + "models_price_registry": "Rejestr modeli", + "models_price_unknown": "Nieznane", + "models_price_override_source": "Nadpisanie Dashboard/API", + "models_price_override_source_selector": "Nadpisanie Dashboard/API ({selector})", + "models_price_choose_type": "Wybierz typ ceny dla każdego wiersza.", + "models_price_unique_type": "Każdy typ ceny może zostać użyty tylko raz.", + "models_price_enter_value": "Wprowadź wartość dla: {field}.", + "models_price_invalid_value": "Ceny muszą być liczbami większymi lub równymi 0.", + "models_price_add_field": "Przed zapisem dodaj co najmniej jedno pole ceny.", + "models_price_form_value": "Wartość Form/API", + "models_price_unset": "Nieustawione", + "models_failover_load_failed": "Nie udało się wczytać mapowań Failover.", + "models_failover_primary_required": "Model główny jest wymagany.", + "models_failover_target_required": "Dodaj co najmniej jeden cel Failover.", + "models_failover_save_failed": "Nie udało się zapisać mapowania Failover.", + "models_failover_mapping_saved": "Zapisano mapowanie Failover.", + "models_failover_remove_confirm": "Usunąć mapowanie Failover dla „{source}”?", + "models_failover_remove_failed": "Nie udało się usunąć mapowania Failover.", + "models_failover_removed": "Usunięto mapowanie Failover.", + "models_failover_generate_failed": "Nie udało się wygenerować mapowania Failover.", + "models_failover_no_suggestions": "Nie wygenerowano propozycji Failover dla tego modelu.", + "models_failover_generated": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "Wygenerowano {count} model Fallback.", + "count_plural=few": "Wygenerowano {count} modele Fallback.", + "count_plural=many": "Wygenerowano {count} modeli Fallback.", + "count_plural=*": "Wygenerowano {count} modelu Fallback." + } + } + ], + "models_failover_reset_title": "Usuń modele Failover", + "models_failover_reset_message": "Usuń wszystkie mapowania Failover zarządzane przez dashboard. Mapowania zarządzane przez konfigurację pozostaną aktywne.", + "models_failover_reset_confirm": "Usuń Failover", + "models_failover_remove_all_failed": "Nie udało się usunąć mapowań Failover.", + "models_failover_remove_all_success": "Usunięto mapowania Failover zarządzane przez dashboard.", + "models_failover_generate_all_failed": "Nie udało się wygenerować mapowań Failover.", + "models_failover_selected_count": "Wybrano {selected} / {total}", + "models_failover_select_required": "Wybierz co najmniej jedną propozycję Failover.", + "models_failover_draft_invalid": "Wygenerowana propozycja Failover nie zawiera danych modelu.", + "models_failover_saved": [ + { + "declarations": ["input count", "local count_plural = count: plural"], + "selectors": ["count_plural"], + "match": { + "count_plural=one": "Zapisano {count} mapowanie Failover.", + "count_plural=few": "Zapisano {count} mapowania Failover.", + "count_plural=many": "Zapisano {count} mapowań Failover.", + "count_plural=*": "Zapisano {count} mapowania Failover." + } + } + ], + "models_failover_save_all_failed": "Nie udało się zapisać mapowań Failover.", + "models_failover_edit_for": "Edytuj Failover dla {model}", + "models_failover_edit_active": "Edytuj Failover dla {model} (aktywny)", + "providers_paste_service_account": "Wklej Service Account JSON", + "providers_type_required": "Wybierz typ dostawcy.", + "providers_name_required": "Nazwa jest wymagana.", + "providers_name_slash": "Nazwa nie może zawierać znaku „/” — oddziela on dostawcę od modelu.", + "providers_key_required": "Ten typ dostawcy wymaga co najmniej jednego klucza API.", + "providers_key_blank": "Usuń pusty wiersz zamiast pozostawiać pusty klucz.", + "providers_url_scheme": "Dodaj schemat, np. https://{value}", + "providers_json_invalid": "Wklej zawartość pliku Service Account JSON — podana wartość nie jest prawidłowym JSON.", + "providers_already_exists": "Dostawca „{name}” już istnieje.", + "providers_field_required": "Pole {field} jest wymagane dla tego typu dostawcy.", + "mcp_status_connected": "Połączony", + "mcp_status_degraded": "Zdegradowany", + "mcp_status_connecting": "Łączenie", + "mcp_status_disabled": "Wyłączony", + "mcp_description_placeholder": "Opcjonalny opis", + "mcp_allowed_tools_placeholder": "search_issues, get_file (oddzielone przecinkami; puste zezwala na wszystkie)", + "mcp_disallowed_tools_placeholder": "delete_repo (oddzielone przecinkami)", + "workflows_client": "Klient", + "workflows_auth": "Uwierzytelnianie", + "workflows_response": "Odpowiedź", + "workflows_audit_log": "Log audytowy", + "workflows_hit_semantic": "Trafienie (Semantic)", + "workflows_hit_exact": "Trafienie (Exact)", + "workflows_exceeded": "Przekroczony", + "workflows_redirected": "Przekierowano", + "models_remove_alias_confirm": "Usunąć alias modelu wirtualnego „{source}”?", + "models_remove_redirect_confirm": "Usunąć przekierowanie dla „{source}”? Pozostałe ustawienia modelu wirtualnego zostaną zachowane.", + "models_overwrite_alias_confirm": "Model wirtualny „{name}” już istnieje. Zapis zaktualizuje ten model. Kontynuować?", + "models_overwrite_policy_confirm": "Polityka dostępu dla „{source}” już istnieje. Zapis zaktualizuje ten model wirtualny. Kontynuować?", + "models_mask_create_confirm": "Model „{name}” już istnieje. Utworzenie aliasu przesłoni go na liście. Kontynuować?", + "models_source_conflict": "Model wirtualny dla „{source}” już istnieje. Wybierz inne Źródło.", + "models_mask_rename_confirm": "Model „{name}” już istnieje. Zmiana nazwy przesłoni go na liście. Kontynuować?", + "models_remove_policy_confirm": "Usunąć model wirtualny dla „{source}”? Przywróci to zachowanie dziedziczone/domyślne.", + "models_pricing_remove_confirm": "Usunąć nadpisanie cen modelu dla „{selector}”?" +} diff --git a/web/dashboard/project.inlang/settings.json b/web/dashboard/project.inlang/settings.json index 102b77e3f..edb3cbb8c 100644 --- a/web/dashboard/project.inlang/settings.json +++ b/web/dashboard/project.inlang/settings.json @@ -1,7 +1,7 @@ { "$schema": "https://inlang.com/schema/project-settings", "baseLocale": "en", - "locales": ["en"], + "locales": ["en", "pl"], "modules": [ "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@4.4.0/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@2.2.6/dist/index.js" diff --git a/web/dashboard/src/lib/components/molecules/LocaleSelector.svelte b/web/dashboard/src/lib/components/molecules/LocaleSelector.svelte index 45c75ee5c..2e6fb123b 100644 --- a/web/dashboard/src/lib/components/molecules/LocaleSelector.svelte +++ b/web/dashboard/src/lib/components/molecules/LocaleSelector.svelte @@ -1,12 +1,10 @@ {#if availableLocales.length > 1} -